packwerk 2.2.0 → 2.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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)