imapflow 1.7.8 → 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.
- package/CHANGELOG.md +20 -0
- package/README.md +8 -2
- package/dist/cjs/charsets.d.ts +1 -0
- package/dist/cjs/charsets.js +294 -0
- package/dist/cjs/commands/append.d.ts +22 -0
- package/dist/cjs/commands/append.js +151 -0
- package/dist/cjs/commands/authenticate.d.ts +24 -0
- package/dist/cjs/commands/authenticate.js +223 -0
- package/dist/cjs/commands/capability.d.ts +8 -0
- package/dist/cjs/commands/capability.js +32 -0
- package/dist/cjs/commands/close.d.ts +8 -0
- package/dist/cjs/commands/close.js +39 -0
- package/dist/cjs/commands/compress.d.ts +8 -0
- package/dist/cjs/commands/compress.js +56 -0
- package/dist/cjs/commands/copy.d.ts +13 -0
- package/dist/cjs/commands/copy.js +44 -0
- package/dist/cjs/commands/copyuid-parser.d.ts +11 -0
- package/dist/cjs/commands/copyuid-parser.js +32 -0
- package/dist/cjs/commands/create.d.ts +11 -0
- package/dist/cjs/commands/create.js +80 -0
- package/dist/cjs/commands/delete.d.ts +11 -0
- package/dist/cjs/commands/delete.js +40 -0
- package/dist/cjs/commands/enable.d.ts +9 -0
- package/dist/cjs/commands/enable.js +61 -0
- package/dist/cjs/commands/esearch-parser.d.ts +17 -0
- package/dist/cjs/commands/esearch-parser.js +91 -0
- package/dist/cjs/commands/expunge.d.ts +12 -0
- package/dist/cjs/commands/expunge.js +60 -0
- package/dist/cjs/commands/fetch.d.ts +30 -0
- package/dist/cjs/commands/fetch.js +241 -0
- package/dist/cjs/commands/id.d.ts +10 -0
- package/dist/cjs/commands/id.js +80 -0
- package/dist/cjs/commands/idle.d.ts +9 -0
- package/dist/cjs/commands/idle.js +347 -0
- package/dist/cjs/commands/list.d.ts +16 -0
- package/dist/cjs/commands/list.js +518 -0
- package/dist/cjs/commands/login.d.ts +11 -0
- package/dist/cjs/commands/login.js +42 -0
- package/dist/cjs/commands/logout.d.ts +8 -0
- package/dist/cjs/commands/logout.js +47 -0
- package/dist/cjs/commands/move.d.ts +13 -0
- package/dist/cjs/commands/move.js +57 -0
- package/dist/cjs/commands/namespace.d.ts +25 -0
- package/dist/cjs/commands/namespace.js +139 -0
- package/dist/cjs/commands/noop.d.ts +8 -0
- package/dist/cjs/commands/noop.js +22 -0
- package/dist/cjs/commands/quota.d.ts +10 -0
- package/dist/cjs/commands/quota.js +119 -0
- package/dist/cjs/commands/rename.d.ts +12 -0
- package/dist/cjs/commands/rename.js +48 -0
- package/dist/cjs/commands/search.d.ts +15 -0
- package/dist/cjs/commands/search.js +228 -0
- package/dist/cjs/commands/select.d.ts +25 -0
- package/dist/cjs/commands/select.js +250 -0
- package/dist/cjs/commands/starttls.d.ts +8 -0
- package/dist/cjs/commands/starttls.js +30 -0
- package/dist/cjs/commands/status-fields.d.ts +14 -0
- package/dist/cjs/commands/status-fields.js +61 -0
- package/dist/cjs/commands/status.d.ts +12 -0
- package/dist/cjs/commands/status.js +108 -0
- package/dist/cjs/commands/store.d.ts +19 -0
- package/dist/cjs/commands/store.js +93 -0
- package/dist/cjs/commands/subscribe.d.ts +9 -0
- package/dist/cjs/commands/subscribe.js +31 -0
- package/dist/cjs/commands/unsubscribe.d.ts +9 -0
- package/dist/cjs/commands/unsubscribe.js +31 -0
- package/dist/cjs/connection-deadline.d.ts +49 -0
- package/dist/cjs/connection-deadline.js +91 -0
- package/dist/cjs/errors.d.ts +83 -0
- package/dist/cjs/errors.js +13 -0
- package/dist/cjs/handler/imap-compiler.d.ts +24 -0
- package/dist/cjs/handler/imap-compiler.js +285 -0
- package/dist/cjs/handler/imap-formal-syntax.d.ts +28 -0
- package/dist/cjs/handler/imap-formal-syntax.js +121 -0
- package/dist/cjs/handler/imap-handler.d.ts +9 -0
- package/dist/cjs/handler/imap-handler.js +10 -0
- package/dist/cjs/handler/imap-parser.d.ts +16 -0
- package/dist/cjs/handler/imap-parser.js +90 -0
- package/dist/cjs/handler/imap-stream.d.ts +181 -0
- package/dist/cjs/handler/imap-stream.js +446 -0
- package/dist/cjs/handler/limits.d.ts +25 -0
- package/dist/cjs/handler/limits.js +51 -0
- package/dist/cjs/handler/parser-instance.d.ts +68 -0
- package/dist/cjs/handler/parser-instance.js +223 -0
- package/dist/cjs/handler/token-parser.d.ts +91 -0
- package/dist/cjs/handler/token-parser.js +673 -0
- package/dist/cjs/handler/types.d.ts +91 -0
- package/dist/cjs/handler/types.js +4 -0
- package/dist/cjs/imap-commands.d.ts +16 -0
- package/dist/cjs/imap-commands.js +74 -0
- package/dist/cjs/imap-flow.d.ts +676 -0
- package/dist/cjs/imap-flow.js +3949 -0
- package/dist/cjs/jp-decoder.d.ts +12 -0
- package/dist/cjs/jp-decoder.js +79 -0
- package/dist/cjs/limited-passthrough.d.ts +25 -0
- package/dist/cjs/limited-passthrough.js +54 -0
- package/dist/cjs/logger.d.ts +3 -0
- package/dist/cjs/logger.js +11 -0
- package/dist/cjs/package-info.d.ts +3 -0
- package/dist/cjs/package-info.js +7 -0
- package/dist/cjs/package.json +3 -0
- package/dist/cjs/proxy-connection.d.ts +33 -0
- package/dist/cjs/proxy-connection.js +392 -0
- package/dist/cjs/search-compiler.d.ts +34 -0
- package/dist/cjs/search-compiler.js +476 -0
- package/dist/cjs/special-use.d.ts +22 -0
- package/dist/cjs/special-use.js +911 -0
- package/dist/cjs/tools.d.ts +427 -0
- package/dist/cjs/tools.js +1496 -0
- package/{lib/imap-flow.d.ts → dist/cjs/types.d.ts} +386 -516
- package/dist/cjs/types.js +5 -0
- package/dist/esm/charsets.d.ts +1 -0
- package/{lib → dist/esm}/charsets.js +1 -6
- package/dist/esm/commands/append.d.ts +22 -0
- package/{lib → dist/esm}/commands/append.js +22 -52
- package/dist/esm/commands/authenticate.d.ts +24 -0
- package/{lib → dist/esm}/commands/authenticate.js +62 -87
- package/dist/esm/commands/capability.d.ts +8 -0
- package/{lib → dist/esm}/commands/capability.js +6 -9
- package/dist/esm/commands/close.d.ts +8 -0
- package/{lib → dist/esm}/commands/close.js +6 -10
- package/dist/esm/commands/compress.d.ts +8 -0
- package/{lib → dist/esm}/commands/compress.js +7 -11
- package/dist/esm/commands/copy.d.ts +13 -0
- package/{lib → dist/esm}/commands/copy.js +12 -20
- package/dist/esm/commands/copyuid-parser.d.ts +11 -0
- package/{lib → dist/esm}/commands/copyuid-parser.js +9 -15
- package/dist/esm/commands/create.d.ts +11 -0
- package/{lib → dist/esm}/commands/create.js +13 -27
- package/dist/esm/commands/delete.d.ts +11 -0
- package/{lib → dist/esm}/commands/delete.js +9 -14
- package/dist/esm/commands/enable.d.ts +9 -0
- package/{lib → dist/esm}/commands/enable.js +23 -30
- package/dist/esm/commands/esearch-parser.d.ts +17 -0
- package/dist/esm/commands/esearch-parser.js +88 -0
- package/dist/esm/commands/expunge.d.ts +12 -0
- package/{lib → dist/esm}/commands/expunge.js +17 -22
- package/dist/esm/commands/fetch.d.ts +30 -0
- package/{lib → dist/esm}/commands/fetch.js +32 -64
- package/dist/esm/commands/id.d.ts +10 -0
- package/{lib → dist/esm}/commands/id.js +17 -23
- package/dist/esm/commands/idle.d.ts +9 -0
- package/{lib → dist/esm}/commands/idle.js +47 -81
- package/dist/esm/commands/list.d.ts +16 -0
- package/{lib → dist/esm}/commands/list.js +56 -121
- package/dist/esm/commands/login.d.ts +11 -0
- package/{lib → dist/esm}/commands/login.js +10 -15
- package/dist/esm/commands/logout.d.ts +8 -0
- package/{lib → dist/esm}/commands/logout.js +9 -11
- package/dist/esm/commands/move.d.ts +13 -0
- package/{lib → dist/esm}/commands/move.js +13 -21
- package/dist/esm/commands/namespace.d.ts +25 -0
- package/{lib → dist/esm}/commands/namespace.js +34 -44
- package/dist/esm/commands/noop.d.ts +8 -0
- package/{lib → dist/esm}/commands/noop.js +6 -7
- package/dist/esm/commands/quota.d.ts +10 -0
- package/{lib → dist/esm}/commands/quota.js +18 -36
- package/dist/esm/commands/rename.d.ts +12 -0
- package/{lib → dist/esm}/commands/rename.js +10 -15
- package/dist/esm/commands/search.d.ts +15 -0
- package/{lib → dist/esm}/commands/search.js +36 -135
- package/dist/esm/commands/select.d.ts +25 -0
- package/{lib → dist/esm}/commands/select.js +33 -64
- package/dist/esm/commands/starttls.d.ts +8 -0
- package/{lib → dist/esm}/commands/starttls.js +6 -8
- package/dist/esm/commands/status-fields.d.ts +14 -0
- package/{lib → dist/esm}/commands/status-fields.js +5 -16
- package/dist/esm/commands/status.d.ts +12 -0
- package/{lib → dist/esm}/commands/status.js +18 -29
- package/dist/esm/commands/store.d.ts +19 -0
- package/{lib → dist/esm}/commands/store.js +24 -37
- package/dist/esm/commands/subscribe.d.ts +9 -0
- package/{lib → dist/esm}/commands/subscribe.js +8 -12
- package/dist/esm/commands/unsubscribe.d.ts +9 -0
- package/{lib → dist/esm}/commands/unsubscribe.js +8 -12
- package/dist/esm/connection-deadline.d.ts +49 -0
- package/{lib → dist/esm}/connection-deadline.js +14 -25
- package/dist/esm/errors.d.ts +83 -0
- package/dist/esm/errors.js +9 -0
- package/dist/esm/handler/imap-compiler.d.ts +24 -0
- package/{lib → dist/esm}/handler/imap-compiler.js +22 -80
- package/dist/esm/handler/imap-formal-syntax.d.ts +28 -0
- package/dist/esm/handler/imap-formal-syntax.js +117 -0
- package/dist/esm/handler/imap-handler.d.ts +9 -0
- package/dist/esm/handler/imap-handler.js +9 -0
- package/dist/esm/handler/imap-parser.d.ts +16 -0
- package/{lib → dist/esm}/handler/imap-parser.js +31 -44
- package/dist/esm/handler/imap-stream.d.ts +181 -0
- package/{lib → dist/esm}/handler/imap-stream.js +29 -121
- package/dist/esm/handler/limits.d.ts +25 -0
- package/{lib → dist/esm}/handler/limits.js +13 -22
- package/dist/esm/handler/parser-instance.d.ts +68 -0
- package/{lib → dist/esm}/handler/parser-instance.js +19 -47
- package/dist/esm/handler/token-parser.d.ts +91 -0
- package/{lib → dist/esm}/handler/token-parser.js +71 -155
- package/dist/esm/handler/types.d.ts +91 -0
- package/dist/esm/handler/types.js +3 -0
- package/dist/esm/imap-commands.d.ts +16 -0
- package/dist/esm/imap-commands.js +67 -0
- package/dist/esm/imap-flow.d.ts +676 -0
- package/{lib → dist/esm}/imap-flow.js +761 -1789
- package/dist/esm/jp-decoder.d.ts +12 -0
- package/{lib → dist/esm}/jp-decoder.js +6 -21
- package/dist/esm/limited-passthrough.d.ts +25 -0
- package/{lib → dist/esm}/limited-passthrough.js +7 -20
- package/dist/esm/logger.d.ts +3 -0
- package/dist/esm/logger.js +4 -0
- package/dist/esm/package-info.d.ts +3 -0
- package/dist/esm/package-info.js +4 -0
- package/dist/esm/package.json +3 -0
- package/dist/esm/proxy-connection.d.ts +33 -0
- package/{lib → dist/esm}/proxy-connection.js +56 -127
- package/dist/esm/search-compiler.d.ts +34 -0
- package/{lib → dist/esm}/search-compiler.js +54 -110
- package/dist/esm/special-use.d.ts +22 -0
- package/dist/esm/special-use.js +907 -0
- package/dist/esm/tools.d.ts +427 -0
- package/dist/esm/tools.js +1446 -0
- package/dist/esm/types.d.ts +828 -0
- package/dist/esm/types.js +4 -0
- package/package.json +60 -20
- package/.gitattributes +0 -1
- package/.github/CODE_OF_CONDUCT.md +0 -76
- package/.github/FUNDING.yml +0 -4
- package/.github/ISSUE_TEMPLATE/bug_report.md +0 -40
- package/.github/ISSUE_TEMPLATE/feature_request.md +0 -19
- package/.github/contributing.md +0 -17
- package/.github/workflows/release.yaml +0 -36
- package/.github/workflows/stale.yml +0 -29
- package/.github/workflows/test.yml +0 -51
- package/.ncurc.js +0 -4
- package/.prettierignore +0 -4
- package/.prettierrc.js +0 -8
- package/.release-please-manifest.json +0 -3
- package/CLAUDE.md +0 -104
- package/Gruntfile.js +0 -23
- package/eslint.config.js +0 -45
- package/lib/handler/imap-formal-syntax.js +0 -189
- package/lib/handler/imap-handler.js +0 -17
- package/lib/imap-commands.js +0 -45
- package/lib/logger.js +0 -5
- package/lib/special-use.js +0 -923
- package/lib/tools.js +0 -1612
- package/release-please-config.json +0 -10
- package/test/authentication-test.js +0 -101
- package/test/auto-idle-test.js +0 -470
- package/test/bodystructure-test.js +0 -899
- package/test/charsets-test.js +0 -161
- package/test/commands-branches-test.js +0 -1095
- package/test/commands-integration-test.js +0 -11124
- package/test/commands-test.js +0 -73
- package/test/connection-edge-cases-test.js +0 -1828
- package/test/connection-test.js +0 -162
- package/test/copyuid-parser-test.js +0 -173
- package/test/fetch-generator-test.js +0 -218
- package/test/fixtures/fake-timers.js +0 -115
- package/test/fixtures/serialized-mimetorture.js +0 -2738
- package/test/fixtures/test-client.js +0 -101
- package/test/fixtures/test-tls.js +0 -8
- package/test/handler-branches-test.js +0 -310
- package/test/idle-polling-test.js +0 -518
- package/test/imap-compiler-test.js +0 -809
- package/test/imap-flow-compress-test.js +0 -166
- package/test/imap-flow-coverage-test.js +0 -612
- package/test/imap-flow-fetch-download-test.js +0 -909
- package/test/imap-flow-internals-test.js +0 -725
- package/test/imap-flow-methods-test.js +0 -889
- package/test/imap-flow-proxy-paths-test.js +0 -366
- package/test/imap-flow-secure-test.js +0 -573
- package/test/imap-flow-server-test.js +0 -1474
- package/test/imap-formal-syntax-test.js +0 -293
- package/test/imap-parser-test.js +0 -1474
- package/test/imap-stream-edge-cases-test.js +0 -666
- package/test/imap-stream-test.js +0 -177
- package/test/imapflow-test.js +0 -258
- package/test/integration/README.md +0 -52
- package/test/integration/dovecot-test.conf +0 -27
- package/test/integration/rev2-live-test.js +0 -431
- package/test/integration/run-rev2-tests.sh +0 -75
- package/test/integration-test.js +0 -83
- package/test/jp-decoder-test.js +0 -304
- package/test/limited-passthrough-test.js +0 -299
- package/test/memory-cleanup-test.js +0 -144
- package/test/memory-leak-test.js +0 -667
- package/test/parser-limits-test.js +0 -292
- package/test/proxy-connection-test.js +0 -738
- package/test/reliability-improvements-test.js +0 -548
- package/test/search-compiler-test.js +0 -1300
- package/test/search-test.js +0 -329
- package/test/special-use-test.js +0 -418
- package/test/starttls-injection-test.js +0 -181
- package/test/tag-correlation-test.js +0 -333
- package/test/timer-policy-test.js +0 -227
- package/test/token-parser-test.js +0 -456
- package/test/tools-test.js +0 -2013
- package/test/unhandled-rejection-test.js +0 -661
|
@@ -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
|
-
};
|
package/lib/imap-commands.js
DELETED
|
@@ -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
|
-
]);
|