"readme":"This is [Unicode Normalizer] in a Common JS module. I'm not affiliated with Matsuza, the original author of Unicode Normalizer.\n\n[](https://travis-ci.org/walling/unorm)\n\n\nInstallation\n------------\n\n```bash\nnpm install unorm\n```\n\nPolyfill\n--------\n\nYou can use this module as a polyfill for [String.prototype.normalize], for example:\n\n```javascript\nconsole.log('æøåäüö'.normalize('NFKD'));\n```\n\nThe module uses some [EcmaScript 5](http://kangax.github.io/es5-compat-table/) features. Other browsers should use a compability shim, e.g. [es5-shim](https://github.com/kriskowal/es5-shim).\n\nFunctions\n---------\n\nThis module exports four functions: `nfc`, `nfd`, `nfkc`, and `nfkd`; one for each Unicode normalization. In the browser the functions are exported in the `unorm` global. In CommonJS environments you just require the module. Functions:\n\n * `unorm.nfd(str)` – Canonical Decomposition\n * `unorm.nfc(str)` – Canonical Decomposition, followed by Canonical Composition\n * `unorm.nfkd(str)` – Compatibility Decomposition\n * `unorm.nfkc(str)` – Compatibility Decomposition, followed by Canonical Composition\n\n\nNode.JS example\n---------------\n\nFor a longer example, see `examples` directory.\n\n```javascript\nvar unorm = require('unorm');\n\nvar text =\n 'The \\u212B symbol invented by A. J. \\u00C5ngstr\\u00F6m ' +\n '(1814, L\\u00F6gd\\u00F6, \\u2013 1874) denotes the length ' +\n '10\\u207B\\u00B9\\u2070 m.';\n\nvar combining = /[\\u0300-\\u036F]/g; // Use XRegExp('\\\\p{M}', 'g'); see example.js.\n\nconsole.log('Regular: ' + text);\nconsole.log('NFC: ' + unorm.nfc(text));\nconsole.log('NFD: ' + unorm.nfd(text));\nconsole.log('NFKC: ' + unorm.nfkc(text));\nconsole.log('NFKD: * ' + unorm.nfkd(text).replace(combining, ''));\nconsole.log(' * = Combining characters removed from decomposed form.');\n```\n\n\nRoad map\n--------\n\nAs of November 2013. Longer term:\n\n- Look at possible optimizations (speed primarely, module size secondarily)\n- Adding functions to quick check normalizations: `is_nfc`, `is_nfd`, etc.\n\n\nContributers\n------------\n\n - **Oleg Grenrus** is helping to maintain this library. He cleaned up the code base, fixed JSHint errors, created a test suite and updated the normalization data to Unicode 6.3.\n\n\nDevelopment notes\n-----------------\n\n- [Unicode normalization forms report](http://www.unicode.org/reports/tr15/)\n- Unicode data can be found from http://www.unicode.org/Public/UCD/latest/ucd\n\nTo generate new unicode data, run:\n```sh\ncd src/data/src\njavac UnormNormalizerBuilder.java\njava UnormNormalizerBuilder\n```\nproduced `unormdata.js` contains needed table\n\nExecute `node benchmark/benchmark.js` to run simple benchmarks, if you do any changes which may affect performance.\n\nLicense\n-------\n\nThis project includes the software package **Unicode Normalizer 1.0.0**. The\nsoftware dual licensed under the MIT and GPL licenses. Here is the MIT license:\n\n Copyright (c) 2008-2013 Matsuza <matsuza@gmail.com>, Bjarke Walling <bwp@bwp.dk>\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to\n deal in the Software without restriction, including without limitation the\n rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n sell copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\",WITHOUTWARRANTYOFANYKIND,EXPRESSOR\nIMPLIED,INCLUDINGBUTNOTLIMITEDTOTHEWARRANTIESOFMERCHANTABILITY,\nFITNESSFORAPARTICULARPURPOSEANDNONINFRINGEMENT.INNOEVENTSHALLTHE\nAUTHORSORCOPYRIGHTHOLDERSBELIABLEFORANYCLAIM,DAMAGESOROTHER\n