libmime 5.2.0 → 5.3.4

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.
@@ -0,0 +1,37 @@
1
+ on:
2
+ push:
3
+ branches:
4
+ - master
5
+
6
+ permissions:
7
+ contents: write
8
+ pull-requests: write
9
+ id-token: write
10
+
11
+ name: release
12
+ jobs:
13
+ release-please:
14
+ runs-on: ubuntu-latest
15
+ steps:
16
+ - uses: google-github-actions/release-please-action@v3
17
+ id: release
18
+ with:
19
+ release-type: node
20
+ package-name: ${{vars.NPM_MODULE_NAME}}
21
+ pull-request-title-pattern: 'chore${scope}: release ${version} [skip-ci]'
22
+ # The logic below handles the npm publication:
23
+ - uses: actions/checkout@v4
24
+ # these if statements ensure that a publication only occurs when
25
+ # a new release is created:
26
+ if: ${{ steps.release.outputs.release_created }}
27
+ - uses: actions/setup-node@v4
28
+ with:
29
+ node-version: 20
30
+ registry-url: 'https://registry.npmjs.org'
31
+ if: ${{ steps.release.outputs.release_created }}
32
+ - run: npm ci
33
+ if: ${{ steps.release.outputs.release_created }}
34
+ - run: npm publish --provenance --access public
35
+ env:
36
+ NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
37
+ if: ${{ steps.release.outputs.release_created }}
@@ -8,13 +8,13 @@ jobs:
8
8
  test:
9
9
  strategy:
10
10
  matrix:
11
- node: [12.x, 14.x, 16.x, 18.x]
12
- os: [ubuntu-latest, macos-latest, windows-latest]
11
+ node: [16.x, 18.x, 20.x, 21.x]
12
+ os: [ubuntu-latest]
13
13
  runs-on: ${{ matrix.os }}
14
14
  steps:
15
15
  - uses: actions/checkout@v2
16
16
  - name: Use Node.js ${{ matrix.node }}
17
- uses: actions/setup-node@v1
17
+ uses: actions/setup-node@v4
18
18
  with:
19
19
  node-version: ${{ matrix.node }}
20
20
  - run: npm install
package/.ncurc.js ADDED
@@ -0,0 +1,7 @@
1
+ module.exports = {
2
+ upgrade: true,
3
+ reject: [
4
+ // 5x is esm only
5
+ 'chai'
6
+ ]
7
+ };
package/CHANGELOG.md CHANGED
@@ -1,5 +1,45 @@
1
1
  # Changelog
2
2
 
3
+ ## [5.3.4](https://github.com/nodemailer/libmime/compare/v5.3.3...v5.3.4) (2024-02-23)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * **deploy:** fixed git repo url ([0f3e5f4](https://github.com/nodemailer/libmime/commit/0f3e5f4b3f5fabe91967cd9842ebe00622181796))
9
+ * **deploy:** fixed git repo url ([4d584ad](https://github.com/nodemailer/libmime/commit/4d584ad7dd51cf0ad60f756a5d7c9470cca30319))
10
+
11
+ ## [5.3.3](https://github.com/nodemailer/libmime/compare/v5.3.2...v5.3.3) (2024-02-23)
12
+
13
+
14
+ ### Bug Fixes
15
+
16
+ * **deploy:** fixed git repo url ([f8f788f](https://github.com/nodemailer/libmime/commit/f8f788fd5d3f1148fb2e880e37c76cec6741a852))
17
+
18
+ ## [5.3.2](https://github.com/nodemailer/libmime/compare/v5.3.1...v5.3.2) (2024-02-23)
19
+
20
+
21
+ ### Bug Fixes
22
+
23
+ * **deploy:** fixed git repo url ([2161a43](https://github.com/nodemailer/libmime/commit/2161a43a87083ff99125b5335d3a2e1dee4c5663))
24
+
25
+ ## [5.3.1](https://github.com/nodemailer/libmime/compare/v5.3.0...v5.3.1) (2024-02-23)
26
+
27
+
28
+ ### Bug Fixes
29
+
30
+ * **deploy:** include package-lock.json ([8363bf4](https://github.com/nodemailer/libmime/commit/8363bf42c889e95fccf1c3f017db759434481bc1))
31
+
32
+ ## [5.3.0](https://github.com/nodemailer/libmime/compare/v5.2.1...v5.3.0) (2024-02-23)
33
+
34
+
35
+ ### Features
36
+
37
+ * **deploy:** added autopublish ([3e8109f](https://github.com/nodemailer/libmime/commit/3e8109f19bc7b9fb313467f61177ab08459ecf21))
38
+
39
+ ## v5.2.1 2023-01-27
40
+
41
+ - Fix base64 encoding for emoji bytes in encoded words
42
+
3
43
  ## v5.2.0 2022-12-08
4
44
 
5
45
  - Bumped libqp to get rid of `new Buffer` warnings
package/lib/charset.js CHANGED
@@ -1,5 +1,6 @@
1
1
  'use strict';
2
2
 
3
+ const { Buffer } = require('node:buffer');
3
4
  const iconv = require('iconv-lite');
4
5
  const encodingJapanese = require('encoding-japanese');
5
6
  const charsets = require('./charsets');
package/lib/libmime.js CHANGED
@@ -1,6 +1,7 @@
1
1
  /* eslint no-control-regex: 0, no-div-regex: 0, quotes: 0 */
2
2
  'use strict';
3
3
 
4
+ const { Buffer } = require('node:buffer');
4
5
  const libcharset = require('./charset');
5
6
  const libbase64 = require('libbase64');
6
7
  const libqp = require('libqp');
@@ -148,6 +149,12 @@ class Libmime {
148
149
  let chr = encodedStr.charAt(i);
149
150
  // check if we can add this character to the existing string
150
151
  // without breaking byte length limit
152
+
153
+ if (/[\ud83c\ud83d\ud83e]/.test(chr) && i < len - 1) {
154
+ // composite emoji byte, so add the next byte as well
155
+ chr += encodedStr.charAt(++i);
156
+ }
157
+
151
158
  if (Buffer.byteLength(lpart + chr) <= maxLength || i === 0) {
152
159
  lpart += chr;
153
160
  } else {
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "libmime",
3
3
  "description": "Encode and decode quoted printable and base64 strings",
4
- "version": "5.2.0",
5
- "main": "lib/libmime",
6
- "homepage": "https://github.com/andris9/libmime",
4
+ "version": "5.3.4",
5
+ "main": "lib/libmime.js",
6
+ "homepage": "https://github.com/nodemailer/libmime",
7
7
  "repository": {
8
8
  "type": "git",
9
- "url": "git://github.com/andris9/libmime.git"
9
+ "url": "git+https://github.com/nodemailer/libmime.git"
10
10
  },
11
11
  "license": "MIT",
12
12
  "keywords": [
@@ -16,22 +16,23 @@
16
16
  ],
17
17
  "author": "Andris Reinman <andris@kreata.ee>",
18
18
  "scripts": {
19
- "test": "grunt"
19
+ "test": "grunt",
20
+ "update": "rm -rf node_modules package-lock.json && ncu -u && npm install"
20
21
  },
21
22
  "dependencies": {
22
23
  "encoding-japanese": "2.0.0",
23
24
  "iconv-lite": "0.6.3",
24
- "libbase64": "1.2.1",
25
- "libqp": "2.0.1"
25
+ "libbase64": "1.3.0",
26
+ "libqp": "2.1.0"
26
27
  },
27
28
  "devDependencies": {
28
- "chai": "4.3.7",
29
+ "chai": "4.4.1",
29
30
  "eslint-config-nodemailer": "1.2.0",
30
- "eslint-config-prettier": "8.5.0",
31
- "grunt": "1.5.3",
31
+ "eslint-config-prettier": "9.1.0",
32
+ "grunt": "1.6.1",
32
33
  "grunt-cli": "1.4.3",
33
- "grunt-eslint": "24.0.1",
34
+ "grunt-eslint": "24.3.0",
34
35
  "grunt-mocha-test": "0.13.3",
35
- "mocha": "10.1.0"
36
+ "mocha": "10.3.0"
36
37
  }
37
38
  }