diff --git a/Gemfile.lock b/Gemfile.lock index b9fcd27b1..234275ea8 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -34,29 +34,29 @@ GEM concurrent-ruby (~> 1.0) action_text-trix (2.1.16) railties - actioncable (8.1.1) - actionpack (= 8.1.1) - activesupport (= 8.1.1) + actioncable (8.1.2) + actionpack (= 8.1.2) + activesupport (= 8.1.2) nio4r (~> 2.0) websocket-driver (>= 0.6.1) zeitwerk (~> 2.6) - actionmailbox (8.1.1) - actionpack (= 8.1.1) - activejob (= 8.1.1) - activerecord (= 8.1.1) - activestorage (= 8.1.1) - activesupport (= 8.1.1) + actionmailbox (8.1.2) + actionpack (= 8.1.2) + activejob (= 8.1.2) + activerecord (= 8.1.2) + activestorage (= 8.1.2) + activesupport (= 8.1.2) mail (>= 2.8.0) - actionmailer (8.1.1) - actionpack (= 8.1.1) - actionview (= 8.1.1) - activejob (= 8.1.1) - activesupport (= 8.1.1) + actionmailer (8.1.2) + actionpack (= 8.1.2) + actionview (= 8.1.2) + activejob (= 8.1.2) + activesupport (= 8.1.2) mail (>= 2.8.0) rails-dom-testing (~> 2.2) - actionpack (8.1.1) - actionview (= 8.1.1) - activesupport (= 8.1.1) + actionpack (8.1.2) + actionview (= 8.1.2) + activesupport (= 8.1.2) nokogiri (>= 1.8.5) rack (>= 2.2.4) rack-session (>= 1.0.1) @@ -64,32 +64,32 @@ GEM rails-dom-testing (~> 2.2) rails-html-sanitizer (~> 1.6) useragent (~> 0.16) - actiontext (8.1.1) + actiontext (8.1.2) action_text-trix (~> 2.1.15) - actionpack (= 8.1.1) - activerecord (= 8.1.1) - activestorage (= 8.1.1) - activesupport (= 8.1.1) + actionpack (= 8.1.2) + activerecord (= 8.1.2) + activestorage (= 8.1.2) + activesupport (= 8.1.2) globalid (>= 0.6.0) nokogiri (>= 1.8.5) - actionview (8.1.1) - activesupport (= 8.1.1) + actionview (8.1.2) + activesupport (= 8.1.2) builder (~> 3.1) erubi (~> 1.11) rails-dom-testing (~> 2.2) rails-html-sanitizer (~> 1.6) - activejob (8.1.1) - activesupport (= 8.1.1) + activejob (8.1.2) + activesupport (= 8.1.2) globalid (>= 0.3.6) - activemodel (8.1.1) - activesupport (= 8.1.1) + activemodel (8.1.2) + activesupport (= 8.1.2) activemodel-serializers-xml (1.0.3) activemodel (>= 5.0.0.a) activesupport (>= 5.0.0.a) builder (~> 3.1) - activerecord (8.1.1) - activemodel (= 8.1.1) - activesupport (= 8.1.1) + activerecord (8.1.2) + activemodel (= 8.1.2) + activesupport (= 8.1.2) timeout (>= 0.4.0) activerecord-typedstore (1.6.0) activerecord (>= 6.1) @@ -97,13 +97,13 @@ GEM activemodel (>= 7.0) activemodel-serializers-xml (~> 1.0) activesupport (>= 7.0) - activestorage (8.1.1) - actionpack (= 8.1.1) - activejob (= 8.1.1) - activerecord (= 8.1.1) - activesupport (= 8.1.1) + activestorage (8.1.2) + actionpack (= 8.1.2) + activejob (= 8.1.2) + activerecord (= 8.1.2) + activesupport (= 8.1.2) marcel (~> 1.0) - activesupport (8.1.1) + activesupport (8.1.2) base64 bigdecimal concurrent-ruby (~> 1.0, >= 1.3.1) @@ -155,7 +155,7 @@ GEM fiber-storage (1.0.1) frozen_record (0.27.4) activemodel - globalid (1.2.1) + globalid (1.3.0) activesupport (>= 6.1) google-protobuf (4.33.4) bigdecimal @@ -206,12 +206,13 @@ GEM loofah (2.25.0) crass (~> 1.0.2) nokogiri (>= 1.12.0) - mail (2.8.1) + mail (2.9.0) + logger mini_mime (>= 0.1.1) net-imap net-pop net-smtp - marcel (1.0.4) + marcel (1.1.0) mini_mime (1.1.5) minitest (5.27.0) minitest-hooks (1.5.3) @@ -224,17 +225,17 @@ GEM mutex_m (0.3.0) net-http (0.4.1) uri - net-imap (0.5.7) + net-imap (0.6.2) date net-protocol net-pop (0.1.2) net-protocol net-protocol (0.2.2) timeout - net-smtp (0.5.0) + net-smtp (0.5.1) net-protocol netrc (0.11.0) - nio4r (2.7.4) + nio4r (2.7.5) nokogiri (1.19.0-aarch64-linux-gnu) racc (~> 1.4) nokogiri (1.19.0-aarch64-linux-musl) @@ -269,20 +270,20 @@ GEM rack (>= 1.3) rackup (2.3.1) rack (>= 3) - rails (8.1.1) - actioncable (= 8.1.1) - actionmailbox (= 8.1.1) - actionmailer (= 8.1.1) - actionpack (= 8.1.1) - actiontext (= 8.1.1) - actionview (= 8.1.1) - activejob (= 8.1.1) - activemodel (= 8.1.1) - activerecord (= 8.1.1) - activestorage (= 8.1.1) - activesupport (= 8.1.1) + rails (8.1.2) + actioncable (= 8.1.2) + actionmailbox (= 8.1.2) + actionmailer (= 8.1.2) + actionpack (= 8.1.2) + actiontext (= 8.1.2) + actionview (= 8.1.2) + activejob (= 8.1.2) + activemodel (= 8.1.2) + activerecord (= 8.1.2) + activestorage (= 8.1.2) + activesupport (= 8.1.2) bundler (>= 1.15.0) - railties (= 8.1.1) + railties (= 8.1.2) rails-dom-testing (2.3.0) activesupport (>= 5.0.0) minitest @@ -290,9 +291,9 @@ GEM rails-html-sanitizer (1.6.2) loofah (~> 2.21) nokogiri (>= 1.15.7, != 1.16.7, != 1.16.6, != 1.16.5, != 1.16.4, != 1.16.3, != 1.16.2, != 1.16.1, != 1.16.0.rc1, != 1.16.0) - railties (8.1.1) - actionpack (= 8.1.1) - activesupport (= 8.1.1) + railties (8.1.2) + actionpack (= 8.1.2) + activesupport (= 8.1.2) irb (~> 1.13) rackup (>= 1.0.0) rake (>= 12.2) @@ -402,7 +403,8 @@ GEM addressable (>= 2.8.0) crack (>= 0.3.2) hashdiff (>= 0.4.0, < 2.0.0) - websocket-driver (0.7.6) + websocket-driver (0.8.0) + base64 websocket-extensions (>= 0.1.0) websocket-extensions (0.1.5) xpath (3.2.0) diff --git a/sorbet/config b/sorbet/config index 9d0081b34..ccbd49ac0 100644 --- a/sorbet/config +++ b/sorbet/config @@ -3,3 +3,4 @@ --ignore=/vendor --enable-experimental-requires-ancestor --enable-experimental-rbs-comments +--suppress-payload-superclass-redefinition-for=Net::IMAP::CommandData diff --git a/sorbet/rbi/dsl/active_support/callbacks.rbi b/sorbet/rbi/dsl/active_support/callbacks.rbi index 4c1ad1358..15ee6be8b 100644 --- a/sorbet/rbi/dsl/active_support/callbacks.rbi +++ b/sorbet/rbi/dsl/active_support/callbacks.rbi @@ -13,11 +13,9 @@ module ActiveSupport::Callbacks module GeneratedClassMethods def __callbacks; end def __callbacks=(value); end - def __callbacks?; end end module GeneratedInstanceMethods def __callbacks; end - def __callbacks?; end end end diff --git a/sorbet/rbi/gems/actioncable@8.1.1.rbi b/sorbet/rbi/gems/actioncable@8.1.2.rbi similarity index 100% rename from sorbet/rbi/gems/actioncable@8.1.1.rbi rename to sorbet/rbi/gems/actioncable@8.1.2.rbi diff --git a/sorbet/rbi/gems/actionmailbox@8.1.1.rbi b/sorbet/rbi/gems/actionmailbox@8.1.2.rbi similarity index 100% rename from sorbet/rbi/gems/actionmailbox@8.1.1.rbi rename to sorbet/rbi/gems/actionmailbox@8.1.2.rbi diff --git a/sorbet/rbi/gems/actionmailer@8.1.1.rbi b/sorbet/rbi/gems/actionmailer@8.1.2.rbi similarity index 100% rename from sorbet/rbi/gems/actionmailer@8.1.1.rbi rename to sorbet/rbi/gems/actionmailer@8.1.2.rbi diff --git a/sorbet/rbi/gems/actionpack@8.1.1.rbi b/sorbet/rbi/gems/actionpack@8.1.2.rbi similarity index 99% rename from sorbet/rbi/gems/actionpack@8.1.1.rbi rename to sorbet/rbi/gems/actionpack@8.1.2.rbi index ad19e5481..82d93ba44 100644 --- a/sorbet/rbi/gems/actionpack@8.1.1.rbi +++ b/sorbet/rbi/gems/actionpack@8.1.2.rbi @@ -4545,22 +4545,65 @@ class ActionController::InvalidParameterKey < ::ArgumentError; end # ... # end # -# pkg:gem/actionpack#lib/action_controller/metal/live.rb:56 +# ## Streaming and Execution State +# +# When streaming, the action is executed in a separate thread. By default, this thread +# shares execution state from the parent thread. +# +# You can configure which execution state keys should be excluded from being shared +# using the `config.action_controller.live_streaming_excluded_keys` configuration: +# +# # config/application.rb +# config.action_controller.live_streaming_excluded_keys = [:active_record_connected_to_stack] +# +# This is useful when using ActionController::Live inside a `connected_to` block. For example, +# if the parent request is reading from a replica using `connected_to(role: :reading)`, you may +# want the streaming thread to use its own connection context instead of inheriting the read-only +# context: +# +# # Without configuration, streaming thread inherits read-only connection +# ActiveRecord::Base.connected_to(role: :reading) do +# @posts = Post.all +# render stream: true # Streaming thread cannot write to database +# end +# +# # With configuration, streaming thread gets fresh connection context +# # config.action_controller.live_streaming_excluded_keys = [:active_record_connected_to_stack] +# ActiveRecord::Base.connected_to(role: :reading) do +# @posts = Post.all +# render stream: true # Streaming thread can write to database if needed +# end +# +# Common keys you might want to exclude: +# - `:active_record_connected_to_stack` - Database connection routing and roles +# - `:active_record_prohibit_shard_swapping` - Shard swapping restrictions +# +# By default, no keys are excluded to maintain backward compatibility. +# +# pkg:gem/actionpack#lib/action_controller/metal/live.rb:91 module ActionController::Live extend ::ActiveSupport::Concern + include GeneratedInstanceMethods + mixes_in_class_methods GeneratedClassMethods mixes_in_class_methods ::ActionController::Live::ClassMethods - # pkg:gem/actionpack#lib/action_controller/metal/live.rb:371 + # pkg:gem/actionpack#lib/action_controller/metal/live.rb:413 def clean_up_thread_locals(*args); end - # pkg:gem/actionpack#lib/action_controller/metal/live.rb:362 + # pkg:gem/actionpack#lib/action_controller/metal/live.rb:94 + def live_streaming_excluded_keys; end + + # pkg:gem/actionpack#lib/action_controller/metal/live.rb:94 + def live_streaming_excluded_keys=(val); end + + # pkg:gem/actionpack#lib/action_controller/metal/live.rb:404 def new_controller_thread; end - # pkg:gem/actionpack#lib/action_controller/metal/live.rb:266 + # pkg:gem/actionpack#lib/action_controller/metal/live.rb:307 def process(name); end - # pkg:gem/actionpack#lib/action_controller/metal/live.rb:310 + # pkg:gem/actionpack#lib/action_controller/metal/live.rb:352 def response_body=(body); end # Sends a stream to the browser, which is helpful when you're generating exports @@ -4589,12 +4632,12 @@ module ActionController::Live # end # end # - # pkg:gem/actionpack#lib/action_controller/metal/live.rb:340 + # pkg:gem/actionpack#lib/action_controller/metal/live.rb:382 def send_stream(filename:, disposition: T.unsafe(nil), type: T.unsafe(nil)); end private - # pkg:gem/actionpack#lib/action_controller/metal/live.rb:379 + # pkg:gem/actionpack#lib/action_controller/metal/live.rb:421 def log_error(exception); end # Ensure we clean up any thread locals we copied so that the thread can reused. @@ -4617,18 +4660,32 @@ module ActionController::Live def original_new_controller_thread; end class << self - # pkg:gem/actionpack#lib/action_controller/metal/live.rb:375 + # pkg:gem/actionpack#lib/action_controller/metal/live.rb:94 + def live_streaming_excluded_keys; end + + # pkg:gem/actionpack#lib/action_controller/metal/live.rb:94 + def live_streaming_excluded_keys=(val); end + + # pkg:gem/actionpack#lib/action_controller/metal/live.rb:417 def live_thread_pool_executor; end end + + module GeneratedClassMethods + def live_streaming_excluded_keys; end + def live_streaming_excluded_keys=(value); end + def live_streaming_excluded_keys?; end + end + + module GeneratedInstanceMethods; end end -# pkg:gem/actionpack#lib/action_controller/metal/live.rb:152 +# pkg:gem/actionpack#lib/action_controller/metal/live.rb:193 class ActionController::Live::Buffer < ::ActionDispatch::Response::Buffer include ::MonitorMixin # @return [Buffer] a new instance of Buffer # - # pkg:gem/actionpack#lib/action_controller/metal/live.rb:167 + # pkg:gem/actionpack#lib/action_controller/metal/live.rb:208 def initialize(response); end # Inform the producer/writing thread that the client has disconnected; the @@ -4636,10 +4693,10 @@ class ActionController::Live::Buffer < ::ActionDispatch::Response::Buffer # # See also #close. # - # pkg:gem/actionpack#lib/action_controller/metal/live.rb:215 + # pkg:gem/actionpack#lib/action_controller/metal/live.rb:256 def abort; end - # pkg:gem/actionpack#lib/action_controller/metal/live.rb:234 + # pkg:gem/actionpack#lib/action_controller/metal/live.rb:275 def call_on_error; end # Write a 'close' event to the buffer; the producer/writing thread uses this to @@ -4647,7 +4704,7 @@ class ActionController::Live::Buffer < ::ActionDispatch::Response::Buffer # # See also #abort. # - # pkg:gem/actionpack#lib/action_controller/metal/live.rb:203 + # pkg:gem/actionpack#lib/action_controller/metal/live.rb:244 def close; end # Is the client still connected and waiting for content? @@ -4657,7 +4714,7 @@ class ActionController::Live::Buffer < ::ActionDispatch::Response::Buffer # # @return [Boolean] # - # pkg:gem/actionpack#lib/action_controller/metal/live.rb:226 + # pkg:gem/actionpack#lib/action_controller/metal/live.rb:267 def connected?; end # Ignore that the client has disconnected. @@ -4666,7 +4723,7 @@ class ActionController::Live::Buffer < ::ActionDispatch::Response::Buffer # result in the written content being silently discarded. If this value is # `false` (the default), a ClientDisconnected exception will be raised. # - # pkg:gem/actionpack#lib/action_controller/metal/live.rb:165 + # pkg:gem/actionpack#lib/action_controller/metal/live.rb:206 def ignore_disconnect; end # Ignore that the client has disconnected. @@ -4675,60 +4732,60 @@ class ActionController::Live::Buffer < ::ActionDispatch::Response::Buffer # result in the written content being silently discarded. If this value is # `false` (the default), a ClientDisconnected exception will be raised. # - # pkg:gem/actionpack#lib/action_controller/metal/live.rb:165 + # pkg:gem/actionpack#lib/action_controller/metal/live.rb:206 def ignore_disconnect=(_arg0); end - # pkg:gem/actionpack#lib/action_controller/metal/live.rb:230 + # pkg:gem/actionpack#lib/action_controller/metal/live.rb:271 def on_error(&block); end - # pkg:gem/actionpack#lib/action_controller/metal/live.rb:175 + # pkg:gem/actionpack#lib/action_controller/metal/live.rb:216 def write(string); end # Same as `write` but automatically include a newline at the end of the string. # - # pkg:gem/actionpack#lib/action_controller/metal/live.rb:195 + # pkg:gem/actionpack#lib/action_controller/metal/live.rb:236 def writeln(string); end private - # pkg:gem/actionpack#lib/action_controller/metal/live.rb:245 + # pkg:gem/actionpack#lib/action_controller/metal/live.rb:286 def build_queue(queue_size); end - # pkg:gem/actionpack#lib/action_controller/metal/live.rb:239 + # pkg:gem/actionpack#lib/action_controller/metal/live.rb:280 def each_chunk(&block); end class << self # Returns the value of attribute queue_size. # - # pkg:gem/actionpack#lib/action_controller/metal/live.rb:156 + # pkg:gem/actionpack#lib/action_controller/metal/live.rb:197 def queue_size; end # Sets the attribute queue_size # # @param value the value to set the attribute queue_size to. # - # pkg:gem/actionpack#lib/action_controller/metal/live.rb:156 + # pkg:gem/actionpack#lib/action_controller/metal/live.rb:197 def queue_size=(_arg0); end end end -# pkg:gem/actionpack#lib/action_controller/metal/live.rb:59 +# pkg:gem/actionpack#lib/action_controller/metal/live.rb:100 module ActionController::Live::ClassMethods - # pkg:gem/actionpack#lib/action_controller/metal/live.rb:60 + # pkg:gem/actionpack#lib/action_controller/metal/live.rb:101 def make_response!(request); end end -# pkg:gem/actionpack#lib/action_controller/metal/live.rb:149 +# pkg:gem/actionpack#lib/action_controller/metal/live.rb:190 class ActionController::Live::ClientDisconnected < ::RuntimeError; end -# pkg:gem/actionpack#lib/action_controller/metal/live.rb:250 +# pkg:gem/actionpack#lib/action_controller/metal/live.rb:291 class ActionController::Live::Response < ::ActionDispatch::Response private - # pkg:gem/actionpack#lib/action_controller/metal/live.rb:252 + # pkg:gem/actionpack#lib/action_controller/metal/live.rb:293 def before_committed; end - # pkg:gem/actionpack#lib/action_controller/metal/live.rb:259 + # pkg:gem/actionpack#lib/action_controller/metal/live.rb:300 def build_buffer(response, body); end end @@ -4771,26 +4828,26 @@ end # Note: SSEs are not currently supported by IE. However, they are supported by # Chrome, Firefox, Opera, and Safari. # -# pkg:gem/actionpack#lib/action_controller/metal/live.rb:112 +# pkg:gem/actionpack#lib/action_controller/metal/live.rb:153 class ActionController::Live::SSE # @return [SSE] a new instance of SSE # - # pkg:gem/actionpack#lib/action_controller/metal/live.rb:115 + # pkg:gem/actionpack#lib/action_controller/metal/live.rb:156 def initialize(stream, options = T.unsafe(nil)); end - # pkg:gem/actionpack#lib/action_controller/metal/live.rb:120 + # pkg:gem/actionpack#lib/action_controller/metal/live.rb:161 def close; end - # pkg:gem/actionpack#lib/action_controller/metal/live.rb:124 + # pkg:gem/actionpack#lib/action_controller/metal/live.rb:165 def write(object, options = T.unsafe(nil)); end private - # pkg:gem/actionpack#lib/action_controller/metal/live.rb:134 + # pkg:gem/actionpack#lib/action_controller/metal/live.rb:175 def perform_write(json, options); end end -# pkg:gem/actionpack#lib/action_controller/metal/live.rb:113 +# pkg:gem/actionpack#lib/action_controller/metal/live.rb:154 ActionController::Live::SSE::PERMITTED_OPTIONS = T.let(T.unsafe(nil), Array) # pkg:gem/actionpack#lib/action_controller/test_case.rb:184 @@ -4822,28 +4879,28 @@ class ActionController::LogSubscriber < ::ActiveSupport::LogSubscriber # pkg:gem/actionpack#lib/action_controller/log_subscriber.rb:7 def backtrace_cleaner?; end - # pkg:gem/actionpack#lib/action_controller/log_subscriber.rb:89 + # pkg:gem/actionpack#lib/action_controller/log_subscriber.rb:93 def exist_fragment?(event); end - # pkg:gem/actionpack#lib/action_controller/log_subscriber.rb:89 + # pkg:gem/actionpack#lib/action_controller/log_subscriber.rb:93 def expire_fragment(event); end # pkg:gem/actionpack#lib/action_controller/log_subscriber.rb:47 def halted_callback(event); end - # pkg:gem/actionpack#lib/action_controller/log_subscriber.rb:101 + # pkg:gem/actionpack#lib/action_controller/log_subscriber.rb:105 def logger; end # pkg:gem/actionpack#lib/action_controller/log_subscriber.rb:26 def process_action(event); end - # pkg:gem/actionpack#lib/action_controller/log_subscriber.rb:89 + # pkg:gem/actionpack#lib/action_controller/log_subscriber.rb:93 def read_fragment(event); end - # pkg:gem/actionpack#lib/action_controller/log_subscriber.rb:105 + # pkg:gem/actionpack#lib/action_controller/log_subscriber.rb:109 def redirect_source_location; end - # pkg:gem/actionpack#lib/action_controller/log_subscriber.rb:64 + # pkg:gem/actionpack#lib/action_controller/log_subscriber.rb:68 def redirect_to(event); end # Manually subscribed below @@ -4851,19 +4908,19 @@ class ActionController::LogSubscriber < ::ActiveSupport::LogSubscriber # pkg:gem/actionpack#lib/action_controller/log_subscriber.rb:53 def rescue_from_callback(event); end - # pkg:gem/actionpack#lib/action_controller/log_subscriber.rb:73 + # pkg:gem/actionpack#lib/action_controller/log_subscriber.rb:77 def send_data(event); end - # pkg:gem/actionpack#lib/action_controller/log_subscriber.rb:59 + # pkg:gem/actionpack#lib/action_controller/log_subscriber.rb:63 def send_file(event); end # pkg:gem/actionpack#lib/action_controller/log_subscriber.rb:9 def start_processing(event); end - # pkg:gem/actionpack#lib/action_controller/log_subscriber.rb:78 + # pkg:gem/actionpack#lib/action_controller/log_subscriber.rb:82 def unpermitted_parameters(event); end - # pkg:gem/actionpack#lib/action_controller/log_subscriber.rb:89 + # pkg:gem/actionpack#lib/action_controller/log_subscriber.rb:93 def write_fragment(event); end class << self @@ -7322,7 +7379,7 @@ module ActionController::Redirecting # The `action_on_open_redirect` configuration option controls the behavior when an unsafe # redirect is detected: # * `:log` - Logs a warning but allows the redirect - # * `:notify` - Sends an ActiveSupport notification for monitoring + # * `:notify` - Sends an Active Support notification for monitoring # * `:raise` - Raises an UnsafeRedirectError # # To allow any external redirects pass `allow_other_host: true`, though using a @@ -7349,7 +7406,7 @@ module ActionController::Redirecting # config.action_controller.action_on_path_relative_redirect = :raise # # * `:log` - Logs a warning but allows the redirect - # * `:notify` - Sends an ActiveSupport notification but allows the redirect + # * `:notify` - Sends an Active Support notification but allows the redirect # (includes stack trace to help identify the source) # * `:raise` - Raises an UnsafeRedirectError # @@ -8850,10 +8907,10 @@ end class ActionController::StructuredEventSubscriber < ::ActiveSupport::StructuredEventSubscriber # @return [Boolean] # - # pkg:gem/actionpack#lib/action_controller/structured_event_subscriber.rb:87 + # pkg:gem/actionpack#lib/action_controller/structured_event_subscriber.rb:91 def exist_fragment?(event); end - # pkg:gem/actionpack#lib/action_controller/structured_event_subscriber.rb:91 + # pkg:gem/actionpack#lib/action_controller/structured_event_subscriber.rb:95 def expire_fragment(event); end # pkg:gem/actionpack#lib/action_controller/structured_event_subscriber.rb:43 @@ -8862,36 +8919,36 @@ class ActionController::StructuredEventSubscriber < ::ActiveSupport::StructuredE # pkg:gem/actionpack#lib/action_controller/structured_event_subscriber.rb:25 def process_action(event); end - # pkg:gem/actionpack#lib/action_controller/structured_event_subscriber.rb:83 + # pkg:gem/actionpack#lib/action_controller/structured_event_subscriber.rb:87 def read_fragment(event); end - # pkg:gem/actionpack#lib/action_controller/structured_event_subscriber.rb:60 + # pkg:gem/actionpack#lib/action_controller/structured_event_subscriber.rb:64 def redirect_to(event); end # pkg:gem/actionpack#lib/action_controller/structured_event_subscriber.rb:47 def rescue_from_callback(event); end - # pkg:gem/actionpack#lib/action_controller/structured_event_subscriber.rb:64 + # pkg:gem/actionpack#lib/action_controller/structured_event_subscriber.rb:68 def send_data(event); end - # pkg:gem/actionpack#lib/action_controller/structured_event_subscriber.rb:56 + # pkg:gem/actionpack#lib/action_controller/structured_event_subscriber.rb:60 def send_file(event); end # pkg:gem/actionpack#lib/action_controller/structured_event_subscriber.rb:7 def start_processing(event); end - # pkg:gem/actionpack#lib/action_controller/structured_event_subscriber.rb:68 + # pkg:gem/actionpack#lib/action_controller/structured_event_subscriber.rb:72 def unpermitted_parameters(event); end - # pkg:gem/actionpack#lib/action_controller/structured_event_subscriber.rb:79 + # pkg:gem/actionpack#lib/action_controller/structured_event_subscriber.rb:83 def write_fragment(event); end private - # pkg:gem/actionpack#lib/action_controller/structured_event_subscriber.rb:106 + # pkg:gem/actionpack#lib/action_controller/structured_event_subscriber.rb:110 def additions_for(payload); end - # pkg:gem/actionpack#lib/action_controller/structured_event_subscriber.rb:96 + # pkg:gem/actionpack#lib/action_controller/structured_event_subscriber.rb:100 def fragment_cache(method_name, event); end end @@ -15879,18 +15936,18 @@ class ActionDispatch::RemoteIp::GetIp # Memoizes the value returned by #calculate_ip and returns it for # ActionDispatch::Request to use. # - # pkg:gem/actionpack#lib/action_dispatch/middleware/remote_ip.rb:173 + # pkg:gem/actionpack#lib/action_dispatch/middleware/remote_ip.rb:174 def to_s; end private - # pkg:gem/actionpack#lib/action_dispatch/middleware/remote_ip.rb:196 + # pkg:gem/actionpack#lib/action_dispatch/middleware/remote_ip.rb:197 def filter_proxies(ips); end - # pkg:gem/actionpack#lib/action_dispatch/middleware/remote_ip.rb:178 + # pkg:gem/actionpack#lib/action_dispatch/middleware/remote_ip.rb:179 def ips_from(header); end - # pkg:gem/actionpack#lib/action_dispatch/middleware/remote_ip.rb:184 + # pkg:gem/actionpack#lib/action_dispatch/middleware/remote_ip.rb:185 def sanitize_ips(ips); end end diff --git a/sorbet/rbi/gems/actiontext@8.1.1.rbi b/sorbet/rbi/gems/actiontext@8.1.2.rbi similarity index 100% rename from sorbet/rbi/gems/actiontext@8.1.1.rbi rename to sorbet/rbi/gems/actiontext@8.1.2.rbi diff --git a/sorbet/rbi/gems/actionview@8.1.1.rbi b/sorbet/rbi/gems/actionview@8.1.2.rbi similarity index 99% rename from sorbet/rbi/gems/actionview@8.1.1.rbi rename to sorbet/rbi/gems/actionview@8.1.2.rbi index 45a62b908..1dd838107 100644 --- a/sorbet/rbi/gems/actionview@8.1.1.rbi +++ b/sorbet/rbi/gems/actionview@8.1.2.rbi @@ -10634,7 +10634,7 @@ class ActionView::Helpers::Tags::FileField < ::ActionView::Helpers::Tags::TextFi private - # pkg:gem/actionview#lib/action_view/helpers/tags/file_field.rb:20 + # pkg:gem/actionview#lib/action_view/helpers/tags/file_field.rb:23 def hidden_field_for_multiple_file(options); end end diff --git a/sorbet/rbi/gems/activejob@8.1.1.rbi b/sorbet/rbi/gems/activejob@8.1.2.rbi similarity index 98% rename from sorbet/rbi/gems/activejob@8.1.1.rbi rename to sorbet/rbi/gems/activejob@8.1.2.rbi index af15e2d44..f08ef6313 100644 --- a/sorbet/rbi/gems/activejob@8.1.1.rbi +++ b/sorbet/rbi/gems/activejob@8.1.2.rbi @@ -74,48 +74,45 @@ module ActiveJob::Arguments private - # pkg:gem/activejob#lib/active_job/arguments.rb:193 + # pkg:gem/activejob#lib/active_job/arguments.rb:191 def convert_to_global_id_hash(argument); end # @return [Boolean] # - # pkg:gem/activejob#lib/active_job/arguments.rb:138 + # pkg:gem/activejob#lib/active_job/arguments.rb:136 def custom_serialized?(hash); end - # pkg:gem/activejob#lib/active_job/arguments.rb:111 + # pkg:gem/activejob#lib/active_job/arguments.rb:109 def deserialize_argument(argument); end - # pkg:gem/activejob#lib/active_job/arguments.rb:134 + # pkg:gem/activejob#lib/active_job/arguments.rb:132 def deserialize_global_id(hash); end - # pkg:gem/activejob#lib/active_job/arguments.rb:148 + # pkg:gem/activejob#lib/active_job/arguments.rb:146 def deserialize_hash(serialized_hash); end - # pkg:gem/activejob#lib/active_job/arguments.rb:142 + # pkg:gem/activejob#lib/active_job/arguments.rb:140 def serialize_hash(argument); end - # pkg:gem/activejob#lib/active_job/arguments.rb:161 + # pkg:gem/activejob#lib/active_job/arguments.rb:159 def serialize_hash_key(key); end - # pkg:gem/activejob#lib/active_job/arguments.rb:174 + # pkg:gem/activejob#lib/active_job/arguments.rb:172 def serialize_indifferent_hash(indifferent_hash); end # @return [Boolean] # - # pkg:gem/activejob#lib/active_job/arguments.rb:130 + # pkg:gem/activejob#lib/active_job/arguments.rb:128 def serialized_global_id?(hash); end - # pkg:gem/activejob#lib/active_job/arguments.rb:180 + # pkg:gem/activejob#lib/active_job/arguments.rb:178 def transform_symbol_keys(hash, symbol_keys); end end # pkg:gem/activejob#lib/active_job/arguments.rb:90 ActiveJob::Arguments::GLOBALID_KEY = T.let(T.unsafe(nil), String) -# pkg:gem/activejob#lib/active_job/arguments.rb:98 -ActiveJob::Arguments::OBJECT_SERIALIZER_KEY = T.let(T.unsafe(nil), String) - -# pkg:gem/activejob#lib/active_job/arguments.rb:101 +# pkg:gem/activejob#lib/active_job/arguments.rb:99 ActiveJob::Arguments::RESERVED_KEYS = T.let(T.unsafe(nil), Set) # pkg:gem/activejob#lib/active_job/arguments.rb:94 @@ -1464,8 +1461,25 @@ end module ActiveJob::EnqueueAfterTransactionCommit private - # pkg:gem/activejob#lib/active_job/enqueue_after_transaction_commit.rb:6 + # pkg:gem/activejob#lib/active_job/enqueue_after_transaction_commit.rb:25 def raw_enqueue; end + + class << self + # @private + # + # pkg:gem/activejob#lib/active_job/enqueue_after_transaction_commit.rb:6 + def included(base); end + end +end + +# pkg:gem/activejob#lib/active_job/enqueue_after_transaction_commit.rb:11 +module ActiveJob::EnqueueAfterTransactionCommit::ActiveJobMethods + # Ensures perform_all_later respects each job's enqueue_after_transaction_commit configuration. + # Jobs with enqueue_after_transaction_commit set to true are deferred and enqueued only after the transaction commits; + # other jobs are enqueued immediately. This ensures enqueuing timing matches the per-job setting. + # + # pkg:gem/activejob#lib/active_job/enqueue_after_transaction_commit.rb:15 + def perform_all_later(*jobs); end end # Can be raised by adapters if they wish to communicate to the caller a reason @@ -2132,12 +2146,12 @@ module ActiveJob::QueueAdapters # ActiveJob::QueueAdapters.lookup(:sidekiq) # # => ActiveJob::QueueAdapters::SidekiqAdapter # - # pkg:gem/activejob#lib/active_job/queue_adapters.rb:135 + # pkg:gem/activejob#lib/active_job/queue_adapters.rb:134 def lookup(name); end end end -# pkg:gem/activejob#lib/active_job/queue_adapters.rb:127 +# pkg:gem/activejob#lib/active_job/queue_adapters.rb:126 ActiveJob::QueueAdapters::ADAPTER = T.let(T.unsafe(nil), String) # = Active Job Abstract Adapter @@ -2767,6 +2781,9 @@ class ActiveJob::Serializers::ModuleSerializer < ::ActiveJob::Serializers::Objec def serialize(constant); end end +# pkg:gem/activejob#lib/active_job/serializers.rb:104 +ActiveJob::Serializers::OBJECT_SERIALIZER_KEY = T.let(T.unsafe(nil), String) + # Base class for serializing and deserializing custom objects. # # Example: diff --git a/sorbet/rbi/gems/activemodel@8.1.1.rbi b/sorbet/rbi/gems/activemodel@8.1.2.rbi similarity index 99% rename from sorbet/rbi/gems/activemodel@8.1.1.rbi rename to sorbet/rbi/gems/activemodel@8.1.2.rbi index 74bf957ab..4cc6675fa 100644 --- a/sorbet/rbi/gems/activemodel@8.1.1.rbi +++ b/sorbet/rbi/gems/activemodel@8.1.2.rbi @@ -3872,22 +3872,22 @@ class ActiveModel::Railtie < ::Rails::Railtie; end # pkg:gem/activemodel#lib/active_model/errors.rb:520 class ActiveModel::RangeError < ::RangeError; end -# pkg:gem/activemodel#lib/active_model/secure_password.rb:4 +# pkg:gem/activemodel#lib/active_model/secure_password.rb:6 module ActiveModel::SecurePassword extend ::ActiveSupport::Concern mixes_in_class_methods ::ActiveModel::SecurePassword::ClassMethods class << self - # pkg:gem/activemodel#lib/active_model/secure_password.rb:15 + # pkg:gem/activemodel#lib/active_model/secure_password.rb:17 def min_cost; end - # pkg:gem/activemodel#lib/active_model/secure_password.rb:15 + # pkg:gem/activemodel#lib/active_model/secure_password.rb:17 def min_cost=(_arg0); end end end -# pkg:gem/activemodel#lib/active_model/secure_password.rb:19 +# pkg:gem/activemodel#lib/active_model/secure_password.rb:21 module ActiveModel::SecurePassword::ClassMethods # Adds methods to set and authenticate against a BCrypt password. # This mechanism requires you to have a +XXX_digest+ attribute, @@ -3993,18 +3993,18 @@ module ActiveModel::SecurePassword::ClassMethods # # raises ActiveSupport::MessageVerifier::InvalidSignature since the token is expired # User.find_by_password_reset_token!(token) # - # pkg:gem/activemodel#lib/active_model/secure_password.rb:123 + # pkg:gem/activemodel#lib/active_model/secure_password.rb:125 def has_secure_password(attribute = T.unsafe(nil), validations: T.unsafe(nil), reset_token: T.unsafe(nil)); end end -# pkg:gem/activemodel#lib/active_model/secure_password.rb:12 +# pkg:gem/activemodel#lib/active_model/secure_password.rb:14 ActiveModel::SecurePassword::DEFAULT_RESET_TOKEN_EXPIRES_IN = T.let(T.unsafe(nil), ActiveSupport::Duration) -# pkg:gem/activemodel#lib/active_model/secure_password.rb:194 +# pkg:gem/activemodel#lib/active_model/secure_password.rb:196 class ActiveModel::SecurePassword::InstanceMethodsOnActivation < ::Module # @return [InstanceMethodsOnActivation] a new instance of InstanceMethodsOnActivation # - # pkg:gem/activemodel#lib/active_model/secure_password.rb:195 + # pkg:gem/activemodel#lib/active_model/secure_password.rb:197 def initialize(attribute, reset_token:); end end @@ -4012,7 +4012,7 @@ end # password of length more than 72 bytes it ignores extra characters. # Hence need to put a restriction on password length. # -# pkg:gem/activemodel#lib/active_model/secure_password.rb:10 +# pkg:gem/activemodel#lib/active_model/secure_password.rb:12 ActiveModel::SecurePassword::MAX_PASSWORD_LENGTH_ALLOWED = T.let(T.unsafe(nil), Integer) # = Active \Model \Serialization diff --git a/sorbet/rbi/gems/activerecord@8.1.1.rbi b/sorbet/rbi/gems/activerecord@8.1.2.rbi similarity index 98% rename from sorbet/rbi/gems/activerecord@8.1.1.rbi rename to sorbet/rbi/gems/activerecord@8.1.2.rbi index 61f8492e8..1638ef4f8 100644 --- a/sorbet/rbi/gems/activerecord@8.1.1.rbi +++ b/sorbet/rbi/gems/activerecord@8.1.2.rbi @@ -2498,9 +2498,9 @@ end # associated records themselves, you can always do something along the lines of # person.tasks.each(&:destroy). # -# == Deprecated Associations +# == Deprecated \Associations # -# Associations can be marked as deprecated by passing deprecated: true: +# \Associations can be marked as deprecated by passing deprecated: true: # # has_many :posts, deprecated: true # @@ -8575,7 +8575,7 @@ end # So it's possible to assign a logger to the class through Base.logger= which will then be used by all # instances in the current object space. # -# pkg:gem/activerecord#lib/active_record/base.rb:281 +# pkg:gem/activerecord#lib/active_record/base.rb:282 class ActiveRecord::Base include ::ActionText::Encryption include ::ActiveModel::Validations @@ -8707,1431 +8707,1431 @@ class ActiveRecord::Base extend ::ActionText::Attribute::ClassMethods extend ::ActiveRecord::SignedId::DeprecateSignedIdVerifierSecret - # pkg:gem/activerecord#lib/active_record/base.rb:282 + # pkg:gem/activerecord#lib/active_record/base.rb:283 def __callbacks; end - # pkg:gem/activerecord#lib/active_record/base.rb:320 + # pkg:gem/activerecord#lib/active_record/base.rb:321 def _before_commit_callbacks; end - # pkg:gem/activerecord#lib/active_record/base.rb:320 + # pkg:gem/activerecord#lib/active_record/base.rb:321 def _commit_callbacks; end - # pkg:gem/activerecord#lib/active_record/base.rb:314 + # pkg:gem/activerecord#lib/active_record/base.rb:315 def _create_callbacks; end - # pkg:gem/activerecord#lib/active_record/base.rb:314 + # pkg:gem/activerecord#lib/active_record/base.rb:315 def _destroy_callbacks; end - # pkg:gem/activerecord#lib/active_record/base.rb:314 + # pkg:gem/activerecord#lib/active_record/base.rb:315 def _find_callbacks; end - # pkg:gem/activerecord#lib/active_record/base.rb:314 + # pkg:gem/activerecord#lib/active_record/base.rb:315 def _initialize_callbacks; end - # pkg:gem/activerecord#lib/active_record/base.rb:323 + # pkg:gem/activerecord#lib/active_record/base.rb:324 def _reflections; end - # pkg:gem/activerecord#lib/active_record/base.rb:323 + # pkg:gem/activerecord#lib/active_record/base.rb:324 def _reflections?; end - # pkg:gem/activerecord#lib/active_record/base.rb:320 + # pkg:gem/activerecord#lib/active_record/base.rb:321 def _rollback_callbacks; end - # pkg:gem/activerecord#lib/active_record/base.rb:320 + # pkg:gem/activerecord#lib/active_record/base.rb:321 def _run_before_commit_callbacks; end - # pkg:gem/activerecord#lib/active_record/base.rb:320 + # pkg:gem/activerecord#lib/active_record/base.rb:321 def _run_before_commit_callbacks!(&block); end - # pkg:gem/activerecord#lib/active_record/base.rb:320 + # pkg:gem/activerecord#lib/active_record/base.rb:321 def _run_commit_callbacks; end - # pkg:gem/activerecord#lib/active_record/base.rb:320 + # pkg:gem/activerecord#lib/active_record/base.rb:321 def _run_commit_callbacks!(&block); end - # pkg:gem/activerecord#lib/active_record/base.rb:314 + # pkg:gem/activerecord#lib/active_record/base.rb:315 def _run_create_callbacks; end - # pkg:gem/activerecord#lib/active_record/base.rb:314 + # pkg:gem/activerecord#lib/active_record/base.rb:315 def _run_create_callbacks!(&block); end - # pkg:gem/activerecord#lib/active_record/base.rb:314 + # pkg:gem/activerecord#lib/active_record/base.rb:315 def _run_destroy_callbacks; end - # pkg:gem/activerecord#lib/active_record/base.rb:314 + # pkg:gem/activerecord#lib/active_record/base.rb:315 def _run_destroy_callbacks!(&block); end - # pkg:gem/activerecord#lib/active_record/base.rb:314 + # pkg:gem/activerecord#lib/active_record/base.rb:315 def _run_find_callbacks; end - # pkg:gem/activerecord#lib/active_record/base.rb:314 + # pkg:gem/activerecord#lib/active_record/base.rb:315 def _run_find_callbacks!(&block); end - # pkg:gem/activerecord#lib/active_record/base.rb:314 + # pkg:gem/activerecord#lib/active_record/base.rb:315 def _run_initialize_callbacks; end - # pkg:gem/activerecord#lib/active_record/base.rb:314 + # pkg:gem/activerecord#lib/active_record/base.rb:315 def _run_initialize_callbacks!(&block); end - # pkg:gem/activerecord#lib/active_record/base.rb:320 + # pkg:gem/activerecord#lib/active_record/base.rb:321 def _run_rollback_callbacks; end - # pkg:gem/activerecord#lib/active_record/base.rb:320 + # pkg:gem/activerecord#lib/active_record/base.rb:321 def _run_rollback_callbacks!(&block); end - # pkg:gem/activerecord#lib/active_record/base.rb:314 + # pkg:gem/activerecord#lib/active_record/base.rb:315 def _run_save_callbacks; end - # pkg:gem/activerecord#lib/active_record/base.rb:314 + # pkg:gem/activerecord#lib/active_record/base.rb:315 def _run_save_callbacks!(&block); end - # pkg:gem/activerecord#lib/active_record/base.rb:314 + # pkg:gem/activerecord#lib/active_record/base.rb:315 def _run_touch_callbacks; end - # pkg:gem/activerecord#lib/active_record/base.rb:314 + # pkg:gem/activerecord#lib/active_record/base.rb:315 def _run_touch_callbacks!(&block); end - # pkg:gem/activerecord#lib/active_record/base.rb:314 + # pkg:gem/activerecord#lib/active_record/base.rb:315 def _run_update_callbacks; end - # pkg:gem/activerecord#lib/active_record/base.rb:314 + # pkg:gem/activerecord#lib/active_record/base.rb:315 def _run_update_callbacks!(&block); end - # pkg:gem/activerecord#lib/active_record/base.rb:282 + # pkg:gem/activerecord#lib/active_record/base.rb:283 def _run_validate_callbacks(&block); end - # pkg:gem/activerecord#lib/active_record/base.rb:282 + # pkg:gem/activerecord#lib/active_record/base.rb:283 def _run_validate_callbacks!(&block); end - # pkg:gem/activerecord#lib/active_record/base.rb:309 + # pkg:gem/activerecord#lib/active_record/base.rb:310 def _run_validation_callbacks(&block); end - # pkg:gem/activerecord#lib/active_record/base.rb:309 + # pkg:gem/activerecord#lib/active_record/base.rb:310 def _run_validation_callbacks!(&block); end - # pkg:gem/activerecord#lib/active_record/base.rb:314 + # pkg:gem/activerecord#lib/active_record/base.rb:315 def _save_callbacks; end - # pkg:gem/activerecord#lib/active_record/base.rb:314 + # pkg:gem/activerecord#lib/active_record/base.rb:315 def _touch_callbacks; end - # pkg:gem/activerecord#lib/active_record/base.rb:314 + # pkg:gem/activerecord#lib/active_record/base.rb:315 def _update_callbacks; end - # pkg:gem/activerecord#lib/active_record/base.rb:282 + # pkg:gem/activerecord#lib/active_record/base.rb:283 def _validate_callbacks; end - # pkg:gem/activerecord#lib/active_record/base.rb:309 + # pkg:gem/activerecord#lib/active_record/base.rb:310 def _validation_callbacks; end - # pkg:gem/activerecord#lib/active_record/base.rb:282 + # pkg:gem/activerecord#lib/active_record/base.rb:283 def _validators; end - # pkg:gem/activerecord#lib/active_record/base.rb:282 + # pkg:gem/activerecord#lib/active_record/base.rb:283 def _validators?; end - # pkg:gem/activerecord#lib/active_record/base.rb:323 + # pkg:gem/activerecord#lib/active_record/base.rb:324 def aggregate_reflections; end - # pkg:gem/activerecord#lib/active_record/base.rb:323 + # pkg:gem/activerecord#lib/active_record/base.rb:324 def aggregate_reflections?; end - # pkg:gem/activerecord#lib/active_record/base.rb:335 + # pkg:gem/activerecord#lib/active_record/base.rb:336 def attachment_reflections; end - # pkg:gem/activerecord#lib/active_record/base.rb:335 + # pkg:gem/activerecord#lib/active_record/base.rb:336 def attachment_reflections?; end - # pkg:gem/activerecord#lib/active_record/base.rb:309 + # pkg:gem/activerecord#lib/active_record/base.rb:310 def attribute_aliases; end - # pkg:gem/activerecord#lib/active_record/base.rb:309 + # pkg:gem/activerecord#lib/active_record/base.rb:310 def attribute_aliases?; end - # pkg:gem/activerecord#lib/active_record/base.rb:309 + # pkg:gem/activerecord#lib/active_record/base.rb:310 def attribute_method_patterns; end - # pkg:gem/activerecord#lib/active_record/base.rb:309 + # pkg:gem/activerecord#lib/active_record/base.rb:310 def attribute_method_patterns?; end - # pkg:gem/activerecord#lib/active_record/base.rb:323 + # pkg:gem/activerecord#lib/active_record/base.rb:324 def automatic_scope_inversing; end - # pkg:gem/activerecord#lib/active_record/base.rb:323 + # pkg:gem/activerecord#lib/active_record/base.rb:324 def automatic_scope_inversing?; end - # pkg:gem/activerecord#lib/active_record/base.rb:323 + # pkg:gem/activerecord#lib/active_record/base.rb:324 def automatically_invert_plural_associations; end - # pkg:gem/activerecord#lib/active_record/base.rb:323 + # pkg:gem/activerecord#lib/active_record/base.rb:324 def automatically_invert_plural_associations?; end - # pkg:gem/activerecord#lib/active_record/base.rb:306 + # pkg:gem/activerecord#lib/active_record/base.rb:307 def cache_timestamp_format; end - # pkg:gem/activerecord#lib/active_record/base.rb:306 + # pkg:gem/activerecord#lib/active_record/base.rb:307 def cache_timestamp_format?; end - # pkg:gem/activerecord#lib/active_record/base.rb:306 + # pkg:gem/activerecord#lib/active_record/base.rb:307 def cache_versioning; end - # pkg:gem/activerecord#lib/active_record/base.rb:306 + # pkg:gem/activerecord#lib/active_record/base.rb:307 def cache_versioning?; end - # pkg:gem/activerecord#lib/active_record/base.rb:306 + # pkg:gem/activerecord#lib/active_record/base.rb:307 def collection_cache_versioning; end - # pkg:gem/activerecord#lib/active_record/base.rb:306 + # pkg:gem/activerecord#lib/active_record/base.rb:307 def collection_cache_versioning?; end - # pkg:gem/activerecord#lib/active_record/base.rb:301 + # pkg:gem/activerecord#lib/active_record/base.rb:302 def column_for_attribute(name, &_arg1); end - # pkg:gem/activerecord#lib/active_record/base.rb:308 + # pkg:gem/activerecord#lib/active_record/base.rb:309 def counter_cached_association_names; end - # pkg:gem/activerecord#lib/active_record/base.rb:308 + # pkg:gem/activerecord#lib/active_record/base.rb:309 def counter_cached_association_names?; end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def default_connection_handler; end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def default_connection_handler?; end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def default_role; end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def default_role?; end - # pkg:gem/activerecord#lib/active_record/base.rb:303 + # pkg:gem/activerecord#lib/active_record/base.rb:304 def default_scope_override; end - # pkg:gem/activerecord#lib/active_record/base.rb:303 + # pkg:gem/activerecord#lib/active_record/base.rb:304 def default_scopes; end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def default_shard; end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def default_shard?; end - # pkg:gem/activerecord#lib/active_record/base.rb:294 + # pkg:gem/activerecord#lib/active_record/base.rb:295 def defined_enums; end - # pkg:gem/activerecord#lib/active_record/base.rb:294 + # pkg:gem/activerecord#lib/active_record/base.rb:295 def defined_enums?; end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def destroy_association_async_batch_size; end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def destroy_association_async_job(&_arg0); end - # pkg:gem/activerecord#lib/active_record/base.rb:312 + # pkg:gem/activerecord#lib/active_record/base.rb:313 def encrypted_attributes; end - # pkg:gem/activerecord#lib/active_record/base.rb:312 + # pkg:gem/activerecord#lib/active_record/base.rb:313 def encrypted_attributes=(_arg0); end - # pkg:gem/activerecord#lib/active_record/base.rb:312 + # pkg:gem/activerecord#lib/active_record/base.rb:313 def encrypted_attributes?; end - # pkg:gem/activerecord#lib/active_record/base.rb:324 + # pkg:gem/activerecord#lib/active_record/base.rb:325 def include_root_in_json; end - # pkg:gem/activerecord#lib/active_record/base.rb:324 + # pkg:gem/activerecord#lib/active_record/base.rb:325 def include_root_in_json?; end - # pkg:gem/activerecord#lib/active_record/base.rb:310 + # pkg:gem/activerecord#lib/active_record/base.rb:311 def lock_optimistically; end - # pkg:gem/activerecord#lib/active_record/base.rb:310 + # pkg:gem/activerecord#lib/active_record/base.rb:311 def lock_optimistically?; end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def logger; end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def logger?; end - # pkg:gem/activerecord#lib/active_record/base.rb:282 + # pkg:gem/activerecord#lib/active_record/base.rb:283 def model_name(&_arg0); end - # pkg:gem/activerecord#lib/active_record/base.rb:319 + # pkg:gem/activerecord#lib/active_record/base.rb:320 def nested_attributes_options; end - # pkg:gem/activerecord#lib/active_record/base.rb:319 + # pkg:gem/activerecord#lib/active_record/base.rb:320 def nested_attributes_options?; end - # pkg:gem/activerecord#lib/active_record/base.rb:309 + # pkg:gem/activerecord#lib/active_record/base.rb:310 def normalized_attributes; end - # pkg:gem/activerecord#lib/active_record/base.rb:309 + # pkg:gem/activerecord#lib/active_record/base.rb:310 def normalized_attributes=(_arg0); end - # pkg:gem/activerecord#lib/active_record/base.rb:309 + # pkg:gem/activerecord#lib/active_record/base.rb:310 def normalized_attributes?; end - # pkg:gem/activerecord#lib/active_record/base.rb:282 + # pkg:gem/activerecord#lib/active_record/base.rb:283 def param_delimiter=(_arg0); end - # pkg:gem/activerecord#lib/active_record/base.rb:313 + # pkg:gem/activerecord#lib/active_record/base.rb:314 def partial_inserts; end - # pkg:gem/activerecord#lib/active_record/base.rb:313 + # pkg:gem/activerecord#lib/active_record/base.rb:314 def partial_inserts?; end - # pkg:gem/activerecord#lib/active_record/base.rb:313 + # pkg:gem/activerecord#lib/active_record/base.rb:314 def partial_updates; end - # pkg:gem/activerecord#lib/active_record/base.rb:313 + # pkg:gem/activerecord#lib/active_record/base.rb:314 def partial_updates?; end - # pkg:gem/activerecord#lib/active_record/base.rb:301 + # pkg:gem/activerecord#lib/active_record/base.rb:302 def pluralize_table_names; end - # pkg:gem/activerecord#lib/active_record/base.rb:301 + # pkg:gem/activerecord#lib/active_record/base.rb:302 def pluralize_table_names?; end - # pkg:gem/activerecord#lib/active_record/base.rb:301 + # pkg:gem/activerecord#lib/active_record/base.rb:302 def primary_key_prefix_type; end - # pkg:gem/activerecord#lib/active_record/base.rb:301 + # pkg:gem/activerecord#lib/active_record/base.rb:302 def primary_key_prefix_type?; end - # pkg:gem/activerecord#lib/active_record/base.rb:315 + # pkg:gem/activerecord#lib/active_record/base.rb:316 def record_timestamps; end - # pkg:gem/activerecord#lib/active_record/base.rb:315 + # pkg:gem/activerecord#lib/active_record/base.rb:316 def record_timestamps=(_arg0); end - # pkg:gem/activerecord#lib/active_record/base.rb:315 + # pkg:gem/activerecord#lib/active_record/base.rb:316 def record_timestamps?; end - # pkg:gem/activerecord#lib/active_record/base.rb:328 + # pkg:gem/activerecord#lib/active_record/base.rb:329 def signed_id_verifier_secret; end - # pkg:gem/activerecord#lib/active_record/base.rb:328 + # pkg:gem/activerecord#lib/active_record/base.rb:329 def signed_id_verifier_secret?; end - # pkg:gem/activerecord#lib/active_record/base.rb:313 + # pkg:gem/activerecord#lib/active_record/base.rb:314 def skip_time_zone_conversion_for_attributes; end - # pkg:gem/activerecord#lib/active_record/base.rb:313 + # pkg:gem/activerecord#lib/active_record/base.rb:314 def skip_time_zone_conversion_for_attributes?; end - # pkg:gem/activerecord#lib/active_record/base.rb:302 + # pkg:gem/activerecord#lib/active_record/base.rb:303 def store_full_class_name; end - # pkg:gem/activerecord#lib/active_record/base.rb:302 + # pkg:gem/activerecord#lib/active_record/base.rb:303 def store_full_class_name?; end - # pkg:gem/activerecord#lib/active_record/base.rb:302 + # pkg:gem/activerecord#lib/active_record/base.rb:303 def store_full_sti_class; end - # pkg:gem/activerecord#lib/active_record/base.rb:302 + # pkg:gem/activerecord#lib/active_record/base.rb:303 def store_full_sti_class?; end - # pkg:gem/activerecord#lib/active_record/base.rb:301 + # pkg:gem/activerecord#lib/active_record/base.rb:302 def table_name_prefix; end - # pkg:gem/activerecord#lib/active_record/base.rb:301 + # pkg:gem/activerecord#lib/active_record/base.rb:302 def table_name_prefix?; end - # pkg:gem/activerecord#lib/active_record/base.rb:301 + # pkg:gem/activerecord#lib/active_record/base.rb:302 def table_name_suffix; end - # pkg:gem/activerecord#lib/active_record/base.rb:301 + # pkg:gem/activerecord#lib/active_record/base.rb:302 def table_name_suffix?; end - # pkg:gem/activerecord#lib/active_record/base.rb:313 + # pkg:gem/activerecord#lib/active_record/base.rb:314 def time_zone_aware_attributes; end - # pkg:gem/activerecord#lib/active_record/base.rb:313 + # pkg:gem/activerecord#lib/active_record/base.rb:314 def time_zone_aware_attributes?; end - # pkg:gem/activerecord#lib/active_record/base.rb:313 + # pkg:gem/activerecord#lib/active_record/base.rb:314 def time_zone_aware_types; end - # pkg:gem/activerecord#lib/active_record/base.rb:313 + # pkg:gem/activerecord#lib/active_record/base.rb:314 def time_zone_aware_types?; end - # pkg:gem/activerecord#lib/active_record/base.rb:301 + # pkg:gem/activerecord#lib/active_record/base.rb:302 def type_for_attribute(*_arg0, **_arg1, &_arg2); end class << self - # pkg:gem/activerecord#lib/active_record/base.rb:282 + # pkg:gem/activerecord#lib/active_record/base.rb:283 def __callbacks; end - # pkg:gem/activerecord#lib/active_record/base.rb:282 + # pkg:gem/activerecord#lib/active_record/base.rb:283 def __callbacks=(value); end - # pkg:gem/activerecord#lib/active_record/base.rb:300 + # pkg:gem/activerecord#lib/active_record/base.rb:301 def _attr_readonly; end - # pkg:gem/activerecord#lib/active_record/base.rb:300 + # pkg:gem/activerecord#lib/active_record/base.rb:301 def _attr_readonly=(value); end - # pkg:gem/activerecord#lib/active_record/base.rb:300 + # pkg:gem/activerecord#lib/active_record/base.rb:301 def _attr_readonly?; end - # pkg:gem/activerecord#lib/active_record/base.rb:320 + # pkg:gem/activerecord#lib/active_record/base.rb:321 def _before_commit_callbacks; end - # pkg:gem/activerecord#lib/active_record/base.rb:320 + # pkg:gem/activerecord#lib/active_record/base.rb:321 def _before_commit_callbacks=(value); end - # pkg:gem/activerecord#lib/active_record/base.rb:320 + # pkg:gem/activerecord#lib/active_record/base.rb:321 def _commit_callbacks; end - # pkg:gem/activerecord#lib/active_record/base.rb:320 + # pkg:gem/activerecord#lib/active_record/base.rb:321 def _commit_callbacks=(value); end - # pkg:gem/activerecord#lib/active_record/base.rb:308 + # pkg:gem/activerecord#lib/active_record/base.rb:309 def _counter_cache_columns; end - # pkg:gem/activerecord#lib/active_record/base.rb:308 + # pkg:gem/activerecord#lib/active_record/base.rb:309 def _counter_cache_columns=(value); end - # pkg:gem/activerecord#lib/active_record/base.rb:308 + # pkg:gem/activerecord#lib/active_record/base.rb:309 def _counter_cache_columns?; end - # pkg:gem/activerecord#lib/active_record/base.rb:314 + # pkg:gem/activerecord#lib/active_record/base.rb:315 def _create_callbacks; end - # pkg:gem/activerecord#lib/active_record/base.rb:314 + # pkg:gem/activerecord#lib/active_record/base.rb:315 def _create_callbacks=(value); end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def _destroy_association_async_job; end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def _destroy_association_async_job=(value); end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def _destroy_association_async_job?; end - # pkg:gem/activerecord#lib/active_record/base.rb:314 + # pkg:gem/activerecord#lib/active_record/base.rb:315 def _destroy_callbacks; end - # pkg:gem/activerecord#lib/active_record/base.rb:314 + # pkg:gem/activerecord#lib/active_record/base.rb:315 def _destroy_callbacks=(value); end - # pkg:gem/activerecord#lib/active_record/base.rb:314 + # pkg:gem/activerecord#lib/active_record/base.rb:315 def _find_callbacks; end - # pkg:gem/activerecord#lib/active_record/base.rb:314 + # pkg:gem/activerecord#lib/active_record/base.rb:315 def _find_callbacks=(value); end - # pkg:gem/activerecord#lib/active_record/base.rb:314 + # pkg:gem/activerecord#lib/active_record/base.rb:315 def _initialize_callbacks; end - # pkg:gem/activerecord#lib/active_record/base.rb:314 + # pkg:gem/activerecord#lib/active_record/base.rb:315 def _initialize_callbacks=(value); end - # pkg:gem/activerecord#lib/active_record/base.rb:323 + # pkg:gem/activerecord#lib/active_record/base.rb:324 def _reflections; end - # pkg:gem/activerecord#lib/active_record/base.rb:323 + # pkg:gem/activerecord#lib/active_record/base.rb:324 def _reflections=(value); end - # pkg:gem/activerecord#lib/active_record/base.rb:323 + # pkg:gem/activerecord#lib/active_record/base.rb:324 def _reflections?; end - # pkg:gem/activerecord#lib/active_record/base.rb:320 + # pkg:gem/activerecord#lib/active_record/base.rb:321 def _rollback_callbacks; end - # pkg:gem/activerecord#lib/active_record/base.rb:320 + # pkg:gem/activerecord#lib/active_record/base.rb:321 def _rollback_callbacks=(value); end - # pkg:gem/activerecord#lib/active_record/base.rb:314 + # pkg:gem/activerecord#lib/active_record/base.rb:315 def _save_callbacks; end - # pkg:gem/activerecord#lib/active_record/base.rb:314 + # pkg:gem/activerecord#lib/active_record/base.rb:315 def _save_callbacks=(value); end - # pkg:gem/activerecord#lib/active_record/base.rb:328 + # pkg:gem/activerecord#lib/active_record/base.rb:329 def _signed_id_verifier; end - # pkg:gem/activerecord#lib/active_record/base.rb:328 + # pkg:gem/activerecord#lib/active_record/base.rb:329 def _signed_id_verifier=(value); end - # pkg:gem/activerecord#lib/active_record/base.rb:314 + # pkg:gem/activerecord#lib/active_record/base.rb:315 def _touch_callbacks; end - # pkg:gem/activerecord#lib/active_record/base.rb:314 + # pkg:gem/activerecord#lib/active_record/base.rb:315 def _touch_callbacks=(value); end - # pkg:gem/activerecord#lib/active_record/base.rb:314 + # pkg:gem/activerecord#lib/active_record/base.rb:315 def _update_callbacks; end - # pkg:gem/activerecord#lib/active_record/base.rb:314 + # pkg:gem/activerecord#lib/active_record/base.rb:315 def _update_callbacks=(value); end - # pkg:gem/activerecord#lib/active_record/base.rb:282 + # pkg:gem/activerecord#lib/active_record/base.rb:283 def _validate_callbacks; end - # pkg:gem/activerecord#lib/active_record/base.rb:282 + # pkg:gem/activerecord#lib/active_record/base.rb:283 def _validate_callbacks=(value); end - # pkg:gem/activerecord#lib/active_record/base.rb:309 + # pkg:gem/activerecord#lib/active_record/base.rb:310 def _validation_callbacks; end - # pkg:gem/activerecord#lib/active_record/base.rb:309 + # pkg:gem/activerecord#lib/active_record/base.rb:310 def _validation_callbacks=(value); end - # pkg:gem/activerecord#lib/active_record/base.rb:282 + # pkg:gem/activerecord#lib/active_record/base.rb:283 def _validators; end - # pkg:gem/activerecord#lib/active_record/base.rb:282 + # pkg:gem/activerecord#lib/active_record/base.rb:283 def _validators=(value); end - # pkg:gem/activerecord#lib/active_record/base.rb:282 + # pkg:gem/activerecord#lib/active_record/base.rb:283 def _validators?; end - # pkg:gem/activerecord#lib/active_record/base.rb:314 + # pkg:gem/activerecord#lib/active_record/base.rb:315 def after_create(*args, **options, &block); end - # pkg:gem/activerecord#lib/active_record/base.rb:314 + # pkg:gem/activerecord#lib/active_record/base.rb:315 def after_destroy(*args, **options, &block); end - # pkg:gem/activerecord#lib/active_record/base.rb:314 + # pkg:gem/activerecord#lib/active_record/base.rb:315 def after_find(*args, **options, &block); end - # pkg:gem/activerecord#lib/active_record/base.rb:314 + # pkg:gem/activerecord#lib/active_record/base.rb:315 def after_initialize(*args, **options, &block); end - # pkg:gem/activerecord#lib/active_record/base.rb:314 + # pkg:gem/activerecord#lib/active_record/base.rb:315 def after_save(*args, **options, &block); end - # pkg:gem/activerecord#lib/active_record/base.rb:314 + # pkg:gem/activerecord#lib/active_record/base.rb:315 def after_touch(*args, **options, &block); end - # pkg:gem/activerecord#lib/active_record/base.rb:314 + # pkg:gem/activerecord#lib/active_record/base.rb:315 def after_update(*args, **options, &block); end - # pkg:gem/activerecord#lib/active_record/base.rb:323 + # pkg:gem/activerecord#lib/active_record/base.rb:324 def aggregate_reflections; end - # pkg:gem/activerecord#lib/active_record/base.rb:323 + # pkg:gem/activerecord#lib/active_record/base.rb:324 def aggregate_reflections=(value); end - # pkg:gem/activerecord#lib/active_record/base.rb:323 + # pkg:gem/activerecord#lib/active_record/base.rb:324 def aggregate_reflections?; end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def application_record_class?; end - # pkg:gem/activerecord#lib/active_record/base.rb:314 + # pkg:gem/activerecord#lib/active_record/base.rb:315 def around_create(*args, **options, &block); end - # pkg:gem/activerecord#lib/active_record/base.rb:314 + # pkg:gem/activerecord#lib/active_record/base.rb:315 def around_destroy(*args, **options, &block); end - # pkg:gem/activerecord#lib/active_record/base.rb:314 + # pkg:gem/activerecord#lib/active_record/base.rb:315 def around_save(*args, **options, &block); end - # pkg:gem/activerecord#lib/active_record/base.rb:314 + # pkg:gem/activerecord#lib/active_record/base.rb:315 def around_update(*args, **options, &block); end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def asynchronous_queries_session; end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def asynchronous_queries_tracker; end - # pkg:gem/activerecord#lib/active_record/base.rb:335 + # pkg:gem/activerecord#lib/active_record/base.rb:336 def attachment_reflections; end - # pkg:gem/activerecord#lib/active_record/base.rb:335 + # pkg:gem/activerecord#lib/active_record/base.rb:336 def attachment_reflections=(value); end - # pkg:gem/activerecord#lib/active_record/base.rb:335 + # pkg:gem/activerecord#lib/active_record/base.rb:336 def attachment_reflections?; end - # pkg:gem/activerecord#lib/active_record/base.rb:309 + # pkg:gem/activerecord#lib/active_record/base.rb:310 def attribute_aliases; end - # pkg:gem/activerecord#lib/active_record/base.rb:309 + # pkg:gem/activerecord#lib/active_record/base.rb:310 def attribute_aliases=(value); end - # pkg:gem/activerecord#lib/active_record/base.rb:309 + # pkg:gem/activerecord#lib/active_record/base.rb:310 def attribute_aliases?; end - # pkg:gem/activerecord#lib/active_record/base.rb:309 + # pkg:gem/activerecord#lib/active_record/base.rb:310 def attribute_method_patterns; end - # pkg:gem/activerecord#lib/active_record/base.rb:309 + # pkg:gem/activerecord#lib/active_record/base.rb:310 def attribute_method_patterns=(value); end - # pkg:gem/activerecord#lib/active_record/base.rb:309 + # pkg:gem/activerecord#lib/active_record/base.rb:310 def attribute_method_patterns?; end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def attributes_for_inspect; end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def attributes_for_inspect=(value); end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def attributes_for_inspect?; end - # pkg:gem/activerecord#lib/active_record/base.rb:323 + # pkg:gem/activerecord#lib/active_record/base.rb:324 def automatic_scope_inversing; end - # pkg:gem/activerecord#lib/active_record/base.rb:323 + # pkg:gem/activerecord#lib/active_record/base.rb:324 def automatic_scope_inversing=(value); end - # pkg:gem/activerecord#lib/active_record/base.rb:323 + # pkg:gem/activerecord#lib/active_record/base.rb:324 def automatic_scope_inversing?; end - # pkg:gem/activerecord#lib/active_record/base.rb:323 + # pkg:gem/activerecord#lib/active_record/base.rb:324 def automatically_invert_plural_associations; end - # pkg:gem/activerecord#lib/active_record/base.rb:323 + # pkg:gem/activerecord#lib/active_record/base.rb:324 def automatically_invert_plural_associations=(value); end - # pkg:gem/activerecord#lib/active_record/base.rb:323 + # pkg:gem/activerecord#lib/active_record/base.rb:324 def automatically_invert_plural_associations?; end - # pkg:gem/activerecord#lib/active_record/base.rb:314 + # pkg:gem/activerecord#lib/active_record/base.rb:315 def before_create(*args, **options, &block); end - # pkg:gem/activerecord#lib/active_record/base.rb:314 + # pkg:gem/activerecord#lib/active_record/base.rb:315 def before_destroy(*args, **options, &block); end - # pkg:gem/activerecord#lib/active_record/base.rb:314 + # pkg:gem/activerecord#lib/active_record/base.rb:315 def before_save(*args, **options, &block); end - # pkg:gem/activerecord#lib/active_record/base.rb:314 + # pkg:gem/activerecord#lib/active_record/base.rb:315 def before_update(*args, **options, &block); end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def belongs_to_required_by_default; end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def belongs_to_required_by_default=(value); end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def belongs_to_required_by_default?; end - # pkg:gem/activerecord#lib/active_record/base.rb:306 + # pkg:gem/activerecord#lib/active_record/base.rb:307 def cache_timestamp_format; end - # pkg:gem/activerecord#lib/active_record/base.rb:306 + # pkg:gem/activerecord#lib/active_record/base.rb:307 def cache_timestamp_format=(value); end - # pkg:gem/activerecord#lib/active_record/base.rb:306 + # pkg:gem/activerecord#lib/active_record/base.rb:307 def cache_timestamp_format?; end - # pkg:gem/activerecord#lib/active_record/base.rb:306 + # pkg:gem/activerecord#lib/active_record/base.rb:307 def cache_versioning; end - # pkg:gem/activerecord#lib/active_record/base.rb:306 + # pkg:gem/activerecord#lib/active_record/base.rb:307 def cache_versioning=(value); end - # pkg:gem/activerecord#lib/active_record/base.rb:306 + # pkg:gem/activerecord#lib/active_record/base.rb:307 def cache_versioning?; end - # pkg:gem/activerecord#lib/active_record/base.rb:306 + # pkg:gem/activerecord#lib/active_record/base.rb:307 def collection_cache_versioning; end - # pkg:gem/activerecord#lib/active_record/base.rb:306 + # pkg:gem/activerecord#lib/active_record/base.rb:307 def collection_cache_versioning=(value); end - # pkg:gem/activerecord#lib/active_record/base.rb:306 + # pkg:gem/activerecord#lib/active_record/base.rb:307 def collection_cache_versioning?; end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def configurations; end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def configurations=(config); end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def connected_to_stack; end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def connection_class; end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def connection_class=(b); end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def connection_class?; end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def connection_class_for_self; end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def connection_handler; end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def connection_handler=(handler); end - # pkg:gem/activerecord#lib/active_record/base.rb:308 + # pkg:gem/activerecord#lib/active_record/base.rb:309 def counter_cached_association_names; end - # pkg:gem/activerecord#lib/active_record/base.rb:308 + # pkg:gem/activerecord#lib/active_record/base.rb:309 def counter_cached_association_names=(value); end - # pkg:gem/activerecord#lib/active_record/base.rb:308 + # pkg:gem/activerecord#lib/active_record/base.rb:309 def counter_cached_association_names?; end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def current_preventing_writes; end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def current_role; end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def current_shard; end - # pkg:gem/activerecord#lib/active_record/base.rb:313 + # pkg:gem/activerecord#lib/active_record/base.rb:314 def default_column_serializer; end - # pkg:gem/activerecord#lib/active_record/base.rb:313 + # pkg:gem/activerecord#lib/active_record/base.rb:314 def default_column_serializer=(value); end - # pkg:gem/activerecord#lib/active_record/base.rb:313 + # pkg:gem/activerecord#lib/active_record/base.rb:314 def default_column_serializer?; end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def default_connection_handler; end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def default_connection_handler=(value); end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def default_connection_handler?; end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def default_role; end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def default_role=(value); end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def default_role?; end - # pkg:gem/activerecord#lib/active_record/base.rb:303 + # pkg:gem/activerecord#lib/active_record/base.rb:304 def default_scope_override; end - # pkg:gem/activerecord#lib/active_record/base.rb:303 + # pkg:gem/activerecord#lib/active_record/base.rb:304 def default_scope_override=(value); end - # pkg:gem/activerecord#lib/active_record/base.rb:303 + # pkg:gem/activerecord#lib/active_record/base.rb:304 def default_scopes; end - # pkg:gem/activerecord#lib/active_record/base.rb:303 + # pkg:gem/activerecord#lib/active_record/base.rb:304 def default_scopes=(value); end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def default_shard; end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def default_shard=(value); end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def default_shard?; end - # pkg:gem/activerecord#lib/active_record/base.rb:294 + # pkg:gem/activerecord#lib/active_record/base.rb:295 def defined_enums; end - # pkg:gem/activerecord#lib/active_record/base.rb:294 + # pkg:gem/activerecord#lib/active_record/base.rb:295 def defined_enums=(value); end - # pkg:gem/activerecord#lib/active_record/base.rb:294 + # pkg:gem/activerecord#lib/active_record/base.rb:295 def defined_enums?; end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def destroy_association_async_batch_size; end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def destroy_association_async_batch_size=(value); end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def destroy_association_async_job; end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def destroy_association_async_job=(value); end - # pkg:gem/activerecord#lib/active_record/base.rb:312 + # pkg:gem/activerecord#lib/active_record/base.rb:313 def encrypted_attributes; end - # pkg:gem/activerecord#lib/active_record/base.rb:312 + # pkg:gem/activerecord#lib/active_record/base.rb:313 def encrypted_attributes=(value); end - # pkg:gem/activerecord#lib/active_record/base.rb:312 + # pkg:gem/activerecord#lib/active_record/base.rb:313 def encrypted_attributes?; end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def enumerate_columns_in_select_statements; end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def enumerate_columns_in_select_statements=(value); end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def enumerate_columns_in_select_statements?; end - # pkg:gem/activerecord#lib/active_record/base.rb:327 + # pkg:gem/activerecord#lib/active_record/base.rb:328 def generated_token_verifier; end - # pkg:gem/activerecord#lib/active_record/base.rb:327 + # pkg:gem/activerecord#lib/active_record/base.rb:328 def generated_token_verifier=(value); end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def has_many_inversing; end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def has_many_inversing=(value); end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def has_many_inversing?; end - # pkg:gem/activerecord#lib/active_record/base.rb:301 + # pkg:gem/activerecord#lib/active_record/base.rb:302 def immutable_strings_by_default; end - # pkg:gem/activerecord#lib/active_record/base.rb:301 + # pkg:gem/activerecord#lib/active_record/base.rb:302 def immutable_strings_by_default=(value); end - # pkg:gem/activerecord#lib/active_record/base.rb:301 + # pkg:gem/activerecord#lib/active_record/base.rb:302 def immutable_strings_by_default?; end - # pkg:gem/activerecord#lib/active_record/base.rb:301 + # pkg:gem/activerecord#lib/active_record/base.rb:302 def implicit_order_column; end - # pkg:gem/activerecord#lib/active_record/base.rb:301 + # pkg:gem/activerecord#lib/active_record/base.rb:302 def implicit_order_column=(value); end - # pkg:gem/activerecord#lib/active_record/base.rb:301 + # pkg:gem/activerecord#lib/active_record/base.rb:302 def implicit_order_column?; end - # pkg:gem/activerecord#lib/active_record/base.rb:324 + # pkg:gem/activerecord#lib/active_record/base.rb:325 def include_root_in_json; end - # pkg:gem/activerecord#lib/active_record/base.rb:324 + # pkg:gem/activerecord#lib/active_record/base.rb:325 def include_root_in_json=(value); end - # pkg:gem/activerecord#lib/active_record/base.rb:324 + # pkg:gem/activerecord#lib/active_record/base.rb:325 def include_root_in_json?; end - # pkg:gem/activerecord#lib/active_record/base.rb:301 + # pkg:gem/activerecord#lib/active_record/base.rb:302 def inheritance_column; end - # pkg:gem/activerecord#lib/active_record/base.rb:301 + # pkg:gem/activerecord#lib/active_record/base.rb:302 def inheritance_column=(value); end - # pkg:gem/activerecord#lib/active_record/base.rb:301 + # pkg:gem/activerecord#lib/active_record/base.rb:302 def inheritance_column?; end - # pkg:gem/activerecord#lib/active_record/base.rb:301 + # pkg:gem/activerecord#lib/active_record/base.rb:302 def internal_metadata_table_name; end - # pkg:gem/activerecord#lib/active_record/base.rb:301 + # pkg:gem/activerecord#lib/active_record/base.rb:302 def internal_metadata_table_name=(value); end - # pkg:gem/activerecord#lib/active_record/base.rb:301 + # pkg:gem/activerecord#lib/active_record/base.rb:302 def internal_metadata_table_name?; end - # pkg:gem/activerecord#lib/active_record/base.rb:325 + # pkg:gem/activerecord#lib/active_record/base.rb:326 def local_stored_attributes; end - # pkg:gem/activerecord#lib/active_record/base.rb:325 + # pkg:gem/activerecord#lib/active_record/base.rb:326 def local_stored_attributes=(_arg0); end - # pkg:gem/activerecord#lib/active_record/base.rb:310 + # pkg:gem/activerecord#lib/active_record/base.rb:311 def lock_optimistically; end - # pkg:gem/activerecord#lib/active_record/base.rb:310 + # pkg:gem/activerecord#lib/active_record/base.rb:311 def lock_optimistically=(value); end - # pkg:gem/activerecord#lib/active_record/base.rb:310 + # pkg:gem/activerecord#lib/active_record/base.rb:311 def lock_optimistically?; end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def logger; end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def logger=(value); end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def logger?; end - # pkg:gem/activerecord#lib/active_record/base.rb:319 + # pkg:gem/activerecord#lib/active_record/base.rb:320 def nested_attributes_options; end - # pkg:gem/activerecord#lib/active_record/base.rb:319 + # pkg:gem/activerecord#lib/active_record/base.rb:320 def nested_attributes_options=(value); end - # pkg:gem/activerecord#lib/active_record/base.rb:319 + # pkg:gem/activerecord#lib/active_record/base.rb:320 def nested_attributes_options?; end - # pkg:gem/activerecord#lib/active_record/base.rb:309 + # pkg:gem/activerecord#lib/active_record/base.rb:310 def normalized_attributes; end - # pkg:gem/activerecord#lib/active_record/base.rb:309 + # pkg:gem/activerecord#lib/active_record/base.rb:310 def normalized_attributes=(value); end - # pkg:gem/activerecord#lib/active_record/base.rb:309 + # pkg:gem/activerecord#lib/active_record/base.rb:310 def normalized_attributes?; end - # pkg:gem/activerecord#lib/active_record/base.rb:282 + # pkg:gem/activerecord#lib/active_record/base.rb:283 def param_delimiter; end - # pkg:gem/activerecord#lib/active_record/base.rb:282 + # pkg:gem/activerecord#lib/active_record/base.rb:283 def param_delimiter=(value); end - # pkg:gem/activerecord#lib/active_record/base.rb:282 + # pkg:gem/activerecord#lib/active_record/base.rb:283 def param_delimiter?; end - # pkg:gem/activerecord#lib/active_record/base.rb:313 + # pkg:gem/activerecord#lib/active_record/base.rb:314 def partial_inserts; end - # pkg:gem/activerecord#lib/active_record/base.rb:313 + # pkg:gem/activerecord#lib/active_record/base.rb:314 def partial_inserts=(value); end - # pkg:gem/activerecord#lib/active_record/base.rb:313 + # pkg:gem/activerecord#lib/active_record/base.rb:314 def partial_inserts?; end - # pkg:gem/activerecord#lib/active_record/base.rb:313 + # pkg:gem/activerecord#lib/active_record/base.rb:314 def partial_updates; end - # pkg:gem/activerecord#lib/active_record/base.rb:313 + # pkg:gem/activerecord#lib/active_record/base.rb:314 def partial_updates=(value); end - # pkg:gem/activerecord#lib/active_record/base.rb:313 + # pkg:gem/activerecord#lib/active_record/base.rb:314 def partial_updates?; end - # pkg:gem/activerecord#lib/active_record/base.rb:301 + # pkg:gem/activerecord#lib/active_record/base.rb:302 def pluralize_table_names; end - # pkg:gem/activerecord#lib/active_record/base.rb:301 + # pkg:gem/activerecord#lib/active_record/base.rb:302 def pluralize_table_names=(value); end - # pkg:gem/activerecord#lib/active_record/base.rb:301 + # pkg:gem/activerecord#lib/active_record/base.rb:302 def pluralize_table_names?; end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def preventing_writes?(class_name); end - # pkg:gem/activerecord#lib/active_record/base.rb:301 + # pkg:gem/activerecord#lib/active_record/base.rb:302 def primary_key_prefix_type; end - # pkg:gem/activerecord#lib/active_record/base.rb:301 + # pkg:gem/activerecord#lib/active_record/base.rb:302 def primary_key_prefix_type=(value); end - # pkg:gem/activerecord#lib/active_record/base.rb:301 + # pkg:gem/activerecord#lib/active_record/base.rb:302 def primary_key_prefix_type?; end - # pkg:gem/activerecord#lib/active_record/base.rb:315 + # pkg:gem/activerecord#lib/active_record/base.rb:316 def record_timestamps; end - # pkg:gem/activerecord#lib/active_record/base.rb:315 + # pkg:gem/activerecord#lib/active_record/base.rb:316 def record_timestamps=(value); end - # pkg:gem/activerecord#lib/active_record/base.rb:315 + # pkg:gem/activerecord#lib/active_record/base.rb:316 def record_timestamps?; end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def run_commit_callbacks_on_first_saved_instances_in_transaction; end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def run_commit_callbacks_on_first_saved_instances_in_transaction=(value); end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def run_commit_callbacks_on_first_saved_instances_in_transaction?; end - # pkg:gem/activerecord#lib/active_record/base.rb:301 + # pkg:gem/activerecord#lib/active_record/base.rb:302 def schema_migrations_table_name; end - # pkg:gem/activerecord#lib/active_record/base.rb:301 + # pkg:gem/activerecord#lib/active_record/base.rb:302 def schema_migrations_table_name=(value); end - # pkg:gem/activerecord#lib/active_record/base.rb:301 + # pkg:gem/activerecord#lib/active_record/base.rb:302 def schema_migrations_table_name?; end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def shard_selector; end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def shard_selector=(value); end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def shard_selector?; end - # pkg:gem/activerecord#lib/active_record/base.rb:328 + # pkg:gem/activerecord#lib/active_record/base.rb:329 def signed_id_verifier_secret; end - # pkg:gem/activerecord#lib/active_record/base.rb:328 + # pkg:gem/activerecord#lib/active_record/base.rb:329 def signed_id_verifier_secret=(secret); end - # pkg:gem/activerecord#lib/active_record/base.rb:328 + # pkg:gem/activerecord#lib/active_record/base.rb:329 def signed_id_verifier_secret?; end - # pkg:gem/activerecord#lib/active_record/base.rb:313 + # pkg:gem/activerecord#lib/active_record/base.rb:314 def skip_time_zone_conversion_for_attributes; end - # pkg:gem/activerecord#lib/active_record/base.rb:313 + # pkg:gem/activerecord#lib/active_record/base.rb:314 def skip_time_zone_conversion_for_attributes=(value); end - # pkg:gem/activerecord#lib/active_record/base.rb:313 + # pkg:gem/activerecord#lib/active_record/base.rb:314 def skip_time_zone_conversion_for_attributes?; end - # pkg:gem/activerecord#lib/active_record/base.rb:302 + # pkg:gem/activerecord#lib/active_record/base.rb:303 def store_full_class_name; end - # pkg:gem/activerecord#lib/active_record/base.rb:302 + # pkg:gem/activerecord#lib/active_record/base.rb:303 def store_full_class_name=(value); end - # pkg:gem/activerecord#lib/active_record/base.rb:302 + # pkg:gem/activerecord#lib/active_record/base.rb:303 def store_full_class_name?; end - # pkg:gem/activerecord#lib/active_record/base.rb:302 + # pkg:gem/activerecord#lib/active_record/base.rb:303 def store_full_sti_class; end - # pkg:gem/activerecord#lib/active_record/base.rb:302 + # pkg:gem/activerecord#lib/active_record/base.rb:303 def store_full_sti_class=(value); end - # pkg:gem/activerecord#lib/active_record/base.rb:302 + # pkg:gem/activerecord#lib/active_record/base.rb:303 def store_full_sti_class?; end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def strict_loading_by_default; end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def strict_loading_by_default=(value); end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def strict_loading_by_default?; end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def strict_loading_mode; end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def strict_loading_mode=(value); end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def strict_loading_mode?; end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def strict_loading_violation!(owner:, reflection:); end - # pkg:gem/activerecord#lib/active_record/base.rb:301 + # pkg:gem/activerecord#lib/active_record/base.rb:302 def table_name_prefix; end - # pkg:gem/activerecord#lib/active_record/base.rb:301 + # pkg:gem/activerecord#lib/active_record/base.rb:302 def table_name_prefix=(value); end - # pkg:gem/activerecord#lib/active_record/base.rb:301 + # pkg:gem/activerecord#lib/active_record/base.rb:302 def table_name_prefix?; end - # pkg:gem/activerecord#lib/active_record/base.rb:301 + # pkg:gem/activerecord#lib/active_record/base.rb:302 def table_name_suffix; end - # pkg:gem/activerecord#lib/active_record/base.rb:301 + # pkg:gem/activerecord#lib/active_record/base.rb:302 def table_name_suffix=(value); end - # pkg:gem/activerecord#lib/active_record/base.rb:301 + # pkg:gem/activerecord#lib/active_record/base.rb:302 def table_name_suffix?; end - # pkg:gem/activerecord#lib/active_record/base.rb:313 + # pkg:gem/activerecord#lib/active_record/base.rb:314 def time_zone_aware_attributes; end - # pkg:gem/activerecord#lib/active_record/base.rb:313 + # pkg:gem/activerecord#lib/active_record/base.rb:314 def time_zone_aware_attributes=(value); end - # pkg:gem/activerecord#lib/active_record/base.rb:313 + # pkg:gem/activerecord#lib/active_record/base.rb:314 def time_zone_aware_attributes?; end - # pkg:gem/activerecord#lib/active_record/base.rb:313 + # pkg:gem/activerecord#lib/active_record/base.rb:314 def time_zone_aware_types; end - # pkg:gem/activerecord#lib/active_record/base.rb:313 + # pkg:gem/activerecord#lib/active_record/base.rb:314 def time_zone_aware_types=(value); end - # pkg:gem/activerecord#lib/active_record/base.rb:313 + # pkg:gem/activerecord#lib/active_record/base.rb:314 def time_zone_aware_types?; end - # pkg:gem/activerecord#lib/active_record/base.rb:327 + # pkg:gem/activerecord#lib/active_record/base.rb:328 def token_definitions; end - # pkg:gem/activerecord#lib/active_record/base.rb:327 + # pkg:gem/activerecord#lib/active_record/base.rb:328 def token_definitions=(value); end private - # pkg:gem/activerecord#lib/active_record/base.rb:282 + # pkg:gem/activerecord#lib/active_record/base.rb:283 def __class_attr___callbacks; end - # pkg:gem/activerecord#lib/active_record/base.rb:282 + # pkg:gem/activerecord#lib/active_record/base.rb:283 def __class_attr___callbacks=(new_value); end - # pkg:gem/activerecord#lib/active_record/base.rb:300 + # pkg:gem/activerecord#lib/active_record/base.rb:301 def __class_attr__attr_readonly; end - # pkg:gem/activerecord#lib/active_record/base.rb:300 + # pkg:gem/activerecord#lib/active_record/base.rb:301 def __class_attr__attr_readonly=(new_value); end - # pkg:gem/activerecord#lib/active_record/base.rb:308 + # pkg:gem/activerecord#lib/active_record/base.rb:309 def __class_attr__counter_cache_columns; end - # pkg:gem/activerecord#lib/active_record/base.rb:308 + # pkg:gem/activerecord#lib/active_record/base.rb:309 def __class_attr__counter_cache_columns=(new_value); end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def __class_attr__destroy_association_async_job; end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def __class_attr__destroy_association_async_job=(new_value); end - # pkg:gem/activerecord#lib/active_record/base.rb:323 + # pkg:gem/activerecord#lib/active_record/base.rb:324 def __class_attr__reflections; end - # pkg:gem/activerecord#lib/active_record/base.rb:323 + # pkg:gem/activerecord#lib/active_record/base.rb:324 def __class_attr__reflections=(new_value); end - # pkg:gem/activerecord#lib/active_record/base.rb:328 + # pkg:gem/activerecord#lib/active_record/base.rb:329 def __class_attr__signed_id_verifier; end - # pkg:gem/activerecord#lib/active_record/base.rb:328 + # pkg:gem/activerecord#lib/active_record/base.rb:329 def __class_attr__signed_id_verifier=(new_value); end - # pkg:gem/activerecord#lib/active_record/base.rb:282 + # pkg:gem/activerecord#lib/active_record/base.rb:283 def __class_attr__validators; end - # pkg:gem/activerecord#lib/active_record/base.rb:282 + # pkg:gem/activerecord#lib/active_record/base.rb:283 def __class_attr__validators=(new_value); end - # pkg:gem/activerecord#lib/active_record/base.rb:323 + # pkg:gem/activerecord#lib/active_record/base.rb:324 def __class_attr_aggregate_reflections; end - # pkg:gem/activerecord#lib/active_record/base.rb:323 + # pkg:gem/activerecord#lib/active_record/base.rb:324 def __class_attr_aggregate_reflections=(new_value); end - # pkg:gem/activerecord#lib/active_record/base.rb:335 + # pkg:gem/activerecord#lib/active_record/base.rb:336 def __class_attr_attachment_reflections; end - # pkg:gem/activerecord#lib/active_record/base.rb:335 + # pkg:gem/activerecord#lib/active_record/base.rb:336 def __class_attr_attachment_reflections=(new_value); end - # pkg:gem/activerecord#lib/active_record/base.rb:309 + # pkg:gem/activerecord#lib/active_record/base.rb:310 def __class_attr_attribute_aliases; end - # pkg:gem/activerecord#lib/active_record/base.rb:309 + # pkg:gem/activerecord#lib/active_record/base.rb:310 def __class_attr_attribute_aliases=(new_value); end - # pkg:gem/activerecord#lib/active_record/base.rb:309 + # pkg:gem/activerecord#lib/active_record/base.rb:310 def __class_attr_attribute_method_patterns; end - # pkg:gem/activerecord#lib/active_record/base.rb:309 + # pkg:gem/activerecord#lib/active_record/base.rb:310 def __class_attr_attribute_method_patterns=(new_value); end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def __class_attr_attributes_for_inspect; end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def __class_attr_attributes_for_inspect=(new_value); end - # pkg:gem/activerecord#lib/active_record/base.rb:323 + # pkg:gem/activerecord#lib/active_record/base.rb:324 def __class_attr_automatic_scope_inversing; end - # pkg:gem/activerecord#lib/active_record/base.rb:323 + # pkg:gem/activerecord#lib/active_record/base.rb:324 def __class_attr_automatic_scope_inversing=(new_value); end - # pkg:gem/activerecord#lib/active_record/base.rb:323 + # pkg:gem/activerecord#lib/active_record/base.rb:324 def __class_attr_automatically_invert_plural_associations; end - # pkg:gem/activerecord#lib/active_record/base.rb:323 + # pkg:gem/activerecord#lib/active_record/base.rb:324 def __class_attr_automatically_invert_plural_associations=(new_value); end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def __class_attr_belongs_to_required_by_default; end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def __class_attr_belongs_to_required_by_default=(new_value); end - # pkg:gem/activerecord#lib/active_record/base.rb:306 + # pkg:gem/activerecord#lib/active_record/base.rb:307 def __class_attr_cache_timestamp_format; end - # pkg:gem/activerecord#lib/active_record/base.rb:306 + # pkg:gem/activerecord#lib/active_record/base.rb:307 def __class_attr_cache_timestamp_format=(new_value); end - # pkg:gem/activerecord#lib/active_record/base.rb:306 + # pkg:gem/activerecord#lib/active_record/base.rb:307 def __class_attr_cache_versioning; end - # pkg:gem/activerecord#lib/active_record/base.rb:306 + # pkg:gem/activerecord#lib/active_record/base.rb:307 def __class_attr_cache_versioning=(new_value); end - # pkg:gem/activerecord#lib/active_record/base.rb:306 + # pkg:gem/activerecord#lib/active_record/base.rb:307 def __class_attr_collection_cache_versioning; end - # pkg:gem/activerecord#lib/active_record/base.rb:306 + # pkg:gem/activerecord#lib/active_record/base.rb:307 def __class_attr_collection_cache_versioning=(new_value); end - # pkg:gem/activerecord#lib/active_record/base.rb:308 + # pkg:gem/activerecord#lib/active_record/base.rb:309 def __class_attr_counter_cached_association_names; end - # pkg:gem/activerecord#lib/active_record/base.rb:308 + # pkg:gem/activerecord#lib/active_record/base.rb:309 def __class_attr_counter_cached_association_names=(new_value); end - # pkg:gem/activerecord#lib/active_record/base.rb:313 + # pkg:gem/activerecord#lib/active_record/base.rb:314 def __class_attr_default_column_serializer; end - # pkg:gem/activerecord#lib/active_record/base.rb:313 + # pkg:gem/activerecord#lib/active_record/base.rb:314 def __class_attr_default_column_serializer=(new_value); end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def __class_attr_default_connection_handler; end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def __class_attr_default_connection_handler=(new_value); end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def __class_attr_default_role; end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def __class_attr_default_role=(new_value); end - # pkg:gem/activerecord#lib/active_record/base.rb:303 + # pkg:gem/activerecord#lib/active_record/base.rb:304 def __class_attr_default_scope_override; end - # pkg:gem/activerecord#lib/active_record/base.rb:303 + # pkg:gem/activerecord#lib/active_record/base.rb:304 def __class_attr_default_scope_override=(new_value); end - # pkg:gem/activerecord#lib/active_record/base.rb:303 + # pkg:gem/activerecord#lib/active_record/base.rb:304 def __class_attr_default_scopes; end - # pkg:gem/activerecord#lib/active_record/base.rb:303 + # pkg:gem/activerecord#lib/active_record/base.rb:304 def __class_attr_default_scopes=(new_value); end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def __class_attr_default_shard; end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def __class_attr_default_shard=(new_value); end - # pkg:gem/activerecord#lib/active_record/base.rb:294 + # pkg:gem/activerecord#lib/active_record/base.rb:295 def __class_attr_defined_enums; end - # pkg:gem/activerecord#lib/active_record/base.rb:294 + # pkg:gem/activerecord#lib/active_record/base.rb:295 def __class_attr_defined_enums=(new_value); end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def __class_attr_destroy_association_async_batch_size; end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def __class_attr_destroy_association_async_batch_size=(new_value); end - # pkg:gem/activerecord#lib/active_record/base.rb:312 + # pkg:gem/activerecord#lib/active_record/base.rb:313 def __class_attr_encrypted_attributes; end - # pkg:gem/activerecord#lib/active_record/base.rb:312 + # pkg:gem/activerecord#lib/active_record/base.rb:313 def __class_attr_encrypted_attributes=(new_value); end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def __class_attr_enumerate_columns_in_select_statements; end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def __class_attr_enumerate_columns_in_select_statements=(new_value); end - # pkg:gem/activerecord#lib/active_record/base.rb:327 + # pkg:gem/activerecord#lib/active_record/base.rb:328 def __class_attr_generated_token_verifier; end - # pkg:gem/activerecord#lib/active_record/base.rb:327 + # pkg:gem/activerecord#lib/active_record/base.rb:328 def __class_attr_generated_token_verifier=(new_value); end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def __class_attr_has_many_inversing; end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def __class_attr_has_many_inversing=(new_value); end - # pkg:gem/activerecord#lib/active_record/base.rb:301 + # pkg:gem/activerecord#lib/active_record/base.rb:302 def __class_attr_immutable_strings_by_default; end - # pkg:gem/activerecord#lib/active_record/base.rb:301 + # pkg:gem/activerecord#lib/active_record/base.rb:302 def __class_attr_immutable_strings_by_default=(new_value); end - # pkg:gem/activerecord#lib/active_record/base.rb:301 + # pkg:gem/activerecord#lib/active_record/base.rb:302 def __class_attr_implicit_order_column; end - # pkg:gem/activerecord#lib/active_record/base.rb:301 + # pkg:gem/activerecord#lib/active_record/base.rb:302 def __class_attr_implicit_order_column=(new_value); end - # pkg:gem/activerecord#lib/active_record/base.rb:324 + # pkg:gem/activerecord#lib/active_record/base.rb:325 def __class_attr_include_root_in_json; end - # pkg:gem/activerecord#lib/active_record/base.rb:324 + # pkg:gem/activerecord#lib/active_record/base.rb:325 def __class_attr_include_root_in_json=(new_value); end - # pkg:gem/activerecord#lib/active_record/base.rb:301 + # pkg:gem/activerecord#lib/active_record/base.rb:302 def __class_attr_inheritance_column; end - # pkg:gem/activerecord#lib/active_record/base.rb:301 + # pkg:gem/activerecord#lib/active_record/base.rb:302 def __class_attr_inheritance_column=(new_value); end - # pkg:gem/activerecord#lib/active_record/base.rb:301 + # pkg:gem/activerecord#lib/active_record/base.rb:302 def __class_attr_internal_metadata_table_name; end - # pkg:gem/activerecord#lib/active_record/base.rb:301 + # pkg:gem/activerecord#lib/active_record/base.rb:302 def __class_attr_internal_metadata_table_name=(new_value); end - # pkg:gem/activerecord#lib/active_record/base.rb:310 + # pkg:gem/activerecord#lib/active_record/base.rb:311 def __class_attr_lock_optimistically; end - # pkg:gem/activerecord#lib/active_record/base.rb:310 + # pkg:gem/activerecord#lib/active_record/base.rb:311 def __class_attr_lock_optimistically=(new_value); end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def __class_attr_logger; end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def __class_attr_logger=(new_value); end - # pkg:gem/activerecord#lib/active_record/base.rb:319 + # pkg:gem/activerecord#lib/active_record/base.rb:320 def __class_attr_nested_attributes_options; end - # pkg:gem/activerecord#lib/active_record/base.rb:319 + # pkg:gem/activerecord#lib/active_record/base.rb:320 def __class_attr_nested_attributes_options=(new_value); end - # pkg:gem/activerecord#lib/active_record/base.rb:309 + # pkg:gem/activerecord#lib/active_record/base.rb:310 def __class_attr_normalized_attributes; end - # pkg:gem/activerecord#lib/active_record/base.rb:309 + # pkg:gem/activerecord#lib/active_record/base.rb:310 def __class_attr_normalized_attributes=(new_value); end - # pkg:gem/activerecord#lib/active_record/base.rb:282 + # pkg:gem/activerecord#lib/active_record/base.rb:283 def __class_attr_param_delimiter; end - # pkg:gem/activerecord#lib/active_record/base.rb:282 + # pkg:gem/activerecord#lib/active_record/base.rb:283 def __class_attr_param_delimiter=(new_value); end - # pkg:gem/activerecord#lib/active_record/base.rb:313 + # pkg:gem/activerecord#lib/active_record/base.rb:314 def __class_attr_partial_inserts; end - # pkg:gem/activerecord#lib/active_record/base.rb:313 + # pkg:gem/activerecord#lib/active_record/base.rb:314 def __class_attr_partial_inserts=(new_value); end - # pkg:gem/activerecord#lib/active_record/base.rb:313 + # pkg:gem/activerecord#lib/active_record/base.rb:314 def __class_attr_partial_updates; end - # pkg:gem/activerecord#lib/active_record/base.rb:313 + # pkg:gem/activerecord#lib/active_record/base.rb:314 def __class_attr_partial_updates=(new_value); end - # pkg:gem/activerecord#lib/active_record/base.rb:301 + # pkg:gem/activerecord#lib/active_record/base.rb:302 def __class_attr_pluralize_table_names; end - # pkg:gem/activerecord#lib/active_record/base.rb:301 + # pkg:gem/activerecord#lib/active_record/base.rb:302 def __class_attr_pluralize_table_names=(new_value); end - # pkg:gem/activerecord#lib/active_record/base.rb:301 + # pkg:gem/activerecord#lib/active_record/base.rb:302 def __class_attr_primary_key_prefix_type; end - # pkg:gem/activerecord#lib/active_record/base.rb:301 + # pkg:gem/activerecord#lib/active_record/base.rb:302 def __class_attr_primary_key_prefix_type=(new_value); end - # pkg:gem/activerecord#lib/active_record/base.rb:315 + # pkg:gem/activerecord#lib/active_record/base.rb:316 def __class_attr_record_timestamps; end - # pkg:gem/activerecord#lib/active_record/base.rb:315 + # pkg:gem/activerecord#lib/active_record/base.rb:316 def __class_attr_record_timestamps=(new_value); end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def __class_attr_run_commit_callbacks_on_first_saved_instances_in_transaction; end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def __class_attr_run_commit_callbacks_on_first_saved_instances_in_transaction=(new_value); end - # pkg:gem/activerecord#lib/active_record/base.rb:301 + # pkg:gem/activerecord#lib/active_record/base.rb:302 def __class_attr_schema_migrations_table_name; end - # pkg:gem/activerecord#lib/active_record/base.rb:301 + # pkg:gem/activerecord#lib/active_record/base.rb:302 def __class_attr_schema_migrations_table_name=(new_value); end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def __class_attr_shard_selector; end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def __class_attr_shard_selector=(new_value); end - # pkg:gem/activerecord#lib/active_record/base.rb:328 + # pkg:gem/activerecord#lib/active_record/base.rb:329 def __class_attr_signed_id_verifier_secret; end - # pkg:gem/activerecord#lib/active_record/base.rb:328 + # pkg:gem/activerecord#lib/active_record/base.rb:329 def __class_attr_signed_id_verifier_secret=(new_value); end - # pkg:gem/activerecord#lib/active_record/base.rb:313 + # pkg:gem/activerecord#lib/active_record/base.rb:314 def __class_attr_skip_time_zone_conversion_for_attributes; end - # pkg:gem/activerecord#lib/active_record/base.rb:313 + # pkg:gem/activerecord#lib/active_record/base.rb:314 def __class_attr_skip_time_zone_conversion_for_attributes=(new_value); end - # pkg:gem/activerecord#lib/active_record/base.rb:302 + # pkg:gem/activerecord#lib/active_record/base.rb:303 def __class_attr_store_full_class_name; end - # pkg:gem/activerecord#lib/active_record/base.rb:302 + # pkg:gem/activerecord#lib/active_record/base.rb:303 def __class_attr_store_full_class_name=(new_value); end - # pkg:gem/activerecord#lib/active_record/base.rb:302 + # pkg:gem/activerecord#lib/active_record/base.rb:303 def __class_attr_store_full_sti_class; end - # pkg:gem/activerecord#lib/active_record/base.rb:302 + # pkg:gem/activerecord#lib/active_record/base.rb:303 def __class_attr_store_full_sti_class=(new_value); end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def __class_attr_strict_loading_by_default; end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def __class_attr_strict_loading_by_default=(new_value); end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def __class_attr_strict_loading_mode; end - # pkg:gem/activerecord#lib/active_record/base.rb:298 + # pkg:gem/activerecord#lib/active_record/base.rb:299 def __class_attr_strict_loading_mode=(new_value); end - # pkg:gem/activerecord#lib/active_record/base.rb:301 + # pkg:gem/activerecord#lib/active_record/base.rb:302 def __class_attr_table_name_prefix; end - # pkg:gem/activerecord#lib/active_record/base.rb:301 + # pkg:gem/activerecord#lib/active_record/base.rb:302 def __class_attr_table_name_prefix=(new_value); end - # pkg:gem/activerecord#lib/active_record/base.rb:301 + # pkg:gem/activerecord#lib/active_record/base.rb:302 def __class_attr_table_name_suffix; end - # pkg:gem/activerecord#lib/active_record/base.rb:301 + # pkg:gem/activerecord#lib/active_record/base.rb:302 def __class_attr_table_name_suffix=(new_value); end - # pkg:gem/activerecord#lib/active_record/base.rb:313 + # pkg:gem/activerecord#lib/active_record/base.rb:314 def __class_attr_time_zone_aware_attributes; end - # pkg:gem/activerecord#lib/active_record/base.rb:313 + # pkg:gem/activerecord#lib/active_record/base.rb:314 def __class_attr_time_zone_aware_attributes=(new_value); end - # pkg:gem/activerecord#lib/active_record/base.rb:313 + # pkg:gem/activerecord#lib/active_record/base.rb:314 def __class_attr_time_zone_aware_types; end - # pkg:gem/activerecord#lib/active_record/base.rb:313 + # pkg:gem/activerecord#lib/active_record/base.rb:314 def __class_attr_time_zone_aware_types=(new_value); end - # pkg:gem/activerecord#lib/active_record/base.rb:327 + # pkg:gem/activerecord#lib/active_record/base.rb:328 def __class_attr_token_definitions; end - # pkg:gem/activerecord#lib/active_record/base.rb:327 + # pkg:gem/activerecord#lib/active_record/base.rb:328 def __class_attr_token_definitions=(new_value); end - # pkg:gem/activerecord#lib/active_record/base.rb:301 + # pkg:gem/activerecord#lib/active_record/base.rb:302 def _inheritance_column=(value); end end end -# pkg:gem/activerecord#lib/active_record/base.rb:313 +# pkg:gem/activerecord#lib/active_record/base.rb:314 module ActiveRecord::Base::GeneratedAssociationMethods; end -# pkg:gem/activerecord#lib/active_record/base.rb:313 +# pkg:gem/activerecord#lib/active_record/base.rb:314 module ActiveRecord::Base::GeneratedAttributeMethods; end # = Active Record \Batches @@ -11439,13 +11439,13 @@ class ActiveRecord::ConnectionAdapters::AbstractAdapter # should be overridden by adapters to implement common features with # non-standard syntax like handling duplicates or returning values. # - # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:905 + # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:910 def build_insert_sql(insert); end - # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:876 + # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:881 def case_insensitive_comparison(attribute, value); end - # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:872 + # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:877 def case_sensitive_comparison(attribute, value); end # Override to check all foreign key constraints in a database. @@ -11455,23 +11455,23 @@ class ActiveRecord::ConnectionAdapters::AbstractAdapter # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:690 def check_all_foreign_keys_valid!; end - # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:920 + # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:925 def check_version; end - # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:838 + # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:843 def clean!; end # Clear any caching the database adapter may be doing. # - # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:792 + # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:795 def clear_cache!(new_connection: T.unsafe(nil)); end # Check the connection back in to the connection pool # - # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:892 + # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:897 def close; end - # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:833 + # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:838 def connect!; end # Checks whether the connection to the database was established. This doesn't @@ -11514,18 +11514,18 @@ class ActiveRecord::ConnectionAdapters::AbstractAdapter # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:407 def database_exists?; end - # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:916 + # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:921 def database_version; end # @return [Boolean] # - # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:896 + # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:901 def default_index_type?(index); end # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:237 def default_timezone; end - # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:868 + # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:873 def default_uniqueness_comparison(attribute, value); end # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:38 @@ -11548,13 +11548,13 @@ class ActiveRecord::ConnectionAdapters::AbstractAdapter # undefined. This is called internally just before a forked process gets # rid of a connection that belonged to its parent. # - # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:767 + # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:768 def discard!; end # Disconnects from the database if already connected. Otherwise, this # method does nothing. # - # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:752 + # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:751 def disconnect!; end # This is meant to be implemented by the adapters that support custom enum types @@ -11608,7 +11608,7 @@ class ActiveRecord::ConnectionAdapters::AbstractAdapter # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:660 def get_advisory_lock(lock_id); end - # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:913 + # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:918 def get_database_version; end # Returns the value of attribute owner. @@ -11716,7 +11716,7 @@ class ActiveRecord::ConnectionAdapters::AbstractAdapter # this client. If that is the case, generally you'll want to invalidate # the query cache using +ActiveRecord::Base.clear_query_cache+. # - # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:860 + # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:865 def raw_connection; end # Disconnects from the database if already connected, and establishes a new @@ -11753,7 +11753,7 @@ class ActiveRecord::ConnectionAdapters::AbstractAdapter # # @return [Boolean] # - # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:805 + # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:808 def requires_reloading?; end # Reset the state of this connection, directing the DBMS to clear @@ -11765,7 +11765,7 @@ class ActiveRecord::ConnectionAdapters::AbstractAdapter # should call super immediately after resetting the connection (and while # still holding @lock). # - # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:779 + # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:780 def reset!; end # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:38 @@ -11807,7 +11807,7 @@ class ActiveRecord::ConnectionAdapters::AbstractAdapter # numbered migration that has been executed, or 0 if no schema # information is present / the database is empty. # - # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:927 + # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:932 def schema_version; end # Seconds since this connection was returned to the pool @@ -12077,7 +12077,7 @@ class ActiveRecord::ConnectionAdapters::AbstractAdapter # Removes the connection from the pool and disconnect it. # - # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:786 + # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:789 def throw_away!; end # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:38 @@ -12099,14 +12099,14 @@ class ActiveRecord::ConnectionAdapters::AbstractAdapter # @return [Boolean] # - # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:846 + # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:851 def verified?; end # Checks whether the connection to the database is still active (i.e. not stale). # This is done under the hood by calling #active?. If the connection # is no longer active, then this method will reconnect to the database. # - # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:812 + # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:815 def verify!; end # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:225 @@ -12123,16 +12123,16 @@ class ActiveRecord::ConnectionAdapters::AbstractAdapter # to both be thread-safe and not rely upon actual server communication. # This is useful for e.g. string escaping methods. # - # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:1155 + # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:1160 def any_raw_connection; end - # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:1258 + # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:1263 def arel_visitor; end - # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:1284 + # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:1289 def attempt_configure_connection; end - # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:1144 + # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:1149 def backoff(counter); end # Builds the result object. @@ -12140,24 +12140,24 @@ class ActiveRecord::ConnectionAdapters::AbstractAdapter # This is an internal hook to make possible connection adapters to build # custom result objects with connection-specific data. # - # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:1269 + # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:1274 def build_result(columns:, rows:, column_types: T.unsafe(nil)); end - # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:1262 + # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:1267 def build_statement_pool; end # @return [Boolean] # - # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:886 + # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:891 def can_perform_case_insensitive_comparison_for?(column); end - # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:1244 + # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:1249 def collector; end - # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:1233 + # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:1238 def column_for(table_name, column_name); end - # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:1239 + # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:1244 def column_for_attribute(attribute); end # Perform any necessary initialization upon the newly-established @@ -12167,51 +12167,51 @@ class ActiveRecord::ConnectionAdapters::AbstractAdapter # Implementations may assume this method will only be called while # holding @lock (or from #initialize). # - # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:1280 + # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:1285 def configure_connection; end - # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:1291 + # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:1296 def default_prepared_statements; end - # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:1172 + # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:1177 def extended_type_map_key; end - # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:1219 + # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:1224 def instrumenter; end - # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:1130 + # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:1135 def invalidate_transaction(exception); end - # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:1200 + # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:1205 def log(sql, name = T.unsafe(nil), binds = T.unsafe(nil), type_casted_binds = T.unsafe(nil), async: T.unsafe(nil), allow_retry: T.unsafe(nil), &block); end # @raise [NotImplementedError] # - # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:1148 + # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:1153 def reconnect; end # @return [Boolean] # - # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:1012 + # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:1017 def reconnect_can_restore_state?; end # @return [Boolean] # - # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:1125 + # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:1130 def retryable_connection_error?(exception); end # @return [Boolean] # - # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:1137 + # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:1142 def retryable_query_error?(exception); end - # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:1223 + # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:1228 def translate_exception(exception, message:, sql:, binds:); end - # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:1188 + # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:1193 def translate_exception_class(native_error, sql, binds); end - # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:1178 + # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:1183 def type_map; end # Similar to any_raw_connection, but ensures it is validated and @@ -12220,19 +12220,19 @@ class ActiveRecord::ConnectionAdapters::AbstractAdapter # server... but some drivers fail if they know the connection has gone # away. # - # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:1164 + # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:1169 def valid_raw_connection; end # Mark the connection as verified. Call this inside a # `with_raw_connection` block only when the block is guaranteed to # exercise the raw connection. # - # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:1120 + # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:1125 def verified!; end # @return [Boolean] # - # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:1295 + # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:1300 def warning_ignored?(warning); end # Lock the monitor, ensure we're properly connected and @@ -12268,7 +12268,7 @@ class ActiveRecord::ConnectionAdapters::AbstractAdapter # still-yielded connection in the outer block), but we currently # provide no special enforcement there. # - # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:1049 + # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:1054 def with_raw_connection(allow_retry: T.unsafe(nil), materialize_transactions: T.unsafe(nil)); end class << self @@ -12307,13 +12307,13 @@ class ActiveRecord::ConnectionAdapters::AbstractAdapter # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:128 def dbconsole(config, options = T.unsafe(nil)); end - # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:939 + # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:944 def extended_type_map(default_timezone:); end # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:99 def find_cmd_and_exec(commands, *args); end - # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:932 + # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:937 def register_class_with_precision(mapping, key, klass, **kwargs); end # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:72 @@ -12324,7 +12324,7 @@ class ActiveRecord::ConnectionAdapters::AbstractAdapter # @return [Boolean] # - # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:947 + # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:952 def valid_type?(type); end # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:80 @@ -12338,19 +12338,19 @@ class ActiveRecord::ConnectionAdapters::AbstractAdapter # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:33 def __class_attr___callbacks=(new_value); end - # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:1003 + # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:1008 def extract_limit(sql_type); end - # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:999 + # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:1004 def extract_precision(sql_type); end - # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:992 + # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:997 def extract_scale(sql_type); end - # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:952 + # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:957 def initialize_type_map(m); end - # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:985 + # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:990 def register_class_with_limit(mapping, key, klass); end end end @@ -12364,7 +12364,7 @@ ActiveRecord::ConnectionAdapters::AbstractAdapter::COMMENT_REGEX = T.let(T.unsaf # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:90 ActiveRecord::ConnectionAdapters::AbstractAdapter::DEFAULT_READ_QUERY = T.let(T.unsafe(nil), Array) -# pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:1009 +# pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:1014 ActiveRecord::ConnectionAdapters::AbstractAdapter::EXTENDED_TYPE_MAPS = T.let(T.unsafe(nil), Concurrent::Map) # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:212 @@ -12373,7 +12373,7 @@ ActiveRecord::ConnectionAdapters::AbstractAdapter::MAX_JITTER = T.let(T.unsafe(n # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:41 ActiveRecord::ConnectionAdapters::AbstractAdapter::SIMPLE_INT = T.let(T.unsafe(nil), Regexp) -# pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:1008 +# pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:1013 ActiveRecord::ConnectionAdapters::AbstractAdapter::TYPE_MAP = T.let(T.unsafe(nil), ActiveRecord::Type::TypeMap) # pkg:gem/activerecord#lib/active_record/connection_adapters/abstract_adapter.rb:261 @@ -33353,7 +33353,7 @@ class ActiveRecord::Relation # # Post.where(person_id: 5).where(category: ['Something', 'Else']).delete_all # - # Both calls delete the affected posts all at once with a single DELETE statement. + # This call deletes the affected posts all at once with a single DELETE statement. # If you need to destroy dependent associations or call your before_* or # +after_destroy+ callbacks, use the #destroy_all method instead. # @@ -34799,13 +34799,13 @@ module ActiveRecord::RuntimeRegistry # pkg:gem/activerecord#lib/active_record/runtime_registry.rb:32 def call(name, start, finish, id, payload); end - # pkg:gem/activerecord#lib/active_record/runtime_registry.rb:41 + # pkg:gem/activerecord#lib/active_record/runtime_registry.rb:42 def record(query_name, runtime, cached: T.unsafe(nil), async: T.unsafe(nil), lock_wait: T.unsafe(nil)); end - # pkg:gem/activerecord#lib/active_record/runtime_registry.rb:59 + # pkg:gem/activerecord#lib/active_record/runtime_registry.rb:60 def reset; end - # pkg:gem/activerecord#lib/active_record/runtime_registry.rb:55 + # pkg:gem/activerecord#lib/active_record/runtime_registry.rb:56 def stats; end end @@ -36161,9 +36161,9 @@ module ActiveRecord::SignedId::ClassMethods def signed_id_verifier=(verifier); end end -# pkg:gem/activerecord#lib/active_record/base.rb:328 +# pkg:gem/activerecord#lib/active_record/base.rb:329 module ActiveRecord::SignedId::DeprecateSignedIdVerifierSecret - # pkg:gem/activerecord#lib/active_record/base.rb:328 + # pkg:gem/activerecord#lib/active_record/base.rb:329 def signed_id_verifier_secret=(secret); end end @@ -36644,6 +36644,29 @@ end # pkg:gem/activerecord#lib/active_record/errors.rb:411 class ActiveRecord::StrictLoadingViolationError < ::ActiveRecord::ActiveRecordError; end +# pkg:gem/activerecord#lib/active_record/structured_event_subscriber.rb:6 +class ActiveRecord::StructuredEventSubscriber < ::ActiveSupport::StructuredEventSubscriber + # pkg:gem/activerecord#lib/active_record/structured_event_subscriber.rb:21 + def sql(event); end + + # pkg:gem/activerecord#lib/active_record/structured_event_subscriber.rb:9 + def strict_loading_violation(event); end + + private + + # pkg:gem/activerecord#lib/active_record/structured_event_subscriber.rb:79 + def filter(name, value); end + + # pkg:gem/activerecord#lib/active_record/structured_event_subscriber.rb:64 + def render_bind(attr, value); end + + # pkg:gem/activerecord#lib/active_record/structured_event_subscriber.rb:60 + def type_casted_binds(casted_binds); end +end + +# pkg:gem/activerecord#lib/active_record/structured_event_subscriber.rb:7 +ActiveRecord::StructuredEventSubscriber::IGNORE_PAYLOAD_NAMES = T.let(T.unsafe(nil), Array) + # Raised when the single-table inheritance mechanism fails to locate the subclass # (for example due to improper usage of column that # {ActiveRecord::Base.inheritance_column}[rdoc-ref:ModelSchema.inheritance_column] diff --git a/sorbet/rbi/gems/activestorage@8.1.1.rbi b/sorbet/rbi/gems/activestorage@8.1.2.rbi similarity index 98% rename from sorbet/rbi/gems/activestorage@8.1.1.rbi rename to sorbet/rbi/gems/activestorage@8.1.2.rbi index 615a29be5..8715bca30 100644 --- a/sorbet/rbi/gems/activestorage@8.1.1.rbi +++ b/sorbet/rbi/gems/activestorage@8.1.2.rbi @@ -1072,12 +1072,18 @@ class ActiveStorage::Blobs::ProxyController < ::ActiveStorage::BaseController def _layout(lookup_context, formats, keys); end class << self + def live_streaming_excluded_keys; end + def live_streaming_excluded_keys=(value); end + def live_streaming_excluded_keys?; end + private def __class_attr___callbacks; end def __class_attr___callbacks=(new_value); end def __class_attr_config; end def __class_attr_config=(new_value); end + def __class_attr_live_streaming_excluded_keys; end + def __class_attr_live_streaming_excluded_keys=(new_value); end def __class_attr_middleware_stack; end def __class_attr_middleware_stack=(new_value); end end @@ -1734,12 +1740,18 @@ class ActiveStorage::Representations::ProxyController < ::ActiveStorage::Represe def _layout(lookup_context, formats, keys); end class << self + def live_streaming_excluded_keys; end + def live_streaming_excluded_keys=(value); end + def live_streaming_excluded_keys?; end + private def __class_attr___callbacks; end def __class_attr___callbacks=(new_value); end def __class_attr_config; end def __class_attr_config=(new_value); end + def __class_attr_live_streaming_excluded_keys; end + def __class_attr_live_streaming_excluded_keys=(new_value); end def __class_attr_middleware_stack; end def __class_attr_middleware_stack=(new_value); end end @@ -2016,10 +2028,12 @@ end module ActiveStorage::Streaming extend ::ActiveSupport::Concern + include GeneratedInstanceMethods include ::ActionController::Rendering include ::ActionController::DataStreaming include ::ActionController::Live + mixes_in_class_methods GeneratedClassMethods mixes_in_class_methods ::ActionController::Rendering::ClassMethods mixes_in_class_methods ::ActionController::Live::ClassMethods @@ -2027,6 +2041,14 @@ module ActiveStorage::Streaming def send_blob_byte_range_data(blob, range_header, disposition: T.unsafe(nil)); end def send_blob_stream(blob, disposition: T.unsafe(nil)); end + + module GeneratedClassMethods + def live_streaming_excluded_keys; end + def live_streaming_excluded_keys=(value); end + def live_streaming_excluded_keys?; end + end + + module GeneratedInstanceMethods; end end ActiveStorage::Streaming::DEFAULT_BLOB_STREAMING_DISPOSITION = T.let(T.unsafe(nil), String) diff --git a/sorbet/rbi/gems/activesupport@8.1.1.rbi b/sorbet/rbi/gems/activesupport@8.1.2.rbi similarity index 99% rename from sorbet/rbi/gems/activesupport@8.1.1.rbi rename to sorbet/rbi/gems/activesupport@8.1.2.rbi index 708e4fd69..eadf8fc55 100644 --- a/sorbet/rbi/gems/activesupport@8.1.1.rbi +++ b/sorbet/rbi/gems/activesupport@8.1.2.rbi @@ -1201,19 +1201,21 @@ ActiveSupport::Cache::FileStore::GITKEEP_FILES = T.let(T.unsafe(nil), Array) # # pkg:gem/activesupport#lib/active_support/cache/memory_store.rb:28 class ActiveSupport::Cache::MemoryStore < ::ActiveSupport::Cache::Store + include ::ActiveSupport::Cache::Strategy::LocalCache + # @return [MemoryStore] a new instance of MemoryStore # - # pkg:gem/activesupport#lib/active_support/cache/memory_store.rb:73 + # pkg:gem/activesupport#lib/active_support/cache/memory_store.rb:75 def initialize(options = T.unsafe(nil)); end # Preemptively iterates through all stored keys and removes the ones which have expired. # - # pkg:gem/activesupport#lib/active_support/cache/memory_store.rb:101 + # pkg:gem/activesupport#lib/active_support/cache/memory_store.rb:103 def cleanup(options = T.unsafe(nil)); end # Delete all data stored in a given cache store. # - # pkg:gem/activesupport#lib/active_support/cache/memory_store.rb:93 + # pkg:gem/activesupport#lib/active_support/cache/memory_store.rb:95 def clear(options = T.unsafe(nil)); end # Decrement a cached integer value. Returns the updated value. @@ -1227,12 +1229,12 @@ class ActiveSupport::Cache::MemoryStore < ::ActiveSupport::Cache::Store # cache.write("baz", 5) # cache.decrement("baz") # => 4 # - # pkg:gem/activesupport#lib/active_support/cache/memory_store.rb:166 + # pkg:gem/activesupport#lib/active_support/cache/memory_store.rb:168 def decrement(name, amount = T.unsafe(nil), **options); end # Deletes cache entries if the cache key matches a given pattern. # - # pkg:gem/activesupport#lib/active_support/cache/memory_store.rb:173 + # pkg:gem/activesupport#lib/active_support/cache/memory_store.rb:175 def delete_matched(matcher, options = T.unsafe(nil)); end # Increment a cached integer value. Returns the updated value. @@ -1247,49 +1249,49 @@ class ActiveSupport::Cache::MemoryStore < ::ActiveSupport::Cache::Store # cache.write("baz", 5) # cache.increment("baz") # => 6 # - # pkg:gem/activesupport#lib/active_support/cache/memory_store.rb:149 + # pkg:gem/activesupport#lib/active_support/cache/memory_store.rb:151 def increment(name, amount = T.unsafe(nil), **options); end - # pkg:gem/activesupport#lib/active_support/cache/memory_store.rb:185 + # pkg:gem/activesupport#lib/active_support/cache/memory_store.rb:187 def inspect; end # To ensure entries fit within the specified memory prune the cache by removing the least # recently accessed entries. # - # pkg:gem/activesupport#lib/active_support/cache/memory_store.rb:114 + # pkg:gem/activesupport#lib/active_support/cache/memory_store.rb:116 def prune(target_size, max_time = T.unsafe(nil)); end # Returns true if the cache is currently being pruned. # # @return [Boolean] # - # pkg:gem/activesupport#lib/active_support/cache/memory_store.rb:133 + # pkg:gem/activesupport#lib/active_support/cache/memory_store.rb:135 def pruning?; end # Synchronize calls to the cache. This should be called wherever the underlying cache implementation # is not thread safe. # - # pkg:gem/activesupport#lib/active_support/cache/memory_store.rb:191 + # pkg:gem/activesupport#lib/active_support/cache/memory_store.rb:193 def synchronize(&block); end private - # pkg:gem/activesupport#lib/active_support/cache/memory_store.rb:198 + # pkg:gem/activesupport#lib/active_support/cache/memory_store.rb:200 def cached_size(key, payload); end - # pkg:gem/activesupport#lib/active_support/cache/memory_store.rb:231 - def delete_entry(key, **options); end + # pkg:gem/activesupport#lib/active_support/cache/memory_store.rb:233 + def delete_entry(key, **_arg1); end # Modifies the amount of an integer value that is stored in the cache. # If the key is not found it is created and set to +amount+. # - # pkg:gem/activesupport#lib/active_support/cache/memory_store.rb:241 + # pkg:gem/activesupport#lib/active_support/cache/memory_store.rb:243 def modify_value(name, amount, **options); end - # pkg:gem/activesupport#lib/active_support/cache/memory_store.rb:202 + # pkg:gem/activesupport#lib/active_support/cache/memory_store.rb:204 def read_entry(key, **options); end - # pkg:gem/activesupport#lib/active_support/cache/memory_store.rb:214 + # pkg:gem/activesupport#lib/active_support/cache/memory_store.rb:216 def write_entry(key, entry, **options); end class << self @@ -1297,37 +1299,37 @@ class ActiveSupport::Cache::MemoryStore < ::ActiveSupport::Cache::Store # # @return [Boolean] # - # pkg:gem/activesupport#lib/active_support/cache/memory_store.rb:88 + # pkg:gem/activesupport#lib/active_support/cache/memory_store.rb:90 def supports_cache_versioning?; end end end -# pkg:gem/activesupport#lib/active_support/cache/memory_store.rb:29 +# pkg:gem/activesupport#lib/active_support/cache/memory_store.rb:31 module ActiveSupport::Cache::MemoryStore::DupCoder extend ::ActiveSupport::Cache::MemoryStore::DupCoder - # pkg:gem/activesupport#lib/active_support/cache/memory_store.rb:32 + # pkg:gem/activesupport#lib/active_support/cache/memory_store.rb:34 def dump(entry); end - # pkg:gem/activesupport#lib/active_support/cache/memory_store.rb:40 + # pkg:gem/activesupport#lib/active_support/cache/memory_store.rb:42 def dump_compressed(entry, threshold); end - # pkg:gem/activesupport#lib/active_support/cache/memory_store.rb:45 + # pkg:gem/activesupport#lib/active_support/cache/memory_store.rb:47 def load(entry); end private - # pkg:gem/activesupport#lib/active_support/cache/memory_store.rb:56 + # pkg:gem/activesupport#lib/active_support/cache/memory_store.rb:58 def dump_value(value); end - # pkg:gem/activesupport#lib/active_support/cache/memory_store.rb:64 + # pkg:gem/activesupport#lib/active_support/cache/memory_store.rb:66 def load_value(string); end end -# pkg:gem/activesupport#lib/active_support/cache/memory_store.rb:54 +# pkg:gem/activesupport#lib/active_support/cache/memory_store.rb:56 ActiveSupport::Cache::MemoryStore::DupCoder::MARSHAL_SIGNATURE = T.let(T.unsafe(nil), String) -# pkg:gem/activesupport#lib/active_support/cache/memory_store.rb:196 +# pkg:gem/activesupport#lib/active_support/cache/memory_store.rb:198 ActiveSupport::Cache::MemoryStore::PER_ENTRY_OVERHEAD = T.let(T.unsafe(nil), Integer) # = Null \Cache \Store @@ -8129,7 +8131,7 @@ module ActiveSupport::Inflector # inflect.uncountable 'rails' # end # - # pkg:gem/activesupport#lib/active_support/inflector/inflections.rb:281 + # pkg:gem/activesupport#lib/active_support/inflector/inflections.rb:282 def inflections(locale = T.unsafe(nil)); end # Returns the suffix that should be added to a number to denote the position @@ -8409,7 +8411,7 @@ ActiveSupport::Inflector::ALLOWED_ENCODINGS_FOR_TRANSLITERATE = T.let(T.unsafe(n class ActiveSupport::Inflector::Inflections # @return [Inflections] a new instance of Inflections # - # pkg:gem/activesupport#lib/active_support/inflector/inflections.rb:96 + # pkg:gem/activesupport#lib/active_support/inflector/inflections.rb:97 def initialize; end # Specifies a new acronym. An acronym must be specified as it will appear @@ -8462,18 +8464,18 @@ class ActiveSupport::Inflector::Inflections # underscore 'McDonald' # => 'mcdonald' # camelize 'mcdonald' # => 'McDonald' # - # pkg:gem/activesupport#lib/active_support/inflector/inflections.rb:158 + # pkg:gem/activesupport#lib/active_support/inflector/inflections.rb:159 def acronym(word); end # Returns the value of attribute acronyms. # - # pkg:gem/activesupport#lib/active_support/inflector/inflections.rb:92 + # pkg:gem/activesupport#lib/active_support/inflector/inflections.rb:93 def acronyms; end - # pkg:gem/activesupport#lib/active_support/inflector/inflections.rb:94 + # pkg:gem/activesupport#lib/active_support/inflector/inflections.rb:95 def acronyms_camelize_regex; end - # pkg:gem/activesupport#lib/active_support/inflector/inflections.rb:94 + # pkg:gem/activesupport#lib/active_support/inflector/inflections.rb:95 def acronyms_underscore_regex; end # Clears the loaded inflections within a given scope (default is @@ -8484,7 +8486,7 @@ class ActiveSupport::Inflector::Inflections # clear :all # clear :plurals # - # pkg:gem/activesupport#lib/active_support/inflector/inflections.rb:247 + # pkg:gem/activesupport#lib/active_support/inflector/inflections.rb:248 def clear(scope = T.unsafe(nil)); end # Specifies a humanized form of a string by a regular expression rule or @@ -8496,12 +8498,12 @@ class ActiveSupport::Inflector::Inflections # human /_cnt$/i, '\1_count' # human 'legacy_col_person_name', 'Name' # - # pkg:gem/activesupport#lib/active_support/inflector/inflections.rb:236 + # pkg:gem/activesupport#lib/active_support/inflector/inflections.rb:237 def human(rule, replacement); end # Returns the value of attribute humans. # - # pkg:gem/activesupport#lib/active_support/inflector/inflections.rb:92 + # pkg:gem/activesupport#lib/active_support/inflector/inflections.rb:93 def humans; end # Specifies a new irregular that applies to both pluralization and @@ -8512,7 +8514,7 @@ class ActiveSupport::Inflector::Inflections # irregular 'cactus', 'cacti' # irregular 'person', 'people' # - # pkg:gem/activesupport#lib/active_support/inflector/inflections.rb:190 + # pkg:gem/activesupport#lib/active_support/inflector/inflections.rb:191 def irregular(singular, plural); end # Specifies a new pluralization rule and its replacement. The rule can @@ -8520,12 +8522,12 @@ class ActiveSupport::Inflector::Inflections # always be a string that may include references to the matched data from # the rule. # - # pkg:gem/activesupport#lib/active_support/inflector/inflections.rb:167 + # pkg:gem/activesupport#lib/active_support/inflector/inflections.rb:168 def plural(rule, replacement); end # Returns the value of attribute plurals. # - # pkg:gem/activesupport#lib/active_support/inflector/inflections.rb:92 + # pkg:gem/activesupport#lib/active_support/inflector/inflections.rb:93 def plurals; end # Specifies a new singularization rule and its replacement. The rule can @@ -8533,12 +8535,12 @@ class ActiveSupport::Inflector::Inflections # always be a string that may include references to the matched data from # the rule. # - # pkg:gem/activesupport#lib/active_support/inflector/inflections.rb:177 + # pkg:gem/activesupport#lib/active_support/inflector/inflections.rb:178 def singular(rule, replacement); end # Returns the value of attribute singulars. # - # pkg:gem/activesupport#lib/active_support/inflector/inflections.rb:92 + # pkg:gem/activesupport#lib/active_support/inflector/inflections.rb:93 def singulars; end # Specifies words that are uncountable and should not be inflected. @@ -8547,22 +8549,22 @@ class ActiveSupport::Inflector::Inflections # uncountable 'money', 'information' # uncountable %w( money information rice ) # - # pkg:gem/activesupport#lib/active_support/inflector/inflections.rb:224 + # pkg:gem/activesupport#lib/active_support/inflector/inflections.rb:225 def uncountable(*words); end # Returns the value of attribute uncountables. # - # pkg:gem/activesupport#lib/active_support/inflector/inflections.rb:92 + # pkg:gem/activesupport#lib/active_support/inflector/inflections.rb:93 def uncountables; end private - # pkg:gem/activesupport#lib/active_support/inflector/inflections.rb:266 + # pkg:gem/activesupport#lib/active_support/inflector/inflections.rb:267 def define_acronym_regex_patterns; end # Private, for the test suite. # - # pkg:gem/activesupport#lib/active_support/inflector/inflections.rb:102 + # pkg:gem/activesupport#lib/active_support/inflector/inflections.rb:103 def initialize_dup(orig); end class << self @@ -8723,7 +8725,7 @@ module ActiveSupport::IsolatedExecutionState def scope; end # pkg:gem/activesupport#lib/active_support/isolated_execution_state.rb:58 - def share_with(other, &block); end + def share_with(other, except: T.unsafe(nil), &block); end end end @@ -13607,17 +13609,20 @@ class ActiveSupport::SyntaxErrorProxy # pkg:gem/activesupport#lib/active_support/syntax_error_proxy.rb:11 def backtrace; end - # pkg:gem/activesupport#lib/active_support/syntax_error_proxy.rb:37 + # pkg:gem/activesupport#lib/active_support/syntax_error_proxy.rb:41 def backtrace_locations; end private - # pkg:gem/activesupport#lib/active_support/syntax_error_proxy.rb:50 + # pkg:gem/activesupport#lib/active_support/syntax_error_proxy.rb:54 def parse_message_for_trace; end end # pkg:gem/activesupport#lib/active_support/syntax_error_proxy.rb:15 class ActiveSupport::SyntaxErrorProxy::BacktraceLocation < ::Struct + # pkg:gem/activesupport#lib/active_support/syntax_error_proxy.rb:25 + def absolute_path; end + # pkg:gem/activesupport#lib/active_support/syntax_error_proxy.rb:22 def base_label; end @@ -13628,14 +13633,14 @@ class ActiveSupport::SyntaxErrorProxy::BacktraceLocation < ::Struct def spot(_); end end -# pkg:gem/activesupport#lib/active_support/syntax_error_proxy.rb:26 +# pkg:gem/activesupport#lib/active_support/syntax_error_proxy.rb:30 class ActiveSupport::SyntaxErrorProxy::BacktraceLocationProxy # @return [BacktraceLocationProxy] a new instance of BacktraceLocationProxy # - # pkg:gem/activesupport#lib/active_support/syntax_error_proxy.rb:27 + # pkg:gem/activesupport#lib/active_support/syntax_error_proxy.rb:31 def initialize(loc, ex); end - # pkg:gem/activesupport#lib/active_support/syntax_error_proxy.rb:32 + # pkg:gem/activesupport#lib/active_support/syntax_error_proxy.rb:36 def spot(_); end end @@ -13806,109 +13811,109 @@ class ActiveSupport::TestCase < ::Minitest::Test extend ::ActiveSupport::Testing::SetupAndTeardown::ClassMethods extend ::ActiveSupport::Testing::Declarative - # pkg:gem/activesupport#lib/active_support/test_case.rb:198 + # pkg:gem/activesupport#lib/active_support/test_case.rb:204 def __callbacks; end - # pkg:gem/activesupport#lib/active_support/test_case.rb:198 + # pkg:gem/activesupport#lib/active_support/test_case.rb:204 def _run_setup_callbacks; end - # pkg:gem/activesupport#lib/active_support/test_case.rb:198 + # pkg:gem/activesupport#lib/active_support/test_case.rb:204 def _run_setup_callbacks!(&block); end - # pkg:gem/activesupport#lib/active_support/test_case.rb:198 + # pkg:gem/activesupport#lib/active_support/test_case.rb:204 def _run_teardown_callbacks; end - # pkg:gem/activesupport#lib/active_support/test_case.rb:198 + # pkg:gem/activesupport#lib/active_support/test_case.rb:204 def _run_teardown_callbacks!(&block); end - # pkg:gem/activesupport#lib/active_support/test_case.rb:198 + # pkg:gem/activesupport#lib/active_support/test_case.rb:204 def _setup_callbacks; end - # pkg:gem/activesupport#lib/active_support/test_case.rb:198 + # pkg:gem/activesupport#lib/active_support/test_case.rb:204 def _teardown_callbacks; end - # pkg:gem/activesupport#lib/active_support/test_case.rb:296 + # pkg:gem/activesupport#lib/active_support/test_case.rb:302 def assert_no_match(matcher, obj, msg = T.unsafe(nil)); end - # pkg:gem/activesupport#lib/active_support/test_case.rb:219 + # pkg:gem/activesupport#lib/active_support/test_case.rb:225 def assert_not_empty(obj, msg = T.unsafe(nil)); end - # pkg:gem/activesupport#lib/active_support/test_case.rb:230 + # pkg:gem/activesupport#lib/active_support/test_case.rb:236 def assert_not_equal(exp, act, msg = T.unsafe(nil)); end - # pkg:gem/activesupport#lib/active_support/test_case.rb:241 + # pkg:gem/activesupport#lib/active_support/test_case.rb:247 def assert_not_in_delta(exp, act, delta = T.unsafe(nil), msg = T.unsafe(nil)); end - # pkg:gem/activesupport#lib/active_support/test_case.rb:252 + # pkg:gem/activesupport#lib/active_support/test_case.rb:258 def assert_not_in_epsilon(exp, act, epsilon = T.unsafe(nil), msg = T.unsafe(nil)); end - # pkg:gem/activesupport#lib/active_support/test_case.rb:263 + # pkg:gem/activesupport#lib/active_support/test_case.rb:269 def assert_not_includes(collection, obj, msg = T.unsafe(nil)); end - # pkg:gem/activesupport#lib/active_support/test_case.rb:274 + # pkg:gem/activesupport#lib/active_support/test_case.rb:280 def assert_not_instance_of(cls, obj, msg = T.unsafe(nil)); end - # pkg:gem/activesupport#lib/active_support/test_case.rb:285 + # pkg:gem/activesupport#lib/active_support/test_case.rb:291 def assert_not_kind_of(cls, obj, msg = T.unsafe(nil)); end - # pkg:gem/activesupport#lib/active_support/test_case.rb:307 + # pkg:gem/activesupport#lib/active_support/test_case.rb:313 def assert_not_nil(obj, msg = T.unsafe(nil)); end - # pkg:gem/activesupport#lib/active_support/test_case.rb:318 + # pkg:gem/activesupport#lib/active_support/test_case.rb:324 def assert_not_operator(o1, op, o2 = T.unsafe(nil), msg = T.unsafe(nil)); end - # pkg:gem/activesupport#lib/active_support/test_case.rb:329 + # pkg:gem/activesupport#lib/active_support/test_case.rb:335 def assert_not_predicate(o1, op, msg = T.unsafe(nil)); end - # pkg:gem/activesupport#lib/active_support/test_case.rb:340 + # pkg:gem/activesupport#lib/active_support/test_case.rb:346 def assert_not_respond_to(obj, meth, msg = T.unsafe(nil), include_all: T.unsafe(nil)); end - # pkg:gem/activesupport#lib/active_support/test_case.rb:351 + # pkg:gem/activesupport#lib/active_support/test_case.rb:357 def assert_not_same(exp, act, msg = T.unsafe(nil)); end - # pkg:gem/activesupport#lib/active_support/test_case.rb:207 + # pkg:gem/activesupport#lib/active_support/test_case.rb:213 def file_fixture_path; end - # pkg:gem/activesupport#lib/active_support/test_case.rb:207 + # pkg:gem/activesupport#lib/active_support/test_case.rb:213 def file_fixture_path?; end - # pkg:gem/activesupport#lib/active_support/test_case.rb:355 + # pkg:gem/activesupport#lib/active_support/test_case.rb:361 def inspect; end - # pkg:gem/activesupport#lib/active_support/test_case.rb:190 + # pkg:gem/activesupport#lib/active_support/test_case.rb:196 def method_name; end # Returns the current parallel worker ID if tests are running in parallel # - # pkg:gem/activesupport#lib/active_support/test_case.rb:193 + # pkg:gem/activesupport#lib/active_support/test_case.rb:199 def parallel_worker_id; end class << self - # pkg:gem/activesupport#lib/active_support/test_case.rb:198 + # pkg:gem/activesupport#lib/active_support/test_case.rb:204 def __callbacks; end - # pkg:gem/activesupport#lib/active_support/test_case.rb:198 + # pkg:gem/activesupport#lib/active_support/test_case.rb:204 def __callbacks=(value); end - # pkg:gem/activesupport#lib/active_support/test_case.rb:198 + # pkg:gem/activesupport#lib/active_support/test_case.rb:204 def _setup_callbacks; end - # pkg:gem/activesupport#lib/active_support/test_case.rb:198 + # pkg:gem/activesupport#lib/active_support/test_case.rb:204 def _setup_callbacks=(value); end - # pkg:gem/activesupport#lib/active_support/test_case.rb:198 + # pkg:gem/activesupport#lib/active_support/test_case.rb:204 def _teardown_callbacks; end - # pkg:gem/activesupport#lib/active_support/test_case.rb:198 + # pkg:gem/activesupport#lib/active_support/test_case.rb:204 def _teardown_callbacks=(value); end - # pkg:gem/activesupport#lib/active_support/test_case.rb:207 + # pkg:gem/activesupport#lib/active_support/test_case.rb:213 def file_fixture_path; end - # pkg:gem/activesupport#lib/active_support/test_case.rb:207 + # pkg:gem/activesupport#lib/active_support/test_case.rb:213 def file_fixture_path=(value); end - # pkg:gem/activesupport#lib/active_support/test_case.rb:207 + # pkg:gem/activesupport#lib/active_support/test_case.rb:213 def file_fixture_path?; end # Returns the current parallel worker ID if tests are running in parallel, @@ -13965,7 +13970,7 @@ class ActiveSupport::TestCase < ::Minitest::Test # Note that your test suite may deadlock if you attempt to use only one database # with multiple processes. # - # pkg:gem/activesupport#lib/active_support/test_case.rb:107 + # pkg:gem/activesupport#lib/active_support/test_case.rb:113 def parallelize(workers: T.unsafe(nil), with: T.unsafe(nil), threshold: T.unsafe(nil), parallelize_databases: T.unsafe(nil)); end # Before fork hook for parallel testing. This can be used to run anything @@ -13979,7 +13984,7 @@ class ActiveSupport::TestCase < ::Minitest::Test # end # end # - # pkg:gem/activesupport#lib/active_support/test_case.rb:132 + # pkg:gem/activesupport#lib/active_support/test_case.rb:138 def parallelize_before_fork(&block); end # Setup hook for parallel testing. This can be used if you have multiple @@ -13996,7 +14001,7 @@ class ActiveSupport::TestCase < ::Minitest::Test # end # end # - # pkg:gem/activesupport#lib/active_support/test_case.rb:149 + # pkg:gem/activesupport#lib/active_support/test_case.rb:155 def parallelize_setup(&block); end # Clean up hook for parallel testing. This can be used to drop databases @@ -14013,7 +14018,7 @@ class ActiveSupport::TestCase < ::Minitest::Test # end # end # - # pkg:gem/activesupport#lib/active_support/test_case.rb:166 + # pkg:gem/activesupport#lib/active_support/test_case.rb:172 def parallelize_teardown(&block); end # Returns the order in which test cases are run. @@ -14041,16 +14046,16 @@ class ActiveSupport::TestCase < ::Minitest::Test private - # pkg:gem/activesupport#lib/active_support/test_case.rb:198 + # pkg:gem/activesupport#lib/active_support/test_case.rb:204 def __class_attr___callbacks; end - # pkg:gem/activesupport#lib/active_support/test_case.rb:198 + # pkg:gem/activesupport#lib/active_support/test_case.rb:204 def __class_attr___callbacks=(new_value); end - # pkg:gem/activesupport#lib/active_support/test_case.rb:207 + # pkg:gem/activesupport#lib/active_support/test_case.rb:213 def __class_attr_file_fixture_path; end - # pkg:gem/activesupport#lib/active_support/test_case.rb:207 + # pkg:gem/activesupport#lib/active_support/test_case.rb:213 def __class_attr_file_fixture_path=(new_value); end end end @@ -14110,7 +14115,7 @@ module ActiveSupport::Testing::Assertions # post :create, params: { status: { incident: true } } # end # - # pkg:gem/activesupport#lib/active_support/testing/assertions.rb:211 + # pkg:gem/activesupport#lib/active_support/testing/assertions.rb:212 def assert_changes(expression, message = T.unsafe(nil), from: T.unsafe(nil), to: T.unsafe(nil), &block); end # Test numeric difference between the return value of an expression as a @@ -14200,7 +14205,7 @@ module ActiveSupport::Testing::Assertions # post :create, params: { status: { ok: false } } # end # - # pkg:gem/activesupport#lib/active_support/testing/assertions.rb:280 + # pkg:gem/activesupport#lib/active_support/testing/assertions.rb:281 def assert_no_changes(expression, message = T.unsafe(nil), from: T.unsafe(nil), &block); end # Assertion that the numeric result of evaluating an expression is not @@ -14228,7 +14233,7 @@ module ActiveSupport::Testing::Assertions # post :create, params: { article: invalid_attributes } # end # - # pkg:gem/activesupport#lib/active_support/testing/assertions.rb:161 + # pkg:gem/activesupport#lib/active_support/testing/assertions.rb:162 def assert_no_difference(expression, message = T.unsafe(nil), &block); end # Asserts that an expression is not truthy. Passes if +object+ is +nil+ or @@ -14281,10 +14286,10 @@ module ActiveSupport::Testing::Assertions private - # pkg:gem/activesupport#lib/active_support/testing/assertions.rb:314 + # pkg:gem/activesupport#lib/active_support/testing/assertions.rb:316 def _assert_nothing_raised_or_warn(assertion, &block); end - # pkg:gem/activesupport#lib/active_support/testing/assertions.rb:329 + # pkg:gem/activesupport#lib/active_support/testing/assertions.rb:331 def _callable_to_source_string(callable); end end @@ -15008,16 +15013,16 @@ class ActiveSupport::Testing::Parallelization::Worker # pkg:gem/activesupport#lib/active_support/testing/parallelization/worker.rb:7 def initialize(number, url); end - # pkg:gem/activesupport#lib/active_support/testing/parallelization/worker.rb:80 + # pkg:gem/activesupport#lib/active_support/testing/parallelization/worker.rb:82 def after_fork; end # pkg:gem/activesupport#lib/active_support/testing/parallelization/worker.rb:42 def perform_job(job); end - # pkg:gem/activesupport#lib/active_support/testing/parallelization/worker.rb:88 + # pkg:gem/activesupport#lib/active_support/testing/parallelization/worker.rb:90 def run_cleanup; end - # pkg:gem/activesupport#lib/active_support/testing/parallelization/worker.rb:56 + # pkg:gem/activesupport#lib/active_support/testing/parallelization/worker.rb:58 def safe_record(reporter, result); end # pkg:gem/activesupport#lib/active_support/testing/parallelization/worker.rb:14 @@ -15028,10 +15033,10 @@ class ActiveSupport::Testing::Parallelization::Worker private - # pkg:gem/activesupport#lib/active_support/testing/parallelization/worker.rb:95 + # pkg:gem/activesupport#lib/active_support/testing/parallelization/worker.rb:97 def add_setup_exception(result); end - # pkg:gem/activesupport#lib/active_support/testing/parallelization/worker.rb:99 + # pkg:gem/activesupport#lib/active_support/testing/parallelization/worker.rb:101 def set_process_title(status); end end @@ -15522,7 +15527,7 @@ class ActiveSupport::TimeWithZone # now + 24.hours # => Mon, 03 Nov 2014 00:26:28.725182881 EST -05:00 # now + 1.day # => Mon, 03 Nov 2014 01:26:28.725182881 EST -05:00 # - # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:310 + # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:314 def +(other); end # Subtracts an interval of time and returns a new TimeWithZone object unless @@ -15548,19 +15553,19 @@ class ActiveSupport::TimeWithZone # # Time.zone.now - 1.day.ago # => 86399.999967 # - # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:345 + # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:349 def -(other); end # Use the time in UTC for comparisons. # - # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:243 + # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:247 def <=>(other); end # So that +self+ acts_like?(:time). # # @return [Boolean] # - # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:502 + # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:506 def acts_like_time?; end # Uses Date to provide precise Time calculations for years, months, and days @@ -15585,10 +15590,10 @@ class ActiveSupport::TimeWithZone # now.advance(months: 1) # => Tue, 02 Dec 2014 01:26:28.558049687 EST -05:00 # now.advance(years: 1) # => Mon, 02 Nov 2015 01:26:28.558049687 EST -05:00 # - # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:434 + # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:438 def advance(options); end - # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:247 + # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:251 def after?(_arg0); end # Subtracts an interval of time from the current object's time and returns @@ -15609,7 +15614,7 @@ class ActiveSupport::TimeWithZone # now.ago(24.hours) # => Sun, 02 Nov 2014 01:26:28.725182881 EDT -04:00 # now.ago(1.day) # => Sun, 02 Nov 2014 00:26:28.725182881 EDT -04:00 # - # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:373 + # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:377 def ago(other); end # Coerces time to a string for JSON encoding. The default format is ISO 8601. @@ -15625,10 +15630,10 @@ class ActiveSupport::TimeWithZone # Time.utc(2005,2,1,15,15,10).in_time_zone("Hawaii").as_json # # => "2005/02/01 05:15:10 -1000" # - # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:178 + # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:182 def as_json(options = T.unsafe(nil)); end - # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:246 + # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:250 def before?(_arg0); end # Returns true if the current object's time is within the specified @@ -15636,14 +15641,14 @@ class ActiveSupport::TimeWithZone # # @return [Boolean] # - # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:251 + # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:255 def between?(min, max); end # An instance of ActiveSupport::TimeWithZone is never blank # # @return [Boolean] # - # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:513 + # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:517 def blank?; end # Returns a new +ActiveSupport::TimeWithZone+ where one or more of the elements have @@ -15664,7 +15669,7 @@ class ActiveSupport::TimeWithZone # t.change(offset: "-10:00") # => Fri, 14 Apr 2017 11:45:15.116992711 HST -10:00 # t.change(zone: "Hawaii") # => Fri, 14 Apr 2017 11:45:15.116992711 HST -10:00 # - # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:394 + # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:398 def change(options); end # Returns a Time instance of the simultaneous time in the UTC timezone. @@ -15672,7 +15677,7 @@ class ActiveSupport::TimeWithZone # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:72 def comparable_time; end - # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:445 + # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:449 def day; end # Returns true if the current time is within Daylight Savings \Time for the @@ -15687,14 +15692,14 @@ class ActiveSupport::TimeWithZone # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:100 def dst?; end - # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:190 + # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:194 def encode_with(coder); end # Returns +true+ if +other+ is equal to current object. # # @return [Boolean] # - # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:286 + # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:290 def eql?(other); end # Returns a formatted string of the offset from UTC, or an alternative @@ -15709,14 +15714,14 @@ class ActiveSupport::TimeWithZone # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:131 def formatted_offset(colon = T.unsafe(nil), alternate_utc_string = T.unsafe(nil)); end - # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:521 + # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:525 def freeze; end # Returns true if the current object's time is in the future. # # @return [Boolean] # - # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:281 + # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:285 def future?; end # Returns a Time instance of the simultaneous time in the UTC timezone. @@ -15761,10 +15766,10 @@ class ActiveSupport::TimeWithZone # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:121 def gmtoff; end - # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:290 + # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:294 def hash; end - # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:445 + # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:449 def hour; end # Returns a string of the object's date and time in the format used by @@ -15772,7 +15777,7 @@ class ActiveSupport::TimeWithZone # # Time.zone.now.httpdate # => "Tue, 01 Jan 2013 04:39:43 GMT" # - # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:198 + # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:202 def httpdate; end # Adds an interval of time to the current object's time and returns that @@ -15792,7 +15797,7 @@ class ActiveSupport::TimeWithZone # now + 24.hours # => Mon, 03 Nov 2014 00:26:28.725182881 EST -05:00 # now + 1.day # => Mon, 03 Nov 2014 01:26:28.725182881 EST -05:00 # - # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:320 + # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:324 def in(other); end # Returns the simultaneous time in Time.zone, or the specified zone. @@ -15800,7 +15805,7 @@ class ActiveSupport::TimeWithZone # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:83 def in_time_zone(new_zone = T.unsafe(nil)); end - # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:186 + # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:190 def init_with(coder); end # Returns a string of the object's date, time, zone, and offset from UTC. @@ -15814,7 +15819,7 @@ class ActiveSupport::TimeWithZone # # @return [Boolean] # - # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:507 + # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:511 def is_a?(klass); end # Returns true if the current time is within Daylight Savings \Time for the @@ -15834,14 +15839,14 @@ class ActiveSupport::TimeWithZone # # Time.zone.now.xmlschema # => "2014-12-04T11:02:37-05:00" # - # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:163 + # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:167 def iso8601(fraction_digits = T.unsafe(nil)); end # Say we're a Time to thwart type checking. # # @return [Boolean] # - # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:510 + # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:514 def kind_of?(klass); end # Returns a Time instance of the simultaneous time in the system timezone. @@ -15849,28 +15854,28 @@ class ActiveSupport::TimeWithZone # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:89 def localtime(utc_offset = T.unsafe(nil)); end - # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:527 + # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:531 def marshal_dump; end - # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:531 + # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:535 def marshal_load(variables); end - # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:445 + # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:449 def mday; end # Send the missing method to +time+ instance, and wrap result in a new # TimeWithZone with the existing +time_zone+. # - # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:551 + # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:555 def method_missing(*_arg0, **_arg1, &_arg2); end - # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:445 + # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:449 def min; end - # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:445 + # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:449 def mon; end - # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:445 + # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:449 def month; end # Returns true if the current object's time falls within @@ -15878,17 +15883,17 @@ class ActiveSupport::TimeWithZone # # @return [Boolean] # - # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:271 + # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:275 def next_day?; end - # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:445 + # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:449 def nsec; end # Returns true if the current object's time is in the past. # # @return [Boolean] # - # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:256 + # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:260 def past?; end # Returns the underlying +TZInfo::TimezonePeriod+. @@ -15898,7 +15903,7 @@ class ActiveSupport::TimeWithZone # @return [Boolean] # - # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:517 + # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:521 def present?; end # Returns true if the current object's time falls within @@ -15906,7 +15911,7 @@ class ActiveSupport::TimeWithZone # # @return [Boolean] # - # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:278 + # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:282 def prev_day?; end # respond_to_missing? is not called in some cases, such as when type conversion is @@ -15914,7 +15919,7 @@ class ActiveSupport::TimeWithZone # # @return [Boolean] # - # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:537 + # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:541 def respond_to?(sym, include_priv = T.unsafe(nil)); end # Returns a string of the object's date and time in the RFC 2822 standard @@ -15922,7 +15927,7 @@ class ActiveSupport::TimeWithZone # # Time.zone.now.rfc2822 # => "Tue, 01 Jan 2013 04:51:39 +0000" # - # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:206 + # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:210 def rfc2822; end # Returns a string of the object's date and time in the ISO 8601 standard @@ -15930,7 +15935,7 @@ class ActiveSupport::TimeWithZone # # Time.zone.now.xmlschema # => "2014-12-04T11:02:37-05:00" # - # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:164 + # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:168 def rfc3339(fraction_digits = T.unsafe(nil)); end # Returns a string of the object's date and time in the RFC 2822 standard @@ -15938,10 +15943,10 @@ class ActiveSupport::TimeWithZone # # Time.zone.now.rfc2822 # => "Tue, 01 Jan 2013 04:51:39 +0000" # - # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:209 + # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:213 def rfc822; end - # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:445 + # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:449 def sec; end # Adds an interval of time to the current object's time and returns that @@ -15961,13 +15966,13 @@ class ActiveSupport::TimeWithZone # now + 24.hours # => Mon, 03 Nov 2014 00:26:28.725182881 EST -05:00 # now + 1.day # => Mon, 03 Nov 2014 01:26:28.725182881 EST -05:00 # - # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:319 + # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:323 def since(other); end # Replaces %Z directive with +zone before passing to Time#strftime, # so that zone information is correct. # - # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:237 + # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:241 def strftime(format); end # Returns a Time instance that represents the time in +time_zone+. @@ -15986,10 +15991,10 @@ class ActiveSupport::TimeWithZone # now = Time.zone.now # => Tue, 18 Aug 2015 02:29:27.485278555 UTC +00:00 # now.to_a # => [27, 29, 2, 18, 8, 2015, 2, 230, false, "UTC"] # - # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:457 + # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:461 def to_a; end - # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:445 + # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:449 def to_date; end # Returns an instance of DateTime with the timezone's UTC offset @@ -15997,7 +16002,7 @@ class ActiveSupport::TimeWithZone # Time.zone.now.to_datetime # => Tue, 18 Aug 2015 02:32:20 +0000 # Time.current.in_time_zone('Hawaii').to_datetime # => Mon, 17 Aug 2015 16:32:20 -1000 # - # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:490 + # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:494 def to_datetime; end # Returns the object's date and time as a floating-point number of seconds @@ -16005,7 +16010,7 @@ class ActiveSupport::TimeWithZone # # Time.zone.now.to_f # => 1417709320.285418 # - # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:465 + # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:469 def to_f; end # Returns a string of the object's date and time. @@ -16017,7 +16022,7 @@ class ActiveSupport::TimeWithZone # * :db - format outputs time in UTC :db time. See Time#to_fs(:db). # * Any key in +Time::DATE_FORMATS+ can be used. See active_support/core_ext/time/conversions.rb. # - # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:233 + # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:237 def to_formatted_s(format = T.unsafe(nil)); end # Returns a string of the object's date and time. @@ -16029,7 +16034,7 @@ class ActiveSupport::TimeWithZone # * :db - format outputs time in UTC :db time. See Time#to_fs(:db). # * Any key in +Time::DATE_FORMATS+ can be used. See active_support/core_ext/time/conversions.rb. # - # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:224 + # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:228 def to_fs(format = T.unsafe(nil)); end # Returns the object's date and time as an integer number of seconds @@ -16037,7 +16042,7 @@ class ActiveSupport::TimeWithZone # # Time.zone.now.to_i # => 1417709320 # - # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:473 + # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:477 def to_i; end # Returns the object's date and time as a rational number of seconds @@ -16045,19 +16050,19 @@ class ActiveSupport::TimeWithZone # # Time.zone.now.to_r # => (708854548642709/500000) # - # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:482 + # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:486 def to_r; end # Returns a string of the object's date and time. # - # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:212 + # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:216 def to_s; end # Returns an instance of +Time+, either with the same timezone as +self+, # with the same UTC offset as +self+ or in the local system timezone # depending on the setting of +ActiveSupport.to_time_preserves_timezone+. # - # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:497 + # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:501 def to_time; end # Returns true if the current object's time falls within @@ -16065,7 +16070,7 @@ class ActiveSupport::TimeWithZone # # @return [Boolean] # - # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:262 + # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:266 def today?; end # Returns true if the current object's time falls within @@ -16073,7 +16078,7 @@ class ActiveSupport::TimeWithZone # # @return [Boolean] # - # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:268 + # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:272 def tomorrow?; end # Returns the object's date and time as an integer number of seconds @@ -16081,10 +16086,10 @@ class ActiveSupport::TimeWithZone # # Time.zone.now.to_i # => 1417709320 # - # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:476 + # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:480 def tv_sec; end - # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:445 + # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:449 def usec; end # Returns a Time instance of the simultaneous time in the UTC timezone. @@ -16109,7 +16114,7 @@ class ActiveSupport::TimeWithZone # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:117 def utc_offset; end - # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:445 + # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:449 def wday; end # Returns a string of the object's date and time in the ISO 8601 standard @@ -16120,10 +16125,10 @@ class ActiveSupport::TimeWithZone # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:154 def xmlschema(fraction_digits = T.unsafe(nil)); end - # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:445 + # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:449 def yday; end - # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:445 + # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:449 def year; end # Returns true if the current object's time falls within @@ -16131,7 +16136,7 @@ class ActiveSupport::TimeWithZone # # @return [Boolean] # - # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:275 + # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:279 def yesterday?; end # Returns the time zone abbreviation. @@ -16146,13 +16151,13 @@ class ActiveSupport::TimeWithZone # @return [Boolean] # - # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:589 + # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:593 def duration_of_variable_length?(obj); end - # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:570 + # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:574 def get_period_and_ensure_valid_local_time(period); end - # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:560 + # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:564 def incorporate_utc_offset(time, offset); end # Ensure proxy class responds to all methods that underlying time instance @@ -16160,20 +16165,20 @@ class ActiveSupport::TimeWithZone # # @return [Boolean] # - # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:545 + # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:549 def respond_to_missing?(sym, include_priv); end - # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:583 + # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:587 def transfer_time_values_to_utc_constructor(time); end - # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:593 + # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:597 def wrap_with_time_zone(time); end end # pkg:gem/activesupport#lib/active_support/time_with_zone.rb:45 ActiveSupport::TimeWithZone::PRECISIONS = T.let(T.unsafe(nil), Hash) -# pkg:gem/activesupport#lib/active_support/time_with_zone.rb:558 +# pkg:gem/activesupport#lib/active_support/time_with_zone.rb:562 ActiveSupport::TimeWithZone::SECONDS_PER_DAY = T.let(T.unsafe(nil), Integer) # = Active Support \Time Zone @@ -19816,8 +19821,6 @@ class Integer < ::Numeric def years; end end -Integer::GMP_VERSION = T.let(T.unsafe(nil), String) - # pkg:gem/activesupport#lib/active_support/core_ext/kernel/reporting.rb:3 module Kernel # class_eval on an object acts like +singleton_class.class_eval+. diff --git a/sorbet/rbi/gems/globalid@1.2.1.rbi b/sorbet/rbi/gems/globalid@1.3.0.rbi similarity index 86% rename from sorbet/rbi/gems/globalid@1.2.1.rbi rename to sorbet/rbi/gems/globalid@1.3.0.rbi index b4d3a7981..3ddb4bbf0 100644 --- a/sorbet/rbi/gems/globalid@1.2.1.rbi +++ b/sorbet/rbi/gems/globalid@1.3.0.rbi @@ -11,51 +11,51 @@ class GlobalID # @return [GlobalID] a new instance of GlobalID # - # pkg:gem/globalid#lib/global_id/global_id.rb:44 + # pkg:gem/globalid#lib/global_id/global_id.rb:48 def initialize(gid, options = T.unsafe(nil)); end - # pkg:gem/globalid#lib/global_id/global_id.rb:63 + # pkg:gem/globalid#lib/global_id/global_id.rb:67 def ==(other); end - # pkg:gem/globalid#lib/global_id/global_id.rb:42 + # pkg:gem/globalid#lib/global_id/global_id.rb:46 def app(*_arg0, **_arg1, &_arg2); end - # pkg:gem/globalid#lib/global_id/global_id.rb:76 + # pkg:gem/globalid#lib/global_id/global_id.rb:80 def as_json(*_arg0); end - # pkg:gem/globalid#lib/global_id/global_id.rb:42 + # pkg:gem/globalid#lib/global_id/global_id.rb:46 def deconstruct_keys(*_arg0, **_arg1, &_arg2); end - # pkg:gem/globalid#lib/global_id/global_id.rb:66 + # pkg:gem/globalid#lib/global_id/global_id.rb:70 def eql?(other); end - # pkg:gem/globalid#lib/global_id/global_id.rb:48 + # pkg:gem/globalid#lib/global_id/global_id.rb:52 def find(options = T.unsafe(nil)); end - # pkg:gem/globalid#lib/global_id/global_id.rb:68 + # pkg:gem/globalid#lib/global_id/global_id.rb:72 def hash; end - # pkg:gem/globalid#lib/global_id/global_id.rb:52 + # pkg:gem/globalid#lib/global_id/global_id.rb:56 def model_class; end - # pkg:gem/globalid#lib/global_id/global_id.rb:42 + # pkg:gem/globalid#lib/global_id/global_id.rb:46 def model_id(*_arg0, **_arg1, &_arg2); end - # pkg:gem/globalid#lib/global_id/global_id.rb:42 + # pkg:gem/globalid#lib/global_id/global_id.rb:46 def model_name(*_arg0, **_arg1, &_arg2); end - # pkg:gem/globalid#lib/global_id/global_id.rb:42 + # pkg:gem/globalid#lib/global_id/global_id.rb:46 def params(*_arg0, **_arg1, &_arg2); end - # pkg:gem/globalid#lib/global_id/global_id.rb:72 + # pkg:gem/globalid#lib/global_id/global_id.rb:76 def to_param; end - # pkg:gem/globalid#lib/global_id/global_id.rb:42 + # pkg:gem/globalid#lib/global_id/global_id.rb:46 def to_s(*_arg0, **_arg1, &_arg2); end # Returns the value of attribute uri. # - # pkg:gem/globalid#lib/global_id/global_id.rb:41 + # pkg:gem/globalid#lib/global_id/global_id.rb:45 def uri; end class << self @@ -70,6 +70,9 @@ class GlobalID # pkg:gem/globalid#lib/global_id/global_id.rb:11 def create(model, options = T.unsafe(nil)); end + # pkg:gem/globalid#lib/global_id/global_id.rb:35 + def default_locator(default_locator); end + # pkg:gem/globalid#lib/global_id.rb:20 def deprecator; end @@ -84,7 +87,7 @@ class GlobalID private - # pkg:gem/globalid#lib/global_id/global_id.rb:36 + # pkg:gem/globalid#lib/global_id/global_id.rb:40 def parse_encoded_gid(gid, options); end end end @@ -122,8 +125,8 @@ module GlobalID::Identification # # model = Person.new id: 1 # global_id = model.to_global_id - # global_id.modal_class # => Person - # global_id.modal_id # => "1" + # global_id.model_class # => Person + # global_id.model_id # => "1" # global_id.to_param # => "Z2lkOi8vYm9yZGZvbGlvL1BlcnNvbi8x" # # pkg:gem/globalid#lib/global_id/identification.rb:40 @@ -141,8 +144,8 @@ module GlobalID::Identification # # model = Person.new id: 1 # global_id = model.to_global_id - # global_id.modal_class # => Person - # global_id.modal_id # => "1" + # global_id.model_class # => Person + # global_id.model_id # => "1" # global_id.to_param # => "Z2lkOi8vYm9yZGZvbGlvL1BlcnNvbi8x" # # pkg:gem/globalid#lib/global_id/identification.rb:37 @@ -153,8 +156,8 @@ module GlobalID::Identification # # model = Person.new id: 1 # signed_global_id = model.to_signed_global_id - # signed_global_id.modal_class # => Person - # signed_global_id.modal_id # => "1" + # signed_global_id.model_class # => Person + # signed_global_id.model_id # => "1" # signed_global_id.to_param # => "BAh7CEkiCGdpZAY6BkVUSSIiZ2..." # # ==== Expiration @@ -222,8 +225,8 @@ module GlobalID::Identification # # model = Person.new id: 1 # signed_global_id = model.to_signed_global_id - # signed_global_id.modal_class # => Person - # signed_global_id.modal_id # => "1" + # signed_global_id.model_class # => Person + # signed_global_id.model_id # => "1" # signed_global_id.to_param # => "BAh7CEkiCGdpZAY6BkVUSSIiZ2..." # # ==== Expiration @@ -282,6 +285,16 @@ end # pkg:gem/globalid#lib/global_id/locator.rb:4 module GlobalID::Locator class << self + # The default locator used when no app-specific locator is found. + # + # pkg:gem/globalid#lib/global_id/locator.rb:9 + def default_locator; end + + # The default locator used when no app-specific locator is found. + # + # pkg:gem/globalid#lib/global_id/locator.rb:9 + def default_locator=(_arg0); end + # Takes either a GlobalID or a string that can be turned into a GlobalID # # Options: @@ -295,7 +308,7 @@ module GlobalID::Locator # instances of returned classes to those including that module. If no classes or # modules match, +nil+ is returned. # - # pkg:gem/globalid#lib/global_id/locator.rb:20 + # pkg:gem/globalid#lib/global_id/locator.rb:23 def locate(gid, options = T.unsafe(nil)); end # Takes an array of GlobalIDs or strings that can be turned into a GlobalIDs. @@ -324,7 +337,7 @@ module GlobalID::Locator # #find will raise an exception if a named ID can't be found. When you set this option to true, # we will use #where(id: ids) instead, which does not raise on missing records. # - # pkg:gem/globalid#lib/global_id/locator.rb:60 + # pkg:gem/globalid#lib/global_id/locator.rb:63 def locate_many(gids, options = T.unsafe(nil)); end # Takes an array of SignedGlobalIDs or strings that can be turned into a SignedGlobalIDs. @@ -346,7 +359,7 @@ module GlobalID::Locator # instances of returned classes to those including that module. If no classes or # modules match, +nil+ is returned. # - # pkg:gem/globalid#lib/global_id/locator.rb:103 + # pkg:gem/globalid#lib/global_id/locator.rb:106 def locate_many_signed(sgids, options = T.unsafe(nil)); end # Takes either a SignedGlobalID or a string that can be turned into a SignedGlobalID @@ -362,7 +375,7 @@ module GlobalID::Locator # instances of returned classes to those including that module. If no classes or # modules match, +nil+ is returned. # - # pkg:gem/globalid#lib/global_id/locator.rb:81 + # pkg:gem/globalid#lib/global_id/locator.rb:84 def locate_signed(sgid, options = T.unsafe(nil)); end # Tie a locator to an app. @@ -388,80 +401,77 @@ module GlobalID::Locator # # @raise [ArgumentError] # - # pkg:gem/globalid#lib/global_id/locator.rb:127 + # pkg:gem/globalid#lib/global_id/locator.rb:130 def use(app, locator = T.unsafe(nil), &locator_block); end private # @return [Boolean] # - # pkg:gem/globalid#lib/global_id/locator.rb:140 + # pkg:gem/globalid#lib/global_id/locator.rb:143 def find_allowed?(model_class, only = T.unsafe(nil)); end - # pkg:gem/globalid#lib/global_id/locator.rb:136 + # pkg:gem/globalid#lib/global_id/locator.rb:139 def locator_for(gid); end - # pkg:gem/globalid#lib/global_id/locator.rb:148 + # pkg:gem/globalid#lib/global_id/locator.rb:151 def normalize_app(app); end - # pkg:gem/globalid#lib/global_id/locator.rb:144 + # pkg:gem/globalid#lib/global_id/locator.rb:147 def parse_allowed(gids, only = T.unsafe(nil)); end end end -# pkg:gem/globalid#lib/global_id/locator.rb:156 +# pkg:gem/globalid#lib/global_id/locator.rb:159 class GlobalID::Locator::BaseLocator - # pkg:gem/globalid#lib/global_id/locator.rb:157 + # pkg:gem/globalid#lib/global_id/locator.rb:160 def locate(gid, options = T.unsafe(nil)); end - # pkg:gem/globalid#lib/global_id/locator.rb:165 + # pkg:gem/globalid#lib/global_id/locator.rb:168 def locate_many(gids, options = T.unsafe(nil)); end private - # pkg:gem/globalid#lib/global_id/locator.rb:189 + # pkg:gem/globalid#lib/global_id/locator.rb:192 def find_records(model_class, ids, options); end # @return [Boolean] # - # pkg:gem/globalid#lib/global_id/locator.rb:199 + # pkg:gem/globalid#lib/global_id/locator.rb:202 def model_id_is_valid?(gid); end - # pkg:gem/globalid#lib/global_id/locator.rb:203 + # pkg:gem/globalid#lib/global_id/locator.rb:206 def primary_key(model_class); end end -# pkg:gem/globalid#lib/global_id/locator.rb:228 +# pkg:gem/globalid#lib/global_id/locator.rb:232 class GlobalID::Locator::BlockLocator # @return [BlockLocator] a new instance of BlockLocator # - # pkg:gem/globalid#lib/global_id/locator.rb:229 + # pkg:gem/globalid#lib/global_id/locator.rb:233 def initialize(block); end - # pkg:gem/globalid#lib/global_id/locator.rb:233 + # pkg:gem/globalid#lib/global_id/locator.rb:237 def locate(gid, options = T.unsafe(nil)); end - # pkg:gem/globalid#lib/global_id/locator.rb:237 + # pkg:gem/globalid#lib/global_id/locator.rb:241 def locate_many(gids, options = T.unsafe(nil)); end end -# pkg:gem/globalid#lib/global_id/locator.rb:226 -GlobalID::Locator::DEFAULT_LOCATOR = T.let(T.unsafe(nil), GlobalID::Locator::UnscopedLocator) - # pkg:gem/globalid#lib/global_id/locator.rb:5 class GlobalID::Locator::InvalidModelIdError < ::StandardError; end -# pkg:gem/globalid#lib/global_id/locator.rb:208 +# pkg:gem/globalid#lib/global_id/locator.rb:211 class GlobalID::Locator::UnscopedLocator < ::GlobalID::Locator::BaseLocator - # pkg:gem/globalid#lib/global_id/locator.rb:209 + # pkg:gem/globalid#lib/global_id/locator.rb:212 def locate(gid, options = T.unsafe(nil)); end private - # pkg:gem/globalid#lib/global_id/locator.rb:214 + # pkg:gem/globalid#lib/global_id/locator.rb:217 def find_records(model_class, ids, options); end - # pkg:gem/globalid#lib/global_id/locator.rb:218 + # pkg:gem/globalid#lib/global_id/locator.rb:221 def unscoped(model_class); end end @@ -600,7 +610,7 @@ class URI::GID < ::URI::Generic # pkg:gem/globalid#lib/global_id/uri/gid.rb:28 def app; end - # pkg:gem/globalid#lib/global_id/uri/gid.rb:107 + # pkg:gem/globalid#lib/global_id/uri/gid.rb:109 def deconstruct_keys(_keys); end # Returns the value of attribute model_id. @@ -618,57 +628,57 @@ class URI::GID < ::URI::Generic # pkg:gem/globalid#lib/global_id/uri/gid.rb:29 def params; end - # pkg:gem/globalid#lib/global_id/uri/gid.rb:102 + # pkg:gem/globalid#lib/global_id/uri/gid.rb:104 def to_s; end protected # Ruby 2.2 uses #query= instead of #set_query # - # pkg:gem/globalid#lib/global_id/uri/gid.rb:118 + # pkg:gem/globalid#lib/global_id/uri/gid.rb:120 def query=(query); end - # pkg:gem/globalid#lib/global_id/uri/gid.rb:129 + # pkg:gem/globalid#lib/global_id/uri/gid.rb:131 def set_params(params); end - # pkg:gem/globalid#lib/global_id/uri/gid.rb:112 + # pkg:gem/globalid#lib/global_id/uri/gid.rb:114 def set_path(path); end # Ruby 2.1 or less uses #set_query to assign the query # - # pkg:gem/globalid#lib/global_id/uri/gid.rb:124 + # pkg:gem/globalid#lib/global_id/uri/gid.rb:126 def set_query(query); end private - # pkg:gem/globalid#lib/global_id/uri/gid.rb:136 + # pkg:gem/globalid#lib/global_id/uri/gid.rb:138 def check_host(host); end - # pkg:gem/globalid#lib/global_id/uri/gid.rb:141 + # pkg:gem/globalid#lib/global_id/uri/gid.rb:143 def check_path(path); end - # pkg:gem/globalid#lib/global_id/uri/gid.rb:146 + # pkg:gem/globalid#lib/global_id/uri/gid.rb:148 def check_scheme(scheme); end - # pkg:gem/globalid#lib/global_id/uri/gid.rb:195 + # pkg:gem/globalid#lib/global_id/uri/gid.rb:197 def parse_query_params(query); end - # pkg:gem/globalid#lib/global_id/uri/gid.rb:154 + # pkg:gem/globalid#lib/global_id/uri/gid.rb:156 def set_model_components(path, validate = T.unsafe(nil)); end # @raise [URI::InvalidComponentError] # - # pkg:gem/globalid#lib/global_id/uri/gid.rb:174 + # pkg:gem/globalid#lib/global_id/uri/gid.rb:176 def validate_component(component); end # @raise [InvalidModelIdError] # - # pkg:gem/globalid#lib/global_id/uri/gid.rb:188 + # pkg:gem/globalid#lib/global_id/uri/gid.rb:190 def validate_model_id(model_id_part); end # @raise [MissingModelIdError] # - # pkg:gem/globalid#lib/global_id/uri/gid.rb:181 + # pkg:gem/globalid#lib/global_id/uri/gid.rb:183 def validate_model_id_section(model_id, model_name); end class << self @@ -685,14 +695,14 @@ class URI::GID < ::URI::Generic # # URI::GID.build(['bcx', 'Person', '1', key: 'value']) # - # pkg:gem/globalid#lib/global_id/uri/gid.rb:88 + # pkg:gem/globalid#lib/global_id/uri/gid.rb:90 def build(args); end # Shorthand to build a URI::GID from an app, a model and optional params. # # URI::GID.create('bcx', Person.find(5), database: 'superhumans') # - # pkg:gem/globalid#lib/global_id/uri/gid.rb:72 + # pkg:gem/globalid#lib/global_id/uri/gid.rb:74 def create(app, model, params = T.unsafe(nil)); end # Create a new URI::GID by parsing a gid string with argument check. @@ -705,7 +715,7 @@ class URI::GID < ::URI::Generic # URI.parse('gid://bcx') # => URI::GID instance # URI::GID.parse('gid://bcx/') # => raises URI::InvalidComponentError # - # pkg:gem/globalid#lib/global_id/uri/gid.rb:64 + # pkg:gem/globalid#lib/global_id/uri/gid.rb:66 def parse(uri); end # Validates +app+'s as URI hostnames containing only alphanumeric characters @@ -717,12 +727,12 @@ class URI::GID < ::URI::Generic # URI::GID.validate_app(nil) # => ArgumentError # URI::GID.validate_app('foo/bar') # => ArgumentError # - # pkg:gem/globalid#lib/global_id/uri/gid.rb:48 + # pkg:gem/globalid#lib/global_id/uri/gid.rb:50 def validate_app(app); end end end -# pkg:gem/globalid#lib/global_id/uri/gid.rb:134 +# pkg:gem/globalid#lib/global_id/uri/gid.rb:136 URI::GID::COMPONENT = T.let(T.unsafe(nil), Array) # pkg:gem/globalid#lib/global_id/uri/gid.rb:37 @@ -740,3 +750,6 @@ class URI::GID::InvalidModelIdError < ::URI::InvalidComponentError; end # # pkg:gem/globalid#lib/global_id/uri/gid.rb:32 class URI::GID::MissingModelIdError < ::URI::InvalidComponentError; end + +# pkg:gem/globalid#lib/global_id/uri/gid.rb:39 +URI::GID::URI_PARSER = T.let(T.unsafe(nil), URI::RFC2396_Parser) diff --git a/sorbet/rbi/gems/mail@2.8.1.rbi b/sorbet/rbi/gems/mail@2.9.0.rbi similarity index 84% rename from sorbet/rbi/gems/mail@2.8.1.rbi rename to sorbet/rbi/gems/mail@2.9.0.rbi index 3eeb2e14a..cce6fd9ab 100644 --- a/sorbet/rbi/gems/mail@2.8.1.rbi +++ b/sorbet/rbi/gems/mail@2.9.0.rbi @@ -94,6 +94,11 @@ module Mail # pkg:gem/mail#lib/mail/mail.rb:131 def deliver(*args, &block); end + # Returns a list of registered delivery interceptors. + # + # pkg:gem/mail#lib/mail/mail.rb:240 + def delivery_interceptors; end + # Returns the delivery method selected, defaults to an instance of Mail::SMTP # # pkg:gem/mail#lib/mail/mail.rb:103 @@ -134,7 +139,7 @@ module Mail # pkg:gem/mail#lib/mail/mail.rb:227 def inform_observers(mail); end - # Receive the first email(s) from the default retriever + # Receive the last email(s) from the default retriever # See Mail::Retriever for a complete documentation. # # pkg:gem/mail#lib/mail/mail.rb:157 @@ -189,7 +194,7 @@ module Mail # pkg:gem/mail#lib/mail/mail.rb:50 def new(*args, &block); end - # pkg:gem/mail#lib/mail/mail.rb:243 + # pkg:gem/mail#lib/mail/mail.rb:248 def random_tag; end # Reads in an email message from a path and instantiates it as a new Mail::Message @@ -230,10 +235,10 @@ module Mail # pkg:gem/mail#lib/mail/mail.rb:108 def retriever_method; end - # pkg:gem/mail#lib/mail/mail.rb:252 + # pkg:gem/mail#lib/mail/mail.rb:257 def something_random; end - # pkg:gem/mail#lib/mail/mail.rb:256 + # pkg:gem/mail#lib/mail/mail.rb:261 def uniq; end # Unregister the given interceptor, allowing mail to resume operations @@ -420,14 +425,14 @@ class Mail::Address def strip_domain_comments(value); end end -# pkg:gem/mail#lib/mail/fields/common_address_field.rb:6 +# pkg:gem/mail#lib/mail/fields/common_address_field.rb:5 class Mail::AddressContainer < ::Array # @return [AddressContainer] a new instance of AddressContainer # - # pkg:gem/mail#lib/mail/fields/common_address_field.rb:7 + # pkg:gem/mail#lib/mail/fields/common_address_field.rb:6 def initialize(field, list = T.unsafe(nil)); end - # pkg:gem/mail#lib/mail/fields/common_address_field.rb:12 + # pkg:gem/mail#lib/mail/fields/common_address_field.rb:11 def <<(address); end end @@ -483,22 +488,22 @@ class Mail::AttachmentsList < ::Array # mail.attachments['test.png'].filename #=> 'test.png' # mail.attachments[1].filename #=> 'test.jpg' # - # pkg:gem/mail#lib/mail/attachments_list.rb:32 + # pkg:gem/mail#lib/mail/attachments_list.rb:34 def [](index_value); end - # pkg:gem/mail#lib/mail/attachments_list.rb:40 + # pkg:gem/mail#lib/mail/attachments_list.rb:42 def []=(name, value); end # Uses the mime type to try and guess the encoding, if it is a binary type, or unknown, then we # set it to binary, otherwise as set to plain text # - # pkg:gem/mail#lib/mail/attachments_list.rb:91 + # pkg:gem/mail#lib/mail/attachments_list.rb:93 def guess_encoding; end - # pkg:gem/mail#lib/mail/attachments_list.rb:20 + # pkg:gem/mail#lib/mail/attachments_list.rb:22 def inline; end - # pkg:gem/mail#lib/mail/attachments_list.rb:99 + # pkg:gem/mail#lib/mail/attachments_list.rb:101 def set_mime_type(filename); end end @@ -528,32 +533,32 @@ end # mail[:bcc].addresses #=> ['mikel@test.lindsaar.net', 'ada@test.lindsaar.net'] # mail[:bcc].formatted #=> ['Mikel Lindsaar ', 'ada@test.lindsaar.net'] # -# pkg:gem/mail#lib/mail/fields/bcc_field.rb:31 +# pkg:gem/mail#lib/mail/fields/bcc_field.rb:30 class Mail::BccField < ::Mail::CommonAddressField # @return [BccField] a new instance of BccField # - # pkg:gem/mail#lib/mail/fields/bcc_field.rb:36 + # pkg:gem/mail#lib/mail/fields/bcc_field.rb:35 def initialize(value = T.unsafe(nil), charset = T.unsafe(nil)); end # Bcc field should not be :encoded by default # - # pkg:gem/mail#lib/mail/fields/bcc_field.rb:42 + # pkg:gem/mail#lib/mail/fields/bcc_field.rb:41 def encoded; end # Returns the value of attribute include_in_headers. # - # pkg:gem/mail#lib/mail/fields/bcc_field.rb:34 + # pkg:gem/mail#lib/mail/fields/bcc_field.rb:33 def include_in_headers; end # Sets the attribute include_in_headers # # @param value the value to set the attribute include_in_headers to. # - # pkg:gem/mail#lib/mail/fields/bcc_field.rb:34 + # pkg:gem/mail#lib/mail/fields/bcc_field.rb:33 def include_in_headers=(_arg0); end end -# pkg:gem/mail#lib/mail/fields/bcc_field.rb:32 +# pkg:gem/mail#lib/mail/fields/bcc_field.rb:31 Mail::BccField::NAME = T.let(T.unsafe(nil), String) # = Body @@ -812,53 +817,12 @@ end # mail[:cc].addresses #=> ['mikel@test.lindsaar.net', 'ada@test.lindsaar.net'] # mail[:cc].formatted #=> ['Mikel Lindsaar ', 'ada@test.lindsaar.net'] # -# pkg:gem/mail#lib/mail/fields/cc_field.rb:31 +# pkg:gem/mail#lib/mail/fields/cc_field.rb:30 class Mail::CcField < ::Mail::CommonAddressField; end -# pkg:gem/mail#lib/mail/fields/cc_field.rb:32 +# pkg:gem/mail#lib/mail/fields/cc_field.rb:31 Mail::CcField::NAME = T.let(T.unsafe(nil), String) -# pkg:gem/mail#lib/mail/check_delivery_params.rb:5 -module Mail::CheckDeliveryParams - class << self - # pkg:gem/mail#lib/mail/check_delivery_params.rb:16 - def _deprecated_check(mail); end - - # pkg:gem/mail#lib/mail/check_delivery_params.rb:36 - def _deprecated_check_addr(addr_name, addr); end - - # pkg:gem/mail#lib/mail/check_delivery_params.rb:22 - def _deprecated_check_from(addr); end - - # pkg:gem/mail#lib/mail/check_delivery_params.rb:62 - def _deprecated_check_message(message); end - - # pkg:gem/mail#lib/mail/check_delivery_params.rb:30 - def _deprecated_check_to(addrs); end - - # pkg:gem/mail#lib/mail/check_delivery_params.rb:51 - def _deprecated_validate_smtp_addr(addr); end - - # pkg:gem/mail#lib/mail/check_delivery_params.rb:10 - def check(*args, **_arg1, &block); end - - # pkg:gem/mail#lib/mail/check_delivery_params.rb:32 - def check_addr(*args, **_arg1, &block); end - - # pkg:gem/mail#lib/mail/check_delivery_params.rb:18 - def check_from(*args, **_arg1, &block); end - - # pkg:gem/mail#lib/mail/check_delivery_params.rb:53 - def check_message(*args, **_arg1, &block); end - - # pkg:gem/mail#lib/mail/check_delivery_params.rb:24 - def check_to(*args, **_arg1, &block); end - - # pkg:gem/mail#lib/mail/check_delivery_params.rb:38 - def validate_smtp_addr(*args, **_arg1, &block); end - end -end - # = Comments Field # # The Comments field inherits from UnstructuredField and handles the Comments: @@ -883,141 +847,141 @@ end # mail[:comments].map { |c| c.to_s } # #=> ['This is a comment', "This is another comment"] # -# pkg:gem/mail#lib/mail/fields/comments_field.rb:29 +# pkg:gem/mail#lib/mail/fields/comments_field.rb:28 class Mail::CommentsField < ::Mail::NamedUnstructuredField; end -# pkg:gem/mail#lib/mail/fields/comments_field.rb:30 +# pkg:gem/mail#lib/mail/fields/comments_field.rb:29 Mail::CommentsField::NAME = T.let(T.unsafe(nil), String) -# pkg:gem/mail#lib/mail/fields/common_address_field.rb:17 +# pkg:gem/mail#lib/mail/fields/common_address_field.rb:16 class Mail::CommonAddressField < ::Mail::NamedStructuredField # @return [CommonAddressField] a new instance of CommonAddressField # - # pkg:gem/mail#lib/mail/fields/common_address_field.rb:22 + # pkg:gem/mail#lib/mail/fields/common_address_field.rb:21 def initialize(value = T.unsafe(nil), charset = T.unsafe(nil)); end - # pkg:gem/mail#lib/mail/fields/common_address_field.rb:94 + # pkg:gem/mail#lib/mail/fields/common_address_field.rb:93 def <<(val); end - # pkg:gem/mail#lib/mail/fields/common_address_field.rb:41 + # pkg:gem/mail#lib/mail/fields/common_address_field.rb:40 def address; end # Returns the address string of all the addresses in the address list # - # pkg:gem/mail#lib/mail/fields/common_address_field.rb:46 + # pkg:gem/mail#lib/mail/fields/common_address_field.rb:45 def addresses; end # Returns the actual address objects in the address list # - # pkg:gem/mail#lib/mail/fields/common_address_field.rb:64 + # pkg:gem/mail#lib/mail/fields/common_address_field.rb:63 def addrs; end # Returns a list of decoded group addresses # - # pkg:gem/mail#lib/mail/fields/common_address_field.rb:80 + # pkg:gem/mail#lib/mail/fields/common_address_field.rb:79 def decoded_group_addresses; end - # pkg:gem/mail#lib/mail/fields/common_address_field.rb:37 + # pkg:gem/mail#lib/mail/fields/common_address_field.rb:36 def default; end # Returns the display name of all the addresses in the address list # - # pkg:gem/mail#lib/mail/fields/common_address_field.rb:58 + # pkg:gem/mail#lib/mail/fields/common_address_field.rb:57 def display_names; end # Allows you to iterate through each address object in the address_list # - # pkg:gem/mail#lib/mail/fields/common_address_field.rb:31 + # pkg:gem/mail#lib/mail/fields/common_address_field.rb:30 def each; end - # pkg:gem/mail#lib/mail/fields/common_address_field.rb:26 + # pkg:gem/mail#lib/mail/fields/common_address_field.rb:25 def element; end - # pkg:gem/mail#lib/mail/fields/common_address_field.rb:105 + # pkg:gem/mail#lib/mail/fields/common_address_field.rb:104 def encode_if_needed(val, val_charset = T.unsafe(nil)); end # Returns a list of encoded group addresses # - # pkg:gem/mail#lib/mail/fields/common_address_field.rb:85 + # pkg:gem/mail#lib/mail/fields/common_address_field.rb:84 def encoded_group_addresses; end # Returns the formatted string of all the addresses in the address list # - # pkg:gem/mail#lib/mail/fields/common_address_field.rb:52 + # pkg:gem/mail#lib/mail/fields/common_address_field.rb:51 def formatted; end # Returns the addresses that are part of groups # - # pkg:gem/mail#lib/mail/fields/common_address_field.rb:75 + # pkg:gem/mail#lib/mail/fields/common_address_field.rb:74 def group_addresses; end # Returns the name of all the groups in a string # - # pkg:gem/mail#lib/mail/fields/common_address_field.rb:90 + # pkg:gem/mail#lib/mail/fields/common_address_field.rb:89 def group_names; end # Returns a hash of group name => address strings for the address list # - # pkg:gem/mail#lib/mail/fields/common_address_field.rb:70 + # pkg:gem/mail#lib/mail/fields/common_address_field.rb:69 def groups; end private - # pkg:gem/mail#lib/mail/fields/common_address_field.rb:150 + # pkg:gem/mail#lib/mail/fields/common_address_field.rb:142 def do_decode; end - # pkg:gem/mail#lib/mail/fields/common_address_field.rb:140 + # pkg:gem/mail#lib/mail/fields/common_address_field.rb:132 def do_encode; end - # pkg:gem/mail#lib/mail/fields/common_address_field.rb:160 + # pkg:gem/mail#lib/mail/fields/common_address_field.rb:152 def get_group_addresses(group_list); end # Pass through UTF-8 addresses # - # pkg:gem/mail#lib/mail/fields/common_address_field.rb:123 + # pkg:gem/mail#lib/mail/fields/common_address_field.rb:122 def utf8_if_needed(val, val_charset); end class << self # @return [Boolean] # - # pkg:gem/mail#lib/mail/fields/common_address_field.rb:18 + # pkg:gem/mail#lib/mail/fields/common_address_field.rb:17 def singular?; end end end -# pkg:gem/mail#lib/mail/fields/common_date_field.rb:6 +# pkg:gem/mail#lib/mail/fields/common_date_field.rb:4 class Mail::CommonDateField < ::Mail::NamedStructuredField # @return [CommonDateField] a new instance of CommonDateField # - # pkg:gem/mail#lib/mail/fields/common_date_field.rb:30 + # pkg:gem/mail#lib/mail/fields/common_date_field.rb:28 def initialize(value = T.unsafe(nil), charset = T.unsafe(nil)); end # Returns a date time object of the parsed date # - # pkg:gem/mail#lib/mail/fields/common_date_field.rb:35 + # pkg:gem/mail#lib/mail/fields/common_date_field.rb:33 def date_time; end - # pkg:gem/mail#lib/mail/fields/common_date_field.rb:41 + # pkg:gem/mail#lib/mail/fields/common_date_field.rb:39 def default; end - # pkg:gem/mail#lib/mail/fields/common_date_field.rb:45 + # pkg:gem/mail#lib/mail/fields/common_date_field.rb:43 def element; end private - # pkg:gem/mail#lib/mail/fields/common_date_field.rb:54 + # pkg:gem/mail#lib/mail/fields/common_date_field.rb:52 def do_decode; end - # pkg:gem/mail#lib/mail/fields/common_date_field.rb:50 + # pkg:gem/mail#lib/mail/fields/common_date_field.rb:48 def do_encode; end class << self - # pkg:gem/mail#lib/mail/fields/common_date_field.rb:11 + # pkg:gem/mail#lib/mail/fields/common_date_field.rb:9 def normalize_datetime(string); end # @return [Boolean] # - # pkg:gem/mail#lib/mail/fields/common_date_field.rb:7 + # pkg:gem/mail#lib/mail/fields/common_date_field.rb:5 def singular?; end end end @@ -1113,32 +1077,32 @@ end # pkg:gem/mail#lib/mail/fields/common_field.rb:68 Mail::CommonField::FILENAME_RE = T.let(T.unsafe(nil), Regexp) -# pkg:gem/mail#lib/mail/fields/common_message_id_field.rb:7 +# pkg:gem/mail#lib/mail/fields/common_message_id_field.rb:6 class Mail::CommonMessageIdField < ::Mail::NamedStructuredField - # pkg:gem/mail#lib/mail/fields/common_message_id_field.rb:20 + # pkg:gem/mail#lib/mail/fields/common_message_id_field.rb:19 def default; end - # pkg:gem/mail#lib/mail/fields/common_message_id_field.rb:8 + # pkg:gem/mail#lib/mail/fields/common_message_id_field.rb:7 def element; end - # pkg:gem/mail#lib/mail/fields/common_message_id_field.rb:12 + # pkg:gem/mail#lib/mail/fields/common_message_id_field.rb:11 def message_id; end - # pkg:gem/mail#lib/mail/fields/common_message_id_field.rb:16 + # pkg:gem/mail#lib/mail/fields/common_message_id_field.rb:15 def message_ids; end - # pkg:gem/mail#lib/mail/fields/common_message_id_field.rb:25 + # pkg:gem/mail#lib/mail/fields/common_message_id_field.rb:24 def to_s; end private - # pkg:gem/mail#lib/mail/fields/common_message_id_field.rb:34 + # pkg:gem/mail#lib/mail/fields/common_message_id_field.rb:33 def do_decode; end - # pkg:gem/mail#lib/mail/fields/common_message_id_field.rb:30 + # pkg:gem/mail#lib/mail/fields/common_message_id_field.rb:29 def do_encode; end - # pkg:gem/mail#lib/mail/fields/common_message_id_field.rb:38 + # pkg:gem/mail#lib/mail/fields/common_message_id_field.rb:37 def formatted_message_ids(join = T.unsafe(nil)); end end @@ -1302,17 +1266,17 @@ Mail::Constants::UNFOLD_WS = T.let(T.unsafe(nil), Regexp) # pkg:gem/mail#lib/mail/constants.rb:20 Mail::Constants::WSP = T.let(T.unsafe(nil), Regexp) -# pkg:gem/mail#lib/mail/fields/content_description_field.rb:6 +# pkg:gem/mail#lib/mail/fields/content_description_field.rb:5 class Mail::ContentDescriptionField < ::Mail::NamedUnstructuredField class << self # @return [Boolean] # - # pkg:gem/mail#lib/mail/fields/content_description_field.rb:9 + # pkg:gem/mail#lib/mail/fields/content_description_field.rb:8 def singular?; end end end -# pkg:gem/mail#lib/mail/fields/content_description_field.rb:7 +# pkg:gem/mail#lib/mail/fields/content_description_field.rb:6 Mail::ContentDescriptionField::NAME = T.let(T.unsafe(nil), String) # pkg:gem/mail#lib/mail/elements/content_disposition_element.rb:6 @@ -1338,72 +1302,72 @@ class Mail::ContentDispositionElement def cleaned(string); end end -# pkg:gem/mail#lib/mail/fields/content_disposition_field.rb:7 +# pkg:gem/mail#lib/mail/fields/content_disposition_field.rb:5 class Mail::ContentDispositionField < ::Mail::NamedStructuredField # @return [ContentDispositionField] a new instance of ContentDispositionField # - # pkg:gem/mail#lib/mail/fields/content_disposition_field.rb:14 + # pkg:gem/mail#lib/mail/fields/content_disposition_field.rb:12 def initialize(value = T.unsafe(nil), charset = T.unsafe(nil)); end - # pkg:gem/mail#lib/mail/fields/content_disposition_field.rb:41 + # pkg:gem/mail#lib/mail/fields/content_disposition_field.rb:39 def decoded; end - # pkg:gem/mail#lib/mail/fields/content_disposition_field.rb:22 + # pkg:gem/mail#lib/mail/fields/content_disposition_field.rb:20 def disposition_type; end - # pkg:gem/mail#lib/mail/fields/content_disposition_field.rb:18 + # pkg:gem/mail#lib/mail/fields/content_disposition_field.rb:16 def element; end - # pkg:gem/mail#lib/mail/fields/content_disposition_field.rb:36 + # pkg:gem/mail#lib/mail/fields/content_disposition_field.rb:34 def encoded; end - # pkg:gem/mail#lib/mail/fields/content_disposition_field.rb:32 + # pkg:gem/mail#lib/mail/fields/content_disposition_field.rb:30 def filename; end - # pkg:gem/mail#lib/mail/fields/content_disposition_field.rb:26 + # pkg:gem/mail#lib/mail/fields/content_disposition_field.rb:24 def parameters; end class << self # @return [Boolean] # - # pkg:gem/mail#lib/mail/fields/content_disposition_field.rb:10 + # pkg:gem/mail#lib/mail/fields/content_disposition_field.rb:8 def singular?; end end end -# pkg:gem/mail#lib/mail/fields/content_disposition_field.rb:8 +# pkg:gem/mail#lib/mail/fields/content_disposition_field.rb:6 Mail::ContentDispositionField::NAME = T.let(T.unsafe(nil), String) -# pkg:gem/mail#lib/mail/fields/content_id_field.rb:7 +# pkg:gem/mail#lib/mail/fields/content_id_field.rb:6 class Mail::ContentIdField < ::Mail::NamedStructuredField # @return [ContentIdField] a new instance of ContentIdField # - # pkg:gem/mail#lib/mail/fields/content_id_field.rb:14 + # pkg:gem/mail#lib/mail/fields/content_id_field.rb:13 def initialize(value = T.unsafe(nil), charset = T.unsafe(nil)); end - # pkg:gem/mail#lib/mail/fields/content_id_field.rb:23 + # pkg:gem/mail#lib/mail/fields/content_id_field.rb:22 def content_id; end - # pkg:gem/mail#lib/mail/fields/content_id_field.rb:19 + # pkg:gem/mail#lib/mail/fields/content_id_field.rb:18 def element; end private - # pkg:gem/mail#lib/mail/fields/content_id_field.rb:28 + # pkg:gem/mail#lib/mail/fields/content_id_field.rb:27 def do_decode; end - # pkg:gem/mail#lib/mail/fields/content_id_field.rb:32 + # pkg:gem/mail#lib/mail/fields/content_id_field.rb:31 def do_encode; end class << self # @return [Boolean] # - # pkg:gem/mail#lib/mail/fields/content_id_field.rb:10 + # pkg:gem/mail#lib/mail/fields/content_id_field.rb:9 def singular?; end end end -# pkg:gem/mail#lib/mail/fields/content_id_field.rb:8 +# pkg:gem/mail#lib/mail/fields/content_id_field.rb:7 Mail::ContentIdField::NAME = T.let(T.unsafe(nil), String) # pkg:gem/mail#lib/mail/elements/content_location_element.rb:6 @@ -1422,29 +1386,29 @@ class Mail::ContentLocationElement def to_s(*args); end end -# pkg:gem/mail#lib/mail/fields/content_location_field.rb:6 +# pkg:gem/mail#lib/mail/fields/content_location_field.rb:5 class Mail::ContentLocationField < ::Mail::NamedStructuredField - # pkg:gem/mail#lib/mail/fields/content_location_field.rb:25 + # pkg:gem/mail#lib/mail/fields/content_location_field.rb:24 def decoded; end - # pkg:gem/mail#lib/mail/fields/content_location_field.rb:13 + # pkg:gem/mail#lib/mail/fields/content_location_field.rb:12 def element; end - # pkg:gem/mail#lib/mail/fields/content_location_field.rb:21 + # pkg:gem/mail#lib/mail/fields/content_location_field.rb:20 def encoded; end - # pkg:gem/mail#lib/mail/fields/content_location_field.rb:17 + # pkg:gem/mail#lib/mail/fields/content_location_field.rb:16 def location; end class << self # @return [Boolean] # - # pkg:gem/mail#lib/mail/fields/content_location_field.rb:9 + # pkg:gem/mail#lib/mail/fields/content_location_field.rb:8 def singular?; end end end -# pkg:gem/mail#lib/mail/fields/content_location_field.rb:7 +# pkg:gem/mail#lib/mail/fields/content_location_field.rb:6 Mail::ContentLocationField::NAME = T.let(T.unsafe(nil), String) # pkg:gem/mail#lib/mail/elements/content_transfer_encoding_element.rb:6 @@ -1460,39 +1424,39 @@ class Mail::ContentTransferEncodingElement def encoding; end end -# pkg:gem/mail#lib/mail/fields/content_transfer_encoding_field.rb:6 +# pkg:gem/mail#lib/mail/fields/content_transfer_encoding_field.rb:5 class Mail::ContentTransferEncodingField < ::Mail::NamedStructuredField # @return [ContentTransferEncodingField] a new instance of ContentTransferEncodingField # - # pkg:gem/mail#lib/mail/fields/content_transfer_encoding_field.rb:24 + # pkg:gem/mail#lib/mail/fields/content_transfer_encoding_field.rb:23 def initialize(value = T.unsafe(nil), charset = T.unsafe(nil)); end - # pkg:gem/mail#lib/mail/fields/content_transfer_encoding_field.rb:28 + # pkg:gem/mail#lib/mail/fields/content_transfer_encoding_field.rb:27 def element; end - # pkg:gem/mail#lib/mail/fields/content_transfer_encoding_field.rb:32 + # pkg:gem/mail#lib/mail/fields/content_transfer_encoding_field.rb:31 def encoding; end private - # pkg:gem/mail#lib/mail/fields/content_transfer_encoding_field.rb:41 + # pkg:gem/mail#lib/mail/fields/content_transfer_encoding_field.rb:40 def do_decode; end - # pkg:gem/mail#lib/mail/fields/content_transfer_encoding_field.rb:37 + # pkg:gem/mail#lib/mail/fields/content_transfer_encoding_field.rb:36 def do_encode; end class << self - # pkg:gem/mail#lib/mail/fields/content_transfer_encoding_field.rb:13 + # pkg:gem/mail#lib/mail/fields/content_transfer_encoding_field.rb:12 def normalize_content_transfer_encoding(value); end # @return [Boolean] # - # pkg:gem/mail#lib/mail/fields/content_transfer_encoding_field.rb:9 + # pkg:gem/mail#lib/mail/fields/content_transfer_encoding_field.rb:8 def singular?; end end end -# pkg:gem/mail#lib/mail/fields/content_transfer_encoding_field.rb:7 +# pkg:gem/mail#lib/mail/fields/content_transfer_encoding_field.rb:6 Mail::ContentTransferEncodingField::NAME = T.let(T.unsafe(nil), String) # pkg:gem/mail#lib/mail/elements/content_type_element.rb:6 @@ -1523,81 +1487,81 @@ class Mail::ContentTypeElement def cleaned(string); end end -# pkg:gem/mail#lib/mail/fields/content_type_field.rb:7 +# pkg:gem/mail#lib/mail/fields/content_type_field.rb:5 class Mail::ContentTypeField < ::Mail::NamedStructuredField # @return [ContentTypeField] a new instance of ContentTypeField # - # pkg:gem/mail#lib/mail/fields/content_type_field.rb:24 + # pkg:gem/mail#lib/mail/fields/content_type_field.rb:22 def initialize(value = T.unsafe(nil), charset = T.unsafe(nil)); end - # pkg:gem/mail#lib/mail/fields/content_type_field.rb:47 + # pkg:gem/mail#lib/mail/fields/content_type_field.rb:45 def attempt_to_clean; end - # pkg:gem/mail#lib/mail/fields/content_type_field.rb:66 + # pkg:gem/mail#lib/mail/fields/content_type_field.rb:64 def content_type; end - # pkg:gem/mail#lib/mail/fields/content_type_field.rb:101 + # pkg:gem/mail#lib/mail/fields/content_type_field.rb:99 def decoded; end - # pkg:gem/mail#lib/mail/fields/content_type_field.rb:68 + # pkg:gem/mail#lib/mail/fields/content_type_field.rb:66 def default; end - # pkg:gem/mail#lib/mail/fields/content_type_field.rb:38 + # pkg:gem/mail#lib/mail/fields/content_type_field.rb:36 def element; end - # pkg:gem/mail#lib/mail/fields/content_type_field.rb:96 + # pkg:gem/mail#lib/mail/fields/content_type_field.rb:94 def encoded; end - # pkg:gem/mail#lib/mail/fields/content_type_field.rb:92 + # pkg:gem/mail#lib/mail/fields/content_type_field.rb:90 def filename; end - # pkg:gem/mail#lib/mail/fields/content_type_field.rb:55 + # pkg:gem/mail#lib/mail/fields/content_type_field.rb:53 def main_type; end - # pkg:gem/mail#lib/mail/fields/content_type_field.rb:72 + # pkg:gem/mail#lib/mail/fields/content_type_field.rb:70 def parameters; end - # pkg:gem/mail#lib/mail/fields/content_type_field.rb:63 + # pkg:gem/mail#lib/mail/fields/content_type_field.rb:61 def string; end - # pkg:gem/mail#lib/mail/fields/content_type_field.rb:88 + # pkg:gem/mail#lib/mail/fields/content_type_field.rb:86 def stringify(params); end - # pkg:gem/mail#lib/mail/fields/content_type_field.rb:59 + # pkg:gem/mail#lib/mail/fields/content_type_field.rb:57 def sub_type; end - # pkg:gem/mail#lib/mail/fields/content_type_field.rb:80 + # pkg:gem/mail#lib/mail/fields/content_type_field.rb:78 def value; end private - # pkg:gem/mail#lib/mail/fields/content_type_field.rb:163 + # pkg:gem/mail#lib/mail/fields/content_type_field.rb:162 def get_mime_type(val); end - # pkg:gem/mail#lib/mail/fields/content_type_field.rb:108 + # pkg:gem/mail#lib/mail/fields/content_type_field.rb:106 def method_missing(name, *args, &block); end # Various special cases from random emails found that I am not going to change # the parser for # - # pkg:gem/mail#lib/mail/fields/content_type_field.rb:119 + # pkg:gem/mail#lib/mail/fields/content_type_field.rb:117 def sanitize(val); end class << self - # pkg:gem/mail#lib/mail/fields/content_type_field.rb:19 + # pkg:gem/mail#lib/mail/fields/content_type_field.rb:17 def generate_boundary; end # @return [Boolean] # - # pkg:gem/mail#lib/mail/fields/content_type_field.rb:11 + # pkg:gem/mail#lib/mail/fields/content_type_field.rb:9 def singular?; end - # pkg:gem/mail#lib/mail/fields/content_type_field.rb:15 + # pkg:gem/mail#lib/mail/fields/content_type_field.rb:13 def with_boundary(type); end end end -# pkg:gem/mail#lib/mail/fields/content_type_field.rb:8 +# pkg:gem/mail#lib/mail/fields/content_type_field.rb:6 Mail::ContentTypeField::NAME = T.let(T.unsafe(nil), String) # = Date Field @@ -1621,10 +1585,10 @@ Mail::ContentTypeField::NAME = T.let(T.unsafe(nil), String) # mail['date'] #=> '# '#(other); end - # pkg:gem/mail#lib/mail/field.rb:216 + # pkg:gem/mail#lib/mail/field.rb:246 def ==(other); end - # pkg:gem/mail#lib/mail/field.rb:186 + # pkg:gem/mail#lib/mail/field.rb:216 def field; end - # pkg:gem/mail#lib/mail/field.rb:182 + # pkg:gem/mail#lib/mail/field.rb:212 def field=(field); end - # pkg:gem/mail#lib/mail/field.rb:228 + # pkg:gem/mail#lib/mail/field.rb:258 def field_order_id; end - # pkg:gem/mail#lib/mail/field.rb:206 + # pkg:gem/mail#lib/mail/field.rb:236 def inspect; end - # pkg:gem/mail#lib/mail/field.rb:232 + # pkg:gem/mail#lib/mail/field.rb:262 def method_missing(name, *args, &block); end - # pkg:gem/mail#lib/mail/field.rb:190 + # pkg:gem/mail#lib/mail/field.rb:220 def name; end # @return [Boolean] # - # pkg:gem/mail#lib/mail/field.rb:220 + # pkg:gem/mail#lib/mail/field.rb:250 def responsible_for?(field_name); end - # pkg:gem/mail#lib/mail/field.rb:212 + # pkg:gem/mail#lib/mail/field.rb:242 def same(other); end - # pkg:gem/mail#lib/mail/field.rb:202 + # pkg:gem/mail#lib/mail/field.rb:232 def to_s; end # Returns the value of attribute unparsed_value. # - # pkg:gem/mail#lib/mail/field.rb:152 + # pkg:gem/mail#lib/mail/field.rb:181 def unparsed_value; end - # pkg:gem/mail#lib/mail/field.rb:194 + # pkg:gem/mail#lib/mail/field.rb:224 def value; end - # pkg:gem/mail#lib/mail/field.rb:198 + # pkg:gem/mail#lib/mail/field.rb:228 def value=(val); end private - # pkg:gem/mail#lib/mail/field.rb:253 + # pkg:gem/mail#lib/mail/field.rb:283 def create_field(name, value, charset); end - # pkg:gem/mail#lib/mail/field.rb:261 + # pkg:gem/mail#lib/mail/field.rb:291 def parse_field(name, value, charset); end # @return [Boolean] # - # pkg:gem/mail#lib/mail/field.rb:236 + # pkg:gem/mail#lib/mail/field.rb:266 def respond_to_missing?(method_name, include_private); end # 2.2.3. Long Header Fields @@ -2231,11 +2195,11 @@ class Mail::Field # treated in its unfolded form for further syntactic and semantic # evaluation. # - # pkg:gem/mail#lib/mail/field.rb:279 + # pkg:gem/mail#lib/mail/field.rb:309 def unfold(string); end class << self - # pkg:gem/mail#lib/mail/field.rb:147 + # pkg:gem/mail#lib/mail/field.rb:175 def field_class_for(name); end # Parse a field from a raw header line: @@ -2243,10 +2207,10 @@ class Mail::Field # Mail::Field.parse("field-name: field data") # # => # # - # pkg:gem/mail#lib/mail/field.rb:122 + # pkg:gem/mail#lib/mail/field.rb:150 def parse(field, charset = T.unsafe(nil)); end - # pkg:gem/mail#lib/mail/field.rb:129 + # pkg:gem/mail#lib/mail/field.rb:157 def split(raw_field); end end end @@ -2257,64 +2221,64 @@ Mail::Field::FIELDS_MAP = T.let(T.unsafe(nil), Hash) # pkg:gem/mail#lib/mail/field.rb:70 Mail::Field::FIELD_NAME_MAP = T.let(T.unsafe(nil), Hash) -# pkg:gem/mail#lib/mail/field.rb:240 +# pkg:gem/mail#lib/mail/field.rb:270 Mail::Field::FIELD_ORDER_LOOKUP = T.let(T.unsafe(nil), Hash) # Generic Field Exception # -# pkg:gem/mail#lib/mail/field.rb:75 +# pkg:gem/mail#lib/mail/field.rb:103 class Mail::Field::FieldError < ::StandardError; end -# pkg:gem/mail#lib/mail/field.rb:106 +# pkg:gem/mail#lib/mail/field.rb:134 class Mail::Field::IncompleteParseError < ::Mail::Field::ParseError # @return [IncompleteParseError] a new instance of IncompleteParseError # - # pkg:gem/mail#lib/mail/field.rb:107 + # pkg:gem/mail#lib/mail/field.rb:135 def initialize(element, original_text, unparsed_index); end end # pkg:gem/mail#lib/mail/field.rb:36 Mail::Field::KNOWN_FIELDS = T.let(T.unsafe(nil), Array) -# pkg:gem/mail#lib/mail/field.rb:100 +# pkg:gem/mail#lib/mail/field.rb:128 class Mail::Field::NilParseError < ::Mail::Field::ParseError # @return [NilParseError] a new instance of NilParseError # - # pkg:gem/mail#lib/mail/field.rb:101 + # pkg:gem/mail#lib/mail/field.rb:129 def initialize(element); end end # Raised when a parsing error has occurred (ie, a StructuredField has tried # to parse a field that is invalid or improperly written) # -# pkg:gem/mail#lib/mail/field.rb:80 +# pkg:gem/mail#lib/mail/field.rb:108 class Mail::Field::ParseError < ::Mail::Field::FieldError # @return [ParseError] a new instance of ParseError # - # pkg:gem/mail#lib/mail/field.rb:83 + # pkg:gem/mail#lib/mail/field.rb:111 def initialize(element, value, reason); end - # pkg:gem/mail#lib/mail/field.rb:81 + # pkg:gem/mail#lib/mail/field.rb:109 def element; end - # pkg:gem/mail#lib/mail/field.rb:81 + # pkg:gem/mail#lib/mail/field.rb:109 def element=(_arg0); end - # pkg:gem/mail#lib/mail/field.rb:81 + # pkg:gem/mail#lib/mail/field.rb:109 def reason; end - # pkg:gem/mail#lib/mail/field.rb:81 + # pkg:gem/mail#lib/mail/field.rb:109 def reason=(_arg0); end - # pkg:gem/mail#lib/mail/field.rb:81 + # pkg:gem/mail#lib/mail/field.rb:109 def value; end - # pkg:gem/mail#lib/mail/field.rb:81 + # pkg:gem/mail#lib/mail/field.rb:109 def value=(_arg0); end private - # pkg:gem/mail#lib/mail/field.rb:91 + # pkg:gem/mail#lib/mail/field.rb:119 def to_utf8(text); end end @@ -2323,7 +2287,7 @@ Mail::Field::STRUCTURED_FIELDS = T.let(T.unsafe(nil), Array) # Raised when attempting to set a structured field's contents to an invalid syntax # -# pkg:gem/mail#lib/mail/field.rb:114 +# pkg:gem/mail#lib/mail/field.rb:142 class Mail::Field::SyntaxError < ::Mail::Field::FieldError; end # Field List class provides an enhanced array that keeps a list of @@ -2429,10 +2393,10 @@ end # mail[:from].addresses #=> ['mikel@test.lindsaar.net', 'ada@test.lindsaar.net'] # mail[:from].formatted #=> ['Mikel Lindsaar ', 'ada@test.lindsaar.net'] # -# pkg:gem/mail#lib/mail/fields/from_field.rb:31 +# pkg:gem/mail#lib/mail/fields/from_field.rb:30 class Mail::FromField < ::Mail::CommonAddressField; end -# pkg:gem/mail#lib/mail/fields/from_field.rb:32 +# pkg:gem/mail#lib/mail/fields/from_field.rb:31 Mail::FromField::NAME = T.let(T.unsafe(nil), String) # Provides access to a header object. @@ -2677,12 +2641,12 @@ class Mail::IMAP < ::Mail::Retriever # # @raise [ArgumentError] # - # pkg:gem/mail#lib/mail/network/retriever_methods/imap.rb:133 + # pkg:gem/mail#lib/mail/network/retriever_methods/imap.rb:136 def connection(&block); end # Delete all emails from a IMAP mailbox # - # pkg:gem/mail#lib/mail/network/retriever_methods/imap.rb:119 + # pkg:gem/mail#lib/mail/network/retriever_methods/imap.rb:122 def delete_all(mailbox = T.unsafe(nil)); end # Find emails in a IMAP mailbox. Without any options, the 10 last received emails are returned. @@ -2723,12 +2687,12 @@ class Mail::IMAP < ::Mail::Retriever # Start an IMAP session and ensures that it will be closed in any case. # - # pkg:gem/mail#lib/mail/network/retriever_methods/imap.rb:160 + # pkg:gem/mail#lib/mail/network/retriever_methods/imap.rb:163 def start(config = T.unsafe(nil), &block); end # Set default options # - # pkg:gem/mail#lib/mail/network/retriever_methods/imap.rb:144 + # pkg:gem/mail#lib/mail/network/retriever_methods/imap.rb:147 def validate_options(options); end end @@ -2758,22 +2722,22 @@ end # # mail[:in_reply_to].message_ids #=> ['F6E2D0B4-CC35-4A91-BA4C-C7C712B10C13@test.me.dom'] # -# pkg:gem/mail#lib/mail/fields/in_reply_to_field.rb:31 +# pkg:gem/mail#lib/mail/fields/in_reply_to_field.rb:30 class Mail::InReplyToField < ::Mail::CommonMessageIdField # @return [InReplyToField] a new instance of InReplyToField # - # pkg:gem/mail#lib/mail/fields/in_reply_to_field.rb:38 + # pkg:gem/mail#lib/mail/fields/in_reply_to_field.rb:37 def initialize(value = T.unsafe(nil), charset = T.unsafe(nil)); end class << self # @return [Boolean] # - # pkg:gem/mail#lib/mail/fields/in_reply_to_field.rb:34 + # pkg:gem/mail#lib/mail/fields/in_reply_to_field.rb:33 def singular?; end end end -# pkg:gem/mail#lib/mail/fields/in_reply_to_field.rb:32 +# pkg:gem/mail#lib/mail/fields/in_reply_to_field.rb:31 Mail::InReplyToField::NAME = T.let(T.unsafe(nil), String) # pkg:gem/mail#lib/mail/indifferent_hash.rb:8 @@ -2953,27 +2917,27 @@ end # keywords = "Keywords:" phrase *("," phrase) CRLF # -# pkg:gem/mail#lib/mail/fields/keywords_field.rb:7 +# pkg:gem/mail#lib/mail/fields/keywords_field.rb:6 class Mail::KeywordsField < ::Mail::NamedStructuredField - # pkg:gem/mail#lib/mail/fields/keywords_field.rb:18 + # pkg:gem/mail#lib/mail/fields/keywords_field.rb:17 def default; end - # pkg:gem/mail#lib/mail/fields/keywords_field.rb:10 + # pkg:gem/mail#lib/mail/fields/keywords_field.rb:9 def element; end - # pkg:gem/mail#lib/mail/fields/keywords_field.rb:14 + # pkg:gem/mail#lib/mail/fields/keywords_field.rb:13 def keywords; end private - # pkg:gem/mail#lib/mail/fields/keywords_field.rb:23 + # pkg:gem/mail#lib/mail/fields/keywords_field.rb:22 def do_decode; end - # pkg:gem/mail#lib/mail/fields/keywords_field.rb:27 + # pkg:gem/mail#lib/mail/fields/keywords_field.rb:26 def do_encode; end end -# pkg:gem/mail#lib/mail/fields/keywords_field.rb:8 +# pkg:gem/mail#lib/mail/fields/keywords_field.rb:7 Mail::KeywordsField::NAME = T.let(T.unsafe(nil), String) # pkg:gem/mail#lib/mail/network/delivery_methods/logger_delivery.rb:4 @@ -3329,6 +3293,10 @@ class Mail::Message # the same content, ignoring the Message-ID field, unless BOTH emails have a defined and # different Message-ID value, then they are false. # + # Note that Mail creates Date and Mime-Type fields if they don't exist. + # The Date field is derived from the current time, so this needs to be allowed for in comparisons. + # (Mime-type does not depend on dynamic data, so cannot affect equality) + # # So, in practice the == operator works like this: # # m1 = Mail.new("Subject: Hello\r\n\r\nHello") @@ -3351,7 +3319,7 @@ class Mail::Message # m2 = Mail.new("Message-ID: \r\nSubject: Hello\r\n\r\nHello") # m1 == m2 #=> false # - # pkg:gem/mail#lib/mail/message.rb:373 + # pkg:gem/mail#lib/mail/message.rb:377 def ==(other); end # Allows you to read an arbitrary header @@ -3361,7 +3329,7 @@ class Mail::Message # mail['foo'] = '1234' # mail['foo'].to_s #=> '1234' # - # pkg:gem/mail#lib/mail/message.rb:1334 + # pkg:gem/mail#lib/mail/message.rb:1341 def [](name); end # Allows you to add an arbitrary header @@ -3371,29 +3339,29 @@ class Mail::Message # mail['foo'] = '1234' # mail['foo'].to_s #=> '1234' # - # pkg:gem/mail#lib/mail/message.rb:1316 + # pkg:gem/mail#lib/mail/message.rb:1323 def []=(name, value); end - # pkg:gem/mail#lib/mail/message.rb:1558 + # pkg:gem/mail#lib/mail/message.rb:1565 def action; end # Adds a content type and charset if the body is US-ASCII # # Otherwise raises a warning # - # pkg:gem/mail#lib/mail/message.rb:1472 + # pkg:gem/mail#lib/mail/message.rb:1479 def add_charset; end # Adds a content transfer encoding # - # pkg:gem/mail#lib/mail/message.rb:1487 + # pkg:gem/mail#lib/mail/message.rb:1494 def add_content_transfer_encoding; end # Adds a content type and charset if the body is US-ASCII # # Otherwise raises a warning # - # pkg:gem/mail#lib/mail/message.rb:1465 + # pkg:gem/mail#lib/mail/message.rb:1472 def add_content_type; end # Creates a new empty Date field and inserts it in the correct order @@ -3403,7 +3371,7 @@ class Mail::Message # # It will preserve any date you specify if you do. # - # pkg:gem/mail#lib/mail/message.rb:1448 + # pkg:gem/mail#lib/mail/message.rb:1455 def add_date(date_val = T.unsafe(nil)); end # Adds a file to the message. You have two options with this method, you can @@ -3436,7 +3404,7 @@ class Mail::Message # # See also #attachments # - # pkg:gem/mail#lib/mail/message.rb:1757 + # pkg:gem/mail#lib/mail/message.rb:1764 def add_file(values); end # Creates a new empty Message-ID field and inserts it in the correct order @@ -3446,7 +3414,7 @@ class Mail::Message # # It will preserve the message ID you specify if you do. # - # pkg:gem/mail#lib/mail/message.rb:1438 + # pkg:gem/mail#lib/mail/message.rb:1445 def add_message_id(msg_id_val = T.unsafe(nil)); end # Creates a new empty Mime Version field and inserts it in the correct order @@ -3456,20 +3424,20 @@ class Mail::Message # # It will preserve any date you specify if you do. # - # pkg:gem/mail#lib/mail/message.rb:1458 + # pkg:gem/mail#lib/mail/message.rb:1465 def add_mime_version(ver_val = T.unsafe(nil)); end # Adds a part to the parts list or creates the part list # - # pkg:gem/mail#lib/mail/message.rb:1701 + # pkg:gem/mail#lib/mail/message.rb:1708 def add_part(part); end - # pkg:gem/mail#lib/mail/message.rb:1927 + # pkg:gem/mail#lib/mail/message.rb:1934 def all_parts; end # Returns the attachment data if there is any # - # pkg:gem/mail#lib/mail/message.rb:1918 + # pkg:gem/mail#lib/mail/message.rb:1925 def attachment; end # Returns true if this part is an attachment, @@ -3477,7 +3445,7 @@ class Mail::Message # # @return [Boolean] # - # pkg:gem/mail#lib/mail/message.rb:1913 + # pkg:gem/mail#lib/mail/message.rb:1920 def attachment?; end # Returns an AttachmentsList object, which holds all of the attachments in @@ -3514,7 +3482,7 @@ class Mail::Message # # or by index # mail.attachments[0] #=> Mail::Part (first attachment) # - # pkg:gem/mail#lib/mail/message.rb:1626 + # pkg:gem/mail#lib/mail/message.rb:1633 def attachments; end # Returns the Bcc value of the mail object as an array of strings of @@ -3543,7 +3511,7 @@ class Mail::Message # mail.bcc << 'ada@test.lindsaar.net' # mail.bcc #=> ['mikel@test.lindsaar.net', 'ada@test.lindsaar.net'] # - # pkg:gem/mail#lib/mail/message.rb:500 + # pkg:gem/mail#lib/mail/message.rb:507 def bcc(val = T.unsafe(nil)); end # Sets the Bcc value of the mail object, pass in a string of the field @@ -3555,13 +3523,13 @@ class Mail::Message # mail.bcc = 'Mikel , ada@test.lindsaar.net' # mail.bcc #=> ['mikel@test.lindsaar.net', 'ada@test.lindsaar.net'] # - # pkg:gem/mail#lib/mail/message.rb:512 + # pkg:gem/mail#lib/mail/message.rb:519 def bcc=(val); end # Returns an array of addresses (the encoded value) in the Bcc field, # if no Bcc field, returns an empty array # - # pkg:gem/mail#lib/mail/message.rb:1306 + # pkg:gem/mail#lib/mail/message.rb:1313 def bcc_addrs; end # Returns the body of the message object. Or, if passed @@ -3575,7 +3543,7 @@ class Mail::Message # mail.body 'This is another body' # mail.body #=> # "weirdo" - # message.errors.first[3] #=> + # message.errors.first[2] #=> # # This is a good first defence on detecting spam by the way. Some spammers send # invalid emails to try and get email parsers to give up parsing them. # - # pkg:gem/mail#lib/mail/message.rb:471 + # pkg:gem/mail#lib/mail/message.rb:478 def errors; end # Returns the filename of the attachment # - # pkg:gem/mail#lib/mail/message.rb:1923 + # pkg:gem/mail#lib/mail/message.rb:1930 def filename; end - # pkg:gem/mail#lib/mail/message.rb:1562 + # pkg:gem/mail#lib/mail/message.rb:1569 def final_recipient; end - # pkg:gem/mail#lib/mail/message.rb:1931 + # pkg:gem/mail#lib/mail/message.rb:1938 def find_first_mime_type(mt); end # Returns the From value of the mail object as an array of strings of @@ -3965,7 +3933,7 @@ class Mail::Message # mail.from << 'ada@test.lindsaar.net' # mail.from #=> ['mikel@test.lindsaar.net', 'ada@test.lindsaar.net'] # - # pkg:gem/mail#lib/mail/message.rb:658 + # pkg:gem/mail#lib/mail/message.rb:665 def from(val = T.unsafe(nil)); end # Sets the From value of the mail object, pass in a string of the field @@ -3977,33 +3945,33 @@ class Mail::Message # mail.from = 'Mikel , ada@test.lindsaar.net' # mail.from #=> ['mikel@test.lindsaar.net', 'ada@test.lindsaar.net'] # - # pkg:gem/mail#lib/mail/message.rb:670 + # pkg:gem/mail#lib/mail/message.rb:677 def from=(val); end # Returns an array of addresses (the encoded value) in the From field, # if no From field, returns an empty array # - # pkg:gem/mail#lib/mail/message.rb:1288 + # pkg:gem/mail#lib/mail/message.rb:1295 def from_addrs; end # @return [Boolean] # - # pkg:gem/mail#lib/mail/message.rb:1630 + # pkg:gem/mail#lib/mail/message.rb:1637 def has_attachments?; end # @return [Boolean] # - # pkg:gem/mail#lib/mail/message.rb:1423 + # pkg:gem/mail#lib/mail/message.rb:1430 def has_charset?; end # @return [Boolean] # - # pkg:gem/mail#lib/mail/message.rb:1428 + # pkg:gem/mail#lib/mail/message.rb:1435 def has_content_transfer_encoding?; end # @return [Boolean] # - # pkg:gem/mail#lib/mail/message.rb:1418 + # pkg:gem/mail#lib/mail/message.rb:1425 def has_content_type?; end # Returns true if the message has a Date field, the field may or may @@ -4011,7 +3979,7 @@ class Mail::Message # # @return [Boolean] # - # pkg:gem/mail#lib/mail/message.rb:1408 + # pkg:gem/mail#lib/mail/message.rb:1415 def has_date?; end # Returns true if the message has a message ID field, the field may or may @@ -4019,15 +3987,15 @@ class Mail::Message # # @return [Boolean] # - # pkg:gem/mail#lib/mail/message.rb:1402 + # pkg:gem/mail#lib/mail/message.rb:1409 def has_message_id?; end - # Returns true if the message has a Mime-Version field, the field may or may + # Returns true if the message has a MIME-Version field, the field may or may # not have a value, but the field exists or not. # # @return [Boolean] # - # pkg:gem/mail#lib/mail/message.rb:1414 + # pkg:gem/mail#lib/mail/message.rb:1421 def has_mime_version?; end # Returns the header object of the message object. Or, if passed @@ -4042,7 +4010,7 @@ class Mail::Message # mail.header 'To: mikel\r\nFrom: you' # mail.header #=> # ['mikel@test.lindsaar.net', 'ada@test.lindsaar.net'] # - # pkg:gem/mail#lib/mail/message.rb:788 + # pkg:gem/mail#lib/mail/message.rb:795 def reply_to(val = T.unsafe(nil)); end # Sets the Reply-To value of the mail object, pass in a string of the field @@ -4420,7 +4388,7 @@ class Mail::Message # mail.reply_to = 'Mikel , ada@test.lindsaar.net' # mail.reply_to #=> ['mikel@test.lindsaar.net', 'ada@test.lindsaar.net'] # - # pkg:gem/mail#lib/mail/message.rb:800 + # pkg:gem/mail#lib/mail/message.rb:807 def reply_to=(val); end # Returns the Resent-Bcc value of the mail object as an array of strings of @@ -4449,7 +4417,7 @@ class Mail::Message # mail.resent_bcc << 'ada@test.lindsaar.net' # mail.resent_bcc #=> ['mikel@test.lindsaar.net', 'ada@test.lindsaar.net'] # - # pkg:gem/mail#lib/mail/message.rb:829 + # pkg:gem/mail#lib/mail/message.rb:836 def resent_bcc(val = T.unsafe(nil)); end # Sets the Resent-Bcc value of the mail object, pass in a string of the field @@ -4461,7 +4429,7 @@ class Mail::Message # mail.resent_bcc = 'Mikel , ada@test.lindsaar.net' # mail.resent_bcc #=> ['mikel@test.lindsaar.net', 'ada@test.lindsaar.net'] # - # pkg:gem/mail#lib/mail/message.rb:841 + # pkg:gem/mail#lib/mail/message.rb:848 def resent_bcc=(val); end # Returns the Resent-Cc value of the mail object as an array of strings of @@ -4490,7 +4458,7 @@ class Mail::Message # mail.resent_cc << 'ada@test.lindsaar.net' # mail.resent_cc #=> ['mikel@test.lindsaar.net', 'ada@test.lindsaar.net'] # - # pkg:gem/mail#lib/mail/message.rb:870 + # pkg:gem/mail#lib/mail/message.rb:877 def resent_cc(val = T.unsafe(nil)); end # Sets the Resent-Cc value of the mail object, pass in a string of the field @@ -4502,13 +4470,13 @@ class Mail::Message # mail.resent_cc = 'Mikel , ada@test.lindsaar.net' # mail.resent_cc #=> ['mikel@test.lindsaar.net', 'ada@test.lindsaar.net'] # - # pkg:gem/mail#lib/mail/message.rb:882 + # pkg:gem/mail#lib/mail/message.rb:889 def resent_cc=(val); end - # pkg:gem/mail#lib/mail/message.rb:886 + # pkg:gem/mail#lib/mail/message.rb:893 def resent_date(val = T.unsafe(nil)); end - # pkg:gem/mail#lib/mail/message.rb:890 + # pkg:gem/mail#lib/mail/message.rb:897 def resent_date=(val); end # Returns the Resent-From value of the mail object as an array of strings of @@ -4537,7 +4505,7 @@ class Mail::Message # mail.resent_from << 'ada@test.lindsaar.net' # mail.resent_from #=> ['mikel@test.lindsaar.net', 'ada@test.lindsaar.net'] # - # pkg:gem/mail#lib/mail/message.rb:919 + # pkg:gem/mail#lib/mail/message.rb:926 def resent_from(val = T.unsafe(nil)); end # Sets the Resent-From value of the mail object, pass in a string of the field @@ -4549,13 +4517,13 @@ class Mail::Message # mail.resent_from = 'Mikel , ada@test.lindsaar.net' # mail.resent_from #=> ['mikel@test.lindsaar.net', 'ada@test.lindsaar.net'] # - # pkg:gem/mail#lib/mail/message.rb:931 + # pkg:gem/mail#lib/mail/message.rb:938 def resent_from=(val); end - # pkg:gem/mail#lib/mail/message.rb:935 + # pkg:gem/mail#lib/mail/message.rb:942 def resent_message_id(val = T.unsafe(nil)); end - # pkg:gem/mail#lib/mail/message.rb:939 + # pkg:gem/mail#lib/mail/message.rb:946 def resent_message_id=(val); end # Returns the Resent-Sender value of the mail object, as a single string of an address @@ -4574,7 +4542,7 @@ class Mail::Message # mail.resent_sender 'Mikel ' # mail.resent_sender #=> 'mikel@test.lindsaar.net' # - # pkg:gem/mail#lib/mail/message.rb:958 + # pkg:gem/mail#lib/mail/message.rb:965 def resent_sender(val = T.unsafe(nil)); end # Sets the Resent-Sender value of the mail object, pass in a string of the field @@ -4584,7 +4552,7 @@ class Mail::Message # mail.resent_sender = 'Mikel ' # mail.resent_sender #=> 'mikel@test.lindsaar.net' # - # pkg:gem/mail#lib/mail/message.rb:968 + # pkg:gem/mail#lib/mail/message.rb:975 def resent_sender=(val); end # Returns the Resent-To value of the mail object as an array of strings of @@ -4613,7 +4581,7 @@ class Mail::Message # mail.resent_to << 'ada@test.lindsaar.net' # mail.resent_to #=> ['mikel@test.lindsaar.net', 'ada@test.lindsaar.net'] # - # pkg:gem/mail#lib/mail/message.rb:997 + # pkg:gem/mail#lib/mail/message.rb:1004 def resent_to(val = T.unsafe(nil)); end # Sets the Resent-To value of the mail object, pass in a string of the field @@ -4625,22 +4593,22 @@ class Mail::Message # mail.resent_to = 'Mikel , ada@test.lindsaar.net' # mail.resent_to #=> ['mikel@test.lindsaar.net', 'ada@test.lindsaar.net'] # - # pkg:gem/mail#lib/mail/message.rb:1009 + # pkg:gem/mail#lib/mail/message.rb:1016 def resent_to=(val); end # @return [Boolean] # - # pkg:gem/mail#lib/mail/message.rb:1578 + # pkg:gem/mail#lib/mail/message.rb:1585 def retryable?; end # Returns the return path of the mail object, or sets it if you pass a string # - # pkg:gem/mail#lib/mail/message.rb:1014 + # pkg:gem/mail#lib/mail/message.rb:1021 def return_path(val = T.unsafe(nil)); end # Sets the return path of the object # - # pkg:gem/mail#lib/mail/message.rb:1019 + # pkg:gem/mail#lib/mail/message.rb:1026 def return_path=(val); end # Returns the Sender value of the mail object, as a single string of an address @@ -4658,7 +4626,7 @@ class Mail::Message # mail.sender 'Mikel ' # mail.sender #=> 'mikel@test.lindsaar.net' # - # pkg:gem/mail#lib/mail/message.rb:1037 + # pkg:gem/mail#lib/mail/message.rb:1044 def sender(val = T.unsafe(nil)); end # Sets the Sender value of the mail object, pass in a string of the field @@ -4668,12 +4636,12 @@ class Mail::Message # mail.sender = 'Mikel ' # mail.sender #=> 'mikel@test.lindsaar.net' # - # pkg:gem/mail#lib/mail/message.rb:1047 + # pkg:gem/mail#lib/mail/message.rb:1054 def sender=(val); end # Sets the envelope from for the email # - # pkg:gem/mail#lib/mail/message.rb:402 + # pkg:gem/mail#lib/mail/message.rb:409 def set_envelope(val); end # Skips the deletion of this message. All other messages @@ -4681,7 +4649,7 @@ class Mail::Message # #find exits). Only has an effect if you're using #find_and_delete # or #find with :delete_after_find set to true. # - # pkg:gem/mail#lib/mail/message.rb:1939 + # pkg:gem/mail#lib/mail/message.rb:1946 def skip_deletion; end # Returns the SMTP Envelope From value of the mail object, as a single @@ -4701,7 +4669,7 @@ class Mail::Message # mail.smtp_envelope_from 'Mikel ' # mail.smtp_envelope_from #=> 'mikel@test.lindsaar.net' # - # pkg:gem/mail#lib/mail/message.rb:1067 + # pkg:gem/mail#lib/mail/message.rb:1074 def smtp_envelope_from(val = T.unsafe(nil)); end # Sets the From address on the SMTP Envelope. @@ -4711,7 +4679,7 @@ class Mail::Message # mail.smtp_envelope_from = 'Mikel ' # mail.smtp_envelope_from #=> 'mikel@test.lindsaar.net' # - # pkg:gem/mail#lib/mail/message.rb:1081 + # pkg:gem/mail#lib/mail/message.rb:1088 def smtp_envelope_from=(val); end # Returns the SMTP Envelope To value of the mail object. @@ -4730,7 +4698,7 @@ class Mail::Message # mail.smtp_envelope_to ['Mikel ', 'Lindsaar '] # mail.smtp_envelope_to #=> ['mikel@test.lindsaar.net', 'lindsaar@test.lindsaar.net'] # - # pkg:gem/mail#lib/mail/message.rb:1100 + # pkg:gem/mail#lib/mail/message.rb:1107 def smtp_envelope_to(val = T.unsafe(nil)); end # Sets the To addresses on the SMTP Envelope. @@ -4743,12 +4711,12 @@ class Mail::Message # mail.smtp_envelope_to = ['Mikel ', 'Lindsaar '] # mail.smtp_envelope_to #=> ['mikel@test.lindsaar.net', 'lindsaar@test.lindsaar.net'] # - # pkg:gem/mail#lib/mail/message.rb:1117 + # pkg:gem/mail#lib/mail/message.rb:1124 def smtp_envelope_to=(val); end # Returns the sub content type # - # pkg:gem/mail#lib/mail/message.rb:1518 + # pkg:gem/mail#lib/mail/message.rb:1525 def sub_type; end # Returns the decoded value of the subject field, as a single string. @@ -4767,7 +4735,7 @@ class Mail::Message # mail.subject "G'Day mate" # mail.subject #=> "G'Day mate" # - # pkg:gem/mail#lib/mail/message.rb:1142 + # pkg:gem/mail#lib/mail/message.rb:1149 def subject(val = T.unsafe(nil)); end # Sets the Subject value of the mail object, pass in a string of the field @@ -4777,24 +4745,24 @@ class Mail::Message # mail.subject = '=?UTF-8?Q?This_is_=E3=81=82_string?=' # mail.subject #=> "This is あ string" # - # pkg:gem/mail#lib/mail/message.rb:1152 + # pkg:gem/mail#lib/mail/message.rb:1159 def subject=(val); end # @return [Boolean] # - # pkg:gem/mail#lib/mail/message.rb:1964 + # pkg:gem/mail#lib/mail/message.rb:1971 def text?; end # Accessor for text_part # - # pkg:gem/mail#lib/mail/message.rb:1644 + # pkg:gem/mail#lib/mail/message.rb:1651 def text_part(&block); end # Helper to add a text part to a multipart/alternative email. If this and # html_part are both defined in a message, then it will be a multipart/alternative # message and set itself that way. # - # pkg:gem/mail#lib/mail/message.rb:1679 + # pkg:gem/mail#lib/mail/message.rb:1686 def text_part=(msg); end # Returns the To value of the mail object as an array of strings of @@ -4823,7 +4791,7 @@ class Mail::Message # mail.to << 'ada@test.lindsaar.net' # mail.to #=> ['mikel@test.lindsaar.net', 'ada@test.lindsaar.net'] # - # pkg:gem/mail#lib/mail/message.rb:1181 + # pkg:gem/mail#lib/mail/message.rb:1188 def to(val = T.unsafe(nil)); end # Sets the To value of the mail object, pass in a string of the field @@ -4835,79 +4803,79 @@ class Mail::Message # mail.to = 'Mikel , ada@test.lindsaar.net' # mail.to #=> ['mikel@test.lindsaar.net', 'ada@test.lindsaar.net'] # - # pkg:gem/mail#lib/mail/message.rb:1193 + # pkg:gem/mail#lib/mail/message.rb:1200 def to=(val); end # Returns an array of addresses (the encoded value) in the To field, # if no To field, returns an empty array # - # pkg:gem/mail#lib/mail/message.rb:1294 + # pkg:gem/mail#lib/mail/message.rb:1301 def to_addrs; end - # pkg:gem/mail#lib/mail/message.rb:1869 + # pkg:gem/mail#lib/mail/message.rb:1876 def to_s; end - # pkg:gem/mail#lib/mail/message.rb:1823 + # pkg:gem/mail#lib/mail/message.rb:1830 def to_yaml(opts = T.unsafe(nil)); end - # pkg:gem/mail#lib/mail/message.rb:621 + # pkg:gem/mail#lib/mail/message.rb:628 def transport_encoding(val = T.unsafe(nil)); end - # pkg:gem/mail#lib/mail/message.rb:629 + # pkg:gem/mail#lib/mail/message.rb:636 def transport_encoding=(val); end - # pkg:gem/mail#lib/mail/message.rb:1811 + # pkg:gem/mail#lib/mail/message.rb:1818 def without_attachments!; end private - # pkg:gem/mail#lib/mail/message.rb:2067 + # pkg:gem/mail#lib/mail/message.rb:2074 def add_boundary; end - # pkg:gem/mail#lib/mail/message.rb:2032 + # pkg:gem/mail#lib/mail/message.rb:2039 def add_encoding_to_body; end - # pkg:gem/mail#lib/mail/message.rb:2062 + # pkg:gem/mail#lib/mail/message.rb:2069 def add_multipart_alternate_header; end - # pkg:gem/mail#lib/mail/message.rb:2079 + # pkg:gem/mail#lib/mail/message.rb:2082 def add_multipart_mixed_header; end - # pkg:gem/mail#lib/mail/message.rb:2048 + # pkg:gem/mail#lib/mail/message.rb:2055 def add_required_fields; end - # pkg:gem/mail#lib/mail/message.rb:2056 + # pkg:gem/mail#lib/mail/message.rb:2063 def add_required_message_fields; end - # pkg:gem/mail#lib/mail/message.rb:2025 + # pkg:gem/mail#lib/mail/message.rb:2032 def allowed_encodings; end # see comments to body=. We take data and process it lazily # - # pkg:gem/mail#lib/mail/message.rb:1990 + # pkg:gem/mail#lib/mail/message.rb:1997 def body_lazy(value); end - # pkg:gem/mail#lib/mail/message.rb:2152 + # pkg:gem/mail#lib/mail/message.rb:2155 def decode_body_as_text; end - # pkg:gem/mail#lib/mail/message.rb:2142 + # pkg:gem/mail#lib/mail/message.rb:2145 def do_delivery; end # Returns the filename of the attachment (if it exists) or returns nil # - # pkg:gem/mail#lib/mail/message.rb:2124 + # pkg:gem/mail#lib/mail/message.rb:2127 def find_attachment; end - # pkg:gem/mail#lib/mail/message.rb:2038 + # pkg:gem/mail#lib/mail/message.rb:2045 def identify_and_set_transfer_encoding; end - # pkg:gem/mail#lib/mail/message.rb:2086 + # pkg:gem/mail#lib/mail/message.rb:2089 def init_with_hash(hash); end - # pkg:gem/mail#lib/mail/message.rb:2116 + # pkg:gem/mail#lib/mail/message.rb:2119 def init_with_string(string); end - # pkg:gem/mail#lib/mail/message.rb:384 + # pkg:gem/mail#lib/mail/message.rb:391 def initialize_copy(original); end # 2.1. General Description @@ -4918,19 +4886,19 @@ class Mail::Message # follows the header and is separated from the header by an empty line # (i.e., a line with nothing preceding the CRLF). # - # pkg:gem/mail#lib/mail/message.rb:1979 + # pkg:gem/mail#lib/mail/message.rb:1986 def parse_message; end - # pkg:gem/mail#lib/mail/message.rb:2005 + # pkg:gem/mail#lib/mail/message.rb:2012 def process_body_raw; end - # pkg:gem/mail#lib/mail/message.rb:1985 + # pkg:gem/mail#lib/mail/message.rb:1992 def raw_source=(value); end - # pkg:gem/mail#lib/mail/message.rb:2021 + # pkg:gem/mail#lib/mail/message.rb:2028 def separate_parts; end - # pkg:gem/mail#lib/mail/message.rb:2013 + # pkg:gem/mail#lib/mail/message.rb:2020 def set_envelope_header; end class << self @@ -4940,18 +4908,18 @@ class Mail::Message # pkg:gem/mail#lib/mail/message.rb:233 def default_charset=(charset); end - # pkg:gem/mail#lib/mail/message.rb:1865 + # pkg:gem/mail#lib/mail/message.rb:1872 def from_hash(hash); end - # pkg:gem/mail#lib/mail/message.rb:1843 + # pkg:gem/mail#lib/mail/message.rb:1850 def from_yaml(str); end end end -# pkg:gem/mail#lib/mail/message.rb:1970 +# pkg:gem/mail#lib/mail/message.rb:1977 Mail::Message::HEADER_SEPARATOR = T.let(T.unsafe(nil), Regexp) -# pkg:gem/mail#lib/mail/message.rb:1770 +# pkg:gem/mail#lib/mail/message.rb:1777 Mail::Message::MULTIPART_CONVERSION_CONTENT_FIELDS = T.let(T.unsafe(nil), Array) # Only one Message-ID field may appear in a header. @@ -4969,25 +4937,25 @@ Mail::Message::MULTIPART_CONVERSION_CONTENT_FIELDS = T.let(T.unsafe(nil), Array) # mail[:message_id].message_id #=> 'F6E2D0B4-CC35-4A91-BA4C-C7C712B10C13@test.me.dom' # mail[:message_id].message_ids #=> ['F6E2D0B4-CC35-4A91-BA4C-C7C712B10C13@test.me.dom'] # -# pkg:gem/mail#lib/mail/fields/message_id_field.rb:21 +# pkg:gem/mail#lib/mail/fields/message_id_field.rb:20 class Mail::MessageIdField < ::Mail::CommonMessageIdField # @return [MessageIdField] a new instance of MessageIdField # - # pkg:gem/mail#lib/mail/fields/message_id_field.rb:28 + # pkg:gem/mail#lib/mail/fields/message_id_field.rb:27 def initialize(value = T.unsafe(nil), charset = T.unsafe(nil)); end - # pkg:gem/mail#lib/mail/fields/message_id_field.rb:33 + # pkg:gem/mail#lib/mail/fields/message_id_field.rb:32 def message_ids; end class << self # @return [Boolean] # - # pkg:gem/mail#lib/mail/fields/message_id_field.rb:24 + # pkg:gem/mail#lib/mail/fields/message_id_field.rb:23 def singular?; end end end -# pkg:gem/mail#lib/mail/fields/message_id_field.rb:22 +# pkg:gem/mail#lib/mail/fields/message_id_field.rb:21 Mail::MessageIdField::NAME = T.let(T.unsafe(nil), String) # pkg:gem/mail#lib/mail/elements/message_ids_element.rb:7 @@ -5034,40 +5002,40 @@ class Mail::MimeVersionElement def minor; end end -# pkg:gem/mail#lib/mail/fields/mime_version_field.rb:7 +# pkg:gem/mail#lib/mail/fields/mime_version_field.rb:6 class Mail::MimeVersionField < ::Mail::NamedStructuredField # @return [MimeVersionField] a new instance of MimeVersionField # - # pkg:gem/mail#lib/mail/fields/mime_version_field.rb:14 + # pkg:gem/mail#lib/mail/fields/mime_version_field.rb:13 def initialize(value = T.unsafe(nil), charset = T.unsafe(nil)); end - # pkg:gem/mail#lib/mail/fields/mime_version_field.rb:39 + # pkg:gem/mail#lib/mail/fields/mime_version_field.rb:38 def decoded; end - # pkg:gem/mail#lib/mail/fields/mime_version_field.rb:19 + # pkg:gem/mail#lib/mail/fields/mime_version_field.rb:18 def element; end - # pkg:gem/mail#lib/mail/fields/mime_version_field.rb:35 + # pkg:gem/mail#lib/mail/fields/mime_version_field.rb:34 def encoded; end - # pkg:gem/mail#lib/mail/fields/mime_version_field.rb:27 + # pkg:gem/mail#lib/mail/fields/mime_version_field.rb:26 def major; end - # pkg:gem/mail#lib/mail/fields/mime_version_field.rb:31 + # pkg:gem/mail#lib/mail/fields/mime_version_field.rb:30 def minor; end - # pkg:gem/mail#lib/mail/fields/mime_version_field.rb:23 + # pkg:gem/mail#lib/mail/fields/mime_version_field.rb:22 def version; end class << self # @return [Boolean] # - # pkg:gem/mail#lib/mail/fields/mime_version_field.rb:10 + # pkg:gem/mail#lib/mail/fields/mime_version_field.rb:9 def singular?; end end end -# pkg:gem/mail#lib/mail/fields/mime_version_field.rb:8 +# pkg:gem/mail#lib/mail/fields/mime_version_field.rb:7 Mail::MimeVersionField::NAME = T.let(T.unsafe(nil), String) # pkg:gem/mail#lib/mail/multibyte/unicode.rb:3 @@ -5771,19 +5739,19 @@ Mail::Multibyte::Unicode::WHITESPACE = T.let(T.unsafe(nil), Array) # pkg:gem/mail#lib/mail/multibyte.rb:64 Mail::Multibyte::VALID_CHARACTER = T.let(T.unsafe(nil), Hash) -# pkg:gem/mail#lib/mail/fields/named_structured_field.rb:6 +# pkg:gem/mail#lib/mail/fields/named_structured_field.rb:5 class Mail::NamedStructuredField < ::Mail::StructuredField # @return [NamedStructuredField] a new instance of NamedStructuredField # - # pkg:gem/mail#lib/mail/fields/named_structured_field.rb:7 + # pkg:gem/mail#lib/mail/fields/named_structured_field.rb:6 def initialize(value = T.unsafe(nil), charset = T.unsafe(nil)); end end -# pkg:gem/mail#lib/mail/fields/named_unstructured_field.rb:6 +# pkg:gem/mail#lib/mail/fields/named_unstructured_field.rb:5 class Mail::NamedUnstructuredField < ::Mail::UnstructuredField # @return [NamedUnstructuredField] a new instance of NamedUnstructuredField # - # pkg:gem/mail#lib/mail/fields/named_unstructured_field.rb:7 + # pkg:gem/mail#lib/mail/fields/named_unstructured_field.rb:6 def initialize(value = T.unsafe(nil), charset = T.unsafe(nil)); end end @@ -5792,11 +5760,11 @@ end # # optional-field = field-name ":" unstructured CRLF # -# pkg:gem/mail#lib/mail/fields/optional_field.rb:10 +# pkg:gem/mail#lib/mail/fields/optional_field.rb:9 class Mail::OptionalField < ::Mail::UnstructuredField private - # pkg:gem/mail#lib/mail/fields/optional_field.rb:12 + # pkg:gem/mail#lib/mail/fields/optional_field.rb:11 def do_encode; end end @@ -5917,1403 +5885,1403 @@ module Mail::ParserTools def chars(data, from_bytes, to_bytes); end end -# pkg:gem/mail#lib/mail/parsers/date_time_parser.rb:9 +# pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:8 module Mail::Parsers; end -# pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:10 +# pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:9 module Mail::Parsers::AddressListsParser extend ::Mail::ParserTools class << self - # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:31951 + # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:31950 def en_comment_tail; end - # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:31951 + # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:31950 def en_comment_tail=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:31955 + # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:31954 def en_main; end - # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:31955 + # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:31954 def en_main=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:31946 + # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:31945 def error; end - # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:31946 + # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:31945 def error=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:31942 + # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:31941 def first_final; end - # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:31942 + # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:31941 def first_final=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:31959 + # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:31958 def parse(data); end - # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:31938 + # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:31937 def start; end - # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:31938 + # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:31937 def start=(_arg0); end private - # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:31614 + # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:31613 def _eof_actions; end - # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:31614 + # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:31613 def _eof_actions=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:1300 + # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:1299 def _index_offsets; end - # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:1300 + # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:1299 def _index_offsets=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:1624 + # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:1623 def _indicies; end - # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:1624 + # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:1623 def _indicies=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:976 + # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:975 def _key_spans; end - # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:976 + # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:975 def _key_spans=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:30983 + # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:30982 def _trans_actions; end - # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:30983 + # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:30982 def _trans_actions=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:18 + # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:17 def _trans_keys; end - # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:18 + # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:17 def _trans_keys=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:30352 + # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:30351 def _trans_targs; end - # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:30352 + # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:30351 def _trans_targs=(_arg0); end end end -# pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:13 +# pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:12 class Mail::Parsers::AddressListsParser::AddressListStruct < ::Struct - # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:12 def addresses; end - # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:12 def addresses=(_); end - # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:12 def error; end - # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:12 def error=(_); end - # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:12 def group_names; end - # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:12 def group_names=(_); end class << self - # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:12 def [](*_arg0); end - # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:12 def inspect; end - # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:12 def keyword_init?; end - # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:12 def members; end - # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:12 def new(*_arg0); end end end -# pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:14 +# pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:13 class Mail::Parsers::AddressListsParser::AddressStruct < ::Struct - # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:14 + # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:13 def comments; end - # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:14 + # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:13 def comments=(_); end - # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:14 + # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:13 def display_name; end - # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:14 + # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:13 def display_name=(_); end - # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:14 + # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:13 def domain; end - # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:14 + # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:13 def domain=(_); end - # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:14 + # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:13 def error; end - # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:14 + # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:13 def error=(_); end - # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:14 + # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:13 def group; end - # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:14 + # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:13 def group=(_); end - # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:14 + # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:13 def local; end - # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:14 + # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:13 def local=(_); end - # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:14 + # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:13 def obs_domain_list; end - # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:14 + # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:13 def obs_domain_list=(_); end - # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:14 + # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:13 def raw; end - # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:14 + # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:13 def raw=(_); end class << self - # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:14 + # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:13 def [](*_arg0); end - # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:14 + # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:13 def inspect; end - # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:14 + # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:13 def keyword_init?; end - # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:14 + # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:13 def members; end - # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:14 + # pkg:gem/mail#lib/mail/parsers/address_lists_parser.rb:13 def new(*_arg0); end end end -# pkg:gem/mail#lib/mail/parsers/content_disposition_parser.rb:10 +# pkg:gem/mail#lib/mail/parsers/content_disposition_parser.rb:9 module Mail::Parsers::ContentDispositionParser extend ::Mail::ParserTools class << self - # pkg:gem/mail#lib/mail/parsers/content_disposition_parser.rb:556 + # pkg:gem/mail#lib/mail/parsers/content_disposition_parser.rb:555 def en_comment_tail; end - # pkg:gem/mail#lib/mail/parsers/content_disposition_parser.rb:556 + # pkg:gem/mail#lib/mail/parsers/content_disposition_parser.rb:555 def en_comment_tail=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/content_disposition_parser.rb:560 + # pkg:gem/mail#lib/mail/parsers/content_disposition_parser.rb:559 def en_main; end - # pkg:gem/mail#lib/mail/parsers/content_disposition_parser.rb:560 + # pkg:gem/mail#lib/mail/parsers/content_disposition_parser.rb:559 def en_main=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/content_disposition_parser.rb:551 + # pkg:gem/mail#lib/mail/parsers/content_disposition_parser.rb:550 def error; end - # pkg:gem/mail#lib/mail/parsers/content_disposition_parser.rb:551 + # pkg:gem/mail#lib/mail/parsers/content_disposition_parser.rb:550 def error=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/content_disposition_parser.rb:547 + # pkg:gem/mail#lib/mail/parsers/content_disposition_parser.rb:546 def first_final; end - # pkg:gem/mail#lib/mail/parsers/content_disposition_parser.rb:547 + # pkg:gem/mail#lib/mail/parsers/content_disposition_parser.rb:546 def first_final=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/content_disposition_parser.rb:564 + # pkg:gem/mail#lib/mail/parsers/content_disposition_parser.rb:563 def parse(data); end - # pkg:gem/mail#lib/mail/parsers/content_disposition_parser.rb:543 + # pkg:gem/mail#lib/mail/parsers/content_disposition_parser.rb:542 def start; end - # pkg:gem/mail#lib/mail/parsers/content_disposition_parser.rb:543 + # pkg:gem/mail#lib/mail/parsers/content_disposition_parser.rb:542 def start=(_arg0); end private - # pkg:gem/mail#lib/mail/parsers/content_disposition_parser.rb:530 + # pkg:gem/mail#lib/mail/parsers/content_disposition_parser.rb:529 def _eof_actions; end - # pkg:gem/mail#lib/mail/parsers/content_disposition_parser.rb:530 + # pkg:gem/mail#lib/mail/parsers/content_disposition_parser.rb:529 def _eof_actions=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/content_disposition_parser.rb:54 + # pkg:gem/mail#lib/mail/parsers/content_disposition_parser.rb:53 def _index_offsets; end - # pkg:gem/mail#lib/mail/parsers/content_disposition_parser.rb:54 + # pkg:gem/mail#lib/mail/parsers/content_disposition_parser.rb:53 def _index_offsets=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/content_disposition_parser.rb:67 + # pkg:gem/mail#lib/mail/parsers/content_disposition_parser.rb:66 def _indicies; end - # pkg:gem/mail#lib/mail/parsers/content_disposition_parser.rb:67 + # pkg:gem/mail#lib/mail/parsers/content_disposition_parser.rb:66 def _indicies=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/content_disposition_parser.rb:41 + # pkg:gem/mail#lib/mail/parsers/content_disposition_parser.rb:40 def _key_spans; end - # pkg:gem/mail#lib/mail/parsers/content_disposition_parser.rb:41 + # pkg:gem/mail#lib/mail/parsers/content_disposition_parser.rb:40 def _key_spans=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/content_disposition_parser.rb:510 + # pkg:gem/mail#lib/mail/parsers/content_disposition_parser.rb:509 def _trans_actions; end - # pkg:gem/mail#lib/mail/parsers/content_disposition_parser.rb:510 + # pkg:gem/mail#lib/mail/parsers/content_disposition_parser.rb:509 def _trans_actions=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/content_disposition_parser.rb:16 + # pkg:gem/mail#lib/mail/parsers/content_disposition_parser.rb:15 def _trans_keys; end - # pkg:gem/mail#lib/mail/parsers/content_disposition_parser.rb:16 + # pkg:gem/mail#lib/mail/parsers/content_disposition_parser.rb:15 def _trans_keys=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/content_disposition_parser.rb:490 + # pkg:gem/mail#lib/mail/parsers/content_disposition_parser.rb:489 def _trans_targs; end - # pkg:gem/mail#lib/mail/parsers/content_disposition_parser.rb:490 + # pkg:gem/mail#lib/mail/parsers/content_disposition_parser.rb:489 def _trans_targs=(_arg0); end end end -# pkg:gem/mail#lib/mail/parsers/content_disposition_parser.rb:13 +# pkg:gem/mail#lib/mail/parsers/content_disposition_parser.rb:12 class Mail::Parsers::ContentDispositionParser::ContentDispositionStruct < ::Struct - # pkg:gem/mail#lib/mail/parsers/content_disposition_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/content_disposition_parser.rb:12 def disposition_type; end - # pkg:gem/mail#lib/mail/parsers/content_disposition_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/content_disposition_parser.rb:12 def disposition_type=(_); end - # pkg:gem/mail#lib/mail/parsers/content_disposition_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/content_disposition_parser.rb:12 def error; end - # pkg:gem/mail#lib/mail/parsers/content_disposition_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/content_disposition_parser.rb:12 def error=(_); end - # pkg:gem/mail#lib/mail/parsers/content_disposition_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/content_disposition_parser.rb:12 def parameters; end - # pkg:gem/mail#lib/mail/parsers/content_disposition_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/content_disposition_parser.rb:12 def parameters=(_); end class << self - # pkg:gem/mail#lib/mail/parsers/content_disposition_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/content_disposition_parser.rb:12 def [](*_arg0); end - # pkg:gem/mail#lib/mail/parsers/content_disposition_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/content_disposition_parser.rb:12 def inspect; end - # pkg:gem/mail#lib/mail/parsers/content_disposition_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/content_disposition_parser.rb:12 def keyword_init?; end - # pkg:gem/mail#lib/mail/parsers/content_disposition_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/content_disposition_parser.rb:12 def members; end - # pkg:gem/mail#lib/mail/parsers/content_disposition_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/content_disposition_parser.rb:12 def new(*_arg0); end end end -# pkg:gem/mail#lib/mail/parsers/content_location_parser.rb:10 +# pkg:gem/mail#lib/mail/parsers/content_location_parser.rb:9 module Mail::Parsers::ContentLocationParser extend ::Mail::ParserTools class << self - # pkg:gem/mail#lib/mail/parsers/content_location_parser.rb:577 + # pkg:gem/mail#lib/mail/parsers/content_location_parser.rb:576 def en_comment_tail; end - # pkg:gem/mail#lib/mail/parsers/content_location_parser.rb:577 + # pkg:gem/mail#lib/mail/parsers/content_location_parser.rb:576 def en_comment_tail=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/content_location_parser.rb:581 + # pkg:gem/mail#lib/mail/parsers/content_location_parser.rb:580 def en_main; end - # pkg:gem/mail#lib/mail/parsers/content_location_parser.rb:581 + # pkg:gem/mail#lib/mail/parsers/content_location_parser.rb:580 def en_main=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/content_location_parser.rb:572 + # pkg:gem/mail#lib/mail/parsers/content_location_parser.rb:571 def error; end - # pkg:gem/mail#lib/mail/parsers/content_location_parser.rb:572 + # pkg:gem/mail#lib/mail/parsers/content_location_parser.rb:571 def error=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/content_location_parser.rb:568 + # pkg:gem/mail#lib/mail/parsers/content_location_parser.rb:567 def first_final; end - # pkg:gem/mail#lib/mail/parsers/content_location_parser.rb:568 + # pkg:gem/mail#lib/mail/parsers/content_location_parser.rb:567 def first_final=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/content_location_parser.rb:585 + # pkg:gem/mail#lib/mail/parsers/content_location_parser.rb:584 def parse(data); end - # pkg:gem/mail#lib/mail/parsers/content_location_parser.rb:564 + # pkg:gem/mail#lib/mail/parsers/content_location_parser.rb:563 def start; end - # pkg:gem/mail#lib/mail/parsers/content_location_parser.rb:564 + # pkg:gem/mail#lib/mail/parsers/content_location_parser.rb:563 def start=(_arg0); end private - # pkg:gem/mail#lib/mail/parsers/content_location_parser.rb:551 + # pkg:gem/mail#lib/mail/parsers/content_location_parser.rb:550 def _eof_actions; end - # pkg:gem/mail#lib/mail/parsers/content_location_parser.rb:551 + # pkg:gem/mail#lib/mail/parsers/content_location_parser.rb:550 def _eof_actions=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/content_location_parser.rb:52 + # pkg:gem/mail#lib/mail/parsers/content_location_parser.rb:51 def _index_offsets; end - # pkg:gem/mail#lib/mail/parsers/content_location_parser.rb:52 + # pkg:gem/mail#lib/mail/parsers/content_location_parser.rb:51 def _index_offsets=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/content_location_parser.rb:65 + # pkg:gem/mail#lib/mail/parsers/content_location_parser.rb:64 def _indicies; end - # pkg:gem/mail#lib/mail/parsers/content_location_parser.rb:65 + # pkg:gem/mail#lib/mail/parsers/content_location_parser.rb:64 def _indicies=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/content_location_parser.rb:39 + # pkg:gem/mail#lib/mail/parsers/content_location_parser.rb:38 def _key_spans; end - # pkg:gem/mail#lib/mail/parsers/content_location_parser.rb:39 + # pkg:gem/mail#lib/mail/parsers/content_location_parser.rb:38 def _key_spans=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/content_location_parser.rb:533 + # pkg:gem/mail#lib/mail/parsers/content_location_parser.rb:532 def _trans_actions; end - # pkg:gem/mail#lib/mail/parsers/content_location_parser.rb:533 + # pkg:gem/mail#lib/mail/parsers/content_location_parser.rb:532 def _trans_actions=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/content_location_parser.rb:16 + # pkg:gem/mail#lib/mail/parsers/content_location_parser.rb:15 def _trans_keys; end - # pkg:gem/mail#lib/mail/parsers/content_location_parser.rb:16 + # pkg:gem/mail#lib/mail/parsers/content_location_parser.rb:15 def _trans_keys=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/content_location_parser.rb:515 + # pkg:gem/mail#lib/mail/parsers/content_location_parser.rb:514 def _trans_targs; end - # pkg:gem/mail#lib/mail/parsers/content_location_parser.rb:515 + # pkg:gem/mail#lib/mail/parsers/content_location_parser.rb:514 def _trans_targs=(_arg0); end end end -# pkg:gem/mail#lib/mail/parsers/content_location_parser.rb:13 +# pkg:gem/mail#lib/mail/parsers/content_location_parser.rb:12 class Mail::Parsers::ContentLocationParser::ContentLocationStruct < ::Struct - # pkg:gem/mail#lib/mail/parsers/content_location_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/content_location_parser.rb:12 def error; end - # pkg:gem/mail#lib/mail/parsers/content_location_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/content_location_parser.rb:12 def error=(_); end - # pkg:gem/mail#lib/mail/parsers/content_location_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/content_location_parser.rb:12 def location; end - # pkg:gem/mail#lib/mail/parsers/content_location_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/content_location_parser.rb:12 def location=(_); end class << self - # pkg:gem/mail#lib/mail/parsers/content_location_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/content_location_parser.rb:12 def [](*_arg0); end - # pkg:gem/mail#lib/mail/parsers/content_location_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/content_location_parser.rb:12 def inspect; end - # pkg:gem/mail#lib/mail/parsers/content_location_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/content_location_parser.rb:12 def keyword_init?; end - # pkg:gem/mail#lib/mail/parsers/content_location_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/content_location_parser.rb:12 def members; end - # pkg:gem/mail#lib/mail/parsers/content_location_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/content_location_parser.rb:12 def new(*_arg0); end end end -# pkg:gem/mail#lib/mail/parsers/content_transfer_encoding_parser.rb:10 +# pkg:gem/mail#lib/mail/parsers/content_transfer_encoding_parser.rb:9 module Mail::Parsers::ContentTransferEncodingParser extend ::Mail::ParserTools class << self - # pkg:gem/mail#lib/mail/parsers/content_transfer_encoding_parser.rb:328 + # pkg:gem/mail#lib/mail/parsers/content_transfer_encoding_parser.rb:327 def en_comment_tail; end - # pkg:gem/mail#lib/mail/parsers/content_transfer_encoding_parser.rb:328 + # pkg:gem/mail#lib/mail/parsers/content_transfer_encoding_parser.rb:327 def en_comment_tail=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/content_transfer_encoding_parser.rb:332 + # pkg:gem/mail#lib/mail/parsers/content_transfer_encoding_parser.rb:331 def en_main; end - # pkg:gem/mail#lib/mail/parsers/content_transfer_encoding_parser.rb:332 + # pkg:gem/mail#lib/mail/parsers/content_transfer_encoding_parser.rb:331 def en_main=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/content_transfer_encoding_parser.rb:323 + # pkg:gem/mail#lib/mail/parsers/content_transfer_encoding_parser.rb:322 def error; end - # pkg:gem/mail#lib/mail/parsers/content_transfer_encoding_parser.rb:323 + # pkg:gem/mail#lib/mail/parsers/content_transfer_encoding_parser.rb:322 def error=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/content_transfer_encoding_parser.rb:319 + # pkg:gem/mail#lib/mail/parsers/content_transfer_encoding_parser.rb:318 def first_final; end - # pkg:gem/mail#lib/mail/parsers/content_transfer_encoding_parser.rb:319 + # pkg:gem/mail#lib/mail/parsers/content_transfer_encoding_parser.rb:318 def first_final=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/content_transfer_encoding_parser.rb:336 + # pkg:gem/mail#lib/mail/parsers/content_transfer_encoding_parser.rb:335 def parse(data); end - # pkg:gem/mail#lib/mail/parsers/content_transfer_encoding_parser.rb:315 + # pkg:gem/mail#lib/mail/parsers/content_transfer_encoding_parser.rb:314 def start; end - # pkg:gem/mail#lib/mail/parsers/content_transfer_encoding_parser.rb:315 + # pkg:gem/mail#lib/mail/parsers/content_transfer_encoding_parser.rb:314 def start=(_arg0); end private - # pkg:gem/mail#lib/mail/parsers/content_transfer_encoding_parser.rb:304 + # pkg:gem/mail#lib/mail/parsers/content_transfer_encoding_parser.rb:303 def _eof_actions; end - # pkg:gem/mail#lib/mail/parsers/content_transfer_encoding_parser.rb:304 + # pkg:gem/mail#lib/mail/parsers/content_transfer_encoding_parser.rb:303 def _eof_actions=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/content_transfer_encoding_parser.rb:45 + # pkg:gem/mail#lib/mail/parsers/content_transfer_encoding_parser.rb:44 def _index_offsets; end - # pkg:gem/mail#lib/mail/parsers/content_transfer_encoding_parser.rb:45 + # pkg:gem/mail#lib/mail/parsers/content_transfer_encoding_parser.rb:44 def _index_offsets=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/content_transfer_encoding_parser.rb:56 + # pkg:gem/mail#lib/mail/parsers/content_transfer_encoding_parser.rb:55 def _indicies; end - # pkg:gem/mail#lib/mail/parsers/content_transfer_encoding_parser.rb:56 + # pkg:gem/mail#lib/mail/parsers/content_transfer_encoding_parser.rb:55 def _indicies=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/content_transfer_encoding_parser.rb:34 + # pkg:gem/mail#lib/mail/parsers/content_transfer_encoding_parser.rb:33 def _key_spans; end - # pkg:gem/mail#lib/mail/parsers/content_transfer_encoding_parser.rb:34 + # pkg:gem/mail#lib/mail/parsers/content_transfer_encoding_parser.rb:33 def _key_spans=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/content_transfer_encoding_parser.rb:290 + # pkg:gem/mail#lib/mail/parsers/content_transfer_encoding_parser.rb:289 def _trans_actions; end - # pkg:gem/mail#lib/mail/parsers/content_transfer_encoding_parser.rb:290 + # pkg:gem/mail#lib/mail/parsers/content_transfer_encoding_parser.rb:289 def _trans_actions=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/content_transfer_encoding_parser.rb:16 + # pkg:gem/mail#lib/mail/parsers/content_transfer_encoding_parser.rb:15 def _trans_keys; end - # pkg:gem/mail#lib/mail/parsers/content_transfer_encoding_parser.rb:16 + # pkg:gem/mail#lib/mail/parsers/content_transfer_encoding_parser.rb:15 def _trans_keys=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/content_transfer_encoding_parser.rb:276 + # pkg:gem/mail#lib/mail/parsers/content_transfer_encoding_parser.rb:275 def _trans_targs; end - # pkg:gem/mail#lib/mail/parsers/content_transfer_encoding_parser.rb:276 + # pkg:gem/mail#lib/mail/parsers/content_transfer_encoding_parser.rb:275 def _trans_targs=(_arg0); end end end -# pkg:gem/mail#lib/mail/parsers/content_transfer_encoding_parser.rb:13 +# pkg:gem/mail#lib/mail/parsers/content_transfer_encoding_parser.rb:12 class Mail::Parsers::ContentTransferEncodingParser::ContentTransferEncodingStruct < ::Struct - # pkg:gem/mail#lib/mail/parsers/content_transfer_encoding_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/content_transfer_encoding_parser.rb:12 def encoding; end - # pkg:gem/mail#lib/mail/parsers/content_transfer_encoding_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/content_transfer_encoding_parser.rb:12 def encoding=(_); end - # pkg:gem/mail#lib/mail/parsers/content_transfer_encoding_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/content_transfer_encoding_parser.rb:12 def error; end - # pkg:gem/mail#lib/mail/parsers/content_transfer_encoding_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/content_transfer_encoding_parser.rb:12 def error=(_); end class << self - # pkg:gem/mail#lib/mail/parsers/content_transfer_encoding_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/content_transfer_encoding_parser.rb:12 def [](*_arg0); end - # pkg:gem/mail#lib/mail/parsers/content_transfer_encoding_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/content_transfer_encoding_parser.rb:12 def inspect; end - # pkg:gem/mail#lib/mail/parsers/content_transfer_encoding_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/content_transfer_encoding_parser.rb:12 def keyword_init?; end - # pkg:gem/mail#lib/mail/parsers/content_transfer_encoding_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/content_transfer_encoding_parser.rb:12 def members; end - # pkg:gem/mail#lib/mail/parsers/content_transfer_encoding_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/content_transfer_encoding_parser.rb:12 def new(*_arg0); end end end -# pkg:gem/mail#lib/mail/parsers/content_type_parser.rb:10 +# pkg:gem/mail#lib/mail/parsers/content_type_parser.rb:9 module Mail::Parsers::ContentTypeParser extend ::Mail::ParserTools class << self - # pkg:gem/mail#lib/mail/parsers/content_type_parser.rb:681 + # pkg:gem/mail#lib/mail/parsers/content_type_parser.rb:680 def en_comment_tail; end - # pkg:gem/mail#lib/mail/parsers/content_type_parser.rb:681 + # pkg:gem/mail#lib/mail/parsers/content_type_parser.rb:680 def en_comment_tail=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/content_type_parser.rb:685 + # pkg:gem/mail#lib/mail/parsers/content_type_parser.rb:684 def en_main; end - # pkg:gem/mail#lib/mail/parsers/content_type_parser.rb:685 + # pkg:gem/mail#lib/mail/parsers/content_type_parser.rb:684 def en_main=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/content_type_parser.rb:676 + # pkg:gem/mail#lib/mail/parsers/content_type_parser.rb:675 def error; end - # pkg:gem/mail#lib/mail/parsers/content_type_parser.rb:676 + # pkg:gem/mail#lib/mail/parsers/content_type_parser.rb:675 def error=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/content_type_parser.rb:672 + # pkg:gem/mail#lib/mail/parsers/content_type_parser.rb:671 def first_final; end - # pkg:gem/mail#lib/mail/parsers/content_type_parser.rb:672 + # pkg:gem/mail#lib/mail/parsers/content_type_parser.rb:671 def first_final=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/content_type_parser.rb:689 + # pkg:gem/mail#lib/mail/parsers/content_type_parser.rb:688 def parse(data); end - # pkg:gem/mail#lib/mail/parsers/content_type_parser.rb:668 + # pkg:gem/mail#lib/mail/parsers/content_type_parser.rb:667 def start; end - # pkg:gem/mail#lib/mail/parsers/content_type_parser.rb:668 + # pkg:gem/mail#lib/mail/parsers/content_type_parser.rb:667 def start=(_arg0); end private - # pkg:gem/mail#lib/mail/parsers/content_type_parser.rb:654 + # pkg:gem/mail#lib/mail/parsers/content_type_parser.rb:653 def _eof_actions; end - # pkg:gem/mail#lib/mail/parsers/content_type_parser.rb:654 + # pkg:gem/mail#lib/mail/parsers/content_type_parser.rb:653 def _eof_actions=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/content_type_parser.rb:58 + # pkg:gem/mail#lib/mail/parsers/content_type_parser.rb:57 def _index_offsets; end - # pkg:gem/mail#lib/mail/parsers/content_type_parser.rb:58 + # pkg:gem/mail#lib/mail/parsers/content_type_parser.rb:57 def _index_offsets=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/content_type_parser.rb:72 + # pkg:gem/mail#lib/mail/parsers/content_type_parser.rb:71 def _indicies; end - # pkg:gem/mail#lib/mail/parsers/content_type_parser.rb:72 + # pkg:gem/mail#lib/mail/parsers/content_type_parser.rb:71 def _indicies=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/content_type_parser.rb:44 + # pkg:gem/mail#lib/mail/parsers/content_type_parser.rb:43 def _key_spans; end - # pkg:gem/mail#lib/mail/parsers/content_type_parser.rb:44 + # pkg:gem/mail#lib/mail/parsers/content_type_parser.rb:43 def _key_spans=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/content_type_parser.rb:632 + # pkg:gem/mail#lib/mail/parsers/content_type_parser.rb:631 def _trans_actions; end - # pkg:gem/mail#lib/mail/parsers/content_type_parser.rb:632 + # pkg:gem/mail#lib/mail/parsers/content_type_parser.rb:631 def _trans_actions=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/content_type_parser.rb:16 + # pkg:gem/mail#lib/mail/parsers/content_type_parser.rb:15 def _trans_keys; end - # pkg:gem/mail#lib/mail/parsers/content_type_parser.rb:16 + # pkg:gem/mail#lib/mail/parsers/content_type_parser.rb:15 def _trans_keys=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/content_type_parser.rb:610 + # pkg:gem/mail#lib/mail/parsers/content_type_parser.rb:609 def _trans_targs; end - # pkg:gem/mail#lib/mail/parsers/content_type_parser.rb:610 + # pkg:gem/mail#lib/mail/parsers/content_type_parser.rb:609 def _trans_targs=(_arg0); end end end -# pkg:gem/mail#lib/mail/parsers/content_type_parser.rb:13 +# pkg:gem/mail#lib/mail/parsers/content_type_parser.rb:12 class Mail::Parsers::ContentTypeParser::ContentTypeStruct < ::Struct - # pkg:gem/mail#lib/mail/parsers/content_type_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/content_type_parser.rb:12 def error; end - # pkg:gem/mail#lib/mail/parsers/content_type_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/content_type_parser.rb:12 def error=(_); end - # pkg:gem/mail#lib/mail/parsers/content_type_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/content_type_parser.rb:12 def main_type; end - # pkg:gem/mail#lib/mail/parsers/content_type_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/content_type_parser.rb:12 def main_type=(_); end - # pkg:gem/mail#lib/mail/parsers/content_type_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/content_type_parser.rb:12 def parameters; end - # pkg:gem/mail#lib/mail/parsers/content_type_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/content_type_parser.rb:12 def parameters=(_); end - # pkg:gem/mail#lib/mail/parsers/content_type_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/content_type_parser.rb:12 def sub_type; end - # pkg:gem/mail#lib/mail/parsers/content_type_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/content_type_parser.rb:12 def sub_type=(_); end class << self - # pkg:gem/mail#lib/mail/parsers/content_type_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/content_type_parser.rb:12 def [](*_arg0); end - # pkg:gem/mail#lib/mail/parsers/content_type_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/content_type_parser.rb:12 def inspect; end - # pkg:gem/mail#lib/mail/parsers/content_type_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/content_type_parser.rb:12 def keyword_init?; end - # pkg:gem/mail#lib/mail/parsers/content_type_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/content_type_parser.rb:12 def members; end - # pkg:gem/mail#lib/mail/parsers/content_type_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/content_type_parser.rb:12 def new(*_arg0); end end end -# pkg:gem/mail#lib/mail/parsers/date_time_parser.rb:10 +# pkg:gem/mail#lib/mail/parsers/date_time_parser.rb:9 module Mail::Parsers::DateTimeParser extend ::Mail::ParserTools class << self - # pkg:gem/mail#lib/mail/parsers/date_time_parser.rb:660 + # pkg:gem/mail#lib/mail/parsers/date_time_parser.rb:659 def en_comment_tail; end - # pkg:gem/mail#lib/mail/parsers/date_time_parser.rb:660 + # pkg:gem/mail#lib/mail/parsers/date_time_parser.rb:659 def en_comment_tail=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/date_time_parser.rb:664 + # pkg:gem/mail#lib/mail/parsers/date_time_parser.rb:663 def en_main; end - # pkg:gem/mail#lib/mail/parsers/date_time_parser.rb:664 + # pkg:gem/mail#lib/mail/parsers/date_time_parser.rb:663 def en_main=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/date_time_parser.rb:655 + # pkg:gem/mail#lib/mail/parsers/date_time_parser.rb:654 def error; end - # pkg:gem/mail#lib/mail/parsers/date_time_parser.rb:655 + # pkg:gem/mail#lib/mail/parsers/date_time_parser.rb:654 def error=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/date_time_parser.rb:651 + # pkg:gem/mail#lib/mail/parsers/date_time_parser.rb:650 def first_final; end - # pkg:gem/mail#lib/mail/parsers/date_time_parser.rb:651 + # pkg:gem/mail#lib/mail/parsers/date_time_parser.rb:650 def first_final=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/date_time_parser.rb:668 + # pkg:gem/mail#lib/mail/parsers/date_time_parser.rb:667 def parse(data); end - # pkg:gem/mail#lib/mail/parsers/date_time_parser.rb:647 + # pkg:gem/mail#lib/mail/parsers/date_time_parser.rb:646 def start; end - # pkg:gem/mail#lib/mail/parsers/date_time_parser.rb:647 + # pkg:gem/mail#lib/mail/parsers/date_time_parser.rb:646 def start=(_arg0); end private - # pkg:gem/mail#lib/mail/parsers/date_time_parser.rb:626 + # pkg:gem/mail#lib/mail/parsers/date_time_parser.rb:625 def _eof_actions; end - # pkg:gem/mail#lib/mail/parsers/date_time_parser.rb:626 + # pkg:gem/mail#lib/mail/parsers/date_time_parser.rb:625 def _eof_actions=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/date_time_parser.rb:86 + # pkg:gem/mail#lib/mail/parsers/date_time_parser.rb:85 def _index_offsets; end - # pkg:gem/mail#lib/mail/parsers/date_time_parser.rb:86 + # pkg:gem/mail#lib/mail/parsers/date_time_parser.rb:85 def _index_offsets=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/date_time_parser.rb:107 + # pkg:gem/mail#lib/mail/parsers/date_time_parser.rb:106 def _indicies; end - # pkg:gem/mail#lib/mail/parsers/date_time_parser.rb:107 + # pkg:gem/mail#lib/mail/parsers/date_time_parser.rb:106 def _indicies=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/date_time_parser.rb:65 + # pkg:gem/mail#lib/mail/parsers/date_time_parser.rb:64 def _key_spans; end - # pkg:gem/mail#lib/mail/parsers/date_time_parser.rb:65 + # pkg:gem/mail#lib/mail/parsers/date_time_parser.rb:64 def _key_spans=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/date_time_parser.rb:595 + # pkg:gem/mail#lib/mail/parsers/date_time_parser.rb:594 def _trans_actions; end - # pkg:gem/mail#lib/mail/parsers/date_time_parser.rb:595 + # pkg:gem/mail#lib/mail/parsers/date_time_parser.rb:594 def _trans_actions=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/date_time_parser.rb:16 + # pkg:gem/mail#lib/mail/parsers/date_time_parser.rb:15 def _trans_keys; end - # pkg:gem/mail#lib/mail/parsers/date_time_parser.rb:16 + # pkg:gem/mail#lib/mail/parsers/date_time_parser.rb:15 def _trans_keys=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/date_time_parser.rb:564 + # pkg:gem/mail#lib/mail/parsers/date_time_parser.rb:563 def _trans_targs; end - # pkg:gem/mail#lib/mail/parsers/date_time_parser.rb:564 + # pkg:gem/mail#lib/mail/parsers/date_time_parser.rb:563 def _trans_targs=(_arg0); end end end -# pkg:gem/mail#lib/mail/parsers/date_time_parser.rb:13 +# pkg:gem/mail#lib/mail/parsers/date_time_parser.rb:12 class Mail::Parsers::DateTimeParser::DateTimeStruct < ::Struct - # pkg:gem/mail#lib/mail/parsers/date_time_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/date_time_parser.rb:12 def date_string; end - # pkg:gem/mail#lib/mail/parsers/date_time_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/date_time_parser.rb:12 def date_string=(_); end - # pkg:gem/mail#lib/mail/parsers/date_time_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/date_time_parser.rb:12 def error; end - # pkg:gem/mail#lib/mail/parsers/date_time_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/date_time_parser.rb:12 def error=(_); end - # pkg:gem/mail#lib/mail/parsers/date_time_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/date_time_parser.rb:12 def time_string; end - # pkg:gem/mail#lib/mail/parsers/date_time_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/date_time_parser.rb:12 def time_string=(_); end class << self - # pkg:gem/mail#lib/mail/parsers/date_time_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/date_time_parser.rb:12 def [](*_arg0); end - # pkg:gem/mail#lib/mail/parsers/date_time_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/date_time_parser.rb:12 def inspect; end - # pkg:gem/mail#lib/mail/parsers/date_time_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/date_time_parser.rb:12 def keyword_init?; end - # pkg:gem/mail#lib/mail/parsers/date_time_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/date_time_parser.rb:12 def members; end - # pkg:gem/mail#lib/mail/parsers/date_time_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/date_time_parser.rb:12 def new(*_arg0); end end end -# pkg:gem/mail#lib/mail/parsers/envelope_from_parser.rb:10 +# pkg:gem/mail#lib/mail/parsers/envelope_from_parser.rb:9 module Mail::Parsers::EnvelopeFromParser extend ::Mail::ParserTools class << self - # pkg:gem/mail#lib/mail/parsers/envelope_from_parser.rb:3211 + # pkg:gem/mail#lib/mail/parsers/envelope_from_parser.rb:3210 def en_comment_tail; end - # pkg:gem/mail#lib/mail/parsers/envelope_from_parser.rb:3211 + # pkg:gem/mail#lib/mail/parsers/envelope_from_parser.rb:3210 def en_comment_tail=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/envelope_from_parser.rb:3215 + # pkg:gem/mail#lib/mail/parsers/envelope_from_parser.rb:3214 def en_main; end - # pkg:gem/mail#lib/mail/parsers/envelope_from_parser.rb:3215 + # pkg:gem/mail#lib/mail/parsers/envelope_from_parser.rb:3214 def en_main=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/envelope_from_parser.rb:3206 + # pkg:gem/mail#lib/mail/parsers/envelope_from_parser.rb:3205 def error; end - # pkg:gem/mail#lib/mail/parsers/envelope_from_parser.rb:3206 + # pkg:gem/mail#lib/mail/parsers/envelope_from_parser.rb:3205 def error=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/envelope_from_parser.rb:3202 + # pkg:gem/mail#lib/mail/parsers/envelope_from_parser.rb:3201 def first_final; end - # pkg:gem/mail#lib/mail/parsers/envelope_from_parser.rb:3202 + # pkg:gem/mail#lib/mail/parsers/envelope_from_parser.rb:3201 def first_final=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/envelope_from_parser.rb:3219 + # pkg:gem/mail#lib/mail/parsers/envelope_from_parser.rb:3218 def parse(data); end - # pkg:gem/mail#lib/mail/parsers/envelope_from_parser.rb:3198 + # pkg:gem/mail#lib/mail/parsers/envelope_from_parser.rb:3197 def start; end - # pkg:gem/mail#lib/mail/parsers/envelope_from_parser.rb:3198 + # pkg:gem/mail#lib/mail/parsers/envelope_from_parser.rb:3197 def start=(_arg0); end private - # pkg:gem/mail#lib/mail/parsers/envelope_from_parser.rb:3152 + # pkg:gem/mail#lib/mail/parsers/envelope_from_parser.rb:3151 def _eof_actions; end - # pkg:gem/mail#lib/mail/parsers/envelope_from_parser.rb:3152 + # pkg:gem/mail#lib/mail/parsers/envelope_from_parser.rb:3151 def _eof_actions=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/envelope_from_parser.rb:185 + # pkg:gem/mail#lib/mail/parsers/envelope_from_parser.rb:184 def _index_offsets; end - # pkg:gem/mail#lib/mail/parsers/envelope_from_parser.rb:185 + # pkg:gem/mail#lib/mail/parsers/envelope_from_parser.rb:184 def _index_offsets=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/envelope_from_parser.rb:231 + # pkg:gem/mail#lib/mail/parsers/envelope_from_parser.rb:230 def _indicies; end - # pkg:gem/mail#lib/mail/parsers/envelope_from_parser.rb:231 + # pkg:gem/mail#lib/mail/parsers/envelope_from_parser.rb:230 def _indicies=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/envelope_from_parser.rb:139 + # pkg:gem/mail#lib/mail/parsers/envelope_from_parser.rb:138 def _key_spans; end - # pkg:gem/mail#lib/mail/parsers/envelope_from_parser.rb:139 + # pkg:gem/mail#lib/mail/parsers/envelope_from_parser.rb:138 def _key_spans=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/envelope_from_parser.rb:3077 + # pkg:gem/mail#lib/mail/parsers/envelope_from_parser.rb:3076 def _trans_actions; end - # pkg:gem/mail#lib/mail/parsers/envelope_from_parser.rb:3077 + # pkg:gem/mail#lib/mail/parsers/envelope_from_parser.rb:3076 def _trans_actions=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/envelope_from_parser.rb:16 + # pkg:gem/mail#lib/mail/parsers/envelope_from_parser.rb:15 def _trans_keys; end - # pkg:gem/mail#lib/mail/parsers/envelope_from_parser.rb:16 + # pkg:gem/mail#lib/mail/parsers/envelope_from_parser.rb:15 def _trans_keys=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/envelope_from_parser.rb:3002 + # pkg:gem/mail#lib/mail/parsers/envelope_from_parser.rb:3001 def _trans_targs; end - # pkg:gem/mail#lib/mail/parsers/envelope_from_parser.rb:3002 + # pkg:gem/mail#lib/mail/parsers/envelope_from_parser.rb:3001 def _trans_targs=(_arg0); end end end -# pkg:gem/mail#lib/mail/parsers/envelope_from_parser.rb:13 +# pkg:gem/mail#lib/mail/parsers/envelope_from_parser.rb:12 class Mail::Parsers::EnvelopeFromParser::EnvelopeFromStruct < ::Struct - # pkg:gem/mail#lib/mail/parsers/envelope_from_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/envelope_from_parser.rb:12 def address; end - # pkg:gem/mail#lib/mail/parsers/envelope_from_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/envelope_from_parser.rb:12 def address=(_); end - # pkg:gem/mail#lib/mail/parsers/envelope_from_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/envelope_from_parser.rb:12 def ctime_date; end - # pkg:gem/mail#lib/mail/parsers/envelope_from_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/envelope_from_parser.rb:12 def ctime_date=(_); end - # pkg:gem/mail#lib/mail/parsers/envelope_from_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/envelope_from_parser.rb:12 def error; end - # pkg:gem/mail#lib/mail/parsers/envelope_from_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/envelope_from_parser.rb:12 def error=(_); end class << self - # pkg:gem/mail#lib/mail/parsers/envelope_from_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/envelope_from_parser.rb:12 def [](*_arg0); end - # pkg:gem/mail#lib/mail/parsers/envelope_from_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/envelope_from_parser.rb:12 def inspect; end - # pkg:gem/mail#lib/mail/parsers/envelope_from_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/envelope_from_parser.rb:12 def keyword_init?; end - # pkg:gem/mail#lib/mail/parsers/envelope_from_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/envelope_from_parser.rb:12 def members; end - # pkg:gem/mail#lib/mail/parsers/envelope_from_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/envelope_from_parser.rb:12 def new(*_arg0); end end end -# pkg:gem/mail#lib/mail/parsers/message_ids_parser.rb:10 +# pkg:gem/mail#lib/mail/parsers/message_ids_parser.rb:9 module Mail::Parsers::MessageIdsParser extend ::Mail::ParserTools class << self - # pkg:gem/mail#lib/mail/parsers/message_ids_parser.rb:4818 + # pkg:gem/mail#lib/mail/parsers/message_ids_parser.rb:4817 def en_comment_tail; end - # pkg:gem/mail#lib/mail/parsers/message_ids_parser.rb:4818 + # pkg:gem/mail#lib/mail/parsers/message_ids_parser.rb:4817 def en_comment_tail=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/message_ids_parser.rb:4822 + # pkg:gem/mail#lib/mail/parsers/message_ids_parser.rb:4821 def en_main; end - # pkg:gem/mail#lib/mail/parsers/message_ids_parser.rb:4822 + # pkg:gem/mail#lib/mail/parsers/message_ids_parser.rb:4821 def en_main=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/message_ids_parser.rb:4813 + # pkg:gem/mail#lib/mail/parsers/message_ids_parser.rb:4812 def error; end - # pkg:gem/mail#lib/mail/parsers/message_ids_parser.rb:4813 + # pkg:gem/mail#lib/mail/parsers/message_ids_parser.rb:4812 def error=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/message_ids_parser.rb:4809 + # pkg:gem/mail#lib/mail/parsers/message_ids_parser.rb:4808 def first_final; end - # pkg:gem/mail#lib/mail/parsers/message_ids_parser.rb:4809 + # pkg:gem/mail#lib/mail/parsers/message_ids_parser.rb:4808 def first_final=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/message_ids_parser.rb:4826 + # pkg:gem/mail#lib/mail/parsers/message_ids_parser.rb:4825 def parse(data); end - # pkg:gem/mail#lib/mail/parsers/message_ids_parser.rb:4805 + # pkg:gem/mail#lib/mail/parsers/message_ids_parser.rb:4804 def start; end - # pkg:gem/mail#lib/mail/parsers/message_ids_parser.rb:4805 + # pkg:gem/mail#lib/mail/parsers/message_ids_parser.rb:4804 def start=(_arg0); end private - # pkg:gem/mail#lib/mail/parsers/message_ids_parser.rb:4755 + # pkg:gem/mail#lib/mail/parsers/message_ids_parser.rb:4754 def _eof_actions; end - # pkg:gem/mail#lib/mail/parsers/message_ids_parser.rb:4755 + # pkg:gem/mail#lib/mail/parsers/message_ids_parser.rb:4754 def _eof_actions=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/message_ids_parser.rb:202 + # pkg:gem/mail#lib/mail/parsers/message_ids_parser.rb:201 def _index_offsets; end - # pkg:gem/mail#lib/mail/parsers/message_ids_parser.rb:202 + # pkg:gem/mail#lib/mail/parsers/message_ids_parser.rb:201 def _index_offsets=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/message_ids_parser.rb:252 + # pkg:gem/mail#lib/mail/parsers/message_ids_parser.rb:251 def _indicies; end - # pkg:gem/mail#lib/mail/parsers/message_ids_parser.rb:252 + # pkg:gem/mail#lib/mail/parsers/message_ids_parser.rb:251 def _indicies=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/message_ids_parser.rb:152 + # pkg:gem/mail#lib/mail/parsers/message_ids_parser.rb:151 def _key_spans; end - # pkg:gem/mail#lib/mail/parsers/message_ids_parser.rb:152 + # pkg:gem/mail#lib/mail/parsers/message_ids_parser.rb:151 def _key_spans=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/message_ids_parser.rb:4675 + # pkg:gem/mail#lib/mail/parsers/message_ids_parser.rb:4674 def _trans_actions; end - # pkg:gem/mail#lib/mail/parsers/message_ids_parser.rb:4675 + # pkg:gem/mail#lib/mail/parsers/message_ids_parser.rb:4674 def _trans_actions=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/message_ids_parser.rb:16 + # pkg:gem/mail#lib/mail/parsers/message_ids_parser.rb:15 def _trans_keys; end - # pkg:gem/mail#lib/mail/parsers/message_ids_parser.rb:16 + # pkg:gem/mail#lib/mail/parsers/message_ids_parser.rb:15 def _trans_keys=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/message_ids_parser.rb:4595 + # pkg:gem/mail#lib/mail/parsers/message_ids_parser.rb:4594 def _trans_targs; end - # pkg:gem/mail#lib/mail/parsers/message_ids_parser.rb:4595 + # pkg:gem/mail#lib/mail/parsers/message_ids_parser.rb:4594 def _trans_targs=(_arg0); end end end -# pkg:gem/mail#lib/mail/parsers/message_ids_parser.rb:13 +# pkg:gem/mail#lib/mail/parsers/message_ids_parser.rb:12 class Mail::Parsers::MessageIdsParser::MessageIdsStruct < ::Struct - # pkg:gem/mail#lib/mail/parsers/message_ids_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/message_ids_parser.rb:12 def error; end - # pkg:gem/mail#lib/mail/parsers/message_ids_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/message_ids_parser.rb:12 def error=(_); end - # pkg:gem/mail#lib/mail/parsers/message_ids_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/message_ids_parser.rb:12 def message_ids; end - # pkg:gem/mail#lib/mail/parsers/message_ids_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/message_ids_parser.rb:12 def message_ids=(_); end class << self - # pkg:gem/mail#lib/mail/parsers/message_ids_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/message_ids_parser.rb:12 def [](*_arg0); end - # pkg:gem/mail#lib/mail/parsers/message_ids_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/message_ids_parser.rb:12 def inspect; end - # pkg:gem/mail#lib/mail/parsers/message_ids_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/message_ids_parser.rb:12 def keyword_init?; end - # pkg:gem/mail#lib/mail/parsers/message_ids_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/message_ids_parser.rb:12 def members; end - # pkg:gem/mail#lib/mail/parsers/message_ids_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/message_ids_parser.rb:12 def new(*_arg0); end end end -# pkg:gem/mail#lib/mail/parsers/mime_version_parser.rb:10 +# pkg:gem/mail#lib/mail/parsers/mime_version_parser.rb:9 module Mail::Parsers::MimeVersionParser extend ::Mail::ParserTools class << self - # pkg:gem/mail#lib/mail/parsers/mime_version_parser.rb:292 + # pkg:gem/mail#lib/mail/parsers/mime_version_parser.rb:291 def en_comment_tail; end - # pkg:gem/mail#lib/mail/parsers/mime_version_parser.rb:292 + # pkg:gem/mail#lib/mail/parsers/mime_version_parser.rb:291 def en_comment_tail=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/mime_version_parser.rb:296 + # pkg:gem/mail#lib/mail/parsers/mime_version_parser.rb:295 def en_main; end - # pkg:gem/mail#lib/mail/parsers/mime_version_parser.rb:296 + # pkg:gem/mail#lib/mail/parsers/mime_version_parser.rb:295 def en_main=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/mime_version_parser.rb:287 + # pkg:gem/mail#lib/mail/parsers/mime_version_parser.rb:286 def error; end - # pkg:gem/mail#lib/mail/parsers/mime_version_parser.rb:287 + # pkg:gem/mail#lib/mail/parsers/mime_version_parser.rb:286 def error=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/mime_version_parser.rb:283 + # pkg:gem/mail#lib/mail/parsers/mime_version_parser.rb:282 def first_final; end - # pkg:gem/mail#lib/mail/parsers/mime_version_parser.rb:283 + # pkg:gem/mail#lib/mail/parsers/mime_version_parser.rb:282 def first_final=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/mime_version_parser.rb:300 + # pkg:gem/mail#lib/mail/parsers/mime_version_parser.rb:299 def parse(data); end - # pkg:gem/mail#lib/mail/parsers/mime_version_parser.rb:279 + # pkg:gem/mail#lib/mail/parsers/mime_version_parser.rb:278 def start; end - # pkg:gem/mail#lib/mail/parsers/mime_version_parser.rb:279 + # pkg:gem/mail#lib/mail/parsers/mime_version_parser.rb:278 def start=(_arg0); end private - # pkg:gem/mail#lib/mail/parsers/mime_version_parser.rb:268 + # pkg:gem/mail#lib/mail/parsers/mime_version_parser.rb:267 def _eof_actions; end - # pkg:gem/mail#lib/mail/parsers/mime_version_parser.rb:268 + # pkg:gem/mail#lib/mail/parsers/mime_version_parser.rb:267 def _eof_actions=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/mime_version_parser.rb:45 + # pkg:gem/mail#lib/mail/parsers/mime_version_parser.rb:44 def _index_offsets; end - # pkg:gem/mail#lib/mail/parsers/mime_version_parser.rb:45 + # pkg:gem/mail#lib/mail/parsers/mime_version_parser.rb:44 def _index_offsets=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/mime_version_parser.rb:56 + # pkg:gem/mail#lib/mail/parsers/mime_version_parser.rb:55 def _indicies; end - # pkg:gem/mail#lib/mail/parsers/mime_version_parser.rb:56 + # pkg:gem/mail#lib/mail/parsers/mime_version_parser.rb:55 def _indicies=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/mime_version_parser.rb:34 + # pkg:gem/mail#lib/mail/parsers/mime_version_parser.rb:33 def _key_spans; end - # pkg:gem/mail#lib/mail/parsers/mime_version_parser.rb:34 + # pkg:gem/mail#lib/mail/parsers/mime_version_parser.rb:33 def _key_spans=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/mime_version_parser.rb:254 + # pkg:gem/mail#lib/mail/parsers/mime_version_parser.rb:253 def _trans_actions; end - # pkg:gem/mail#lib/mail/parsers/mime_version_parser.rb:254 + # pkg:gem/mail#lib/mail/parsers/mime_version_parser.rb:253 def _trans_actions=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/mime_version_parser.rb:16 + # pkg:gem/mail#lib/mail/parsers/mime_version_parser.rb:15 def _trans_keys; end - # pkg:gem/mail#lib/mail/parsers/mime_version_parser.rb:16 + # pkg:gem/mail#lib/mail/parsers/mime_version_parser.rb:15 def _trans_keys=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/mime_version_parser.rb:240 + # pkg:gem/mail#lib/mail/parsers/mime_version_parser.rb:239 def _trans_targs; end - # pkg:gem/mail#lib/mail/parsers/mime_version_parser.rb:240 + # pkg:gem/mail#lib/mail/parsers/mime_version_parser.rb:239 def _trans_targs=(_arg0); end end end -# pkg:gem/mail#lib/mail/parsers/mime_version_parser.rb:13 +# pkg:gem/mail#lib/mail/parsers/mime_version_parser.rb:12 class Mail::Parsers::MimeVersionParser::MimeVersionStruct < ::Struct - # pkg:gem/mail#lib/mail/parsers/mime_version_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/mime_version_parser.rb:12 def error; end - # pkg:gem/mail#lib/mail/parsers/mime_version_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/mime_version_parser.rb:12 def error=(_); end - # pkg:gem/mail#lib/mail/parsers/mime_version_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/mime_version_parser.rb:12 def major; end - # pkg:gem/mail#lib/mail/parsers/mime_version_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/mime_version_parser.rb:12 def major=(_); end - # pkg:gem/mail#lib/mail/parsers/mime_version_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/mime_version_parser.rb:12 def minor; end - # pkg:gem/mail#lib/mail/parsers/mime_version_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/mime_version_parser.rb:12 def minor=(_); end class << self - # pkg:gem/mail#lib/mail/parsers/mime_version_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/mime_version_parser.rb:12 def [](*_arg0); end - # pkg:gem/mail#lib/mail/parsers/mime_version_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/mime_version_parser.rb:12 def inspect; end - # pkg:gem/mail#lib/mail/parsers/mime_version_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/mime_version_parser.rb:12 def keyword_init?; end - # pkg:gem/mail#lib/mail/parsers/mime_version_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/mime_version_parser.rb:12 def members; end - # pkg:gem/mail#lib/mail/parsers/mime_version_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/mime_version_parser.rb:12 def new(*_arg0); end end end -# pkg:gem/mail#lib/mail/parsers/phrase_lists_parser.rb:10 +# pkg:gem/mail#lib/mail/parsers/phrase_lists_parser.rb:9 class Mail::Parsers::PhraseListsParser extend ::Mail::ParserTools class << self - # pkg:gem/mail#lib/mail/parsers/phrase_lists_parser.rb:672 + # pkg:gem/mail#lib/mail/parsers/phrase_lists_parser.rb:671 def en_comment_tail; end - # pkg:gem/mail#lib/mail/parsers/phrase_lists_parser.rb:672 + # pkg:gem/mail#lib/mail/parsers/phrase_lists_parser.rb:671 def en_comment_tail=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/phrase_lists_parser.rb:676 + # pkg:gem/mail#lib/mail/parsers/phrase_lists_parser.rb:675 def en_main; end - # pkg:gem/mail#lib/mail/parsers/phrase_lists_parser.rb:676 + # pkg:gem/mail#lib/mail/parsers/phrase_lists_parser.rb:675 def en_main=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/phrase_lists_parser.rb:667 + # pkg:gem/mail#lib/mail/parsers/phrase_lists_parser.rb:666 def error; end - # pkg:gem/mail#lib/mail/parsers/phrase_lists_parser.rb:667 + # pkg:gem/mail#lib/mail/parsers/phrase_lists_parser.rb:666 def error=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/phrase_lists_parser.rb:663 + # pkg:gem/mail#lib/mail/parsers/phrase_lists_parser.rb:662 def first_final; end - # pkg:gem/mail#lib/mail/parsers/phrase_lists_parser.rb:663 + # pkg:gem/mail#lib/mail/parsers/phrase_lists_parser.rb:662 def first_final=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/phrase_lists_parser.rb:680 + # pkg:gem/mail#lib/mail/parsers/phrase_lists_parser.rb:679 def parse(data); end - # pkg:gem/mail#lib/mail/parsers/phrase_lists_parser.rb:659 + # pkg:gem/mail#lib/mail/parsers/phrase_lists_parser.rb:658 def start; end - # pkg:gem/mail#lib/mail/parsers/phrase_lists_parser.rb:659 + # pkg:gem/mail#lib/mail/parsers/phrase_lists_parser.rb:658 def start=(_arg0); end private - # pkg:gem/mail#lib/mail/parsers/phrase_lists_parser.rb:646 + # pkg:gem/mail#lib/mail/parsers/phrase_lists_parser.rb:645 def _eof_actions; end - # pkg:gem/mail#lib/mail/parsers/phrase_lists_parser.rb:646 + # pkg:gem/mail#lib/mail/parsers/phrase_lists_parser.rb:645 def _eof_actions=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/phrase_lists_parser.rb:54 + # pkg:gem/mail#lib/mail/parsers/phrase_lists_parser.rb:53 def _index_offsets; end - # pkg:gem/mail#lib/mail/parsers/phrase_lists_parser.rb:54 + # pkg:gem/mail#lib/mail/parsers/phrase_lists_parser.rb:53 def _index_offsets=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/phrase_lists_parser.rb:67 + # pkg:gem/mail#lib/mail/parsers/phrase_lists_parser.rb:66 def _indicies; end - # pkg:gem/mail#lib/mail/parsers/phrase_lists_parser.rb:67 + # pkg:gem/mail#lib/mail/parsers/phrase_lists_parser.rb:66 def _indicies=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/phrase_lists_parser.rb:41 + # pkg:gem/mail#lib/mail/parsers/phrase_lists_parser.rb:40 def _key_spans; end - # pkg:gem/mail#lib/mail/parsers/phrase_lists_parser.rb:41 + # pkg:gem/mail#lib/mail/parsers/phrase_lists_parser.rb:40 def _key_spans=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/phrase_lists_parser.rb:626 + # pkg:gem/mail#lib/mail/parsers/phrase_lists_parser.rb:625 def _trans_actions; end - # pkg:gem/mail#lib/mail/parsers/phrase_lists_parser.rb:626 + # pkg:gem/mail#lib/mail/parsers/phrase_lists_parser.rb:625 def _trans_actions=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/phrase_lists_parser.rb:16 + # pkg:gem/mail#lib/mail/parsers/phrase_lists_parser.rb:15 def _trans_keys; end - # pkg:gem/mail#lib/mail/parsers/phrase_lists_parser.rb:16 + # pkg:gem/mail#lib/mail/parsers/phrase_lists_parser.rb:15 def _trans_keys=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/phrase_lists_parser.rb:606 + # pkg:gem/mail#lib/mail/parsers/phrase_lists_parser.rb:605 def _trans_targs; end - # pkg:gem/mail#lib/mail/parsers/phrase_lists_parser.rb:606 + # pkg:gem/mail#lib/mail/parsers/phrase_lists_parser.rb:605 def _trans_targs=(_arg0); end end end -# pkg:gem/mail#lib/mail/parsers/phrase_lists_parser.rb:13 +# pkg:gem/mail#lib/mail/parsers/phrase_lists_parser.rb:12 class Mail::Parsers::PhraseListsParser::PhraseListsStruct < ::Struct - # pkg:gem/mail#lib/mail/parsers/phrase_lists_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/phrase_lists_parser.rb:12 def error; end - # pkg:gem/mail#lib/mail/parsers/phrase_lists_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/phrase_lists_parser.rb:12 def error=(_); end - # pkg:gem/mail#lib/mail/parsers/phrase_lists_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/phrase_lists_parser.rb:12 def phrases; end - # pkg:gem/mail#lib/mail/parsers/phrase_lists_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/phrase_lists_parser.rb:12 def phrases=(_); end class << self - # pkg:gem/mail#lib/mail/parsers/phrase_lists_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/phrase_lists_parser.rb:12 def [](*_arg0); end - # pkg:gem/mail#lib/mail/parsers/phrase_lists_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/phrase_lists_parser.rb:12 def inspect; end - # pkg:gem/mail#lib/mail/parsers/phrase_lists_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/phrase_lists_parser.rb:12 def keyword_init?; end - # pkg:gem/mail#lib/mail/parsers/phrase_lists_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/phrase_lists_parser.rb:12 def members; end - # pkg:gem/mail#lib/mail/parsers/phrase_lists_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/phrase_lists_parser.rb:12 def new(*_arg0); end end end -# pkg:gem/mail#lib/mail/parsers/received_parser.rb:10 +# pkg:gem/mail#lib/mail/parsers/received_parser.rb:9 module Mail::Parsers::ReceivedParser extend ::Mail::ParserTools class << self - # pkg:gem/mail#lib/mail/parsers/received_parser.rb:7484 + # pkg:gem/mail#lib/mail/parsers/received_parser.rb:7483 def en_comment_tail; end - # pkg:gem/mail#lib/mail/parsers/received_parser.rb:7484 + # pkg:gem/mail#lib/mail/parsers/received_parser.rb:7483 def en_comment_tail=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/received_parser.rb:7488 + # pkg:gem/mail#lib/mail/parsers/received_parser.rb:7487 def en_main; end - # pkg:gem/mail#lib/mail/parsers/received_parser.rb:7488 + # pkg:gem/mail#lib/mail/parsers/received_parser.rb:7487 def en_main=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/received_parser.rb:7479 + # pkg:gem/mail#lib/mail/parsers/received_parser.rb:7478 def error; end - # pkg:gem/mail#lib/mail/parsers/received_parser.rb:7479 + # pkg:gem/mail#lib/mail/parsers/received_parser.rb:7478 def error=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/received_parser.rb:7475 + # pkg:gem/mail#lib/mail/parsers/received_parser.rb:7474 def first_final; end - # pkg:gem/mail#lib/mail/parsers/received_parser.rb:7475 + # pkg:gem/mail#lib/mail/parsers/received_parser.rb:7474 def first_final=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/received_parser.rb:7492 + # pkg:gem/mail#lib/mail/parsers/received_parser.rb:7491 def parse(data); end - # pkg:gem/mail#lib/mail/parsers/received_parser.rb:7471 + # pkg:gem/mail#lib/mail/parsers/received_parser.rb:7470 def start; end - # pkg:gem/mail#lib/mail/parsers/received_parser.rb:7471 + # pkg:gem/mail#lib/mail/parsers/received_parser.rb:7470 def start=(_arg0); end private - # pkg:gem/mail#lib/mail/parsers/received_parser.rb:7382 + # pkg:gem/mail#lib/mail/parsers/received_parser.rb:7381 def _eof_actions; end - # pkg:gem/mail#lib/mail/parsers/received_parser.rb:7382 + # pkg:gem/mail#lib/mail/parsers/received_parser.rb:7381 def _eof_actions=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/received_parser.rb:358 + # pkg:gem/mail#lib/mail/parsers/received_parser.rb:357 def _index_offsets; end - # pkg:gem/mail#lib/mail/parsers/received_parser.rb:358 + # pkg:gem/mail#lib/mail/parsers/received_parser.rb:357 def _index_offsets=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/received_parser.rb:447 + # pkg:gem/mail#lib/mail/parsers/received_parser.rb:446 def _indicies; end - # pkg:gem/mail#lib/mail/parsers/received_parser.rb:447 + # pkg:gem/mail#lib/mail/parsers/received_parser.rb:446 def _indicies=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/received_parser.rb:269 + # pkg:gem/mail#lib/mail/parsers/received_parser.rb:268 def _key_spans; end - # pkg:gem/mail#lib/mail/parsers/received_parser.rb:269 + # pkg:gem/mail#lib/mail/parsers/received_parser.rb:268 def _key_spans=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/received_parser.rb:7199 + # pkg:gem/mail#lib/mail/parsers/received_parser.rb:7198 def _trans_actions; end - # pkg:gem/mail#lib/mail/parsers/received_parser.rb:7199 + # pkg:gem/mail#lib/mail/parsers/received_parser.rb:7198 def _trans_actions=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/received_parser.rb:16 + # pkg:gem/mail#lib/mail/parsers/received_parser.rb:15 def _trans_keys; end - # pkg:gem/mail#lib/mail/parsers/received_parser.rb:16 + # pkg:gem/mail#lib/mail/parsers/received_parser.rb:15 def _trans_keys=(_arg0); end - # pkg:gem/mail#lib/mail/parsers/received_parser.rb:7016 + # pkg:gem/mail#lib/mail/parsers/received_parser.rb:7015 def _trans_targs; end - # pkg:gem/mail#lib/mail/parsers/received_parser.rb:7016 + # pkg:gem/mail#lib/mail/parsers/received_parser.rb:7015 def _trans_targs=(_arg0); end end end -# pkg:gem/mail#lib/mail/parsers/received_parser.rb:13 +# pkg:gem/mail#lib/mail/parsers/received_parser.rb:12 class Mail::Parsers::ReceivedParser::ReceivedStruct < ::Struct - # pkg:gem/mail#lib/mail/parsers/received_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/received_parser.rb:12 def date; end - # pkg:gem/mail#lib/mail/parsers/received_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/received_parser.rb:12 def date=(_); end - # pkg:gem/mail#lib/mail/parsers/received_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/received_parser.rb:12 def error; end - # pkg:gem/mail#lib/mail/parsers/received_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/received_parser.rb:12 def error=(_); end - # pkg:gem/mail#lib/mail/parsers/received_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/received_parser.rb:12 def info; end - # pkg:gem/mail#lib/mail/parsers/received_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/received_parser.rb:12 def info=(_); end - # pkg:gem/mail#lib/mail/parsers/received_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/received_parser.rb:12 def time; end - # pkg:gem/mail#lib/mail/parsers/received_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/received_parser.rb:12 def time=(_); end class << self - # pkg:gem/mail#lib/mail/parsers/received_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/received_parser.rb:12 def [](*_arg0); end - # pkg:gem/mail#lib/mail/parsers/received_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/received_parser.rb:12 def inspect; end - # pkg:gem/mail#lib/mail/parsers/received_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/received_parser.rb:12 def keyword_init?; end - # pkg:gem/mail#lib/mail/parsers/received_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/received_parser.rb:12 def members; end - # pkg:gem/mail#lib/mail/parsers/received_parser.rb:13 + # pkg:gem/mail#lib/mail/parsers/received_parser.rb:12 def new(*_arg0); end end end @@ -7486,7 +7454,7 @@ class Mail::PhraseList def phrases; end end -# pkg:gem/mail#lib/mail/mail.rb:241 +# pkg:gem/mail#lib/mail/mail.rb:246 Mail::RANDOM_TAG = T.let(T.unsafe(nil), String) # pkg:gem/mail#lib/mail/elements/received_element.rb:8 @@ -7534,30 +7502,30 @@ end # item-value = 1*angle-addr / addr-spec / # atom / domain / msg-id # -# pkg:gem/mail#lib/mail/fields/received_field.rb:24 +# pkg:gem/mail#lib/mail/fields/received_field.rb:23 class Mail::ReceivedField < ::Mail::NamedStructuredField - # pkg:gem/mail#lib/mail/fields/received_field.rb:31 + # pkg:gem/mail#lib/mail/fields/received_field.rb:30 def date_time; end - # pkg:gem/mail#lib/mail/fields/received_field.rb:27 + # pkg:gem/mail#lib/mail/fields/received_field.rb:26 def element; end - # pkg:gem/mail#lib/mail/fields/received_field.rb:39 + # pkg:gem/mail#lib/mail/fields/received_field.rb:38 def formatted_date; end - # pkg:gem/mail#lib/mail/fields/received_field.rb:35 + # pkg:gem/mail#lib/mail/fields/received_field.rb:34 def info; end private - # pkg:gem/mail#lib/mail/fields/received_field.rb:54 + # pkg:gem/mail#lib/mail/fields/received_field.rb:53 def do_decode; end - # pkg:gem/mail#lib/mail/fields/received_field.rb:46 + # pkg:gem/mail#lib/mail/fields/received_field.rb:45 def do_encode; end end -# pkg:gem/mail#lib/mail/fields/received_field.rb:25 +# pkg:gem/mail#lib/mail/fields/received_field.rb:24 Mail::ReceivedField::NAME = T.let(T.unsafe(nil), String) # = References Field @@ -7586,22 +7554,22 @@ Mail::ReceivedField::NAME = T.let(T.unsafe(nil), String) # # mail[:references].message_ids #=> ['F6E2D0B4-CC35-4A91-BA4C-C7C712B10C13@test.me.dom'] # -# pkg:gem/mail#lib/mail/fields/references_field.rb:31 +# pkg:gem/mail#lib/mail/fields/references_field.rb:30 class Mail::ReferencesField < ::Mail::CommonMessageIdField # @return [ReferencesField] a new instance of ReferencesField # - # pkg:gem/mail#lib/mail/fields/references_field.rb:38 + # pkg:gem/mail#lib/mail/fields/references_field.rb:37 def initialize(value = T.unsafe(nil), charset = T.unsafe(nil)); end class << self # @return [Boolean] # - # pkg:gem/mail#lib/mail/fields/references_field.rb:34 + # pkg:gem/mail#lib/mail/fields/references_field.rb:33 def singular?; end end end -# pkg:gem/mail#lib/mail/fields/references_field.rb:32 +# pkg:gem/mail#lib/mail/fields/references_field.rb:31 Mail::ReferencesField::NAME = T.let(T.unsafe(nil), String) # = Reply-To Field @@ -7630,10 +7598,10 @@ Mail::ReferencesField::NAME = T.let(T.unsafe(nil), String) # mail[:reply_to].addresses #=> ['mikel@test.lindsaar.net', 'ada@test.lindsaar.net'] # mail[:reply_to].formatted #=> ['Mikel Lindsaar ', 'ada@test.lindsaar.net'] # -# pkg:gem/mail#lib/mail/fields/reply_to_field.rb:31 +# pkg:gem/mail#lib/mail/fields/reply_to_field.rb:30 class Mail::ReplyToField < ::Mail::CommonAddressField; end -# pkg:gem/mail#lib/mail/fields/reply_to_field.rb:32 +# pkg:gem/mail#lib/mail/fields/reply_to_field.rb:31 Mail::ReplyToField::NAME = T.let(T.unsafe(nil), String) # = Resent-Bcc Field @@ -7662,10 +7630,10 @@ Mail::ReplyToField::NAME = T.let(T.unsafe(nil), String) # mail[:resent_bcc].addresses #=> ['mikel@test.lindsaar.net', 'ada@test.lindsaar.net'] # mail[:resent_bcc].formatted #=> ['Mikel Lindsaar ', 'ada@test.lindsaar.net'] # -# pkg:gem/mail#lib/mail/fields/resent_bcc_field.rb:31 +# pkg:gem/mail#lib/mail/fields/resent_bcc_field.rb:30 class Mail::ResentBccField < ::Mail::CommonAddressField; end -# pkg:gem/mail#lib/mail/fields/resent_bcc_field.rb:32 +# pkg:gem/mail#lib/mail/fields/resent_bcc_field.rb:31 Mail::ResentBccField::NAME = T.let(T.unsafe(nil), String) # = Resent-Cc Field @@ -7694,18 +7662,18 @@ Mail::ResentBccField::NAME = T.let(T.unsafe(nil), String) # mail[:resent_cc].addresses #=> ['mikel@test.lindsaar.net', 'ada@test.lindsaar.net'] # mail[:resent_cc].formatted #=> ['Mikel Lindsaar ', 'ada@test.lindsaar.net'] # -# pkg:gem/mail#lib/mail/fields/resent_cc_field.rb:31 +# pkg:gem/mail#lib/mail/fields/resent_cc_field.rb:30 class Mail::ResentCcField < ::Mail::CommonAddressField; end -# pkg:gem/mail#lib/mail/fields/resent_cc_field.rb:32 +# pkg:gem/mail#lib/mail/fields/resent_cc_field.rb:31 Mail::ResentCcField::NAME = T.let(T.unsafe(nil), String) # resent-date = "Resent-Date:" date-time CRLF # -# pkg:gem/mail#lib/mail/fields/resent_date_field.rb:8 +# pkg:gem/mail#lib/mail/fields/resent_date_field.rb:7 class Mail::ResentDateField < ::Mail::CommonDateField; end -# pkg:gem/mail#lib/mail/fields/resent_date_field.rb:9 +# pkg:gem/mail#lib/mail/fields/resent_date_field.rb:8 Mail::ResentDateField::NAME = T.let(T.unsafe(nil), String) # = Resent-From Field @@ -7734,18 +7702,18 @@ Mail::ResentDateField::NAME = T.let(T.unsafe(nil), String) # mail[:resent_from].addresses #=> ['mikel@test.lindsaar.net', 'ada@test.lindsaar.net'] # mail[:resent_from].formatted #=> ['Mikel Lindsaar ', 'ada@test.lindsaar.net'] # -# pkg:gem/mail#lib/mail/fields/resent_from_field.rb:31 +# pkg:gem/mail#lib/mail/fields/resent_from_field.rb:30 class Mail::ResentFromField < ::Mail::CommonAddressField; end -# pkg:gem/mail#lib/mail/fields/resent_from_field.rb:32 +# pkg:gem/mail#lib/mail/fields/resent_from_field.rb:31 Mail::ResentFromField::NAME = T.let(T.unsafe(nil), String) # resent-msg-id = "Resent-Message-ID:" msg-id CRLF # -# pkg:gem/mail#lib/mail/fields/resent_message_id_field.rb:8 +# pkg:gem/mail#lib/mail/fields/resent_message_id_field.rb:7 class Mail::ResentMessageIdField < ::Mail::CommonMessageIdField; end -# pkg:gem/mail#lib/mail/fields/resent_message_id_field.rb:9 +# pkg:gem/mail#lib/mail/fields/resent_message_id_field.rb:8 Mail::ResentMessageIdField::NAME = T.let(T.unsafe(nil), String) # = Resent-Sender Field @@ -7773,10 +7741,10 @@ Mail::ResentMessageIdField::NAME = T.let(T.unsafe(nil), String) # mail.resent_sender.addresses #=> ['mikel@test.lindsaar.net', 'ada@test.lindsaar.net'] # mail.resent_sender.formatted #=> ['Mikel Lindsaar ', 'ada@test.lindsaar.net'] # -# pkg:gem/mail#lib/mail/fields/resent_sender_field.rb:30 +# pkg:gem/mail#lib/mail/fields/resent_sender_field.rb:29 class Mail::ResentSenderField < ::Mail::CommonAddressField; end -# pkg:gem/mail#lib/mail/fields/resent_sender_field.rb:31 +# pkg:gem/mail#lib/mail/fields/resent_sender_field.rb:30 Mail::ResentSenderField::NAME = T.let(T.unsafe(nil), String) # = Resent-To Field @@ -7805,10 +7773,10 @@ Mail::ResentSenderField::NAME = T.let(T.unsafe(nil), String) # mail[:resent_to].addresses #=> ['mikel@test.lindsaar.net', 'ada@test.lindsaar.net'] # mail[:resent_to].formatted #=> ['Mikel Lindsaar ', 'ada@test.lindsaar.net'] # -# pkg:gem/mail#lib/mail/fields/resent_to_field.rb:31 +# pkg:gem/mail#lib/mail/fields/resent_to_field.rb:30 class Mail::ResentToField < ::Mail::CommonAddressField; end -# pkg:gem/mail#lib/mail/fields/resent_to_field.rb:32 +# pkg:gem/mail#lib/mail/fields/resent_to_field.rb:31 Mail::ResentToField::NAME = T.let(T.unsafe(nil), String) # pkg:gem/mail#lib/mail/network/retriever_methods/base.rb:6 @@ -7881,33 +7849,33 @@ end # item-value = 1*angle-addr / addr-spec / # atom / domain / msg-id # -# pkg:gem/mail#lib/mail/fields/return_path_field.rb:33 +# pkg:gem/mail#lib/mail/fields/return_path_field.rb:32 class Mail::ReturnPathField < ::Mail::CommonAddressField # @return [ReturnPathField] a new instance of ReturnPathField # - # pkg:gem/mail#lib/mail/fields/return_path_field.rb:40 + # pkg:gem/mail#lib/mail/fields/return_path_field.rb:39 def initialize(value = T.unsafe(nil), charset = T.unsafe(nil)); end - # pkg:gem/mail#lib/mail/fields/return_path_field.rb:48 + # pkg:gem/mail#lib/mail/fields/return_path_field.rb:47 def default; end private - # pkg:gem/mail#lib/mail/fields/return_path_field.rb:57 + # pkg:gem/mail#lib/mail/fields/return_path_field.rb:56 def do_decode; end - # pkg:gem/mail#lib/mail/fields/return_path_field.rb:53 + # pkg:gem/mail#lib/mail/fields/return_path_field.rb:52 def do_encode; end class << self # @return [Boolean] # - # pkg:gem/mail#lib/mail/fields/return_path_field.rb:36 + # pkg:gem/mail#lib/mail/fields/return_path_field.rb:35 def singular?; end end end -# pkg:gem/mail#lib/mail/fields/return_path_field.rb:34 +# pkg:gem/mail#lib/mail/fields/return_path_field.rb:33 Mail::ReturnPathField::NAME = T.let(T.unsafe(nil), String) # == Sending Email with SMTP @@ -7930,7 +7898,7 @@ Mail::ReturnPathField::NAME = T.let(T.unsafe(nil), String) # :user_name => '', # :password => '', # :authentication => 'plain', -# :enable_starttls_auto => true } +# :enable_starttls => :auto } # end # # === Sending via GMail @@ -7942,9 +7910,17 @@ Mail::ReturnPathField::NAME = T.let(T.unsafe(nil), String) # :user_name => '', # :password => '', # :authentication => 'plain', -# :enable_starttls_auto => true } +# :enable_starttls => :auto } # end # +# === Configuring TLS/SSL and STARTTLS +# +# A few remarks: +# - when enabling `tls` (or `ssl`), setting (truthy values for) either `enable_starttls` or `enable_starttls_auto` will raise an ArgumentError as TLS and STARTTLS are mutually exclusive. +# - to configure STARTTLS, use the `enable_starttls`-flag (instead of a combination of `enable_starttls` and `enable_starttls_auto`). Acceptable values are `:always`, `:auto` and `false`. +# - when providing a truthy value for `enable_starttls`, the `enable_starttls_auto`-flag will be ignored. +# - when none of `tls`, `ssl`, `enable_starttls` or `enable_starttls_auto` is set, the fallback will be `enable_starttls` `:auto`. +# # === Certificate verification # # When using TLS, some mail servers provide certificates that are self-signed @@ -7982,44 +7958,64 @@ Mail::ReturnPathField::NAME = T.let(T.unsafe(nil), String) # # mail.deliver! # -# pkg:gem/mail#lib/mail/network/delivery_methods/smtp.rb:76 +# pkg:gem/mail#lib/mail/network/delivery_methods/smtp.rb:84 class Mail::SMTP # @return [SMTP] a new instance of SMTP # - # pkg:gem/mail#lib/mail/network/delivery_methods/smtp.rb:95 + # pkg:gem/mail#lib/mail/network/delivery_methods/smtp.rb:103 def initialize(values); end - # pkg:gem/mail#lib/mail/network/delivery_methods/smtp.rb:99 + # pkg:gem/mail#lib/mail/network/delivery_methods/smtp.rb:107 def deliver!(mail); end # Returns the value of attribute settings. # - # pkg:gem/mail#lib/mail/network/delivery_methods/smtp.rb:77 + # pkg:gem/mail#lib/mail/network/delivery_methods/smtp.rb:85 def settings; end # Sets the attribute settings # # @param value the value to set the attribute settings to. # - # pkg:gem/mail#lib/mail/network/delivery_methods/smtp.rb:77 + # pkg:gem/mail#lib/mail/network/delivery_methods/smtp.rb:85 def settings=(_arg0); end private - # pkg:gem/mail#lib/mail/network/delivery_methods/smtp.rb:112 + # pkg:gem/mail#lib/mail/network/delivery_methods/smtp.rb:157 def build_smtp_session; end + # `k` is said to be provided when `settings` has a non-nil value for `k`. + # + # @return [Boolean] + # + # pkg:gem/mail#lib/mail/network/delivery_methods/smtp.rb:117 + def setting_provided?(k); end + + # Yields one of `:always`, `:auto` or `false` based on `enable_starttls` and `enable_starttls_auto` flags. + # Yields `false` when `smtp_tls?`. + # Else defaults to `:auto` when neither `enable_starttls*` flag is provided. + # Providing a truthy value for `enable_starttls` will ignore `enable_starttls_auto`. + # + # pkg:gem/mail#lib/mail/network/delivery_methods/smtp.rb:125 + def smtp_starttls; end + + # @return [Boolean] + # + # pkg:gem/mail#lib/mail/network/delivery_methods/smtp.rb:149 + def smtp_tls?; end + # Allow SSL context to be configured via settings, for Ruby >= 1.9 # Just returns openssl verify mode for Ruby 1.8.x # - # pkg:gem/mail#lib/mail/network/delivery_methods/smtp.rb:151 + # pkg:gem/mail#lib/mail/network/delivery_methods/smtp.rb:186 def ssl_context; end - # pkg:gem/mail#lib/mail/network/delivery_methods/smtp.rb:108 + # pkg:gem/mail#lib/mail/network/delivery_methods/smtp.rb:153 def start_smtp_session(&block); end end -# pkg:gem/mail#lib/mail/network/delivery_methods/smtp.rb:79 +# pkg:gem/mail#lib/mail/network/delivery_methods/smtp.rb:87 Mail::SMTP::DEFAULTS = T.let(T.unsafe(nil), Hash) # == Sending Email with SMTP @@ -8123,23 +8119,23 @@ end # mail[:sender].addresses #=> ['mikel@test.lindsaar.net'] # mail[:sender].formatted #=> ['Mikel Lindsaar '] # -# pkg:gem/mail#lib/mail/fields/sender_field.rb:31 +# pkg:gem/mail#lib/mail/fields/sender_field.rb:30 class Mail::SenderField < ::Mail::CommonAddressField - # pkg:gem/mail#lib/mail/fields/sender_field.rb:42 + # pkg:gem/mail#lib/mail/fields/sender_field.rb:41 def addresses; end - # pkg:gem/mail#lib/mail/fields/sender_field.rb:38 + # pkg:gem/mail#lib/mail/fields/sender_field.rb:37 def default; end class << self # @return [Boolean] # - # pkg:gem/mail#lib/mail/fields/sender_field.rb:34 + # pkg:gem/mail#lib/mail/fields/sender_field.rb:33 def singular?; end end end -# pkg:gem/mail#lib/mail/fields/sender_field.rb:32 +# pkg:gem/mail#lib/mail/fields/sender_field.rb:31 Mail::SenderField::NAME = T.let(T.unsafe(nil), String) # A delivery method implementation which sends via sendmail. @@ -8180,15 +8176,16 @@ Mail::SenderField::NAME = T.let(T.unsafe(nil), String) # # pkg:gem/mail#lib/mail/network/delivery_methods/sendmail.rb:40 class Mail::Sendmail + # @raise [ArgumentError] # @return [Sendmail] a new instance of Sendmail # # pkg:gem/mail#lib/mail/network/delivery_methods/sendmail.rb:51 def initialize(values); end - # pkg:gem/mail#lib/mail/network/delivery_methods/sendmail.rb:64 + # pkg:gem/mail#lib/mail/network/delivery_methods/sendmail.rb:60 def deliver!(mail); end - # pkg:gem/mail#lib/mail/network/delivery_methods/sendmail.rb:60 + # pkg:gem/mail#lib/mail/network/delivery_methods/sendmail.rb:56 def destinations_for(envelope); end # Returns the value of attribute settings. @@ -8205,28 +8202,8 @@ class Mail::Sendmail private - # - support for delivery using string arguments - # - # pkg:gem/mail#lib/mail/network/delivery_methods/sendmail.rb:129 - def deprecation_warn; end - - # + support for delivery using string arguments (deprecated) - # - # pkg:gem/mail#lib/mail/network/delivery_methods/sendmail.rb:97 - def old_deliver(envelope); end - - # pkg:gem/mail#lib/mail/network/delivery_methods/sendmail.rb:88 + # pkg:gem/mail#lib/mail/network/delivery_methods/sendmail.rb:79 def popen(command, &block); end - - # The following is an adaptation of ruby 1.9.2's shellwords.rb file, - # with the following modifications: - # - # - Wraps in double quotes - # - Allows '+' to accept email addresses with them - # - Allows '~' as it is not unescaped in double quotes - # - # pkg:gem/mail#lib/mail/network/delivery_methods/sendmail.rb:118 - def shellquote(address); end end # pkg:gem/mail#lib/mail/network/delivery_methods/sendmail.rb:41 @@ -8296,22 +8273,22 @@ Mail::SmtpEnvelope::MAX_ADDRESS_BYTESIZE = T.let(T.unsafe(nil), Integer) # described in section 2.2.3. Semantic analysis of structured field # bodies is given along with their syntax. # -# pkg:gem/mail#lib/mail/fields/structured_field.rb:23 +# pkg:gem/mail#lib/mail/fields/structured_field.rb:22 class Mail::StructuredField < ::Mail::CommonField; end # subject = "Subject:" unstructured CRLF # -# pkg:gem/mail#lib/mail/fields/subject_field.rb:8 +# pkg:gem/mail#lib/mail/fields/subject_field.rb:7 class Mail::SubjectField < ::Mail::NamedUnstructuredField class << self # @return [Boolean] # - # pkg:gem/mail#lib/mail/fields/subject_field.rb:11 + # pkg:gem/mail#lib/mail/fields/subject_field.rb:10 def singular?; end end end -# pkg:gem/mail#lib/mail/fields/subject_field.rb:9 +# pkg:gem/mail#lib/mail/fields/subject_field.rb:8 Mail::SubjectField::NAME = T.let(T.unsafe(nil), String) # The TestMailer is a bare bones mailer that does nothing. It is useful @@ -8410,10 +8387,10 @@ end # mail[:to].addresses #=> ['mikel@test.lindsaar.net', 'ada@test.lindsaar.net'] # mail[:to].formatted #=> ['Mikel Lindsaar ', 'ada@test.lindsaar.net'] # -# pkg:gem/mail#lib/mail/fields/to_field.rb:31 +# pkg:gem/mail#lib/mail/fields/to_field.rb:30 class Mail::ToField < ::Mail::CommonAddressField; end -# pkg:gem/mail#lib/mail/fields/to_field.rb:32 +# pkg:gem/mail#lib/mail/fields/to_field.rb:31 Mail::ToField::NAME = T.let(T.unsafe(nil), String) # Raised when attempting to decode an unknown encoding type @@ -8434,36 +8411,36 @@ class Mail::UnknownEncodingType < ::StandardError; end # with no further processing (except for header "folding" and # "unfolding" as described in section 2.2.3). # -# pkg:gem/mail#lib/mail/fields/unstructured_field.rb:19 +# pkg:gem/mail#lib/mail/fields/unstructured_field.rb:18 class Mail::UnstructuredField < ::Mail::CommonField # @return [UnstructuredField] a new instance of UnstructuredField # - # pkg:gem/mail#lib/mail/fields/unstructured_field.rb:20 + # pkg:gem/mail#lib/mail/fields/unstructured_field.rb:19 def initialize(name, value, charset = T.unsafe(nil)); end # An unstructured field does not parse # - # pkg:gem/mail#lib/mail/fields/unstructured_field.rb:40 + # pkg:gem/mail#lib/mail/fields/unstructured_field.rb:39 def parse; end private - # pkg:gem/mail#lib/mail/fields/unstructured_field.rb:54 + # pkg:gem/mail#lib/mail/fields/unstructured_field.rb:53 def do_decode; end - # pkg:gem/mail#lib/mail/fields/unstructured_field.rb:46 + # pkg:gem/mail#lib/mail/fields/unstructured_field.rb:45 def do_encode; end - # pkg:gem/mail#lib/mail/fields/unstructured_field.rb:169 + # pkg:gem/mail#lib/mail/fields/unstructured_field.rb:168 def encode(value); end - # pkg:gem/mail#lib/mail/fields/unstructured_field.rb:180 + # pkg:gem/mail#lib/mail/fields/unstructured_field.rb:179 def encode_crlf(value); end - # pkg:gem/mail#lib/mail/fields/unstructured_field.rb:102 + # pkg:gem/mail#lib/mail/fields/unstructured_field.rb:101 def fold(prepend = T.unsafe(nil)); end - # pkg:gem/mail#lib/mail/fields/unstructured_field.rb:186 + # pkg:gem/mail#lib/mail/fields/unstructured_field.rb:185 def normalized_encoding; end # 6.2. Display of 'encoded-word's @@ -8475,7 +8452,7 @@ class Mail::UnstructuredField < ::Mail::CommonField # without having to separate 'encoded-word's where spaces occur in the # unencoded text.) # - # pkg:gem/mail#lib/mail/fields/unstructured_field.rb:96 + # pkg:gem/mail#lib/mail/fields/unstructured_field.rb:95 def wrap_lines(name, folded_lines); end # 2.2.3. Long Header Fields @@ -8505,7 +8482,7 @@ class Mail::UnstructuredField < ::Mail::CommonField # preference to other places where the field could be folded, even if # it is allowed elsewhere. # - # pkg:gem/mail#lib/mail/fields/unstructured_field.rb:84 + # pkg:gem/mail#lib/mail/fields/unstructured_field.rb:83 def wrapped_value; end end @@ -8528,7 +8505,7 @@ module Mail::Utilities # # @return [Boolean] # - # pkg:gem/mail#lib/mail/utilities.rb:283 + # pkg:gem/mail#lib/mail/utilities.rb:287 def blank?(value); end # Wraps a string in angle brackets and escapes any that are in the string itself @@ -8547,7 +8524,7 @@ module Mail::Utilities # string = 'resent-from-field' # capitalize_field( string ) #=> 'Resent-From-Field' # - # pkg:gem/mail#lib/mail/utilities.rb:188 + # pkg:gem/mail#lib/mail/utilities.rb:192 def capitalize_field(str); end # Takes an underscored word and turns it into a class name @@ -8558,7 +8535,7 @@ module Mail::Utilities # constantize("hello-there") #=> "HelloThere" # constantize("hello-there-mate") #=> "HelloThereMate" # - # pkg:gem/mail#lib/mail/utilities.rb:199 + # pkg:gem/mail#lib/mail/utilities.rb:203 def constantize(str); end # Swaps out all underscores (_) for hyphens (-) good for stringing from symbols @@ -8569,7 +8546,7 @@ module Mail::Utilities # string = :resent_from_field # dasherize( string ) #=> 'resent-from-field' # - # pkg:gem/mail#lib/mail/utilities.rb:210 + # pkg:gem/mail#lib/mail/utilities.rb:214 def dasherize(str); end # Wraps supplied string in double quotes and applies \-escaping as necessary, @@ -8596,13 +8573,13 @@ module Mail::Utilities # pkg:gem/mail#lib/mail/utilities.rb:155 def escape_paren(str); end - # pkg:gem/mail#lib/mail/utilities.rb:293 + # pkg:gem/mail#lib/mail/utilities.rb:297 def generate_message_id; end - # pkg:gem/mail#lib/mail/utilities.rb:225 + # pkg:gem/mail#lib/mail/utilities.rb:229 def map_lines(str, &block); end - # pkg:gem/mail#lib/mail/utilities.rb:229 + # pkg:gem/mail#lib/mail/utilities.rb:233 def map_with_index(enum, &block); end # Matches two objects with their to_s values case insensitively @@ -8613,7 +8590,7 @@ module Mail::Utilities # obj1 = :this_IS_an_object # match_to_s( obj1, obj2 ) #=> true # - # pkg:gem/mail#lib/mail/utilities.rb:178 + # pkg:gem/mail#lib/mail/utilities.rb:182 def match_to_s(obj1, obj2); end # Wraps a string in parenthesis and escapes any that are in the string itself. @@ -8668,7 +8645,7 @@ module Mail::Utilities # string = :resent_from_field # underscoreize ( string ) #=> 'resent_from_field' # - # pkg:gem/mail#lib/mail/utilities.rb:221 + # pkg:gem/mail#lib/mail/utilities.rb:225 def underscoreize(str); end # Removes any \-escaping. @@ -8718,71 +8695,71 @@ module Mail::Utilities def uri_unescape(str); end class << self - # pkg:gem/mail#lib/mail/utilities.rb:414 + # pkg:gem/mail#lib/mail/utilities.rb:418 def b_value_decode(str); end - # pkg:gem/mail#lib/mail/utilities.rb:409 + # pkg:gem/mail#lib/mail/utilities.rb:413 def b_value_encode(str, encoding = T.unsafe(nil)); end - # pkg:gem/mail#lib/mail/utilities.rb:243 + # pkg:gem/mail#lib/mail/utilities.rb:247 def binary_unsafe_to_crlf(string); end - # pkg:gem/mail#lib/mail/utilities.rb:233 + # pkg:gem/mail#lib/mail/utilities.rb:237 def binary_unsafe_to_lf(string); end - # pkg:gem/mail#lib/mail/utilities.rb:356 + # pkg:gem/mail#lib/mail/utilities.rb:360 def bracket(str); end # Returns the value of attribute charset_encoder. # - # pkg:gem/mail#lib/mail/utilities.rb:334 + # pkg:gem/mail#lib/mail/utilities.rb:338 def charset_encoder; end # Sets the attribute charset_encoder # # @param value the value to set the attribute charset_encoder to. # - # pkg:gem/mail#lib/mail/utilities.rb:334 + # pkg:gem/mail#lib/mail/utilities.rb:338 def charset_encoder=(_arg0); end - # pkg:gem/mail#lib/mail/utilities.rb:362 + # pkg:gem/mail#lib/mail/utilities.rb:366 def decode_base64(str); end - # pkg:gem/mail#lib/mail/utilities.rb:399 + # pkg:gem/mail#lib/mail/utilities.rb:403 def decode_utf7(utf7); end - # pkg:gem/mail#lib/mail/utilities.rb:369 + # pkg:gem/mail#lib/mail/utilities.rb:373 def encode_base64(str); end # From Ruby stdlib Net::IMAP # - # pkg:gem/mail#lib/mail/utilities.rb:388 + # pkg:gem/mail#lib/mail/utilities.rb:392 def encode_utf7(string); end - # pkg:gem/mail#lib/mail/utilities.rb:351 + # pkg:gem/mail#lib/mail/utilities.rb:355 def escape_bracket(str); end # Escapes any parenthesis in a string that are unescaped this uses # a Ruby 1.9.1 regexp feature of negative look behind # - # pkg:gem/mail#lib/mail/utilities.rb:340 + # pkg:gem/mail#lib/mail/utilities.rb:344 def escape_paren(str); end - # pkg:gem/mail#lib/mail/utilities.rb:377 + # pkg:gem/mail#lib/mail/utilities.rb:381 def get_constant(klass, string); end # @return [Boolean] # - # pkg:gem/mail#lib/mail/utilities.rb:373 + # pkg:gem/mail#lib/mail/utilities.rb:377 def has_constant?(klass, string); end - # pkg:gem/mail#lib/mail/utilities.rb:451 + # pkg:gem/mail#lib/mail/utilities.rb:455 def param_decode(str, encoding); end - # pkg:gem/mail#lib/mail/utilities.rb:460 + # pkg:gem/mail#lib/mail/utilities.rb:464 def param_encode(str); end - # pkg:gem/mail#lib/mail/utilities.rb:345 + # pkg:gem/mail#lib/mail/utilities.rb:349 def paren(str); end # Pick a Ruby encoding corresponding to the message charset. Most @@ -8792,70 +8769,70 @@ module Mail::Utilities # Encoding.list.map { |e| [e.to_s.upcase == pick_encoding(e.to_s.downcase.gsub("-", "")), e.to_s] }.select {|a,b| !b} # Encoding.list.map { |e| [e.to_s == pick_encoding(e.to_s), e.to_s] }.select {|a,b| !b} # - # pkg:gem/mail#lib/mail/utilities.rb:476 + # pkg:gem/mail#lib/mail/utilities.rb:480 def pick_encoding(charset); end - # pkg:gem/mail#lib/mail/utilities.rb:432 + # pkg:gem/mail#lib/mail/utilities.rb:436 def q_value_decode(str); end - # pkg:gem/mail#lib/mail/utilities.rb:427 + # pkg:gem/mail#lib/mail/utilities.rb:431 def q_value_encode(str, encoding = T.unsafe(nil)); end # @return [Boolean] # - # pkg:gem/mail#lib/mail/utilities.rb:247 + # pkg:gem/mail#lib/mail/utilities.rb:251 def safe_for_line_ending_conversion?(string); end - # pkg:gem/mail#lib/mail/utilities.rb:536 + # pkg:gem/mail#lib/mail/utilities.rb:540 def string_byteslice(str, *args); end # Convert line endings to \r\n unless the string is binary. Used for # encoding 8bit and base64 Content-Transfer-Encoding and for convenience # when parsing emails with \n line endings instead of the required \r\n. # - # pkg:gem/mail#lib/mail/utilities.rb:269 + # pkg:gem/mail#lib/mail/utilities.rb:273 def to_crlf(string); end # Convert line endings to \n unless the string is binary. Used for # sendmail delivery and for decoding 8bit Content-Transfer-Encoding. # - # pkg:gem/mail#lib/mail/utilities.rb:257 + # pkg:gem/mail#lib/mail/utilities.rb:261 def to_lf(string); end - # pkg:gem/mail#lib/mail/utilities.rb:381 + # pkg:gem/mail#lib/mail/utilities.rb:385 def transcode_charset(str, from_encoding, to_encoding = T.unsafe(nil)); end - # pkg:gem/mail#lib/mail/utilities.rb:466 + # pkg:gem/mail#lib/mail/utilities.rb:470 def uri_parser; end private - # pkg:gem/mail#lib/mail/utilities.rb:543 + # pkg:gem/mail#lib/mail/utilities.rb:547 def convert_to_encoding(encoding); end - # pkg:gem/mail#lib/mail/utilities.rb:556 + # pkg:gem/mail#lib/mail/utilities.rb:560 def transcode_to_scrubbed_utf8(str); end end end -# pkg:gem/mail#lib/mail/utilities.rb:308 +# pkg:gem/mail#lib/mail/utilities.rb:312 class Mail::Utilities::BestEffortCharsetEncoder - # pkg:gem/mail#lib/mail/utilities.rb:309 + # pkg:gem/mail#lib/mail/utilities.rb:313 def encode(string, charset); end private - # pkg:gem/mail#lib/mail/utilities.rb:320 + # pkg:gem/mail#lib/mail/utilities.rb:324 def pick_encoding(charset); end end -# pkg:gem/mail#lib/mail/utilities.rb:297 +# pkg:gem/mail#lib/mail/utilities.rb:301 class Mail::Utilities::StrictCharsetEncoder - # pkg:gem/mail#lib/mail/utilities.rb:298 + # pkg:gem/mail#lib/mail/utilities.rb:302 def encode(string, charset); end end -# pkg:gem/mail#lib/mail/utilities.rb:237 +# pkg:gem/mail#lib/mail/utilities.rb:241 Mail::Utilities::TO_CRLF_REGEX = T.let(T.unsafe(nil), Regexp) # pkg:gem/mail#lib/mail/version.rb:3 diff --git a/sorbet/rbi/gems/marcel@1.0.4.rbi b/sorbet/rbi/gems/marcel@1.1.0.rbi similarity index 97% rename from sorbet/rbi/gems/marcel@1.0.4.rbi rename to sorbet/rbi/gems/marcel@1.1.0.rbi index 0b0cb39cf..a0d38547b 100644 --- a/sorbet/rbi/gems/marcel@1.0.4.rbi +++ b/sorbet/rbi/gems/marcel@1.1.0.rbi @@ -18,7 +18,7 @@ Marcel::EXTENSIONS = T.let(T.unsafe(nil), Hash) # @private # -# pkg:gem/marcel#lib/marcel/tables.rb:2394 +# pkg:gem/marcel#lib/marcel/tables.rb:2513 Marcel::MAGIC = T.let(T.unsafe(nil), Array) # Mime type detection @@ -227,12 +227,12 @@ Marcel::MimeType::BINARY = T.let(T.unsafe(nil), String) # @private # -# pkg:gem/marcel#lib/marcel/tables.rb:1260 +# pkg:gem/marcel#lib/marcel/tables.rb:1310 Marcel::TYPE_EXTS = T.let(T.unsafe(nil), Hash) # Cooltalk Audio # -# pkg:gem/marcel#lib/marcel/tables.rb:2151 +# pkg:gem/marcel#lib/marcel/tables.rb:2239 Marcel::TYPE_PARENTS = T.let(T.unsafe(nil), Hash) # pkg:gem/marcel#lib/marcel/version.rb:4 diff --git a/sorbet/rbi/gems/net-imap@0.5.7.rbi b/sorbet/rbi/gems/net-imap@0.5.7.rbi deleted file mode 100644 index 0cd08c394..000000000 --- a/sorbet/rbi/gems/net-imap@0.5.7.rbi +++ /dev/null @@ -1,3712 +0,0 @@ -# typed: false - -# DO NOT EDIT MANUALLY -# This is an autogenerated file for types exported from the `net-imap` gem. -# Please instead update this file by running `bin/tapioca gem net-imap`. - - -# pkg:gem/net-imap#lib/net/imap.rb:790 -class Net::IMAP < ::Net::Protocol - include ::MonitorMixin - include ::OpenSSL - include ::OpenSSL::SSL - - # pkg:gem/net-imap#lib/net/imap.rb:1065 - def initialize(host, port: T.unsafe(nil), ssl: T.unsafe(nil), response_handlers: T.unsafe(nil), config: T.unsafe(nil), **config_options); end - - # pkg:gem/net-imap#lib/net/imap.rb:3299 - def add_response_handler(handler = T.unsafe(nil), &block); end - - # pkg:gem/net-imap#lib/net/imap.rb:2018 - def append(mailbox, message, flags = T.unsafe(nil), date_time = T.unsafe(nil)); end - - # pkg:gem/net-imap#lib/net/imap.rb:1213 - def auth_capable?(mechanism); end - - # pkg:gem/net-imap#lib/net/imap.rb:1196 - def auth_mechanisms; end - - # pkg:gem/net-imap#lib/net/imap.rb:1508 - def authenticate(*args, sasl_ir: T.unsafe(nil), **props, &callback); end - - # pkg:gem/net-imap#lib/net/imap.rb:1172 - def capabilities; end - - # pkg:gem/net-imap#lib/net/imap.rb:1223 - def capabilities_cached?; end - - # pkg:gem/net-imap#lib/net/imap.rb:1261 - def capability; end - - # pkg:gem/net-imap#lib/net/imap.rb:1159 - def capability?(capability); end - - # pkg:gem/net-imap#lib/net/imap.rb:1158 - def capable?(capability); end - - # pkg:gem/net-imap#lib/net/imap.rb:2034 - def check; end - - # pkg:gem/net-imap#lib/net/imap.rb:1236 - def clear_cached_capabilities; end - - # pkg:gem/net-imap#lib/net/imap.rb:3228 - def clear_responses(type = T.unsafe(nil)); end - - # pkg:gem/net-imap#lib/net/imap.rb:2044 - def close; end - - # pkg:gem/net-imap#lib/net/imap.rb:848 - def config; end - - # pkg:gem/net-imap#lib/net/imap.rb:953 - def connection_state; end - - # pkg:gem/net-imap#lib/net/imap.rb:2773 - def copy(set, mailbox); end - - # pkg:gem/net-imap#lib/net/imap.rb:1618 - def create(mailbox); end - - # pkg:gem/net-imap#lib/net/imap.rb:1630 - def delete(mailbox); end - - # pkg:gem/net-imap#lib/net/imap.rb:1118 - def disconnect; end - - # pkg:gem/net-imap#lib/net/imap.rb:1144 - def disconnected?; end - - # pkg:gem/net-imap#lib/net/imap.rb:3003 - def enable(*capabilities); end - - # pkg:gem/net-imap#lib/net/imap.rb:1600 - def examine(mailbox, condstore: T.unsafe(nil)); end - - # pkg:gem/net-imap#lib/net/imap.rb:2092 - def expunge; end - - # pkg:gem/net-imap#lib/net/imap.rb:3252 - def extract_responses(type); end - - # pkg:gem/net-imap#lib/net/imap.rb:2617 - def fetch(*_arg0, **_arg1, &_arg2); end - - # pkg:gem/net-imap#lib/net/imap.rb:1898 - def getacl(mailbox); end - - # pkg:gem/net-imap#lib/net/imap.rb:1842 - def getquota(mailbox); end - - # pkg:gem/net-imap#lib/net/imap.rb:1821 - def getquotaroot(mailbox); end - - # pkg:gem/net-imap#lib/net/imap.rb:842 - def greeting; end - - # pkg:gem/net-imap#lib/net/imap.rb:874 - def host; end - - # pkg:gem/net-imap#lib/net/imap.rb:1290 - def id(client_id = T.unsafe(nil)); end - - # pkg:gem/net-imap#lib/net/imap.rb:3047 - def idle(timeout = T.unsafe(nil), &response_handler); end - - # pkg:gem/net-imap#lib/net/imap.rb:3083 - def idle_done; end - - # pkg:gem/net-imap#lib/net/imap.rb:868 - def idle_response_timeout; end - - # pkg:gem/net-imap#lib/net/imap.rb:1702 - def list(refname, mailbox); end - - # pkg:gem/net-imap#lib/net/imap.rb:1539 - def login(user, password); end - - # pkg:gem/net-imap#lib/net/imap.rb:1318 - def logout; end - - # pkg:gem/net-imap#lib/net/imap.rb:1335 - def logout!; end - - # pkg:gem/net-imap#lib/net/imap.rb:1913 - def lsub(refname, mailbox); end - - # pkg:gem/net-imap#lib/net/imap.rb:869 - def max_response_size; end - - # pkg:gem/net-imap#lib/net/imap.rb:870 - def max_response_size=(val); end - - # pkg:gem/net-imap#lib/net/imap.rb:2814 - def move(set, mailbox); end - - # pkg:gem/net-imap#lib/net/imap.rb:1759 - def namespace; end - - # pkg:gem/net-imap#lib/net/imap.rb:1309 - def noop; end - - # pkg:gem/net-imap#lib/net/imap.rb:867 - def open_timeout; end - - # pkg:gem/net-imap#lib/net/imap.rb:877 - def port; end - - # pkg:gem/net-imap#lib/net/imap.rb:3309 - def remove_response_handler(handler); end - - # pkg:gem/net-imap#lib/net/imap.rb:1643 - def rename(mailbox, newname); end - - # pkg:gem/net-imap#lib/net/imap.rb:3278 - def response_handlers; end - - # pkg:gem/net-imap#lib/net/imap.rb:3194 - def responses(type = T.unsafe(nil)); end - - # pkg:gem/net-imap#lib/net/imap.rb:2536 - def search(*_arg0, **_arg1, &_arg2); end - - # pkg:gem/net-imap#lib/net/imap.rb:1580 - def select(mailbox, condstore: T.unsafe(nil)); end - - # pkg:gem/net-imap#lib/net/imap.rb:1880 - def setacl(mailbox, user, rights); end - - # pkg:gem/net-imap#lib/net/imap.rb:1860 - def setquota(mailbox, quota); end - - # pkg:gem/net-imap#lib/net/imap.rb:2862 - def sort(sort_keys, search_keys, charset); end - - # pkg:gem/net-imap#lib/net/imap.rb:885 - def ssl_ctx; end - - # pkg:gem/net-imap#lib/net/imap.rb:892 - def ssl_ctx_params; end - - # pkg:gem/net-imap#lib/net/imap.rb:1379 - def starttls(**options); end - - # pkg:gem/net-imap#lib/net/imap.rb:1980 - def status(mailbox, attr); end - - # pkg:gem/net-imap#lib/net/imap.rb:2729 - def store(set, attr, flags, unchangedsince: T.unsafe(nil)); end - - # pkg:gem/net-imap#lib/net/imap.rb:1655 - def subscribe(mailbox); end - - # pkg:gem/net-imap#lib/net/imap.rb:2902 - def thread(algorithm, search_keys, charset); end - - # pkg:gem/net-imap#lib/net/imap.rb:1113 - def tls_verified?; end - - # pkg:gem/net-imap#lib/net/imap.rb:2789 - def uid_copy(set, mailbox); end - - # pkg:gem/net-imap#lib/net/imap.rb:2122 - def uid_expunge(uid_set); end - - # pkg:gem/net-imap#lib/net/imap.rb:2679 - def uid_fetch(*_arg0, **_arg1, &_arg2); end - - # pkg:gem/net-imap#lib/net/imap.rb:2836 - def uid_move(set, mailbox); end - - # pkg:gem/net-imap#lib/net/imap.rb:2563 - def uid_search(*_arg0, **_arg1, &_arg2); end - - # pkg:gem/net-imap#lib/net/imap.rb:2877 - def uid_sort(sort_keys, search_keys, charset); end - - # pkg:gem/net-imap#lib/net/imap.rb:2752 - def uid_store(set, attr, flags, unchangedsince: T.unsafe(nil)); end - - # pkg:gem/net-imap#lib/net/imap.rb:2916 - def uid_thread(algorithm, search_keys, charset); end - - # pkg:gem/net-imap#lib/net/imap.rb:2061 - def unselect; end - - # pkg:gem/net-imap#lib/net/imap.rb:1668 - def unsubscribe(mailbox); end - - # pkg:gem/net-imap#lib/net/imap.rb:1803 - def xlist(refname, mailbox); end - - private - - # pkg:gem/net-imap#lib/net/imap.rb:3750 - def build_ssl_ctx(ssl); end - - # pkg:gem/net-imap#lib/net/imap.rb:3486 - def capabilities_from_resp_code(resp); end - - # pkg:gem/net-imap#lib/net/imap.rb:3732 - def coerce_search_arg_to_seqset?(obj); end - - # pkg:gem/net-imap#lib/net/imap.rb:3741 - def coerce_search_array_arg_to_seqset?(obj); end - - # pkg:gem/net-imap#lib/net/imap.rb:3617 - def convert_return_opts(unconverted); end - - # pkg:gem/net-imap#lib/net/imap.rb:3701 - def copy_internal(cmd, set, mailbox); end - - # pkg:gem/net-imap#lib/net/imap.rb:3555 - def enforce_logindisabled?; end - - # pkg:gem/net-imap#lib/net/imap.rb:3563 - def expunge_internal(*_arg0, **_arg1, &_arg2); end - - # pkg:gem/net-imap#lib/net/imap.rb:3658 - def fetch_internal(cmd, set, attr, mod = T.unsafe(nil), partial: T.unsafe(nil), changedsince: T.unsafe(nil)); end - - # pkg:gem/net-imap#lib/net/imap.rb:3535 - def generate_tag; end - - # pkg:gem/net-imap#lib/net/imap.rb:3462 - def get_response; end - - # pkg:gem/net-imap#lib/net/imap.rb:3332 - def get_server_greeting; end - - # pkg:gem/net-imap#lib/net/imap.rb:3434 - def get_tagged_response(tag, cmd, timeout = T.unsafe(nil)); end - - # pkg:gem/net-imap#lib/net/imap.rb:3721 - def normalize_searching_criteria(criteria); end - - # pkg:gem/net-imap#lib/net/imap.rb:3540 - def put_string(str); end - - # pkg:gem/net-imap#lib/net/imap.rb:3363 - def receive_responses; end - - # pkg:gem/net-imap#lib/net/imap.rb:3473 - def record_untagged_response(resp); end - - # pkg:gem/net-imap#lib/net/imap.rb:3479 - def record_untagged_response_code(resp); end - - # pkg:gem/net-imap#lib/net/imap.rb:3803 - def sasl_adapter; end - - # pkg:gem/net-imap#lib/net/imap.rb:3583 - def search_args(keys, charset_arg = T.unsafe(nil), return: T.unsafe(nil), charset: T.unsafe(nil)); end - - # pkg:gem/net-imap#lib/net/imap.rb:3632 - def search_internal(cmd, *_arg1, **_arg2, &_arg3); end - - # pkg:gem/net-imap#lib/net/imap.rb:3507 - def send_command(cmd, *args, &block); end - - # pkg:gem/net-imap#lib/net/imap.rb:3690 - def send_command_returning_fetch_results(*_arg0, **_arg1, &_arg2); end - - # pkg:gem/net-imap#lib/net/imap.rb:3498 - def send_command_with_continuations(cmd, *args); end - - # pkg:gem/net-imap#lib/net/imap.rb:3705 - def sort_internal(cmd, sort_keys, search_keys, charset); end - - # pkg:gem/net-imap#lib/net/imap.rb:3321 - def start_imap_connection; end - - # pkg:gem/net-imap#lib/net/imap.rb:3343 - def start_receiver_thread; end - - # pkg:gem/net-imap#lib/net/imap.rb:3765 - def start_tls_session; end - - # pkg:gem/net-imap#lib/net/imap.rb:3780 - def state_authenticated!(resp = T.unsafe(nil)); end - - # pkg:gem/net-imap#lib/net/imap.rb:3797 - def state_logout!; end - - # pkg:gem/net-imap#lib/net/imap.rb:3787 - def state_selected!; end - - # pkg:gem/net-imap#lib/net/imap.rb:3793 - def state_unselected!; end - - # pkg:gem/net-imap#lib/net/imap.rb:3682 - def store_internal(cmd, set, attr, flags, unchangedsince: T.unsafe(nil)); end - - # pkg:gem/net-imap#lib/net/imap.rb:3354 - def tcp_socket(host, port); end - - # pkg:gem/net-imap#lib/net/imap.rb:3713 - def thread_internal(cmd, algorithm, search_keys, charset); end - - class << self - # pkg:gem/net-imap#lib/net/imap.rb:813 - def config; end - - # pkg:gem/net-imap#lib/net/imap.rb:817 - def debug; end - - # pkg:gem/net-imap#lib/net/imap.rb:821 - def debug=(val); end - - # pkg:gem/net-imap#lib/net/imap.rb:836 - def default_imap_port; end - - # pkg:gem/net-imap#lib/net/imap.rb:837 - def default_imaps_port; end - - # pkg:gem/net-imap#lib/net/imap.rb:826 - def default_port; end - - # pkg:gem/net-imap#lib/net/imap.rb:838 - def default_ssl_port; end - - # pkg:gem/net-imap#lib/net/imap.rb:831 - def default_tls_port; end - - # pkg:gem/net-imap#lib/net/imap.rb:3813 - def saslprep(string, **opts); end - end -end - -# Net::IMAP::Config (available since +v0.4.13+) stores -# configuration options for Net::IMAP clients. The global configuration can -# be seen at either Net::IMAP.config or Net::IMAP::Config.global, and the -# client-specific configuration can be seen at Net::IMAP#config. -# -# When creating a new client, all unhandled keyword arguments to -# Net::IMAP.new are delegated to Config.new. Every client has its own -# config. -# -# debug_client = Net::IMAP.new(hostname, debug: true) -# quiet_client = Net::IMAP.new(hostname, debug: false) -# debug_client.config.debug? # => true -# quiet_client.config.debug? # => false -# -# == Inheritance -# -# Configs have a parent[rdoc-ref:Config::AttrInheritance#parent] config, and -# any attributes which have not been set locally will inherit the parent's -# value. Every client creates its own specific config. By default, client -# configs inherit from Config.global. -# -# plain_client = Net::IMAP.new(hostname) -# debug_client = Net::IMAP.new(hostname, debug: true) -# quiet_client = Net::IMAP.new(hostname, debug: false) -# -# plain_client.config.inherited?(:debug) # => true -# debug_client.config.inherited?(:debug) # => false -# quiet_client.config.inherited?(:debug) # => false -# -# plain_client.config.debug? # => false -# debug_client.config.debug? # => true -# quiet_client.config.debug? # => false -# -# # Net::IMAP.debug is delegated to Net::IMAP::Config.global.debug -# Net::IMAP.debug = true -# plain_client.config.debug? # => true -# debug_client.config.debug? # => true -# quiet_client.config.debug? # => false -# -# Net::IMAP.debug = false -# plain_client.config.debug = true -# plain_client.config.inherited?(:debug) # => false -# plain_client.config.debug? # => true -# plain_client.config.reset(:debug) -# plain_client.config.inherited?(:debug) # => true -# plain_client.config.debug? # => false -# -# == Versioned defaults -# -# The effective default configuration for a specific +x.y+ version of -# +net-imap+ can be loaded with the +config+ keyword argument to -# Net::IMAP.new. Requesting default configurations for previous versions -# enables extra backward compatibility with those versions: -# -# client = Net::IMAP.new(hostname, config: 0.3) -# client.config.sasl_ir # => false -# client.config.responses_without_block # => :silence_deprecation_warning -# -# client = Net::IMAP.new(hostname, config: 0.4) -# client.config.sasl_ir # => true -# client.config.responses_without_block # => :silence_deprecation_warning -# -# client = Net::IMAP.new(hostname, config: 0.5) -# client.config.sasl_ir # => true -# client.config.responses_without_block # => :warn -# -# client = Net::IMAP.new(hostname, config: :future) -# client.config.sasl_ir # => true -# client.config.responses_without_block # => :frozen_dup -# -# The versioned default configs inherit certain specific config options from -# Config.global, for example #debug: -# -# client = Net::IMAP.new(hostname, config: 0.4) -# Net::IMAP.debug = false -# client.config.debug? # => false -# -# Net::IMAP.debug = true -# client.config.debug? # => true -# -# Use #load_defaults to globally behave like a specific version: -# client = Net::IMAP.new(hostname) -# client.config.sasl_ir # => true -# Net::IMAP.config.load_defaults 0.3 -# client.config.sasl_ir # => false -# -# === Named defaults -# In addition to +x.y+ version numbers, the following aliases are supported: -# -# [+:default+] -# An alias for +:current+. -# -# >>> -# *NOTE*: This is _not_ the same as Config.default. It inherits some -# attributes from Config.global, for example: #debug. -# [+:current+] -# An alias for the current +x.y+ version's defaults. -# [+:next+] -# The _planned_ config for the next +x.y+ version. -# [+:future+] -# The _planned_ eventual config for some future +x.y+ version. -# -# For example, to disable all currently deprecated behavior: -# client = Net::IMAP.new(hostname, config: :future) -# client.config.response_without_args # => :frozen_dup -# client.responses.frozen? # => true -# client.responses.values.all?(&:frozen?) # => true -# -# == Thread Safety -# -# *NOTE:* Updates to config objects are not synchronized for thread-safety. -# -# pkg:gem/net-imap#lib/net/imap/config/attr_accessors.rb:7 -class Net::IMAP::Config - include ::Net::IMAP::Config::AttrAccessors - include ::Net::IMAP::Config::AttrInheritance - include ::Net::IMAP::Config::AttrTypeCoercion - extend ::Net::IMAP::Config::AttrAccessors::Macros - extend ::Net::IMAP::Config::AttrInheritance::Macros - extend ::Net::IMAP::Config::AttrTypeCoercion::Macros - - class << self - # :call-seq: - # Net::IMAP::Config[number] -> versioned config - # Net::IMAP::Config[symbol] -> named config - # Net::IMAP::Config[hash] -> new frozen config - # Net::IMAP::Config[config] -> same config - # - # Given a version number, returns the default configuration for the target - # version. See Config@Versioned+defaults. - # - # Given a version name, returns the default configuration for the target - # version. See Config@Named+defaults. - # - # Given a Hash, creates a new _frozen_ config which inherits from - # Config.global. Use Config.new for an unfrozen config. - # - # Given a config, returns that same config. - # - # pkg:gem/net-imap#lib/net/imap/config.rb:170 - def [](config); end - - # The default config, which is hardcoded and frozen. - # - # pkg:gem/net-imap#lib/net/imap/config.rb:128 - def default; end - - # The global config object. Also available from Net::IMAP.config. - # - # pkg:gem/net-imap#lib/net/imap/config.rb:131 - def global; end - - # A hash of hard-coded configurations, indexed by version number or name. - # Values can be accessed with any object that responds to +to_sym+ or - # +to_r+/+to_f+ with a non-zero number. - # - # Config::[] gets named or numbered versions from this hash. - # - # For example: - # Net::IMAP::Config.version_defaults[0.5] == Net::IMAP::Config[0.5] - # Net::IMAP::Config[0.5] == Net::IMAP::Config[0.5r] # => true - # Net::IMAP::Config["current"] == Net::IMAP::Config[:current] # => true - # Net::IMAP::Config["0.5.6"] == Net::IMAP::Config[0.5r] # => true - # - # pkg:gem/net-imap#lib/net/imap/config.rb:144 - def version_defaults; end - end -end - -# >>> -# *NOTE:* This module is an internal implementation detail, with no -# guarantee of backward compatibility. -# -# +attr_accessor+ values are stored in a struct rather than ivars, making -# it simpler to ensure that all config objects share a single object -# shape. This also simplifies iteration over all defined attributes. -# -# pkg:gem/net-imap#lib/net/imap/config/attr_accessors.rb:15 -module Net::IMAP::Config::AttrAccessors - extend ::Forwardable - - mixes_in_class_methods ::Net::IMAP::Config::AttrAccessors::Macros - - # :notnew: - # - # pkg:gem/net-imap#lib/net/imap/config/attr_accessors.rb:45 - def initialize; end - - # pkg:gem/net-imap#lib/net/imap/config.rb:203 - def debug(*_arg0, **_arg1, &_arg2); end - - # pkg:gem/net-imap#lib/net/imap/config.rb:203 - def debug=(*_arg0, **_arg1, &_arg2); end - - # Freezes the internal attributes struct, in addition to +self+. - # - # pkg:gem/net-imap#lib/net/imap/config/attr_accessors.rb:51 - def freeze; end - - # pkg:gem/net-imap#lib/net/imap/config.rb:229 - def idle_response_timeout(*_arg0, **_arg1, &_arg2); end - - # pkg:gem/net-imap#lib/net/imap/config.rb:229 - def idle_response_timeout=(*_arg0, **_arg1, &_arg2); end - - # pkg:gem/net-imap#lib/net/imap/config.rb:221 - def open_timeout(*_arg0, **_arg1, &_arg2); end - - # pkg:gem/net-imap#lib/net/imap/config.rb:221 - def open_timeout=(*_arg0, **_arg1, &_arg2); end - - # pkg:gem/net-imap#lib/net/imap/config.rb:245 - def sasl_ir(*_arg0, **_arg1, &_arg2); end - - # pkg:gem/net-imap#lib/net/imap/config.rb:245 - def sasl_ir=(*_arg0, **_arg1, &_arg2); end - - protected - - # pkg:gem/net-imap#lib/net/imap/config/attr_accessors.rb:58 - def data; end - - private - - # pkg:gem/net-imap#lib/net/imap/config/attr_accessors.rb:62 - def initialize_clone(other); end - - # pkg:gem/net-imap#lib/net/imap/config/attr_accessors.rb:67 - def initialize_dup(other); end - - class << self - # pkg:gem/net-imap#lib/net/imap/config/attr_accessors.rb:28 - def attr_accessor(name); end - - # pkg:gem/net-imap#lib/net/imap/config/attr_accessors.rb:38 - def struct; end - - private - - # pkg:gem/net-imap#lib/net/imap/config/attr_accessors.rb:33 - def attributes; end - - # @private - # - # pkg:gem/net-imap#lib/net/imap/config/attr_accessors.rb:21 - def included(mod); end - end -end - -# pkg:gem/net-imap#lib/net/imap/config/attr_accessors.rb:16 -module Net::IMAP::Config::AttrAccessors::Macros - # pkg:gem/net-imap#lib/net/imap/config/attr_accessors.rb:17 - def attr_accessor(name); end -end - -# >>> -# *NOTE:* The public methods on this module are part of the stable -# public API of Net::IMAP::Config. But the module itself is an internal -# implementation detail, with no guarantee of backward compatibility. -# -# +attr_accessor+ methods will delegate to their #parent when the local -# value does not contain an override. Inheritance forms a singly linked -# list, so lookup will be O(n) on the number of ancestors. In -# practice, the ancestor chain is not expected to be long. Without -# customization, it is only three deep: -# >>> -# IMAP#config → Config.global → Config.default -# -# When creating a client with the +config+ keyword, for example to use -# the appropriate defaults for an application or a library while still -# relying on global for configuration of +debug+ or +logger+, most likely -# the ancestor chain is still only four deep: -# >>> -# IMAP#config → alternate defaults → Config.global → Config.default -# -# pkg:gem/net-imap#lib/net/imap/config/attr_inheritance.rb:25 -module Net::IMAP::Config::AttrInheritance - mixes_in_class_methods ::Net::IMAP::Config::AttrInheritance::Macros - - # :notnew: - # - # pkg:gem/net-imap#lib/net/imap/config/attr_inheritance.rb:48 - def initialize(parent = T.unsafe(nil)); end - - # pkg:gem/net-imap#lib/net/imap/config.rb:203 - def debug; end - - # pkg:gem/net-imap#lib/net/imap/config.rb:229 - def idle_response_timeout; end - - # Returns +true+ if +attr+ is inherited from #parent and not overridden - # by this config. - # - # @return [Boolean] - # - # pkg:gem/net-imap#lib/net/imap/config/attr_inheritance.rb:59 - def inherited?(attr); end - - # Creates a new config, which inherits from +self+. - # - # pkg:gem/net-imap#lib/net/imap/config/attr_inheritance.rb:55 - def new(**attrs); end - - # pkg:gem/net-imap#lib/net/imap/config.rb:221 - def open_timeout; end - - # The parent Config object - # - # pkg:gem/net-imap#lib/net/imap/config/attr_inheritance.rb:46 - def parent; end - - # :call-seq: - # reset -> self - # reset(attr) -> attribute value - # - # Resets an +attr+ to inherit from the #parent config. - # - # When +attr+ is nil or not given, all attributes are reset. - # - # pkg:gem/net-imap#lib/net/imap/config/attr_inheritance.rb:68 - def reset(attr = T.unsafe(nil)); end - - # pkg:gem/net-imap#lib/net/imap/config.rb:245 - def sasl_ir; end - - private - - # pkg:gem/net-imap#lib/net/imap/config/attr_inheritance.rb:82 - def initialize_copy(other); end - - class << self - # pkg:gem/net-imap#lib/net/imap/config/attr_inheritance.rb:39 - def attr_accessor(name); end - - private - - # @private - # - # pkg:gem/net-imap#lib/net/imap/config/attr_inheritance.rb:34 - def included(mod); end - end -end - -# pkg:gem/net-imap#lib/net/imap/config/attr_inheritance.rb:26 -module Net::IMAP::Config::AttrInheritance::INHERITED; end - -# pkg:gem/net-imap#lib/net/imap/config/attr_inheritance.rb:29 -module Net::IMAP::Config::AttrInheritance::Macros - # pkg:gem/net-imap#lib/net/imap/config/attr_inheritance.rb:30 - def attr_accessor(name); end -end - -# >>> -# *NOTE:* This module is an internal implementation detail, with no -# guarantee of backward compatibility. -# -# Adds a +type+ keyword parameter to +attr_accessor+, to enforce that -# config attributes have valid types, for example: boolean, numeric, -# enumeration, non-nullable, etc. -# -# pkg:gem/net-imap#lib/net/imap/config/attr_type_coercion.rb:13 -module Net::IMAP::Config::AttrTypeCoercion - mixes_in_class_methods ::Net::IMAP::Config::AttrTypeCoercion::Macros - - # pkg:gem/net-imap#lib/net/imap/config.rb:203 - def debug=(val); end - - # pkg:gem/net-imap#lib/net/imap/config.rb:203 - def debug?; end - - # pkg:gem/net-imap#lib/net/imap/config.rb:229 - def idle_response_timeout=(val); end - - # pkg:gem/net-imap#lib/net/imap/config.rb:221 - def open_timeout=(val); end - - # pkg:gem/net-imap#lib/net/imap/config.rb:245 - def sasl_ir=(val); end - - # pkg:gem/net-imap#lib/net/imap/config.rb:245 - def sasl_ir?; end - - class << self - # pkg:gem/net-imap#lib/net/imap/config/attr_type_coercion.rb:38 - def attr_accessor(attr, type: T.unsafe(nil)); end - - private - - # @private - # - # pkg:gem/net-imap#lib/net/imap/config/attr_type_coercion.rb:26 - def included(mod); end - - # pkg:gem/net-imap#lib/net/imap/config/attr_type_coercion.rb:31 - def safe(*_arg0, **_arg1, &_arg2); end - end -end - -# pkg:gem/net-imap#lib/net/imap/config/attr_type_coercion.rb:35 -Net::IMAP::Config::AttrTypeCoercion::Boolean = T.let(T.unsafe(nil), Proc) - -# pkg:gem/net-imap#lib/net/imap/config/attr_type_coercion.rb:46 -Net::IMAP::Config::AttrTypeCoercion::Enum = T.let(T.unsafe(nil), Proc) - -# :stopdoc: internal APIs only -# -# pkg:gem/net-imap#lib/net/imap/config/attr_type_coercion.rb:16 -module Net::IMAP::Config::AttrTypeCoercion::Macros - # pkg:gem/net-imap#lib/net/imap/config/attr_type_coercion.rb:17 - def attr_accessor(attr, type: T.unsafe(nil)); end - - private - - # @return [Boolean] - # - # pkg:gem/net-imap#lib/net/imap/config/attr_type_coercion.rb:22 - def Integer?; end - - class << self - # @return [Boolean] - # - # pkg:gem/net-imap#lib/net/imap/config/attr_type_coercion.rb:22 - def Integer?; end - end -end - -# pkg:gem/net-imap#lib/net/imap/config/attr_type_coercion.rb:44 -Net::IMAP::Config::AttrTypeCoercion::NilOrInteger = T.let(T.unsafe(nil), Proc) - -# pkg:gem/net-imap#lib/net/imap/config/attr_type_coercion.rb:34 -Net::IMAP::Config::AttrTypeCoercion::Types = T.let(T.unsafe(nil), Hash) - -# Array of attribute names that are _not_ loaded by #load_defaults. -# -# pkg:gem/net-imap#lib/net/imap/config.rb:124 -Net::IMAP::Config::DEFAULT_TO_INHERIT = T.let(T.unsafe(nil), Array) - -# pkg:gem/net-imap#lib/net/imap.rb:794 -Net::IMAP::ENABLE_ALIASES = T.let(T.unsafe(nil), Hash) - -# Error raised when the server sends an invalid response. -# -# This is different from UnknownResponseError: the response has been -# rejected. Although it may be parsable, the server is forbidden from -# sending it in the current context. The client should automatically -# disconnect, abruptly (without logout). -# -# Note that InvalidResponseError does not inherit from ResponseError: it -# can be raised before the response is fully parsed. A related -# ResponseParseError or ResponseError may be the #cause. -# -# pkg:gem/net-imap#lib/net/imap/errors.rb:99 -class Net::IMAP::InvalidResponseError < ::Net::IMAP::Error; end - -# pkg:gem/net-imap#lib/net/imap/errors.rb:10 -class Net::IMAP::LoginDisabledError < ::Net::IMAP::Error - # @return [LoginDisabledError] a new instance of LoginDisabledError - # - # pkg:gem/net-imap#lib/net/imap/errors.rb:11 - def initialize(msg = T.unsafe(nil), *_arg1, **_arg2, &_arg3); end -end - -# pkg:gem/net-imap#lib/net/imap.rb:3092 -Net::IMAP::RESPONSES_DEPRECATION_MSG = T.let(T.unsafe(nil), String) - -# pkg:gem/net-imap#lib/net/imap/errors.rb:113 -Net::IMAP::RESPONSE_ERRORS = T.let(T.unsafe(nil), Hash) - -# pkg:gem/net-imap#lib/net/imap.rb:3580 -Net::IMAP::RETURN_START = T.let(T.unsafe(nil), Regexp) - -# pkg:gem/net-imap#lib/net/imap.rb:3579 -Net::IMAP::RETURN_WHOLE = T.let(T.unsafe(nil), Regexp) - -# Superclass of all errors used to encapsulate "fail" responses -# from the server. -# -# pkg:gem/net-imap#lib/net/imap/errors.rb:59 -class Net::IMAP::ResponseError < ::Net::IMAP::Error - # @return [ResponseError] a new instance of ResponseError - # - # pkg:gem/net-imap#lib/net/imap/errors.rb:64 - def initialize(response); end - - # The response that caused this error - # - # pkg:gem/net-imap#lib/net/imap/errors.rb:62 - def response; end - - # The response that caused this error - # - # pkg:gem/net-imap#lib/net/imap/errors.rb:62 - def response=(_arg0); end -end - -# Error raised when the socket cannot be read, due to a Config limit. -# -# pkg:gem/net-imap#lib/net/imap/errors.rb:21 -class Net::IMAP::ResponseReadError < ::Net::IMAP::Error; end - -# See https://www.rfc-editor.org/rfc/rfc9051#section-2.2.2 -# -# pkg:gem/net-imap#lib/net/imap/response_reader.rb:6 -class Net::IMAP::ResponseReader - # @return [ResponseReader] a new instance of ResponseReader - # - # pkg:gem/net-imap#lib/net/imap/response_reader.rb:9 - def initialize(client, sock); end - - # pkg:gem/net-imap#lib/net/imap/response_reader.rb:7 - def client; end - - # pkg:gem/net-imap#lib/net/imap/response_reader.rb:13 - def read_response_buffer; end - - private - - # Returns the value of attribute buff. - # - # pkg:gem/net-imap#lib/net/imap/response_reader.rb:29 - def buff; end - - # pkg:gem/net-imap#lib/net/imap/response_reader.rb:31 - def bytes_read; end - - # @return [Boolean] - # - # pkg:gem/net-imap#lib/net/imap/response_reader.rb:33 - def done?; end - - # @return [Boolean] - # - # pkg:gem/net-imap#lib/net/imap/response_reader.rb:32 - def empty?; end - - # pkg:gem/net-imap#lib/net/imap/response_reader.rb:35 - def get_literal_size; end - - # @return [Boolean] - # - # pkg:gem/net-imap#lib/net/imap/response_reader.rb:34 - def line_done?; end - - # Returns the value of attribute literal_size. - # - # pkg:gem/net-imap#lib/net/imap/response_reader.rb:29 - def literal_size; end - - # pkg:gem/net-imap#lib/net/imap/response_reader.rb:56 - def max_response_remaining; end - - # @raise [ResponseTooLargeError] - # - # pkg:gem/net-imap#lib/net/imap/response_reader.rb:64 - def max_response_remaining!; end - - # pkg:gem/net-imap#lib/net/imap/response_reader.rb:55 - def max_response_size; end - - # pkg:gem/net-imap#lib/net/imap/response_reader.rb:60 - def min_response_remaining; end - - # pkg:gem/net-imap#lib/net/imap/response_reader.rb:58 - def min_response_size; end - - # pkg:gem/net-imap#lib/net/imap/response_reader.rb:51 - def read_limit(limit = T.unsafe(nil)); end - - # pkg:gem/net-imap#lib/net/imap/response_reader.rb:37 - def read_line; end - - # pkg:gem/net-imap#lib/net/imap/response_reader.rb:42 - def read_literal; end - - # @return [Boolean] - # - # pkg:gem/net-imap#lib/net/imap/response_reader.rb:57 - def response_too_large?; end -end - -# Error raised when a response is larger than IMAP#max_response_size. -# -# pkg:gem/net-imap#lib/net/imap/errors.rb:25 -class Net::IMAP::ResponseTooLargeError < ::Net::IMAP::ResponseReadError - # @return [ResponseTooLargeError] a new instance of ResponseTooLargeError - # - # pkg:gem/net-imap#lib/net/imap/errors.rb:29 - def initialize(msg = T.unsafe(nil), *args, bytes_read: T.unsafe(nil), literal_size: T.unsafe(nil), max_response_size: T.unsafe(nil), **kwargs); end - - # Returns the value of attribute bytes_read. - # - # pkg:gem/net-imap#lib/net/imap/errors.rb:26 - def bytes_read; end - - # Returns the value of attribute literal_size. - # - # pkg:gem/net-imap#lib/net/imap/errors.rb:26 - def literal_size; end - - # Returns the value of attribute max_response_size. - # - # pkg:gem/net-imap#lib/net/imap/errors.rb:27 - def max_response_size; end - - private - - # pkg:gem/net-imap#lib/net/imap/errors.rb:46 - def response_size_msg; end -end - -# Pluggable authentication mechanisms for protocols which support SASL -# (Simple Authentication and Security Layer), such as IMAP4, SMTP, LDAP, and -# XMPP. {RFC-4422}[https://www.rfc-editor.org/rfc/rfc4422] specifies the -# common \SASL framework: -# >>> -# SASL is conceptually a framework that provides an abstraction layer -# between protocols and mechanisms as illustrated in the following -# diagram. -# -# SMTP LDAP XMPP Other protocols ... -# \ | | / -# \ | | / -# SASL abstraction layer -# / | | \ -# / | | \ -# EXTERNAL GSSAPI PLAIN Other mechanisms ... -# -# Net::IMAP uses SASL via the Net::IMAP#authenticate method. -# -# == Mechanisms -# -# Each mechanism has different properties and requirements. Please consult -# the documentation for the specific mechanisms you are using: -# -# +ANONYMOUS+:: -# See AnonymousAuthenticator. -# -# Allows the user to gain access to public services or resources without -# authenticating or disclosing an identity. -# -# +EXTERNAL+:: -# See ExternalAuthenticator. -# -# Authenticates using already established credentials, such as a TLS -# certificate or IPSec. -# -# +OAUTHBEARER+:: -# See OAuthBearerAuthenticator. -# -# Login using an OAuth2 Bearer token. This is the standard mechanism -# for using OAuth2 with \SASL, but it is not yet deployed as widely as -# +XOAUTH2+. -# -# +PLAIN+:: -# See PlainAuthenticator. -# -# Login using clear-text username and password. -# -# +SCRAM-SHA-1+:: -# +SCRAM-SHA-256+:: -# See ScramAuthenticator. -# -# Login by username and password. The password is not sent to the -# server but is used in a salted challenge/response exchange. -# +SCRAM-SHA-1+ and +SCRAM-SHA-256+ are directly supported by -# Net::IMAP::SASL. New authenticators can easily be added for any other -# SCRAM-* mechanism if the digest algorithm is supported by -# OpenSSL::Digest. -# -# +XOAUTH2+:: -# See XOAuth2Authenticator. -# -# Login using a username and an OAuth2 access token. Non-standard and -# obsoleted by +OAUTHBEARER+, but widely supported. -# -# See the {SASL mechanism -# registry}[https://www.iana.org/assignments/sasl-mechanisms/sasl-mechanisms.xhtml] -# for a list of all SASL mechanisms and their specifications. To register -# new authenticators, see Authenticators. -# -# === Deprecated mechanisms -# -# Obsolete mechanisms should be avoided, but are still available for -# backwards compatibility. -# -# >>> -# For +DIGEST-MD5+ see DigestMD5Authenticator. -# -# For +LOGIN+, see LoginAuthenticator. -# -# For +CRAM-MD5+, see CramMD5Authenticator. -# -# Using a deprecated mechanism will print a warning. -# -# pkg:gem/net-imap#lib/net/imap/sasl.rb:90 -module Net::IMAP::SASL - private - - # See Net::IMAP::StringPrep::SASLprep#saslprep. - # - # pkg:gem/net-imap#lib/net/imap/sasl.rb:176 - def saslprep(string, **opts); end - - class << self - # Delegates to ::authenticators. See Authenticators#add_authenticator. - # - # pkg:gem/net-imap#lib/net/imap/sasl.rb:171 - def add_authenticator(*_arg0, **_arg1, &_arg2); end - - # Creates a new SASL authenticator, using SASL::Authenticators#new. - # - # +registry+ defaults to SASL.authenticators. All other arguments are - # forwarded to to registry.new. - # - # pkg:gem/net-imap#lib/net/imap/sasl.rb:166 - def authenticator(*args, registry: T.unsafe(nil), **kwargs, &block); end - - # Returns the default global SASL::Authenticators instance. - # - # pkg:gem/net-imap#lib/net/imap/sasl.rb:160 - def authenticators; end - - # See Net::IMAP::StringPrep::SASLprep#saslprep. - # - # pkg:gem/net-imap#lib/net/imap/sasl.rb:176 - def saslprep(string, **opts); end - end -end - -# Authenticator for the "+ANONYMOUS+" SASL mechanism, as specified by -# RFC-4505[https://www.rfc-editor.org/rfc/rfc4505]. See -# Net::IMAP#authenticate. -# -# pkg:gem/net-imap#lib/net/imap/sasl/anonymous_authenticator.rb:10 -class Net::IMAP::SASL::AnonymousAuthenticator - # :call-seq: - # new(anonymous_message = "", **) -> authenticator - # new(anonymous_message: "", **) -> authenticator - # - # Creates an Authenticator for the "+ANONYMOUS+" SASL mechanism, as - # specified in RFC-4505[https://www.rfc-editor.org/rfc/rfc4505]. To use - # this, see Net::IMAP#authenticate or your client's authentication - # method. - # - # ==== Parameters - # - # * _optional_ #anonymous_message — a message to send to the server. - # - # Any other keyword arguments are silently ignored. - # - # @return [AnonymousAuthenticator] a new instance of AnonymousAuthenticator - # - # pkg:gem/net-imap#lib/net/imap/sasl/anonymous_authenticator.rb:37 - def initialize(anon_msg = T.unsafe(nil), anonymous_message: T.unsafe(nil), **_arg2); end - - # An optional token sent for the +ANONYMOUS+ mechanism., up to 255 UTF-8 - # characters in length. - # - # If it contains an "@" sign, the message must be a valid email address - # (+addr-spec+ from RFC-2822[https://www.rfc-editor.org/rfc/rfc2822]). - # Email syntax is _not_ validated by AnonymousAuthenticator. - # - # Otherwise, it can be any UTF8 string which is permitted by the - # StringPrep::Trace profile. - # - # pkg:gem/net-imap#lib/net/imap/sasl/anonymous_authenticator.rb:21 - def anonymous_message; end - - # Returns true when the initial client response was sent. - # - # The authentication should not succeed unless this returns true, but it - # does *not* indicate success. - # - # @return [Boolean] - # - # pkg:gem/net-imap#lib/net/imap/sasl/anonymous_authenticator.rb:64 - def done?; end - - # :call-seq: - # initial_response? -> true - # - # +ANONYMOUS+ can send an initial client response. - # - # @return [Boolean] - # - # pkg:gem/net-imap#lib/net/imap/sasl/anonymous_authenticator.rb:51 - def initial_response?; end - - # Returns #anonymous_message. - # - # pkg:gem/net-imap#lib/net/imap/sasl/anonymous_authenticator.rb:54 - def process(_server_challenge_string); end -end - -# Indicates an authentication exchange that will be or has been canceled -# by the client, not due to any error or failure during processing. -# -# pkg:gem/net-imap#lib/net/imap/sasl.rb:106 -class Net::IMAP::SASL::AuthenticationCanceled < ::Net::IMAP::SASL::Error; end - -# Indicates an error when processing a server challenge, e.g: an invalid -# or unparsable challenge. An underlying exception may be available as -# the exception's #cause. -# -# pkg:gem/net-imap#lib/net/imap/sasl.rb:111 -class Net::IMAP::SASL::AuthenticationError < ::Net::IMAP::SASL::Error; end - -# AuthenticationExchange is used internally by Net::IMAP#authenticate. -# But the API is still *experimental*, and may change. -# -# TODO: catch exceptions in #process and send #cancel_response. -# TODO: raise an error if the command succeeds after being canceled. -# TODO: use with more clients, to verify the API can accommodate them. -# TODO: pass ClientAdapter#service to SASL.authenticator -# -# An AuthenticationExchange represents a single attempt to authenticate -# a SASL client to a SASL server. It is created from a client adapter, a -# mechanism name, and a mechanism authenticator. When #authenticate is -# called, it will send the appropriate authenticate command to the server, -# returning the client response on success and raising an exception on -# failure. -# -# In most cases, the client will not need to use -# SASL::AuthenticationExchange directly at all. Instead, use -# SASL::ClientAdapter#authenticate. If customizations are needed, the -# custom client adapter is probably the best place for that code. -# -# def authenticate(...) -# MyClient::SASLAdapter.new(self).authenticate(...) -# end -# -# SASL::ClientAdapter#authenticate delegates to ::authenticate, like so: -# -# def authenticate(...) -# sasl_adapter = MyClient::SASLAdapter.new(self) -# SASL::AuthenticationExchange.authenticate(sasl_adapter, ...) -# end -# -# ::authenticate simply delegates to ::build and #authenticate, like so: -# -# def authenticate(...) -# sasl_adapter = MyClient::SASLAdapter.new(self) -# SASL::AuthenticationExchange -# .build(sasl_adapter, ...) -# .authenticate -# end -# -# And ::build delegates to SASL.authenticator and ::new, like so: -# -# def authenticate(mechanism, ...) -# sasl_adapter = MyClient::SASLAdapter.new(self) -# authenticator = SASL.authenticator(mechanism, ...) -# SASL::AuthenticationExchange -# .new(sasl_adapter, mechanism, authenticator) -# .authenticate -# end -# -# pkg:gem/net-imap#lib/net/imap/sasl/authentication_exchange.rb:57 -class Net::IMAP::SASL::AuthenticationExchange - # @return [AuthenticationExchange] a new instance of AuthenticationExchange - # - # pkg:gem/net-imap#lib/net/imap/sasl/authentication_exchange.rb:84 - def initialize(client, mechanism, authenticator, sasl_ir: T.unsafe(nil)); end - - # Call #authenticate to execute an authentication exchange for #client - # using #authenticator. Authentication failures will raise an - # exception. Any exceptions other than those in RESPONSE_ERRORS will - # drop the connection. - # - # pkg:gem/net-imap#lib/net/imap/sasl/authentication_exchange.rb:96 - def authenticate; end - - # Returns the value of attribute authenticator. - # - # pkg:gem/net-imap#lib/net/imap/sasl/authentication_exchange.rb:82 - def authenticator; end - - # @return [Boolean] - # - # pkg:gem/net-imap#lib/net/imap/sasl/authentication_exchange.rb:117 - def done?; end - - # Returns the value of attribute mechanism. - # - # pkg:gem/net-imap#lib/net/imap/sasl/authentication_exchange.rb:82 - def mechanism; end - - # @return [Boolean] - # - # pkg:gem/net-imap#lib/net/imap/sasl/authentication_exchange.rb:109 - def send_initial_response?; end - - private - - # Returns the value of attribute client. - # - # pkg:gem/net-imap#lib/net/imap/sasl/authentication_exchange.rb:123 - def client; end - - # pkg:gem/net-imap#lib/net/imap/sasl/authentication_exchange.rb:125 - def initial_response; end - - # pkg:gem/net-imap#lib/net/imap/sasl/authentication_exchange.rb:130 - def process(challenge); end - - class << self - # Convenience method for build(...).authenticate - # - # See also: SASL::ClientAdapter#authenticate - # - # pkg:gem/net-imap#lib/net/imap/sasl/authentication_exchange.rb:61 - def authenticate(*_arg0, **_arg1, &_arg2); end - - # Convenience method to combine the creation of a new authenticator and - # a new Authentication exchange. - # - # +client+ must be an instance of SASL::ClientAdapter. - # - # +mechanism+ must be a SASL mechanism name, as a string or symbol. - # - # +sasl_ir+ allows or disallows sending an "initial response", depending - # also on whether the server capabilities, mechanism authenticator, and - # client adapter all support it. Defaults to +true+. - # - # +mechanism+, +args+, +kwargs+, and +block+ are all forwarded to - # SASL.authenticator. Use the +registry+ kwarg to override the global - # SASL::Authenticators registry. - # - # pkg:gem/net-imap#lib/net/imap/sasl/authentication_exchange.rb:77 - def build(client, mechanism, *args, sasl_ir: T.unsafe(nil), **kwargs, &block); end - end -end - -# Indicates that authentication cannot proceed because one of the server's -# messages has not passed integrity checks. -# -# pkg:gem/net-imap#lib/net/imap/sasl.rb:115 -class Net::IMAP::SASL::AuthenticationFailed < ::Net::IMAP::SASL::Error; end - -# Indicates that authentication cannot proceed because the server ended -# authentication prematurely. -# -# pkg:gem/net-imap#lib/net/imap/sasl.rb:119 -class Net::IMAP::SASL::AuthenticationIncomplete < ::Net::IMAP::SASL::AuthenticationFailed - # @return [AuthenticationIncomplete] a new instance of AuthenticationIncomplete - # - # pkg:gem/net-imap#lib/net/imap/sasl.rb:123 - def initialize(response, message = T.unsafe(nil)); end - - # The success response from the server - # - # pkg:gem/net-imap#lib/net/imap/sasl.rb:121 - def response; end -end - -# Registry for SASL authenticators -# -# Registered authenticators must respond to +#new+ or +#call+ (e.g. a class or -# a proc), receiving any credentials and options and returning an -# authenticator instance. The returned object represents a single -# authentication exchange and must not be reused for multiple -# authentication attempts. -# -# An authenticator instance object must respond to +#process+, receiving the -# server's challenge and returning the client's response. Optionally, it may -# also respond to +#initial_response?+ and +#done?+. When -# +#initial_response?+ returns +true+, +#process+ may be called the first -# time with +nil+. When +#done?+ returns +false+, the exchange is incomplete -# and an exception should be raised if the exchange terminates prematurely. -# -# See the source for PlainAuthenticator, XOAuth2Authenticator, and -# ScramSHA1Authenticator for examples. -# -# pkg:gem/net-imap#lib/net/imap/sasl/authenticators.rb:22 -class Net::IMAP::SASL::Authenticators - # Create a new Authenticators registry. - # - # This class is usually not instantiated directly. Use SASL.authenticators - # to reuse the default global registry. - # - # When +use_defaults+ is +false+, the registry will start empty. When - # +use_deprecated+ is +false+, deprecated authenticators will not be - # included with the defaults. - # - # @return [Authenticators] a new instance of Authenticators - # - # pkg:gem/net-imap#lib/net/imap/sasl/authenticators.rb:36 - def initialize(use_defaults: T.unsafe(nil), use_deprecated: T.unsafe(nil)); end - - # :call-seq: - # add_authenticator(mechanism) - # add_authenticator(mechanism, authenticator_class) - # add_authenticator(mechanism, authenticator_proc) - # - # Registers an authenticator for #authenticator to use. +mechanism+ is the - # name of the - # {SASL mechanism}[https://www.iana.org/assignments/sasl-mechanisms/sasl-mechanisms.xhtml] - # implemented by +authenticator_class+ (for instance, "PLAIN"). - # - # If +mechanism+ refers to an existing authenticator, - # the old authenticator will be replaced. - # - # When only a single argument is given, the authenticator class will be - # lazily loaded from Net::IMAP::SASL::#{name}Authenticator (case is - # preserved and non-alphanumeric characters are removed.. - # - # pkg:gem/net-imap#lib/net/imap/sasl/authenticators.rb:71 - def add_authenticator(name, authenticator = T.unsafe(nil)); end - - # :call-seq: - # authenticator(mechanism, ...) -> auth_session - # - # Builds an authenticator instance using the authenticator registered to - # +mechanism+. The returned object represents a single authentication - # exchange and must not be reused for multiple authentication - # attempts. - # - # All arguments (except +mechanism+) are forwarded to the registered - # authenticator's +#new+ or +#call+ method. Each authenticator must - # document its own arguments. - # - # [Note] - # This method is intended for internal use by connection protocol code - # only. Protocol client users should see refer to their client's - # documentation, e.g. Net::IMAP#authenticate. - # - # pkg:gem/net-imap#lib/net/imap/sasl/authenticators.rb:111 - def authenticator(mechanism, *_arg1, **_arg2, &_arg3); end - - # @return [Boolean] - # - # pkg:gem/net-imap#lib/net/imap/sasl/authenticators.rb:90 - def mechanism?(name); end - - # Returns the names of all registered SASL mechanisms. - # - # pkg:gem/net-imap#lib/net/imap/sasl/authenticators.rb:53 - def names; end - - # :call-seq: - # authenticator(mechanism, ...) -> auth_session - # - # Builds an authenticator instance using the authenticator registered to - # +mechanism+. The returned object represents a single authentication - # exchange and must not be reused for multiple authentication - # attempts. - # - # All arguments (except +mechanism+) are forwarded to the registered - # authenticator's +#new+ or +#call+ method. Each authenticator must - # document its own arguments. - # - # [Note] - # This method is intended for internal use by connection protocol code - # only. Protocol client users should see refer to their client's - # documentation, e.g. Net::IMAP#authenticate. - # - # pkg:gem/net-imap#lib/net/imap/sasl/authenticators.rb:118 - def new(mechanism, *_arg1, **_arg2, &_arg3); end - - # Removes the authenticator registered for +name+ - # - # pkg:gem/net-imap#lib/net/imap/sasl/authenticators.rb:85 - def remove_authenticator(name); end - - class << self - # Normalize the mechanism name as an uppercase string, with underscores - # converted to dashes. - # - # pkg:gem/net-imap#lib/net/imap/sasl/authenticators.rb:26 - def normalize_name(mechanism); end - end -end - -# pkg:gem/net-imap#lib/net/imap/sasl/stringprep.rb:8 -Net::IMAP::SASL::BidiStringError = Net::IMAP::StringPrep::BidiStringError - -# This API is *experimental*, and may change. -# -# TODO: use with more clients, to verify the API can accommodate them. -# -# Represents the client to a SASL::AuthenticationExchange. By default, -# most methods simply delegate to #client. Clients should subclass -# SASL::ClientAdapter and override methods as needed to match the -# semantics of this API to their API. -# -# Subclasses should also include a protocol adapter mixin when the default -# ProtocolAdapters::Generic isn't sufficient. -# -# === Protocol Requirements -# -# {RFC4422 §4}[https://www.rfc-editor.org/rfc/rfc4422.html#section-4] -# lists requirements for protocol specifications to offer SASL. Where -# possible, ClientAdapter delegates the handling of these requirements to -# SASL::ProtocolAdapters. -# -# pkg:gem/net-imap#lib/net/imap/sasl/client_adapter.rb:27 -class Net::IMAP::SASL::ClientAdapter - include ::Net::IMAP::SASL::ProtocolAdapters::Generic - extend ::Forwardable - - # By default, this simply sets the #client and #command_proc attributes. - # Subclasses may override it, for example: to set the appropriate - # command_proc automatically. - # - # @return [ClientAdapter] a new instance of ClientAdapter - # - # pkg:gem/net-imap#lib/net/imap/sasl/client_adapter.rb:56 - def initialize(client, &command_proc); end - - # pkg:gem/net-imap#lib/net/imap/sasl/client_adapter.rb:76 - def auth_capable?(*_arg0, **_arg1, &_arg2); end - - # Attempt to authenticate #client to the server. - # - # By default, this simply delegates to - # AuthenticationExchange.authenticate. - # - # pkg:gem/net-imap#lib/net/imap/sasl/client_adapter.rb:64 - def authenticate(*_arg0, **_arg1, &_arg2); end - - # method: drop_connection! - # Drop the connection abruptly, closing the socket without logging out. - # - # pkg:gem/net-imap#lib/net/imap/sasl/client_adapter.rb:35 - def client; end - - # +command_proc+ can used to avoid exposing private methods on #client. - # It's value is set by the block that is passed to ::new, and it is used - # by the default implementation of #run_command. Subclasses that - # override #run_command may use #command_proc for any other purpose they - # find useful. - # - # In the default implementation of #run_command, command_proc is called - # with the protocols authenticate +command+ name, the +mechanism+ name, - # an _optional_ +initial_response+ argument, and a +continuations+ - # block. command_proc must run the protocol command with the arguments - # sent to it, _yield_ the payload of each continuation, respond to the - # continuation with the result of each _yield_, and _return_ the - # command's successful result. Non-successful results *MUST* raise - # an exception. - # - # pkg:gem/net-imap#lib/net/imap/sasl/client_adapter.rb:51 - def command_proc; end - - # pkg:gem/net-imap#lib/net/imap/sasl/client_adapter.rb:113 - def drop_connection(*_arg0, **_arg1, &_arg2); end - - # pkg:gem/net-imap#lib/net/imap/sasl/client_adapter.rb:118 - def drop_connection!(*_arg0, **_arg1, &_arg2); end - - # pkg:gem/net-imap#lib/net/imap/sasl/client_adapter.rb:99 - def host(*_arg0, **_arg1, &_arg2); end - - # pkg:gem/net-imap#lib/net/imap/sasl/client_adapter.rb:104 - def port(*_arg0, **_arg1, &_arg2); end - - # Returns an array of server responses errors raised by run_command. - # Exceptions in this array won't drop the connection. - # - # pkg:gem/net-imap#lib/net/imap/sasl/client_adapter.rb:108 - def response_errors; end - - # Calls command_proc with +command_name+ (see - # SASL::ProtocolAdapters::Generic#command_name), - # +mechanism+, +initial_response+, and a +continuations_handler+ block. - # The +initial_response+ is optional; when it's nil, it won't be sent to - # command_proc. - # - # Yields each continuation payload, responds to the server with the - # result of each yield, and returns the result. Non-successful results - # *MUST* raise an exception. Exceptions in the block *MUST* cause the - # command to fail. - # - # Subclasses that override this may use #command_proc differently. - # - # pkg:gem/net-imap#lib/net/imap/sasl/client_adapter.rb:90 - def run_command(mechanism, initial_response = T.unsafe(nil), &continuations_handler); end - - # pkg:gem/net-imap#lib/net/imap/sasl/client_adapter.rb:69 - def sasl_ir_capable?(*_arg0, **_arg1, &_arg2); end -end - -# Authenticator for the "+CRAM-MD5+" SASL mechanism, specified in -# RFC2195[https://www.rfc-editor.org/rfc/rfc2195]. See Net::IMAP#authenticate. -# -# == Deprecated -# -# +CRAM-MD5+ is obsolete and insecure. It is included for compatibility with -# existing servers. -# {draft-ietf-sasl-crammd5-to-historic}[https://www.rfc-editor.org/rfc/draft-ietf-sasl-crammd5-to-historic-00.html] -# recommends using +SCRAM-*+ or +PLAIN+ protected by TLS instead. -# -# Additionally, RFC8314[https://www.rfc-editor.org/rfc/rfc8314] discourage the use -# of cleartext and recommends TLS version 1.2 or greater be used for all -# traffic. With TLS +CRAM-MD5+ is okay, but so is +PLAIN+ -# -# pkg:gem/net-imap#lib/net/imap/sasl/cram_md5_authenticator.rb:16 -class Net::IMAP::SASL::CramMD5Authenticator - # @return [CramMD5Authenticator] a new instance of CramMD5Authenticator - # - # pkg:gem/net-imap#lib/net/imap/sasl/cram_md5_authenticator.rb:17 - def initialize(user = T.unsafe(nil), pass = T.unsafe(nil), authcid: T.unsafe(nil), username: T.unsafe(nil), password: T.unsafe(nil), secret: T.unsafe(nil), warn_deprecation: T.unsafe(nil), **_arg7); end - - # @return [Boolean] - # - # pkg:gem/net-imap#lib/net/imap/sasl/cram_md5_authenticator.rb:40 - def done?; end - - # @return [Boolean] - # - # pkg:gem/net-imap#lib/net/imap/sasl/cram_md5_authenticator.rb:31 - def initial_response?; end - - # pkg:gem/net-imap#lib/net/imap/sasl/cram_md5_authenticator.rb:33 - def process(challenge); end - - private - - # pkg:gem/net-imap#lib/net/imap/sasl/cram_md5_authenticator.rb:44 - def hmac_md5(text, key); end -end - -# Net::IMAP authenticator for the +DIGEST-MD5+ SASL mechanism type, specified -# in RFC-2831[https://www.rfc-editor.org/rfc/rfc2831]. See Net::IMAP#authenticate. -# -# == Deprecated -# -# "+DIGEST-MD5+" has been deprecated by -# RFC-6331[https://www.rfc-editor.org/rfc/rfc6331] and should not be relied on for -# security. It is included for compatibility with existing servers. -# -# pkg:gem/net-imap#lib/net/imap/sasl/digest_md5_authenticator.rb:11 -class Net::IMAP::SASL::DigestMD5Authenticator - # :call-seq: - # new(username, password, authzid = nil, **options) -> authenticator - # new(username:, password:, authzid: nil, **options) -> authenticator - # new(authcid:, password:, authzid: nil, **options) -> authenticator - # - # Creates an Authenticator for the "+DIGEST-MD5+" SASL mechanism. - # - # Called by Net::IMAP#authenticate and similar methods on other clients. - # - # ==== Parameters - # - # * #authcid ― Authentication identity that is associated with #password. - # - # #username ― An alias for +authcid+. - # - # * #password ― A password or passphrase associated with this #authcid. - # - # * _optional_ #authzid ― Authorization identity to act as or on behalf of. - # - # When +authzid+ is not set, the server should derive the authorization - # identity from the authentication identity. - # - # * _optional_ #realm — A namespace for the #username, e.g. a domain. - # Defaults to the last realm in the server-provided realms list. - # * _optional_ #host — FQDN for requested service. - # Defaults to #realm. - # * _optional_ #service_name — The generic host name when the server is - # replicated. - # * _optional_ #service — the registered service protocol. E.g. "imap", - # "smtp", "ldap", "xmpp". - # For Net::IMAP, this defaults to "imap". - # - # * _optional_ +warn_deprecation+ — Set to +false+ to silence the warning. - # - # Any other keyword arguments are silently ignored. - # - # @return [DigestMD5Authenticator] a new instance of DigestMD5Authenticator - # - # pkg:gem/net-imap#lib/net/imap/sasl/digest_md5_authenticator.rb:154 - def initialize(user = T.unsafe(nil), pass = T.unsafe(nil), authz = T.unsafe(nil), username: T.unsafe(nil), password: T.unsafe(nil), authzid: T.unsafe(nil), authcid: T.unsafe(nil), secret: T.unsafe(nil), realm: T.unsafe(nil), service: T.unsafe(nil), host: T.unsafe(nil), service_name: T.unsafe(nil), warn_deprecation: T.unsafe(nil), **_arg13); end - - # Authentication identity: the identity that matches the #password. - # - # RFC-2831[https://www.rfc-editor.org/rfc/rfc2831] uses the term +username+. - # "Authentication identity" is the generic term used by - # RFC-4422[https://www.rfc-editor.org/rfc/rfc4422]. - # RFC-4616[https://www.rfc-editor.org/rfc/rfc4616] and many later RFCs abbreviate - # this to +authcid+. - # - # pkg:gem/net-imap#lib/net/imap/sasl/digest_md5_authenticator.rb:46 - def authcid; end - - # Authorization identity: an identity to act as or on behalf of. The identity - # form is application protocol specific. If not provided or left blank, the - # server derives an authorization identity from the authentication identity. - # The server is responsible for verifying the client's credentials and - # verifying that the identity it associates with the client's authentication - # identity is allowed to act as (or on behalf of) the authorization identity. - # - # For example, an administrator or superuser might take on another role: - # - # imap.authenticate "DIGEST-MD5", "root", ->{passwd}, authzid: "user" - # - # pkg:gem/net-imap#lib/net/imap/sasl/digest_md5_authenticator.rb:64 - def authzid; end - - # The charset sent by the server. "UTF-8" (case insensitive) is the only - # allowed value. +nil+ should be interpreted as ISO 8859-1. - # - # pkg:gem/net-imap#lib/net/imap/sasl/digest_md5_authenticator.rb:111 - def charset; end - - # From RFC-2831[https://www.rfc-editor.org/rfc/rfc2831]: - # >>> - # Indicates the principal name of the service with which the client wishes - # to connect, formed from the serv-type, host, and serv-name. For - # example, the FTP service on "ftp.example.com" would have a "digest-uri" - # value of "ftp/ftp.example.com"; the SMTP server from the example above - # would have a "digest-uri" value of "smtp/mail3.example.com/example.com". - # - # pkg:gem/net-imap#lib/net/imap/sasl/digest_md5_authenticator.rb:186 - def digest_uri; end - - # @return [Boolean] - # - # pkg:gem/net-imap#lib/net/imap/sasl/digest_md5_authenticator.rb:246 - def done?; end - - # Fully qualified canonical DNS host name for the requested service. - # - # Defaults to #realm. - # - # pkg:gem/net-imap#lib/net/imap/sasl/digest_md5_authenticator.rb:78 - def host; end - - # @return [Boolean] - # - # pkg:gem/net-imap#lib/net/imap/sasl/digest_md5_authenticator.rb:194 - def initial_response?; end - - # nonce sent by the server - # - # pkg:gem/net-imap#lib/net/imap/sasl/digest_md5_authenticator.rb:114 - def nonce; end - - # A password or passphrase that matches the #username. - # - # The +password+ will be used to create the response digest. - # - # pkg:gem/net-imap#lib/net/imap/sasl/digest_md5_authenticator.rb:51 - def password; end - - # Responds to server challenge in two stages. - # - # pkg:gem/net-imap#lib/net/imap/sasl/digest_md5_authenticator.rb:197 - def process(challenge); end - - # qop-options sent by the server - # - # pkg:gem/net-imap#lib/net/imap/sasl/digest_md5_authenticator.rb:117 - def qop; end - - # A namespace or collection of identities which contains +username+. - # - # Used by DIGEST-MD5, GSS-API, and NTLM. This is often a domain name that - # contains the name of the host performing the authentication. - # - # Defaults to the last realm in the server-provided list of - # realms. - # - # pkg:gem/net-imap#lib/net/imap/sasl/digest_md5_authenticator.rb:73 - def realm; end - - # The service protocol, a - # {registered GSSAPI service name}[https://www.iana.org/assignments/gssapi-service-names/gssapi-service-names.xhtml], - # e.g. "imap", "ldap", or "xmpp". - # - # For Net::IMAP, the default is "imap" and should not be overridden. This - # must be set appropriately to use authenticators in other protocols. - # - # If an IANA-registered name isn't available, GSS-API - # (RFC-2743[https://www.rfc-editor.org/rfc/rfc2743]) allows the generic name - # "host". - # - # pkg:gem/net-imap#lib/net/imap/sasl/digest_md5_authenticator.rb:90 - def service; end - - # The generic server name when the server is replicated. - # - # +service_name+ will be ignored when it is +nil+ or identical to +host+. - # - # From RFC-2831[https://www.rfc-editor.org/rfc/rfc2831]: - # >>> - # The service is considered to be replicated if the client's - # service-location process involves resolution using standard DNS lookup - # operations, and if these operations involve DNS records (such as SRV, or - # MX) which resolve one DNS name into a set of other DNS names. In this - # case, the initial name used by the client is the "serv-name", and the - # final name is the "host" component. - # - # pkg:gem/net-imap#lib/net/imap/sasl/digest_md5_authenticator.rb:104 - def service_name; end - - # Parameters sent by the server are stored in this hash. - # - # pkg:gem/net-imap#lib/net/imap/sasl/digest_md5_authenticator.rb:107 - def sparams; end - - # Authentication identity: the identity that matches the #password. - # - # RFC-2831[https://www.rfc-editor.org/rfc/rfc2831] uses the term +username+. - # "Authentication identity" is the generic term used by - # RFC-4422[https://www.rfc-editor.org/rfc/rfc4422]. - # RFC-4616[https://www.rfc-editor.org/rfc/rfc4616] and many later RFCs abbreviate - # this to +authcid+. - # - # pkg:gem/net-imap#lib/net/imap/sasl/digest_md5_authenticator.rb:45 - def username; end - - private - - # pkg:gem/net-imap#lib/net/imap/sasl/digest_md5_authenticator.rb:306 - def compute_a0(response); end - - # pkg:gem/net-imap#lib/net/imap/sasl/digest_md5_authenticator.rb:312 - def compute_a1(response); end - - # pkg:gem/net-imap#lib/net/imap/sasl/digest_md5_authenticator.rb:319 - def compute_a2(response); end - - # pkg:gem/net-imap#lib/net/imap/sasl/digest_md5_authenticator.rb:327 - def format_response(response); end - - # pkg:gem/net-imap#lib/net/imap/sasl/digest_md5_authenticator.rb:286 - def nc(nonce); end - - # pkg:gem/net-imap#lib/net/imap/sasl/digest_md5_authenticator.rb:259 - def parse_challenge(challenge); end - - # some responses need quoting - # - # pkg:gem/net-imap#lib/net/imap/sasl/digest_md5_authenticator.rb:332 - def qdval(k, v); end - - # pkg:gem/net-imap#lib/net/imap/sasl/digest_md5_authenticator.rb:294 - def response_value(response); end - - # pkg:gem/net-imap#lib/net/imap/sasl/digest_md5_authenticator.rb:280 - def split_quoted_list(value, challenge); end -end - -# pkg:gem/net-imap#lib/net/imap/sasl/digest_md5_authenticator.rb:254 -Net::IMAP::SASL::DigestMD5Authenticator::AUTH_PARAM = T.let(T.unsafe(nil), Regexp) - -# pkg:gem/net-imap#lib/net/imap/sasl/digest_md5_authenticator.rb:12 -Net::IMAP::SASL::DigestMD5Authenticator::DataFormatError = Net::IMAP::DataFormatError - -# pkg:gem/net-imap#lib/net/imap/sasl/digest_md5_authenticator.rb:253 -Net::IMAP::SASL::DigestMD5Authenticator::LIST_DELIM = T.let(T.unsafe(nil), Regexp) - -# less strict than RFC, more strict than '\s' -# -# pkg:gem/net-imap#lib/net/imap/sasl/digest_md5_authenticator.rb:250 -Net::IMAP::SASL::DigestMD5Authenticator::LWS = T.let(T.unsafe(nil), Regexp) - -# Directives which must not have multiples. The RFC states: -# >>> -# This directive may appear at most once; if multiple instances are present, -# the client should abort the authentication exchange. -# -# pkg:gem/net-imap#lib/net/imap/sasl/digest_md5_authenticator.rb:25 -Net::IMAP::SASL::DigestMD5Authenticator::NO_MULTIPLES = T.let(T.unsafe(nil), Array) - -# Directives which are composed of one or more comma delimited tokens -# -# pkg:gem/net-imap#lib/net/imap/sasl/digest_md5_authenticator.rb:34 -Net::IMAP::SASL::DigestMD5Authenticator::QUOTED_LISTABLE = T.let(T.unsafe(nil), Array) - -# pkg:gem/net-imap#lib/net/imap/sasl/digest_md5_authenticator.rb:252 -Net::IMAP::SASL::DigestMD5Authenticator::QUOTED_STR = T.let(T.unsafe(nil), Regexp) - -# Required directives which must occur exactly once. The RFC states: >>> -# This directive is required and MUST appear exactly once; if not present, -# or if multiple instances are present, the client should abort the -# authentication exchange. -# -# pkg:gem/net-imap#lib/net/imap/sasl/digest_md5_authenticator.rb:31 -Net::IMAP::SASL::DigestMD5Authenticator::REQUIRED = T.let(T.unsafe(nil), Array) - -# pkg:gem/net-imap#lib/net/imap/sasl/digest_md5_authenticator.rb:13 -Net::IMAP::SASL::DigestMD5Authenticator::ResponseParseError = Net::IMAP::ResponseParseError - -# pkg:gem/net-imap#lib/net/imap/sasl/digest_md5_authenticator.rb:18 -Net::IMAP::SASL::DigestMD5Authenticator::STAGE_DONE = T.let(T.unsafe(nil), Symbol) - -# pkg:gem/net-imap#lib/net/imap/sasl/digest_md5_authenticator.rb:16 -Net::IMAP::SASL::DigestMD5Authenticator::STAGE_ONE = T.let(T.unsafe(nil), Symbol) - -# pkg:gem/net-imap#lib/net/imap/sasl/digest_md5_authenticator.rb:17 -Net::IMAP::SASL::DigestMD5Authenticator::STAGE_TWO = T.let(T.unsafe(nil), Symbol) - -# pkg:gem/net-imap#lib/net/imap/sasl/digest_md5_authenticator.rb:251 -Net::IMAP::SASL::DigestMD5Authenticator::TOKEN = T.let(T.unsafe(nil), Regexp) - -# Exception class for any client error detected during the authentication -# exchange. -# -# When the _server_ reports an authentication failure, it will respond -# with a protocol specific error instead, e.g: +BAD+ or +NO+ in IMAP. -# -# When the client encounters any error, it *must* consider the -# authentication exchange to be unsuccessful and it might need to drop the -# connection. For example, if the server reports that the authentication -# exchange was successful or the protocol does not allow additional -# authentication attempts. -# -# pkg:gem/net-imap#lib/net/imap/sasl.rb:102 -class Net::IMAP::SASL::Error < ::StandardError; end - -# Authenticator for the "+EXTERNAL+" SASL mechanism, as specified by -# RFC-4422[https://www.rfc-editor.org/rfc/rfc4422]. See -# Net::IMAP#authenticate. -# -# The EXTERNAL mechanism requests that the server use client credentials -# established external to SASL, for example by TLS certificate or IPSec. -# -# pkg:gem/net-imap#lib/net/imap/sasl/external_authenticator.rb:13 -class Net::IMAP::SASL::ExternalAuthenticator - # :call-seq: - # new(authzid: nil, **) -> authenticator - # new(username: nil, **) -> authenticator - # new(username = nil, **) -> authenticator - # - # Creates an Authenticator for the "+EXTERNAL+" SASL mechanism, as - # specified in RFC-4422[https://www.rfc-editor.org/rfc/rfc4422]. To use - # this, see Net::IMAP#authenticate or your client's authentication - # method. - # - # ==== Parameters - # - # * _optional_ #authzid ― Authorization identity to act as or on behalf of. - # - # _optional_ #username ― An alias for #authzid. - # - # Note that, unlike some other authenticators, +username+ sets the - # _authorization_ identity and not the _authentication_ identity. The - # authentication identity is established for the client by the - # external credentials. - # - # Any other keyword parameters are quietly ignored. - # - # @return [ExternalAuthenticator] a new instance of ExternalAuthenticator - # - # pkg:gem/net-imap#lib/net/imap/sasl/external_authenticator.rb:52 - def initialize(user = T.unsafe(nil), authzid: T.unsafe(nil), username: T.unsafe(nil), **_arg3); end - - # Authorization identity: an identity to act as or on behalf of. The - # identity form is application protocol specific. If not provided or - # left blank, the server derives an authorization identity from the - # authentication identity. The server is responsible for verifying the - # client's credentials and verifying that the identity it associates - # with the client's authentication identity is allowed to act as (or on - # behalf of) the authorization identity. - # - # For example, an administrator or superuser might take on another role: - # - # imap.authenticate "PLAIN", "root", passwd, authzid: "user" - # - # pkg:gem/net-imap#lib/net/imap/sasl/external_authenticator.rb:27 - def authzid; end - - # Returns true when the initial client response was sent. - # - # The authentication should not succeed unless this returns true, but it - # does *not* indicate success. - # - # @return [Boolean] - # - # pkg:gem/net-imap#lib/net/imap/sasl/external_authenticator.rb:78 - def done?; end - - # :call-seq: - # initial_response? -> true - # - # +EXTERNAL+ can send an initial client response. - # - # @return [Boolean] - # - # pkg:gem/net-imap#lib/net/imap/sasl/external_authenticator.rb:65 - def initial_response?; end - - # Returns #authzid, or an empty string if there is no authzid. - # - # pkg:gem/net-imap#lib/net/imap/sasl/external_authenticator.rb:68 - def process(_); end - - # Authorization identity: an identity to act as or on behalf of. The - # identity form is application protocol specific. If not provided or - # left blank, the server derives an authorization identity from the - # authentication identity. The server is responsible for verifying the - # client's credentials and verifying that the identity it associates - # with the client's authentication identity is allowed to act as (or on - # behalf of) the authorization identity. - # - # For example, an administrator or superuser might take on another role: - # - # imap.authenticate "PLAIN", "root", passwd, authzid: "user" - # - # pkg:gem/net-imap#lib/net/imap/sasl/external_authenticator.rb:28 - def username; end -end - -# Originally defined for the GS2 mechanism family in -# RFC5801[https://www.rfc-editor.org/rfc/rfc5801], -# several different mechanisms start with a GS2 header: -# * +GS2-*+ --- RFC5801[https://www.rfc-editor.org/rfc/rfc5801] -# * +SCRAM-*+ --- RFC5802[https://www.rfc-editor.org/rfc/rfc5802] -# (ScramAuthenticator) -# * +SAML20+ --- RFC6595[https://www.rfc-editor.org/rfc/rfc6595] -# * +OPENID20+ --- RFC6616[https://www.rfc-editor.org/rfc/rfc6616] -# * +OAUTH10A+ --- RFC7628[https://www.rfc-editor.org/rfc/rfc7628] -# * +OAUTHBEARER+ --- RFC7628[https://www.rfc-editor.org/rfc/rfc7628] -# (OAuthBearerAuthenticator) -# -# Classes that include this module must implement +#authzid+. -# -# pkg:gem/net-imap#lib/net/imap/sasl/gs2_header.rb:20 -module Net::IMAP::SASL::GS2Header - # The {RFC5801 §4}[https://www.rfc-editor.org/rfc/rfc5801#section-4] - # +gs2-authzid+ header, when +#authzid+ is not empty. - # - # If +#authzid+ is empty or +nil+, an empty string is returned. - # - # pkg:gem/net-imap#lib/net/imap/sasl/gs2_header.rb:59 - def gs2_authzid; end - - # The {RFC5801 §4}[https://www.rfc-editor.org/rfc/rfc5801#section-4] - # +gs2-cb-flag+: - # - # "+n+":: The client doesn't support channel binding. - # "+y+":: The client does support channel binding - # but thinks the server does not. - # "+p+":: The client requires channel binding. - # The selected channel binding follows "+p=+". - # - # The default always returns "+n+". A mechanism that supports channel - # binding must override this method. - # - # pkg:gem/net-imap#lib/net/imap/sasl/gs2_header.rb:53 - def gs2_cb_flag; end - - # The {RFC5801 §4}[https://www.rfc-editor.org/rfc/rfc5801#section-4] - # +gs2-header+, which prefixes the #initial_client_response. - # - # >>> - # Note: the actual GS2 header includes an optional flag to - # indicate that the GSS mechanism is not "standard", but since all of - # the SASL mechanisms using GS2 are "standard", we don't include that - # flag. A class for a nonstandard GSSAPI mechanism should prefix with - # "+F,+". - # - # pkg:gem/net-imap#lib/net/imap/sasl/gs2_header.rb:37 - def gs2_header; end - - private - - # Encodes +str+ to match RFC5801_SASLNAME. - # - # pkg:gem/net-imap#lib/net/imap/sasl/gs2_header.rb:67 - def gs2_saslname_encode(str); end - - class << self - # Encodes +str+ to match RFC5801_SASLNAME. - # - # pkg:gem/net-imap#lib/net/imap/sasl/gs2_header.rb:67 - def gs2_saslname_encode(str); end - end -end - -# pkg:gem/net-imap#lib/net/imap/sasl/gs2_header.rb:21 -Net::IMAP::SASL::GS2Header::NO_NULL_CHARS = T.let(T.unsafe(nil), Regexp) - -# Matches {RFC5801 §4}[https://www.rfc-editor.org/rfc/rfc5801#section-4] -# +saslname+. The output from gs2_saslname_encode matches this Regexp. -# -# pkg:gem/net-imap#lib/net/imap/sasl/gs2_header.rb:26 -Net::IMAP::SASL::GS2Header::RFC5801_SASLNAME = T.let(T.unsafe(nil), Regexp) - -# Authenticator for the "+LOGIN+" SASL mechanism. See Net::IMAP#authenticate. -# -# +LOGIN+ authentication sends the password in cleartext. -# RFC3501[https://www.rfc-editor.org/rfc/rfc3501] encourages servers to disable -# cleartext authentication until after TLS has been negotiated. -# RFC8314[https://www.rfc-editor.org/rfc/rfc8314] recommends TLS version 1.2 or -# greater be used for all traffic, and deprecate cleartext access ASAP. +LOGIN+ -# can be secured by TLS encryption. -# -# == Deprecated -# -# The {SASL mechanisms -# registry}[https://www.iana.org/assignments/sasl-mechanisms/sasl-mechanisms.xhtml] -# marks "LOGIN" as obsoleted in favor of "PLAIN". It is included here for -# compatibility with existing servers. See -# {draft-murchison-sasl-login}[https://www.iana.org/go/draft-murchison-sasl-login] -# for both specification and deprecation. -# -# pkg:gem/net-imap#lib/net/imap/sasl/login_authenticator.rb:20 -class Net::IMAP::SASL::LoginAuthenticator - # @return [LoginAuthenticator] a new instance of LoginAuthenticator - # - # pkg:gem/net-imap#lib/net/imap/sasl/login_authenticator.rb:26 - def initialize(user = T.unsafe(nil), pass = T.unsafe(nil), authcid: T.unsafe(nil), username: T.unsafe(nil), password: T.unsafe(nil), secret: T.unsafe(nil), warn_deprecation: T.unsafe(nil), **_arg7); end - - # @return [Boolean] - # - # pkg:gem/net-imap#lib/net/imap/sasl/login_authenticator.rb:55 - def done?; end - - # @return [Boolean] - # - # pkg:gem/net-imap#lib/net/imap/sasl/login_authenticator.rb:40 - def initial_response?; end - - # pkg:gem/net-imap#lib/net/imap/sasl/login_authenticator.rb:42 - def process(data); end -end - -# pkg:gem/net-imap#lib/net/imap/sasl/login_authenticator.rb:23 -Net::IMAP::SASL::LoginAuthenticator::STATE_DONE = T.let(T.unsafe(nil), Symbol) - -# pkg:gem/net-imap#lib/net/imap/sasl/login_authenticator.rb:22 -Net::IMAP::SASL::LoginAuthenticator::STATE_PASSWORD = T.let(T.unsafe(nil), Symbol) - -# pkg:gem/net-imap#lib/net/imap/sasl/login_authenticator.rb:21 -Net::IMAP::SASL::LoginAuthenticator::STATE_USER = T.let(T.unsafe(nil), Symbol) - -# Abstract base class for the SASL mechanisms defined in -# RFC7628[https://www.rfc-editor.org/rfc/rfc7628]: -# * OAUTHBEARER[rdoc-ref:OAuthBearerAuthenticator] -# (OAuthBearerAuthenticator) -# * OAUTH10A -# -# pkg:gem/net-imap#lib/net/imap/sasl/oauthbearer_authenticator.rb:14 -class Net::IMAP::SASL::OAuthAuthenticator - include ::Net::IMAP::SASL::GS2Header - - # Creates an RFC7628[https://www.rfc-editor.org/rfc/rfc7628] OAuth - # authenticator. - # - # ==== Parameters - # - # See child classes for required parameter(s). The following parameters - # are all optional, but it is worth noting that application protocols - # are allowed to require #authzid (or other parameters, such as - # #host or #port) as are specific server implementations. - # - # * _optional_ #authzid ― Authorization identity to act as or on behalf of. - # - # _optional_ #username — An alias for #authzid. - # - # Note that, unlike some other authenticators, +username+ sets the - # _authorization_ identity and not the _authentication_ identity. The - # authentication identity is established for the client by the OAuth - # token. - # - # * _optional_ #host — Hostname to which the client connected. - # * _optional_ #port — Service port to which the client connected. - # * _optional_ #mthd — HTTP method - # * _optional_ #path — HTTP path data - # * _optional_ #post — HTTP post data - # * _optional_ #qs — HTTP query string - # - # _optional_ #query — An alias for #qs - # - # Any other keyword parameters are quietly ignored. - # - # @return [OAuthAuthenticator] a new instance of OAuthAuthenticator - # - # pkg:gem/net-imap#lib/net/imap/sasl/oauthbearer_authenticator.rb:84 - def initialize(authzid: T.unsafe(nil), host: T.unsafe(nil), port: T.unsafe(nil), username: T.unsafe(nil), query: T.unsafe(nil), mthd: T.unsafe(nil), path: T.unsafe(nil), post: T.unsafe(nil), qs: T.unsafe(nil), **_arg9); end - - # Value of the HTTP Authorization header - # - # Implemented by subclasses. - # - # pkg:gem/net-imap#lib/net/imap/sasl/oauthbearer_authenticator.rb:124 - def authorization; end - - # Authorization identity: an identity to act as or on behalf of. The - # identity form is application protocol specific. If not provided or - # left blank, the server derives an authorization identity from the - # authentication identity. The server is responsible for verifying the - # client's credentials and verifying that the identity it associates - # with the client's authentication identity is allowed to act as (or on - # behalf of) the authorization identity. - # - # For example, an administrator or superuser might take on another role: - # - # imap.authenticate "PLAIN", "root", passwd, authzid: "user" - # - # pkg:gem/net-imap#lib/net/imap/sasl/oauthbearer_authenticator.rb:29 - def authzid; end - - # Returns true when the initial client response was sent. - # - # The authentication should not succeed unless this returns true, but it - # does *not* indicate success. - # - # @return [Boolean] - # - # pkg:gem/net-imap#lib/net/imap/sasl/oauthbearer_authenticator.rb:119 - def done?; end - - # Hostname to which the client connected. (optional) - # - # pkg:gem/net-imap#lib/net/imap/sasl/oauthbearer_authenticator.rb:33 - def host; end - - # The {RFC7628 §3.1}[https://www.rfc-editor.org/rfc/rfc7628#section-3.1] - # formatted response. - # - # pkg:gem/net-imap#lib/net/imap/sasl/oauthbearer_authenticator.rb:99 - def initial_client_response; end - - # Stores the most recent server "challenge". When authentication fails, - # this may hold information about the failure reason, as JSON. - # - # pkg:gem/net-imap#lib/net/imap/sasl/oauthbearer_authenticator.rb:53 - def last_server_response; end - - # HTTP method. (optional) - # - # pkg:gem/net-imap#lib/net/imap/sasl/oauthbearer_authenticator.rb:39 - def mthd; end - - # HTTP path data. (optional) - # - # pkg:gem/net-imap#lib/net/imap/sasl/oauthbearer_authenticator.rb:42 - def path; end - - # Service port to which the client connected. (optional) - # - # pkg:gem/net-imap#lib/net/imap/sasl/oauthbearer_authenticator.rb:36 - def port; end - - # HTTP post data. (optional) - # - # pkg:gem/net-imap#lib/net/imap/sasl/oauthbearer_authenticator.rb:45 - def post; end - - # Returns initial_client_response the first time, then "^A". - # - # pkg:gem/net-imap#lib/net/imap/sasl/oauthbearer_authenticator.rb:108 - def process(data); end - - # The query string. (optional) - # - # pkg:gem/net-imap#lib/net/imap/sasl/oauthbearer_authenticator.rb:48 - def qs; end - - # The query string. (optional) - # - # pkg:gem/net-imap#lib/net/imap/sasl/oauthbearer_authenticator.rb:49 - def query; end - - # Authorization identity: an identity to act as or on behalf of. The - # identity form is application protocol specific. If not provided or - # left blank, the server derives an authorization identity from the - # authentication identity. The server is responsible for verifying the - # client's credentials and verifying that the identity it associates - # with the client's authentication identity is allowed to act as (or on - # behalf of) the authorization identity. - # - # For example, an administrator or superuser might take on another role: - # - # imap.authenticate "PLAIN", "root", passwd, authzid: "user" - # - # pkg:gem/net-imap#lib/net/imap/sasl/oauthbearer_authenticator.rb:30 - def username; end -end - -# Authenticator for the "+OAUTHBEARER+" SASL mechanism, specified in -# RFC7628[https://www.rfc-editor.org/rfc/rfc7628]. Authenticates using -# OAuth 2.0 bearer tokens, as described in -# RFC6750[https://www.rfc-editor.org/rfc/rfc6750]. Use via -# Net::IMAP#authenticate. -# -# RFC6750[https://www.rfc-editor.org/rfc/rfc6750] requires Transport Layer -# Security (TLS) to secure the protocol interaction between the client and -# the resource server. TLS _MUST_ be used for +OAUTHBEARER+ to protect -# the bearer token. -# -# pkg:gem/net-imap#lib/net/imap/sasl/oauthbearer_authenticator.rb:138 -class Net::IMAP::SASL::OAuthBearerAuthenticator < ::Net::IMAP::SASL::OAuthAuthenticator - # :call-seq: - # new(oauth2_token, **options) -> authenticator - # new(authzid, oauth2_token, **options) -> authenticator - # new(oauth2_token:, **options) -> authenticator - # - # Creates an Authenticator for the "+OAUTHBEARER+" SASL mechanism. - # - # Called by Net::IMAP#authenticate and similar methods on other clients. - # - # ==== Parameters - # - # * #oauth2_token — An OAuth2 bearer token - # - # All other keyword parameters are passed to - # {super}[rdoc-ref:OAuthAuthenticator::new] (see OAuthAuthenticator). - # The most common ones are: - # - # * _optional_ #authzid ― Authorization identity to act as or on behalf of. - # - # _optional_ #username — An alias for #authzid. - # - # Note that, unlike some other authenticators, +username+ sets the - # _authorization_ identity and not the _authentication_ identity. The - # authentication identity is established for the client by - # #oauth2_token. - # - # * _optional_ #host — Hostname to which the client connected. - # * _optional_ #port — Service port to which the client connected. - # - # Although only oauth2_token is required by this mechanism, it is worth - # noting that application protocols are allowed to - # require #authzid (or other parameters, such as #host - # _or_ #port) as are specific server implementations. - # - # @return [OAuthBearerAuthenticator] a new instance of OAuthBearerAuthenticator - # - # pkg:gem/net-imap#lib/net/imap/sasl/oauthbearer_authenticator.rb:177 - def initialize(arg1 = T.unsafe(nil), arg2 = T.unsafe(nil), oauth2_token: T.unsafe(nil), secret: T.unsafe(nil), **args, &blk); end - - # Value of the HTTP Authorization header - # - # pkg:gem/net-imap#lib/net/imap/sasl/oauthbearer_authenticator.rb:193 - def authorization; end - - # :call-seq: - # initial_response? -> true - # - # +OAUTHBEARER+ sends an initial client response. - # - # @return [Boolean] - # - # pkg:gem/net-imap#lib/net/imap/sasl/oauthbearer_authenticator.rb:190 - def initial_response?; end - - # An OAuth 2.0 bearer token. See {RFC-6750}[https://www.rfc-editor.org/rfc/rfc6750] - # - # pkg:gem/net-imap#lib/net/imap/sasl/oauthbearer_authenticator.rb:141 - def oauth2_token; end - - # An OAuth 2.0 bearer token. See {RFC-6750}[https://www.rfc-editor.org/rfc/rfc6750] - # - # pkg:gem/net-imap#lib/net/imap/sasl/oauthbearer_authenticator.rb:142 - def secret; end -end - -# Authenticator for the "+PLAIN+" SASL mechanism, specified in -# RFC-4616[https://www.rfc-editor.org/rfc/rfc4616]. See Net::IMAP#authenticate. -# -# +PLAIN+ authentication sends the password in cleartext. -# RFC-3501[https://www.rfc-editor.org/rfc/rfc3501] encourages servers to disable -# cleartext authentication until after TLS has been negotiated. -# RFC-8314[https://www.rfc-editor.org/rfc/rfc8314] recommends TLS version 1.2 or -# greater be used for all traffic, and deprecate cleartext access ASAP. +PLAIN+ -# can be secured by TLS encryption. -# -# pkg:gem/net-imap#lib/net/imap/sasl/plain_authenticator.rb:12 -class Net::IMAP::SASL::PlainAuthenticator - # :call-seq: - # new(username, password, authzid: nil, **) -> authenticator - # new(username:, password:, authzid: nil, **) -> authenticator - # new(authcid:, password:, authzid: nil, **) -> authenticator - # - # Creates an Authenticator for the "+PLAIN+" SASL mechanism. - # - # Called by Net::IMAP#authenticate and similar methods on other clients. - # - # ==== Parameters - # - # * #authcid ― Authentication identity that is associated with #password. - # - # #username ― An alias for #authcid. - # - # * #password ― A password or passphrase associated with the #authcid. - # - # * _optional_ #authzid ― Authorization identity to act as or on behalf of. - # - # When +authzid+ is not set, the server should derive the authorization - # identity from the authentication identity. - # - # Any other keyword parameters are quietly ignored. - # - # @raise [ArgumentError] - # @return [PlainAuthenticator] a new instance of PlainAuthenticator - # - # pkg:gem/net-imap#lib/net/imap/sasl/plain_authenticator.rb:67 - def initialize(user = T.unsafe(nil), pass = T.unsafe(nil), authcid: T.unsafe(nil), secret: T.unsafe(nil), username: T.unsafe(nil), password: T.unsafe(nil), authzid: T.unsafe(nil), **_arg7); end - - # Authentication identity: the identity that matches the #password. - # - # RFC-2831[https://www.rfc-editor.org/rfc/rfc2831] uses the term +username+. - # "Authentication identity" is the generic term used by - # RFC-4422[https://www.rfc-editor.org/rfc/rfc4422]. - # RFC-4616[https://www.rfc-editor.org/rfc/rfc4616] and many later RFCs - # abbreviate this to +authcid+. - # - # pkg:gem/net-imap#lib/net/imap/sasl/plain_authenticator.rb:25 - def authcid; end - - # Authorization identity: an identity to act as or on behalf of. The identity - # form is application protocol specific. If not provided or left blank, the - # server derives an authorization identity from the authentication identity. - # The server is responsible for verifying the client's credentials and - # verifying that the identity it associates with the client's authentication - # identity is allowed to act as (or on behalf of) the authorization identity. - # - # For example, an administrator or superuser might take on another role: - # - # imap.authenticate "PLAIN", "root", passwd, authzid: "user" - # - # pkg:gem/net-imap#lib/net/imap/sasl/plain_authenticator.rb:42 - def authzid; end - - # Returns true when the initial client response was sent. - # - # The authentication should not succeed unless this returns true, but it - # does *not* indicate success. - # - # @return [Boolean] - # - # pkg:gem/net-imap#lib/net/imap/sasl/plain_authenticator.rb:99 - def done?; end - - # :call-seq: - # initial_response? -> true - # - # +PLAIN+ can send an initial client response. - # - # @return [Boolean] - # - # pkg:gem/net-imap#lib/net/imap/sasl/plain_authenticator.rb:86 - def initial_response?; end - - # A password or passphrase that matches the #username. - # - # pkg:gem/net-imap#lib/net/imap/sasl/plain_authenticator.rb:28 - def password; end - - # Responds with the client's credentials. - # - # pkg:gem/net-imap#lib/net/imap/sasl/plain_authenticator.rb:89 - def process(data); end - - # A password or passphrase that matches the #username. - # - # pkg:gem/net-imap#lib/net/imap/sasl/plain_authenticator.rb:29 - def secret; end - - # Authentication identity: the identity that matches the #password. - # - # RFC-2831[https://www.rfc-editor.org/rfc/rfc2831] uses the term +username+. - # "Authentication identity" is the generic term used by - # RFC-4422[https://www.rfc-editor.org/rfc/rfc4422]. - # RFC-4616[https://www.rfc-editor.org/rfc/rfc4616] and many later RFCs - # abbreviate this to +authcid+. - # - # pkg:gem/net-imap#lib/net/imap/sasl/plain_authenticator.rb:24 - def username; end -end - -# pkg:gem/net-imap#lib/net/imap/sasl/plain_authenticator.rb:14 -Net::IMAP::SASL::PlainAuthenticator::NULL = T.let(T.unsafe(nil), String) - -# pkg:gem/net-imap#lib/net/imap/sasl/stringprep.rb:9 -Net::IMAP::SASL::ProhibitedCodepoint = Net::IMAP::StringPrep::ProhibitedCodepoint - -# SASL::ProtocolAdapters modules are meant to be used as mixins for -# SASL::ClientAdapter and its subclasses. Where the client adapter must -# be customized for each client library, the protocol adapter mixin -# handles \SASL requirements that are part of the protocol specification, -# but not specific to any particular client library. In particular, see -# {RFC4422 §4}[https://www.rfc-editor.org/rfc/rfc4422.html#section-4] -# -# === Interface -# -# >>> -# NOTE: This API is experimental, and may change. -# -# - {#command_name}[rdoc-ref:Generic#command_name] -- The name of the -# command used to to initiate an authentication exchange. -# - {#service}[rdoc-ref:Generic#service] -- The GSSAPI service name. -# - {#encode_ir}[rdoc-ref:Generic#encode_ir]--Encodes an initial response. -# - {#decode}[rdoc-ref:Generic#decode] -- Decodes a server challenge. -# - {#encode}[rdoc-ref:Generic#encode] -- Encodes a client response. -# - {#cancel_response}[rdoc-ref:Generic#cancel_response] -- The encoded -# client response used to cancel an authentication exchange. -# -# Other protocol requirements of the \SASL authentication exchange are -# handled by SASL::ClientAdapter. -# -# === Included protocol adapters -# -# - Generic -- a basic implementation of all of the methods listed above. -# - IMAP -- An adapter for the IMAP4 protocol. -# - SMTP -- An adapter for the \SMTP protocol with the +AUTH+ capability. -# - POP -- An adapter for the POP3 protocol with the +SASL+ capability. -# -# pkg:gem/net-imap#lib/net/imap/sasl/protocol_adapters.rb:37 -module Net::IMAP::SASL::ProtocolAdapters; end - -# See SASL::ProtocolAdapters@Interface. -# -# pkg:gem/net-imap#lib/net/imap/sasl/protocol_adapters.rb:39 -module Net::IMAP::SASL::ProtocolAdapters::Generic - # Returns the message used by the client to abort an authentication - # exchange. - # - # The generic implementation returns "*". - # - # pkg:gem/net-imap#lib/net/imap/sasl/protocol_adapters.rb:73 - def cancel_response; end - - # The name of the protocol command used to initiate a \SASL - # authentication exchange. - # - # The generic implementation returns "AUTHENTICATE". - # - # pkg:gem/net-imap#lib/net/imap/sasl/protocol_adapters.rb:44 - def command_name; end - - # Decodes a server challenge string. - # - # The generic implementation returns the Base64 decoding of +string+. - # - # pkg:gem/net-imap#lib/net/imap/sasl/protocol_adapters.rb:67 - def decode(string); end - - # Encodes a client response string. - # - # The generic implementation returns the Base64 encoding of +string+. - # - # pkg:gem/net-imap#lib/net/imap/sasl/protocol_adapters.rb:62 - def encode(string); end - - # Encodes an initial response string. - # - # The generic implementation returns the result of #encode, or returns - # "=" when +string+ is empty. - # - # pkg:gem/net-imap#lib/net/imap/sasl/protocol_adapters.rb:57 - def encode_ir(string); end - - # A service name from the {GSSAPI/Kerberos/SASL Service Names - # registry}[https://www.iana.org/assignments/gssapi-service-names/gssapi-service-names.xhtml]. - # - # The generic implementation returns "host", which is the - # generic GSSAPI host-based service name. - # - # pkg:gem/net-imap#lib/net/imap/sasl/protocol_adapters.rb:51 - def service; end -end - -# See RFC-3501 (IMAP4rev1), RFC-4959 (SASL-IR capability), -# and RFC-9051 (IMAP4rev2). -# -# pkg:gem/net-imap#lib/net/imap/sasl/protocol_adapters.rb:78 -module Net::IMAP::SASL::ProtocolAdapters::IMAP - include ::Net::IMAP::SASL::ProtocolAdapters::Generic - - # pkg:gem/net-imap#lib/net/imap/sasl/protocol_adapters.rb:80 - def service; end -end - -# See RFC-5034 (SASL capability). -# -# pkg:gem/net-imap#lib/net/imap/sasl/protocol_adapters.rb:91 -module Net::IMAP::SASL::ProtocolAdapters::POP - include ::Net::IMAP::SASL::ProtocolAdapters::Generic - - # pkg:gem/net-imap#lib/net/imap/sasl/protocol_adapters.rb:93 - def command_name; end - - # pkg:gem/net-imap#lib/net/imap/sasl/protocol_adapters.rb:94 - def service; end -end - -# See RFC-4954 (AUTH capability). -# -# pkg:gem/net-imap#lib/net/imap/sasl/protocol_adapters.rb:84 -module Net::IMAP::SASL::ProtocolAdapters::SMTP - include ::Net::IMAP::SASL::ProtocolAdapters::Generic - - # pkg:gem/net-imap#lib/net/imap/sasl/protocol_adapters.rb:86 - def command_name; end - - # pkg:gem/net-imap#lib/net/imap/sasl/protocol_adapters.rb:87 - def service; end -end - -# Alias for Net::IMAP::StringPrep::SASLprep. -# -# pkg:gem/net-imap#lib/net/imap/sasl/stringprep.rb:6 -Net::IMAP::SASL::SASLprep = Net::IMAP::StringPrep::SASLprep - -# For method descriptions, -# see {RFC5802 §2.2}[https://www.rfc-editor.org/rfc/rfc5802#section-2.2] -# and {RFC5802 §3}[https://www.rfc-editor.org/rfc/rfc5802#section-3]. -# -# pkg:gem/net-imap#lib/net/imap/sasl/scram_algorithm.rb:10 -module Net::IMAP::SASL::ScramAlgorithm - # pkg:gem/net-imap#lib/net/imap/sasl/scram_algorithm.rb:24 - def H(str); end - - # pkg:gem/net-imap#lib/net/imap/sasl/scram_algorithm.rb:26 - def HMAC(key, data); end - - # pkg:gem/net-imap#lib/net/imap/sasl/scram_algorithm.rb:13 - def Hi(str, salt, iterations); end - - # pkg:gem/net-imap#lib/net/imap/sasl/scram_algorithm.rb:11 - def Normalize(str); end - - # pkg:gem/net-imap#lib/net/imap/sasl/scram_algorithm.rb:28 - def XOR(str1, str2); end - - # pkg:gem/net-imap#lib/net/imap/sasl/scram_algorithm.rb:35 - def auth_message; end - - # pkg:gem/net-imap#lib/net/imap/sasl/scram_algorithm.rb:48 - def client_key; end - - # pkg:gem/net-imap#lib/net/imap/sasl/scram_algorithm.rb:53 - def client_proof; end - - # pkg:gem/net-imap#lib/net/imap/sasl/scram_algorithm.rb:51 - def client_signature; end - - # pkg:gem/net-imap#lib/net/imap/sasl/scram_algorithm.rb:44 - def salted_password; end - - # pkg:gem/net-imap#lib/net/imap/sasl/scram_algorithm.rb:49 - def server_key; end - - # pkg:gem/net-imap#lib/net/imap/sasl/scram_algorithm.rb:52 - def server_signature; end - - # pkg:gem/net-imap#lib/net/imap/sasl/scram_algorithm.rb:50 - def stored_key; end -end - -# Abstract base class for the "+SCRAM-*+" family of SASL mechanisms, -# defined in RFC5802[https://www.rfc-editor.org/rfc/rfc5802]. Use via -# Net::IMAP#authenticate. -# -# Directly supported: -# * +SCRAM-SHA-1+ --- ScramSHA1Authenticator -# * +SCRAM-SHA-256+ --- ScramSHA256Authenticator -# -# New +SCRAM-*+ mechanisms can easily be added for any hash algorithm -# supported by -# OpenSSL::Digest[https://ruby.github.io/openssl/OpenSSL/Digest.html]. -# Subclasses need only set an appropriate +DIGEST_NAME+ constant. -# -# === SCRAM algorithm -# -# See the documentation and method definitions on ScramAlgorithm for an -# overview of the algorithm. The different mechanisms differ only by -# which hash function that is used (or by support for channel binding with -# +-PLUS+). -# -# See also the methods on GS2Header. -# -# ==== Server messages -# -# As server messages are received, they are validated and loaded into -# the various attributes, e.g: #snonce, #salt, #iterations, #verifier, -# #server_error, etc. -# -# Unlike many other SASL mechanisms, the +SCRAM-*+ family supports mutual -# authentication and can return server error data in the server messages. -# If #process raises an Error for the server-final-message, then -# server_error may contain error details. -# -# === TLS Channel binding -# -# The SCRAM-*-PLUS mechanisms and channel binding are not -# supported yet. -# -# === Caching SCRAM secrets -# -# Caching of salted_password, client_key, stored_key, and server_key -# is not supported yet. -# -# pkg:gem/net-imap#lib/net/imap/sasl/scram_authenticator.rb:56 -class Net::IMAP::SASL::ScramAuthenticator - include ::Net::IMAP::SASL::GS2Header - include ::Net::IMAP::SASL::ScramAlgorithm - - # :call-seq: - # new(username, password, **options) -> auth_ctx - # new(username:, password:, **options) -> auth_ctx - # new(authcid:, password:, **options) -> auth_ctx - # - # Creates an authenticator for one of the "+SCRAM-*+" SASL mechanisms. - # Each subclass defines #digest to match a specific mechanism. - # - # Called by Net::IMAP#authenticate and similar methods on other clients. - # - # === Parameters - # - # * #authcid ― Identity whose #password is used. - # - # #username - An alias for #authcid. - # * #password ― Password or passphrase associated with this #username. - # * _optional_ #authzid ― Alternate identity to act as or on behalf of. - # * _optional_ #min_iterations - Overrides the default value (4096). - # - # Any other keyword parameters are quietly ignored. - # - # @return [ScramAuthenticator] a new instance of ScramAuthenticator - # - # pkg:gem/net-imap#lib/net/imap/sasl/scram_authenticator.rb:80 - def initialize(username_arg = T.unsafe(nil), password_arg = T.unsafe(nil), authcid: T.unsafe(nil), username: T.unsafe(nil), authzid: T.unsafe(nil), password: T.unsafe(nil), secret: T.unsafe(nil), min_iterations: T.unsafe(nil), cnonce: T.unsafe(nil), **options); end - - # Authentication identity: the identity that matches the #password. - # - # RFC-2831[https://www.rfc-editor.org/rfc/rfc2831] uses the term - # +username+. "Authentication identity" is the generic term used by - # RFC-4422[https://www.rfc-editor.org/rfc/rfc4422]. - # RFC-4616[https://www.rfc-editor.org/rfc/rfc4616] and many later RFCs - # abbreviate this to +authcid+. - # - # pkg:gem/net-imap#lib/net/imap/sasl/scram_authenticator.rb:108 - def authcid; end - - # Authorization identity: an identity to act as or on behalf of. The - # identity form is application protocol specific. If not provided or - # left blank, the server derives an authorization identity from the - # authentication identity. For example, an administrator or superuser - # might take on another role: - # - # imap.authenticate "SCRAM-SHA-256", "root", passwd, authzid: "user" - # - # The server is responsible for verifying the client's credentials and - # verifying that the identity it associates with the client's - # authentication identity is allowed to act as (or on behalf of) the - # authorization identity. - # - # pkg:gem/net-imap#lib/net/imap/sasl/scram_authenticator.rb:126 - def authzid; end - - # See {RFC5802 §7}[https://www.rfc-editor.org/rfc/rfc5802#section-7] - # +cbind-input+. - # - # >>> - # *TODO:* implement channel binding, appending +cbind-data+ here. - # - # pkg:gem/net-imap#lib/net/imap/sasl/scram_authenticator.rb:251 - def cbind_input; end - - # The client nonce, generated by SecureRandom - # - # pkg:gem/net-imap#lib/net/imap/sasl/scram_authenticator.rb:133 - def cnonce; end - - # Returns a new OpenSSL::Digest object, set to the appropriate hash - # function for the chosen mechanism. - # - # The class's +DIGEST_NAME+ constant must be set to the name of an - # algorithm supported by OpenSSL::Digest. - # - # pkg:gem/net-imap#lib/net/imap/sasl/scram_authenticator.rb:155 - def digest; end - - # Is the authentication exchange complete? - # - # If false, another server continuation is required. - # - # @return [Boolean] - # - # pkg:gem/net-imap#lib/net/imap/sasl/scram_authenticator.rb:185 - def done?; end - - # See {RFC5802 §7}[https://www.rfc-editor.org/rfc/rfc5802#section-7] - # +client-first-message+. - # - # pkg:gem/net-imap#lib/net/imap/sasl/scram_authenticator.rb:159 - def initial_client_response; end - - # The iteration count for the selected hash function and user - # - # pkg:gem/net-imap#lib/net/imap/sasl/scram_authenticator.rb:142 - def iterations; end - - # The minimal allowed iteration count. Lower #iterations will raise an - # Error. - # - # pkg:gem/net-imap#lib/net/imap/sasl/scram_authenticator.rb:130 - def min_iterations; end - - # A password or passphrase that matches the #username. - # - # pkg:gem/net-imap#lib/net/imap/sasl/scram_authenticator.rb:111 - def password; end - - # responds to the server's challenges - # - # pkg:gem/net-imap#lib/net/imap/sasl/scram_authenticator.rb:164 - def process(challenge); end - - # The salt used by the server for this user - # - # pkg:gem/net-imap#lib/net/imap/sasl/scram_authenticator.rb:139 - def salt; end - - # A password or passphrase that matches the #username. - # - # pkg:gem/net-imap#lib/net/imap/sasl/scram_authenticator.rb:112 - def secret; end - - # An error reported by the server during the \SASL exchange. - # - # Does not include errors reported by the protocol, e.g. - # Net::IMAP::NoResponseError. - # - # pkg:gem/net-imap#lib/net/imap/sasl/scram_authenticator.rb:148 - def server_error; end - - # The server nonce, which must start with #cnonce - # - # pkg:gem/net-imap#lib/net/imap/sasl/scram_authenticator.rb:136 - def snonce; end - - # Authentication identity: the identity that matches the #password. - # - # RFC-2831[https://www.rfc-editor.org/rfc/rfc2831] uses the term - # +username+. "Authentication identity" is the generic term used by - # RFC-4422[https://www.rfc-editor.org/rfc/rfc4422]. - # RFC-4616[https://www.rfc-editor.org/rfc/rfc4616] and many later RFCs - # abbreviate this to +authcid+. - # - # pkg:gem/net-imap#lib/net/imap/sasl/scram_authenticator.rb:107 - def username; end - - private - - # See {RFC5802 §7}[https://www.rfc-editor.org/rfc/rfc5802#section-7] - # +client-final-message-without-proof+. - # - # pkg:gem/net-imap#lib/net/imap/sasl/scram_authenticator.rb:240 - def client_final_message_without_proof; end - - # See {RFC5802 §7}[https://www.rfc-editor.org/rfc/rfc5802#section-7] - # +client-first-message-bare+. - # - # pkg:gem/net-imap#lib/net/imap/sasl/scram_authenticator.rb:225 - def client_first_message_bare; end - - # See {RFC5802 §7}[https://www.rfc-editor.org/rfc/rfc5802#section-7] - # +client-final-message+. - # - # pkg:gem/net-imap#lib/net/imap/sasl/scram_authenticator.rb:233 - def final_message_with_proof; end - - # pkg:gem/net-imap#lib/net/imap/sasl/scram_authenticator.rb:192 - def format_message(hash); end - - # RFC5802 specifies "that the order of attributes in client or server - # messages is fixed, with the exception of extension attributes", but - # this parses it simply as a hash, without respect to order. Note that - # repeated keys (violating the spec) will use the last value. - # - # pkg:gem/net-imap#lib/net/imap/sasl/scram_authenticator.rb:257 - def parse_challenge(challenge); end - - # pkg:gem/net-imap#lib/net/imap/sasl/scram_authenticator.rb:211 - def recv_server_final_message(server_final_message); end - - # pkg:gem/net-imap#lib/net/imap/sasl/scram_authenticator.rb:194 - def recv_server_first_message(server_first_message); end - - # Need to store this for auth_message - # - # pkg:gem/net-imap#lib/net/imap/sasl/scram_authenticator.rb:190 - def server_first_message; end -end - -# Authenticator for the "+SCRAM-SHA-1+" SASL mechanism, defined in -# RFC5802[https://www.rfc-editor.org/rfc/rfc5802]. -# -# Uses the "SHA-1" digest algorithm from OpenSSL::Digest. -# -# See ScramAuthenticator. -# -# pkg:gem/net-imap#lib/net/imap/sasl/scram_authenticator.rb:271 -class Net::IMAP::SASL::ScramSHA1Authenticator < ::Net::IMAP::SASL::ScramAuthenticator; end - -# pkg:gem/net-imap#lib/net/imap/sasl/scram_authenticator.rb:272 -Net::IMAP::SASL::ScramSHA1Authenticator::DIGEST_NAME = T.let(T.unsafe(nil), String) - -# Authenticator for the "+SCRAM-SHA-256+" SASL mechanism, defined in -# RFC7677[https://www.rfc-editor.org/rfc/rfc7677]. -# -# Uses the "SHA-256" digest algorithm from OpenSSL::Digest. -# -# See ScramAuthenticator. -# -# pkg:gem/net-imap#lib/net/imap/sasl/scram_authenticator.rb:281 -class Net::IMAP::SASL::ScramSHA256Authenticator < ::Net::IMAP::SASL::ScramAuthenticator; end - -# pkg:gem/net-imap#lib/net/imap/sasl/scram_authenticator.rb:282 -Net::IMAP::SASL::ScramSHA256Authenticator::DIGEST_NAME = T.let(T.unsafe(nil), String) - -# pkg:gem/net-imap#lib/net/imap/sasl/stringprep.rb:7 -Net::IMAP::SASL::StringPrep = Net::IMAP::StringPrep - -# pkg:gem/net-imap#lib/net/imap/sasl/stringprep.rb:10 -Net::IMAP::SASL::StringPrepError = Net::IMAP::StringPrep::StringPrepError - -# Authenticator for the "+XOAUTH2+" SASL mechanism. This mechanism was -# originally created for GMail and widely adopted by hosted email providers. -# +XOAUTH2+ has been documented by -# Google[https://developers.google.com/gmail/imap/xoauth2-protocol] and -# Microsoft[https://learn.microsoft.com/en-us/exchange/client-developer/legacy-protocols/how-to-authenticate-an-imap-pop-smtp-application-by-using-oauth]. -# -# This mechanism requires an OAuth2 access token which has been authorized -# with the appropriate OAuth2 scopes to access the user's services. Most of -# these scopes are not standardized---consult each service provider's -# documentation for their scopes. -# -# Although this mechanism was never standardized and has been obsoleted by -# "+OAUTHBEARER+", it is still very widely supported. -# -# See Net::IMAP::SASL::OAuthBearerAuthenticator. -# -# pkg:gem/net-imap#lib/net/imap/sasl/xoauth2_authenticator.rb:18 -class Net::IMAP::SASL::XOAuth2Authenticator - # :call-seq: - # new(username, oauth2_token, **) -> authenticator - # new(username:, oauth2_token:, **) -> authenticator - # new(authzid:, oauth2_token:, **) -> authenticator - # - # Creates an Authenticator for the "+XOAUTH2+" SASL mechanism, as specified by - # Google[https://developers.google.com/gmail/imap/xoauth2-protocol], - # Microsoft[https://learn.microsoft.com/en-us/exchange/client-developer/legacy-protocols/how-to-authenticate-an-imap-pop-smtp-application-by-using-oauth] - # and Yahoo[https://senders.yahooinc.com/developer/documentation]. - # - # === Properties - # - # * #username --- the username for the account being accessed. - # - # #authzid --- an alias for #username. - # - # Note that, unlike some other authenticators, +username+ sets the - # _authorization_ identity and not the _authentication_ identity. The - # authenticated identity is established for the client with the OAuth token. - # - # * #oauth2_token --- An OAuth2.0 access token which is authorized to access - # the service for #username. - # - # Any other keyword parameters are quietly ignored. - # - # @return [XOAuth2Authenticator] a new instance of XOAuth2Authenticator - # - # pkg:gem/net-imap#lib/net/imap/sasl/xoauth2_authenticator.rb:71 - def initialize(user = T.unsafe(nil), token = T.unsafe(nil), username: T.unsafe(nil), oauth2_token: T.unsafe(nil), authzid: T.unsafe(nil), secret: T.unsafe(nil), **_arg6); end - - # It is unclear from {Google's original XOAUTH2 - # documentation}[https://developers.google.com/gmail/imap/xoauth2-protocol], - # whether "User" refers to the authentication identity (+authcid+) or the - # authorization identity (+authzid+). The authentication identity is - # established for the client by the OAuth token, so it seems that +username+ - # must be the authorization identity. - # - # {Microsoft's documentation for shared - # mailboxes}[https://learn.microsoft.com/en-us/exchange/client-developer/legacy-protocols/how-to-authenticate-an-imap-pop-smtp-application-by-using-oauth#sasl-xoauth2-authentication-for-shared-mailboxes-in-office-365] - # _clearly_ indicates that the Office 365 server interprets it as the - # authorization identity. - # - # Although they _should_ validate that the token has been authorized to access - # the service for +username+, _some_ servers appear to ignore this field, - # relying only the identity and scope authorized by the token. - # Note that, unlike most other authenticators, #username is an alias for the - # authorization identity and not the authentication identity. The - # authenticated identity is established for the client by the #oauth2_token. - # - # pkg:gem/net-imap#lib/net/imap/sasl/xoauth2_authenticator.rb:40 - def authzid; end - - # Returns true when the initial client response was sent. - # - # The authentication should not succeed unless this returns true, but it - # does *not* indicate success. - # - # @return [Boolean] - # - # pkg:gem/net-imap#lib/net/imap/sasl/xoauth2_authenticator.rb:98 - def done?; end - - # :call-seq: - # initial_response? -> true - # - # +XOAUTH2+ can send an initial client response. - # - # @return [Boolean] - # - # pkg:gem/net-imap#lib/net/imap/sasl/xoauth2_authenticator.rb:84 - def initial_response?; end - - # An OAuth2 access token which has been authorized with the appropriate OAuth2 - # scopes to use the service for #username. - # - # pkg:gem/net-imap#lib/net/imap/sasl/xoauth2_authenticator.rb:44 - def oauth2_token; end - - # Returns the XOAUTH2 formatted response, which combines the +username+ - # with the +oauth2_token+. - # - # pkg:gem/net-imap#lib/net/imap/sasl/xoauth2_authenticator.rb:88 - def process(_data); end - - # An OAuth2 access token which has been authorized with the appropriate OAuth2 - # scopes to use the service for #username. - # - # pkg:gem/net-imap#lib/net/imap/sasl/xoauth2_authenticator.rb:45 - def secret; end - - # It is unclear from {Google's original XOAUTH2 - # documentation}[https://developers.google.com/gmail/imap/xoauth2-protocol], - # whether "User" refers to the authentication identity (+authcid+) or the - # authorization identity (+authzid+). The authentication identity is - # established for the client by the OAuth token, so it seems that +username+ - # must be the authorization identity. - # - # {Microsoft's documentation for shared - # mailboxes}[https://learn.microsoft.com/en-us/exchange/client-developer/legacy-protocols/how-to-authenticate-an-imap-pop-smtp-application-by-using-oauth#sasl-xoauth2-authentication-for-shared-mailboxes-in-office-365] - # _clearly_ indicates that the Office 365 server interprets it as the - # authorization identity. - # - # Although they _should_ validate that the token has been authorized to access - # the service for +username+, _some_ servers appear to ignore this field, - # relying only the identity and scope authorized by the token. - # - # pkg:gem/net-imap#lib/net/imap/sasl/xoauth2_authenticator.rb:35 - def username; end - - private - - # pkg:gem/net-imap#lib/net/imap/sasl/xoauth2_authenticator.rb:102 - def build_oauth2_string(username, oauth2_token); end -end - -# Experimental -# -# pkg:gem/net-imap#lib/net/imap/sasl_adapter.rb:7 -class Net::IMAP::SASLAdapter < ::Net::IMAP::SASL::ClientAdapter - include ::Net::IMAP::SASL::ProtocolAdapters::IMAP - - # pkg:gem/net-imap#lib/net/imap/sasl_adapter.rb:15 - def drop_connection; end - - # pkg:gem/net-imap#lib/net/imap/sasl_adapter.rb:16 - def drop_connection!; end - - # pkg:gem/net-imap#lib/net/imap/sasl_adapter.rb:13 - def response_errors; end - - # @return [Boolean] - # - # pkg:gem/net-imap#lib/net/imap/sasl_adapter.rb:14 - def sasl_ir_capable?; end -end - -# pkg:gem/net-imap#lib/net/imap/sasl_adapter.rb:10 -Net::IMAP::SASLAdapter::RESPONSE_ERRORS = T.let(T.unsafe(nil), Array) - -# Regexps and utility methods for implementing stringprep profiles. The -# \StringPrep algorithm is defined by -# {RFC-3454}[https://www.rfc-editor.org/rfc/rfc3454.html]. Each -# codepoint table defined in the RFC-3454 appendices is matched by a Regexp -# defined in this module. -# -# pkg:gem/net-imap#lib/net/imap/stringprep.rb:11 -module Net::IMAP::StringPrep - private - - # Checks that +string+ obeys all of the "Bidirectional Characters" - # requirements in RFC-3454, §6: - # - # * The characters in \StringPrep\[\"C.8\"] MUST be prohibited - # * If a string contains any RandALCat character, the string MUST NOT - # contain any LCat character. - # * If a string contains any RandALCat character, a RandALCat - # character MUST be the first character of the string, and a - # RandALCat character MUST be the last character of the string. - # - # This is usually combined with #check_prohibited!, so table "C.8" is only - # checked when c_8: true. - # - # Raises either ProhibitedCodepoint or BidiStringError unless all - # requirements are met. +profile+ is an optional string which will be - # added to any exception that is raised (it does not affect behavior). - # - # pkg:gem/net-imap#lib/net/imap/stringprep.rb:144 - def check_bidi!(string, c_8: T.unsafe(nil), profile: T.unsafe(nil)); end - - # Checks +string+ for any codepoint in +tables+. Raises a - # ProhibitedCodepoint describing the first matching table. - # - # Also checks bidirectional characters, when bidi: true, which may - # raise a BidiStringError. - # - # +profile+ is an optional string which will be added to any exception that - # is raised (it does not affect behavior). - # - # pkg:gem/net-imap#lib/net/imap/stringprep.rb:104 - def check_prohibited!(string, *tables, bidi: T.unsafe(nil), unassigned: T.unsafe(nil), stored: T.unsafe(nil), profile: T.unsafe(nil)); end - - # pkg:gem/net-imap#lib/net/imap/stringprep.rb:88 - def map_tables!(string, *tables); end - - # >>> - # 1. Map -- For each character in the input, check if it has a mapping - # and, if so, replace it with its mapping. This is described in - # section 3. - # - # 2. Normalize -- Possibly normalize the result of step 1 using Unicode - # normalization. This is described in section 4. - # - # 3. Prohibit -- Check for any characters that are not allowed in the - # output. If any are found, return an error. This is described in - # section 5. - # - # 4. Check bidi -- Possibly check for right-to-left characters, and if - # any are found, make sure that the whole string satisfies the - # requirements for bidirectional strings. If the string does not - # satisfy the requirements for bidirectional strings, return an - # error. This is described in section 6. - # - # The above steps MUST be performed in the order given to comply with - # this specification. - # - # pkg:gem/net-imap#lib/net/imap/stringprep.rb:76 - def stringprep(string, maps:, normalization:, prohibited:, **opts); end - - class << self - # Returns a Regexp matching the given +table+ name. - # - # pkg:gem/net-imap#lib/net/imap/stringprep.rb:49 - def [](table); end - - # Checks that +string+ obeys all of the "Bidirectional Characters" - # requirements in RFC-3454, §6: - # - # * The characters in \StringPrep\[\"C.8\"] MUST be prohibited - # * If a string contains any RandALCat character, the string MUST NOT - # contain any LCat character. - # * If a string contains any RandALCat character, a RandALCat - # character MUST be the first character of the string, and a - # RandALCat character MUST be the last character of the string. - # - # This is usually combined with #check_prohibited!, so table "C.8" is only - # checked when c_8: true. - # - # Raises either ProhibitedCodepoint or BidiStringError unless all - # requirements are met. +profile+ is an optional string which will be - # added to any exception that is raised (it does not affect behavior). - # - # pkg:gem/net-imap#lib/net/imap/stringprep.rb:144 - def check_bidi!(string, c_8: T.unsafe(nil), profile: T.unsafe(nil)); end - - # Checks +string+ for any codepoint in +tables+. Raises a - # ProhibitedCodepoint describing the first matching table. - # - # Also checks bidirectional characters, when bidi: true, which may - # raise a BidiStringError. - # - # +profile+ is an optional string which will be added to any exception that - # is raised (it does not affect behavior). - # - # pkg:gem/net-imap#lib/net/imap/stringprep.rb:104 - def check_prohibited!(string, *tables, bidi: T.unsafe(nil), unassigned: T.unsafe(nil), stored: T.unsafe(nil), profile: T.unsafe(nil)); end - - # pkg:gem/net-imap#lib/net/imap/stringprep.rb:88 - def map_tables!(string, *tables); end - - # >>> - # 1. Map -- For each character in the input, check if it has a mapping - # and, if so, replace it with its mapping. This is described in - # section 3. - # - # 2. Normalize -- Possibly normalize the result of step 1 using Unicode - # normalization. This is described in section 4. - # - # 3. Prohibit -- Check for any characters that are not allowed in the - # output. If any are found, return an error. This is described in - # section 5. - # - # 4. Check bidi -- Possibly check for right-to-left characters, and if - # any are found, make sure that the whole string satisfies the - # requirements for bidirectional strings. If the string does not - # satisfy the requirements for bidirectional strings, return an - # error. This is described in section 6. - # - # The above steps MUST be performed in the order given to comply with - # this specification. - # - # pkg:gem/net-imap#lib/net/imap/stringprep.rb:76 - def stringprep(string, maps:, normalization:, prohibited:, **opts); end - end -end - -# StringPrepError raised when +string+ contains bidirectional characters -# which violate the StringPrep requirements. -# -# pkg:gem/net-imap#lib/net/imap/stringprep.rb:45 -class Net::IMAP::StringPrep::BidiStringError < ::Net::IMAP::StringPrep::StringPrepError; end - -# Defined in RFC3491[https://www.rfc-editor.org/rfc/rfc3491], the +nameprep+ -# profile of "Stringprep" is: -# >>> -# used by the IDNA protocol for preparing domain names; it is not -# designed for any other purpose. It is explicitly not designed for -# processing arbitrary free text and SHOULD NOT be used for that -# purpose. -# -# ... -# -# This profile specifies prohibiting using the following tables...: -# -# - C.1.2 (Non-ASCII space characters) -# - C.2.2 (Non-ASCII control characters) -# - C.3 (Private use characters) -# - C.4 (Non-character code points) -# - C.5 (Surrogate codes) -# - C.6 (Inappropriate for plain text) -# - C.7 (Inappropriate for canonical representation) -# - C.8 (Change display properties are deprecated) -# - C.9 (Tagging characters) -# -# IMPORTANT NOTE: This profile MUST be used with the IDNA protocol. -# The IDNA protocol has additional prohibitions that are checked -# outside of this profile. -# -# pkg:gem/net-imap#lib/net/imap/stringprep/nameprep.rb:32 -module Net::IMAP::StringPrep::NamePrep - private - - # pkg:gem/net-imap#lib/net/imap/stringprep/nameprep.rb:54 - def nameprep(string, **opts); end - - class << self - # pkg:gem/net-imap#lib/net/imap/stringprep/nameprep.rb:54 - def nameprep(string, **opts); end - end -end - -# From RFC3491[https://www.rfc-editor.org/rfc/rfc3491.html] §6 -# -# pkg:gem/net-imap#lib/net/imap/stringprep/nameprep.rb:50 -Net::IMAP::StringPrep::NamePrep::CHECK_BIDI = T.let(T.unsafe(nil), TrueClass) - -# From RFC3491[https://www.rfc-editor.org/rfc/rfc3491.html] §3 -# -# pkg:gem/net-imap#lib/net/imap/stringprep/nameprep.rb:41 -Net::IMAP::StringPrep::NamePrep::MAPPING_TABLES = T.let(T.unsafe(nil), Array) - -# From RFC3491[https://www.rfc-editor.org/rfc/rfc3491.html] §4 -# -# pkg:gem/net-imap#lib/net/imap/stringprep/nameprep.rb:44 -Net::IMAP::StringPrep::NamePrep::NORMALIZATION = T.let(T.unsafe(nil), Symbol) - -# From RFC3491[https://www.rfc-editor.org/rfc/rfc3491.html] §5 -# -# pkg:gem/net-imap#lib/net/imap/stringprep/nameprep.rb:47 -Net::IMAP::StringPrep::NamePrep::PROHIBITED_TABLES = T.let(T.unsafe(nil), Array) - -# From RFC3491[https://www.rfc-editor.org/rfc/rfc3491.html] §10 -# -# pkg:gem/net-imap#lib/net/imap/stringprep/nameprep.rb:35 -Net::IMAP::StringPrep::NamePrep::STRINGPREP_PROFILE = T.let(T.unsafe(nil), String) - -# From RFC3491[https://www.rfc-editor.org/rfc/rfc3491.html] §2 -# -# pkg:gem/net-imap#lib/net/imap/stringprep/nameprep.rb:38 -Net::IMAP::StringPrep::NamePrep::UNASSIGNED_TABLE = T.let(T.unsafe(nil), String) - -# StringPrepError raised when +string+ contains a codepoint prohibited by -# +table+. -# -# pkg:gem/net-imap#lib/net/imap/stringprep.rb:31 -class Net::IMAP::StringPrep::ProhibitedCodepoint < ::Net::IMAP::StringPrep::StringPrepError - # @return [ProhibitedCodepoint] a new instance of ProhibitedCodepoint - # - # pkg:gem/net-imap#lib/net/imap/stringprep.rb:34 - def initialize(table, *args, **kwargs); end - - # Returns the value of attribute table. - # - # pkg:gem/net-imap#lib/net/imap/stringprep.rb:32 - def table; end -end - -# SASLprep#saslprep can be used to prepare a string according to [RFC4013]. -# -# \SASLprep maps characters three ways: to nothing, to space, and Unicode -# normalization form KC. \SASLprep prohibits codepoints from nearly all -# standard StringPrep tables (RFC3454, Appendix "C"), and uses -# \StringPrep's standard bidirectional characters requirements (Appendix -# "D"). \SASLprep also uses \StringPrep's definition of "Unassigned" -# codepoints (Appendix "A"). -# -# pkg:gem/net-imap#lib/net/imap/stringprep/saslprep.rb:15 -module Net::IMAP::StringPrep::SASLprep - private - - # Prepares a UTF-8 +string+ for comparison, using the \SASLprep profile - # RFC4013 of the StringPrep algorithm RFC3454. - # - # By default, prohibited strings will return +nil+. When +exception+ is - # +true+, a StringPrepError describing the violation will be raised. - # - # When +stored+ is +true+, "unassigned" codepoints will be prohibited. - # For \StringPrep and the \SASLprep profile, "unassigned" refers to - # Unicode 3.2, and not later versions. See RFC3454 §7 for more - # information. - # - # pkg:gem/net-imap#lib/net/imap/stringprep/saslprep.rb:42 - def saslprep(str, stored: T.unsafe(nil), exception: T.unsafe(nil)); end - - class << self - # Prepares a UTF-8 +string+ for comparison, using the \SASLprep profile - # RFC4013 of the StringPrep algorithm RFC3454. - # - # By default, prohibited strings will return +nil+. When +exception+ is - # +true+, a StringPrepError describing the violation will be raised. - # - # When +stored+ is +true+, "unassigned" codepoints will be prohibited. - # For \StringPrep and the \SASLprep profile, "unassigned" refers to - # Unicode 3.2, and not later versions. See RFC3454 §7 for more - # information. - # - # pkg:gem/net-imap#lib/net/imap/stringprep/saslprep.rb:42 - def saslprep(str, stored: T.unsafe(nil), exception: T.unsafe(nil)); end - end -end - -# Used to short-circuit strings that don't need preparation. -# -# pkg:gem/net-imap#lib/net/imap/stringprep/saslprep.rb:18 -Net::IMAP::StringPrep::SASLprep::ASCII_NO_CTRLS = T.let(T.unsafe(nil), Regexp) - -# Bidirectional Characters [StringPrep, §6] -# -# A Regexp for strings that don't satisfy StringPrep's Bidirectional -# Characters rules. -# -# Equal to StringPrep::Tables::BIDI_FAILURE. -# Redefined here to avoid loading StringPrep::Tables unless necessary. -# -# pkg:gem/net-imap#lib/net/imap/stringprep/saslprep_tables.rb:79 -Net::IMAP::StringPrep::SASLprep::BIDI_FAILURE = T.let(T.unsafe(nil), Regexp) - -# RFC4013 §2.1 Mapping - mapped to nothing -# >>> -# the "commonly mapped to nothing" characters -# (\StringPrep\[\"B.1\"]) that can be mapped to nothing. -# -# Equal to \StringPrep\[\"B.1\"]. -# Redefined here to avoid loading StringPrep::Tables unless necessary. -# -# pkg:gem/net-imap#lib/net/imap/stringprep/saslprep_tables.rb:27 -Net::IMAP::StringPrep::SASLprep::MAP_TO_NOTHING = T.let(T.unsafe(nil), Regexp) - -# RFC4013 §2.1 Mapping - mapped to space -# >>> -# non-ASCII space characters (\StringPrep\[\"C.1.2\"]) that can -# be mapped to SPACE (U+0020) -# -# Equal to \StringPrep\[\"C.1.2\"]. -# Redefined here to avoid loading StringPrep::Tables unless necessary. -# -# pkg:gem/net-imap#lib/net/imap/stringprep/saslprep_tables.rb:18 -Net::IMAP::StringPrep::SASLprep::MAP_TO_SPACE = T.let(T.unsafe(nil), Regexp) - -# A Regexp matching strings prohibited by RFC4013 §2.3 and §2.4. -# -# This combines PROHIBITED_OUTPUT and BIDI_FAILURE. -# -# pkg:gem/net-imap#lib/net/imap/stringprep/saslprep_tables.rb:84 -Net::IMAP::StringPrep::SASLprep::PROHIBITED = T.let(T.unsafe(nil), Regexp) - -# A Regexp matching codepoints prohibited by RFC4013 §2.3. -# -# This combines all of the TABLES_PROHIBITED tables. -# -# pkg:gem/net-imap#lib/net/imap/stringprep/saslprep_tables.rb:54 -Net::IMAP::StringPrep::SASLprep::PROHIBITED_OUTPUT = T.let(T.unsafe(nil), Regexp) - -# A Regexp matching codepoints prohibited by RFC4013 §2.3 and §2.5. -# -# This combines PROHIBITED_OUTPUT and UNASSIGNED. -# -# pkg:gem/net-imap#lib/net/imap/stringprep/saslprep_tables.rb:68 -Net::IMAP::StringPrep::SASLprep::PROHIBITED_OUTPUT_STORED = T.let(T.unsafe(nil), Regexp) - -# A Regexp matching strings prohibited by RFC4013 §2.3, §2.4, and §2.5. -# -# This combines PROHIBITED_OUTPUT_STORED and BIDI_FAILURE. -# -# pkg:gem/net-imap#lib/net/imap/stringprep/saslprep_tables.rb:91 -Net::IMAP::StringPrep::SASLprep::PROHIBITED_STORED = T.let(T.unsafe(nil), Regexp) - -# RFC4013 §2.3 Prohibited Output -# >>> -# * Non-ASCII space characters — \StringPrep\[\"C.1.2\"] -# * ASCII control characters — \StringPrep\[\"C.2.1\"] -# * Non-ASCII control characters — \StringPrep\[\"C.2.2\"] -# * Private Use characters — \StringPrep\[\"C.3\"] -# * Non-character code points — \StringPrep\[\"C.4\"] -# * Surrogate code points — \StringPrep\[\"C.5\"] -# * Inappropriate for plain text characters — \StringPrep\[\"C.6\"] -# * Inappropriate for canonical representation characters — \StringPrep\[\"C.7\"] -# * Change display properties or deprecated characters — \StringPrep\[\"C.8\"] -# * Tagging characters — \StringPrep\[\"C.9\"] -# -# pkg:gem/net-imap#lib/net/imap/stringprep/saslprep_tables.rb:41 -Net::IMAP::StringPrep::SASLprep::TABLES_PROHIBITED = T.let(T.unsafe(nil), Array) - -# Adds unassigned (by Unicode 3.2) codepoints to TABLES_PROHIBITED. -# -# RFC4013 §2.5 Unassigned Code Points -# >>> -# This profile specifies the \StringPrep\[\"A.1\"] table as its -# list of unassigned code points. -# -# pkg:gem/net-imap#lib/net/imap/stringprep/saslprep_tables.rb:49 -Net::IMAP::StringPrep::SASLprep::TABLES_PROHIBITED_STORED = T.let(T.unsafe(nil), Array) - -# RFC4013 §2.5 Unassigned Code Points -# >>> -# This profile specifies the \StringPrep\[\"A.1\"] table as its -# list of unassigned code points. -# -# Equal to \StringPrep\[\"A.1\"]. -# Redefined here to avoid loading StringPrep::Tables unless necessary. -# -# pkg:gem/net-imap#lib/net/imap/stringprep/saslprep_tables.rb:63 -Net::IMAP::StringPrep::SASLprep::UNASSIGNED = T.let(T.unsafe(nil), Regexp) - -# ArgumentError raised when +string+ is invalid for the stringprep -# +profile+. -# -# pkg:gem/net-imap#lib/net/imap/stringprep.rb:19 -class Net::IMAP::StringPrep::StringPrepError < ::ArgumentError - # @return [StringPrepError] a new instance of StringPrepError - # - # pkg:gem/net-imap#lib/net/imap/stringprep.rb:22 - def initialize(*args, string: T.unsafe(nil), profile: T.unsafe(nil)); end - - # Returns the value of attribute profile. - # - # pkg:gem/net-imap#lib/net/imap/stringprep.rb:20 - def profile; end - - # Returns the value of attribute string. - # - # pkg:gem/net-imap#lib/net/imap/stringprep.rb:20 - def string; end -end - -# pkg:gem/net-imap#lib/net/imap/stringprep/tables.rb:9 -module Net::IMAP::StringPrep::Tables; end - -# pkg:gem/net-imap#lib/net/imap/stringprep/tables.rb:75 -Net::IMAP::StringPrep::Tables::BIDI_DESC_REQ2 = T.let(T.unsafe(nil), String) - -# pkg:gem/net-imap#lib/net/imap/stringprep/tables.rb:83 -Net::IMAP::StringPrep::Tables::BIDI_DESC_REQ3 = T.let(T.unsafe(nil), String) - -# Bidirectional Characters [StringPrep, §6], Requirement 2 -# >>> -# If a string contains any RandALCat character, the string MUST NOT -# contain any LCat character. -# -# pkg:gem/net-imap#lib/net/imap/stringprep/tables.rb:81 -Net::IMAP::StringPrep::Tables::BIDI_FAILS_REQ2 = T.let(T.unsafe(nil), Regexp) - -# Bidirectional Characters [StringPrep, §6], Requirement 3 -# >>> -# If a string contains any RandALCat character, a RandALCat -# character MUST be the first character of the string, and a -# RandALCat character MUST be the last character of the string. -# -# pkg:gem/net-imap#lib/net/imap/stringprep/tables.rb:90 -Net::IMAP::StringPrep::Tables::BIDI_FAILS_REQ3 = T.let(T.unsafe(nil), Regexp) - -# Bidirectional Characters [StringPrep, §6] -# -# pkg:gem/net-imap#lib/net/imap/stringprep/tables.rb:93 -Net::IMAP::StringPrep::Tables::BIDI_FAILURE = T.let(T.unsafe(nil), Regexp) - -# Unassigned code points in Unicode 3.2 \StringPrep\[\"A.1\"] -# -# pkg:gem/net-imap#lib/net/imap/stringprep/tables.rb:12 -Net::IMAP::StringPrep::Tables::IN_A_1 = T.let(T.unsafe(nil), Regexp) - -# Commonly mapped to nothing \StringPrep\[\"B.1\"] -# -# pkg:gem/net-imap#lib/net/imap/stringprep/tables.rb:15 -Net::IMAP::StringPrep::Tables::IN_B_1 = T.let(T.unsafe(nil), Regexp) - -# Mapping for case-folding used with NFKC \StringPrep\[\"B.2\"] -# -# pkg:gem/net-imap#lib/net/imap/stringprep/tables.rb:18 -Net::IMAP::StringPrep::Tables::IN_B_2 = T.let(T.unsafe(nil), Regexp) - -# Mapping for case-folding used with no normalization \StringPrep\[\"B.3\"] -# -# pkg:gem/net-imap#lib/net/imap/stringprep/tables.rb:21 -Net::IMAP::StringPrep::Tables::IN_B_3 = T.let(T.unsafe(nil), Regexp) - -# ASCII space characters \StringPrep\[\"C.1.1\"] -# -# pkg:gem/net-imap#lib/net/imap/stringprep/tables.rb:33 -Net::IMAP::StringPrep::Tables::IN_C_1_1 = T.let(T.unsafe(nil), Regexp) - -# Non-ASCII space characters \StringPrep\[\"C.1.2\"] -# -# pkg:gem/net-imap#lib/net/imap/stringprep/tables.rb:36 -Net::IMAP::StringPrep::Tables::IN_C_1_2 = T.let(T.unsafe(nil), Regexp) - -# ASCII control characters \StringPrep\[\"C.2.1\"] -# -# pkg:gem/net-imap#lib/net/imap/stringprep/tables.rb:39 -Net::IMAP::StringPrep::Tables::IN_C_2_1 = T.let(T.unsafe(nil), Regexp) - -# Non-ASCII control characters \StringPrep\[\"C.2.2\"] -# -# pkg:gem/net-imap#lib/net/imap/stringprep/tables.rb:42 -Net::IMAP::StringPrep::Tables::IN_C_2_2 = T.let(T.unsafe(nil), Regexp) - -# Private use \StringPrep\[\"C.3\"] -# -# pkg:gem/net-imap#lib/net/imap/stringprep/tables.rb:45 -Net::IMAP::StringPrep::Tables::IN_C_3 = T.let(T.unsafe(nil), Regexp) - -# Non-character code points \StringPrep\[\"C.4\"] -# -# pkg:gem/net-imap#lib/net/imap/stringprep/tables.rb:48 -Net::IMAP::StringPrep::Tables::IN_C_4 = T.let(T.unsafe(nil), Regexp) - -# Surrogate codes \StringPrep\[\"C.5\"] -# -# pkg:gem/net-imap#lib/net/imap/stringprep/tables.rb:51 -Net::IMAP::StringPrep::Tables::IN_C_5 = T.let(T.unsafe(nil), Regexp) - -# Inappropriate for plain text \StringPrep\[\"C.6\"] -# -# pkg:gem/net-imap#lib/net/imap/stringprep/tables.rb:54 -Net::IMAP::StringPrep::Tables::IN_C_6 = T.let(T.unsafe(nil), Regexp) - -# Inappropriate for canonical representation \StringPrep\[\"C.7\"] -# -# pkg:gem/net-imap#lib/net/imap/stringprep/tables.rb:57 -Net::IMAP::StringPrep::Tables::IN_C_7 = T.let(T.unsafe(nil), Regexp) - -# Change display properties or are deprecated \StringPrep\[\"C.8\"] -# -# pkg:gem/net-imap#lib/net/imap/stringprep/tables.rb:60 -Net::IMAP::StringPrep::Tables::IN_C_8 = T.let(T.unsafe(nil), Regexp) - -# Tagging characters \StringPrep\[\"C.9\"] -# -# pkg:gem/net-imap#lib/net/imap/stringprep/tables.rb:63 -Net::IMAP::StringPrep::Tables::IN_C_9 = T.let(T.unsafe(nil), Regexp) - -# Characters with bidirectional property "R" or "AL" \StringPrep\[\"D.1\"] -# -# pkg:gem/net-imap#lib/net/imap/stringprep/tables.rb:66 -Net::IMAP::StringPrep::Tables::IN_D_1 = T.let(T.unsafe(nil), Regexp) - -# Used to check req3 of bidirectional checks -# Matches the negation of the D.1 table -# -# pkg:gem/net-imap#lib/net/imap/stringprep/tables.rb:70 -Net::IMAP::StringPrep::Tables::IN_D_1_NEGATED = T.let(T.unsafe(nil), Regexp) - -# Characters with bidirectional property "L" \StringPrep\[\"D.2\"] -# -# pkg:gem/net-imap#lib/net/imap/stringprep/tables.rb:73 -Net::IMAP::StringPrep::Tables::IN_D_2 = T.let(T.unsafe(nil), Regexp) - -# pkg:gem/net-imap#lib/net/imap/stringprep/tables.rb:139 -Net::IMAP::StringPrep::Tables::MAPPINGS = T.let(T.unsafe(nil), Hash) - -# Replacements for IN_B.1 -# -# pkg:gem/net-imap#lib/net/imap/stringprep/tables.rb:24 -Net::IMAP::StringPrep::Tables::MAP_B_1 = T.let(T.unsafe(nil), String) - -# Replacements for IN_B.2 -# -# pkg:gem/net-imap#lib/net/imap/stringprep/tables.rb:27 -Net::IMAP::StringPrep::Tables::MAP_B_2 = T.let(T.unsafe(nil), Hash) - -# Replacements for IN_B.3 -# -# pkg:gem/net-imap#lib/net/imap/stringprep/tables.rb:30 -Net::IMAP::StringPrep::Tables::MAP_B_3 = T.let(T.unsafe(nil), Hash) - -# Regexps matching each codepoint table in the RFC-3454 appendices -# -# pkg:gem/net-imap#lib/net/imap/stringprep/tables.rb:119 -Net::IMAP::StringPrep::Tables::REGEXPS = T.let(T.unsafe(nil), Hash) - -# Names of each codepoint table in the RFC-3454 appendices -# -# pkg:gem/net-imap#lib/net/imap/stringprep/tables.rb:96 -Net::IMAP::StringPrep::Tables::TITLES = T.let(T.unsafe(nil), Hash) - -# Defined in RFC-4505[https://www.rfc-editor.org/rfc/rfc4505] §3, The +trace+ -# profile of \StringPrep is used by the +ANONYMOUS+ \SASL mechanism. -# -# pkg:gem/net-imap#lib/net/imap/stringprep/trace.rb:9 -module Net::IMAP::StringPrep::Trace - private - - # From RFC-4505[https://www.rfc-editor.org/rfc/rfc4505] §3, The "trace" - # Profile of "Stringprep": - # >>> - # The character repertoire of this profile is Unicode 3.2 [Unicode]. - # - # No mapping is required by this profile. - # - # No Unicode normalization is required by this profile. - # - # The list of unassigned code points for this profile is that provided - # in Appendix A of [StringPrep]. Unassigned code points are not - # prohibited. - # - # Characters from the following tables of [StringPrep] are prohibited: - # (documented on PROHIBITED_TABLES) - # - # This profile requires bidirectional character checking per Section 6 - # of [StringPrep]. - # - # pkg:gem/net-imap#lib/net/imap/stringprep/trace.rb:68 - def stringprep_trace(string, **opts); end - - class << self - # From RFC-4505[https://www.rfc-editor.org/rfc/rfc4505] §3, The "trace" - # Profile of "Stringprep": - # >>> - # The character repertoire of this profile is Unicode 3.2 [Unicode]. - # - # No mapping is required by this profile. - # - # No Unicode normalization is required by this profile. - # - # The list of unassigned code points for this profile is that provided - # in Appendix A of [StringPrep]. Unassigned code points are not - # prohibited. - # - # Characters from the following tables of [StringPrep] are prohibited: - # (documented on PROHIBITED_TABLES) - # - # This profile requires bidirectional character checking per Section 6 - # of [StringPrep]. - # - # pkg:gem/net-imap#lib/net/imap/stringprep/trace.rb:68 - def stringprep_trace(string, **opts); end - end -end - -# >>> -# This profile requires bidirectional character checking per Section 6 -# of [StringPrep]. -# -# pkg:gem/net-imap#lib/net/imap/stringprep/trace.rb:46 -Net::IMAP::StringPrep::Trace::CHECK_BIDI = T.let(T.unsafe(nil), TrueClass) - -# >>> -# No mapping is required by this profile. -# -# pkg:gem/net-imap#lib/net/imap/stringprep/trace.rb:20 -Net::IMAP::StringPrep::Trace::MAPPING_TABLES = T.let(T.unsafe(nil), T.untyped) - -# >>> -# No Unicode normalization is required by this profile. -# -# pkg:gem/net-imap#lib/net/imap/stringprep/trace.rb:24 -Net::IMAP::StringPrep::Trace::NORMALIZATION = T.let(T.unsafe(nil), T.untyped) - -# From RFC-4505[https://www.rfc-editor.org/rfc/rfc4505] §3, The "trace" -# Profile of "Stringprep": -# >>> -# Characters from the following tables of [StringPrep] are prohibited: -# -# - C.2.1 (ASCII control characters) -# - C.2.2 (Non-ASCII control characters) -# - C.3 (Private use characters) -# - C.4 (Non-character code points) -# - C.5 (Surrogate codes) -# - C.6 (Inappropriate for plain text) -# - C.8 (Change display properties are deprecated) -# - C.9 (Tagging characters) -# -# No additional characters are prohibited. -# -# pkg:gem/net-imap#lib/net/imap/stringprep/trace.rb:41 -Net::IMAP::StringPrep::Trace::PROHIBITED_TABLES = T.let(T.unsafe(nil), Array) - -# Defined in RFC-4505[https://www.rfc-editor.org/rfc/rfc4505] §3. -# -# pkg:gem/net-imap#lib/net/imap/stringprep/trace.rb:12 -Net::IMAP::StringPrep::Trace::STRINGPREP_PROFILE = T.let(T.unsafe(nil), String) - -# >>> -# The character repertoire of this profile is Unicode 3.2 [Unicode]. -# -# pkg:gem/net-imap#lib/net/imap/stringprep/trace.rb:16 -Net::IMAP::StringPrep::Trace::UNASSIGNED_TABLE = T.let(T.unsafe(nil), String) - -# Error raised upon an unknown response from the server. -# -# This is different from InvalidResponseError: the response may be a -# valid extension response and the server may be allowed to send it in -# this context, but Net::IMAP either does not know how to parse it or -# how to handle it. This could result from enabling unknown or -# unhandled extensions. The connection may still be usable, -# but—depending on context—it may be prudent to disconnect. -# -# pkg:gem/net-imap#lib/net/imap/errors.rb:110 -class Net::IMAP::UnknownResponseError < ::Net::IMAP::ResponseError; end - -# pkg:gem/net-imap#lib/net/imap.rb:791 -Net::IMAP::VERSION = T.let(T.unsafe(nil), String) diff --git a/sorbet/rbi/gems/net-imap@0.6.2.rbi b/sorbet/rbi/gems/net-imap@0.6.2.rbi new file mode 100644 index 000000000..c5a105162 --- /dev/null +++ b/sorbet/rbi/gems/net-imap@0.6.2.rbi @@ -0,0 +1,10964 @@ +# typed: false + +# DO NOT EDIT MANUALLY +# This is an autogenerated file for types exported from the `net-imap` gem. +# Please instead update this file by running `bin/tapioca gem net-imap`. + + +# pkg:gem/net-imap#lib/net/imap.rb:790 +class Net::IMAP < ::Net::Protocol + include ::Net::IMAP::DeprecatedClientOptions + include ::MonitorMixin + extend ::Net::IMAP::Authenticators + + # pkg:gem/net-imap#lib/net/imap.rb:1078 + def initialize(host, port_or_options = T.unsafe(nil), *deprecated, **options); end + + # pkg:gem/net-imap#lib/net/imap.rb:3325 + def add_response_handler(handler = T.unsafe(nil), &block); end + + # pkg:gem/net-imap#lib/net/imap.rb:2031 + def append(mailbox, message, flags = T.unsafe(nil), date_time = T.unsafe(nil)); end + + # pkg:gem/net-imap#lib/net/imap.rb:1225 + def auth_capable?(mechanism); end + + # pkg:gem/net-imap#lib/net/imap.rb:1208 + def auth_mechanisms; end + + # pkg:gem/net-imap#lib/net/imap.rb:1520 + def authenticate(*args, sasl_ir: T.unsafe(nil), **props, &callback); end + + # pkg:gem/net-imap#lib/net/imap.rb:1184 + def capabilities; end + + # pkg:gem/net-imap#lib/net/imap.rb:1235 + def capabilities_cached?; end + + # pkg:gem/net-imap#lib/net/imap.rb:1273 + def capability; end + + # pkg:gem/net-imap#lib/net/imap.rb:1171 + def capability?(capability); end + + # pkg:gem/net-imap#lib/net/imap.rb:1170 + def capable?(capability); end + + # pkg:gem/net-imap#lib/net/imap.rb:2047 + def check; end + + # pkg:gem/net-imap#lib/net/imap.rb:1248 + def clear_cached_capabilities; end + + # pkg:gem/net-imap#lib/net/imap.rb:3254 + def clear_responses(type = T.unsafe(nil)); end + + # pkg:gem/net-imap#lib/net/imap.rb:2057 + def close; end + + # pkg:gem/net-imap#lib/net/imap.rb:861 + def config; end + + # pkg:gem/net-imap#lib/net/imap.rb:966 + def connection_state; end + + # pkg:gem/net-imap#lib/net/imap.rb:2787 + def copy(set, mailbox); end + + # pkg:gem/net-imap#lib/net/imap.rb:1631 + def create(mailbox); end + + # pkg:gem/net-imap#lib/net/imap.rb:1643 + def delete(mailbox); end + + # pkg:gem/net-imap#lib/net/imap.rb:1134 + def disconnect; end + + # pkg:gem/net-imap#lib/net/imap.rb:1156 + def disconnected?; end + + # pkg:gem/net-imap#lib/net/imap.rb:3029 + def enable(*capabilities); end + + # pkg:gem/net-imap#lib/net/imap.rb:1613 + def examine(mailbox, condstore: T.unsafe(nil)); end + + # pkg:gem/net-imap#lib/net/imap.rb:2105 + def expunge; end + + # pkg:gem/net-imap#lib/net/imap.rb:3278 + def extract_responses(type); end + + # pkg:gem/net-imap#lib/net/imap.rb:2630 + def fetch(*_arg0, **_arg1, &_arg2); end + + # pkg:gem/net-imap#lib/net/imap.rb:1911 + def getacl(mailbox); end + + # pkg:gem/net-imap#lib/net/imap.rb:1855 + def getquota(mailbox); end + + # pkg:gem/net-imap#lib/net/imap.rb:1834 + def getquotaroot(mailbox); end + + # pkg:gem/net-imap#lib/net/imap.rb:855 + def greeting; end + + # pkg:gem/net-imap#lib/net/imap.rb:887 + def host; end + + # pkg:gem/net-imap#lib/net/imap.rb:1302 + def id(client_id = T.unsafe(nil)); end + + # pkg:gem/net-imap#lib/net/imap.rb:3073 + def idle(timeout = T.unsafe(nil), &response_handler); end + + # pkg:gem/net-imap#lib/net/imap.rb:3109 + def idle_done; end + + # pkg:gem/net-imap#lib/net/imap.rb:881 + def idle_response_timeout; end + + # pkg:gem/net-imap#lib/net/imap.rb:1715 + def list(refname, mailbox); end + + # pkg:gem/net-imap#lib/net/imap.rb:1552 + def login(user, password); end + + # pkg:gem/net-imap#lib/net/imap.rb:1330 + def logout; end + + # pkg:gem/net-imap#lib/net/imap.rb:1347 + def logout!; end + + # pkg:gem/net-imap#lib/net/imap.rb:1926 + def lsub(refname, mailbox); end + + # pkg:gem/net-imap#lib/net/imap.rb:882 + def max_response_size; end + + # pkg:gem/net-imap#lib/net/imap.rb:883 + def max_response_size=(val); end + + # pkg:gem/net-imap#lib/net/imap.rb:2828 + def move(set, mailbox); end + + # pkg:gem/net-imap#lib/net/imap.rb:1772 + def namespace; end + + # pkg:gem/net-imap#lib/net/imap.rb:1321 + def noop; end + + # pkg:gem/net-imap#lib/net/imap.rb:880 + def open_timeout; end + + # pkg:gem/net-imap#lib/net/imap.rb:890 + def port; end + + # pkg:gem/net-imap#lib/net/imap.rb:3335 + def remove_response_handler(handler); end + + # pkg:gem/net-imap#lib/net/imap.rb:1656 + def rename(mailbox, newname); end + + # pkg:gem/net-imap#lib/net/imap.rb:3304 + def response_handlers; end + + # pkg:gem/net-imap#lib/net/imap.rb:3220 + def responses(type = T.unsafe(nil)); end + + # pkg:gem/net-imap#lib/net/imap.rb:2549 + def search(*_arg0, **_arg1, &_arg2); end + + # pkg:gem/net-imap#lib/net/imap.rb:1593 + def select(mailbox, condstore: T.unsafe(nil)); end + + # pkg:gem/net-imap#lib/net/imap.rb:1893 + def setacl(mailbox, user, rights); end + + # pkg:gem/net-imap#lib/net/imap.rb:1873 + def setquota(mailbox, quota); end + + # pkg:gem/net-imap#lib/net/imap.rb:2876 + def sort(sort_keys, search_keys, charset); end + + # pkg:gem/net-imap#lib/net/imap.rb:898 + def ssl_ctx; end + + # pkg:gem/net-imap#lib/net/imap.rb:905 + def ssl_ctx_params; end + + # pkg:gem/net-imap#lib/net/imap.rb:1391 + def starttls(*deprecated, **options); end + + # pkg:gem/net-imap#lib/net/imap.rb:1993 + def status(mailbox, attr); end + + # pkg:gem/net-imap#lib/net/imap.rb:2743 + def store(set, attr, flags, unchangedsince: T.unsafe(nil)); end + + # pkg:gem/net-imap#lib/net/imap.rb:1668 + def subscribe(mailbox); end + + # pkg:gem/net-imap#lib/net/imap.rb:2916 + def thread(algorithm, search_keys, charset); end + + # pkg:gem/net-imap#lib/net/imap.rb:1126 + def tls_verified?; end + + # pkg:gem/net-imap#lib/net/imap.rb:2803 + def uid_copy(set, mailbox); end + + # pkg:gem/net-imap#lib/net/imap.rb:2135 + def uid_expunge(uid_set); end + + # pkg:gem/net-imap#lib/net/imap.rb:2693 + def uid_fetch(*_arg0, **_arg1, &_arg2); end + + # pkg:gem/net-imap#lib/net/imap.rb:2850 + def uid_move(set, mailbox); end + + # pkg:gem/net-imap#lib/net/imap.rb:2576 + def uid_search(*_arg0, **_arg1, &_arg2); end + + # pkg:gem/net-imap#lib/net/imap.rb:2891 + def uid_sort(sort_keys, search_keys, charset); end + + # pkg:gem/net-imap#lib/net/imap.rb:2766 + def uid_store(set, attr, flags, unchangedsince: T.unsafe(nil)); end + + # pkg:gem/net-imap#lib/net/imap.rb:2930 + def uid_thread(algorithm, search_keys, charset); end + + # pkg:gem/net-imap#lib/net/imap.rb:2074 + def unselect; end + + # pkg:gem/net-imap#lib/net/imap.rb:1681 + def unsubscribe(mailbox); end + + # pkg:gem/net-imap#lib/net/imap.rb:1816 + def xlist(refname, mailbox); end + + private + + # pkg:gem/net-imap#lib/net/imap.rb:3779 + def build_ssl_ctx(ssl); end + + # pkg:gem/net-imap#lib/net/imap.rb:3512 + def capabilities_from_resp_code(resp); end + + # pkg:gem/net-imap#lib/net/imap.rb:3761 + def coerce_search_arg_to_seqset?(obj); end + + # pkg:gem/net-imap#lib/net/imap.rb:3770 + def coerce_search_array_arg_to_seqset?(obj); end + + # pkg:gem/net-imap#lib/net/imap.rb:3643 + def convert_return_opts(unconverted); end + + # pkg:gem/net-imap#lib/net/imap.rb:3730 + def copy_internal(cmd, set, mailbox); end + + # pkg:gem/net-imap#lib/net/imap.rb:3581 + def enforce_logindisabled?; end + + # pkg:gem/net-imap#lib/net/imap.rb:3589 + def expunge_internal(*_arg0, **_arg1, &_arg2); end + + # pkg:gem/net-imap#lib/net/imap.rb:3684 + def fetch_internal(cmd, set, attr, mod = T.unsafe(nil), partial: T.unsafe(nil), changedsince: T.unsafe(nil)); end + + # pkg:gem/net-imap#lib/net/imap.rb:3561 + def generate_tag; end + + # pkg:gem/net-imap#lib/net/imap.rb:3488 + def get_response; end + + # pkg:gem/net-imap#lib/net/imap.rb:3358 + def get_server_greeting; end + + # pkg:gem/net-imap#lib/net/imap.rb:3460 + def get_tagged_response(tag, cmd, timeout = T.unsafe(nil)); end + + # pkg:gem/net-imap#lib/net/imap.rb:3585 + def may_depend_on_capabilities_cached?(value); end + + # pkg:gem/net-imap#lib/net/imap.rb:3750 + def normalize_searching_criteria(criteria); end + + # pkg:gem/net-imap#lib/net/imap.rb:3566 + def put_string(str); end + + # pkg:gem/net-imap#lib/net/imap.rb:3387 + def receive_responses; end + + # pkg:gem/net-imap#lib/net/imap.rb:3499 + def record_untagged_response(resp); end + + # pkg:gem/net-imap#lib/net/imap.rb:3505 + def record_untagged_response_code(resp); end + + # pkg:gem/net-imap#lib/net/imap.rb:3843 + def sasl_adapter; end + + # pkg:gem/net-imap#lib/net/imap.rb:3609 + def search_args(keys, charset_arg = T.unsafe(nil), return: T.unsafe(nil), charset: T.unsafe(nil)); end + + # pkg:gem/net-imap#lib/net/imap.rb:3658 + def search_internal(cmd, *_arg1, **_arg2, &_arg3); end + + # pkg:gem/net-imap#lib/net/imap.rb:3533 + def send_command(cmd, *args, &block); end + + # pkg:gem/net-imap#lib/net/imap.rb:3719 + def send_command_returning_fetch_results(*_arg0, **_arg1, &_arg2); end + + # pkg:gem/net-imap#lib/net/imap.rb:3524 + def send_command_with_continuations(cmd, *args); end + + # pkg:gem/net-imap#lib/net/imap/command_data.rb:33 + def send_data(data, tag = T.unsafe(nil)); end + + # pkg:gem/net-imap#lib/net/imap/command_data.rb:115 + def send_date_data(date); end + + # pkg:gem/net-imap#lib/net/imap/command_data.rb:101 + def send_list_data(list, tag = T.unsafe(nil)); end + + # pkg:gem/net-imap#lib/net/imap/command_data.rb:80 + def send_literal(str, tag = T.unsafe(nil)); end + + # pkg:gem/net-imap#lib/net/imap/command_data.rb:97 + def send_number_data(num); end + + # pkg:gem/net-imap#lib/net/imap/command_data.rb:76 + def send_quoted_string(str); end + + # pkg:gem/net-imap#lib/net/imap/command_data.rb:54 + def send_string_data(str, tag = T.unsafe(nil)); end + + # pkg:gem/net-imap#lib/net/imap/command_data.rb:118 + def send_symbol_data(symbol); end + + # pkg:gem/net-imap#lib/net/imap/command_data.rb:116 + def send_time_data(time); end + + # pkg:gem/net-imap#lib/net/imap.rb:3734 + def sort_internal(cmd, sort_keys, search_keys, charset); end + + # pkg:gem/net-imap#lib/net/imap.rb:3347 + def start_imap_connection; end + + # pkg:gem/net-imap#lib/net/imap.rb:3369 + def start_receiver_thread; end + + # pkg:gem/net-imap#lib/net/imap.rb:3791 + def start_tls_session; end + + # pkg:gem/net-imap#lib/net/imap.rb:3806 + def state_authenticated!(resp = T.unsafe(nil)); end + + # pkg:gem/net-imap#lib/net/imap.rb:3825 + def state_logout!; end + + # pkg:gem/net-imap#lib/net/imap.rb:3813 + def state_selected!; end + + # pkg:gem/net-imap#lib/net/imap.rb:3819 + def state_unselected!; end + + # pkg:gem/net-imap#lib/net/imap.rb:3711 + def store_internal(cmd, set, attr, flags, unchangedsince: T.unsafe(nil)); end + + # pkg:gem/net-imap#lib/net/imap.rb:3378 + def tcp_socket(host, port); end + + # pkg:gem/net-imap#lib/net/imap.rb:3742 + def thread_internal(cmd, algorithm, search_keys, charset); end + + # pkg:gem/net-imap#lib/net/imap.rb:3834 + def try_state_logout?; end + + # pkg:gem/net-imap#lib/net/imap/command_data.rb:12 + def validate_data(data); end + + class << self + # pkg:gem/net-imap#lib/net/imap.rb:821 + def SequenceSet(set = T.unsafe(nil)); end + + # pkg:gem/net-imap#lib/net/imap.rb:826 + def config; end + + # pkg:gem/net-imap#lib/net/imap.rb:830 + def debug; end + + # pkg:gem/net-imap#lib/net/imap.rb:834 + def debug=(val); end + + # :call-seq: decode_date(string) -> Date + # + # Decodes +string+ as an IMAP formatted "date". + # + # Double quotes are optional. Day of month may be padded with zero or + # space. See STRFDATE. + # + # pkg:gem/net-imap#lib/net/imap/data_encoding.rb:90 + def decode_date(string); end + + # :call-seq: decode_datetime(string) -> DateTime + # + # Decodes +string+ as an IMAP4 formatted "date-time". + # + # NOTE: Although double-quotes are not optional in the IMAP grammar, + # Net::IMAP currently parses "date-time" values as "quoted" strings and this + # removes the quotation marks. To be useful for strings which have already + # been parsed as a quoted string, this method makes double-quotes optional. + # + # See STRFTIME. + # + # pkg:gem/net-imap#lib/net/imap/data_encoding.rb:112 + def decode_datetime(string); end + + # :call-seq: decode_time(string) -> Time + # + # Decodes +string+ as an IMAP4 formatted "date-time". + # + # Same as +decode_datetime+, but returning a Time instead. + # + # pkg:gem/net-imap#lib/net/imap/data_encoding.rb:124 + def decode_time(string); end + + # Decode a string from modified UTF-7 format to UTF-8. + # + # UTF-7 is a 7-bit encoding of Unicode [UTF7]. IMAP uses a + # slightly modified version of this to encode mailbox names + # containing non-ASCII characters; see [IMAP] section 5.1.3. + # + # Net::IMAP does _not_ automatically encode and decode + # mailbox names to and from UTF-7. + # + # pkg:gem/net-imap#lib/net/imap/data_encoding.rb:57 + def decode_utf7(s); end + + # pkg:gem/net-imap#lib/net/imap.rb:849 + def default_imap_port; end + + # pkg:gem/net-imap#lib/net/imap.rb:850 + def default_imaps_port; end + + # pkg:gem/net-imap#lib/net/imap.rb:839 + def default_port; end + + # pkg:gem/net-imap#lib/net/imap.rb:851 + def default_ssl_port; end + + # pkg:gem/net-imap#lib/net/imap.rb:844 + def default_tls_port; end + + # Formats +time+ as an IMAP4 date. + # + # pkg:gem/net-imap#lib/net/imap/data_encoding.rb:80 + def encode_date(date); end + + # :call-seq: encode_datetime(time) -> string + # + # Formats +time+ as an IMAP4 date-time. + # + # pkg:gem/net-imap#lib/net/imap/data_encoding.rb:98 + def encode_datetime(time); end + + # :call-seq: encode_datetime(time) -> string + # + # Formats +time+ as an IMAP4 date-time. + # + # pkg:gem/net-imap#lib/net/imap/data_encoding.rb:132 + def encode_time(time); end + + # Encode a string from UTF-8 format to modified UTF-7. + # + # pkg:gem/net-imap#lib/net/imap/data_encoding.rb:68 + def encode_utf7(s); end + + # Formats +time+ as an IMAP4 date. + # + # pkg:gem/net-imap#lib/net/imap/data_encoding.rb:133 + def format_date(date); end + + # DEPRECATED:: The original version returned incorrectly formatted strings. + # Strings returned by encode_datetime or format_time use the + # correct IMAP4rev1 syntax for "date-time". + # + # This invalid format has been temporarily retained for backward + # compatibility. A future release will change this method to return the + # correct format. + # + # pkg:gem/net-imap#lib/net/imap/data_encoding.rb:149 + def format_datetime(time); end + + # :call-seq: encode_datetime(time) -> string + # + # Formats +time+ as an IMAP4 date-time. + # + # pkg:gem/net-imap#lib/net/imap/data_encoding.rb:134 + def format_time(time); end + + # :call-seq: decode_date(string) -> Date + # + # Decodes +string+ as an IMAP formatted "date". + # + # Double quotes are optional. Day of month may be padded with zero or + # space. See STRFDATE. + # + # pkg:gem/net-imap#lib/net/imap/data_encoding.rb:135 + def parse_date(string); end + + # :call-seq: decode_datetime(string) -> DateTime + # + # Decodes +string+ as an IMAP4 formatted "date-time". + # + # NOTE: Although double-quotes are not optional in the IMAP grammar, + # Net::IMAP currently parses "date-time" values as "quoted" strings and this + # removes the quotation marks. To be useful for strings which have already + # been parsed as a quoted string, this method makes double-quotes optional. + # + # See STRFTIME. + # + # pkg:gem/net-imap#lib/net/imap/data_encoding.rb:136 + def parse_datetime(string); end + + # :call-seq: decode_time(string) -> Time + # + # Decodes +string+ as an IMAP4 formatted "date-time". + # + # Same as +decode_datetime+, but returning a Time instead. + # + # pkg:gem/net-imap#lib/net/imap/data_encoding.rb:137 + def parse_time(string); end + + # pkg:gem/net-imap#lib/net/imap.rb:3853 + def saslprep(string, **opts); end + end +end + +# Mailbox attribute indicating that this mailbox presents all messages in +# the user's message store. Implementations MAY omit some messages, such as, +# perhaps, those in \Trash and \Junk. When this special use is supported, it +# is almost certain to represent a virtual mailbox +# +# pkg:gem/net-imap#lib/net/imap/flags.rb:218 +Net::IMAP::ALL = T.let(T.unsafe(nil), Symbol) + +# Mailbox attribute indicating that this mailbox is used to archive +# messages. The meaning of an "archival" mailbox is server dependent; +# typically, it will be used to get messages out of the inbox, or otherwise +# keep them out of the user's way, while still making them accessible +# +# pkg:gem/net-imap#lib/net/imap/flags.rb:224 +Net::IMAP::ARCHIVE = T.let(T.unsafe(nil), Symbol) + +# >>> +# *NOTE:* AppendUIDData replaced UIDPlusData for +APPENDUID+ in the +# +0.6.0+ release. To use AppendUIDData before +0.6.0+, set +# Config#parser_use_deprecated_uidplus_data to +false+. +# +# AppendUIDData represents the ResponseCode#data that accompanies the +# +APPENDUID+ {response code}[rdoc-ref:ResponseCode]. +# +# A server that supports +UIDPLUS+ (or +IMAP4rev2+) should send +# AppendUIDData inside every TaggedResponse returned by the +# append[rdoc-ref:Net::IMAP#append] command---unless the target mailbox +# reports +UIDNOTSTICKY+. +# +# == Required capability +# Requires either +UIDPLUS+ [RFC4315[https://www.rfc-editor.org/rfc/rfc4315]] +# or +IMAP4rev2+ capability. +# +# pkg:gem/net-imap#lib/net/imap/uidplus_data.rb:22 +class Net::IMAP::AppendUIDData < ::Data + # @return [AppendUIDData] a new instance of AppendUIDData + # + # pkg:gem/net-imap#lib/net/imap/uidplus_data.rb:23 + def initialize(uidvalidity:, assigned_uids:); end + + # Returns the number of messages that have been appended. + # + # pkg:gem/net-imap#lib/net/imap/uidplus_data.rb:45 + def size; end +end + +# pkg:gem/net-imap#lib/net/imap/command_data.rb:137 +class Net::IMAP::Atom < ::Net::IMAP::CommandData + # pkg:gem/net-imap#lib/net/imap/command_data.rb:138 + def send_data(imap, tag); end +end + +# Backward compatible delegators from Net::IMAP to Net::IMAP::SASL. +# +# pkg:gem/net-imap#lib/net/imap/authenticators.rb:4 +module Net::IMAP::Authenticators + # Deprecated. Use Net::IMAP::SASL.add_authenticator instead. + # + # pkg:gem/net-imap#lib/net/imap/authenticators.rb:7 + def add_authenticator(*_arg0, **_arg1, &_arg2); end + + # Deprecated. Use Net::IMAP::SASL.authenticator instead. + # + # pkg:gem/net-imap#lib/net/imap/authenticators.rb:18 + def authenticator(*_arg0, **_arg1, &_arg2); end +end + +# Net::IMAP::BodyStructure is included by all of the structs that can be +# returned from a "BODYSTRUCTURE" or "BODY" +# FetchData#attr value. Although these classes don't share a base class, +# this module can be used to pattern match all of them. +# +# See {[IMAP4rev1] §7.4.2}[https://www.rfc-editor.org/rfc/rfc3501#section-7.4.2] +# and {[IMAP4rev2] §7.5.2}[https://www.rfc-editor.org/rfc/rfc9051#section-7.5.2-4.9] +# for full description of all +BODYSTRUCTURE+ fields, and also +# Net::IMAP@Message+envelope+and+body+structure for other relevant RFCs. +# +# == Classes that include BodyStructure +# BodyTypeBasic:: Represents any message parts that are not handled by +# BodyTypeText, BodyTypeMessage, or BodyTypeMultipart. +# BodyTypeText:: Used by text/* parts. Contains all of the +# BodyTypeBasic fields. +# BodyTypeMessage:: Used by message/rfc822 and +# message/global parts. Contains all of the +# BodyTypeBasic fields. Other message/* types +# should use BodyTypeBasic. +# BodyTypeMultipart:: for multipart/* parts +# +# pkg:gem/net-imap#lib/net/imap/response_data.rb:785 +module Net::IMAP::BodyStructure; end + +# Net::IMAP::BodyTypeBasic represents basic body structures of messages and +# message parts, unless they have a Content-Type that is handled by +# BodyTypeText, BodyTypeMessage, or BodyTypeMultipart. +# +# See {[IMAP4rev1] §7.4.2}[https://www.rfc-editor.org/rfc/rfc3501#section-7.4.2] +# and {[IMAP4rev2] §7.5.2}[https://www.rfc-editor.org/rfc/rfc9051#section-7.5.2-4.9] +# for full description of all +BODYSTRUCTURE+ fields, and also +# Net::IMAP@Message+envelope+and+body+structure for other relevant RFCs. +# +# pkg:gem/net-imap#lib/net/imap/response_data.rb:802 +class Net::IMAP::BodyTypeBasic < ::Struct + include ::Net::IMAP::BodyStructure + + # :call-seq: media_subtype -> subtype + # + # >>> + # [Obsolete] + # Use +subtype+ instead. Calling this will generate a warning message + # to +stderr+, then return the value of +subtype+. + # -- + # TODO: why not just keep this as an alias? Would "media_subtype" be used + # for something else? + # ++ + # + # pkg:gem/net-imap#lib/net/imap/response_data.rb:913 + def media_subtype; end + + # :call-seq: multipart? -> false + # + # BodyTypeBasic is not used for multipart MIME parts. + # + # @return [Boolean] + # + # pkg:gem/net-imap#lib/net/imap/response_data.rb:899 + def multipart?; end +end + +# Net::IMAP::BodyTypeMessage represents the body structures of messages and +# message parts, when Content-Type is message/rfc822 or +# message/global. +# +# BodyTypeMessage contains all of the fields of BodyTypeBasic. See +# BodyTypeBasic for documentation of the following fields: +# * {media_type}[rdoc-ref:BodyTypeBasic#media_type] +# * subtype[rdoc-ref:BodyTypeBasic#subtype] +# * param[rdoc-ref:BodyTypeBasic#param] +# * {content_id}[rdoc-ref:BodyTypeBasic#content_id] +# * description[rdoc-ref:BodyTypeBasic#description] +# * encoding[rdoc-ref:BodyTypeBasic#encoding] +# * size[rdoc-ref:BodyTypeBasic#size] +# +# pkg:gem/net-imap#lib/net/imap/response_data.rb:985 +class Net::IMAP::BodyTypeMessage < ::Struct + include ::Net::IMAP::BodyStructure + + # Obsolete: use +subtype+ instead. Calling this will + # generate a warning message to +stderr+, then return + # the value of +subtype+. + # + # pkg:gem/net-imap#lib/net/imap/response_data.rb:1011 + def media_subtype; end + + # :call-seq: multipart? -> false + # + # BodyTypeMessage is not used for multipart MIME parts. + # + # @return [Boolean] + # + # pkg:gem/net-imap#lib/net/imap/response_data.rb:1004 + def multipart?; end +end + +# Net::IMAP::BodyTypeMultipart represents body structures of messages and +# message parts, when Content-Type is multipart/*. +# +# pkg:gem/net-imap#lib/net/imap/response_data.rb:1023 +class Net::IMAP::BodyTypeMultipart < ::Struct + include ::Net::IMAP::BodyStructure + + # Obsolete: use +subtype+ instead. Calling this will + # generate a warning message to +stderr+, then return + # the value of +subtype+. + # + # pkg:gem/net-imap#lib/net/imap/response_data.rb:1087 + def media_subtype; end + + # :call-seq: multipart? -> true + # + # BodyTypeMultipart is used for multipart MIME parts. + # + # @return [Boolean] + # + # pkg:gem/net-imap#lib/net/imap/response_data.rb:1079 + def multipart?; end +end + +# Net::IMAP::BodyTypeText represents the body structures of messages and +# message parts, when Content-Type is text/*. +# +# BodyTypeText contains all of the fields of BodyTypeBasic. See +# BodyTypeBasic for documentation of the following: +# * {media_type}[rdoc-ref:BodyTypeBasic#media_type] +# * subtype[rdoc-ref:BodyTypeBasic#subtype] +# * param[rdoc-ref:BodyTypeBasic#param] +# * {content_id}[rdoc-ref:BodyTypeBasic#content_id] +# * description[rdoc-ref:BodyTypeBasic#description] +# * encoding[rdoc-ref:BodyTypeBasic#encoding] +# * size[rdoc-ref:BodyTypeBasic#size] +# +# pkg:gem/net-imap#lib/net/imap/response_data.rb:939 +class Net::IMAP::BodyTypeText < ::Struct + include ::Net::IMAP::BodyStructure + + # Obsolete: use +subtype+ instead. Calling this will + # generate a warning message to +stderr+, then return + # the value of +subtype+. + # + # pkg:gem/net-imap#lib/net/imap/response_data.rb:959 + def media_subtype; end + + # :call-seq: multipart? -> false + # + # BodyTypeText is not used for multipart MIME parts. + # + # @return [Boolean] + # + # pkg:gem/net-imap#lib/net/imap/response_data.rb:952 + def multipart?; end +end + +# pkg:gem/net-imap#lib/net/imap/command_data.rb:187 +class Net::IMAP::ClientID < ::Net::IMAP::CommandData + # pkg:gem/net-imap#lib/net/imap/command_data.rb:189 + def send_data(imap, tag); end + + # pkg:gem/net-imap#lib/net/imap/command_data.rb:193 + def validate; end + + private + + # pkg:gem/net-imap#lib/net/imap/command_data.rb:209 + def format_internal(client_id); end + + # pkg:gem/net-imap#lib/net/imap/command_data.rb:199 + def validate_internal(client_id); end +end + +# pkg:gem/net-imap#lib/net/imap/command_data.rb:122 +class Net::IMAP::CommandData < ::Data + # pkg:gem/net-imap#lib/net/imap/command_data.rb:122 + def data; end + + # pkg:gem/net-imap#lib/net/imap/command_data.rb:123 + def send_data(imap, tag); end + + # pkg:gem/net-imap#lib/net/imap/command_data.rb:127 + def validate; end + + class << self + # pkg:gem/net-imap#lib/net/imap/command_data.rb:122 + def [](*_arg0); end + + # pkg:gem/net-imap#lib/net/imap/command_data.rb:122 + def inspect; end + + # pkg:gem/net-imap#lib/net/imap/command_data.rb:122 + def members; end + + # pkg:gem/net-imap#lib/net/imap/command_data.rb:122 + def new(*_arg0); end + end +end + +# Net::IMAP::Config (available since +v0.4.13+) stores +# configuration options for Net::IMAP clients. The global configuration can +# be seen at either Net::IMAP.config or Net::IMAP::Config.global, and the +# client-specific configuration can be seen at Net::IMAP#config. +# +# When creating a new client, all unhandled keyword arguments to +# Net::IMAP.new are delegated to Config.new. Every client has its own +# config. +# +# debug_client = Net::IMAP.new(hostname, debug: true) +# quiet_client = Net::IMAP.new(hostname, debug: false) +# debug_client.config.debug? # => true +# quiet_client.config.debug? # => false +# +# == Inheritance +# +# Configs have a parent[rdoc-ref:Config::AttrInheritance#parent] config, and +# any attributes which have not been set locally will inherit the parent's +# value. Every client creates its own specific config. By default, client +# configs inherit from Config.global. +# +# plain_client = Net::IMAP.new(hostname) +# debug_client = Net::IMAP.new(hostname, debug: true) +# quiet_client = Net::IMAP.new(hostname, debug: false) +# +# plain_client.config.inherited?(:debug) # => true +# debug_client.config.inherited?(:debug) # => false +# quiet_client.config.inherited?(:debug) # => false +# +# plain_client.config.debug? # => false +# debug_client.config.debug? # => true +# quiet_client.config.debug? # => false +# +# # Net::IMAP.debug is delegated to Net::IMAP::Config.global.debug +# Net::IMAP.debug = true +# plain_client.config.debug? # => true +# debug_client.config.debug? # => true +# quiet_client.config.debug? # => false +# +# Net::IMAP.debug = false +# plain_client.config.debug = true +# plain_client.config.inherited?(:debug) # => false +# plain_client.config.debug? # => true +# plain_client.config.reset(:debug) +# plain_client.config.inherited?(:debug) # => true +# plain_client.config.debug? # => false +# +# == Versioned defaults +# +# The effective default configuration for a specific +x.y+ version of +# +net-imap+ can be loaded with the +config+ keyword argument to +# Net::IMAP.new. Requesting default configurations for previous versions +# enables extra backward compatibility with those versions: +# +# client = Net::IMAP.new(hostname, config: 0.3) +# client.config.sasl_ir # => false +# client.config.responses_without_block # => :silence_deprecation_warning +# +# client = Net::IMAP.new(hostname, config: 0.4) +# client.config.sasl_ir # => true +# client.config.responses_without_block # => :silence_deprecation_warning +# +# client = Net::IMAP.new(hostname, config: 0.5) +# client.config.sasl_ir # => true +# client.config.responses_without_block # => :warn +# +# client = Net::IMAP.new(hostname, config: :future) +# client.config.sasl_ir # => true +# client.config.responses_without_block # => :frozen_dup +# +# The versioned default configs inherit certain specific config options from +# Config.global, for example #debug: +# +# client = Net::IMAP.new(hostname, config: 0.4) +# Net::IMAP.debug = false +# client.config.debug? # => false +# +# Net::IMAP.debug = true +# client.config.debug? # => true +# +# Use #load_defaults to globally behave like a specific version: +# client = Net::IMAP.new(hostname) +# client.config.sasl_ir # => true +# Net::IMAP.config.load_defaults 0.3 +# client.config.sasl_ir # => false +# +# === Named defaults +# In addition to +x.y+ version numbers, the following aliases are supported: +# +# [+:default+] +# An alias for +:current+. +# +# >>> +# *NOTE*: This is _not_ the same as Config.default. It inherits some +# attributes from Config.global, for example: #debug. +# [+:current+] +# An alias for the current +x.y+ version's defaults. +# [+:next+] +# The _planned_ config for the next +x.y+ version. +# [+:future+] +# The _planned_ eventual config for some future +x.y+ version. +# +# For example, to disable all currently deprecated behavior: +# client = Net::IMAP.new(hostname, config: :future) +# client.config.response_without_args # => :frozen_dup +# client.responses.frozen? # => true +# client.responses.values.all?(&:frozen?) # => true +# +# == Thread Safety +# +# *NOTE:* Updates to config objects are not synchronized for thread-safety. +# +# pkg:gem/net-imap#lib/net/imap/config/attr_accessors.rb:7 +class Net::IMAP::Config + include ::Net::IMAP::Config::AttrAccessors + include ::Net::IMAP::Config::AttrInheritance + include ::Net::IMAP::Config::AttrTypeCoercion + extend ::Net::IMAP::Config::AttrAccessors::Macros + extend ::Net::IMAP::Config::AttrInheritance::Macros + extend ::Net::IMAP::Config::AttrTypeCoercion::Macros + extend ::Net::IMAP::Config::AttrVersionDefaults + + # Creates a new config object and initialize its attribute with +attrs+. + # + # If +parent+ is not given, the global config is used by default. + # + # If a block is given, the new config object is yielded to it. + # + # @return [Config] a new instance of Config + # @yield [_self] + # @yieldparam _self [Net::IMAP::Config] the object that the method was called on + # + # pkg:gem/net-imap#lib/net/imap/config.rb:432 + def initialize(parent = T.unsafe(nil), **attrs); end + + # Returns a string representation of overriden config attributes and the + # inheritance chain. + # + # Attributes overridden by ancestors are also inspected, recursively. + # Attributes that are inherited from default configs are not shown (see + # Config@Versioned+defaults and Config@Named+defaults). + # + # # (Line breaks have been added to the example output for legibility.) + # + # Net::IMAP::Config.new(0.4) + # .new(open_timeout: 10, enforce_logindisabled: true) + # .inspect + # #=> "#" + # + # Non-default attributes are listed after the ancestor config from which + # they are inherited. + # + # # (Line breaks have been added to the example output for legibility.) + # + # config = Net::IMAP::Config.global + # .new(open_timeout: 10, idle_response_timeout: 2) + # .new(enforce_logindisabled: :when_capabilities_cached, sasl_ir: false) + # config.inspect + # #=> "#" + # + # Net::IMAP.debug = true + # config.inspect + # #=> "#" + # + # Use +pp+ (see #pretty_print) to inspect _all_ config attributes, + # including default values. + # + # Use #to_h to inspect all config attributes ignoring inheritance. + # + # pkg:gem/net-imap#lib/net/imap/config.rb:536 + def inspect; end + + # :call-seq: load_defaults(version) -> self + # + # Resets the current config to behave like the versioned default + # configuration for +version+. #parent will not be changed. + # + # Some config attributes default to inheriting from their #parent (which + # is usually Config.global) and are left unchanged, for example: #debug. + # + # See Config@Versioned+defaults and Config@Named+defaults. + # + # pkg:gem/net-imap#lib/net/imap/config.rb:483 + def load_defaults(version); end + + # Used by PP[https://docs.ruby-lang.org/en/master/PP.html] to create a + # string representation of all config attributes and the inheritance + # chain. Inherited attributes are listed with the ancestor config from + # which they are inherited. + # + # pp Config.new[0.4].new(open_timeout: 10, idle_response_timeout: 10) + # # # + # + # Related: #inspect, #to_h. + # + # pkg:gem/net-imap#lib/net/imap/config.rb:562 + def pretty_print(pp); end + + # pkg:gem/net-imap#lib/net/imap/config.rb:355 + def responses_without_args; end + + # pkg:gem/net-imap#lib/net/imap/config.rb:356 + def responses_without_args=(val); end + + # :stopdoc: + # + # pkg:gem/net-imap#lib/net/imap/config.rb:254 + def sasl_ir?; end + + # :call-seq: to_h -> hash + # + # Returns all config attributes in a hash. + # + # pkg:gem/net-imap#lib/net/imap/config.rb:492 + def to_h; end + + # Returns a string representation of overriden config attributes and the + # inheritance chain. + # + # Attributes overridden by ancestors are also inspected, recursively. + # Attributes that are inherited from default configs are not shown (see + # Config@Versioned+defaults and Config@Named+defaults). + # + # # (Line breaks have been added to the example output for legibility.) + # + # Net::IMAP::Config.new(0.4) + # .new(open_timeout: 10, enforce_logindisabled: true) + # .inspect + # #=> "#" + # + # Non-default attributes are listed after the ancestor config from which + # they are inherited. + # + # # (Line breaks have been added to the example output for legibility.) + # + # config = Net::IMAP::Config.global + # .new(open_timeout: 10, idle_response_timeout: 2) + # .new(enforce_logindisabled: :when_capabilities_cached, sasl_ir: false) + # config.inspect + # #=> "#" + # + # Net::IMAP.debug = true + # config.inspect + # #=> "#" + # + # Use +pp+ (see #pretty_print) to inspect _all_ config attributes, + # including default values. + # + # Use #to_h to inspect all config attributes ignoring inheritance. + # + # pkg:gem/net-imap#lib/net/imap/config.rb:539 + def to_s; end + + # :call-seq: update(**attrs) -> self + # + # Assigns all of the provided +attrs+ to this config, and returns +self+. + # + # An ArgumentError is raised unless every key in +attrs+ matches an + # assignment method on Config. + # + # >>> + # *NOTE:* #update is not atomic. If an exception is raised due to an + # invalid attribute value, +attrs+ may be partially applied. + # + # pkg:gem/net-imap#lib/net/imap/config.rb:448 + def update(**attrs); end + + # :call-seq: + # with(**attrs) -> config + # with(**attrs) {|config| } -> result + # + # Without a block, returns a new config which inherits from self. With a + # block, yields the new config and returns the block's result. + # + # If no keyword arguments are given, an ArgumentError will be raised. + # + # If +self+ is frozen, the copy will also be frozen. + # + # pkg:gem/net-imap#lib/net/imap/config.rb:466 + def with(**attrs); end + + protected + + # pkg:gem/net-imap#lib/net/imap/config.rb:625 + def assigned_attrs_hash(attrs); end + + # pkg:gem/net-imap#lib/net/imap/config.rb:630 + def defaults_hash; end + + # pkg:gem/net-imap#lib/net/imap/config.rb:589 + def inspect_recursive(attrs = T.unsafe(nil)); end + + # pkg:gem/net-imap#lib/net/imap/config.rb:577 + def name; end + + # @return [Boolean] + # + # pkg:gem/net-imap#lib/net/imap/config.rb:572 + def named_default?; end + + # pkg:gem/net-imap#lib/net/imap/config.rb:605 + def pretty_print_recursive(pp, attrs = T.unsafe(nil)); end + + class << self + # :call-seq: + # Net::IMAP::Config[number] -> versioned config + # Net::IMAP::Config[symbol] -> named config + # Net::IMAP::Config[hash] -> new frozen config + # Net::IMAP::Config[config] -> same config + # + # Given a version number, returns the default configuration for the target + # version. See Config@Versioned+defaults. + # + # Given a version name, returns the default configuration for the target + # version. See Config@Named+defaults. + # + # Given a Hash, creates a new _frozen_ config which inherits from + # Config.global. Use Config.new for an unfrozen config. + # + # Given a config, returns that same config. + # + # pkg:gem/net-imap#lib/net/imap/config.rb:163 + def [](config); end + + # The default config, which is hardcoded and frozen. + # + # pkg:gem/net-imap#lib/net/imap/config.rb:129 + def default; end + + # The global config object. Also available from Net::IMAP.config. + # + # pkg:gem/net-imap#lib/net/imap/config.rb:132 + def global; end + + # A hash of hard-coded configurations, indexed by version number or name. + # Values can be accessed with any object that responds to +to_sym+ or + # +to_r+/+to_f+ with a non-zero number. + # + # Config::[] gets named or numbered versions from this hash. + # + # For example: + # Net::IMAP::Config.version_defaults[0.5] == Net::IMAP::Config[0.5] + # Net::IMAP::Config[0.5] == Net::IMAP::Config[0.5r] # => true + # Net::IMAP::Config["current"] == Net::IMAP::Config[:current] # => true + # Net::IMAP::Config["0.5.6"] == Net::IMAP::Config[0.5r] # => true + # + # pkg:gem/net-imap#lib/net/imap/config.rb:145 + def version_defaults; end + end +end + +# >>> +# *NOTE:* This module is an internal implementation detail, with no +# guarantee of backward compatibility. +# +# +attr_accessor+ values are stored in a struct rather than ivars, making +# it simpler to ensure that all config objects share a single object +# shape. This also simplifies iteration over all defined attributes. +# +# pkg:gem/net-imap#lib/net/imap/config/attr_accessors.rb:15 +module Net::IMAP::Config::AttrAccessors + extend ::Forwardable + + mixes_in_class_methods ::Net::IMAP::Config::AttrAccessors::Macros + + # :notnew: + # + # pkg:gem/net-imap#lib/net/imap/config/attr_accessors.rb:45 + def initialize; end + + # pkg:gem/net-imap#lib/net/imap/config.rb:197 + def debug(*_arg0, **_arg1, &_arg2); end + + # pkg:gem/net-imap#lib/net/imap/config.rb:197 + def debug=(*_arg0, **_arg1, &_arg2); end + + # pkg:gem/net-imap#lib/net/imap/config.rb:277 + def enforce_logindisabled(*_arg0, **_arg1, &_arg2); end + + # pkg:gem/net-imap#lib/net/imap/config.rb:277 + def enforce_logindisabled=(*_arg0, **_arg1, &_arg2); end + + # Freezes the internal attributes struct, in addition to +self+. + # + # pkg:gem/net-imap#lib/net/imap/config/attr_accessors.rb:51 + def freeze; end + + # pkg:gem/net-imap#lib/net/imap/config.rb:223 + def idle_response_timeout(*_arg0, **_arg1, &_arg2); end + + # pkg:gem/net-imap#lib/net/imap/config.rb:223 + def idle_response_timeout=(*_arg0, **_arg1, &_arg2); end + + # pkg:gem/net-imap#lib/net/imap/config.rb:316 + def max_response_size(*_arg0, **_arg1, &_arg2); end + + # pkg:gem/net-imap#lib/net/imap/config.rb:316 + def max_response_size=(*_arg0, **_arg1, &_arg2); end + + # pkg:gem/net-imap#lib/net/imap/config.rb:215 + def open_timeout(*_arg0, **_arg1, &_arg2); end + + # pkg:gem/net-imap#lib/net/imap/config.rb:215 + def open_timeout=(*_arg0, **_arg1, &_arg2); end + + # pkg:gem/net-imap#lib/net/imap/config.rb:419 + def parser_max_deprecated_uidplus_data_size(*_arg0, **_arg1, &_arg2); end + + # pkg:gem/net-imap#lib/net/imap/config.rb:419 + def parser_max_deprecated_uidplus_data_size=(*_arg0, **_arg1, &_arg2); end + + # pkg:gem/net-imap#lib/net/imap/config.rb:389 + def parser_use_deprecated_uidplus_data(*_arg0, **_arg1, &_arg2); end + + # pkg:gem/net-imap#lib/net/imap/config.rb:389 + def parser_use_deprecated_uidplus_data=(*_arg0, **_arg1, &_arg2); end + + # pkg:gem/net-imap#lib/net/imap/config.rb:347 + def responses_without_block(*_arg0, **_arg1, &_arg2); end + + # pkg:gem/net-imap#lib/net/imap/config.rb:347 + def responses_without_block=(*_arg0, **_arg1, &_arg2); end + + # pkg:gem/net-imap#lib/net/imap/config.rb:246 + def sasl_ir(*_arg0, **_arg1, &_arg2); end + + # pkg:gem/net-imap#lib/net/imap/config.rb:246 + def sasl_ir=(*_arg0, **_arg1, &_arg2); end + + protected + + # pkg:gem/net-imap#lib/net/imap/config/attr_accessors.rb:58 + def data; end + + private + + # pkg:gem/net-imap#lib/net/imap/config/attr_accessors.rb:62 + def initialize_clone(other); end + + # pkg:gem/net-imap#lib/net/imap/config/attr_accessors.rb:67 + def initialize_dup(other); end + + class << self + # pkg:gem/net-imap#lib/net/imap/config/attr_accessors.rb:28 + def attr_accessor(name); end + + # pkg:gem/net-imap#lib/net/imap/config/attr_accessors.rb:38 + def struct; end + + private + + # pkg:gem/net-imap#lib/net/imap/config/attr_accessors.rb:33 + def attributes; end + + # @private + # + # pkg:gem/net-imap#lib/net/imap/config/attr_accessors.rb:21 + def included(mod); end + end +end + +# pkg:gem/net-imap#lib/net/imap/config/attr_accessors.rb:16 +module Net::IMAP::Config::AttrAccessors::Macros + # pkg:gem/net-imap#lib/net/imap/config/attr_accessors.rb:17 + def attr_accessor(name); end +end + +# pkg:gem/net-imap#lib/net/imap/config.rb:433 +class Net::IMAP::Config::AttrAccessors::Struct < ::Struct + # pkg:gem/net-imap#lib/net/imap/config.rb:433 + def debug; end + + # pkg:gem/net-imap#lib/net/imap/config.rb:433 + def debug=(_); end + + # pkg:gem/net-imap#lib/net/imap/config.rb:433 + def enforce_logindisabled; end + + # pkg:gem/net-imap#lib/net/imap/config.rb:433 + def enforce_logindisabled=(_); end + + # pkg:gem/net-imap#lib/net/imap/config.rb:433 + def idle_response_timeout; end + + # pkg:gem/net-imap#lib/net/imap/config.rb:433 + def idle_response_timeout=(_); end + + # pkg:gem/net-imap#lib/net/imap/config.rb:433 + def max_response_size; end + + # pkg:gem/net-imap#lib/net/imap/config.rb:433 + def max_response_size=(_); end + + # pkg:gem/net-imap#lib/net/imap/config.rb:433 + def open_timeout; end + + # pkg:gem/net-imap#lib/net/imap/config.rb:433 + def open_timeout=(_); end + + # pkg:gem/net-imap#lib/net/imap/config.rb:433 + def parser_max_deprecated_uidplus_data_size; end + + # pkg:gem/net-imap#lib/net/imap/config.rb:433 + def parser_max_deprecated_uidplus_data_size=(_); end + + # pkg:gem/net-imap#lib/net/imap/config.rb:433 + def parser_use_deprecated_uidplus_data; end + + # pkg:gem/net-imap#lib/net/imap/config.rb:433 + def parser_use_deprecated_uidplus_data=(_); end + + # pkg:gem/net-imap#lib/net/imap/config.rb:433 + def responses_without_block; end + + # pkg:gem/net-imap#lib/net/imap/config.rb:433 + def responses_without_block=(_); end + + # pkg:gem/net-imap#lib/net/imap/config.rb:433 + def sasl_ir; end + + # pkg:gem/net-imap#lib/net/imap/config.rb:433 + def sasl_ir=(_); end + + class << self + # pkg:gem/net-imap#lib/net/imap/config.rb:433 + def [](*_arg0); end + + # pkg:gem/net-imap#lib/net/imap/config.rb:433 + def inspect; end + + # pkg:gem/net-imap#lib/net/imap/config.rb:433 + def keyword_init?; end + + # pkg:gem/net-imap#lib/net/imap/config.rb:433 + def members; end + + # pkg:gem/net-imap#lib/net/imap/config.rb:433 + def new(*_arg0); end + end +end + +# >>> +# *NOTE:* The public methods on this module are part of the stable +# public API of Net::IMAP::Config. But the module itself is an internal +# implementation detail, with no guarantee of backward compatibility. +# +# +attr_accessor+ methods will delegate to their #parent when the local +# value does not contain an override. Inheritance forms a singly linked +# list, so lookup will be O(n) on the number of ancestors. In +# practice, the ancestor chain is not expected to be long. Without +# customization, it is only three deep: +# >>> +# IMAP#config → Config.global → Config.default +# +# When creating a client with the +config+ keyword, for example to use +# the appropriate defaults for an application or a library while still +# relying on global for configuration of +debug+ or +logger+, most likely +# the ancestor chain is still only four deep: +# >>> +# IMAP#config → alternate defaults → Config.global → Config.default +# +# pkg:gem/net-imap#lib/net/imap/config/attr_inheritance.rb:25 +module Net::IMAP::Config::AttrInheritance + mixes_in_class_methods ::Net::IMAP::Config::AttrInheritance::Macros + + # :notnew: + # + # pkg:gem/net-imap#lib/net/imap/config/attr_inheritance.rb:48 + def initialize(parent = T.unsafe(nil)); end + + # pkg:gem/net-imap#lib/net/imap/config.rb:197 + def debug; end + + # pkg:gem/net-imap#lib/net/imap/config.rb:277 + def enforce_logindisabled; end + + # pkg:gem/net-imap#lib/net/imap/config.rb:223 + def idle_response_timeout; end + + # :call-seq: + # inherited?(attr) -> true or false + # inherited?(*attrs) -> true or false + # inherited? -> true or false + # + # Returns +true+ if +attr+ is inherited from #parent and not overridden + # by this config. + # + # When multiple +attrs+ are given, returns +true+ if *all* of them are + # inherited, or +false+ if any of them are overriden. When no +attrs+ + # are given, returns +true+ if *all* attributes are inherited, or + # +false+ if any attribute is overriden. + # + # @return [Boolean] + # + # pkg:gem/net-imap#lib/net/imap/config/attr_inheritance.rb:69 + def inherited?(*attrs); end + + # pkg:gem/net-imap#lib/net/imap/config.rb:316 + def max_response_size; end + + # Creates a new config, which inherits from +self+. + # + # pkg:gem/net-imap#lib/net/imap/config/attr_inheritance.rb:55 + def new(**attrs); end + + # pkg:gem/net-imap#lib/net/imap/config.rb:215 + def open_timeout; end + + # The parent Config object + # + # pkg:gem/net-imap#lib/net/imap/config/attr_inheritance.rb:46 + def parent; end + + # pkg:gem/net-imap#lib/net/imap/config.rb:419 + def parser_max_deprecated_uidplus_data_size; end + + # pkg:gem/net-imap#lib/net/imap/config.rb:389 + def parser_use_deprecated_uidplus_data; end + + # :call-seq: + # reset -> self + # reset(attr) -> attribute value + # + # Resets an +attr+ to inherit from the #parent config. + # + # When +attr+ is nil or not given, all attributes are reset. + # + # pkg:gem/net-imap#lib/net/imap/config/attr_inheritance.rb:81 + def reset(attr = T.unsafe(nil)); end + + # pkg:gem/net-imap#lib/net/imap/config.rb:347 + def responses_without_block; end + + # pkg:gem/net-imap#lib/net/imap/config.rb:246 + def sasl_ir; end + + private + + # pkg:gem/net-imap#lib/net/imap/config/attr_inheritance.rb:95 + def initialize_copy(other); end + + class << self + # pkg:gem/net-imap#lib/net/imap/config/attr_inheritance.rb:39 + def attr_accessor(name); end + + private + + # @private + # + # pkg:gem/net-imap#lib/net/imap/config/attr_inheritance.rb:34 + def included(mod); end + end +end + +# pkg:gem/net-imap#lib/net/imap/config/attr_inheritance.rb:26 +module Net::IMAP::Config::AttrInheritance::INHERITED; end + +# pkg:gem/net-imap#lib/net/imap/config/attr_inheritance.rb:29 +module Net::IMAP::Config::AttrInheritance::Macros + # pkg:gem/net-imap#lib/net/imap/config/attr_inheritance.rb:30 + def attr_accessor(name); end +end + +# pkg:gem/net-imap#lib/net/imap/config/attr_type_coercion.rb:13 +module Net::IMAP::Config::AttrTypeCoercion + mixes_in_class_methods ::Net::IMAP::Config::AttrTypeCoercion::Macros + + # pkg:gem/net-imap#lib/net/imap/config.rb:197 + def debug=(val); end + + # pkg:gem/net-imap#lib/net/imap/config.rb:197 + def debug?; end + + # pkg:gem/net-imap#lib/net/imap/config.rb:277 + def enforce_logindisabled=(val); end + + # pkg:gem/net-imap#lib/net/imap/config.rb:223 + def idle_response_timeout=(val); end + + # pkg:gem/net-imap#lib/net/imap/config.rb:316 + def max_response_size=(val); end + + # pkg:gem/net-imap#lib/net/imap/config.rb:215 + def open_timeout=(val); end + + # pkg:gem/net-imap#lib/net/imap/config.rb:419 + def parser_max_deprecated_uidplus_data_size=(val); end + + # pkg:gem/net-imap#lib/net/imap/config.rb:389 + def parser_use_deprecated_uidplus_data=(val); end + + # pkg:gem/net-imap#lib/net/imap/config.rb:347 + def responses_without_block=(val); end + + # pkg:gem/net-imap#lib/net/imap/config.rb:246 + def sasl_ir=(val); end + + class << self + # pkg:gem/net-imap#lib/net/imap/config/attr_type_coercion.rb:54 + def attr_accessor(attr, type: T.unsafe(nil)); end + + private + + # pkg:gem/net-imap#lib/net/imap/config/attr_type_coercion.rb:26 + def included(mod); end + + # pkg:gem/net-imap#lib/net/imap/config/attr_type_coercion.rb:32 + def safe(&b); end + end +end + +# pkg:gem/net-imap#lib/net/imap/config/attr_type_coercion.rb:51 +Net::IMAP::Config::AttrTypeCoercion::Boolean = T.let(T.unsafe(nil), Proc) + +# pkg:gem/net-imap#lib/net/imap/config/attr_type_coercion.rb:62 +Net::IMAP::Config::AttrTypeCoercion::Enum = T.let(T.unsafe(nil), Proc) + +# pkg:gem/net-imap#lib/net/imap/config/attr_type_coercion.rb:16 +module Net::IMAP::Config::AttrTypeCoercion::Macros + # pkg:gem/net-imap#lib/net/imap/config/attr_type_coercion.rb:17 + def attr_accessor(attr, type: T.unsafe(nil)); end + + private + + # pkg:gem/net-imap#lib/net/imap/config/attr_type_coercion.rb:22 + def Integer?; end + + class << self + # pkg:gem/net-imap#lib/net/imap/config/attr_type_coercion.rb:22 + def Integer?; end + end +end + +# pkg:gem/net-imap#lib/net/imap/config/attr_type_coercion.rb:60 +Net::IMAP::Config::AttrTypeCoercion::NilOrInteger = T.let(T.unsafe(nil), Proc) + +# pkg:gem/net-imap#lib/net/imap/config/attr_type_coercion.rb:50 +Net::IMAP::Config::AttrTypeCoercion::Types = T.let(T.unsafe(nil), Hash) + +# >>> +# *NOTE:* This module is an internal implementation detail, with no +# guarantee of backward compatibility. +# +# Adds a +defaults+ parameter to +attr_accessor+, which is used to compile +# Config.version_defaults. +# +# pkg:gem/net-imap#lib/net/imap/config/attr_version_defaults.rb:14 +module Net::IMAP::Config::AttrVersionDefaults + # :stopdoc: internal APIs only + # + # pkg:gem/net-imap#lib/net/imap/config/attr_version_defaults.rb:40 + def attr_accessor(name, defaults: T.unsafe(nil), default: T.unsafe(nil), **kw); end + + class << self + # pkg:gem/net-imap#lib/net/imap/config/attr_version_defaults.rb:52 + def compile_default!; end + + # pkg:gem/net-imap#lib/net/imap/config/attr_version_defaults.rb:61 + def compile_version_defaults!; end + + # pkg:gem/net-imap#lib/net/imap/config/attr_version_defaults.rb:27 + def version_defaults; end + + # pkg:gem/net-imap#lib/net/imap/config/attr_version_defaults.rb:27 + def version_defaults=(_arg0); end + end +end + +# The x.y part of Net::IMAP::VERSION, as a Rational number. +# +# pkg:gem/net-imap#lib/net/imap/config/attr_version_defaults.rb:16 +Net::IMAP::Config::AttrVersionDefaults::CURRENT_VERSION = T.let(T.unsafe(nil), Rational) + +# pkg:gem/net-imap#lib/net/imap/config/attr_version_defaults.rb:22 +Net::IMAP::Config::AttrVersionDefaults::FUTURE_VERSION = T.let(T.unsafe(nil), Rational) + +# The config version used for Config[:next]. +# +# pkg:gem/net-imap#lib/net/imap/config/attr_version_defaults.rb:19 +Net::IMAP::Config::AttrVersionDefaults::NEXT_VERSION = T.let(T.unsafe(nil), Rational) + +# pkg:gem/net-imap#lib/net/imap/config/attr_version_defaults.rb:24 +Net::IMAP::Config::AttrVersionDefaults::VERSIONS = T.let(T.unsafe(nil), Array) + +# Array of attribute names that are _not_ loaded by #load_defaults. +# +# pkg:gem/net-imap#lib/net/imap/config.rb:125 +Net::IMAP::Config::DEFAULT_TO_INHERIT = T.let(T.unsafe(nil), Array) + +# pkg:gem/net-imap#lib/net/imap/connection_state.rb:5 +class Net::IMAP::ConnectionState < ::Data + # @return [Boolean] + # + # pkg:gem/net-imap#lib/net/imap/connection_state.rb:32 + def authenticated?; end + + # pkg:gem/net-imap#lib/net/imap/connection_state.rb:17 + def deconstruct; end + + # pkg:gem/net-imap#lib/net/imap/connection_state.rb:19 + def deconstruct_keys(names); end + + # @return [Boolean] + # + # pkg:gem/net-imap#lib/net/imap/connection_state.rb:34 + def logout?; end + + # pkg:gem/net-imap#lib/net/imap/connection_state.rb:14 + def name; end + + # @return [Boolean] + # + # pkg:gem/net-imap#lib/net/imap/connection_state.rb:31 + def not_authenticated?; end + + # @return [Boolean] + # + # pkg:gem/net-imap#lib/net/imap/connection_state.rb:33 + def selected?; end + + # pkg:gem/net-imap#lib/net/imap/connection_state.rb:13 + def symbol; end + + # pkg:gem/net-imap#lib/net/imap/connection_state.rb:26 + def to_h(&block); end + + # pkg:gem/net-imap#lib/net/imap/connection_state.rb:15 + def to_sym; end +end + +# pkg:gem/net-imap#lib/net/imap/connection_state.rb:37 +class Net::IMAP::ConnectionState::Authenticated < ::Net::IMAP::ConnectionState + class << self + # pkg:gem/net-imap#lib/net/imap/connection_state.rb:8 + def [](*_arg0); end + + # pkg:gem/net-imap#lib/net/imap/connection_state.rb:8 + def inspect; end + + # pkg:gem/net-imap#lib/net/imap/connection_state.rb:8 + def members; end + + # pkg:gem/net-imap#lib/net/imap/connection_state.rb:8 + def new(*_arg0); end + end +end + +# pkg:gem/net-imap#lib/net/imap/connection_state.rb:9 +Net::IMAP::ConnectionState::Authenticated::NAME = T.let(T.unsafe(nil), Symbol) + +# pkg:gem/net-imap#lib/net/imap/connection_state.rb:39 +class Net::IMAP::ConnectionState::Logout < ::Net::IMAP::ConnectionState + class << self + # pkg:gem/net-imap#lib/net/imap/connection_state.rb:8 + def [](*_arg0); end + + # pkg:gem/net-imap#lib/net/imap/connection_state.rb:8 + def inspect; end + + # pkg:gem/net-imap#lib/net/imap/connection_state.rb:8 + def members; end + + # pkg:gem/net-imap#lib/net/imap/connection_state.rb:8 + def new(*_arg0); end + end +end + +# pkg:gem/net-imap#lib/net/imap/connection_state.rb:9 +Net::IMAP::ConnectionState::Logout::NAME = T.let(T.unsafe(nil), Symbol) + +# pkg:gem/net-imap#lib/net/imap/connection_state.rb:36 +class Net::IMAP::ConnectionState::NotAuthenticated < ::Net::IMAP::ConnectionState + class << self + # pkg:gem/net-imap#lib/net/imap/connection_state.rb:8 + def [](*_arg0); end + + # pkg:gem/net-imap#lib/net/imap/connection_state.rb:8 + def inspect; end + + # pkg:gem/net-imap#lib/net/imap/connection_state.rb:8 + def members; end + + # pkg:gem/net-imap#lib/net/imap/connection_state.rb:8 + def new(*_arg0); end + end +end + +# pkg:gem/net-imap#lib/net/imap/connection_state.rb:9 +Net::IMAP::ConnectionState::NotAuthenticated::NAME = T.let(T.unsafe(nil), Symbol) + +# pkg:gem/net-imap#lib/net/imap/connection_state.rb:38 +class Net::IMAP::ConnectionState::Selected < ::Net::IMAP::ConnectionState + class << self + # pkg:gem/net-imap#lib/net/imap/connection_state.rb:8 + def [](*_arg0); end + + # pkg:gem/net-imap#lib/net/imap/connection_state.rb:8 + def inspect; end + + # pkg:gem/net-imap#lib/net/imap/connection_state.rb:8 + def members; end + + # pkg:gem/net-imap#lib/net/imap/connection_state.rb:8 + def new(*_arg0); end + end +end + +# pkg:gem/net-imap#lib/net/imap/connection_state.rb:9 +Net::IMAP::ConnectionState::Selected::NAME = T.let(T.unsafe(nil), Symbol) + +# >>> +# *NOTE:* CopyUIDData replaced UIDPlusData for +COPYUID+ in the +# +0.6.0+ release. To use CopyUIDData before +0.6.0+, set +# Config#parser_use_deprecated_uidplus_data to +false+. +# +# CopyUIDData represents the ResponseCode#data that accompanies the +# +COPYUID+ {response code}[rdoc-ref:ResponseCode]. +# +# A server that supports +UIDPLUS+ (or +IMAP4rev2+) should send CopyUIDData +# in response to +# copy[rdoc-ref:Net::IMAP#copy], {uid_copy}[rdoc-ref:Net::IMAP#uid_copy], +# move[rdoc-ref:Net::IMAP#copy], and {uid_move}[rdoc-ref:Net::IMAP#uid_move] +# commands---unless the destination mailbox reports +UIDNOTSTICKY+. +# +# Note that copy[rdoc-ref:Net::IMAP#copy] and +# {uid_copy}[rdoc-ref:Net::IMAP#uid_copy] return CopyUIDData in their +# TaggedResponse. But move[rdoc-ref:Net::IMAP#copy] and +# {uid_move}[rdoc-ref:Net::IMAP#uid_move] _should_ send CopyUIDData in an +# UntaggedResponse response before sending their TaggedResponse. However +# some servers do send CopyUIDData in the TaggedResponse for +MOVE+ +# commands---this complies with the older +UIDPLUS+ specification but is +# discouraged by the +MOVE+ extension and disallowed by +IMAP4rev2+. +# +# == Required capability +# Requires either +UIDPLUS+ [RFC4315[https://www.rfc-editor.org/rfc/rfc4315]] +# or +IMAP4rev2+ capability. +# +# pkg:gem/net-imap#lib/net/imap/uidplus_data.rb:76 +class Net::IMAP::CopyUIDData < ::Data + # @return [CopyUIDData] a new instance of CopyUIDData + # + # pkg:gem/net-imap#lib/net/imap/uidplus_data.rb:77 + def initialize(uidvalidity:, source_uids:, assigned_uids:); end + + # :call-seq: + # assigned_uid_for(source_uid) -> uid + # self[source_uid] -> uid + # + # Returns the UID in the destination mailbox for the message that was + # copied from +source_uid+ in the source mailbox. + # + # This is the reverse of #source_uid_for. + # + # Related: source_uid_for, each_uid_pair, uid_mapping + # + # pkg:gem/net-imap#lib/net/imap/uidplus_data.rb:129 + def [](source_uid); end + + # :call-seq: + # assigned_uid_for(source_uid) -> uid + # self[source_uid] -> uid + # + # Returns the UID in the destination mailbox for the message that was + # copied from +source_uid+ in the source mailbox. + # + # This is the reverse of #source_uid_for. + # + # Related: source_uid_for, each_uid_pair, uid_mapping + # + # pkg:gem/net-imap#lib/net/imap/uidplus_data.rb:125 + def assigned_uid_for(source_uid); end + + # Yields a pair of UIDs for each copied message. The first is the + # message's UID in the source mailbox and the second is the UID in the + # destination mailbox. + # + # Returns an enumerator when no block is given. + # + # Please note the warning on uid_mapping before calling methods like + # +to_h+ or +to_a+ on the returned enumerator. + # + # Related: uid_mapping, assigned_uid_for, source_uid_for + # + # pkg:gem/net-imap#lib/net/imap/uidplus_data.rb:164 + def each; end + + # Yields a pair of UIDs for each copied message. The first is the + # message's UID in the source mailbox and the second is the UID in the + # destination mailbox. + # + # Returns an enumerator when no block is given. + # + # Please note the warning on uid_mapping before calling methods like + # +to_h+ or +to_a+ on the returned enumerator. + # + # Related: uid_mapping, assigned_uid_for, source_uid_for + # + # pkg:gem/net-imap#lib/net/imap/uidplus_data.rb:163 + def each_pair; end + + # Yields a pair of UIDs for each copied message. The first is the + # message's UID in the source mailbox and the second is the UID in the + # destination mailbox. + # + # Returns an enumerator when no block is given. + # + # Please note the warning on uid_mapping before calling methods like + # +to_h+ or +to_a+ on the returned enumerator. + # + # Related: uid_mapping, assigned_uid_for, source_uid_for + # + # pkg:gem/net-imap#lib/net/imap/uidplus_data.rb:155 + def each_uid_pair; end + + # Returns the number of messages that have been copied or moved. + # source_uids and the assigned_uids will both the same number of UIDs. + # + # pkg:gem/net-imap#lib/net/imap/uidplus_data.rb:111 + def size; end + + # :call-seq: + # source_uid_for(assigned_uid) -> uid + # + # Returns the UID in the source mailbox for the message that was copied to + # +assigned_uid+ in the source mailbox. + # + # This is the reverse of #assigned_uid_for. + # + # Related: assigned_uid_for, each_uid_pair, uid_mapping + # + # pkg:gem/net-imap#lib/net/imap/uidplus_data.rb:140 + def source_uid_for(assigned_uid); end + + # :call-seq: uid_mapping -> hash + # + # Returns a hash mapping each source UID to the newly assigned destination + # UID. + # + # *Warning:* The hash that is created may consume _much_ more + # memory than the data used to create it. When handling responses from an + # untrusted server, check #size before calling this method. + # + # Related: each_uid_pair, assigned_uid_for, source_uid_for + # + # pkg:gem/net-imap#lib/net/imap/uidplus_data.rb:176 + def uid_mapping; end +end + +# Mailbox attribute indicating that this mailbox is used to hold draft +# messages -- typically, messages that are being composed but have not yet +# been sent. In some server implementations, this might be a virtual +# mailbox, containing messages from other mailboxes that are marked with the +# "\Draft" message flag. Alternatively, this might just be advice that a +# client put drafts here +# +# pkg:gem/net-imap#lib/net/imap/flags.rb:232 +Net::IMAP::DRAFTS = T.let(T.unsafe(nil), Symbol) + +# This module handles deprecated arguments to various Net::IMAP methods. +# +# pkg:gem/net-imap#lib/net/imap/deprecated_client_options.rb:7 +module Net::IMAP::DeprecatedClientOptions + # :call-seq: + # Net::IMAP.new(host, **options) # standard keyword options + # Net::IMAP.new(host, options) # obsolete hash options + # Net::IMAP.new(host, port) # obsolete port argument + # Net::IMAP.new(host, port, usessl, certs = nil, verify = true) # deprecated SSL arguments + # + # Translates Net::IMAP.new arguments for backward compatibility. + # + # ==== Obsolete arguments + # + # Use of obsolete arguments does not print a warning. Obsolete arguments + # will be deprecated by a future release. + # + # If a second positional argument is given and it is a hash (or is + # convertible via +#to_hash+), it is converted to keyword arguments. + # + # # Obsolete: + # Net::IMAP.new("imap.example.com", options_hash) + # # Use instead: + # Net::IMAP.new("imap.example.com", **options_hash) + # + # If a second positional argument is given and it is not a hash, it is + # converted to the +port+ keyword argument. + # # Obsolete: + # Net::IMAP.new("imap.example.com", 114433) + # # Use instead: + # Net::IMAP.new("imap.example.com", port: 114433) + # + # ==== Deprecated arguments + # + # Using deprecated arguments prints a warning. Convert to keyword + # arguments to avoid the warning. Deprecated arguments will be removed in + # a future release. + # + # If +usessl+ is false, +certs+, and +verify+ are ignored. When it true, + # all three arguments are converted to the +ssl+ keyword argument. + # Without +certs+ or +verify+, it is converted to ssl: true. + # # DEPRECATED: + # Net::IMAP.new("imap.example.com", nil, true) # => prints a warning + # # Use instead: + # Net::IMAP.new("imap.example.com", ssl: true) + # + # When +certs+ is a path to a directory, it is converted to ca_path: + # certs. + # # DEPRECATED: + # Net::IMAP.new("imap.example.com", nil, true, "/path/to/certs") # => prints a warning + # # Use instead: + # Net::IMAP.new("imap.example.com", ssl: {ca_path: "/path/to/certs"}) + # + # When +certs+ is a path to a file, it is converted to ca_file: + # certs. + # # DEPRECATED: + # Net::IMAP.new("imap.example.com", nil, true, "/path/to/cert.pem") # => prints a warning + # # Use instead: + # Net::IMAP.new("imap.example.com", ssl: {ca_file: "/path/to/cert.pem"}) + # + # When +verify+ is +false+, it is converted to verify_mode: + # OpenSSL::SSL::VERIFY_NONE. + # # DEPRECATED: + # Net::IMAP.new("imap.example.com", nil, true, nil, false) # => prints a warning + # # Use instead: + # Net::IMAP.new("imap.example.com", ssl: {verify_mode: OpenSSL::SSL::VERIFY_NONE}) + # + # pkg:gem/net-imap#lib/net/imap/deprecated_client_options.rb:72 + def initialize(host, port_or_options = T.unsafe(nil), *deprecated, **options); end + + # :call-seq: + # starttls(**options) # standard + # starttls(options = {}) # obsolete + # starttls(certs = nil, verify = true) # deprecated + # + # Translates Net::IMAP#starttls arguments for backward compatibility. + # + # Support for +certs+ and +verify+ will be dropped in a future release. + # + # See ::new for interpretation of +certs+ and +verify+. + # + # pkg:gem/net-imap#lib/net/imap/deprecated_client_options.rb:106 + def starttls(*deprecated, **options); end + + private + + # pkg:gem/net-imap#lib/net/imap/deprecated_client_options.rb:126 + def create_ssl_params(certs = T.unsafe(nil), verify = T.unsafe(nil)); end +end + +# pkg:gem/net-imap#lib/net/imap.rb:794 +Net::IMAP::ENABLE_ALIASES = T.let(T.unsafe(nil), Hash) + +# An "extended search" response (+ESEARCH+). ESearchResult should be +# returned (instead of SearchResult) by IMAP#search, IMAP#uid_search, +# IMAP#sort, and IMAP#uid_sort under any of the following conditions: +# +# * Return options were specified for IMAP#search or IMAP#uid_search. +# The server must support a search extension which allows +# RFC4466[https://www.rfc-editor.org/rfc/rfc4466.html] +return+ options, +# such as +ESEARCH+, +PARTIAL+, or +IMAP4rev2+. +# * Return options were specified for IMAP#sort or IMAP#uid_sort. +# The server must support the +ESORT+ extension +# {[RFC5267]}[https://www.rfc-editor.org/rfc/rfc5267.html#section-3]. +# +# *NOTE:* IMAP#search and IMAP#uid_search do not support +ESORT+ yet. +# * The server supports +IMAP4rev2+ but _not_ +IMAP4rev1+, or +IMAP4rev2+ +# has been enabled. +IMAP4rev2+ requires +ESEARCH+ results. +# +# Note that some servers may claim to support a search extension which +# requires an +ESEARCH+ result, such as +PARTIAL+, but still only return a +# +SEARCH+ result when +return+ options are specified. +# +# Some search extensions may result in the server sending ESearchResult +# responses after the initiating command has completed. Use +# IMAP#add_response_handler to handle these responses. +# +# ==== Compatibility with SearchResult +# +# Note that both SearchResult and ESearchResult implement +each+, +to_a+, +# and +to_sequence_set+. These methods can be used regardless of whether +# the server returns +SEARCH+ or +ESEARCH+ data (or no data). +# +# pkg:gem/net-imap#lib/net/imap/esearch_result.rb:34 +class Net::IMAP::ESearchResult < ::Data + # @return [ESearchResult] a new instance of ESearchResult + # + # pkg:gem/net-imap#lib/net/imap/esearch_result.rb:35 + def initialize(tag: T.unsafe(nil), uid: T.unsafe(nil), data: T.unsafe(nil)); end + + # :call-seq: all -> sequence set or nil + # + # A SequenceSet containing all message sequence numbers or UIDs that + # satisfy the SEARCH criteria. + # + # Returns +nil+ when the associated search command has no results, or when + # the +ALL+ return option was not specified but other return options were. + # + # Requires +ESEARCH+ {[RFC4731]}[https://www.rfc-editor.org/rfc/rfc4731.html#section-3.1] or + # +IMAP4rev2+ {[RFC9051]}[https://www.rfc-editor.org/rfc/rfc9051.html#section-7.3.4]. + # + # See also: #to_a + # + # pkg:gem/net-imap#lib/net/imap/esearch_result.rb:153 + def all; end + + # :call-seq: count -> integer or nil + # + # Returns the number of messages that satisfy the SEARCH criteria. + # + # Returns +nil+ when the associated search command has no results, or when + # the +COUNT+ return option wasn't specified. + # + # Requires +ESEARCH+ {[RFC4731]}[https://www.rfc-editor.org/rfc/rfc4731.html#section-3.1] or + # +IMAP4rev2+ {[RFC9051]}[https://www.rfc-editor.org/rfc/rfc9051.html#section-7.3.4]. + # + # pkg:gem/net-imap#lib/net/imap/esearch_result.rb:164 + def count; end + + # When either #all or #partial contains a SequenceSet of message sequence + # numbers or UIDs, +each+ yields each integer in the set. + # + # When both #all and #partial are +nil+, either because the server + # returned no results or because +ALL+ and +PARTIAL+ were not included in + # the IMAP#search +RETURN+ options, #each does not yield. + # + # Note that SearchResult also implements +#each+, so it can be used + # without checking if the server returned +SEARCH+ or +ESEARCH+ data. + # + # Related: #to_sequence_set, #to_a, #all, #partial + # + # pkg:gem/net-imap#lib/net/imap/esearch_result.rb:86 + def each(&_arg0); end + + # :call-seq: max -> integer or nil + # + # The highest message number/UID that satisfies the SEARCH criteria. + # + # Returns +nil+ when the associated search command has no results, or when + # the +MAX+ return option wasn't specified. + # + # Requires +ESEARCH+ {[RFC4731]}[https://www.rfc-editor.org/rfc/rfc4731.html#section-3.1] or + # +IMAP4rev2+ {[RFC9051]}[https://www.rfc-editor.org/rfc/rfc9051.html#section-7.3.4]. + # + # pkg:gem/net-imap#lib/net/imap/esearch_result.rb:139 + def max; end + + # :call-seq: min -> integer or nil + # + # The lowest message number/UID that satisfies the SEARCH criteria. + # + # Returns +nil+ when the associated search command has no results, or when + # the +MIN+ return option wasn't specified. + # + # Requires +ESEARCH+ {[RFC4731]}[https://www.rfc-editor.org/rfc/rfc4731.html#section-3.1] or + # +IMAP4rev2+ {[RFC9051]}[https://www.rfc-editor.org/rfc/rfc9051.html#section-7.3.4]. + # + # pkg:gem/net-imap#lib/net/imap/esearch_result.rb:128 + def min; end + + # :call-seq: modseq -> integer or nil + # + # The highest +mod-sequence+ of all messages being returned. + # + # Returns +nil+ when the associated search command has no results, or when + # the +MODSEQ+ search criterion wasn't specified. + # + # Note that there is no search +return+ option for +MODSEQ+. It will be + # returned whenever the +CONDSTORE+ extension has been enabled. Using the + # +MODSEQ+ search criteria will implicitly enable +CONDSTORE+. + # + # Requires +CONDSTORE+ {[RFC7162]}[https://www.rfc-editor.org/rfc/rfc7162.html] + # and +ESEARCH+ {[RFC4731]}[https://www.rfc-editor.org/rfc/rfc4731.html#section-3.2]. + # + # pkg:gem/net-imap#lib/net/imap/esearch_result.rb:179 + def modseq; end + + # :call-seq: partial -> PartialResult or nil + # + # A PartialResult containing a subset of the message sequence numbers or + # UIDs that satisfy the SEARCH criteria. + # + # Requires +PARTIAL+ {[RFC9394]}[https://www.rfc-editor.org/rfc/rfc9394.html] + # or CONTEXT=SEARCH/CONTEXT=SORT + # {[RFC5267]}[https://www.rfc-editor.org/rfc/rfc5267.html] + # + # See also: #to_a + # + # pkg:gem/net-imap#lib/net/imap/esearch_result.rb:221 + def partial; end + + # :call-seq: to_a -> Array of integers + # + # When either #all or #partial contains a SequenceSet of message sequence + # numbers or UIDs, +to_a+ returns that set as an array of integers. + # + # When both #all and #partial are +nil+, either because the server + # returned no results or because neither +ALL+ or +PARTIAL+ were included + # in the IMAP#search +RETURN+ options, #to_a returns an empty array. + # + # Note that SearchResult also implements +to_a+, so it can be used without + # checking if the server returned +SEARCH+ or +ESEARCH+ data. + # + # Related: #each, #to_sequence_set, #all, #partial + # + # pkg:gem/net-imap#lib/net/imap/esearch_result.rb:55 + def to_a; end + + # :call-seq: to_sequence_set -> SequenceSet or nil + # + # When either #all or #partial contains a SequenceSet of message sequence + # numbers or UIDs, +to_sequence_set+ returns that sequence set. + # + # When both #all and #partial are +nil+, either because the server + # returned no results or because neither +ALL+ or +PARTIAL+ were included + # in the IMAP#search +RETURN+ options, #to_sequence_set returns + # SequenceSet.empty. + # + # Note that SearchResult also implements +to_sequence_set+, so it can be + # used without checking if the server returned +SEARCH+ or +ESEARCH+ data. + # + # Related: #each, #to_a, #all, #partial + # + # pkg:gem/net-imap#lib/net/imap/esearch_result.rb:71 + def to_sequence_set; end + + # pkg:gem/net-imap#lib/net/imap/esearch_result.rb:106 + def uid?; end +end + +# Returned by ESearchResult#partial. +# +# Requires +PARTIAL+ {[RFC9394]}[https://www.rfc-editor.org/rfc/rfc9394.html] +# or CONTEXT=SEARCH/CONTEXT=SORT +# {[RFC5267]}[https://www.rfc-editor.org/rfc/rfc5267.html] +# +# See also: #to_a +# +# pkg:gem/net-imap#lib/net/imap/esearch_result.rb:188 +class Net::IMAP::ESearchResult::PartialResult < ::Data + # @return [PartialResult] a new instance of PartialResult + # + # pkg:gem/net-imap#lib/net/imap/esearch_result.rb:189 + def initialize(range:, results:); end + + # Converts #results to an array of integers. + # + # See also: ESearchResult#to_a. + # + # pkg:gem/net-imap#lib/net/imap/esearch_result.rb:206 + def to_a; end + + # pkg:gem/net-imap#lib/net/imap/esearch_result.rb:208 + def to_sequence_set; end +end + +# **Note:** This represents an intentionally _unstable_ API. Where +# instances of this class are returned, future releases may return a +# different (incompatible) object without deprecation or warning. +# +# Net::IMAP::ExtensionData represents data that is parsable according to the +# forward-compatible extension syntax in RFC3501, RFC4466, or RFC9051, but +# isn't directly known or understood by Net::IMAP yet. +# +# See also: UnparsedData, UnparsedNumericResponseData, IgnoredResponse +# +# pkg:gem/net-imap#lib/net/imap/response_data.rb:124 +class Net::IMAP::ExtensionData < ::Struct; end + +# Net::IMAP::FetchStruct is the superclass for FetchData and UIDFetchData. +# Net::IMAP#fetch, Net::IMAP#uid_fetch, Net::IMAP#store, and +# Net::IMAP#uid_store all return arrays of FetchStruct objects. +# +# === Fetch attributes +# +# See {[IMAP4rev1 §7.4.2]}[https://www.rfc-editor.org/rfc/rfc3501.html#section-7.4.2] +# and {[IMAP4rev2 §7.5.2]}[https://www.rfc-editor.org/rfc/rfc9051.html#section-7.5.2] +# for a full description of the standard fetch response data items, and +# Net::IMAP@Message+envelope+and+body+structure for other relevant RFCs. +# +# ==== Static fetch data items +# +# Most message attributes are static, and must never change for a given +# (server, account, mailbox, UIDVALIDITY, UID) tuple. +# +# The static fetch data items defined by both +# IMAP4rev1[https://www.rfc-editor.org/rfc/rfc3501.html] and +# IMAP4rev2[https://www.rfc-editor.org/rfc/rfc9051.html] are: +# +# * "UID" --- See #uid. +# * "BODY" --- See #body. +# * "BODY[#{section_spec}]", +# "BODY[#{section_spec}]<#{offset}>" --- See #message, +# #part, #header, #header_fields, #header_fields_not, #mime, and #text. +# * "BODYSTRUCTURE" --- See #bodystructure. +# * "ENVELOPE" --- See #envelope. +# * "INTERNALDATE" --- See #internaldate. +# * "RFC822.SIZE" --- See #rfc822_size. +# +# IMAP4rev2[https://www.rfc-editor.org/rfc/rfc9051.html] adds the +# additional fetch items from the +BINARY+ extension +# {[RFC3516]}[https://www.rfc-editor.org/rfc/rfc3516.html]: +# +# * "BINARY[#{part}]", +# "BINARY[#{part}]<#{offset}>" -- See #binary. +# * "BINARY.SIZE[#{part}]" -- See #binary_size. +# +# Several static message attributes in +# IMAP4rev1[https://www.rfc-editor.org/rfc/rfc3501.html] are obsolete and +# been removed from +# IMAP4rev2[https://www.rfc-editor.org/rfc/rfc9051.html]: +# +# * "RFC822" --- See #rfc822 or replace with +# "BODY[]" and #message. +# * "RFC822.HEADER" --- See #rfc822_header or replace with +# "BODY[HEADER]" and #header. +# * "RFC822.TEXT" --- See #rfc822_text or replace with +# "BODY[TEXT]" and #text. +# +# Net::IMAP supports static attributes defined by the following extensions: +# * +OBJECTID+ {[RFC8474]}[https://www.rfc-editor.org/rfc/rfc8474.html] +# * "EMAILID" --- See #emailid. +# * "THREADID" --- See #threadid. +# +# * +X-GM-EXT-1+ {[non-standard Gmail +# extension]}[https://developers.google.com/gmail/imap/imap-extensions] +# * "X-GM-MSGID" --- unique message ID. Access via #attr. +# * "X-GM-THRID" --- Thread ID. Access via #attr. +# +# [NOTE:] +# Additional static fields are defined in other \IMAP extensions, but +# Net::IMAP can't parse them yet. +# +# ==== Dynamic message attributes +# +# Some message attributes can be dynamically changed, for example using the +# {STORE command}[rdoc-ref:Net::IMAP#store]. +# +# The only dynamic message attribute defined by +# IMAP4rev1[https://www.rfc-editor.org/rfc/rfc3501.html] and +# IMAP4rev2[https://www.rfc-editor.org/rfc/rfc9051.html] is: +# +# * "FLAGS" --- See #flags. +# +# Net::IMAP supports dynamic attributes defined by the following extensions: +# +# * +CONDSTORE+ {[RFC7162]}[https://www.rfc-editor.org/rfc/rfc7162.html]: +# * "MODSEQ" --- See #modseq. +# * +X-GM-EXT-1+ {[non-standard Gmail +# extension]}[https://developers.google.com/gmail/imap/imap-extensions] +# * "X-GM-LABELS" --- Gmail labels. Access via #attr. +# +# [NOTE:] +# Additional dynamic fields are defined in other \IMAP extensions, but +# Net::IMAP can't parse them yet. +# +# === Implicitly setting \Seen and using +PEEK+ +# +# Unless the mailbox has been opened as read-only, fetching +# BODY[#{section}] or BINARY[#{section}] +# will implicitly set the \Seen flag. To avoid this, fetch using +# BODY.PEEK[#{section}] or BINARY.PEEK[#{section}] +# instead. +# +# [NOTE:] +# The data will always be _returned_ without the ".PEEK" suffix, +# as BODY[#{specifier}] or BINARY[#{section}]. +# +# pkg:gem/net-imap#lib/net/imap/fetch_data.rb:105 +class Net::IMAP::FetchStruct < ::Struct + # :call-seq: attr_upcase -> hash + # + # A transformation of #attr, with all the keys converted to upper case. + # + # Header field names are case-preserved but not case-sensitive, so this is + # used by #header_fields and #header_fields_not. + # + # pkg:gem/net-imap#lib/net/imap/fetch_data.rb:121 + def attr_upcase; end + + # :call-seq: + # binary(*part_nums, offset: nil) -> string or nil + # + # Returns the binary representation of a particular MIME part, which has + # already been decoded according to its Content-Transfer-Encoding. + # + # See #part for a description of +part_nums+ and +offset+. + # + # This is the same as getting the value of + # "BINARY[#{part_nums.join(".")}]" or + # "BINARY[#{part_nums.join(".")}]<#{offset}>" from #attr. + # + # The server must support either + # IMAP4rev2[https://www.rfc-editor.org/rfc/rfc9051.html] + # or the +BINARY+ extension + # {[RFC3516]}[https://www.rfc-editor.org/rfc/rfc3516.html]. + # + # See also: #binary_size, #mime + # + # pkg:gem/net-imap#lib/net/imap/fetch_data.rb:428 + def binary(*part_nums, offset: T.unsafe(nil)); end + + # :call-seq: + # binary_size(*part_nums) -> integer or nil + # + # Returns the decoded size of a particular MIME part (the size to expect + # in response to a BINARY fetch request). + # + # See #part for a description of +part_nums+. + # + # This is the same as getting the value of + # "BINARY.SIZE[#{part_nums.join(".")}]" from #attr. + # + # The server must support either + # IMAP4rev2[https://www.rfc-editor.org/rfc/rfc9051.html] + # or the +BINARY+ extension + # {[RFC3516]}[https://www.rfc-editor.org/rfc/rfc3516.html]. + # + # See also: #binary, #mime + # + # pkg:gem/net-imap#lib/net/imap/fetch_data.rb:449 + def binary_size(*part_nums); end + + # :call-seq: + # body -> body structure or nil + # + # Returns an alternate form of #bodystructure, without any extension data. + # + # This is the same as getting the value for "BODY" from #attr. + # + # [NOTE:] + # Use #message, #part, #header, #header_fields, #header_fields_not, + # #text, or #mime to retrieve BODY[#{section_spec}] attributes. + # + # pkg:gem/net-imap#lib/net/imap/fetch_data.rb:133 + def body; end + + # :call-seq: + # bodystructure -> BodyStructure struct or nil + # + # A BodyStructure object that describes the message, if it was fetched. + # + # This is the same as getting the value for "BODYSTRUCTURE" from + # #attr. + # + # pkg:gem/net-imap#lib/net/imap/fetch_data.rb:297 + def body_structure; end + + # :call-seq: + # bodystructure -> BodyStructure struct or nil + # + # A BodyStructure object that describes the message, if it was fetched. + # + # This is the same as getting the value for "BODYSTRUCTURE" from + # #attr. + # + # pkg:gem/net-imap#lib/net/imap/fetch_data.rb:295 + def bodystructure; end + + # :call-seq: emailid -> string or nil + # + # An ObjectID that uniquely identifies the immutable content of a single + # message. + # + # The server must return the same +EMAILID+ for both the source and + # destination messages after a COPY or MOVE command. However, it is + # possible for different messages with the same EMAILID to have different + # mutable attributes, such as flags. + # + # This is the same as getting the value for "EMAILID" from + # #attr. + # + # The server must support the +OBJECTID+ extension + # {[RFC8474]}[https://www.rfc-editor.org/rfc/rfc8474.html]. + # + # pkg:gem/net-imap#lib/net/imap/fetch_data.rb:482 + def emailid; end + + # :call-seq: envelope -> Envelope or nil + # + # An Envelope object that describes the envelope structure of a message. + # See the documentation for Envelope for a description of the envelope + # structure attributes. + # + # This is the same as getting the value for "ENVELOPE" from + # #attr. + # + # pkg:gem/net-imap#lib/net/imap/fetch_data.rb:307 + def envelope; end + + # :call-seq: flags -> array of Symbols and Strings, or nil + # + # A array of flags that are set for this message. System flags are + # symbols that have been capitalized by String#capitalize. Keyword flags + # are strings and their case is not changed. + # + # This is the same as getting the value for "FLAGS" from #attr. + # + # [NOTE:] + # The +FLAGS+ field is dynamic, and can change for a uniquely identified + # message. + # + # pkg:gem/net-imap#lib/net/imap/fetch_data.rb:320 + def flags; end + + # :call-seq: + # header(*part_nums, offset: nil) -> string or nil + # header(*part_nums, fields: names, offset: nil) -> string or nil + # header(*part_nums, except: names, offset: nil) -> string or nil + # + # The {[RFC5322]}[https://www.rfc-editor.org/rfc/rfc5322.html] header of a + # message or of an encapsulated + # {[MIME-IMT]}[https://www.rfc-editor.org/rfc/rfc2046.html] + # MESSAGE/RFC822 or MESSAGE/GLOBAL message. + # + # Headers can be parsed using the "mail" gem. + # + # See #part for a description of +part_nums+ and +offset+. + # + # ==== Without +fields+ or +except+ + # This is the same as getting the value from #attr for one of: + # * BODY[HEADER] + # * BODY[HEADER]<#{offset}> + # * BODY[#{part_nums.join "."}.HEADER]" + # * BODY[#{part_nums.join "."}.HEADER]<#{offset}>" + # + # ==== With +fields+ + # When +fields+ is sent, returns a subset of the header which contains + # only the header fields that match one of the names in the list. + # + # This is the same as getting the value from #attr_upcase for one of: + # * BODY[HEADER.FIELDS (#{names.join " "})] + # * BODY[HEADER.FIELDS (#{names.join " "})]<#{offset}> + # * BODY[#{part_nums.join "."}.HEADER.FIELDS (#{names.join " "})] + # * BODY[#{part_nums.join "."}.HEADER.FIELDS (#{names.join " "})]<#{offset}> + # + # See also: #header_fields + # + # ==== With +except+ + # When +except+ is sent, returns a subset of the header which contains + # only the header fields that do _not_ match one of the names in the list. + # + # This is the same as getting the value from #attr_upcase for one of: + # * BODY[HEADER.FIELDS.NOT (#{names.join " "})] + # * BODY[HEADER.FIELDS.NOT (#{names.join " "})]<#{offset}> + # * BODY[#{part_nums.join "."}.HEADER.FIELDS.NOT (#{names.join " "})] + # * BODY[#{part_nums.join "."}.HEADER.FIELDS.NOT (#{names.join " "})]<#{offset}> + # + # See also: #header_fields_not + # + # pkg:gem/net-imap#lib/net/imap/fetch_data.rb:219 + def header(*part_nums, fields: T.unsafe(nil), except: T.unsafe(nil), offset: T.unsafe(nil)); end + + # :call-seq: + # header_fields(*names, part: [], offset: nil) -> string or nil + # + # The result from #header when called with fields: names. + # + # pkg:gem/net-imap#lib/net/imap/fetch_data.rb:237 + def header_fields(first, *rest, part: T.unsafe(nil), offset: T.unsafe(nil)); end + + # :call-seq: + # header_fields_not(*names, part: [], offset: nil) -> string or nil + # + # The result from #header when called with except: names. + # + # pkg:gem/net-imap#lib/net/imap/fetch_data.rb:245 + def header_fields_not(first, *rest, part: T.unsafe(nil), offset: T.unsafe(nil)); end + + # :call-seq: internaldate -> Time or nil + # + # The internal date and time of the message on the server. This is not + # the date and time in the [RFC5322[https://www.rfc-editor.org/rfc/rfc5322]] + # header, but rather a date and time which reflects when the message was + # received. + # + # This is similar to getting the value for "INTERNALDATE" from + # #attr. + # + # [NOTE:] + # attr["INTERNALDATE"] returns a string, and this method + # returns a Time object. + # + # pkg:gem/net-imap#lib/net/imap/fetch_data.rb:339 + def internal_date; end + + # :call-seq: internaldate -> Time or nil + # + # The internal date and time of the message on the server. This is not + # the date and time in the [RFC5322[https://www.rfc-editor.org/rfc/rfc5322]] + # header, but rather a date and time which reflects when the message was + # received. + # + # This is similar to getting the value for "INTERNALDATE" from + # #attr. + # + # [NOTE:] + # attr["INTERNALDATE"] returns a string, and this method + # returns a Time object. + # + # pkg:gem/net-imap#lib/net/imap/fetch_data.rb:335 + def internaldate; end + + # :call-seq: + # message(offset: bytes) -> string or nil + # + # The RFC5322[https://www.rfc-editor.org/rfc/rfc5322.html] + # expression of the entire message, as a string. + # + # See #part for a description of +offset+. + # + # RFC5322 messages can be parsed using the "mail" gem. + # + # This is the same as getting the value for "BODY[]" or + # "BODY[]<#{offset}>" from #attr. + # + # See also: #header, #text, and #mime. + # + # pkg:gem/net-imap#lib/net/imap/fetch_data.rb:149 + def message(offset: T.unsafe(nil)); end + + # :call-seq: + # mime(*part_nums) -> string or nil + # mime(*part_nums, offset: bytes) -> string or nil + # + # The {[MIME-IMB]}[https://www.rfc-editor.org/rfc/rfc2045.html] header for + # a message part, if it was fetched. + # + # See #part for a description of +part_nums+ and +offset+. + # + # This is the same as getting the value for + # "BODY[#{part_nums}.MIME]" or + # "BODY[#{part_nums}.MIME]<#{offset}>" from #attr. + # + # See also: #message, #header, and #text. + # + # pkg:gem/net-imap#lib/net/imap/fetch_data.rb:263 + def mime(part, *subparts, offset: T.unsafe(nil)); end + + # :call-seq: modseq -> Integer or nil + # + # The modification sequence number associated with this IMAP message. + # + # This is the same as getting the value for "MODSEQ" from #attr. + # + # The server must support the +CONDSTORE+ extension + # {[RFC7162]}[https://www.rfc-editor.org/rfc/rfc7162.html]. + # + # [NOTE:] + # The +MODSEQ+ field is dynamic, and can change for a uniquely + # identified message. + # + # pkg:gem/net-imap#lib/net/imap/fetch_data.rb:465 + def modseq; end + + # :call-seq: + # part(*part_nums, offset: bytes) -> string or nil + # + # The string representation of a particular MIME part. + # + # +part_nums+ forms a path of MIME part numbers, counting up from +1+, + # which may specify an arbitrarily nested part, similarly to Array#dig. + # Messages that don't use MIME, or MIME messages that are not multipart + # and don't hold an encapsulated message, only have part +1+. + # + # If a zero-based +offset+ is given, the returned string is a substring of + # the entire contents, starting at that origin octet. This means that + # BODY[]<0> MAY be truncated, but BODY[] is never + # truncated. + # + # This is the same as getting the value of + # "BODY[#{part_nums.join(".")}]" or + # "BODY[#{part_nums.join(".")}]<#{offset}>" from #attr. + # + # See also: #message, #header, #text, and #mime. + # + # pkg:gem/net-imap#lib/net/imap/fetch_data.rb:171 + def part(index, *subparts, offset: T.unsafe(nil)); end + + # :call-seq: rfc822 -> String or nil + # + # Semantically equivalent to #message with no arguments. + # + # This is the same as getting the value for "RFC822" from #attr. + # + # [NOTE:] + # +IMAP4rev2+ deprecates RFC822. + # + # pkg:gem/net-imap#lib/net/imap/fetch_data.rb:349 + def rfc822; end + + # :call-seq: rfc822_header -> String or nil + # + # Semantically equivalent to #header, with no arguments. + # + # This is the same as getting the value for "RFC822.HEADER" from #attr. + # + # [NOTE:] + # +IMAP4rev2+ deprecates RFC822.HEADER. + # + # pkg:gem/net-imap#lib/net/imap/fetch_data.rb:386 + def rfc822_header; end + + # :call-seq: rfc822_size -> Integer or nil + # + # A number expressing the [RFC5322[https://www.rfc-editor.org/rfc/rfc5322]] + # size of the message. + # + # This is the same as getting the value for "RFC822.SIZE" from + # #attr. + # + # [NOTE:] + # \IMAP was originally developed for the older + # RFC822[https://www.rfc-editor.org/rfc/rfc822.html] standard, and as a + # consequence several fetch items in \IMAP incorporate "RFC822" in their + # name. With the exception of +RFC822.SIZE+, there are more modern + # replacements; for example, the modern version of +RFC822.HEADER+ is + # BODY.PEEK[HEADER]. In all cases, "RFC822" should be + # interpreted as a reference to the updated + # RFC5322[https://www.rfc-editor.org/rfc/rfc5322.html] standard. + # + # pkg:gem/net-imap#lib/net/imap/fetch_data.rb:368 + def rfc822_size; end + + # :call-seq: rfc822_text -> String or nil + # + # Semantically equivalent to #text, with no arguments. + # + # This is the same as getting the value for "RFC822.TEXT" from + # #attr. + # + # [NOTE:] + # +IMAP4rev2+ deprecates RFC822.TEXT. + # + # pkg:gem/net-imap#lib/net/imap/fetch_data.rb:397 + def rfc822_text; end + + # Alias for: rfc822_size + # + # pkg:gem/net-imap#lib/net/imap/fetch_data.rb:375 + def size; end + + # :call-seq: + # text(*part_nums) -> string or nil + # text(*part_nums, offset: bytes) -> string or nil + # + # The text body of a message or a message part, if it was fetched, + # omitting the {[RFC5322]}[https://www.rfc-editor.org/rfc/rfc5322.html] + # header. + # + # See #part for a description of +part_nums+ and +offset+. + # + # This is the same as getting the value from #attr for one of: + # * "BODY[TEXT]", + # * "BODY[TEXT]<#{offset}>", + # * "BODY[#{section}.TEXT]", or + # * "BODY[#{section}.TEXT]<#{offset}>". + # + # See also: #message, #header, and #mime. + # + # pkg:gem/net-imap#lib/net/imap/fetch_data.rb:284 + def text(*part, offset: T.unsafe(nil)); end + + # :call-seq: threadid -> string or nil + # + # An ObjectID that uniquely identifies a set of messages that the server + # believes should be grouped together. + # + # It is generally based on some combination of References, In-Reply-To, + # and Subject, but the exact implementation is left up to the server + # implementation. The server should return the same thread identifier for + # related messages, even if they are in different mailboxes. + # + # This is the same as getting the value for "THREADID" from + # #attr. + # + # The server must support the +OBJECTID+ extension + # {[RFC8474]}[https://www.rfc-editor.org/rfc/rfc8474.html]. + # + # pkg:gem/net-imap#lib/net/imap/fetch_data.rb:499 + def threadid; end + + # :call-seq: uid -> Integer or nil + # + # A number expressing the unique identifier of the message. + # + # This is the same as getting the value for "UID" from #attr. + # + # [NOTE:] + # For UIDFetchData, this returns the uniqueid at the beginning of the + # +UIDFETCH+ response, _not_ the value from #attr. + # + # pkg:gem/net-imap#lib/net/imap/fetch_data.rb:408 + def uid; end + + private + + # pkg:gem/net-imap#lib/net/imap/fetch_data.rb:503 + def body_section_attr(*_arg0, **_arg1, &_arg2); end + + # pkg:gem/net-imap#lib/net/imap/fetch_data.rb:505 + def section_attr(attr, part = T.unsafe(nil), text = T.unsafe(nil), offset: T.unsafe(nil)); end +end + +# Alias for HAS_CHILDREN, to match the \IMAP spelling. +# +# pkg:gem/net-imap#lib/net/imap/flags.rb:183 +Net::IMAP::HASCHILDREN = T.let(T.unsafe(nil), Symbol) + +# Alias for HAS_NO_CHILDREN, to match the \IMAP spelling. +# +# pkg:gem/net-imap#lib/net/imap/flags.rb:185 +Net::IMAP::HASNOCHILDREN = T.let(T.unsafe(nil), Symbol) + +# The presence of this attribute indicates that the mailbox has child +# mailboxes. A server SHOULD NOT set this attribute if there are child +# mailboxes and the user does not have permission to access any of them. In +# this case, +\HasNoChildren+ SHOULD be used. In many cases, however, a +# server may not be able to efficiently compute whether a user has access to +# any child mailboxes. Note that even though the +\HasChildren+ attribute +# for a mailbox must be correct at the time of processing the mailbox, a +# client must be prepared to deal with a situation when a mailbox is marked +# with the +\HasChildren+ attribute, but no child mailbox appears in the +# response to the #list command. This might happen, for example, due to child +# mailboxes being deleted or made inaccessible to the user (using access +# control) by another client before the server is able to list them. +# +# It is an error for the server to return both a +\HasChildren+ and a +# +\HasNoChildren+ attribute in the same #list response. A client that +# encounters a #list response with both +\HasChildren+ and +\HasNoChildren+ +# attributes present should act as if both are absent in the #list response. +# +# pkg:gem/net-imap#lib/net/imap/flags.rb:136 +Net::IMAP::HAS_CHILDREN = T.let(T.unsafe(nil), Symbol) + +# The presence of this attribute indicates that the mailbox has NO child +# mailboxes that are accessible to the currently authenticated user. +# +# It is an error for the server to return both a +\HasChildren+ and a +# +\HasNoChildren+ attribute in the same #list response. A client that +# encounters a #list response with both +\HasChildren+ and +\HasNoChildren+ +# attributes present should act as if both are absent in the #list response. +# +# Note: the +\HasNoChildren+ attribute should not be confused with the +# +\NoInferiors+ attribute, which indicates that no child mailboxes exist +# now and none can be created in the future. +# +# pkg:gem/net-imap#lib/net/imap/flags.rb:149 +Net::IMAP::HAS_NO_CHILDREN = T.let(T.unsafe(nil), Symbol) + +# Net::IMAP::IgnoredResponse represents intentionally ignored responses. +# +# This includes untagged response "NOOP" sent by e.g. Zimbra to avoid +# some clients to close the connection. +# +# It matches no IMAP standard. +# +# pkg:gem/net-imap#lib/net/imap/response_data.rb:69 +class Net::IMAP::IgnoredResponse < ::Net::IMAP::UntaggedResponse; end + +# Error raised when the server sends an invalid response. +# +# This is different from UnknownResponseError: the response has been +# rejected. Although it may be parsable, the server is forbidden from +# sending it in the current context. The client should automatically +# disconnect, abruptly (without logout). +# +# Note that InvalidResponseError does not inherit from ResponseError: it +# can be raised before the response is fully parsed. A related +# ResponseParseError or ResponseError may be the #cause. +# +# pkg:gem/net-imap#lib/net/imap/errors.rb:99 +class Net::IMAP::InvalidResponseError < ::Net::IMAP::Error; end + +# Mailbox attribute indicating that this mailbox is where messages deemed to +# be junk mail are held. Some server implementations might put messages here +# automatically. Alternatively, this might just be advice to a client-side +# spam filter. +# +# pkg:gem/net-imap#lib/net/imap/flags.rb:242 +Net::IMAP::JUNK = T.let(T.unsafe(nil), Symbol) + +# pkg:gem/net-imap#lib/net/imap/command_data.rb:149 +class Net::IMAP::Literal < ::Net::IMAP::CommandData + # pkg:gem/net-imap#lib/net/imap/command_data.rb:150 + def send_data(imap, tag); end +end + +# pkg:gem/net-imap#lib/net/imap/errors.rb:10 +class Net::IMAP::LoginDisabledError < ::Net::IMAP::Error + # @return [LoginDisabledError] a new instance of LoginDisabledError + # + # pkg:gem/net-imap#lib/net/imap/errors.rb:11 + def initialize(msg = T.unsafe(nil), *_arg1, **_arg2, &_arg3); end +end + +# The +\NonExistent+ attribute indicates that a mailbox name does not refer +# to an existing mailbox. Note that this attribute is not meaningful by +# itself, as mailbox names that match the canonical #list pattern but don't +# exist must not be returned unless one of the two conditions listed below +# is also satisfied: +# +# 1. The mailbox name also satisfies the selection criteria (for example, +# it is subscribed and the "SUBSCRIBED" selection option has been +# specified). +# +# 2. "RECURSIVEMATCH" has been specified, and the mailbox name has at least +# one descendant mailbox name that does not match the #list pattern and +# does match the selection criteria. +# +# In practice, this means that the +\NonExistent+ attribute is usually +# returned with one or more of +\Subscribed+, +\Remote+, +\HasChildren+, or +# the CHILDINFO extended data item. +# +# The client must treat the presence of the +\NonExistent+ attribute as if the +# +\NoSelect+ attribute was also sent by the server +# +# pkg:gem/net-imap#lib/net/imap/flags.rb:105 +Net::IMAP::NONEXISTENT = T.let(T.unsafe(nil), Symbol) + +# Mailbox attribute indicating it is not possible for any child levels of +# hierarchy to exist under this name; no child levels exist now and none can +# be created in the future children. +# +# The client must treat the presence of the +\NoInferiors+ attribute as if the +# +\HasNoChildren+ attribute was also sent by the server +# +# pkg:gem/net-imap#lib/net/imap/flags.rb:113 +Net::IMAP::NO_INFERIORS = T.let(T.unsafe(nil), Symbol) + +# Mailbox attribute indicating it is not possible to use this name as a +# selectable mailbox. +# +# pkg:gem/net-imap#lib/net/imap/flags.rb:117 +Net::IMAP::NO_SELECT = T.let(T.unsafe(nil), Symbol) + +# Namespace represents a _single_ namespace, contained inside a Namespaces +# object. +# +# == Required capability +# Requires either +NAMESPACE+ [RFC2342[https://www.rfc-editor.org/rfc/rfc2342]] +# or +IMAP4rev2+ capability. +# +# pkg:gem/net-imap#lib/net/imap/response_data.rb:465 +class Net::IMAP::Namespace < ::Struct; end + +# Namespaces represents the data of an untagged +NAMESPACE+ response, +# returned by IMAP#namespace. +# +# Contains lists of #personal, #shared, and #other namespaces. +# +# == Required capability +# Requires either +NAMESPACE+ [RFC2342[https://www.rfc-editor.org/rfc/rfc2342]] +# or +IMAP4rev2+ capability. +# +# pkg:gem/net-imap#lib/net/imap/response_data.rb:494 +class Net::IMAP::Namespaces < ::Struct; end + +# Common validators of number and nz_number types +# +# pkg:gem/net-imap#lib/net/imap/data_encoding.rb:157 +module Net::IMAP::NumValidator + private + + # Like #ensure_mod_sequence_value, but usable with numeric String input. + # + # pkg:gem/net-imap#lib/net/imap/data_encoding.rb:241 + def coerce_mod_sequence_value(num); end + + # Like #ensure_mod_sequence_valzer, but usable with numeric String input. + # + # pkg:gem/net-imap#lib/net/imap/data_encoding.rb:251 + def coerce_mod_sequence_valzer(num); end + + # Like #ensure_number, but usable with numeric String input. + # + # pkg:gem/net-imap#lib/net/imap/data_encoding.rb:221 + def coerce_number(num); end + + # Like #ensure_nz_number, but usable with numeric String input. + # + # pkg:gem/net-imap#lib/net/imap/data_encoding.rb:231 + def coerce_nz_number(num); end + + # Ensure argument is 'mod-sequence-value' or raise DataFormatError + # + # pkg:gem/net-imap#lib/net/imap/data_encoding.rb:207 + def ensure_mod_sequence_value(num); end + + # Ensure argument is 'mod-sequence-valzer' or raise DataFormatError + # + # pkg:gem/net-imap#lib/net/imap/data_encoding.rb:214 + def ensure_mod_sequence_valzer(num); end + + # Ensure argument is 'number' or raise DataFormatError + # + # pkg:gem/net-imap#lib/net/imap/data_encoding.rb:193 + def ensure_number(num); end + + # Ensure argument is 'nz-number' or raise DataFormatError + # + # pkg:gem/net-imap#lib/net/imap/data_encoding.rb:200 + def ensure_nz_number(num); end + + # Check if argument is a valid 'mod-sequence-value' according to RFC 4551 + # mod-sequence-value = 1*DIGIT + # ; Positive unsigned 64-bit integer + # ; (mod-sequence) + # ; (1 <= n < 18,446,744,073,709,551,615) + # + # pkg:gem/net-imap#lib/net/imap/data_encoding.rb:182 + def valid_mod_sequence_value?(num); end + + # Check if argument is a valid 'mod-sequence-valzer' according to RFC 4551 + # mod-sequence-valzer = "0" / mod-sequence-value + # + # pkg:gem/net-imap#lib/net/imap/data_encoding.rb:188 + def valid_mod_sequence_valzer?(num); end + + # Check if argument is a valid 'number' according to RFC 3501 + # number = 1*DIGIT + # ; Unsigned 32-bit integer + # ; (0 <= n < 4,294,967,296) + # + # pkg:gem/net-imap#lib/net/imap/data_encoding.rb:165 + def valid_number?(num); end + + # Check if argument is a valid 'nz-number' according to RFC 3501 + # nz-number = digit-nz *DIGIT + # ; Non-zero unsigned 32-bit integer + # ; (0 < n < 4,294,967,296) + # + # pkg:gem/net-imap#lib/net/imap/data_encoding.rb:173 + def valid_nz_number?(num); end + + class << self + # Like #ensure_mod_sequence_value, but usable with numeric String input. + # + # pkg:gem/net-imap#lib/net/imap/data_encoding.rb:241 + def coerce_mod_sequence_value(num); end + + # Like #ensure_mod_sequence_valzer, but usable with numeric String input. + # + # pkg:gem/net-imap#lib/net/imap/data_encoding.rb:251 + def coerce_mod_sequence_valzer(num); end + + # Like #ensure_number, but usable with numeric String input. + # + # pkg:gem/net-imap#lib/net/imap/data_encoding.rb:221 + def coerce_number(num); end + + # Like #ensure_nz_number, but usable with numeric String input. + # + # pkg:gem/net-imap#lib/net/imap/data_encoding.rb:231 + def coerce_nz_number(num); end + + # Ensure argument is 'mod-sequence-value' or raise DataFormatError + # + # @raise [DataFormatError] + # + # pkg:gem/net-imap#lib/net/imap/data_encoding.rb:207 + def ensure_mod_sequence_value(num); end + + # Ensure argument is 'mod-sequence-valzer' or raise DataFormatError + # + # @raise [DataFormatError] + # + # pkg:gem/net-imap#lib/net/imap/data_encoding.rb:214 + def ensure_mod_sequence_valzer(num); end + + # Ensure argument is 'number' or raise DataFormatError + # + # @raise [DataFormatError] + # + # pkg:gem/net-imap#lib/net/imap/data_encoding.rb:193 + def ensure_number(num); end + + # Ensure argument is 'nz-number' or raise DataFormatError + # + # @raise [DataFormatError] + # + # pkg:gem/net-imap#lib/net/imap/data_encoding.rb:200 + def ensure_nz_number(num); end + + # Check if argument is a valid 'mod-sequence-value' according to RFC 4551 + # mod-sequence-value = 1*DIGIT + # ; Positive unsigned 64-bit integer + # ; (mod-sequence) + # ; (1 <= n < 18,446,744,073,709,551,615) + # + # @return [Boolean] + # + # pkg:gem/net-imap#lib/net/imap/data_encoding.rb:182 + def valid_mod_sequence_value?(num); end + + # Check if argument is a valid 'mod-sequence-valzer' according to RFC 4551 + # mod-sequence-valzer = "0" / mod-sequence-value + # + # @return [Boolean] + # + # pkg:gem/net-imap#lib/net/imap/data_encoding.rb:188 + def valid_mod_sequence_valzer?(num); end + + # Check if argument is a valid 'number' according to RFC 3501 + # number = 1*DIGIT + # ; Unsigned 32-bit integer + # ; (0 <= n < 4,294,967,296) + # + # @return [Boolean] + # + # pkg:gem/net-imap#lib/net/imap/data_encoding.rb:165 + def valid_number?(num); end + + # Check if argument is a valid 'nz-number' according to RFC 3501 + # nz-number = digit-nz *DIGIT + # ; Non-zero unsigned 32-bit integer + # ; (0 < n < 4,294,967,296) + # + # @return [Boolean] + # + # pkg:gem/net-imap#lib/net/imap/data_encoding.rb:173 + def valid_nz_number?(num); end + end +end + +# :nodoc +# +# pkg:gem/net-imap#lib/net/imap/data_encoding.rb:158 +Net::IMAP::NumValidator::NUMBER_RE = T.let(T.unsafe(nil), Regexp) + +# pkg:gem/net-imap#lib/net/imap/command_data.rb:155 +class Net::IMAP::PartialRange < ::Net::IMAP::CommandData + # pkg:gem/net-imap#lib/net/imap/command_data.rb:162 + def initialize(data:); end + + # pkg:gem/net-imap#lib/net/imap/command_data.rb:180 + def formatted; end + + # pkg:gem/net-imap#lib/net/imap/command_data.rb:182 + def send_data(imap, tag); end +end + +# pkg:gem/net-imap#lib/net/imap/command_data.rb:158 +Net::IMAP::PartialRange::NEG_RANGE = T.let(T.unsafe(nil), Range) + +# pkg:gem/net-imap#lib/net/imap/command_data.rb:160 +Net::IMAP::PartialRange::Negative = T.let(T.unsafe(nil), Proc) + +# pkg:gem/net-imap#lib/net/imap/command_data.rb:157 +Net::IMAP::PartialRange::POS_RANGE = T.let(T.unsafe(nil), Range) + +# pkg:gem/net-imap#lib/net/imap/command_data.rb:159 +Net::IMAP::PartialRange::Positive = T.let(T.unsafe(nil), Proc) + +# pkg:gem/net-imap#lib/net/imap/command_data.rb:143 +class Net::IMAP::QuotedString < ::Net::IMAP::CommandData + # pkg:gem/net-imap#lib/net/imap/command_data.rb:144 + def send_data(imap, tag); end +end + +# The mailbox is a remote mailbox. +# +# pkg:gem/net-imap#lib/net/imap/flags.rb:176 +Net::IMAP::REMOTE = T.let(T.unsafe(nil), Symbol) + +# pkg:gem/net-imap#lib/net/imap.rb:3118 +Net::IMAP::RESPONSES_DEPRECATION_MSG = T.let(T.unsafe(nil), String) + +# pkg:gem/net-imap#lib/net/imap/errors.rb:113 +Net::IMAP::RESPONSE_ERRORS = T.let(T.unsafe(nil), Hash) + +# pkg:gem/net-imap#lib/net/imap.rb:3606 +Net::IMAP::RETURN_START = T.let(T.unsafe(nil), Regexp) + +# pkg:gem/net-imap#lib/net/imap.rb:3605 +Net::IMAP::RETURN_WHOLE = T.let(T.unsafe(nil), Regexp) + +# pkg:gem/net-imap#lib/net/imap/command_data.rb:131 +class Net::IMAP::RawData < ::Net::IMAP::CommandData + # pkg:gem/net-imap#lib/net/imap/command_data.rb:132 + def send_data(imap, tag); end +end + +# Superclass of all errors used to encapsulate "fail" responses +# from the server. +# +# pkg:gem/net-imap#lib/net/imap/errors.rb:59 +class Net::IMAP::ResponseError < ::Net::IMAP::Error + # @return [ResponseError] a new instance of ResponseError + # + # pkg:gem/net-imap#lib/net/imap/errors.rb:64 + def initialize(response); end + + # The response that caused this error + # + # pkg:gem/net-imap#lib/net/imap/errors.rb:62 + def response; end + + # The response that caused this error + # + # pkg:gem/net-imap#lib/net/imap/errors.rb:62 + def response=(_arg0); end +end + +# Parses an \IMAP server response. +# +# pkg:gem/net-imap#lib/net/imap/response_parser/parser_utils.rb:5 +class Net::IMAP::ResponseParser + include ::Net::IMAP::ResponseParser::ParserUtils + include ::Net::IMAP::ResponseParser::ResponseConditions + extend ::Net::IMAP::ResponseParser::ParserUtils::Generator + + # Creates a new ResponseParser. + # + # When +config+ is frozen or global, the parser #config inherits from it. + # Otherwise, +config+ will be used directly. + # + # @return [ResponseParser] a new instance of ResponseParser + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:20 + def initialize(config: T.unsafe(nil)); end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:477 + def CRLF!; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:477 + def CRLF?; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:478 + def EOF!; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:478 + def EOF?; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:460 + def NIL!; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:460 + def NIL?; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:430 + def PLUS!; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:430 + def PLUS?; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:429 + def SP!; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:429 + def SP?; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:431 + def STAR!; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:431 + def STAR?; end + + # RFC-3501 & RFC-9051: + # body-fld-enc = (DQUOTE ("7BIT" / "8BIT" / "BINARY" / "BASE64"/ + # "QUOTED-PRINTABLE") DQUOTE) / string + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1263 + def body_fld_enc; end + + # valid number ranges are not enforced by parser + # number64 = 1*DIGIT + # ; Unsigned 63-bit integer + # ; (0 <= n <= 9,223,372,036,854,775,807) + # number in 3501, number64 in 9051 + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1256 + def body_fld_lines; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1258 + def body_fld_octets; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:454 + def case_insensitive__string; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:454 + def case_insensitive__string?; end + + # Returns the value of attribute config. + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:14 + def config; end + + # date-time = DQUOTE date-day-fixed "-" date-month "-" date-year + # SP time SP zone DQUOTE + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1048 + def date_time; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:436 + def lbra; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:436 + def lbra?; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:477 + def lookahead_CRLF!; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:478 + def lookahead_EOF!; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:460 + def lookahead_NIL!; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:430 + def lookahead_PLUS?; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:429 + def lookahead_SP?; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:431 + def lookahead_STAR?; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1060 + def lookahead_body?; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:454 + def lookahead_case_insensitive__string!; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:436 + def lookahead_lbra?; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:433 + def lookahead_lpar?; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:443 + def lookahead_number!; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:445 + def lookahead_quoted!; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:437 + def lookahead_rbra?; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:434 + def lookahead_rpar?; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:448 + def lookahead_string!; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:451 + def lookahead_string8!; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:475 + def lookahead_tagged_ext_label!; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1628 + def lookahead_thread_list?; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1629 + def lookahead_thread_nested?; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:433 + def lpar; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:433 + def lpar?; end + + # text/* + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1184 + def media_subtype; end + + # valid number ranges are not enforced by parser + # nz-number = digit-nz *DIGIT + # ; Non-zero unsigned 32-bit integer + # ; (0 < n < 4,294,967,296) + # valid number ranges are not enforced by parser + # nz-number64 = digit-nz *DIGIT + # ; Unsigned 63-bit integer + # ; (0 < n <= 9,223,372,036,854,775,807) + # RFC7162: + # mod-sequence-value = 1*DIGIT + # ;; Positive unsigned 63-bit integer + # ;; (mod-sequence) + # ;; (1 <= n <= 9,223,372,036,854,775,807). + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:2125 + def mod_sequence_value; end + + # valid number ranges are not enforced by parser + # number64 = 1*DIGIT + # ; Unsigned 63-bit integer + # ; (0 <= n <= 9,223,372,036,854,775,807) + # RFC7162: + # mod-sequence-valzer = "0" / mod-sequence-value + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:2134 + def mod_sequence_valzer; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:443 + def number; end + + # valid number ranges are not enforced by parser + # number64 = 1*DIGIT + # ; Unsigned 63-bit integer + # ; (0 <= n <= 9,223,372,036,854,775,807) + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:643 + def number64; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:644 + def number64?; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:443 + def number?; end + + # valid number ranges are not enforced by parser + # nz-number = digit-nz *DIGIT + # ; Non-zero unsigned 32-bit integer + # ; (0 < n < 4,294,967,296) + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:650 + def nz_number; end + + # valid number ranges are not enforced by parser + # nz-number = digit-nz *DIGIT + # ; Non-zero unsigned 32-bit integer + # ; (0 < n < 4,294,967,296) + # valid number ranges are not enforced by parser + # nz-number64 = digit-nz *DIGIT + # ; Unsigned 63-bit integer + # ; (0 < n <= 9,223,372,036,854,775,807) + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:657 + def nz_number64; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:651 + def nz_number?; end + + # :call-seq: + # parse(str) -> ContinuationRequest + # parse(str) -> UntaggedResponse + # parse(str) -> TaggedResponse + # + # Raises ResponseParseError for unparsable strings. + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:35 + def parse(str); end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:430 + def peek_PLUS?; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:429 + def peek_SP?; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:431 + def peek_STAR?; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:436 + def peek_lbra?; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:433 + def peek_lpar?; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:437 + def peek_rbra?; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:434 + def peek_rpar?; end + + # valid number ranges are not enforced by parser + # nz-number = digit-nz *DIGIT + # ; Non-zero unsigned 32-bit integer + # ; (0 < n < 4,294,967,296) + # valid number ranges are not enforced by parser + # nz-number64 = digit-nz *DIGIT + # ; Unsigned 63-bit integer + # ; (0 < n <= 9,223,372,036,854,775,807) + # RFC7162: + # mod-sequence-value = 1*DIGIT + # ;; Positive unsigned 63-bit integer + # ;; (mod-sequence) + # ;; (1 <= n <= 9,223,372,036,854,775,807). + # RFC7162: + # permsg-modsequence = mod-sequence-value + # ;; Per-message mod-sequence. + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:2130 + def permsg_modsequence; end + + # Used when servers erroneously send an extra SP. + # + # As of 2023-11-28, Outlook.com (still) sends SP + # between +address+ in env-* lists. + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1044 + def quirky_SP?; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:445 + def quoted; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:445 + def quoted?; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:437 + def rbra; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:437 + def rbra?; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:434 + def rpar; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:434 + def rpar?; end + + # search-modifier-name = tagged-ext-label + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1597 + def search_modifier_name; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:448 + def string; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:451 + def string8; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:451 + def string8?; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:448 + def string?; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:475 + def tagged_ext_label; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:475 + def tagged_ext_label?; end + + # valid number ranges are not enforced by parser + # nz-number = digit-nz *DIGIT + # ; Non-zero unsigned 32-bit integer + # ; (0 < n < 4,294,967,296) + # valid number ranges are not enforced by parser + # uniqueid = nz-number + # ; Strictly ascending + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:662 + def uniqueid; end + + # valid number ranges are not enforced by parser + # + # a 64-bit unsigned integer and is the decimal equivalent for the ID hex + # string used in the web interface and the Gmail API. + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:668 + def x_gm_id; end + + private + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:2030 + def AppendUID(*_arg0, **_arg1, &_arg2); end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:2031 + def CopyUID(*_arg0, **_arg1, &_arg2); end + + # TODO: remove this code in the v0.6.0 release + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:2021 + def DeprecatedUIDPlus(validity, src_uids = T.unsafe(nil), dst_uids); end + + # The RFC is very strict about this and usually we should be too. + # But skipping spaces is usually a safe workaround for buggy servers. + # + # This advances @pos directly so it's safe before changing @lex_state. + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:2172 + def accept_spaces; end + + # acl-data = "ACL" SP mailbox *(SP identifier SP rights) + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1458 + def acl_data; end + + # nstring = string / nil + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:2062 + def addr_adl; end + + # nstring = string / nil + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:2063 + def addr_host; end + + # nstring = string / nil + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:2064 + def addr_mailbox; end + + # nstring = string / nil + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:2065 + def addr_name; end + + # address = "(" addr-name SP addr-adl SP addr-mailbox SP + # addr-host ")" + # addr-adl = nstring + # addr-host = nstring + # addr-mailbox = nstring + # addr-name = nstring + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:2047 + def address; end + + # astring = 1*ASTRING-CHAR / string + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:528 + def astring; end + + # @return [Boolean] + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:532 + def astring?; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:513 + def astring_chars; end + + # TODO: handle atom, astring_chars, and tag entirely inside the lexer + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:512 + def atom; end + + # the #accept version of #atom + # + # @return [Boolean] + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:517 + def atom?; end + + # RFC-3501 & RFC-9051: + # body = "(" (body-type-1part / body-type-mpart) ")" + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1053 + def body; end + + # RFC2060 + # body_ext_1part ::= body_fld_md5 [SPACE body_fld_dsp + # [SPACE body_fld_lang + # [SPACE 1#body_extension]]] + # ;; MUST NOT be returned on non-extensible + # ;; "BODY" fetch + # RFC3501 & RFC9051 + # body-ext-1part = body-fld-md5 [SP body-fld-dsp [SP body-fld-lang + # [SP body-fld-loc *(SP body-extension)]]] + # ; MUST NOT be returned on non-extensible + # ; "BODY" fetch + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1225 + def body_ext_1part; end + + # RFC-2060: + # body_ext_mpart = body_fld_param [SP body_fld_dsp SP body_fld_lang + # [SP 1#body_extension]] + # ;; MUST NOT be returned on non-extensible + # ;; "BODY" fetch + # RFC-3501 & RFC-9051: + # body-ext-mpart = body-fld-param [SP body-fld-dsp [SP body-fld-lang + # [SP body-fld-loc *(SP body-extension)]]] + # ; MUST NOT be returned on non-extensible + # ; "BODY" fetch + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1244 + def body_ext_mpart; end + + # body-extension = nstring / number / number64 / + # "(" body-extension *(SP body-extension) ")" + # ; Future expansion. Client implementations + # ; MUST accept body-extension fields. Server + # ; implementations MUST NOT generate + # ; body-extension fields except as defined by + # ; future Standard or Standards Track + # ; revisions of this specification. + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1301 + def body_extension; end + + # body-extension *(SP body-extension) + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1287 + def body_extensions; end + + # RFC-3501 & RFC-9051: + # body-fields = body-fld-param SP body-fld-id SP body-fld-desc SP + # body-fld-enc SP body-fld-octets + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1189 + def body_fields; end + + # nstring = string / nil + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1253 + def body_fld_desc; end + + # body-fld-dsp = "(" string SP body-fld-param ")" / nil + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1266 + def body_fld_dsp; end + + # nstring = string / nil + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1254 + def body_fld_id; end + + # body-fld-lang = nstring / "(" string *(SP string) ")" + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1275 + def body_fld_lang; end + + # nstring = string / nil + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1255 + def body_fld_loc; end + + # nstring = string / nil + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1257 + def body_fld_md5; end + + # RFC3501, RFC9051: + # body-fld-param = "(" string SP string *(SP string SP string) ")" / nil + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1201 + def body_fld_param; end + + # RFC-3501 & RFC9051: + # body-type-1part = (body-type-basic / body-type-msg / body-type-text) + # [SP body-ext-1part] + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1065 + def body_type_1part; end + + # RFC-3501 & RFC9051: + # body-type-basic = media-basic SP body-fields + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1089 + def body_type_basic; end + + # This is a malformed body-type-mpart with no subparts. + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1138 + def body_type_mixed; end + + # RFC-3501 & RFC-9051: + # body-type-mpart = 1*body SP media-subtype + # [SP body-ext-mpart] + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1148 + def body_type_mpart; end + + # RFC-3501 & RFC-9051: + # body-type-msg = media-message SP body-fields SP envelope + # SP body SP body-fld-lines + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1110 + def body_type_msg; end + + # RFC-3501 & RFC-9051: + # body-type-text = media-text SP body-fields SP body-fld-lines + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1099 + def body_type_text; end + + # Returns atom.upcase + # capability = ("AUTH=" auth-type) / atom + # ; New capabilities MUST begin with "X" or be + # ; registered with IANA as standard or + # ; standards-track + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1776 + def capability; end + + # Returns atom?&.upcase + # + # @return [Boolean] + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1777 + def capability?; end + + # As a workaround for buggy servers, allow a trailing SP: + # *(SP capability) [SP] + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1766 + def capability__list; end + + # The presence of "IMAP4rev1" or "IMAP4rev2" is unenforced here. + # The grammar rule is used by both response-data and resp-text-code. + # But this method only returns UntaggedResponse (response-data). + # + # RFC3501: + # capability-data = "CAPABILITY" *(SP capability) SP "IMAP4rev1" + # *(SP capability) + # RFC9051: + # capability-data = "CAPABILITY" *(SP capability) SP "IMAP4rev2" + # *(SP capability) + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1755 + def capability_data__untagged; end + + # Returns atom.upcase + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:520 + def case_insensitive__atom; end + + # Returns atom?&.upcase + # + # @return [Boolean] + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:523 + def case_insensitive__atom?; end + + # use where nstring represents "LABEL" values + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:581 + def case_insensitive__nstring; end + + # See https://www.rfc-editor.org/errata/rfc3501 + # + # charset = atom / quoted + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:2118 + def charset; end + + # "(" charset *(SP charset) ")" + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1989 + def charset__list; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:798 + def comparator_data(klass = T.unsafe(nil)); end + + # RFC3501 & RFC9051: + # continue-req = "+" SP (resp-text / base64) CRLF + # + # n.b: base64 is valid resp-text. And in the spirit of RFC9051 Appx E 23 + # (and to workaround existing servers), we use the following grammar: + # + # continue-req = "+" (SP (resp-text)) CRLF + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:698 + def continue_req; end + + # enable-data = "ENABLED" *(SP capability) + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1760 + def enable_data; end + + # env-from = "(" 1*address ")" / nil + # env-sender = "(" 1*address ")" / nil + # env-reply-to = "(" 1*address ")" / nil + # env-to = "(" 1*address ")" / nil + # env-cc = "(" 1*address ")" / nil + # env-bcc = "(" 1*address ")" / nil + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1038 + def env_bcc; end + + # env-from = "(" 1*address ")" / nil + # env-sender = "(" 1*address ")" / nil + # env-reply-to = "(" 1*address ")" / nil + # env-to = "(" 1*address ")" / nil + # env-cc = "(" 1*address ")" / nil + # env-bcc = "(" 1*address ")" / nil + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1037 + def env_cc; end + + # nstring = string / nil + # env-date = nstring + # env-subject = nstring + # env-in-reply-to = nstring + # env-message-id = nstring + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1016 + def env_date; end + + # env-from = "(" 1*address ")" / nil + # env-sender = "(" 1*address ")" / nil + # env-reply-to = "(" 1*address ")" / nil + # env-to = "(" 1*address ")" / nil + # env-cc = "(" 1*address ")" / nil + # env-bcc = "(" 1*address ")" / nil + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1033 + def env_from; end + + # nstring = string / nil + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1018 + def env_in_reply_to; end + + # nstring = string / nil + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1019 + def env_message_id; end + + # env-from = "(" 1*address ")" / nil + # env-sender = "(" 1*address ")" / nil + # env-reply-to = "(" 1*address ")" / nil + # env-to = "(" 1*address ")" / nil + # env-cc = "(" 1*address ")" / nil + # env-bcc = "(" 1*address ")" / nil + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1035 + def env_reply_to; end + + # env-from = "(" 1*address ")" / nil + # env-sender = "(" 1*address ")" / nil + # env-reply-to = "(" 1*address ")" / nil + # env-to = "(" 1*address ")" / nil + # env-cc = "(" 1*address ")" / nil + # env-bcc = "(" 1*address ")" / nil + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1034 + def env_sender; end + + # nstring = string / nil + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1017 + def env_subject; end + + # env-from = "(" 1*address ")" / nil + # env-sender = "(" 1*address ")" / nil + # env-reply-to = "(" 1*address ")" / nil + # env-to = "(" 1*address ")" / nil + # env-cc = "(" 1*address ")" / nil + # env-bcc = "(" 1*address ")" / nil + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1036 + def env_to; end + + # RFC3501 & RFC9051: + # envelope = "(" env-date SP env-subject SP env-from SP + # env-sender SP env-reply-to SP env-to SP env-cc SP + # env-bcc SP env-in-reply-to SP env-message-id ")" + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:993 + def envelope; end + + # esearch-response = "ESEARCH" [search-correlator] [SP "UID"] + # *(SP search-return-data) + # ;; Note that SEARCH and ESEARCH responses + # ;; SHOULD be mutually exclusive, + # ;; i.e., only one of the response types + # ;; should be + # ;; returned as a result of a command. + # esearch-response = "ESEARCH" [search-correlator] [SP "UID"] + # *(SP search-return-data) + # ; ESEARCH response replaces SEARCH response + # ; from IMAP4rev1. + # search-correlator = SP "(" "TAG" SP tag-string ")" + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1524 + def esearch_response; end + + # The name for this is confusing, because it *replaces* EXPUNGE + # >>> + # expunged-resp = "VANISHED" [SP "(EARLIER)"] SP known-uids + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:875 + def expunged_resp; end + + # flag-list = "(" [flag *(SP flag)] ")" + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:2068 + def flag_list; end + + # "(" [flag-perm *(SP flag-perm)] ")" + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:2078 + def flag_perm__list; end + + # TODO: handle atom, astring_chars, and tag entirely inside the lexer + # this represents the partial size for BODY or BINARY + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:987 + def gt__number__lt; end + + # astring = 1*ASTRING-CHAR / string + # RFC3501 & RFC9051: + # header-fld-name = astring + # + # NOTE: Previously, Net::IMAP recreated the raw original source string. + # Now, it returns the decoded astring value. Although this is technically + # incompatible, it should almost never make a difference: all standard + # header field names are valid atoms: + # + # https://www.iana.org/assignments/message-headers/message-headers.xhtml + # + # See also RFC5233: + # optional-field = field-name ":" unstructured CRLF + # field-name = 1*ftext + # ftext = %d33-57 / ; Printable US-ASCII + # %d59-126 ; characters not including + # ; ":". + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1373 + def header_fld_name; end + + # header-list = "(" header-fld-name *(SP header-fld-name) ")" + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1345 + def header_list; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1779 + def id_response; end + + # sequence-set = (seq-number / seq-range) ["," sequence-set] + # sequence-set =/ seq-last-command + # ; Allow for "result of the last command" + # ; indicator. + # seq-last-command = "$" + # + # *note*: doesn't match seq-last-command + # TODO: replace with uid_set + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:884 + def known_uids; end + + # Use #label or #label_in to assert specific known labels + # (+tagged-ext-label+ only, not +atom+). + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:538 + def label(word); end + + # Use #label or #label_in to assert specific known labels + # (+tagged-ext-label+ only, not +atom+). + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:545 + def label_in(*labels); end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:797 + def language_data(klass = T.unsafe(nil)); end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:794 + def listrights_data(klass = T.unsafe(nil)); end + + # astring = 1*ASTRING-CHAR / string + # mailbox = "INBOX" / astring + # ; INBOX is case-insensitive. All case variants of + # ; INBOX (e.g., "iNbOx") MUST be interpreted as INBOX + # ; not as an astring. An astring which consists of + # ; the case-insensitive sequence "I" "N" "B" "O" "X" + # ; is considered to be INBOX and not an astring. + # ; Refer to section 5.1 for further + # ; semantic details of mailbox names. + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:637 + def mailbox; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:869 + def mailbox_data__exists; end + + # mailbox-data = "FLAGS" SP flag-list / "LIST" SP mailbox-list / + # "LSUB" SP mailbox-list / "SEARCH" *(SP nz-number) / + # "STATUS" SP mailbox SP "(" [status-att-list] ")" / + # number SP "EXISTS" / number SP "RECENT" + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1380 + def mailbox_data__flags; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1386 + def mailbox_data__list; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1391 + def mailbox_data__lsub; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:870 + def mailbox_data__recent; end + + # RFC3501: + # mailbox-data = "SEARCH" *(SP nz-number) / ... + # RFC5256: SORT + # sort-data = "SORT" *(SP nz-number) + # RFC7162: CONDSTORE, QRESYNC + # mailbox-data =/ "SEARCH" [1*(SP nz-number) SP + # search-sort-mod-seq] + # sort-data = "SORT" [1*(SP nz-number) SP + # search-sort-mod-seq] + # ; Updates the SORT response from RFC 5256. + # search-sort-mod-seq = "(" "MODSEQ" SP mod-sequence-value ")" + # RFC9051: + # mailbox-data = obsolete-search-response / ... + # obsolete-search-response = "SEARCH" *(SP nz-number) + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1498 + def mailbox_data__search; end + + # mailbox-data =/ "STATUS" SP mailbox SP "(" [status-att-list] ")" + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1669 + def mailbox_data__status; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1392 + def mailbox_data__xlist; end + + # mailbox-list = "(" [mbx-list-flags] ")" SP + # (DQUOTE QUOTED-CHAR DQUOTE / nil) SP mailbox + # [SP mbox-list-extended] + # ; This is the list information pointed to by the ABNF + # ; item "mailbox-data", which is defined above + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1399 + def mailbox_list; end + + # See Patterns::MBX_LIST_FLAGS + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:2096 + def mbx_list_flags; end + + # n.b. this handles both type and subtype + # + # RFC-3501 vs RFC-9051: + # media-basic = ((DQUOTE ("APPLICATION" / "AUDIO" / "IMAGE" / + # "MESSAGE" / + # "VIDEO") DQUOTE) / string) SP media-subtype + # media-basic = ((DQUOTE ("APPLICATION" / "AUDIO" / "IMAGE" / + # "FONT" / "MESSAGE" / "MODEL" / + # "VIDEO") DQUOTE) / string) SP media-subtype + # + # media-message = DQUOTE "MESSAGE" DQUOTE SP + # DQUOTE "RFC822" DQUOTE + # media-message = DQUOTE "MESSAGE" DQUOTE SP + # DQUOTE ("RFC822" / "GLOBAL") DQUOTE + # + # RFC-3501 & RFC-9051: + # media-text = DQUOTE "TEXT" DQUOTE SP media-subtype + # media-subtype = string + # TODO: check types + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1180 + def media_basic; end + + # n.b. this handles both type and subtype + # + # RFC-3501 vs RFC-9051: + # media-basic = ((DQUOTE ("APPLICATION" / "AUDIO" / "IMAGE" / + # "MESSAGE" / + # "VIDEO") DQUOTE) / string) SP media-subtype + # media-basic = ((DQUOTE ("APPLICATION" / "AUDIO" / "IMAGE" / + # "FONT" / "MESSAGE" / "MODEL" / + # "VIDEO") DQUOTE) / string) SP media-subtype + # + # media-message = DQUOTE "MESSAGE" DQUOTE SP + # DQUOTE "RFC822" DQUOTE + # media-message = DQUOTE "MESSAGE" DQUOTE SP + # DQUOTE ("RFC822" / "GLOBAL") DQUOTE + # + # RFC-3501 & RFC-9051: + # media-text = DQUOTE "TEXT" DQUOTE SP media-subtype + # media-subtype = string + # */* --- catchall + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1181 + def media_message; end + + # n.b. this handles both type and subtype + # + # RFC-3501 vs RFC-9051: + # media-basic = ((DQUOTE ("APPLICATION" / "AUDIO" / "IMAGE" / + # "MESSAGE" / + # "VIDEO") DQUOTE) / string) SP media-subtype + # media-basic = ((DQUOTE ("APPLICATION" / "AUDIO" / "IMAGE" / + # "FONT" / "MESSAGE" / "MODEL" / + # "VIDEO") DQUOTE) / string) SP media-subtype + # + # media-message = DQUOTE "MESSAGE" DQUOTE SP + # DQUOTE "RFC822" DQUOTE + # media-message = DQUOTE "MESSAGE" DQUOTE SP + # DQUOTE ("RFC822" / "GLOBAL") DQUOTE + # + # RFC-3501 & RFC-9051: + # media-text = DQUOTE "TEXT" DQUOTE SP media-subtype + # media-subtype = string + # message/rfc822, message/global + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1182 + def media_text; end + + # n.b. this handles both type and subtype + # + # RFC-3501 vs RFC-9051: + # media-basic = ((DQUOTE ("APPLICATION" / "AUDIO" / "IMAGE" / + # "MESSAGE" / + # "VIDEO") DQUOTE) / string) SP media-subtype + # media-basic = ((DQUOTE ("APPLICATION" / "AUDIO" / "IMAGE" / + # "FONT" / "MESSAGE" / "MODEL" / + # "VIDEO") DQUOTE) / string) SP media-subtype + # + # media-message = DQUOTE "MESSAGE" DQUOTE SP + # DQUOTE "RFC822" DQUOTE + # media-message = DQUOTE "MESSAGE" DQUOTE SP + # DQUOTE ("RFC822" / "GLOBAL") DQUOTE + # + # RFC-3501 & RFC-9051: + # media-text = DQUOTE "TEXT" DQUOTE SP media-subtype + # media-subtype = string + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1172 + def media_type; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:799 + def message_data__converted(klass = T.unsafe(nil)); end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:868 + def message_data__expunge; end + + # message-data = nz-number SP ("EXPUNGE" / ("FETCH" SP msg-att)) + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:847 + def message_data__fetch; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:796 + def metadata_resp(klass = T.unsafe(nil)); end + + # RFC3501 & RFC9051: + # msg-att = "(" (msg-att-dynamic / msg-att-static) + # *(SP (msg-att-dynamic / msg-att-static)) ")" + # + # msg-att-dynamic = "FLAGS" SP "(" [flag-fetch *(SP flag-fetch)] ")" + # RFC5257 (ANNOTATE extension): + # msg-att-dynamic =/ "ANNOTATION" SP + # ( "(" entry-att *(SP entry-att) ")" / + # "(" entry *(SP entry) ")" ) + # RFC7162 (CONDSTORE extension): + # msg-att-dynamic =/ fetch-mod-resp + # fetch-mod-resp = "MODSEQ" SP "(" permsg-modsequence ")" + # RFC8970 (PREVIEW extension): + # msg-att-dynamic =/ "PREVIEW" SP nstring + # + # RFC3501: + # msg-att-static = "ENVELOPE" SP envelope / + # "INTERNALDATE" SP date-time / + # "RFC822" [".HEADER" / ".TEXT"] SP nstring / + # "RFC822.SIZE" SP number / + # "BODY" ["STRUCTURE"] SP body / + # "BODY" section ["<" number ">"] SP nstring / + # "UID" SP uniqueid + # RFC3516 (BINARY extension): + # msg-att-static =/ "BINARY" section-binary SP (nstring / literal8) + # / "BINARY.SIZE" section-binary SP number + # RFC8514 (SAVEDATE extension): + # msg-att-static =/ "SAVEDATE" SP (date-time / nil) + # RFC8474 (OBJECTID extension): + # msg-att-static =/ fetch-emailid-resp / fetch-threadid-resp + # fetch-emailid-resp = "EMAILID" SP "(" objectid ")" + # fetch-threadid-resp = "THREADID" SP ( "(" objectid ")" / nil ) + # RFC9051: + # msg-att-static = "ENVELOPE" SP envelope / + # "INTERNALDATE" SP date-time / + # "RFC822.SIZE" SP number64 / + # "BODY" ["STRUCTURE"] SP body / + # "BODY" section ["<" number ">"] SP nstring / + # "BINARY" section-binary SP (nstring / literal8) / + # "BINARY.SIZE" section-binary SP number / + # "UID" SP uniqueid + # + # Re https://www.rfc-editor.org/errata/eid7246, I'm adding "offset" to the + # official "BINARY" ABNF, like so: + # + # msg-att-static =/ "BINARY" section-binary ["<" number ">"] SP + # (nstring / literal8) + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:933 + def msg_att(n); end + + # appends "[section]" and "" to the base label + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:970 + def msg_att__label; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:795 + def myrights_data(klass = T.unsafe(nil)); end + + # namespace = nil / "(" 1*namespace-descr ")" + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1826 + def namespace; end + + # namespace-descr = "(" string SP + # (DQUOTE QUOTED-CHAR DQUOTE / nil) + # [namespace-response-extensions] ")" + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1837 + def namespace_descr; end + + # namespace-response = "NAMESPACE" SP namespace + # SP namespace SP namespace + # ; The first Namespace is the Personal Namespace(s). + # ; The second Namespace is the Other Users' + # ; Namespace(s). + # ; The third Namespace is the Shared Namespace(s). + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1814 + def namespace_response; end + + # namespace-response-extensions = *namespace-response-extension + # namespace-response-extension = SP string SP + # "(" string *(SP string) ")" + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1849 + def namespace_response_extensions; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1049 + def ndatetime; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:2179 + def next_token; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:2161 + def nil_atom; end + + # env-from = "(" 1*address ")" / nil + # env-sender = "(" 1*address ")" / nil + # env-reply-to = "(" 1*address ")" / nil + # env-to = "(" 1*address ")" / nil + # env-cc = "(" 1*address ")" / nil + # env-bcc = "(" 1*address ")" / nil + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1027 + def nlist__address; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:2145 + def nparens__objectid; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:576 + def nquoted; end + + # nstring = string / nil + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:568 + def nstring; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:572 + def nstring8; end + + # TODO: handle atom, astring_chars, and tag entirely inside the lexer + # RFC8474: + # objectid = 1*255(ALPHA / DIGIT / "_" / "-") + # ; characters in object identifiers are case + # ; significant + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:2142 + def objectid; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:2136 + def parens__modseq; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:2144 + def parens__objectid; end + + # partial-range = partial-range-first / partial-range-last + # tagged-ext-simple =/ partial-range-last + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1580 + def partial_range; end + + # partial-results = sequence-set / "NIL" + # ;; from [RFC3501]. + # ;; NIL indicates that no results correspond to + # ;; the requested range. + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1594 + def partial_results; end + + # This allows illegal "]" in flag names (Gmail), + # or "\*" in a FLAGS response (greenmail). + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:2089 + def quirky__flag_list(name); end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1407 + def quota_response; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1440 + def quotaroot_response; end + + # reads all the way up until CRLF + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:786 + def remaining_unparsed; end + + # As a workaround for buggy servers, allow a trailing SP: + # *(SP capability) [SP] + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1770 + def resp_code__capability; end + + # already matched: "APPENDUID" + # + # +UIDPLUS+ ABNF:: https://www.rfc-editor.org/rfc/rfc4315.html#section-4 + # resp-code-apnd = "APPENDUID" SP nz-number SP append-uid + # append-uid = uniqueid + # append-uid =/ uid-set + # ; only permitted if client uses [MULTIAPPEND] + # ; to append multiple messages. + # + # n.b, uniqueid ⊂ uid-set. To avoid inconsistent return types, we always + # match uid_set even if that returns a single-member array. + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:2004 + def resp_code_apnd__data; end + + # already matched: "COPYUID" + # + # resp-code-copy = "COPYUID" SP nz-number SP uid-set SP uid-set + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:2013 + def resp_code_copy__data; end + + # resp-cond-auth = ("OK" / "PREAUTH") SP resp-text + # + # NOTE: In the spirit of RFC9051 Appx E 23 (and to workaround existing + # servers), we don't require a final SP and instead parse this as: + # + # resp-cond-auth = ("OK" / "PREAUTH") [SP resp-text] + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:828 + def resp_cond_auth; end + + # expects "OK" or "PREAUTH" and raises InvalidResponseError on failure + # + # @raise [InvalidResponseError] + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:552 + def resp_cond_auth__name; end + + # resp-cond-bye = "BYE" SP resp-text + # + # NOTE: In the spirit of RFC9051 Appx E 23 (and to workaround existing + # servers), we don't require a final SP and instead parse this as: + # + # resp-cond-bye = "BYE" [SP resp-text] + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:840 + def resp_cond_bye; end + + # RFC3501 & RFC9051: + # resp-cond-state = ("OK" / "NO" / "BAD") SP resp-text + # + # NOTE: In the spirit of RFC9051 Appx E 23 (and to workaround existing + # servers), we don't require a final SP and instead parse this as: + # + # resp-cond-state = ("OK" / "NO" / "BAD") [SP resp-text] + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:814 + def resp_cond_state; end + + # expects "OK" or "NO" or "BAD" and raises InvalidResponseError on failure + # + # @raise [InvalidResponseError] + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:560 + def resp_cond_state__name; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:818 + def resp_cond_state__untagged; end + + # RFC3501: + # resp-text = ["[" resp-text-code "]" SP] text + # RFC9051: + # resp-text = ["[" resp-text-code "]" SP] [text] + # + # We leniently re-interpret this as + # resp-text = ["[" resp-text-code "]" [SP [text]] / [text] + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1885 + def resp_text; end + + # RFC3501 (See https://www.rfc-editor.org/errata/rfc3501): + # resp-text-code = "ALERT" / + # "BADCHARSET" [SP "(" charset *(SP charset) ")" ] / + # capability-data / "PARSE" / + # "PERMANENTFLAGS" SP "(" [flag-perm *(SP flag-perm)] ")" / + # "READ-ONLY" / "READ-WRITE" / "TRYCREATE" / + # "UIDNEXT" SP nz-number / "UIDVALIDITY" SP nz-number / + # "UNSEEN" SP nz-number / + # atom [SP 1*] + # capability-data = "CAPABILITY" *(SP capability) SP "IMAP4rev1" + # *(SP capability) + # + # RFC5530: + # resp-text-code =/ "UNAVAILABLE" / "AUTHENTICATIONFAILED" / + # "AUTHORIZATIONFAILED" / "EXPIRED" / + # "PRIVACYREQUIRED" / "CONTACTADMIN" / "NOPERM" / + # "INUSE" / "EXPUNGEISSUED" / "CORRUPTION" / + # "SERVERBUG" / "CLIENTBUG" / "CANNOT" / + # "LIMIT" / "OVERQUOTA" / "ALREADYEXISTS" / + # "NONEXISTENT" + # RFC9051: + # resp-text-code = "ALERT" / + # "BADCHARSET" [SP "(" charset *(SP charset) ")" ] / + # capability-data / "PARSE" / + # "PERMANENTFLAGS" SP "(" [flag-perm *(SP flag-perm)] ")" / + # "READ-ONLY" / "READ-WRITE" / "TRYCREATE" / + # "UIDNEXT" SP nz-number / "UIDVALIDITY" SP nz-number / + # resp-code-apnd / resp-code-copy / "UIDNOTSTICKY" / + # "UNAVAILABLE" / "AUTHENTICATIONFAILED" / + # "AUTHORIZATIONFAILED" / "EXPIRED" / + # "PRIVACYREQUIRED" / "CONTACTADMIN" / "NOPERM" / + # "INUSE" / "EXPUNGEISSUED" / "CORRUPTION" / + # "SERVERBUG" / "CLIENTBUG" / "CANNOT" / + # "LIMIT" / "OVERQUOTA" / "ALREADYEXISTS" / + # "NONEXISTENT" / "NOTSAVED" / "HASCHILDREN" / + # "CLOSED" / + # "UNKNOWN-CTE" / + # atom [SP 1*] + # capability-data = "CAPABILITY" *(SP capability) SP "IMAP4rev2" + # *(SP capability) + # + # RFC4315 (UIDPLUS), RFC9051 (IMAP4rev2): + # resp-code-apnd = "APPENDUID" SP nz-number SP append-uid + # resp-code-copy = "COPYUID" SP nz-number SP uid-set SP uid-set + # resp-text-code =/ resp-code-apnd / resp-code-copy / "UIDNOTSTICKY" + # + # RFC7162 (CONDSTORE): + # resp-text-code =/ "HIGHESTMODSEQ" SP mod-sequence-value / + # "NOMODSEQ" / + # "MODIFIED" SP sequence-set + # RFC7162 (QRESYNC): + # resp-text-code =/ "CLOSED" + # + # RFC8474: OBJECTID + # resp-text-code =/ "MAILBOXID" SP "(" objectid ")" + # + # RFC9586: UIDONLY + # resp-text-code =/ "UIDREQUIRED" + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1952 + def resp_text_code; end + + # Returns atom.upcase + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1981 + def resp_text_code__name; end + + # [RFC3501 & RFC9051:] + # response = *(continue-req / response-data) response-done + # + # For simplicity, response isn't interpreted as the combination of the + # three response types, but instead represents any individual server + # response. Our simplified interpretation is defined as: + # response = continue-req | response_data | response-tagged + # + # n.b: our "response-tagged" definition parses "greeting" too. + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:679 + def response; end + + # [RFC3501:] + # response-data = "*" SP (resp-cond-state / resp-cond-bye / + # mailbox-data / message-data / capability-data) CRLF + # [RFC4466:] + # response-data = "*" SP response-payload CRLF + # response-payload = resp-cond-state / resp-cond-bye / + # mailbox-data / message-data / capability-data + # RFC5161 (ENABLE capability): + # response-data =/ "*" SP enable-data CRLF + # RFC5255 (LANGUAGE capability) + # response-payload =/ language-data + # RFC5255 (I18NLEVEL=1 and I18NLEVEL=2 capabilities) + # response-payload =/ comparator-data + # [RFC9051:] + # response-data = "*" SP (resp-cond-state / resp-cond-bye / + # mailbox-data / message-data / capability-data / + # enable-data) CRLF + # + # [merging in greeting and response-fatal:] + # greeting = "*" SP (resp-cond-auth / resp-cond-bye) CRLF + # response-fatal = "*" SP resp-cond-bye CRLF + # response-data =/ "*" SP (resp-cond-auth / resp-cond-bye) CRLF + # [removing duplicates, this is simply] + # response-payload =/ resp-cond-auth + # + # TODO: remove resp-cond-auth and handle greeting separately + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:731 + def response_data; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:791 + def response_data__ignored; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:792 + def response_data__noop; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:862 + def response_data__simple_numeric; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:773 + def response_data__unhandled(klass = T.unsafe(nil)); end + + # RFC3501 & RFC9051: + # response-tagged = tag SP resp-cond-state CRLF + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:803 + def response_tagged; end + + # From RFC5267 (CONTEXT=SEARCH, CONTEXT=SORT) and RFC9394 (PARTIAL): + # ret-data-partial = "PARTIAL" + # SP "(" partial-range SP partial-results ")" + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1570 + def ret_data_partial__value; end + + # search-correlator = SP "(" "TAG" SP tag-string ")" + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1608 + def search_correlator; end + + # From RFC4731 (ESEARCH): + # search-return-data = "MIN" SP nz-number / + # "MAX" SP nz-number / + # "ALL" SP sequence-set / + # "COUNT" SP number / + # search-ret-data-ext + # ; All return data items conform to + # ; search-ret-data-ext syntax. + # search-ret-data-ext = search-modifier-name SP search-return-value + # search-modifier-name = tagged-ext-label + # search-return-value = tagged-ext-val + # + # From RFC4731 (ESEARCH): + # search-return-data =/ "MODSEQ" SP mod-sequence-value + # + # From RFC9394 (PARTIAL): + # search-return-data =/ ret-data-partial + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1552 + def search_return_data; end + + # search-return-value = tagged-ext-val + # ; Data for the returned search option. + # ; A single "nz-number"/"number"/"number64" value + # ; can be returned as an atom (i.e., without + # ; quoting). A sequence-set can be returned + # ; as an atom as well. + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1605 + def search_return_value; end + + # section = "[" [section-spec] "]" + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1309 + def section; end + + # section-binary = "[" [section-part] "]" + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1316 + def section_binary; end + + # TODO: handle atom, astring_chars, and tag entirely inside the lexer + # section-part = nz-number *("." nz-number) + # ; body part reference. + # ; Allows for accessing nested body parts. + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1355 + def section_part; end + + # section-spec = section-msgtext / (section-part ["." section-text]) + # section-msgtext = "HEADER" / + # "HEADER.FIELDS" [".NOT"] SP header-list / + # "TEXT" + # ; top-level or MESSAGE/RFC822 or + # ; MESSAGE/GLOBAL part + # section-part = nz-number *("." nz-number) + # ; body part reference. + # ; Allows for accessing nested body parts. + # section-text = section-msgtext / "MIME" + # ; text other than actual body part (headers, + # ; etc.) + # + # n.b: we could "cheat" here and just grab all text inside the brackets, + # but literals would need special treatment. + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1337 + def section_spec; end + + # sequence-set = (seq-number / seq-range) ["," sequence-set] + # sequence-set =/ seq-last-command + # ; Allow for "result of the last command" + # ; indicator. + # seq-last-command = "$" + # + # *note*: doesn't match seq-last-command + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:493 + def sequence_set; end + + # RFC3501: + # mailbox-data = "SEARCH" *(SP nz-number) / ... + # RFC5256: SORT + # sort-data = "SORT" *(SP nz-number) + # RFC7162: CONDSTORE, QRESYNC + # mailbox-data =/ "SEARCH" [1*(SP nz-number) SP + # search-sort-mod-seq] + # sort-data = "SORT" [1*(SP nz-number) SP + # search-sort-mod-seq] + # ; Updates the SORT response from RFC 5256. + # search-sort-mod-seq = "(" "MODSEQ" SP mod-sequence-value ")" + # RFC9051: + # mailbox-data = obsolete-search-response / ... + # obsolete-search-response = "SEARCH" *(SP nz-number) + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1510 + def sort_data; end + + # RFC3501 + # status-att-list = status-att SP number *(SP status-att SP number) + # RFC4466, RFC9051, and RFC3501 Errata + # status-att-list = status-att-val *(SP status-att-val) + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1680 + def status_att_list; end + + # RFC3501 Errata: + # status-att-val = ("MESSAGES" SP number) / ("RECENT" SP number) / + # ("UIDNEXT" SP nz-number) / ("UIDVALIDITY" SP nz-number) / + # ("UNSEEN" SP number) + # RFC4466: + # status-att-val = ("MESSAGES" SP number) / + # ("RECENT" SP number) / + # ("UIDNEXT" SP nz-number) / + # ("UIDVALIDITY" SP nz-number) / + # ("UNSEEN" SP number) + # ;; Extensions to the STATUS responses + # ;; should extend this production. + # ;; Extensions should use the generic + # ;; syntax defined by tagged-ext. + # RFC9051: + # status-att-val = ("MESSAGES" SP number) / + # ("UIDNEXT" SP nz-number) / + # ("UIDVALIDITY" SP nz-number) / + # ("UNSEEN" SP number) / + # ("DELETED" SP number) / + # ("SIZE" SP number64) + # ; Extensions to the STATUS responses + # ; should extend this production. + # ; Extensions should use the generic + # ; syntax defined by tagged-ext. + # RFC7162: + # status-att-val =/ "HIGHESTMODSEQ" SP mod-sequence-valzer + # ;; Extends non-terminal defined in [RFC4466]. + # ;; Value 0 denotes that the mailbox doesn't + # ;; support persistent mod-sequences + # ;; as described in Section 3.1.2.2. + # RFC7889: + # status-att-val =/ "APPENDLIMIT" SP (number / nil) + # ;; status-att-val is defined in RFC 4466 + # RFC8438: + # status-att-val =/ "SIZE" SP number64 + # RFC8474: + # status-att-val =/ "MAILBOXID" SP "(" objectid ")" + # ; follows tagged-ext production from [RFC4466] + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1725 + def status_att_val; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:514 + def tag; end + + # astring = 1*ASTRING-CHAR / string + # tag-string = astring + # ; represented as + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1615 + def tag_string; end + + # tagged-ext-comp = astring / + # tagged-ext-comp *(SP tagged-ext-comp) / + # "(" tagged-ext-comp ")" + # ; Extensions that follow this general + # ; syntax should use nstring instead of + # ; astring when appropriate in the context + # ; of the extension. + # ; Note that a message set or a "number" + # ; can always be represented as an "atom". + # ; A URL should be represented as + # ; a "quoted" string. + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:596 + def tagged_ext_comp; end + + # tagged-ext-simple is a subset of atom + # TODO: recognize sequence-set in the lexer + # + # tagged-ext-simple = sequence-set / number / number64 + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:613 + def tagged_ext_simple; end + + # tagged-ext-val = tagged-ext-simple / + # "(" [tagged-ext-comp] ")" + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:619 + def tagged_ext_val; end + + # TEXT-CHAR = + # RFC3501: + # text = 1*TEXT-CHAR + # RFC9051: + # text = 1*(TEXT-CHAR / UTF8-2 / UTF8-3 / UTF8-4) + # ; Non-ASCII text can only be returned + # ; after ENABLE IMAP4rev2 command + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1869 + def text; end + + # an "accept" versiun of #text + # + # @return [Boolean] + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1874 + def text?; end + + # 1* + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1984 + def text_chars_except_rbra; end + + # RFC5256: THREAD + # thread-data = "THREAD" [SP 1*thread-list] + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1619 + def thread_data; end + + # RFC5256: THREAD + # thread-list = "(" (thread-members / thread-nested) ")" + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1633 + def thread_list; end + + # RFC5256: THREAD + # thread-members = nz-number *(SP nz-number) [SP thread-nested] + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1646 + def thread_members; end + + # RFC5256: THREAD + # thread-nested = 2*thread-list + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:1662 + def thread_nested; end + + # RFC-4315 (UIDPLUS) or RFC9051 (IMAP4rev2): + # uid-set = (uniqueid / uid-range) *("," uid-set) + # uid-range = (uniqueid ":" uniqueid) + # ; two uniqueid values and all values + # ; between these two regardless of order. + # ; Example: 2:4 and 4:2 are equivalent. + # uniqueid = nz-number + # ; Strictly ascending + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:2155 + def uid_set; end + + # uidfetch-resp = uniqueid SP "UIDFETCH" SP msg-att + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:855 + def uidfetch_resp; end + + # See https://developers.google.com/gmail/imap/imap-extensions + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:2103 + def x_gm_label; end + + # See https://developers.google.com/gmail/imap/imap-extensions + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:2106 + def x_gm_labels; end +end + +# ASTRING-CHAR = ATOM-CHAR / resp-specials +# resp-specials = "]" +# +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:504 +Net::IMAP::ResponseParser::ASTRING_CHARS_TOKENS = T.let(T.unsafe(nil), Array) + +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:506 +Net::IMAP::ResponseParser::ASTRING_TOKENS = T.let(T.unsafe(nil), Array) + +# basic utility methods for parsing. +# +# (internal API, subject to change) +# +# pkg:gem/net-imap#lib/net/imap/response_parser/parser_utils.rb:9 +module Net::IMAP::ResponseParser::ParserUtils + private + + # like match, but does not raise error on failure. + # + # returns and shifts token on successful match + # returns nil and leaves @token unshifted on no match + # + # pkg:gem/net-imap#lib/net/imap/response_parser/parser_utils.rb:148 + def accept(*args); end + + # pkg:gem/net-imap#lib/net/imap/response_parser/parser_utils.rb:198 + def accept_re(re); end + + # To be used conditionally: + # assert_no_lookahead if config.debug? + # + # pkg:gem/net-imap#lib/net/imap/response_parser/parser_utils.rb:158 + def assert_no_lookahead; end + + # TODO: after checking the lookahead, use a regexp for remaining chars. + # That way a loop isn't needed. + # + # pkg:gem/net-imap#lib/net/imap/response_parser/parser_utils.rb:121 + def combine_adjacent(*tokens); end + + # pkg:gem/net-imap#lib/net/imap/response_parser/parser_utils.rb:169 + def lookahead; end + + # like match, without consuming the token + # + # pkg:gem/net-imap#lib/net/imap/response_parser/parser_utils.rb:174 + def lookahead!(*args); end + + # like accept, without consuming the token + # + # @return [Boolean] + # + # pkg:gem/net-imap#lib/net/imap/response_parser/parser_utils.rb:165 + def lookahead?(*symbols); end + + # pkg:gem/net-imap#lib/net/imap/response_parser/parser_utils.rb:133 + def match(*args); end + + # pkg:gem/net-imap#lib/net/imap/response_parser/parser_utils.rb:204 + def match_re(re, name); end + + # @raise [ResponseParseError] + # + # pkg:gem/net-imap#lib/net/imap/response_parser/parser_utils.rb:218 + def parse_error(fmt, *args); end + + # pkg:gem/net-imap#lib/net/imap/response_parser/parser_utils.rb:193 + def peek_re(re); end + + # @return [Boolean] + # + # pkg:gem/net-imap#lib/net/imap/response_parser/parser_utils.rb:188 + def peek_re?(re); end + + # @return [Boolean] + # + # pkg:gem/net-imap#lib/net/imap/response_parser/parser_utils.rb:183 + def peek_str?(str); end + + # pkg:gem/net-imap#lib/net/imap/response_parser/parser_utils.rb:214 + def shift_token; end +end + +# pkg:gem/net-imap#lib/net/imap/response_parser/parser_utils.rb:11 +module Net::IMAP::ResponseParser::ParserUtils::Generator + # we can skip lexer for single character matches, as a shortcut + # + # pkg:gem/net-imap#lib/net/imap/response_parser/parser_utils.rb:17 + def def_char_matchers(name, char, token); end + + # TODO: move coersion to the token.value method? + # + # pkg:gem/net-imap#lib/net/imap/response_parser/parser_utils.rb:62 + def def_token_matchers(name, *token_symbols, coerce: T.unsafe(nil), send: T.unsafe(nil)); end +end + +# pkg:gem/net-imap#lib/net/imap/response_parser/parser_utils.rb:13 +Net::IMAP::ResponseParser::ParserUtils::Generator::LOOKAHEAD = T.let(T.unsafe(nil), String) + +# pkg:gem/net-imap#lib/net/imap/response_parser/parser_utils.rb:14 +Net::IMAP::ResponseParser::ParserUtils::Generator::SHIFT_TOKEN = T.let(T.unsafe(nil), String) + +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:84 +module Net::IMAP::ResponseParser::Patterns + include ::Net::IMAP::ResponseParser::Patterns::RFC5234 + include ::Net::IMAP::ResponseParser::Patterns::RFC3629 + + private + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:377 + def unescape_quoted(quoted); end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:371 + def unescape_quoted!(quoted); end + + class << self + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:377 + def unescape_quoted(quoted); end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:371 + def unescape_quoted!(quoted); end + end +end + +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:181 +Net::IMAP::ResponseParser::Patterns::ASTRING_CHAR = T.let(T.unsafe(nil), Regexp) + +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:185 +Net::IMAP::ResponseParser::Patterns::ASTRING_CHARS = T.let(T.unsafe(nil), Regexp) + +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:179 +Net::IMAP::ResponseParser::Patterns::ASTRING_SPECIALS = T.let(T.unsafe(nil), Regexp) + +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:184 +Net::IMAP::ResponseParser::Patterns::ATOM = T.let(T.unsafe(nil), Regexp) + +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:186 +Net::IMAP::ResponseParser::Patterns::ATOMISH = T.let(T.unsafe(nil), Regexp) + +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:182 +Net::IMAP::ResponseParser::Patterns::ATOM_CHAR = T.let(T.unsafe(nil), Regexp) + +# atomish = 1* +# ; We use "atomish" for msg-att and section, in order +# ; to simplify "BODY[HEADER.FIELDS (foo bar)]". +# +# atom-specials = "(" / ")" / "{" / SP / CTL / list-wildcards / +# quoted-specials / resp-specials +# ATOM-CHAR = +# atom = 1*ATOM-CHAR +# ASTRING-CHAR = ATOM-CHAR / resp-specials +# tag = 1* +# +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:178 +Net::IMAP::ResponseParser::Patterns::ATOM_SPECIALS = T.let(T.unsafe(nil), Regexp) + +# CHAR8 = %x01-ff +# ; any OCTET except NUL, %x00 +# +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:158 +Net::IMAP::ResponseParser::Patterns::CHAR8 = T.let(T.unsafe(nil), Regexp) + +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:194 +Net::IMAP::ResponseParser::Patterns::CODE_TEXT = T.let(T.unsafe(nil), Regexp) + +# resp-text-code = ... / atom [SP 1*] +# +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:193 +Net::IMAP::ResponseParser::Patterns::CODE_TEXT_CHAR = T.let(T.unsafe(nil), Regexp) + +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:86 +module Net::IMAP::ResponseParser::Patterns::CharClassSubtraction; end + +# flag = "\Answered" / "\Flagged" / "\Deleted" / +# "\Seen" / "\Draft" / flag-keyword / flag-extension +# ; Does not include "\Recent" +# flag-extension = "\" atom +# ; Future expansion. Client implementations +# ; MUST accept flag-extension flags. Server +# ; implementations MUST NOT generate +# ; flag-extension flags except as defined by +# ; a future Standard or Standards Track +# ; revisions of this specification. +# flag-keyword = "$MDNSent" / "$Forwarded" / "$Junk" / +# "$NotJunk" / "$Phishing" / atom +# +# flag-perm = flag / "\*" +# +# Not checking for max one mbx-list-sflag in the parser. +# >>> +# mbx-list-oflag = "\Noinferiors" / child-mbox-flag / +# "\Subscribed" / "\Remote" / flag-extension +# ; Other flags; multiple from this list are +# ; possible per LIST response, but each flag +# ; can only appear once per LIST response +# mbx-list-sflag = "\NonExistent" / "\Noselect" / "\Marked" / +# "\Unmarked" +# ; Selectability flags; only one per LIST response +# child-mbox-flag = "\HasChildren" / "\HasNoChildren" +# ; attributes for the CHILDREN return option, at most +# ; one possible per LIST response +# +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:224 +Net::IMAP::ResponseParser::Patterns::FLAG = T.let(T.unsafe(nil), Regexp) + +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:225 +Net::IMAP::ResponseParser::Patterns::FLAG_EXTENSION = T.let(T.unsafe(nil), Regexp) + +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:226 +Net::IMAP::ResponseParser::Patterns::FLAG_KEYWORD = T.let(T.unsafe(nil), Regexp) + +# flag-list = "(" [flag *(SP flag)] ")" +# resp-text-code =/ "PERMANENTFLAGS" SP +# "(" [flag-perm *(SP flag-perm)] ")" +# mbx-list-flags = *(mbx-list-oflag SP) mbx-list-sflag +# *(SP mbx-list-oflag) / +# mbx-list-oflag *(SP mbx-list-oflag) +# (Not checking for max one mbx-list-sflag in the parser.) +# +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:237 +Net::IMAP::ResponseParser::Patterns::FLAG_LIST = T.let(T.unsafe(nil), Regexp) + +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:227 +Net::IMAP::ResponseParser::Patterns::FLAG_PERM = T.let(T.unsafe(nil), Regexp) + +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:238 +Net::IMAP::ResponseParser::Patterns::FLAG_PERM_LIST = T.let(T.unsafe(nil), Regexp) + +# list-wildcards = "%" / "*" +# +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:161 +Net::IMAP::ResponseParser::Patterns::LIST_WILDCARDS = T.let(T.unsafe(nil), Regexp) + +# RFC3501: +# literal = "{" number "}" CRLF *CHAR8 +# ; Number represents the number of CHAR8s +# RFC9051: +# literal = "{" number64 ["+"] "}" CRLF *CHAR8 +# ; represents the number of CHAR8s. +# ; A non-synchronizing literal is distinguished +# ; from a synchronizing literal by the presence of +# ; "+" before the closing "}". +# ; Non-synchronizing literals are not allowed when +# ; sent from server to the client. +# +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:357 +Net::IMAP::ResponseParser::Patterns::LITERAL = T.let(T.unsafe(nil), Regexp) + +# RFC3516 (BINARY): +# literal8 = "~{" number "}" CRLF *OCTET +# ; represents the number of OCTETs +# ; in the response string. +# RFC9051: +# literal8 = "~{" number64 "}" CRLF *OCTET +# ; represents the number of OCTETs +# ; in the response string. +# +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:367 +Net::IMAP::ResponseParser::Patterns::LITERAL8 = T.let(T.unsafe(nil), Regexp) + +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:228 +Net::IMAP::ResponseParser::Patterns::MBX_FLAG = T.let(T.unsafe(nil), Regexp) + +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:239 +Net::IMAP::ResponseParser::Patterns::MBX_LIST_FLAGS = T.let(T.unsafe(nil), Regexp) + +# nz-number = digit-nz *DIGIT +# ; Non-zero unsigned 32-bit integer +# ; (0 < n < 4,294,967,296) +# +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:281 +Net::IMAP::ResponseParser::Patterns::NZ_NUMBER = T.let(T.unsafe(nil), Regexp) + +# partial-range = partial-range-first / partial-range-last +# +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:343 +Net::IMAP::ResponseParser::Patterns::PARTIAL_RANGE = T.let(T.unsafe(nil), Regexp) + +# partial-range-first = nz-number ":" nz-number +# ;; Request to search from oldest (lowest UIDs) to +# ;; more recent messages. +# ;; A range 500:400 is the same as 400:500. +# ;; This is similar to from [RFC3501] +# ;; but cannot contain "*". +# +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:334 +Net::IMAP::ResponseParser::Patterns::PARTIAL_RANGE_FIRST = T.let(T.unsafe(nil), Regexp) + +# partial-range-last = MINUS nz-number ":" MINUS nz-number +# ;; Request to search from newest (highest UIDs) to +# ;; oldest messages. +# ;; A range -500:-400 is the same as -400:-500. +# +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:340 +Net::IMAP::ResponseParser::Patterns::PARTIAL_RANGE_LAST = T.let(T.unsafe(nil), Regexp) + +# Gmail allows SP and "]" in flags....... +# +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:242 +Net::IMAP::ResponseParser::Patterns::QUIRKY_FLAG = T.let(T.unsafe(nil), Regexp) + +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:243 +Net::IMAP::ResponseParser::Patterns::QUIRKY_FLAGS_LIST = T.let(T.unsafe(nil), Regexp) + +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:254 +Net::IMAP::ResponseParser::Patterns::QUOTED_CHAR_esc = T.let(T.unsafe(nil), Regexp) + +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:255 +Net::IMAP::ResponseParser::Patterns::QUOTED_CHAR_rev1 = T.let(T.unsafe(nil), Regexp) + +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:256 +Net::IMAP::ResponseParser::Patterns::QUOTED_CHAR_rev2 = T.let(T.unsafe(nil), Regexp) + +# RFC3501: +# QUOTED-CHAR = / +# "\" quoted-specials +# RFC9051: +# QUOTED-CHAR = / +# "\" quoted-specials / UTF8-2 / UTF8-3 / UTF8-4 +# RFC3501 & RFC9051: +# quoted = DQUOTE *QUOTED-CHAR DQUOTE +# +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:253 +Net::IMAP::ResponseParser::Patterns::QUOTED_CHAR_safe = T.let(T.unsafe(nil), Regexp) + +# quoted-specials = DQUOTE / "\" +# +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:163 +Net::IMAP::ResponseParser::Patterns::QUOTED_SPECIALS = T.let(T.unsafe(nil), Regexp) + +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:258 +Net::IMAP::ResponseParser::Patterns::QUOTED_rev1 = T.let(T.unsafe(nil), Regexp) + +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:259 +Net::IMAP::ResponseParser::Patterns::QUOTED_rev2 = T.let(T.unsafe(nil), Regexp) + +# resp-specials = "]" +# +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:165 +Net::IMAP::ResponseParser::Patterns::RESP_SPECIALS = T.let(T.unsafe(nil), Regexp) + +# UTF-8, a transformation format of ISO 10646 +# >>> +# UTF8-1 = %x00-7F +# UTF8-tail = %x80-BF +# UTF8-2 = %xC2-DF UTF8-tail +# UTF8-3 = %xE0 %xA0-BF UTF8-tail / %xE1-EC 2( UTF8-tail ) / +# %xED %x80-9F UTF8-tail / %xEE-EF 2( UTF8-tail ) +# UTF8-4 = %xF0 %x90-BF 2( UTF8-tail ) / %xF1-F3 3( UTF8-tail ) / +# %xF4 %x80-8F 2( UTF8-tail ) +# UTF8-char = UTF8-1 / UTF8-2 / UTF8-3 / UTF8-4 +# UTF8-octets = *( UTF8-char ) +# +# n.b. String * Integer is used for repetition, rather than /x{3}/, +# because ruby 3.2's linear-time cache-based optimization doesn't work +# with "bounded or fixed times repetition nesting in another repetition +# (e.g. /(a{2,3})*/). It is an implementation issue entirely, but we +# believe it is hard to support this case correctly." +# See https://bugs.ruby-lang.org/issues/19104 +# +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:138 +module Net::IMAP::ResponseParser::Patterns::RFC3629; end + +# aka ASCII 7bit +# +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:139 +Net::IMAP::ResponseParser::Patterns::RFC3629::UTF8_1 = T.let(T.unsafe(nil), Regexp) + +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:141 +Net::IMAP::ResponseParser::Patterns::RFC3629::UTF8_2 = T.let(T.unsafe(nil), Regexp) + +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:142 +Net::IMAP::ResponseParser::Patterns::RFC3629::UTF8_3 = T.let(T.unsafe(nil), Regexp) + +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:146 +Net::IMAP::ResponseParser::Patterns::RFC3629::UTF8_4 = T.let(T.unsafe(nil), Regexp) + +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:149 +Net::IMAP::ResponseParser::Patterns::RFC3629::UTF8_CHAR = T.let(T.unsafe(nil), Regexp) + +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:150 +Net::IMAP::ResponseParser::Patterns::RFC3629::UTF8_OCTETS = T.let(T.unsafe(nil), Regexp) + +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:140 +Net::IMAP::ResponseParser::Patterns::RFC3629::UTF8_TAIL = T.let(T.unsafe(nil), Regexp) + +# From RFC5234, "Augmented BNF for Syntax Specifications: ABNF" +# >>> +# ALPHA = %x41-5A / %x61-7A ; A-Z / a-z +# CHAR = %x01-7F +# CRLF = CR LF +# ; Internet standard newline +# CTL = %x00-1F / %x7F +# ; controls +# DIGIT = %x30-39 +# ; 0-9 +# DQUOTE = %x22 +# ; " (Double Quote) +# HEXDIG = DIGIT / "A" / "B" / "C" / "D" / "E" / "F" +# OCTET = %x00-FF +# SP = %x20 +# +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:108 +module Net::IMAP::ResponseParser::Patterns::RFC5234; end + +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:109 +Net::IMAP::ResponseParser::Patterns::RFC5234::ALPHA = T.let(T.unsafe(nil), Regexp) + +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:110 +Net::IMAP::ResponseParser::Patterns::RFC5234::CHAR = T.let(T.unsafe(nil), Regexp) + +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:111 +Net::IMAP::ResponseParser::Patterns::RFC5234::CRLF = T.let(T.unsafe(nil), Regexp) + +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:112 +Net::IMAP::ResponseParser::Patterns::RFC5234::CTL = T.let(T.unsafe(nil), Regexp) + +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:113 +Net::IMAP::ResponseParser::Patterns::RFC5234::DIGIT = T.let(T.unsafe(nil), Regexp) + +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:114 +Net::IMAP::ResponseParser::Patterns::RFC5234::DQUOTE = T.let(T.unsafe(nil), Regexp) + +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:115 +Net::IMAP::ResponseParser::Patterns::RFC5234::HEXDIG = T.let(T.unsafe(nil), Regexp) + +# not using /./m for embedding purposes +# +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:116 +Net::IMAP::ResponseParser::Patterns::RFC5234::OCTET = T.let(T.unsafe(nil), Regexp) + +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:117 +Net::IMAP::ResponseParser::Patterns::RFC5234::SP = T.let(T.unsafe(nil), Regexp) + +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:325 +Net::IMAP::ResponseParser::Patterns::SEQUENCE_SET = T.let(T.unsafe(nil), Regexp) + +# sequence-set = (seq-number / seq-range) ["," sequence-set] +# ; set of seq-number values, regardless of order. +# ; Servers MAY coalesce overlaps and/or execute +# ; the sequence in any order. +# ; Example: a message sequence number set of +# ; 2,4:7,9,12:* for a mailbox with 15 messages is +# ; equivalent to 2,4,5,6,7,9,12,13,14,15 +# ; Example: a message sequence number set of +# ; *:4,5:7 for a mailbox with 10 messages is +# ; equivalent to 10,9,8,7,6,5,4,5,6,7 and MAY +# ; be reordered and overlap coalesced to be +# ; 4,5,6,7,8,9,10. +# +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:324 +Net::IMAP::ResponseParser::Patterns::SEQUENCE_SET_ITEM = T.let(T.unsafe(nil), Regexp) + +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:326 +Net::IMAP::ResponseParser::Patterns::SEQUENCE_SET_STR = T.let(T.unsafe(nil), Regexp) + +# seq-number = nz-number / "*" +# ; message sequence number (COPY, FETCH, STORE +# ; commands) or unique identifier (UID COPY, +# ; UID FETCH, UID STORE commands). +# ; * represents the largest number in use. In +# ; the case of message sequence numbers, it is +# ; the number of messages in a non-empty mailbox. +# ; In the case of unique identifiers, it is the +# ; unique identifier of the last message in the +# ; mailbox or, if the mailbox is empty, the +# ; mailbox's current UIDNEXT value. +# ; The server should respond with a tagged BAD +# ; response to a command that uses a message +# ; sequence number greater than the number of +# ; messages in the selected mailbox. This +# ; includes "*" if the selected mailbox is empty. +# +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:299 +Net::IMAP::ResponseParser::Patterns::SEQ_NUMBER = T.let(T.unsafe(nil), Regexp) + +# seq-range = seq-number ":" seq-number +# ; two seq-number values and all values between +# ; these two regardless of order. +# ; Example: 2:4 and 4:2 are equivalent and +# ; indicate values 2, 3, and 4. +# ; Example: a unique identifier sequence range of +# ; 3291:* includes the UID of the last message in +# ; the mailbox, even if that value is less than +# ; 3291. +# +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:310 +Net::IMAP::ResponseParser::Patterns::SEQ_RANGE = T.let(T.unsafe(nil), Regexp) + +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:187 +Net::IMAP::ResponseParser::Patterns::TAG = T.let(T.unsafe(nil), Regexp) + +# tagged-ext-label = tagged-label-fchar *tagged-label-char +# ; Is a valid RFC 3501 "atom". +# +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:276 +Net::IMAP::ResponseParser::Patterns::TAGGED_EXT_LABEL = T.let(T.unsafe(nil), Regexp) + +# tagged-label-char = tagged-label-fchar / DIGIT / ":" +# +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:273 +Net::IMAP::ResponseParser::Patterns::TAGGED_LABEL_CHAR = T.let(T.unsafe(nil), Regexp) + +# tagged-label-fchar = ALPHA / "-" / "_" / "." +# +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:271 +Net::IMAP::ResponseParser::Patterns::TAGGED_LABEL_FCHAR = T.let(T.unsafe(nil), Regexp) + +# TEXT-CHAR = +# +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:190 +Net::IMAP::ResponseParser::Patterns::TEXT_CHAR = T.let(T.unsafe(nil), Regexp) + +# RFC3501: +# text = 1*TEXT-CHAR +# RFC9051: +# text = 1*(TEXT-CHAR / UTF8-2 / UTF8-3 / UTF8-4) +# ; Non-ASCII text can only be returned +# ; after ENABLE IMAP4rev2 command +# +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:267 +Net::IMAP::ResponseParser::Patterns::TEXT_rev1 = T.let(T.unsafe(nil), Regexp) + +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:268 +Net::IMAP::ResponseParser::Patterns::TEXT_rev2 = T.let(T.unsafe(nil), Regexp) + +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:703 +Net::IMAP::ResponseParser::RE_RESPONSE_TYPE = T.let(T.unsafe(nil), Regexp) + +# end of response string +# +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:69 +module Net::IMAP::ResponseParser::ResponseConditions; end + +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:78 +Net::IMAP::ResponseParser::ResponseConditions::AUTH_CONDS = T.let(T.unsafe(nil), Array) + +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:72 +Net::IMAP::ResponseParser::ResponseConditions::BAD = T.let(T.unsafe(nil), String) + +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:73 +Net::IMAP::ResponseParser::ResponseConditions::BYE = T.let(T.unsafe(nil), String) + +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:79 +Net::IMAP::ResponseParser::ResponseConditions::GREETING_CONDS = T.let(T.unsafe(nil), Array) + +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:71 +Net::IMAP::ResponseParser::ResponseConditions::NO = T.let(T.unsafe(nil), String) + +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:70 +Net::IMAP::ResponseParser::ResponseConditions::OK = T.let(T.unsafe(nil), String) + +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:74 +Net::IMAP::ResponseParser::ResponseConditions::PREAUTH = T.let(T.unsafe(nil), String) + +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:80 +Net::IMAP::ResponseParser::ResponseConditions::RESP_CONDS = T.let(T.unsafe(nil), Array) + +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:76 +Net::IMAP::ResponseParser::ResponseConditions::RESP_COND_STATES = T.let(T.unsafe(nil), Array) + +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:77 +Net::IMAP::ResponseParser::ResponseConditions::RESP_DATA_CONDS = T.let(T.unsafe(nil), Array) + +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:484 +Net::IMAP::ResponseParser::SEQUENCE_SET_TOKENS = T.let(T.unsafe(nil), Array) + +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:2166 +Net::IMAP::ResponseParser::SPACES_REGEXP = T.let(T.unsafe(nil), Regexp) + +# tag = 1* +# +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:509 +Net::IMAP::ResponseParser::TAG_TOKENS = T.let(T.unsafe(nil), Array) + +# starts with atom special +# +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:64 +Net::IMAP::ResponseParser::T_LITERAL8 = T.let(T.unsafe(nil), Symbol) + +# pkg:gem/net-imap#lib/net/imap/response_parser.rb:427 +class Net::IMAP::ResponseParser::Token < ::Struct + # Returns the value of attribute symbol + # + # @return [Object] the current value of symbol + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:427 + def symbol; end + + # Sets the attribute symbol + # + # @param value [Object] the value to set the attribute symbol to. + # @return [Object] the newly set value + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:427 + def symbol=(_); end + + # Returns the value of attribute value + # + # @return [Object] the current value of value + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:427 + def value; end + + # Sets the attribute value + # + # @param value [Object] the value to set the attribute value to. + # @return [Object] the newly set value + # + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:427 + def value=(_); end + + class << self + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:427 + def [](*_arg0); end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:427 + def inspect; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:427 + def keyword_init?; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:427 + def members; end + + # pkg:gem/net-imap#lib/net/imap/response_parser.rb:427 + def new(*_arg0); end + end +end + +# Error raised when the socket cannot be read, due to a Config limit. +# +# pkg:gem/net-imap#lib/net/imap/errors.rb:21 +class Net::IMAP::ResponseReadError < ::Net::IMAP::Error; end + +# See https://www.rfc-editor.org/rfc/rfc9051#section-2.2.2 +# +# pkg:gem/net-imap#lib/net/imap/response_reader.rb:6 +class Net::IMAP::ResponseReader + # @return [ResponseReader] a new instance of ResponseReader + # + # pkg:gem/net-imap#lib/net/imap/response_reader.rb:9 + def initialize(client, sock); end + + # pkg:gem/net-imap#lib/net/imap/response_reader.rb:7 + def client; end + + # pkg:gem/net-imap#lib/net/imap/response_reader.rb:13 + def read_response_buffer; end + + private + + # Returns the value of attribute buff. + # + # pkg:gem/net-imap#lib/net/imap/response_reader.rb:29 + def buff; end + + # pkg:gem/net-imap#lib/net/imap/response_reader.rb:31 + def bytes_read; end + + # @return [Boolean] + # + # pkg:gem/net-imap#lib/net/imap/response_reader.rb:33 + def done?; end + + # @return [Boolean] + # + # pkg:gem/net-imap#lib/net/imap/response_reader.rb:32 + def empty?; end + + # pkg:gem/net-imap#lib/net/imap/response_reader.rb:35 + def get_literal_size; end + + # @return [Boolean] + # + # pkg:gem/net-imap#lib/net/imap/response_reader.rb:34 + def line_done?; end + + # Returns the value of attribute literal_size. + # + # pkg:gem/net-imap#lib/net/imap/response_reader.rb:29 + def literal_size; end + + # pkg:gem/net-imap#lib/net/imap/response_reader.rb:56 + def max_response_remaining; end + + # @raise [ResponseTooLargeError] + # + # pkg:gem/net-imap#lib/net/imap/response_reader.rb:64 + def max_response_remaining!; end + + # pkg:gem/net-imap#lib/net/imap/response_reader.rb:55 + def max_response_size; end + + # pkg:gem/net-imap#lib/net/imap/response_reader.rb:60 + def min_response_remaining; end + + # pkg:gem/net-imap#lib/net/imap/response_reader.rb:58 + def min_response_size; end + + # pkg:gem/net-imap#lib/net/imap/response_reader.rb:51 + def read_limit(limit = T.unsafe(nil)); end + + # pkg:gem/net-imap#lib/net/imap/response_reader.rb:37 + def read_line; end + + # pkg:gem/net-imap#lib/net/imap/response_reader.rb:42 + def read_literal; end + + # @return [Boolean] + # + # pkg:gem/net-imap#lib/net/imap/response_reader.rb:57 + def response_too_large?; end +end + +# Used to avoid an allocation when ResponseText is empty +# +# pkg:gem/net-imap#lib/net/imap/response_data.rb:180 +Net::IMAP::ResponseText::EMPTY = T.let(T.unsafe(nil), Net::IMAP::ResponseText) + +# Error raised when a response is larger than IMAP#max_response_size. +# +# pkg:gem/net-imap#lib/net/imap/errors.rb:25 +class Net::IMAP::ResponseTooLargeError < ::Net::IMAP::ResponseReadError + # @return [ResponseTooLargeError] a new instance of ResponseTooLargeError + # + # pkg:gem/net-imap#lib/net/imap/errors.rb:29 + def initialize(msg = T.unsafe(nil), *args, bytes_read: T.unsafe(nil), literal_size: T.unsafe(nil), max_response_size: T.unsafe(nil), **kwargs); end + + # Returns the value of attribute bytes_read. + # + # pkg:gem/net-imap#lib/net/imap/errors.rb:26 + def bytes_read; end + + # Returns the value of attribute literal_size. + # + # pkg:gem/net-imap#lib/net/imap/errors.rb:26 + def literal_size; end + + # Returns the value of attribute max_response_size. + # + # pkg:gem/net-imap#lib/net/imap/errors.rb:27 + def max_response_size; end + + private + + # pkg:gem/net-imap#lib/net/imap/errors.rb:46 + def response_size_msg; end +end + +# Pluggable authentication mechanisms for protocols which support SASL +# (Simple Authentication and Security Layer), such as IMAP4, SMTP, LDAP, and +# XMPP. {RFC-4422}[https://www.rfc-editor.org/rfc/rfc4422] specifies the +# common \SASL framework: +# >>> +# SASL is conceptually a framework that provides an abstraction layer +# between protocols and mechanisms as illustrated in the following +# diagram. +# +# SMTP LDAP XMPP Other protocols ... +# \ | | / +# \ | | / +# SASL abstraction layer +# / | | \ +# / | | \ +# EXTERNAL GSSAPI PLAIN Other mechanisms ... +# +# Net::IMAP uses SASL via the Net::IMAP#authenticate method. +# +# == Mechanisms +# +# Each mechanism has different properties and requirements. Please consult +# the documentation for the specific mechanisms you are using: +# +# +ANONYMOUS+:: +# See AnonymousAuthenticator. +# +# Allows the user to gain access to public services or resources without +# authenticating or disclosing an identity. +# +# +EXTERNAL+:: +# See ExternalAuthenticator. +# +# Authenticates using already established credentials, such as a TLS +# certificate or IPSec. +# +# +OAUTHBEARER+:: +# See OAuthBearerAuthenticator. +# +# Login using an OAuth2 Bearer token. This is the standard mechanism +# for using OAuth2 with \SASL, but it is not yet deployed as widely as +# +XOAUTH2+. +# +# +PLAIN+:: +# See PlainAuthenticator. +# +# Login using clear-text username and password. +# +# +SCRAM-SHA-1+:: +# +SCRAM-SHA-256+:: +# See ScramAuthenticator. +# +# Login by username and password. The password is not sent to the +# server but is used in a salted challenge/response exchange. +# +SCRAM-SHA-1+ and +SCRAM-SHA-256+ are directly supported by +# Net::IMAP::SASL. New authenticators can easily be added for any other +# SCRAM-* mechanism if the digest algorithm is supported by +# OpenSSL::Digest. +# +# +XOAUTH2+:: +# See XOAuth2Authenticator. +# +# Login using a username and an OAuth2 access token. Non-standard and +# obsoleted by +OAUTHBEARER+, but widely supported. +# +# See the {SASL mechanism +# registry}[https://www.iana.org/assignments/sasl-mechanisms/sasl-mechanisms.xhtml] +# for a list of all SASL mechanisms and their specifications. To register +# new authenticators, see Authenticators. +# +# === Deprecated mechanisms +# +# Obsolete mechanisms should be avoided, but are still available for +# backwards compatibility. +# +# >>> +# For +DIGEST-MD5+ see DigestMD5Authenticator. +# +# For +LOGIN+, see LoginAuthenticator. +# +# For +CRAM-MD5+, see CramMD5Authenticator. +# +# Using a deprecated mechanism will print a warning. +# +# pkg:gem/net-imap#lib/net/imap/sasl.rb:90 +module Net::IMAP::SASL + private + + # See Net::IMAP::StringPrep::SASLprep#saslprep. + # + # pkg:gem/net-imap#lib/net/imap/sasl.rb:176 + def saslprep(string, **opts); end + + class << self + # Delegates to ::authenticators. See Authenticators#add_authenticator. + # + # pkg:gem/net-imap#lib/net/imap/sasl.rb:171 + def add_authenticator(*_arg0, **_arg1, &_arg2); end + + # Creates a new SASL authenticator, using SASL::Authenticators#new. + # + # +registry+ defaults to SASL.authenticators. All other arguments are + # forwarded to to registry.new. + # + # pkg:gem/net-imap#lib/net/imap/sasl.rb:166 + def authenticator(*args, registry: T.unsafe(nil), **kwargs, &block); end + + # Returns the default global SASL::Authenticators instance. + # + # pkg:gem/net-imap#lib/net/imap/sasl.rb:160 + def authenticators; end + + # See Net::IMAP::StringPrep::SASLprep#saslprep. + # + # pkg:gem/net-imap#lib/net/imap/sasl.rb:176 + def saslprep(string, **opts); end + end +end + +# Authenticator for the "+ANONYMOUS+" SASL mechanism, as specified by +# RFC-4505[https://www.rfc-editor.org/rfc/rfc4505]. See +# Net::IMAP#authenticate. +# +# pkg:gem/net-imap#lib/net/imap/sasl/anonymous_authenticator.rb:10 +class Net::IMAP::SASL::AnonymousAuthenticator + # :call-seq: + # new(anonymous_message = "", **) -> authenticator + # new(anonymous_message: "", **) -> authenticator + # + # Creates an Authenticator for the "+ANONYMOUS+" SASL mechanism, as + # specified in RFC-4505[https://www.rfc-editor.org/rfc/rfc4505]. To use + # this, see Net::IMAP#authenticate or your client's authentication + # method. + # + # ==== Parameters + # + # * _optional_ #anonymous_message — a message to send to the server. + # + # Any other keyword arguments are silently ignored. + # + # @return [AnonymousAuthenticator] a new instance of AnonymousAuthenticator + # + # pkg:gem/net-imap#lib/net/imap/sasl/anonymous_authenticator.rb:37 + def initialize(anon_msg = T.unsafe(nil), anonymous_message: T.unsafe(nil), **_arg2); end + + # An optional token sent for the +ANONYMOUS+ mechanism., up to 255 UTF-8 + # characters in length. + # + # If it contains an "@" sign, the message must be a valid email address + # (+addr-spec+ from RFC-2822[https://www.rfc-editor.org/rfc/rfc2822]). + # Email syntax is _not_ validated by AnonymousAuthenticator. + # + # Otherwise, it can be any UTF8 string which is permitted by the + # StringPrep::Trace profile. + # + # pkg:gem/net-imap#lib/net/imap/sasl/anonymous_authenticator.rb:21 + def anonymous_message; end + + # Returns true when the initial client response was sent. + # + # The authentication should not succeed unless this returns true, but it + # does *not* indicate success. + # + # @return [Boolean] + # + # pkg:gem/net-imap#lib/net/imap/sasl/anonymous_authenticator.rb:64 + def done?; end + + # :call-seq: + # initial_response? -> true + # + # +ANONYMOUS+ can send an initial client response. + # + # @return [Boolean] + # + # pkg:gem/net-imap#lib/net/imap/sasl/anonymous_authenticator.rb:51 + def initial_response?; end + + # Returns #anonymous_message. + # + # pkg:gem/net-imap#lib/net/imap/sasl/anonymous_authenticator.rb:54 + def process(_server_challenge_string); end +end + +# Indicates an authentication exchange that will be or has been canceled +# by the client, not due to any error or failure during processing. +# +# pkg:gem/net-imap#lib/net/imap/sasl.rb:106 +class Net::IMAP::SASL::AuthenticationCanceled < ::Net::IMAP::SASL::Error; end + +# Indicates an error when processing a server challenge, e.g: an invalid +# or unparsable challenge. An underlying exception may be available as +# the exception's #cause. +# +# pkg:gem/net-imap#lib/net/imap/sasl.rb:111 +class Net::IMAP::SASL::AuthenticationError < ::Net::IMAP::SASL::Error; end + +# AuthenticationExchange is used internally by Net::IMAP#authenticate. +# But the API is still *experimental*, and may change. +# +# TODO: catch exceptions in #process and send #cancel_response. +# TODO: raise an error if the command succeeds after being canceled. +# TODO: use with more clients, to verify the API can accommodate them. +# TODO: pass ClientAdapter#service to SASL.authenticator +# +# An AuthenticationExchange represents a single attempt to authenticate +# a SASL client to a SASL server. It is created from a client adapter, a +# mechanism name, and a mechanism authenticator. When #authenticate is +# called, it will send the appropriate authenticate command to the server, +# returning the client response on success and raising an exception on +# failure. +# +# In most cases, the client will not need to use +# SASL::AuthenticationExchange directly at all. Instead, use +# SASL::ClientAdapter#authenticate. If customizations are needed, the +# custom client adapter is probably the best place for that code. +# +# def authenticate(...) +# MyClient::SASLAdapter.new(self).authenticate(...) +# end +# +# SASL::ClientAdapter#authenticate delegates to ::authenticate, like so: +# +# def authenticate(...) +# sasl_adapter = MyClient::SASLAdapter.new(self) +# SASL::AuthenticationExchange.authenticate(sasl_adapter, ...) +# end +# +# ::authenticate simply delegates to ::build and #authenticate, like so: +# +# def authenticate(...) +# sasl_adapter = MyClient::SASLAdapter.new(self) +# SASL::AuthenticationExchange +# .build(sasl_adapter, ...) +# .authenticate +# end +# +# And ::build delegates to SASL.authenticator and ::new, like so: +# +# def authenticate(mechanism, ...) +# sasl_adapter = MyClient::SASLAdapter.new(self) +# authenticator = SASL.authenticator(mechanism, ...) +# SASL::AuthenticationExchange +# .new(sasl_adapter, mechanism, authenticator) +# .authenticate +# end +# +# pkg:gem/net-imap#lib/net/imap/sasl/authentication_exchange.rb:57 +class Net::IMAP::SASL::AuthenticationExchange + # @return [AuthenticationExchange] a new instance of AuthenticationExchange + # + # pkg:gem/net-imap#lib/net/imap/sasl/authentication_exchange.rb:84 + def initialize(client, mechanism, authenticator, sasl_ir: T.unsafe(nil)); end + + # Call #authenticate to execute an authentication exchange for #client + # using #authenticator. Authentication failures will raise an + # exception. Any exceptions other than those in RESPONSE_ERRORS will + # drop the connection. + # + # pkg:gem/net-imap#lib/net/imap/sasl/authentication_exchange.rb:96 + def authenticate; end + + # Returns the value of attribute authenticator. + # + # pkg:gem/net-imap#lib/net/imap/sasl/authentication_exchange.rb:82 + def authenticator; end + + # @return [Boolean] + # + # pkg:gem/net-imap#lib/net/imap/sasl/authentication_exchange.rb:117 + def done?; end + + # Returns the value of attribute mechanism. + # + # pkg:gem/net-imap#lib/net/imap/sasl/authentication_exchange.rb:82 + def mechanism; end + + # @return [Boolean] + # + # pkg:gem/net-imap#lib/net/imap/sasl/authentication_exchange.rb:109 + def send_initial_response?; end + + private + + # Returns the value of attribute client. + # + # pkg:gem/net-imap#lib/net/imap/sasl/authentication_exchange.rb:123 + def client; end + + # pkg:gem/net-imap#lib/net/imap/sasl/authentication_exchange.rb:125 + def initial_response; end + + # pkg:gem/net-imap#lib/net/imap/sasl/authentication_exchange.rb:130 + def process(challenge); end + + class << self + # Convenience method for build(...).authenticate + # + # See also: SASL::ClientAdapter#authenticate + # + # pkg:gem/net-imap#lib/net/imap/sasl/authentication_exchange.rb:61 + def authenticate(*_arg0, **_arg1, &_arg2); end + + # Convenience method to combine the creation of a new authenticator and + # a new Authentication exchange. + # + # +client+ must be an instance of SASL::ClientAdapter. + # + # +mechanism+ must be a SASL mechanism name, as a string or symbol. + # + # +sasl_ir+ allows or disallows sending an "initial response", depending + # also on whether the server capabilities, mechanism authenticator, and + # client adapter all support it. Defaults to +true+. + # + # +mechanism+, +args+, +kwargs+, and +block+ are all forwarded to + # SASL.authenticator. Use the +registry+ kwarg to override the global + # SASL::Authenticators registry. + # + # pkg:gem/net-imap#lib/net/imap/sasl/authentication_exchange.rb:77 + def build(client, mechanism, *args, sasl_ir: T.unsafe(nil), **kwargs, &block); end + end +end + +# Indicates that authentication cannot proceed because one of the server's +# messages has not passed integrity checks. +# +# pkg:gem/net-imap#lib/net/imap/sasl.rb:115 +class Net::IMAP::SASL::AuthenticationFailed < ::Net::IMAP::SASL::Error; end + +# Indicates that authentication cannot proceed because the server ended +# authentication prematurely. +# +# pkg:gem/net-imap#lib/net/imap/sasl.rb:119 +class Net::IMAP::SASL::AuthenticationIncomplete < ::Net::IMAP::SASL::AuthenticationFailed + # @return [AuthenticationIncomplete] a new instance of AuthenticationIncomplete + # + # pkg:gem/net-imap#lib/net/imap/sasl.rb:123 + def initialize(response, message = T.unsafe(nil)); end + + # The success response from the server + # + # pkg:gem/net-imap#lib/net/imap/sasl.rb:121 + def response; end +end + +# Registry for SASL authenticators +# +# Registered authenticators must respond to +#new+ or +#call+ (e.g. a class or +# a proc), receiving any credentials and options and returning an +# authenticator instance. The returned object represents a single +# authentication exchange and must not be reused for multiple +# authentication attempts. +# +# An authenticator instance object must respond to +#process+, receiving the +# server's challenge and returning the client's response. Optionally, it may +# also respond to +#initial_response?+ and +#done?+. When +# +#initial_response?+ returns +true+, +#process+ may be called the first +# time with +nil+. When +#done?+ returns +false+, the exchange is incomplete +# and an exception should be raised if the exchange terminates prematurely. +# +# See the source for PlainAuthenticator, XOAuth2Authenticator, and +# ScramSHA1Authenticator for examples. +# +# pkg:gem/net-imap#lib/net/imap/sasl/authenticators.rb:22 +class Net::IMAP::SASL::Authenticators + # Create a new Authenticators registry. + # + # This class is usually not instantiated directly. Use SASL.authenticators + # to reuse the default global registry. + # + # When +use_defaults+ is +false+, the registry will start empty. When + # +use_deprecated+ is +false+, deprecated authenticators will not be + # included with the defaults. + # + # @return [Authenticators] a new instance of Authenticators + # + # pkg:gem/net-imap#lib/net/imap/sasl/authenticators.rb:36 + def initialize(use_defaults: T.unsafe(nil), use_deprecated: T.unsafe(nil)); end + + # :call-seq: + # add_authenticator(mechanism) + # add_authenticator(mechanism, authenticator_class) + # add_authenticator(mechanism, authenticator_proc) + # + # Registers an authenticator for #authenticator to use. +mechanism+ is the + # name of the + # {SASL mechanism}[https://www.iana.org/assignments/sasl-mechanisms/sasl-mechanisms.xhtml] + # implemented by +authenticator_class+ (for instance, "PLAIN"). + # + # If +mechanism+ refers to an existing authenticator, + # the old authenticator will be replaced. + # + # When only a single argument is given, the authenticator class will be + # lazily loaded from Net::IMAP::SASL::#{name}Authenticator (case is + # preserved and non-alphanumeric characters are removed.. + # + # pkg:gem/net-imap#lib/net/imap/sasl/authenticators.rb:71 + def add_authenticator(name, authenticator = T.unsafe(nil)); end + + # :call-seq: + # authenticator(mechanism, ...) -> auth_session + # + # Builds an authenticator instance using the authenticator registered to + # +mechanism+. The returned object represents a single authentication + # exchange and must not be reused for multiple authentication + # attempts. + # + # All arguments (except +mechanism+) are forwarded to the registered + # authenticator's +#new+ or +#call+ method. Each authenticator must + # document its own arguments. + # + # [Note] + # This method is intended for internal use by connection protocol code + # only. Protocol client users should see refer to their client's + # documentation, e.g. Net::IMAP#authenticate. + # + # pkg:gem/net-imap#lib/net/imap/sasl/authenticators.rb:111 + def authenticator(mechanism, *_arg1, **_arg2, &_arg3); end + + # @return [Boolean] + # + # pkg:gem/net-imap#lib/net/imap/sasl/authenticators.rb:90 + def mechanism?(name); end + + # Returns the names of all registered SASL mechanisms. + # + # pkg:gem/net-imap#lib/net/imap/sasl/authenticators.rb:53 + def names; end + + # :call-seq: + # authenticator(mechanism, ...) -> auth_session + # + # Builds an authenticator instance using the authenticator registered to + # +mechanism+. The returned object represents a single authentication + # exchange and must not be reused for multiple authentication + # attempts. + # + # All arguments (except +mechanism+) are forwarded to the registered + # authenticator's +#new+ or +#call+ method. Each authenticator must + # document its own arguments. + # + # [Note] + # This method is intended for internal use by connection protocol code + # only. Protocol client users should see refer to their client's + # documentation, e.g. Net::IMAP#authenticate. + # + # pkg:gem/net-imap#lib/net/imap/sasl/authenticators.rb:118 + def new(mechanism, *_arg1, **_arg2, &_arg3); end + + # Removes the authenticator registered for +name+ + # + # pkg:gem/net-imap#lib/net/imap/sasl/authenticators.rb:85 + def remove_authenticator(name); end + + class << self + # Normalize the mechanism name as an uppercase string, with underscores + # converted to dashes. + # + # pkg:gem/net-imap#lib/net/imap/sasl/authenticators.rb:26 + def normalize_name(mechanism); end + end +end + +# pkg:gem/net-imap#lib/net/imap/sasl/stringprep.rb:8 +Net::IMAP::SASL::BidiStringError = Net::IMAP::StringPrep::BidiStringError + +# This API is *experimental*, and may change. +# +# TODO: use with more clients, to verify the API can accommodate them. +# +# Represents the client to a SASL::AuthenticationExchange. By default, +# most methods simply delegate to #client. Clients should subclass +# SASL::ClientAdapter and override methods as needed to match the +# semantics of this API to their API. +# +# Subclasses should also include a protocol adapter mixin when the default +# ProtocolAdapters::Generic isn't sufficient. +# +# === Protocol Requirements +# +# {RFC4422 §4}[https://www.rfc-editor.org/rfc/rfc4422.html#section-4] +# lists requirements for protocol specifications to offer SASL. Where +# possible, ClientAdapter delegates the handling of these requirements to +# SASL::ProtocolAdapters. +# +# pkg:gem/net-imap#lib/net/imap/sasl/client_adapter.rb:27 +class Net::IMAP::SASL::ClientAdapter + include ::Net::IMAP::SASL::ProtocolAdapters::Generic + extend ::Forwardable + + # By default, this simply sets the #client and #command_proc attributes. + # Subclasses may override it, for example: to set the appropriate + # command_proc automatically. + # + # @return [ClientAdapter] a new instance of ClientAdapter + # + # pkg:gem/net-imap#lib/net/imap/sasl/client_adapter.rb:56 + def initialize(client, &command_proc); end + + # pkg:gem/net-imap#lib/net/imap/sasl/client_adapter.rb:76 + def auth_capable?(*_arg0, **_arg1, &_arg2); end + + # Attempt to authenticate #client to the server. + # + # By default, this simply delegates to + # AuthenticationExchange.authenticate. + # + # pkg:gem/net-imap#lib/net/imap/sasl/client_adapter.rb:64 + def authenticate(*_arg0, **_arg1, &_arg2); end + + # method: drop_connection! + # Drop the connection abruptly, closing the socket without logging out. + # + # pkg:gem/net-imap#lib/net/imap/sasl/client_adapter.rb:35 + def client; end + + # +command_proc+ can used to avoid exposing private methods on #client. + # It's value is set by the block that is passed to ::new, and it is used + # by the default implementation of #run_command. Subclasses that + # override #run_command may use #command_proc for any other purpose they + # find useful. + # + # In the default implementation of #run_command, command_proc is called + # with the protocols authenticate +command+ name, the +mechanism+ name, + # an _optional_ +initial_response+ argument, and a +continuations+ + # block. command_proc must run the protocol command with the arguments + # sent to it, _yield_ the payload of each continuation, respond to the + # continuation with the result of each _yield_, and _return_ the + # command's successful result. Non-successful results *MUST* raise + # an exception. + # + # pkg:gem/net-imap#lib/net/imap/sasl/client_adapter.rb:51 + def command_proc; end + + # pkg:gem/net-imap#lib/net/imap/sasl/client_adapter.rb:113 + def drop_connection(*_arg0, **_arg1, &_arg2); end + + # pkg:gem/net-imap#lib/net/imap/sasl/client_adapter.rb:118 + def drop_connection!(*_arg0, **_arg1, &_arg2); end + + # pkg:gem/net-imap#lib/net/imap/sasl/client_adapter.rb:99 + def host(*_arg0, **_arg1, &_arg2); end + + # pkg:gem/net-imap#lib/net/imap/sasl/client_adapter.rb:104 + def port(*_arg0, **_arg1, &_arg2); end + + # Returns an array of server responses errors raised by run_command. + # Exceptions in this array won't drop the connection. + # + # pkg:gem/net-imap#lib/net/imap/sasl/client_adapter.rb:108 + def response_errors; end + + # Calls command_proc with +command_name+ (see + # SASL::ProtocolAdapters::Generic#command_name), + # +mechanism+, +initial_response+, and a +continuations_handler+ block. + # The +initial_response+ is optional; when it's nil, it won't be sent to + # command_proc. + # + # Yields each continuation payload, responds to the server with the + # result of each yield, and returns the result. Non-successful results + # *MUST* raise an exception. Exceptions in the block *MUST* cause the + # command to fail. + # + # Subclasses that override this may use #command_proc differently. + # + # pkg:gem/net-imap#lib/net/imap/sasl/client_adapter.rb:90 + def run_command(mechanism, initial_response = T.unsafe(nil), &continuations_handler); end + + # pkg:gem/net-imap#lib/net/imap/sasl/client_adapter.rb:69 + def sasl_ir_capable?(*_arg0, **_arg1, &_arg2); end +end + +# Authenticator for the "+CRAM-MD5+" SASL mechanism, specified in +# RFC2195[https://www.rfc-editor.org/rfc/rfc2195]. See Net::IMAP#authenticate. +# +# == Deprecated +# +# +CRAM-MD5+ is obsolete and insecure. It is included for compatibility with +# existing servers. +# {draft-ietf-sasl-crammd5-to-historic}[https://www.rfc-editor.org/rfc/draft-ietf-sasl-crammd5-to-historic-00.html] +# recommends using +SCRAM-*+ or +PLAIN+ protected by TLS instead. +# +# Additionally, RFC8314[https://www.rfc-editor.org/rfc/rfc8314] discourage the use +# of cleartext and recommends TLS version 1.2 or greater be used for all +# traffic. With TLS +CRAM-MD5+ is okay, but so is +PLAIN+ +# +# pkg:gem/net-imap#lib/net/imap/sasl/cram_md5_authenticator.rb:16 +class Net::IMAP::SASL::CramMD5Authenticator + # @return [CramMD5Authenticator] a new instance of CramMD5Authenticator + # + # pkg:gem/net-imap#lib/net/imap/sasl/cram_md5_authenticator.rb:17 + def initialize(user = T.unsafe(nil), pass = T.unsafe(nil), authcid: T.unsafe(nil), username: T.unsafe(nil), password: T.unsafe(nil), secret: T.unsafe(nil), warn_deprecation: T.unsafe(nil), **_arg7); end + + # @return [Boolean] + # + # pkg:gem/net-imap#lib/net/imap/sasl/cram_md5_authenticator.rb:40 + def done?; end + + # @return [Boolean] + # + # pkg:gem/net-imap#lib/net/imap/sasl/cram_md5_authenticator.rb:31 + def initial_response?; end + + # pkg:gem/net-imap#lib/net/imap/sasl/cram_md5_authenticator.rb:33 + def process(challenge); end + + private + + # pkg:gem/net-imap#lib/net/imap/sasl/cram_md5_authenticator.rb:44 + def hmac_md5(text, key); end +end + +# Net::IMAP authenticator for the +DIGEST-MD5+ SASL mechanism type, specified +# in RFC-2831[https://www.rfc-editor.org/rfc/rfc2831]. See Net::IMAP#authenticate. +# +# == Deprecated +# +# "+DIGEST-MD5+" has been deprecated by +# RFC-6331[https://www.rfc-editor.org/rfc/rfc6331] and should not be relied on for +# security. It is included for compatibility with existing servers. +# +# pkg:gem/net-imap#lib/net/imap/sasl/digest_md5_authenticator.rb:11 +class Net::IMAP::SASL::DigestMD5Authenticator + # :call-seq: + # new(username, password, authzid = nil, **options) -> authenticator + # new(username:, password:, authzid: nil, **options) -> authenticator + # new(authcid:, password:, authzid: nil, **options) -> authenticator + # + # Creates an Authenticator for the "+DIGEST-MD5+" SASL mechanism. + # + # Called by Net::IMAP#authenticate and similar methods on other clients. + # + # ==== Parameters + # + # * #authcid ― Authentication identity that is associated with #password. + # + # #username ― An alias for +authcid+. + # + # * #password ― A password or passphrase associated with this #authcid. + # + # * _optional_ #authzid ― Authorization identity to act as or on behalf of. + # + # When +authzid+ is not set, the server should derive the authorization + # identity from the authentication identity. + # + # * _optional_ #realm — A namespace for the #username, e.g. a domain. + # Defaults to the last realm in the server-provided realms list. + # * _optional_ #host — FQDN for requested service. + # Defaults to #realm. + # * _optional_ #service_name — The generic host name when the server is + # replicated. + # * _optional_ #service — the registered service protocol. E.g. "imap", + # "smtp", "ldap", "xmpp". + # For Net::IMAP, this defaults to "imap". + # + # * _optional_ +warn_deprecation+ — Set to +false+ to silence the warning. + # + # Any other keyword arguments are silently ignored. + # + # @return [DigestMD5Authenticator] a new instance of DigestMD5Authenticator + # + # pkg:gem/net-imap#lib/net/imap/sasl/digest_md5_authenticator.rb:154 + def initialize(user = T.unsafe(nil), pass = T.unsafe(nil), authz = T.unsafe(nil), username: T.unsafe(nil), password: T.unsafe(nil), authzid: T.unsafe(nil), authcid: T.unsafe(nil), secret: T.unsafe(nil), realm: T.unsafe(nil), service: T.unsafe(nil), host: T.unsafe(nil), service_name: T.unsafe(nil), warn_deprecation: T.unsafe(nil), **_arg13); end + + # Authentication identity: the identity that matches the #password. + # + # RFC-2831[https://www.rfc-editor.org/rfc/rfc2831] uses the term +username+. + # "Authentication identity" is the generic term used by + # RFC-4422[https://www.rfc-editor.org/rfc/rfc4422]. + # RFC-4616[https://www.rfc-editor.org/rfc/rfc4616] and many later RFCs abbreviate + # this to +authcid+. + # + # pkg:gem/net-imap#lib/net/imap/sasl/digest_md5_authenticator.rb:46 + def authcid; end + + # Authorization identity: an identity to act as or on behalf of. The identity + # form is application protocol specific. If not provided or left blank, the + # server derives an authorization identity from the authentication identity. + # The server is responsible for verifying the client's credentials and + # verifying that the identity it associates with the client's authentication + # identity is allowed to act as (or on behalf of) the authorization identity. + # + # For example, an administrator or superuser might take on another role: + # + # imap.authenticate "DIGEST-MD5", "root", ->{passwd}, authzid: "user" + # + # pkg:gem/net-imap#lib/net/imap/sasl/digest_md5_authenticator.rb:64 + def authzid; end + + # The charset sent by the server. "UTF-8" (case insensitive) is the only + # allowed value. +nil+ should be interpreted as ISO 8859-1. + # + # pkg:gem/net-imap#lib/net/imap/sasl/digest_md5_authenticator.rb:111 + def charset; end + + # From RFC-2831[https://www.rfc-editor.org/rfc/rfc2831]: + # >>> + # Indicates the principal name of the service with which the client wishes + # to connect, formed from the serv-type, host, and serv-name. For + # example, the FTP service on "ftp.example.com" would have a "digest-uri" + # value of "ftp/ftp.example.com"; the SMTP server from the example above + # would have a "digest-uri" value of "smtp/mail3.example.com/example.com". + # + # pkg:gem/net-imap#lib/net/imap/sasl/digest_md5_authenticator.rb:186 + def digest_uri; end + + # @return [Boolean] + # + # pkg:gem/net-imap#lib/net/imap/sasl/digest_md5_authenticator.rb:246 + def done?; end + + # Fully qualified canonical DNS host name for the requested service. + # + # Defaults to #realm. + # + # pkg:gem/net-imap#lib/net/imap/sasl/digest_md5_authenticator.rb:78 + def host; end + + # @return [Boolean] + # + # pkg:gem/net-imap#lib/net/imap/sasl/digest_md5_authenticator.rb:194 + def initial_response?; end + + # nonce sent by the server + # + # pkg:gem/net-imap#lib/net/imap/sasl/digest_md5_authenticator.rb:114 + def nonce; end + + # A password or passphrase that matches the #username. + # + # The +password+ will be used to create the response digest. + # + # pkg:gem/net-imap#lib/net/imap/sasl/digest_md5_authenticator.rb:51 + def password; end + + # Responds to server challenge in two stages. + # + # pkg:gem/net-imap#lib/net/imap/sasl/digest_md5_authenticator.rb:197 + def process(challenge); end + + # qop-options sent by the server + # + # pkg:gem/net-imap#lib/net/imap/sasl/digest_md5_authenticator.rb:117 + def qop; end + + # A namespace or collection of identities which contains +username+. + # + # Used by DIGEST-MD5, GSS-API, and NTLM. This is often a domain name that + # contains the name of the host performing the authentication. + # + # Defaults to the last realm in the server-provided list of + # realms. + # + # pkg:gem/net-imap#lib/net/imap/sasl/digest_md5_authenticator.rb:73 + def realm; end + + # The service protocol, a + # {registered GSSAPI service name}[https://www.iana.org/assignments/gssapi-service-names/gssapi-service-names.xhtml], + # e.g. "imap", "ldap", or "xmpp". + # + # For Net::IMAP, the default is "imap" and should not be overridden. This + # must be set appropriately to use authenticators in other protocols. + # + # If an IANA-registered name isn't available, GSS-API + # (RFC-2743[https://www.rfc-editor.org/rfc/rfc2743]) allows the generic name + # "host". + # + # pkg:gem/net-imap#lib/net/imap/sasl/digest_md5_authenticator.rb:90 + def service; end + + # The generic server name when the server is replicated. + # + # +service_name+ will be ignored when it is +nil+ or identical to +host+. + # + # From RFC-2831[https://www.rfc-editor.org/rfc/rfc2831]: + # >>> + # The service is considered to be replicated if the client's + # service-location process involves resolution using standard DNS lookup + # operations, and if these operations involve DNS records (such as SRV, or + # MX) which resolve one DNS name into a set of other DNS names. In this + # case, the initial name used by the client is the "serv-name", and the + # final name is the "host" component. + # + # pkg:gem/net-imap#lib/net/imap/sasl/digest_md5_authenticator.rb:104 + def service_name; end + + # Parameters sent by the server are stored in this hash. + # + # pkg:gem/net-imap#lib/net/imap/sasl/digest_md5_authenticator.rb:107 + def sparams; end + + # Authentication identity: the identity that matches the #password. + # + # RFC-2831[https://www.rfc-editor.org/rfc/rfc2831] uses the term +username+. + # "Authentication identity" is the generic term used by + # RFC-4422[https://www.rfc-editor.org/rfc/rfc4422]. + # RFC-4616[https://www.rfc-editor.org/rfc/rfc4616] and many later RFCs abbreviate + # this to +authcid+. + # + # pkg:gem/net-imap#lib/net/imap/sasl/digest_md5_authenticator.rb:45 + def username; end + + private + + # pkg:gem/net-imap#lib/net/imap/sasl/digest_md5_authenticator.rb:306 + def compute_a0(response); end + + # pkg:gem/net-imap#lib/net/imap/sasl/digest_md5_authenticator.rb:312 + def compute_a1(response); end + + # pkg:gem/net-imap#lib/net/imap/sasl/digest_md5_authenticator.rb:319 + def compute_a2(response); end + + # pkg:gem/net-imap#lib/net/imap/sasl/digest_md5_authenticator.rb:327 + def format_response(response); end + + # pkg:gem/net-imap#lib/net/imap/sasl/digest_md5_authenticator.rb:286 + def nc(nonce); end + + # pkg:gem/net-imap#lib/net/imap/sasl/digest_md5_authenticator.rb:259 + def parse_challenge(challenge); end + + # some responses need quoting + # + # pkg:gem/net-imap#lib/net/imap/sasl/digest_md5_authenticator.rb:332 + def qdval(k, v); end + + # pkg:gem/net-imap#lib/net/imap/sasl/digest_md5_authenticator.rb:294 + def response_value(response); end + + # pkg:gem/net-imap#lib/net/imap/sasl/digest_md5_authenticator.rb:280 + def split_quoted_list(value, challenge); end +end + +# pkg:gem/net-imap#lib/net/imap/sasl/digest_md5_authenticator.rb:254 +Net::IMAP::SASL::DigestMD5Authenticator::AUTH_PARAM = T.let(T.unsafe(nil), Regexp) + +# pkg:gem/net-imap#lib/net/imap/sasl/digest_md5_authenticator.rb:12 +Net::IMAP::SASL::DigestMD5Authenticator::DataFormatError = Net::IMAP::DataFormatError + +# pkg:gem/net-imap#lib/net/imap/sasl/digest_md5_authenticator.rb:253 +Net::IMAP::SASL::DigestMD5Authenticator::LIST_DELIM = T.let(T.unsafe(nil), Regexp) + +# less strict than RFC, more strict than '\s' +# +# pkg:gem/net-imap#lib/net/imap/sasl/digest_md5_authenticator.rb:250 +Net::IMAP::SASL::DigestMD5Authenticator::LWS = T.let(T.unsafe(nil), Regexp) + +# Directives which must not have multiples. The RFC states: +# >>> +# This directive may appear at most once; if multiple instances are present, +# the client should abort the authentication exchange. +# +# pkg:gem/net-imap#lib/net/imap/sasl/digest_md5_authenticator.rb:25 +Net::IMAP::SASL::DigestMD5Authenticator::NO_MULTIPLES = T.let(T.unsafe(nil), Array) + +# Directives which are composed of one or more comma delimited tokens +# +# pkg:gem/net-imap#lib/net/imap/sasl/digest_md5_authenticator.rb:34 +Net::IMAP::SASL::DigestMD5Authenticator::QUOTED_LISTABLE = T.let(T.unsafe(nil), Array) + +# pkg:gem/net-imap#lib/net/imap/sasl/digest_md5_authenticator.rb:252 +Net::IMAP::SASL::DigestMD5Authenticator::QUOTED_STR = T.let(T.unsafe(nil), Regexp) + +# Required directives which must occur exactly once. The RFC states: >>> +# This directive is required and MUST appear exactly once; if not present, +# or if multiple instances are present, the client should abort the +# authentication exchange. +# +# pkg:gem/net-imap#lib/net/imap/sasl/digest_md5_authenticator.rb:31 +Net::IMAP::SASL::DigestMD5Authenticator::REQUIRED = T.let(T.unsafe(nil), Array) + +# pkg:gem/net-imap#lib/net/imap/sasl/digest_md5_authenticator.rb:13 +Net::IMAP::SASL::DigestMD5Authenticator::ResponseParseError = Net::IMAP::ResponseParseError + +# pkg:gem/net-imap#lib/net/imap/sasl/digest_md5_authenticator.rb:18 +Net::IMAP::SASL::DigestMD5Authenticator::STAGE_DONE = T.let(T.unsafe(nil), Symbol) + +# pkg:gem/net-imap#lib/net/imap/sasl/digest_md5_authenticator.rb:16 +Net::IMAP::SASL::DigestMD5Authenticator::STAGE_ONE = T.let(T.unsafe(nil), Symbol) + +# pkg:gem/net-imap#lib/net/imap/sasl/digest_md5_authenticator.rb:17 +Net::IMAP::SASL::DigestMD5Authenticator::STAGE_TWO = T.let(T.unsafe(nil), Symbol) + +# pkg:gem/net-imap#lib/net/imap/sasl/digest_md5_authenticator.rb:251 +Net::IMAP::SASL::DigestMD5Authenticator::TOKEN = T.let(T.unsafe(nil), Regexp) + +# Exception class for any client error detected during the authentication +# exchange. +# +# When the _server_ reports an authentication failure, it will respond +# with a protocol specific error instead, e.g: +BAD+ or +NO+ in IMAP. +# +# When the client encounters any error, it *must* consider the +# authentication exchange to be unsuccessful and it might need to drop the +# connection. For example, if the server reports that the authentication +# exchange was successful or the protocol does not allow additional +# authentication attempts. +# +# pkg:gem/net-imap#lib/net/imap/sasl.rb:102 +class Net::IMAP::SASL::Error < ::StandardError; end + +# Authenticator for the "+EXTERNAL+" SASL mechanism, as specified by +# RFC-4422[https://www.rfc-editor.org/rfc/rfc4422]. See +# Net::IMAP#authenticate. +# +# The EXTERNAL mechanism requests that the server use client credentials +# established external to SASL, for example by TLS certificate or IPSec. +# +# pkg:gem/net-imap#lib/net/imap/sasl/external_authenticator.rb:13 +class Net::IMAP::SASL::ExternalAuthenticator + # :call-seq: + # new(authzid: nil, **) -> authenticator + # new(username: nil, **) -> authenticator + # new(username = nil, **) -> authenticator + # + # Creates an Authenticator for the "+EXTERNAL+" SASL mechanism, as + # specified in RFC-4422[https://www.rfc-editor.org/rfc/rfc4422]. To use + # this, see Net::IMAP#authenticate or your client's authentication + # method. + # + # ==== Parameters + # + # * _optional_ #authzid ― Authorization identity to act as or on behalf of. + # + # _optional_ #username ― An alias for #authzid. + # + # Note that, unlike some other authenticators, +username+ sets the + # _authorization_ identity and not the _authentication_ identity. The + # authentication identity is established for the client by the + # external credentials. + # + # Any other keyword parameters are quietly ignored. + # + # @return [ExternalAuthenticator] a new instance of ExternalAuthenticator + # + # pkg:gem/net-imap#lib/net/imap/sasl/external_authenticator.rb:52 + def initialize(user = T.unsafe(nil), authzid: T.unsafe(nil), username: T.unsafe(nil), **_arg3); end + + # Authorization identity: an identity to act as or on behalf of. The + # identity form is application protocol specific. If not provided or + # left blank, the server derives an authorization identity from the + # authentication identity. The server is responsible for verifying the + # client's credentials and verifying that the identity it associates + # with the client's authentication identity is allowed to act as (or on + # behalf of) the authorization identity. + # + # For example, an administrator or superuser might take on another role: + # + # imap.authenticate "PLAIN", "root", passwd, authzid: "user" + # + # pkg:gem/net-imap#lib/net/imap/sasl/external_authenticator.rb:27 + def authzid; end + + # Returns true when the initial client response was sent. + # + # The authentication should not succeed unless this returns true, but it + # does *not* indicate success. + # + # @return [Boolean] + # + # pkg:gem/net-imap#lib/net/imap/sasl/external_authenticator.rb:78 + def done?; end + + # :call-seq: + # initial_response? -> true + # + # +EXTERNAL+ can send an initial client response. + # + # @return [Boolean] + # + # pkg:gem/net-imap#lib/net/imap/sasl/external_authenticator.rb:65 + def initial_response?; end + + # Returns #authzid, or an empty string if there is no authzid. + # + # pkg:gem/net-imap#lib/net/imap/sasl/external_authenticator.rb:68 + def process(_); end + + # Authorization identity: an identity to act as or on behalf of. The + # identity form is application protocol specific. If not provided or + # left blank, the server derives an authorization identity from the + # authentication identity. The server is responsible for verifying the + # client's credentials and verifying that the identity it associates + # with the client's authentication identity is allowed to act as (or on + # behalf of) the authorization identity. + # + # For example, an administrator or superuser might take on another role: + # + # imap.authenticate "PLAIN", "root", passwd, authzid: "user" + # + # pkg:gem/net-imap#lib/net/imap/sasl/external_authenticator.rb:28 + def username; end +end + +# Originally defined for the GS2 mechanism family in +# RFC5801[https://www.rfc-editor.org/rfc/rfc5801], +# several different mechanisms start with a GS2 header: +# * +GS2-*+ --- RFC5801[https://www.rfc-editor.org/rfc/rfc5801] +# * +SCRAM-*+ --- RFC5802[https://www.rfc-editor.org/rfc/rfc5802] +# (ScramAuthenticator) +# * +SAML20+ --- RFC6595[https://www.rfc-editor.org/rfc/rfc6595] +# * +OPENID20+ --- RFC6616[https://www.rfc-editor.org/rfc/rfc6616] +# * +OAUTH10A+ --- RFC7628[https://www.rfc-editor.org/rfc/rfc7628] +# * +OAUTHBEARER+ --- RFC7628[https://www.rfc-editor.org/rfc/rfc7628] +# (OAuthBearerAuthenticator) +# +# Classes that include this module must implement +#authzid+. +# +# pkg:gem/net-imap#lib/net/imap/sasl/gs2_header.rb:20 +module Net::IMAP::SASL::GS2Header + # The {RFC5801 §4}[https://www.rfc-editor.org/rfc/rfc5801#section-4] + # +gs2-authzid+ header, when +#authzid+ is not empty. + # + # If +#authzid+ is empty or +nil+, an empty string is returned. + # + # pkg:gem/net-imap#lib/net/imap/sasl/gs2_header.rb:59 + def gs2_authzid; end + + # The {RFC5801 §4}[https://www.rfc-editor.org/rfc/rfc5801#section-4] + # +gs2-cb-flag+: + # + # "+n+":: The client doesn't support channel binding. + # "+y+":: The client does support channel binding + # but thinks the server does not. + # "+p+":: The client requires channel binding. + # The selected channel binding follows "+p=+". + # + # The default always returns "+n+". A mechanism that supports channel + # binding must override this method. + # + # pkg:gem/net-imap#lib/net/imap/sasl/gs2_header.rb:53 + def gs2_cb_flag; end + + # The {RFC5801 §4}[https://www.rfc-editor.org/rfc/rfc5801#section-4] + # +gs2-header+, which prefixes the #initial_client_response. + # + # >>> + # Note: the actual GS2 header includes an optional flag to + # indicate that the GSS mechanism is not "standard", but since all of + # the SASL mechanisms using GS2 are "standard", we don't include that + # flag. A class for a nonstandard GSSAPI mechanism should prefix with + # "+F,+". + # + # pkg:gem/net-imap#lib/net/imap/sasl/gs2_header.rb:37 + def gs2_header; end + + private + + # Encodes +str+ to match RFC5801_SASLNAME. + # + # pkg:gem/net-imap#lib/net/imap/sasl/gs2_header.rb:67 + def gs2_saslname_encode(str); end + + class << self + # Encodes +str+ to match RFC5801_SASLNAME. + # + # pkg:gem/net-imap#lib/net/imap/sasl/gs2_header.rb:67 + def gs2_saslname_encode(str); end + end +end + +# pkg:gem/net-imap#lib/net/imap/sasl/gs2_header.rb:21 +Net::IMAP::SASL::GS2Header::NO_NULL_CHARS = T.let(T.unsafe(nil), Regexp) + +# Matches {RFC5801 §4}[https://www.rfc-editor.org/rfc/rfc5801#section-4] +# +saslname+. The output from gs2_saslname_encode matches this Regexp. +# +# pkg:gem/net-imap#lib/net/imap/sasl/gs2_header.rb:26 +Net::IMAP::SASL::GS2Header::RFC5801_SASLNAME = T.let(T.unsafe(nil), Regexp) + +# Authenticator for the "+LOGIN+" SASL mechanism. See Net::IMAP#authenticate. +# +# +LOGIN+ authentication sends the password in cleartext. +# RFC3501[https://www.rfc-editor.org/rfc/rfc3501] encourages servers to disable +# cleartext authentication until after TLS has been negotiated. +# RFC8314[https://www.rfc-editor.org/rfc/rfc8314] recommends TLS version 1.2 or +# greater be used for all traffic, and deprecate cleartext access ASAP. +LOGIN+ +# can be secured by TLS encryption. +# +# == Deprecated +# +# The {SASL mechanisms +# registry}[https://www.iana.org/assignments/sasl-mechanisms/sasl-mechanisms.xhtml] +# marks "LOGIN" as obsoleted in favor of "PLAIN". It is included here for +# compatibility with existing servers. See +# {draft-murchison-sasl-login}[https://www.iana.org/go/draft-murchison-sasl-login] +# for both specification and deprecation. +# +# pkg:gem/net-imap#lib/net/imap/sasl/login_authenticator.rb:20 +class Net::IMAP::SASL::LoginAuthenticator + # @return [LoginAuthenticator] a new instance of LoginAuthenticator + # + # pkg:gem/net-imap#lib/net/imap/sasl/login_authenticator.rb:26 + def initialize(user = T.unsafe(nil), pass = T.unsafe(nil), authcid: T.unsafe(nil), username: T.unsafe(nil), password: T.unsafe(nil), secret: T.unsafe(nil), warn_deprecation: T.unsafe(nil), **_arg7); end + + # @return [Boolean] + # + # pkg:gem/net-imap#lib/net/imap/sasl/login_authenticator.rb:55 + def done?; end + + # @return [Boolean] + # + # pkg:gem/net-imap#lib/net/imap/sasl/login_authenticator.rb:40 + def initial_response?; end + + # pkg:gem/net-imap#lib/net/imap/sasl/login_authenticator.rb:42 + def process(data); end +end + +# pkg:gem/net-imap#lib/net/imap/sasl/login_authenticator.rb:23 +Net::IMAP::SASL::LoginAuthenticator::STATE_DONE = T.let(T.unsafe(nil), Symbol) + +# pkg:gem/net-imap#lib/net/imap/sasl/login_authenticator.rb:22 +Net::IMAP::SASL::LoginAuthenticator::STATE_PASSWORD = T.let(T.unsafe(nil), Symbol) + +# pkg:gem/net-imap#lib/net/imap/sasl/login_authenticator.rb:21 +Net::IMAP::SASL::LoginAuthenticator::STATE_USER = T.let(T.unsafe(nil), Symbol) + +# Abstract base class for the SASL mechanisms defined in +# RFC7628[https://www.rfc-editor.org/rfc/rfc7628]: +# * OAUTHBEARER[rdoc-ref:OAuthBearerAuthenticator] +# (OAuthBearerAuthenticator) +# * OAUTH10A +# +# pkg:gem/net-imap#lib/net/imap/sasl/oauthbearer_authenticator.rb:14 +class Net::IMAP::SASL::OAuthAuthenticator + include ::Net::IMAP::SASL::GS2Header + + # Creates an RFC7628[https://www.rfc-editor.org/rfc/rfc7628] OAuth + # authenticator. + # + # ==== Parameters + # + # See child classes for required parameter(s). The following parameters + # are all optional, but it is worth noting that application protocols + # are allowed to require #authzid (or other parameters, such as + # #host or #port) as are specific server implementations. + # + # * _optional_ #authzid ― Authorization identity to act as or on behalf of. + # + # _optional_ #username — An alias for #authzid. + # + # Note that, unlike some other authenticators, +username+ sets the + # _authorization_ identity and not the _authentication_ identity. The + # authentication identity is established for the client by the OAuth + # token. + # + # * _optional_ #host — Hostname to which the client connected. + # * _optional_ #port — Service port to which the client connected. + # * _optional_ #mthd — HTTP method + # * _optional_ #path — HTTP path data + # * _optional_ #post — HTTP post data + # * _optional_ #qs — HTTP query string + # + # _optional_ #query — An alias for #qs + # + # Any other keyword parameters are quietly ignored. + # + # @return [OAuthAuthenticator] a new instance of OAuthAuthenticator + # + # pkg:gem/net-imap#lib/net/imap/sasl/oauthbearer_authenticator.rb:84 + def initialize(authzid: T.unsafe(nil), host: T.unsafe(nil), port: T.unsafe(nil), username: T.unsafe(nil), query: T.unsafe(nil), mthd: T.unsafe(nil), path: T.unsafe(nil), post: T.unsafe(nil), qs: T.unsafe(nil), **_arg9); end + + # Value of the HTTP Authorization header + # + # Implemented by subclasses. + # + # pkg:gem/net-imap#lib/net/imap/sasl/oauthbearer_authenticator.rb:124 + def authorization; end + + # Authorization identity: an identity to act as or on behalf of. The + # identity form is application protocol specific. If not provided or + # left blank, the server derives an authorization identity from the + # authentication identity. The server is responsible for verifying the + # client's credentials and verifying that the identity it associates + # with the client's authentication identity is allowed to act as (or on + # behalf of) the authorization identity. + # + # For example, an administrator or superuser might take on another role: + # + # imap.authenticate "PLAIN", "root", passwd, authzid: "user" + # + # pkg:gem/net-imap#lib/net/imap/sasl/oauthbearer_authenticator.rb:29 + def authzid; end + + # Returns true when the initial client response was sent. + # + # The authentication should not succeed unless this returns true, but it + # does *not* indicate success. + # + # @return [Boolean] + # + # pkg:gem/net-imap#lib/net/imap/sasl/oauthbearer_authenticator.rb:119 + def done?; end + + # Hostname to which the client connected. (optional) + # + # pkg:gem/net-imap#lib/net/imap/sasl/oauthbearer_authenticator.rb:33 + def host; end + + # The {RFC7628 §3.1}[https://www.rfc-editor.org/rfc/rfc7628#section-3.1] + # formatted response. + # + # pkg:gem/net-imap#lib/net/imap/sasl/oauthbearer_authenticator.rb:99 + def initial_client_response; end + + # Stores the most recent server "challenge". When authentication fails, + # this may hold information about the failure reason, as JSON. + # + # pkg:gem/net-imap#lib/net/imap/sasl/oauthbearer_authenticator.rb:53 + def last_server_response; end + + # HTTP method. (optional) + # + # pkg:gem/net-imap#lib/net/imap/sasl/oauthbearer_authenticator.rb:39 + def mthd; end + + # HTTP path data. (optional) + # + # pkg:gem/net-imap#lib/net/imap/sasl/oauthbearer_authenticator.rb:42 + def path; end + + # Service port to which the client connected. (optional) + # + # pkg:gem/net-imap#lib/net/imap/sasl/oauthbearer_authenticator.rb:36 + def port; end + + # HTTP post data. (optional) + # + # pkg:gem/net-imap#lib/net/imap/sasl/oauthbearer_authenticator.rb:45 + def post; end + + # Returns initial_client_response the first time, then "^A". + # + # pkg:gem/net-imap#lib/net/imap/sasl/oauthbearer_authenticator.rb:108 + def process(data); end + + # The query string. (optional) + # + # pkg:gem/net-imap#lib/net/imap/sasl/oauthbearer_authenticator.rb:48 + def qs; end + + # The query string. (optional) + # + # pkg:gem/net-imap#lib/net/imap/sasl/oauthbearer_authenticator.rb:49 + def query; end + + # Authorization identity: an identity to act as or on behalf of. The + # identity form is application protocol specific. If not provided or + # left blank, the server derives an authorization identity from the + # authentication identity. The server is responsible for verifying the + # client's credentials and verifying that the identity it associates + # with the client's authentication identity is allowed to act as (or on + # behalf of) the authorization identity. + # + # For example, an administrator or superuser might take on another role: + # + # imap.authenticate "PLAIN", "root", passwd, authzid: "user" + # + # pkg:gem/net-imap#lib/net/imap/sasl/oauthbearer_authenticator.rb:30 + def username; end +end + +# Authenticator for the "+OAUTHBEARER+" SASL mechanism, specified in +# RFC7628[https://www.rfc-editor.org/rfc/rfc7628]. Authenticates using +# OAuth 2.0 bearer tokens, as described in +# RFC6750[https://www.rfc-editor.org/rfc/rfc6750]. Use via +# Net::IMAP#authenticate. +# +# RFC6750[https://www.rfc-editor.org/rfc/rfc6750] requires Transport Layer +# Security (TLS) to secure the protocol interaction between the client and +# the resource server. TLS _MUST_ be used for +OAUTHBEARER+ to protect +# the bearer token. +# +# pkg:gem/net-imap#lib/net/imap/sasl/oauthbearer_authenticator.rb:138 +class Net::IMAP::SASL::OAuthBearerAuthenticator < ::Net::IMAP::SASL::OAuthAuthenticator + # :call-seq: + # new(oauth2_token, **options) -> authenticator + # new(authzid, oauth2_token, **options) -> authenticator + # new(oauth2_token:, **options) -> authenticator + # + # Creates an Authenticator for the "+OAUTHBEARER+" SASL mechanism. + # + # Called by Net::IMAP#authenticate and similar methods on other clients. + # + # ==== Parameters + # + # * #oauth2_token — An OAuth2 bearer token + # + # All other keyword parameters are passed to + # {super}[rdoc-ref:OAuthAuthenticator::new] (see OAuthAuthenticator). + # The most common ones are: + # + # * _optional_ #authzid ― Authorization identity to act as or on behalf of. + # + # _optional_ #username — An alias for #authzid. + # + # Note that, unlike some other authenticators, +username+ sets the + # _authorization_ identity and not the _authentication_ identity. The + # authentication identity is established for the client by + # #oauth2_token. + # + # * _optional_ #host — Hostname to which the client connected. + # * _optional_ #port — Service port to which the client connected. + # + # Although only oauth2_token is required by this mechanism, it is worth + # noting that application protocols are allowed to + # require #authzid (or other parameters, such as #host + # _or_ #port) as are specific server implementations. + # + # @return [OAuthBearerAuthenticator] a new instance of OAuthBearerAuthenticator + # + # pkg:gem/net-imap#lib/net/imap/sasl/oauthbearer_authenticator.rb:177 + def initialize(arg1 = T.unsafe(nil), arg2 = T.unsafe(nil), oauth2_token: T.unsafe(nil), secret: T.unsafe(nil), **args, &blk); end + + # Value of the HTTP Authorization header + # + # pkg:gem/net-imap#lib/net/imap/sasl/oauthbearer_authenticator.rb:193 + def authorization; end + + # :call-seq: + # initial_response? -> true + # + # +OAUTHBEARER+ sends an initial client response. + # + # @return [Boolean] + # + # pkg:gem/net-imap#lib/net/imap/sasl/oauthbearer_authenticator.rb:190 + def initial_response?; end + + # An OAuth 2.0 bearer token. See {RFC-6750}[https://www.rfc-editor.org/rfc/rfc6750] + # + # pkg:gem/net-imap#lib/net/imap/sasl/oauthbearer_authenticator.rb:141 + def oauth2_token; end + + # An OAuth 2.0 bearer token. See {RFC-6750}[https://www.rfc-editor.org/rfc/rfc6750] + # + # pkg:gem/net-imap#lib/net/imap/sasl/oauthbearer_authenticator.rb:142 + def secret; end +end + +# Authenticator for the "+PLAIN+" SASL mechanism, specified in +# RFC-4616[https://www.rfc-editor.org/rfc/rfc4616]. See Net::IMAP#authenticate. +# +# +PLAIN+ authentication sends the password in cleartext. +# RFC-3501[https://www.rfc-editor.org/rfc/rfc3501] encourages servers to disable +# cleartext authentication until after TLS has been negotiated. +# RFC-8314[https://www.rfc-editor.org/rfc/rfc8314] recommends TLS version 1.2 or +# greater be used for all traffic, and deprecate cleartext access ASAP. +PLAIN+ +# can be secured by TLS encryption. +# +# pkg:gem/net-imap#lib/net/imap/sasl/plain_authenticator.rb:12 +class Net::IMAP::SASL::PlainAuthenticator + # :call-seq: + # new(username, password, authzid: nil, **) -> authenticator + # new(username:, password:, authzid: nil, **) -> authenticator + # new(authcid:, password:, authzid: nil, **) -> authenticator + # + # Creates an Authenticator for the "+PLAIN+" SASL mechanism. + # + # Called by Net::IMAP#authenticate and similar methods on other clients. + # + # ==== Parameters + # + # * #authcid ― Authentication identity that is associated with #password. + # + # #username ― An alias for #authcid. + # + # * #password ― A password or passphrase associated with the #authcid. + # + # * _optional_ #authzid ― Authorization identity to act as or on behalf of. + # + # When +authzid+ is not set, the server should derive the authorization + # identity from the authentication identity. + # + # Any other keyword parameters are quietly ignored. + # + # @raise [ArgumentError] + # @return [PlainAuthenticator] a new instance of PlainAuthenticator + # + # pkg:gem/net-imap#lib/net/imap/sasl/plain_authenticator.rb:67 + def initialize(user = T.unsafe(nil), pass = T.unsafe(nil), authcid: T.unsafe(nil), secret: T.unsafe(nil), username: T.unsafe(nil), password: T.unsafe(nil), authzid: T.unsafe(nil), **_arg7); end + + # Authentication identity: the identity that matches the #password. + # + # RFC-2831[https://www.rfc-editor.org/rfc/rfc2831] uses the term +username+. + # "Authentication identity" is the generic term used by + # RFC-4422[https://www.rfc-editor.org/rfc/rfc4422]. + # RFC-4616[https://www.rfc-editor.org/rfc/rfc4616] and many later RFCs + # abbreviate this to +authcid+. + # + # pkg:gem/net-imap#lib/net/imap/sasl/plain_authenticator.rb:25 + def authcid; end + + # Authorization identity: an identity to act as or on behalf of. The identity + # form is application protocol specific. If not provided or left blank, the + # server derives an authorization identity from the authentication identity. + # The server is responsible for verifying the client's credentials and + # verifying that the identity it associates with the client's authentication + # identity is allowed to act as (or on behalf of) the authorization identity. + # + # For example, an administrator or superuser might take on another role: + # + # imap.authenticate "PLAIN", "root", passwd, authzid: "user" + # + # pkg:gem/net-imap#lib/net/imap/sasl/plain_authenticator.rb:42 + def authzid; end + + # Returns true when the initial client response was sent. + # + # The authentication should not succeed unless this returns true, but it + # does *not* indicate success. + # + # @return [Boolean] + # + # pkg:gem/net-imap#lib/net/imap/sasl/plain_authenticator.rb:99 + def done?; end + + # :call-seq: + # initial_response? -> true + # + # +PLAIN+ can send an initial client response. + # + # @return [Boolean] + # + # pkg:gem/net-imap#lib/net/imap/sasl/plain_authenticator.rb:86 + def initial_response?; end + + # A password or passphrase that matches the #username. + # + # pkg:gem/net-imap#lib/net/imap/sasl/plain_authenticator.rb:28 + def password; end + + # Responds with the client's credentials. + # + # pkg:gem/net-imap#lib/net/imap/sasl/plain_authenticator.rb:89 + def process(data); end + + # A password or passphrase that matches the #username. + # + # pkg:gem/net-imap#lib/net/imap/sasl/plain_authenticator.rb:29 + def secret; end + + # Authentication identity: the identity that matches the #password. + # + # RFC-2831[https://www.rfc-editor.org/rfc/rfc2831] uses the term +username+. + # "Authentication identity" is the generic term used by + # RFC-4422[https://www.rfc-editor.org/rfc/rfc4422]. + # RFC-4616[https://www.rfc-editor.org/rfc/rfc4616] and many later RFCs + # abbreviate this to +authcid+. + # + # pkg:gem/net-imap#lib/net/imap/sasl/plain_authenticator.rb:24 + def username; end +end + +# pkg:gem/net-imap#lib/net/imap/sasl/plain_authenticator.rb:14 +Net::IMAP::SASL::PlainAuthenticator::NULL = T.let(T.unsafe(nil), String) + +# pkg:gem/net-imap#lib/net/imap/sasl/stringprep.rb:9 +Net::IMAP::SASL::ProhibitedCodepoint = Net::IMAP::StringPrep::ProhibitedCodepoint + +# SASL::ProtocolAdapters modules are meant to be used as mixins for +# SASL::ClientAdapter and its subclasses. Where the client adapter must +# be customized for each client library, the protocol adapter mixin +# handles \SASL requirements that are part of the protocol specification, +# but not specific to any particular client library. In particular, see +# {RFC4422 §4}[https://www.rfc-editor.org/rfc/rfc4422.html#section-4] +# +# === Interface +# +# >>> +# NOTE: This API is experimental, and may change. +# +# - {#command_name}[rdoc-ref:Generic#command_name] -- The name of the +# command used to to initiate an authentication exchange. +# - {#service}[rdoc-ref:Generic#service] -- The GSSAPI service name. +# - {#encode_ir}[rdoc-ref:Generic#encode_ir]--Encodes an initial response. +# - {#decode}[rdoc-ref:Generic#decode] -- Decodes a server challenge. +# - {#encode}[rdoc-ref:Generic#encode] -- Encodes a client response. +# - {#cancel_response}[rdoc-ref:Generic#cancel_response] -- The encoded +# client response used to cancel an authentication exchange. +# +# Other protocol requirements of the \SASL authentication exchange are +# handled by SASL::ClientAdapter. +# +# === Included protocol adapters +# +# - Generic -- a basic implementation of all of the methods listed above. +# - IMAP -- An adapter for the IMAP4 protocol. +# - SMTP -- An adapter for the \SMTP protocol with the +AUTH+ capability. +# - POP -- An adapter for the POP3 protocol with the +SASL+ capability. +# +# pkg:gem/net-imap#lib/net/imap/sasl/protocol_adapters.rb:37 +module Net::IMAP::SASL::ProtocolAdapters; end + +# See SASL::ProtocolAdapters@Interface. +# +# pkg:gem/net-imap#lib/net/imap/sasl/protocol_adapters.rb:39 +module Net::IMAP::SASL::ProtocolAdapters::Generic + # Returns the message used by the client to abort an authentication + # exchange. + # + # The generic implementation returns "*". + # + # pkg:gem/net-imap#lib/net/imap/sasl/protocol_adapters.rb:73 + def cancel_response; end + + # The name of the protocol command used to initiate a \SASL + # authentication exchange. + # + # The generic implementation returns "AUTHENTICATE". + # + # pkg:gem/net-imap#lib/net/imap/sasl/protocol_adapters.rb:44 + def command_name; end + + # Decodes a server challenge string. + # + # The generic implementation returns the Base64 decoding of +string+. + # + # pkg:gem/net-imap#lib/net/imap/sasl/protocol_adapters.rb:67 + def decode(string); end + + # Encodes a client response string. + # + # The generic implementation returns the Base64 encoding of +string+. + # + # pkg:gem/net-imap#lib/net/imap/sasl/protocol_adapters.rb:62 + def encode(string); end + + # Encodes an initial response string. + # + # The generic implementation returns the result of #encode, or returns + # "=" when +string+ is empty. + # + # pkg:gem/net-imap#lib/net/imap/sasl/protocol_adapters.rb:57 + def encode_ir(string); end + + # A service name from the {GSSAPI/Kerberos/SASL Service Names + # registry}[https://www.iana.org/assignments/gssapi-service-names/gssapi-service-names.xhtml]. + # + # The generic implementation returns "host", which is the + # generic GSSAPI host-based service name. + # + # pkg:gem/net-imap#lib/net/imap/sasl/protocol_adapters.rb:51 + def service; end +end + +# See RFC-3501 (IMAP4rev1), RFC-4959 (SASL-IR capability), +# and RFC-9051 (IMAP4rev2). +# +# pkg:gem/net-imap#lib/net/imap/sasl/protocol_adapters.rb:78 +module Net::IMAP::SASL::ProtocolAdapters::IMAP + include ::Net::IMAP::SASL::ProtocolAdapters::Generic + + # pkg:gem/net-imap#lib/net/imap/sasl/protocol_adapters.rb:80 + def service; end +end + +# See RFC-5034 (SASL capability). +# +# pkg:gem/net-imap#lib/net/imap/sasl/protocol_adapters.rb:91 +module Net::IMAP::SASL::ProtocolAdapters::POP + include ::Net::IMAP::SASL::ProtocolAdapters::Generic + + # pkg:gem/net-imap#lib/net/imap/sasl/protocol_adapters.rb:93 + def command_name; end + + # pkg:gem/net-imap#lib/net/imap/sasl/protocol_adapters.rb:94 + def service; end +end + +# See RFC-4954 (AUTH capability). +# +# pkg:gem/net-imap#lib/net/imap/sasl/protocol_adapters.rb:84 +module Net::IMAP::SASL::ProtocolAdapters::SMTP + include ::Net::IMAP::SASL::ProtocolAdapters::Generic + + # pkg:gem/net-imap#lib/net/imap/sasl/protocol_adapters.rb:86 + def command_name; end + + # pkg:gem/net-imap#lib/net/imap/sasl/protocol_adapters.rb:87 + def service; end +end + +# Alias for Net::IMAP::StringPrep::SASLprep. +# +# pkg:gem/net-imap#lib/net/imap/sasl/stringprep.rb:6 +Net::IMAP::SASL::SASLprep = Net::IMAP::StringPrep::SASLprep + +# For method descriptions, +# see {RFC5802 §2.2}[https://www.rfc-editor.org/rfc/rfc5802#section-2.2] +# and {RFC5802 §3}[https://www.rfc-editor.org/rfc/rfc5802#section-3]. +# +# pkg:gem/net-imap#lib/net/imap/sasl/scram_algorithm.rb:10 +module Net::IMAP::SASL::ScramAlgorithm + # pkg:gem/net-imap#lib/net/imap/sasl/scram_algorithm.rb:24 + def H(str); end + + # pkg:gem/net-imap#lib/net/imap/sasl/scram_algorithm.rb:26 + def HMAC(key, data); end + + # pkg:gem/net-imap#lib/net/imap/sasl/scram_algorithm.rb:13 + def Hi(str, salt, iterations); end + + # pkg:gem/net-imap#lib/net/imap/sasl/scram_algorithm.rb:11 + def Normalize(str); end + + # pkg:gem/net-imap#lib/net/imap/sasl/scram_algorithm.rb:28 + def XOR(str1, str2); end + + # pkg:gem/net-imap#lib/net/imap/sasl/scram_algorithm.rb:35 + def auth_message; end + + # pkg:gem/net-imap#lib/net/imap/sasl/scram_algorithm.rb:48 + def client_key; end + + # pkg:gem/net-imap#lib/net/imap/sasl/scram_algorithm.rb:53 + def client_proof; end + + # pkg:gem/net-imap#lib/net/imap/sasl/scram_algorithm.rb:51 + def client_signature; end + + # pkg:gem/net-imap#lib/net/imap/sasl/scram_algorithm.rb:44 + def salted_password; end + + # pkg:gem/net-imap#lib/net/imap/sasl/scram_algorithm.rb:49 + def server_key; end + + # pkg:gem/net-imap#lib/net/imap/sasl/scram_algorithm.rb:52 + def server_signature; end + + # pkg:gem/net-imap#lib/net/imap/sasl/scram_algorithm.rb:50 + def stored_key; end +end + +# Abstract base class for the "+SCRAM-*+" family of SASL mechanisms, +# defined in RFC5802[https://www.rfc-editor.org/rfc/rfc5802]. Use via +# Net::IMAP#authenticate. +# +# Directly supported: +# * +SCRAM-SHA-1+ --- ScramSHA1Authenticator +# * +SCRAM-SHA-256+ --- ScramSHA256Authenticator +# +# New +SCRAM-*+ mechanisms can easily be added for any hash algorithm +# supported by +# OpenSSL::Digest[https://ruby.github.io/openssl/OpenSSL/Digest.html]. +# Subclasses need only set an appropriate +DIGEST_NAME+ constant. +# +# === SCRAM algorithm +# +# See the documentation and method definitions on ScramAlgorithm for an +# overview of the algorithm. The different mechanisms differ only by +# which hash function that is used (or by support for channel binding with +# +-PLUS+). +# +# See also the methods on GS2Header. +# +# ==== Server messages +# +# As server messages are received, they are validated and loaded into +# the various attributes, e.g: #snonce, #salt, #iterations, #verifier, +# #server_error, etc. +# +# Unlike many other SASL mechanisms, the +SCRAM-*+ family supports mutual +# authentication and can return server error data in the server messages. +# If #process raises an Error for the server-final-message, then +# server_error may contain error details. +# +# === TLS Channel binding +# +# The SCRAM-*-PLUS mechanisms and channel binding are not +# supported yet. +# +# === Caching SCRAM secrets +# +# Caching of salted_password, client_key, stored_key, and server_key +# is not supported yet. +# +# pkg:gem/net-imap#lib/net/imap/sasl/scram_authenticator.rb:56 +class Net::IMAP::SASL::ScramAuthenticator + include ::Net::IMAP::SASL::GS2Header + include ::Net::IMAP::SASL::ScramAlgorithm + + # :call-seq: + # new(username, password, **options) -> auth_ctx + # new(username:, password:, **options) -> auth_ctx + # new(authcid:, password:, **options) -> auth_ctx + # + # Creates an authenticator for one of the "+SCRAM-*+" SASL mechanisms. + # Each subclass defines #digest to match a specific mechanism. + # + # Called by Net::IMAP#authenticate and similar methods on other clients. + # + # === Parameters + # + # * #authcid ― Identity whose #password is used. + # + # #username - An alias for #authcid. + # * #password ― Password or passphrase associated with this #username. + # * _optional_ #authzid ― Alternate identity to act as or on behalf of. + # * _optional_ #min_iterations - Overrides the default value (4096). + # + # Any other keyword parameters are quietly ignored. + # + # @return [ScramAuthenticator] a new instance of ScramAuthenticator + # + # pkg:gem/net-imap#lib/net/imap/sasl/scram_authenticator.rb:80 + def initialize(username_arg = T.unsafe(nil), password_arg = T.unsafe(nil), authcid: T.unsafe(nil), username: T.unsafe(nil), authzid: T.unsafe(nil), password: T.unsafe(nil), secret: T.unsafe(nil), min_iterations: T.unsafe(nil), cnonce: T.unsafe(nil), **options); end + + # Authentication identity: the identity that matches the #password. + # + # RFC-2831[https://www.rfc-editor.org/rfc/rfc2831] uses the term + # +username+. "Authentication identity" is the generic term used by + # RFC-4422[https://www.rfc-editor.org/rfc/rfc4422]. + # RFC-4616[https://www.rfc-editor.org/rfc/rfc4616] and many later RFCs + # abbreviate this to +authcid+. + # + # pkg:gem/net-imap#lib/net/imap/sasl/scram_authenticator.rb:108 + def authcid; end + + # Authorization identity: an identity to act as or on behalf of. The + # identity form is application protocol specific. If not provided or + # left blank, the server derives an authorization identity from the + # authentication identity. For example, an administrator or superuser + # might take on another role: + # + # imap.authenticate "SCRAM-SHA-256", "root", passwd, authzid: "user" + # + # The server is responsible for verifying the client's credentials and + # verifying that the identity it associates with the client's + # authentication identity is allowed to act as (or on behalf of) the + # authorization identity. + # + # pkg:gem/net-imap#lib/net/imap/sasl/scram_authenticator.rb:126 + def authzid; end + + # See {RFC5802 §7}[https://www.rfc-editor.org/rfc/rfc5802#section-7] + # +cbind-input+. + # + # >>> + # *TODO:* implement channel binding, appending +cbind-data+ here. + # + # pkg:gem/net-imap#lib/net/imap/sasl/scram_authenticator.rb:251 + def cbind_input; end + + # The client nonce, generated by SecureRandom + # + # pkg:gem/net-imap#lib/net/imap/sasl/scram_authenticator.rb:133 + def cnonce; end + + # Returns a new OpenSSL::Digest object, set to the appropriate hash + # function for the chosen mechanism. + # + # The class's +DIGEST_NAME+ constant must be set to the name of an + # algorithm supported by OpenSSL::Digest. + # + # pkg:gem/net-imap#lib/net/imap/sasl/scram_authenticator.rb:155 + def digest; end + + # Is the authentication exchange complete? + # + # If false, another server continuation is required. + # + # @return [Boolean] + # + # pkg:gem/net-imap#lib/net/imap/sasl/scram_authenticator.rb:185 + def done?; end + + # See {RFC5802 §7}[https://www.rfc-editor.org/rfc/rfc5802#section-7] + # +client-first-message+. + # + # pkg:gem/net-imap#lib/net/imap/sasl/scram_authenticator.rb:159 + def initial_client_response; end + + # The iteration count for the selected hash function and user + # + # pkg:gem/net-imap#lib/net/imap/sasl/scram_authenticator.rb:142 + def iterations; end + + # The minimal allowed iteration count. Lower #iterations will raise an + # Error. + # + # pkg:gem/net-imap#lib/net/imap/sasl/scram_authenticator.rb:130 + def min_iterations; end + + # A password or passphrase that matches the #username. + # + # pkg:gem/net-imap#lib/net/imap/sasl/scram_authenticator.rb:111 + def password; end + + # responds to the server's challenges + # + # pkg:gem/net-imap#lib/net/imap/sasl/scram_authenticator.rb:164 + def process(challenge); end + + # The salt used by the server for this user + # + # pkg:gem/net-imap#lib/net/imap/sasl/scram_authenticator.rb:139 + def salt; end + + # A password or passphrase that matches the #username. + # + # pkg:gem/net-imap#lib/net/imap/sasl/scram_authenticator.rb:112 + def secret; end + + # An error reported by the server during the \SASL exchange. + # + # Does not include errors reported by the protocol, e.g. + # Net::IMAP::NoResponseError. + # + # pkg:gem/net-imap#lib/net/imap/sasl/scram_authenticator.rb:148 + def server_error; end + + # The server nonce, which must start with #cnonce + # + # pkg:gem/net-imap#lib/net/imap/sasl/scram_authenticator.rb:136 + def snonce; end + + # Authentication identity: the identity that matches the #password. + # + # RFC-2831[https://www.rfc-editor.org/rfc/rfc2831] uses the term + # +username+. "Authentication identity" is the generic term used by + # RFC-4422[https://www.rfc-editor.org/rfc/rfc4422]. + # RFC-4616[https://www.rfc-editor.org/rfc/rfc4616] and many later RFCs + # abbreviate this to +authcid+. + # + # pkg:gem/net-imap#lib/net/imap/sasl/scram_authenticator.rb:107 + def username; end + + private + + # See {RFC5802 §7}[https://www.rfc-editor.org/rfc/rfc5802#section-7] + # +client-final-message-without-proof+. + # + # pkg:gem/net-imap#lib/net/imap/sasl/scram_authenticator.rb:240 + def client_final_message_without_proof; end + + # See {RFC5802 §7}[https://www.rfc-editor.org/rfc/rfc5802#section-7] + # +client-first-message-bare+. + # + # pkg:gem/net-imap#lib/net/imap/sasl/scram_authenticator.rb:225 + def client_first_message_bare; end + + # See {RFC5802 §7}[https://www.rfc-editor.org/rfc/rfc5802#section-7] + # +client-final-message+. + # + # pkg:gem/net-imap#lib/net/imap/sasl/scram_authenticator.rb:233 + def final_message_with_proof; end + + # pkg:gem/net-imap#lib/net/imap/sasl/scram_authenticator.rb:192 + def format_message(hash); end + + # RFC5802 specifies "that the order of attributes in client or server + # messages is fixed, with the exception of extension attributes", but + # this parses it simply as a hash, without respect to order. Note that + # repeated keys (violating the spec) will use the last value. + # + # pkg:gem/net-imap#lib/net/imap/sasl/scram_authenticator.rb:257 + def parse_challenge(challenge); end + + # pkg:gem/net-imap#lib/net/imap/sasl/scram_authenticator.rb:211 + def recv_server_final_message(server_final_message); end + + # pkg:gem/net-imap#lib/net/imap/sasl/scram_authenticator.rb:194 + def recv_server_first_message(server_first_message); end + + # Need to store this for auth_message + # + # pkg:gem/net-imap#lib/net/imap/sasl/scram_authenticator.rb:190 + def server_first_message; end +end + +# Authenticator for the "+SCRAM-SHA-1+" SASL mechanism, defined in +# RFC5802[https://www.rfc-editor.org/rfc/rfc5802]. +# +# Uses the "SHA-1" digest algorithm from OpenSSL::Digest. +# +# See ScramAuthenticator. +# +# pkg:gem/net-imap#lib/net/imap/sasl/scram_authenticator.rb:271 +class Net::IMAP::SASL::ScramSHA1Authenticator < ::Net::IMAP::SASL::ScramAuthenticator; end + +# pkg:gem/net-imap#lib/net/imap/sasl/scram_authenticator.rb:272 +Net::IMAP::SASL::ScramSHA1Authenticator::DIGEST_NAME = T.let(T.unsafe(nil), String) + +# Authenticator for the "+SCRAM-SHA-256+" SASL mechanism, defined in +# RFC7677[https://www.rfc-editor.org/rfc/rfc7677]. +# +# Uses the "SHA-256" digest algorithm from OpenSSL::Digest. +# +# See ScramAuthenticator. +# +# pkg:gem/net-imap#lib/net/imap/sasl/scram_authenticator.rb:281 +class Net::IMAP::SASL::ScramSHA256Authenticator < ::Net::IMAP::SASL::ScramAuthenticator; end + +# pkg:gem/net-imap#lib/net/imap/sasl/scram_authenticator.rb:282 +Net::IMAP::SASL::ScramSHA256Authenticator::DIGEST_NAME = T.let(T.unsafe(nil), String) + +# pkg:gem/net-imap#lib/net/imap/sasl/stringprep.rb:7 +Net::IMAP::SASL::StringPrep = Net::IMAP::StringPrep + +# pkg:gem/net-imap#lib/net/imap/sasl/stringprep.rb:10 +Net::IMAP::SASL::StringPrepError = Net::IMAP::StringPrep::StringPrepError + +# Authenticator for the "+XOAUTH2+" SASL mechanism. This mechanism was +# originally created for GMail and widely adopted by hosted email providers. +# +XOAUTH2+ has been documented by +# Google[https://developers.google.com/gmail/imap/xoauth2-protocol] and +# Microsoft[https://learn.microsoft.com/en-us/exchange/client-developer/legacy-protocols/how-to-authenticate-an-imap-pop-smtp-application-by-using-oauth]. +# +# This mechanism requires an OAuth2 access token which has been authorized +# with the appropriate OAuth2 scopes to access the user's services. Most of +# these scopes are not standardized---consult each service provider's +# documentation for their scopes. +# +# Although this mechanism was never standardized and has been obsoleted by +# "+OAUTHBEARER+", it is still very widely supported. +# +# See Net::IMAP::SASL::OAuthBearerAuthenticator. +# +# pkg:gem/net-imap#lib/net/imap/sasl/xoauth2_authenticator.rb:18 +class Net::IMAP::SASL::XOAuth2Authenticator + # :call-seq: + # new(username, oauth2_token, **) -> authenticator + # new(username:, oauth2_token:, **) -> authenticator + # new(authzid:, oauth2_token:, **) -> authenticator + # + # Creates an Authenticator for the "+XOAUTH2+" SASL mechanism, as specified by + # Google[https://developers.google.com/gmail/imap/xoauth2-protocol], + # Microsoft[https://learn.microsoft.com/en-us/exchange/client-developer/legacy-protocols/how-to-authenticate-an-imap-pop-smtp-application-by-using-oauth] + # and Yahoo[https://senders.yahooinc.com/developer/documentation]. + # + # === Properties + # + # * #username --- the username for the account being accessed. + # + # #authzid --- an alias for #username. + # + # Note that, unlike some other authenticators, +username+ sets the + # _authorization_ identity and not the _authentication_ identity. The + # authenticated identity is established for the client with the OAuth token. + # + # * #oauth2_token --- An OAuth2.0 access token which is authorized to access + # the service for #username. + # + # Any other keyword parameters are quietly ignored. + # + # @return [XOAuth2Authenticator] a new instance of XOAuth2Authenticator + # + # pkg:gem/net-imap#lib/net/imap/sasl/xoauth2_authenticator.rb:71 + def initialize(user = T.unsafe(nil), token = T.unsafe(nil), username: T.unsafe(nil), oauth2_token: T.unsafe(nil), authzid: T.unsafe(nil), secret: T.unsafe(nil), **_arg6); end + + # It is unclear from {Google's original XOAUTH2 + # documentation}[https://developers.google.com/gmail/imap/xoauth2-protocol], + # whether "User" refers to the authentication identity (+authcid+) or the + # authorization identity (+authzid+). The authentication identity is + # established for the client by the OAuth token, so it seems that +username+ + # must be the authorization identity. + # + # {Microsoft's documentation for shared + # mailboxes}[https://learn.microsoft.com/en-us/exchange/client-developer/legacy-protocols/how-to-authenticate-an-imap-pop-smtp-application-by-using-oauth#sasl-xoauth2-authentication-for-shared-mailboxes-in-office-365] + # _clearly_ indicates that the Office 365 server interprets it as the + # authorization identity. + # + # Although they _should_ validate that the token has been authorized to access + # the service for +username+, _some_ servers appear to ignore this field, + # relying only the identity and scope authorized by the token. + # Note that, unlike most other authenticators, #username is an alias for the + # authorization identity and not the authentication identity. The + # authenticated identity is established for the client by the #oauth2_token. + # + # pkg:gem/net-imap#lib/net/imap/sasl/xoauth2_authenticator.rb:40 + def authzid; end + + # Returns true when the initial client response was sent. + # + # The authentication should not succeed unless this returns true, but it + # does *not* indicate success. + # + # @return [Boolean] + # + # pkg:gem/net-imap#lib/net/imap/sasl/xoauth2_authenticator.rb:98 + def done?; end + + # :call-seq: + # initial_response? -> true + # + # +XOAUTH2+ can send an initial client response. + # + # @return [Boolean] + # + # pkg:gem/net-imap#lib/net/imap/sasl/xoauth2_authenticator.rb:84 + def initial_response?; end + + # An OAuth2 access token which has been authorized with the appropriate OAuth2 + # scopes to use the service for #username. + # + # pkg:gem/net-imap#lib/net/imap/sasl/xoauth2_authenticator.rb:44 + def oauth2_token; end + + # Returns the XOAUTH2 formatted response, which combines the +username+ + # with the +oauth2_token+. + # + # pkg:gem/net-imap#lib/net/imap/sasl/xoauth2_authenticator.rb:88 + def process(_data); end + + # An OAuth2 access token which has been authorized with the appropriate OAuth2 + # scopes to use the service for #username. + # + # pkg:gem/net-imap#lib/net/imap/sasl/xoauth2_authenticator.rb:45 + def secret; end + + # It is unclear from {Google's original XOAUTH2 + # documentation}[https://developers.google.com/gmail/imap/xoauth2-protocol], + # whether "User" refers to the authentication identity (+authcid+) or the + # authorization identity (+authzid+). The authentication identity is + # established for the client by the OAuth token, so it seems that +username+ + # must be the authorization identity. + # + # {Microsoft's documentation for shared + # mailboxes}[https://learn.microsoft.com/en-us/exchange/client-developer/legacy-protocols/how-to-authenticate-an-imap-pop-smtp-application-by-using-oauth#sasl-xoauth2-authentication-for-shared-mailboxes-in-office-365] + # _clearly_ indicates that the Office 365 server interprets it as the + # authorization identity. + # + # Although they _should_ validate that the token has been authorized to access + # the service for +username+, _some_ servers appear to ignore this field, + # relying only the identity and scope authorized by the token. + # + # pkg:gem/net-imap#lib/net/imap/sasl/xoauth2_authenticator.rb:35 + def username; end + + private + + # pkg:gem/net-imap#lib/net/imap/sasl/xoauth2_authenticator.rb:102 + def build_oauth2_string(username, oauth2_token); end +end + +# Experimental +# +# pkg:gem/net-imap#lib/net/imap/sasl_adapter.rb:7 +class Net::IMAP::SASLAdapter < ::Net::IMAP::SASL::ClientAdapter + include ::Net::IMAP::SASL::ProtocolAdapters::IMAP + + # pkg:gem/net-imap#lib/net/imap/sasl_adapter.rb:15 + def drop_connection; end + + # pkg:gem/net-imap#lib/net/imap/sasl_adapter.rb:16 + def drop_connection!; end + + # pkg:gem/net-imap#lib/net/imap/sasl_adapter.rb:13 + def response_errors; end + + # @return [Boolean] + # + # pkg:gem/net-imap#lib/net/imap/sasl_adapter.rb:14 + def sasl_ir_capable?; end +end + +# pkg:gem/net-imap#lib/net/imap/sasl_adapter.rb:10 +Net::IMAP::SASLAdapter::RESPONSE_ERRORS = T.let(T.unsafe(nil), Array) + +# Mailbox attribute indicating that this mailbox is used to hold copies of +# messages that have been sent. Some server implementations might put +# messages here automatically. Alternatively, this might just be advice that +# a client save sent messages here. +# +# pkg:gem/net-imap#lib/net/imap/flags.rb:248 +Net::IMAP::SENT = T.let(T.unsafe(nil), Symbol) + +# strftime/strptime format for an IMAP4 +date+, excluding optional dquotes. +# Use via the encode_date and decode_date methods. +# +# date = date-text / DQUOTE date-text DQUOTE +# date-text = date-day "-" date-month "-" date-year +# +# date-day = 1*2DIGIT +# ; Day of month +# date-month = "Jan" / "Feb" / "Mar" / "Apr" / "May" / "Jun" / +# "Jul" / "Aug" / "Sep" / "Oct" / "Nov" / "Dec" +# date-year = 4DIGIT +# +# pkg:gem/net-imap#lib/net/imap/data_encoding.rb:22 +Net::IMAP::STRFDATE = T.let(T.unsafe(nil), String) + +# strftime/strptime format for an IMAP4 +date-time+, including dquotes. +# See the encode_datetime and decode_datetime methods. +# +# date-time = DQUOTE date-day-fixed "-" date-month "-" date-year +# SP time SP zone DQUOTE +# +# date-day-fixed = (SP DIGIT) / 2DIGIT +# ; Fixed-format version of date-day +# date-month = "Jan" / "Feb" / "Mar" / "Apr" / "May" / "Jun" / +# "Jul" / "Aug" / "Sep" / "Oct" / "Nov" / "Dec" +# date-year = 4DIGIT +# time = 2DIGIT ":" 2DIGIT ":" 2DIGIT +# ; Hours minutes seconds +# zone = ("+" / "-") 4DIGIT +# ; Signed four-digit value of hhmm representing +# ; hours and minutes east of Greenwich (that is, +# ; the amount that the given time differs from +# ; Universal Time). Subtracting the timezone +# ; from the given time will give the UT form. +# ; The Universal Time zone is "+0000". +# +# Note that Time.strptime "%d" flexibly parses either space or zero +# padding. However, the DQUOTEs are *not* optional. +# +# pkg:gem/net-imap#lib/net/imap/data_encoding.rb:47 +Net::IMAP::STRFTIME = T.let(T.unsafe(nil), String) + +# The mailbox name was subscribed to using the #subscribe command. +# +# pkg:gem/net-imap#lib/net/imap/flags.rb:173 +Net::IMAP::SUBSCRIBED = T.let(T.unsafe(nil), Symbol) + +# An array of sequence numbers returned by Net::IMAP#search, or unique +# identifiers returned by Net::IMAP#uid_search. +# +# For backward compatibility, SearchResult inherits from Array. +# +# ==== Compatibility with ESearchResult +# +# Note that both SearchResult and ESearchResult implement +each+, +to_a+, +# and +to_sequence_set+. These methods can be used regardless of whether +# the server returns +SEARCH+ or +ESEARCH+ data (or no data). +# +# pkg:gem/net-imap#lib/net/imap/search_result.rb:16 +class Net::IMAP::SearchResult < ::Array + # Returns a SearchResult populated with the given +seq_nums+. + # + # Net::IMAP::SearchResult.new([1, 3, 5], modseq: 9) + # # => Net::IMAP::SearchResult[1, 3, 5, modseq: 9] + # + # @return [SearchResult] a new instance of SearchResult + # + # pkg:gem/net-imap#lib/net/imap/search_result.rb:35 + def initialize(seq_nums, modseq: T.unsafe(nil)); end + + # Returns whether +other+ is a SearchResult with the same values and the + # same #modseq. The order of numbers is irrelevant. + # + # Net::IMAP::SearchResult[123, 456, modseq: 789] == + # Net::IMAP::SearchResult[123, 456, modseq: 789] + # # => true + # Net::IMAP::SearchResult[123, 456, modseq: 789] == + # Net::IMAP::SearchResult[456, 123, modseq: 789] + # # => true + # + # Net::IMAP::SearchResult[123, 456, modseq: 789] == + # Net::IMAP::SearchResult[987, 654, modseq: 789] + # # => false + # Net::IMAP::SearchResult[123, 456, modseq: 789] == + # Net::IMAP::SearchResult[1, 2, 3, modseq: 9999] + # # => false + # + # SearchResult can be compared directly with Array, if #modseq is nil and + # the array is sorted. + # + # Net::IMAP::SearchResult[9, 8, 6, 4, 1] == [1, 4, 6, 8, 9] # => true + # Net::IMAP::SearchResult[3, 5, 7, modseq: 99] == [3, 5, 7] # => false + # + # Note that Array#== does require matching order and ignores #modseq. + # + # [9, 8, 6, 4, 1] == Net::IMAP::SearchResult[1, 4, 6, 8, 9] # => false + # [3, 5, 7] == Net::IMAP::SearchResult[3, 5, 7, modseq: 99] # => true + # + # pkg:gem/net-imap#lib/net/imap/search_result.rb:68 + def ==(other); end + + # Hash equality. Unlike #==, order will be taken into account. + # + # @return [Boolean] + # + # pkg:gem/net-imap#lib/net/imap/search_result.rb:82 + def eql?(other); end + + # Hash equality. Unlike #==, order will be taken into account. + # + # pkg:gem/net-imap#lib/net/imap/search_result.rb:76 + def hash; end + + # Returns a string that represents the SearchResult. + # + # Net::IMAP::SearchResult[123, 456, 789].inspect + # # => "[123, 456, 789]" + # + # Net::IMAP::SearchResult[543, 210, 678, modseq: 2048].inspect + # # => "Net::IMAP::SearchResult[543, 210, 678, modseq: 2048]" + # + # pkg:gem/net-imap#lib/net/imap/search_result.rb:95 + def inspect; end + + # A modification sequence number, as described by the +CONDSTORE+ + # extension in {[RFC7162 + # §3.1.6]}[https://www.rfc-editor.org/rfc/rfc7162.html#section-3.1.6]. + # + # pkg:gem/net-imap#lib/net/imap/search_result.rb:29 + def modseq; end + + # pkg:gem/net-imap#lib/net/imap/search_result.rb:128 + def pretty_print(pp); end + + # Returns a string that follows the formal \IMAP syntax. + # + # data = Net::IMAP::SearchResult[2, 8, 32, 128, 256, 512] + # data.to_s # => "* SEARCH 2 8 32 128 256 512" + # data.to_s("SEARCH") # => "* SEARCH 2 8 32 128 256 512" + # data.to_s("SORT") # => "* SORT 2 8 32 128 256 512" + # data.to_s(nil) # => "2 8 32 128 256 512" + # + # data = Net::IMAP::SearchResult[1, 3, 16, 1024, modseq: 2048] + # data.to_s # => "* SEARCH 1 3 16 1024 (MODSEQ 2048)" + # data.to_s("SORT") # => "* SORT 1 3 16 1024 (MODSEQ 2048)" + # data.to_s(nil) # => "1 3 16 1024 (MODSEQ 2048)" + # + # pkg:gem/net-imap#lib/net/imap/search_result.rb:113 + def to_s(type = T.unsafe(nil)); end + + # Converts the SearchResult into a SequenceSet. + # + # Net::IMAP::SearchResult[9, 1, 2, 4, 10, 12, 3, modseq: 123_456] + # .to_sequence_set + # # => Net::IMAP::SequenceSet["1:4,9:10,12"] + # + # pkg:gem/net-imap#lib/net/imap/search_result.rb:126 + def to_sequence_set; end + + class << self + # Returns a SearchResult populated with the given +seq_nums+. + # + # Net::IMAP::SearchResult[1, 3, 5, modseq: 9] + # # => Net::IMAP::SearchResult[1, 3, 5, modseq: 9] + # + # pkg:gem/net-imap#lib/net/imap/search_result.rb:22 + def [](*seq_nums, modseq: T.unsafe(nil)); end + end +end + +# An \IMAP sequence set is a set of message sequence numbers or unique +# identifier numbers ("UIDs"). It contains numbers and ranges of numbers. +# The numbers are all non-zero unsigned 32-bit integers and one special +# value ("*") that represents the largest value in the mailbox. +# +# Certain types of \IMAP responses will contain a SequenceSet, for example +# the data for a "MODIFIED" ResponseCode. Some \IMAP commands may +# receive a SequenceSet as an argument, for example IMAP#search, IMAP#fetch, +# and IMAP#store. +# +# == Creating sequence sets +# +# SequenceSet.new may receive a single optional argument: a non-zero 32 bit +# unsigned integer, a range, a sequence-set formatted string, +# another SequenceSet, a Set (containing only numbers or *), or an +# Array containing any of these (array inputs may be nested). +# +# set = Net::IMAP::SequenceSet.new(1) +# set.valid_string #=> "1" +# set = Net::IMAP::SequenceSet.new(1..100) +# set.valid_string #=> "1:100" +# set = Net::IMAP::SequenceSet.new(1...100) +# set.valid_string #=> "1:99" +# set = Net::IMAP::SequenceSet.new([1, 2, 5..]) +# set.valid_string #=> "1:2,5:*" +# set = Net::IMAP::SequenceSet.new("1,2,3:7,5,6:10,2048,1024") +# set.valid_string #=> "1,2,3:7,5,6:10,2048,1024" +# set = Net::IMAP::SequenceSet.new(1, 2, 3..7, 5, 6..10, 2048, 1024) +# set.valid_string #=> "1:10,55,1024:2048" +# +# SequenceSet.new with no arguments creates an empty sequence set. Note +# that an empty sequence set is invalid in the \IMAP grammar. +# +# set = Net::IMAP::SequenceSet.new +# set.empty? #=> true +# set.valid? #=> false +# set.valid_string #!> raises DataFormatError +# set << 1..10 +# set.empty? #=> false +# set.valid? #=> true +# set.valid_string #=> "1:10" +# +# Using SequenceSet.new with another SequenceSet input behaves the same as +# calling #dup on the other set. The input's #string will be preserved. +# +# input = Net::IMAP::SequenceSet.new("1,2,3:7,5,6:10,2048,1024") +# copy = Net::IMAP::SequenceSet.new(input) +# input.valid_string #=> "1,2,3:7,5,6:10,2048,1024" +# copy.valid_string #=> "1,2,3:7,5,6:10,2048,1024" +# copy2 = input.dup # same as calling new with a SequenceSet input +# copy == input #=> true, same set membership +# copy.eql? input #=> true, same string value +# copy.equal? input #=> false, different objects +# +# copy.normalize! +# copy.valid_string #=> "1:10,1024,2048" +# copy == input #=> true, same set membership +# copy.eql? input #=> false, different string value +# +# copy << 999 +# copy.valid_string #=> "1:10,999,1024,2048" +# copy == input #=> false, different set membership +# copy.eql? input #=> false, different string value +# +# Use Net::IMAP::SequenceSet() to coerce a single (optional) input. +# A SequenceSet input is returned without duplication, even when frozen. +# +# set = Net::IMAP::SequenceSet() +# set.string #=> nil +# set.frozen? #=> false +# +# # String order is preserved +# set = Net::IMAP::SequenceSet("1,2,3:7,5,6:10,2048,1024") +# set.valid_string #=> "1,2,3:7,5,6:10,2048,1024" +# set.frozen? #=> false +# +# # Other inputs are normalized +# set = Net::IMAP::SequenceSet([1, 2, [3..7, 5], 6..10, 2048, 1024]) +# set.valid_string #=> "1:10,1024,2048" +# set.frozen? #=> false +# +# unfrozen = set +# frozen = set.dup.freeze +# unfrozen.equal? Net::IMAP::SequenceSet(unfrozen) #=> true +# frozen.equal? Net::IMAP::SequenceSet(frozen) #=> true +# +# Use ::[] to coerce one or more arguments into a valid frozen SequenceSet. +# A valid frozen SequenceSet is returned directly, without allocating a new +# object. ::[] will not create an invalid (empty) set. +# +# Net::IMAP::SequenceSet[] #!> raises ArgumentError +# Net::IMAP::SequenceSet[nil] #!> raises DataFormatError +# Net::IMAP::SequenceSet[""] #!> raises DataFormatError +# +# # String order is preserved +# set = Net::IMAP::SequenceSet["1,2,3:7,5,6:10,2048,1024"] +# set.valid_string #=> "1,2,3:7,5,6:10,2048,1024" +# set.frozen? #=> true +# +# # Other inputs are normalized +# set = Net::IMAP::SequenceSet[1, 2, [3..7, 5], 6..10, 2048, 1024] +# set.valid_string #=> "1:10,1024,2048" +# set.frozen? #=> true +# +# frozen = set +# unfrozen = set.dup +# frozen.equal? Net::IMAP::SequenceSet[frozen] #=> true +# unfrozen.equal? Net::IMAP::SequenceSet[unfrozen] #=> false +# +# Objects which respond to +to_sequence_set+ (such as SearchResult and +# ThreadMember) can be coerced to a SequenceSet with ::new, ::try_convert, +# ::[], or Net::IMAP::SequenceSet. +# +# search = imap.uid_search(["SUBJECT", "hello", "NOT", "SEEN"]) +# seqset = Net::IMAP::SequenceSet(search) - already_fetched +# fetch = imap.uid_fetch(seqset, "FAST") +# +# == Ordered and Normalized sets +# +# Sometimes the order of the set's members is significant, such as with the +# +ESORT+, CONTEXT=SORT, and +UIDPLUS+ extensions. So, when a +# sequence set is created from a single string (such as by the parser), that +# #string representation is preserved. Assigning a string with #string= or +# #replace will also preserve that string. Use #each_entry, #entries, or +# #each_ordered_number to enumerate the entries in their #string order. +# Hash equality (using #eql?) is based on the string representation. +# +# Internally, SequenceSet uses a normalized uint32 set representation which +# sorts and de-duplicates all numbers and coalesces adjacent or overlapping +# entries. Many methods use this sorted set representation for O(lg +# n) searches. Use #each_element, #elements, #each_range, #ranges, +# #each_number, or #numbers to enumerate the set in sorted order. Basic +# object equality (using #==) is based on set membership, without regard to +# #entry order or #string normalization. +# +# Most modification methods reset #string to its #normalized form, so that +# #entries and #elements are identical. Use #append to preserve #entries +# order while modifying a set. +# +# Non-normalized sets store both representations of the set, which can more +# than double memory usage. Very large sequence sets should avoid +# denormalizing methods (such as #append) unless order is significant. +# +# == Using * +# +# \IMAP sequence sets may contain a special value "*", which +# represents the largest number in use. From +seq-number+ in +# {RFC9051 §9}[https://www.rfc-editor.org/rfc/rfc9051.html#section-9-5]: +# >>> +# In the case of message sequence numbers, it is the number of messages +# in a non-empty mailbox. In the case of unique identifiers, it is the +# unique identifier of the last message in the mailbox or, if the +# mailbox is empty, the mailbox's current UIDNEXT value. +# +# When creating a SequenceSet, * may be input as -1, +# "*", :*, an endless range, or a range ending in +# -1. When converting to #elements, #ranges, or #numbers, it will +# output as either :* or an endless range. For example: +# +# Net::IMAP::SequenceSet["1,3,*"].to_a #=> [1, 3, :*] +# Net::IMAP::SequenceSet["1,234:*"].to_a #=> [1, 234..] +# Net::IMAP::SequenceSet[1234..-1].to_a #=> [1234..] +# Net::IMAP::SequenceSet[1234..].to_a #=> [1234..] +# +# Net::IMAP::SequenceSet[1234..].to_s #=> "1234:*" +# Net::IMAP::SequenceSet[1234..-1].to_s #=> "1234:*" +# +# Use #limit to convert "*" to a maximum value. When a range +# includes "*", the maximum value will always be matched: +# +# Net::IMAP::SequenceSet["9999:*"].limit(max: 25) +# #=> Net::IMAP::SequenceSet["25"] +# +# === Surprising * behavior +# +# When a set includes *, some methods may have surprising behavior. +# +# For example, #complement treats * as its own member. This way, +# the #intersection of a set and its #complement will always be empty. And +# * is sorted as greater than any other number in the set. This is +# not how an \IMAP server interprets the set: it will convert * to +# the number of messages in the mailbox, the +UID+ of the last message in +# the mailbox, or +UIDNEXT+, as appropriate. Several methods have an +# argument for how * should be interpreted. +# +# But, for example, this means that there may be overlap between a set and +# its complement after #limit is applied to each: +# +# ~Net::IMAP::SequenceSet["*"] == Net::IMAP::SequenceSet[1..(2**32-1)] +# ~Net::IMAP::SequenceSet[1..5] == Net::IMAP::SequenceSet["6:*"] +# +# set = Net::IMAP::SequenceSet[1..5] +# (set & ~set).empty? => true +# +# (set.limit(max: 4) & (~set).limit(max: 4)).to_a => [4] +# +# When counting the number of numbers in a set, * will be counted +# as if it were equal to UINT32_MAX: +# UINT32_MAX = 2**32 - 1 +# Net::IMAP::SequenceSet["*"].count => 1 +# Net::IMAP::SequenceSet[1..UINT32_MAX - 1, :*].count => UINT32_MAX +# +# Net::IMAP::SequenceSet["1:*"].count => UINT32_MAX +# Net::IMAP::SequenceSet[UINT32_MAX, :*].count => 1 +# Net::IMAP::SequenceSet[UINT32_MAX..].count => 1 +# +# Use #cardinality to count the set members wxth * counted as a +# distinct member: +# Net::IMAP::SequenceSet[1..].cardinality #=> UINT32_MAX + 1 +# Net::IMAP::SequenceSet[UINT32_MAX, :*].cardinality #=> 2 +# Net::IMAP::SequenceSet[UINT32_MAX..].cardinality #=> 2 +# +# == What's here? +# +# SequenceSet provides methods for: +# * {Creating a SequenceSet}[rdoc-ref:SequenceSet@Methods+for+Creating+a+SequenceSet] +# * {Comparing}[rdoc-ref:SequenceSet@Methods+for+Comparing] +# * {Querying}[rdoc-ref:SequenceSet@Methods+for+Querying] +# * {Iterating}[rdoc-ref:SequenceSet@Methods+for+Iterating] +# * {Set Operations}[rdoc-ref:SequenceSet@Methods+for+Set+Operations] +# * {Assigning}[rdoc-ref:SequenceSet@Methods+for+Assigning] +# * {Deleting}[rdoc-ref:SequenceSet@Methods+for+Deleting] +# * {IMAP String Formatting}[rdoc-ref:SequenceSet@Methods+for+IMAP+String+Formatting] +# +# === Methods for Creating a \SequenceSet +# * ::[]: Creates a validated frozen sequence set from one or more inputs. +# * ::new: Creates a new mutable sequence set, which may be empty (invalid). +# * ::try_convert: Calls +to_sequence_set+ on an object and verifies that +# the result is a SequenceSet. +# * Net::IMAP::SequenceSet(): Coerce an input using ::try_convert or ::new. +# * ::empty: Returns a frozen empty (invalid) SequenceSet. +# * ::full: Returns a frozen SequenceSet containing every possible number. +# +# === Methods for Comparing +# +# Comparison to another \SequenceSet: +# - #==: Returns whether a given set contains the same numbers as +self+. +# - #eql?: Returns whether a given set uses the same #string as +self+. +# +# Comparison to objects which are convertible to \SequenceSet: +# - #===: +# Returns whether a given object is fully contained within +self+, or +# +nil+ if the object cannot be converted to a compatible type. +# - #cover?: +# Returns whether a given object is fully contained within +self+. +# - #intersect? (aliased as #overlap?): +# Returns whether +self+ and a given object have any common elements. +# - #disjoint?: +# Returns whether +self+ and a given object have no common elements. +# +# === Methods for Querying +# These methods do not modify +self+. +# +# Set membership: +# - #include? (aliased as #member?): +# Returns whether a given element is contained by the set. +# - #include_star?: Returns whether the set contains *. +# +# Minimum and maximum value elements: +# - #min: Returns one or more of the lowest numbers in the set. +# - #max: Returns one or more of the highest numbers in the set. +# - #minmax: Returns the lowest and highest numbers in the set. +# +# Accessing value by offset in sorted set: +# - #[] (aliased as #slice): Returns the number or consecutive subset at a +# given offset or range of offsets in the sorted set. +# - #at: Returns the number at a given offset in the sorted set. +# - #find_index: Returns the given number's offset in the sorted set. +# +# Accessing value by offset in ordered entries +# - #ordered_at: Returns the number at a given offset in the ordered entries. +# - #find_ordered_index: Returns the index of the given number's first +# occurrence in entries. +# +# Set cardinality: +# - #cardinality: Returns the number of distinct members in the set. +# * is counted as its own member, distinct from UINT32_MAX. +# - #count: Returns the count of distinct numbers in the set. +# * is counted as equal to UINT32_MAX. +# - #empty?: Returns whether the set has no members. \IMAP syntax does not +# allow empty sequence sets. +# - #valid?: Returns whether the set has any members. +# - #full?: Returns whether the set contains every possible value, including +# *. +# +# Denormalized properties: +# - #normalized?: Returns whether #entries are sorted, deduplicated, and +# coalesced, and all #string entries are in normalized form. +# - #has_duplicates?: Returns whether the ordered entries repeat any +# numbers. +# - #size: Returns the total size of all #entries, including repeated +# numbers. * is counted as its own member, distinct from +# UINT32_MAX. +# - #count_with_duplicates: Returns the count of numbers in the ordered +# #entries, including repeated numbers. * is counted as +# equal to UINT32_MAX. +# - #count_duplicates: Returns the count of repeated numbers in the ordered +# #entries. * is counted as equal to UINT32_MAX. +# +# === Methods for Iterating +# +# Normalized (sorted and coalesced): +# - #each_element: Yields each number and range in the set, sorted and +# coalesced, and returns +self+. +# - #elements (aliased as #to_a): Returns an Array of every number and range +# in the set, sorted and coalesced. +# - #each_range: +# Yields each element in the set as a Range and returns +self+. +# - #ranges: Returns an Array of every element in the set, converting +# numbers into ranges of a single value. +# - #each_number: Yields each number in the set and returns +self+. +# - #numbers: Returns an Array with every number in the set, expanding +# ranges into all of their contained numbers. +# - #to_set: Returns a Set containing all of the #numbers in the set. +# +# Order preserving: +# - #each_entry: Yields each number and range in the set, unsorted and +# without deduplicating numbers or coalescing ranges, and returns +self+. +# - #entries: Returns an Array of every number and range in the set, +# unsorted and without deduplicating numbers or coalescing ranges. +# - #each_ordered_number: Yields each number in the ordered entries and +# returns +self+. +# +# === Methods for \Set Operations +# These methods do not modify +self+. +# +# - #| (aliased as #union and #+): Returns a new set combining all members +# from +self+ with all members from the other set. +# - #& (aliased as #intersection): Returns a new set containing all members +# common to +self+ and the other set. +# - #- (aliased as #difference): Returns a copy of +self+ with all members +# in the other set removed. +# - #^ (aliased as #xor): Returns a new set containing all members from +# +self+ and the other set except those common to both. +# - #~ (aliased as #complement): Returns a new set containing all members +# that are not in +self+ +# - #above: Return a copy of +self+ which only contains numbers above a +# given number. +# - #below: Return a copy of +self+ which only contains numbers below a +# given value. +# - #limit: Returns a copy of +self+ which has replaced * with a +# given maximum value and removed all members over that maximum. +# +# === Methods for Assigning +# These methods add or replace numbers in +self+. +# +# Normalized (sorted and coalesced): +# +# These methods always update #string to be fully sorted and coalesced. +# +# - #add (aliased as #<<): Adds a given element to the set; returns +self+. +# - #add?: If the given element is not fully included the set, adds it and +# returns +self+; otherwise, returns +nil+. +# - #merge: In-place set #union. Adds all members of the given sets into +# this set; returns +self+. +# - #complement!: In-place set #complement. Replaces the contents of this +# set with its own #complement; returns +self+. +# - #xor!: In-place +XOR+ operation. Adds numbers that are unique to the +# other set and removes numbers that are common to both; returns +self+. +# +# Order preserving: +# +# These methods _may_ cause #string to not be sorted or coalesced. +# +# - #append: Adds the given entry to the set, appending it to the existing +# string, and returns +self+. +# - #string=: Assigns a new #string value and replaces #elements to match. +# - #replace: Replaces the contents of the set with the contents +# of a given object. +# +# === Methods for Deleting +# These methods remove numbers from +self+, and update #string to be fully +# sorted and coalesced. +# +# - #clear: Removes all elements in the set; returns +self+. +# - #delete: Removes a given element from the set; returns +self+. +# - #delete?: If the given element is included in the set, removes it and +# returns it; otherwise, returns +nil+. +# - #delete_at: Removes the number at a given offset. +# - #intersect!: In-place set #intersection. Removes numbers that are not +# in the given set; returns +self+. +# - #slice!: Removes the number or consecutive numbers at a given offset or +# range of offsets. +# - #subtract: In-place set #difference. Removes all members of the given +# sets from this set; returns +self+. +# - #limit!: Replaces * with a given maximum value and removes all +# members over that maximum; returns +self+. +# +# === Methods for \IMAP String Formatting +# +# - #to_s: Returns the +sequence-set+ string, or an empty string when the +# set is empty. +# - #string: Returns the +sequence-set+ string, or nil when empty. +# - #valid_string: Returns the +sequence-set+ string, or raises +# DataFormatError when the set is empty. +# - #normalized_string: Returns a sequence-set string with its +# elements sorted and coalesced, or nil when the set is empty. +# - #normalize: Returns a new set with this set's normalized +sequence-set+ +# representation. +# - #normalize!: Updates #string to its normalized +sequence-set+ +# representation and returns +self+. +# +# pkg:gem/net-imap#lib/net/imap/sequence_set.rb:411 +class Net::IMAP::SequenceSet + # Create a new SequenceSet object from +input+, which may be another + # SequenceSet, an IMAP formatted +sequence-set+ string, a non-zero 32 bit + # unsigned integer, a range, :*, a Set of numbers or *, + # an object that responds to +to_sequence_set+ (such as SearchResult) or + # an Array of these (array inputs may be nested). + # + # set = Net::IMAP::SequenceSet.new(1) + # set.valid_string #=> "1" + # set = Net::IMAP::SequenceSet.new(1..100) + # set.valid_string #=> "1:100" + # set = Net::IMAP::SequenceSet.new(1...100) + # set.valid_string #=> "1:99" + # set = Net::IMAP::SequenceSet.new([1, 2, 5..]) + # set.valid_string #=> "1:2,5:*" + # set = Net::IMAP::SequenceSet.new("1,2,3:7,5,6:10,2048,1024") + # set.valid_string #=> "1,2,3:7,5,6:10,2048,1024" + # set = Net::IMAP::SequenceSet.new(1, 2, 3..7, 5, 6..10, 2048, 1024) + # set.valid_string #=> "1:10,1024,2048" + # + # With no arguments (or +nil+) creates an empty sequence set. Note that + # an empty sequence set is invalid in the \IMAP grammar. + # + # set = Net::IMAP::SequenceSet.new + # set.empty? #=> true + # set.valid? #=> false + # set.valid_string #!> raises DataFormatError + # set << 1..10 + # set.empty? #=> false + # set.valid? #=> true + # set.valid_string #=> "1:10" + # + # When +input+ is a SequenceSet, ::new behaves the same as calling #dup on + # that other set. The input's #string will be preserved. + # + # input = Net::IMAP::SequenceSet.new("1,2,3:7,5,6:10,2048,1024") + # copy = Net::IMAP::SequenceSet.new(input) + # input.valid_string #=> "1,2,3:7,5,6:10,2048,1024" + # copy.valid_string #=> "1,2,3:7,5,6:10,2048,1024" + # copy2 = input.dup # same as calling new with a SequenceSet input + # copy == input #=> true, same set membership + # copy.eql? input #=> true, same string value + # copy.equal? input #=> false, different objects + # + # copy.normalize! + # copy.valid_string #=> "1:10,1024,2048" + # copy == input #=> true, same set membership + # copy.eql? input #=> false, different string value + # + # copy << 999 + # copy.valid_string #=> "1:10,999,1024,2048" + # copy == input #=> false, different set membership + # copy.eql? input #=> false, different string value + # + # === Alternative set creation methods + # + # * ::[] returns a frozen validated (non-empty) SequenceSet, without + # allocating a new object when the input is already a valid frozen + # SequenceSet. + # * Net::IMAP::SequenceSet() coerces an input to SequenceSet, without + # allocating a new object when the input is already a SequenceSet. + # * ::try_convert calls +to_sequence_set+ on inputs that support it and + # returns +nil+ for inputs that don't. + # * ::empty and ::full both return frozen singleton sets which can be + # combined with set operations (#|, #&, #^, #-, etc) to make new sets. + # + # See SequenceSet@Creating+sequence+sets. + # + # @return [SequenceSet] a new instance of SequenceSet + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:558 + def initialize(input = T.unsafe(nil)); end + + # :call-seq: + # self & other -> sequence set + # intersection(other) -> sequence set + # + # Returns a new sequence set containing only the numbers common to this + # set and +other+. + # + # +other+ may be any object that would be accepted by ::new. + # + # Net::IMAP::SequenceSet[1..5] & [2, 4, 6] + # #=> Net::IMAP::SequenceSet["2,4"] + # + # Related: #intersect?, #|, #-, #^, #~ + # + # ==== Set identities + # + # lhs & rhs is equivalent to: + # * rhs & lhs (commutative) + # * ~(~lhs | ~rhs) (De Morgan's Law) + # * lhs - ~rhs + # * lhs - (lhs - rhs) + # * lhs - (lhs ^ rhs) + # * lhs ^ (lhs - rhs) + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:913 + def &(other); end + + # :call-seq: + # self + other -> sequence set + # self | other -> sequence set + # union(other) -> sequence set + # + # Returns a new sequence set that has every number in the +other+ object + # added. + # + # +other+ may be any object that would be accepted by ::new. + # + # Net::IMAP::SequenceSet["1:5"] | 2 | [4..6, 99] + # #=> Net::IMAP::SequenceSet["1:6,99"] + # + # Related: #add, #merge, #&, #-, #^, #~ + # + # ==== Set identities + # + # lhs | rhs is equivalent to: + # * rhs | lhs (commutative) + # * ~(~lhs & ~rhs) (De Morgan's Law) + # * (lhs & rhs) ^ (lhs ^ rhs) + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:861 + def +(other); end + + # :call-seq: + # self - other -> sequence set + # difference(other) -> sequence set + # + # Returns a new sequence set built by duplicating this set and removing + # every number that appears in +other+. + # + # +other+ may be any object that would be accepted by ::new. + # + # Net::IMAP::SequenceSet[1..5] - 2 - 4 - 6 + # #=> Net::IMAP::SequenceSet["1,3,5"] + # + # Related: #subtract, #|, #&, #^, #~ + # + # ==== Set identities + # + # lhs - rhs is equivalent to: + # * ~rhs - ~lhs + # * lhs & ~rhs + # * ~(~lhs | rhs) + # * lhs & (lhs ^ rhs) + # * lhs ^ (lhs & rhs) + # * rhs ^ (lhs | rhs) + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:887 + def -(other); end + + # :call-seq: + # add(element) -> self + # self << other -> self + # + # Adds a range or number to the set and returns +self+. + # + # #string will be regenerated. Use #merge to add many elements at once. + # + # Use #append to append new elements to #string. See + # SequenceSet@Ordered+and+Normalized+sets. + # + # Related: #add?, #merge, #union, #append + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:981 + def <<(element); end + + # :call-seq: self == other -> true or false + # + # Returns true when the other SequenceSet represents the same message + # identifiers. Encoding difference—such as order, overlaps, or + # duplicates—are ignored. + # + # Net::IMAP::SequenceSet["1:3"] == Net::IMAP::SequenceSet["1:3"] + # #=> true + # Net::IMAP::SequenceSet["1,2,3"] == Net::IMAP::SequenceSet["1:3"] + # #=> true + # Net::IMAP::SequenceSet["1,3"] == Net::IMAP::SequenceSet["3,1"] + # #=> true + # Net::IMAP::SequenceSet["9,1:*"] == Net::IMAP::SequenceSet["1:*"] + # #=> true + # + # Related: #eql?, #normalize + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:675 + def ==(other); end + + # :call-seq: self === other -> true | false | nil + # + # Returns whether +other+ is contained within the set. +other+ may be any + # object that would be accepted by ::new. Returns +nil+ if StandardError + # is raised while converting +other+ to a comparable type. + # + # Related: #cover?, #include?, #include_star? + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:706 + def ===(other); end + + # :call-seq: + # seqset[index] -> integer or :* or nil + # slice(index) -> integer or :* or nil + # seqset[start, length] -> sequence set or nil + # slice(start, length) -> sequence set or nil + # seqset[range] -> sequence set or nil + # slice(range) -> sequence set or nil + # + # Returns a number or a subset from the _sorted_ set, without modifying + # the set. + # + # When an Integer argument +index+ is given, the number at offset +index+ + # in the sorted set is returned: + # + # set = Net::IMAP::SequenceSet["10:15,20:23,26"] + # set[0] #=> 10 + # set[5] #=> 15 + # set[10] #=> 26 + # + # If +index+ is negative, it counts relative to the end of the sorted set: + # set = Net::IMAP::SequenceSet["10:15,20:23,26"] + # set[-1] #=> 26 + # set[-3] #=> 22 + # set[-6] #=> 15 + # + # If +index+ is out of range, +nil+ is returned. + # + # set = Net::IMAP::SequenceSet["10:15,20:23,26"] + # set[11] #=> nil + # set[-12] #=> nil + # + # The result is based on the sorted and de-duplicated set, not on the + # ordered #entries in #string. + # + # set = Net::IMAP::SequenceSet["12,20:23,11:16,21"] + # set[0] #=> 11 + # set[-1] #=> 23 + # + # Related: #at + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:1540 + def [](index, length = T.unsafe(nil)); end + + # :call-seq: + # self ^ other -> sequence set + # xor(other) -> sequence set + # + # Returns a new sequence set containing numbers that are exclusive between + # this set and +other+. + # + # +other+ may be any object that would be accepted by ::new. + # + # Net::IMAP::SequenceSet[1..5] ^ [2, 4, 6] + # #=> Net::IMAP::SequenceSet["1,3,5:6"] + # + # Related: #|, #&, #-, #~ + # + # ==== Set identities + # + # lhs ^ rhs is equivalent to: + # * rhs ^ lhs (commutative) + # * ~lhs ^ ~rhs + # * (lhs | rhs) - (lhs & rhs) + # * (lhs - rhs) | (rhs - lhs) + # * (lhs ^ other) ^ (other ^ rhs) + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:938 + def ^(other); end + + # Returns a copy of +self+ which only contains the numbers above +num+. + # + # Net::IMAP::SequenceSet["5,10:22,50"].above(10) # to_s => "11:22,50" + # Net::IMAP::SequenceSet["5,10:22,50"].above(20) # to_s => "21:22,50 + # Net::IMAP::SequenceSet["5,10:22,50"].above(30) # to_s => "50" + # + # This returns the same result as #intersection with ((num+1)..) + # or #difference with (..num). + # + # Net::IMAP::SequenceSet["5,10:22,50"] & (11..) # to_s => "11:22,50" + # Net::IMAP::SequenceSet["5,10:22,50"] - (..10) # to_s => "11:22,50" + # Net::IMAP::SequenceSet["5,10:22,50"] & (21..) # to_s => "21:22,50" + # Net::IMAP::SequenceSet["5,10:22,50"] - (..20) # to_s => "21:22,50" + # + # Related: #above, #-, #& + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:1564 + def above(num); end + + # :call-seq: + # add(element) -> self + # self << other -> self + # + # Adds a range or number to the set and returns +self+. + # + # #string will be regenerated. Use #merge to add many elements at once. + # + # Use #append to append new elements to #string. See + # SequenceSet@Ordered+and+Normalized+sets. + # + # Related: #add?, #merge, #union, #append + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:976 + def add(element); end + + # :call-seq: add?(element) -> self or nil + # + # Adds a range or number to the set and returns +self+. Returns +nil+ + # when the element is already included in the set. + # + # #string will be regenerated. Use #merge to add many elements at once. + # + # Related: #add, #merge, #union, #include? + # + # @return [Boolean] + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:1048 + def add?(element); end + + # Adds a range or number to the set and returns +self+. + # + # Unlike #add, #merge, or #union, the new value is appended to #string. + # This may result in a #string which has duplicates or is out-of-order. + # + # set = Net::IMAP::SequenceSet.new + # set.append(1..2) # => Net::IMAP::SequenceSet("1:2") + # set.append(5) # => Net::IMAP::SequenceSet("1:2,5") + # set.append(4) # => Net::IMAP::SequenceSet("1:2,5,4") + # set.append(3) # => Net::IMAP::SequenceSet("1:2,5,4,3") + # set.append(2) # => Net::IMAP::SequenceSet("1:2,5,4,3,2") + # + # If +entry+ is a string, it will be converted into normal form. + # + # set = Net::IMAP::SequenceSet("4:5,1:2") + # set.append("6:6") # => Net::IMAP::SequenceSet("4:5,1:2,6") + # set.append("9:8") # => Net::IMAP::SequenceSet("4:5,1:2,6,8:9") + # + # If +entry+ adjacently follows the last entry, they will coalesced: + # set = Net::IMAP::SequenceSet.new("2,1,9:10") + # set.append(11..12) # => Net::IMAP::SequenceSet("2,1,9:12") + # + # Non-normalized sets store the string in addition to an internal + # normalized uint32 set representation. This can more than double memory + # usage, so large sets should avoid using #append unless preserving order + # is required. See SequenceSet@Ordered+and+Normalized+sets. + # + # Related: #add, #merge, #union + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:1011 + def append(entry); end + + # :call-seq: at(index) -> integer or nil + # + # Returns the number at the given +index+ in the sorted set, without + # modifying the set. + # + # +index+ is interpreted the same as in #[], except that #at only allows a + # single integer argument. + # + # Related: #[], #slice, #ordered_at + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:1484 + def at(index); end + + # Returns a copy of +self+ which only contains numbers below +num+. + # + # Net::IMAP::SequenceSet["5,10:22,50"].below(10) # to_s => "5" + # Net::IMAP::SequenceSet["5,10:22,50"].below(20) # to_s => "5,10:19" + # Net::IMAP::SequenceSet["5,10:22,50"].below(30) # to_s => "5,10:22" + # + # This returns the same result as #intersection with (..(num-1)) + # or #difference with (num..). + # + # Net::IMAP::SequenceSet["5,10:22,50"] & (..9) # to_s => "5" + # Net::IMAP::SequenceSet["5,10:22,50"] - (10..) # to_s => "5" + # Net::IMAP::SequenceSet["5,10:22,50"] & (..19) # to_s => "5,10:19" + # Net::IMAP::SequenceSet["5,10:22,50"] - (20..) # to_s => "5,10:19" + # + # When the set does not contain *, #below is identical to #limit + # with max: num - 1. When the set does contain *, + # #below always drops it from the result. Use #limit when the IMAP + # semantics for * must be enforced. + # + # Net::IMAP::SequenceSet["5,10:22,50"].below(30) # to_s => "5,10:22" + # Net::IMAP::SequenceSet["5,10:22,50"].limit(max: 29) # to_s => "5,10:22" + # Net::IMAP::SequenceSet["5,10:22,*"].below(30) # to_s => "5,10:22" + # Net::IMAP::SequenceSet["5,10:22,*"].limit(max: 29) # to_s => "5,10:22,29" + # + # Related: #above, #-, #&, #limit + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:1595 + def below(num); end + + # Returns the number of members in the set. + # + # Unlike #count, "*" is considered to be distinct from + # 2³² - 1 (the maximum 32-bit unsigned integer value). + # + # set = Net::IMAP::SequenceSet[1..10] + # set.count #=> 10 + # set.cardinality #=> 10 + # + # set = Net::IMAP::SequenceSet["4294967295,*"] + # set.count #=> 1 + # set.cardinality #=> 2 + # + # set = Net::IMAP::SequenceSet[1..] + # set.count #=> 4294967295 + # set.cardinality #=> 4294967296 + # + # Related: #count, #count_with_duplicates + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:1346 + def cardinality; end + + # Removes all elements and returns self. + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:565 + def clear; end + + # :call-seq: + # ~ self -> sequence set + # complement -> sequence set + # + # Returns the complement of self, a SequenceSet which contains all numbers + # _except_ for those in this set. + # + # ~Net::IMAP::SequenceSet.full #=> Net::IMAP::SequenceSet.empty + # ~Net::IMAP::SequenceSet.empty #=> Net::IMAP::SequenceSet.full + # ~Net::IMAP::SequenceSet["1:5,100:222"] + # #=> Net::IMAP::SequenceSet["6:99,223:*"] + # ~Net::IMAP::SequenceSet["6:99,223:*"] + # #=> Net::IMAP::SequenceSet["1:5,100:222"] + # + # Related: #complement!, #|, #&, #-, #^ + # + # ==== Set identities + # + # ~set is equivalent to: + # * full - set, where "full" is Net::IMAP::SequenceSet.full + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:962 + def complement; end + + # :call-seq: complement! -> self + # + # In-place set #complement. Replaces the contents of this set with its + # own #complement. It will contain all possible values _except_ for those + # currently in the set. + # + # Related: #complement + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:1648 + def complement!; end + + # Returns the count of distinct #numbers in the set. + # + # Unlike #cardinality, "*" is considered to be equal to + # 2³² - 1 (the maximum 32-bit unsigned integer value). + # + # set = Net::IMAP::SequenceSet[1..10] + # set.count #=> 10 + # set.cardinality #=> 10 + # + # set = Net::IMAP::SequenceSet["4294967295,*"] + # set.count #=> 1 + # set.cardinality #=> 2 + # + # set = Net::IMAP::SequenceSet[1..] + # set.count #=> 4294967295 + # set.cardinality #=> 4294967296 + # + # Related: #cardinality, #count_with_duplicates + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:1366 + def count; end + + # Returns the count of repeated numbers in the ordered #entries, the + # difference between #count_with_duplicates and #count. + # + # When #string is normalized, this is zero. + # + # Related: #entries, #count_with_duplicates, #has_duplicates? + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:1431 + def count_duplicates; end + + # Returns the count of numbers in the ordered #entries, including any + # repeated numbers. + # + # When #string is normalized, this returns the same as #count. Like + # #count, "*" is considered to be equal to 2³² - 1 (the + # maximum 32-bit unsigned integer value). + # + # In a range, "*" is _not_ considered a duplicate: + # set = Net::IMAP::SequenceSet["4294967295:*"] + # set.count_with_duplicates #=> 1 + # set.size #=> 2 + # set.count #=> 1 + # set.cardinality #=> 2 + # + # In a separate entry, "*" _is_ considered a duplicate: + # set = Net::IMAP::SequenceSet["4294967295,*"] + # set.count_with_duplicates #=> 2 + # set.size #=> 2 + # set.count #=> 1 + # set.cardinality #=> 2 + # + # Related: #count, #cardinality, #size, #count_duplicates, + # #has_duplicates?, #entries + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:1393 + def count_with_duplicates; end + + # :call-seq: cover?(other) -> true | false | nil + # + # Returns whether +other+ is contained within the set. +other+ may be any + # object that would be accepted by ::new. + # + # Related: #===, #include?, #include_star?, #intersect? + # + # @return [Boolean] + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:718 + def cover?(other); end + + # Returns an array with #normalized_string when valid and an empty array + # otherwise. + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:616 + def deconstruct; end + + # :call-seq: delete(element) -> self + # + # Deletes the given range or number from the set and returns +self+. + # + # #string will be regenerated after deletion. Use #subtract to remove + # many elements at once. + # + # Related: #delete?, #delete_at, #subtract, #difference + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:1061 + def delete(element); end + + # :call-seq: + # delete?(number) -> integer or nil + # delete?(star) -> :* or nil + # delete?(range) -> sequence set or nil + # + # Removes a specified value from the set, and returns the removed value. + # Returns +nil+ if nothing was removed. + # + # Returns an integer when the specified +number+ argument was removed: + # set = Net::IMAP::SequenceSet.new [5..10, 20] + # set.delete?(7) #=> 7 + # set #=> # + # set.delete?("20") #=> 20 + # set #=> # + # set.delete?(30) #=> nil + # + # Returns :* when * or -1 is specified and + # removed: + # set = Net::IMAP::SequenceSet.new "5:9,20,35,*" + # set.delete?(-1) #=> :* + # set #=> # + # + # And returns a new SequenceSet when a range is specified: + # + # set = Net::IMAP::SequenceSet.new [5..10, 20] + # set.delete?(9..) #=> # + # set #=> # + # set.delete?(21..) #=> nil + # + # #string will be regenerated after deletion. + # + # Related: #delete, #delete_at, #subtract, #difference, #disjoint? + # + # @return [Boolean] + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:1099 + def delete?(element); end + + # :call-seq: delete_at(index) -> number or :* or nil + # + # Deletes a number the set, indicated by the given +index+. Returns the + # number that was removed, or +nil+ if nothing was removed. + # + # #string will be regenerated after deletion. + # + # Related: #delete, #delete?, #slice!, #subtract, #difference + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:1124 + def delete_at(index); end + + # :call-seq: + # self - other -> sequence set + # difference(other) -> sequence set + # + # Returns a new sequence set built by duplicating this set and removing + # every number that appears in +other+. + # + # +other+ may be any object that would be accepted by ::new. + # + # Net::IMAP::SequenceSet[1..5] - 2 - 4 - 6 + # #=> Net::IMAP::SequenceSet["1,3,5"] + # + # Related: #subtract, #|, #&, #^, #~ + # + # ==== Set identities + # + # lhs - rhs is equivalent to: + # * ~rhs - ~lhs + # * lhs & ~rhs + # * ~(~lhs | rhs) + # * lhs & (lhs ^ rhs) + # * lhs ^ (lhs & rhs) + # * rhs ^ (lhs | rhs) + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:888 + def difference(other); end + + # Returns +true+ if the set and a given object have no common elements, + # +false+ otherwise. + # + # Net::IMAP::SequenceSet["5:10"].disjoint? "7,9,11" #=> false + # Net::IMAP::SequenceSet["5:10"].disjoint? "11:33" #=> true + # + # Related: #intersection, #intersect? + # + # @return [Boolean] + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:773 + def disjoint?(other); end + + # Yields each number or range (or :*) in #elements to the block + # and returns self. Returns an enumerator when called without a block. + # + # The returned numbers are sorted and de-duplicated, even when the input + # #string is not. See #normalize, SequenceSet@Ordered+and+Normalized+sets. + # + # Related: #elements, #each_entry + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:1271 + def each_element; end + + # Yields each number or range in #string to the block and returns +self+. + # Returns an enumerator when called without a block. + # + # The entries are yielded in the same order they appear in #string, with + # no sorting, deduplication, or coalescing. When #string is in its + # normalized form, this will yield the same values as #each_element. + # + # See SequenceSet@Ordered+and+Normalized+sets. + # + # Related: #entries, #each_element + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:1259 + def each_entry(&block); end + + # Yields each number in #numbers to the block and returns self. + # If the set contains a *, RangeError will be raised. + # + # Returns an enumerator when called without a block (even if the set + # contains *). + # + # Related: #numbers, #each_ordered_number + # + # @raise [RangeError] + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:1299 + def each_number(&block); end + + # Yields each number in #entries to the block and returns self. + # If the set contains a *, RangeError will be raised. + # + # Returns an enumerator when called without a block (even if the set + # contains *). + # + # Related: #entries, #each_number + # + # @raise [RangeError] + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:1313 + def each_ordered_number(&block); end + + # Yields each range in #ranges to the block and returns self. + # Returns an enumerator when called without a block. + # + # Related: #ranges + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:1281 + def each_range; end + + # Returns an array of ranges and integers and :*. + # + # The returned elements are sorted and coalesced, even when the input + # #string is not. * will sort last. See #normalize, + # SequenceSet@Ordered+and+Normalized+sets. + # + # By itself, * translates to :*. A range containing + # * translates to an endless range. Use #limit to translate both + # cases to a maximum value. + # + # Net::IMAP::SequenceSet["2,5:9,6,*,12:11"].elements + # #=> [2, 5..9, 11..12, :*] + # + # Related: #each_element, #ranges, #numbers + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:1200 + def elements; end + + # Returns true if the set contains no elements + # + # @return [Boolean] + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:834 + def empty?; end + + # For YAML serialization + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:1847 + def encode_with(coder); end + + # Returns an array of ranges and integers and :*. + # + # The entries are in the same order they appear in #string, with no + # sorting, deduplication, or coalescing. When #string is in its + # normalized form, this will return the same result as #elements. + # This is useful when the given order is significant, for example in a + # ESEARCH response to IMAP#sort. + # + # See SequenceSet@Ordered+and+Normalized+sets. + # + # Related: #each_entry, #elements + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:1184 + def entries; end + + # :call-seq: eql?(other) -> true or false + # + # Hash equality requires the same encoded #string representation. + # + # Net::IMAP::SequenceSet["1:3"] .eql? Net::IMAP::SequenceSet["1:3"] + # #=> true + # Net::IMAP::SequenceSet["1,2,3"].eql? Net::IMAP::SequenceSet["1:3"] + # #=> false + # Net::IMAP::SequenceSet["1,3"] .eql? Net::IMAP::SequenceSet["3,1"] + # #=> false + # Net::IMAP::SequenceSet["9,1:*"].eql? Net::IMAP::SequenceSet["1:*"] + # #=> false + # + # Related: #==, #normalize + # + # @return [Boolean] + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:694 + def eql?(other); end + + # Returns the (sorted and deduplicated) index of +number+ in the set, or + # +nil+ if +number+ isn't in the set. + # + # Related: #[], #at, #find_ordered_index + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:1452 + def find_index(number); end + + # Returns the first index of +number+ in the ordered #entries, or + # +nil+ if +number+ isn't in the set. + # + # Related: #find_index + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:1465 + def find_ordered_index(number); end + + # Freezes and returns the set. A frozen SequenceSet is Ractor-safe. + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:653 + def freeze; end + + # Returns true if the set contains every possible element. + # + # @return [Boolean] + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:837 + def full?; end + + # :call-seq: has_duplicates? -> true | false + # + # Returns whether or not the ordered #entries repeat any numbers. + # + # Always returns +false+ when #string is normalized. + # + # Related: #entries, #count_with_duplicates, #count_duplicates + # + # @return [Boolean] + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:1443 + def has_duplicates?; end + + # See #eql? + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:697 + def hash; end + + # Returns +true+ when a given number or range is in +self+, and +false+ + # otherwise. Returns +nil+ when +number+ isn't a valid SequenceSet + # element (Integer, Range, *, +sequence-set+ string). + # + # set = Net::IMAP::SequenceSet["5:10,100,111:115"] + # set.include? 1 #=> false + # set.include? 5..10 #=> true + # set.include? 11..20 #=> false + # set.include? 100 #=> true + # set.include? 6 #=> true, covered by "5:10" + # set.include? 6..9 #=> true, covered by "5:10" + # set.include? "6:9" #=> true, strings are parsed + # set.include? 4..9 #=> false, intersection is not sufficient + # set.include? "*" #=> false, use #limit to re-interpret "*" + # set.include? -1 #=> false, -1 is interpreted as "*" + # + # set = Net::IMAP::SequenceSet["5:10,100,111:*"] + # set.include? :* #=> true + # set.include? "*" #=> true + # set.include? -1 #=> true + # set.include?(200..) #=> true + # set.include?(100..) #=> false + # + # Related: #include_star?, #cover?, #===, #intersect? + # + # @return [Boolean] + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:744 + def include?(element); end + + # Returns +true+ when the set contains *. + # + # @return [Boolean] + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:752 + def include_star?; end + + # For YAML deserialization + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:1853 + def init_with(coder); end + + # Returns an inspection string for the SequenceSet. + # + # Net::IMAP::SequenceSet.new.inspect + # #=> "Net::IMAP::SequenceSet()" + # + # Net::IMAP::SequenceSet(1..5, 1024, 15, 2000).inspect + # #=> 'Net::IMAP::SequenceSet("1:5,15,1024,2000")' + # + # Frozen sets have slightly different output: + # + # Net::IMAP::SequenceSet.empty.inspect + # #=> "Net::IMAP::SequenceSet.empty" + # + # Net::IMAP::SequenceSet[1..5, 1024, 15, 2000].inspect + # #=> 'Net::IMAP::SequenceSet["1:5,15,1024,2000"]' + # + # Large sets (by number of #entries) have abridged output, with only the + # first and last entries: + # + # Net::IMAP::SequenceSet(((1..5000) % 2).to_a).inspect + # #=> # + # + # Related: #to_s, #string + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:1802 + def inspect; end + + # In-place set #intersection. Removes any elements that are missing from + # +other+ from this set, keeping only the #intersection, and returns + # +self+. + # + # +other+ can be any object that would be accepted by ::new. + # + # set = Net::IMAP::SequenceSet.new(1..5) + # set.intersect! [2, 4, 6] + # set #=> Net::IMAP::SequenceSet("2,4") + # + # Related: #intersection, #intersect? + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:1670 + def intersect!(other); end + + # Returns +true+ if the set and a given object have any common elements, + # +false+ otherwise. + # + # Net::IMAP::SequenceSet["5:10"].intersect? "7,9,11" #=> true + # Net::IMAP::SequenceSet["5:10"].intersect? "11:33" #=> false + # + # Related: #intersection, #disjoint?, #cover?, #include? + # + # @return [Boolean] + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:761 + def intersect?(other); end + + # :call-seq: + # self & other -> sequence set + # intersection(other) -> sequence set + # + # Returns a new sequence set containing only the numbers common to this + # set and +other+. + # + # +other+ may be any object that would be accepted by ::new. + # + # Net::IMAP::SequenceSet[1..5] & [2, 4, 6] + # #=> Net::IMAP::SequenceSet["2,4"] + # + # Related: #intersect?, #|, #-, #^, #~ + # + # ==== Set identities + # + # lhs & rhs is equivalent to: + # * rhs & lhs (commutative) + # * ~(~lhs | ~rhs) (De Morgan's Law) + # * lhs - ~rhs + # * lhs - (lhs - rhs) + # * lhs - (lhs ^ rhs) + # * lhs ^ (lhs - rhs) + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:914 + def intersection(other); end + + # Returns a frozen SequenceSet with * converted to +max+, numbers + # and ranges over +max+ removed, and ranges containing +max+ converted to + # end at +max+. + # + # Net::IMAP::SequenceSet["5,10:22,50"].limit(max: 20).to_s + # #=> "5,10:20" + # + # * is always interpreted as the maximum value. When the set + # contains *, it will be set equal to the limit. + # + # Net::IMAP::SequenceSet["*"].limit(max: 37) + # #=> Net::IMAP::SequenceSet["37"] + # Net::IMAP::SequenceSet["5:*"].limit(max: 37) + # #=> Net::IMAP::SequenceSet["5:37"] + # Net::IMAP::SequenceSet["500:*"].limit(max: 37) + # #=> Net::IMAP::SequenceSet["37"] + # + # Related: #limit! + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:1619 + def limit(max:); end + + # Removes all members over +max+ and returns self. If * is a + # member, it will be converted to +max+. + # + # Related: #limit + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:1632 + def limit!(max:); end + + # :call-seq: + # max(star: :*) => integer or star or nil + # max(count) => SequenceSet + # + # Returns the maximum value in +self+, +star+ when the set includes + # *, or +nil+ when the set is empty. + # + # When +count+ is given, a new SequenceSet is returned, containing only + # the last +count+ numbers. An empty SequenceSet is returned when +self+ + # is empty. (+star+ is ignored when +count+ is given.) + # + # Related: #min, #minmax, #slice + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:789 + def max(count = T.unsafe(nil), star: T.unsafe(nil)); end + + # Returns +true+ when a given number or range is in +self+, and +false+ + # otherwise. Returns +nil+ when +number+ isn't a valid SequenceSet + # element (Integer, Range, *, +sequence-set+ string). + # + # set = Net::IMAP::SequenceSet["5:10,100,111:115"] + # set.include? 1 #=> false + # set.include? 5..10 #=> true + # set.include? 11..20 #=> false + # set.include? 100 #=> true + # set.include? 6 #=> true, covered by "5:10" + # set.include? 6..9 #=> true, covered by "5:10" + # set.include? "6:9" #=> true, strings are parsed + # set.include? 4..9 #=> false, intersection is not sufficient + # set.include? "*" #=> false, use #limit to re-interpret "*" + # set.include? -1 #=> false, -1 is interpreted as "*" + # + # set = Net::IMAP::SequenceSet["5:10,100,111:*"] + # set.include? :* #=> true + # set.include? "*" #=> true + # set.include? -1 #=> true + # set.include?(200..) #=> true + # set.include?(100..) #=> false + # + # Related: #include_star?, #cover?, #===, #intersect? + # + # @return [Boolean] + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:749 + def member?(element); end + + # In-place set #union. Merges all of the elements that appear in any of + # the +sets+ into this set, and returns +self+. + # + # The +sets+ may be any objects that would be accepted by ::new. + # + # #string will be regenerated after all sets have been merged. + # + # Related: #add, #add?, #union + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:1155 + def merge(*sets); end + + # :call-seq: + # min(star: :*) => integer or star or nil + # min(count) => SequenceSet + # + # Returns the minimum value in +self+, +star+ when the only value in the + # set is *, or +nil+ when the set is empty. + # + # When +count+ is given, a new SequenceSet is returned, containing only + # the first +count+ numbers. An empty SequenceSet is returned when +self+ + # is empty. (+star+ is ignored when +count+ is given.) + # + # Related: #max, #minmax, #slice + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:813 + def min(count = T.unsafe(nil), star: T.unsafe(nil)); end + + # :call-seq: minmax(star: :*) => [min, max] or nil + # + # Returns a 2-element array containing the minimum and maximum numbers in + # +self+, or +nil+ when the set is empty. +star+ is handled the same way + # as by #min and #max. + # + # Related: #min, #max + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:828 + def minmax(star: T.unsafe(nil)); end + + # Returns a SequenceSet with a normalized string representation: entries + # have been sorted, deduplicated, and coalesced, and all entries + # are in normal form. Returns +self+ for frozen normalized sets, and a + # normalized duplicate otherwise. + # + # See SequenceSet@Ordered+and+Normalized+sets. + # + # Net::IMAP::SequenceSet["1:5,3:7,10:9,10:11"].normalize + # #=> Net::IMAP::SequenceSet["1:7,9:11"] + # + # Related: #normalize!, #normalized_string, #normalized? + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:1751 + def normalize; end + + # Resets #string to be sorted, deduplicated, and coalesced. Returns + # +self+. See SequenceSet@Ordered+and+Normalized+sets. + # + # Related: #normalize, #normalized_string, #normalized? + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:1759 + def normalize!; end + + # Returns whether #string is fully normalized: entries have been sorted, + # deduplicated, and coalesced, and all entries are in normal form. See + # SequenceSet@Ordered+and+Normalized+sets. + # + # Net::IMAP::SequenceSet["1,3,5"].normalized? #=> true + # Net::IMAP::SequenceSet["20:30"].normalized? #=> true + # + # Net::IMAP::SequenceSet["3,5,1"].normalized? #=> false, not sorted + # Net::IMAP::SequenceSet["1,2,3"].normalized? #=> false, not coalesced + # Net::IMAP::SequenceSet["1:5,2"].normalized? #=> false, repeated number + # + # Net::IMAP::SequenceSet["1:1"].normalized? #=> false, number as range + # Net::IMAP::SequenceSet["5:1"].normalized? #=> false, backwards range + # + # Returns +true+ if (and only if) #string is equal to #normalized_string: + # seqset = Net::IMAP::SequenceSet["1:3,5"] + # seqset.string #=> "1:3,5" + # seqset.normalized_string #=> "1:3,5" + # seqset.entries #=> [1..3, 5] + # seqset.elements #=> [1..3, 5] + # seqset.normalized? #=> true + # + # seqset = Net::IMAP::SequenceSet["3,1,2"] + # seqset.string #=> "3,1,2" + # seqset.normalized_string #=> "1:3" + # seqset.entries #=> [3, 1, 2] + # seqset.elements #=> [1..3] + # seqset.normalized? #=> false + # + # Can return +false+ even when #entries and #elements are the same: + # seqset = Net::IMAP::SequenceSet["5:1"] + # seqset.string #=> "5:1" + # seqset.normalized_string #=> "1:5" + # seqset.entries #=> [1..5] + # seqset.elements #=> [1..5] + # seqset.normalized? #=> false + # + # Note that empty sets are normalized, even though they are not #valid?: + # seqset = Net::IMAP::SequenceSet.empty + # seqset.normalized? #=> true + # seqset.valid? #=> false + # + # Related: #normalize, #normalize!, #normalized_string + # + # @return [Boolean] + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:1736 + def normalized?; end + + # Returns a normalized +sequence-set+ string representation, sorted + # and deduplicated. Adjacent or overlapping elements will be merged into + # a single larger range. See SequenceSet@Ordered+and+Normalized+sets. + # + # Net::IMAP::SequenceSet["1:5,3:7,10:9,10:11"].normalized_string + # #=> "1:7,9:11" + # + # Returns +nil+ when the set is empty. + # + # Related: #normalize!, #normalize, #string, #to_s, #normalized? + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:1775 + def normalized_string; end + + # Returns a sorted array of all of the number values in the sequence set. + # + # The returned numbers are sorted and de-duplicated, even when the input + # #string is not. See #normalize, SequenceSet@Ordered+and+Normalized+sets. + # + # Net::IMAP::SequenceSet["2,5:9,6,12:11"].numbers + # #=> [2, 5, 6, 7, 8, 9, 11, 12] + # + # If the set contains a *, RangeError is raised. See #limit. + # + # Net::IMAP::SequenceSet["10000:*"].numbers + # #!> RangeError + # + # *WARNING:* Even excluding sets with *, an enormous result can + # easily be created. An array with over 4 billion integers could be + # returned, requiring up to 32GiB of memory on a 64-bit architecture. + # + # Net::IMAP::SequenceSet[10000..2**32-1].numbers + # # ...probably freezes the process for a while... + # #!> NoMemoryError (probably) + # + # For safety, consider using #limit or #intersection to set an upper + # bound. Alternatively, use #each_element, #each_range, or even + # #each_number to avoid allocation of a result array. + # + # Related: #elements, #ranges, #to_set + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:1247 + def numbers; end + + # :call-seq: ordered_at(index) -> integer or nil + # + # Returns the number at the given +index+ in the ordered #entries, without + # modifying the set. + # + # +index+ is interpreted the same as in #at (and #[]), except that + # #ordered_at applies to the ordered #entries, not the sorted set. + # + # Related: #[], #slice, #ordered_at + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:1497 + def ordered_at(index); end + + # Returns +true+ if the set and a given object have any common elements, + # +false+ otherwise. + # + # Net::IMAP::SequenceSet["5:10"].intersect? "7,9,11" #=> true + # Net::IMAP::SequenceSet["5:10"].intersect? "11:33" #=> false + # + # Related: #intersection, #disjoint?, #cover?, #include? + # + # @return [Boolean] + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:764 + def overlap?(other); end + + # Returns an array of ranges + # + # The returned elements are sorted and coalesced, even when the input + # #string is not. * will sort last. See #normalize, + # SequenceSet@Ordered+and+Normalized+sets. + # + # * translates to an endless range. By itself, * + # translates to :*... Use #limit to set * to a maximum + # value. + # + # Net::IMAP::SequenceSet["2,5:9,6,*,12:11"].ranges + # #=> [2..2, 5..9, 11..12, :*..] + # Net::IMAP::SequenceSet["123,999:*,456:789"].ranges + # #=> [123..123, 456..789, 999..] + # + # Related: #each_range, #elements, #numbers, #to_set + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:1219 + def ranges; end + + # Replace the contents of the set with the contents of +other+ and returns + # +self+. + # + # +other+ may be another SequenceSet or any other object that would be + # accepted by ::new. + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:577 + def replace(other); end + + # Unstable API: for internal use only (Net::IMAP#send_data) + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:1842 + def send_data(imap, tag); end + + # Returns the combined size of the ordered #entries, including any + # repeated numbers. + # + # When #string is normalized, this returns the same as #cardinality. + # Like #cardinality, "*" is considered to be be distinct from + # 2³² - 1 (the maximum 32-bit unsigned integer value). + # + # set = Net::IMAP::SequenceSet["4294967295:*"] + # set.size #=> 2 + # set.count_with_duplicates #=> 1 + # set.count #=> 1 + # set.cardinality #=> 2 + # + # set = Net::IMAP::SequenceSet["4294967295,*"] + # set.size #=> 2 + # set.count_with_duplicates #=> 2 + # set.count #=> 1 + # set.cardinality #=> 2 + # + # Related: #cardinality, #count_with_duplicates, #count, #entries + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:1420 + def size; end + + # :call-seq: + # seqset[index] -> integer or :* or nil + # slice(index) -> integer or :* or nil + # seqset[start, length] -> sequence set or nil + # slice(start, length) -> sequence set or nil + # seqset[range] -> sequence set or nil + # slice(range) -> sequence set or nil + # + # Returns a number or a subset from the _sorted_ set, without modifying + # the set. + # + # When an Integer argument +index+ is given, the number at offset +index+ + # in the sorted set is returned: + # + # set = Net::IMAP::SequenceSet["10:15,20:23,26"] + # set[0] #=> 10 + # set[5] #=> 15 + # set[10] #=> 26 + # + # If +index+ is negative, it counts relative to the end of the sorted set: + # set = Net::IMAP::SequenceSet["10:15,20:23,26"] + # set[-1] #=> 26 + # set[-3] #=> 22 + # set[-6] #=> 15 + # + # If +index+ is out of range, +nil+ is returned. + # + # set = Net::IMAP::SequenceSet["10:15,20:23,26"] + # set[11] #=> nil + # set[-12] #=> nil + # + # The result is based on the sorted and de-duplicated set, not on the + # ordered #entries in #string. + # + # set = Net::IMAP::SequenceSet["12,20:23,11:16,21"] + # set[0] #=> 11 + # set[-1] #=> 23 + # + # Related: #at + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:1547 + def slice(index, length = T.unsafe(nil)); end + + # :call-seq: + # slice!(index) -> integer or :* or nil + # slice!(start, length) -> sequence set or nil + # slice!(range) -> sequence set or nil + # + # Deletes a number or consecutive numbers from the set, indicated by the + # given +index+, +start+ and +length+, or +range+ of offsets. Returns the + # number or sequence set that was removed, or +nil+ if nothing was + # removed. Arguments are interpreted the same as for #slice or #[]. + # + # #string will be regenerated after deletion. + # + # Related: #slice, #delete_at, #delete, #delete?, #subtract, #difference + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:1141 + def slice!(index, length = T.unsafe(nil)); end + + # Returns the \IMAP +sequence-set+ string representation, or +nil+ when + # the set is empty. Note that an empty set is invalid in the \IMAP + # syntax. + # + # Use #valid_string to raise an exception when the set is empty, or #to_s + # to return an empty string. + # + # If the set was created from a single string, it is not normalized. If + # the set is updated the string will be normalized. + # + # Related: #valid_string, #normalized_string, #to_s, #inspect + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:612 + def string; end + + # Assigns a new string to #string and resets #elements to match. + # Assigning +nil+ or an empty string are equivalent to calling #clear. + # + # Non-empty strings are validated but not normalized. + # + # Use #add, #merge, or #append to add a string to an existing set. + # + # Related: #replace, #clear + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:626 + def string=(input); end + + # In-place set #difference. Removes all of the elements that appear in + # any of the given +sets+ from this set, and returns +self+. + # + # The +sets+ may be any objects that would be accepted by ::new. + # + # Related: #difference + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:1167 + def subtract(*sets); end + + # Returns an array of ranges and integers and :*. + # + # The returned elements are sorted and coalesced, even when the input + # #string is not. * will sort last. See #normalize, + # SequenceSet@Ordered+and+Normalized+sets. + # + # By itself, * translates to :*. A range containing + # * translates to an endless range. Use #limit to translate both + # cases to a maximum value. + # + # Net::IMAP::SequenceSet["2,5:9,6,*,12:11"].elements + # #=> [2, 5..9, 11..12, :*] + # + # Related: #each_element, #ranges, #numbers + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:1201 + def to_a; end + + # Returns the \IMAP +sequence-set+ string representation, or an empty + # string when the set is empty. Note that an empty set is invalid in the + # \IMAP syntax. + # + # Related: #string, #valid_string, #normalized_string, #inspect + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:650 + def to_s; end + + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:1833 + def to_sequence_set; end + + # Returns a Set with all of the #numbers in the sequence set. + # + # If the set contains a *, RangeError will be raised. + # + # See #numbers for the warning about very large sets. + # + # Related: #elements, #ranges, #numbers + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:1326 + def to_set; end + + # :call-seq: + # self + other -> sequence set + # self | other -> sequence set + # union(other) -> sequence set + # + # Returns a new sequence set that has every number in the +other+ object + # added. + # + # +other+ may be any object that would be accepted by ::new. + # + # Net::IMAP::SequenceSet["1:5"] | 2 | [4..6, 99] + # #=> Net::IMAP::SequenceSet["1:6,99"] + # + # Related: #add, #merge, #&, #-, #^, #~ + # + # ==== Set identities + # + # lhs | rhs is equivalent to: + # * rhs | lhs (commutative) + # * ~(~lhs & ~rhs) (De Morgan's Law) + # * (lhs & rhs) ^ (lhs ^ rhs) + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:862 + def union(other); end + + # Returns false when the set is empty. + # + # @return [Boolean] + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:831 + def valid?; end + + # Returns the \IMAP +sequence-set+ string representation, or raises a + # DataFormatError when the set is empty. + # + # Use #string to return +nil+ or #to_s to return an empty string without + # error. + # + # Related: #string, #normalized_string, #to_s + # + # @raise [DataFormatError] + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:596 + def valid_string; end + + # Unstable API: currently for internal use only (Net::IMAP#validate_data) + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:1836 + def validate; end + + # :call-seq: + # self ^ other -> sequence set + # xor(other) -> sequence set + # + # Returns a new sequence set containing numbers that are exclusive between + # this set and +other+. + # + # +other+ may be any object that would be accepted by ::new. + # + # Net::IMAP::SequenceSet[1..5] ^ [2, 4, 6] + # #=> Net::IMAP::SequenceSet["1,3,5:6"] + # + # Related: #|, #&, #-, #~ + # + # ==== Set identities + # + # lhs ^ rhs is equivalent to: + # * rhs ^ lhs (commutative) + # * ~lhs ^ ~rhs + # * (lhs | rhs) - (lhs & rhs) + # * (lhs - rhs) | (rhs - lhs) + # * (lhs ^ other) ^ (other ^ rhs) + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:939 + def xor(other); end + + # In-place set #xor. Adds any numbers in +other+ that are missing from + # this set, removes any numbers in +other+ that are already in this set, + # and returns +self+. + # + # +other+ can be any object that would be accepted by ::new. + # + # set = Net::IMAP::SequenceSet.new(1..5) + # set.xor! [2, 4, 6] + # set #=> Net::IMAP::SequenceSet["1,3,5:6"] + # + # Related: #xor, #merge, #subtract + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:1686 + def xor!(other); end + + # :call-seq: + # self + other -> sequence set + # self | other -> sequence set + # union(other) -> sequence set + # + # Returns a new sequence set that has every number in the +other+ object + # added. + # + # +other+ may be any object that would be accepted by ::new. + # + # Net::IMAP::SequenceSet["1:5"] | 2 | [4..6, 99] + # #=> Net::IMAP::SequenceSet["1:6,99"] + # + # Related: #add, #merge, #&, #-, #^, #~ + # + # ==== Set identities + # + # lhs | rhs is equivalent to: + # * rhs | lhs (commutative) + # * ~(~lhs & ~rhs) (De Morgan's Law) + # * (lhs & rhs) ^ (lhs ^ rhs) + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:860 + def |(other); end + + # :call-seq: + # ~ self -> sequence set + # complement -> sequence set + # + # Returns the complement of self, a SequenceSet which contains all numbers + # _except_ for those in this set. + # + # ~Net::IMAP::SequenceSet.full #=> Net::IMAP::SequenceSet.empty + # ~Net::IMAP::SequenceSet.empty #=> Net::IMAP::SequenceSet.full + # ~Net::IMAP::SequenceSet["1:5,100:222"] + # #=> Net::IMAP::SequenceSet["6:99,223:*"] + # ~Net::IMAP::SequenceSet["6:99,223:*"] + # #=> Net::IMAP::SequenceSet["1:5,100:222"] + # + # Related: #complement!, #|, #&, #-, #^ + # + # ==== Set identities + # + # ~set is equivalent to: + # * full - set, where "full" is Net::IMAP::SequenceSet.full + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:961 + def ~; end + + protected + + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:2107 + def dup_set_data; end + + # Returns the value of attribute set_data. + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:1864 + def minmaxes; end + + # Returns the value of attribute set_data. + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:1863 + def runs; end + + # Returns the value of attribute set_data. + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:1861 + def set_data; end + + private + + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:2175 + def add_coalesced_minmax(lower_idx, lmin, lmax, min, max); end + + # --|=====| |=====new run=======| append + # ?????????-|=====new run=======|-|===lower===|-- insert + # + # |=====new run=======| + # ---------??=======lower=======??--------------- noop + # + # ---------??===lower==|--|==| join remaining + # ---------??===lower==|--|==|----|===upper===|-- join until upper + # ---------??===lower==|--|==|--|=====upper===|-- join to upper + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:2164 + def add_minmax(minmax); end + + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:2140 + def add_minmaxes(minmaxes); end + + # --|=====| |=====new run=======| append + # ?????????-|=====new run=======|-|===lower===|-- insert + # + # |=====new run=======| + # ---------??=======lower=======??--------------- noop + # + # ---------??===lower==|--|==| join remaining + # ---------??===lower==|--|==|----|===upper===|-- join until upper + # ---------??===lower==|--|==|--|=====upper===|-- join to upper + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:2242 + def add_run(minmax); end + + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:2241 + def add_runs(minmaxes); end + + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:2125 + def append_minmax(min, max); end + + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:2035 + def bsearch_index(num); end + + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:2036 + def bsearch_minmax(num); end + + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:2037 + def bsearch_range(num); end + + # {{{2 + # Ordered entry methods + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:2007 + def count_entries; end + + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:2127 + def delete_run_at(idx); end + + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:2011 + def each_entry_minmax(&block); end + + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:2020 + def each_entry_run(&block); end + + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:2056 + def each_minmax_with_index(minmaxes); end + + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:1965 + def each_number_in_minmax(min, max, &block); end + + # yields validated but unsorted [num] or [num, num] + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:1987 + def each_parsed_entry(str); end + + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:1951 + def export_minmax(minmax); end + + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:1956 + def export_minmax_entry(_arg0); end + + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:1947 + def export_minmaxes(minmaxes); end + + # {{{2 + # Export methods + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:1945 + def export_num(num); end + + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:1954 + def export_run(minmax); end + + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:1963 + def export_run_entry(_arg0); end + + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:1953 + def export_runs(minmaxes); end + + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:2106 + def freeze_set_data; end + + # {{{2 + # Import methods + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:1885 + def import_minmax(input); end + + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:1939 + def import_num(obj); end + + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:1929 + def import_range_minmax(range); end + + # {{{2 + # Import methods + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:1895 + def import_run(input); end + + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:1897 + def import_runs(input); end + + # {{{2 + # Search methods + # + # @return [Boolean] + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:2025 + def include_minmax?(_arg0); end + + # {{{2 + # Search methods + # + # @return [Boolean] + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:2032 + def include_run?(_arg0); end + + # frozen clones are shallow copied + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:1872 + def initialize_clone(other); end + + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:1877 + def initialize_dup(other); end + + # unlike SequenceSet#try_convert, this returns an Integer, Range, + # String, Set, Array, or... any type of object. + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:1914 + def input_try_convert(input); end + + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:2126 + def insert_minmax(idx, min, max); end + + # @return [Boolean] + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:2027 + def intersect_minmax?(_arg0); end + + # @return [Boolean] + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:2033 + def intersect_run?(_arg0); end + + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:2117 + def max_at(idx); end + + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:2114 + def max_num; end + + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:2116 + def min_at(idx); end + + # {{{2 + # Core set data query/enumeration primitives + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:2113 + def min_num; end + + # {{{2 + # Update methods + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:2134 + def modifying!; end + + # {{{2 + # Core set data create/freeze/dup primitives + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:2105 + def new_set_data; end + + # @return [Boolean] + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:1992 + def normal_string?(str); end + + # @return [Boolean] + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:1994 + def normalized_entries?(entries); end + + # NOTE: input_try_convert must be called on input first + # + # @return [Boolean] + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:1922 + def number_input?(input); end + + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:1940 + def nz_number(num); end + + # @raise [DataFormatError] + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:1981 + def parse_entry(str); end + + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:1978 + def parse_minmax(str); end + + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:1979 + def parse_run(str); end + + # {{{2 + # Parse methods + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:1977 + def parse_runs(str); end + + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:1868 + def remain_frozen(set); end + + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:1869 + def remain_frozen_empty; end + + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:2124 + def replace_minmaxes(other); end + + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:2066 + def reverse_each_minmax_with_index(minmaxes); end + + # {{{2 + # Number indexing methods + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:2042 + def seek_number_in_minmaxes(minmaxes, index); end + + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:2123 + def set_max_at(idx, max); end + + # {{{2 + # Core set data modification primitives + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:2122 + def set_min_at(idx, min); end + + # @raise [ArgumentError] + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:2075 + def slice_length(start, length); end + + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:2083 + def slice_range(range); end + + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:2128 + def slice_runs!(*_arg0, **_arg1, &_arg2); end + + # |====subtracted run=======| + # --|====| no more 1. noop + # --|====|---------------------------|====lower====|-- 2. noop + # -------|======lower================|---------------- 3. split + # --------|=====lower================|---------------- 4. trim beginning + # + # -------|======lower====????????????----------------- trim lower + # --------|=====lower====????????????----------------- delete lower + # + # -------??=====lower===============|----------------- 5. trim/delete one + # -------??=====lower====|--|====| no more 6. delete rest + # -------??=====lower====|--|====|---|====upper====|-- 7. delete until + # -------??=====lower====|--|====|--|=====upper====|-- 8. delete and trim + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:2205 + def subtract_minmax(minmax); end + + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:2147 + def subtract_minmaxes(minmaxes); end + + # |====subtracted run=======| + # --|====| no more 1. noop + # --|====|---------------------------|====lower====|-- 2. noop + # -------|======lower================|---------------- 3. split + # --------|=====lower================|---------------- 4. trim beginning + # + # -------|======lower====????????????----------------- trim lower + # --------|=====lower====????????????----------------- delete lower + # + # -------??=====lower===============|----------------- 5. trim/delete one + # -------??=====lower====|--|====| no more 6. delete rest + # -------??=====lower====|--|====|---|====upper====|-- 7. delete until + # -------??=====lower====|--|====|--|=====upper====|-- 8. delete and trim + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:2244 + def subtract_run(minmax); end + + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:2243 + def subtract_runs(minmaxes); end + + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:2224 + def trim_or_delete_minmax(lower_idx, lmin, lmax, tmin, tmax); end + + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:2217 + def trim_or_split_minmax(idx, lmin, tmin, tmax); end + + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:2129 + def truncate_runs!(idx); end + + class << self + # :call-seq: + # SequenceSet[*inputs] -> valid frozen sequence set + # + # Returns a frozen SequenceSet, constructed from +inputs+. + # + # When only a single valid frozen SequenceSet is given, that same set is + # returned. + # + # An empty SequenceSet is invalid and will raise a DataFormatError. + # + # Use ::new to create a mutable or empty SequenceSet. + # + # Related: ::new, Net::IMAP::SequenceSet(), ::try_convert + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:455 + def [](first, *rest); end + + # Returns a frozen empty set singleton. Note that valid \IMAP sequence + # sets cannot be empty, so this set is _invalid_. + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:485 + def empty; end + + # Returns a frozen full set singleton: "1:*" + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:488 + def full; end + + # :call-seq: + # SequenceSet.try_convert(obj) -> sequence set or nil + # + # If +obj+ is a SequenceSet, returns +obj+. If +obj+ responds_to + # +to_sequence_set+, calls +obj.to_sequence_set+ and returns the result. + # Otherwise returns +nil+. + # + # If +obj.to_sequence_set+ doesn't return a SequenceSet or +nil+, an + # exception is raised. + # + # Related: Net::IMAP::SequenceSet(), ::new, ::[] + # + # @raise [DataFormatError] + # + # pkg:gem/net-imap#lib/net/imap/sequence_set.rb:475 + def try_convert(obj); end + end +end + +# pkg:gem/net-imap#lib/net/imap/sequence_set.rb:2252 +Net::IMAP::SequenceSet::EMPTY = T.let(T.unsafe(nil), Net::IMAP::SequenceSet) + +# pkg:gem/net-imap#lib/net/imap/sequence_set.rb:2253 +Net::IMAP::SequenceSet::FULL = T.let(T.unsafe(nil), Net::IMAP::SequenceSet) + +# {{{2 +# intentionally defined after the class implementation +# +# pkg:gem/net-imap#lib/net/imap/sequence_set.rb:2249 +Net::IMAP::SequenceSet::FULL_SET_DATA = T.let(T.unsafe(nil), Array) + +# pkg:gem/net-imap#lib/net/imap/sequence_set.rb:436 +Net::IMAP::SequenceSet::INSPECT_ABRIDGED_HEAD_RE = T.let(T.unsafe(nil), Regexp) + +# pkg:gem/net-imap#lib/net/imap/sequence_set.rb:437 +Net::IMAP::SequenceSet::INSPECT_ABRIDGED_TAIL_RE = T.let(T.unsafe(nil), Regexp) + +# pkg:gem/net-imap#lib/net/imap/sequence_set.rb:423 +Net::IMAP::SequenceSet::INSPECT_MAX_LEN = T.let(T.unsafe(nil), Integer) + +# pkg:gem/net-imap#lib/net/imap/sequence_set.rb:424 +Net::IMAP::SequenceSet::INSPECT_TRUNCATE_LEN = T.let(T.unsafe(nil), Integer) + +# valid inputs for "*" +# +# pkg:gem/net-imap#lib/net/imap/sequence_set.rb:420 +Net::IMAP::SequenceSet::STARS = T.let(T.unsafe(nil), Array) + +# represents "*" internally, to simplify sorting (etc) +# +# pkg:gem/net-imap#lib/net/imap/sequence_set.rb:416 +Net::IMAP::SequenceSet::STAR_INT = T.let(T.unsafe(nil), Integer) + +# The largest possible non-zero unsigned 32-bit integer +# +# pkg:gem/net-imap#lib/net/imap/sequence_set.rb:413 +Net::IMAP::SequenceSet::UINT32_MAX = T.let(T.unsafe(nil), Integer) + +# pkg:gem/net-imap#lib/net/imap/command_data.rb:218 +module Net::IMAP::StringFormatter + private + + # pkg:gem/net-imap#lib/net/imap/command_data.rb:245 + def nstring(str); end + + # pkg:gem/net-imap#lib/net/imap/command_data.rb:235 + def string(str); end + + # pkg:gem/net-imap#lib/net/imap/command_data.rb:230 + def valid_nstring?(str); end + + # pkg:gem/net-imap#lib/net/imap/command_data.rb:225 + def valid_string?(str); end + + class << self + # pkg:gem/net-imap#lib/net/imap/command_data.rb:245 + def nstring(str); end + + # pkg:gem/net-imap#lib/net/imap/command_data.rb:235 + def string(str); end + + # pkg:gem/net-imap#lib/net/imap/command_data.rb:230 + def valid_nstring?(str); end + + # pkg:gem/net-imap#lib/net/imap/command_data.rb:225 + def valid_string?(str); end + end +end + +# pkg:gem/net-imap#lib/net/imap/command_data.rb:220 +Net::IMAP::StringFormatter::LITERAL_REGEX = T.let(T.unsafe(nil), Regexp) + +# Regexps and utility methods for implementing stringprep profiles. The +# \StringPrep algorithm is defined by +# {RFC-3454}[https://www.rfc-editor.org/rfc/rfc3454.html]. Each +# codepoint table defined in the RFC-3454 appendices is matched by a Regexp +# defined in this module. +# +# pkg:gem/net-imap#lib/net/imap/stringprep.rb:11 +module Net::IMAP::StringPrep + private + + # Checks that +string+ obeys all of the "Bidirectional Characters" + # requirements in RFC-3454, §6: + # + # * The characters in \StringPrep\[\"C.8\"] MUST be prohibited + # * If a string contains any RandALCat character, the string MUST NOT + # contain any LCat character. + # * If a string contains any RandALCat character, a RandALCat + # character MUST be the first character of the string, and a + # RandALCat character MUST be the last character of the string. + # + # This is usually combined with #check_prohibited!, so table "C.8" is only + # checked when c_8: true. + # + # Raises either ProhibitedCodepoint or BidiStringError unless all + # requirements are met. +profile+ is an optional string which will be + # added to any exception that is raised (it does not affect behavior). + # + # pkg:gem/net-imap#lib/net/imap/stringprep.rb:144 + def check_bidi!(string, c_8: T.unsafe(nil), profile: T.unsafe(nil)); end + + # Checks +string+ for any codepoint in +tables+. Raises a + # ProhibitedCodepoint describing the first matching table. + # + # Also checks bidirectional characters, when bidi: true, which may + # raise a BidiStringError. + # + # +profile+ is an optional string which will be added to any exception that + # is raised (it does not affect behavior). + # + # pkg:gem/net-imap#lib/net/imap/stringprep.rb:104 + def check_prohibited!(string, *tables, bidi: T.unsafe(nil), unassigned: T.unsafe(nil), stored: T.unsafe(nil), profile: T.unsafe(nil)); end + + # pkg:gem/net-imap#lib/net/imap/stringprep.rb:88 + def map_tables!(string, *tables); end + + # >>> + # 1. Map -- For each character in the input, check if it has a mapping + # and, if so, replace it with its mapping. This is described in + # section 3. + # + # 2. Normalize -- Possibly normalize the result of step 1 using Unicode + # normalization. This is described in section 4. + # + # 3. Prohibit -- Check for any characters that are not allowed in the + # output. If any are found, return an error. This is described in + # section 5. + # + # 4. Check bidi -- Possibly check for right-to-left characters, and if + # any are found, make sure that the whole string satisfies the + # requirements for bidirectional strings. If the string does not + # satisfy the requirements for bidirectional strings, return an + # error. This is described in section 6. + # + # The above steps MUST be performed in the order given to comply with + # this specification. + # + # pkg:gem/net-imap#lib/net/imap/stringprep.rb:76 + def stringprep(string, maps:, normalization:, prohibited:, **opts); end + + class << self + # Returns a Regexp matching the given +table+ name. + # + # pkg:gem/net-imap#lib/net/imap/stringprep.rb:49 + def [](table); end + + # Checks that +string+ obeys all of the "Bidirectional Characters" + # requirements in RFC-3454, §6: + # + # * The characters in \StringPrep\[\"C.8\"] MUST be prohibited + # * If a string contains any RandALCat character, the string MUST NOT + # contain any LCat character. + # * If a string contains any RandALCat character, a RandALCat + # character MUST be the first character of the string, and a + # RandALCat character MUST be the last character of the string. + # + # This is usually combined with #check_prohibited!, so table "C.8" is only + # checked when c_8: true. + # + # Raises either ProhibitedCodepoint or BidiStringError unless all + # requirements are met. +profile+ is an optional string which will be + # added to any exception that is raised (it does not affect behavior). + # + # pkg:gem/net-imap#lib/net/imap/stringprep.rb:144 + def check_bidi!(string, c_8: T.unsafe(nil), profile: T.unsafe(nil)); end + + # Checks +string+ for any codepoint in +tables+. Raises a + # ProhibitedCodepoint describing the first matching table. + # + # Also checks bidirectional characters, when bidi: true, which may + # raise a BidiStringError. + # + # +profile+ is an optional string which will be added to any exception that + # is raised (it does not affect behavior). + # + # pkg:gem/net-imap#lib/net/imap/stringprep.rb:104 + def check_prohibited!(string, *tables, bidi: T.unsafe(nil), unassigned: T.unsafe(nil), stored: T.unsafe(nil), profile: T.unsafe(nil)); end + + # pkg:gem/net-imap#lib/net/imap/stringprep.rb:88 + def map_tables!(string, *tables); end + + # >>> + # 1. Map -- For each character in the input, check if it has a mapping + # and, if so, replace it with its mapping. This is described in + # section 3. + # + # 2. Normalize -- Possibly normalize the result of step 1 using Unicode + # normalization. This is described in section 4. + # + # 3. Prohibit -- Check for any characters that are not allowed in the + # output. If any are found, return an error. This is described in + # section 5. + # + # 4. Check bidi -- Possibly check for right-to-left characters, and if + # any are found, make sure that the whole string satisfies the + # requirements for bidirectional strings. If the string does not + # satisfy the requirements for bidirectional strings, return an + # error. This is described in section 6. + # + # The above steps MUST be performed in the order given to comply with + # this specification. + # + # pkg:gem/net-imap#lib/net/imap/stringprep.rb:76 + def stringprep(string, maps:, normalization:, prohibited:, **opts); end + end +end + +# StringPrepError raised when +string+ contains bidirectional characters +# which violate the StringPrep requirements. +# +# pkg:gem/net-imap#lib/net/imap/stringprep.rb:45 +class Net::IMAP::StringPrep::BidiStringError < ::Net::IMAP::StringPrep::StringPrepError; end + +# Defined in RFC3491[https://www.rfc-editor.org/rfc/rfc3491], the +nameprep+ +# profile of "Stringprep" is: +# >>> +# used by the IDNA protocol for preparing domain names; it is not +# designed for any other purpose. It is explicitly not designed for +# processing arbitrary free text and SHOULD NOT be used for that +# purpose. +# +# ... +# +# This profile specifies prohibiting using the following tables...: +# +# - C.1.2 (Non-ASCII space characters) +# - C.2.2 (Non-ASCII control characters) +# - C.3 (Private use characters) +# - C.4 (Non-character code points) +# - C.5 (Surrogate codes) +# - C.6 (Inappropriate for plain text) +# - C.7 (Inappropriate for canonical representation) +# - C.8 (Change display properties are deprecated) +# - C.9 (Tagging characters) +# +# IMPORTANT NOTE: This profile MUST be used with the IDNA protocol. +# The IDNA protocol has additional prohibitions that are checked +# outside of this profile. +# +# pkg:gem/net-imap#lib/net/imap/stringprep/nameprep.rb:32 +module Net::IMAP::StringPrep::NamePrep + private + + # pkg:gem/net-imap#lib/net/imap/stringprep/nameprep.rb:54 + def nameprep(string, **opts); end + + class << self + # pkg:gem/net-imap#lib/net/imap/stringprep/nameprep.rb:54 + def nameprep(string, **opts); end + end +end + +# From RFC3491[https://www.rfc-editor.org/rfc/rfc3491.html] §6 +# +# pkg:gem/net-imap#lib/net/imap/stringprep/nameprep.rb:50 +Net::IMAP::StringPrep::NamePrep::CHECK_BIDI = T.let(T.unsafe(nil), TrueClass) + +# From RFC3491[https://www.rfc-editor.org/rfc/rfc3491.html] §3 +# +# pkg:gem/net-imap#lib/net/imap/stringprep/nameprep.rb:41 +Net::IMAP::StringPrep::NamePrep::MAPPING_TABLES = T.let(T.unsafe(nil), Array) + +# From RFC3491[https://www.rfc-editor.org/rfc/rfc3491.html] §4 +# +# pkg:gem/net-imap#lib/net/imap/stringprep/nameprep.rb:44 +Net::IMAP::StringPrep::NamePrep::NORMALIZATION = T.let(T.unsafe(nil), Symbol) + +# From RFC3491[https://www.rfc-editor.org/rfc/rfc3491.html] §5 +# +# pkg:gem/net-imap#lib/net/imap/stringprep/nameprep.rb:47 +Net::IMAP::StringPrep::NamePrep::PROHIBITED_TABLES = T.let(T.unsafe(nil), Array) + +# From RFC3491[https://www.rfc-editor.org/rfc/rfc3491.html] §10 +# +# pkg:gem/net-imap#lib/net/imap/stringprep/nameprep.rb:35 +Net::IMAP::StringPrep::NamePrep::STRINGPREP_PROFILE = T.let(T.unsafe(nil), String) + +# From RFC3491[https://www.rfc-editor.org/rfc/rfc3491.html] §2 +# +# pkg:gem/net-imap#lib/net/imap/stringprep/nameprep.rb:38 +Net::IMAP::StringPrep::NamePrep::UNASSIGNED_TABLE = T.let(T.unsafe(nil), String) + +# StringPrepError raised when +string+ contains a codepoint prohibited by +# +table+. +# +# pkg:gem/net-imap#lib/net/imap/stringprep.rb:31 +class Net::IMAP::StringPrep::ProhibitedCodepoint < ::Net::IMAP::StringPrep::StringPrepError + # @return [ProhibitedCodepoint] a new instance of ProhibitedCodepoint + # + # pkg:gem/net-imap#lib/net/imap/stringprep.rb:34 + def initialize(table, *args, **kwargs); end + + # Returns the value of attribute table. + # + # pkg:gem/net-imap#lib/net/imap/stringprep.rb:32 + def table; end +end + +# SASLprep#saslprep can be used to prepare a string according to [RFC4013]. +# +# \SASLprep maps characters three ways: to nothing, to space, and Unicode +# normalization form KC. \SASLprep prohibits codepoints from nearly all +# standard StringPrep tables (RFC3454, Appendix "C"), and uses +# \StringPrep's standard bidirectional characters requirements (Appendix +# "D"). \SASLprep also uses \StringPrep's definition of "Unassigned" +# codepoints (Appendix "A"). +# +# pkg:gem/net-imap#lib/net/imap/stringprep/saslprep.rb:15 +module Net::IMAP::StringPrep::SASLprep + private + + # Prepares a UTF-8 +string+ for comparison, using the \SASLprep profile + # RFC4013 of the StringPrep algorithm RFC3454. + # + # By default, prohibited strings will return +nil+. When +exception+ is + # +true+, a StringPrepError describing the violation will be raised. + # + # When +stored+ is +true+, "unassigned" codepoints will be prohibited. + # For \StringPrep and the \SASLprep profile, "unassigned" refers to + # Unicode 3.2, and not later versions. See RFC3454 §7 for more + # information. + # + # pkg:gem/net-imap#lib/net/imap/stringprep/saslprep.rb:42 + def saslprep(str, stored: T.unsafe(nil), exception: T.unsafe(nil)); end + + class << self + # Prepares a UTF-8 +string+ for comparison, using the \SASLprep profile + # RFC4013 of the StringPrep algorithm RFC3454. + # + # By default, prohibited strings will return +nil+. When +exception+ is + # +true+, a StringPrepError describing the violation will be raised. + # + # When +stored+ is +true+, "unassigned" codepoints will be prohibited. + # For \StringPrep and the \SASLprep profile, "unassigned" refers to + # Unicode 3.2, and not later versions. See RFC3454 §7 for more + # information. + # + # pkg:gem/net-imap#lib/net/imap/stringprep/saslprep.rb:42 + def saslprep(str, stored: T.unsafe(nil), exception: T.unsafe(nil)); end + end +end + +# Used to short-circuit strings that don't need preparation. +# +# pkg:gem/net-imap#lib/net/imap/stringprep/saslprep.rb:18 +Net::IMAP::StringPrep::SASLprep::ASCII_NO_CTRLS = T.let(T.unsafe(nil), Regexp) + +# Bidirectional Characters [StringPrep, §6] +# +# A Regexp for strings that don't satisfy StringPrep's Bidirectional +# Characters rules. +# +# Equal to StringPrep::Tables::BIDI_FAILURE. +# Redefined here to avoid loading StringPrep::Tables unless necessary. +# +# pkg:gem/net-imap#lib/net/imap/stringprep/saslprep_tables.rb:79 +Net::IMAP::StringPrep::SASLprep::BIDI_FAILURE = T.let(T.unsafe(nil), Regexp) + +# RFC4013 §2.1 Mapping - mapped to nothing +# >>> +# the "commonly mapped to nothing" characters +# (\StringPrep\[\"B.1\"]) that can be mapped to nothing. +# +# Equal to \StringPrep\[\"B.1\"]. +# Redefined here to avoid loading StringPrep::Tables unless necessary. +# +# pkg:gem/net-imap#lib/net/imap/stringprep/saslprep_tables.rb:27 +Net::IMAP::StringPrep::SASLprep::MAP_TO_NOTHING = T.let(T.unsafe(nil), Regexp) + +# RFC4013 §2.1 Mapping - mapped to space +# >>> +# non-ASCII space characters (\StringPrep\[\"C.1.2\"]) that can +# be mapped to SPACE (U+0020) +# +# Equal to \StringPrep\[\"C.1.2\"]. +# Redefined here to avoid loading StringPrep::Tables unless necessary. +# +# pkg:gem/net-imap#lib/net/imap/stringprep/saslprep_tables.rb:18 +Net::IMAP::StringPrep::SASLprep::MAP_TO_SPACE = T.let(T.unsafe(nil), Regexp) + +# A Regexp matching strings prohibited by RFC4013 §2.3 and §2.4. +# +# This combines PROHIBITED_OUTPUT and BIDI_FAILURE. +# +# pkg:gem/net-imap#lib/net/imap/stringprep/saslprep_tables.rb:84 +Net::IMAP::StringPrep::SASLprep::PROHIBITED = T.let(T.unsafe(nil), Regexp) + +# A Regexp matching codepoints prohibited by RFC4013 §2.3. +# +# This combines all of the TABLES_PROHIBITED tables. +# +# pkg:gem/net-imap#lib/net/imap/stringprep/saslprep_tables.rb:54 +Net::IMAP::StringPrep::SASLprep::PROHIBITED_OUTPUT = T.let(T.unsafe(nil), Regexp) + +# A Regexp matching codepoints prohibited by RFC4013 §2.3 and §2.5. +# +# This combines PROHIBITED_OUTPUT and UNASSIGNED. +# +# pkg:gem/net-imap#lib/net/imap/stringprep/saslprep_tables.rb:68 +Net::IMAP::StringPrep::SASLprep::PROHIBITED_OUTPUT_STORED = T.let(T.unsafe(nil), Regexp) + +# A Regexp matching strings prohibited by RFC4013 §2.3, §2.4, and §2.5. +# +# This combines PROHIBITED_OUTPUT_STORED and BIDI_FAILURE. +# +# pkg:gem/net-imap#lib/net/imap/stringprep/saslprep_tables.rb:91 +Net::IMAP::StringPrep::SASLprep::PROHIBITED_STORED = T.let(T.unsafe(nil), Regexp) + +# RFC4013 §2.3 Prohibited Output +# >>> +# * Non-ASCII space characters — \StringPrep\[\"C.1.2\"] +# * ASCII control characters — \StringPrep\[\"C.2.1\"] +# * Non-ASCII control characters — \StringPrep\[\"C.2.2\"] +# * Private Use characters — \StringPrep\[\"C.3\"] +# * Non-character code points — \StringPrep\[\"C.4\"] +# * Surrogate code points — \StringPrep\[\"C.5\"] +# * Inappropriate for plain text characters — \StringPrep\[\"C.6\"] +# * Inappropriate for canonical representation characters — \StringPrep\[\"C.7\"] +# * Change display properties or deprecated characters — \StringPrep\[\"C.8\"] +# * Tagging characters — \StringPrep\[\"C.9\"] +# +# pkg:gem/net-imap#lib/net/imap/stringprep/saslprep_tables.rb:41 +Net::IMAP::StringPrep::SASLprep::TABLES_PROHIBITED = T.let(T.unsafe(nil), Array) + +# Adds unassigned (by Unicode 3.2) codepoints to TABLES_PROHIBITED. +# +# RFC4013 §2.5 Unassigned Code Points +# >>> +# This profile specifies the \StringPrep\[\"A.1\"] table as its +# list of unassigned code points. +# +# pkg:gem/net-imap#lib/net/imap/stringprep/saslprep_tables.rb:49 +Net::IMAP::StringPrep::SASLprep::TABLES_PROHIBITED_STORED = T.let(T.unsafe(nil), Array) + +# RFC4013 §2.5 Unassigned Code Points +# >>> +# This profile specifies the \StringPrep\[\"A.1\"] table as its +# list of unassigned code points. +# +# Equal to \StringPrep\[\"A.1\"]. +# Redefined here to avoid loading StringPrep::Tables unless necessary. +# +# pkg:gem/net-imap#lib/net/imap/stringprep/saslprep_tables.rb:63 +Net::IMAP::StringPrep::SASLprep::UNASSIGNED = T.let(T.unsafe(nil), Regexp) + +# ArgumentError raised when +string+ is invalid for the stringprep +# +profile+. +# +# pkg:gem/net-imap#lib/net/imap/stringprep.rb:19 +class Net::IMAP::StringPrep::StringPrepError < ::ArgumentError + # @return [StringPrepError] a new instance of StringPrepError + # + # pkg:gem/net-imap#lib/net/imap/stringprep.rb:22 + def initialize(*args, string: T.unsafe(nil), profile: T.unsafe(nil)); end + + # Returns the value of attribute profile. + # + # pkg:gem/net-imap#lib/net/imap/stringprep.rb:20 + def profile; end + + # Returns the value of attribute string. + # + # pkg:gem/net-imap#lib/net/imap/stringprep.rb:20 + def string; end +end + +# pkg:gem/net-imap#lib/net/imap/stringprep/tables.rb:9 +module Net::IMAP::StringPrep::Tables; end + +# pkg:gem/net-imap#lib/net/imap/stringprep/tables.rb:75 +Net::IMAP::StringPrep::Tables::BIDI_DESC_REQ2 = T.let(T.unsafe(nil), String) + +# pkg:gem/net-imap#lib/net/imap/stringprep/tables.rb:83 +Net::IMAP::StringPrep::Tables::BIDI_DESC_REQ3 = T.let(T.unsafe(nil), String) + +# Bidirectional Characters [StringPrep, §6], Requirement 2 +# >>> +# If a string contains any RandALCat character, the string MUST NOT +# contain any LCat character. +# +# pkg:gem/net-imap#lib/net/imap/stringprep/tables.rb:81 +Net::IMAP::StringPrep::Tables::BIDI_FAILS_REQ2 = T.let(T.unsafe(nil), Regexp) + +# Bidirectional Characters [StringPrep, §6], Requirement 3 +# >>> +# If a string contains any RandALCat character, a RandALCat +# character MUST be the first character of the string, and a +# RandALCat character MUST be the last character of the string. +# +# pkg:gem/net-imap#lib/net/imap/stringprep/tables.rb:90 +Net::IMAP::StringPrep::Tables::BIDI_FAILS_REQ3 = T.let(T.unsafe(nil), Regexp) + +# Bidirectional Characters [StringPrep, §6] +# +# pkg:gem/net-imap#lib/net/imap/stringprep/tables.rb:93 +Net::IMAP::StringPrep::Tables::BIDI_FAILURE = T.let(T.unsafe(nil), Regexp) + +# Unassigned code points in Unicode 3.2 \StringPrep\[\"A.1\"] +# +# pkg:gem/net-imap#lib/net/imap/stringprep/tables.rb:12 +Net::IMAP::StringPrep::Tables::IN_A_1 = T.let(T.unsafe(nil), Regexp) + +# Commonly mapped to nothing \StringPrep\[\"B.1\"] +# +# pkg:gem/net-imap#lib/net/imap/stringprep/tables.rb:15 +Net::IMAP::StringPrep::Tables::IN_B_1 = T.let(T.unsafe(nil), Regexp) + +# Mapping for case-folding used with NFKC \StringPrep\[\"B.2\"] +# +# pkg:gem/net-imap#lib/net/imap/stringprep/tables.rb:18 +Net::IMAP::StringPrep::Tables::IN_B_2 = T.let(T.unsafe(nil), Regexp) + +# Mapping for case-folding used with no normalization \StringPrep\[\"B.3\"] +# +# pkg:gem/net-imap#lib/net/imap/stringprep/tables.rb:21 +Net::IMAP::StringPrep::Tables::IN_B_3 = T.let(T.unsafe(nil), Regexp) + +# ASCII space characters \StringPrep\[\"C.1.1\"] +# +# pkg:gem/net-imap#lib/net/imap/stringprep/tables.rb:33 +Net::IMAP::StringPrep::Tables::IN_C_1_1 = T.let(T.unsafe(nil), Regexp) + +# Non-ASCII space characters \StringPrep\[\"C.1.2\"] +# +# pkg:gem/net-imap#lib/net/imap/stringprep/tables.rb:36 +Net::IMAP::StringPrep::Tables::IN_C_1_2 = T.let(T.unsafe(nil), Regexp) + +# ASCII control characters \StringPrep\[\"C.2.1\"] +# +# pkg:gem/net-imap#lib/net/imap/stringprep/tables.rb:39 +Net::IMAP::StringPrep::Tables::IN_C_2_1 = T.let(T.unsafe(nil), Regexp) + +# Non-ASCII control characters \StringPrep\[\"C.2.2\"] +# +# pkg:gem/net-imap#lib/net/imap/stringprep/tables.rb:42 +Net::IMAP::StringPrep::Tables::IN_C_2_2 = T.let(T.unsafe(nil), Regexp) + +# Private use \StringPrep\[\"C.3\"] +# +# pkg:gem/net-imap#lib/net/imap/stringprep/tables.rb:45 +Net::IMAP::StringPrep::Tables::IN_C_3 = T.let(T.unsafe(nil), Regexp) + +# Non-character code points \StringPrep\[\"C.4\"] +# +# pkg:gem/net-imap#lib/net/imap/stringprep/tables.rb:48 +Net::IMAP::StringPrep::Tables::IN_C_4 = T.let(T.unsafe(nil), Regexp) + +# Surrogate codes \StringPrep\[\"C.5\"] +# +# pkg:gem/net-imap#lib/net/imap/stringprep/tables.rb:51 +Net::IMAP::StringPrep::Tables::IN_C_5 = T.let(T.unsafe(nil), Regexp) + +# Inappropriate for plain text \StringPrep\[\"C.6\"] +# +# pkg:gem/net-imap#lib/net/imap/stringprep/tables.rb:54 +Net::IMAP::StringPrep::Tables::IN_C_6 = T.let(T.unsafe(nil), Regexp) + +# Inappropriate for canonical representation \StringPrep\[\"C.7\"] +# +# pkg:gem/net-imap#lib/net/imap/stringprep/tables.rb:57 +Net::IMAP::StringPrep::Tables::IN_C_7 = T.let(T.unsafe(nil), Regexp) + +# Change display properties or are deprecated \StringPrep\[\"C.8\"] +# +# pkg:gem/net-imap#lib/net/imap/stringprep/tables.rb:60 +Net::IMAP::StringPrep::Tables::IN_C_8 = T.let(T.unsafe(nil), Regexp) + +# Tagging characters \StringPrep\[\"C.9\"] +# +# pkg:gem/net-imap#lib/net/imap/stringprep/tables.rb:63 +Net::IMAP::StringPrep::Tables::IN_C_9 = T.let(T.unsafe(nil), Regexp) + +# Characters with bidirectional property "R" or "AL" \StringPrep\[\"D.1\"] +# +# pkg:gem/net-imap#lib/net/imap/stringprep/tables.rb:66 +Net::IMAP::StringPrep::Tables::IN_D_1 = T.let(T.unsafe(nil), Regexp) + +# Used to check req3 of bidirectional checks +# Matches the negation of the D.1 table +# +# pkg:gem/net-imap#lib/net/imap/stringprep/tables.rb:70 +Net::IMAP::StringPrep::Tables::IN_D_1_NEGATED = T.let(T.unsafe(nil), Regexp) + +# Characters with bidirectional property "L" \StringPrep\[\"D.2\"] +# +# pkg:gem/net-imap#lib/net/imap/stringprep/tables.rb:73 +Net::IMAP::StringPrep::Tables::IN_D_2 = T.let(T.unsafe(nil), Regexp) + +# pkg:gem/net-imap#lib/net/imap/stringprep/tables.rb:139 +Net::IMAP::StringPrep::Tables::MAPPINGS = T.let(T.unsafe(nil), Hash) + +# Replacements for IN_B.1 +# +# pkg:gem/net-imap#lib/net/imap/stringprep/tables.rb:24 +Net::IMAP::StringPrep::Tables::MAP_B_1 = T.let(T.unsafe(nil), String) + +# Replacements for IN_B.2 +# +# pkg:gem/net-imap#lib/net/imap/stringprep/tables.rb:27 +Net::IMAP::StringPrep::Tables::MAP_B_2 = T.let(T.unsafe(nil), Hash) + +# Replacements for IN_B.3 +# +# pkg:gem/net-imap#lib/net/imap/stringprep/tables.rb:30 +Net::IMAP::StringPrep::Tables::MAP_B_3 = T.let(T.unsafe(nil), Hash) + +# Regexps matching each codepoint table in the RFC-3454 appendices +# +# pkg:gem/net-imap#lib/net/imap/stringprep/tables.rb:119 +Net::IMAP::StringPrep::Tables::REGEXPS = T.let(T.unsafe(nil), Hash) + +# Names of each codepoint table in the RFC-3454 appendices +# +# pkg:gem/net-imap#lib/net/imap/stringprep/tables.rb:96 +Net::IMAP::StringPrep::Tables::TITLES = T.let(T.unsafe(nil), Hash) + +# Defined in RFC-4505[https://www.rfc-editor.org/rfc/rfc4505] §3, The +trace+ +# profile of \StringPrep is used by the +ANONYMOUS+ \SASL mechanism. +# +# pkg:gem/net-imap#lib/net/imap/stringprep/trace.rb:9 +module Net::IMAP::StringPrep::Trace + private + + # From RFC-4505[https://www.rfc-editor.org/rfc/rfc4505] §3, The "trace" + # Profile of "Stringprep": + # >>> + # The character repertoire of this profile is Unicode 3.2 [Unicode]. + # + # No mapping is required by this profile. + # + # No Unicode normalization is required by this profile. + # + # The list of unassigned code points for this profile is that provided + # in Appendix A of [StringPrep]. Unassigned code points are not + # prohibited. + # + # Characters from the following tables of [StringPrep] are prohibited: + # (documented on PROHIBITED_TABLES) + # + # This profile requires bidirectional character checking per Section 6 + # of [StringPrep]. + # + # pkg:gem/net-imap#lib/net/imap/stringprep/trace.rb:68 + def stringprep_trace(string, **opts); end + + class << self + # From RFC-4505[https://www.rfc-editor.org/rfc/rfc4505] §3, The "trace" + # Profile of "Stringprep": + # >>> + # The character repertoire of this profile is Unicode 3.2 [Unicode]. + # + # No mapping is required by this profile. + # + # No Unicode normalization is required by this profile. + # + # The list of unassigned code points for this profile is that provided + # in Appendix A of [StringPrep]. Unassigned code points are not + # prohibited. + # + # Characters from the following tables of [StringPrep] are prohibited: + # (documented on PROHIBITED_TABLES) + # + # This profile requires bidirectional character checking per Section 6 + # of [StringPrep]. + # + # pkg:gem/net-imap#lib/net/imap/stringprep/trace.rb:68 + def stringprep_trace(string, **opts); end + end +end + +# >>> +# This profile requires bidirectional character checking per Section 6 +# of [StringPrep]. +# +# pkg:gem/net-imap#lib/net/imap/stringprep/trace.rb:46 +Net::IMAP::StringPrep::Trace::CHECK_BIDI = T.let(T.unsafe(nil), TrueClass) + +# >>> +# No mapping is required by this profile. +# +# pkg:gem/net-imap#lib/net/imap/stringprep/trace.rb:20 +Net::IMAP::StringPrep::Trace::MAPPING_TABLES = T.let(T.unsafe(nil), T.untyped) + +# >>> +# No Unicode normalization is required by this profile. +# +# pkg:gem/net-imap#lib/net/imap/stringprep/trace.rb:24 +Net::IMAP::StringPrep::Trace::NORMALIZATION = T.let(T.unsafe(nil), T.untyped) + +# From RFC-4505[https://www.rfc-editor.org/rfc/rfc4505] §3, The "trace" +# Profile of "Stringprep": +# >>> +# Characters from the following tables of [StringPrep] are prohibited: +# +# - C.2.1 (ASCII control characters) +# - C.2.2 (Non-ASCII control characters) +# - C.3 (Private use characters) +# - C.4 (Non-character code points) +# - C.5 (Surrogate codes) +# - C.6 (Inappropriate for plain text) +# - C.8 (Change display properties are deprecated) +# - C.9 (Tagging characters) +# +# No additional characters are prohibited. +# +# pkg:gem/net-imap#lib/net/imap/stringprep/trace.rb:41 +Net::IMAP::StringPrep::Trace::PROHIBITED_TABLES = T.let(T.unsafe(nil), Array) + +# Defined in RFC-4505[https://www.rfc-editor.org/rfc/rfc4505] §3. +# +# pkg:gem/net-imap#lib/net/imap/stringprep/trace.rb:12 +Net::IMAP::StringPrep::Trace::STRINGPREP_PROFILE = T.let(T.unsafe(nil), String) + +# >>> +# The character repertoire of this profile is Unicode 3.2 [Unicode]. +# +# pkg:gem/net-imap#lib/net/imap/stringprep/trace.rb:16 +Net::IMAP::StringPrep::Trace::UNASSIGNED_TABLE = T.let(T.unsafe(nil), String) + +# Mailbox attribute indicating that this mailbox is used to hold messages +# that have been deleted or marked for deletion. In some server +# implementations, this might be a virtual mailbox, containing messages from +# other mailboxes that are marked with the +\Deleted+ message flag. +# Alternatively, this might just be advice that a client that chooses not to +# use the \IMAP +\Deleted+ model should use as its trash location. In server +# implementations that strictly expect the \IMAP +\Deleted+ model, this +# special use is likely not to be supported. +# +# pkg:gem/net-imap#lib/net/imap/flags.rb:258 +Net::IMAP::TRASH = T.let(T.unsafe(nil), Symbol) + +# Net::IMAP::ThreadMember represents a thread-node returned +# by Net::IMAP#thread. +# +# pkg:gem/net-imap#lib/net/imap/response_data.rb:736 +class Net::IMAP::ThreadMember < ::Struct + # Returns a SequenceSet containing #seqno and all #children's seqno, + # recursively. + # + # pkg:gem/net-imap#lib/net/imap/response_data.rb:752 + def to_sequence_set; end + + protected + + # pkg:gem/net-imap#lib/net/imap/response_data.rb:758 + def all_seqnos(node = T.unsafe(nil)); end +end + +# Net::IMAP::UIDFetchData represents the contents of a +UIDFETCH+ response, +# When the +UIDONLY+ extension has been enabled, Net::IMAP#uid_fetch and +# Net::IMAP#uid_store will both return an array of UIDFetchData objects. +# +# UIDFetchData contains the same message attributes as FetchData. However, +# +UIDFETCH+ responses return the UID at the beginning of the response, +# replacing FetchData#seqno. UIDFetchData never contains a message sequence +# number. +# +# See FetchStruct documentation for a list of standard message attributes. +# +# pkg:gem/net-imap#lib/net/imap/fetch_data.rb:559 +class Net::IMAP::UIDFetchData < ::Net::IMAP::FetchStruct + # UIDFetchData will print a warning if #attr["UID"] is present + # but not identical to #uid. + # + # @return [UIDFetchData] a new instance of UIDFetchData + # + # pkg:gem/net-imap#lib/net/imap/fetch_data.rb:588 + def initialize(*_arg0, **_arg1, &_arg2); end +end + +# Error raised upon an unknown response from the server. +# +# This is different from InvalidResponseError: the response may be a +# valid extension response and the server may be allowed to send it in +# this context, but Net::IMAP either does not know how to parse it or +# how to handle it. This could result from enabling unknown or +# unhandled extensions. The connection may still be usable, +# but—depending on context—it may be prudent to disconnect. +# +# pkg:gem/net-imap#lib/net/imap/errors.rb:110 +class Net::IMAP::UnknownResponseError < ::Net::IMAP::ResponseError; end + +# **Note:** This represents an intentionally _unstable_ API. Where +# instances of this class are returned, future releases may return a +# different (incompatible) object without deprecation or warning. +# +# Net::IMAP::UnparsedData represents data for unknown response types or +# unknown extensions to response types without a well-defined extension +# grammar. +# +# See also: UnparsedNumericResponseData, ExtensionData, IgnoredResponse +# +# pkg:gem/net-imap#lib/net/imap/response_data.rb:81 +class Net::IMAP::UnparsedData < ::Struct; end + +# **Note:** This represents an intentionally _unstable_ API. Where +# instances of this class are returned, future releases may return a +# different (incompatible) object without deprecation or warning. +# +# Net::IMAP::UnparsedNumericResponseData represents data for unhandled +# response types with a numeric prefix. See the documentation for #number. +# +# See also: UnparsedData, ExtensionData, IgnoredResponse +# +# pkg:gem/net-imap#lib/net/imap/response_data.rb:97 +class Net::IMAP::UnparsedNumericResponseData < ::Struct; end + +# pkg:gem/net-imap#lib/net/imap.rb:791 +Net::IMAP::VERSION = T.let(T.unsafe(nil), String) + +# Net::IMAP::VanishedData represents the contents of a +VANISHED+ response, +# which is described by the +# {QRESYNC}[https://www.rfc-editor.org/rfc/rfc7162.html] extension. +# [{RFC7162 §3.2.10}[https://www.rfc-editor.org/rfc/rfc7162.html#section-3.2.10]]. +# +# +VANISHED+ responses replace +EXPUNGE+ responses when either the +# {QRESYNC}[https://www.rfc-editor.org/rfc/rfc7162.html] or the +# {UIDONLY}[https://www.rfc-editor.org/rfc/rfc9586.html] extension has been +# enabled. +# +# pkg:gem/net-imap#lib/net/imap/vanished_data.rb:15 +class Net::IMAP::VanishedData < ::Data + # Returns a new VanishedData object. + # + # * +uids+ will be converted by SequenceSet.[]. + # * +earlier+ will be converted to +true+ or +false+ + # + # @return [VanishedData] a new instance of VanishedData + # + # pkg:gem/net-imap#lib/net/imap/vanished_data.rb:21 + def initialize(uids:, earlier:); end + + # Yields each UID in #uids and returns +self+. Returns an Enumerator when + # no block is given. + # + # See SequenceSet#each_number. + # + # pkg:gem/net-imap#lib/net/imap/vanished_data.rb:58 + def each(&_arg0); end + + # rdoc doesn't handle attr aliases nicely. :( + # + # pkg:gem/net-imap#lib/net/imap/vanished_data.rb:43 + def earlier?; end + + # Returns an Array of all of the UIDs in #uids. + # + # See SequenceSet#numbers. + # + # pkg:gem/net-imap#lib/net/imap/vanished_data.rb:52 + def to_a; end +end + +# pkg:gem/net-imap#lib/net/imap/authenticators.rb:35 +Net::IMAP::XOauth2Authenticator = Net::IMAP::SASL::XOAuth2Authenticator diff --git a/sorbet/rbi/gems/net-smtp@0.5.0.rbi b/sorbet/rbi/gems/net-smtp@0.5.1.rbi similarity index 100% rename from sorbet/rbi/gems/net-smtp@0.5.0.rbi rename to sorbet/rbi/gems/net-smtp@0.5.1.rbi diff --git a/sorbet/rbi/gems/nio4r@2.7.4.rbi b/sorbet/rbi/gems/nio4r@2.7.5.rbi similarity index 100% rename from sorbet/rbi/gems/nio4r@2.7.4.rbi rename to sorbet/rbi/gems/nio4r@2.7.5.rbi diff --git a/sorbet/rbi/gems/rails@8.1.1.rbi b/sorbet/rbi/gems/rails@8.1.2.rbi similarity index 100% rename from sorbet/rbi/gems/rails@8.1.1.rbi rename to sorbet/rbi/gems/rails@8.1.2.rbi diff --git a/sorbet/rbi/gems/railties@8.1.1.rbi b/sorbet/rbi/gems/railties@8.1.2.rbi similarity index 99% rename from sorbet/rbi/gems/railties@8.1.1.rbi rename to sorbet/rbi/gems/railties@8.1.2.rbi index eecea0056..b56122799 100644 --- a/sorbet/rbi/gems/railties@8.1.1.rbi +++ b/sorbet/rbi/gems/railties@8.1.2.rbi @@ -3717,7 +3717,7 @@ class Rails::Generators::AppBase < ::Rails::Generators::Base # pkg:gem/railties#lib/rails/generators/app_base.rb:647 def css_gemfile_entry; end - # pkg:gem/railties#lib/rails/generators/app_base.rb:810 + # pkg:gem/railties#lib/rails/generators/app_base.rb:823 def database; end # pkg:gem/railties#lib/rails/generators/app_base.rb:287 @@ -3753,22 +3753,22 @@ class Rails::Generators::AppBase < ::Rails::Generators::Base # pkg:gem/railties#lib/rails/generators/app_base.rb:566 def dockerfile_bun_version; end - # pkg:gem/railties#lib/rails/generators/app_base.rb:801 + # pkg:gem/railties#lib/rails/generators/app_base.rb:814 def dockerfile_chown_directories; end # pkg:gem/railties#lib/rails/generators/app_base.rb:558 def dockerfile_yarn_version; end - # pkg:gem/railties#lib/rails/generators/app_base.rb:797 + # pkg:gem/railties#lib/rails/generators/app_base.rb:810 def edge_branch; end - # pkg:gem/railties#lib/rails/generators/app_base.rb:770 + # pkg:gem/railties#lib/rails/generators/app_base.rb:783 def empty_directory_with_keep_file(destination, config = T.unsafe(nil)); end # pkg:gem/railties#lib/rails/generators/app_base.rb:154 def gemfile_entries; end - # pkg:gem/railties#lib/rails/generators/app_base.rb:783 + # pkg:gem/railties#lib/rails/generators/app_base.rb:796 def git_init_command; end # pkg:gem/railties#lib/rails/generators/app_base.rb:511 @@ -3812,7 +3812,7 @@ class Rails::Generators::AppBase < ::Rails::Generators::Base # pkg:gem/railties#lib/rails/generators/app_base.rb:766 def jruby?; end - # pkg:gem/railties#lib/rails/generators/app_base.rb:775 + # pkg:gem/railties#lib/rails/generators/app_base.rb:788 def keep_file(destination); end # @return [Boolean] @@ -3955,7 +3955,7 @@ class Rails::Generators::AppBase < ::Rails::Generators::Base # pkg:gem/railties#lib/rails/generators/app_base.rb:684 def target_rails_prerelease(self_command = T.unsafe(nil)); end - # pkg:gem/railties#lib/rails/generators/app_base.rb:779 + # pkg:gem/railties#lib/rails/generators/app_base.rb:792 def user_default_branch; end # @return [Boolean] @@ -3978,6 +3978,9 @@ class Rails::Generators::AppBase < ::Rails::Generators::Base # pkg:gem/railties#lib/rails/generators/app_base.rb:531 def using_node?; end + # pkg:gem/railties#lib/rails/generators/app_base.rb:770 + def version_manager_ruby_version; end + # pkg:gem/railties#lib/rails/generators/app_base.rb:295 def web_server_gemfile_entry; end @@ -5816,10 +5819,26 @@ end # pkg:gem/railties#lib/rails/test_unit/line_filtering.rb:6 module Rails::LineFiltering - # pkg:gem/railties#lib/rails/test_unit/line_filtering.rb:7 + class << self + # @private + # + # pkg:gem/railties#lib/rails/test_unit/line_filtering.rb:7 + def extended(obj); end + end +end + +# pkg:gem/railties#lib/rails/test_unit/line_filtering.rb:18 +module Rails::LineFiltering::MT5 + # pkg:gem/railties#lib/rails/test_unit/line_filtering.rb:19 def run(reporter, options = T.unsafe(nil)); end end +# pkg:gem/railties#lib/rails/test_unit/line_filtering.rb:26 +module Rails::LineFiltering::MT6 + # pkg:gem/railties#lib/rails/test_unit/line_filtering.rb:27 + def run_suite(reporter, options = T.unsafe(nil)); end +end + # pkg:gem/railties#lib/rails/mailers_controller.rb:6 class Rails::MailersController < ::Rails::ApplicationController # pkg:gem/railties#lib/rails/mailers_controller.rb:22 @@ -6623,19 +6642,19 @@ end class Rails::SourceAnnotationExtractor # @return [SourceAnnotationExtractor] a new instance of SourceAnnotationExtractor # - # pkg:gem/railties#lib/rails/source_annotation_extractor.rb:154 + # pkg:gem/railties#lib/rails/source_annotation_extractor.rb:158 def initialize(tag); end # Prints the mapping from filenames to annotations in +results+ ordered by filename. # The +options+ hash is passed to each annotation's +to_s+. # - # pkg:gem/railties#lib/rails/source_annotation_extractor.rb:203 + # pkg:gem/railties#lib/rails/source_annotation_extractor.rb:207 def display(results, options = T.unsafe(nil)); end # Returns a hash that maps filenames under +dirs+ (recursively) to arrays # with their annotations. # - # pkg:gem/railties#lib/rails/source_annotation_extractor.rb:160 + # pkg:gem/railties#lib/rails/source_annotation_extractor.rb:164 def find(dirs); end # Returns a hash that maps filenames under +dir+ (recursively) to arrays @@ -6643,12 +6662,12 @@ class Rails::SourceAnnotationExtractor # Rails::SourceAnnotationExtractor::Annotation.extensions are # taken into account. Only files with annotations are included. # - # pkg:gem/railties#lib/rails/source_annotation_extractor.rb:168 + # pkg:gem/railties#lib/rails/source_annotation_extractor.rb:172 def find_in(dir); end # Returns the value of attribute tag. # - # pkg:gem/railties#lib/rails/source_annotation_extractor.rb:152 + # pkg:gem/railties#lib/rails/source_annotation_extractor.rb:156 def tag; end class << self @@ -6667,7 +6686,7 @@ class Rails::SourceAnnotationExtractor # # This class method is the single entry point for the rails notes command. # - # pkg:gem/railties#lib/rails/source_annotation_extractor.rb:145 + # pkg:gem/railties#lib/rails/source_annotation_extractor.rb:149 def enumerate(tag = T.unsafe(nil), options = T.unsafe(nil)); end end end @@ -6681,7 +6700,7 @@ class Rails::SourceAnnotationExtractor::Annotation < ::Struct # If +options+ has a flag :tag the tag is shown as in the example above. # Otherwise the string contains just line and text. # - # pkg:gem/railties#lib/rails/source_annotation_extractor.rb:124 + # pkg:gem/railties#lib/rails/source_annotation_extractor.rb:128 def to_s(options = T.unsafe(nil)); end class << self diff --git a/sorbet/rbi/gems/websocket-driver@0.7.6.rbi b/sorbet/rbi/gems/websocket-driver@0.8.0.rbi similarity index 94% rename from sorbet/rbi/gems/websocket-driver@0.7.6.rbi rename to sorbet/rbi/gems/websocket-driver@0.8.0.rbi index e68d26b82..181f445fd 100644 --- a/sorbet/rbi/gems/websocket-driver@0.7.6.rbi +++ b/sorbet/rbi/gems/websocket-driver@0.8.0.rbi @@ -17,19 +17,19 @@ class WebSocket::Driver # pkg:gem/websocket-driver#lib/websocket/driver.rb:72 def initialize(socket, options = T.unsafe(nil)); end - # pkg:gem/websocket-driver#lib/websocket/driver.rb:90 + # pkg:gem/websocket-driver#lib/websocket/driver.rb:92 def add_extension(extension); end - # pkg:gem/websocket-driver#lib/websocket/driver.rb:123 + # pkg:gem/websocket-driver#lib/websocket/driver.rb:125 def binary(message); end - # pkg:gem/websocket-driver#lib/websocket/driver.rb:135 + # pkg:gem/websocket-driver#lib/websocket/driver.rb:137 def close(reason = T.unsafe(nil), code = T.unsafe(nil)); end - # pkg:gem/websocket-driver#lib/websocket/driver.rb:127 + # pkg:gem/websocket-driver#lib/websocket/driver.rb:129 def ping(*args); end - # pkg:gem/websocket-driver#lib/websocket/driver.rb:131 + # pkg:gem/websocket-driver#lib/websocket/driver.rb:133 def pong(*args); end # Returns the value of attribute protocol. @@ -42,54 +42,54 @@ class WebSocket::Driver # pkg:gem/websocket-driver#lib/websocket/driver.rb:70 def ready_state; end - # pkg:gem/websocket-driver#lib/websocket/driver.rb:94 + # pkg:gem/websocket-driver#lib/websocket/driver.rb:96 def set_header(name, value); end - # pkg:gem/websocket-driver#lib/websocket/driver.rb:100 + # pkg:gem/websocket-driver#lib/websocket/driver.rb:102 def start; end - # pkg:gem/websocket-driver#lib/websocket/driver.rb:85 + # pkg:gem/websocket-driver#lib/websocket/driver.rb:87 def state; end - # pkg:gem/websocket-driver#lib/websocket/driver.rb:118 + # pkg:gem/websocket-driver#lib/websocket/driver.rb:120 def text(message); end private - # pkg:gem/websocket-driver#lib/websocket/driver.rb:156 + # pkg:gem/websocket-driver#lib/websocket/driver.rb:158 def fail(type, message); end - # pkg:gem/websocket-driver#lib/websocket/driver.rb:144 + # pkg:gem/websocket-driver#lib/websocket/driver.rb:146 def fail_handshake(error); end - # pkg:gem/websocket-driver#lib/websocket/driver.rb:162 + # pkg:gem/websocket-driver#lib/websocket/driver.rb:164 def open; end - # pkg:gem/websocket-driver#lib/websocket/driver.rb:169 + # pkg:gem/websocket-driver#lib/websocket/driver.rb:171 def queue(message); end class << self - # pkg:gem/websocket-driver#lib/websocket/driver.rb:174 + # pkg:gem/websocket-driver#lib/websocket/driver.rb:176 def client(socket, options = T.unsafe(nil)); end - # pkg:gem/websocket-driver#lib/websocket/driver.rb:198 + # pkg:gem/websocket-driver#lib/websocket/driver.rb:200 def encode(data, encoding = T.unsafe(nil)); end - # pkg:gem/websocket-driver#lib/websocket/driver.rb:213 + # pkg:gem/websocket-driver#lib/websocket/driver.rb:216 def host_header(uri); end - # pkg:gem/websocket-driver#lib/websocket/driver.rb:182 + # pkg:gem/websocket-driver#lib/websocket/driver.rb:184 def rack(socket, options = T.unsafe(nil)); end - # pkg:gem/websocket-driver#lib/websocket/driver.rb:178 + # pkg:gem/websocket-driver#lib/websocket/driver.rb:180 def server(socket, options = T.unsafe(nil)); end - # pkg:gem/websocket-driver#lib/websocket/driver.rb:221 + # pkg:gem/websocket-driver#lib/websocket/driver.rb:224 def validate_options(options, valid_keys); end # @return [Boolean] # - # pkg:gem/websocket-driver#lib/websocket/driver.rb:229 + # pkg:gem/websocket-driver#lib/websocket/driver.rb:238 def websocket?(env); end end end @@ -375,34 +375,34 @@ class WebSocket::Driver::Hybi < ::WebSocket::Driver private - # pkg:gem/websocket-driver#lib/websocket/driver/hybi.rb:336 + # pkg:gem/websocket-driver#lib/websocket/driver/hybi.rb:338 def check_frame_length; end - # pkg:gem/websocket-driver#lib/websocket/driver/hybi.rb:347 + # pkg:gem/websocket-driver#lib/websocket/driver/hybi.rb:349 def emit_frame(buffer); end - # pkg:gem/websocket-driver#lib/websocket/driver/hybi.rb:395 + # pkg:gem/websocket-driver#lib/websocket/driver/hybi.rb:397 def emit_message; end - # pkg:gem/websocket-driver#lib/websocket/driver/hybi.rb:270 + # pkg:gem/websocket-driver#lib/websocket/driver/hybi.rb:272 def fail(type, message); end - # pkg:gem/websocket-driver#lib/websocket/driver/hybi.rb:232 + # pkg:gem/websocket-driver#lib/websocket/driver/hybi.rb:234 def handshake_response; end - # pkg:gem/websocket-driver#lib/websocket/driver/hybi.rb:325 + # pkg:gem/websocket-driver#lib/websocket/driver/hybi.rb:327 def parse_extended_length(buffer); end - # pkg:gem/websocket-driver#lib/websocket/driver/hybi.rb:308 + # pkg:gem/websocket-driver#lib/websocket/driver/hybi.rb:310 def parse_length(octet); end - # pkg:gem/websocket-driver#lib/websocket/driver/hybi.rb:275 + # pkg:gem/websocket-driver#lib/websocket/driver/hybi.rb:277 def parse_opcode(octet); end - # pkg:gem/websocket-driver#lib/websocket/driver/hybi.rb:196 + # pkg:gem/websocket-driver#lib/websocket/driver/hybi.rb:198 def send_frame(frame); end - # pkg:gem/websocket-driver#lib/websocket/driver/hybi.rb:258 + # pkg:gem/websocket-driver#lib/websocket/driver/hybi.rb:260 def shutdown(code, reason, error = T.unsafe(nil)); end class << self