Commit graph

75 commits

Author SHA1 Message Date
NickOvt
53e220a8e2
fix(RFC5987-filename): ZMS-14: Allow RFC5987 encoded filenames (filename*=charset'language'text) (#993)
* ZMS-14: Allow RFC5987 encoded filenames (filename*=charset'language'text)
2026-02-16 11:58:34 +02:00
NickOvt
545800d17a
fix(imap-indexer): Revert "fix(rebuild): ZMSA-48: fix rebuilding of multipart parts (#942)" (#980)
This reverts commit 11b4fcbcd4.
2026-01-29 11:14:54 +02:00
NickOvt
da2ea5033c
fix(imap-search): ZMSA-77: revert ZMSA-67, add UID SEARCH protocol tests (#977)
* ZMSA-77: in case of UID SEARCH 1:N where N is the amount of messages in mailbox, treat the search as sequence search instead of UID search

* ZMSA-77: revert ZMSA-67 changes, add more UID SEARCH protocol tests

* remove unneded variable

* rename some search protocol tests

* add more search protocol tests
2026-01-27 12:57:02 +02:00
NickOvt
3b14035f05
fix(imap-client-uid-search): ZMSA-70: optimize search query client command parsing (#963)
* ZMSA-70: optimize search query client command parsing

* add uid search tests

* shuffle client sent UIDs in some tests
2026-01-22 11:24:28 +02:00
NickOvt
11b4fcbcd4
fix(rebuild): ZMSA-48: fix rebuilding of multipart parts (#942)
* fix rebuilding of multipart parts

* input and output (downloaded) .eml files must be identical, the provided fixes do this

* fix tests, fix indexer, add size when fetching imap
2026-01-19 11:22:17 +02:00
titanism
81f30cbfe1
fix: advertise extended capabilities pre-auth (matches Gmail/Yahoo/Outlook behavior) (#943)
* fix: advertise extended capabilities pre-auth (matches Gmail/Yahoo/Outlook behavior)

* fix: fixed protocol test to support both (at least for documentation purposes), mirror XAPPLEPUSHSERVICE being first capability advertised by Apple

* fix: remove protocols not supported
2025-12-21 07:15:47 +02:00
titanism
f8bae92352
fix: fixed uncaught exception dest.on is not a fn (closes #858) (#905) 2025-11-13 12:40:48 +02:00
NickOvt
e3d3221bd5
fix: ZMSA-1: update release workflow, update deps, use updated deps, scope package (#887)
* update release workflow

* update deps, use scoped packages, scope package
2025-10-17 12:04:48 +03:00
titanism
70aed51373
fix(connection-management): implement connection management, POP3 timeout fixes, and comprehensive documentation (#835)
* feat: implement connection management, POP3 timeout fixes, and comprehensive documentation

- feat(imap,pop3): add onConnect and onClose handlers (closes #721)
  * Implement onConnect handlers for connection filtering and rate limiting
  * Implement onClose handlers for custom cleanup logic
  * Add support for IP blocking and connection overflow prevention
  * Enable custom connection management and monitoring
  * Maintain full backward compatibility

- feat(pop3): reset socket timeout after each command processing (closes #709)
  * Add timeout reset in processQueue() after successful command execution
  * Add timeout reset for continue data processing
  * Prevents active POP3 connections from timing out unexpectedly
  * Maintains backward compatibility with existing timeout settings

- docs: add comprehensive documentation with proper navigation (related to #770)
  * Add Connection Management guide with implementation examples
  * Add CONDSTORE Extension guide with RFC 4551 compliance details
  * Update README with Recent Improvements section
  * Add proper sidebar navigation links for discoverability
  * Add cross-references in protocol support documentation
  * Ensure GitHub pages compatibility and multiple discovery paths
  * Fix documentation accuracy to match actual codebase implementation

- test: add comprehensive test coverage for new features
  * Add IMAP onConnect/onClose handler tests (7 tests)
  * Add POP3 onConnect/onClose handler tests (9 tests)
  * Add POP3 timeout reset functionality tests (3 tests)
  * Fix test file path issues for proper execution
  * All 19 tests passing with full coverage
  * Perfect ESLint compliance across all test files

- refactor: enhance features documentation
  * Add Advanced Connection Management
  * Add Smart POP3 Timeout Handling
  * Add CONDSTORE Extension Support
  * Update main project README with practical examples

- fix: correct test file paths for proper execution
  * Fix hardcoded absolute paths in POP3 timeout tests
  * Use relative paths for better portability
  * Apply whitespace cleanup across all JS and MD files

Related to #770 (CONDSTORE functionality verified and documented accurately)

* fix: fixed tests via server.listen(0) approach

* fix: implemented changes from @NickOvt per #835

- Added `const TEST_PORT = 0;` to all appropriate test files where `.listen(0` was used
- Replaced all instances of `.listen(0, with .listen(TEST_PORT,`
- Added abrupt connection close test via `"should handle abrupt connection close properly"` which verifies both onConnect and onClose handlers are called (for both IMAP and POP3)
- Added async handler test via `"should work with async onConnect handler"` which simulates Redis or other async operations (for both IMAP and POP3)
- Simplified CONDSTORE documentation
- Removed redundant RFC explanations
- Removed AI-written style phrases like "use WeakMap ... etc. etc."
2025-07-23 10:46:13 +03:00
NickOvt
3639d115d2
fix(imap-parser): Rewrite imap-parser, fix common issues ZMS-234 (#830)
* rewrite imap-parser, fix common issues

* in case of literals return them as strings
2025-06-25 19:53:54 +03:00
NickOvt
36fcabcd5b
fix(typos): fixed typos ZMS-167 (#740) 2024-10-14 10:37:58 +03:00
NickOvt
ee870b9fed
fix(api&imap-mailboxes): Added mailbox subpath and whole path max length limits to API and IMAP ZMS-169 (#732)
* Added submission api endpoint to api docs generation

* mailboxes.js, check for max subpath length and max count on create and rename of a mailbox

* add mailboxes tests

* IMAP rename err code fix. IMAP mailbox create and rename tests added

* IMAP tests, remove magic numbers

* mailboxes tests, remove magic numbers

* mailboxes tests fix broken tests

* remove repetitions
2024-09-23 12:38:02 +03:00
Andris Reinman
e17f37f216
Use mongo6 for github action test runner 2024-01-23 11:07:57 +02:00
Andris Reinman
1fe04810be
Removed extraneous file 2023-12-07 13:54:51 +02:00
Andris Reinman
6f4994d3a0
fix(mime-parsing): ensure that text content for multipart nodes always ends with a newline. Fixes #571 2023-12-07 13:53:27 +02:00
Andris Reinman
3e9a764d73
Fixed tests 2023-05-25 11:28:30 +03:00
Andris Reinman
a32c065da5
test-failing 2023-05-24 16:29:06 +03:00
Andris Reinman
e983eae623
Use header parser from libmime, removed local implementation 2023-05-15 15:07:21 +03:00
Andris Reinman
6008fb26ed
re-run test with 127.0.0.1 2022-12-15 11:29:12 +02:00
Andris Reinman
d98a6248ba
Replaces argon2-browser with hash-wasm module 2022-12-01 15:40:47 +02:00
Andris Reinman
559102269a
install mongo cli 2022-11-24 16:50:33 +02:00
Andris Reinman
783ca5a333
install mongo cli 2022-11-24 16:45:07 +02:00
Andris Reinman
ebac633778 removed extra console.log 2021-08-30 11:26:33 +03:00
Andris Reinman
53cda36329 Upgrade Mongodb library from 3 to 4
update
2021-08-30 11:21:50 +03:00
Andris Reinman
418cf70b66 Refactored IMAP COPY. Aborts copying if socket to client is closed 2020-09-08 12:26:33 +03:00
Andris Reinman
6d17dbccf3 v1.27.3 2020-07-16 16:57:13 +03:00
Andris Reinman
00da4bc4fa replaced browserbox with imapflow, utf7 with iconv-lite 2020-05-15 19:02:24 +03:00
Andris Reinman
07bc93bad0 fixed tests 2019-08-27 16:20:23 +03:00
Andris Reinman
f9ee7d6200 Optimized partial fetches. Does not work correctly with mime torture message 2019-08-08 01:12:00 +03:00
Andris Reinman
742ddf30f1 rollback attachment limiter 2019-08-07 11:41:49 +03:00
Andris Reinman
f1752817a2 IMAP compiler 2019-07-31 11:26:38 +03:00
Andris Reinman
8ea39f54e2 asyncified message rebuilding 2019-07-18 11:01:29 +03:00
Andris Reinman
716e14797a validate date values for SEARCH arguments 2019-05-27 22:31:27 +03:00
Andris Reinman
012e1313ef fixed tests 2019-05-10 13:42:37 +03:00
Andris Reinman
5297a6edbf v1.19.0 2019-05-07 10:27:30 +03:00
Andris Reinman
01463cf386 make sure that there is no WS bertween BODYSTRUCTURE lists 2019-02-05 20:59:44 +02:00
Andris Reinman
496104d936 prevent multiple re-encoding of APPEND literals 2018-12-29 00:49:48 +02:00
Andris Reinman
a6cba61f4f fixed tests 2018-12-27 17:44:38 +02:00
Andris Reinman
6170544751 update 2018-12-27 17:38:57 +02:00
Andris Reinman
c7647a7893 test update 2018-12-27 17:32:00 +02:00
Andris Reinman
cd77a519a4 test update 2018-12-27 17:28:44 +02:00
Andris Reinman
bfdbe59caf increase timeout for append 2018-12-27 17:22:52 +02:00
Andris Reinman
641500b1d6 updated tests 2018-12-27 17:14:47 +02:00
Andris Reinman
624654a84d v1.7.0 2018-10-18 19:07:13 +03:00
Andris Reinman
ca9455f813 v1.2.2 2018-06-21 19:41:31 +03:00
Andris Reinman
4bef7e3a10 Allow using addresses as usernames 2018-05-11 14:39:23 +03:00
Andris Reinman
97d004bd53 allow configure autoexpunge 2017-12-15 11:02:47 +02:00
Andris Reinman
ceee52b816 fixed tests 2017-12-13 11:32:39 +02:00
Andris Reinman
384ad224d2 removed probably race condition on autoexpunge 2017-12-13 11:23:18 +02:00
Andris Reinman
dfe94e1e32 test still failing :S 2017-12-13 10:51:45 +02:00