{"maintainers":[{"name":"domenic","email":"d@domenic.me"}],"keywords":["encoding","whatwg"],"dist-tags":{"latest":"1.0.1"},"author":{"name":"Domenic Denicola","email":"d@domenic.me","url":"https://domenic.me/"},"description":"Decode strings according to the WHATWG Encoding Standard","readme":"# Decode According to the WHATWG Encoding Standard\n\nThis package provides a thin layer on top of [iconv-lite](https://github.com/ashtuchkin/iconv-lite) which makes it expose some of the same primitives as the [Encoding Standard](https://encoding.spec.whatwg.org/).\n\n```js\nconst whatwgEncoding = require(\"whatwg-encoding\");\n\nconsole.assert(whatwgEncoding.labelToName(\"latin1\") === \"windows-1252\");\nconsole.assert(whatwgEncoding.labelToName(\"  CYRILLic \") === \"ISO-8859-5\");\n\nconsole.assert(whatwgEncoding.isSupported(\"IBM866\") === true);\n\n// Not supported by the Encoding Standard\nconsole.assert(whatwgEncoding.isSupported(\"UTF-32\") === false);\n\n// In the Encoding Standard, but this package can't decode it\nconsole.assert(whatwgEncoding.isSupported(\"x-mac-cyrillic\") === false);\n\nconsole.assert(whatwgEncoding.getBOMEncoding(new Buffer([0xFE, 0xFF])) === \"UTF-16BE\");\nconsole.assert(whatwgEncoding.getBOMEncoding(new Buffer([0x48, 0x69])) === null);\n\nconsole.assert(whatwgEncoding.decode(new Buffer([0x48, 0x69]), \"UTF-8\") === \"Hi\");\n```\n\n## API\n\n- `decode(buffer, fallbackEncodingName)`: performs the [decode](https://encoding.spec.whatwg.org/#decode) algorithm (in which any BOM will override the passed fallback encoding), and returns the resulting string\n- `labelToName(label)`: performs the [get an encoding](https://encoding.spec.whatwg.org/#concept-encoding-get) algorithm and returns the resulting encoding's name, or `null` for failure\n- `isSupported(name)`: returns whether the encoding is one of [the encodings](https://encoding.spec.whatwg.org/#names-and-labels) of the Encoding Standard, _and_ is an encoding that this package can decode (via iconv-lite)\n- `getBOMEncoding(buffer)`: sniffs the first 2–3 bytes of the supplied `Buffer`, returning one of the encoding names `\"UTF-8\"`, `\"UTF-16LE\"`, or `\"UTF-16BE\"` if the appropriate BOM is present, or `null` if no BOM is present\n\n## Unsupported encodings\n\nSince we rely on iconv-lite, we are limited to support only the encodings that they support. Currently we are missing support for:\n\n- ISO-2022-JP\n- ISO-8859-8-I\n- replacement\n- x-mac-cyrillic\n- x-user-defined\n\nPassing these encoding names will return `false` when calling `isSupported`, and passing any of the possible labels for these encodings to `labelToName` will return `null`.\n\n## Credits\n\nThis package was originally based on the excellent work of [@nicolashenry](https://github.com/nicolashenry), [in jsdom](https://github.com/tmpvar/jsdom/blob/7ce11776ce161e8d5921a7a183585327400f786b/lib/jsdom/living/helpers/encoding.js). It has since been pulled out into this separate package.\n\n## Alternatives\n\nIf you are looking for a JavaScript implementation of the Encoding Standard's `TextEncoder` and `TextDecoder` APIs, you'll want [@inexorabletash](https://github.com/inexorabletash)'s [text-encoding](https://github.com/inexorabletash/text-encoding) package.\n","repository":{"type":"git","url":"git+https://github.com/jsdom/whatwg-encoding.git"},"bugs":{"url":"https://github.com/jsdom/whatwg-encoding/issues"},"license":"WTFPL","versions":{"1.0.0":{"name":"whatwg-encoding","description":"Decode strings according to the WHATWG Encoding Standard","keywords":["encoding","whatwg"],"version":"1.0.0","author":{"name":"Domenic Denicola","email":"d@domenic.me","url":"https://domenic.me/"},"license":"WTFPL","repository":{"type":"git","url":"git+https://github.com/jsdom/whatwg-encoding.git"},"main":"lib/whatwg-encoding.js","files":["lib/"],"scripts":{"test":"mocha","lint":"eslint lib test","update":"node scripts/update.js"},"dependencies":{"iconv-lite":"0.4.13"},"devDependencies":{"eslint":"^3.8.0","got":"^6.5.0","mocha":"^3.1.2"},"gitHead":"848161b330020027bf94f30502dc63e02df9b6e1","bugs":{"url":"https://github.com/jsdom/whatwg-encoding/issues"},"homepage":"https://github.com/jsdom/whatwg-encoding#readme","_id":"whatwg-encoding@1.0.0","_shasum":"f6a582bafe28d5bbeb5aac4829871e96dc0d6b97","_from":".","_npmVersion":"3.9.5","_nodeVersion":"6.2.2","_npmUser":{"name":"domenic","email":"d@domenic.me"},"dist":{"shasum":"f6a582bafe28d5bbeb5aac4829871e96dc0d6b97","tarball":"http://nexus.dui88.com:8081/nexus/content/groups/npm-all/whatwg-encoding/-/whatwg-encoding-1.0.0.tgz"},"maintainers":[{"name":"domenic","email":"d@domenic.me"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/whatwg-encoding-1.0.0.tgz_1476583625739_0.5463150741998106"},"directories":{}},"1.0.1":{"name":"whatwg-encoding","description":"Decode strings according to the WHATWG Encoding Standard","keywords":["encoding","whatwg"],"version":"1.0.1","author":{"name":"Domenic Denicola","email":"d@domenic.me","url":"https://domenic.me/"},"license":"WTFPL","repository":{"type":"git","url":"git+https://github.com/jsdom/whatwg-encoding.git"},"main":"lib/whatwg-encoding.js","files":["lib/"],"scripts":{"test":"mocha","lint":"eslint lib test","update":"node scripts/update.js"},"dependencies":{"iconv-lite":"0.4.13"},"devDependencies":{"eslint":"^3.8.0","got":"^6.5.0","mocha":"^3.1.2"},"gitHead":"22ef4432e223dd4736651b1db7c43fb532352ea7","bugs":{"url":"https://github.com/jsdom/whatwg-encoding/issues"},"homepage":"https://github.com/jsdom/whatwg-encoding#readme","_id":"whatwg-encoding@1.0.1","_shasum":"3c6c451a198ee7aec55b1ec61d0920c67801a5f4","_from":".","_npmVersion":"3.9.5","_nodeVersion":"6.2.2","_npmUser":{"name":"domenic","email":"d@domenic.me"},"dist":{"shasum":"3c6c451a198ee7aec55b1ec61d0920c67801a5f4","tarball":"http://nexus.dui88.com:8081/nexus/content/groups/npm-all/whatwg-encoding/-/whatwg-encoding-1.0.1.tgz"},"maintainers":[{"name":"domenic","email":"d@domenic.me"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/whatwg-encoding-1.0.1.tgz_1476585270143_0.7966783917509019"},"directories":{}}},"name":"whatwg-encoding","time":{"modified":"2016-10-16T02:34:31.658Z","created":"2016-10-16T02:07:07.293Z","1.0.0":"2016-10-16T02:07:07.293Z","1.0.1":"2016-10-16T02:34:31.658Z"},"readmeFilename":"README.md","homepage":"https://github.com/jsdom/whatwg-encoding#readme"}