{"id":17291905,"url":"https://github.com/eklem/unicode-emojis-unique-id-json","last_synced_at":"2025-04-06T09:48:34.915Z","repository":{"id":181131013,"uuid":"666273572","full_name":"eklem/unicode-emojis-unique-id-json","owner":"eklem","description":null,"archived":false,"fork":false,"pushed_at":"2025-03-11T07:30:48.000Z","size":475,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"trunk","last_synced_at":"2025-04-01T16:06:20.352Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/eklem.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2023-07-14T05:48:23.000Z","updated_at":"2025-03-11T07:30:52.000Z","dependencies_parsed_at":"2024-10-15T10:42:18.194Z","dependency_job_id":"78908595-f542-441e-86d8-55dac93d705d","html_url":"https://github.com/eklem/unicode-emojis-unique-id-json","commit_stats":null,"previous_names":["eklem/unicode-emojis-unique-id-json"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eklem%2Funicode-emojis-unique-id-json","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eklem%2Funicode-emojis-unique-id-json/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eklem%2Funicode-emojis-unique-id-json/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eklem%2Funicode-emojis-unique-id-json/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eklem","download_url":"https://codeload.github.com/eklem/unicode-emojis-unique-id-json/tar.gz/refs/heads/trunk","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247463880,"owners_count":20942944,"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":"2024-10-15T10:42:13.362Z","updated_at":"2025-04-06T09:48:34.900Z","avatar_url":"https://github.com/eklem.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# unicode-emojis-unique-id-json\n\nJSON-version of https://unicode.org/Public/emoji/15.1/emoji-test.txt with unique IDs (numbers). The IDs should be unique over time, when new versions of unicode emojis are released. There are a little less than 4000 emojis now if you count the ones with modifiers. I'm guessing it will pass 10000 in the foreseeable future, so the IDs should be 5-digits. But using 6-digit IDs since a depending library needs this.\n\nThe IDs will start at 000001 and then counting. The reasons for this way of creating IDs instead of some hashing algorithm are two:\n\n* The IDs need to be numbers\n* The IDs need to be as short as possible\n\nThe usage is for the [otp-ecnrypt-js](https://github.com/eklem/otp-encrypt-js). More specific: To be able to encrypt and decrypt emojis (in addition to characters and numbers). Emoji encryption and decryption are done through a codebook, starting with a 0 to be identified as a emoji plaincode and then followed by 5 digits.\n\n## Content of JSON\n\nText-line from https://unicode.org/Public/emoji/15.1/emoji-test.txt\n\n```text\n1F600                                                  ; fully-qualified     # 😀 E1.0 grinning face\n```\n\nwill be:\n\n```Json\n{\n  \"unicodeEmojisVersion\": \"13.0\",\n  \"emojis\": [\n    {\n      \"id\": \"000001\",\n      \"emoji\": \"😃\",\n      \"description\": \"grinning face with big eyes\",\n      \"unicode\": [\"U+1F603\"],\n      \"versionIntroduced\": \"0.6\"\n    }\n  ]\n}\n```\n\n## To get back to the same IDs if something goes wrong\n\nStart from Unicode Emojis v14.0, then run the script on all versions after. That will so far be:\n\n* 13.1\n* 14.0 \u003c- We have gotten this far\n* 15.0\n* 15.1\n* 16.0\n* [future versions]\n\nVersion 15 won't happen before I get regex to work for the [two-character emojis introduced in v15.0 and v15.1](https://github.com/eklem/unicode-emojis-unique-id-json/issues/9).\n\n## Work to be done\n\n* [x] regex for extracting content from text-file.\n* [x] read old JSON, fetch new emojis, convert to JSON and add what's not in the old JSON with unique IDs\n* [x] write to JSON\n* [x] show which unicode emoji versions are met with this library\n* [x] tests to check that some IDs for previous versions of this library are corresponding to new version of library. Do this by having a previous version directory\n\n\n## Tests\n\nShould have tests to ensure that IDs for previous versions of unicode emoji IDs are persistent.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feklem%2Funicode-emojis-unique-id-json","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feklem%2Funicode-emojis-unique-id-json","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feklem%2Funicode-emojis-unique-id-json/lists"}