Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 27 additions & 4 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,6 @@ jobs:
run: npm run lint

performance:
needs:
- lint
- coverage
name: Run performance test
strategy:
fail-fast: false
Expand Down Expand Up @@ -67,8 +64,12 @@ jobs:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest]
os: [ubuntu-latest]
node-version:
- "0.10"
- "0.12"
- "4"
- "5"
- "6"
- "7"
- "8"
Expand All @@ -91,6 +92,28 @@ 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: "[email protected] [email protected] [email protected]"
# 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: "[email protected]"
npm-rm: 'iconv'

- node-version: "0.12"
npm-i: "[email protected] [email protected]"
npm-version: "[email protected]"
npm-rm: 'iconv'

- node-version: "4"
npm-i: "[email protected] [email protected]"
npm-rm: 'iconv'

- node-version: "5"
npm-i: "[email protected] [email protected]"
# fixes https://github.com/npm/cli/issues/681
npm-version: [email protected]
npm-rm: 'iconv'

- node-version: "6"
npm-i: "[email protected] [email protected]"
npm-version: [email protected]
Expand Down
70 changes: 70 additions & 0 deletions .github/workflows/iojs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
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: "[email protected] [email protected]"
npm-rm: 'iconv'
- node-version: "2.5"
npm-i: "[email protected] [email protected]"
npm-rm: 'iconv'
- node-version: "3.3"
npm-i: "[email protected] [email protected]"
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

2 changes: 1 addition & 1 deletion encodings/dbcs-codec.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
"use strict"
var Buffer = require("buffer").Buffer
var Buffer = require("safer-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.
Expand Down
2 changes: 1 addition & 1 deletion encodings/internal.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
"use strict"
var Buffer = require("buffer").Buffer
var Buffer = require("safer-buffer").Buffer

// Export Node.js internal encodings.

Expand Down
2 changes: 1 addition & 1 deletion encodings/sbcs-codec.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
"use strict"
var Buffer = require("buffer").Buffer
var Buffer = require("safer-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).
Expand Down
2 changes: 1 addition & 1 deletion encodings/utf16.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
"use strict"
var Buffer = require("buffer").Buffer
var Buffer = require("safer-buffer").Buffer

// Note: UTF16-LE (or UCS2) codec is Node.js native. See encodings/internal.js

Expand Down
2 changes: 1 addition & 1 deletion encodings/utf32.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
"use strict"

var Buffer = require("buffer").Buffer
var Buffer = require("safer-buffer").Buffer

// == UTF32-LE/BE codec. ==========================================================

Expand Down
2 changes: 1 addition & 1 deletion encodings/utf7.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
"use strict"
var Buffer = require("buffer").Buffer
var Buffer = require("safer-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
Expand Down
1 change: 1 addition & 0 deletions eslint.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ 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?
Expand Down
2 changes: 1 addition & 1 deletion generation/gen-sbcs.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
var fs = require("fs");
var path = require("path");
var Iconv = require("iconv").Iconv;
var Buffer = require("buffer").Buffer;
var Buffer = require("safer-buffer").Buffer;

// Generate encoding families using original iconv.
var destFileName = "encodings/sbcs-data-generated.js";
Expand Down
2 changes: 1 addition & 1 deletion generation/research/get-iconv-encodings.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

var iconv = require('iconv'),
crypto = require('crypto');
var Buffer = require("buffer").Buffer;
var Buffer = require("safer-buffer").Buffer;


var skipEncodings = {};
Expand Down
5 changes: 3 additions & 2 deletions lib/index.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
"use strict"

var Buffer = require("buffer").Buffer
var Buffer = require("safer-buffer").Buffer
var objectAssign = require("object-assign")

var bomHandling = require("./bom-handling")
var iconv = module.exports
Expand Down Expand Up @@ -63,7 +64,7 @@ iconv._codecDataCache = Object.create(null)
iconv.getCodec = function getCodec (encoding) {
if (!iconv.encodings) {
var raw = require("../encodings")
iconv.encodings = Object.assign(Object.create(null), raw) // Lazy load all encoding definitions.
iconv.encodings = objectAssign(Object.create(null), raw) // Lazy load all encoding definitions.
}

// Canonicalize encoding name: strip all non-alphanumeric chars and appended year.
Expand Down
6 changes: 3 additions & 3 deletions lib/streams.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
"use strict"

var Buffer = require("buffer").Buffer
var Buffer = require("safer-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.
Expand Down Expand Up @@ -99,7 +99,7 @@ module.exports = function (streamModule) {
}

return {
IconvLiteEncoderStream,
IconvLiteDecoderStream
IconvLiteEncoderStream: IconvLiteEncoderStream,
IconvLiteDecoderStream: IconvLiteDecoderStream
}
}
6 changes: 5 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
"url": "git://github.com/ashtuchkin/iconv-lite.git"
},
"engines": {
"node": ">=6"
"node": ">=0.10.0"
},
"scripts": {
"lint": "eslint",
Expand Down Expand Up @@ -48,5 +48,9 @@
"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"
}
}
2 changes: 1 addition & 1 deletion test/big5-test.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
var assert = require("assert")
var Buffer = require("buffer").Buffer
var Buffer = require("safer-buffer").Buffer
var join = require("path").join
var iconv = require(join(__dirname, "/../"))

Expand Down
6 changes: 3 additions & 3 deletions test/bom-test.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
var assert = require("assert")
var Buffer = require("buffer").Buffer
var Buffer = require("safer-buffer").Buffer
var join = require("path").join
var iconv = require(join(__dirname, "/../"))

Expand Down Expand Up @@ -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 }), sampleStr)
assert.equal(iconv.decode(body, "utf8", { stripBOM: stripBOM }), sampleStr)
assert(bomStripped)

bomStripped = false

body = Buffer.from(sampleStr)
assert.equal(iconv.decode(body, "utf8", { stripBOM }), sampleStr)
assert.equal(iconv.decode(body, "utf8", { stripBOM: stripBOM }), sampleStr)
assert(!bomStripped)
})
})
2 changes: 1 addition & 1 deletion test/cesu8-test.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
var assert = require("assert")
var Buffer = require("buffer").Buffer
var Buffer = require("safer-buffer").Buffer
var join = require("path").join
var iconv = require(join(__dirname, "/../"))

Expand Down
2 changes: 1 addition & 1 deletion test/cyrillic-test.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
var assert = require("assert")
var Buffer = require("buffer").Buffer
var Buffer = require("safer-buffer").Buffer
var join = require("path").join
var iconv = require(join(__dirname, "/../"))

Expand Down
6 changes: 3 additions & 3 deletions test/dbcs-test.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
var assert = require("assert")
var Buffer = require("buffer").Buffer
var Buffer = require("safer-buffer").Buffer
var join = require("path").join
var iconv = require(join(__dirname, "/../"))

Expand Down Expand Up @@ -560,7 +560,7 @@ describe("Full DBCS encoding tests", function () {
{ return }
}

errors.push({ input: inp.toString("hex"), strExpected, strActual })
errors.push({ input: inp.toString("hex"), strExpected: strExpected, strActual: strActual })
})

if (errors.length > 0) {
Expand Down Expand Up @@ -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, strActual })
errors.push({ input: strToHex(str), inputChar: str, strExpected: strExpected, strActual: strActual })
}

if (errors.length > 0) {
Expand Down
2 changes: 1 addition & 1 deletion test/gbk-test.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
var fs = require("fs")
var assert = require("assert")
var Buffer = require("buffer").Buffer
var Buffer = require("safer-buffer").Buffer
var join = require("path").join
var iconv = require(join(__dirname, "/../"))

Expand Down
2 changes: 1 addition & 1 deletion test/greek-test.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
var assert = require("assert")
var Buffer = require("buffer").Buffer
var Buffer = require("safer-buffer").Buffer
var join = require("path").join
var iconv = require(join(__dirname, "/../"))

Expand Down
2 changes: 1 addition & 1 deletion test/main-test.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
var assert = require("assert")
var Buffer = require("buffer").Buffer
var Buffer = require("safer-buffer").Buffer
var join = require("path").join
var iconv = require(join(__dirname, "/../"))

Expand Down
6 changes: 3 additions & 3 deletions test/sbcs-test.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
var assert = require("assert")
var unorm = require("unorm")
var Buffer = require("buffer").Buffer
var Buffer = require("safer-buffer").Buffer
var join = require("path").join
var iconv = require(join(__dirname, "/../"))

Expand Down Expand Up @@ -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, strActual }) }
if (strActual != strExpected) { errors.push({ input: buf.toString("hex"), strExpected: strExpected, strActual: strActual }) }
}
if (errors.length > 0) {
assert.fail(null, null, "Decoding mismatch: <input> | <expected> | <actual> | <expected char> | <actual char>\n" +
Expand Down Expand Up @@ -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, strActual })
errors.push({ input: strToHex(str), inputChar: str, strExpected: strExpected, strActual: strActual })
}

if (errors.length > 0) {
Expand Down
2 changes: 1 addition & 1 deletion test/shiftjis-test.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
var assert = require("assert")
var Buffer = require("buffer").Buffer
var Buffer = require("safer-buffer").Buffer
var join = require("path").join
var iconv = require(join(__dirname, "/../"))

Expand Down
4 changes: 2 additions & 2 deletions test/streams-test.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
var mocha = require("mocha")
var describeMocha = mocha.describe
var assert = require("assert")
var Buffer = require("buffer").Buffer
var Buffer = require("safer-buffer").Buffer
var semver = require("semver")
var join = require("path").join
var iconv = require(join(__dirname, "/../"))
Expand Down Expand Up @@ -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")
})
}
Expand Down
Loading
Loading