unicode-input-toolconverter 0.2.0 → 0.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (143) hide show
  1. package/.nyc_output/out.json +8980 -1849
  2. package/CHANGES.md +15 -1
  3. package/README.md +6 -11
  4. package/_locales/en-US/messages.json +153 -6
  5. package/_locales/hu-HU/messages.json +153 -6
  6. package/_locales/pt-BR/messages.json +153 -6
  7. package/_locales/sv-SE/messages.json +153 -6
  8. package/babel.config.json +0 -1
  9. package/browser_action/characterSelection.js +18 -11
  10. package/browser_action/charrefConverters.js +286 -79
  11. package/browser_action/chartBuild.js +97 -27
  12. package/browser_action/encodingBehaviors.js +10 -7
  13. package/browser_action/entityBehaviors.js +42 -16
  14. package/browser_action/index-es.html +13 -1
  15. package/browser_action/index-instrumented.html +13 -1
  16. package/browser_action/index-pages.html +13 -1
  17. package/browser_action/index.html +13 -1
  18. package/browser_action/index.iife.min.js +9 -1
  19. package/browser_action/index.iife.min.js.map +1 -1
  20. package/browser_action/index.instrumented.iife.min.js +1 -1
  21. package/browser_action/index.instrumented.iife.min.js.map +1 -1
  22. package/browser_action/index.js +5 -5
  23. package/browser_action/preferences/prefDefaults.js +12 -3
  24. package/browser_action/service-worker/sw-activateCallback.js +1 -2
  25. package/browser_action/service-worker/sw-resources.json +6 -4
  26. package/browser_action/templateUtils/elements.js +12 -1
  27. package/browser_action/templateUtils/fill.js +6 -0
  28. package/browser_action/templateUtils/validation.js +4 -1
  29. package/browser_action/templates/chartBuild.js +167 -102
  30. package/browser_action/templates/index.js +227 -53
  31. package/browser_action/templatesElementCustomization/widgets.js +40 -15
  32. package/browser_action/unicode/UnicodeConverter.js +99 -73
  33. package/browser_action/unicode/charrefunicodeDb.js +100 -50
  34. package/browser_action/unicode/getScriptInfoForCodePoint.js +13 -4
  35. package/browser_action/unicode/hangul.js +27 -20
  36. package/browser_action/unicode/lastScriptNames.json +1 -1
  37. package/browser_action/unicode/parseUnihanFromTextFileStrings.js +44 -25
  38. package/browser_action/unicode/unicodeFieldInfo.js +112 -90
  39. package/browser_action/unicode/unicodeScripts.js +409 -35
  40. package/browser_action/unicode/unihan.js +4 -3
  41. package/browser_action/unicode/unihanDbPopulate.js +7 -2
  42. package/browser_action/unicode/unihanFields.js +34 -0
  43. package/browser_action/unicodecharref.js +353 -190
  44. package/browser_action/utils/DOMUtils.js +95 -34
  45. package/browser_action/utils/FetchUtils.js +7 -6
  46. package/browser_action/utils/TextUtils.js +4 -4
  47. package/browser_action/utils/TypedArrayUtils.js +9 -5
  48. package/browser_action/utils/semicolonSeparatedToArray.js +3 -3
  49. package/browser_action/utils/setupServiceWorker.js +2 -2
  50. package/eslint.config.js +11 -0
  51. package/icons/openWindow16.png +0 -0
  52. package/icons/openWindow24.png +0 -0
  53. package/lib/background.html +7 -0
  54. package/lib/background.js +2 -2
  55. package/package.json +80 -70
  56. package/pnpm-workspace.yaml +8 -0
  57. package/server.js +66 -51
  58. package/sw.js +97 -56
  59. package/tools/entities-import.js +4 -1
  60. package/tools/findEsResources.js +33 -10
  61. package/tools/fix-sw-resources-vendor-paths.js +60 -0
  62. package/tools/list-locales.js +2 -2
  63. package/tools/parseUnicodeCharts.js +126 -60
  64. package/tools/ucd-import.js +1 -10
  65. package/tools/unicode-charts.html +49 -20
  66. package/tools/unihan-import.js +45 -15
  67. package/tools/write-sw-version.js +16 -0
  68. package/tsconfig.json +23 -0
  69. package/typings/__coverage__.d.ts +5 -0
  70. package/typings/apple-system-profiler.d.ts +17 -0
  71. package/typings/commands.d.ts +19 -0
  72. package/typings/json-6.d.ts +4 -0
  73. package/typings/rollup-plugin-istanbul.d.ts +3 -0
  74. package/vendor/camelcase/index.d.ts +154 -0
  75. package/vendor/camelcase/index.js +137 -23
  76. package/vendor/fflate/esm/browser.d.ts +1539 -0
  77. package/vendor/fflate/esm/browser.js +82 -55
  78. package/vendor/intl-dom/dist/Formatter.d.ts +120 -0
  79. package/vendor/intl-dom/dist/Formatter.d.ts.map +1 -0
  80. package/vendor/intl-dom/dist/collation.d.ts +42 -0
  81. package/vendor/intl-dom/dist/collation.d.ts.map +1 -0
  82. package/vendor/intl-dom/dist/defaultAllSubstitutions.d.ts +52 -0
  83. package/vendor/intl-dom/dist/defaultAllSubstitutions.d.ts.map +1 -0
  84. package/vendor/intl-dom/dist/defaultInsertNodes.d.ts +96 -0
  85. package/vendor/intl-dom/dist/defaultInsertNodes.d.ts.map +1 -0
  86. package/vendor/intl-dom/dist/defaultKeyCheckerConverter.d.ts +17 -0
  87. package/vendor/intl-dom/dist/defaultKeyCheckerConverter.d.ts.map +1 -0
  88. package/vendor/intl-dom/dist/defaultLocaleResolver.d.ts +285 -0
  89. package/vendor/intl-dom/dist/defaultLocaleResolver.d.ts.map +1 -0
  90. package/vendor/intl-dom/dist/findLocaleStrings.d.ts +88 -0
  91. package/vendor/intl-dom/dist/findLocaleStrings.d.ts.map +1 -0
  92. package/vendor/intl-dom/dist/getDOMForLocaleString.d.ts +67 -0
  93. package/vendor/intl-dom/dist/getDOMForLocaleString.d.ts.map +1 -0
  94. package/vendor/intl-dom/dist/getMessageForKeyByStyle.d.ts +73 -0
  95. package/vendor/intl-dom/dist/getMessageForKeyByStyle.d.ts.map +1 -0
  96. package/vendor/intl-dom/dist/getStringFromMessageAndDefaults.d.ts +26 -0
  97. package/vendor/intl-dom/dist/getStringFromMessageAndDefaults.d.ts.map +1 -0
  98. package/vendor/intl-dom/dist/i18n.d.ts +113 -0
  99. package/vendor/intl-dom/dist/i18n.d.ts.map +1 -0
  100. package/vendor/intl-dom/dist/index.d.ts +92 -0
  101. package/vendor/intl-dom/dist/index.d.ts.map +1 -0
  102. package/vendor/intl-dom/dist/index.esm.d.ts +34 -0
  103. package/vendor/intl-dom/dist/index.esm.js +854 -896
  104. package/vendor/intl-dom/dist/index.esm.min.js +4 -0
  105. package/vendor/intl-dom/dist/index.esm.min.js.map +1 -0
  106. package/vendor/intl-dom/dist/index.umd.js +2953 -0
  107. package/vendor/intl-dom/dist/index.umd.min.js +4 -0
  108. package/vendor/intl-dom/dist/index.umd.min.js.map +1 -0
  109. package/vendor/intl-dom/dist/promiseChainForValues.d.ts +34 -0
  110. package/vendor/intl-dom/dist/promiseChainForValues.d.ts.map +1 -0
  111. package/vendor/intl-dom/dist/shared.d.ts +20 -0
  112. package/vendor/intl-dom/dist/shared.d.ts.map +1 -0
  113. package/vendor/intl-dom/dist/utils.d.ts +53 -0
  114. package/vendor/intl-dom/dist/utils.d.ts.map +1 -0
  115. package/vendor/jamilih/dist/jml.d.mts +468 -0
  116. package/vendor/jamilih/dist/{jml-es.js → jml.mjs} +1489 -343
  117. package/vendor/jquery/dist/jquery.js +1677 -2713
  118. package/vendor/json-6/dist/index.mjs +2 -0
  119. package/vendor/miller-columns/CHANGES.md +185 -0
  120. package/vendor/miller-columns/LICENSE-MIT.txt +21 -0
  121. package/vendor/miller-columns/README.md +249 -0
  122. package/vendor/miller-columns/demos/index.html +69 -0
  123. package/vendor/miller-columns/demos/index.js +72 -0
  124. package/vendor/miller-columns/dist/index-es.js +748 -0
  125. package/vendor/miller-columns/dist/index-es.min.d.ts +25 -0
  126. package/vendor/miller-columns/dist/index-es.min.js +7 -1
  127. package/vendor/miller-columns/dist/index-umd.js +757 -0
  128. package/vendor/miller-columns/dist/index-umd.min.js +7 -0
  129. package/vendor/miller-columns/dist/index.d.ts +25 -0
  130. package/vendor/miller-columns/dist/millerColumns.d.ts +10 -0
  131. package/vendor/miller-columns/eslint.config.js +46 -0
  132. package/vendor/miller-columns/fix-declarations.js +18 -0
  133. package/vendor/miller-columns/miller-columns.css +24 -1
  134. package/vendor/miller-columns/package.json +73 -0
  135. package/vendor/miller-columns/pnpm-workspace.yaml +2 -0
  136. package/vendor/miller-columns/src/index.js +642 -0
  137. package/vendor/miller-columns/src/millerColumns.ts +12 -0
  138. package/vendor/miller-columns/tsconfig-prod.json +23 -0
  139. package/vendor/miller-columns/tsconfig.json +21 -0
  140. package/vendor/simple-prefs/dist/index.esm.d.ts +1 -0
  141. package/vendor/simple-prefs/dist/index.esm.js +164 -216
  142. package/vendor/simple-prefs/dist/simple-prefs.d.ts +117 -0
  143. package/lgtm.yml +0 -5
@@ -1,10 +1,9 @@
1
1
  <!DOCTYPE html>
2
-
3
2
  <html lang="en">
4
3
  <head>
5
- <meta charset="utf-8"/>
6
- <title>Unicode 15.1 Character Code Charts</title>
7
-
4
+ <meta charset="utf-8">
5
+ <title>Unicode 18.0 Character Code Charts</title>
6
+ <meta name="revision" content="94f005727e6d74f7d232683ff14ccd5341f99f44">
8
7
  <link rel="stylesheet" href="https://www.unicode.org/webscripts/standard_styles.css">
9
8
  <style>
10
9
  table.map {border: 0; border-collapse:collapse; width: 100%; }
@@ -35,7 +34,7 @@ table.map p.sg { padding: 5px 1px 5px 1px; }
35
34
  <tr>
36
35
  <td class="icon"><a href="https://www.unicode.org/">
37
36
  <img height="33" alt="[Unicode]" src="https://www.unicode.org/webscripts/logo60s2.gif" width="34" style="vertical-align:middle;"></a>&nbsp;
38
- &nbsp;<a class="bar" href="About.html">Code Charts</a> </td>
37
+ &nbsp;<a class="bar" href="/versions/Unicode18.0.0/">Unicode 18.0.0</a> </td>
39
38
  <td class="bar">
40
39
  <a class="bar" href="https://www.unicode.org/main.html">Tech Site</a> |
41
40
  <a class="bar" href="https://www.unicode.org/sitemap/">Site Map</a>
@@ -47,10 +46,11 @@ table.map p.sg { padding: 5px 1px 5px 1px; }
47
46
 
48
47
 
49
48
  <div class="body">
50
- <h1>Unicode 15.1 Character Code Charts</h1>
51
- <p id="toplinks" class="map"><a href="#scripts">Scripts</a>&nbsp;&nbsp;
52
- |&nbsp;&nbsp; <a href="#symbols">Symbols &amp; Punctuation</a>&nbsp;&nbsp;
53
- |&nbsp;&nbsp; <a href="charindex.html">Name Index</a></p>
49
+ <h1>Unicode® 18.0 Character Code Charts</h1>
50
+ <p id="toplinks" class="map"><a href="#symbols">Symbols &amp; Punctuation</a>&nbsp;&nbsp;
51
+ |&nbsp;&nbsp; <a href="/charts/charindex.html">Name Index</a>&nbsp;&nbsp;
52
+ |&nbsp;&nbsp; <a href="nameslist/">Names Lists&nbsp;&nbsp;</a>
53
+ |&nbsp;&nbsp; <a href="collation/">Collation &amp; Casing</a></p>
54
54
 
55
55
  <p style="padding-bottom: 0; text-align:center;" class="map">Find chart by hex code: <input type="text" name="HexCode" size="8" maxlength="8">&nbsp;<input type="submit" name="submit" value="Go">
56
56
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="About.html">Help</a>
@@ -66,7 +66,6 @@ table.map p.sg { padding: 5px 1px 5px 1px; }
66
66
  <p class="sg">European Scripts</p>
67
67
  <p class="mb"><a href="PDF/U0530.pdf" title="0530-058F">Armenian</a></p>
68
68
  <p class="pb"><a href="PDF/UFB00.pdf" title="FB13-FB17">Armenian Ligatures</a></p>
69
- <p class="mb"><a href="PDF/U102A0.pdf" title="102A0-102DF">Carian</a></p>
70
69
  <p class="mb"><a href="PDF/U10530.pdf" title="10530-1056F">Caucasian Albanian</a>&nbsp;</p>
71
70
  <p class="mb"><a href="PDF/U10800.pdf" title="10800-1083F">Cypriot Syllabary</a></p>
72
71
  <p class="mb"><a href="PDF/U12F90.pdf" title="12F90–12FFF">Cypro-Minoan</a></p>
@@ -111,8 +110,6 @@ table.map p.sg { padding: 5px 1px 5px 1px; }
111
110
  <p class="sb"><a href="PDF/U10000.pdf" title="10000-1007F">Linear B Syllabary</a></p>
112
111
  <p class="sb"><a href="PDF/U10080.pdf" title="10080-100FF">Linear B Ideograms</a></p>
113
112
  <p class="sb"><a href="PDF/U10100.pdf" title="10100-1013F">Aegean Numbers</a></p>
114
- <p class="mb"><a href="PDF/U10280.pdf" title="10280-1029F">Lycian</a></p>
115
- <p class="mb"><a href="PDF/U10920.pdf" title="10920-1093F">Lydian</a></p>
116
113
  <p class="mb"><a href="PDF/U1680.pdf" title="1680-169F">Ogham</a></p>
117
114
  <p class="mb"><a href="PDF/U10C80.pdf" title="10C80-10CFF">Old Hungarian</a></p>
118
115
  <p class="mb"><a href="PDF/U10300.pdf" title="10300-1032F">Old Italic</a></p>
@@ -121,6 +118,7 @@ table.map p.sg { padding: 5px 1px 5px 1px; }
121
118
  <p class="mb"><a href="PDF/U101D0.pdf" title="101D0-101FF">Phaistos Disc</a></p>
122
119
  <p class="mb"><a href="PDF/U16A0.pdf" title="16A0-16FF">Runic</a></p>
123
120
  <p class="mb"><a href="PDF/U10450.pdf" title="10450-1047F">Shavian</a></p>
121
+ <p class="mb"><a href="PDF/U105C0.pdf" title="105C0-105FF">Todhri</a></p>
124
122
  <p class="mb"><a href="PDF/U10570.pdf" title="10570–105BF">Vithkuqi</a></p>
125
123
 
126
124
 
@@ -151,16 +149,19 @@ table.map p.sg { padding: 5px 1px 5px 1px; }
151
149
  <p class="mb"><a href="PDF/UA6A0.pdf" title="A6A0-A6FF">Bamum</a></p>
152
150
  <p class="sb"><a href="PDF/U16800.pdf" title="16800-16A3F">Bamum Supplement</a></p>
153
151
  <p class="mb"><a href="PDF/U16AD0.pdf" title="16AD0-16AFF">Bassa Vah</a></p>
152
+ <p class="mb"><a href="PDF/U16EA0.pdf" title="16EA0-16EDF">Beria Erfe</a></p>
154
153
  <p class="mb"><a href="PDF/U2C80.pdf" title="2C80-2CFF">Coptic</a>&nbsp;</p>
155
154
  <p class="pb"><a href="PDF/U0370.pdf" title="03E2-03EF">Coptic in Greek block</a></p>
156
155
  <p class="sb"><a href="PDF/U102E0.pdf" title="102E0-102FF">Coptic Epact Numbers</a></p>
157
156
  <p class="mb"><a href="PDF/U13000.pdf" title="13000-1342F">Egyptian Hieroglyphs</a></p>
158
157
  <p class="sb"><a href="PDF/U13430.pdf" title="13430-1345F">Egyptian Hieroglyph Format Controls</a></p>
158
+ <p class="sb"><a href="PDF/U13460.pdf" title="13460-1355F">Egyptian Hieroglyphs Extended-A</a></p>
159
159
  <p class="mb"><a href="PDF/U1200.pdf" title="1200-137F">Ethiopic</a></p>
160
160
  <p class="sb"><a href="PDF/U1380.pdf" title="1380-139F">Ethiopic Supplement</a></p>
161
161
  <p class="sb"><a href="PDF/U2D80.pdf" title="2D80-2DDF">Ethiopic Extended</a></p>
162
162
  <p class="sb"><a href="PDF/UAB00.pdf" title="AB00-AB2F">Ethiopic Extended-A</a></p>
163
163
  <p class="sb"><a href="PDF/U1E7E0.pdf" title="1E7E0–1E7FF">Ethiopic Extended-B</a></p>
164
+ <p class="mb"><a href="PDF/U10D40.pdf" title="10D40-10D8F">Garay</a></p>
164
165
  <p class="mb"><a href="PDF/U16E40.pdf" title="16E40-16E9F">Medefaidrin</a></p>
165
166
  <p class="mb"><a href="PDF/U1E800.pdf" title="1E800-1E8DF">Mende Kikakui</a></p>
166
167
  <p class="mb">Meroitic</p>
@@ -172,7 +173,7 @@ table.map p.sg { padding: 5px 1px 5px 1px; }
172
173
  <p class="mb"><a href="PDF/UA500.pdf" title="A500-A63F">Vai</a></p>
173
174
 
174
175
 
175
- <p class="sg">Middle Eastern Scripts</p>
176
+ <p class="sg">West Asian Scripts</p>
176
177
  <p class="mb"><a href="PDF/U14400.pdf" title="14400-1467F">Anatolian Hieroglyphs</a></p>
177
178
  <p class="mb"><a href="PDF/U0600.pdf" title="0600-06FF">Arabic</a></p>
178
179
  <p class="sb"><a href="PDF/U0750.pdf" title="0750-077F">Arabic Supplement</a></p>
@@ -183,9 +184,11 @@ table.map p.sg { padding: 5px 1px 5px 1px; }
183
184
  <p class="sb"><a href="PDF/UFE70.pdf" title="FE70-FEFF">Arabic Presentation Forms-B</a></p>
184
185
  <p class="mb"><a href="PDF/U10840.pdf" title="10840-1085F">Aramaic, Imperial</a></p>
185
186
  <p class="mb"><a href="PDF/U10B00.pdf" title="10B00-10B3F">Avestan</a></p>
187
+ <p class="mb"><a href="PDF/U102A0.pdf" title="102A0-102DF">Carian</a></p>
186
188
  <p class="mb"><a href="PDF/U10FB0.pdf" title="10FB0–10FDF">Chorasmian</a></p>
187
189
  <p class="mb"><a href="PDF/U12000.pdf" title="12000-123FF">Cuneiform</a></p>
188
190
  <p class="sb"><a href="PDF/U12400.pdf" title="12400-1247F">Cuneiform Numbers and Punctuation</a></p>
191
+ <p class="sb"><a href="PDF/U12550.pdf" title="12550-1268F">Archaic Cuneiform Numbers</a></p>
189
192
  <p class="sb"><a href="PDF/U12480.pdf" title="12480-1254F">Early Dynastic Cuneiform</a></p>
190
193
  <p class="sb"><a href="PDF/U103A0.pdf" title="103A0-103DF">Old Persian</a></p>
191
194
  <p class="sb"><a href="PDF/U10380.pdf" title="10380-1039F">Ugaritic</a></p>
@@ -193,6 +196,8 @@ table.map p.sg { padding: 5px 1px 5px 1px; }
193
196
  <p class="mb"><a href="PDF/U108E0.pdf" title="108E0-108FF">Hatran</a></p>
194
197
  <p class="mb"><a href="PDF/U0590.pdf" title="0590-05FF">Hebrew</a></p>
195
198
  <p class="pb"><a href="PDF/UFB00.pdf" title="FB1D-FB4F">Hebrew Presentation Forms</a></p>
199
+ <p class="mb"><a href="PDF/U10280.pdf" title="10280-1029F">Lycian</a></p>
200
+ <p class="mb"><a href="PDF/U10920.pdf" title="10920-1093F">Lydian</a></p>
196
201
  <p class="mb"><a href="PDF/U0840.pdf" title="0840-085F">Mandaic</a></p>
197
202
  <p class="mb"><a href="PDF/U10880.pdf" title="10880-108AF">Nabataean</a></p>
198
203
  <p class="mb"><a href="PDF/U10A80.pdf" title="10A80-10A9F">Old North Arabian</a></p>
@@ -203,6 +208,7 @@ table.map p.sg { padding: 5px 1px 5px 1px; }
203
208
  <p class="mb"><a href="PDF/U10B40.pdf" title="10B40-10B5F"> Parthian, Inscriptional</a></p>
204
209
  <p class="mb"><a href="PDF/U10900.pdf" title="10900-1091F">Phoenician</a></p>
205
210
  <p class="mb"><a href="PDF/U0800.pdf" title="0800-083F">Samaritan</a></p>
211
+ <p class="mb"><a href="PDF/U10940.pdf" title="10940-1095F">Sidetic</a></p>
206
212
  <p class="mb"><a href="PDF/U0700.pdf" title="0700-074F">Syriac</a></p>
207
213
  <p class="pb"><a href="PDF/U0860.pdf" title="0860–086F">Syriac Supplement</a></p>
208
214
  <p class="mb"><a href="PDF/U10E80.pdf" title="10E80–10EBF">Yezidi</a></p>
@@ -228,6 +234,7 @@ table.map p.sg { padding: 5px 1px 5px 1px; }
228
234
  <p class="sg">South Asian Scripts</p>
229
235
  <p class="mb"><a href="PDF/U11700.pdf" title="11700-1174F">Ahom</a></p>
230
236
  <p class="mb"><a href="PDF/U0980.pdf" title="0980-09FF">Bengali and Assamese</a></p>
237
+ <p class="sb"><a href="PDF/U11DF0.pdf" title="11DF0-11DFF">Bengali Supplement</a></p>
231
238
  <p class="mb"><a href="PDF/U11C00.pdf" title="11C00-11C6F">Bhaiksuki</a></p>
232
239
  <p class="mb"><a href="PDF/U11000.pdf" title="11000-1107F">Brahmi</a></p>
233
240
  <p class="mb"><a href="PDF/U11100.pdf" title="11100-1114F">Chakma</a></p>
@@ -240,10 +247,12 @@ table.map p.sg { padding: 5px 1px 5px 1px; }
240
247
  <p class="mb"><a href="PDF/U0A80.pdf" title="0A80-0AFF">Gujarati</a></p>
241
248
  <p class="mb"><a href="PDF/U11D60.pdf" title="11D60-11DAF">Gunjala Gondi</a></p>
242
249
  <p class="mb"><a href="PDF/U0A00.pdf" title="0A00-0A7F">Gurmukhi</a></p>
250
+ <p class="mb"><a href="PDF/U16100.pdf" title="16100-1613F">Gurung Khema</a></p>
243
251
  <p class="mb"><a href="PDF/U11080.pdf" title="11080-110CF">Kaithi</a></p>
244
252
  <p class="mb"><a href="PDF/U0C80.pdf" title="0C80-0CFF">Kannada</a></p>
245
253
  <p class="mb"><a href="PDF/U10A00.pdf" title="10A00-10A5F">Kharoshthi</a></p>
246
254
  <p class="mb"><a href="PDF/U11200.pdf" title="11200-1124F">Khojki</a></p>
255
+ <p class="mb"><a href="PDF/U16D40.pdf" title="16D40-16D7F">Kirat Rai</a></p>
247
256
  <p class="mb"><a href="PDF/U112B0.pdf" title="112B0-112FF">Khudawadi</a></p>
248
257
  <p class="mb"><a href="PDF/U1C00.pdf" title="1C00-1C4F">Lepcha</a></p>
249
258
  <p class="mb"><a href="PDF/U1900.pdf" title="1900-194F">Limbu</a></p>
@@ -259,13 +268,16 @@ table.map p.sg { padding: 5px 1px 5px 1px; }
259
268
  <p class="mb"><a href="PDF/U119A0.pdf" title="119A0-119FF">Nandinagari</a></p>
260
269
  <p class="mb"><a href="PDF/U11400.pdf" title="11400-1147F">Newa</a></p>
261
270
  <p class="mb"><a href="PDF/U1C50.pdf" title="1C50-1C7F">Ol Chiki</a></p>
271
+ <p class="mb"><a href="PDF/U1E5D0.pdf" title="1E5D0-1E5FF">Ol Onal</a></p>
262
272
  <p class="mb"><a href="PDF/U0B00.pdf" title="0B00-0B7F">Oriya (Odia)</a></p>
263
273
  <p class="mb"><a href="PDF/UA880.pdf" title="A880-A8DF">Saurashtra</a></p>
264
274
  <p class="mb"><a href="PDF/U11180.pdf" title="11180-111DF">Sharada</a></p>
275
+ <p class="sb"><a href="PDF/U11B60.pdf" title="11B60-11B7F">Sharada Supplement</a></p>
265
276
  <p class="mb"><a href="PDF/U11580.pdf" title="11580-115FF">Siddham</a></p>
266
277
  <p class="mb"><a href="PDF/U0D80.pdf" title="0D80-0DFF">Sinhala</a></p>
267
278
  <p class="sb"><a href="PDF/U111E0.pdf" title="111E0-111FF">Sinhala Archaic Numbers</a></p>
268
279
  <p class="mb"><a href="PDF/U110D0.pdf" title="110D0-110FF">Sora Sompeng</a></p>
280
+ <p class="mb"><a href="PDF/U11BC0.pdf" title="11BC0-11BFF">Sunuwar</a></p>
269
281
  <p class="mb"><a href="PDF/UA800.pdf" title="A800-A82F">Syloti Nagri</a></p>
270
282
  <p class="mb"><a href="PDF/U11680.pdf" title="11680-116CF">Takri</a></p>
271
283
  <p class="mb"><a href="PDF/U0B80.pdf" title="0B80-0BFF">Tamil</a></p>
@@ -273,7 +285,9 @@ table.map p.sg { padding: 5px 1px 5px 1px; }
273
285
  <p class="mb"><a href="PDF/U0C00.pdf" title="0C00-0C7F">Telugu</a></p>
274
286
  <p class="mb"><a href="PDF/U0780.pdf" title="0780-07BF">Thaana</a></p>
275
287
  <p class="mb"><a href="PDF/U11480.pdf" title="11480-114DF">Tirhuta</a></p>
288
+ <p class="mb"><a href="PDF/U11DB0.pdf" title="11DB0-11DEF">Tolong Siki</a></p>
276
289
  <p class="mb"><a href="PDF/U1E290.pdf" title="1E290–1E2BF">Toto</a></p>
290
+ <p class="mb"><a href="PDF/U11380.pdf" title="11380–113FF">Tulu-Tigalari</a></p>
277
291
  <p class="mb"><a href="PDF/U1CD0.pdf" title="1CD0-1CFF">Vedic Extensions</a></p>
278
292
  <p class="mb"><a href="PDF/U1E2C0.pdf" title="1E2C0-1E2FF">Wancho</a></p>
279
293
  <p class="mb"><a href="PDF/U118A0.pdf" title="118A0-118FF">Warang Citi</a></p>
@@ -289,6 +303,7 @@ table.map p.sg { padding: 5px 1px 5px 1px; }
289
303
  <p class="mb"><a href="PDF/U1000.pdf" title="1000-109F">Myanmar</a></p>
290
304
  <p class="sb"><a href="PDF/UAA60.pdf" title="AA60-AA7F">Myanmar Extended-A</a></p>
291
305
  <p class="sb"><a href="PDF/UA9E0.pdf" title="A9E0-A9FF">Myanmar Extended-B</a></p>
306
+ <p class="sb"><a href="PDF/U116D0.pdf" title="116D0-116FF">Myanmar Extended-C</a></p>
292
307
  <p class="mb"><a href="PDF/U1980.pdf" title="1980-19DF">New Tai Lue</a></p>
293
308
  <p class="mb"><a href="PDF/U1E100.pdf" title="1E100-1E14F">Nyiakeng Puachue Hmong</a></p>
294
309
  <p class="mb"><a href="PDF/U16B00.pdf" title="16B00-16B8F">Pahawh Hmong</a></p>
@@ -296,6 +311,7 @@ table.map p.sg { padding: 5px 1px 5px 1px; }
296
311
  <p class="mb"><a href="PDF/U1950.pdf" title="1950-197F">Tai Le</a></p>
297
312
  <p class="mb"><a href="PDF/U1A20.pdf" title="1A20-1AAF">Tai Tham</a></p>
298
313
  <p class="mb"><a href="PDF/UAA80.pdf" title="AA80-AADF">Tai Viet</a></p>
314
+ <p class="mb"><a href="PDF/U1E6C0.pdf" title="1E6C0-1E6FF">Tai Yo</a></p>
299
315
  <p class="mb"><a href="PDF/U16A70.pdf" title="16A70–16ACF">Tangsa</a></p>
300
316
  <p class="mb"><a href="PDF/U0E00.pdf" title="0E00-0E7F">Thai</a></p>
301
317
  </td>
@@ -322,9 +338,9 @@ table.map p.sg { padding: 5px 1px 5px 1px; }
322
338
  <p class="sg">East Asian Scripts</p>
323
339
  <p class="mb"><a href="PDF/U3100.pdf" title="3100-312F">Bopomofo</a></p>
324
340
  <p class="sb"><a href="PDF/U31A0.pdf" title="31A0-31BF">Bopomofo Extended</a></p>
325
- <p class="mb"><a href="PDF/U4E00.pdf" title="4E00-9FFF">CJK Unified Ideographs (Han)</a>&nbsp;(38MB)</p>
326
- <p class="sb"><a href="PDF/U3400.pdf" title="3400-4DBF">CJK Extension&nbsp;A</a>&nbsp;(7.6MB)</p>
327
- <p class="sb"><a href="PDF/U20000.pdf" title="20000-2A6DF">CJK Extension&nbsp;B</a>&nbsp;(31MB)</p>
341
+ <p class="mb"><a href="PDF/U4E00.pdf" title="4E00-9FFF">CJK Unified Ideographs (Han)</a>&nbsp;(43MB)</p>
342
+ <p class="sb"><a href="PDF/U3400.pdf" title="3400-4DBF">CJK Extension&nbsp;A</a>&nbsp;(11MB)</p>
343
+ <p class="sb"><a href="PDF/U20000.pdf" title="20000-2A6DF">CJK Extension&nbsp;B</a>&nbsp;(46MB)</p>
328
344
  <p class="sb"><a href="PDF/U2A700.pdf" title="2A700-2B73F">CJK Extension&nbsp;C</a></p>
329
345
  <p class="sb"><a href="PDF/U2B740.pdf" title="2B740-2B81F">CJK Extension&nbsp;D</a></p>
330
346
  <p class="sb"><a href="PDF/U2B820.pdf" title="2B820-2CEAF">CJK Extension&nbsp;E</a></p>
@@ -332,7 +348,10 @@ table.map p.sg { padding: 5px 1px 5px 1px; }
332
348
  <p class="sb"><a href="PDF/U30000.pdf" title="30000–3134F">CJK Extension&nbsp;G</a></p>
333
349
  <p class="sb"><a href="PDF/U31350.pdf" title="31350–323AF">CJK Extension&nbsp;H</a></p>
334
350
  <p class="sb"><a href="PDF/U2EBF0.pdf" title="2EBF0–2EE5F">CJK Extension&nbsp;I</a></p>
335
- <p class="sb">(see also <a href="unihan.html">Unihan Database</a>)</p>
351
+ <p class="sb"><a href="PDF/U323B0.pdf" title="323B0–3347F">CJK Extension&nbsp;J</a></p>
352
+ <p class="sb"><a href="RSIndex.pdf">Full Radical-Stroke Index</a> (PDF, 35MB)</p>
353
+ <p class="sb"><a href="RSIndex.txt">Full Radical-Stroke Index</a> (txt)</p>
354
+ <p class="sb">(see also <a href="https://www.unicode.org/charts/unihan.html">Unihan Database Lookup</a>)</p>
336
355
  <p class="mb"><a href="PDF/UF900.pdf" title="F900-FAFF">CJK Compatibility Ideographs</a></p>
337
356
  <p class="sb"><a href="PDF/U2F800.pdf" title="2F800-2FA1F">CJK Compatibility Ideographs Supplement</a></p>
338
357
  <p class="mb"><a href="PDF/U2F00.pdf" title="2F00-2FDF"> CJK Radicals / Kangxi Radicals</a></p>
@@ -348,6 +367,8 @@ table.map p.sg { padding: 5px 1px 5px 1px; }
348
367
  <p class="mb"><a href="PDF/UAC00.pdf" title="AC00-D7AF">Hangul Syllables</a></p>
349
368
  <!--p class="mb">Japanese</p-->
350
369
  <p class="mb"><a href="PDF/U3040.pdf" title="3040-309F">Hiragana</a></p>
370
+ <p class="mb"><a href="PDF/U18E00.pdf" title="18E00-1919F">Jurchen</a></p>
371
+ <p class="sb"><a href="PDF/U191A0.pdf" title="191A0-191DF">Jurchen Radicals</a></p>
351
372
  <p class="mb"><a href="PDF/U1B100.pdf" title="1B100–1B12F">Kana Extended-A</a></p>
352
373
  <p class="mb"><a href="PDF/U1AFF0.pdf" title="1AFF0–1AFFF">Kana Extended-B</a></p>
353
374
  <p class="mb"><a href="PDF/U1B000.pdf" title="1B000-1B0FF">Kana Supplement</a></p>
@@ -361,9 +382,11 @@ table.map p.sg { padding: 5px 1px 5px 1px; }
361
382
  <p class="sb"><a href="PDF/U11FB0.pdf" title="11FB0–11FBF">Lisu Supplement</a></p>
362
383
  <p class="mb"><a href="PDF/U16F00.pdf" title="16F00-16F9F">Miao</a></p>
363
384
  <p class="mb"><a href="PDF/U1B170.pdf" title="1B170–1B2FF">Nushu</a></p>
385
+ <p class="mb"><a href="PDF/U3D000.pdf" title="3D000-3FC3F">Small Seal</a></p>
364
386
  <p class="mb"><a href="PDF/U17000.pdf" title="17000-187FF">Tangut</a></p>
365
387
  <p class="sb"><a href="PDF/U18800.pdf" title="18800-18AFF">Tangut Components</a></p>
366
- <p class="sb"><a href="PDF/U18D00.pdf" title="18D00–18D08">Tangut Supplement</a></p>
388
+ <p class="sb"><a href="PDF/U18D00.pdf" title="18D00–18D7F">Tangut Supplement</a></p>
389
+ <p class="sb"><a href="PDF/U18D80.pdf" title="18D80–18DFF">Tangut Components Supplement</a></p>
367
390
  <p class="mb">Yi</p>
368
391
  <p class="sb"><a href="PDF/UA000.pdf" title="A000-A48F">Yi Syllables</a></p>
369
392
  <p class="sb"><a href="PDF/UA490.pdf" title="A490-A4CF">Yi Radicals</a></p>
@@ -391,6 +414,7 @@ table.map p.sg { padding: 5px 1px 5px 1px; }
391
414
  <p class="sg">Notational Systems</p>
392
415
  <p class="mb"><a href="PDF/U2800.pdf" title="2800-28FF">Braille Patterns</a></p>
393
416
  <p class="mb"><a href="PDF/U1D100.pdf" title="1D100-1D1FF">Musical Symbols</a></p>
417
+ <p class="sb"><a href="PDF/U1D250.pdf" title="1D250-1D28F">Musical Symbols Supplement</a></p>
394
418
  <p class="sb"><a href="PDF/U1D200.pdf" title="1D200-1D24F">Ancient Greek Musical Notation</a></p>
395
419
  <p class="sb"><a href="PDF/U1D000.pdf" title="1D000-1D0FF">Byzantine Musical Symbols</a></p>
396
420
  <p class="sb"><a href="PDF/U1CF00.pdf" title="1CF00–1CFCF">Znamenny Musical Notation</a></p>
@@ -445,6 +469,7 @@ table.map p.sg { padding: 5px 1px 5px 1px; }
445
469
  <p class="mb"><a href="PDF/U102E0.pdf" title="102E0-102FF">Coptic Epact Numbers</a></p>
446
470
  <p class="mb"><a href="PDF/U1D360.pdf" title="1D360-1D37F">Counting Rod Numerals</a></p>
447
471
  <p class="mb"><a href="PDF/U12400.pdf" title="12400-1247F">Cuneiform Numbers and Punctuation</a></p>
472
+ <p class="sb"><a href="PDF/U12550.pdf" title="12550-1268F">Archaic Cuneiform Numbers</a></p>
448
473
  <p class="mb"><a href="PDF/U1EC70.pdf" title="1EC70-1ECBF">Indic Siyaq Numbers</a></p>
449
474
  <p class="mb"><a href="PDF/U1D2C0.pdf" title="1D2C0–1D2DF">Kaktovik Numerals</a></p>
450
475
  <p class="mb"><a href="PDF/U1D2E0.pdf" title="1D2E0-1D2FF">Mayan Numerals</a></p>
@@ -462,6 +487,7 @@ table.map p.sg { padding: 5px 1px 5px 1px; }
462
487
  <p class="sb"><a href="PDF/U1F800.pdf" title="1F800-1F8FF">Supplemental Arrows-C</a></p>
463
488
  <p class="pb"><a href="PDF/U2B00.pdf" title="2B00-2BFF">Additional Arrows</a></p>
464
489
  <p class="sb"><a href="PDF/U2B00.pdf" title="2B00-2BFF">Miscellaneous Symbols and Arrows</a></p>
490
+ <p class="sb"><a href="PDF/U1DB00.pdf" title="1DB00-1DBFF">Miscellaneous Symbols and Arrows Extended</a></p>
465
491
  <p class="mb"><a href="PDF/U1D400.pdf" title="1D400-1D7FF">Mathematical Alphanumeric Symbols</a></p>
466
492
  <p class="sb"><a href="PDF/U1EE00.pdf" title="1EE00-1EEFF">Arabic Mathematical Alphabetic Symbols</a></p>
467
493
  <p class="sb"><a href="PDF/U2100.pdf" title="2100-214F">Letterlike Symbols</a></p>
@@ -513,7 +539,10 @@ table.map p.sg { padding: 5px 1px 5px 1px; }
513
539
  <p class="sb"><a href="PDF/U1F0A0.pdf" title="1F0A0-1F0FF">Playing Cards</a></p>
514
540
  <p class="pb"><i><a href="PDF/U2600.pdf" title="2660-2667">Card suits</a></i></p>
515
541
  <p class="mb"><a href="PDF/U2B00.pdf" title="2B00-2BFF">Miscellaneous Symbols and Arrows</a></p>
542
+ <p class="sb"><a href="PDF/U1CEC0.pdf" title="1CEC0-1CEFF">Miscellaneous Symbols Supplement</a></p>
543
+ <p class="sb"><a href="PDF/U1DB00.pdf" title="1DB00-1DBFF">Miscellaneous Symbols and Arrows Extended</a></p>
516
544
  <p class="mb"><a href="PDF/U1FB00.pdf" title="1FB00–1FBFF">Symbols for Legacy Computing</a></p>
545
+ <p class="sb"><a href="PDF/U1CC00.pdf" title="1CC00-1CEBF">Symbols for Legacy Computing Supplement</a></p>
517
546
  <p class="mb">Yijing Symbols</p>
518
547
  <p class="pb"><a href="PDF/U2600.pdf" title="268A-268F, 2630-2637">Yijing Mono-, Di- and Trigrams</a></p>
519
548
  <p class="sb"><a href="PDF/U4DC0.pdf" title="4DC0-4DFF">Yijing Hexagram Symbols</a></p>
@@ -577,8 +606,8 @@ table.map p.sg { padding: 5px 1px 5px 1px; }
577
606
  its code in the search box at the top. To access a chart for a given block, click on its
578
607
  entry in the table. The charts are PDF files, and some of them may be very
579
608
  large. For frequent access to the same chart, right-click and save the file
580
- to your disk. For an alphabetical index of character and block names,
581
- use the <a href="charindex.html">Unicode Character Names Index</a>.</p>
609
+ to your disk. For an interactive index of character names,
610
+ use the <a href="/charts/charindex.html">Unicode Character Names Index</a>.</p>
582
611
 
583
612
  </div>
584
613
  <hr style="width:50%;">
@@ -11,10 +11,9 @@
11
11
  // enabled, however, so this would need to be adjusted for cross-origin
12
12
  // browser use.)
13
13
 
14
- import fs from 'fs/promises';
14
+ import fs from 'node:fs/promises';
15
15
 
16
16
  import download from 'download';
17
- import extract from 'extract-zip';
18
17
 
19
18
  // eslint-disable-next-line no-shadow -- Clearer
20
19
  import fetch from 'file-fetch';
@@ -25,26 +24,40 @@ import parseUnihanFromTextFileStrings from
25
24
  const args = process.argv.slice(2);
26
25
 
27
26
  const targetDir = `${process.cwd()}/download/unihan`;
28
- const unihanZip = `${targetDir}/Unihan.zip`;
29
27
  const targetJSONUnihan = `${targetDir}/unihan.json`;
30
-
28
+ const targetUnihanFields =
29
+ `${process.cwd()}/browser_action/unicode/unihanFields.js`;
31
30
  if (args.includes('download')) {
32
31
  await download(
33
- 'https://www.unicode.org/Public/UCD/latest/ucd/Unihan.zip', targetDir
32
+ 'https://www.unicode.org/Public/UCD/latest/ucd/Unihan.zip', targetDir, {extract: true}
34
33
  );
35
34
  // eslint-disable-next-line no-console -- CLI
36
- console.log('Completed download portion');
37
- }
38
-
39
- if (args.includes('extract') || args.includes('download')) {
40
- await extract(unihanZip, {dir: targetDir});
41
- await fs.unlink(unihanZip);
42
- // eslint-disable-next-line no-console -- CLI
43
- console.log('Completed extraction');
35
+ console.log('Completed download and extraction portion');
44
36
  }
45
37
 
46
38
  await addScript(targetDir);
47
39
 
40
+ /**
41
+ * Formats string values as single-quoted, comma-separated JS array
42
+ * entries wrapped at ~78 characters, matching this project's lint style.
43
+ * @param {string[]} values
44
+ * @returns {string}
45
+ */
46
+ function formatQuotedArrayLines (values) {
47
+ const lines = [];
48
+ let line = ' ';
49
+ values.forEach((value, idx) => {
50
+ const piece = `'${value}'${idx === values.length - 1 ? '' : ', '}`;
51
+ if (line.length > 2 && line.length + piece.length > 78) {
52
+ lines.push(line.trimEnd());
53
+ line = ' ';
54
+ }
55
+ line += piece;
56
+ });
57
+ lines.push(line.trimEnd());
58
+ return lines.join('\n');
59
+ }
60
+
48
61
  /**
49
62
  * @param {string} baseURL
50
63
  * @returns {Promise<void>}
@@ -64,9 +77,26 @@ async function addScript (baseURL) {
64
77
  return await fileObj.text();
65
78
  }));
66
79
 
67
- const arr = parseUnihanFromTextFileStrings(scriptFileAsStrings);
80
+ const {rows, fields} = parseUnihanFromTextFileStrings(scriptFileAsStrings);
81
+
82
+ await fs.writeFile(targetJSONUnihan, JSON.stringify(rows));
83
+
84
+ // Drop the leading `code_pt` entry: `unicodecharref.js`'s `Unihan`
85
+ // display array only lists the actual Unihan fields, correlating
86
+ // positionally with each row's data (which is likewise stored without
87
+ // its own leading code point; see `UnihanDatabase.upgradeneeded`).
88
+ const unihanFields = fields.slice(1);
89
+ await fs.writeFile(
90
+ targetUnihanFields,
91
+ '// Auto-generated by `tools/unihan-import.js`; do not edit by hand.\n' +
92
+ '// Must stay in the exact column order used to build\n' +
93
+ '// `download/unihan/unihan.json` (see\n' +
94
+ '// `parseUnihanFromTextFileStrings.js`), since `unicodecharref.js`\n' +
95
+ "// reads values by this array's position.\n" +
96
+ `const unihanFields = [\n${formatQuotedArrayLines(unihanFields)}\n];\n\n` +
97
+ 'export default unihanFields;\n'
98
+ );
68
99
 
69
- await fs.writeFile(targetJSONUnihan, JSON.stringify(arr));
70
100
  // eslint-disable-next-line no-console -- CLI
71
101
  console.log('Wrote file');
72
102
  }
@@ -0,0 +1,16 @@
1
+ import fs from 'node:fs/promises';
2
+
3
+ const {version} = JSON.parse(await fs.readFile('package.json', 'utf8'));
4
+
5
+ const swPath = 'sw.js';
6
+ const sw = await fs.readFile(swPath, 'utf8');
7
+
8
+ const buildVersionPattern = /const BUILD_VERSION = '[^']*';/v;
9
+ if (!buildVersionPattern.test(sw)) {
10
+ throw new Error(`Could not find \`BUILD_VERSION\` declaration in ${swPath}`);
11
+ }
12
+
13
+ await fs.writeFile(
14
+ swPath,
15
+ sw.replace(buildVersionPattern, () => `const BUILD_VERSION = '${version}';`)
16
+ );
package/tsconfig.json ADDED
@@ -0,0 +1,23 @@
1
+ {
2
+ "compilerOptions": {
3
+ "lib": ["ESNext", "DOM", "WebWorker"],
4
+ "types": ["node"],
5
+ "moduleResolution": "NodeNext",
6
+ "module": "NodeNext",
7
+ "allowJs": true,
8
+ "checkJs": true,
9
+ "noEmit": true,
10
+ "strict": true,
11
+ "target": "es2024",
12
+ "skipLibCheck": true
13
+ },
14
+ "include": [
15
+ "*.js",
16
+ "lib/**/*.js",
17
+ "browser_action/**/*.js",
18
+ "cypress/**/*.js",
19
+ "tools/**/*.js",
20
+ "typings/**/*.d.ts"
21
+ ],
22
+ "exclude": ["node_modules"]
23
+ }
@@ -0,0 +1,5 @@
1
+ declare global {
2
+ var __coverage__: {};
3
+ }
4
+
5
+ export {};
@@ -0,0 +1,17 @@
1
+ declare module 'apple-system-profiler' {
2
+ interface Info {
3
+ name: string,
4
+ items: import('plist').PlistValue,
5
+ properties: import('plist').PlistValue
6
+ }
7
+
8
+ interface Options {
9
+ dataTypes?: string[],
10
+ maxBuffer?: number,
11
+ timeout?: number|string,
12
+ detailLevel?: "mini"|"basic"|"full",
13
+ normalize?: boolean,
14
+ cwd?: string
15
+ }
16
+ export function systemProfiler (opts: Options): Promise<Info[] | import('plist').PlistValue>
17
+ }
@@ -0,0 +1,19 @@
1
+ declare global {
2
+ namespace Cypress {
3
+ interface Chainable<Subject = any> {
4
+ clearIndexedDB(): Chainable<void>;
5
+
6
+ checkAccessibility(): Chainable<void>;
7
+
8
+ visitURLAndCheckAccessibility(
9
+ url: string, options?: Partial<Cypress.VisitOptions>
10
+ ): Chainable<void>;
11
+
12
+ clearAndType(sel: string, text: string) : Chainable<void>;
13
+
14
+ clearTypeAndBlur(sel: string, text: string) : Chainable<void>;
15
+ }
16
+ }
17
+ }
18
+
19
+ export {}
@@ -0,0 +1,4 @@
1
+ declare module 'json-6' {
2
+ const val: any;
3
+ export default val;
4
+ }
@@ -0,0 +1,3 @@
1
+ declare module 'rollup-plugin-istanbul' {
2
+ export default function istanbul (): import('rollup').Plugin<any>
3
+ }
@@ -0,0 +1,154 @@
1
+ export type Options = {
2
+ /**
3
+ Uppercase the first character: `foo-bar` → `FooBar`
4
+
5
+ @default false
6
+
7
+ @example
8
+ ```
9
+ import camelCase from 'camelcase';
10
+
11
+ camelCase('foo-bar', {pascalCase: true});
12
+ //=> 'FooBar'
13
+
14
+ camelCase('foo-bar', {pascalCase: false});
15
+ //=> 'fooBar'
16
+ ```
17
+ */
18
+ readonly pascalCase?: boolean;
19
+
20
+ /**
21
+ Preserve consecutive uppercase characters: `foo-BAR` → `FooBAR`
22
+
23
+ @default false
24
+
25
+ @example
26
+ ```
27
+ import camelCase from 'camelcase';
28
+
29
+ camelCase('foo-BAR', {preserveConsecutiveUppercase: true});
30
+ //=> 'fooBAR'
31
+
32
+ camelCase('foo-BAR', {preserveConsecutiveUppercase: false});
33
+ //=> 'fooBar'
34
+ ````
35
+ */
36
+ readonly preserveConsecutiveUppercase?: boolean;
37
+
38
+ /**
39
+ Controls whether letters immediately following digits are treated as word boundaries.
40
+
41
+ **When `true` (default):**
42
+ Capitalize the first letter immediately following a numeric sequence, unless a separator intervenes. This aligns with most utilities, such as Lodash.
43
+
44
+ **When `false`:**
45
+ Do not treat digits as word boundaries. Preserve the original case of letters immediately following digits. Separators still create word boundaries. This follows the Google Java Style Guide which treats numbers as non-boundary characters.
46
+
47
+ @default true
48
+
49
+ @example
50
+ ```
51
+ import camelCase from 'camelcase';
52
+
53
+ camelCase('foo2bar', {capitalizeAfterNumber: true});
54
+ //=> 'foo2Bar' (capitalizes 'b' after digit)
55
+
56
+ camelCase('foo2bar', {capitalizeAfterNumber: false});
57
+ //=> 'foo2bar' (preserves lowercase 'b')
58
+
59
+ // Preserves original case after numbers when false
60
+ camelCase('Textures_3d', {capitalizeAfterNumber: false});
61
+ //=> 'textures3d' (preserves lowercase 'd')
62
+
63
+ camelCase('Textures_3D', {capitalizeAfterNumber: false});
64
+ //=> 'textures3D' (preserves uppercase 'D')
65
+
66
+ // Separators still create boundaries
67
+ camelCase('foo_2_bar', {capitalizeAfterNumber: false});
68
+ //=> 'foo2Bar' ('bar' follows separator, not digit)
69
+ ```
70
+ */
71
+ readonly capitalizeAfterNumber?: boolean;
72
+
73
+ /**
74
+ The locale parameter indicates the locale to be used to convert to upper/lower case according to any locale-specific case mappings. If multiple locales are given in an array, the best available locale is used.
75
+
76
+ Default: The host environment’s current locale.
77
+
78
+ @example
79
+ ```
80
+ import camelCase from 'camelcase';
81
+
82
+ camelCase('lorem-ipsum', {locale: 'en-US'});
83
+ //=> 'loremIpsum'
84
+
85
+ camelCase('lorem-ipsum', {locale: 'tr-TR'});
86
+ //=> 'loremİpsum'
87
+
88
+ camelCase('lorem-ipsum', {locale: ['en-US', 'en-GB']});
89
+ //=> 'loremIpsum'
90
+
91
+ camelCase('lorem-ipsum', {locale: ['tr', 'TR', 'tr-TR']});
92
+ //=> 'loremİpsum'
93
+ ```
94
+
95
+ Setting `locale: false` ignores the platform locale and uses the [Unicode Default Case Conversion](https://unicode-org.github.io/icu/userguide/transforms/casemappings.html#simple-single-character-case-mapping) algorithm:
96
+
97
+ @example
98
+ ```
99
+ import camelCase from 'camelcase';
100
+
101
+ // On a platform with `tr-TR`.`
102
+
103
+ camelCase('lorem-ipsum');
104
+ //=> 'loremİpsum'
105
+
106
+ camelCase('lorem-ipsum', {locale: false});
107
+ //=> 'loremIpsum'
108
+ ```
109
+ */
110
+ readonly locale?: false | string | readonly string[];
111
+ };
112
+
113
+ /**
114
+ Convert a dash/dot/underscore/space separated string to camelCase or PascalCase: `foo-bar` → `fooBar`.
115
+
116
+ Correctly handles Unicode strings.
117
+
118
+ @param input - The string to convert to camel case.
119
+
120
+ @example
121
+ ```
122
+ import camelCase from 'camelcase';
123
+
124
+ camelCase('foo-bar');
125
+ //=> 'fooBar'
126
+
127
+ camelCase('foo_bar');
128
+ //=> 'fooBar'
129
+
130
+ camelCase('Foo-Bar');
131
+ //=> 'fooBar'
132
+
133
+ camelCase('розовый_пушистый_единорог');
134
+ //=> 'розовыйПушистыйЕдинорог'
135
+
136
+ camelCase('foo bar');
137
+ //=> 'fooBar'
138
+
139
+ console.log(process.argv[3]);
140
+ //=> '--foo-bar'
141
+ camelCase(process.argv[3]);
142
+ //=> 'fooBar'
143
+
144
+ camelCase(['foo', 'bar']);
145
+ //=> 'fooBar'
146
+
147
+ camelCase(['__foo__', '--bar']);
148
+ //=> '__fooBar'
149
+ ```
150
+ */
151
+ export default function camelcase(
152
+ input: string | readonly string[],
153
+ options?: Options
154
+ ): string;