diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 4a9749ae..63816ac4 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -37,6 +37,9 @@ jobs:
run: npm run lint
performance:
+ needs:
+ - lint
+ - coverage
name: Run performance test
strategy:
fail-fast: false
@@ -64,12 +67,8 @@ jobs:
strategy:
fail-fast: false
matrix:
- os: [ubuntu-latest]
+ os: [ubuntu-latest, windows-latest]
node-version:
- - "0.10"
- - "0.12"
- - "4"
- - "5"
- "6"
- "7"
- "8"
@@ -92,28 +91,6 @@ jobs:
# Use supported versions of our testing tools under older versions of Node
# Install npm in some specific cases where we need to
include:
- - node-version: "0.10"
- npm-i: "mocha@3.5.3 nyc@10.3.2 supertest@2.0.0"
- # Npm isn't being installed on windows w/ setup-node for
- # 0.10 and 0.12, which will end up choking when npm uses es6
- npm-version: "npm@2.15.1"
- npm-rm: 'iconv'
-
- - node-version: "0.12"
- npm-i: "mocha@3.5.3 nyc@10.3.2"
- npm-version: "npm@2.15.11"
- npm-rm: 'iconv'
-
- - node-version: "4"
- npm-i: "mocha@5.2.0 nyc@11.9.0"
- npm-rm: 'iconv'
-
- - node-version: "5"
- npm-i: "mocha@5.2.0 nyc@11.9.0"
- # fixes https://github.com/npm/cli/issues/681
- npm-version: npm@2.15.11
- npm-rm: 'iconv'
-
- node-version: "6"
npm-i: "mocha@6.2.2 nyc@14.1.1"
npm-version: npm@6.13.4
diff --git a/.github/workflows/iojs.yml b/.github/workflows/iojs.yml
deleted file mode 100644
index 1c824288..00000000
--- a/.github/workflows/iojs.yml
+++ /dev/null
@@ -1,70 +0,0 @@
-name: iojs-ci
-
-on:
- push:
- branches:
- - master
- pull_request:
- branches:
- - master
-
-concurrency:
- group: "${{ github.workflow }} iojs ✨ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}"
- cancel-in-progress: true
-
-jobs:
- test:
- runs-on: ubuntu-latest
- strategy:
- fail-fast: false
- matrix:
- node-version: ["1.8", "2.5", "3.3"]
- include:
- - node-version: "1.8"
- npm-i: "mocha@3.5.3 nyc@10.3.2"
- npm-rm: 'iconv'
- - node-version: "2.5"
- npm-i: "mocha@3.5.3 nyc@10.3.2"
- npm-rm: 'iconv'
- - node-version: "3.3"
- npm-i: "mocha@3.5.3 nyc@10.3.2"
- npm-rm: 'iconv'
-
- steps:
- - uses: actions/checkout@v4
-
- - name: Install iojs ${{ matrix.node-version }}
- shell: bash -eo pipefail -l {0}
- run: |
- nvm install --default ${{ matrix.node-version }}
- dirname "$(nvm which ${{ matrix.node-version }})" >> "$GITHUB_PATH"
-
- - name: Configure npm
- run: |
- npm config set loglevel error
- npm config set shrinkwrap false
-
- - name: Remove npm module(s) ${{ matrix.npm-rm }}
- run: npm rm --silent --save-dev ${{ matrix.npm-rm }} neostandard @stylistic/eslint-plugin-js @stylistic/eslint-plugin eslint
- if: matrix.npm-rm != ''
-
- - name: Install npm module(s) ${{ matrix.npm-i }}
- run: npm install --save-dev ${{ matrix.npm-i }}
- if: matrix.npm-i != ''
-
- - name: Install Node.js dependencies
- run: npm install
-
- - name: List environment
- id: list_env
- shell: bash
- run: |
- echo "node@$(node -v)"
- echo "npm@$(npm -v)"
- npm -s ls ||:
- (npm -s ls --depth=0 ||:) | awk -F'[ @]' 'NR>1 && $2 { print $2 "=" $3 }' >> "$GITHUB_OUTPUT"
-
- - name: Run tests
- shell: bash
- run: npm run test
-
diff --git a/encodings/dbcs-codec.js b/encodings/dbcs-codec.js
index bfec7f2e..d7752f13 100644
--- a/encodings/dbcs-codec.js
+++ b/encodings/dbcs-codec.js
@@ -1,5 +1,5 @@
"use strict"
-var Buffer = require("safer-buffer").Buffer
+var Buffer = require("buffer").Buffer
// Multibyte codec. In this scheme, a character is represented by 1 or more bytes.
// Our codec supports UTF-16 surrogates, extensions for GB18030 and unicode sequences.
diff --git a/encodings/internal.js b/encodings/internal.js
index 4e5c3ff2..87ab0646 100644
--- a/encodings/internal.js
+++ b/encodings/internal.js
@@ -1,5 +1,5 @@
"use strict"
-var Buffer = require("safer-buffer").Buffer
+var Buffer = require("buffer").Buffer
// Export Node.js internal encodings.
diff --git a/encodings/sbcs-codec.js b/encodings/sbcs-codec.js
index 0e2fc924..e59faf2e 100644
--- a/encodings/sbcs-codec.js
+++ b/encodings/sbcs-codec.js
@@ -1,5 +1,5 @@
"use strict"
-var Buffer = require("safer-buffer").Buffer
+var Buffer = require("buffer").Buffer
// Single-byte codec. Needs a 'chars' string parameter that contains 256 or 128 chars that
// correspond to encoded bytes (if 128 - then lower half is ASCII).
diff --git a/encodings/utf16.js b/encodings/utf16.js
index ae60d98e..5373a9d1 100644
--- a/encodings/utf16.js
+++ b/encodings/utf16.js
@@ -1,5 +1,5 @@
"use strict"
-var Buffer = require("safer-buffer").Buffer
+var Buffer = require("buffer").Buffer
// Note: UTF16-LE (or UCS2) codec is Node.js native. See encodings/internal.js
diff --git a/encodings/utf32.js b/encodings/utf32.js
index 72317893..0a24bb9c 100644
--- a/encodings/utf32.js
+++ b/encodings/utf32.js
@@ -1,6 +1,6 @@
"use strict"
-var Buffer = require("safer-buffer").Buffer
+var Buffer = require("buffer").Buffer
// == UTF32-LE/BE codec. ==========================================================
diff --git a/encodings/utf7.js b/encodings/utf7.js
index fe72a9d9..4aa1e018 100644
--- a/encodings/utf7.js
+++ b/encodings/utf7.js
@@ -1,5 +1,5 @@
"use strict"
-var Buffer = require("safer-buffer").Buffer
+var Buffer = require("buffer").Buffer
// UTF-7 codec, according to https://tools.ietf.org/html/rfc2152
// See also below a UTF-7-IMAP codec, according to http://tools.ietf.org/html/rfc3501#section-5.1.3
diff --git a/eslint.config.js b/eslint.config.js
index 34c0efd5..b789593f 100644
--- a/eslint.config.js
+++ b/eslint.config.js
@@ -12,7 +12,6 @@ module.exports = [
}),
{
rules: {
- "object-shorthand": ["off"], // Compatibility with older code
"@stylistic/quotes": [2, "double"], // Prevent many change of code
"new-cap": ["off"], // We need improve this
"no-labels": ["off"], // Can remove the labels?
diff --git a/generation/gen-sbcs.js b/generation/gen-sbcs.js
index f82bd0f4..95a183c6 100644
--- a/generation/gen-sbcs.js
+++ b/generation/gen-sbcs.js
@@ -1,7 +1,7 @@
var fs = require("fs");
var path = require("path");
var Iconv = require("iconv").Iconv;
-var Buffer = require("safer-buffer").Buffer;
+var Buffer = require("buffer").Buffer;
// Generate encoding families using original iconv.
var destFileName = "encodings/sbcs-data-generated.js";
diff --git a/generation/research/get-iconv-encodings.js b/generation/research/get-iconv-encodings.js
index da66df73..964c28e6 100644
--- a/generation/research/get-iconv-encodings.js
+++ b/generation/research/get-iconv-encodings.js
@@ -5,7 +5,7 @@
var iconv = require('iconv'),
crypto = require('crypto');
-var Buffer = require("safer-buffer").Buffer;
+var Buffer = require("buffer").Buffer;
var skipEncodings = {};
diff --git a/lib/index.js b/lib/index.js
index e3c5c4c4..9f36e45e 100644
--- a/lib/index.js
+++ b/lib/index.js
@@ -1,7 +1,6 @@
"use strict"
-var Buffer = require("safer-buffer").Buffer
-var objectAssign = require("object-assign")
+var Buffer = require("buffer").Buffer
var bomHandling = require("./bom-handling")
var iconv = module.exports
@@ -64,7 +63,7 @@ iconv._codecDataCache = Object.create(null)
iconv.getCodec = function getCodec (encoding) {
if (!iconv.encodings) {
var raw = require("../encodings")
- iconv.encodings = objectAssign(Object.create(null), raw) // Lazy load all encoding definitions.
+ iconv.encodings = Object.assign(Object.create(null), raw) // Lazy load all encoding definitions.
}
// Canonicalize encoding name: strip all non-alphanumeric chars and appended year.
diff --git a/lib/streams.js b/lib/streams.js
index ebfed8e0..9e37a633 100644
--- a/lib/streams.js
+++ b/lib/streams.js
@@ -1,6 +1,6 @@
"use strict"
-var Buffer = require("safer-buffer").Buffer
+var Buffer = require("buffer").Buffer
// NOTE: Due to 'stream' module being pretty large (~100Kb, significant in browser environments),
// we opt to dependency-inject it instead of creating a hard dependency.
@@ -99,7 +99,7 @@ module.exports = function (streamModule) {
}
return {
- IconvLiteEncoderStream: IconvLiteEncoderStream,
- IconvLiteDecoderStream: IconvLiteDecoderStream
+ IconvLiteEncoderStream,
+ IconvLiteDecoderStream
}
}
diff --git a/package.json b/package.json
index f4ceee25..06830104 100644
--- a/package.json
+++ b/package.json
@@ -19,7 +19,7 @@
"url": "git://github.com/ashtuchkin/iconv-lite.git"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">=6"
},
"scripts": {
"lint": "eslint",
@@ -48,9 +48,5 @@
"request": "^2.88.2",
"semver": "^6.3.0",
"unorm": "^1.6.0"
- },
- "dependencies": {
- "object-assign": ">= 4.1.1 < 5.0.0",
- "safer-buffer": ">= 2.1.2 < 3.0.0"
}
}
diff --git a/test/big5-test.js b/test/big5-test.js
index 050a24aa..268eec5f 100644
--- a/test/big5-test.js
+++ b/test/big5-test.js
@@ -1,5 +1,5 @@
var assert = require("assert")
-var Buffer = require("safer-buffer").Buffer
+var Buffer = require("buffer").Buffer
var join = require("path").join
var iconv = require(join(__dirname, "/../"))
diff --git a/test/bom-test.js b/test/bom-test.js
index 9a08b3b7..58cb976c 100644
--- a/test/bom-test.js
+++ b/test/bom-test.js
@@ -1,5 +1,5 @@
var assert = require("assert")
-var Buffer = require("safer-buffer").Buffer
+var Buffer = require("buffer").Buffer
var join = require("path").join
var iconv = require(join(__dirname, "/../"))
@@ -71,13 +71,13 @@ describe("BOM Handling", function () {
var stripBOM = function () { bomStripped = true }
var body = Buffer.concat([utf8BOM, Buffer.from(sampleStr)])
- assert.equal(iconv.decode(body, "utf8", { stripBOM: stripBOM }), sampleStr)
+ assert.equal(iconv.decode(body, "utf8", { stripBOM }), sampleStr)
assert(bomStripped)
bomStripped = false
body = Buffer.from(sampleStr)
- assert.equal(iconv.decode(body, "utf8", { stripBOM: stripBOM }), sampleStr)
+ assert.equal(iconv.decode(body, "utf8", { stripBOM }), sampleStr)
assert(!bomStripped)
})
})
diff --git a/test/cesu8-test.js b/test/cesu8-test.js
index 58d8e8c8..20cabdf2 100644
--- a/test/cesu8-test.js
+++ b/test/cesu8-test.js
@@ -1,5 +1,5 @@
var assert = require("assert")
-var Buffer = require("safer-buffer").Buffer
+var Buffer = require("buffer").Buffer
var join = require("path").join
var iconv = require(join(__dirname, "/../"))
diff --git a/test/cyrillic-test.js b/test/cyrillic-test.js
index ad7129d9..8a9f2169 100644
--- a/test/cyrillic-test.js
+++ b/test/cyrillic-test.js
@@ -1,5 +1,5 @@
var assert = require("assert")
-var Buffer = require("safer-buffer").Buffer
+var Buffer = require("buffer").Buffer
var join = require("path").join
var iconv = require(join(__dirname, "/../"))
diff --git a/test/dbcs-test.js b/test/dbcs-test.js
index a969b76a..7c8e9c37 100644
--- a/test/dbcs-test.js
+++ b/test/dbcs-test.js
@@ -1,5 +1,5 @@
var assert = require("assert")
-var Buffer = require("safer-buffer").Buffer
+var Buffer = require("buffer").Buffer
var join = require("path").join
var iconv = require(join(__dirname, "/../"))
@@ -560,7 +560,7 @@ describe("Full DBCS encoding tests", function () {
{ return }
}
- errors.push({ input: inp.toString("hex"), strExpected: strExpected, strActual: strActual })
+ errors.push({ input: inp.toString("hex"), strExpected, strActual })
})
if (errors.length > 0) {
@@ -606,7 +606,7 @@ describe("Full DBCS encoding tests", function () {
if (iconvChgs[str] == str1) { continue } // Skip iconv changes.
- errors.push({ input: strToHex(str), inputChar: str, strExpected: strExpected, strActual: strActual })
+ errors.push({ input: strToHex(str), inputChar: str, strExpected, strActual })
}
if (errors.length > 0) {
diff --git a/test/gbk-test.js b/test/gbk-test.js
index 8fa2bcfe..928c46aa 100644
--- a/test/gbk-test.js
+++ b/test/gbk-test.js
@@ -1,6 +1,6 @@
var fs = require("fs")
var assert = require("assert")
-var Buffer = require("safer-buffer").Buffer
+var Buffer = require("buffer").Buffer
var join = require("path").join
var iconv = require(join(__dirname, "/../"))
diff --git a/test/greek-test.js b/test/greek-test.js
index 8ebfa158..2f880ddc 100644
--- a/test/greek-test.js
+++ b/test/greek-test.js
@@ -1,5 +1,5 @@
var assert = require("assert")
-var Buffer = require("safer-buffer").Buffer
+var Buffer = require("buffer").Buffer
var join = require("path").join
var iconv = require(join(__dirname, "/../"))
diff --git a/test/main-test.js b/test/main-test.js
index 1094cc9e..06147465 100644
--- a/test/main-test.js
+++ b/test/main-test.js
@@ -1,5 +1,5 @@
var assert = require("assert")
-var Buffer = require("safer-buffer").Buffer
+var Buffer = require("buffer").Buffer
var join = require("path").join
var iconv = require(join(__dirname, "/../"))
diff --git a/test/sbcs-test.js b/test/sbcs-test.js
index 190cd6ec..96cf4c4c 100644
--- a/test/sbcs-test.js
+++ b/test/sbcs-test.js
@@ -1,6 +1,6 @@
var assert = require("assert")
var unorm = require("unorm")
-var Buffer = require("safer-buffer").Buffer
+var Buffer = require("buffer").Buffer
var join = require("path").join
var iconv = require(join(__dirname, "/../"))
@@ -75,7 +75,7 @@ describe("Full SBCS encoding tests", function () {
var strActual = iconv.decode(buf, enc)
var strExpected = convertWithDefault(conv, buf, iconv.defaultCharUnicode).toString()
- if (strActual != strExpected) { errors.push({ input: buf.toString("hex"), strExpected: strExpected, strActual: strActual }) }
+ if (strActual != strExpected) { errors.push({ input: buf.toString("hex"), strExpected, strActual }) }
}
if (errors.length > 0) {
assert.fail(null, null, "Decoding mismatch: | | | | \n" +
@@ -133,7 +133,7 @@ describe("Full SBCS encoding tests", function () {
if (iconvEquivChars[enc] && iconvEquivChars[enc][str] &&
strExpected == iconv.encode(iconvEquivChars[enc][str], enc).toString("hex")) { continue }
- errors.push({ input: strToHex(str), inputChar: str, strExpected: strExpected, strActual: strActual })
+ errors.push({ input: strToHex(str), inputChar: str, strExpected, strActual })
}
if (errors.length > 0) {
diff --git a/test/shiftjis-test.js b/test/shiftjis-test.js
index 2cf926ba..6a18de69 100644
--- a/test/shiftjis-test.js
+++ b/test/shiftjis-test.js
@@ -1,5 +1,5 @@
var assert = require("assert")
-var Buffer = require("safer-buffer").Buffer
+var Buffer = require("buffer").Buffer
var join = require("path").join
var iconv = require(join(__dirname, "/../"))
diff --git a/test/streams-test.js b/test/streams-test.js
index 1c5276c0..3938fa3a 100644
--- a/test/streams-test.js
+++ b/test/streams-test.js
@@ -1,7 +1,7 @@
var mocha = require("mocha")
var describeMocha = mocha.describe
var assert = require("assert")
-var Buffer = require("safer-buffer").Buffer
+var Buffer = require("buffer").Buffer
var semver = require("semver")
var join = require("path").join
var iconv = require(join(__dirname, "/../"))
@@ -327,7 +327,7 @@ describe("Encoding using internal modules with surrogates in separate chunks:",
function checkUtf8EncodeStream (input) {
return checkEncodeStream({
encoding: "utf8",
- input: input,
+ input,
output: Buffer.from(input.join(""), "utf8").toString("hex")
})
}
diff --git a/test/turkish-test.js b/test/turkish-test.js
index 6e170f20..9f4577fa 100644
--- a/test/turkish-test.js
+++ b/test/turkish-test.js
@@ -1,5 +1,5 @@
var assert = require("assert")
-var Buffer = require("safer-buffer").Buffer
+var Buffer = require("buffer").Buffer
var join = require("path").join
var iconv = require(join(__dirname, "/../"))
@@ -11,7 +11,7 @@ var encodings = [{
variations: ["windows-1254", "win-1254", "win1254", "cp1254", "cp-1254", 1254],
strings: {
empty: "",
- ascii: ascii,
+ ascii,
turkish: "€‚ƒ„…†‡ˆ‰Š‹Œ‘’“”•–—˜™š›œŸ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏĞÑÒÓÔÕÖרÙÚÛÜİŞßàáâãäåæçèéêëìíîïğñòóôõö÷øùúûüışÿ",
untranslatable: "\x81\x8d\x8e\x8f\x90\x9d\x9e"
},
@@ -34,7 +34,7 @@ var encodings = [{
variations: ["iso-8859-9", "turkish", "turkish8", "cp28599", "cp-28599", 28599],
strings: {
empty: "",
- ascii: ascii,
+ ascii,
turkish: "\xa0¡¢£¤¥¦§¨©ª«¬\xad®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏĞÑÒÓÔÕÖרÙÚÛÜİŞßàáâãäåæçèéêëìíîïğñòóôõö÷øùúûüışÿ",
untranslatable: ""
},
diff --git a/test/utf16-test.js b/test/utf16-test.js
index 0f98c76d..a930db8f 100644
--- a/test/utf16-test.js
+++ b/test/utf16-test.js
@@ -1,5 +1,5 @@
var assert = require("assert")
-var Buffer = require("safer-buffer").Buffer
+var Buffer = require("buffer").Buffer
var join = require("path").join
var iconv = require(join(__dirname, "/../"))
diff --git a/test/utf32-test.js b/test/utf32-test.js
index f43156c5..fcea0653 100644
--- a/test/utf32-test.js
+++ b/test/utf32-test.js
@@ -1,5 +1,5 @@
var assert = require("assert")
-var Buffer = require("safer-buffer").Buffer
+var Buffer = require("buffer").Buffer
var join = require("path").join
var iconv = require(join(__dirname, "/../"))
diff --git a/test/utf7-test.js b/test/utf7-test.js
index 41bf93d0..62b677bf 100644
--- a/test/utf7-test.js
+++ b/test/utf7-test.js
@@ -1,5 +1,5 @@
var assert = require("assert")
-var Buffer = require("safer-buffer").Buffer
+var Buffer = require("buffer").Buffer
var join = require("path").join
var iconv = require(join(__dirname, "/../"))