imapflow 1.4.7 → 1.4.9
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/.release-please-manifest.json +1 -1
- package/CHANGELOG.md +16 -0
- package/CLAUDE.md +10 -1
- package/Gruntfile.js +3 -1
- package/lib/commands/authenticate.js +13 -1
- package/lib/commands/enable.js +13 -4
- package/lib/commands/expunge.js +2 -2
- package/lib/commands/idle.js +6 -3
- package/lib/commands/list.js +237 -60
- package/lib/commands/move.js +2 -2
- package/lib/commands/namespace.js +3 -1
- package/lib/commands/search.js +88 -13
- package/lib/commands/status.js +13 -25
- package/lib/imap-flow.d.ts +5 -3
- package/lib/imap-flow.js +43 -9
- package/lib/search-compiler.js +15 -1
- package/lib/tools.js +141 -9
- package/package.json +7 -6
- package/test/commands-branches-test.js +11 -4
- package/test/commands-integration-test.js +1270 -124
- package/test/connection-edge-cases-test.js +2 -2
- package/test/connection-test.js +1 -1
- package/test/fixtures/test-tls.js +2 -2
- package/test/imap-flow-coverage-test.js +8 -1
- package/test/imap-flow-fetch-download-test.js +1 -4
- package/test/imap-flow-internals-test.js +2 -2
- package/test/imap-flow-methods-test.js +65 -6
- package/test/imap-parser-test.js +1 -2
- package/test/integration/README.md +40 -0
- package/test/integration/dovecot-test.conf +27 -0
- package/test/integration/rev2-live-test.js +242 -0
- package/test/integration/run-rev2-tests.sh +61 -0
- package/test/reliability-improvements-test.js +4 -1
- package/test/search-compiler-test.js +19 -0
- package/test/search-test.js +52 -54
- package/test/tools-test.js +134 -15
- package/.github/codeql/codeql-config.yml +0 -12
- package/.github/workflows/codeql.yml +0 -102
|
@@ -415,7 +415,7 @@ module.exports['Branches: search with undefined options uses {} fallback'] = asy
|
|
|
415
415
|
// operand of the OR is evaluated and used to skip it.
|
|
416
416
|
// ============================================================================
|
|
417
417
|
|
|
418
|
-
module.exports['Branches: search ESEARCH without uid emits SEARCH and skips
|
|
418
|
+
module.exports['Branches: search ESEARCH without uid emits SEARCH and skips the tag correlator'] = async test => {
|
|
419
419
|
let execCmd = null;
|
|
420
420
|
const connection = createMockConnection({
|
|
421
421
|
state: 3,
|
|
@@ -423,10 +423,17 @@ module.exports['Branches: search ESEARCH without uid emits SEARCH and skips LIST
|
|
|
423
423
|
exec: async (cmd, attrs, opts) => {
|
|
424
424
|
execCmd = cmd;
|
|
425
425
|
if (opts && opts.untagged && opts.untagged.ESEARCH) {
|
|
426
|
-
// attrs[0] is
|
|
427
|
-
//
|
|
426
|
+
// attrs[0] is the (TAG "...") correlator group, represented by the
|
|
427
|
+
// parser as a plain Array - it must be skipped before the keywords
|
|
428
428
|
await opts.untagged.ESEARCH({
|
|
429
|
-
attributes: [
|
|
429
|
+
attributes: [
|
|
430
|
+
[
|
|
431
|
+
{ type: 'ATOM', value: 'TAG' },
|
|
432
|
+
{ type: 'STRING', value: 'A1' }
|
|
433
|
+
],
|
|
434
|
+
{ type: 'ATOM', value: 'COUNT' },
|
|
435
|
+
{ type: 'ATOM', value: '7' }
|
|
436
|
+
]
|
|
430
437
|
});
|
|
431
438
|
}
|
|
432
439
|
return { next: () => {} };
|