imapflow 1.7.7 → 2.0.0

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 (296) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/README.md +8 -2
  3. package/dist/cjs/charsets.d.ts +1 -0
  4. package/dist/cjs/charsets.js +294 -0
  5. package/dist/cjs/commands/append.d.ts +22 -0
  6. package/dist/cjs/commands/append.js +151 -0
  7. package/dist/cjs/commands/authenticate.d.ts +24 -0
  8. package/dist/cjs/commands/authenticate.js +223 -0
  9. package/dist/cjs/commands/capability.d.ts +8 -0
  10. package/dist/cjs/commands/capability.js +32 -0
  11. package/dist/cjs/commands/close.d.ts +8 -0
  12. package/dist/cjs/commands/close.js +39 -0
  13. package/dist/cjs/commands/compress.d.ts +8 -0
  14. package/dist/cjs/commands/compress.js +56 -0
  15. package/dist/cjs/commands/copy.d.ts +13 -0
  16. package/dist/cjs/commands/copy.js +44 -0
  17. package/dist/cjs/commands/copyuid-parser.d.ts +11 -0
  18. package/dist/cjs/commands/copyuid-parser.js +32 -0
  19. package/dist/cjs/commands/create.d.ts +11 -0
  20. package/dist/cjs/commands/create.js +80 -0
  21. package/dist/cjs/commands/delete.d.ts +11 -0
  22. package/dist/cjs/commands/delete.js +40 -0
  23. package/dist/cjs/commands/enable.d.ts +9 -0
  24. package/dist/cjs/commands/enable.js +61 -0
  25. package/dist/cjs/commands/esearch-parser.d.ts +17 -0
  26. package/dist/cjs/commands/esearch-parser.js +91 -0
  27. package/dist/cjs/commands/expunge.d.ts +12 -0
  28. package/dist/cjs/commands/expunge.js +60 -0
  29. package/dist/cjs/commands/fetch.d.ts +30 -0
  30. package/dist/cjs/commands/fetch.js +241 -0
  31. package/dist/cjs/commands/id.d.ts +10 -0
  32. package/dist/cjs/commands/id.js +80 -0
  33. package/dist/cjs/commands/idle.d.ts +9 -0
  34. package/dist/cjs/commands/idle.js +347 -0
  35. package/dist/cjs/commands/list.d.ts +16 -0
  36. package/dist/cjs/commands/list.js +518 -0
  37. package/dist/cjs/commands/login.d.ts +11 -0
  38. package/dist/cjs/commands/login.js +42 -0
  39. package/dist/cjs/commands/logout.d.ts +8 -0
  40. package/dist/cjs/commands/logout.js +47 -0
  41. package/dist/cjs/commands/move.d.ts +13 -0
  42. package/dist/cjs/commands/move.js +57 -0
  43. package/dist/cjs/commands/namespace.d.ts +25 -0
  44. package/dist/cjs/commands/namespace.js +139 -0
  45. package/dist/cjs/commands/noop.d.ts +8 -0
  46. package/dist/cjs/commands/noop.js +22 -0
  47. package/dist/cjs/commands/quota.d.ts +10 -0
  48. package/dist/cjs/commands/quota.js +119 -0
  49. package/dist/cjs/commands/rename.d.ts +12 -0
  50. package/dist/cjs/commands/rename.js +48 -0
  51. package/dist/cjs/commands/search.d.ts +15 -0
  52. package/dist/cjs/commands/search.js +228 -0
  53. package/dist/cjs/commands/select.d.ts +25 -0
  54. package/dist/cjs/commands/select.js +250 -0
  55. package/dist/cjs/commands/starttls.d.ts +8 -0
  56. package/dist/cjs/commands/starttls.js +30 -0
  57. package/dist/cjs/commands/status-fields.d.ts +14 -0
  58. package/dist/cjs/commands/status-fields.js +61 -0
  59. package/dist/cjs/commands/status.d.ts +12 -0
  60. package/dist/cjs/commands/status.js +108 -0
  61. package/dist/cjs/commands/store.d.ts +19 -0
  62. package/dist/cjs/commands/store.js +93 -0
  63. package/dist/cjs/commands/subscribe.d.ts +9 -0
  64. package/dist/cjs/commands/subscribe.js +31 -0
  65. package/dist/cjs/commands/unsubscribe.d.ts +9 -0
  66. package/dist/cjs/commands/unsubscribe.js +31 -0
  67. package/dist/cjs/connection-deadline.d.ts +49 -0
  68. package/dist/cjs/connection-deadline.js +91 -0
  69. package/dist/cjs/errors.d.ts +83 -0
  70. package/dist/cjs/errors.js +13 -0
  71. package/dist/cjs/handler/imap-compiler.d.ts +24 -0
  72. package/dist/cjs/handler/imap-compiler.js +285 -0
  73. package/dist/cjs/handler/imap-formal-syntax.d.ts +28 -0
  74. package/dist/cjs/handler/imap-formal-syntax.js +121 -0
  75. package/dist/cjs/handler/imap-handler.d.ts +9 -0
  76. package/dist/cjs/handler/imap-handler.js +10 -0
  77. package/dist/cjs/handler/imap-parser.d.ts +16 -0
  78. package/dist/cjs/handler/imap-parser.js +90 -0
  79. package/dist/cjs/handler/imap-stream.d.ts +181 -0
  80. package/dist/cjs/handler/imap-stream.js +446 -0
  81. package/dist/cjs/handler/limits.d.ts +25 -0
  82. package/dist/cjs/handler/limits.js +51 -0
  83. package/dist/cjs/handler/parser-instance.d.ts +68 -0
  84. package/dist/cjs/handler/parser-instance.js +223 -0
  85. package/dist/cjs/handler/token-parser.d.ts +91 -0
  86. package/dist/cjs/handler/token-parser.js +673 -0
  87. package/dist/cjs/handler/types.d.ts +91 -0
  88. package/dist/cjs/handler/types.js +4 -0
  89. package/dist/cjs/imap-commands.d.ts +16 -0
  90. package/dist/cjs/imap-commands.js +74 -0
  91. package/dist/cjs/imap-flow.d.ts +676 -0
  92. package/dist/cjs/imap-flow.js +3949 -0
  93. package/dist/cjs/jp-decoder.d.ts +12 -0
  94. package/dist/cjs/jp-decoder.js +79 -0
  95. package/dist/cjs/limited-passthrough.d.ts +25 -0
  96. package/dist/cjs/limited-passthrough.js +54 -0
  97. package/dist/cjs/logger.d.ts +3 -0
  98. package/dist/cjs/logger.js +11 -0
  99. package/dist/cjs/package-info.d.ts +3 -0
  100. package/dist/cjs/package-info.js +7 -0
  101. package/dist/cjs/package.json +3 -0
  102. package/dist/cjs/proxy-connection.d.ts +33 -0
  103. package/dist/cjs/proxy-connection.js +392 -0
  104. package/dist/cjs/search-compiler.d.ts +34 -0
  105. package/dist/cjs/search-compiler.js +476 -0
  106. package/dist/cjs/special-use.d.ts +22 -0
  107. package/dist/cjs/special-use.js +911 -0
  108. package/dist/cjs/tools.d.ts +427 -0
  109. package/dist/cjs/tools.js +1496 -0
  110. package/{lib/imap-flow.d.ts → dist/cjs/types.d.ts} +386 -516
  111. package/dist/cjs/types.js +5 -0
  112. package/dist/esm/charsets.d.ts +1 -0
  113. package/{lib → dist/esm}/charsets.js +1 -6
  114. package/dist/esm/commands/append.d.ts +22 -0
  115. package/{lib → dist/esm}/commands/append.js +22 -52
  116. package/dist/esm/commands/authenticate.d.ts +24 -0
  117. package/{lib → dist/esm}/commands/authenticate.js +62 -87
  118. package/dist/esm/commands/capability.d.ts +8 -0
  119. package/{lib → dist/esm}/commands/capability.js +6 -9
  120. package/dist/esm/commands/close.d.ts +8 -0
  121. package/{lib → dist/esm}/commands/close.js +6 -10
  122. package/dist/esm/commands/compress.d.ts +8 -0
  123. package/{lib → dist/esm}/commands/compress.js +7 -11
  124. package/dist/esm/commands/copy.d.ts +13 -0
  125. package/{lib → dist/esm}/commands/copy.js +12 -20
  126. package/dist/esm/commands/copyuid-parser.d.ts +11 -0
  127. package/{lib → dist/esm}/commands/copyuid-parser.js +9 -15
  128. package/dist/esm/commands/create.d.ts +11 -0
  129. package/{lib → dist/esm}/commands/create.js +13 -27
  130. package/dist/esm/commands/delete.d.ts +11 -0
  131. package/{lib → dist/esm}/commands/delete.js +9 -14
  132. package/dist/esm/commands/enable.d.ts +9 -0
  133. package/{lib → dist/esm}/commands/enable.js +23 -30
  134. package/dist/esm/commands/esearch-parser.d.ts +17 -0
  135. package/dist/esm/commands/esearch-parser.js +88 -0
  136. package/dist/esm/commands/expunge.d.ts +12 -0
  137. package/{lib → dist/esm}/commands/expunge.js +17 -22
  138. package/dist/esm/commands/fetch.d.ts +30 -0
  139. package/{lib → dist/esm}/commands/fetch.js +32 -64
  140. package/dist/esm/commands/id.d.ts +10 -0
  141. package/{lib → dist/esm}/commands/id.js +17 -23
  142. package/dist/esm/commands/idle.d.ts +9 -0
  143. package/{lib → dist/esm}/commands/idle.js +47 -81
  144. package/dist/esm/commands/list.d.ts +16 -0
  145. package/{lib → dist/esm}/commands/list.js +56 -121
  146. package/dist/esm/commands/login.d.ts +11 -0
  147. package/{lib → dist/esm}/commands/login.js +10 -15
  148. package/dist/esm/commands/logout.d.ts +8 -0
  149. package/{lib → dist/esm}/commands/logout.js +9 -11
  150. package/dist/esm/commands/move.d.ts +13 -0
  151. package/{lib → dist/esm}/commands/move.js +13 -21
  152. package/dist/esm/commands/namespace.d.ts +25 -0
  153. package/{lib → dist/esm}/commands/namespace.js +34 -44
  154. package/dist/esm/commands/noop.d.ts +8 -0
  155. package/{lib → dist/esm}/commands/noop.js +6 -7
  156. package/dist/esm/commands/quota.d.ts +10 -0
  157. package/{lib → dist/esm}/commands/quota.js +18 -36
  158. package/dist/esm/commands/rename.d.ts +12 -0
  159. package/{lib → dist/esm}/commands/rename.js +10 -15
  160. package/dist/esm/commands/search.d.ts +15 -0
  161. package/{lib → dist/esm}/commands/search.js +36 -135
  162. package/dist/esm/commands/select.d.ts +25 -0
  163. package/{lib → dist/esm}/commands/select.js +33 -64
  164. package/dist/esm/commands/starttls.d.ts +8 -0
  165. package/{lib → dist/esm}/commands/starttls.js +6 -8
  166. package/dist/esm/commands/status-fields.d.ts +14 -0
  167. package/{lib → dist/esm}/commands/status-fields.js +5 -16
  168. package/dist/esm/commands/status.d.ts +12 -0
  169. package/{lib → dist/esm}/commands/status.js +18 -29
  170. package/dist/esm/commands/store.d.ts +19 -0
  171. package/{lib → dist/esm}/commands/store.js +24 -37
  172. package/dist/esm/commands/subscribe.d.ts +9 -0
  173. package/{lib → dist/esm}/commands/subscribe.js +8 -12
  174. package/dist/esm/commands/unsubscribe.d.ts +9 -0
  175. package/{lib → dist/esm}/commands/unsubscribe.js +8 -12
  176. package/dist/esm/connection-deadline.d.ts +49 -0
  177. package/{lib → dist/esm}/connection-deadline.js +14 -25
  178. package/dist/esm/errors.d.ts +83 -0
  179. package/dist/esm/errors.js +9 -0
  180. package/dist/esm/handler/imap-compiler.d.ts +24 -0
  181. package/{lib → dist/esm}/handler/imap-compiler.js +22 -80
  182. package/dist/esm/handler/imap-formal-syntax.d.ts +28 -0
  183. package/dist/esm/handler/imap-formal-syntax.js +117 -0
  184. package/dist/esm/handler/imap-handler.d.ts +9 -0
  185. package/dist/esm/handler/imap-handler.js +9 -0
  186. package/dist/esm/handler/imap-parser.d.ts +16 -0
  187. package/{lib → dist/esm}/handler/imap-parser.js +31 -44
  188. package/dist/esm/handler/imap-stream.d.ts +181 -0
  189. package/{lib → dist/esm}/handler/imap-stream.js +29 -121
  190. package/dist/esm/handler/limits.d.ts +25 -0
  191. package/{lib → dist/esm}/handler/limits.js +13 -22
  192. package/dist/esm/handler/parser-instance.d.ts +68 -0
  193. package/{lib → dist/esm}/handler/parser-instance.js +19 -47
  194. package/dist/esm/handler/token-parser.d.ts +91 -0
  195. package/{lib → dist/esm}/handler/token-parser.js +71 -155
  196. package/dist/esm/handler/types.d.ts +91 -0
  197. package/dist/esm/handler/types.js +3 -0
  198. package/dist/esm/imap-commands.d.ts +16 -0
  199. package/dist/esm/imap-commands.js +67 -0
  200. package/dist/esm/imap-flow.d.ts +676 -0
  201. package/{lib → dist/esm}/imap-flow.js +785 -1802
  202. package/dist/esm/jp-decoder.d.ts +12 -0
  203. package/{lib → dist/esm}/jp-decoder.js +6 -21
  204. package/dist/esm/limited-passthrough.d.ts +25 -0
  205. package/{lib → dist/esm}/limited-passthrough.js +7 -20
  206. package/dist/esm/logger.d.ts +3 -0
  207. package/dist/esm/logger.js +4 -0
  208. package/dist/esm/package-info.d.ts +3 -0
  209. package/dist/esm/package-info.js +4 -0
  210. package/dist/esm/package.json +3 -0
  211. package/dist/esm/proxy-connection.d.ts +33 -0
  212. package/{lib → dist/esm}/proxy-connection.js +56 -127
  213. package/dist/esm/search-compiler.d.ts +34 -0
  214. package/{lib → dist/esm}/search-compiler.js +54 -110
  215. package/dist/esm/special-use.d.ts +22 -0
  216. package/dist/esm/special-use.js +907 -0
  217. package/dist/esm/tools.d.ts +427 -0
  218. package/dist/esm/tools.js +1446 -0
  219. package/dist/esm/types.d.ts +828 -0
  220. package/dist/esm/types.js +4 -0
  221. package/package.json +60 -20
  222. package/.gitattributes +0 -1
  223. package/.github/CODE_OF_CONDUCT.md +0 -76
  224. package/.github/FUNDING.yml +0 -4
  225. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -40
  226. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -19
  227. package/.github/contributing.md +0 -17
  228. package/.github/workflows/release.yaml +0 -36
  229. package/.github/workflows/stale.yml +0 -29
  230. package/.github/workflows/test.yml +0 -51
  231. package/.ncurc.js +0 -4
  232. package/.prettierignore +0 -4
  233. package/.prettierrc.js +0 -8
  234. package/.release-please-manifest.json +0 -3
  235. package/CLAUDE.md +0 -104
  236. package/Gruntfile.js +0 -23
  237. package/eslint.config.js +0 -45
  238. package/lib/handler/imap-formal-syntax.js +0 -189
  239. package/lib/handler/imap-handler.js +0 -17
  240. package/lib/imap-commands.js +0 -45
  241. package/lib/logger.js +0 -5
  242. package/lib/special-use.js +0 -923
  243. package/lib/tools.js +0 -1612
  244. package/release-please-config.json +0 -10
  245. package/test/authentication-test.js +0 -101
  246. package/test/auto-idle-test.js +0 -470
  247. package/test/bodystructure-test.js +0 -899
  248. package/test/charsets-test.js +0 -161
  249. package/test/commands-branches-test.js +0 -1095
  250. package/test/commands-integration-test.js +0 -11124
  251. package/test/commands-test.js +0 -73
  252. package/test/connection-edge-cases-test.js +0 -1828
  253. package/test/connection-test.js +0 -162
  254. package/test/copyuid-parser-test.js +0 -173
  255. package/test/fetch-generator-test.js +0 -218
  256. package/test/fixtures/fake-timers.js +0 -115
  257. package/test/fixtures/serialized-mimetorture.js +0 -2738
  258. package/test/fixtures/test-client.js +0 -57
  259. package/test/fixtures/test-tls.js +0 -8
  260. package/test/handler-branches-test.js +0 -310
  261. package/test/idle-polling-test.js +0 -518
  262. package/test/imap-compiler-test.js +0 -809
  263. package/test/imap-flow-compress-test.js +0 -166
  264. package/test/imap-flow-coverage-test.js +0 -612
  265. package/test/imap-flow-fetch-download-test.js +0 -873
  266. package/test/imap-flow-internals-test.js +0 -725
  267. package/test/imap-flow-methods-test.js +0 -889
  268. package/test/imap-flow-proxy-paths-test.js +0 -366
  269. package/test/imap-flow-secure-test.js +0 -573
  270. package/test/imap-flow-server-test.js +0 -1474
  271. package/test/imap-formal-syntax-test.js +0 -293
  272. package/test/imap-parser-test.js +0 -1474
  273. package/test/imap-stream-edge-cases-test.js +0 -666
  274. package/test/imap-stream-test.js +0 -177
  275. package/test/imapflow-test.js +0 -258
  276. package/test/integration/README.md +0 -52
  277. package/test/integration/dovecot-test.conf +0 -27
  278. package/test/integration/rev2-live-test.js +0 -431
  279. package/test/integration/run-rev2-tests.sh +0 -75
  280. package/test/integration-test.js +0 -83
  281. package/test/jp-decoder-test.js +0 -304
  282. package/test/limited-passthrough-test.js +0 -299
  283. package/test/memory-cleanup-test.js +0 -144
  284. package/test/memory-leak-test.js +0 -667
  285. package/test/parser-limits-test.js +0 -292
  286. package/test/proxy-connection-test.js +0 -738
  287. package/test/reliability-improvements-test.js +0 -548
  288. package/test/search-compiler-test.js +0 -1300
  289. package/test/search-test.js +0 -329
  290. package/test/special-use-test.js +0 -418
  291. package/test/starttls-injection-test.js +0 -181
  292. package/test/tag-correlation-test.js +0 -333
  293. package/test/timer-policy-test.js +0 -227
  294. package/test/token-parser-test.js +0 -456
  295. package/test/tools-test.js +0 -2013
  296. package/test/unhandled-rejection-test.js +0 -593
@@ -1,189 +0,0 @@
1
- /* eslint object-shorthand:0, new-cap: 0, no-useless-concat: 0 */
2
-
3
- 'use strict';
4
-
5
- /**
6
- * @module imap-formal-syntax
7
- *
8
- * Defines the IMAP formal syntax character classes and validation rules as specified
9
- * in RFC 3501 Section 9 (http://tools.ietf.org/html/rfc3501#section-9).
10
- *
11
- * Each exported method returns a string of allowed characters for a given IMAP grammar
12
- * production rule (e.g., ATOM-CHAR, ASTRING-CHAR, TEXT-CHAR). Results are memoized after
13
- * the first call by replacing the method with a function that returns the cached value.
14
- *
15
- * Also exports a {@link module:imap-formal-syntax.verify|verify} function for validating
16
- * strings against a set of allowed characters.
17
- */
18
-
19
- /**
20
- * Generates a string containing all characters in the given Unicode code point range (inclusive).
21
- *
22
- * @param {number} start - The starting character code point.
23
- * @param {number} end - The ending character code point.
24
- * @returns {string} A string containing all characters from start to end.
25
- */
26
- function expandRange(start, end) {
27
- let chars = [];
28
- for (let i = start; i <= end; i++) {
29
- chars.push(i);
30
- }
31
- return String.fromCharCode(...chars);
32
- }
33
-
34
- /**
35
- * Returns a new string with all characters from the exclude string removed from the source string.
36
- *
37
- * @param {string} source - The source string to filter.
38
- * @param {string} exclude - A string of characters to exclude from the source.
39
- * @returns {string} The source string with excluded characters removed.
40
- */
41
- function excludeChars(source, exclude) {
42
- return Array.prototype.filter.call(source, ch => exclude.indexOf(ch) < 0).join('');
43
- }
44
-
45
- module.exports = {
46
- /** @returns {string} All 7-bit US-ASCII characters excluding NUL (0x01-0x7F). */
47
- CHAR() {
48
- let value = expandRange(0x01, 0x7f);
49
- this.CHAR = function () {
50
- return value;
51
- };
52
- return value;
53
- },
54
-
55
- /** @returns {string} All 8-bit characters excluding NUL (0x01-0xFF). */
56
- CHAR8() {
57
- let value = expandRange(0x01, 0xff);
58
- this.CHAR8 = function () {
59
- return value;
60
- };
61
- return value;
62
- },
63
-
64
- /** @returns {string} The space character (0x20). */
65
- SP() {
66
- return ' ';
67
- },
68
-
69
- /** @returns {string} All control characters (0x00-0x1F and 0x7F). */
70
- CTL() {
71
- let value = expandRange(0x00, 0x1f) + '\x7F';
72
- this.CTL = function () {
73
- return value;
74
- };
75
- return value;
76
- },
77
-
78
- /** @returns {string} The double-quote character. */
79
- DQUOTE() {
80
- return '"';
81
- },
82
-
83
- /** @returns {string} All uppercase and lowercase ASCII alphabetic characters (A-Z, a-z). */
84
- ALPHA() {
85
- let value = expandRange(0x41, 0x5a) + expandRange(0x61, 0x7a);
86
- this.ALPHA = function () {
87
- return value;
88
- };
89
- return value;
90
- },
91
-
92
- /** @returns {string} All ASCII digit characters (0-9). */
93
- DIGIT() {
94
- let value = expandRange(0x30, 0x39);
95
- this.DIGIT = function () {
96
- return value;
97
- };
98
- return value;
99
- },
100
-
101
- /** @returns {string} Characters allowed in an IMAP ATOM (CHAR minus atom-specials). */
102
- 'ATOM-CHAR'() {
103
- let value = excludeChars(this.CHAR(), this['atom-specials']());
104
- this['ATOM-CHAR'] = function () {
105
- return value;
106
- };
107
- return value;
108
- },
109
-
110
- /** @returns {string} Characters allowed in an IMAP ASTRING (ATOM-CHAR plus resp-specials). */
111
- 'ASTRING-CHAR'() {
112
- let value = this['ATOM-CHAR']() + this['resp-specials']();
113
- this['ASTRING-CHAR'] = function () {
114
- return value;
115
- };
116
- return value;
117
- },
118
-
119
- /** @returns {string} Characters allowed in IMAP text (CHAR minus CR and LF). */
120
- 'TEXT-CHAR'() {
121
- let value = excludeChars(this.CHAR(), '\r\n');
122
- this['TEXT-CHAR'] = function () {
123
- return value;
124
- };
125
- return value;
126
- },
127
-
128
- /** @returns {string} Characters that are special in ATOMs and must be excluded: "(", ")", "{", SP, CTL, list-wildcards, quoted-specials, resp-specials. */
129
- 'atom-specials'() {
130
- let value = '(' + ')' + '{' + this.SP() + this.CTL() + this['list-wildcards']() + this['quoted-specials']() + this['resp-specials']();
131
- this['atom-specials'] = function () {
132
- return value;
133
- };
134
- return value;
135
- },
136
-
137
- /** @returns {string} The LIST wildcard characters ("%" and "*"). */
138
- 'list-wildcards'() {
139
- return '%' + '*';
140
- },
141
-
142
- /** @returns {string} Characters that are special inside quoted strings (DQUOTE and backslash). */
143
- 'quoted-specials'() {
144
- let value = this.DQUOTE() + '\\';
145
- this['quoted-specials'] = function () {
146
- return value;
147
- };
148
- return value;
149
- },
150
-
151
- /** @returns {string} The response-special character ("]"). */
152
- 'resp-specials'() {
153
- return ']';
154
- },
155
-
156
- /** @returns {string} Characters allowed in an IMAP tag (ASTRING-CHAR minus "+"). */
157
- tag() {
158
- let value = excludeChars(this['ASTRING-CHAR'](), '+');
159
- this.tag = function () {
160
- return value;
161
- };
162
- return value;
163
- },
164
-
165
- /** @returns {string} Characters allowed in an IMAP command name (ALPHA, DIGIT, and hyphen). */
166
- command() {
167
- let value = this.ALPHA() + this.DIGIT() + '-';
168
- this.command = function () {
169
- return value;
170
- };
171
- return value;
172
- },
173
-
174
- /**
175
- * Verifies that every character in the given string is within the set of allowed characters.
176
- *
177
- * @param {string} str - The string to validate.
178
- * @param {string} allowedChars - A string containing all allowed characters.
179
- * @returns {number} The index of the first disallowed character, or -1 if all characters are valid.
180
- */
181
- verify(str, allowedChars) {
182
- for (let i = 0, len = str.length; i < len; i++) {
183
- if (allowedChars.indexOf(str.charAt(i)) < 0) {
184
- return i;
185
- }
186
- }
187
- return -1;
188
- }
189
- };
@@ -1,17 +0,0 @@
1
- 'use strict';
2
-
3
- const parser = require('./imap-parser');
4
- const compiler = require('./imap-compiler');
5
-
6
- /**
7
- * Re-exports the IMAP protocol parser and compiler as a single module.
8
- *
9
- * @property {Function} parser - Parses raw IMAP command/response buffers into structured objects.
10
- * See {@link module:imap-parser} for details.
11
- * @property {Function} compiler - Compiles structured response objects into IMAP protocol Buffers.
12
- * See {@link module:imap-compiler} for details.
13
- */
14
- module.exports = {
15
- parser,
16
- compiler
17
- };
@@ -1,45 +0,0 @@
1
- /* eslint global-require:0 */
2
-
3
- 'use strict';
4
-
5
- /**
6
- * IMAP command registry. Maps IMAP command names (uppercase strings) to their
7
- * corresponding implementation modules from the `lib/commands/` directory.
8
- *
9
- * Each entry maps a command name (e.g., "FETCH", "SELECT", "IDLE") to a module
10
- * that exports functions for building the command request and processing the
11
- * server response. This Map is used by the main ImapFlow client to look up
12
- * and execute IMAP commands.
13
- *
14
- * @type {Map<string, Object>}
15
- */
16
- module.exports = new Map([
17
- ['ID', require('./commands/id.js')],
18
- ['CAPABILITY', require('./commands/capability.js')],
19
- ['NAMESPACE', require('./commands/namespace.js')],
20
- ['LOGIN', require('./commands/login.js')],
21
- ['LOGOUT', require('./commands/logout.js')],
22
- ['STARTTLS', require('./commands/starttls.js')],
23
- ['LIST', require('./commands/list.js')],
24
- ['ENABLE', require('./commands/enable.js')],
25
- ['SELECT', require('./commands/select.js')],
26
- ['FETCH', require('./commands/fetch.js')],
27
- ['CREATE', require('./commands/create.js')],
28
- ['DELETE', require('./commands/delete.js')],
29
- ['RENAME', require('./commands/rename.js')],
30
- ['CLOSE', require('./commands/close.js')],
31
- ['SUBSCRIBE', require('./commands/subscribe.js')],
32
- ['UNSUBSCRIBE', require('./commands/unsubscribe.js')],
33
- ['STORE', require('./commands/store.js')],
34
- ['SEARCH', require('./commands/search.js')],
35
- ['NOOP', require('./commands/noop.js')],
36
- ['EXPUNGE', require('./commands/expunge.js')],
37
- ['APPEND', require('./commands/append.js')],
38
- ['STATUS', require('./commands/status.js')],
39
- ['COPY', require('./commands/copy.js')],
40
- ['MOVE', require('./commands/move.js')],
41
- ['COMPRESS', require('./commands/compress.js')],
42
- ['QUOTA', require('./commands/quota.js')],
43
- ['IDLE', require('./commands/idle.js')],
44
- ['AUTHENTICATE', require('./commands/authenticate.js')]
45
- ]);
package/lib/logger.js DELETED
@@ -1,5 +0,0 @@
1
- 'use strict';
2
-
3
- const logger = require('pino')();
4
- logger.level = 'trace';
5
- module.exports = logger;