{"id":26806933,"url":"https://github.com/mathiasbynens/node-unicode-data","last_synced_at":"2025-03-30T00:02:02.678Z","repository":{"id":10251878,"uuid":"12359425","full_name":"node-unicode/node-unicode-data","owner":"node-unicode","description":"JavaScript-compatible Unicode data generator. Arrays of code points, arrays of symbols, and regular expressions for every Unicode version’s categories, scripts, blocks, and properties — neatly packaged into a separate npm package per Unicode version.","archived":false,"fork":false,"pushed_at":"2023-08-31T15:38:05.000Z","size":5286,"stargazers_count":136,"open_issues_count":17,"forks_count":15,"subscribers_count":10,"default_branch":"main","last_synced_at":"2024-05-02T00:05:48.482Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://mths.be/node-unicode-data","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/node-unicode.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-MIT.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2013-08-25T13:31:40.000Z","updated_at":"2024-05-09T09:01:39.031Z","dependencies_parsed_at":"2024-05-09T09:01:28.523Z","dependency_job_id":"79b296e7-21ce-406e-a35c-7b6167ad6f6c","html_url":"https://github.com/node-unicode/node-unicode-data","commit_stats":null,"previous_names":["mathiasbynens/node-unicode-data"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/node-unicode%2Fnode-unicode-data","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/node-unicode%2Fnode-unicode-data/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/node-unicode%2Fnode-unicode-data/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/node-unicode%2Fnode-unicode-data/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/node-unicode","download_url":"https://codeload.github.com/node-unicode/node-unicode-data/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246258866,"owners_count":20748573,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-03-30T00:01:14.690Z","updated_at":"2025-03-30T00:02:02.624Z","avatar_url":"https://github.com/node-unicode.png","language":"JavaScript","readme":"# node-unicode-data\n\nJavaScript-compatible Unicode data generator. Arrays of code points, arrays of symbols, and regular expressions for every Unicode version’s categories, scripts, script extensions, blocks, bidi data, and other properties — neatly packaged into a separate npm package per Unicode version.\n\n## Using the data in your scripts\n\nTo use the generated data, simply install one of [the npm modules generated by this script](https://www.npmjs.com/org/unicode). Separate packages are available for each Unicode version. This allows you to do stuff like:\n\n```js\n// Get an array of all code points with the `White_Space` property:\nconst codePoints = require('@unicode/unicode-6.3.0/Binary_Property/White_Space/code-points');\n// Get an array of strings (containing one symbol each) in the `Lu` category:\nconst symbols = require('@unicode/unicode-6.3.0/General_Category/Uppercase_Letter/symbols');\n// Get a regular expression that matches any symbol in the `Aegean Numbers` block:\nconst regex = require('@unicode/unicode-6.3.0/Block/Aegean_Numbers/regex');\n// Get an array of all code points in the `Egyptian_Hieroglyphs` script:\nconst hieroglyphs = require('@unicode/unicode-6.3.0/Script/Egyptian_Hieroglyphs/code-points');\n// Get the canonical category a given code point belongs to:\n// (Note: U+0041 is LATIN CAPITAL LETTER A)\nconst category = require('@unicode/unicode-6.3.0/General_Category').get(0x41);\n// Get an array of all code points with a given bidi class:\nconst lre = require('@unicode/unicode-6.3.0/Bidi_Class/Left_To_Right_Embedding/code-points');\n// Get the directionality of a given code point:\nconst directionality = require('@unicode/unicode-6.3.0/Bidi_Class').get(0x41);\n// What glyph is the mirror image of `«` (U+00AB)?\nconst mirrored = require('@unicode/unicode-6.3.0/Bidi_Mirroring_Glyph').get(0xAB);\n// Get a regular expression that matches all opening brackets:\nconst openingBrackets = require('@unicode/unicode-6.3.0/Bidi_Paired_Bracket_Type/Open/regex');\n// …you get the idea.\n```\n\nFor more information, see the README for the package you’re interested in. [Here’s the full list of npm packages generated by this script](https://www.npmjs.com/org/unicode):\n\n* [_@unicode/1.1.5_](https://npmjs.org/package/@unicode/unicode-1.1.5#readme) ([repository](https://github.com/node-unicode/unicode-1.1.5#readme))\n* [_@unicode/2.0.14_](https://npmjs.org/package/@unicode/unicode-2.0.14#readme) ([repository](https://github.com/node-unicode/unicode-2.0.14#readme))\n* [_@unicode/2.1.2_](https://npmjs.org/package/@unicode/unicode-2.1.2#readme) ([repository](https://github.com/node-unicode/unicode-2.1.2#readme))\n* [_@unicode/2.1.5_](https://npmjs.org/package/@unicode/unicode-2.1.5#readme) ([repository](https://github.com/node-unicode/unicode-2.1.5#readme))\n* [_@unicode/2.1.8_](https://npmjs.org/package/@unicode/unicode-2.1.8#readme) ([repository](https://github.com/node-unicode/unicode-2.1.8#readme))\n* [_@unicode/2.1.9_](https://npmjs.org/package/@unicode/unicode-2.1.9#readme) ([repository](https://github.com/node-unicode/unicode-2.1.9#readme))\n* [_@unicode/3.0.0_](https://npmjs.org/package/@unicode/unicode-3.0.0#readme) ([repository](https://github.com/node-unicode/unicode-3.0.0#readme))\n* [_@unicode/3.0.1_](https://npmjs.org/package/@unicode/unicode-3.0.1#readme) ([repository](https://github.com/node-unicode/unicode-3.0.1#readme))\n* [_@unicode/3.1.0_](https://npmjs.org/package/@unicode/unicode-3.1.0#readme) ([repository](https://github.com/node-unicode/unicode-3.1.0#readme))\n* [_@unicode/3.1.1_](https://npmjs.org/package/@unicode/unicode-3.1.1#readme) ([repository](https://github.com/node-unicode/unicode-3.1.1#readme))\n* [_@unicode/3.2.0_](https://npmjs.org/package/@unicode/unicode-3.2.0#readme) ([repository](https://github.com/node-unicode/unicode-3.2.0#readme))\n* [_@unicode/4.0.0_](https://npmjs.org/package/@unicode/unicode-4.0.0#readme) ([repository](https://github.com/node-unicode/unicode-4.0.0#readme))\n* [_@unicode/4.0.1_](https://npmjs.org/package/@unicode/unicode-4.0.1#readme) ([repository](https://github.com/node-unicode/unicode-4.0.1#readme))\n* [_@unicode/4.1.0_](https://npmjs.org/package/@unicode/unicode-4.1.0#readme) ([repository](https://github.com/node-unicode/unicode-4.1.0#readme))\n* [_@unicode/5.0.0_](https://npmjs.org/package/@unicode/unicode-5.0.0#readme) ([repository](https://github.com/node-unicode/unicode-5.0.0#readme))\n* [_@unicode/5.1.0_](https://npmjs.org/package/@unicode/unicode-5.1.0#readme) ([repository](https://github.com/node-unicode/unicode-5.1.0#readme))\n* [_@unicode/5.2.0_](https://npmjs.org/package/@unicode/unicode-5.2.0#readme) ([repository](https://github.com/node-unicode/unicode-5.2.0#readme))\n* [_@unicode/6.0.0_](https://npmjs.org/package/@unicode/unicode-6.0.0#readme) ([repository](https://github.com/node-unicode/unicode-6.0.0#readme))\n* [_@unicode/6.1.0_](https://npmjs.org/package/@unicode/unicode-6.1.0#readme) ([repository](https://github.com/node-unicode/unicode-6.1.0#readme))\n* [_@unicode/6.2.0_](https://npmjs.org/package/@unicode/unicode-6.2.0#readme) ([repository](https://github.com/node-unicode/unicode-6.2.0#readme))\n* [_@unicode/6.3.0_](https://npmjs.org/package/@unicode/unicode-6.3.0#readme) ([repository](https://github.com/node-unicode/unicode-6.3.0#readme))\n* [_@unicode/7.0.0_](https://npmjs.org/package/@unicode/unicode-7.0.0#readme) ([repository](https://github.com/node-unicode/unicode-7.0.0#readme))\n* [_@unicode/8.0.0_](https://npmjs.org/package/@unicode/unicode-8.0.0#readme) ([repository](https://github.com/node-unicode/unicode-8.0.0#readme))\n* [_@unicode/9.0.0_](https://npmjs.org/package/@unicode/unicode-9.0.0#readme) ([repository](https://github.com/node-unicode/unicode-9.0.0#readme))\n* [_@unicode/10.0.0_](https://npmjs.org/package/@unicode/unicode-10.0.0#readme) ([repository](https://github.com/node-unicode/unicode-10.0.0#readme))\n* [_@unicode/11.0.0_](https://npmjs.org/package/@unicode/unicode-11.0.0#readme) ([repository](https://github.com/node-unicode/unicode-11.0.0#readme))\n* [_@unicode/12.0.0_](https://npmjs.org/package/@unicode/unicode-12.0.0#readme) ([repository](https://github.com/node-unicode/unicode-12.0.0#readme))\n* [_@unicode/12.1.0_](https://npmjs.org/package/@unicode/unicode-12.1.0#readme) ([repository](https://github.com/node-unicode/unicode-12.1.0#readme))\n* [_@unicode/13.0.0_](https://npmjs.org/package/@unicode/unicode-13.0.0#readme) ([repository](https://github.com/node-unicode/unicode-13.0.0#readme))\n* [_@unicode/14.0.0_](https://npmjs.org/package/@unicode/unicode-14.0.0#readme) ([repository](https://github.com/node-unicode/unicode-14.0.0#readme))\n* [_@unicode/15.0.0_](https://npmjs.org/package/@unicode/unicode-15.0.0#readme) ([repository](https://github.com/node-unicode/unicode-15.0.0#readme))\n* [_@unicode/15.1.0_](https://npmjs.org/package/@unicode/unicode-15.1.0#readme) ([repository](https://github.com/node-unicode/unicode-15.1.0#readme))\n* [_@unicode/16.0.0_](https://npmjs.org/package/@unicode/unicode-16.0.0#readme) ([repository](https://github.com/node-unicode/unicode-16.0.0#readme))\n\nNote that these READMEs are auto-generated by this script, too – they describe all the data that is available for that particular Unicode version. To programmatically get this list of available categories, scripts, script extensions, blocks, and properties for a given Unicode version, just `require` the main module for that version:\n\n```js\n\u003e require('unicode-6.3.0');\n{\n\t'Binary_Property': [\n\t\t'Alphabetic', 'Any', 'ASCII', 'ASCII_Hex_Digit', 'Assigned', …\n\t],\n\t'General_Category': [\n\t\t'Cased_Letter','Close_Punctuation','Connector_Punctuation', …\n\t],\n\t'Script': [\n\t\t'Arabic', 'Armenian', 'Avestan', …\n\t],\n\t'Script_Extensions': [\n\t\t'Arabic', 'Armenian', 'Avestan', …\n\t],\n\t'Block': [\n\t\t'Aegean Numbers', 'Alchemical Symbols', …\n\t],\n\t'Case_Folding': [\n\t\t'C', 'F', 'S', 'T'\n\t],\n\t'Simple_Case_Mapping': [\n\t\t'Uppercase', 'Lowercase', 'Titlecase'\n\t],\n\t'Special_Casing': [\n\t\t'Uppercase', 'Lowercase', 'Titlecase', …\n\t],\n\t'Bidi_Class': [\n\t\t'Arabic_Letter', 'Arabic_Number', 'Boundary_Neutral', …\n\t],\n\t'Bidi_Mirroring_Glyph': [],\n\t'Bidi_Paired_Bracket_Type': [\n\t\t'Close', 'None', 'Open'\n\t]\n}\n```\n\n## For project maintainers\n\nAfter cloning this repository, before doing anything else, run:\n\n```sh\n./clone-repos.sh\n```\n\nThis clones all the generated repositories to your local `output` folder. You can then make changes to node-unicode-data, and use `./bootstrap.sh` to commit and push changes to each of these repositories.\n\n## Generating the data\n\n`npm run download` (re-)downloads the Unicode source files for all the Unicode versions defined in `data/resources.js`, saving them in the `data` folder.\n\n`npm run build` generates data for all the Unicode versions defined in `data/resources.js`. This may take a few minutes… The regular expressions are generated using [Regenerate](https://mths.be/regenerate).\n\n## Testing\n\n`npm test` generates the data for the oldest and latest available Unicode version. This is a good way to test changes to the generator scripts before running `npm run-script generate`.\n\n`npm run-script cover` generates [the code coverage report](http://rawgithub.com/node-unicode/node-unicode-data/master/coverage/index.html).\n\n## Author\n\n| [![twitter/mathias](https://gravatar.com/avatar/24e08a9ea84deb17ae121074d0f17125?s=70)](https://twitter.com/mathias \"Follow @mathias on Twitter\") |\n|---|\n| [Mathias Bynens](https://mathiasbynens.be/) |\n\n## License\n\nThis module is available under the [MIT](https://mths.be/mit) license.\n","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmathiasbynens%2Fnode-unicode-data","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmathiasbynens%2Fnode-unicode-data","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmathiasbynens%2Fnode-unicode-data/lists"}