@bobfrankston/rmfmail 1.2.253 → 1.2.254
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/client/android-bootstrap.bundle.js +2 -1
- package/client/android-bootstrap.bundle.js.map +2 -2
- package/client/app.bundle.js.map +1 -1
- package/package.json +5 -5
- package/packages/mailx-imap/package-lock.json +2 -2
- package/packages/mailx-imap/package.json +1 -1
- package/packages/mailx-settings/package.json +1 -1
- package/packages/mailx-store/package.json +1 -1
- package/packages/mailx-store-web/package.json +1 -1
- package/packages/mailx-types/mime-build.js +8 -1
- package/packages/mailx-types/mime-build.js.map +1 -1
- package/packages/mailx-types/mime-build.ts +8 -1
- package/packages/mailx-types/package.json +1 -1
- /package/packages/mailx-imap/{node_modules.npmglobalize-stash-54924 → node_modules.npmglobalize-stash-77932}/.package-lock.json +0 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bobfrankston/rmfmail",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.254",
|
|
4
4
|
"description": "Local-first email client with IMAP sync and standalone native app",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "bin/mailx.js",
|
|
@@ -34,8 +34,8 @@
|
|
|
34
34
|
"dependencies": {
|
|
35
35
|
"@bobfrankston/iflow-direct": "^0.1.65",
|
|
36
36
|
"@bobfrankston/mailx-host": "^0.1.15",
|
|
37
|
-
"@bobfrankston/mailx-imap": "^0.1.
|
|
38
|
-
"@bobfrankston/mailx-store-web": "^0.1.
|
|
37
|
+
"@bobfrankston/mailx-imap": "^0.1.152",
|
|
38
|
+
"@bobfrankston/mailx-store-web": "^0.1.79",
|
|
39
39
|
"@bobfrankston/mailx-sync": "^0.1.29",
|
|
40
40
|
"@bobfrankston/miscinfo": "^1.0.17",
|
|
41
41
|
"@bobfrankston/msger": "^0.1.424",
|
|
@@ -114,8 +114,8 @@
|
|
|
114
114
|
"dependencies": {
|
|
115
115
|
"@bobfrankston/iflow-direct": "^0.1.65",
|
|
116
116
|
"@bobfrankston/mailx-host": "^0.1.15",
|
|
117
|
-
"@bobfrankston/mailx-imap": "^0.1.
|
|
118
|
-
"@bobfrankston/mailx-store-web": "^0.1.
|
|
117
|
+
"@bobfrankston/mailx-imap": "^0.1.152",
|
|
118
|
+
"@bobfrankston/mailx-store-web": "^0.1.79",
|
|
119
119
|
"@bobfrankston/mailx-sync": "^0.1.29",
|
|
120
120
|
"@bobfrankston/miscinfo": "^1.0.17",
|
|
121
121
|
"@bobfrankston/msger": "^0.1.424",
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bobfrankston/mailx-imap",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.153",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "@bobfrankston/mailx-imap",
|
|
9
|
-
"version": "0.1.
|
|
9
|
+
"version": "0.1.153",
|
|
10
10
|
"license": "ISC",
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@bobfrankston/iflow-direct": "^0.1.27",
|
|
@@ -146,8 +146,15 @@ function wrapWithAttachments(commonHeaders, inner, attachments, newBoundary) {
|
|
|
146
146
|
return [...commonHeaders, ...inner.headers].join("\r\n") + `\r\n\r\n` + inner.body;
|
|
147
147
|
}
|
|
148
148
|
const mixedBoundary = newBoundary();
|
|
149
|
+
// RFC 2046: a boundary delimiter is "CRLF--boundary" — it MUST start its
|
|
150
|
+
// own line. The multipart/alternative inner body already ends with CRLF,
|
|
151
|
+
// but a bare quoted-printable body (draft, or a text-only send) does not,
|
|
152
|
+
// which glued `</p>--mailx_abc` together and made mailparser report ZERO
|
|
153
|
+
// attachments even though the bytes were all there. Normalize instead of
|
|
154
|
+
// assuming, so no future inner shape can reintroduce it.
|
|
155
|
+
const endCRLF = (s) => (s.endsWith("\r\n") ? s : s + "\r\n");
|
|
149
156
|
const parts = [
|
|
150
|
-
`--${mixedBoundary}\r\n` + inner.headers.join("\r\n") + `\r\n\r\n` + inner.body,
|
|
157
|
+
`--${mixedBoundary}\r\n` + inner.headers.join("\r\n") + `\r\n\r\n` + endCRLF(inner.body),
|
|
151
158
|
];
|
|
152
159
|
for (const att of attachments) {
|
|
153
160
|
// A quote or newline in a filename would break out of the header.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mime-build.js","sourceRoot":"","sources":["mime-build.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"mime-build.js","sourceRoot":"","sources":["mime-build.ts"],"names":[],"mappings":"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"}
|
|
@@ -209,8 +209,15 @@ function wrapWithAttachments(
|
|
|
209
209
|
return [...commonHeaders, ...inner.headers].join("\r\n") + `\r\n\r\n` + inner.body;
|
|
210
210
|
}
|
|
211
211
|
const mixedBoundary = newBoundary();
|
|
212
|
+
// RFC 2046: a boundary delimiter is "CRLF--boundary" — it MUST start its
|
|
213
|
+
// own line. The multipart/alternative inner body already ends with CRLF,
|
|
214
|
+
// but a bare quoted-printable body (draft, or a text-only send) does not,
|
|
215
|
+
// which glued `</p>--mailx_abc` together and made mailparser report ZERO
|
|
216
|
+
// attachments even though the bytes were all there. Normalize instead of
|
|
217
|
+
// assuming, so no future inner shape can reintroduce it.
|
|
218
|
+
const endCRLF = (s: string): string => (s.endsWith("\r\n") ? s : s + "\r\n");
|
|
212
219
|
const parts: string[] = [
|
|
213
|
-
`--${mixedBoundary}\r\n` + inner.headers.join("\r\n") + `\r\n\r\n` + inner.body,
|
|
220
|
+
`--${mixedBoundary}\r\n` + inner.headers.join("\r\n") + `\r\n\r\n` + endCRLF(inner.body),
|
|
214
221
|
];
|
|
215
222
|
for (const att of attachments) {
|
|
216
223
|
// A quote or newline in a filename would break out of the header.
|