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
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A parsed IMAP token. `type` is one of ATOM, STRING, LITERAL, SEQUENCE, TEXT or
|
|
3
|
+
* NUMBER. A section (`BODY[...]`) and a partial range (`<0.1024>`) are attached to the
|
|
4
|
+
* token they follow.
|
|
5
|
+
*/
|
|
6
|
+
export interface ImapAttributeNode {
|
|
7
|
+
type: string;
|
|
8
|
+
value?: string | Buffer | number | null | undefined;
|
|
9
|
+
section?: ImapAttributeList | undefined;
|
|
10
|
+
partial?: number[] | undefined;
|
|
11
|
+
/** Redacted from logs and from the raw traffic log when set on an outgoing token */
|
|
12
|
+
sensitive?: boolean | undefined;
|
|
13
|
+
/** Emit the literal as a literal8 (RFC 3516) */
|
|
14
|
+
isLiteral8?: boolean | undefined;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* A parenthesized list of tokens. The token properties are declared as absent so that
|
|
18
|
+
* `entry.value` can be read across the `ImapAttribute` union without narrowing first.
|
|
19
|
+
*/
|
|
20
|
+
export interface ImapAttributeList extends Array<ImapAttribute> {
|
|
21
|
+
type?: undefined;
|
|
22
|
+
value?: undefined;
|
|
23
|
+
section?: undefined;
|
|
24
|
+
partial?: undefined;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* One attribute of a parsed response: a token, a nested list, or `null` for NIL
|
|
28
|
+
*/
|
|
29
|
+
export type ImapAttribute = ImapAttributeNode | ImapAttributeList | null;
|
|
30
|
+
/**
|
|
31
|
+
* A parsed IMAP response line, or a command being compiled for the wire
|
|
32
|
+
*/
|
|
33
|
+
export interface ImapResponse {
|
|
34
|
+
/** The IMAP tag: "*" for untagged responses, "+" for continuation requests, or a command tag */
|
|
35
|
+
tag?: string | undefined;
|
|
36
|
+
/** The response or command name, e.g. "OK", "FETCH", or a message sequence number */
|
|
37
|
+
command?: string | undefined;
|
|
38
|
+
/** Parsed attributes of the response */
|
|
39
|
+
attributes?: ImapAttributeList | undefined;
|
|
40
|
+
/** Number of leading NUL bytes stripped from the line, if any */
|
|
41
|
+
nullBytesRemoved?: number | undefined;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* What the command compiler accepts as a node: parsed tokens and lists, and also bare
|
|
45
|
+
* strings, numbers and Buffers, which are written as quoted strings and numbers
|
|
46
|
+
*/
|
|
47
|
+
export type ImapCompileNode = ImapAttributeNode | string | number | Buffer | null | undefined | false | ImapCompileNode[];
|
|
48
|
+
export interface ImapCompileInput {
|
|
49
|
+
tag?: string | undefined;
|
|
50
|
+
command?: string | undefined;
|
|
51
|
+
attributes?: ImapCompileNode | ImapCompileNode[] | undefined;
|
|
52
|
+
}
|
|
53
|
+
export interface CompilerOptions {
|
|
54
|
+
/** Return an array of Buffers, one per literal segment, instead of a single Buffer */
|
|
55
|
+
asArray?: boolean | undefined;
|
|
56
|
+
/** Redact sensitive values and truncate long strings for logging */
|
|
57
|
+
isLogging?: boolean | undefined;
|
|
58
|
+
/** Use the LITERAL+ extension (non-synchronizing literals of any size) */
|
|
59
|
+
literalPlus?: boolean | undefined;
|
|
60
|
+
/** Use the LITERAL- extension (non-synchronizing literals up to 4096 bytes) */
|
|
61
|
+
literalMinus?: boolean | undefined;
|
|
62
|
+
}
|
|
63
|
+
export interface ParserOptions {
|
|
64
|
+
/** Whether the LITERAL+ extension is in use */
|
|
65
|
+
literalPlus?: boolean | undefined;
|
|
66
|
+
/** Pre-parsed literal values extracted from the input stream */
|
|
67
|
+
literals?: Buffer[] | undefined;
|
|
68
|
+
/** Maximum size in bytes of a literal parsed inline from the input */
|
|
69
|
+
maxLiteralSize?: number | undefined;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* One assembled response as pushed by ImapStream: the line payload, its literals and the
|
|
73
|
+
* backpressure callback that must be called once the response has been processed
|
|
74
|
+
*/
|
|
75
|
+
export interface ImapStreamItem {
|
|
76
|
+
payload: Buffer;
|
|
77
|
+
literals: Buffer[];
|
|
78
|
+
next: () => void;
|
|
79
|
+
/** Whether more buffered input already followed this response on the wire */
|
|
80
|
+
trailingAfterLine: boolean;
|
|
81
|
+
/** Set once `next` has been called, see ImapFlow#releaseStreamData */
|
|
82
|
+
released?: boolean | undefined;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* The SELECT or EXAMINE command that opened the current mailbox, kept so fallback polling
|
|
86
|
+
* can re-select the mailbox with the same access mode
|
|
87
|
+
*/
|
|
88
|
+
export interface SelectCommand {
|
|
89
|
+
command: string;
|
|
90
|
+
arguments: ImapCompileNode[];
|
|
91
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { ImapFlow } from './imap-flow.js';
|
|
2
|
+
/**
|
|
3
|
+
* A command implementation: receives the connection and the arguments passed to
|
|
4
|
+
* `ImapFlow#run()` for that command
|
|
5
|
+
*/
|
|
6
|
+
export type CommandHandler = (connection: ImapFlow, ...args: any[]) => Promise<any>;
|
|
7
|
+
/**
|
|
8
|
+
* IMAP command registry. Maps IMAP command names (uppercase strings) to their
|
|
9
|
+
* corresponding implementation modules from the `commands/` directory.
|
|
10
|
+
*
|
|
11
|
+
* Each entry maps a command name (e.g., "FETCH", "SELECT", "IDLE") to a function
|
|
12
|
+
* that builds the command request and processes the server response. This Map is
|
|
13
|
+
* used by the main ImapFlow client to look up and execute IMAP commands.
|
|
14
|
+
*/
|
|
15
|
+
declare const imapCommands: Map<string, CommandHandler>;
|
|
16
|
+
export default imapCommands;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import id from './commands/id.js';
|
|
2
|
+
import capability from './commands/capability.js';
|
|
3
|
+
import namespace from './commands/namespace.js';
|
|
4
|
+
import login from './commands/login.js';
|
|
5
|
+
import logout from './commands/logout.js';
|
|
6
|
+
import starttls from './commands/starttls.js';
|
|
7
|
+
import list from './commands/list.js';
|
|
8
|
+
import enable from './commands/enable.js';
|
|
9
|
+
import select from './commands/select.js';
|
|
10
|
+
import fetch from './commands/fetch.js';
|
|
11
|
+
import create from './commands/create.js';
|
|
12
|
+
import deleteMailbox from './commands/delete.js';
|
|
13
|
+
import rename from './commands/rename.js';
|
|
14
|
+
import close from './commands/close.js';
|
|
15
|
+
import subscribe from './commands/subscribe.js';
|
|
16
|
+
import unsubscribe from './commands/unsubscribe.js';
|
|
17
|
+
import store from './commands/store.js';
|
|
18
|
+
import search from './commands/search.js';
|
|
19
|
+
import noop from './commands/noop.js';
|
|
20
|
+
import expunge from './commands/expunge.js';
|
|
21
|
+
import append from './commands/append.js';
|
|
22
|
+
import status from './commands/status.js';
|
|
23
|
+
import copy from './commands/copy.js';
|
|
24
|
+
import move from './commands/move.js';
|
|
25
|
+
import compress from './commands/compress.js';
|
|
26
|
+
import quota from './commands/quota.js';
|
|
27
|
+
import idle from './commands/idle.js';
|
|
28
|
+
import authenticate from './commands/authenticate.js';
|
|
29
|
+
/**
|
|
30
|
+
* IMAP command registry. Maps IMAP command names (uppercase strings) to their
|
|
31
|
+
* corresponding implementation modules from the `commands/` directory.
|
|
32
|
+
*
|
|
33
|
+
* Each entry maps a command name (e.g., "FETCH", "SELECT", "IDLE") to a function
|
|
34
|
+
* that builds the command request and processes the server response. This Map is
|
|
35
|
+
* used by the main ImapFlow client to look up and execute IMAP commands.
|
|
36
|
+
*/
|
|
37
|
+
const imapCommands = new Map([
|
|
38
|
+
['ID', id],
|
|
39
|
+
['CAPABILITY', capability],
|
|
40
|
+
['NAMESPACE', namespace],
|
|
41
|
+
['LOGIN', login],
|
|
42
|
+
['LOGOUT', logout],
|
|
43
|
+
['STARTTLS', starttls],
|
|
44
|
+
['LIST', list],
|
|
45
|
+
['ENABLE', enable],
|
|
46
|
+
['SELECT', select],
|
|
47
|
+
['FETCH', fetch],
|
|
48
|
+
['CREATE', create],
|
|
49
|
+
['DELETE', deleteMailbox],
|
|
50
|
+
['RENAME', rename],
|
|
51
|
+
['CLOSE', close],
|
|
52
|
+
['SUBSCRIBE', subscribe],
|
|
53
|
+
['UNSUBSCRIBE', unsubscribe],
|
|
54
|
+
['STORE', store],
|
|
55
|
+
['SEARCH', search],
|
|
56
|
+
['NOOP', noop],
|
|
57
|
+
['EXPUNGE', expunge],
|
|
58
|
+
['APPEND', append],
|
|
59
|
+
['STATUS', status],
|
|
60
|
+
['COPY', copy],
|
|
61
|
+
['MOVE', move],
|
|
62
|
+
['COMPRESS', compress],
|
|
63
|
+
['QUOTA', quota],
|
|
64
|
+
['IDLE', idle],
|
|
65
|
+
['AUTHENTICATE', authenticate]
|
|
66
|
+
]);
|
|
67
|
+
export default imapCommands;
|