Index: frontend/node_modules/unicode-match-property-value-ecmascript/LICENSE-MIT.txt
===================================================================
--- frontend/node_modules/unicode-match-property-value-ecmascript/LICENSE-MIT.txt	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/unicode-match-property-value-ecmascript/LICENSE-MIT.txt	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,20 @@
+Copyright Mathias Bynens <https://mathiasbynens.be/>
+
+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.
Index: frontend/node_modules/unicode-match-property-value-ecmascript/README.md
===================================================================
--- frontend/node_modules/unicode-match-property-value-ecmascript/README.md	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/unicode-match-property-value-ecmascript/README.md	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,72 @@
+# unicode-match-property-value-ecmascript [![unicode-match-property-value-ecmascript on npm](https://img.shields.io/npm/v/unicode-match-property-value-ecmascript)](https://www.npmjs.com/package/unicode-match-property-value-ecmascript)
+
+_unicode-match-property-value-ecmascript_ matches a given Unicode property value or [property value alias](https://github.com/mathiasbynens/unicode-property-value-aliases) to its canonical property value without applying [loose matching](https://github.com/mathiasbynens/unicode-loose-match), per the algorithm used for [RegExp Unicode property escapes in ECMAScript](https://github.com/tc39/proposal-regexp-unicode-property-escapes). Consider it a strict alternative to loose matching.
+
+## Installation
+
+To use _unicode-match-property-value-ecmascript_ programmatically, install it as a dependency via [npm](https://www.npmjs.com/):
+
+```bash
+$ npm install unicode-match-property-value-ecmascript
+```
+
+Then, `require` it:
+
+```js
+const matchPropertyValue = require('unicode-match-property-value-ecmascript');
+```
+
+## API
+
+This module exports a single function named `matchPropertyValue`.
+
+### `matchPropertyValue(property, value)`
+
+This function takes a string `property` that is a canonical/unaliased Unicode property name, and a string `value`. It attemps to  match `value` to a canonical Unicode property value for the given property. If there’s a match, it returns the canonical property value. Otherwise, it throws an exception.
+
+```js
+// Find the canonical property value:
+matchPropertyValue('Script_Extensions', 'Aghb')
+// → 'Caucasian_Albanian'
+
+matchPropertyValue('Script_Extensions', 'Caucasian_Albanian')
+// → 'Caucasian_Albanian'
+
+matchPropertyValue('script_extensions', 'Caucasian_Albanian') // Note: incorrect casing.
+// → throws
+
+matchPropertyValue('Script_Extensions', 'caucasian_albanian') // Note: incorrect casing.
+// → throws
+```
+
+## For maintainers
+
+### How to publish a new release
+
+1. On the `main` branch, bump the version number in `package.json`:
+
+    ```sh
+    npm version patch -m 'Release v%s'
+    ```
+
+    Instead of `patch`, use `minor` or `major` [as needed](https://semver.org/).
+
+    Note that this produces a Git commit + tag.
+
+1. Push the release commit and tag:
+
+    ```sh
+    git push && git push --tags
+    ```
+
+    Our CI then automatically publishes the new release to npm.
+
+## Author
+
+| [![twitter/mathias](https://gravatar.com/avatar/24e08a9ea84deb17ae121074d0f17125?s=70)](https://twitter.com/mathias "Follow @mathias on Twitter") |
+|---|
+| [Mathias Bynens](https://mathiasbynens.be/) |
+
+## License
+
+_unicode-match-property-value-ecmascript_ is available under the [MIT](https://mths.be/mit) license.
Index: frontend/node_modules/unicode-match-property-value-ecmascript/data/mappings.js
===================================================================
--- frontend/node_modules/unicode-match-property-value-ecmascript/data/mappings.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/unicode-match-property-value-ecmascript/data/mappings.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,780 @@
+module.exports = new Map([
+	['General_Category', new Map([
+		['C', 'Other'],
+		['Cc', 'Control'],
+		['cntrl', 'Control'],
+		['Cf', 'Format'],
+		['Cn', 'Unassigned'],
+		['Co', 'Private_Use'],
+		['Cs', 'Surrogate'],
+		['L', 'Letter'],
+		['LC', 'Cased_Letter'],
+		['Ll', 'Lowercase_Letter'],
+		['Lm', 'Modifier_Letter'],
+		['Lo', 'Other_Letter'],
+		['Lt', 'Titlecase_Letter'],
+		['Lu', 'Uppercase_Letter'],
+		['M', 'Mark'],
+		['Combining_Mark', 'Mark'],
+		['Mc', 'Spacing_Mark'],
+		['Me', 'Enclosing_Mark'],
+		['Mn', 'Nonspacing_Mark'],
+		['N', 'Number'],
+		['Nd', 'Decimal_Number'],
+		['digit', 'Decimal_Number'],
+		['Nl', 'Letter_Number'],
+		['No', 'Other_Number'],
+		['P', 'Punctuation'],
+		['punct', 'Punctuation'],
+		['Pc', 'Connector_Punctuation'],
+		['Pd', 'Dash_Punctuation'],
+		['Pe', 'Close_Punctuation'],
+		['Pf', 'Final_Punctuation'],
+		['Pi', 'Initial_Punctuation'],
+		['Po', 'Other_Punctuation'],
+		['Ps', 'Open_Punctuation'],
+		['S', 'Symbol'],
+		['Sc', 'Currency_Symbol'],
+		['Sk', 'Modifier_Symbol'],
+		['Sm', 'Math_Symbol'],
+		['So', 'Other_Symbol'],
+		['Z', 'Separator'],
+		['Zl', 'Line_Separator'],
+		['Zp', 'Paragraph_Separator'],
+		['Zs', 'Space_Separator'],
+		['Other', 'Other'],
+		['Control', 'Control'],
+		['Format', 'Format'],
+		['Unassigned', 'Unassigned'],
+		['Private_Use', 'Private_Use'],
+		['Surrogate', 'Surrogate'],
+		['Letter', 'Letter'],
+		['Cased_Letter', 'Cased_Letter'],
+		['Lowercase_Letter', 'Lowercase_Letter'],
+		['Modifier_Letter', 'Modifier_Letter'],
+		['Other_Letter', 'Other_Letter'],
+		['Titlecase_Letter', 'Titlecase_Letter'],
+		['Uppercase_Letter', 'Uppercase_Letter'],
+		['Mark', 'Mark'],
+		['Spacing_Mark', 'Spacing_Mark'],
+		['Enclosing_Mark', 'Enclosing_Mark'],
+		['Nonspacing_Mark', 'Nonspacing_Mark'],
+		['Number', 'Number'],
+		['Decimal_Number', 'Decimal_Number'],
+		['Letter_Number', 'Letter_Number'],
+		['Other_Number', 'Other_Number'],
+		['Punctuation', 'Punctuation'],
+		['Connector_Punctuation', 'Connector_Punctuation'],
+		['Dash_Punctuation', 'Dash_Punctuation'],
+		['Close_Punctuation', 'Close_Punctuation'],
+		['Final_Punctuation', 'Final_Punctuation'],
+		['Initial_Punctuation', 'Initial_Punctuation'],
+		['Other_Punctuation', 'Other_Punctuation'],
+		['Open_Punctuation', 'Open_Punctuation'],
+		['Symbol', 'Symbol'],
+		['Currency_Symbol', 'Currency_Symbol'],
+		['Modifier_Symbol', 'Modifier_Symbol'],
+		['Math_Symbol', 'Math_Symbol'],
+		['Other_Symbol', 'Other_Symbol'],
+		['Separator', 'Separator'],
+		['Line_Separator', 'Line_Separator'],
+		['Paragraph_Separator', 'Paragraph_Separator'],
+		['Space_Separator', 'Space_Separator']
+	])],
+	['Script', new Map([
+		['Adlm', 'Adlam'],
+		['Aghb', 'Caucasian_Albanian'],
+		['Ahom', 'Ahom'],
+		['Arab', 'Arabic'],
+		['Armi', 'Imperial_Aramaic'],
+		['Armn', 'Armenian'],
+		['Avst', 'Avestan'],
+		['Bali', 'Balinese'],
+		['Bamu', 'Bamum'],
+		['Bass', 'Bassa_Vah'],
+		['Batk', 'Batak'],
+		['Beng', 'Bengali'],
+		['Berf', 'Beria_Erfe'],
+		['Bhks', 'Bhaiksuki'],
+		['Bopo', 'Bopomofo'],
+		['Brah', 'Brahmi'],
+		['Brai', 'Braille'],
+		['Bugi', 'Buginese'],
+		['Buhd', 'Buhid'],
+		['Cakm', 'Chakma'],
+		['Cans', 'Canadian_Aboriginal'],
+		['Cari', 'Carian'],
+		['Cham', 'Cham'],
+		['Cher', 'Cherokee'],
+		['Chrs', 'Chorasmian'],
+		['Copt', 'Coptic'],
+		['Qaac', 'Coptic'],
+		['Cpmn', 'Cypro_Minoan'],
+		['Cprt', 'Cypriot'],
+		['Cyrl', 'Cyrillic'],
+		['Deva', 'Devanagari'],
+		['Diak', 'Dives_Akuru'],
+		['Dogr', 'Dogra'],
+		['Dsrt', 'Deseret'],
+		['Dupl', 'Duployan'],
+		['Egyp', 'Egyptian_Hieroglyphs'],
+		['Elba', 'Elbasan'],
+		['Elym', 'Elymaic'],
+		['Ethi', 'Ethiopic'],
+		['Gara', 'Garay'],
+		['Geor', 'Georgian'],
+		['Glag', 'Glagolitic'],
+		['Gong', 'Gunjala_Gondi'],
+		['Gonm', 'Masaram_Gondi'],
+		['Goth', 'Gothic'],
+		['Gran', 'Grantha'],
+		['Grek', 'Greek'],
+		['Gujr', 'Gujarati'],
+		['Gukh', 'Gurung_Khema'],
+		['Guru', 'Gurmukhi'],
+		['Hang', 'Hangul'],
+		['Hani', 'Han'],
+		['Hano', 'Hanunoo'],
+		['Hatr', 'Hatran'],
+		['Hebr', 'Hebrew'],
+		['Hira', 'Hiragana'],
+		['Hluw', 'Anatolian_Hieroglyphs'],
+		['Hmng', 'Pahawh_Hmong'],
+		['Hmnp', 'Nyiakeng_Puachue_Hmong'],
+		['Hrkt', 'Katakana_Or_Hiragana'],
+		['Hung', 'Old_Hungarian'],
+		['Ital', 'Old_Italic'],
+		['Java', 'Javanese'],
+		['Kali', 'Kayah_Li'],
+		['Kana', 'Katakana'],
+		['Kawi', 'Kawi'],
+		['Khar', 'Kharoshthi'],
+		['Khmr', 'Khmer'],
+		['Khoj', 'Khojki'],
+		['Kits', 'Khitan_Small_Script'],
+		['Knda', 'Kannada'],
+		['Krai', 'Kirat_Rai'],
+		['Kthi', 'Kaithi'],
+		['Lana', 'Tai_Tham'],
+		['Laoo', 'Lao'],
+		['Latn', 'Latin'],
+		['Lepc', 'Lepcha'],
+		['Limb', 'Limbu'],
+		['Lina', 'Linear_A'],
+		['Linb', 'Linear_B'],
+		['Lisu', 'Lisu'],
+		['Lyci', 'Lycian'],
+		['Lydi', 'Lydian'],
+		['Mahj', 'Mahajani'],
+		['Maka', 'Makasar'],
+		['Mand', 'Mandaic'],
+		['Mani', 'Manichaean'],
+		['Marc', 'Marchen'],
+		['Medf', 'Medefaidrin'],
+		['Mend', 'Mende_Kikakui'],
+		['Merc', 'Meroitic_Cursive'],
+		['Mero', 'Meroitic_Hieroglyphs'],
+		['Mlym', 'Malayalam'],
+		['Modi', 'Modi'],
+		['Mong', 'Mongolian'],
+		['Mroo', 'Mro'],
+		['Mtei', 'Meetei_Mayek'],
+		['Mult', 'Multani'],
+		['Mymr', 'Myanmar'],
+		['Nagm', 'Nag_Mundari'],
+		['Nand', 'Nandinagari'],
+		['Narb', 'Old_North_Arabian'],
+		['Nbat', 'Nabataean'],
+		['Newa', 'Newa'],
+		['Nkoo', 'Nko'],
+		['Nshu', 'Nushu'],
+		['Ogam', 'Ogham'],
+		['Olck', 'Ol_Chiki'],
+		['Onao', 'Ol_Onal'],
+		['Orkh', 'Old_Turkic'],
+		['Orya', 'Oriya'],
+		['Osge', 'Osage'],
+		['Osma', 'Osmanya'],
+		['Ougr', 'Old_Uyghur'],
+		['Palm', 'Palmyrene'],
+		['Pauc', 'Pau_Cin_Hau'],
+		['Perm', 'Old_Permic'],
+		['Phag', 'Phags_Pa'],
+		['Phli', 'Inscriptional_Pahlavi'],
+		['Phlp', 'Psalter_Pahlavi'],
+		['Phnx', 'Phoenician'],
+		['Plrd', 'Miao'],
+		['Prti', 'Inscriptional_Parthian'],
+		['Rjng', 'Rejang'],
+		['Rohg', 'Hanifi_Rohingya'],
+		['Runr', 'Runic'],
+		['Samr', 'Samaritan'],
+		['Sarb', 'Old_South_Arabian'],
+		['Saur', 'Saurashtra'],
+		['Sgnw', 'SignWriting'],
+		['Shaw', 'Shavian'],
+		['Shrd', 'Sharada'],
+		['Sidd', 'Siddham'],
+		['Sidt', 'Sidetic'],
+		['Sind', 'Khudawadi'],
+		['Sinh', 'Sinhala'],
+		['Sogd', 'Sogdian'],
+		['Sogo', 'Old_Sogdian'],
+		['Sora', 'Sora_Sompeng'],
+		['Soyo', 'Soyombo'],
+		['Sund', 'Sundanese'],
+		['Sunu', 'Sunuwar'],
+		['Sylo', 'Syloti_Nagri'],
+		['Syrc', 'Syriac'],
+		['Tagb', 'Tagbanwa'],
+		['Takr', 'Takri'],
+		['Tale', 'Tai_Le'],
+		['Talu', 'New_Tai_Lue'],
+		['Taml', 'Tamil'],
+		['Tang', 'Tangut'],
+		['Tavt', 'Tai_Viet'],
+		['Tayo', 'Tai_Yo'],
+		['Telu', 'Telugu'],
+		['Tfng', 'Tifinagh'],
+		['Tglg', 'Tagalog'],
+		['Thaa', 'Thaana'],
+		['Thai', 'Thai'],
+		['Tibt', 'Tibetan'],
+		['Tirh', 'Tirhuta'],
+		['Tnsa', 'Tangsa'],
+		['Todr', 'Todhri'],
+		['Tols', 'Tolong_Siki'],
+		['Toto', 'Toto'],
+		['Tutg', 'Tulu_Tigalari'],
+		['Ugar', 'Ugaritic'],
+		['Vaii', 'Vai'],
+		['Vith', 'Vithkuqi'],
+		['Wara', 'Warang_Citi'],
+		['Wcho', 'Wancho'],
+		['Xpeo', 'Old_Persian'],
+		['Xsux', 'Cuneiform'],
+		['Yezi', 'Yezidi'],
+		['Yiii', 'Yi'],
+		['Zanb', 'Zanabazar_Square'],
+		['Zinh', 'Inherited'],
+		['Qaai', 'Inherited'],
+		['Zyyy', 'Common'],
+		['Zzzz', 'Unknown'],
+		['Adlam', 'Adlam'],
+		['Caucasian_Albanian', 'Caucasian_Albanian'],
+		['Arabic', 'Arabic'],
+		['Imperial_Aramaic', 'Imperial_Aramaic'],
+		['Armenian', 'Armenian'],
+		['Avestan', 'Avestan'],
+		['Balinese', 'Balinese'],
+		['Bamum', 'Bamum'],
+		['Bassa_Vah', 'Bassa_Vah'],
+		['Batak', 'Batak'],
+		['Bengali', 'Bengali'],
+		['Beria_Erfe', 'Beria_Erfe'],
+		['Bhaiksuki', 'Bhaiksuki'],
+		['Bopomofo', 'Bopomofo'],
+		['Brahmi', 'Brahmi'],
+		['Braille', 'Braille'],
+		['Buginese', 'Buginese'],
+		['Buhid', 'Buhid'],
+		['Chakma', 'Chakma'],
+		['Canadian_Aboriginal', 'Canadian_Aboriginal'],
+		['Carian', 'Carian'],
+		['Cherokee', 'Cherokee'],
+		['Chorasmian', 'Chorasmian'],
+		['Coptic', 'Coptic'],
+		['Cypro_Minoan', 'Cypro_Minoan'],
+		['Cypriot', 'Cypriot'],
+		['Cyrillic', 'Cyrillic'],
+		['Devanagari', 'Devanagari'],
+		['Dives_Akuru', 'Dives_Akuru'],
+		['Dogra', 'Dogra'],
+		['Deseret', 'Deseret'],
+		['Duployan', 'Duployan'],
+		['Egyptian_Hieroglyphs', 'Egyptian_Hieroglyphs'],
+		['Elbasan', 'Elbasan'],
+		['Elymaic', 'Elymaic'],
+		['Ethiopic', 'Ethiopic'],
+		['Garay', 'Garay'],
+		['Georgian', 'Georgian'],
+		['Glagolitic', 'Glagolitic'],
+		['Gunjala_Gondi', 'Gunjala_Gondi'],
+		['Masaram_Gondi', 'Masaram_Gondi'],
+		['Gothic', 'Gothic'],
+		['Grantha', 'Grantha'],
+		['Greek', 'Greek'],
+		['Gujarati', 'Gujarati'],
+		['Gurung_Khema', 'Gurung_Khema'],
+		['Gurmukhi', 'Gurmukhi'],
+		['Hangul', 'Hangul'],
+		['Han', 'Han'],
+		['Hanunoo', 'Hanunoo'],
+		['Hatran', 'Hatran'],
+		['Hebrew', 'Hebrew'],
+		['Hiragana', 'Hiragana'],
+		['Anatolian_Hieroglyphs', 'Anatolian_Hieroglyphs'],
+		['Pahawh_Hmong', 'Pahawh_Hmong'],
+		['Nyiakeng_Puachue_Hmong', 'Nyiakeng_Puachue_Hmong'],
+		['Katakana_Or_Hiragana', 'Katakana_Or_Hiragana'],
+		['Old_Hungarian', 'Old_Hungarian'],
+		['Old_Italic', 'Old_Italic'],
+		['Javanese', 'Javanese'],
+		['Kayah_Li', 'Kayah_Li'],
+		['Katakana', 'Katakana'],
+		['Kharoshthi', 'Kharoshthi'],
+		['Khmer', 'Khmer'],
+		['Khojki', 'Khojki'],
+		['Khitan_Small_Script', 'Khitan_Small_Script'],
+		['Kannada', 'Kannada'],
+		['Kirat_Rai', 'Kirat_Rai'],
+		['Kaithi', 'Kaithi'],
+		['Tai_Tham', 'Tai_Tham'],
+		['Lao', 'Lao'],
+		['Latin', 'Latin'],
+		['Lepcha', 'Lepcha'],
+		['Limbu', 'Limbu'],
+		['Linear_A', 'Linear_A'],
+		['Linear_B', 'Linear_B'],
+		['Lycian', 'Lycian'],
+		['Lydian', 'Lydian'],
+		['Mahajani', 'Mahajani'],
+		['Makasar', 'Makasar'],
+		['Mandaic', 'Mandaic'],
+		['Manichaean', 'Manichaean'],
+		['Marchen', 'Marchen'],
+		['Medefaidrin', 'Medefaidrin'],
+		['Mende_Kikakui', 'Mende_Kikakui'],
+		['Meroitic_Cursive', 'Meroitic_Cursive'],
+		['Meroitic_Hieroglyphs', 'Meroitic_Hieroglyphs'],
+		['Malayalam', 'Malayalam'],
+		['Mongolian', 'Mongolian'],
+		['Mro', 'Mro'],
+		['Meetei_Mayek', 'Meetei_Mayek'],
+		['Multani', 'Multani'],
+		['Myanmar', 'Myanmar'],
+		['Nag_Mundari', 'Nag_Mundari'],
+		['Nandinagari', 'Nandinagari'],
+		['Old_North_Arabian', 'Old_North_Arabian'],
+		['Nabataean', 'Nabataean'],
+		['Nko', 'Nko'],
+		['Nushu', 'Nushu'],
+		['Ogham', 'Ogham'],
+		['Ol_Chiki', 'Ol_Chiki'],
+		['Ol_Onal', 'Ol_Onal'],
+		['Old_Turkic', 'Old_Turkic'],
+		['Oriya', 'Oriya'],
+		['Osage', 'Osage'],
+		['Osmanya', 'Osmanya'],
+		['Old_Uyghur', 'Old_Uyghur'],
+		['Palmyrene', 'Palmyrene'],
+		['Pau_Cin_Hau', 'Pau_Cin_Hau'],
+		['Old_Permic', 'Old_Permic'],
+		['Phags_Pa', 'Phags_Pa'],
+		['Inscriptional_Pahlavi', 'Inscriptional_Pahlavi'],
+		['Psalter_Pahlavi', 'Psalter_Pahlavi'],
+		['Phoenician', 'Phoenician'],
+		['Miao', 'Miao'],
+		['Inscriptional_Parthian', 'Inscriptional_Parthian'],
+		['Rejang', 'Rejang'],
+		['Hanifi_Rohingya', 'Hanifi_Rohingya'],
+		['Runic', 'Runic'],
+		['Samaritan', 'Samaritan'],
+		['Old_South_Arabian', 'Old_South_Arabian'],
+		['Saurashtra', 'Saurashtra'],
+		['SignWriting', 'SignWriting'],
+		['Shavian', 'Shavian'],
+		['Sharada', 'Sharada'],
+		['Siddham', 'Siddham'],
+		['Sidetic', 'Sidetic'],
+		['Khudawadi', 'Khudawadi'],
+		['Sinhala', 'Sinhala'],
+		['Sogdian', 'Sogdian'],
+		['Old_Sogdian', 'Old_Sogdian'],
+		['Sora_Sompeng', 'Sora_Sompeng'],
+		['Soyombo', 'Soyombo'],
+		['Sundanese', 'Sundanese'],
+		['Sunuwar', 'Sunuwar'],
+		['Syloti_Nagri', 'Syloti_Nagri'],
+		['Syriac', 'Syriac'],
+		['Tagbanwa', 'Tagbanwa'],
+		['Takri', 'Takri'],
+		['Tai_Le', 'Tai_Le'],
+		['New_Tai_Lue', 'New_Tai_Lue'],
+		['Tamil', 'Tamil'],
+		['Tangut', 'Tangut'],
+		['Tai_Viet', 'Tai_Viet'],
+		['Tai_Yo', 'Tai_Yo'],
+		['Telugu', 'Telugu'],
+		['Tifinagh', 'Tifinagh'],
+		['Tagalog', 'Tagalog'],
+		['Thaana', 'Thaana'],
+		['Tibetan', 'Tibetan'],
+		['Tirhuta', 'Tirhuta'],
+		['Tangsa', 'Tangsa'],
+		['Todhri', 'Todhri'],
+		['Tolong_Siki', 'Tolong_Siki'],
+		['Tulu_Tigalari', 'Tulu_Tigalari'],
+		['Ugaritic', 'Ugaritic'],
+		['Vai', 'Vai'],
+		['Vithkuqi', 'Vithkuqi'],
+		['Warang_Citi', 'Warang_Citi'],
+		['Wancho', 'Wancho'],
+		['Old_Persian', 'Old_Persian'],
+		['Cuneiform', 'Cuneiform'],
+		['Yezidi', 'Yezidi'],
+		['Yi', 'Yi'],
+		['Zanabazar_Square', 'Zanabazar_Square'],
+		['Inherited', 'Inherited'],
+		['Common', 'Common'],
+		['Unknown', 'Unknown']
+	])],
+	['Script_Extensions', new Map([
+		['Adlm', 'Adlam'],
+		['Aghb', 'Caucasian_Albanian'],
+		['Ahom', 'Ahom'],
+		['Arab', 'Arabic'],
+		['Armi', 'Imperial_Aramaic'],
+		['Armn', 'Armenian'],
+		['Avst', 'Avestan'],
+		['Bali', 'Balinese'],
+		['Bamu', 'Bamum'],
+		['Bass', 'Bassa_Vah'],
+		['Batk', 'Batak'],
+		['Beng', 'Bengali'],
+		['Berf', 'Beria_Erfe'],
+		['Bhks', 'Bhaiksuki'],
+		['Bopo', 'Bopomofo'],
+		['Brah', 'Brahmi'],
+		['Brai', 'Braille'],
+		['Bugi', 'Buginese'],
+		['Buhd', 'Buhid'],
+		['Cakm', 'Chakma'],
+		['Cans', 'Canadian_Aboriginal'],
+		['Cari', 'Carian'],
+		['Cham', 'Cham'],
+		['Cher', 'Cherokee'],
+		['Chrs', 'Chorasmian'],
+		['Copt', 'Coptic'],
+		['Qaac', 'Coptic'],
+		['Cpmn', 'Cypro_Minoan'],
+		['Cprt', 'Cypriot'],
+		['Cyrl', 'Cyrillic'],
+		['Deva', 'Devanagari'],
+		['Diak', 'Dives_Akuru'],
+		['Dogr', 'Dogra'],
+		['Dsrt', 'Deseret'],
+		['Dupl', 'Duployan'],
+		['Egyp', 'Egyptian_Hieroglyphs'],
+		['Elba', 'Elbasan'],
+		['Elym', 'Elymaic'],
+		['Ethi', 'Ethiopic'],
+		['Gara', 'Garay'],
+		['Geor', 'Georgian'],
+		['Glag', 'Glagolitic'],
+		['Gong', 'Gunjala_Gondi'],
+		['Gonm', 'Masaram_Gondi'],
+		['Goth', 'Gothic'],
+		['Gran', 'Grantha'],
+		['Grek', 'Greek'],
+		['Gujr', 'Gujarati'],
+		['Gukh', 'Gurung_Khema'],
+		['Guru', 'Gurmukhi'],
+		['Hang', 'Hangul'],
+		['Hani', 'Han'],
+		['Hano', 'Hanunoo'],
+		['Hatr', 'Hatran'],
+		['Hebr', 'Hebrew'],
+		['Hira', 'Hiragana'],
+		['Hluw', 'Anatolian_Hieroglyphs'],
+		['Hmng', 'Pahawh_Hmong'],
+		['Hmnp', 'Nyiakeng_Puachue_Hmong'],
+		['Hrkt', 'Katakana_Or_Hiragana'],
+		['Hung', 'Old_Hungarian'],
+		['Ital', 'Old_Italic'],
+		['Java', 'Javanese'],
+		['Kali', 'Kayah_Li'],
+		['Kana', 'Katakana'],
+		['Kawi', 'Kawi'],
+		['Khar', 'Kharoshthi'],
+		['Khmr', 'Khmer'],
+		['Khoj', 'Khojki'],
+		['Kits', 'Khitan_Small_Script'],
+		['Knda', 'Kannada'],
+		['Krai', 'Kirat_Rai'],
+		['Kthi', 'Kaithi'],
+		['Lana', 'Tai_Tham'],
+		['Laoo', 'Lao'],
+		['Latn', 'Latin'],
+		['Lepc', 'Lepcha'],
+		['Limb', 'Limbu'],
+		['Lina', 'Linear_A'],
+		['Linb', 'Linear_B'],
+		['Lisu', 'Lisu'],
+		['Lyci', 'Lycian'],
+		['Lydi', 'Lydian'],
+		['Mahj', 'Mahajani'],
+		['Maka', 'Makasar'],
+		['Mand', 'Mandaic'],
+		['Mani', 'Manichaean'],
+		['Marc', 'Marchen'],
+		['Medf', 'Medefaidrin'],
+		['Mend', 'Mende_Kikakui'],
+		['Merc', 'Meroitic_Cursive'],
+		['Mero', 'Meroitic_Hieroglyphs'],
+		['Mlym', 'Malayalam'],
+		['Modi', 'Modi'],
+		['Mong', 'Mongolian'],
+		['Mroo', 'Mro'],
+		['Mtei', 'Meetei_Mayek'],
+		['Mult', 'Multani'],
+		['Mymr', 'Myanmar'],
+		['Nagm', 'Nag_Mundari'],
+		['Nand', 'Nandinagari'],
+		['Narb', 'Old_North_Arabian'],
+		['Nbat', 'Nabataean'],
+		['Newa', 'Newa'],
+		['Nkoo', 'Nko'],
+		['Nshu', 'Nushu'],
+		['Ogam', 'Ogham'],
+		['Olck', 'Ol_Chiki'],
+		['Onao', 'Ol_Onal'],
+		['Orkh', 'Old_Turkic'],
+		['Orya', 'Oriya'],
+		['Osge', 'Osage'],
+		['Osma', 'Osmanya'],
+		['Ougr', 'Old_Uyghur'],
+		['Palm', 'Palmyrene'],
+		['Pauc', 'Pau_Cin_Hau'],
+		['Perm', 'Old_Permic'],
+		['Phag', 'Phags_Pa'],
+		['Phli', 'Inscriptional_Pahlavi'],
+		['Phlp', 'Psalter_Pahlavi'],
+		['Phnx', 'Phoenician'],
+		['Plrd', 'Miao'],
+		['Prti', 'Inscriptional_Parthian'],
+		['Rjng', 'Rejang'],
+		['Rohg', 'Hanifi_Rohingya'],
+		['Runr', 'Runic'],
+		['Samr', 'Samaritan'],
+		['Sarb', 'Old_South_Arabian'],
+		['Saur', 'Saurashtra'],
+		['Sgnw', 'SignWriting'],
+		['Shaw', 'Shavian'],
+		['Shrd', 'Sharada'],
+		['Sidd', 'Siddham'],
+		['Sidt', 'Sidetic'],
+		['Sind', 'Khudawadi'],
+		['Sinh', 'Sinhala'],
+		['Sogd', 'Sogdian'],
+		['Sogo', 'Old_Sogdian'],
+		['Sora', 'Sora_Sompeng'],
+		['Soyo', 'Soyombo'],
+		['Sund', 'Sundanese'],
+		['Sunu', 'Sunuwar'],
+		['Sylo', 'Syloti_Nagri'],
+		['Syrc', 'Syriac'],
+		['Tagb', 'Tagbanwa'],
+		['Takr', 'Takri'],
+		['Tale', 'Tai_Le'],
+		['Talu', 'New_Tai_Lue'],
+		['Taml', 'Tamil'],
+		['Tang', 'Tangut'],
+		['Tavt', 'Tai_Viet'],
+		['Tayo', 'Tai_Yo'],
+		['Telu', 'Telugu'],
+		['Tfng', 'Tifinagh'],
+		['Tglg', 'Tagalog'],
+		['Thaa', 'Thaana'],
+		['Thai', 'Thai'],
+		['Tibt', 'Tibetan'],
+		['Tirh', 'Tirhuta'],
+		['Tnsa', 'Tangsa'],
+		['Todr', 'Todhri'],
+		['Tols', 'Tolong_Siki'],
+		['Toto', 'Toto'],
+		['Tutg', 'Tulu_Tigalari'],
+		['Ugar', 'Ugaritic'],
+		['Vaii', 'Vai'],
+		['Vith', 'Vithkuqi'],
+		['Wara', 'Warang_Citi'],
+		['Wcho', 'Wancho'],
+		['Xpeo', 'Old_Persian'],
+		['Xsux', 'Cuneiform'],
+		['Yezi', 'Yezidi'],
+		['Yiii', 'Yi'],
+		['Zanb', 'Zanabazar_Square'],
+		['Zinh', 'Inherited'],
+		['Qaai', 'Inherited'],
+		['Zyyy', 'Common'],
+		['Zzzz', 'Unknown'],
+		['Adlam', 'Adlam'],
+		['Caucasian_Albanian', 'Caucasian_Albanian'],
+		['Arabic', 'Arabic'],
+		['Imperial_Aramaic', 'Imperial_Aramaic'],
+		['Armenian', 'Armenian'],
+		['Avestan', 'Avestan'],
+		['Balinese', 'Balinese'],
+		['Bamum', 'Bamum'],
+		['Bassa_Vah', 'Bassa_Vah'],
+		['Batak', 'Batak'],
+		['Bengali', 'Bengali'],
+		['Beria_Erfe', 'Beria_Erfe'],
+		['Bhaiksuki', 'Bhaiksuki'],
+		['Bopomofo', 'Bopomofo'],
+		['Brahmi', 'Brahmi'],
+		['Braille', 'Braille'],
+		['Buginese', 'Buginese'],
+		['Buhid', 'Buhid'],
+		['Chakma', 'Chakma'],
+		['Canadian_Aboriginal', 'Canadian_Aboriginal'],
+		['Carian', 'Carian'],
+		['Cherokee', 'Cherokee'],
+		['Chorasmian', 'Chorasmian'],
+		['Coptic', 'Coptic'],
+		['Cypro_Minoan', 'Cypro_Minoan'],
+		['Cypriot', 'Cypriot'],
+		['Cyrillic', 'Cyrillic'],
+		['Devanagari', 'Devanagari'],
+		['Dives_Akuru', 'Dives_Akuru'],
+		['Dogra', 'Dogra'],
+		['Deseret', 'Deseret'],
+		['Duployan', 'Duployan'],
+		['Egyptian_Hieroglyphs', 'Egyptian_Hieroglyphs'],
+		['Elbasan', 'Elbasan'],
+		['Elymaic', 'Elymaic'],
+		['Ethiopic', 'Ethiopic'],
+		['Garay', 'Garay'],
+		['Georgian', 'Georgian'],
+		['Glagolitic', 'Glagolitic'],
+		['Gunjala_Gondi', 'Gunjala_Gondi'],
+		['Masaram_Gondi', 'Masaram_Gondi'],
+		['Gothic', 'Gothic'],
+		['Grantha', 'Grantha'],
+		['Greek', 'Greek'],
+		['Gujarati', 'Gujarati'],
+		['Gurung_Khema', 'Gurung_Khema'],
+		['Gurmukhi', 'Gurmukhi'],
+		['Hangul', 'Hangul'],
+		['Han', 'Han'],
+		['Hanunoo', 'Hanunoo'],
+		['Hatran', 'Hatran'],
+		['Hebrew', 'Hebrew'],
+		['Hiragana', 'Hiragana'],
+		['Anatolian_Hieroglyphs', 'Anatolian_Hieroglyphs'],
+		['Pahawh_Hmong', 'Pahawh_Hmong'],
+		['Nyiakeng_Puachue_Hmong', 'Nyiakeng_Puachue_Hmong'],
+		['Katakana_Or_Hiragana', 'Katakana_Or_Hiragana'],
+		['Old_Hungarian', 'Old_Hungarian'],
+		['Old_Italic', 'Old_Italic'],
+		['Javanese', 'Javanese'],
+		['Kayah_Li', 'Kayah_Li'],
+		['Katakana', 'Katakana'],
+		['Kharoshthi', 'Kharoshthi'],
+		['Khmer', 'Khmer'],
+		['Khojki', 'Khojki'],
+		['Khitan_Small_Script', 'Khitan_Small_Script'],
+		['Kannada', 'Kannada'],
+		['Kirat_Rai', 'Kirat_Rai'],
+		['Kaithi', 'Kaithi'],
+		['Tai_Tham', 'Tai_Tham'],
+		['Lao', 'Lao'],
+		['Latin', 'Latin'],
+		['Lepcha', 'Lepcha'],
+		['Limbu', 'Limbu'],
+		['Linear_A', 'Linear_A'],
+		['Linear_B', 'Linear_B'],
+		['Lycian', 'Lycian'],
+		['Lydian', 'Lydian'],
+		['Mahajani', 'Mahajani'],
+		['Makasar', 'Makasar'],
+		['Mandaic', 'Mandaic'],
+		['Manichaean', 'Manichaean'],
+		['Marchen', 'Marchen'],
+		['Medefaidrin', 'Medefaidrin'],
+		['Mende_Kikakui', 'Mende_Kikakui'],
+		['Meroitic_Cursive', 'Meroitic_Cursive'],
+		['Meroitic_Hieroglyphs', 'Meroitic_Hieroglyphs'],
+		['Malayalam', 'Malayalam'],
+		['Mongolian', 'Mongolian'],
+		['Mro', 'Mro'],
+		['Meetei_Mayek', 'Meetei_Mayek'],
+		['Multani', 'Multani'],
+		['Myanmar', 'Myanmar'],
+		['Nag_Mundari', 'Nag_Mundari'],
+		['Nandinagari', 'Nandinagari'],
+		['Old_North_Arabian', 'Old_North_Arabian'],
+		['Nabataean', 'Nabataean'],
+		['Nko', 'Nko'],
+		['Nushu', 'Nushu'],
+		['Ogham', 'Ogham'],
+		['Ol_Chiki', 'Ol_Chiki'],
+		['Ol_Onal', 'Ol_Onal'],
+		['Old_Turkic', 'Old_Turkic'],
+		['Oriya', 'Oriya'],
+		['Osage', 'Osage'],
+		['Osmanya', 'Osmanya'],
+		['Old_Uyghur', 'Old_Uyghur'],
+		['Palmyrene', 'Palmyrene'],
+		['Pau_Cin_Hau', 'Pau_Cin_Hau'],
+		['Old_Permic', 'Old_Permic'],
+		['Phags_Pa', 'Phags_Pa'],
+		['Inscriptional_Pahlavi', 'Inscriptional_Pahlavi'],
+		['Psalter_Pahlavi', 'Psalter_Pahlavi'],
+		['Phoenician', 'Phoenician'],
+		['Miao', 'Miao'],
+		['Inscriptional_Parthian', 'Inscriptional_Parthian'],
+		['Rejang', 'Rejang'],
+		['Hanifi_Rohingya', 'Hanifi_Rohingya'],
+		['Runic', 'Runic'],
+		['Samaritan', 'Samaritan'],
+		['Old_South_Arabian', 'Old_South_Arabian'],
+		['Saurashtra', 'Saurashtra'],
+		['SignWriting', 'SignWriting'],
+		['Shavian', 'Shavian'],
+		['Sharada', 'Sharada'],
+		['Siddham', 'Siddham'],
+		['Sidetic', 'Sidetic'],
+		['Khudawadi', 'Khudawadi'],
+		['Sinhala', 'Sinhala'],
+		['Sogdian', 'Sogdian'],
+		['Old_Sogdian', 'Old_Sogdian'],
+		['Sora_Sompeng', 'Sora_Sompeng'],
+		['Soyombo', 'Soyombo'],
+		['Sundanese', 'Sundanese'],
+		['Sunuwar', 'Sunuwar'],
+		['Syloti_Nagri', 'Syloti_Nagri'],
+		['Syriac', 'Syriac'],
+		['Tagbanwa', 'Tagbanwa'],
+		['Takri', 'Takri'],
+		['Tai_Le', 'Tai_Le'],
+		['New_Tai_Lue', 'New_Tai_Lue'],
+		['Tamil', 'Tamil'],
+		['Tangut', 'Tangut'],
+		['Tai_Viet', 'Tai_Viet'],
+		['Tai_Yo', 'Tai_Yo'],
+		['Telugu', 'Telugu'],
+		['Tifinagh', 'Tifinagh'],
+		['Tagalog', 'Tagalog'],
+		['Thaana', 'Thaana'],
+		['Tibetan', 'Tibetan'],
+		['Tirhuta', 'Tirhuta'],
+		['Tangsa', 'Tangsa'],
+		['Todhri', 'Todhri'],
+		['Tolong_Siki', 'Tolong_Siki'],
+		['Tulu_Tigalari', 'Tulu_Tigalari'],
+		['Ugaritic', 'Ugaritic'],
+		['Vai', 'Vai'],
+		['Vithkuqi', 'Vithkuqi'],
+		['Warang_Citi', 'Warang_Citi'],
+		['Wancho', 'Wancho'],
+		['Old_Persian', 'Old_Persian'],
+		['Cuneiform', 'Cuneiform'],
+		['Yezidi', 'Yezidi'],
+		['Yi', 'Yi'],
+		['Zanabazar_Square', 'Zanabazar_Square'],
+		['Inherited', 'Inherited'],
+		['Common', 'Common'],
+		['Unknown', 'Unknown']
+	])]
+]);
Index: frontend/node_modules/unicode-match-property-value-ecmascript/index.js
===================================================================
--- frontend/node_modules/unicode-match-property-value-ecmascript/index.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/unicode-match-property-value-ecmascript/index.js	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,19 @@
+'use strict';
+
+const propertyToValueAliases = require('./data/mappings.js');
+
+const matchPropertyValue = function(property, value) {
+	const aliasToValue = propertyToValueAliases.get(property);
+	if (!aliasToValue) {
+		throw new Error(`Unknown property \`${ property }\`.`);
+	}
+	const canonicalValue = aliasToValue.get(value);
+	if (canonicalValue) {
+		return canonicalValue;
+	}
+	throw new Error(
+		`Unknown value \`${ value }\` for property \`${ property }\`.`
+	);
+};
+
+module.exports = matchPropertyValue;
Index: frontend/node_modules/unicode-match-property-value-ecmascript/package.json
===================================================================
--- frontend/node_modules/unicode-match-property-value-ecmascript/package.json	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
+++ frontend/node_modules/unicode-match-property-value-ecmascript/package.json	(revision 9af201e94b5a79beb92a30858fc54de4bc3b9449)
@@ -0,0 +1,39 @@
+{
+  "name": "unicode-match-property-value-ecmascript",
+  "version": "2.2.1",
+  "description": "Match a Unicode property or property alias to its canonical property name per the algorithm used for RegExp Unicode property escapes in ECMAScript.",
+  "homepage": "https://github.com/mathiasbynens/unicode-match-property-value-ecmascript",
+  "main": "index.js",
+  "engines": {
+    "node": ">=4"
+  },
+  "files": [
+    "LICENSE-MIT.txt",
+    "data/mappings.js",
+    "index.js"
+  ],
+  "keywords": [
+    "unicode",
+    "unicode property values",
+    "unicode property value aliases"
+  ],
+  "license": "MIT",
+  "author": {
+    "name": "Mathias Bynens",
+    "url": "https://mathiasbynens.be/"
+  },
+  "repository": {
+    "type": "git",
+    "url": "https://github.com/mathiasbynens/unicode-match-property-value-ecmascript.git"
+  },
+  "bugs": "https://github.com/mathiasbynens/unicode-match-property-value-ecmascript/issues",
+  "devDependencies": {
+    "ava": "*",
+    "jsesc": "^3.1.0",
+    "unicode-property-value-aliases-ecmascript": "^2.2.1"
+  },
+  "scripts": {
+    "build": "node scripts/build.js",
+    "test": "ava tests/tests.js"
+  }
+}
