packwerk 2.2.0 → 2.2.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (188) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +29 -20
  3. data/.github/workflows/cla.yml +22 -0
  4. data/.rubocop.yml +48 -19
  5. data/Gemfile +7 -2
  6. data/Gemfile.lock +202 -175
  7. data/README.md +1 -1
  8. data/RESOLVING_VIOLATIONS.md +81 -0
  9. data/Rakefile +1 -1
  10. data/USAGE.md +14 -5
  11. data/bin/m +1 -1
  12. data/bin/rake +1 -1
  13. data/bin/rubocop +1 -1
  14. data/bin/srb +1 -1
  15. data/bin/tapioca +1 -1
  16. data/gemfiles/Gemfile-rails-6-0 +1 -1
  17. data/gemfiles/Gemfile-rails-6-1 +22 -0
  18. data/lib/packwerk/application_load_paths.rb +1 -1
  19. data/lib/packwerk/application_validator.rb +7 -6
  20. data/lib/packwerk/association_inspector.rb +17 -15
  21. data/lib/packwerk/cache.rb +36 -29
  22. data/lib/packwerk/cli.rb +24 -20
  23. data/lib/packwerk/const_node_inspector.rb +8 -7
  24. data/lib/packwerk/constant_name_inspector.rb +2 -2
  25. data/lib/packwerk/deprecated_references.rb +40 -20
  26. data/lib/packwerk/file_processor.rb +14 -14
  27. data/lib/packwerk/files_for_processing.rb +27 -31
  28. data/lib/packwerk/formatters/offenses_formatter.rb +3 -3
  29. data/lib/packwerk/formatters/progress_formatter.rb +2 -2
  30. data/lib/packwerk/node.rb +1 -294
  31. data/lib/packwerk/node_helpers.rb +335 -0
  32. data/lib/packwerk/node_processor.rb +6 -5
  33. data/lib/packwerk/node_processor_factory.rb +3 -3
  34. data/lib/packwerk/node_visitor.rb +1 -1
  35. data/lib/packwerk/offense_collection.rb +27 -8
  36. data/lib/packwerk/offenses_formatter.rb +2 -2
  37. data/lib/packwerk/package.rb +3 -0
  38. data/lib/packwerk/package_set.rb +2 -0
  39. data/lib/packwerk/parse_run.rb +29 -20
  40. data/lib/packwerk/parsed_constant_definitions.rb +23 -20
  41. data/lib/packwerk/parsers/erb.rb +3 -3
  42. data/lib/packwerk/reference_checking/checkers/checker.rb +16 -3
  43. data/lib/packwerk/reference_checking/checkers/dependency_checker.rb +16 -0
  44. data/lib/packwerk/reference_checking/checkers/privacy_checker.rb +18 -0
  45. data/lib/packwerk/reference_checking/reference_checker.rb +3 -1
  46. data/lib/packwerk/reference_extractor.rb +51 -48
  47. data/lib/packwerk/reference_offense.rb +3 -27
  48. data/lib/packwerk/run_context.rb +9 -8
  49. data/lib/packwerk/spring_command.rb +1 -1
  50. data/lib/packwerk/version.rb +1 -1
  51. data/lib/packwerk.rb +1 -0
  52. data/packwerk.gemspec +5 -12
  53. data/sorbet/rbi/gems/actioncable@7.0.3.1.rbi +2754 -0
  54. data/sorbet/rbi/gems/actionmailbox@7.0.3.1.rbi +1496 -0
  55. data/sorbet/rbi/gems/actionmailer@7.0.3.1.rbi +2362 -0
  56. data/sorbet/rbi/gems/actionpack@7.0.3.1.rbi +19397 -0
  57. data/sorbet/rbi/gems/actiontext@7.0.3.1.rbi +1569 -0
  58. data/sorbet/rbi/gems/actionview@7.0.3.1.rbi +14907 -0
  59. data/sorbet/rbi/gems/activejob@7.0.3.1.rbi +2553 -0
  60. data/sorbet/rbi/gems/activemodel@7.0.3.1.rbi +5999 -0
  61. data/sorbet/rbi/gems/activerecord@7.0.3.1.rbi +37832 -0
  62. data/sorbet/rbi/gems/activestorage@7.0.3.1.rbi +2321 -0
  63. data/sorbet/rbi/gems/activesupport@7.0.3.1.rbi +18818 -0
  64. data/sorbet/rbi/gems/concurrent-ruby@1.1.10.rbi +11722 -0
  65. data/sorbet/rbi/gems/constant_resolver@0.2.0.rbi +90 -0
  66. data/sorbet/rbi/gems/diff-lcs@1.5.0.rbi +1079 -0
  67. data/sorbet/rbi/gems/digest@3.1.0.rbi +189 -0
  68. data/sorbet/rbi/gems/erubi@1.11.0.rbi +140 -0
  69. data/sorbet/rbi/gems/globalid@1.0.0.rbi +572 -0
  70. data/sorbet/rbi/gems/i18n@1.12.0.rbi +2296 -0
  71. data/sorbet/rbi/gems/json@2.6.2.rbi +1548 -0
  72. data/sorbet/rbi/gems/language_server-protocol@3.16.0.3.rbi +8 -0
  73. data/sorbet/rbi/gems/loofah@2.18.0.rbi +877 -0
  74. data/sorbet/rbi/gems/m@1.6.0.rbi +257 -0
  75. data/sorbet/rbi/gems/marcel@1.0.2.rbi +220 -0
  76. data/sorbet/rbi/gems/mini_mime@1.1.2.rbi +170 -0
  77. data/sorbet/rbi/gems/mini_portile2@2.8.0.rbi +8 -0
  78. data/sorbet/rbi/gems/minitest-focus@1.3.1.rbi +104 -0
  79. data/sorbet/rbi/gems/minitest@5.16.2.rbi +2136 -0
  80. data/sorbet/rbi/gems/mocha@1.14.0.rbi +4177 -0
  81. data/sorbet/rbi/gems/net-imap@0.2.3.rbi +2147 -0
  82. data/sorbet/rbi/gems/net-pop@0.1.1.rbi +926 -0
  83. data/sorbet/rbi/gems/net-protocol@0.1.3.rbi +11 -0
  84. data/sorbet/rbi/gems/net-smtp@0.3.1.rbi +1108 -0
  85. data/sorbet/rbi/gems/netrc@0.11.0.rbi +153 -0
  86. data/sorbet/rbi/gems/nio4r@2.5.8.rbi +292 -0
  87. data/sorbet/rbi/gems/nokogiri@1.13.8.rbi +6478 -0
  88. data/sorbet/rbi/gems/parallel@1.22.1.rbi +277 -0
  89. data/sorbet/rbi/gems/parser@3.1.2.1.rbi +9029 -0
  90. data/sorbet/rbi/gems/prettier_print@0.1.0.rbi +8 -0
  91. data/sorbet/rbi/gems/pry@0.14.1.rbi +8 -0
  92. data/sorbet/rbi/gems/racc@1.6.0.rbi +152 -0
  93. data/sorbet/rbi/gems/rack-test@2.0.2.rbi +953 -0
  94. data/sorbet/rbi/gems/rack@2.2.4.rbi +5636 -0
  95. data/sorbet/rbi/gems/rails-html-sanitizer@1.4.3.rbi +688 -0
  96. data/sorbet/rbi/gems/rails@7.0.3.1.rbi +8 -0
  97. data/sorbet/rbi/gems/railties@7.0.3.1.rbi +3507 -0
  98. data/sorbet/rbi/gems/rainbow@3.1.1.rbi +392 -0
  99. data/sorbet/rbi/gems/rake@13.0.6.rbi +2924 -0
  100. data/sorbet/rbi/gems/rbi@0.0.15.rbi +3007 -0
  101. data/sorbet/rbi/gems/regexp_parser@2.5.0.rbi +3383 -0
  102. data/sorbet/rbi/gems/rexml@3.2.5.rbi +4714 -0
  103. data/sorbet/rbi/gems/rubocop-ast@1.21.0.rbi +6961 -0
  104. data/sorbet/rbi/gems/rubocop-performance@1.14.3.rbi +2986 -0
  105. data/sorbet/rbi/gems/{rubocop-shopify@2.0.1.rbi → rubocop-shopify@2.9.0.rbi} +4 -4
  106. data/sorbet/rbi/gems/rubocop-sorbet@0.6.11.rbi +992 -0
  107. data/sorbet/rbi/gems/rubocop@1.34.1.rbi +51820 -0
  108. data/sorbet/rbi/gems/ruby-lsp@0.2.1.rbi +11 -0
  109. data/sorbet/rbi/gems/smart_properties@1.17.0.rbi +474 -0
  110. data/sorbet/rbi/gems/spoom@1.1.11.rbi +2181 -0
  111. data/sorbet/rbi/gems/spring@4.0.0.rbi +411 -0
  112. data/sorbet/rbi/gems/strscan@3.0.4.rbi +8 -0
  113. data/sorbet/rbi/gems/syntax_tree@3.3.0.rbi +8 -0
  114. data/sorbet/rbi/gems/tapioca@0.9.2.rbi +3181 -0
  115. data/sorbet/rbi/gems/thor@1.2.1.rbi +3956 -0
  116. data/sorbet/rbi/gems/timeout@0.3.0.rbi +142 -0
  117. data/sorbet/rbi/gems/tzinfo@2.0.5.rbi +5896 -0
  118. data/sorbet/rbi/gems/unicode-display_width@2.2.0.rbi +48 -0
  119. data/sorbet/rbi/gems/unparser@0.6.5.rbi +4529 -0
  120. data/sorbet/rbi/gems/webrick@1.7.0.rbi +2582 -0
  121. data/sorbet/rbi/gems/websocket-driver@0.7.5.rbi +993 -0
  122. data/sorbet/rbi/gems/yard-sorbet@0.6.1.rbi +388 -0
  123. data/sorbet/rbi/gems/yard@0.9.28.rbi +18242 -0
  124. data/sorbet/rbi/gems/zeitwerk@2.6.0.rbi +867 -0
  125. data/sorbet/rbi/shims/psych.rbi +5 -0
  126. data/sorbet/tapioca/require.rb +2 -3
  127. metadata +91 -146
  128. data/.github/probots.yml +0 -2
  129. data/library.yml +0 -6
  130. data/service.yml +0 -1
  131. data/sorbet/rbi/gems/actioncable@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -860
  132. data/sorbet/rbi/gems/actionmailbox@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -568
  133. data/sorbet/rbi/gems/actionmailer@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -587
  134. data/sorbet/rbi/gems/actionpack@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -5314
  135. data/sorbet/rbi/gems/actiontext@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -699
  136. data/sorbet/rbi/gems/actionview@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -2515
  137. data/sorbet/rbi/gems/activejob@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -624
  138. data/sorbet/rbi/gems/activemodel@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -1248
  139. data/sorbet/rbi/gems/activerecord@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -8363
  140. data/sorbet/rbi/gems/activestorage@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -876
  141. data/sorbet/rbi/gems/activesupport@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -3987
  142. data/sorbet/rbi/gems/colorize@0.8.1.rbi +0 -40
  143. data/sorbet/rbi/gems/commander@4.5.2.rbi +0 -8
  144. data/sorbet/rbi/gems/concurrent-ruby@1.1.8.rbi +0 -1969
  145. data/sorbet/rbi/gems/constant_resolver@0.1.5.rbi +0 -26
  146. data/sorbet/rbi/gems/erubi@1.10.0.rbi +0 -41
  147. data/sorbet/rbi/gems/globalid@0.4.2.rbi +0 -178
  148. data/sorbet/rbi/gems/highline@2.0.3.rbi +0 -8
  149. data/sorbet/rbi/gems/i18n@1.8.10.rbi +0 -600
  150. data/sorbet/rbi/gems/loofah@2.9.0.rbi +0 -274
  151. data/sorbet/rbi/gems/m@1.5.1.rbi +0 -108
  152. data/sorbet/rbi/gems/marcel@1.0.0.rbi +0 -70
  153. data/sorbet/rbi/gems/mini_mime@1.0.3.rbi +0 -71
  154. data/sorbet/rbi/gems/minitest-focus@1.2.1.rbi +0 -8
  155. data/sorbet/rbi/gems/minitest@5.14.4.rbi +0 -544
  156. data/sorbet/rbi/gems/mocha@1.12.0.rbi +0 -953
  157. data/sorbet/rbi/gems/nio4r@2.5.7.rbi +0 -90
  158. data/sorbet/rbi/gems/nokogiri@1.11.2.rbi +0 -1647
  159. data/sorbet/rbi/gems/parallel@1.20.1.rbi +0 -117
  160. data/sorbet/rbi/gems/parlour@6.0.0.rbi +0 -1272
  161. data/sorbet/rbi/gems/parser@3.0.0.0.rbi +0 -1745
  162. data/sorbet/rbi/gems/pry@0.14.0.rbi +0 -8
  163. data/sorbet/rbi/gems/psych@3.3.2.rbi +0 -24
  164. data/sorbet/rbi/gems/racc@1.5.2.rbi +0 -57
  165. data/sorbet/rbi/gems/rack-test@1.1.0.rbi +0 -335
  166. data/sorbet/rbi/gems/rack@2.2.3.rbi +0 -1718
  167. data/sorbet/rbi/gems/rails-html-sanitizer@1.3.0.rbi +0 -213
  168. data/sorbet/rbi/gems/rails@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -8
  169. data/sorbet/rbi/gems/railties@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi +0 -880
  170. data/sorbet/rbi/gems/rainbow@3.0.0.rbi +0 -155
  171. data/sorbet/rbi/gems/rake@13.0.3.rbi +0 -837
  172. data/sorbet/rbi/gems/regexp_parser@2.1.1.rbi +0 -8
  173. data/sorbet/rbi/gems/rexml@3.2.4.rbi +0 -8
  174. data/sorbet/rbi/gems/rubocop-ast@1.4.1.rbi +0 -8
  175. data/sorbet/rbi/gems/rubocop-performance@1.10.2.rbi +0 -8
  176. data/sorbet/rbi/gems/rubocop-sorbet@0.6.1.rbi +0 -8
  177. data/sorbet/rbi/gems/rubocop@1.12.0.rbi +0 -8
  178. data/sorbet/rbi/gems/smart_properties@1.15.0.rbi +0 -168
  179. data/sorbet/rbi/gems/spoom@1.1.0.rbi +0 -1061
  180. data/sorbet/rbi/gems/spring@2.1.1.rbi +0 -160
  181. data/sorbet/rbi/gems/sprockets-rails@3.2.2.rbi +0 -451
  182. data/sorbet/rbi/gems/sprockets@4.0.2.rbi +0 -1133
  183. data/sorbet/rbi/gems/tapioca@0.4.19.rbi +0 -603
  184. data/sorbet/rbi/gems/thor@1.1.0.rbi +0 -893
  185. data/sorbet/rbi/gems/tzinfo@2.0.4.rbi +0 -566
  186. data/sorbet/rbi/gems/unicode-display_width@2.0.0.rbi +0 -8
  187. data/sorbet/rbi/gems/websocket-driver@0.7.3.rbi +0 -438
  188. data/sorbet/rbi/gems/zeitwerk@2.4.2.rbi +0 -177
@@ -0,0 +1,2147 @@
1
+ # typed: false
2
+
3
+ # DO NOT EDIT MANUALLY
4
+ # This is an autogenerated file for types exported from the `net-imap` gem.
5
+ # Please instead update this file by running `bin/tapioca gem net-imap`.
6
+
7
+ # Net::IMAP implements Internet Message Access Protocol (IMAP) client
8
+ # functionality. The protocol is described in
9
+ # [IMAP[https://tools.ietf.org/html/rfc3501]].
10
+ #
11
+ # == IMAP Overview
12
+ #
13
+ # An \IMAP client connects to a server, and then authenticates
14
+ # itself using either #authenticate or #login. Having
15
+ # authenticated itself, there is a range of commands
16
+ # available to it. Most work with mailboxes, which may be
17
+ # arranged in an hierarchical namespace, and each of which
18
+ # contains zero or more messages. How this is implemented on
19
+ # the server is implementation-dependent; on a UNIX server, it
20
+ # will frequently be implemented as files in mailbox format
21
+ # within a hierarchy of directories.
22
+ #
23
+ # To work on the messages within a mailbox, the client must
24
+ # first select that mailbox, using either #select or (for
25
+ # read-only access) #examine. Once the client has successfully
26
+ # selected a mailbox, they enter _selected_ state, and that
27
+ # mailbox becomes the _current_ mailbox, on which mail-item
28
+ # related commands implicitly operate.
29
+ #
30
+ # Messages have two sorts of identifiers: message sequence
31
+ # numbers and UIDs.
32
+ #
33
+ # Message sequence numbers number messages within a mailbox
34
+ # from 1 up to the number of items in the mailbox. If a new
35
+ # message arrives during a session, it receives a sequence
36
+ # number equal to the new size of the mailbox. If messages
37
+ # are expunged from the mailbox, remaining messages have their
38
+ # sequence numbers "shuffled down" to fill the gaps.
39
+ #
40
+ # UIDs, on the other hand, are permanently guaranteed not to
41
+ # identify another message within the same mailbox, even if
42
+ # the existing message is deleted. UIDs are required to
43
+ # be assigned in ascending (but not necessarily sequential)
44
+ # order within a mailbox; this means that if a non-IMAP client
45
+ # rearranges the order of mailitems within a mailbox, the
46
+ # UIDs have to be reassigned. An \IMAP client thus cannot
47
+ # rearrange message orders.
48
+ #
49
+ # == Examples of Usage
50
+ #
51
+ # === List sender and subject of all recent messages in the default mailbox
52
+ #
53
+ # imap = Net::IMAP.new('mail.example.com')
54
+ # imap.authenticate('LOGIN', 'joe_user', 'joes_password')
55
+ # imap.examine('INBOX')
56
+ # imap.search(["RECENT"]).each do |message_id|
57
+ # envelope = imap.fetch(message_id, "ENVELOPE")[0].attr["ENVELOPE"]
58
+ # puts "#{envelope.from[0].name}: \t#{envelope.subject}"
59
+ # end
60
+ #
61
+ # === Move all messages from April 2003 from "Mail/sent-mail" to "Mail/sent-apr03"
62
+ #
63
+ # imap = Net::IMAP.new('mail.example.com')
64
+ # imap.authenticate('LOGIN', 'joe_user', 'joes_password')
65
+ # imap.select('Mail/sent-mail')
66
+ # if not imap.list('Mail/', 'sent-apr03')
67
+ # imap.create('Mail/sent-apr03')
68
+ # end
69
+ # imap.search(["BEFORE", "30-Apr-2003", "SINCE", "1-Apr-2003"]).each do |message_id|
70
+ # imap.copy(message_id, "Mail/sent-apr03")
71
+ # imap.store(message_id, "+FLAGS", [:Deleted])
72
+ # end
73
+ # imap.expunge
74
+ #
75
+ # == Thread Safety
76
+ #
77
+ # Net::IMAP supports concurrent threads. For example,
78
+ #
79
+ # imap = Net::IMAP.new("imap.foo.net", "imap2")
80
+ # imap.authenticate("cram-md5", "bar", "password")
81
+ # imap.select("inbox")
82
+ # fetch_thread = Thread.start { imap.fetch(1..-1, "UID") }
83
+ # search_result = imap.search(["BODY", "hello"])
84
+ # fetch_result = fetch_thread.value
85
+ # imap.disconnect
86
+ #
87
+ # This script invokes the FETCH command and the SEARCH command concurrently.
88
+ #
89
+ # == Errors
90
+ #
91
+ # An IMAP server can send three different types of responses to indicate
92
+ # failure:
93
+ #
94
+ # NO:: the attempted command could not be successfully completed. For
95
+ # instance, the username/password used for logging in are incorrect;
96
+ # the selected mailbox does not exist; etc.
97
+ #
98
+ # BAD:: the request from the client does not follow the server's
99
+ # understanding of the IMAP protocol. This includes attempting
100
+ # commands from the wrong client state; for instance, attempting
101
+ # to perform a SEARCH command without having SELECTed a current
102
+ # mailbox. It can also signal an internal server
103
+ # failure (such as a disk crash) has occurred.
104
+ #
105
+ # BYE:: the server is saying goodbye. This can be part of a normal
106
+ # logout sequence, and can be used as part of a login sequence
107
+ # to indicate that the server is (for some reason) unwilling
108
+ # to accept your connection. As a response to any other command,
109
+ # it indicates either that the server is shutting down, or that
110
+ # the server is timing out the client connection due to inactivity.
111
+ #
112
+ # These three error response are represented by the errors
113
+ # Net::IMAP::NoResponseError, Net::IMAP::BadResponseError, and
114
+ # Net::IMAP::ByeResponseError, all of which are subclasses of
115
+ # Net::IMAP::ResponseError. Essentially, all methods that involve
116
+ # sending a request to the server can generate one of these errors.
117
+ # Only the most pertinent instances have been documented below.
118
+ #
119
+ # Because the IMAP class uses Sockets for communication, its methods
120
+ # are also susceptible to the various errors that can occur when
121
+ # working with sockets. These are generally represented as
122
+ # Errno errors. For instance, any method that involves sending a
123
+ # request to the server and/or receiving a response from it could
124
+ # raise an Errno::EPIPE error if the network connection unexpectedly
125
+ # goes down. See the socket(7), ip(7), tcp(7), socket(2), connect(2),
126
+ # and associated man pages.
127
+ #
128
+ # Finally, a Net::IMAP::DataFormatError is thrown if low-level data
129
+ # is found to be in an incorrect format (for instance, when converting
130
+ # between UTF-8 and UTF-16), and Net::IMAP::ResponseParseError is
131
+ # thrown if a server response is non-parseable.
132
+ #
133
+ #
134
+ # == References
135
+ #
136
+ # [[IMAP[https://tools.ietf.org/html/rfc3501]]]
137
+ # Crispin, M. "INTERNET MESSAGE ACCESS PROTOCOL - \VERSION 4rev1",
138
+ # RFC-3501[https://tools.ietf.org/html/rfc3501], March 2003. (Note:
139
+ # obsoletes RFC-2060[https://tools.ietf.org/html/rfc2060], December 1996.)
140
+ #
141
+ # [[LANGUAGE-TAGS[https://tools.ietf.org/html/rfc1766]]]
142
+ # Phillips, A. and Davis, M. "Tags for Identifying Languages",
143
+ # RFC-5646[https://tools.ietf.org/html/rfc5646], September 2009.
144
+ # (Note: obsoletes
145
+ # RFC-3066[https://tools.ietf.org/html/rfc3066], January 2001,
146
+ # RFC-4646[https://tools.ietf.org/html/rfc4646], September 2006, and
147
+ # RFC-1766[https://tools.ietf.org/html/rfc1766], March 1995.)
148
+ #
149
+ # [[MD5[https://tools.ietf.org/html/rfc1864]]]
150
+ # Myers, J. and M. Rose, "The Content-MD5 Header Field",
151
+ # RFC-1864[https://tools.ietf.org/html/rfc1864], October 1995.
152
+ #
153
+ # [[MIME-IMB[https://tools.ietf.org/html/rfc2045]]]
154
+ # Freed, N. and N. Borenstein, "MIME (Multipurpose Internet
155
+ # Mail Extensions) Part One: Format of Internet Message Bodies",
156
+ # RFC-2045[https://tools.ietf.org/html/rfc2045], November 1996.
157
+ #
158
+ # [[RFC-5322[https://tools.ietf.org/html/rfc5322]]]
159
+ # Resnick, P., "Internet Message Format",
160
+ # RFC-5322[https://tools.ietf.org/html/rfc5322], October 2008.
161
+ # (Note: obsoletes
162
+ # RFC-2822[https://tools.ietf.org/html/rfc2822], April 2001, and
163
+ # RFC-822[https://tools.ietf.org/html/rfc822], August 1982.)
164
+ #
165
+ # [[EXT-QUOTA[https://tools.ietf.org/html/rfc2087]]]
166
+ # Myers, J., "IMAP4 QUOTA extension",
167
+ # RFC-2087[https://tools.ietf.org/html/rfc2087], January 1997.
168
+ #
169
+ # [[EXT-NAMESPACE[https://tools.ietf.org/html/rfc2342]]]
170
+ # Gahrns, M. and Newman, C., "IMAP4 Namespace",
171
+ # RFC-2342[https://tools.ietf.org/html/rfc2342], May 1998.
172
+ #
173
+ # [[EXT-ID[https://tools.ietf.org/html/rfc2971]]]
174
+ # Showalter, T., "IMAP4 ID extension",
175
+ # RFC-2971[https://tools.ietf.org/html/rfc2971], October 2000.
176
+ #
177
+ # [[EXT-ACL[https://tools.ietf.org/html/rfc4314]]]
178
+ # Melnikov, A., "IMAP4 ACL extension",
179
+ # RFC-4314[https://tools.ietf.org/html/rfc4314], December 2005. (Note:
180
+ # obsoletes RFC-2086[https://tools.ietf.org/html/rfc2086], January 1997.)
181
+ #
182
+ # [[EXT-SORT-THREAD[https://tools.ietf.org/html/rfc5256]]]
183
+ # Crispin, M. and Muchison, K., "INTERNET MESSAGE ACCESS PROTOCOL - SORT
184
+ # and THREAD Extensions", RFC-5256[https://tools.ietf.org/html/rfc5256],
185
+ # June 2008.
186
+ #
187
+ # [[EXT-MOVE[https://tools.ietf.org/html/rfc6851]]]
188
+ # Gulbrandsen, A. and Freed, N., "Internet Message Access Protocol (\IMAP) -
189
+ # MOVE Extension", RFC-6851[https://tools.ietf.org/html/rfc6851], January
190
+ # 2013.
191
+ #
192
+ # [[OSSL]]
193
+ # http://www.openssl.org
194
+ #
195
+ # [[RSSL]]
196
+ # http://savannah.gnu.org/projects/rubypki
197
+ #
198
+ # [[UTF7[https://tools.ietf.org/html/rfc2152]]]
199
+ # Goldsmith, D. and Davis, M., "UTF-7: A Mail-Safe Transformation Format of
200
+ # Unicode", RFC-2152[https://tools.ietf.org/html/rfc2152], May 1997.
201
+ #
202
+ # source://net-imap-0.2.3/lib/net/imap.rb:222
203
+ class Net::IMAP < ::Net::Protocol
204
+ include ::MonitorMixin
205
+ include ::OpenSSL
206
+ include ::OpenSSL::SSL
207
+ extend ::Net::IMAP::Authenticators
208
+
209
+ # :call-seq:
210
+ # Net::IMAP.new(host, options = {})
211
+ #
212
+ # Creates a new Net::IMAP object and connects it to the specified
213
+ # +host+.
214
+ #
215
+ # +options+ is an option hash, each key of which is a symbol.
216
+ #
217
+ # The available options are:
218
+ #
219
+ # port:: Port number (default value is 143 for imap, or 993 for imaps)
220
+ # ssl:: If +options[:ssl]+ is true, then an attempt will be made
221
+ # to use SSL (now TLS) to connect to the server. For this to work
222
+ # OpenSSL [OSSL] and the Ruby OpenSSL [RSSL] extensions need to
223
+ # be installed.
224
+ # If +options[:ssl]+ is a hash, it's passed to
225
+ # OpenSSL::SSL::SSLContext#set_params as parameters.
226
+ # open_timeout:: Seconds to wait until a connection is opened
227
+ # idle_response_timeout:: Seconds to wait until an IDLE response is received
228
+ #
229
+ # The most common errors are:
230
+ #
231
+ # Errno::ECONNREFUSED:: Connection refused by +host+ or an intervening
232
+ # firewall.
233
+ # Errno::ETIMEDOUT:: Connection timed out (possibly due to packets
234
+ # being dropped by an intervening firewall).
235
+ # Errno::ENETUNREACH:: There is no route to that network.
236
+ # SocketError:: Hostname not known or other socket error.
237
+ # Net::IMAP::ByeResponseError:: The connected to the host was successful, but
238
+ # it immediately said goodbye.
239
+ #
240
+ # @return [IMAP] a new instance of IMAP
241
+ #
242
+ # source://net-imap-0.2.3/lib/net/imap.rb:1084
243
+ def initialize(host, port_or_options = T.unsafe(nil), usessl = T.unsafe(nil), certs = T.unsafe(nil), verify = T.unsafe(nil)); end
244
+
245
+ # Adds a response handler. For example, to detect when
246
+ # the server sends a new EXISTS response (which normally
247
+ # indicates new messages being added to the mailbox),
248
+ # add the following handler after selecting the
249
+ # mailbox:
250
+ #
251
+ # imap.add_response_handler { |resp|
252
+ # if resp.kind_of?(Net::IMAP::UntaggedResponse) and resp.name == "EXISTS"
253
+ # puts "Mailbox now has #{resp.data} messages"
254
+ # end
255
+ # }
256
+ #
257
+ # @raise [ArgumentError]
258
+ #
259
+ # source://net-imap-0.2.3/lib/net/imap.rb:958
260
+ def add_response_handler(handler = T.unsafe(nil), &block); end
261
+
262
+ # Sends a APPEND command to append the +message+ to the end of
263
+ # the +mailbox+. The optional +flags+ argument is an array of
264
+ # flags initially passed to the new message. The optional
265
+ # +date_time+ argument specifies the creation time to assign to the
266
+ # new message; it defaults to the current time.
267
+ # For example:
268
+ #
269
+ # imap.append("inbox", <<EOF.gsub(/\n/, "\r\n"), [:Seen], Time.now)
270
+ # Subject: hello
271
+ # From: shugo@ruby-lang.org
272
+ # To: shugo@ruby-lang.org
273
+ #
274
+ # hello world
275
+ # EOF
276
+ #
277
+ # A Net::IMAP::NoResponseError is raised if the mailbox does
278
+ # not exist (it is not created automatically), or if the flags,
279
+ # date_time, or message arguments contain errors.
280
+ #
281
+ # source://net-imap-0.2.3/lib/net/imap.rb:746
282
+ def append(mailbox, message, flags = T.unsafe(nil), date_time = T.unsafe(nil)); end
283
+
284
+ # Sends an AUTHENTICATE command to authenticate the client.
285
+ # The +auth_type+ parameter is a string that represents
286
+ # the authentication mechanism to be used. Currently Net::IMAP
287
+ # supports the authentication mechanisms:
288
+ #
289
+ # LOGIN:: login using cleartext user and password.
290
+ # CRAM-MD5:: login with cleartext user and encrypted password
291
+ # (see [RFC-2195] for a full description). This
292
+ # mechanism requires that the server have the user's
293
+ # password stored in clear-text password.
294
+ #
295
+ # For both of these mechanisms, there should be two +args+: username
296
+ # and (cleartext) password. A server may not support one or the other
297
+ # of these mechanisms; check #capability for a capability of
298
+ # the form "AUTH=LOGIN" or "AUTH=CRAM-MD5".
299
+ #
300
+ # Authentication is done using the appropriate authenticator object:
301
+ # see +add_authenticator+ for more information on plugging in your own
302
+ # authenticator.
303
+ #
304
+ # For example:
305
+ #
306
+ # imap.authenticate('LOGIN', user, password)
307
+ #
308
+ # A Net::IMAP::NoResponseError is raised if authentication fails.
309
+ #
310
+ # source://net-imap-0.2.3/lib/net/imap.rb:403
311
+ def authenticate(auth_type, *args); end
312
+
313
+ # Sends a CAPABILITY command, and returns an array of
314
+ # capabilities that the server supports. Each capability
315
+ # is a string. See [IMAP] for a list of possible
316
+ # capabilities.
317
+ #
318
+ # Note that the Net::IMAP class does not modify its
319
+ # behaviour according to the capabilities of the server;
320
+ # it is up to the user of the class to ensure that
321
+ # a certain capability is supported by a server before
322
+ # using it.
323
+ #
324
+ # source://net-imap-0.2.3/lib/net/imap.rb:321
325
+ def capability; end
326
+
327
+ # Sends a CHECK command to request a checkpoint of the currently
328
+ # selected mailbox. This performs implementation-specific
329
+ # housekeeping; for instance, reconciling the mailbox's
330
+ # in-memory and on-disk state.
331
+ #
332
+ # source://net-imap-0.2.3/lib/net/imap.rb:760
333
+ def check; end
334
+
335
+ # The thread to receive exceptions.
336
+ #
337
+ # source://net-imap-0.2.3/lib/net/imap.rb:255
338
+ def client_thread; end
339
+
340
+ # The thread to receive exceptions.
341
+ #
342
+ # source://net-imap-0.2.3/lib/net/imap.rb:255
343
+ def client_thread=(_arg0); end
344
+
345
+ # Sends a CLOSE command to close the currently selected mailbox.
346
+ # The CLOSE command permanently removes from the mailbox all
347
+ # messages that have the \Deleted flag set.
348
+ #
349
+ # source://net-imap-0.2.3/lib/net/imap.rb:767
350
+ def close; end
351
+
352
+ # Sends a COPY command to copy the specified message(s) to the end
353
+ # of the specified destination +mailbox+. The +set+ parameter is
354
+ # a number, an array of numbers, or a Range object. The number is
355
+ # a message sequence number.
356
+ #
357
+ # source://net-imap-0.2.3/lib/net/imap.rb:900
358
+ def copy(set, mailbox); end
359
+
360
+ # Sends a CREATE command to create a new +mailbox+.
361
+ #
362
+ # A Net::IMAP::NoResponseError is raised if a mailbox with that name
363
+ # cannot be created.
364
+ #
365
+ # source://net-imap-0.2.3/lib/net/imap.rb:461
366
+ def create(mailbox); end
367
+
368
+ # Sends a DELETE command to remove the +mailbox+.
369
+ #
370
+ # A Net::IMAP::NoResponseError is raised if a mailbox with that name
371
+ # cannot be deleted, either because it does not exist or because the
372
+ # client does not have permission to delete it.
373
+ #
374
+ # source://net-imap-0.2.3/lib/net/imap.rb:470
375
+ def delete(mailbox); end
376
+
377
+ # Disconnects from the server.
378
+ #
379
+ # source://net-imap-0.2.3/lib/net/imap.rb:284
380
+ def disconnect; end
381
+
382
+ # Returns true if disconnected from the server.
383
+ #
384
+ # @return [Boolean]
385
+ #
386
+ # source://net-imap-0.2.3/lib/net/imap.rb:307
387
+ def disconnected?; end
388
+
389
+ # Sends a EXAMINE command to select a +mailbox+ so that messages
390
+ # in the +mailbox+ can be accessed. Behaves the same as #select,
391
+ # except that the selected +mailbox+ is identified as read-only.
392
+ #
393
+ # A Net::IMAP::NoResponseError is raised if the mailbox does not
394
+ # exist or is for some reason non-examinable.
395
+ #
396
+ # source://net-imap-0.2.3/lib/net/imap.rb:450
397
+ def examine(mailbox); end
398
+
399
+ # Sends a EXPUNGE command to permanently remove from the currently
400
+ # selected mailbox all messages that have the \Deleted flag set.
401
+ #
402
+ # source://net-imap-0.2.3/lib/net/imap.rb:773
403
+ def expunge; end
404
+
405
+ # Sends a FETCH command to retrieve data associated with a message
406
+ # in the mailbox.
407
+ #
408
+ # The +set+ parameter is a number or a range between two numbers,
409
+ # or an array of those. The number is a message sequence number,
410
+ # where -1 represents a '*' for use in range notation like 100..-1
411
+ # being interpreted as '100:*'. Beware that the +exclude_end?+
412
+ # property of a Range object is ignored, and the contents of a
413
+ # range are independent of the order of the range endpoints as per
414
+ # the protocol specification, so 1...5, 5..1 and 5...1 are all
415
+ # equivalent to 1..5.
416
+ #
417
+ # +attr+ is a list of attributes to fetch; see the documentation
418
+ # for Net::IMAP::FetchData for a list of valid attributes.
419
+ #
420
+ # The return value is an array of Net::IMAP::FetchData or nil
421
+ # (instead of an empty array) if there is no matching message.
422
+ #
423
+ # For example:
424
+ #
425
+ # p imap.fetch(6..8, "UID")
426
+ # #=> [#<Net::IMAP::FetchData seqno=6, attr={"UID"=>98}>, \\
427
+ # #<Net::IMAP::FetchData seqno=7, attr={"UID"=>99}>, \\
428
+ # #<Net::IMAP::FetchData seqno=8, attr={"UID"=>100}>]
429
+ # p imap.fetch(6, "BODY[HEADER.FIELDS (SUBJECT)]")
430
+ # #=> [#<Net::IMAP::FetchData seqno=6, attr={"BODY[HEADER.FIELDS (SUBJECT)]"=>"Subject: test\r\n\r\n"}>]
431
+ # data = imap.uid_fetch(98, ["RFC822.SIZE", "INTERNALDATE"])[0]
432
+ # p data.seqno
433
+ # #=> 6
434
+ # p data.attr["RFC822.SIZE"]
435
+ # #=> 611
436
+ # p data.attr["INTERNALDATE"]
437
+ # #=> "12-Oct-2000 22:40:59 +0900"
438
+ # p data.attr["UID"]
439
+ # #=> 98
440
+ #
441
+ # source://net-imap-0.2.3/lib/net/imap.rb:864
442
+ def fetch(set, attr, mod = T.unsafe(nil)); end
443
+
444
+ # Send the GETACL command along with a specified +mailbox+.
445
+ # If this mailbox exists, an array containing objects of
446
+ # Net::IMAP::MailboxACLItem will be returned.
447
+ #
448
+ # The ACL extension is described in [EXT-ACL[https://tools.ietf.org/html/rfc4314]]
449
+ #
450
+ # source://net-imap-0.2.3/lib/net/imap.rb:685
451
+ def getacl(mailbox); end
452
+
453
+ # Sends the GETQUOTA command along with specified +mailbox+.
454
+ # If this mailbox exists, then an array containing a
455
+ # Net::IMAP::MailboxQuota object is returned. This
456
+ # command is generally only available to server admin.
457
+ #
458
+ # The QUOTA extension is described in [EXT-QUOTA[https://tools.ietf.org/html/rfc2087]]
459
+ #
460
+ # source://net-imap-0.2.3/lib/net/imap.rb:645
461
+ def getquota(mailbox); end
462
+
463
+ # Sends the GETQUOTAROOT command along with the specified +mailbox+.
464
+ # This command is generally available to both admin and user.
465
+ # If this mailbox exists, it returns an array containing objects of type
466
+ # Net::IMAP::MailboxQuotaRoot and Net::IMAP::MailboxQuota.
467
+ #
468
+ # The QUOTA extension is described in [EXT-QUOTA[https://tools.ietf.org/html/rfc2087]]
469
+ #
470
+ # source://net-imap-0.2.3/lib/net/imap.rb:629
471
+ def getquotaroot(mailbox); end
472
+
473
+ # Returns an initial greeting response from the server.
474
+ #
475
+ # source://net-imap-0.2.3/lib/net/imap.rb:232
476
+ def greeting; end
477
+
478
+ # Sends an ID command, and returns a hash of the server's
479
+ # response, or nil if the server does not identify itself.
480
+ #
481
+ # Note that the user should first check if the server supports the ID
482
+ # capability. For example:
483
+ #
484
+ # capabilities = imap.capability
485
+ # if capabilities.include?("ID")
486
+ # id = imap.id(
487
+ # name: "my IMAP client (ruby)",
488
+ # version: MyIMAP::VERSION,
489
+ # "support-url": "mailto:bugs@example.com",
490
+ # os: RbConfig::CONFIG["host_os"],
491
+ # )
492
+ # end
493
+ #
494
+ # See [EXT-ID[https://tools.ietf.org/html/rfc2971]] for field definitions.
495
+ #
496
+ # source://net-imap-0.2.3/lib/net/imap.rb:345
497
+ def id(client_id = T.unsafe(nil)); end
498
+
499
+ # Sends an IDLE command that waits for notifications of new or expunged
500
+ # messages. Yields responses from the server during the IDLE.
501
+ #
502
+ # Use #idle_done to leave IDLE.
503
+ #
504
+ # If +timeout+ is given, this method returns after +timeout+ seconds passed.
505
+ # +timeout+ can be used for keep-alive. For example, the following code
506
+ # checks the connection for each 60 seconds.
507
+ #
508
+ # loop do
509
+ # imap.idle(60) do |res|
510
+ # ...
511
+ # end
512
+ # end
513
+ #
514
+ # @raise [LocalJumpError]
515
+ #
516
+ # source://net-imap-0.2.3/lib/net/imap.rb:1007
517
+ def idle(timeout = T.unsafe(nil), &response_handler); end
518
+
519
+ # Leaves IDLE.
520
+ #
521
+ # source://net-imap-0.2.3/lib/net/imap.rb:1037
522
+ def idle_done; end
523
+
524
+ # Seconds to wait until an IDLE response is received.
525
+ #
526
+ # source://net-imap-0.2.3/lib/net/imap.rb:252
527
+ def idle_response_timeout; end
528
+
529
+ # Sends a LIST command, and returns a subset of names from
530
+ # the complete set of all names available to the client.
531
+ # +refname+ provides a context (for instance, a base directory
532
+ # in a directory-based mailbox hierarchy). +mailbox+ specifies
533
+ # a mailbox or (via wildcards) mailboxes under that context.
534
+ # Two wildcards may be used in +mailbox+: '*', which matches
535
+ # all characters *including* the hierarchy delimiter (for instance,
536
+ # '/' on a UNIX-hosted directory-based mailbox hierarchy); and '%',
537
+ # which matches all characters *except* the hierarchy delimiter.
538
+ #
539
+ # If +refname+ is empty, +mailbox+ is used directly to determine
540
+ # which mailboxes to match. If +mailbox+ is empty, the root
541
+ # name of +refname+ and the hierarchy delimiter are returned.
542
+ #
543
+ # The return value is an array of +Net::IMAP::MailboxList+. For example:
544
+ #
545
+ # imap.create("foo/bar")
546
+ # imap.create("foo/baz")
547
+ # p imap.list("", "foo/%")
548
+ # #=> [#<Net::IMAP::MailboxList attr=[:Noselect], delim="/", name="foo/">, \\
549
+ # #<Net::IMAP::MailboxList attr=[:Noinferiors, :Marked], delim="/", name="foo/bar">, \\
550
+ # #<Net::IMAP::MailboxList attr=[:Noinferiors], delim="/", name="foo/baz">]
551
+ #
552
+ # source://net-imap-0.2.3/lib/net/imap.rb:527
553
+ def list(refname, mailbox); end
554
+
555
+ # Sends a LOGIN command to identify the client and carries
556
+ # the plaintext +password+ authenticating this +user+. Note
557
+ # that, unlike calling #authenticate with an +auth_type+
558
+ # of "LOGIN", #login does *not* use the login authenticator.
559
+ #
560
+ # A Net::IMAP::NoResponseError is raised if authentication fails.
561
+ #
562
+ # source://net-imap-0.2.3/lib/net/imap.rb:421
563
+ def login(user, password); end
564
+
565
+ # Sends a LOGOUT command to inform the server that the client is
566
+ # done with the connection.
567
+ #
568
+ # source://net-imap-0.2.3/lib/net/imap.rb:359
569
+ def logout; end
570
+
571
+ # Sends a LSUB command, and returns a subset of names from the set
572
+ # of names that the user has declared as being "active" or
573
+ # "subscribed." +refname+ and +mailbox+ are interpreted as
574
+ # for #list.
575
+ #
576
+ # The return value is an array of +Net::IMAP::MailboxList+.
577
+ #
578
+ # source://net-imap-0.2.3/lib/net/imap.rb:698
579
+ def lsub(refname, mailbox); end
580
+
581
+ # Sends a MOVE command to move the specified message(s) to the end
582
+ # of the specified destination +mailbox+. The +set+ parameter is
583
+ # a number, an array of numbers, or a Range object. The number is
584
+ # a message sequence number.
585
+ #
586
+ # The MOVE extension is described in [EXT-MOVE[https://tools.ietf.org/html/rfc6851]].
587
+ #
588
+ # source://net-imap-0.2.3/lib/net/imap.rb:915
589
+ def move(set, mailbox); end
590
+
591
+ # Sends a NAMESPACE command and returns the namespaces that are available.
592
+ # The NAMESPACE command allows a client to discover the prefixes of
593
+ # namespaces used by a server for personal mailboxes, other users'
594
+ # mailboxes, and shared mailboxes.
595
+ #
596
+ # The NAMESPACE extension predates [IMAP4rev1[https://tools.ietf.org/html/rfc2501]],
597
+ # so most IMAP servers support it. Many popular IMAP servers are configured
598
+ # with the default personal namespaces as `("" "/")`: no prefix and "/"
599
+ # hierarchy delimiter. In that common case, the naive client may not have
600
+ # any trouble naming mailboxes.
601
+ #
602
+ # But many servers are configured with the default personal namespace as
603
+ # e.g. `("INBOX." ".")`, placing all personal folders under INBOX, with "."
604
+ # as the hierarchy delimiter. If the client does not check for this, but
605
+ # naively assumes it can use the same folder names for all servers, then
606
+ # folder creation (and listing, moving, etc) can lead to errors.
607
+ #
608
+ # From RFC2342:
609
+ #
610
+ # Although typically a server will support only a single Personal
611
+ # Namespace, and a single Other User's Namespace, circumstances exist
612
+ # where there MAY be multiples of these, and a client MUST be prepared
613
+ # for them. If a client is configured such that it is required to create
614
+ # a certain mailbox, there can be circumstances where it is unclear which
615
+ # Personal Namespaces it should create the mailbox in. In these
616
+ # situations a client SHOULD let the user select which namespaces to
617
+ # create the mailbox in.
618
+ #
619
+ # The user of this method should first check if the server supports the
620
+ # NAMESPACE capability. The return value is a +Net::IMAP::Namespaces+
621
+ # object which has +personal+, +other+, and +shared+ fields, each an array
622
+ # of +Net::IMAP::Namespace+ objects. These arrays will be empty when the
623
+ # server responds with nil.
624
+ #
625
+ # For example:
626
+ #
627
+ # capabilities = imap.capability
628
+ # if capabilities.include?("NAMESPACE")
629
+ # namespaces = imap.namespace
630
+ # if namespace = namespaces.personal.first
631
+ # prefix = namespace.prefix # e.g. "" or "INBOX."
632
+ # delim = namespace.delim # e.g. "/" or "."
633
+ # # personal folders should use the prefix and delimiter
634
+ # imap.create(prefix + "foo")
635
+ # imap.create(prefix + "bar")
636
+ # imap.create(prefix + %w[path to my folder].join(delim))
637
+ # end
638
+ # end
639
+ #
640
+ # The NAMESPACE extension is described in [EXT-NAMESPACE[https://tools.ietf.org/html/rfc2342]]
641
+ #
642
+ # source://net-imap-0.2.3/lib/net/imap.rb:584
643
+ def namespace; end
644
+
645
+ # Sends a NOOP command to the server. It does nothing.
646
+ #
647
+ # source://net-imap-0.2.3/lib/net/imap.rb:353
648
+ def noop; end
649
+
650
+ # Seconds to wait until a connection is opened.
651
+ # If the IMAP object cannot open a connection within this time,
652
+ # it raises a Net::OpenTimeout exception. The default value is 30 seconds.
653
+ #
654
+ # source://net-imap-0.2.3/lib/net/imap.rb:249
655
+ def open_timeout; end
656
+
657
+ # Removes the response handler.
658
+ #
659
+ # source://net-imap-0.2.3/lib/net/imap.rb:964
660
+ def remove_response_handler(handler); end
661
+
662
+ # Sends a RENAME command to change the name of the +mailbox+ to
663
+ # +newname+.
664
+ #
665
+ # A Net::IMAP::NoResponseError is raised if a mailbox with the
666
+ # name +mailbox+ cannot be renamed to +newname+ for whatever
667
+ # reason; for instance, because +mailbox+ does not exist, or
668
+ # because there is already a mailbox with the name +newname+.
669
+ #
670
+ # source://net-imap-0.2.3/lib/net/imap.rb:481
671
+ def rename(mailbox, newname); end
672
+
673
+ # Returns all response handlers.
674
+ #
675
+ # source://net-imap-0.2.3/lib/net/imap.rb:244
676
+ def response_handlers; end
677
+
678
+ # Returns recorded untagged responses. For example:
679
+ #
680
+ # imap.select("inbox")
681
+ # p imap.responses["EXISTS"][-1]
682
+ # #=> 2
683
+ # p imap.responses["UIDVALIDITY"][-1]
684
+ # #=> 968263756
685
+ #
686
+ # source://net-imap-0.2.3/lib/net/imap.rb:241
687
+ def responses; end
688
+
689
+ # Sends a SEARCH command to search the mailbox for messages that
690
+ # match the given searching criteria, and returns message sequence
691
+ # numbers. +keys+ can either be a string holding the entire
692
+ # search string, or a single-dimension array of search keywords and
693
+ # arguments. The following are some common search criteria;
694
+ # see [IMAP] section 6.4.4 for a full list.
695
+ #
696
+ # <message set>:: a set of message sequence numbers. ',' indicates
697
+ # an interval, ':' indicates a range. For instance,
698
+ # '2,10:12,15' means "2,10,11,12,15".
699
+ #
700
+ # BEFORE <date>:: messages with an internal date strictly before
701
+ # <date>. The date argument has a format similar
702
+ # to 8-Aug-2002.
703
+ #
704
+ # BODY <string>:: messages that contain <string> within their body.
705
+ #
706
+ # CC <string>:: messages containing <string> in their CC field.
707
+ #
708
+ # FROM <string>:: messages that contain <string> in their FROM field.
709
+ #
710
+ # NEW:: messages with the \Recent, but not the \Seen, flag set.
711
+ #
712
+ # NOT <search-key>:: negate the following search key.
713
+ #
714
+ # OR <search-key> <search-key>:: "or" two search keys together.
715
+ #
716
+ # ON <date>:: messages with an internal date exactly equal to <date>,
717
+ # which has a format similar to 8-Aug-2002.
718
+ #
719
+ # SINCE <date>:: messages with an internal date on or after <date>.
720
+ #
721
+ # SUBJECT <string>:: messages with <string> in their subject.
722
+ #
723
+ # TO <string>:: messages with <string> in their TO field.
724
+ #
725
+ # For example:
726
+ #
727
+ # p imap.search(["SUBJECT", "hello", "NOT", "NEW"])
728
+ # #=> [1, 6, 7, 8]
729
+ #
730
+ # source://net-imap-0.2.3/lib/net/imap.rb:820
731
+ def search(keys, charset = T.unsafe(nil)); end
732
+
733
+ # Sends a SELECT command to select a +mailbox+ so that messages
734
+ # in the +mailbox+ can be accessed.
735
+ #
736
+ # After you have selected a mailbox, you may retrieve the
737
+ # number of items in that mailbox from +@responses["EXISTS"][-1]+,
738
+ # and the number of recent messages from +@responses["RECENT"][-1]+.
739
+ # Note that these values can change if new messages arrive
740
+ # during a session; see #add_response_handler for a way of
741
+ # detecting this event.
742
+ #
743
+ # A Net::IMAP::NoResponseError is raised if the mailbox does not
744
+ # exist or is for some reason non-selectable.
745
+ #
746
+ # source://net-imap-0.2.3/lib/net/imap.rb:437
747
+ def select(mailbox); end
748
+
749
+ # Sends the SETACL command along with +mailbox+, +user+ and the
750
+ # +rights+ that user is to have on that mailbox. If +rights+ is nil,
751
+ # then that user will be stripped of any rights to that mailbox.
752
+ #
753
+ # The ACL extension is described in [EXT-ACL[https://tools.ietf.org/html/rfc4314]]
754
+ #
755
+ # source://net-imap-0.2.3/lib/net/imap.rb:672
756
+ def setacl(mailbox, user, rights); end
757
+
758
+ # Sends a SETQUOTA command along with the specified +mailbox+ and
759
+ # +quota+. If +quota+ is nil, then +quota+ will be unset for that
760
+ # mailbox. Typically one needs to be logged in as a server admin
761
+ # for this to work.
762
+ #
763
+ # The QUOTA extension is described in [EXT-QUOTA[https://tools.ietf.org/html/rfc2087]]
764
+ #
765
+ # source://net-imap-0.2.3/lib/net/imap.rb:658
766
+ def setquota(mailbox, quota); end
767
+
768
+ # Sends a SORT command to sort messages in the mailbox.
769
+ # Returns an array of message sequence numbers. For example:
770
+ #
771
+ # p imap.sort(["FROM"], ["ALL"], "US-ASCII")
772
+ # #=> [1, 2, 3, 5, 6, 7, 8, 4, 9]
773
+ # p imap.sort(["DATE"], ["SUBJECT", "hello"], "US-ASCII")
774
+ # #=> [6, 7, 8, 1]
775
+ #
776
+ # The SORT extension is described in [EXT-SORT-THREAD[https://tools.ietf.org/html/rfc5256]].
777
+ #
778
+ # source://net-imap-0.2.3/lib/net/imap.rb:935
779
+ def sort(sort_keys, search_keys, charset); end
780
+
781
+ # Sends a STARTTLS command to start TLS session.
782
+ #
783
+ # source://net-imap-0.2.3/lib/net/imap.rb:364
784
+ def starttls(options = T.unsafe(nil), verify = T.unsafe(nil)); end
785
+
786
+ # Sends a STATUS command, and returns the status of the indicated
787
+ # +mailbox+. +attr+ is a list of one or more attributes whose
788
+ # statuses are to be requested. Supported attributes include:
789
+ #
790
+ # MESSAGES:: the number of messages in the mailbox.
791
+ # RECENT:: the number of recent messages in the mailbox.
792
+ # UNSEEN:: the number of unseen messages in the mailbox.
793
+ #
794
+ # The return value is a hash of attributes. For example:
795
+ #
796
+ # p imap.status("inbox", ["MESSAGES", "RECENT"])
797
+ # #=> {"RECENT"=>0, "MESSAGES"=>44}
798
+ #
799
+ # A Net::IMAP::NoResponseError is raised if status values
800
+ # for +mailbox+ cannot be returned; for instance, because it
801
+ # does not exist.
802
+ #
803
+ # source://net-imap-0.2.3/lib/net/imap.rb:721
804
+ def status(mailbox, attr); end
805
+
806
+ # Sends a STORE command to alter data associated with messages
807
+ # in the mailbox, in particular their flags. The +set+ parameter
808
+ # is a number, an array of numbers, or a Range object. Each number
809
+ # is a message sequence number. +attr+ is the name of a data item
810
+ # to store: 'FLAGS' will replace the message's flag list
811
+ # with the provided one, '+FLAGS' will add the provided flags,
812
+ # and '-FLAGS' will remove them. +flags+ is a list of flags.
813
+ #
814
+ # The return value is an array of Net::IMAP::FetchData. For example:
815
+ #
816
+ # p imap.store(6..8, "+FLAGS", [:Deleted])
817
+ # #=> [#<Net::IMAP::FetchData seqno=6, attr={"FLAGS"=>[:Seen, :Deleted]}>, \\
818
+ # #<Net::IMAP::FetchData seqno=7, attr={"FLAGS"=>[:Seen, :Deleted]}>, \\
819
+ # #<Net::IMAP::FetchData seqno=8, attr={"FLAGS"=>[:Seen, :Deleted]}>]
820
+ #
821
+ # source://net-imap-0.2.3/lib/net/imap.rb:887
822
+ def store(set, attr, flags); end
823
+
824
+ # Sends a SUBSCRIBE command to add the specified +mailbox+ name to
825
+ # the server's set of "active" or "subscribed" mailboxes as returned
826
+ # by #lsub.
827
+ #
828
+ # A Net::IMAP::NoResponseError is raised if +mailbox+ cannot be
829
+ # subscribed to; for instance, because it does not exist.
830
+ #
831
+ # source://net-imap-0.2.3/lib/net/imap.rb:491
832
+ def subscribe(mailbox); end
833
+
834
+ # Similar to #search, but returns message sequence numbers in threaded
835
+ # format, as a Net::IMAP::ThreadMember tree. The supported algorithms
836
+ # are:
837
+ #
838
+ # ORDEREDSUBJECT:: split into single-level threads according to subject,
839
+ # ordered by date.
840
+ # REFERENCES:: split into threads by parent/child relationships determined
841
+ # by which message is a reply to which.
842
+ #
843
+ # Unlike #search, +charset+ is a required argument. US-ASCII
844
+ # and UTF-8 are sample values.
845
+ #
846
+ # The THREAD extension is described in [EXT-SORT-THREAD[https://tools.ietf.org/html/rfc5256]].
847
+ #
848
+ # source://net-imap-0.2.3/lib/net/imap.rb:981
849
+ def thread(algorithm, search_keys, charset); end
850
+
851
+ # Similar to #copy, but +set+ contains unique identifiers.
852
+ #
853
+ # source://net-imap-0.2.3/lib/net/imap.rb:905
854
+ def uid_copy(set, mailbox); end
855
+
856
+ # Similar to #fetch, but +set+ contains unique identifiers.
857
+ #
858
+ # source://net-imap-0.2.3/lib/net/imap.rb:869
859
+ def uid_fetch(set, attr, mod = T.unsafe(nil)); end
860
+
861
+ # Similar to #move, but +set+ contains unique identifiers.
862
+ #
863
+ # The MOVE extension is described in [EXT-MOVE[https://tools.ietf.org/html/rfc6851]].
864
+ #
865
+ # source://net-imap-0.2.3/lib/net/imap.rb:922
866
+ def uid_move(set, mailbox); end
867
+
868
+ # Similar to #search, but returns unique identifiers.
869
+ #
870
+ # source://net-imap-0.2.3/lib/net/imap.rb:825
871
+ def uid_search(keys, charset = T.unsafe(nil)); end
872
+
873
+ # Similar to #sort, but returns an array of unique identifiers.
874
+ #
875
+ # The SORT extension is described in [EXT-SORT-THREAD[https://tools.ietf.org/html/rfc5256]].
876
+ #
877
+ # source://net-imap-0.2.3/lib/net/imap.rb:942
878
+ def uid_sort(sort_keys, search_keys, charset); end
879
+
880
+ # Similar to #store, but +set+ contains unique identifiers.
881
+ #
882
+ # source://net-imap-0.2.3/lib/net/imap.rb:892
883
+ def uid_store(set, attr, flags); end
884
+
885
+ # Similar to #thread, but returns unique identifiers instead of
886
+ # message sequence numbers.
887
+ #
888
+ # The THREAD extension is described in [EXT-SORT-THREAD[https://tools.ietf.org/html/rfc5256]].
889
+ #
890
+ # source://net-imap-0.2.3/lib/net/imap.rb:989
891
+ def uid_thread(algorithm, search_keys, charset); end
892
+
893
+ # Sends a UNSUBSCRIBE command to remove the specified +mailbox+ name
894
+ # from the server's set of "active" or "subscribed" mailboxes.
895
+ #
896
+ # A Net::IMAP::NoResponseError is raised if +mailbox+ cannot be
897
+ # unsubscribed from; for instance, because the client is not currently
898
+ # subscribed to it.
899
+ #
900
+ # source://net-imap-0.2.3/lib/net/imap.rb:501
901
+ def unsubscribe(mailbox); end
902
+
903
+ # Sends a XLIST command, and returns a subset of names from
904
+ # the complete set of all names available to the client.
905
+ # +refname+ provides a context (for instance, a base directory
906
+ # in a directory-based mailbox hierarchy). +mailbox+ specifies
907
+ # a mailbox or (via wildcards) mailboxes under that context.
908
+ # Two wildcards may be used in +mailbox+: '*', which matches
909
+ # all characters *including* the hierarchy delimiter (for instance,
910
+ # '/' on a UNIX-hosted directory-based mailbox hierarchy); and '%',
911
+ # which matches all characters *except* the hierarchy delimiter.
912
+ #
913
+ # If +refname+ is empty, +mailbox+ is used directly to determine
914
+ # which mailboxes to match. If +mailbox+ is empty, the root
915
+ # name of +refname+ and the hierarchy delimiter are returned.
916
+ #
917
+ # The XLIST command is like the LIST command except that the flags
918
+ # returned refer to the function of the folder/mailbox, e.g. :Sent
919
+ #
920
+ # The return value is an array of +Net::IMAP::MailboxList+. For example:
921
+ #
922
+ # imap.create("foo/bar")
923
+ # imap.create("foo/baz")
924
+ # p imap.xlist("", "foo/%")
925
+ # #=> [#<Net::IMAP::MailboxList attr=[:Noselect], delim="/", name="foo/">, \\
926
+ # #<Net::IMAP::MailboxList attr=[:Noinferiors, :Marked], delim="/", name="foo/bar">, \\
927
+ # #<Net::IMAP::MailboxList attr=[:Noinferiors], delim="/", name="foo/baz">]
928
+ #
929
+ # source://net-imap-0.2.3/lib/net/imap.rb:616
930
+ def xlist(refname, mailbox); end
931
+
932
+ private
933
+
934
+ # source://net-imap-0.2.3/lib/net/imap.rb:1376
935
+ def copy_internal(cmd, set, mailbox); end
936
+
937
+ # source://net-imap-0.2.3/lib/net/imap.rb:1415
938
+ def create_ssl_params(certs = T.unsafe(nil), verify = T.unsafe(nil)); end
939
+
940
+ # source://net-imap-0.2.3/lib/net/imap.rb:1344
941
+ def fetch_internal(cmd, set, attr, mod = T.unsafe(nil)); end
942
+
943
+ # source://net-imap-0.2.3/lib/net/imap.rb:1308
944
+ def generate_tag; end
945
+
946
+ # source://net-imap-0.2.3/lib/net/imap.rb:1253
947
+ def get_response; end
948
+
949
+ # source://net-imap-0.2.3/lib/net/imap.rb:1226
950
+ def get_tagged_response(tag, cmd, timeout = T.unsafe(nil)); end
951
+
952
+ # source://net-imap-0.2.3/lib/net/imap.rb:1404
953
+ def normalize_searching_criteria(keys); end
954
+
955
+ # source://net-imap-0.2.3/lib/net/imap.rb:1313
956
+ def put_string(str); end
957
+
958
+ # source://net-imap-0.2.3/lib/net/imap.rb:1155
959
+ def receive_responses; end
960
+
961
+ # source://net-imap-0.2.3/lib/net/imap.rb:1273
962
+ def record_response(name, data); end
963
+
964
+ # source://net-imap-0.2.3/lib/net/imap.rb:1328
965
+ def search_internal(cmd, keys, charset); end
966
+
967
+ # source://net-imap-0.2.3/lib/net/imap.rb:1280
968
+ def send_command(cmd, *args, &block); end
969
+
970
+ # source://net-imap-0.2.3/lib/net/imap/command_data.rb:31
971
+ def send_data(data, tag = T.unsafe(nil)); end
972
+
973
+ # source://net-imap-0.2.3/lib/net/imap/command_data.rb:90
974
+ def send_list_data(list, tag = T.unsafe(nil)); end
975
+
976
+ # source://net-imap-0.2.3/lib/net/imap/command_data.rb:69
977
+ def send_literal(str, tag = T.unsafe(nil)); end
978
+
979
+ # source://net-imap-0.2.3/lib/net/imap/command_data.rb:86
980
+ def send_number_data(num); end
981
+
982
+ # source://net-imap-0.2.3/lib/net/imap/command_data.rb:65
983
+ def send_quoted_string(str); end
984
+
985
+ # source://net-imap-0.2.3/lib/net/imap/command_data.rb:50
986
+ def send_string_data(str, tag = T.unsafe(nil)); end
987
+
988
+ # source://net-imap-0.2.3/lib/net/imap/command_data.rb:114
989
+ def send_symbol_data(symbol); end
990
+
991
+ # source://net-imap-0.2.3/lib/net/imap/command_data.rb:106
992
+ def send_time_data(time); end
993
+
994
+ # source://net-imap-0.2.3/lib/net/imap.rb:1380
995
+ def sort_internal(cmd, sort_keys, search_keys, charset); end
996
+
997
+ # source://net-imap-0.2.3/lib/net/imap.rb:1432
998
+ def start_tls_session(params = T.unsafe(nil)); end
999
+
1000
+ # source://net-imap-0.2.3/lib/net/imap.rb:1365
1001
+ def store_internal(cmd, set, attr, flags); end
1002
+
1003
+ # source://net-imap-0.2.3/lib/net/imap.rb:1146
1004
+ def tcp_socket(host, port); end
1005
+
1006
+ # source://net-imap-0.2.3/lib/net/imap.rb:1393
1007
+ def thread_internal(cmd, algorithm, search_keys, charset); end
1008
+
1009
+ # source://net-imap-0.2.3/lib/net/imap/command_data.rb:10
1010
+ def validate_data(data); end
1011
+
1012
+ class << self
1013
+ # Returns the debug mode.
1014
+ #
1015
+ # source://net-imap-0.2.3/lib/net/imap.rb:258
1016
+ def debug; end
1017
+
1018
+ # Sets the debug mode.
1019
+ #
1020
+ # source://net-imap-0.2.3/lib/net/imap.rb:263
1021
+ def debug=(val); end
1022
+
1023
+ # Decode a string from modified UTF-7 format to UTF-8.
1024
+ #
1025
+ # UTF-7 is a 7-bit encoding of Unicode [UTF7]. IMAP uses a
1026
+ # slightly modified version of this to encode mailbox names
1027
+ # containing non-ASCII characters; see [IMAP] section 5.1.3.
1028
+ #
1029
+ # Net::IMAP does _not_ automatically encode and decode
1030
+ # mailbox names to and from UTF-7.
1031
+ #
1032
+ # source://net-imap-0.2.3/lib/net/imap/data_encoding.rb:16
1033
+ def decode_utf7(s); end
1034
+
1035
+ # The default port for IMAP connections, port 143
1036
+ #
1037
+ # source://net-imap-0.2.3/lib/net/imap.rb:268
1038
+ def default_imap_port; end
1039
+
1040
+ # The default port for IMAPS connections, port 993
1041
+ #
1042
+ # source://net-imap-0.2.3/lib/net/imap.rb:273
1043
+ def default_imaps_port; end
1044
+
1045
+ # The default port for IMAP connections, port 143
1046
+ #
1047
+ # source://net-imap-0.2.3/lib/net/imap.rb:268
1048
+ def default_port; end
1049
+
1050
+ # The default port for IMAPS connections, port 993
1051
+ #
1052
+ # source://net-imap-0.2.3/lib/net/imap.rb:273
1053
+ def default_ssl_port; end
1054
+
1055
+ # The default port for IMAPS connections, port 993
1056
+ #
1057
+ # source://net-imap-0.2.3/lib/net/imap.rb:273
1058
+ def default_tls_port; end
1059
+
1060
+ # Encode a string from UTF-8 format to modified UTF-7.
1061
+ #
1062
+ # source://net-imap-0.2.3/lib/net/imap/data_encoding.rb:27
1063
+ def encode_utf7(s); end
1064
+
1065
+ # Formats +time+ as an IMAP-style date.
1066
+ #
1067
+ # source://net-imap-0.2.3/lib/net/imap/data_encoding.rb:39
1068
+ def format_date(time); end
1069
+
1070
+ # Formats +time+ as an IMAP-style date-time.
1071
+ #
1072
+ # source://net-imap-0.2.3/lib/net/imap/data_encoding.rb:44
1073
+ def format_datetime(time); end
1074
+ end
1075
+ end
1076
+
1077
+ # Mailbox attribute indicating that this mailbox presents all messages in
1078
+ # the user's message store. Implementations MAY omit some messages, such as,
1079
+ # perhaps, those in \Trash and \Junk. When this special use is supported, it
1080
+ # is almost certain to represent a virtual mailbox
1081
+ #
1082
+ # source://net-imap-0.2.3/lib/net/imap/flags.rb:193
1083
+ Net::IMAP::ALL = T.let(T.unsafe(nil), Symbol)
1084
+
1085
+ # Mailbox attribute indicating that this mailbox is used to archive
1086
+ # messages. The meaning of an "archival" mailbox is server dependent;
1087
+ # typically, it will be used to get messages out of the inbox, or otherwise
1088
+ # keep them out of the user's way, while still making them accessible
1089
+ #
1090
+ # source://net-imap-0.2.3/lib/net/imap/flags.rb:199
1091
+ Net::IMAP::ARCHIVE = T.let(T.unsafe(nil), Symbol)
1092
+
1093
+ # source://net-imap-0.2.3/lib/net/imap/command_data.rb:133
1094
+ class Net::IMAP::Atom
1095
+ # @return [Atom] a new instance of Atom
1096
+ #
1097
+ # source://net-imap-0.2.3/lib/net/imap/command_data.rb:143
1098
+ def initialize(data); end
1099
+
1100
+ # source://net-imap-0.2.3/lib/net/imap/command_data.rb:134
1101
+ def send_data(imap, tag); end
1102
+
1103
+ # source://net-imap-0.2.3/lib/net/imap/command_data.rb:138
1104
+ def validate; end
1105
+ end
1106
+
1107
+ # Registry for SASL authenticators used by Net::IMAP.
1108
+ #
1109
+ # source://net-imap-0.2.3/lib/net/imap/authenticators.rb:4
1110
+ module Net::IMAP::Authenticators
1111
+ # Adds an authenticator for use with Net::IMAP#authenticate. +auth_type+ is the
1112
+ # {SASL mechanism}[https://www.iana.org/assignments/sasl-mechanisms/sasl-mechanisms.xhtml]
1113
+ # supported by +authenticator+ (for instance, "+PLAIN+"). The +authenticator+
1114
+ # is an object which defines a +#process+ method to handle authentication with
1115
+ # the server. See Net::IMAP::PlainAuthenticator, Net::IMAP::LoginAuthenticator,
1116
+ # Net::IMAP::CramMD5Authenticator, and Net::IMAP::DigestMD5Authenticator for
1117
+ # examples.
1118
+ #
1119
+ # If +auth_type+ refers to an existing authenticator, it will be
1120
+ # replaced by the new one.
1121
+ #
1122
+ # source://net-imap-0.2.3/lib/net/imap/authenticators.rb:16
1123
+ def add_authenticator(auth_type, authenticator); end
1124
+
1125
+ # Builds an authenticator for Net::IMAP#authenticate. +args+ will be passed
1126
+ # directly to the chosen authenticator's +#initialize+.
1127
+ #
1128
+ # source://net-imap-0.2.3/lib/net/imap/authenticators.rb:22
1129
+ def authenticator(auth_type, *args); end
1130
+
1131
+ private
1132
+
1133
+ # source://net-imap-0.2.3/lib/net/imap/authenticators.rb:33
1134
+ def authenticators; end
1135
+ end
1136
+
1137
+ # Net::IMAP::BodyTypeAttachment represents attachment body structures
1138
+ # of messages.
1139
+ #
1140
+ # ==== Fields:
1141
+ #
1142
+ # media_type:: Returns the content media type name.
1143
+ #
1144
+ # subtype:: Returns +nil+.
1145
+ #
1146
+ # param:: Returns a hash that represents parameters.
1147
+ #
1148
+ # multipart?:: Returns false.
1149
+ #
1150
+ # source://net-imap-0.2.3/lib/net/imap/response_data.rb:472
1151
+ class Net::IMAP::BodyTypeAttachment < ::Struct
1152
+ # @return [Boolean]
1153
+ #
1154
+ # source://net-imap-0.2.3/lib/net/imap/response_data.rb:473
1155
+ def multipart?; end
1156
+ end
1157
+
1158
+ # Net::IMAP::BodyTypeBasic represents basic body structures of messages.
1159
+ #
1160
+ # ==== Fields:
1161
+ #
1162
+ # media_type:: Returns the content media type name as defined in [MIME-IMB].
1163
+ #
1164
+ # subtype:: Returns the content subtype name as defined in [MIME-IMB].
1165
+ #
1166
+ # param:: Returns a hash that represents parameters as defined in [MIME-IMB].
1167
+ #
1168
+ # content_id:: Returns a string giving the content id as defined in [MIME-IMB].
1169
+ #
1170
+ # description:: Returns a string giving the content description as defined in
1171
+ # [MIME-IMB].
1172
+ #
1173
+ # [MIME-IMB].
1174
+ #
1175
+ # size:: Returns a number giving the size of the body in octets.
1176
+ #
1177
+ # md5:: Returns a string giving the body MD5 value as defined in [MD5].
1178
+ #
1179
+ # disposition:: Returns a Net::IMAP::ContentDisposition object giving
1180
+ # the content disposition.
1181
+ #
1182
+ # language:: Returns a string or an array of strings giving the body
1183
+ # language value as defined in [LANGUAGE-TAGS].
1184
+ #
1185
+ # extension:: Returns extension data.
1186
+ #
1187
+ # multipart?:: Returns false.
1188
+ #
1189
+ # source://net-imap-0.2.3/lib/net/imap/response_data.rb:388
1190
+ class Net::IMAP::BodyTypeBasic < ::Struct
1191
+ # Obsolete: use +subtype+ instead. Calling this will
1192
+ # generate a warning message to +stderr+, then return
1193
+ # the value of +subtype+.
1194
+ #
1195
+ # source://net-imap-0.2.3/lib/net/imap/response_data.rb:396
1196
+ def media_subtype; end
1197
+
1198
+ # @return [Boolean]
1199
+ #
1200
+ # source://net-imap-0.2.3/lib/net/imap/response_data.rb:389
1201
+ def multipart?; end
1202
+ end
1203
+
1204
+ # source://net-imap-0.2.3/lib/net/imap/response_data.rb:520
1205
+ class Net::IMAP::BodyTypeExtension < ::Struct
1206
+ # @return [Boolean]
1207
+ #
1208
+ # source://net-imap-0.2.3/lib/net/imap/response_data.rb:521
1209
+ def multipart?; end
1210
+ end
1211
+
1212
+ # Net::IMAP::BodyTypeMessage represents MESSAGE/RFC822 body structures of messages.
1213
+ #
1214
+ # ==== Fields:
1215
+ #
1216
+ # envelope:: Returns a Net::IMAP::Envelope giving the envelope structure.
1217
+ #
1218
+ # body:: Returns an object giving the body structure.
1219
+ #
1220
+ # And Net::IMAP::BodyTypeMessage has all methods of Net::IMAP::BodyTypeText.
1221
+ #
1222
+ # source://net-imap-0.2.3/lib/net/imap/response_data.rb:444
1223
+ class Net::IMAP::BodyTypeMessage < ::Struct
1224
+ # Obsolete: use +subtype+ instead. Calling this will
1225
+ # generate a warning message to +stderr+, then return
1226
+ # the value of +subtype+.
1227
+ #
1228
+ # source://net-imap-0.2.3/lib/net/imap/response_data.rb:452
1229
+ def media_subtype; end
1230
+
1231
+ # @return [Boolean]
1232
+ #
1233
+ # source://net-imap-0.2.3/lib/net/imap/response_data.rb:445
1234
+ def multipart?; end
1235
+ end
1236
+
1237
+ # Net::IMAP::BodyTypeMultipart represents multipart body structures
1238
+ # of messages.
1239
+ #
1240
+ # ==== Fields:
1241
+ #
1242
+ # media_type:: Returns the content media type name as defined in [MIME-IMB].
1243
+ #
1244
+ # subtype:: Returns the content subtype name as defined in [MIME-IMB].
1245
+ #
1246
+ # parts:: Returns multiple parts.
1247
+ #
1248
+ # param:: Returns a hash that represents parameters as defined in [MIME-IMB].
1249
+ #
1250
+ # disposition:: Returns a Net::IMAP::ContentDisposition object giving
1251
+ # the content disposition.
1252
+ #
1253
+ # language:: Returns a string or an array of strings giving the body
1254
+ # language value as defined in [LANGUAGE-TAGS].
1255
+ #
1256
+ # extension:: Returns extension data.
1257
+ #
1258
+ # multipart?:: Returns true.
1259
+ #
1260
+ # source://net-imap-0.2.3/lib/net/imap/response_data.rb:504
1261
+ class Net::IMAP::BodyTypeMultipart < ::Struct
1262
+ # Obsolete: use +subtype+ instead. Calling this will
1263
+ # generate a warning message to +stderr+, then return
1264
+ # the value of +subtype+.
1265
+ #
1266
+ # source://net-imap-0.2.3/lib/net/imap/response_data.rb:512
1267
+ def media_subtype; end
1268
+
1269
+ # @return [Boolean]
1270
+ #
1271
+ # source://net-imap-0.2.3/lib/net/imap/response_data.rb:505
1272
+ def multipart?; end
1273
+ end
1274
+
1275
+ # Net::IMAP::BodyTypeText represents TEXT body structures of messages.
1276
+ #
1277
+ # ==== Fields:
1278
+ #
1279
+ # lines:: Returns the size of the body in text lines.
1280
+ #
1281
+ # And Net::IMAP::BodyTypeText has all fields of Net::IMAP::BodyTypeBasic.
1282
+ #
1283
+ # source://net-imap-0.2.3/lib/net/imap/response_data.rb:415
1284
+ class Net::IMAP::BodyTypeText < ::Struct
1285
+ # Obsolete: use +subtype+ instead. Calling this will
1286
+ # generate a warning message to +stderr+, then return
1287
+ # the value of +subtype+.
1288
+ #
1289
+ # source://net-imap-0.2.3/lib/net/imap/response_data.rb:423
1290
+ def media_subtype; end
1291
+
1292
+ # @return [Boolean]
1293
+ #
1294
+ # source://net-imap-0.2.3/lib/net/imap/response_data.rb:416
1295
+ def multipart?; end
1296
+ end
1297
+
1298
+ # source://net-imap-0.2.3/lib/net/imap/command_data.rb:234
1299
+ class Net::IMAP::ClientID
1300
+ # @return [ClientID] a new instance of ClientID
1301
+ #
1302
+ # source://net-imap-0.2.3/lib/net/imap/command_data.rb:246
1303
+ def initialize(data); end
1304
+
1305
+ # source://net-imap-0.2.3/lib/net/imap/command_data.rb:236
1306
+ def send_data(imap, tag); end
1307
+
1308
+ # source://net-imap-0.2.3/lib/net/imap/command_data.rb:240
1309
+ def validate; end
1310
+
1311
+ private
1312
+
1313
+ # source://net-imap-0.2.3/lib/net/imap/command_data.rb:260
1314
+ def format_internal(client_id); end
1315
+
1316
+ # source://net-imap-0.2.3/lib/net/imap/command_data.rb:250
1317
+ def validate_internal(client_id); end
1318
+ end
1319
+
1320
+ # Authenticator for the "+CRAM-MD5+" SASL mechanism, specified in
1321
+ # RFC2195[https://tools.ietf.org/html/rfc2195]. See Net::IMAP#authenticate.
1322
+ #
1323
+ # == Deprecated
1324
+ #
1325
+ # +CRAM-MD5+ is obsolete and insecure. It is included for compatibility with
1326
+ # existing servers.
1327
+ # {draft-ietf-sasl-crammd5-to-historic}[https://tools.ietf.org/html/draft-ietf-sasl-crammd5-to-historic-00.html]
1328
+ # recommends using +SCRAM-*+ or +PLAIN+ protected by TLS instead.
1329
+ #
1330
+ # Additionally, RFC8314[https://tools.ietf.org/html/rfc8314] discourage the use
1331
+ # of cleartext and recommends TLS version 1.2 or greater be used for all
1332
+ # traffic. With TLS +CRAM-MD5+ is okay, but so is +PLAIN+
1333
+ #
1334
+ # source://net-imap-0.2.3/lib/net/imap/authenticators/cram_md5.rb:18
1335
+ class Net::IMAP::CramMD5Authenticator
1336
+ # @return [CramMD5Authenticator] a new instance of CramMD5Authenticator
1337
+ #
1338
+ # source://net-imap-0.2.3/lib/net/imap/authenticators/cram_md5.rb:26
1339
+ def initialize(user, password); end
1340
+
1341
+ # source://net-imap-0.2.3/lib/net/imap/authenticators/cram_md5.rb:19
1342
+ def process(challenge); end
1343
+
1344
+ private
1345
+
1346
+ # source://net-imap-0.2.3/lib/net/imap/authenticators/cram_md5.rb:31
1347
+ def hmac_md5(text, key); end
1348
+ end
1349
+
1350
+ # Mailbox attribute indicating that this mailbox is used to hold draft
1351
+ # messages -- typically, messages that are being composed but have not yet
1352
+ # been sent. In some server implementations, this might be a virtual
1353
+ # mailbox, containing messages from other mailboxes that are marked with the
1354
+ # "\Draft" message flag. Alternatively, this might just be advice that a
1355
+ # client put drafts here
1356
+ #
1357
+ # source://net-imap-0.2.3/lib/net/imap/flags.rb:207
1358
+ Net::IMAP::DRAFTS = T.let(T.unsafe(nil), Symbol)
1359
+
1360
+ # Net::IMAP authenticator for the "`DIGEST-MD5`" SASL mechanism type, specified
1361
+ # in RFC2831(https://tools.ietf.org/html/rfc2831). See Net::IMAP#authenticate.
1362
+ #
1363
+ # == Deprecated
1364
+ #
1365
+ # "+DIGEST-MD5+" has been deprecated by
1366
+ # {RFC6331}[https://tools.ietf.org/html/rfc6331] and should not be relied on for
1367
+ # security. It is included for compatibility with existing servers.
1368
+ #
1369
+ # source://net-imap-0.2.3/lib/net/imap/authenticators/digest_md5.rb:14
1370
+ class Net::IMAP::DigestMD5Authenticator
1371
+ # @return [DigestMD5Authenticator] a new instance of DigestMD5Authenticator
1372
+ #
1373
+ # source://net-imap-0.2.3/lib/net/imap/authenticators/digest_md5.rb:80
1374
+ def initialize(user, password, authname = T.unsafe(nil)); end
1375
+
1376
+ # source://net-imap-0.2.3/lib/net/imap/authenticators/digest_md5.rb:15
1377
+ def process(challenge); end
1378
+
1379
+ private
1380
+
1381
+ # source://net-imap-0.2.3/lib/net/imap/authenticators/digest_md5.rb:90
1382
+ def nc(nonce); end
1383
+
1384
+ # some responses need quoting
1385
+ #
1386
+ # source://net-imap-0.2.3/lib/net/imap/authenticators/digest_md5.rb:100
1387
+ def qdval(k, v); end
1388
+ end
1389
+
1390
+ # The presence of this attribute indicates that the mailbox has child
1391
+ # mailboxes. A server SHOULD NOT set this attribute if there are child
1392
+ # mailboxes and the user does not have permission to access any of them. In
1393
+ # this case, \HasNoChildren SHOULD be used. In many cases, however, a server
1394
+ # may not be able to efficiently compute whether a user has access to any
1395
+ # child mailboxes. Note that even though the \HasChildren attribute for a
1396
+ # mailbox must be correct at the time of processing the mailbox, a client
1397
+ # must be prepared to deal with a situation when a mailbox is marked with
1398
+ # the \HasChildren attribute, but no child mailbox appears in the response
1399
+ # to the LIST command. This might happen, for example, due to child
1400
+ # mailboxes being deleted or made inaccessible to the user (using access
1401
+ # control) by another client before the server is able to list them.
1402
+ #
1403
+ # It is an error for the server to return both a \HasChildren and a
1404
+ # \HasNoChildren attribute in the same LIST response. A client that
1405
+ # encounters a LIST response with both \HasChildren and \HasNoChildren
1406
+ # attributes present should act as if both are absent in the LIST response.
1407
+ #
1408
+ # source://net-imap-0.2.3/lib/net/imap/flags.rb:127
1409
+ Net::IMAP::HAS_CHILDREN = T.let(T.unsafe(nil), Symbol)
1410
+
1411
+ # The presence of this attribute indicates that the mailbox has NO child
1412
+ # mailboxes that are accessible to the currently authenticated user.
1413
+ #
1414
+ # It is an error for the server to return both a \HasChildren and a
1415
+ # \HasNoChildren attribute in the same LIST response. A client that
1416
+ # encounters a LIST response with both \HasChildren and \HasNoChildren
1417
+ # attributes present should act as if both are absent in the LIST response.
1418
+ #
1419
+ # Note: the \HasNoChildren attribute should not be confused with the
1420
+ # \NoInferiors attribute, which indicates that no child mailboxes exist now
1421
+ # and none can be created in the future.
1422
+ #
1423
+ # source://net-imap-0.2.3/lib/net/imap/flags.rb:140
1424
+ Net::IMAP::HAS_NO_CHILDREN = T.let(T.unsafe(nil), Symbol)
1425
+
1426
+ # Net::IMAP::IgnoredResponse represents intentionally ignored responses.
1427
+ #
1428
+ # This includes untagged response "NOOP" sent by eg. Zimbra to avoid some
1429
+ # clients to close the connection.
1430
+ #
1431
+ # It matches no IMAP standard.
1432
+ #
1433
+ # ==== Fields:
1434
+ #
1435
+ # raw_data:: Returns the raw data string.
1436
+ #
1437
+ # source://net-imap-0.2.3/lib/net/imap/response_data.rb:53
1438
+ class Net::IMAP::IgnoredResponse < ::Struct; end
1439
+
1440
+ # Mailbox attribute indicating that this mailbox is where messages deemed to
1441
+ # be junk mail are held. Some server implementations might put messages here
1442
+ # automatically. Alternatively, this might just be advice to a client-side
1443
+ # spam filter.
1444
+ #
1445
+ # source://net-imap-0.2.3/lib/net/imap/flags.rb:215
1446
+ Net::IMAP::JUNK = T.let(T.unsafe(nil), Symbol)
1447
+
1448
+ # source://net-imap-0.2.3/lib/net/imap/command_data.rb:163
1449
+ class Net::IMAP::Literal
1450
+ # @return [Literal] a new instance of Literal
1451
+ #
1452
+ # source://net-imap-0.2.3/lib/net/imap/command_data.rb:173
1453
+ def initialize(data); end
1454
+
1455
+ # source://net-imap-0.2.3/lib/net/imap/command_data.rb:164
1456
+ def send_data(imap, tag); end
1457
+
1458
+ # source://net-imap-0.2.3/lib/net/imap/command_data.rb:168
1459
+ def validate; end
1460
+ end
1461
+
1462
+ # Authenticator for the "+LOGIN+" SASL mechanism. See Net::IMAP#authenticate.
1463
+ #
1464
+ # +LOGIN+ authentication sends the password in cleartext.
1465
+ # RFC3501[https://tools.ietf.org/html/rfc3501] encourages servers to disable
1466
+ # cleartext authentication until after TLS has been negotiated.
1467
+ # RFC8314[https://tools.ietf.org/html/rfc8314] recommends TLS version 1.2 or
1468
+ # greater be used for all traffic, and deprecate cleartext access ASAP. +LOGIN+
1469
+ # can be secured by TLS encryption.
1470
+ #
1471
+ # == Deprecated
1472
+ #
1473
+ # The {SASL mechanisms
1474
+ # registry}[https://www.iana.org/assignments/sasl-mechanisms/sasl-mechanisms.xhtml]
1475
+ # marks "LOGIN" as obsoleted in favor of "PLAIN". It is included here for
1476
+ # compatibility with existing servers. See
1477
+ # {draft-murchison-sasl-login}[https://www.iana.org/go/draft-murchison-sasl-login]
1478
+ # for both specification and deprecation.
1479
+ #
1480
+ # source://net-imap-0.2.3/lib/net/imap/authenticators/login.rb:20
1481
+ class Net::IMAP::LoginAuthenticator
1482
+ # @return [LoginAuthenticator] a new instance of LoginAuthenticator
1483
+ #
1484
+ # source://net-imap-0.2.3/lib/net/imap/authenticators/login.rb:36
1485
+ def initialize(user, password); end
1486
+
1487
+ # source://net-imap-0.2.3/lib/net/imap/authenticators/login.rb:21
1488
+ def process(data); end
1489
+ end
1490
+
1491
+ # source://net-imap-0.2.3/lib/net/imap/command_data.rb:178
1492
+ class Net::IMAP::MessageSet
1493
+ # @return [MessageSet] a new instance of MessageSet
1494
+ #
1495
+ # source://net-imap-0.2.3/lib/net/imap/command_data.rb:189
1496
+ def initialize(data); end
1497
+
1498
+ # source://net-imap-0.2.3/lib/net/imap/command_data.rb:179
1499
+ def send_data(imap, tag); end
1500
+
1501
+ # source://net-imap-0.2.3/lib/net/imap/command_data.rb:183
1502
+ def validate; end
1503
+
1504
+ private
1505
+
1506
+ # source://net-imap-0.2.3/lib/net/imap/command_data.rb:193
1507
+ def format_internal(data); end
1508
+
1509
+ # source://net-imap-0.2.3/lib/net/imap/command_data.rb:214
1510
+ def validate_internal(data); end
1511
+ end
1512
+
1513
+ # The "\NonExistent" attribute indicates that a mailbox name does not refer
1514
+ # to an existing mailbox. Note that this attribute is not meaningful by
1515
+ # itself, as mailbox names that match the canonical LIST pattern but don't
1516
+ # exist must not be returned unless one of the two conditions listed below
1517
+ # is also satisfied:
1518
+ #
1519
+ # 1. The mailbox name also satisfies the selection criteria (for example,
1520
+ # it is subscribed and the "SUBSCRIBED" selection option has been
1521
+ # specified).
1522
+ #
1523
+ # 2. "RECURSIVEMATCH" has been specified, and the mailbox name has at least
1524
+ # one descendant mailbox name that does not match the LIST pattern and
1525
+ # does match the selection criteria.
1526
+ #
1527
+ # In practice, this means that the "\NonExistent" attribute is usually
1528
+ # returned with one or more of "\Subscribed", "\Remote", "\HasChildren", or
1529
+ # the CHILDINFO extended data item.
1530
+ #
1531
+ # The client must treat the presence of the \NonExistent attribute as if the
1532
+ # \NoSelect attribute was also sent by the server
1533
+ #
1534
+ # source://net-imap-0.2.3/lib/net/imap/flags.rb:96
1535
+ Net::IMAP::NONEXISTENT = T.let(T.unsafe(nil), Symbol)
1536
+
1537
+ # Net::IMAP::Namespace represents a single [RFC-2342] namespace.
1538
+ #
1539
+ # Namespace = nil / "(" 1*( "(" string SP (<"> QUOTED_CHAR <"> /
1540
+ # nil) *(Namespace_Response_Extension) ")" ) ")"
1541
+ #
1542
+ # Namespace_Response_Extension = SP string SP "(" string *(SP string)
1543
+ # ")"
1544
+ #
1545
+ # ==== Fields:
1546
+ #
1547
+ # prefix:: Returns the namespace prefix string.
1548
+ # delim:: Returns nil or the hierarchy delimiter character.
1549
+ # extensions:: Returns a hash of extension names to extension flag arrays.
1550
+ #
1551
+ # source://net-imap-0.2.3/lib/net/imap/response_data.rb:204
1552
+ class Net::IMAP::Namespace < ::Struct; end
1553
+
1554
+ # Net::IMAP::Namespaces represents the response from [RFC-2342] NAMESPACE.
1555
+ #
1556
+ # Namespace_Response = "*" SP "NAMESPACE" SP Namespace SP Namespace SP
1557
+ # Namespace
1558
+ #
1559
+ # ; The first Namespace is the Personal Namespace(s)
1560
+ # ; The second Namespace is the Other Users' Namespace(s)
1561
+ # ; The third Namespace is the Shared Namespace(s)
1562
+ #
1563
+ # ==== Fields:
1564
+ #
1565
+ # personal:: Returns an array of Personal Net::IMAP::Namespace objects.
1566
+ # other:: Returns an array of Other Users' Net::IMAP::Namespace objects.
1567
+ # shared:: Returns an array of Shared Net::IMAP::Namespace objects.
1568
+ #
1569
+ # source://net-imap-0.2.3/lib/net/imap/response_data.rb:222
1570
+ class Net::IMAP::Namespaces < ::Struct; end
1571
+
1572
+ # Common validators of number and nz_number types
1573
+ #
1574
+ # source://net-imap-0.2.3/lib/net/imap/data_encoding.rb:49
1575
+ module Net::IMAP::NumValidator
1576
+ private
1577
+
1578
+ # Ensure argument is 'mod_sequence_value' or raise DataFormatError
1579
+ #
1580
+ # source://net-imap-0.2.3/lib/net/imap/data_encoding.rb:96
1581
+ def ensure_mod_sequence_value(num); end
1582
+
1583
+ # Ensure argument is 'number' or raise DataFormatError
1584
+ #
1585
+ # source://net-imap-0.2.3/lib/net/imap/data_encoding.rb:80
1586
+ def ensure_number(num); end
1587
+
1588
+ # Ensure argument is 'nz_number' or raise DataFormatError
1589
+ #
1590
+ # source://net-imap-0.2.3/lib/net/imap/data_encoding.rb:88
1591
+ def ensure_nz_number(num); end
1592
+
1593
+ # Check is passed argument valid 'mod_sequence_value' in RFC 4551 terminology
1594
+ #
1595
+ # source://net-imap-0.2.3/lib/net/imap/data_encoding.rb:71
1596
+ def valid_mod_sequence_value?(num); end
1597
+
1598
+ # Check is passed argument valid 'number' in RFC 3501 terminology
1599
+ #
1600
+ # source://net-imap-0.2.3/lib/net/imap/data_encoding.rb:53
1601
+ def valid_number?(num); end
1602
+
1603
+ # Check is passed argument valid 'nz_number' in RFC 3501 terminology
1604
+ #
1605
+ # source://net-imap-0.2.3/lib/net/imap/data_encoding.rb:62
1606
+ def valid_nz_number?(num); end
1607
+
1608
+ class << self
1609
+ # Ensure argument is 'mod_sequence_value' or raise DataFormatError
1610
+ #
1611
+ # @raise [DataFormatError]
1612
+ #
1613
+ # source://net-imap-0.2.3/lib/net/imap/data_encoding.rb:96
1614
+ def ensure_mod_sequence_value(num); end
1615
+
1616
+ # Ensure argument is 'number' or raise DataFormatError
1617
+ #
1618
+ # @raise [DataFormatError]
1619
+ #
1620
+ # source://net-imap-0.2.3/lib/net/imap/data_encoding.rb:80
1621
+ def ensure_number(num); end
1622
+
1623
+ # Ensure argument is 'nz_number' or raise DataFormatError
1624
+ #
1625
+ # @raise [DataFormatError]
1626
+ #
1627
+ # source://net-imap-0.2.3/lib/net/imap/data_encoding.rb:88
1628
+ def ensure_nz_number(num); end
1629
+
1630
+ # Check is passed argument valid 'mod_sequence_value' in RFC 4551 terminology
1631
+ #
1632
+ # @return [Boolean]
1633
+ #
1634
+ # source://net-imap-0.2.3/lib/net/imap/data_encoding.rb:71
1635
+ def valid_mod_sequence_value?(num); end
1636
+
1637
+ # Check is passed argument valid 'number' in RFC 3501 terminology
1638
+ #
1639
+ # @return [Boolean]
1640
+ #
1641
+ # source://net-imap-0.2.3/lib/net/imap/data_encoding.rb:53
1642
+ def valid_number?(num); end
1643
+
1644
+ # Check is passed argument valid 'nz_number' in RFC 3501 terminology
1645
+ #
1646
+ # @return [Boolean]
1647
+ #
1648
+ # source://net-imap-0.2.3/lib/net/imap/data_encoding.rb:62
1649
+ def valid_nz_number?(num); end
1650
+ end
1651
+ end
1652
+
1653
+ # Authenticator for the "+PLAIN+" SASL mechanism, specified in
1654
+ # RFC4616[https://tools.ietf.org/html/rfc4616]. See Net::IMAP#authenticate.
1655
+ #
1656
+ # +PLAIN+ authentication sends the password in cleartext.
1657
+ # RFC3501[https://tools.ietf.org/html/rfc3501] encourages servers to disable
1658
+ # cleartext authentication until after TLS has been negotiated.
1659
+ # RFC8314[https://tools.ietf.org/html/rfc8314] recommends TLS version 1.2 or
1660
+ # greater be used for all traffic, and deprecate cleartext access ASAP. +PLAIN+
1661
+ # can be secured by TLS encryption.
1662
+ #
1663
+ # source://net-imap-0.2.3/lib/net/imap/authenticators/plain.rb:12
1664
+ class Net::IMAP::PlainAuthenticator
1665
+ # +username+ is the authentication identity, the identity whose +password+ is
1666
+ # used. +username+ is referred to as +authcid+ by
1667
+ # RFC4616[https://tools.ietf.org/html/rfc4616].
1668
+ #
1669
+ # +authzid+ is the authorization identity (identity to act as). It can
1670
+ # usually be left blank. When +authzid+ is left blank (nil or empty string)
1671
+ # the server will derive an identity from the credentials and use that as the
1672
+ # authorization identity.
1673
+ #
1674
+ # @raise [ArgumentError]
1675
+ # @return [PlainAuthenticator] a new instance of PlainAuthenticator
1676
+ #
1677
+ # source://net-imap-0.2.3/lib/net/imap/authenticators/plain.rb:31
1678
+ def initialize(username, password, authzid: T.unsafe(nil)); end
1679
+
1680
+ # source://net-imap-0.2.3/lib/net/imap/authenticators/plain.rb:14
1681
+ def process(data); end
1682
+ end
1683
+
1684
+ # source://net-imap-0.2.3/lib/net/imap/authenticators/plain.rb:19
1685
+ Net::IMAP::PlainAuthenticator::NULL = T.let(T.unsafe(nil), String)
1686
+
1687
+ # source://net-imap-0.2.3/lib/net/imap/command_data.rb:148
1688
+ class Net::IMAP::QuotedString
1689
+ # @return [QuotedString] a new instance of QuotedString
1690
+ #
1691
+ # source://net-imap-0.2.3/lib/net/imap/command_data.rb:158
1692
+ def initialize(data); end
1693
+
1694
+ # source://net-imap-0.2.3/lib/net/imap/command_data.rb:149
1695
+ def send_data(imap, tag); end
1696
+
1697
+ # source://net-imap-0.2.3/lib/net/imap/command_data.rb:153
1698
+ def validate; end
1699
+ end
1700
+
1701
+ # The mailbox is a remote mailbox.
1702
+ #
1703
+ # source://net-imap-0.2.3/lib/net/imap/flags.rb:165
1704
+ Net::IMAP::REMOTE = T.let(T.unsafe(nil), Symbol)
1705
+
1706
+ # source://net-imap-0.2.3/lib/net/imap/errors.rb:54
1707
+ Net::IMAP::RESPONSE_ERRORS = T.let(T.unsafe(nil), Hash)
1708
+
1709
+ # source://net-imap-0.2.3/lib/net/imap/command_data.rb:118
1710
+ class Net::IMAP::RawData
1711
+ # @return [RawData] a new instance of RawData
1712
+ #
1713
+ # source://net-imap-0.2.3/lib/net/imap/command_data.rb:128
1714
+ def initialize(data); end
1715
+
1716
+ # source://net-imap-0.2.3/lib/net/imap/command_data.rb:119
1717
+ def send_data(imap, tag); end
1718
+
1719
+ # source://net-imap-0.2.3/lib/net/imap/command_data.rb:123
1720
+ def validate; end
1721
+ end
1722
+
1723
+ # Superclass of all errors used to encapsulate "fail" responses
1724
+ # from the server.
1725
+ #
1726
+ # source://net-imap-0.2.3/lib/net/imap/errors.rb:20
1727
+ class Net::IMAP::ResponseError < ::Net::IMAP::Error
1728
+ # @return [ResponseError] a new instance of ResponseError
1729
+ #
1730
+ # source://net-imap-0.2.3/lib/net/imap/errors.rb:25
1731
+ def initialize(response); end
1732
+
1733
+ # The response that caused this error
1734
+ #
1735
+ # source://net-imap-0.2.3/lib/net/imap/errors.rb:23
1736
+ def response; end
1737
+
1738
+ # The response that caused this error
1739
+ #
1740
+ # source://net-imap-0.2.3/lib/net/imap/errors.rb:23
1741
+ def response=(_arg0); end
1742
+ end
1743
+
1744
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:8
1745
+ class Net::IMAP::ResponseParser
1746
+ # @return [ResponseParser] a new instance of ResponseParser
1747
+ #
1748
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:9
1749
+ def initialize; end
1750
+
1751
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:16
1752
+ def parse(str); end
1753
+
1754
+ private
1755
+
1756
+ # like match, but does not raise error on failure.
1757
+ #
1758
+ # returns and shifts token on successful match
1759
+ # returns nil and leaves @token unshifted on no match
1760
+ #
1761
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:1375
1762
+ def accept(*args); end
1763
+
1764
+ # This advances @pos directly so it's safe before changing @lex_state.
1765
+ #
1766
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:1332
1767
+ def accept_space; end
1768
+
1769
+ # The RFC is very strict about this and usually we should be too.
1770
+ # But skipping spaces is usually a safe workaround for buggy servers.
1771
+ #
1772
+ # This advances @pos directly so it's safe before changing @lex_state.
1773
+ #
1774
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:1344
1775
+ def accept_spaces; end
1776
+
1777
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:1178
1778
+ def address; end
1779
+
1780
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:1148
1781
+ def address_list; end
1782
+
1783
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:1234
1784
+ def astring; end
1785
+
1786
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:1287
1787
+ def astring_chars; end
1788
+
1789
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:1279
1790
+ def atom; end
1791
+
1792
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:326
1793
+ def body; end
1794
+
1795
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:307
1796
+ def body_data; end
1797
+
1798
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:513
1799
+ def body_ext_1part; end
1800
+
1801
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:549
1802
+ def body_ext_mpart; end
1803
+
1804
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:639
1805
+ def body_extension; end
1806
+
1807
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:625
1808
+ def body_extensions; end
1809
+
1810
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:475
1811
+ def body_fields; end
1812
+
1813
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:585
1814
+ def body_fld_dsp; end
1815
+
1816
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:599
1817
+ def body_fld_lang; end
1818
+
1819
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:488
1820
+ def body_fld_param; end
1821
+
1822
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:346
1823
+ def body_type_1part; end
1824
+
1825
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:432
1826
+ def body_type_attachment; end
1827
+
1828
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:362
1829
+ def body_type_basic; end
1830
+
1831
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:439
1832
+ def body_type_mixed; end
1833
+
1834
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:446
1835
+ def body_type_mpart; end
1836
+
1837
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:391
1838
+ def body_type_msg; end
1839
+
1840
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:377
1841
+ def body_type_text; end
1842
+
1843
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:967
1844
+ def capability_data; end
1845
+
1846
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:960
1847
+ def capability_response; end
1848
+
1849
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:1259
1850
+ def case_insensitive_string; end
1851
+
1852
+ # See https://www.rfc-editor.org/errata/rfc3501
1853
+ #
1854
+ # charset = atom / quoted
1855
+ #
1856
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:1306
1857
+ def charset; end
1858
+
1859
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:1135
1860
+ def charset_list; end
1861
+
1862
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:1291
1863
+ def combine_adjacent(*tokens); end
1864
+
1865
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:108
1866
+ def continue_req; end
1867
+
1868
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:238
1869
+ def envelope; end
1870
+
1871
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:231
1872
+ def envelope_data; end
1873
+
1874
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:1209
1875
+ def flag_list; end
1876
+
1877
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:273
1878
+ def flags_data; end
1879
+
1880
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:736
1881
+ def flags_response; end
1882
+
1883
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:689
1884
+ def format_string(str); end
1885
+
1886
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:814
1887
+ def getacl_response; end
1888
+
1889
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:764
1890
+ def getquota_response; end
1891
+
1892
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:797
1893
+ def getquotaroot_response; end
1894
+
1895
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:983
1896
+ def id_response; end
1897
+
1898
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:722
1899
+ def ignored_response; end
1900
+
1901
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:280
1902
+ def internaldate_data; end
1903
+
1904
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:743
1905
+ def list_response; end
1906
+
1907
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:1383
1908
+ def lookahead; end
1909
+
1910
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:750
1911
+ def mailbox_list; end
1912
+
1913
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:1351
1914
+ def match(*args, lex_state: T.unsafe(nil)); end
1915
+
1916
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:464
1917
+ def media_type; end
1918
+
1919
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:712
1920
+ def modseq_data; end
1921
+
1922
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:193
1923
+ def msg_att(n); end
1924
+
1925
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:1046
1926
+ def namespace; end
1927
+
1928
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:1012
1929
+ def namespace_response; end
1930
+
1931
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:1056
1932
+ def namespace_response_extensions; end
1933
+
1934
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:1028
1935
+ def namespaces; end
1936
+
1937
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:1391
1938
+ def next_token; end
1939
+
1940
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:1324
1941
+ def nil_atom; end
1942
+
1943
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:1224
1944
+ def nstring; end
1945
+
1946
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:1314
1947
+ def number; end
1948
+
1949
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:177
1950
+ def numeric_response; end
1951
+
1952
+ # @raise [ResponseParseError]
1953
+ #
1954
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:1510
1955
+ def parse_error(fmt, *args); end
1956
+
1957
+ # resp-text = ["[" resp-text-code "]" SP] text
1958
+ #
1959
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:1082
1960
+ def resp_text; end
1961
+
1962
+ # See https://www.rfc-editor.org/errata/rfc3501
1963
+ #
1964
+ # resp-text-code = "ALERT" /
1965
+ # "BADCHARSET" [SP "(" charset *(SP charset) ")" ] /
1966
+ # capability-data / "PARSE" /
1967
+ # "PERMANENTFLAGS" SP "("
1968
+ # [flag-perm *(SP flag-perm)] ")" /
1969
+ # "READ-ONLY" / "READ-WRITE" / "TRYCREATE" /
1970
+ # "UIDNEXT" SP nz-number / "UIDVALIDITY" SP nz-number /
1971
+ # "UNSEEN" SP nz-number /
1972
+ # atom [SP 1*<any TEXT-CHAR except "]">]
1973
+ #
1974
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:1106
1975
+ def resp_text_code; end
1976
+
1977
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:89
1978
+ def response; end
1979
+
1980
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:170
1981
+ def response_cond; end
1982
+
1983
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:161
1984
+ def response_tagged; end
1985
+
1986
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:119
1987
+ def response_untagged; end
1988
+
1989
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:300
1990
+ def rfc822_size; end
1991
+
1992
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:288
1993
+ def rfc822_text; end
1994
+
1995
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:840
1996
+ def search_response; end
1997
+
1998
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:654
1999
+ def section; end
2000
+
2001
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:1387
2002
+ def shift_token; end
2003
+
2004
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:933
2005
+ def status_response; end
2006
+
2007
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:1243
2008
+ def string; end
2009
+
2010
+ # @return [Boolean]
2011
+ #
2012
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:1255
2013
+ def string_token?(token); end
2014
+
2015
+ # text = 1*TEXT-CHAR
2016
+ # TEXT-CHAR = <any CHAR except CR and LF>
2017
+ #
2018
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:1077
2019
+ def text; end
2020
+
2021
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:729
2022
+ def text_response; end
2023
+
2024
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:898
2025
+ def thread_branch(token); end
2026
+
2027
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:871
2028
+ def thread_response; end
2029
+
2030
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:705
2031
+ def uid_data; end
2032
+ end
2033
+
2034
+ # ASTRING-CHAR = ATOM-CHAR / resp-specials
2035
+ # resp-specials = "]"
2036
+ #
2037
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:1285
2038
+ Net::IMAP::ResponseParser::ASTRING_CHARS_TOKENS = T.let(T.unsafe(nil), Array)
2039
+
2040
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:1329
2041
+ Net::IMAP::ResponseParser::SPACES_REGEXP = T.let(T.unsafe(nil), Regexp)
2042
+
2043
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:87
2044
+ class Net::IMAP::ResponseParser::Token < ::Struct
2045
+ # Sets the attribute symbol
2046
+ #
2047
+ # @param value [Object] the value to set the attribute symbol to.
2048
+ # @return [Object] the newly set value
2049
+ #
2050
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:87
2051
+ def symbol=(_); end
2052
+
2053
+ # Sets the attribute value
2054
+ #
2055
+ # @param value [Object] the value to set the attribute value to.
2056
+ # @return [Object] the newly set value
2057
+ #
2058
+ # source://net-imap-0.2.3/lib/net/imap/response_parser.rb:87
2059
+ def value=(_); end
2060
+ end
2061
+
2062
+ # Mailbox attribute indicating that this mailbox is used to hold copies of
2063
+ # messages that have been sent. Some server implementations might put
2064
+ # messages here automatically. Alternatively, this might just be advice that
2065
+ # a client save sent messages here.
2066
+ #
2067
+ # source://net-imap-0.2.3/lib/net/imap/flags.rb:221
2068
+ Net::IMAP::SENT = T.let(T.unsafe(nil), Symbol)
2069
+
2070
+ # The mailbox name was subscribed to using the SUBSCRIBE command.
2071
+ #
2072
+ # source://net-imap-0.2.3/lib/net/imap/flags.rb:162
2073
+ Net::IMAP::SUBSCRIBED = T.let(T.unsafe(nil), Symbol)
2074
+
2075
+ # source://net-imap-0.2.3/lib/net/imap/command_data.rb:269
2076
+ module Net::IMAP::StringFormatter
2077
+ private
2078
+
2079
+ # coerces non-nil using +to_s+
2080
+ #
2081
+ # source://net-imap-0.2.3/lib/net/imap/command_data.rb:296
2082
+ def nstring(str); end
2083
+
2084
+ # coerces using +to_s+
2085
+ #
2086
+ # source://net-imap-0.2.3/lib/net/imap/command_data.rb:286
2087
+ def string(str); end
2088
+
2089
+ # Allows nil, symbols, and strings
2090
+ #
2091
+ # source://net-imap-0.2.3/lib/net/imap/command_data.rb:281
2092
+ def valid_nstring?(str); end
2093
+
2094
+ # Allows symbols in addition to strings
2095
+ #
2096
+ # source://net-imap-0.2.3/lib/net/imap/command_data.rb:276
2097
+ def valid_string?(str); end
2098
+
2099
+ class << self
2100
+ # coerces non-nil using +to_s+
2101
+ #
2102
+ # source://net-imap-0.2.3/lib/net/imap/command_data.rb:296
2103
+ def nstring(str); end
2104
+
2105
+ # coerces using +to_s+
2106
+ #
2107
+ # source://net-imap-0.2.3/lib/net/imap/command_data.rb:286
2108
+ def string(str); end
2109
+
2110
+ # Allows nil, symbols, and strings
2111
+ #
2112
+ # @return [Boolean]
2113
+ #
2114
+ # source://net-imap-0.2.3/lib/net/imap/command_data.rb:281
2115
+ def valid_nstring?(str); end
2116
+
2117
+ # Allows symbols in addition to strings
2118
+ #
2119
+ # @return [Boolean]
2120
+ #
2121
+ # source://net-imap-0.2.3/lib/net/imap/command_data.rb:276
2122
+ def valid_string?(str); end
2123
+ end
2124
+ end
2125
+
2126
+ # source://net-imap-0.2.3/lib/net/imap/command_data.rb:271
2127
+ Net::IMAP::StringFormatter::LITERAL_REGEX = T.let(T.unsafe(nil), Regexp)
2128
+
2129
+ # Mailbox attribute indicating that this mailbox is used to hold messages
2130
+ # that have been deleted or marked for deletion. In some server
2131
+ # implementations, this might be a virtual mailbox, containing messages from
2132
+ # other mailboxes that are marked with the "\Deleted" message flag.
2133
+ # Alternatively, this might just be advice that a client that chooses not to
2134
+ # use the IMAP "\Deleted" model should use as its trash location. In server
2135
+ # implementations that strictly expect the IMAP "\Deleted" model, this
2136
+ # special use is likely not to be supported.
2137
+ #
2138
+ # source://net-imap-0.2.3/lib/net/imap/flags.rb:231
2139
+ Net::IMAP::TRASH = T.let(T.unsafe(nil), Symbol)
2140
+
2141
+ # Error raised upon an unknown response from the server.
2142
+ #
2143
+ # source://net-imap-0.2.3/lib/net/imap/errors.rb:51
2144
+ class Net::IMAP::UnknownResponseError < ::Net::IMAP::ResponseError; end
2145
+
2146
+ # source://net-imap-0.2.3/lib/net/imap.rb:223
2147
+ Net::IMAP::VERSION = T.let(T.unsafe(nil), String)