diff --git a/.npmignore b/.npmignore deleted file mode 100644 index 75db944..0000000 --- a/.npmignore +++ /dev/null @@ -1,36 +0,0 @@ -**/node_modules/ -**/*.log -test/repo-tests* - -# Logs -logs -*.log - -coverage - -# Runtime data -pids -*.pid -*.seed - -# Directory for instrumented libs generated by jscoverage/JSCover -lib-cov - -# Coverage directory used by tools like istanbul -coverage -.nyc_output - -# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) -.grunt - -# node-waf configuration -.lock-wscript - -build - -# Dependency directory -# https://www.npmjs.org/doc/misc/npm-faq.html#should-i-check-my-node_modules-folder-into-git -node_modules - -test -docs diff --git a/.travis.yml b/.travis.yml index d0cf281..3df7565 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,6 +7,7 @@ stages: node_js: - '10' + - '12' os: - linux diff --git a/package.json b/package.json index a8dc979..40bc2a9 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,10 @@ "coverage": "aegir coverage", "coverage-publish": "aegir coverage publish" }, + "files": [ + "src", + "dist" + ], "repository": { "type": "git", "url": "git+https://github.com/multiformats/js-multibase.git" @@ -30,13 +34,14 @@ "formats" ], "devDependencies": { - "aegir": "^18.1.1", + "aegir": "^21.3.0", "chai": "^4.1.2", "dirty-chai": "^2.0.1", "pre-commit": "^1.2.2" }, "dependencies": { - "base-x": "3.0.4" + "base-x": "^3.0.8", + "buffer": "^5.5.0" }, "license": "MIT", "bugs": { diff --git a/src/base16.js b/src/base16.js index 6d82c70..f911f80 100644 --- a/src/base16.js +++ b/src/base16.js @@ -1,4 +1,5 @@ 'use strict' +const { Buffer } = require('buffer') module.exports = function base16 (alphabet) { return { @@ -9,7 +10,7 @@ module.exports = function base16 (alphabet) { return input.toString('hex') }, decode (input) { - for (let char of input) { + for (const char of input) { if (alphabet.indexOf(char) < 0) { throw new Error('invalid base16 character') } diff --git a/src/base32.js b/src/base32.js index e8ae456..cc38046 100644 --- a/src/base32.js +++ b/src/base32.js @@ -2,13 +2,13 @@ function decode (input, alphabet) { input = input.replace(new RegExp('=', 'g'), '') - let length = input.length + const length = input.length let bits = 0 let value = 0 let index = 0 - let output = new Uint8Array((length * 5 / 8) | 0) + const output = new Uint8Array((length * 5 / 8) | 0) for (let i = 0; i < length; i++) { value = (value << 5) | alphabet.indexOf(input[i]) @@ -24,12 +24,12 @@ function decode (input, alphabet) { } function encode (buffer, alphabet) { - let length = buffer.byteLength - let view = new Uint8Array(buffer) - let padding = alphabet.indexOf('=') === alphabet.length - 1 + const length = buffer.byteLength + const view = new Uint8Array(buffer) + const padding = alphabet.indexOf('=') === alphabet.length - 1 if (padding) { - alphabet = alphabet.substring(0, alphabet.length - 2) + alphabet = alphabet.substring(0, alphabet.length - 1) } let bits = 0 @@ -63,13 +63,13 @@ module.exports = function base32 (alphabet) { return { encode (input) { if (typeof input === 'string') { - return encode(Buffer.from(input), alphabet) + return encode(Uint8Array.from(input), alphabet) } return encode(input, alphabet) }, decode (input) { - for (let char of input) { + for (const char of input) { if (alphabet.indexOf(char) < 0) { throw new Error('invalid base32 character') } diff --git a/src/base64.js b/src/base64.js index 8862529..c4608bb 100644 --- a/src/base64.js +++ b/src/base64.js @@ -1,4 +1,5 @@ 'use strict' +const { Buffer } = require('buffer') module.exports = function base64 (alphabet) { // The alphabet is only used to know: @@ -31,7 +32,7 @@ module.exports = function base64 (alphabet) { return output }, decode (input) { - for (let char of input) { + for (const char of input) { if (alphabet.indexOf(char) < 0) { throw new Error('invalid base64 character') } diff --git a/src/index.js b/src/index.js index 3d6d9a6..1c9ebe2 100644 --- a/src/index.js +++ b/src/index.js @@ -4,6 +4,7 @@ */ 'use strict' +const { Buffer } = require('buffer') const constants = require('./constants') exports = module.exports = multibase diff --git a/test/multibase.spec.js b/test/multibase.spec.js index 0ad98d6..423c17b 100644 --- a/test/multibase.spec.js +++ b/test/multibase.spec.js @@ -176,6 +176,14 @@ describe('multibase.encode ', () => { }) }) } + + it('should allow base32pad full alphabet', () => { + const encodedStr = 'ctimaq4ygg2iegci7' + const decoded = multibase.decode(encodedStr) + + const encoded = multibase.encode('c', decoded) + expect(encodedStr).to.be.eq(encoded.toString()) + }) }) describe('multibase.decode', () => {