emailengine-app 2.61.1 → 2.61.3

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 (136) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/data/google-crawlers.json +1 -1
  3. package/lib/account/account-state.js +248 -0
  4. package/lib/account.js +45 -193
  5. package/lib/api-routes/account-routes.js +1023 -0
  6. package/lib/api-routes/message-routes.js +1377 -0
  7. package/lib/consts.js +12 -2
  8. package/lib/email-client/base-client.js +282 -771
  9. package/lib/email-client/gmail/gmail-api.js +243 -0
  10. package/lib/email-client/gmail-client.js +145 -53
  11. package/lib/email-client/imap/mailbox.js +24 -698
  12. package/lib/email-client/imap/sync-operations.js +812 -0
  13. package/lib/email-client/imap-client.js +1 -1
  14. package/lib/email-client/message-builder.js +566 -0
  15. package/lib/email-client/notification-handler.js +314 -0
  16. package/lib/email-client/outlook/graph-api.js +326 -0
  17. package/lib/email-client/outlook-client.js +159 -113
  18. package/lib/email-client/smtp-pool-manager.js +196 -0
  19. package/lib/imapproxy/imap-server.js +3 -12
  20. package/lib/oauth/gmail.js +4 -4
  21. package/lib/oauth/mail-ru.js +30 -5
  22. package/lib/oauth/outlook.js +57 -3
  23. package/lib/oauth/pubsub/google.js +30 -11
  24. package/lib/oauth/scope-checker.js +202 -0
  25. package/lib/oauth2-apps.js +8 -4
  26. package/lib/redis-operations.js +484 -0
  27. package/lib/routes-ui.js +283 -2582
  28. package/lib/tools.js +4 -196
  29. package/lib/ui-routes/account-routes.js +1931 -0
  30. package/lib/ui-routes/admin-config-routes.js +1233 -0
  31. package/lib/ui-routes/admin-entities-routes.js +2367 -0
  32. package/lib/ui-routes/oauth-routes.js +992 -0
  33. package/lib/utils/network.js +237 -0
  34. package/package.json +10 -10
  35. package/sbom.json +1 -1
  36. package/static/js/app.js +5 -5
  37. package/static/licenses.html +79 -19
  38. package/translations/de.mo +0 -0
  39. package/translations/de.po +97 -86
  40. package/translations/en.mo +0 -0
  41. package/translations/en.po +80 -75
  42. package/translations/et.mo +0 -0
  43. package/translations/et.po +96 -86
  44. package/translations/fr.mo +0 -0
  45. package/translations/fr.po +97 -86
  46. package/translations/ja.mo +0 -0
  47. package/translations/ja.po +96 -86
  48. package/translations/messages.pot +105 -91
  49. package/translations/nl.mo +0 -0
  50. package/translations/nl.po +98 -86
  51. package/translations/pl.mo +0 -0
  52. package/translations/pl.po +96 -86
  53. package/views/account/security.hbs +4 -4
  54. package/views/accounts/account.hbs +13 -13
  55. package/views/accounts/register/imap-server.hbs +12 -12
  56. package/views/config/document-store/pre-processing/index.hbs +4 -2
  57. package/views/config/oauth/app.hbs +6 -7
  58. package/views/config/oauth/index.hbs +2 -2
  59. package/views/config/service.hbs +3 -4
  60. package/views/dashboard.hbs +5 -7
  61. package/views/error.hbs +22 -7
  62. package/views/gateways/gateway.hbs +2 -2
  63. package/views/partials/add_account_modal.hbs +7 -10
  64. package/views/partials/document_store_header.hbs +1 -1
  65. package/views/partials/editor_scope_info.hbs +0 -1
  66. package/views/partials/oauth_config_header.hbs +1 -1
  67. package/views/partials/side_menu.hbs +3 -3
  68. package/views/partials/webhook_form.hbs +2 -2
  69. package/views/templates/index.hbs +1 -1
  70. package/views/templates/template.hbs +8 -8
  71. package/views/tokens/index.hbs +6 -6
  72. package/views/tokens/new.hbs +1 -1
  73. package/views/webhooks/index.hbs +4 -4
  74. package/views/webhooks/webhook.hbs +7 -7
  75. package/workers/api.js +148 -2436
  76. package/workers/smtp.js +2 -1
  77. package/lib/imapproxy/imap-core/test/client.js +0 -46
  78. package/lib/imapproxy/imap-core/test/fixtures/append.eml +0 -1196
  79. package/lib/imapproxy/imap-core/test/fixtures/chunks.js +0 -44
  80. package/lib/imapproxy/imap-core/test/fixtures/fix1.eml +0 -6
  81. package/lib/imapproxy/imap-core/test/fixtures/fix2.eml +0 -599
  82. package/lib/imapproxy/imap-core/test/fixtures/fix3.eml +0 -32
  83. package/lib/imapproxy/imap-core/test/fixtures/fix4.eml +0 -6
  84. package/lib/imapproxy/imap-core/test/fixtures/mimetorture.eml +0 -599
  85. package/lib/imapproxy/imap-core/test/fixtures/mimetorture.js +0 -2740
  86. package/lib/imapproxy/imap-core/test/fixtures/mimetorture.json +0 -1411
  87. package/lib/imapproxy/imap-core/test/fixtures/mimetree.js +0 -85
  88. package/lib/imapproxy/imap-core/test/fixtures/nodemailer.eml +0 -582
  89. package/lib/imapproxy/imap-core/test/fixtures/ryan_finnie_mime_torture.eml +0 -599
  90. package/lib/imapproxy/imap-core/test/fixtures/simple.eml +0 -42
  91. package/lib/imapproxy/imap-core/test/fixtures/simple.json +0 -164
  92. package/lib/imapproxy/imap-core/test/imap-compile-stream-test.js +0 -671
  93. package/lib/imapproxy/imap-core/test/imap-compiler-test.js +0 -272
  94. package/lib/imapproxy/imap-core/test/imap-indexer-test.js +0 -236
  95. package/lib/imapproxy/imap-core/test/imap-parser-test.js +0 -922
  96. package/lib/imapproxy/imap-core/test/memory-notifier.js +0 -129
  97. package/lib/imapproxy/imap-core/test/prepare.sh +0 -74
  98. package/lib/imapproxy/imap-core/test/protocol-test.js +0 -1756
  99. package/lib/imapproxy/imap-core/test/search-test.js +0 -1356
  100. package/lib/imapproxy/imap-core/test/test-client.js +0 -152
  101. package/lib/imapproxy/imap-core/test/test-server.js +0 -623
  102. package/lib/imapproxy/imap-core/test/tools-test.js +0 -22
  103. package/test/api-test.js +0 -899
  104. package/test/autoreply-test.js +0 -327
  105. package/test/bounce-test.js +0 -151
  106. package/test/complaint-test.js +0 -256
  107. package/test/fixtures/autoreply/LICENSE +0 -27
  108. package/test/fixtures/autoreply/rfc3834-01.eml +0 -23
  109. package/test/fixtures/autoreply/rfc3834-02.eml +0 -24
  110. package/test/fixtures/autoreply/rfc3834-03.eml +0 -26
  111. package/test/fixtures/autoreply/rfc3834-04.eml +0 -48
  112. package/test/fixtures/autoreply/rfc3834-05.eml +0 -19
  113. package/test/fixtures/autoreply/rfc3834-06.eml +0 -59
  114. package/test/fixtures/bounces/163.eml +0 -2521
  115. package/test/fixtures/bounces/fastmail.eml +0 -242
  116. package/test/fixtures/bounces/gmail.eml +0 -252
  117. package/test/fixtures/bounces/hotmail.eml +0 -655
  118. package/test/fixtures/bounces/mailru.eml +0 -121
  119. package/test/fixtures/bounces/outlook.eml +0 -1107
  120. package/test/fixtures/bounces/postfix.eml +0 -101
  121. package/test/fixtures/bounces/rambler.eml +0 -116
  122. package/test/fixtures/bounces/workmail.eml +0 -142
  123. package/test/fixtures/bounces/yahoo.eml +0 -139
  124. package/test/fixtures/bounces/zoho.eml +0 -83
  125. package/test/fixtures/bounces/zonemta.eml +0 -100
  126. package/test/fixtures/complaints/LICENSE +0 -27
  127. package/test/fixtures/complaints/amazonses.eml +0 -72
  128. package/test/fixtures/complaints/dmarc.eml +0 -59
  129. package/test/fixtures/complaints/hotmail.eml +0 -49
  130. package/test/fixtures/complaints/optout.eml +0 -40
  131. package/test/fixtures/complaints/standard-arf.eml +0 -68
  132. package/test/fixtures/complaints/yahoo.eml +0 -68
  133. package/test/oauth2-apps-test.js +0 -301
  134. package/test/sendonly-test.js +0 -160
  135. package/test/test-config.js +0 -34
  136. package/test/webhooks-server.js +0 -39
@@ -1,152 +0,0 @@
1
- /*eslint no-console: 0 */
2
-
3
- 'use strict';
4
-
5
- let net = require('net');
6
- let tls = require('tls');
7
-
8
- module.exports = runClientMockup;
9
-
10
- function runClientMockup(options, callback) {
11
- options = options || {};
12
-
13
- let host = options.host || 'localhost';
14
- let port = options.port || 25;
15
- let commands = [].concat(options.commands || []);
16
- let debug = options.debug;
17
-
18
- let ignore_data = false;
19
- let responses = [];
20
- let command = '';
21
- let callbackSent = false;
22
- let delay;
23
-
24
- let socket = (options.secure ? tls : net).connect(
25
- {
26
- rejectUnauthorized: false,
27
- port,
28
- host
29
- },
30
- () => {
31
- socket.on('close', () => {
32
- if (callbackSent) {
33
- return;
34
- }
35
- callbackSent = true;
36
- if (typeof callback === 'function') {
37
- return callback(Buffer.concat(responses));
38
- }
39
- });
40
-
41
- let onData = function(chunk) {
42
- if (ignore_data) {
43
- return;
44
- }
45
-
46
- responses.push(chunk);
47
- if (debug) {
48
- console.log('S: ' + chunk.toString('binary').trim());
49
- }
50
-
51
- if (!commands.length) {
52
- return;
53
- }
54
-
55
- if (typeof command === 'string' && command.match(/^[a-z0-9]+ STARTTLS$/i)) {
56
- // wait until server sends response to the STARTTLS command
57
- if (!/STARTTLS completed/.test(Buffer.concat(responses).toString())) {
58
- return;
59
- }
60
-
61
- ignore_data = true;
62
- if (debug) {
63
- console.log('Initiated TLS connection');
64
- }
65
-
66
- socket.removeAllListeners('data');
67
- let secureSocket = tls.connect(
68
- {
69
- rejectUnauthorized: false,
70
- socket,
71
- host
72
- },
73
- () => {
74
- ignore_data = false;
75
-
76
- socket = secureSocket;
77
-
78
- if (debug) {
79
- console.log('TLS connection secured');
80
- }
81
-
82
- secureSocket.on('data', onData);
83
-
84
- secureSocket.on('close', () => {
85
- if (callbackSent) {
86
- return;
87
- }
88
- callbackSent = true;
89
- if (typeof callback === 'function') {
90
- return callback(Buffer.concat(responses));
91
- }
92
- });
93
-
94
- command = commands.shift();
95
- if (debug) {
96
- console.log('(Secure) C: ' + command);
97
- }
98
- secureSocket.write(command + '\r\n');
99
- }
100
- );
101
-
102
- secureSocket.on('error', err => {
103
- console.log('SECURE ERR');
104
- console.log(err.stack);
105
- });
106
- } else {
107
- if (!/\r?\n$/.test(chunk.toString('binary'))) {
108
- return;
109
- }
110
- // only go forward with the next command if the last data ends with a newline
111
- // and there is no activity in the socket for 10ms
112
- let processCommand = () => {
113
- clearTimeout(delay);
114
- delay = setTimeout(() => {
115
- command = commands.shift();
116
- if (command === 'SLEEP') {
117
- return setTimeout(processCommand, 5000);
118
- }
119
-
120
- if (Array.isArray(command)) {
121
- let i = 0;
122
- let send = function() {
123
- if (i >= command.length) {
124
- return;
125
- }
126
-
127
- let part = command[i++];
128
-
129
- socket.write(Buffer.from(part + (i >= command.length ? '\r\n' : ''), 'binary'));
130
- if (debug) {
131
- console.log('C: ' + part);
132
- }
133
- setTimeout(send, 10);
134
- };
135
-
136
- send();
137
- } else {
138
- socket.write(Buffer.from(command + '\r\n', 'binary'));
139
- if (debug) {
140
- console.log('C: ' + command);
141
- }
142
- }
143
- }, 100);
144
- };
145
- processCommand();
146
- }
147
- };
148
-
149
- socket.on('data', onData);
150
- }
151
- );
152
- }