From 94b55a5edd1a05ad4b7d218217661984667d9168 Mon Sep 17 00:00:00 2001 From: Ville Ranki Date: Wed, 17 Jun 2020 22:47:32 +0300 Subject: [PATCH 1/2] Replaced buggy is-utf8 with utf-8-validate library --- lib/irc.js | 6 +++--- package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/irc.js b/lib/irc.js index 08375ec5..890a091b 100644 --- a/lib/irc.js +++ b/lib/irc.js @@ -22,7 +22,7 @@ const dns = require('dns'); const net = require('net'); const tls = require('tls'); const util = require('util'); -const isUtf8 = require('is-utf8'); +const isValidUTF8 = require('utf-8-validate'); const { EventEmitter } = require('events'); const colors = require('./colors'); @@ -1286,8 +1286,8 @@ Client.prototype.convertEncoding = function(str) { } } else if (self.opt.encodingFallback) { try { - if (!isUtf8(str)) { - const converter = new Iconv(self.opt.encodingFallback, "UTF-8") + if (!isValidUTF8(str)) { + const converter = new Iconv(self.opt.encodingFallback[0], "UTF-8") out = converter.convert(str) } } catch (err) { diff --git a/package.json b/package.json index fca7029d..d56146a3 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "dependencies": { "irc-colors": "^1.1.0", "rebuild": "^0.1.2", - "is-utf8": "^0.2.1" + "utf-8-validate": "^5.0.2" }, "optionalDependencies": { "iconv": "~2.3.4", From 75d41a254cafa77511e467ad665a52ec845e6457 Mon Sep 17 00:00:00 2001 From: Ville Ranki Date: Thu, 2 Jul 2020 19:48:38 +0300 Subject: [PATCH 2/2] Changes suggested in PR #49. Tested working locally. --- lib/irc.js | 2 +- package-lock.json | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/lib/irc.js b/lib/irc.js index 890a091b..a072c72e 100644 --- a/lib/irc.js +++ b/lib/irc.js @@ -1287,7 +1287,7 @@ Client.prototype.convertEncoding = function(str) { } else if (self.opt.encodingFallback) { try { if (!isValidUTF8(str)) { - const converter = new Iconv(self.opt.encodingFallback[0], "UTF-8") + const converter = new Iconv(self.opt.encodingFallback, "UTF-8") out = converter.convert(str) } } catch (err) { diff --git a/package-lock.json b/package-lock.json index 7ed2d82a..a5181e5f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -717,6 +717,11 @@ "integrity": "sha1-q8xsvT7C7Spyn/bnwfqPAXhKhXQ=", "dev": true }, + "node-gyp-build": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-3.7.0.tgz", + "integrity": "sha512-L/Eg02Epx6Si2NXmedx+Okg+4UHqmaf3TNcxd50SF9NQGcJaON3AtU++kax69XV7YWz4tUspqZSAsVofhFKG2w==" + }, "nomnom": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/nomnom/-/nomnom-1.8.1.tgz", @@ -1134,6 +1139,14 @@ "integrity": "sha1-izixDKze9jM3uLJOT/htRa6lKag=", "dev": true }, + "utf-8-validate": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.2.tgz", + "integrity": "sha512-SwV++i2gTD5qh2XqaPzBnNX88N6HdyhQrNNRykvcS0QKvItV9u3vPEJr+X5Hhfb1JC0r0e1alL0iB09rY8+nmw==", + "requires": { + "node-gyp-build": "~3.7.0" + } + }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",