imapkit 4.1.0 → 4.1.1

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.
@@ -55,7 +55,6 @@ function _handleAddress(tokens, inGroup) {
55
55
  let token;
56
56
  let isGroup = false;
57
57
  let state = 'text';
58
- let address;
59
58
  const addresses = [];
60
59
  const data = {
61
60
  address: [],
@@ -103,8 +102,8 @@ function _handleAddress(tokens, inGroup) {
103
102
  // http://tools.ietf.org/html/rfc2822#appendix-A.1.3
104
103
  const text = data.text.join(' ');
105
104
  addresses.push({
106
- // address is never set here, so an empty group name throws like the JavaScript original did
107
- name: text || address.name,
105
+ // RFC 5322 section 3.4 requires a display name, but a group like ":a@b;" still parses, with an empty name
106
+ name: text,
108
107
  group: data.group.length ? parse(data.group.join(','), true) : []
109
108
  });
110
109
  }
@@ -148,24 +147,19 @@ function _handleAddress(tokens, inGroup) {
148
147
  // Join values with spaces
149
148
  const text = data.text.join(' ');
150
149
  const addressText = data.address.join(' ');
151
- if (!addressText && isGroup) {
152
- return [];
153
- }
154
- else {
155
- address = {
156
- address: addressText || text || '',
157
- name: text || addressText || ''
158
- };
159
- if (address.address === address.name) {
160
- if ((address.address || '').match(/@/)) {
161
- address.name = '';
162
- }
163
- else {
164
- address.address = '';
165
- }
150
+ const address = {
151
+ address: addressText || text || '',
152
+ name: text || addressText || ''
153
+ };
154
+ if (address.address === address.name) {
155
+ if ((address.address || '').match(/@/)) {
156
+ address.name = '';
157
+ }
158
+ else {
159
+ address.address = '';
166
160
  }
167
- addresses.push(address);
168
161
  }
162
+ addresses.push(address);
169
163
  }
170
164
  return addresses;
171
165
  }
@@ -52,7 +52,6 @@ function _handleAddress(tokens, inGroup) {
52
52
  let token;
53
53
  let isGroup = false;
54
54
  let state = 'text';
55
- let address;
56
55
  const addresses = [];
57
56
  const data = {
58
57
  address: [],
@@ -100,8 +99,8 @@ function _handleAddress(tokens, inGroup) {
100
99
  // http://tools.ietf.org/html/rfc2822#appendix-A.1.3
101
100
  const text = data.text.join(' ');
102
101
  addresses.push({
103
- // address is never set here, so an empty group name throws like the JavaScript original did
104
- name: text || address.name,
102
+ // RFC 5322 section 3.4 requires a display name, but a group like ":a@b;" still parses, with an empty name
103
+ name: text,
105
104
  group: data.group.length ? parse(data.group.join(','), true) : []
106
105
  });
107
106
  }
@@ -145,24 +144,19 @@ function _handleAddress(tokens, inGroup) {
145
144
  // Join values with spaces
146
145
  const text = data.text.join(' ');
147
146
  const addressText = data.address.join(' ');
148
- if (!addressText && isGroup) {
149
- return [];
150
- }
151
- else {
152
- address = {
153
- address: addressText || text || '',
154
- name: text || addressText || ''
155
- };
156
- if (address.address === address.name) {
157
- if ((address.address || '').match(/@/)) {
158
- address.name = '';
159
- }
160
- else {
161
- address.address = '';
162
- }
147
+ const address = {
148
+ address: addressText || text || '',
149
+ name: text || addressText || ''
150
+ };
151
+ if (address.address === address.name) {
152
+ if ((address.address || '').match(/@/)) {
153
+ address.name = '';
154
+ }
155
+ else {
156
+ address.address = '';
163
157
  }
164
- addresses.push(address);
165
158
  }
159
+ addresses.push(address);
166
160
  }
167
161
  return addresses;
168
162
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "imapkit",
3
- "version": "4.1.0",
3
+ "version": "4.1.1",
4
4
  "description": "Scriptable, strictly RFC compliant in-memory IMAP server for testing IMAP clients",
5
5
  "type": "module",
6
6
  "main": "./dist/cjs/index.js",
@@ -93,7 +93,7 @@
93
93
  "eslint": "10.12.0",
94
94
  "eslint-config-prettier": "10.1.8",
95
95
  "globals": "17.13.0",
96
- "imapflow": "2.2.7",
96
+ "imapflow": "2.2.8",
97
97
  "prettier": "3.9.9",
98
98
  "tsx": "4.23.15",
99
99
  "typescript": "6.0.3",