
Security News
Scaling Socket from Zero to 10,000+ Organizations
Socket CEO Feross Aboukhadijeh shares lessons from scaling a developer security startup to 10,000+ organizations in this founder interview.
@konfirm/iso15924
Advanced tools
Implementation of ISO 15924:2004, codes for presentations of names of scripts
The ISO 15924:2004 standard specifies all of the 252 script codes. The codes are maintained by The Unicode Consortium, who also publishes the full list of codes.
ISO15924 is a scoped package, the scope needs to be provided for both the installation and usage.
$ npm install --save @konfirm/iso15924
The ISO15924 package exports a factory function, this function is used to obtain instances of the ISO15924 class.
const iso15924 = require('@konfirm/iso15924');
const latn = iso15924('Latn');
latn.code; // 'Latn'
latn.numeric; // '215'
The exported factory function in turn also has several added members for convenience
ISO15924The ISO15924 class used to create the specified value objects.
Creating instances directly is useful to reduce the footprint of any dependent implementation, but skips lookups for the numeric code. Use this if there is a need for a full custom code (where the range Qaaa..Qabx inteded for private use does not suffice) or in case codes have been added and this module is not on par (in which case PR's are welcome).
const { ISO15924 } = require('@konfirm/iso15924');
const latn = new ISO15924('Latn');
latn.code; // 'Latn'
latn.numeric; // undefined
const cyrl = new ISO15924('Cyrl', '220');
cyrl.code; // 'Cyrl'
cyrl.numeric; // '220'
code(string code)The same as the main exported factory function.
const { code } = require('@konfirm/iso15924');
const cyrl = code('Cyrl');
cyrl.code; // 'Cyrl'
cyrl.numeric; // '220'
numeric(string|number numeric)Obtain the ISO15924 instance by its numeric code;
const { numeric } = require('@konfirm/iso15924');
const cyrl = numeric('220');
cyrl.code; // 'Cyrl'
cyrl.numeric; // '220'
| code | numeric | description |
|---|---|---|
Adlm | 166 | Adlam |
Afak | 439 | Afaka |
Aghb | 239 | Caucasian Albanian |
Ahom | 338 | Ahom, Tai Ahom |
Arab | 160 | Arabic |
Aran | 161 | Arabic (Nastaliq variant) |
Armi | 124 | Imperial Aramaic |
Armn | 230 | Armenian |
Avst | 134 | Avestan |
Bali | 360 | Balinese |
Bamu | 435 | Bamum |
Bass | 259 | Bassa Vah |
Batk | 365 | Batak |
Beng | 325 | Bengali (Bangla) |
Bhks | 334 | Bhaiksuki |
Blis | 550 | Blissymbols |
Bopo | 285 | Bopomofo |
Brah | 300 | Brahmi |
Brai | 570 | Braille |
Bugi | 367 | Buginese |
Buhd | 372 | Buhid |
Cakm | 349 | Chakma |
Cans | 440 | Unified Canadian Aboriginal Syllabics |
Cari | 201 | Carian |
Cham | 358 | Cham |
Cher | 445 | Cherokee |
Chrs | 109 | Chorasmian |
Cirt | 291 | Cirth |
Copt | 204 | Coptic |
Cpmn | 402 | Cypro-Minoan |
Cprt | 403 | Cypriot syllabary |
Cyrl | 220 | Cyrillic |
Cyrs | 221 | Cyrillic (Old Church Slavonic variant) |
Deva | 315 | Devanagari (Nagari) |
Diak | 342 | Dives Akuru |
Dogr | 328 | Dogra |
Dsrt | 250 | Deseret (Mormon) |
Dupl | 755 | Duployan shorthand, Duployan stenography |
Egyd | 070 | Egyptian demotic |
Egyh | 060 | Egyptian hieratic |
Egyp | 050 | Egyptian hieroglyphs |
Elba | 226 | Elbasan |
Elym | 128 | Elymaic |
Ethi | 430 | Ethiopic (GeĘťez) |
Geok | 241 | Khutsuri (Asomtavruli and Nuskhuri) |
Geor | 240 | Georgian (Mkhedruli and Mtavruli) |
Glag | 225 | Glagolitic |
Gong | 312 | Gunjala Gondi |
Gonm | 313 | Masaram Gondi |
Goth | 206 | Gothic |
Gran | 343 | Grantha |
Grek | 200 | Greek |
Gujr | 320 | Gujarati |
Guru | 310 | Gurmukhi |
Hanb | 503 | Han with Bopomofo |
Hang | 286 | Hangul (HangĹl, Hangeul) |
Hani | 500 | Han (Hanzi, Kanji, Hanja) |
Hano | 371 | Hanunoo (HanunĂło) |
Hans | 501 | Han (Simplified variant) |
Hant | 502 | Han (Traditional variant) |
Hatr | 127 | Hatran |
Hebr | 125 | Hebrew |
Hira | 410 | Hiragana |
Hluw | 080 | Anatolian Hieroglyphs (Luwian Hieroglyphs, Hittite Hieroglyphs) |
Hmng | 450 | Pahawh Hmong |
Hmnp | 451 | Nyiakeng Puachue Hmong |
Hrkt | 412 | Japanese syllabaries |
Hung | 176 | Old Hungarian (Hungarian Runic) |
Inds | 610 | Indus (Harappan) |
Ital | 210 | Old Italic (Etruscan, Oscan, etc.) |
Jamo | 284 | Jamo |
Java | 361 | Javanese |
Jpan | 413 | Japanese |
Jurc | 510 | Jurchen |
Kali | 357 | Kayah Li |
Kana | 411 | Katakana |
Khar | 305 | Kharoshthi |
Khmr | 355 | Khmer |
Khoj | 322 | Khojki |
Kitl | 505 | Khitan large script |
Kits | 288 | Khitan small script |
Knda | 345 | Kannada |
Kore | 287 | Korean |
Kpel | 436 | Kpelle |
Kthi | 317 | Kaithi |
Lana | 351 | Tai Tham (Lanna) |
Laoo | 356 | Lao |
Latf | 217 | Latin (Fraktur variant) |
Latg | 216 | Latin (Gaelic variant) |
Latn | 215 | Latin |
Leke | 364 | Leke |
Lepc | 335 | Lepcha (RĂłng) |
Limb | 336 | Limbu |
Lina | 400 | Linear A |
Linb | 401 | Linear B |
Lisu | 399 | Lisu (Fraser) |
Loma | 437 | Loma |
Lyci | 202 | Lycian |
Lydi | 116 | Lydian |
Mahj | 314 | Mahajani |
Maka | 366 | Makasar |
Mand | 140 | Mandaic, Mandaean |
Mani | 139 | Manichaean |
Marc | 332 | Marchen |
Maya | 090 | Mayan hieroglyphs |
Medf | 265 | Medefaidrin (Oberi Okaime, Oberi ĆkaimÉ) |
Mend | 438 | Mende Kikakui |
Merc | 101 | Meroitic Cursive |
Mero | 100 | Meroitic Hieroglyphs |
Mlym | 347 | Malayalam |
Modi | 324 | Modi, Moá¸ÄŤ |
Mong | 145 | Mongolian |
Moon | 218 | Moon (Moon code, Moon script, Moon type) |
Mroo | 264 | Mro, Mru |
Mtei | 337 | Meitei Mayek (Meithei, Meetei) |
Mult | 323 | Multani |
Mymr | 350 | Myanmar (Burmese) |
Nand | 311 | Nandinagari |
Narb | 106 | Old North Arabian (Ancient North Arabian) |
Nbat | 159 | Nabataean |
Newa | 333 | Newa, Newar, Newari, NepÄla lipi |
Nkdb | 085 | Naxi Dongba (na²šÉi³³ to³³ba²š, Nakhi Tomba) |
Nkgb | 420 | Naxi Geba (na²šÉi³³ gƲšba²š, 'Na-'Khi ²GgĹ-šbaw, Nakhi Geba) |
Nkoo | 165 | NâKo |
Nshu | 499 | NĂźshu |
Ogam | 212 | Ogham |
Olck | 261 | Ol Chiki (Ol Cemetâ, Ol, Santali) |
Orkh | 175 | Old Turkic, Orkhon Runic |
Orya | 327 | Oriya (Odia) |
Osge | 219 | Osage |
Osma | 260 | Osmanya |
Palm | 126 | Palmyrene |
Pauc | 263 | Pau Cin Hau |
Perm | 227 | Old Permic |
Phag | 331 | Phags-pa |
Phli | 131 | Inscriptional Pahlavi |
Phlp | 132 | Psalter Pahlavi |
Phlv | 133 | Book Pahlavi |
Phnx | 115 | Phoenician |
Piqd | 293 | Klingon (KLI pIqaD) |
Plrd | 282 | Miao (Pollard) |
Prti | 130 | Inscriptional Parthian |
Qaaa | 900 | Reserved for private use (start) |
Qaab | 901 | Codes reserved for private use |
Qaac | 902 | Codes reserved for private use |
Qaad | 903 | Codes reserved for private use |
Qaae | 904 | Codes reserved for private use |
Qaaf | 905 | Codes reserved for private use |
Qaag | 906 | Codes reserved for private use |
Qaah | 907 | Codes reserved for private use |
Qaai | 908 | Codes reserved for private use |
Qaaj | 909 | Codes reserved for private use |
Qaak | 910 | Codes reserved for private use |
Qaal | 911 | Codes reserved for private use |
Qaam | 912 | Codes reserved for private use |
Qaan | 913 | Codes reserved for private use |
Qaao | 914 | Codes reserved for private use |
Qaap | 915 | Codes reserved for private use |
Qaaq | 916 | Codes reserved for private use |
Qaar | 917 | Codes reserved for private use |
Qaas | 918 | Codes reserved for private use |
Qaat | 919 | Codes reserved for private use |
Qaau | 920 | Codes reserved for private use |
Qaav | 921 | Codes reserved for private use |
Qaaw | 922 | Codes reserved for private use |
Qaax | 923 | Codes reserved for private use |
Qaay | 924 | Codes reserved for private use |
Qaaz | 925 | Codes reserved for private use |
Qaba | 926 | Codes reserved for private use |
Qabb | 927 | Codes reserved for private use |
Qabc | 928 | Codes reserved for private use |
Qabd | 929 | Codes reserved for private use |
Qabe | 930 | Codes reserved for private use |
Qabf | 931 | Codes reserved for private use |
Qabg | 932 | Codes reserved for private use |
Qabh | 933 | Codes reserved for private use |
Qabi | 934 | Codes reserved for private use |
Qabj | 935 | Codes reserved for private use |
Qabk | 936 | Codes reserved for private use |
Qabl | 937 | Codes reserved for private use |
Qabm | 938 | Codes reserved for private use |
Qabn | 939 | Codes reserved for private use |
Qabo | 940 | Codes reserved for private use |
Qabp | 941 | Codes reserved for private use |
Qabq | 942 | Codes reserved for private use |
Qabr | 943 | Codes reserved for private use |
Qabs | 944 | Codes reserved for private use |
Qabt | 945 | Codes reserved for private use |
Qabu | 946 | Codes reserved for private use |
Qabv | 947 | Codes reserved for private use |
Qabw | 948 | Codes reserved for private use |
Qabx | 949 | Reserved for private use (end) |
Rjng | 363 | Rejang (Redjang, Kaganga) |
Rohg | 167 | Hanifi Rohingya |
Root | RESERVED | Reserved for the language-neutral base of the CLDR locale tree |
Roro | 620 | Rongorongo |
Runr | 211 | Runic |
Samr | 123 | Samaritan |
Sara | 292 | Sarati |
Sarb | 105 | Old South Arabian |
Saur | 344 | Saurashtra |
Sgnw | 095 | SignWriting |
Shaw | 281 | Shavian (Shaw) |
Shrd | 319 | Sharada, ĹÄradÄ |
Shui | 530 | Shuishu |
Sidd | 302 | Siddham, Siddhaáš, SiddhamÄtáškÄ |
Sind | 318 | Khudawadi, Sindhi |
Sinh | 348 | Sinhala |
Sogd | 141 | Sogdian |
Sogo | 142 | Old Sogdian |
Sora | 398 | Sora Sompeng |
Soyo | 329 | Soyombo |
Sund | 362 | Sundanese |
Sylo | 316 | Syloti Nagri |
Syrc | 135 | Syriac |
Syre | 138 | Syriac (Estrangelo variant) |
Syrj | 137 | Syriac (Western variant) |
Syrn | 136 | Syriac (Eastern variant) |
Tagb | 373 | Tagbanwa |
Takr | 321 | Takri, ᚏÄkrÄŤ, ᚏÄáš krÄŤ |
Tale | 353 | Tai Le |
Talu | 354 | New Tai Lue |
Taml | 346 | Tamil |
Tang | 520 | Tangut |
Tavt | 359 | Tai Viet |
Telu | 340 | Telugu |
Teng | 290 | Tengwar |
Tfng | 120 | Tifinagh (Berber) |
Tglg | 370 | Tagalog (Baybayin, Alibata) |
Thaa | 170 | Thaana |
Thai | 352 | Thai |
Tibt | 330 | Tibetan |
Tirh | 326 | Tirhuta |
True | RESERVED | Reserved for the boolean value true |
Ugar | 040 | Ugaritic |
Vaii | 470 | Vai |
Visp | 280 | Visible Speech |
Wara | 262 | Warang Citi (Varang Kshiti) |
Wcho | 283 | Wancho |
Wole | 480 | Woleai |
Xpeo | 030 | Old Persian |
Xsux | 020 | Cuneiform, Sumero-Akkadian |
Yezi | 192 | Yezidi |
Yiii | 460 | Yi |
Zanb | 339 | Zanabazar Square (Zanabazarin DĂśrbĂśljin Useg, Xewtee DĂśrbĂśljin Bicig, Horizontal Square Script) |
Zinh | 994 | Code for inherited script |
Zmth | 995 | Mathematical notation |
Zsye | 993 | Symbols (Emoji variant) |
Zsym | 996 | Symbols |
Zxxx | 997 | Code for unwritten documents |
Zyyy | 998 | Code for undetermined script |
Zzzz | 999 | Code for uncoded script |
ISO15924 APIThe ISO15924 instances are designed to be immutable and provide only basic information
| name | type | description |
|---|---|---|
code | string | The alphabetic code |
numeric | string | The numeric code |
All ISO15924 instances allow to be cast in several shapes
| name | type | description |
|---|---|---|
toString | string | Cast the instance into its string representation |
toJSON | string | Cast the instance into its JSON-able representation (string) |
valueOf | number | Cast the instance into a real number (0 for the reserved ones), note that this will lose the 0-padding on the left |
MIT License Copyright (c) 2019 Rogier Spieker (Konfirm)
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
FAQs
Implementation of ISO 15924:2004, codes for presentations of names of scripts
We found that @konfirm/iso15924 demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Socket CEO Feross Aboukhadijeh shares lessons from scaling a developer security startup to 10,000+ organizations in this founder interview.

Research
Socket Threat Research maps a rare inside look at OtterCookieâs npm-Vercel-GitHub chain, adding 197 malicious packages and evidence of North Korean operators.

Research
Socket researchers identified a malicious Chrome extension that manipulates Raydium swaps to inject an undisclosed SOL transfer, quietly routing fees to an attacker wallet.