{"_id":"@ar-nelson/foldcase","_rev":"2-d3256ac48085de2218bf534cb057e30f","name":"@ar-nelson/foldcase","dist-tags":{"latest":"1.0.1"},"versions":{"1.0.0":{"name":"@ar-nelson/foldcase","version":"1.0.0","description":"Unicode Case Folding in JavaScript, both Simple and Full","keywords":["string","unicode","casefold","case-fold","case-folding"],"main":"index.js","scripts":{"codegen":"curl http://www.unicode.org/Public/UNIDATA/CaseFolding.txt | awk -f generate-tables.awk | prettier --parser=babel > case-tables.js","lint":"eslint *.js","test":"npm run lint && mocha tests.js"},"author":{"name":"Adam R. Nelson","email":"adam@nels.onl"},"license":"ISC","devDependencies":{"eslint":"^6.3.0","mocha":"^6.2.0","prettier":"^1.18.2"},"eslintConfig":{"extends":"eslint:recommended","parserOptions":{"ecmaVersion":6},"env":{"browser":true,"node":true}},"gitHead":"00444f322a7c3ca318371b47f59ee25f32f4a41e","_id":"@ar-nelson/foldcase@1.0.0","_nodeVersion":"11.15.0","_npmVersion":"6.7.0","dist":{"integrity":"sha512-gw+SkUuXBZgd85kMoEEzaLjkxxyJoopxsa0hSqt4k6BHD1xFj0plokpYRfo+C4ZWwYnbA/8wzlAfb10E0dN8Wg==","shasum":"b7cb18f68630d20b42ff99f381ae0bdbd4536b73","tarball":"https://registry.npmjs.org/@ar-nelson/foldcase/-/foldcase-1.0.0.tgz","fileCount":8,"unpackedSize":39838,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJddtH/CRA9TVsSAnZWagAA9ZkQAIeuZV9pG2+E2VwgeBLf\nRr4JdyBJ6UhwDepuWLqW3A3yZKIwBqT965JHIqIFa3/RFTragsnOAbB/Ra6s\nLNDWM871yR9sl2Oukcm23zeSs7h1KkvLa7n7Q0qvt1FtgxHWWlL2jqPSf7iB\nyTzwTOg65oKSDG9DCVvXBBCgEBc8wH1RS7OW4k/PGpnH/TeH+OnrLDHNFOHo\nwOaXkldcMpLXvdAPOyjAvJ1ccPh+eWuTrFcf4wKNS8R7rebvysqErxeAh5RP\n7QAuifbzdJ2dyMIYupaOkpnXy2LZaj3V48fHOwXC5m+jpnWYXXXl5hVn9MJ9\noQC+6nkPsXemM5esbbE+rMaeblnK2XSR75EuroipblGaW8t/2XwrYQdXh6Ur\nYFXOWomoZnX+QzuuSZ4gSIh0M6ZTDiRSw6Pd8h2J4cZbr/mZTJ8iVGQLxuLb\nnbfWacYnRkYHakaGjBSyMMzRUmonIXpuuYOIIJh05+uQdFevUGmrpp4fuU9H\nJazr/cd2TslvZyh0dld7V0fjzrbG7rWrV0S5dtcXjqPanuKIfbwfXkAJViHw\nuDVnZX1d3gxxiqEt95juXI6GgWTGeVAKm08/PtWBrx5dBpp40lGmlViHcHqh\nA9uzJ1fVgBSdJPUCqnyqzUbW2UcVSPgPEJ8WqMSF0NVn7waNGXkfVmbkDMR2\nTdMQ\r\n=iXg8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDnjBQAf4VIsWB1CvyD/oON3oa0SKC4AXnS0Y7AbbQQIQIgWbqpJFu8He4xnC8Wiod6BSf590Ar4CpM6gVmIgFcP2I="}]},"maintainers":[{"name":"ar-nelson","email":"dev@sector91.com"}],"_npmUser":{"name":"ar-nelson","email":"dev@sector91.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/foldcase_1.0.0_1568068094355_0.6540093903661348"},"_hasShrinkwrap":false},"1.0.1":{"name":"@ar-nelson/foldcase","version":"1.0.1","description":"Unicode Case Folding, both Simple and Full","keywords":["string","unicode","casefold","case-fold","case-folding"],"main":"index.js","scripts":{"codegen":"curl http://www.unicode.org/Public/UNIDATA/CaseFolding.txt | awk -f generate-tables.awk | prettier --parser=babel > case-tables.js","lint":"eslint *.js","test":"npm run lint && mocha tests.js"},"author":{"name":"Adam R. Nelson","email":"adam@nels.onl"},"repository":{"type":"git","url":"git+https://github.com/ar-nelson/foldcase.git"},"license":"ISC","devDependencies":{"eslint":"^6.3.0","mocha":"^6.2.0","prettier":"^1.18.2"},"eslintConfig":{"extends":"eslint:recommended","parserOptions":{"ecmaVersion":6},"env":{"browser":true,"node":true}},"gitHead":"00444f322a7c3ca318371b47f59ee25f32f4a41e","bugs":{"url":"https://github.com/ar-nelson/foldcase/issues"},"homepage":"https://github.com/ar-nelson/foldcase#readme","_id":"@ar-nelson/foldcase@1.0.1","_nodeVersion":"11.15.0","_npmVersion":"6.7.0","dist":{"integrity":"sha512-CHlMkXpG3l3PA/EV5rxRcBm7J3V9oBcpvbo5OgX3TP4ErEGi90DKcVHHKDBJYSiNzP3AkI0IqiaC+DY+EoKdFQ==","shasum":"fd06f828c9c91ad1a0604a891bacc5416652d362","tarball":"https://registry.npmjs.org/@ar-nelson/foldcase/-/foldcase-1.0.1.tgz","fileCount":8,"unpackedSize":39881,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdeQqdCRA9TVsSAnZWagAA9MgP/A1lqPCT/NW7AjIfspyq\neUPW5GFNU2mXa5tLHOyyTIv6y3N+fC1DEhP5iGo1S3vhMqEPaEq6aZspk6+R\nbUV9OJOQhiaibrChin8jaHpYAHKyAok0ZDJLVqXSsoB8Tf80MmvyFQoHS3ir\nhAoPhjAXySDOlxlIDQXXkc9YWym1di0ByE2bFSFh/S6EVo3Rf4tRy+XS7inT\n6qYX+2FRno6Yu4VPdr+YECQWRytQ5Pn/85K74EFdWnyK0+Yvtp5Msh6m+quG\n45Hjvd7QItANNUCnosBhimd808QKasRDwekGxZcQUvWXl0dH9tyQu3lRgBUz\nJPNyuPZbIbaTqsxHcOasjbbAxthsHdVuG4aDjms0c/fNMMhWetrsRKjjnwam\nwT0L0NRPZn84HKr3sIaGu/X/ecbTFL8Xy5ZBk/xP9LTWfUjVWkkohxZdRdXj\nAcMBDsy1OWdUusD+Fm03SPG7U1+/u2BxPZAjpEe4VNCwE/izTrCrWA0Qu6Dm\nL02AVdiyWkGniuWYeGfsX9gqhunzUHNpiBctEDWVQMWcRHBgrRfLCg/COjEg\nKS71k4CB4cWgCEaRrDa8XTpzehQE9Q/oW7deFvi28mPtSOtqyACVS9Cs8BZl\nnfjyLwe583jim8z/97sDVmcU0e7cVH7uyCKPYhDkXm6DlnH8q/nbk8YeZ0Zw\nzcbf\r\n=uc95\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICGVOiT1VorOiqXKuUN3qo7VLtwQzohJJZeiWRAJboKBAiEAjTBYVPd2s7LN30SVwX5LwXZUlTbXKFxFKLEuschFEaw="}]},"maintainers":[{"name":"ar-nelson","email":"dev@sector91.com"}],"_npmUser":{"name":"ar-nelson","email":"adam@nels.onl"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/foldcase_1.0.1_1568213661291_0.44168401412823877"},"_hasShrinkwrap":false}},"time":{"created":"2019-09-09T22:28:14.112Z","1.0.0":"2019-09-09T22:28:14.555Z","modified":"2022-04-04T15:14:13.900Z","1.0.1":"2019-09-11T14:54:21.528Z"},"maintainers":[{"name":"ar-nelson","email":"dev@sector91.com"}],"description":"Unicode Case Folding, both Simple and Full","keywords":["string","unicode","casefold","case-fold","case-folding"],"author":{"name":"Adam R. Nelson","email":"adam@nels.onl"},"license":"ISC","readme":"# foldcase: JavaScript implementation of the Unicode Case Folding Algorithm\n\nThis is a small Node module that implements the [Unicode Case Folding\nAlgorithm][1], in both Simple and Full variants, by generating a conversion\ntable from the [official case folding table at `unicode.org`][2].\n\n    const foldcase = require('@ar-nelson/foldcase');\n    \n    foldcase('ABC123'); // => 'abc123'\n\n`foldcase` is similar to `String.prototype.toLowerCase`, but not the same. Its\nintended use is case-insensitive string comparisons.\n\n[Case folding][3] remains the same across Unicode versions, although\n`toLowerCase`'s behavior may change. For example, because the Cherokee script\noriginally had only uppercase characters in Unicode, and lowercase characters\nwere added later, `foldcase` converts Cherokee text to *uppercase*.\n\n    foldcase('ꮳꮃꭹ'); // => 'ᏣᎳᎩ'\n\nThis module has no dependencies, and should run in Node and on modern browsers.\nBecause it uses a few ES6 features (`\\u{…}` escapes, `Array.from`), it won't run\non any version of IE without transpilation and polyfills.\n\nUse `npm test` to lint and test. Use `npm run codegen` to regenerate\n`case-tables.js` from the table at `unicode.org` (probably only works on Linux).\n\n**Caveat emptor:** Because it's implemented in pure JS, and it operates on\n32-bit codepoints instead of 16-bit characters, this algorithm is *slow*. Only\nuse this over `toLowerCase` if you know you need it for compatibility.\n\n[1]: https://www.w3.org/International/wiki/Case_folding\n[2]: http://www.unicode.org/Public/UNIDATA/CaseFolding.txt\n[3]: https://unicode.org/faq/casemap_charprop.html#2\n\n## API\n\n### `foldcase(String)`\n\nAlias for `foldcase.full`.\n\n### `foldcase.full(String)`\n\nApplies the full Unicode case folding algorithm. This algorithm may convert some\nsingle characters into multiple characters.\n\n    foldcase.full('Weiß'); // => 'weiss'\n\n### `foldcase.simple(String)`\n\nApplies the simple Unicode case folding algorithm. The simple algorithm will not\nchange the length (in code points) of its input string.\n\n    foldcase.simple('Weiß'); // => 'weiß'\n\n### `foldcase.charFull(String)`\n\nApplies the full Unicode case folding algorithm to a single code point. The code\npoint may be a surrogate pair, so the argument may be a string of length 1 or 2.\nIf the argument is not a single code point, or does not have a case folding\nconversion, the argument will be returned unchanged.\n\n    foldcase.charFull('A');   // => 'a'\n    foldcase.charFull('FOO'); // => 'FOO'\n\nThis version of case folding may convert single characters to multiple\ncharacters.\n\n    foldcase.charFull('ß'); // => 'ss'\n\n### `foldcase.charSimple(String)`\n\nApplies the simple Unicode case folding algorithm to a single code point. The\ncode point may be a surrogate pair, so the argument may be a string of length\n1 or 2. If the argument is not a single code point, or does not have a case\nfolding conversion, the argument will be returned unchanged.\n\n    foldcase.charSimple('A');   // => 'a'\n    foldcase.charSimple('FOO'); // => 'FOO'\n\nThis version of case folding always returns a single code point when given\na single code point.\n\n    foldcase.charSimple('ß'); // => 'ß'\n","readmeFilename":"README.md","homepage":"https://github.com/ar-nelson/foldcase#readme","repository":{"type":"git","url":"git+https://github.com/ar-nelson/foldcase.git"},"bugs":{"url":"https://github.com/ar-nelson/foldcase/issues"}}