diff --git a/.github/workflows/pr-build-validation.yml b/.github/workflows/pr-build-validation.yml index 5474c726da..b069ee35ec 100644 --- a/.github/workflows/pr-build-validation.yml +++ b/.github/workflows/pr-build-validation.yml @@ -10,7 +10,7 @@ jobs: strategy: matrix: - fontName: ["Iosevka", "IosevkaSlab", "IosevkaAile", "IosevkaEtoile"] + fontName: ["Iosevka", "IosevkaSlab", "IosevkaAile", "IosevkaEtoile", "IosevkaNoVarTest"] steps: # Checkout repository into `iosevka` sub directory diff --git a/CHANGELOG.md b/CHANGELOG.md index 9b7efaa618..6be6ff4cba 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,30 @@ ## Modifications since last major version +### 31.7.0 + +* Fix Macedonian Cyrillic Gje under italics (#2493). +* Improve widths of overline marks of Serbian italic lower Ghe/Pe/Te. +* Remove crossbar variants for `Z`/`z` when under Polish locale (`PLK`) to avoid confusion with the handwritten `Ż`/`ż` allograph, `Ƶ`/`ƶ`. +* Make serif variants for Latin Capital/Small Schwa (`Ə`/`ə`) only appear under Turkic (Turkish/Azerbaijani/etc.) locales (`TRK`, `AZE`, `GAG`, `KAZ`, `TAT`, `CRT`) as other languages that use Latin Schwa (including the IPA) unify its metrics with Open O (`Ɔ`/`ɔ`) or a literal Turned E (`Ǝ`/`ǝ`). +* Make serifs of Latin Letter Small Capital I (`ɪ`) slightly wider under Quasi-Proportional. +* Make Cyrillic Small Letter Komi Dje (`ԃ`) slightly wider under Quasi-Proportional. +* Make serifs of Small Capital and Modifier Letter Reversed N (`ᴎ`/`ᴻ`) more accurately follow the serifs of `N`. +* Make Som Sign (`⃀`) follow variants of capital `C`. +* Make Latin Capital Letter Small Capital I (`Ɪ`) slightly wider under Etoile. +* Add Characters: + - CYRILLIC CAPITAL LETTER TJE (`U+1C89`) ... CYRILLIC SMALL LETTER TJE (`U+1C8A`). + - COMPOSITION SYMBOL (`U+2384`). + - WHITE DIAMOND IN SQUARE (`U+26CB`). + - DRIVE SLOW SIGN (`U+26DA`). + - SQUARED SALTIRE (`U+26DD`) ... FALLING DIAGONAL IN WHITE CIRCLE IN BLACK SQUARE (`U+26DE`). + - HEAVY CIRCLED SALTIRE (`U+2B59`). + - TOP HALF LEFT PARENTHESIS (`U+2E59`) ... BOTTOM HALF RIGHT PARENTHESIS (`U+2E5C`). + - LATIN CAPITAL LETTER RAMS HORN (`U+A7CB`) (#2506). + - LATIN CAPITAL LETTER S WITH DIAGONAL STROKE (`U+A7CC`) ... LATIN SMALL LETTER S WITH DIAGONAL STROKE (`U+A7CD`). + - LATIN CAPITAL LETTER LAMBDA (`U+A7DA`) ... LATIN CAPITAL LETTER LAMBDA WITH STROKE (`U+A7DC`). + - COUNTING ROD UNIT DIGIT ONE (`U+1D360`) ... COUNTING ROD TENS DIGIT NINE (`U+1D371`). + + ### 31.6.1 - Fix broken accent stacking behavior for partially precomposed characters with leaning anchors (#2492). diff --git a/build-plans.toml b/build-plans.toml index 9d4e6b699e..f04ce4ba3c 100644 --- a/build-plans.toml +++ b/build-plans.toml @@ -875,6 +875,13 @@ shape = 700 menu = 700 css = 700 +[buildPlans.IosevkaNoVarTest] +family = "IosevkaNoVarTest" +spacing = "normal" +serifs = "sans" +noCvSs = true +exportGlyphNames = false + ################################################################################################### # Collect plans diff --git a/changes/31.7.0.md b/changes/31.7.0.md new file mode 100644 index 0000000000..66cfb6b03b --- /dev/null +++ b/changes/31.7.0.md @@ -0,0 +1,21 @@ +* Fix Macedonian Cyrillic Gje under italics (#2493). +* Improve widths of overline marks of Serbian italic lower Ghe/Pe/Te. +* Remove crossbar variants for `Z`/`z` when under Polish locale (`PLK`) to avoid confusion with the handwritten `Ż`/`ż` allograph, `Ƶ`/`ƶ`. +* Make serif variants for Latin Capital/Small Schwa (`Ə`/`ə`) only appear under Turkic (Turkish/Azerbaijani/etc.) locales (`TRK`, `AZE`, `GAG`, `KAZ`, `TAT`, `CRT`) as other languages that use Latin Schwa (including the IPA) unify its metrics with Open O (`Ɔ`/`ɔ`) or a literal Turned E (`Ǝ`/`ǝ`). +* Make serifs of Latin Letter Small Capital I (`ɪ`) slightly wider under Quasi-Proportional. +* Make Cyrillic Small Letter Komi Dje (`ԃ`) slightly wider under Quasi-Proportional. +* Make serifs of Small Capital and Modifier Letter Reversed N (`ᴎ`/`ᴻ`) more accurately follow the serifs of `N`. +* Make Som Sign (`⃀`) follow variants of capital `C`. +* Make Latin Capital Letter Small Capital I (`Ɪ`) slightly wider under Etoile. +* Add Characters: + - CYRILLIC CAPITAL LETTER TJE (`U+1C89`) ... CYRILLIC SMALL LETTER TJE (`U+1C8A`). + - COMPOSITION SYMBOL (`U+2384`). + - WHITE DIAMOND IN SQUARE (`U+26CB`). + - DRIVE SLOW SIGN (`U+26DA`). + - SQUARED SALTIRE (`U+26DD`) ... FALLING DIAGONAL IN WHITE CIRCLE IN BLACK SQUARE (`U+26DE`). + - HEAVY CIRCLED SALTIRE (`U+2B59`). + - TOP HALF LEFT PARENTHESIS (`U+2E59`) ... BOTTOM HALF RIGHT PARENTHESIS (`U+2E5C`). + - LATIN CAPITAL LETTER RAMS HORN (`U+A7CB`) (#2506). + - LATIN CAPITAL LETTER S WITH DIAGONAL STROKE (`U+A7CC`) ... LATIN SMALL LETTER S WITH DIAGONAL STROKE (`U+A7CD`). + - LATIN CAPITAL LETTER LAMBDA (`U+A7DA`) ... LATIN CAPITAL LETTER LAMBDA WITH STROKE (`U+A7DC`). + - COUNTING ROD UNIT DIGIT ONE (`U+1D360`) ... COUNTING ROD TENS DIGIT NINE (`U+1D371`). diff --git a/doc/PACKAGE-LIST.md b/doc/PACKAGE-LIST.md index d23482c475..d7b2c63c60 100644 --- a/doc/PACKAGE-LIST.md +++ b/doc/PACKAGE-LIST.md @@ -1,7 +1,7 @@ -# Package list of Release 31.6.1 +# Package list of Release 31.7.0 ## Prebuilt Packages Iosevka provides a large variety of variants. Prebuilt variants are listed below. For all Monospace variants' packages, it will contain three _spacing variants_. You can either download the package containing all the spacing variants (recommended), or cherry-pick the variant with specific spacing. @@ -22,146 +22,146 @@ Iosevka provides various packaging formats, here is the list of them: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + +
📦 IosevkaMonospace, DefaultSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ IosevkaDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka TermTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka FixedFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SlabMonospace, Slab-serifSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SlabDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SlabTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SlabFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka CurlyMonospace, Curly StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka CurlyDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term CurlyTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed CurlyFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka Curly SlabMonospace, Curly Style, Slab-serifSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka Curly SlabDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term Curly SlabTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed Curly SlabFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS01Monospace, Andale Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS01DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS01TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS01FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS02Monospace, Anonymous Pro StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS02DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS02TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS02FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS03Monospace, Consolas StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS03DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS03TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS03FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS04Monospace, Menlo StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS04DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS04TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS04FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS05Monospace, Fira Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS05DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS05TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS05FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS06Monospace, Liberation Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS06DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS06TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS06FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS07Monospace, Monaco StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS07DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS07TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS07FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS08Monospace, Pragmata Pro StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS08DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS08TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS08FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS09Monospace, Source Code Pro StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS09DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS09TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS09FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS10Monospace, Envy Code R StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS10DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS10TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS10FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS11Monospace, X Windows Fixed StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS11DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS11TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS11FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS12Monospace, Ubuntu Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS12DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS12TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS12FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS13Monospace, Lucida StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS13DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS13TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS13FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS14Monospace, JetBrains Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS14DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS14TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS14FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS15Monospace, IBM Plex Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS15DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS15TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS15FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS16Monospace, PT Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS16DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS16TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS16FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS17Monospace, Recursive Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS17DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS17TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS17FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS18Monospace, Input Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS18DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS18TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS18FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 IosevkaMonospace, DefaultSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ IosevkaDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka TermTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka FixedFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SlabMonospace, Slab-serifSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SlabDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SlabTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SlabFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka CurlyMonospace, Curly StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka CurlyDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term CurlyTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed CurlyFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka Curly SlabMonospace, Curly Style, Slab-serifSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka Curly SlabDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term Curly SlabTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed Curly SlabFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS01Monospace, Andale Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS01DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS01TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS01FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS02Monospace, Anonymous Pro StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS02DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS02TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS02FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS03Monospace, Consolas StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS03DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS03TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS03FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS04Monospace, Menlo StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS04DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS04TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS04FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS05Monospace, Fira Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS05DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS05TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS05FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS06Monospace, Liberation Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS06DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS06TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS06FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS07Monospace, Monaco StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS07DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS07TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS07FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS08Monospace, Pragmata Pro StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS08DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS08TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS08FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS09Monospace, Source Code Pro StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS09DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS09TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS09FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS10Monospace, Envy Code R StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS10DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS10TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS10FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS11Monospace, X Windows Fixed StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS11DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS11TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS11FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS12Monospace, Ubuntu Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS12DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS12TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS12FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS13Monospace, Lucida StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS13DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS13TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS13FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS14Monospace, JetBrains Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS14DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS14TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS14FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS15Monospace, IBM Plex Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS15DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS15TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS15FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS16Monospace, PT Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS16DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS16TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS16FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS17Monospace, Recursive Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS17DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS17TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS17FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS18Monospace, Input Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS18DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS18TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS18FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka AileQuasi-proportional, Sans-serif 
  └ Sub-packagesSpacingLigaturesDownloads
    └ Iosevka AileDefaultNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka AileDefaultNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka EtoileQuasi-proportional, Slab-serif 
  └ Sub-packagesSpacingLigaturesDownloads
    └ Iosevka EtoileDefaultNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka EtoileDefaultNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
diff --git a/doc/cv-influences.md b/doc/cv-influences.md index c65dd60032..ee711b1c6b 100644 --- a/doc/cv-influences.md +++ b/doc/cv-influences.md @@ -53,7 +53,7 @@ - `cv13`: - C (`U+0043`), © (`U+00A9`), Ç (`U+00C7`), Ć (`U+0106`), Ĉ (`U+0108`), Ċ (`U+010A`), Č (`U+010C`), Ɔ (`U+0186`), Ƈ (`U+0187`), Ȼ (`U+023B`), Ϲ (`U+03F9`), Ͻ (`U+03FD`), Ͼ (`U+03FE`), Ͽ (`U+03FF`), С (`U+0421`), Ҁ (`U+0480`), Ҫ (`U+04AA`), Ҽ (`U+04BC`), Ҿ (`U+04BE`), Ԍ (`U+050C`), ᴄ (`U+1D04`), ᴐ (`U+1D10`), Ḉ (`U+1E08`), ₡ (`U+20A1`), ₵ (`U+20B5`), ℃ (`U+2103`), Ⅽ (`U+216D`), Ↄ (`U+2183`), ↅ (`U+2185`), ␆ (`U+2406`), ␍ (`U+240D`), ␑ (`U+2411`), ␒ (`U+2412`), ␓ (`U+2413`), ␔ (`U+2414`), ␘ (`U+2418`), ␛ (`U+241B`), Ⓒ (`U+24B8`), Ꜿ (`U+A73E`), Ꞓ (`U+A792`), Ꞔ (`U+A7C4`), ꟲ (`U+A7F2`),  (`U+E0A3`), 𜳘 (`U+1CCD8`), 𝐂 (`U+1D402`), 𝐶 (`U+1D436`), 𝑪 (`U+1D46A`), 𝖢 (`U+1D5A2`), 𝗖 (`U+1D5D6`), 𝘊 (`U+1D60A`), 𝘾 (`U+1D63E`), 𝙲 (`U+1D672`), 🂬 (`U+1F0AC`), 🂼 (`U+1F0BC`), 🃌 (`U+1F0CC`), 🃜 (`U+1F0DC`), 🄒 (`U+1F112`), 🄫 (`U+1F12B`), 🄭 (`U+1F12D`), 🄯 (`U+1F12F`), 🄲 (`U+1F132`), 🅏 (`U+1F14F`), 🅒 (`U+1F152`), 🅪 (`U+1F16A`), 🅭 (`U+1F16D`), 🅮 (`U+1F16E`), 🅲 (`U+1F172`), 🆋 (`U+1F18B`), 🆏 (`U+1F18F`), 🆑 (`U+1F191`), 🆒 (`U+1F192`), 🆜 (`U+1F19C`), 🆦 (`U+1F1A6`), 🇨 (`U+1F1E8`) + C (`U+0043`), © (`U+00A9`), Ç (`U+00C7`), Ć (`U+0106`), Ĉ (`U+0108`), Ċ (`U+010A`), Č (`U+010C`), Ɔ (`U+0186`), Ƈ (`U+0187`), Ȼ (`U+023B`), Ϲ (`U+03F9`), Ͻ (`U+03FD`), Ͼ (`U+03FE`), Ͽ (`U+03FF`), С (`U+0421`), Ҁ (`U+0480`), Ҫ (`U+04AA`), Ҽ (`U+04BC`), Ҿ (`U+04BE`), Ԍ (`U+050C`), ᴄ (`U+1D04`), ᴐ (`U+1D10`), Ḉ (`U+1E08`), ₡ (`U+20A1`), ₵ (`U+20B5`), ⃀ (`U+20C0`), ℃ (`U+2103`), Ⅽ (`U+216D`), Ↄ (`U+2183`), ↅ (`U+2185`), ␆ (`U+2406`), ␍ (`U+240D`), ␑ (`U+2411`), ␒ (`U+2412`), ␓ (`U+2413`), ␔ (`U+2414`), ␘ (`U+2418`), ␛ (`U+241B`), Ⓒ (`U+24B8`), Ꜿ (`U+A73E`), Ꞓ (`U+A792`), Ꞔ (`U+A7C4`), ꟲ (`U+A7F2`),  (`U+E0A3`), 𜳘 (`U+1CCD8`), 𝐂 (`U+1D402`), 𝐶 (`U+1D436`), 𝑪 (`U+1D46A`), 𝖢 (`U+1D5A2`), 𝗖 (`U+1D5D6`), 𝘊 (`U+1D60A`), 𝘾 (`U+1D63E`), 𝙲 (`U+1D672`), 🂬 (`U+1F0AC`), 🂼 (`U+1F0BC`), 🃌 (`U+1F0CC`), 🃜 (`U+1F0DC`), 🄒 (`U+1F112`), 🄫 (`U+1F12B`), 🄭 (`U+1F12D`), 🄯 (`U+1F12F`), 🄲 (`U+1F132`), 🅏 (`U+1F14F`), 🅒 (`U+1F152`), 🅪 (`U+1F16A`), 🅭 (`U+1F16D`), 🅮 (`U+1F16E`), 🅲 (`U+1F172`), 🆋 (`U+1F18B`), 🆏 (`U+1F18F`), 🆑 (`U+1F191`), 🆒 (`U+1F192`), 🆜 (`U+1F19C`), 🆦 (`U+1F1A6`), 🇨 (`U+1F1E8`) - `cv14`: @@ -113,11 +113,11 @@ - `cv28`: - $ (`U+0024`), S (`U+0053`), Ś (`U+015A`), Ŝ (`U+015C`), Ş (`U+015E`), Š (`U+0160`), Ƨ (`U+01A7`), Ș (`U+0218`), Ѕ (`U+0405`), Ṡ (`U+1E60`), Ṣ (`U+1E62`), Ṥ (`U+1E64`), Ṧ (`U+1E66`), Ṩ (`U+1E68`), ₴ (`U+20B4`), ℠ (`U+2120`), ⅍ (`U+214D`), ␁ (`U+2401`), ␂ (`U+2402`), ␈ (`U+2408`), ␎ (`U+240E`), ␏ (`U+240F`), ␖ (`U+2416`), ␚ (`U+241A`), ␛ (`U+241B`), ␜ (`U+241C`), ␝ (`U+241D`), ␞ (`U+241E`), ␟ (`U+241F`), ␠ (`U+2420`), Ⓢ (`U+24C8`), Ȿ (`U+2C7E`), Ꙅ (`U+A644`), Ꚃ (`U+A682`), ꜱ (`U+A731`), Ꞩ (`U+A7A8`), Ʂ (`U+A7C5`), Ꟊ (`U+A7C9`), 𜳨 (`U+1CCE8`), 𝐒 (`U+1D412`), 𝑆 (`U+1D446`), 𝑺 (`U+1D47A`), 𝖲 (`U+1D5B2`), 𝗦 (`U+1D5E6`), 𝘚 (`U+1D61A`), 𝙎 (`U+1D64E`), 𝚂 (`U+1D682`), 🄏 (`U+1F10F`), 🄢 (`U+1F122`), 🄪 (`U+1F12A`), 🅂 (`U+1F142`), 🅌 (`U+1F14C`), 🅍 (`U+1F14D`), 🅢 (`U+1F162`), 🆂 (`U+1F182`), 🆍 (`U+1F18D`), 🆘 (`U+1F198`), 🆚 (`U+1F19A`), 🆜 (`U+1F19C`), 🆨 (`U+1F1A8`), 🆩 (`U+1F1A9`), 🆪 (`U+1F1AA`), 🇸 (`U+1F1F8`) + $ (`U+0024`), S (`U+0053`), Ś (`U+015A`), Ŝ (`U+015C`), Ş (`U+015E`), Š (`U+0160`), Ƨ (`U+01A7`), Ș (`U+0218`), Ѕ (`U+0405`), Ṡ (`U+1E60`), Ṣ (`U+1E62`), Ṥ (`U+1E64`), Ṧ (`U+1E66`), Ṩ (`U+1E68`), ₴ (`U+20B4`), ℠ (`U+2120`), ⅍ (`U+214D`), ␁ (`U+2401`), ␂ (`U+2402`), ␈ (`U+2408`), ␎ (`U+240E`), ␏ (`U+240F`), ␖ (`U+2416`), ␚ (`U+241A`), ␛ (`U+241B`), ␜ (`U+241C`), ␝ (`U+241D`), ␞ (`U+241E`), ␟ (`U+241F`), ␠ (`U+2420`), Ⓢ (`U+24C8`), Ȿ (`U+2C7E`), Ꙅ (`U+A644`), Ꚃ (`U+A682`), ꜱ (`U+A731`), Ꞩ (`U+A7A8`), Ʂ (`U+A7C5`), Ꟊ (`U+A7C9`), Ꟍ (`U+A7CC`), 𜳨 (`U+1CCE8`), 𝐒 (`U+1D412`), 𝑆 (`U+1D446`), 𝑺 (`U+1D47A`), 𝖲 (`U+1D5B2`), 𝗦 (`U+1D5E6`), 𝘚 (`U+1D61A`), 𝙎 (`U+1D64E`), 𝚂 (`U+1D682`), 🄏 (`U+1F10F`), 🄢 (`U+1F122`), 🄪 (`U+1F12A`), 🅂 (`U+1F142`), 🅌 (`U+1F14C`), 🅍 (`U+1F14D`), 🅢 (`U+1F162`), 🆂 (`U+1F182`), 🆍 (`U+1F18D`), 🆘 (`U+1F198`), 🆚 (`U+1F19A`), 🆜 (`U+1F19C`), 🆨 (`U+1F1A8`), 🆩 (`U+1F1A9`), 🆪 (`U+1F1AA`), 🇸 (`U+1F1F8`) - `cv29`: - T (`U+0054`), Ţ (`U+0162`), Ť (`U+0164`), Ŧ (`U+0166`), Ƭ (`U+01AC`), Ʈ (`U+01AE`), Ț (`U+021A`), Ⱦ (`U+023E`), Τ (`U+03A4`), Т (`U+0422`), т (`U+0442`), Ҭ (`U+04AC`), ҭ (`U+04AD`), Ҵ (`U+04B4`), ҵ (`U+04B5`), Ԏ (`U+050E`), ԏ (`U+050F`), ᲄ (`U+1C84`), ᴛ (`U+1D1B`), ᵀ (`U+1D40`), Ṫ (`U+1E6A`), Ṭ (`U+1E6C`), Ṯ (`U+1E6E`), Ṱ (`U+1E70`), ₮ (`U+20AE`), ₸ (`U+20B8`), ℡ (`U+2121`), ™ (`U+2122`), ␂ (`U+2402`), ␃ (`U+2403`), ␄ (`U+2404`), ␉ (`U+2409`), ␋ (`U+240B`), ␗ (`U+2417`), Ⓣ (`U+24C9`), ⷮ (`U+2DEE`), ⷵ (`U+2DF5`), Ꚋ (`U+A68A`), ꚋ (`U+A68B`), Ꚍ (`U+A68C`), ꚍ (`U+A68D`), Ꚓ (`U+A692`), ꚓ (`U+A693`), Ʇ (`U+A7B1`), 𜳩 (`U+1CCE9`), 𝐓 (`U+1D413`), 𝑇 (`U+1D447`), 𝑻 (`U+1D47B`), 𝖳 (`U+1D5B3`), 𝗧 (`U+1D5E7`), 𝘛 (`U+1D61B`), 𝙏 (`U+1D64F`), 𝚃 (`U+1D683`), 𝚻 (`U+1D6BB`), 𝛵 (`U+1D6F5`), 𝜯 (`U+1D72F`), 𝝩 (`U+1D769`), 𝞣 (`U+1D7A3`), 𞁀 (`U+1E040`), 🄣 (`U+1F123`), 🅃 (`U+1F143`), 🅣 (`U+1F163`), 🆃 (`U+1F183`), 🇹 (`U+1F1F9`) + T (`U+0054`), Ţ (`U+0162`), Ť (`U+0164`), Ŧ (`U+0166`), Ƭ (`U+01AC`), Ʈ (`U+01AE`), Ț (`U+021A`), Ⱦ (`U+023E`), Τ (`U+03A4`), Т (`U+0422`), т (`U+0442`), Ҭ (`U+04AC`), ҭ (`U+04AD`), Ҵ (`U+04B4`), ҵ (`U+04B5`), Ԏ (`U+050E`), ԏ (`U+050F`), ᲄ (`U+1C84`), Ᲊ (`U+1C89`), ᲊ (`U+1C8A`), ᴛ (`U+1D1B`), ᵀ (`U+1D40`), Ṫ (`U+1E6A`), Ṭ (`U+1E6C`), Ṯ (`U+1E6E`), Ṱ (`U+1E70`), ₮ (`U+20AE`), ₸ (`U+20B8`), ℡ (`U+2121`), ™ (`U+2122`), ␂ (`U+2402`), ␃ (`U+2403`), ␄ (`U+2404`), ␉ (`U+2409`), ␋ (`U+240B`), ␗ (`U+2417`), Ⓣ (`U+24C9`), ⷮ (`U+2DEE`), ⷵ (`U+2DF5`), Ꚋ (`U+A68A`), ꚋ (`U+A68B`), Ꚍ (`U+A68C`), ꚍ (`U+A68D`), Ꚓ (`U+A692`), ꚓ (`U+A693`), Ʇ (`U+A7B1`), 𜳩 (`U+1CCE9`), 𝐓 (`U+1D413`), 𝑇 (`U+1D447`), 𝑻 (`U+1D47B`), 𝖳 (`U+1D5B3`), 𝗧 (`U+1D5E7`), 𝘛 (`U+1D61B`), 𝙏 (`U+1D64F`), 𝚃 (`U+1D683`), 𝚻 (`U+1D6BB`), 𝛵 (`U+1D6F5`), 𝜯 (`U+1D72F`), 𝝩 (`U+1D769`), 𝞣 (`U+1D7A3`), 𞁀 (`U+1E040`), 🄣 (`U+1F123`), 🅃 (`U+1F143`), 🅣 (`U+1F163`), 🆃 (`U+1F183`), 🇹 (`U+1F1F9`) - `cv30`: @@ -153,7 +153,7 @@ - `cv38`: - c (`U+0063`), ¢ (`U+00A2`), ç (`U+00E7`), ć (`U+0107`), ĉ (`U+0109`), ċ (`U+010B`), č (`U+010D`), ƈ (`U+0188`), ȼ (`U+023C`), ɔ (`U+0254`), ɕ (`U+0255`), ʗ (`U+0297`), ʨ (`U+02A8`), ͨ (`U+0368`), с (`U+0441`), ҁ (`U+0481`), ҫ (`U+04AB`), ҽ (`U+04BD`), ҿ (`U+04BF`), ԍ (`U+050D`), ᲃ (`U+1C83`), ᴒ (`U+1D12`), ᵓ (`U+1D53`), ᶗ (`U+1D97`), ᶜ (`U+1D9C`), ᶝ (`U+1D9D`), ᷗ (`U+1DD7`), ḉ (`U+1E09`), ⃀ (`U+20C0`), ℀ (`U+2100`), ℅ (`U+2105`), ℆ (`U+2106`), ⅽ (`U+217D`), ↄ (`U+2184`), ⒞ (`U+249E`), ⓒ (`U+24D2`), ⷭ (`U+2DED`), ⷵ (`U+2DF5`), ꜿ (`U+A73F`), ꞓ (`U+A793`), ꞔ (`U+A794`), ꬿ (`U+AB3F`), ꭢ (`U+AB62`), 𐞫 (`U+107AB`), 𝐜 (`U+1D41C`), 𝑐 (`U+1D450`), 𝒄 (`U+1D484`), 𝖼 (`U+1D5BC`), 𝗰 (`U+1D5F0`), 𝘤 (`U+1D624`), 𝙘 (`U+1D658`), 𝚌 (`U+1D68C`), 𝼝 (`U+1DF1D`), 𞀿 (`U+1E03F`), 𞁞 (`U+1E05E`), 𞁫 (`U+1E06B`) + c (`U+0063`), ¢ (`U+00A2`), ç (`U+00E7`), ć (`U+0107`), ĉ (`U+0109`), ċ (`U+010B`), č (`U+010D`), ƈ (`U+0188`), ȼ (`U+023C`), ɔ (`U+0254`), ɕ (`U+0255`), ʗ (`U+0297`), ʨ (`U+02A8`), ͨ (`U+0368`), с (`U+0441`), ҁ (`U+0481`), ҫ (`U+04AB`), ҽ (`U+04BD`), ҿ (`U+04BF`), ԍ (`U+050D`), ᲃ (`U+1C83`), ᴒ (`U+1D12`), ᵓ (`U+1D53`), ᶗ (`U+1D97`), ᶜ (`U+1D9C`), ᶝ (`U+1D9D`), ᷗ (`U+1DD7`), ḉ (`U+1E09`), ℀ (`U+2100`), ℅ (`U+2105`), ℆ (`U+2106`), ⅽ (`U+217D`), ↄ (`U+2184`), ⒞ (`U+249E`), ⓒ (`U+24D2`), ⷭ (`U+2DED`), ⷵ (`U+2DF5`), ꜿ (`U+A73F`), ꞓ (`U+A793`), ꞔ (`U+A794`), ꬿ (`U+AB3F`), ꭢ (`U+AB62`), 𐞫 (`U+107AB`), 𝐜 (`U+1D41C`), 𝑐 (`U+1D450`), 𝒄 (`U+1D484`), 𝖼 (`U+1D5BC`), 𝗰 (`U+1D5F0`), 𝘤 (`U+1D624`), 𝙘 (`U+1D658`), 𝚌 (`U+1D68C`), 𝼝 (`U+1DF1D`), 𞀿 (`U+1E03F`), 𞁞 (`U+1E05E`), 𞁫 (`U+1E06B`) - `cv39`: @@ -213,7 +213,7 @@ - `cv53`: - s (`U+0073`), ś (`U+015B`), ŝ (`U+015D`), ş (`U+015F`), š (`U+0161`), ƨ (`U+01A8`), ƾ (`U+01BE`), ș (`U+0219`), ȿ (`U+023F`), ʂ (`U+0282`), ʦ (`U+02A6`), ʪ (`U+02AA`), ˢ (`U+02E2`), ѕ (`U+0455`), ᵴ (`U+1D74`), ᶊ (`U+1D8A`), ᶳ (`U+1DB3`), ᷤ (`U+1DE4`), ṡ (`U+1E61`), ṣ (`U+1E63`), ṥ (`U+1E65`), ṧ (`U+1E67`), ṩ (`U+1E69`), ₛ (`U+209B`), ₨ (`U+20A8`), ℁ (`U+2101`), ⒮ (`U+24AE`), ⓢ (`U+24E2`), ꙅ (`U+A645`), ꚃ (`U+A683`), ꞩ (`U+A7A9`), ꟊ (`U+A7CA`), ꭧ (`U+AB67`), st (`U+FB06`), 𐞙 (`U+10799`), 𐞬 (`U+107AC`), 𐞭 (`U+107AD`), 𐞺 (`U+107BA`), 𝐬 (`U+1D42C`), 𝑠 (`U+1D460`), 𝒔 (`U+1D494`), 𝗌 (`U+1D5CC`), 𝘀 (`U+1D600`), 𝘴 (`U+1D634`), 𝙨 (`U+1D668`), 𝚜 (`U+1D69C`), 𝼞 (`U+1DF1E`), 𞁩 (`U+1E069`) + s (`U+0073`), ś (`U+015B`), ŝ (`U+015D`), ş (`U+015F`), š (`U+0161`), ƨ (`U+01A8`), ƾ (`U+01BE`), ș (`U+0219`), ȿ (`U+023F`), ʂ (`U+0282`), ʦ (`U+02A6`), ʪ (`U+02AA`), ˢ (`U+02E2`), ѕ (`U+0455`), ᵴ (`U+1D74`), ᶊ (`U+1D8A`), ᶳ (`U+1DB3`), ᷤ (`U+1DE4`), ṡ (`U+1E61`), ṣ (`U+1E63`), ṥ (`U+1E65`), ṧ (`U+1E67`), ṩ (`U+1E69`), ₛ (`U+209B`), ₨ (`U+20A8`), ℁ (`U+2101`), ⒮ (`U+24AE`), ⓢ (`U+24E2`), ꙅ (`U+A645`), ꚃ (`U+A683`), ꞩ (`U+A7A9`), ꟊ (`U+A7CA`), ꟍ (`U+A7CD`), ꭧ (`U+AB67`), st (`U+FB06`), 𐞙 (`U+10799`), 𐞬 (`U+107AC`), 𐞭 (`U+107AD`), 𐞺 (`U+107BA`), 𝐬 (`U+1D42C`), 𝑠 (`U+1D460`), 𝒔 (`U+1D494`), 𝗌 (`U+1D5CC`), 𝘀 (`U+1D600`), 𝘴 (`U+1D634`), 𝙨 (`U+1D668`), 𝚜 (`U+1D69C`), 𝼞 (`U+1DF1E`), 𞁩 (`U+1E069`) - `cv54`: @@ -289,11 +289,11 @@ - `cv72`: - Λ (`U+039B`), Ѧ (`U+0466`), ѧ (`U+0467`), Ѩ (`U+0468`), ѩ (`U+0469`), ᴧ (`U+1D27`), ⷽ (`U+2DFD`), 𝚲 (`U+1D6B2`), 𝛬 (`U+1D6EC`), 𝜦 (`U+1D726`), 𝝠 (`U+1D760`), 𝞚 (`U+1D79A`) + Λ (`U+039B`), Ѧ (`U+0466`), ѧ (`U+0467`), Ѩ (`U+0468`), ѩ (`U+0469`), ᴧ (`U+1D27`), ⷽ (`U+2DFD`), Ꟛ (`U+A7DA`), Ƛ (`U+A7DC`), 𝚲 (`U+1D6B2`), 𝛬 (`U+1D6EC`), 𝜦 (`U+1D726`), 𝝠 (`U+1D760`), 𝞚 (`U+1D79A`) - `cv73`: - ƛ (`U+019B`), λ (`U+03BB`), 𝛌 (`U+1D6CC`), 𝜆 (`U+1D706`), 𝝀 (`U+1D740`), 𝝺 (`U+1D77A`), 𝞴 (`U+1D7B4`) + ƛ (`U+019B`), λ (`U+03BB`), ꟛ (`U+A7DB`), 𝛌 (`U+1D6CC`), 𝜆 (`U+1D706`), 𝝀 (`U+1D740`), 𝝺 (`U+1D77A`), 𝞴 (`U+1D7B4`) - `cv74`: @@ -381,7 +381,7 @@ - `cv95`: - ƅ (`U+0185`), ъ (`U+044A`), ь (`U+044C`), љ (`U+0459`), њ (`U+045A`), ѣ (`U+0463`), ҍ (`U+048D`), ᲆ (`U+1C86`), ᲇ (`U+1C87`), ⷺ (`U+2DFA`), ꙏ (`U+A64F`), ꙓ (`U+A653`), ꙸ (`U+A678`), ꙺ (`U+A67A`), ꚜ (`U+A69C`), ꚝ (`U+A69D`), ꭠ (`U+AB60`), 𞁥 (`U+1E065`) + ƅ (`U+0185`), ъ (`U+044A`), ь (`U+044C`), љ (`U+0459`), њ (`U+045A`), ѣ (`U+0463`), ҍ (`U+048D`), ᲆ (`U+1C86`), ᲇ (`U+1C87`), ᲊ (`U+1C8A`), ⷺ (`U+2DFA`), ꙏ (`U+A64F`), ꙓ (`U+A653`), ꙸ (`U+A678`), ꙺ (`U+A67A`), ꚜ (`U+A69C`), ꚝ (`U+A69D`), ꭠ (`U+AB60`), 𞁥 (`U+1E065`) - `cv96`: @@ -389,11 +389,11 @@ - `cv97`: - Ə (`U+018F`), Є (`U+0404`), Э (`U+042D`), Ѥ (`U+0464`), Ә (`U+04D8`), Ӛ (`U+04DA`), Ӭ (`U+04EC`), € (`U+20AC`), ℈ (`U+2108`) + Є (`U+0404`), Э (`U+042D`), Ѥ (`U+0464`), Ә (`U+04D8`), Ӛ (`U+04DA`), Ӭ (`U+04EC`), € (`U+20AC`), ℈ (`U+2108`) - `cv98`: - ə (`U+0259`), ɚ (`U+025A`), э (`U+044D`), є (`U+0454`), ѥ (`U+0465`), ә (`U+04D9`), ӛ (`U+04DB`), ӭ (`U+04ED`), ᵊ (`U+1D4A`), ᶕ (`U+1D95`), ᷪ (`U+1DEA`), ₔ (`U+2094`), ꙴ (`U+A674`), ꚟ (`U+A69F`), 𞁈 (`U+1E048`), 𞁋 (`U+1E04B`) + э (`U+044D`), є (`U+0454`), ѥ (`U+0465`), ә (`U+04D9`), ӛ (`U+04DB`), ӭ (`U+04ED`), ꙴ (`U+A674`), ꚟ (`U+A69F`), 𞁈 (`U+1E048`), 𞁋 (`U+1E04B`) - `cv99`: @@ -445,7 +445,7 @@ - `VSAG`: - \( (`U+0028`), \) (`U+0029`), ⁽ (`U+207D`), ⁾ (`U+207E`), ₍ (`U+208D`), ₎ (`U+208E`), ⸨ (`U+2E28`), ⸩ (`U+2E29`) + \( (`U+0028`), \) (`U+0029`), ⁽ (`U+207D`), ⁾ (`U+207E`), ₍ (`U+208D`), ₎ (`U+208E`), ⸨ (`U+2E28`), ⸩ (`U+2E29`), ⹙ (`U+2E59`), ⹚ (`U+2E5A`), ⹛ (`U+2E5B`), ⹜ (`U+2E5C`) - `VSAH`: @@ -580,7 +580,7 @@ - `cv13`: - C (`U+0043`), © (`U+00A9`), Ç (`U+00C7`), Ć (`U+0106`), Ĉ (`U+0108`), Ċ (`U+010A`), Č (`U+010C`), Ɔ (`U+0186`), Ƈ (`U+0187`), Ȼ (`U+023B`), Ϲ (`U+03F9`), Ͻ (`U+03FD`), Ͼ (`U+03FE`), Ͽ (`U+03FF`), С (`U+0421`), Ҁ (`U+0480`), Ҫ (`U+04AA`), Ҽ (`U+04BC`), Ҿ (`U+04BE`), Ԍ (`U+050C`), ᴄ (`U+1D04`), ᴐ (`U+1D10`), Ḉ (`U+1E08`), ₡ (`U+20A1`), ₵ (`U+20B5`), ℃ (`U+2103`), Ⅽ (`U+216D`), Ↄ (`U+2183`), ↅ (`U+2185`), ␆ (`U+2406`), ␍ (`U+240D`), ␑ (`U+2411`), ␒ (`U+2412`), ␓ (`U+2413`), ␔ (`U+2414`), ␘ (`U+2418`), ␛ (`U+241B`), Ⓒ (`U+24B8`), Ꜿ (`U+A73E`), Ꞓ (`U+A792`), Ꞔ (`U+A7C4`), ꟲ (`U+A7F2`),  (`U+E0A3`), 𜳘 (`U+1CCD8`), 𝐂 (`U+1D402`), 𝐶 (`U+1D436`), 𝑪 (`U+1D46A`), 𝖢 (`U+1D5A2`), 𝗖 (`U+1D5D6`), 𝘊 (`U+1D60A`), 𝘾 (`U+1D63E`), 𝙲 (`U+1D672`), 🂬 (`U+1F0AC`), 🂼 (`U+1F0BC`), 🃌 (`U+1F0CC`), 🃜 (`U+1F0DC`), 🄒 (`U+1F112`), 🄫 (`U+1F12B`), 🄭 (`U+1F12D`), 🄯 (`U+1F12F`), 🄲 (`U+1F132`), 🅏 (`U+1F14F`), 🅒 (`U+1F152`), 🅪 (`U+1F16A`), 🅭 (`U+1F16D`), 🅮 (`U+1F16E`), 🅲 (`U+1F172`), 🆋 (`U+1F18B`), 🆏 (`U+1F18F`), 🆑 (`U+1F191`), 🆒 (`U+1F192`), 🆜 (`U+1F19C`), 🆦 (`U+1F1A6`), 🇨 (`U+1F1E8`) + C (`U+0043`), © (`U+00A9`), Ç (`U+00C7`), Ć (`U+0106`), Ĉ (`U+0108`), Ċ (`U+010A`), Č (`U+010C`), Ɔ (`U+0186`), Ƈ (`U+0187`), Ȼ (`U+023B`), Ϲ (`U+03F9`), Ͻ (`U+03FD`), Ͼ (`U+03FE`), Ͽ (`U+03FF`), С (`U+0421`), Ҁ (`U+0480`), Ҫ (`U+04AA`), Ҽ (`U+04BC`), Ҿ (`U+04BE`), Ԍ (`U+050C`), ᴄ (`U+1D04`), ᴐ (`U+1D10`), Ḉ (`U+1E08`), ₡ (`U+20A1`), ₵ (`U+20B5`), ⃀ (`U+20C0`), ℃ (`U+2103`), Ⅽ (`U+216D`), Ↄ (`U+2183`), ↅ (`U+2185`), ␆ (`U+2406`), ␍ (`U+240D`), ␑ (`U+2411`), ␒ (`U+2412`), ␓ (`U+2413`), ␔ (`U+2414`), ␘ (`U+2418`), ␛ (`U+241B`), Ⓒ (`U+24B8`), Ꜿ (`U+A73E`), Ꞓ (`U+A792`), Ꞔ (`U+A7C4`), ꟲ (`U+A7F2`),  (`U+E0A3`), 𜳘 (`U+1CCD8`), 𝐂 (`U+1D402`), 𝐶 (`U+1D436`), 𝑪 (`U+1D46A`), 𝖢 (`U+1D5A2`), 𝗖 (`U+1D5D6`), 𝘊 (`U+1D60A`), 𝘾 (`U+1D63E`), 𝙲 (`U+1D672`), 🂬 (`U+1F0AC`), 🂼 (`U+1F0BC`), 🃌 (`U+1F0CC`), 🃜 (`U+1F0DC`), 🄒 (`U+1F112`), 🄫 (`U+1F12B`), 🄭 (`U+1F12D`), 🄯 (`U+1F12F`), 🄲 (`U+1F132`), 🅏 (`U+1F14F`), 🅒 (`U+1F152`), 🅪 (`U+1F16A`), 🅭 (`U+1F16D`), 🅮 (`U+1F16E`), 🅲 (`U+1F172`), 🆋 (`U+1F18B`), 🆏 (`U+1F18F`), 🆑 (`U+1F191`), 🆒 (`U+1F192`), 🆜 (`U+1F19C`), 🆦 (`U+1F1A6`), 🇨 (`U+1F1E8`) - `cv14`: @@ -640,11 +640,11 @@ - `cv28`: - $ (`U+0024`), S (`U+0053`), Ś (`U+015A`), Ŝ (`U+015C`), Ş (`U+015E`), Š (`U+0160`), Ƨ (`U+01A7`), Ș (`U+0218`), Ѕ (`U+0405`), Ṡ (`U+1E60`), Ṣ (`U+1E62`), Ṥ (`U+1E64`), Ṧ (`U+1E66`), Ṩ (`U+1E68`), ₴ (`U+20B4`), ℠ (`U+2120`), ⅍ (`U+214D`), ␁ (`U+2401`), ␂ (`U+2402`), ␈ (`U+2408`), ␎ (`U+240E`), ␏ (`U+240F`), ␖ (`U+2416`), ␚ (`U+241A`), ␛ (`U+241B`), ␜ (`U+241C`), ␝ (`U+241D`), ␞ (`U+241E`), ␟ (`U+241F`), ␠ (`U+2420`), Ⓢ (`U+24C8`), Ȿ (`U+2C7E`), Ꙅ (`U+A644`), Ꚃ (`U+A682`), ꜱ (`U+A731`), Ꞩ (`U+A7A8`), Ʂ (`U+A7C5`), Ꟊ (`U+A7C9`), 𜳨 (`U+1CCE8`), 𝐒 (`U+1D412`), 𝑆 (`U+1D446`), 𝑺 (`U+1D47A`), 𝖲 (`U+1D5B2`), 𝗦 (`U+1D5E6`), 𝘚 (`U+1D61A`), 𝙎 (`U+1D64E`), 𝚂 (`U+1D682`), 🄏 (`U+1F10F`), 🄢 (`U+1F122`), 🄪 (`U+1F12A`), 🅂 (`U+1F142`), 🅌 (`U+1F14C`), 🅍 (`U+1F14D`), 🅢 (`U+1F162`), 🆂 (`U+1F182`), 🆍 (`U+1F18D`), 🆘 (`U+1F198`), 🆚 (`U+1F19A`), 🆜 (`U+1F19C`), 🆨 (`U+1F1A8`), 🆩 (`U+1F1A9`), 🆪 (`U+1F1AA`), 🇸 (`U+1F1F8`) + $ (`U+0024`), S (`U+0053`), Ś (`U+015A`), Ŝ (`U+015C`), Ş (`U+015E`), Š (`U+0160`), Ƨ (`U+01A7`), Ș (`U+0218`), Ѕ (`U+0405`), Ṡ (`U+1E60`), Ṣ (`U+1E62`), Ṥ (`U+1E64`), Ṧ (`U+1E66`), Ṩ (`U+1E68`), ₴ (`U+20B4`), ℠ (`U+2120`), ⅍ (`U+214D`), ␁ (`U+2401`), ␂ (`U+2402`), ␈ (`U+2408`), ␎ (`U+240E`), ␏ (`U+240F`), ␖ (`U+2416`), ␚ (`U+241A`), ␛ (`U+241B`), ␜ (`U+241C`), ␝ (`U+241D`), ␞ (`U+241E`), ␟ (`U+241F`), ␠ (`U+2420`), Ⓢ (`U+24C8`), Ȿ (`U+2C7E`), Ꙅ (`U+A644`), Ꚃ (`U+A682`), ꜱ (`U+A731`), Ꞩ (`U+A7A8`), Ʂ (`U+A7C5`), Ꟊ (`U+A7C9`), Ꟍ (`U+A7CC`), 𜳨 (`U+1CCE8`), 𝐒 (`U+1D412`), 𝑆 (`U+1D446`), 𝑺 (`U+1D47A`), 𝖲 (`U+1D5B2`), 𝗦 (`U+1D5E6`), 𝘚 (`U+1D61A`), 𝙎 (`U+1D64E`), 𝚂 (`U+1D682`), 🄏 (`U+1F10F`), 🄢 (`U+1F122`), 🄪 (`U+1F12A`), 🅂 (`U+1F142`), 🅌 (`U+1F14C`), 🅍 (`U+1F14D`), 🅢 (`U+1F162`), 🆂 (`U+1F182`), 🆍 (`U+1F18D`), 🆘 (`U+1F198`), 🆚 (`U+1F19A`), 🆜 (`U+1F19C`), 🆨 (`U+1F1A8`), 🆩 (`U+1F1A9`), 🆪 (`U+1F1AA`), 🇸 (`U+1F1F8`) - `cv29`: - T (`U+0054`), Ţ (`U+0162`), Ť (`U+0164`), Ŧ (`U+0166`), Ƭ (`U+01AC`), Ʈ (`U+01AE`), Ț (`U+021A`), Ⱦ (`U+023E`), Τ (`U+03A4`), Т (`U+0422`), Ҭ (`U+04AC`), Ҵ (`U+04B4`), Ԏ (`U+050E`), ᲄ (`U+1C84`), ᴛ (`U+1D1B`), ᵀ (`U+1D40`), Ṫ (`U+1E6A`), Ṭ (`U+1E6C`), Ṯ (`U+1E6E`), Ṱ (`U+1E70`), ₮ (`U+20AE`), ₸ (`U+20B8`), ℡ (`U+2121`), ™ (`U+2122`), ␂ (`U+2402`), ␃ (`U+2403`), ␄ (`U+2404`), ␉ (`U+2409`), ␋ (`U+240B`), ␗ (`U+2417`), Ⓣ (`U+24C9`), Ꚋ (`U+A68A`), Ꚍ (`U+A68C`), ꚍ (`U+A68D`), Ꚓ (`U+A692`), ꚓ (`U+A693`), Ʇ (`U+A7B1`), 𜳩 (`U+1CCE9`), 𝐓 (`U+1D413`), 𝑇 (`U+1D447`), 𝑻 (`U+1D47B`), 𝖳 (`U+1D5B3`), 𝗧 (`U+1D5E7`), 𝘛 (`U+1D61B`), 𝙏 (`U+1D64F`), 𝚃 (`U+1D683`), 𝚻 (`U+1D6BB`), 𝛵 (`U+1D6F5`), 𝜯 (`U+1D72F`), 𝝩 (`U+1D769`), 𝞣 (`U+1D7A3`), 🄣 (`U+1F123`), 🅃 (`U+1F143`), 🅣 (`U+1F163`), 🆃 (`U+1F183`), 🇹 (`U+1F1F9`) + T (`U+0054`), Ţ (`U+0162`), Ť (`U+0164`), Ŧ (`U+0166`), Ƭ (`U+01AC`), Ʈ (`U+01AE`), Ț (`U+021A`), Ⱦ (`U+023E`), Τ (`U+03A4`), Т (`U+0422`), Ҭ (`U+04AC`), Ҵ (`U+04B4`), Ԏ (`U+050E`), ᲄ (`U+1C84`), Ᲊ (`U+1C89`), ᴛ (`U+1D1B`), ᵀ (`U+1D40`), Ṫ (`U+1E6A`), Ṭ (`U+1E6C`), Ṯ (`U+1E6E`), Ṱ (`U+1E70`), ₮ (`U+20AE`), ₸ (`U+20B8`), ℡ (`U+2121`), ™ (`U+2122`), ␂ (`U+2402`), ␃ (`U+2403`), ␄ (`U+2404`), ␉ (`U+2409`), ␋ (`U+240B`), ␗ (`U+2417`), Ⓣ (`U+24C9`), Ꚋ (`U+A68A`), Ꚍ (`U+A68C`), ꚍ (`U+A68D`), Ꚓ (`U+A692`), ꚓ (`U+A693`), Ʇ (`U+A7B1`), 𜳩 (`U+1CCE9`), 𝐓 (`U+1D413`), 𝑇 (`U+1D447`), 𝑻 (`U+1D47B`), 𝖳 (`U+1D5B3`), 𝗧 (`U+1D5E7`), 𝘛 (`U+1D61B`), 𝙏 (`U+1D64F`), 𝚃 (`U+1D683`), 𝚻 (`U+1D6BB`), 𝛵 (`U+1D6F5`), 𝜯 (`U+1D72F`), 𝝩 (`U+1D769`), 𝞣 (`U+1D7A3`), 🄣 (`U+1F123`), 🅃 (`U+1F143`), 🅣 (`U+1F163`), 🆃 (`U+1F183`), 🇹 (`U+1F1F9`) - `cv30`: @@ -680,7 +680,7 @@ - `cv38`: - c (`U+0063`), ¢ (`U+00A2`), ç (`U+00E7`), ć (`U+0107`), ĉ (`U+0109`), ċ (`U+010B`), č (`U+010D`), ƈ (`U+0188`), ȼ (`U+023C`), ɔ (`U+0254`), ɕ (`U+0255`), ʗ (`U+0297`), ʨ (`U+02A8`), ͨ (`U+0368`), с (`U+0441`), ҁ (`U+0481`), ҫ (`U+04AB`), ҽ (`U+04BD`), ҿ (`U+04BF`), ԍ (`U+050D`), ᲃ (`U+1C83`), ᴒ (`U+1D12`), ᵓ (`U+1D53`), ᶗ (`U+1D97`), ᶜ (`U+1D9C`), ᶝ (`U+1D9D`), ᷗ (`U+1DD7`), ḉ (`U+1E09`), ⃀ (`U+20C0`), ℀ (`U+2100`), ℅ (`U+2105`), ℆ (`U+2106`), ⅽ (`U+217D`), ↄ (`U+2184`), ⒞ (`U+249E`), ⓒ (`U+24D2`), ⷭ (`U+2DED`), ⷵ (`U+2DF5`), ꜿ (`U+A73F`), ꞓ (`U+A793`), ꞔ (`U+A794`), ꬿ (`U+AB3F`), ꭢ (`U+AB62`), 𐞫 (`U+107AB`), 𝐜 (`U+1D41C`), 𝑐 (`U+1D450`), 𝒄 (`U+1D484`), 𝖼 (`U+1D5BC`), 𝗰 (`U+1D5F0`), 𝘤 (`U+1D624`), 𝙘 (`U+1D658`), 𝚌 (`U+1D68C`), 𝼝 (`U+1DF1D`), 𞀿 (`U+1E03F`), 𞁞 (`U+1E05E`), 𞁫 (`U+1E06B`) + c (`U+0063`), ¢ (`U+00A2`), ç (`U+00E7`), ć (`U+0107`), ĉ (`U+0109`), ċ (`U+010B`), č (`U+010D`), ƈ (`U+0188`), ȼ (`U+023C`), ɔ (`U+0254`), ɕ (`U+0255`), ʗ (`U+0297`), ʨ (`U+02A8`), ͨ (`U+0368`), с (`U+0441`), ҁ (`U+0481`), ҫ (`U+04AB`), ҽ (`U+04BD`), ҿ (`U+04BF`), ԍ (`U+050D`), ᲃ (`U+1C83`), ᴒ (`U+1D12`), ᵓ (`U+1D53`), ᶗ (`U+1D97`), ᶜ (`U+1D9C`), ᶝ (`U+1D9D`), ᷗ (`U+1DD7`), ḉ (`U+1E09`), ℀ (`U+2100`), ℅ (`U+2105`), ℆ (`U+2106`), ⅽ (`U+217D`), ↄ (`U+2184`), ⒞ (`U+249E`), ⓒ (`U+24D2`), ⷭ (`U+2DED`), ⷵ (`U+2DF5`), ꜿ (`U+A73F`), ꞓ (`U+A793`), ꞔ (`U+A794`), ꬿ (`U+AB3F`), ꭢ (`U+AB62`), 𐞫 (`U+107AB`), 𝐜 (`U+1D41C`), 𝑐 (`U+1D450`), 𝒄 (`U+1D484`), 𝖼 (`U+1D5BC`), 𝗰 (`U+1D5F0`), 𝘤 (`U+1D624`), 𝙘 (`U+1D658`), 𝚌 (`U+1D68C`), 𝼝 (`U+1DF1D`), 𞀿 (`U+1E03F`), 𞁞 (`U+1E05E`), 𞁫 (`U+1E06B`) - `cv39`: @@ -720,7 +720,7 @@ - `cv48`: - m (`U+006D`), ɱ (`U+0271`), ͫ (`U+036B`), т (`U+0442`), ҭ (`U+04AD`), ԏ (`U+050F`), ᲅ (`U+1C85`), ᵐ (`U+1D50`), ᵯ (`U+1D6F`), ᶆ (`U+1D86`), ᶬ (`U+1DAC`), ḿ (`U+1E3F`), ṁ (`U+1E41`), ṃ (`U+1E43`), ₘ (`U+2098`), ₥ (`U+20A5`), ⅿ (`U+217F`), ≞ (`U+225E`), ⒨ (`U+24A8`), ⓜ (`U+24DC`), ⷮ (`U+2DEE`), ⷵ (`U+2DF5`), ꚋ (`U+A68B`), ꬺ (`U+AB3A`), 𝐦 (`U+1D426`), 𝑚 (`U+1D45A`), 𝒎 (`U+1D48E`), 𝗆 (`U+1D5C6`), 𝗺 (`U+1D5FA`), 𝘮 (`U+1D62E`), 𝙢 (`U+1D662`), 𝚖 (`U+1D696`), 𞁀 (`U+1E040`) + m (`U+006D`), ɱ (`U+0271`), ͫ (`U+036B`), т (`U+0442`), ҭ (`U+04AD`), ԏ (`U+050F`), ᲅ (`U+1C85`), ᲊ (`U+1C8A`), ᵐ (`U+1D50`), ᵯ (`U+1D6F`), ᶆ (`U+1D86`), ᶬ (`U+1DAC`), ḿ (`U+1E3F`), ṁ (`U+1E41`), ṃ (`U+1E43`), ₘ (`U+2098`), ₥ (`U+20A5`), ⅿ (`U+217F`), ≞ (`U+225E`), ⒨ (`U+24A8`), ⓜ (`U+24DC`), ⷮ (`U+2DEE`), ⷵ (`U+2DF5`), ꚋ (`U+A68B`), ꬺ (`U+AB3A`), 𝐦 (`U+1D426`), 𝑚 (`U+1D45A`), 𝒎 (`U+1D48E`), 𝗆 (`U+1D5C6`), 𝗺 (`U+1D5FA`), 𝘮 (`U+1D62E`), 𝙢 (`U+1D662`), 𝚖 (`U+1D696`), 𞁀 (`U+1E040`) - `cv49`: @@ -740,7 +740,7 @@ - `cv53`: - s (`U+0073`), ś (`U+015B`), ŝ (`U+015D`), ş (`U+015F`), š (`U+0161`), ƨ (`U+01A8`), ƾ (`U+01BE`), ș (`U+0219`), ȿ (`U+023F`), ʂ (`U+0282`), ʦ (`U+02A6`), ʪ (`U+02AA`), ˢ (`U+02E2`), г (`U+0433`), ѓ (`U+0453`), ѕ (`U+0455`), ғ (`U+0493`), ӷ (`U+04F7`), ӻ (`U+04FB`), ᵴ (`U+1D74`), ᶊ (`U+1D8A`), ᶳ (`U+1DB3`), ᷤ (`U+1DE4`), ṡ (`U+1E61`), ṣ (`U+1E63`), ṥ (`U+1E65`), ṧ (`U+1E67`), ṩ (`U+1E69`), ₛ (`U+209B`), ₨ (`U+20A8`), ℁ (`U+2101`), ⒮ (`U+24AE`), ⓢ (`U+24E2`), ⷢ (`U+2DE2`), ꙅ (`U+A645`), ꚃ (`U+A683`), ꞩ (`U+A7A9`), ꟊ (`U+A7CA`), ꭧ (`U+AB67`), st (`U+FB06`), 𐞙 (`U+10799`), 𐞬 (`U+107AC`), 𐞭 (`U+107AD`), 𐞺 (`U+107BA`), 𝐬 (`U+1D42C`), 𝑠 (`U+1D460`), 𝒔 (`U+1D494`), 𝗌 (`U+1D5CC`), 𝘀 (`U+1D600`), 𝘴 (`U+1D634`), 𝙨 (`U+1D668`), 𝚜 (`U+1D69C`), 𝼞 (`U+1DF1E`), 𞀳 (`U+1E033`), 𞁔 (`U+1E054`), 𞁩 (`U+1E069`) + s (`U+0073`), ś (`U+015B`), ŝ (`U+015D`), ş (`U+015F`), š (`U+0161`), ƨ (`U+01A8`), ƾ (`U+01BE`), ș (`U+0219`), ȿ (`U+023F`), ʂ (`U+0282`), ʦ (`U+02A6`), ʪ (`U+02AA`), ˢ (`U+02E2`), г (`U+0433`), ѓ (`U+0453`), ѕ (`U+0455`), ғ (`U+0493`), ӷ (`U+04F7`), ӻ (`U+04FB`), ᵴ (`U+1D74`), ᶊ (`U+1D8A`), ᶳ (`U+1DB3`), ᷤ (`U+1DE4`), ṡ (`U+1E61`), ṣ (`U+1E63`), ṥ (`U+1E65`), ṧ (`U+1E67`), ṩ (`U+1E69`), ₛ (`U+209B`), ₨ (`U+20A8`), ℁ (`U+2101`), ⒮ (`U+24AE`), ⓢ (`U+24E2`), ⷢ (`U+2DE2`), ꙅ (`U+A645`), ꚃ (`U+A683`), ꞩ (`U+A7A9`), ꟊ (`U+A7CA`), ꟍ (`U+A7CD`), ꭧ (`U+AB67`), st (`U+FB06`), 𐞙 (`U+10799`), 𐞬 (`U+107AC`), 𐞭 (`U+107AD`), 𐞺 (`U+107BA`), 𝐬 (`U+1D42C`), 𝑠 (`U+1D460`), 𝒔 (`U+1D494`), 𝗌 (`U+1D5CC`), 𝘀 (`U+1D600`), 𝘴 (`U+1D634`), 𝙨 (`U+1D668`), 𝚜 (`U+1D69C`), 𝼞 (`U+1DF1E`), 𞀳 (`U+1E033`), 𞁔 (`U+1E054`), 𞁩 (`U+1E069`) - `cv54`: @@ -816,11 +816,11 @@ - `cv72`: - Λ (`U+039B`), Ѧ (`U+0466`), ѧ (`U+0467`), Ѩ (`U+0468`), ѩ (`U+0469`), ᴧ (`U+1D27`), ⷽ (`U+2DFD`), 𝚲 (`U+1D6B2`), 𝛬 (`U+1D6EC`), 𝜦 (`U+1D726`), 𝝠 (`U+1D760`), 𝞚 (`U+1D79A`) + Λ (`U+039B`), Ѧ (`U+0466`), ѧ (`U+0467`), Ѩ (`U+0468`), ѩ (`U+0469`), ᴧ (`U+1D27`), ⷽ (`U+2DFD`), Ꟛ (`U+A7DA`), Ƛ (`U+A7DC`), 𝚲 (`U+1D6B2`), 𝛬 (`U+1D6EC`), 𝜦 (`U+1D726`), 𝝠 (`U+1D760`), 𝞚 (`U+1D79A`) - `cv73`: - ƛ (`U+019B`), λ (`U+03BB`), 𝛌 (`U+1D6CC`), 𝜆 (`U+1D706`), 𝝀 (`U+1D740`), 𝝺 (`U+1D77A`), 𝞴 (`U+1D7B4`) + ƛ (`U+019B`), λ (`U+03BB`), ꟛ (`U+A7DB`), 𝛌 (`U+1D6CC`), 𝜆 (`U+1D706`), 𝝀 (`U+1D740`), 𝝺 (`U+1D77A`), 𝞴 (`U+1D7B4`) - `cv74`: @@ -908,7 +908,7 @@ - `cv95`: - ƅ (`U+0185`), ъ (`U+044A`), ь (`U+044C`), љ (`U+0459`), њ (`U+045A`), ѣ (`U+0463`), ҍ (`U+048D`), ᲆ (`U+1C86`), ᲇ (`U+1C87`), ⷺ (`U+2DFA`), ꙏ (`U+A64F`), ꙓ (`U+A653`), ꙸ (`U+A678`), ꙺ (`U+A67A`), ꚜ (`U+A69C`), ꚝ (`U+A69D`), ꭠ (`U+AB60`), 𞁥 (`U+1E065`) + ƅ (`U+0185`), ъ (`U+044A`), ь (`U+044C`), љ (`U+0459`), њ (`U+045A`), ѣ (`U+0463`), ҍ (`U+048D`), ᲆ (`U+1C86`), ᲇ (`U+1C87`), ᲊ (`U+1C8A`), ⷺ (`U+2DFA`), ꙏ (`U+A64F`), ꙓ (`U+A653`), ꙸ (`U+A678`), ꙺ (`U+A67A`), ꚜ (`U+A69C`), ꚝ (`U+A69D`), ꭠ (`U+AB60`), 𞁥 (`U+1E065`) - `cv96`: @@ -916,11 +916,11 @@ - `cv97`: - Ə (`U+018F`), Є (`U+0404`), Э (`U+042D`), Ѥ (`U+0464`), Ә (`U+04D8`), Ӛ (`U+04DA`), Ӭ (`U+04EC`), € (`U+20AC`), ℈ (`U+2108`) + Є (`U+0404`), Э (`U+042D`), Ѥ (`U+0464`), Ә (`U+04D8`), Ӛ (`U+04DA`), Ӭ (`U+04EC`), € (`U+20AC`), ℈ (`U+2108`) - `cv98`: - ə (`U+0259`), ɚ (`U+025A`), э (`U+044D`), є (`U+0454`), ѥ (`U+0465`), ә (`U+04D9`), ӛ (`U+04DB`), ӭ (`U+04ED`), ᵊ (`U+1D4A`), ᶕ (`U+1D95`), ᷪ (`U+1DEA`), ₔ (`U+2094`), ꙴ (`U+A674`), ꚟ (`U+A69F`), 𞁈 (`U+1E048`), 𞁋 (`U+1E04B`) + э (`U+044D`), є (`U+0454`), ѥ (`U+0465`), ә (`U+04D9`), ӛ (`U+04DB`), ӭ (`U+04ED`), ꙴ (`U+A674`), ꚟ (`U+A69F`), 𞁈 (`U+1E048`), 𞁋 (`U+1E04B`) - `cv99`: @@ -972,7 +972,7 @@ - `VSAG`: - \( (`U+0028`), \) (`U+0029`), ⁽ (`U+207D`), ⁾ (`U+207E`), ₍ (`U+208D`), ₎ (`U+208E`), ⸨ (`U+2E28`), ⸩ (`U+2E29`) + \( (`U+0028`), \) (`U+0029`), ⁽ (`U+207D`), ⁾ (`U+207E`), ₍ (`U+208D`), ₎ (`U+208E`), ⸨ (`U+2E28`), ⸩ (`U+2E29`), ⹙ (`U+2E59`), ⹚ (`U+2E5A`), ⹛ (`U+2E5B`), ⹜ (`U+2E5C`) - `VSAH`: diff --git a/images/button-release.dark.svg b/images/button-release.dark.svg index b5afcbd71c..4967b067ea 100644 --- a/images/button-release.dark.svg +++ b/images/button-release.dark.svg @@ -9,7 +9,8 @@ - + + @@ -21,13 +22,13 @@ - + - + \ No newline at end of file diff --git a/images/button-release.light.svg b/images/button-release.light.svg index ba59b24448..d7891ad032 100644 --- a/images/button-release.light.svg +++ b/images/button-release.light.svg @@ -9,7 +9,8 @@ - + + @@ -21,13 +22,13 @@ - + - + \ No newline at end of file diff --git a/images/cs-block-counting-rod-numerals.dark.svg b/images/cs-block-counting-rod-numerals.dark.svg index 5985530410..c6bbb3347c 100644 --- a/images/cs-block-counting-rod-numerals.dark.svg +++ b/images/cs-block-counting-rod-numerals.dark.svg @@ -19,9 +19,27 @@ - - - + + + + + + + + + + + + + + + + + + + + + @@ -115,83 +133,83 @@ - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + @@ -206,83 +224,83 @@ - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + \ No newline at end of file diff --git a/images/cs-block-counting-rod-numerals.light.svg b/images/cs-block-counting-rod-numerals.light.svg index 2f94e252df..04656d3b65 100644 --- a/images/cs-block-counting-rod-numerals.light.svg +++ b/images/cs-block-counting-rod-numerals.light.svg @@ -19,9 +19,27 @@ - - - + + + + + + + + + + + + + + + + + + + + + @@ -115,83 +133,83 @@ - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + @@ -206,83 +224,83 @@ - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + \ No newline at end of file diff --git a/images/cs-block-currency-symbols.dark.svg b/images/cs-block-currency-symbols.dark.svg index e029646846..3a2de55a31 100644 --- a/images/cs-block-currency-symbols.dark.svg +++ b/images/cs-block-currency-symbols.dark.svg @@ -42,7 +42,7 @@ - + diff --git a/images/cs-block-currency-symbols.light.svg b/images/cs-block-currency-symbols.light.svg index f141cd14da..688a0323aa 100644 --- a/images/cs-block-currency-symbols.light.svg +++ b/images/cs-block-currency-symbols.light.svg @@ -42,7 +42,7 @@ - + diff --git a/images/cs-block-cyrillic-extended-c.dark.svg b/images/cs-block-cyrillic-extended-c.dark.svg index e6ed16acd5..c3c0dfe137 100644 --- a/images/cs-block-cyrillic-extended-c.dark.svg +++ b/images/cs-block-cyrillic-extended-c.dark.svg @@ -28,7 +28,9 @@ - + + + @@ -166,38 +168,38 @@ - + - - + + - + - + - + - + - + \ No newline at end of file diff --git a/images/cs-block-cyrillic-extended-c.light.svg b/images/cs-block-cyrillic-extended-c.light.svg index b106f17c7f..afc324f722 100644 --- a/images/cs-block-cyrillic-extended-c.light.svg +++ b/images/cs-block-cyrillic-extended-c.light.svg @@ -28,7 +28,9 @@ - + + + @@ -166,38 +168,38 @@ - + - - + + - + - + - + - + - + \ No newline at end of file diff --git a/images/cs-block-ipa-extensions.dark.svg b/images/cs-block-ipa-extensions.dark.svg index b0695f469d..8f2476a0d9 100644 --- a/images/cs-block-ipa-extensions.dark.svg +++ b/images/cs-block-ipa-extensions.dark.svg @@ -28,7 +28,7 @@ - + diff --git a/images/cs-block-ipa-extensions.light.svg b/images/cs-block-ipa-extensions.light.svg index a03b38a8e9..276ba4dc0e 100644 --- a/images/cs-block-ipa-extensions.light.svg +++ b/images/cs-block-ipa-extensions.light.svg @@ -28,7 +28,7 @@ - + diff --git a/images/cs-block-latin-extended-a.dark.svg b/images/cs-block-latin-extended-a.dark.svg index 9f0301b3ba..fab3373e84 100644 --- a/images/cs-block-latin-extended-a.dark.svg +++ b/images/cs-block-latin-extended-a.dark.svg @@ -66,7 +66,7 @@ - + @@ -118,7 +118,7 @@ - + diff --git a/images/cs-block-latin-extended-a.light.svg b/images/cs-block-latin-extended-a.light.svg index bc6ad35dee..4a19546ac0 100644 --- a/images/cs-block-latin-extended-a.light.svg +++ b/images/cs-block-latin-extended-a.light.svg @@ -66,7 +66,7 @@ - + @@ -118,7 +118,7 @@ - + diff --git a/images/cs-block-latin-extended-d.dark.svg b/images/cs-block-latin-extended-d.dark.svg index e424075e42..0e2c76d95f 100644 --- a/images/cs-block-latin-extended-d.dark.svg +++ b/images/cs-block-latin-extended-d.dark.svg @@ -136,19 +136,25 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + @@ -1196,18 +1202,18 @@ - - + + - - + + - - + + @@ -1281,18 +1287,18 @@ - - + + - - + + - - + + @@ -1422,67 +1428,67 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/images/cs-block-latin-extended-d.light.svg b/images/cs-block-latin-extended-d.light.svg index 82eabd108b..dcf2721ce4 100644 --- a/images/cs-block-latin-extended-d.light.svg +++ b/images/cs-block-latin-extended-d.light.svg @@ -136,19 +136,25 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + @@ -1196,18 +1202,18 @@ - - + + - - + + - - + + @@ -1281,18 +1287,18 @@ - - + + - - + + - - + + @@ -1422,67 +1428,67 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/images/cs-block-miscellaneous-symbols-and-arrows.dark.svg b/images/cs-block-miscellaneous-symbols-and-arrows.dark.svg index df524375bc..28a27d47b3 100644 --- a/images/cs-block-miscellaneous-symbols-and-arrows.dark.svg +++ b/images/cs-block-miscellaneous-symbols-and-arrows.dark.svg @@ -81,75 +81,76 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -737,8 +738,8 @@ - - + + @@ -783,82 +784,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -873,22 +874,22 @@ - + - + - + - + @@ -923,32 +924,32 @@ - + - + - + - + - + - + @@ -963,42 +964,42 @@ - + - + - + - + - + - + - + - + @@ -1078,7 +1079,7 @@ - + @@ -1273,42 +1274,42 @@ - + - + - + - + - + - + - + - + @@ -1323,47 +1324,47 @@ - + - + - + - + - + - + - + - + - + @@ -1373,32 +1374,32 @@ - + - + - + - + - + - + @@ -1423,7 +1424,7 @@ - + @@ -1543,42 +1544,42 @@ - + - + - + - + - + - + - + - + @@ -1663,12 +1664,12 @@ - + - + \ No newline at end of file diff --git a/images/cs-block-miscellaneous-symbols-and-arrows.light.svg b/images/cs-block-miscellaneous-symbols-and-arrows.light.svg index 3d5c59eb9c..37aa9c1565 100644 --- a/images/cs-block-miscellaneous-symbols-and-arrows.light.svg +++ b/images/cs-block-miscellaneous-symbols-and-arrows.light.svg @@ -81,75 +81,76 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -737,8 +738,8 @@ - - + + @@ -783,82 +784,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -873,22 +874,22 @@ - + - + - + - + @@ -923,32 +924,32 @@ - + - + - + - + - + - + @@ -963,42 +964,42 @@ - + - + - + - + - + - + - + - + @@ -1078,7 +1079,7 @@ - + @@ -1273,42 +1274,42 @@ - + - + - + - + - + - + - + - + @@ -1323,47 +1324,47 @@ - + - + - + - + - + - + - + - + - + @@ -1373,32 +1374,32 @@ - + - + - + - + - + - + @@ -1423,7 +1424,7 @@ - + @@ -1543,42 +1544,42 @@ - + - + - + - + - + - + - + - + @@ -1663,12 +1664,12 @@ - + - + \ No newline at end of file diff --git a/images/cs-block-miscellaneous-symbols.dark.svg b/images/cs-block-miscellaneous-symbols.dark.svg index ef5a2d044e..1ab6ab738b 100644 --- a/images/cs-block-miscellaneous-symbols.dark.svg +++ b/images/cs-block-miscellaneous-symbols.dark.svg @@ -88,9 +88,13 @@ - - - + + + + + + + @@ -1318,8 +1322,8 @@ - - + + @@ -1403,8 +1407,8 @@ - - + + @@ -1418,13 +1422,13 @@ - - + + - - + + @@ -1509,12 +1513,12 @@ - + - + @@ -1564,7 +1568,7 @@ - + diff --git a/images/cs-block-miscellaneous-symbols.light.svg b/images/cs-block-miscellaneous-symbols.light.svg index c5a2e099d3..5ec74b19d8 100644 --- a/images/cs-block-miscellaneous-symbols.light.svg +++ b/images/cs-block-miscellaneous-symbols.light.svg @@ -88,9 +88,13 @@ - - - + + + + + + + @@ -1318,8 +1322,8 @@ - - + + @@ -1403,8 +1407,8 @@ - - + + @@ -1418,13 +1422,13 @@ - - + + - - + + @@ -1509,12 +1513,12 @@ - + - + @@ -1564,7 +1568,7 @@ - + diff --git a/images/cs-block-miscellaneous-technical.dark.svg b/images/cs-block-miscellaneous-technical.dark.svg index 63748940f2..9261e9255c 100644 --- a/images/cs-block-miscellaneous-technical.dark.svg +++ b/images/cs-block-miscellaneous-technical.dark.svg @@ -130,89 +130,90 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1045,13 +1046,13 @@ - - + + - + @@ -1066,22 +1067,22 @@ - + - + - + - + @@ -1091,7 +1092,7 @@ - + @@ -1136,12 +1137,12 @@ - + - + @@ -1171,27 +1172,27 @@ - + - + - + - + - + @@ -1206,77 +1207,77 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -1296,22 +1297,22 @@ - + - + - + - + @@ -1336,42 +1337,42 @@ - + - + - + - + - + - + - + - + @@ -1386,67 +1387,67 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -1456,12 +1457,12 @@ - + - + @@ -1526,12 +1527,12 @@ - + - + @@ -1576,7 +1577,7 @@ - + @@ -1586,12 +1587,12 @@ - + - + @@ -1606,42 +1607,42 @@ - + - + - + - + - + - + - + - + @@ -1656,77 +1657,77 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/images/cs-block-miscellaneous-technical.light.svg b/images/cs-block-miscellaneous-technical.light.svg index 4d2b1b9419..c45929c15d 100644 --- a/images/cs-block-miscellaneous-technical.light.svg +++ b/images/cs-block-miscellaneous-technical.light.svg @@ -130,89 +130,90 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1045,13 +1046,13 @@ - - + + - + @@ -1066,22 +1067,22 @@ - + - + - + - + @@ -1091,7 +1092,7 @@ - + @@ -1136,12 +1137,12 @@ - + - + @@ -1171,27 +1172,27 @@ - + - + - + - + - + @@ -1206,77 +1207,77 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -1296,22 +1297,22 @@ - + - + - + - + @@ -1336,42 +1337,42 @@ - + - + - + - + - + - + - + - + @@ -1386,67 +1387,67 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -1456,12 +1457,12 @@ - + - + @@ -1526,12 +1527,12 @@ - + - + @@ -1576,7 +1577,7 @@ - + @@ -1586,12 +1587,12 @@ - + - + @@ -1606,42 +1607,42 @@ - + - + - + - + - + - + - + - + @@ -1656,77 +1657,77 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/images/cs-block-phonetic-extensions.dark.svg b/images/cs-block-phonetic-extensions.dark.svg index 304a6c51f9..acafb99c0e 100644 --- a/images/cs-block-phonetic-extensions.dark.svg +++ b/images/cs-block-phonetic-extensions.dark.svg @@ -49,7 +49,7 @@ - + diff --git a/images/cs-block-phonetic-extensions.light.svg b/images/cs-block-phonetic-extensions.light.svg index 249b228c72..4ab7440c8a 100644 --- a/images/cs-block-phonetic-extensions.light.svg +++ b/images/cs-block-phonetic-extensions.light.svg @@ -49,7 +49,7 @@ - + diff --git a/images/cs-block-supplemental-punctuation.dark.svg b/images/cs-block-supplemental-punctuation.dark.svg index b751e02ce1..3e7c13f584 100644 --- a/images/cs-block-supplemental-punctuation.dark.svg +++ b/images/cs-block-supplemental-punctuation.dark.svg @@ -68,6 +68,10 @@ + + + + @@ -655,23 +659,23 @@ - - + + - - + + - - + + - - + + diff --git a/images/cs-block-supplemental-punctuation.light.svg b/images/cs-block-supplemental-punctuation.light.svg index 8fd1a0dbb0..bf1e07591d 100644 --- a/images/cs-block-supplemental-punctuation.light.svg +++ b/images/cs-block-supplemental-punctuation.light.svg @@ -68,6 +68,10 @@ + + + + @@ -655,23 +659,23 @@ - - + + - - + + - - + + - - + + diff --git a/images/cs-block-symbols-for-legacy-computing-supplement.dark.svg b/images/cs-block-symbols-for-legacy-computing-supplement.dark.svg new file mode 100644 index 0000000000..6bb4548a89 --- /dev/null +++ b/images/cs-block-symbols-for-legacy-computing-supplement.dark.svg @@ -0,0 +1,4625 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/images/cs-block-symbols-for-legacy-computing-supplement.light.svg b/images/cs-block-symbols-for-legacy-computing-supplement.light.svg new file mode 100644 index 0000000000..e8b3dcce9e --- /dev/null +++ b/images/cs-block-symbols-for-legacy-computing-supplement.light.svg @@ -0,0 +1,4625 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/images/languages.dark.svg b/images/languages.dark.svg index cc27e887c4..462da7e107 100644 --- a/images/languages.dark.svg +++ b/images/languages.dark.svg @@ -39,7 +39,7 @@ - + @@ -74,262 +74,263 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -525,9 +526,9 @@ - + - + @@ -539,59 +540,59 @@ - + - - + + - + - + - + - - + + - + - + - + - + - + - + @@ -600,101 +601,101 @@ - + - + - + - - - - + + + + - - - + + + - + - - - - - + + + + + - - + + - + - - - - - - - + + + + + + + - + - - + + - - + + - + - + - + - - - - + + + + - + - + - - + + - + - + - + - - + + - + @@ -708,11 +709,11 @@ - - + + - + @@ -740,14 +741,14 @@ - + - - + + @@ -759,54 +760,54 @@ - + - + - - + + - + - - + + - - + + - + - - + + - + - - - + + + - - + + - + - + - - + + @@ -815,9 +816,9 @@ - + - + @@ -826,40 +827,40 @@ - - - + + + - + - + - - - + + + - + - - + + - + - + @@ -872,22 +873,22 @@ - + - + - + - + @@ -895,27 +896,27 @@ - + - + - + - + - + - + - + @@ -923,18 +924,18 @@ - + - + - + - + - + @@ -946,7 +947,7 @@ - + @@ -964,13 +965,13 @@ - + - + @@ -979,71 +980,71 @@ - + - + - + - + - + - - - + + + - + - + - - + + - + - + - + - - + + - - - + + + - + - + - + - + @@ -1052,7 +1053,7 @@ - + @@ -1067,7 +1068,7 @@ - + @@ -1077,10 +1078,10 @@ - + - + @@ -1102,14 +1103,14 @@ - + - + @@ -1130,7 +1131,7 @@ - + @@ -1146,8 +1147,8 @@ - - + + @@ -1159,30 +1160,30 @@ - - - - + + + + - + - + - - + + - + - + @@ -1199,7 +1200,7 @@ - + @@ -1213,45 +1214,45 @@ - + - - + + - + - + - + - - + + - - + + - + - + @@ -1273,8 +1274,8 @@ - - + + @@ -1283,8 +1284,8 @@ - - + + @@ -1296,21 +1297,21 @@ - + - + - + - + @@ -1320,12 +1321,12 @@ - + - + - + @@ -1343,7 +1344,7 @@ - + @@ -1351,7 +1352,7 @@ - + @@ -1362,14 +1363,14 @@ - + - + @@ -1383,7 +1384,7 @@ - + @@ -1391,7 +1392,7 @@ - + @@ -1402,7 +1403,7 @@ - + @@ -1410,7 +1411,7 @@ - + @@ -1422,57 +1423,57 @@ - + - + - + - + - + - + - + - + - + - - + + - + - + @@ -1495,17 +1496,17 @@ - + - + - + @@ -1515,26 +1516,26 @@ - + - + - + - + - + - + - + @@ -1544,7 +1545,7 @@ - + @@ -1553,7 +1554,7 @@ - + @@ -1563,68 +1564,68 @@ - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + - - - + + + - - - - - - - - - + + + + + + + + + - - - - - - + + + + + + @@ -1632,91 +1633,91 @@ - + - - + + - + - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - + + + + + + + + + + - - - - - - - - + + + + + + + + - - - - + + + + - - + + - - - + + + - - + + @@ -1728,19 +1729,19 @@ - - + + - + - + - + @@ -1748,9 +1749,9 @@ - + - + @@ -1758,14 +1759,14 @@ - + - + - + - + @@ -1773,23 +1774,23 @@ - + - + - + - + - + - - + + @@ -1797,29 +1798,29 @@ - + - + - + - - + + - - - + + + - + @@ -1827,24 +1828,24 @@ - + - + - + - - + + - + - + @@ -1864,58 +1865,58 @@ - + - + - - - + + + - - - + + + - - + + - + - + - + - + - + - - + + - + - + @@ -1923,10 +1924,10 @@ - - + + - + @@ -1934,22 +1935,22 @@ - + - - + + - + - + - + - - + + @@ -1957,34 +1958,34 @@ - + - + - + - + - + - + - - + + @@ -1992,10 +1993,10 @@ - + - - + + @@ -2004,14 +2005,14 @@ - - + + - + @@ -2019,7 +2020,7 @@ - + @@ -2027,19 +2028,19 @@ - + - - + + - - + + - - + + @@ -2048,11 +2049,11 @@ - + - + - + @@ -2062,7 +2063,7 @@ - + @@ -2082,7 +2083,7 @@ - + @@ -2093,7 +2094,7 @@ - + @@ -2105,32 +2106,32 @@ - - - + + + - + - - - + + + - + - + - - + + @@ -2140,70 +2141,70 @@ - - + + - - - + + + - + - - - + + + - + - - - - - + + + + + - + - + - + - + - - + + - + - + - - + + - - + + - - + + - + - - + + - + - + - + @@ -2211,7 +2212,7 @@ - + @@ -2223,17 +2224,17 @@ - - - + + + - + - + @@ -2243,26 +2244,26 @@ - + - + - + - + - + - + @@ -2273,10 +2274,10 @@ - - + + - + @@ -2286,7 +2287,7 @@ - + @@ -2296,12 +2297,12 @@ - + - + @@ -2323,33 +2324,33 @@ - + - + - + - + - + - + @@ -2358,35 +2359,35 @@ - + - - + + - - - + + + - + - + - + - + - + @@ -2396,12 +2397,12 @@ - + - - + + - + @@ -2409,58 +2410,58 @@ - + - + - + - - - + + + - + - + - - + + - + - + - - + + - + - - + + - + - + @@ -2482,16 +2483,16 @@ - + - - - + + + @@ -2501,25 +2502,25 @@ - + - + - + - + - + @@ -2533,10 +2534,10 @@ - + - + @@ -2545,11 +2546,11 @@ - + - + @@ -2559,8 +2560,8 @@ - - + + @@ -2570,87 +2571,87 @@ - - + + - + - - - + + + - - + + - - - - + + + + - - - - - - - - - + + + + + + + + + - + - - - - + + + + - - + + - - - - - + + + + + - - + + - - + + - - - - + + + + - - + + - + - + - + - - - + + + - - + + - + @@ -2661,107 +2662,107 @@ - + - + - + - + - + - - + + - - + + - + - + - + - + - + - + - + - + - - + + - + - - - + + + - + - + - + - + - - + + - + - - + + - - - + + + - + - + - + - - + + - + - - - + + + - + @@ -2769,34 +2770,34 @@ - + - - + + - + - + - + - - + + - + - + @@ -2804,10 +2805,10 @@ - + - - + + @@ -2817,13 +2818,13 @@ - + - + - - + + @@ -2851,7 +2852,7 @@ - + @@ -2859,8 +2860,8 @@ - - + + @@ -2870,19 +2871,19 @@ - + - + - + @@ -2904,10 +2905,10 @@ - - + + - + @@ -2916,20 +2917,20 @@ - + - + - + - - + + @@ -2942,7 +2943,7 @@ - + @@ -2950,16 +2951,16 @@ - + - - + + - + @@ -2967,34 +2968,34 @@ - - + + - + - + - + - + - + - + @@ -3008,16 +3009,16 @@ - + - - + + - + @@ -3025,14 +3026,14 @@ - + - + @@ -3040,16 +3041,16 @@ - - - - + + + + - + - + @@ -3057,7 +3058,7 @@ - + @@ -3068,8 +3069,8 @@ - - + + @@ -3081,62 +3082,62 @@ - + - - - - + + + + - + - - + + - + - - + + - + - - + + - - - + + + - + - + - + - - + + - - + + - - - + + + - - + + - + - + - + @@ -3144,10 +3145,10 @@ - + - + @@ -3155,35 +3156,35 @@ - + - + - + - + - + - + - + - - + + - + - - - - + + + + @@ -3191,20 +3192,20 @@ - - + + - - - + + + - + - + @@ -3212,7 +3213,7 @@ - + @@ -3226,7 +3227,7 @@ - + @@ -3236,11 +3237,11 @@ - + - + @@ -3252,7 +3253,7 @@ - + @@ -3261,7 +3262,7 @@ - + @@ -3290,14 +3291,14 @@ - + - - + + diff --git a/images/languages.light.svg b/images/languages.light.svg index f938cd3426..4f647a2a11 100644 --- a/images/languages.light.svg +++ b/images/languages.light.svg @@ -39,7 +39,7 @@ - + @@ -74,262 +74,263 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -525,9 +526,9 @@ - + - + @@ -539,59 +540,59 @@ - + - - + + - + - + - + - - + + - + - + - + - + - + - + @@ -600,101 +601,101 @@ - + - + - + - - - - + + + + - - - + + + - + - - - - - + + + + + - - + + - + - - - - - - - + + + + + + + - + - - + + - - + + - + - + - + - - - - + + + + - + - + - - + + - + - + - + - - + + - + @@ -708,11 +709,11 @@ - - + + - + @@ -740,14 +741,14 @@ - + - - + + @@ -759,54 +760,54 @@ - + - + - - + + - + - - + + - - + + - + - - + + - + - - - + + + - - + + - + - + - - + + @@ -815,9 +816,9 @@ - + - + @@ -826,40 +827,40 @@ - - - + + + - + - + - - - + + + - + - - + + - + - + @@ -872,22 +873,22 @@ - + - + - + - + @@ -895,27 +896,27 @@ - + - + - + - + - + - + - + @@ -923,18 +924,18 @@ - + - + - + - + - + @@ -946,7 +947,7 @@ - + @@ -964,13 +965,13 @@ - + - + @@ -979,71 +980,71 @@ - + - + - + - + - + - - - + + + - + - + - - + + - + - + - + - - + + - - - + + + - + - + - + - + @@ -1052,7 +1053,7 @@ - + @@ -1067,7 +1068,7 @@ - + @@ -1077,10 +1078,10 @@ - + - + @@ -1102,14 +1103,14 @@ - + - + @@ -1130,7 +1131,7 @@ - + @@ -1146,8 +1147,8 @@ - - + + @@ -1159,30 +1160,30 @@ - - - - + + + + - + - + - - + + - + - + @@ -1199,7 +1200,7 @@ - + @@ -1213,45 +1214,45 @@ - + - - + + - + - + - + - - + + - - + + - + - + @@ -1273,8 +1274,8 @@ - - + + @@ -1283,8 +1284,8 @@ - - + + @@ -1296,21 +1297,21 @@ - + - + - + - + @@ -1320,12 +1321,12 @@ - + - + - + @@ -1343,7 +1344,7 @@ - + @@ -1351,7 +1352,7 @@ - + @@ -1362,14 +1363,14 @@ - + - + @@ -1383,7 +1384,7 @@ - + @@ -1391,7 +1392,7 @@ - + @@ -1402,7 +1403,7 @@ - + @@ -1410,7 +1411,7 @@ - + @@ -1422,57 +1423,57 @@ - + - + - + - + - + - + - + - + - + - - + + - + - + @@ -1495,17 +1496,17 @@ - + - + - + @@ -1515,26 +1516,26 @@ - + - + - + - + - + - + - + @@ -1544,7 +1545,7 @@ - + @@ -1553,7 +1554,7 @@ - + @@ -1563,68 +1564,68 @@ - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + - - - + + + - - - - - - - - - + + + + + + + + + - - - - - - + + + + + + @@ -1632,91 +1633,91 @@ - + - - + + - + - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - + + + + + + + + + + - - - - - - - - + + + + + + + + - - - - + + + + - - + + - - - + + + - - + + @@ -1728,19 +1729,19 @@ - - + + - + - + - + @@ -1748,9 +1749,9 @@ - + - + @@ -1758,14 +1759,14 @@ - + - + - + - + @@ -1773,23 +1774,23 @@ - + - + - + - + - + - - + + @@ -1797,29 +1798,29 @@ - + - + - + - - + + - - - + + + - + @@ -1827,24 +1828,24 @@ - + - + - + - - + + - + - + @@ -1864,58 +1865,58 @@ - + - + - - - + + + - - - + + + - - + + - + - + - + - + - + - - + + - + - + @@ -1923,10 +1924,10 @@ - - + + - + @@ -1934,22 +1935,22 @@ - + - - + + - + - + - + - - + + @@ -1957,34 +1958,34 @@ - + - + - + - + - + - + - - + + @@ -1992,10 +1993,10 @@ - + - - + + @@ -2004,14 +2005,14 @@ - - + + - + @@ -2019,7 +2020,7 @@ - + @@ -2027,19 +2028,19 @@ - + - - + + - - + + - - + + @@ -2048,11 +2049,11 @@ - + - + - + @@ -2062,7 +2063,7 @@ - + @@ -2082,7 +2083,7 @@ - + @@ -2093,7 +2094,7 @@ - + @@ -2105,32 +2106,32 @@ - - - + + + - + - - - + + + - + - + - - + + @@ -2140,70 +2141,70 @@ - - + + - - - + + + - + - - - + + + - + - - - - - + + + + + - + - + - + - + - - + + - + - + - - + + - - + + - - + + - + - - + + - + - + - + @@ -2211,7 +2212,7 @@ - + @@ -2223,17 +2224,17 @@ - - - + + + - + - + @@ -2243,26 +2244,26 @@ - + - + - + - + - + - + @@ -2273,10 +2274,10 @@ - - + + - + @@ -2286,7 +2287,7 @@ - + @@ -2296,12 +2297,12 @@ - + - + @@ -2323,33 +2324,33 @@ - + - + - + - + - + - + @@ -2358,35 +2359,35 @@ - + - - + + - - - + + + - + - + - + - + - + @@ -2396,12 +2397,12 @@ - + - - + + - + @@ -2409,58 +2410,58 @@ - + - + - + - - - + + + - + - + - - + + - + - + - - + + - + - - + + - + - + @@ -2482,16 +2483,16 @@ - + - - - + + + @@ -2501,25 +2502,25 @@ - + - + - + - + - + @@ -2533,10 +2534,10 @@ - + - + @@ -2545,11 +2546,11 @@ - + - + @@ -2559,8 +2560,8 @@ - - + + @@ -2570,87 +2571,87 @@ - - + + - + - - - + + + - - + + - - - - + + + + - - - - - - - - - + + + + + + + + + - + - - - - + + + + - - + + - - - - - + + + + + - - + + - - + + - - - - + + + + - - + + - + - + - + - - - + + + - - + + - + @@ -2661,107 +2662,107 @@ - + - + - + - + - + - - + + - - + + - + - + - + - + - + - + - + - + - - + + - + - - - + + + - + - + - + - + - - + + - + - - + + - - - + + + - + - + - + - - + + - + - - - + + + - + @@ -2769,34 +2770,34 @@ - + - - + + - + - + - + - - + + - + - + @@ -2804,10 +2805,10 @@ - + - - + + @@ -2817,13 +2818,13 @@ - + - + - - + + @@ -2851,7 +2852,7 @@ - + @@ -2859,8 +2860,8 @@ - - + + @@ -2870,19 +2871,19 @@ - + - + - + @@ -2904,10 +2905,10 @@ - - + + - + @@ -2916,20 +2917,20 @@ - + - + - + - - + + @@ -2942,7 +2943,7 @@ - + @@ -2950,16 +2951,16 @@ - + - - + + - + @@ -2967,34 +2968,34 @@ - - + + - + - + - + - + - + - + @@ -3008,16 +3009,16 @@ - + - - + + - + @@ -3025,14 +3026,14 @@ - + - + @@ -3040,16 +3041,16 @@ - - - - + + + + - + - + @@ -3057,7 +3058,7 @@ - + @@ -3068,8 +3069,8 @@ - - + + @@ -3081,62 +3082,62 @@ - + - - - - + + + + - + - - + + - + - - + + - + - - + + - - - + + + - + - + - + - - + + - - + + - - - + + + - - + + - + - + - + @@ -3144,10 +3145,10 @@ - + - + @@ -3155,35 +3156,35 @@ - + - + - + - + - + - + - + - - + + - + - - - - + + + + @@ -3191,20 +3192,20 @@ - - + + - - - + + + - + - + @@ -3212,7 +3213,7 @@ - + @@ -3226,7 +3227,7 @@ - + @@ -3236,11 +3237,11 @@ - + - + @@ -3252,7 +3253,7 @@ - + @@ -3261,7 +3262,7 @@ - + @@ -3290,14 +3291,14 @@ - + - - + + diff --git a/package-lock.json b/package-lock.json index 95125a7c4f..8ada1e1cd8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@iosevka/monorepo", - "version": "31.6.1", + "version": "31.7.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@iosevka/monorepo", - "version": "31.6.1", + "version": "31.7.0", "workspaces": [ "packages/*", "tools/*" @@ -37,6 +37,7 @@ "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", "dev": true, + "license": "MIT", "dependencies": { "eslint-visitor-keys": "^3.3.0" }, @@ -52,6 +53,7 @@ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, + "license": "Apache-2.0", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -64,6 +66,7 @@ "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.0.tgz", "integrity": "sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==", "dev": true, + "license": "MIT", "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } @@ -73,6 +76,7 @@ "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.18.0.tgz", "integrity": "sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@eslint/object-schema": "^2.1.4", "debug": "^4.3.1", @@ -87,6 +91,7 @@ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.1.0.tgz", "integrity": "sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==", "dev": true, + "license": "MIT", "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", @@ -106,10 +111,11 @@ } }, "node_modules/@eslint/js": { - "version": "9.9.1", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.9.1.tgz", - "integrity": "sha512-xIDQRsfg5hNBqHz04H1R3scSVwmI+KUbqjsQKHKQ1DAUSaUjYPReZZmS/5PNiKu1fUvzDd6H7DEDKACSEhu+TQ==", + "version": "9.10.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.10.0.tgz", + "integrity": "sha512-fuXtbiP5GWIn8Fz+LWoOMVf/Jxm+aajZYkhi6CuEm4SxymFM+eUWzbO9qXT+L0iCkL5+KGYMCSGxo686H19S1g==", "dev": true, + "license": "MIT", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } @@ -119,6 +125,20 @@ "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.4.tgz", "integrity": "sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==", "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.1.0.tgz", + "integrity": "sha512-autAXT203ixhqei9xt+qkYOvY8l6LAFIdT2UXc/RPNeUVfqRF1BV94GTJyVPFKT8nFM6MyVJhjLj9E8JWvf5zQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "levn": "^0.4.1" + }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } @@ -128,6 +148,7 @@ "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=12.22" }, @@ -141,6 +162,7 @@ "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.0.tgz", "integrity": "sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=18.18" }, @@ -152,7 +174,8 @@ "node_modules/@iarna/toml": { "version": "2.2.5", "resolved": "https://registry.npmjs.org/@iarna/toml/-/toml-2.2.5.tgz", - "integrity": "sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==" + "integrity": "sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==", + "license": "ISC" }, "node_modules/@iosevka/amend-readme": { "resolved": "tools/amend-readme", @@ -211,6 +234,7 @@ "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", "dev": true, + "license": "ISC", "dependencies": { "string-width": "^5.1.2", "string-width-cjs": "npm:string-width@^4.2.0", @@ -224,10 +248,11 @@ } }, "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -240,6 +265,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -254,6 +280,7 @@ "version": "2.8.0", "resolved": "https://registry.npmjs.org/@msgpack/msgpack/-/msgpack-2.8.0.tgz", "integrity": "sha512-h9u4u/jiIRKbq25PM+zymTyW6bhTzELvOoUd+AvYriWOAKpLGnIamaET3pnHYoI5iYphAHBI4ayx0MehR+VVPQ==", + "license": "ISC", "engines": { "node": ">= 10" } @@ -263,6 +290,7 @@ "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -276,6 +304,7 @@ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } @@ -285,6 +314,7 @@ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -297,6 +327,7 @@ "version": "1.7.4", "resolved": "https://registry.npmjs.org/@ot-builder/bin-composite-types/-/bin-composite-types-1.7.4.tgz", "integrity": "sha512-XaSxfufTFTBG9n7NHBapyqj3m7gy4vO2O6C6F1wvd3lAmTjGrIix1oCTXbKAH6XYdqYbkrcJ637ksRgssOyj0g==", + "license": "MIT", "dependencies": { "@ot-builder/bin-util": "1.7.4", "@ot-builder/errors": "1.7.4", @@ -308,6 +339,7 @@ "version": "1.7.4", "resolved": "https://registry.npmjs.org/@ot-builder/bin-util/-/bin-util-1.7.4.tgz", "integrity": "sha512-+AMUGJBMdCAQPrSV4yA4QPi1qzS/wb8BaSsFswd6GkhTze4UWMCbiu1yjoLSV7XzMC2toCXlY2YnxT120IScJw==", + "license": "MIT", "dependencies": { "@ot-builder/common-impl": "1.7.4", "@ot-builder/errors": "1.7.4", @@ -319,6 +351,7 @@ "version": "1.7.4", "resolved": "https://registry.npmjs.org/@ot-builder/cli-help-shower/-/cli-help-shower-1.7.4.tgz", "integrity": "sha512-twEW4Iz93apHrvb9ZOmc3Y7K1wYGRhjfT99OvLqgH1M+os8f+f2AQIWibW18e2Vro4GcNTqwvEna+uyIkrNVbQ==", + "license": "MIT", "dependencies": { "picocolors": "^1.0.1", "tslib": "^2.6.3" @@ -328,6 +361,7 @@ "version": "1.7.4", "resolved": "https://registry.npmjs.org/@ot-builder/cli-proc/-/cli-proc-1.7.4.tgz", "integrity": "sha512-tAcIgAEDYGazOTcaErZhQ9SGU4ufRL+pZe7nokce8pbzPGXfu+sQ8puJcpGRgSQ2MAoiW52RCaZOi0t2kdtZCg==", + "license": "MIT", "dependencies": { "@ot-builder/common-impl": "1.7.4", "@ot-builder/io-bin-font": "1.7.4", @@ -343,6 +377,7 @@ "version": "1.7.4", "resolved": "https://registry.npmjs.org/@ot-builder/cli-shared/-/cli-shared-1.7.4.tgz", "integrity": "sha512-eZocU2bGwvutOT51X21yV0FNt68JHxEdG0j+gP/vhdqoC/UZTQ06kBAAmzNy+d7yGS5nZ8NYcY/qKTKJpbqzTw==", + "license": "MIT", "dependencies": { "@ot-builder/io-bin-font": "1.7.4", "@ot-builder/ot": "1.7.4", @@ -353,6 +388,7 @@ "version": "1.7.4", "resolved": "https://registry.npmjs.org/@ot-builder/common-impl/-/common-impl-1.7.4.tgz", "integrity": "sha512-lwcVk8VEKy3i2j9JxZjFJjA7QA8jbZk9ZoYKmEqcLWFEd7p+mGN9qUI0QU8joGp1w2bOfmEFm0MDTNVwz6CNuw==", + "license": "MIT", "dependencies": { "@ot-builder/prelude": "1.7.4", "tslib": "^2.6.3" @@ -362,6 +398,7 @@ "version": "1.7.4", "resolved": "https://registry.npmjs.org/@ot-builder/errors/-/errors-1.7.4.tgz", "integrity": "sha512-/AKwI0jwi7t02Y3Nqe11mGIQta4hQijFDhIpwu9TcZmM1+S/8CjDRSntMQBIPQ+W2IKTNsuBH5WHWXsYAnxnyg==", + "license": "MIT", "dependencies": { "tslib": "^2.6.3" } @@ -370,6 +407,7 @@ "version": "1.7.4", "resolved": "https://registry.npmjs.org/@ot-builder/io-bin-cff/-/io-bin-cff-1.7.4.tgz", "integrity": "sha512-x6LdH3X6dovUaoJtLmfxxaygNrbeyftq8pcKD8eswW5XF7Lc52a8fe7yHKR+x3p7PQAUemX0qXURduTKJIym6A==", + "license": "MIT", "dependencies": { "@ot-builder/bin-composite-types": "1.7.4", "@ot-builder/bin-util": "1.7.4", @@ -389,6 +427,7 @@ "version": "1.7.4", "resolved": "https://registry.npmjs.org/@ot-builder/io-bin-encoding/-/io-bin-encoding-1.7.4.tgz", "integrity": "sha512-67K5TQvtkbGR3LdeHaa0MNZ7FCksssPOQ5BbFw+fsTVw/1Xjo7mFbttEPYdhD3zN+C+vsVcJgKYmFQ0mmAA1ew==", + "license": "MIT", "dependencies": { "@ot-builder/bin-util": "1.7.4", "@ot-builder/errors": "1.7.4", @@ -406,6 +445,7 @@ "version": "1.7.4", "resolved": "https://registry.npmjs.org/@ot-builder/io-bin-ext-private/-/io-bin-ext-private-1.7.4.tgz", "integrity": "sha512-wnMueaaBhK2OPh8HPqIKbQt1FfRPg3rm4H7MDftgMZ7snxo+P6xCYuM9bQzfn1Lvn1JbsOg8rH93Q/HDVnjw+g==", + "license": "MIT", "dependencies": { "@ot-builder/bin-util": "1.7.4", "@ot-builder/errors": "1.7.4", @@ -423,6 +463,7 @@ "version": "1.7.4", "resolved": "https://registry.npmjs.org/@ot-builder/io-bin-font/-/io-bin-font-1.7.4.tgz", "integrity": "sha512-5spp+1WI9uCMk0fdmLPTaEun0N1NxbCcPglsdf/PBEjWAasDaOdZoQueCx9x+xwdKaleQSnmQAFhs1v2JHusqg==", + "license": "MIT", "dependencies": { "@ot-builder/bin-util": "1.7.4", "@ot-builder/io-bin-encoding": "1.7.4", @@ -450,6 +491,7 @@ "version": "1.7.4", "resolved": "https://registry.npmjs.org/@ot-builder/io-bin-glyph-store/-/io-bin-glyph-store-1.7.4.tgz", "integrity": "sha512-KYRXubuiEYdcdkf8mBKyjaDhSqdWn8ryGHAdlTtuk9NdeQZJMqa9dRFPB+eD72Oh6XYm+f4Xrk8xhXL/f6FCeA==", + "license": "MIT", "dependencies": { "@ot-builder/bin-util": "1.7.4", "@ot-builder/common-impl": "1.7.4", @@ -473,6 +515,7 @@ "version": "1.7.4", "resolved": "https://registry.npmjs.org/@ot-builder/io-bin-layout/-/io-bin-layout-1.7.4.tgz", "integrity": "sha512-f80FpvrKs93eXg0+EJEr86nz4gIMsN/SqueH0/ulNsrhpwVULqvgSrrpcObveQrBTpybU0vVPb68l8WnzTVsQw==", + "license": "MIT", "dependencies": { "@ot-builder/bin-composite-types": "1.7.4", "@ot-builder/bin-util": "1.7.4", @@ -494,6 +537,7 @@ "version": "1.7.4", "resolved": "https://registry.npmjs.org/@ot-builder/io-bin-metadata/-/io-bin-metadata-1.7.4.tgz", "integrity": "sha512-2IYM5UPOe0ThcyF2bF4W5eZR8immdAecpE7DDh5ApBxJ8w3kaWpOy5hwtfSNeZ5M8ruB7M9ccFbRQMMtNJCMCQ==", + "license": "MIT", "dependencies": { "@ot-builder/bin-composite-types": "1.7.4", "@ot-builder/bin-util": "1.7.4", @@ -513,6 +557,7 @@ "version": "1.7.4", "resolved": "https://registry.npmjs.org/@ot-builder/io-bin-metric/-/io-bin-metric-1.7.4.tgz", "integrity": "sha512-/aUSlKXDRwLjzcAayf+QvLfGQodCVYTlWORoxlHrSjN+uQcRqnKGPc/shgqd1qADeO+3Slv1VNFFyIURyCxfSg==", + "license": "MIT", "dependencies": { "@ot-builder/bin-util": "1.7.4", "@ot-builder/common-impl": "1.7.4", @@ -530,6 +575,7 @@ "version": "1.7.4", "resolved": "https://registry.npmjs.org/@ot-builder/io-bin-name/-/io-bin-name-1.7.4.tgz", "integrity": "sha512-YCcvHOvdPpgsJHbGnE1WyZOUuUUImfXjKSAKX2PruHaE6tmly0s9rpLkx0FVPg7mIhyS4+UZ3qkk67FcgNHiiQ==", + "license": "MIT", "dependencies": { "@ot-builder/bin-util": "1.7.4", "@ot-builder/common-impl": "1.7.4", @@ -549,6 +595,7 @@ "version": "1.7.4", "resolved": "https://registry.npmjs.org/@ot-builder/io-bin-sfnt/-/io-bin-sfnt-1.7.4.tgz", "integrity": "sha512-PB2d04G1SEU4jaO0BHMHGgxLklXGXNRwjENlzQobZ+VtlpgbbXAkwcLSgWUDxeQIso1PoTESALDD9TeodEgFOQ==", + "license": "MIT", "dependencies": { "@ot-builder/bin-util": "1.7.4", "@ot-builder/common-impl": "1.7.4", @@ -563,6 +610,7 @@ "version": "1.7.4", "resolved": "https://registry.npmjs.org/@ot-builder/io-bin-ttf/-/io-bin-ttf-1.7.4.tgz", "integrity": "sha512-FG34A/H6jhvLAZy5SnjzWWqaN6KlJYyfGjnJXR5licsSYGhbH7Qqc84fYJIByqWE7M0QnHcihjFQd8awi5ZPnA==", + "license": "MIT", "dependencies": { "@ot-builder/bin-util": "1.7.4", "@ot-builder/common-impl": "1.7.4", @@ -581,6 +629,7 @@ "version": "1.7.4", "resolved": "https://registry.npmjs.org/@ot-builder/io-bin-vtt-private/-/io-bin-vtt-private-1.7.4.tgz", "integrity": "sha512-MlxloArXsecQ3VVjCxixdYXVkmZO8S8OGrQIfQawwVlKyO1tmBgDtJ0pwwMXiSf6WNQnh7AuLrVAPg6mZ9Ew0w==", + "license": "MIT", "dependencies": { "@ot-builder/bin-util": "1.7.4", "@ot-builder/errors": "1.7.4", @@ -601,6 +650,7 @@ "version": "1.7.4", "resolved": "https://registry.npmjs.org/@ot-builder/ot/-/ot-1.7.4.tgz", "integrity": "sha512-TRJrEiFGStlgQB3/eJSAIJd0I5Kza1aNff8jcfmxtgUh2TPYDtHeMtpsNxzIOAVJ5RD8GlKzqTCiDVQerc17UA==", + "license": "MIT", "dependencies": { "@ot-builder/common-impl": "1.7.4", "@ot-builder/ot-encoding": "1.7.4", @@ -621,6 +671,7 @@ "version": "1.7.4", "resolved": "https://registry.npmjs.org/@ot-builder/ot-encoding/-/ot-encoding-1.7.4.tgz", "integrity": "sha512-VCb4yPuEciEoVUcVb5rzBioGvYZtq8del1DgfOFGE1XVpfN2B+5jPqII9VLgFxjsHnjuEf4l7o6XtphVwYw+mA==", + "license": "MIT", "dependencies": { "@ot-builder/ot-glyphs": "1.7.4", "@ot-builder/prelude": "1.7.4", @@ -631,6 +682,7 @@ "version": "1.7.4", "resolved": "https://registry.npmjs.org/@ot-builder/ot-ext-private/-/ot-ext-private-1.7.4.tgz", "integrity": "sha512-aPtn3of2pqTwkpS+tbzV76tNjwgwNCNe9M16/8z14r7GxUjwfWyj3rqw8Qbp1eilZJRpkEKLFTvOYguZdvvtYA==", + "license": "MIT", "dependencies": { "@ot-builder/ot-glyphs": "1.7.4", "@ot-builder/prelude": "1.7.4", @@ -641,6 +693,7 @@ "version": "1.7.4", "resolved": "https://registry.npmjs.org/@ot-builder/ot-glyphs/-/ot-glyphs-1.7.4.tgz", "integrity": "sha512-2LaJzBgZxhE0o7ohrVXYT1LCuK5d79BwXJbv5NEftrMmvmr1ppBLOiwpaVbAT8t2K8QDOr0AwuEcWU4QBGqzrw==", + "license": "MIT", "dependencies": { "@ot-builder/common-impl": "1.7.4", "@ot-builder/prelude": "1.7.4", @@ -653,6 +706,7 @@ "version": "1.7.4", "resolved": "https://registry.npmjs.org/@ot-builder/ot-layout/-/ot-layout-1.7.4.tgz", "integrity": "sha512-rYgZZRPsrzGHRujAisBOWU1vD5AaPOTWiwnFdlPJGSX+LQu5TJJM+26i63eR/45SS1BrCwUzQFTRr+/m0Xue7Q==", + "license": "MIT", "dependencies": { "@ot-builder/ot-glyphs": "1.7.4", "@ot-builder/prelude": "1.7.4", @@ -665,6 +719,7 @@ "version": "1.7.4", "resolved": "https://registry.npmjs.org/@ot-builder/ot-metadata/-/ot-metadata-1.7.4.tgz", "integrity": "sha512-yMM0xDz7bD8KduIWEezd5m/2sD6W6fGcJGANObBdmekxNcwj1gSKs2+RJL+7BPHZdB348kgWfZ8OAXHCxoO8kQ==", + "license": "MIT", "dependencies": { "@ot-builder/common-impl": "1.7.4", "@ot-builder/prelude": "1.7.4", @@ -677,6 +732,7 @@ "version": "1.7.4", "resolved": "https://registry.npmjs.org/@ot-builder/ot-name/-/ot-name-1.7.4.tgz", "integrity": "sha512-DCaQt7Cga5oDiq3sbkMLCSWkqL8OIYCcEkbouC86cO84lYwx3OmImMFJwKeFnMLuDFn+oL8IhQuE7ndMsY7mGg==", + "license": "MIT", "dependencies": { "@ot-builder/prelude": "1.7.4", "@ot-builder/primitive": "1.7.4", @@ -687,6 +743,7 @@ "version": "1.7.4", "resolved": "https://registry.npmjs.org/@ot-builder/ot-sfnt/-/ot-sfnt-1.7.4.tgz", "integrity": "sha512-qgw20yD04OXwn0QlUgrMYAsLjQt++JaivL2hjoQH+UBDRPMwYMYoUDzQL9covU9x/lvU6bESHIUbd/oPUPI12Q==", + "license": "MIT", "dependencies": { "@ot-builder/prelude": "1.7.4", "@ot-builder/primitive": "1.7.4", @@ -697,6 +754,7 @@ "version": "1.7.4", "resolved": "https://registry.npmjs.org/@ot-builder/ot-standard-glyph-namer/-/ot-standard-glyph-namer-1.7.4.tgz", "integrity": "sha512-o9nB/vTR/NuMSJSkyOKG51jSd7s34m+fb41kZfZd3i9z2SLWRzjo3FwN+LRxwWhDtpR3L/bPOR8Y1KmhJYxtXw==", + "license": "MIT", "dependencies": { "@ot-builder/ot-glyphs": "1.7.4", "@ot-builder/prelude": "1.7.4", @@ -708,6 +766,7 @@ "version": "1.7.4", "resolved": "https://registry.npmjs.org/@ot-builder/ot-vtt-private/-/ot-vtt-private-1.7.4.tgz", "integrity": "sha512-UWgGJOVtboW6B0VKul5eK7HtSskUEZoxHzYQ0/YTKXzLmL8yqsMkIROC+5WFk+9KyzYWE81byWRJj6N46hH2Yg==", + "license": "MIT", "dependencies": { "@ot-builder/ot-glyphs": "1.7.4", "@ot-builder/prelude": "1.7.4", @@ -719,6 +778,7 @@ "version": "1.7.4", "resolved": "https://registry.npmjs.org/@ot-builder/prelude/-/prelude-1.7.4.tgz", "integrity": "sha512-cCI/PbHYOpa0kaGeLuDPjjaVzQoSAK8WdrwbaIgbKTEf9e2IwNsgMdPsfvZIQTbKumJuTFQPcIbGMmJNbi2EYg==", + "license": "MIT", "dependencies": { "tslib": "^2.6.3" } @@ -727,6 +787,7 @@ "version": "1.7.4", "resolved": "https://registry.npmjs.org/@ot-builder/primitive/-/primitive-1.7.4.tgz", "integrity": "sha512-/FOpU9JozQV4uctZ7NQGHOeDIlgK86AaOrtCNhcp2drDV3vOz7qDrxerzcdKaJMAkYMC2BEENOy5aogd6IzbcQ==", + "license": "MIT", "dependencies": { "@ot-builder/bin-util": "1.7.4", "@ot-builder/errors": "1.7.4", @@ -738,6 +799,7 @@ "version": "1.7.4", "resolved": "https://registry.npmjs.org/@ot-builder/rectify/-/rectify-1.7.4.tgz", "integrity": "sha512-gfuQIF35jIcSNAbk3wp6T2Wmyyea/cK0NhLFo2rJ57YCowjAYt8WbwUYSEr4MEEKjYgQOM0TP2brYRpTy/jnbg==", + "license": "MIT", "dependencies": { "@ot-builder/common-impl": "1.7.4", "@ot-builder/ot": "1.7.4", @@ -752,6 +814,7 @@ "version": "1.7.4", "resolved": "https://registry.npmjs.org/@ot-builder/stat-glyphs/-/stat-glyphs-1.7.4.tgz", "integrity": "sha512-RJf4CGhEgRbb1GBBdsx+cMZcUH+QFVp+y0iHq76iP5v9DBMC+A4I9cW9ZxODsdNsdhbtTh0bhQMt1ENQfnY+2Q==", + "license": "MIT", "dependencies": { "@ot-builder/bin-composite-types": "1.7.4", "@ot-builder/common-impl": "1.7.4", @@ -767,6 +830,7 @@ "version": "1.7.4", "resolved": "https://registry.npmjs.org/@ot-builder/trace/-/trace-1.7.4.tgz", "integrity": "sha512-G2cBpg4uqG1uxG3dnX3isqwDGI0ok+g5ebeMiGh7BbgfSZEB7POU7kMOtKmnJaN889mWgr4e8i3yKgfqo9cX7w==", + "license": "MIT", "dependencies": { "@ot-builder/common-impl": "1.7.4", "@ot-builder/ot": "1.7.4", @@ -781,6 +845,7 @@ "version": "1.7.4", "resolved": "https://registry.npmjs.org/@ot-builder/var-store/-/var-store-1.7.4.tgz", "integrity": "sha512-PZByTR7HKA5LPIOnuJjLoMnv1ciAQtt1AEVq8I5JiVAtlq9LFTf6H3zquLLDYT9F9giH8bUf/CD2WuRub8ZM9Q==", + "license": "MIT", "dependencies": { "@ot-builder/bin-composite-types": "1.7.4", "@ot-builder/bin-util": "1.7.4", @@ -796,6 +861,7 @@ "version": "1.7.4", "resolved": "https://registry.npmjs.org/@ot-builder/variance/-/variance-1.7.4.tgz", "integrity": "sha512-9DZKjKKE+PbpvUVT4hb3qUHOd3wuKQmoeybs8udcPus2zfHNGF3FjFBnrm/tk81Qyg1/nR03cE7r4pek6xDANA==", + "license": "MIT", "dependencies": { "@ot-builder/bin-composite-types": "1.7.4", "@ot-builder/common-impl": "1.7.4", @@ -809,6 +875,7 @@ "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", "dev": true, + "license": "MIT", "optional": true, "engines": { "node": ">=14" @@ -819,6 +886,7 @@ "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz", "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==", "dev": true, + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.18.0 || >=16.0.0" }, @@ -826,15 +894,17 @@ "url": "https://opencollective.com/unts" } }, - "node_modules/@unicode/unicode-15.1.0": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/@unicode/unicode-15.1.0/-/unicode-15.1.0-1.5.2.tgz", - "integrity": "sha512-7PAgnShDr8ziK6XeHB/TUVFboDFEhaQKKyrw55/Kx9o6AQDy1s7dJ9KRpRerW9nrR5qMGUQvOqTXOAek6ZIXkg==" + "node_modules/@unicode/unicode-16.0.0": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@unicode/unicode-16.0.0/-/unicode-16.0.0-1.0.0.tgz", + "integrity": "sha512-8LZGv1HXqbdtsuX6uw34BwYQRw6Qdb/j0wYa72zgN7xMxaZi1Pqf4LyBjLlOf+Zq+fITFGFLgVDFmWUQn1MKfg==", + "license": "MIT" }, "node_modules/@xmldom/xmldom": { "version": "0.8.10", "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz", "integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==", + "license": "MIT", "engines": { "node": ">=10.0.0" } @@ -844,6 +914,7 @@ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", "dev": true, + "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -856,6 +927,7 @@ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, + "license": "MIT", "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } @@ -863,13 +935,15 @@ "node_modules/aglfn": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/aglfn/-/aglfn-1.0.2.tgz", - "integrity": "sha512-HUvXd7sNFa1aHtYgJnln2jPwzq7UAAOXhYH/+AY6BMdfXxprMxG8IrczlZn6MjjIWpYhpKR5mHwDWTgehZKO4g==" + "integrity": "sha512-HUvXd7sNFa1aHtYgJnln2jPwzq7UAAOXhYH/+AY6BMdfXxprMxG8IrczlZn6MjjIWpYhpKR5mHwDWTgehZKO4g==", + "license": "BSD-3-Clause" }, "node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -886,6 +960,7 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -894,6 +969,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -907,12 +983,14 @@ "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "license": "Python-2.0" }, "node_modules/array-back": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", + "license": "MIT", "engines": { "node": ">=6" } @@ -921,6 +999,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "license": "MIT", "dependencies": { "call-bind": "^1.0.5", "is-array-buffer": "^3.0.4" @@ -933,10 +1012,11 @@ } }, "node_modules/astring": { - "version": "1.8.6", - "resolved": "https://registry.npmjs.org/astring/-/astring-1.8.6.tgz", - "integrity": "sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/astring/-/astring-1.9.0.tgz", + "integrity": "sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==", "dev": true, + "license": "MIT", "bin": { "astring": "bin/astring" } @@ -945,6 +1025,7 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "license": "MIT", "dependencies": { "possible-typed-array-names": "^1.0.0" }, @@ -959,13 +1040,15 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -975,6 +1058,7 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "license": "MIT", "dependencies": { "es-define-property": "^1.0.0", "es-errors": "^1.3.0", @@ -994,6 +1078,7 @@ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -1002,6 +1087,7 @@ "version": "0.0.9", "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.0.9.tgz", "integrity": "sha512-nG8PYH+/4xB+8zkV4G844EtfvZ5tTiLFoX3dZ4nhF4t3OCKIb9UvaFyNmeZO2zOSmRWzBoTD+napN6hiL+EgcA==", + "license": "MIT/X11", "dependencies": { "traverse": ">=0.3.0 <0.4" }, @@ -1013,6 +1099,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -1028,6 +1115,7 @@ "version": "7.5.0", "resolved": "https://registry.npmjs.org/cldr/-/cldr-7.5.0.tgz", "integrity": "sha512-2qy3ASYFbNToTujNnk5Y8ak++B4TH/G+S8AEOrN1xUFZhxhmqWDPUGnOFGyId61vD2Trf+yE65wVzIcdE/bpPg==", + "license": "BSD-3-Clause", "dependencies": { "@xmldom/xmldom": "^0.8.0", "escodegen": "^2.0.0", @@ -1044,6 +1132,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "license": "MIT", "dependencies": { "restore-cursor": "^3.1.0" }, @@ -1054,13 +1143,15 @@ "node_modules/clipper-lib": { "version": "6.4.2", "resolved": "https://registry.npmjs.org/clipper-lib/-/clipper-lib-6.4.2.tgz", - "integrity": "sha512-knglhjQX5ihNj/XCIs6zCHrTemdvHY3LPZP9XB2nq2/3igyYMFueFXtfp84baJvEE+f8pO1ZS4UVeEgmLnAprQ==" + "integrity": "sha512-knglhjQX5ihNj/XCIs6zCHrTemdvHY3LPZP9XB2nq2/3igyYMFueFXtfp84baJvEE+f8pO1ZS4UVeEgmLnAprQ==", + "license": "BSL" }, "node_modules/cliui": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, + "license": "ISC", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.1", @@ -1074,13 +1165,15 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/cliui/node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -1095,6 +1188,7 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -1111,6 +1205,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -1121,12 +1216,14 @@ "node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" }, "node_modules/command-line-args": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", + "license": "MIT", "dependencies": { "array-back": "^3.1.0", "find-replace": "^3.0.0", @@ -1141,6 +1238,7 @@ "version": "6.1.3", "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-6.1.3.tgz", "integrity": "sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw==", + "license": "MIT", "dependencies": { "array-back": "^4.0.2", "chalk": "^2.4.2", @@ -1155,6 +1253,7 @@ "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "license": "MIT", "dependencies": { "color-convert": "^1.9.0" }, @@ -1166,6 +1265,7 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", + "license": "MIT", "engines": { "node": ">=8" } @@ -1174,6 +1274,7 @@ "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "license": "MIT", "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -1187,6 +1288,7 @@ "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "license": "MIT", "dependencies": { "color-name": "1.1.3" } @@ -1194,12 +1296,14 @@ "node_modules/command-line-usage/node_modules/color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "license": "MIT" }, "node_modules/command-line-usage/node_modules/escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "license": "MIT", "engines": { "node": ">=0.8.0" } @@ -1208,6 +1312,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "license": "MIT", "engines": { "node": ">=4" } @@ -1216,6 +1321,7 @@ "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "license": "MIT", "dependencies": { "has-flag": "^3.0.0" }, @@ -1227,6 +1333,7 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", + "license": "MIT", "engines": { "node": ">=8" } @@ -1235,13 +1342,15 @@ "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, + "license": "MIT", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -1255,13 +1364,15 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/cross-spawn/node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -1273,12 +1384,13 @@ } }, "node_modules/debug": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", - "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", "dev": true, + "license": "MIT", "dependencies": { - "ms": "2.1.2" + "ms": "^2.1.3" }, "engines": { "node": ">=6.0" @@ -1293,6 +1405,7 @@ "version": "2.2.3", "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.3.tgz", "integrity": "sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==", + "license": "MIT", "dependencies": { "array-buffer-byte-length": "^1.0.0", "call-bind": "^1.0.5", @@ -1324,6 +1437,7 @@ "version": "0.6.0", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "license": "MIT", "engines": { "node": ">=4.0.0" } @@ -1332,12 +1446,14 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/define-data-property": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "license": "MIT", "dependencies": { "es-define-property": "^1.0.0", "es-errors": "^1.3.0", @@ -1354,6 +1470,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "license": "MIT", "dependencies": { "define-data-property": "^1.0.1", "has-property-descriptors": "^1.0.0", @@ -1370,18 +1487,21 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/emoji-regex": { "version": "9.2.2", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/es-define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "license": "MIT", "dependencies": { "get-intrinsic": "^1.2.4" }, @@ -1393,6 +1513,7 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", "engines": { "node": ">= 0.4" } @@ -1401,6 +1522,7 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==", + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.1.3", @@ -1417,10 +1539,11 @@ } }, "node_modules/escalade": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", - "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -1430,6 +1553,7 @@ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -1441,6 +1565,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "license": "BSD-2-Clause", "dependencies": { "esprima": "^4.0.1", "estraverse": "^5.2.0", @@ -1461,22 +1586,25 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", "optional": true, "engines": { "node": ">=0.10.0" } }, "node_modules/eslint": { - "version": "9.9.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.9.1.tgz", - "integrity": "sha512-dHvhrbfr4xFQ9/dq+jcVneZMyRYLjggWjk6RVsIiHsP8Rz6yZ8LvZ//iU4TrZF+SXWG+JkNF2OyiZRvzgRDqMg==", + "version": "9.10.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.10.0.tgz", + "integrity": "sha512-Y4D0IgtBZfOcOUAIQTSXBKoNGfY0REGqHJG6+Q81vNippW5YlKjHFj4soMxamKK1NXHUWuBZTLdU3Km+L/pcHw==", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.11.0", "@eslint/config-array": "^0.18.0", "@eslint/eslintrc": "^3.1.0", - "@eslint/js": "9.9.1", + "@eslint/js": "9.10.0", + "@eslint/plugin-kit": "^0.1.0", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.3.0", "@nodelib/fs.walk": "^1.2.8", @@ -1499,7 +1627,6 @@ "is-glob": "^4.0.0", "is-path-inside": "^3.0.3", "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", @@ -1530,6 +1657,7 @@ "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", "dev": true, + "license": "MIT", "bin": { "eslint-config-prettier": "bin/cli.js" }, @@ -1542,6 +1670,7 @@ "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.1.tgz", "integrity": "sha512-gH3iR3g4JfF+yYPaJYkN7jEl9QbweL/YfkoRlNnuIEHEz1vHVlCmWOS+eGGiRuzHQXdJFCOTxRgvju9b8VUmrw==", "dev": true, + "license": "MIT", "dependencies": { "prettier-linter-helpers": "^1.0.0", "synckit": "^0.9.1" @@ -1572,6 +1701,7 @@ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.0.2.tgz", "integrity": "sha512-6E4xmrTw5wtxnLA5wYL3WDfhZ/1bUBGOXV0zQvVRDOtrR8D0p6W7fs3JweNYhwRYeGvd/1CKX2se0/2s7Q/nJA==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" @@ -1588,6 +1718,7 @@ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.0.0.tgz", "integrity": "sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==", "dev": true, + "license": "Apache-2.0", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, @@ -1600,6 +1731,7 @@ "resolved": "https://registry.npmjs.org/espree/-/espree-10.1.0.tgz", "integrity": "sha512-M1M6CpiE6ffoigIOWYO9UDP8TMUw9kqb21tf+08IgDYjCsOvCuDt4jQcZmoYxx+w7zlKw9/N0KXfto+I8/FrXA==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "acorn": "^8.12.0", "acorn-jsx": "^5.3.2", @@ -1616,6 +1748,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "license": "BSD-2-Clause", "bin": { "esparse": "bin/esparse.js", "esvalidate": "bin/esvalidate.js" @@ -1629,6 +1762,7 @@ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "estraverse": "^5.1.0" }, @@ -1641,6 +1775,7 @@ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "estraverse": "^5.2.0" }, @@ -1652,6 +1787,7 @@ "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } @@ -1660,6 +1796,7 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "license": "BSD-2-Clause", "engines": { "node": ">=0.10.0" } @@ -1667,31 +1804,36 @@ "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "license": "MIT" }, "node_modules/fast-diff": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", - "dev": true + "dev": true, + "license": "Apache-2.0" }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fastq": { "version": "1.17.1", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", "dev": true, + "license": "ISC", "dependencies": { "reusify": "^1.0.4" } @@ -1701,6 +1843,7 @@ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", "dev": true, + "license": "MIT", "dependencies": { "flat-cache": "^4.0.0" }, @@ -1712,6 +1855,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", + "license": "MIT", "dependencies": { "array-back": "^3.0.1" }, @@ -1724,6 +1868,7 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, + "license": "MIT", "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" @@ -1740,6 +1885,7 @@ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", "dev": true, + "license": "MIT", "dependencies": { "flatted": "^3.2.9", "keyv": "^4.5.4" @@ -1752,12 +1898,14 @@ "version": "3.3.1", "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/for-each": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "license": "MIT", "dependencies": { "is-callable": "^1.1.3" } @@ -1767,6 +1915,7 @@ "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", "dev": true, + "license": "ISC", "dependencies": { "cross-spawn": "^7.0.0", "signal-exit": "^4.0.1" @@ -1782,6 +1931,7 @@ "version": "10.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -1795,6 +1945,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -1803,6 +1954,7 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -1812,6 +1964,7 @@ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true, + "license": "ISC", "engines": { "node": "6.* || 8.* || >= 10.*" } @@ -1820,6 +1973,7 @@ "version": "1.2.4", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "license": "MIT", "dependencies": { "es-errors": "^1.3.0", "function-bind": "^1.1.2", @@ -1839,6 +1993,7 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.0.tgz", "integrity": "sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==", "dev": true, + "license": "ISC", "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^4.0.1", @@ -1862,6 +2017,7 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^4.0.3" }, @@ -1874,6 +2030,7 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } @@ -1883,6 +2040,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz", "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -1898,6 +2056,7 @@ "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" }, @@ -1909,6 +2068,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "license": "MIT", "dependencies": { "get-intrinsic": "^1.1.3" }, @@ -1919,17 +2079,20 @@ "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "license": "ISC" }, "node_modules/harfbuzzjs": { "version": "0.3.6", "resolved": "https://registry.npmjs.org/harfbuzzjs/-/harfbuzzjs-0.3.6.tgz", - "integrity": "sha512-dzf7y6NS8fiAIvPAL/VKwY8wx2HCzUB0vUfOo6h1J5UilFEEf7iYqFsvgwjHwvM3whbjfOMadNvQekU3KuRnWQ==" + "integrity": "sha512-dzf7y6NS8fiAIvPAL/VKwY8wx2HCzUB0vUfOo6h1J5UilFEEf7iYqFsvgwjHwvM3whbjfOMadNvQekU3KuRnWQ==", + "license": "MIT" }, "node_modules/has-bigints": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -1938,6 +2101,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "license": "MIT", "engines": { "node": ">=8" } @@ -1946,6 +2110,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "license": "MIT", "dependencies": { "es-define-property": "^1.0.0" }, @@ -1957,6 +2122,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -1968,6 +2134,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -1979,6 +2146,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "license": "MIT", "dependencies": { "has-symbols": "^1.0.3" }, @@ -1993,6 +2161,7 @@ "version": "0.0.4", "resolved": "https://registry.npmjs.org/hashish/-/hashish-0.0.4.tgz", "integrity": "sha512-xyD4XgslstNAs72ENaoFvgMwtv8xhiDtC2AtzCG+8yF7W/Knxxm9BX+e2s25mm+HxMKh0rBmXVOEGF3zNImXvA==", + "license": "MIT/X11", "dependencies": { "traverse": ">=0.2.4" }, @@ -2004,6 +2173,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", "dependencies": { "function-bind": "^1.1.2" }, @@ -2015,6 +2185,7 @@ "version": "0.6.3", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" }, @@ -2027,6 +2198,7 @@ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4" } @@ -2036,6 +2208,7 @@ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, + "license": "MIT", "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -2052,6 +2225,7 @@ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.19" } @@ -2060,6 +2234,7 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", + "license": "MIT", "dependencies": { "es-errors": "^1.3.0", "hasown": "^2.0.0", @@ -2073,6 +2248,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" @@ -2088,6 +2264,7 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.2.1" @@ -2103,6 +2280,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "license": "MIT", "dependencies": { "has-bigints": "^1.0.1" }, @@ -2114,6 +2292,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" @@ -2129,6 +2308,7 @@ "version": "1.2.7", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -2140,6 +2320,7 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -2155,6 +2336,7 @@ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -2164,6 +2346,7 @@ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -2173,6 +2356,7 @@ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, + "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" }, @@ -2184,6 +2368,7 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -2195,6 +2380,7 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -2210,6 +2396,7 @@ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -2218,6 +2405,7 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" @@ -2233,6 +2421,7 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -2244,6 +2433,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", + "license": "MIT", "dependencies": { "call-bind": "^1.0.7" }, @@ -2258,6 +2448,7 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -2272,6 +2463,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "license": "MIT", "dependencies": { "has-symbols": "^1.0.2" }, @@ -2286,6 +2478,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -2297,6 +2490,7 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz", "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==", + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "get-intrinsic": "^1.2.4" @@ -2311,12 +2505,14 @@ "node_modules/isarray": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "license": "MIT" }, "node_modules/isexe": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "license": "ISC", "engines": { "node": ">=16" } @@ -2326,6 +2522,7 @@ "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.0.1.tgz", "integrity": "sha512-cub8rahkh0Q/bw1+GxP7aeSe29hHHn2V4m29nnDlvCdlgU+3UGxkZp7Z53jLUdpX3jdTO0nJZUDl3xvbWc2Xog==", "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { "@isaacs/cliui": "^8.0.2" }, @@ -2344,6 +2541,7 @@ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, + "license": "MIT", "dependencies": { "argparse": "^2.0.1" }, @@ -2355,24 +2553,28 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/jsonfile": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "license": "MIT", "dependencies": { "universalify": "^2.0.0" }, @@ -2385,6 +2587,7 @@ "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", "dev": true, + "license": "MIT", "dependencies": { "json-buffer": "3.0.1" } @@ -2394,6 +2597,7 @@ "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, + "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" @@ -2407,6 +2611,7 @@ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, + "license": "MIT", "dependencies": { "p-locate": "^5.0.0" }, @@ -2420,19 +2625,22 @@ "node_modules/lodash.camelcase": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==" + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", + "license": "MIT" }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lru-cache": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.0.tgz", - "integrity": "sha512-Qv32eSV1RSCfhY3fpPE2GNZ8jgM9X7rdAfemLWqTUxwiyIC4jJ6Sy0fZ8H+oLWevO6i4/bizg7c8d8i6bxrzbA==", + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.1.tgz", + "integrity": "sha512-CgeuL5uom6j/ZVrg7G/+1IXqRY8JXX4Hghfy5YE0EhoYQWvndP1kufu58cmZLNIDKnRhZrXfdS9urVWx98AipQ==", "dev": true, + "license": "ISC", "engines": { "node": "20 || >=22" } @@ -2441,6 +2649,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/memoizeasync/-/memoizeasync-1.1.0.tgz", "integrity": "sha512-HMfzdLqClZo8HMyuM9B6TqnXCNhw82iVWRLqd2cAdXi063v2iJB4mQfWFeKVByN8VUwhmDZ8NMhryBwKrPRf8Q==", + "license": "BSD", "dependencies": { "lru-cache": "2.5.0", "passerror": "1.1.1" @@ -2449,12 +2658,14 @@ "node_modules/memoizeasync/node_modules/lru-cache": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.5.0.tgz", - "integrity": "sha512-dVmQmXPBlTgFw77hm60ud//l2bCuDKkqC2on1EBoM7s9Urm9IQDrnujwZ93NFnAq0dVZ0HBXTS7PwEG+YE7+EQ==" + "integrity": "sha512-dVmQmXPBlTgFw77hm60ud//l2bCuDKkqC2on1EBoM7s9Urm9IQDrnujwZ93NFnAq0dVZ0HBXTS7PwEG+YE7+EQ==", + "license": "MIT" }, "node_modules/mimic-fn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "license": "MIT", "engines": { "node": ">=6" } @@ -2464,6 +2675,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -2476,27 +2688,31 @@ "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "dev": true, + "license": "ISC", "engines": { "node": ">=16 || 14 >=14.17" } }, "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" }, "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/nice-napi": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/nice-napi/-/nice-napi-1.0.2.tgz", "integrity": "sha512-px/KnJAJZf5RuBGcfD+Sp2pAKq0ytz8j+1NehvgIGFkvtvFrDM3T8E4x/JJODXK9WZow8RRGrbA9QQ3hs+pDhA==", "hasInstallScript": true, + "license": "MIT", "optional": true, "os": [ "!win32" @@ -2510,12 +2726,14 @@ "version": "3.2.1", "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==", + "license": "MIT", "optional": true }, "node_modules/node-gyp-build": { - "version": "4.8.1", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.1.tgz", - "integrity": "sha512-OSs33Z9yWr148JZcbZd5WiAXhh/n9z8TxQcdMhIOlpN9AhWpLfvVFO73+m77bBABQMaY9XSvIa+qk0jlI7Gcaw==", + "version": "4.8.2", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.2.tgz", + "integrity": "sha512-IRUxE4BVsHWXkV/SFOut4qTlagw2aM8T5/vnTsmrHJvVoKueJHRc/JaFND7QDDc61kLYUJ6qlZM3sqTSyx2dTw==", + "license": "MIT", "optional": true, "bin": { "node-gyp-build": "bin.js", @@ -2527,6 +2745,7 @@ "version": "1.13.2", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -2538,6 +2757,7 @@ "version": "1.1.6", "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz", "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1" @@ -2553,6 +2773,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "license": "MIT", "engines": { "node": ">= 0.4" } @@ -2561,6 +2782,7 @@ "version": "4.1.5", "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "license": "MIT", "dependencies": { "call-bind": "^1.0.5", "define-properties": "^1.2.1", @@ -2578,6 +2800,7 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "license": "MIT", "dependencies": { "mimic-fn": "^2.1.0" }, @@ -2593,6 +2816,7 @@ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", "dev": true, + "license": "MIT", "dependencies": { "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", @@ -2609,6 +2833,7 @@ "version": "1.7.4", "resolved": "https://registry.npmjs.org/ot-builder/-/ot-builder-1.7.4.tgz", "integrity": "sha512-HX4wj6p1cZvKzwJA190aWYRLsMbm7CSYhQ9XN4r3HpktaFQ3k0R6DqqYa/yPFFQEXG3PUc67Z5v8W1+qB05g0g==", + "license": "MIT", "dependencies": { "@ot-builder/cli-proc": "1.7.4", "@ot-builder/io-bin-font": "1.7.4", @@ -2624,6 +2849,7 @@ "version": "1.7.4", "resolved": "https://registry.npmjs.org/otb-ttc-bundle/-/otb-ttc-bundle-1.7.4.tgz", "integrity": "sha512-i2npID5R5QFGqmICy+03D7Qx9X59RzfxiHFKBvTdT8MVBV1uWjNIBYuFJEvQWGKdm7pouml+D9oKrZic+mroBA==", + "license": "MIT", "dependencies": { "@ot-builder/cli-help-shower": "1.7.4", "@ot-builder/cli-shared": "1.7.4", @@ -2639,6 +2865,7 @@ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, + "license": "MIT", "dependencies": { "yocto-queue": "^0.1.0" }, @@ -2654,6 +2881,7 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, + "license": "MIT", "dependencies": { "p-limit": "^3.0.2" }, @@ -2668,13 +2896,15 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==", - "dev": true + "dev": true, + "license": "BlueOak-1.0.0" }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, + "license": "MIT", "dependencies": { "callsites": "^3.0.0" }, @@ -2686,6 +2916,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/passerror/-/passerror-1.1.1.tgz", "integrity": "sha512-PwrEQJBkJMxnxG+tdraz95vTstYnCRqiURNbGtg/vZHLgcAODc9hbiD5ZumGUoh3bpw0F0qKLje7Vd2Fd5Lx3g==", + "license": "BSD-3-Clause", "engines": { "node": "*" } @@ -2711,6 +2942,7 @@ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -2720,6 +2952,7 @@ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -2729,6 +2962,7 @@ "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz", "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==", "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { "lru-cache": "^11.0.0", "minipass": "^7.1.2" @@ -2745,6 +2979,7 @@ "resolved": "https://registry.npmjs.org/patrisika/-/patrisika-0.26.0.tgz", "integrity": "sha512-ZzzasIrsgKFTolnOyyDcMVcYI6RJ+mpUJFv2b6nA6vPe9/ucBqCztQRsPZkDd/FtTwbA6ms/mHNcACcux6AjEQ==", "dev": true, + "license": "MIT", "dependencies": { "patrisika-scopes": "^0.12.0" } @@ -2753,12 +2988,14 @@ "version": "0.12.0", "resolved": "https://registry.npmjs.org/patrisika-scopes/-/patrisika-scopes-0.12.0.tgz", "integrity": "sha512-rj428KYq5leS75PCDl6iyl91n6/d63yw1ikHYwd1z9UXwWk11Vj2gpTu0CxjLZJJOiFNA01LiX+WMpC5icCKng==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/pegjs": { "version": "0.10.0", "resolved": "https://registry.npmjs.org/pegjs/-/pegjs-0.10.0.tgz", "integrity": "sha512-qI5+oFNEGi3L5HAxDwN2LA4Gg7irF70Zs25edhjld9QemOgp0CbvMtbFcMvFtEo1OityPrcCzkQFB8JP/hxgow==", + "license": "MIT", "bin": { "pegjs": "bin/pegjs" }, @@ -2767,14 +3004,16 @@ } }, "node_modules/picocolors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", - "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==" + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz", + "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==", + "license": "ISC" }, "node_modules/piscina": { "version": "4.6.1", "resolved": "https://registry.npmjs.org/piscina/-/piscina-4.6.1.tgz", "integrity": "sha512-z30AwWGtQE+Apr+2WBZensP2lIvwoaMcOPkQlIEmSGMJNUvaYACylPYrQM6wSdUNJlnDVMSpLv7xTMJqlVshOA==", + "license": "MIT", "optionalDependencies": { "nice-napi": "^1.0.2" } @@ -2783,6 +3022,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "license": "MIT", "engines": { "node": ">= 0.4" } @@ -2792,6 +3032,7 @@ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8.0" } @@ -2801,6 +3042,7 @@ "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", "dev": true, + "license": "MIT", "bin": { "prettier": "bin/prettier.cjs" }, @@ -2816,6 +3058,7 @@ "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", "dev": true, + "license": "MIT", "dependencies": { "fast-diff": "^1.1.2" }, @@ -2828,6 +3071,7 @@ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -2850,12 +3094,14 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/reduce-flatten": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-2.0.0.tgz", "integrity": "sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==", + "license": "MIT", "engines": { "node": ">=6" } @@ -2864,6 +3110,7 @@ "version": "1.5.2", "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", + "license": "MIT", "dependencies": { "call-bind": "^1.0.6", "define-properties": "^1.2.1", @@ -2882,6 +3129,7 @@ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -2891,6 +3139,7 @@ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -2899,6 +3148,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "license": "MIT", "dependencies": { "onetime": "^5.1.0", "signal-exit": "^3.0.2" @@ -2910,13 +3160,15 @@ "node_modules/restore-cursor/node_modules/signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "license": "ISC" }, "node_modules/resumer": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz", "integrity": "sha512-Fn9X8rX8yYF4m81rZCK/5VmrmsSbqS/i3rDLl6ZZHAXgC2nTAx3dhwG8q8odP/RmdLa2YrybDJaAMg+X1ajY3w==", "dev": true, + "license": "MIT", "dependencies": { "through": "~2.3.4" } @@ -2926,6 +3178,7 @@ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true, + "license": "MIT", "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" @@ -2950,6 +3203,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "queue-microtask": "^1.2.2" } @@ -2957,12 +3211,14 @@ "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" }, "node_modules/semaphore-async-await": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/semaphore-async-await/-/semaphore-async-await-1.5.1.tgz", "integrity": "sha512-b/ptP11hETwYWpeilHXXQiV5UJNJl7ZWWooKRE5eBIYWoom6dZ0SluCIdCtKycsMtZgKWE01/qAw6jblw1YVhg==", + "license": "MIT", "engines": { "node": ">=4.1" } @@ -2971,6 +3227,7 @@ "version": "7.6.3", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -2982,6 +3239,7 @@ "version": "0.3.5", "resolved": "https://registry.npmjs.org/seq/-/seq-0.3.5.tgz", "integrity": "sha512-sisY2Ln1fj43KBkRtXkesnRHYNdswIkIibvNe/0UKm2GZxjMbqmccpiatoKr/k2qX5VKiLU8xm+tz/74LAho4g==", + "license": "MIT/X11", "dependencies": { "chainsaw": ">=0.0.7 <0.1", "hashish": ">=0.0.2 <0.1" @@ -2994,6 +3252,7 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "license": "MIT", "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", @@ -3010,6 +3269,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "license": "MIT", "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", @@ -3025,6 +3285,7 @@ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, + "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" }, @@ -3037,6 +3298,7 @@ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -3045,6 +3307,7 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "es-errors": "^1.3.0", @@ -3063,6 +3326,7 @@ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, + "license": "ISC", "engines": { "node": ">=14" }, @@ -3075,6 +3339,7 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">= 8" } @@ -3091,6 +3356,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==", + "license": "MIT", "dependencies": { "internal-slot": "^1.0.4" }, @@ -3101,13 +3367,15 @@ "node_modules/string-format": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/string-format/-/string-format-2.0.0.tgz", - "integrity": "sha512-bbEs3scLeYNXLecRRuk6uJxdXUSj6le/8rNPHChIJTn2V79aXVTR1EH2OH5zLKKoz0V02fOUKZZcw01pLUShZA==" + "integrity": "sha512-bbEs3scLeYNXLecRRuk6uJxdXUSj6le/8rNPHChIJTn2V79aXVTR1EH2OH5zLKKoz0V02fOUKZZcw01pLUShZA==", + "license": "WTFPL OR MIT" }, "node_modules/string-width": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dev": true, + "license": "MIT", "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", @@ -3126,6 +3394,7 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -3139,13 +3408,15 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/string-width/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -3158,6 +3429,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -3173,6 +3445,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -3186,6 +3459,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -3198,6 +3472,7 @@ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -3209,6 +3484,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -3221,6 +3497,7 @@ "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.1.tgz", "integrity": "sha512-7gr8p9TQP6RAHusBOSLs46F4564ZrjV8xFmw5zCmgmhGUcw2hxsShhJ6CEiHQMgPDwAQ1fWHPM0ypc4RMAig4A==", "dev": true, + "license": "MIT", "dependencies": { "@pkgr/core": "^0.1.0", "tslib": "^2.6.2" @@ -3236,6 +3513,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-1.0.2.tgz", "integrity": "sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A==", + "license": "MIT", "dependencies": { "array-back": "^4.0.1", "deep-extend": "~0.6.0", @@ -3250,6 +3528,7 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", + "license": "MIT", "engines": { "node": ">=8" } @@ -3258,6 +3537,7 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", + "license": "MIT", "engines": { "node": ">=8" } @@ -3266,23 +3546,27 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/toposort": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz", - "integrity": "sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==" + "integrity": "sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==", + "license": "MIT" }, "node_modules/traverse": { "version": "0.3.9", "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz", "integrity": "sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ==", + "license": "MIT/X11", "engines": { "node": "*" } @@ -3291,6 +3575,7 @@ "version": "2.5.1", "resolved": "https://registry.npmjs.org/ts-command-line-args/-/ts-command-line-args-2.5.1.tgz", "integrity": "sha512-H69ZwTw3rFHb5WYpQya40YAX2/w7Ut75uUECbgBIsLmM+BNuYnxsltfyyLMxy6sEeKxgijLTnQtLd0nKd6+IYw==", + "license": "ISC", "dependencies": { "chalk": "^4.1.0", "command-line-args": "^5.1.1", @@ -3304,13 +3589,15 @@ "node_modules/tslib": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", - "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==" + "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==", + "license": "0BSD" }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, + "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1" }, @@ -3322,6 +3609,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", + "license": "MIT", "engines": { "node": ">=8" } @@ -3330,6 +3618,7 @@ "version": "0.16.1", "resolved": "https://registry.npmjs.org/typo-geom/-/typo-geom-0.16.1.tgz", "integrity": "sha512-sLVzRyasp1VQDdhBaH7cmhCRVs2+HTVuiTKJgO7u7fDR7kWSca4wVz/zAVifYYIgbbzF88cS+PUAtQjtnGOntQ==", + "license": "MIT", "dependencies": { "clipper-lib": "^6.4.2", "tslib": "^2.6.2" @@ -3347,6 +3636,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "license": "MIT", "engines": { "node": ">= 10.0.0" } @@ -3356,6 +3646,7 @@ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "punycode": "^2.1.0" } @@ -3368,6 +3659,7 @@ "https://github.com/sponsors/broofa", "https://github.com/sponsors/ctavan" ], + "license": "MIT", "bin": { "uuid": "dist/bin/uuid" } @@ -3376,6 +3668,7 @@ "version": "1.12.2", "resolved": "https://registry.npmjs.org/verda/-/verda-1.12.2.tgz", "integrity": "sha512-9Rz0dc/gARb2pZ66fuIDcpXtG5UXWSQHacqcLbo6yC+Q2OQfGMJtbu0wJ6qQBa0onvoO+wQARGkBz0GDQVif+w==", + "license": "MIT", "dependencies": { "chalk": "^4.1.2", "cli-cursor": "^3.1.0", @@ -3398,6 +3691,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/wawoff2/-/wawoff2-2.0.1.tgz", "integrity": "sha512-r0CEmvpH63r4T15ebFqeOjGqU4+EgTx4I510NtK35EMciSdcTxCw3Byy3JnBonz7iyIFZ0AbVo0bbFpEVuhCYA==", + "license": "MIT", "dependencies": { "argparse": "^2.0.1" }, @@ -3410,6 +3704,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "license": "ISC", "dependencies": { "isexe": "^3.1.1" }, @@ -3424,6 +3719,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "license": "MIT", "dependencies": { "is-bigint": "^1.0.1", "is-boolean-object": "^1.1.0", @@ -3439,6 +3735,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "license": "MIT", "dependencies": { "is-map": "^2.0.3", "is-set": "^2.0.3", @@ -3456,6 +3753,7 @@ "version": "1.1.15", "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", + "license": "MIT", "dependencies": { "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.7", @@ -3475,6 +3773,7 @@ "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -3483,6 +3782,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-4.0.1.tgz", "integrity": "sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA==", + "license": "MIT", "dependencies": { "reduce-flatten": "^2.0.0", "typical": "^5.2.0" @@ -3495,6 +3795,7 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==", + "license": "MIT", "engines": { "node": ">=8" } @@ -3504,6 +3805,7 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", @@ -3522,6 +3824,7 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -3538,13 +3841,15 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/wrap-ansi-cjs/node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -3555,10 +3860,11 @@ } }, "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -3571,6 +3877,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -3583,6 +3890,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -3597,6 +3905,7 @@ "version": "0.0.33", "resolved": "https://registry.npmjs.org/xpath/-/xpath-0.0.33.tgz", "integrity": "sha512-NNXnzrkDrAzalLhIUc01jO2mOzXGXh1JwPgkihcLLzw98c0WgYDmmjSh1Kl3wzaxSVWMuA+fe0WTWOBDWCBmNA==", + "license": "MIT", "engines": { "node": ">=0.6.0" } @@ -3606,6 +3915,7 @@ "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true, + "license": "ISC", "engines": { "node": ">=10" } @@ -3615,6 +3925,7 @@ "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, + "license": "MIT", "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", @@ -3633,6 +3944,7 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true, + "license": "ISC", "engines": { "node": ">=12" } @@ -3641,13 +3953,15 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/yargs/node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -3662,6 +3976,7 @@ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -3671,16 +3986,16 @@ }, "packages/font": { "name": "@iosevka/font", - "version": "31.6.1", + "version": "31.7.0", "dependencies": { "@iarna/toml": "^2.2.5", - "@iosevka/font-glyphs": "31.6.1", - "@iosevka/font-otl": "31.6.1", - "@iosevka/geometry": "31.6.1", - "@iosevka/geometry-cache": "31.6.1", - "@iosevka/glyph": "31.6.1", - "@iosevka/param": "31.6.1", - "@iosevka/util": "31.6.1", + "@iosevka/font-glyphs": "31.7.0", + "@iosevka/font-otl": "31.7.0", + "@iosevka/geometry": "31.7.0", + "@iosevka/geometry-cache": "31.7.0", + "@iosevka/glyph": "31.7.0", + "@iosevka/param": "31.7.0", + "@iosevka/util": "31.7.0", "harfbuzzjs": "^0.3.6", "ot-builder": "^1.7.4", "semver": "^7.6.3" @@ -3688,100 +4003,100 @@ }, "packages/font-glyphs": { "name": "@iosevka/font-glyphs", - "version": "31.6.1", + "version": "31.7.0", "dependencies": { - "@iosevka/font-kits": "31.6.1", - "@iosevka/geometry": "31.6.1", - "@iosevka/geometry-cache": "31.6.1", - "@iosevka/glyph": "31.6.1", - "@iosevka/util": "31.6.1", + "@iosevka/font-kits": "31.7.0", + "@iosevka/geometry": "31.7.0", + "@iosevka/geometry-cache": "31.7.0", + "@iosevka/glyph": "31.7.0", + "@iosevka/util": "31.7.0", "typo-geom": "^0.16.1" } }, "packages/font-kits": { "name": "@iosevka/font-kits", - "version": "31.6.1", + "version": "31.7.0", "dependencies": { - "@iosevka/geometry": "31.6.1", - "@iosevka/glyph": "31.6.1", - "@iosevka/util": "31.6.1" + "@iosevka/geometry": "31.7.0", + "@iosevka/glyph": "31.7.0", + "@iosevka/util": "31.7.0" } }, "packages/font-otl": { "name": "@iosevka/font-otl", - "version": "31.6.1", + "version": "31.7.0", "dependencies": { - "@iosevka/font-glyphs": "31.6.1", - "@iosevka/glyph": "31.6.1", + "@iosevka/font-glyphs": "31.7.0", + "@iosevka/glyph": "31.7.0", "toposort": "^2.0.2" } }, "packages/geometry": { "name": "@iosevka/geometry", - "version": "31.6.1", + "version": "31.7.0", "dependencies": { - "@iosevka/util": "31.6.1", + "@iosevka/util": "31.7.0", "spiro": "^3.0.1", "typo-geom": "^0.16.1" } }, "packages/geometry-cache": { "name": "@iosevka/geometry-cache", - "version": "31.6.1", + "version": "31.7.0", "dependencies": { - "@iosevka/geometry": "31.6.1", + "@iosevka/geometry": "31.7.0", "@msgpack/msgpack": "^2.8.0" } }, "packages/glyph": { "name": "@iosevka/glyph", - "version": "31.6.1", + "version": "31.7.0", "dependencies": { - "@iosevka/geometry": "31.6.1" + "@iosevka/geometry": "31.7.0" } }, "packages/param": { "name": "@iosevka/param", - "version": "31.6.1", + "version": "31.7.0", "dependencies": { - "@iosevka/util": "31.6.1" + "@iosevka/util": "31.7.0" } }, "packages/util": { "name": "@iosevka/util", - "version": "31.6.1" + "version": "31.7.0" }, "tools/amend-readme": { "name": "@iosevka/amend-readme", - "version": "31.6.1", + "version": "31.7.0", "dependencies": { "@iarna/toml": "^2.2.5", - "@iosevka/param": "31.6.1", - "@unicode/unicode-15.1.0": "^1.5.2" + "@iosevka/param": "31.7.0", + "@unicode/unicode-16.0.0": "^1.0.0" } }, "tools/data-export": { "name": "@iosevka/data-export", - "version": "31.6.1", + "version": "31.7.0", "dependencies": { "@iarna/toml": "^2.2.5", - "@iosevka/param": "31.6.1", - "@unicode/unicode-15.1.0": "^1.5.2", + "@iosevka/param": "31.7.0", + "@unicode/unicode-16.0.0": "^1.0.0", "cldr": "^7.5.0" } }, "tools/generate-samples": { "name": "@iosevka/generate-samples", - "version": "31.6.1", + "version": "31.7.0", "dependencies": { - "@iosevka/data-export": "31.6.1" + "@iosevka/data-export": "31.7.0" } }, "tools/misc": { "name": "@iosevka/misc", - "version": "31.6.1", + "version": "31.7.0", "dependencies": { - "@iosevka/util": "31.6.1", + "@iosevka/util": "31.7.0", "semver": "^7.6.3", "wawoff2": "^2.0.1" } diff --git a/package.json b/package.json index 205ef92f27..8ef8c2299f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/monorepo", - "version": "31.6.1", + "version": "31.7.0", "workspaces": [ "packages/*", "tools/*" diff --git a/packages/font-glyphs/package.json b/packages/font-glyphs/package.json index b24622a668..5fa1e423f8 100644 --- a/packages/font-glyphs/package.json +++ b/packages/font-glyphs/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/font-glyphs", - "version": "31.6.1", + "version": "31.7.0", "private": true, "exports": { ".": "./lib/index.mjs", @@ -8,11 +8,11 @@ "./unicode-knowledge": "./lib/meta/unicode-knowledge.mjs" }, "dependencies": { - "@iosevka/font-kits": "31.6.1", - "@iosevka/geometry": "31.6.1", - "@iosevka/geometry-cache": "31.6.1", - "@iosevka/glyph": "31.6.1", - "@iosevka/util": "31.6.1", + "@iosevka/font-kits": "31.7.0", + "@iosevka/geometry": "31.7.0", + "@iosevka/geometry-cache": "31.7.0", + "@iosevka/glyph": "31.7.0", + "@iosevka/util": "31.7.0", "typo-geom": "^0.16.1" } } diff --git a/packages/font-glyphs/src/auto-build/accents.ptl b/packages/font-glyphs/src/auto-build/accents.ptl index ed0ba29b75..4ebae4407a 100644 --- a/packages/font-glyphs/src/auto-build/accents.ptl +++ b/packages/font-glyphs/src/auto-build/accents.ptl @@ -12,6 +12,8 @@ glyph-module glyph-block AutoBuild-Accents : begin glyph-block-import Common-Derivatives : query-glyph refer-glyph + glyph-block-import CommonShapes : NameUni + glyph-block-import Letter-Accent-Builder : TransformGlyphCompositionSequence define [suggestName _name] : begin local name _name @@ -27,197 +29,6 @@ glyph-block AutoBuild-Accents : begin set map.(key) amended return amended - # Here, we build a simplified substitution builder that does the mark substitutions - # This is similar to GSUB lookup type 6 but with more flexibility - define flex-params [substParts] : begin - local-parameter : parts - local-parameter : ignore -- MatchUtil.never - local-parameter : backtrack -- {} - local-parameter : input - local-parameter : lookAhead -- {} - local-parameter : replace - local igl 0 - while (igl < parts.length) : begin - local m : substMatch parts igl ignore backtrack input lookAhead - if [not m] - : then : inc igl - : else : begin - local inputGlyphs : ArrayUtil.mapIndexToItems parts m - local producedGlyphs : replace.apply null inputGlyphs - foreach i [range (m.length - 1) downtill 0] : begin - parts.splice m.(i) 1 - ArrayUtil.insertSliceAt parts m.0 producedGlyphs - set igl : m.(m.length - 1) + 1 + producedGlyphs.length - m.length - - return parts - - define [substMatch parts igl ignore backtrack input lookAhead] : begin - if (igl >= parts.length) : return null - if [ignore parts.(igl)] : return null - if [not : input.0 parts.(igl)] : return null - - local m { igl } - - # Check input - local iglInput : igl + 1 - foreach iInput [range 1 input.length] : begin - while (iglInput < parts.length && [ignore parts.(iglInput)]) : inc iglInput - if (iglInput >= parts.length) : return null - if [not : input.(iInput) parts.(iglInput)] : return null - m.push iglInput - inc iglInput - - # Check lookahead - local iglLookAhead iglInput - foreach iLookAhead [range 0 lookAhead.length] : begin - while (iglLookAhead < parts.length && [ignore parts.(iglLookAhead)]) : inc iglLookAhead - if (iglLookAhead >= parts.length) : return null - if [not : lookAhead.(iLookAhead) parts.(iglLookAhead)] : return null - inc iglLookAhead - - # Check backtrack - local iglBacktrack : igl - 1 - foreach iBacktrack [range (backtrack.length - 1) downtill 0] : begin - while (iglBacktrack >= 0 && [ignore parts.(iglBacktrack)]) : dec iglBacktrack - if (iglBacktrack < 0) : return null - if [not : backtrack.(iBacktrack) parts.(iglBacktrack)] : return null - dec iglBacktrack - - return m - - # Match/replace directives - define [dotless g] : begin - local gDotless : query-glyph : Dotless.get g - if [not gDotless] : return null - return {gDotless} - define [isMark k] : function [g] : begin - return : g && g.markAnchors && g.markAnchors.(k) - define [isMarkExcluding k] : function [g] : begin - return : g && g.markAnchors && [Object.keys g.markAnchors].length && !g.markAnchors.(k) - define [hasBaseAnchor k] : function [g] : begin - return : g && g.baseAnchors && g.baseAnchors.(k) - define [produceLeaningMark gnSuppressAnchor] : function [g] : begin - local spacer : query-glyph : LeaningMarkSpacer.get g - local alternative : query-glyph : LeaningMark.get g - if (spacer && alternative) : return { spacer alternative } - return { [query-glyph gnSuppressAnchor] g } - - define [markSubst uk] : begin - local mapping : new Map - foreach { k v } [Object.entries uk] : begin - local gFrom : query-glyph k - local gTo : query-glyph v - mapping.set gFrom gTo - - define [matcher g] : mapping.has g - define [ignore g] : g && g.markAnchors && [Object.keys g.markAnchors].length && ![matcher g] - define [production g] : list ([mapping.get g] || g) - - return : object matcher ignore production - - define [markSplit uk] : begin - local mapping : new Map - foreach { k v } [Object.entries uk] : begin - local gFrom : query-glyph k - local gsTo : v.map query-glyph - mapping.set gFrom gsTo - - define [matcher g] : mapping.has g - define [ignore g] : g && g.markAnchors && [Object.keys g.markAnchors].length && ![matcher g] - define [production g] : begin - console.log g [mapping.get g] - return : [mapping.get g] || { g } - - return : object matcher ignore production - - define [markCombine uk] : begin - local first : new Set - local second : new Set - local mapping : new Map - - foreach { { k1 k2 } v } [items-of uk] : begin - local g1 : query-glyph k1 - local g2 : query-glyph k2 - local g3 : query-glyph v - if (g1 && g2 && g3) : begin - first.add g1 - second.add g2 - - local mm : mapping.get g1 - if [not mm] : begin - set mm : new Map - mapping.set g1 mm - mm.set g2 g3 - - define [matchFirst g] : first.has g - define [matchSecond g] : second.has g - define [production g1 g2] : begin - local mm : mapping.get g1 - if [not mm] : return { g1 g2 } - local g3 : mm.get g2 - if [not g3] : return { g1 g2 } - return { g3 } - - return : object matchFirst matchSecond production - - define iotaLF : markSubst UnicodeKnowledge.iotaBelowToLfTf - define ogonek : markSplit UnicodeKnowledge.ogonekBelowToTRTf - define upperTonos : markSubst UnicodeKnowledge.upperGrekMarkToTonosTf - - define markComposition : markCombine UnicodeKnowledge.markCompositionTf - - define [subParts parts] : begin - ### Keep the semantics here synchronized with `ccmp` feature - - # Handle dotless form - substParts parts - ignore -- [isMarkExcluding 'above'] - input -- {dotless} - lookAhead -- {[isMark 'above']} - replace -- dotless - - # Handle iota subscript - substParts parts - ignore -- iotaLF.ignore - backtrack -- {[hasBaseAnchor 'lf']} - input -- {iotaLF.matcher} - replace -- iotaLF.production - - # Handle ogonek - substParts parts - ignore -- ogonek.ignore - backtrack -- {[hasBaseAnchor 'trailing']} - input -- {ogonek.matcher} - replace -- ogonek.production - - # Handle mark combinations (Greek) - substParts parts - input -- { markComposition.matchFirst markComposition.matchSecond } - replace -- markComposition.production - - # Handle upper Greek Tonos marks - substParts parts - backtrack -- {[hasBaseAnchor 'grekUpperTonos']} - input -- {upperTonos.matcher} - replace -- upperTonos.production - - # Handle leaning marks - substParts parts - ignore -- [isMarkExcluding 'above'] - backtrack -- {[MatchUtil.either [hasBaseAnchor 'leaningAbove'] [isMark 'leaningAbove']]} - input -- {[isMark 'above']} - replace -- [produceLeaningMark 'mark/suppressLeaningAboveAnchor'] - substParts parts - ignore -- [isMarkExcluding 'below'] - backtrack -- {[MatchUtil.either [hasBaseAnchor 'leaningBelow'] [isMark 'leaningBelow']]} - input -- {[isMark 'below']} - replace -- [produceLeaningMark 'mark/suppressLeaningBelowAnchor'] - - define [pad _s n] : begin - local s _s - while (s.length < n) : s = '0' + s - return s - local foundDecompositions {.} local goalCodes : range 0x0000 0x1FFFF @@ -228,7 +39,7 @@ glyph-block AutoBuild-Accents : begin local customDecomp UnicodeKnowledge.decompOverrides.(code) local str : String.fromCodePoint code - local nfd : str.normalize 'NFD' + local nfd : str.normalize 'NFD' if customDecomp : then : begin @@ -247,8 +58,8 @@ glyph-block AutoBuild-Accents : begin : else : parts.push part if (allFound && parts.length) : begin - local glyphName : 'u' + [code.toString 16 :.padStart 4 '0'] - subParts parts + local glyphName : NameUni code + TransformGlyphCompositionSequence parts set foundDecompositions.(glyphName) { glyphName code parts } local s_goalName nothing @@ -266,7 +77,6 @@ glyph-block AutoBuild-Accents : begin define construction : glyph-proc include s_parts.0 AS_BASE ALSO_METRICS local nonTrivial : AnyDerivingCv.hasNonDerivingVariants s_parts.0 - if nonTrivial : console.log s_parts.0 foreach part [items-of : s_parts.slice 1] : if part : begin include part if (part.markAnchors && part.markAnchors.bottomRight) : begin diff --git a/packages/font-glyphs/src/auto-build/mark-doppelganger.ptl b/packages/font-glyphs/src/auto-build/mark-doppelganger.ptl deleted file mode 100644 index f3bcf2ba3c..0000000000 --- a/packages/font-glyphs/src/auto-build/mark-doppelganger.ptl +++ /dev/null @@ -1,70 +0,0 @@ -$$include '../meta/macros.ptl' - -import [mix linreg clamp fallback] from "@iosevka/util" -import [TieMark AnyDerivingCv ScheduleLeaningMark LeaningMark LeaningMarkSpacer] from "@iosevka/glyph/relation" - -import [DesignParameters] from "../meta/aesthetics.mjs" - -extern Set - -glyph-module - -glyph-block Mark-Doppelganger : if [not recursive] : begin - glyph-block-import CommonShapes - glyph-block-import Common-Derivatives - glyph-block-import Mark-Adjustment : TieAnchorMap LeaningAnchorMap - - define [DeriveMarkChange gr gn akFrom akTo] : begin - DeriveMeshT {gn} AnyDerivingCv : function [gns] : begin - local srcGn gns.0 - local src : query-glyph srcGn - local toGN : gr.amendName srcGn - if [not : query-glyph toGN] : begin - create-glyph toGN : glyph-proc - include [refer-glyph srcGn] AS_BASE ALSO_METRICS - set currentGlyph.markAnchors.(akTo) currentGlyph.markAnchors.(akFrom) - currentGlyph.deleteMarkAnchor akFrom - set currentGlyph.baseAnchors.(akTo) currentGlyph.baseAnchors.(akFrom) - currentGlyph.deleteBaseAnchor akFrom - gr.set src toGN - return toGN - - - do : foreach { u gn g } [glyphStore.encodedEntries] : DeriveTieMarks gn g - : where : [DeriveTieMarks gn g] : begin - local selection null - foreach { akFrom akTo } [items-of TieAnchorMap] : begin - if (!selection && g.markAnchors.(akFrom)) : begin - set selection { akFrom akTo } - - if selection : begin - local { akFrom akTo } selection - DeriveMarkChange TieMark gn akFrom akTo - - - local spacerGlyphSet : new Set - do : foreach { u gn g } [glyphStore.encodedEntries] : DeriveLeaningMark gn g - : where : [DeriveLeaningMark gn g] : begin - local selection null - foreach { akFrom akTo } [items-of LeaningAnchorMap] : begin - if (!selection && g.markAnchors.(akFrom) && [ScheduleLeaningMark.get g]) : begin - set selection { akFrom akTo } - - if selection : begin - local { akFrom akTo } selection - - # Build the doppelganger - DeriveMarkChange LeaningMark gn akFrom akTo - - # build spacer glyph - local deltaX : Math.round : g.baseAnchors.(akFrom).x - g.markAnchors.(akFrom).x - local deltaY : Math.round : g.baseAnchors.(akFrom).y - g.markAnchors.(akFrom).y - local spacerGn "spacerGlyph{\(akTo)}{\(deltaX)}{\(deltaY)}" - - LeaningMarkSpacer.set g spacerGn - - if [not : spacerGlyphSet.has spacerGn] : begin - spacerGlyphSet.add spacerGn - create-glyph spacerGn : glyph-proc - include g AS_BASE ALSO_METRICS - currentGlyph.clearGeometry diff --git a/packages/font-glyphs/src/common/derivatives.ptl b/packages/font-glyphs/src/common/derivatives.ptl index 02468f6da2..ccac6faede 100644 --- a/packages/font-glyphs/src/common/derivatives.ptl +++ b/packages/font-glyphs/src/common/derivatives.ptl @@ -15,7 +15,7 @@ glyph-block Common-Derivatives : begin if suffix : begin local dstName : shapeFrom + '.' + suffix local dstGlyph : query-glyph dstName - if dstGlyph : g.dependsOn dstGlyph + if dstGlyph : g.addVariantForRecursiveBuild dstGlyph if (follow === primaryFollow && para.enableCvSs && pv.tag && pv.rank) : begin pv.set g dstName @@ -35,7 +35,6 @@ glyph-block Common-Derivatives : begin if [not fromGlyph] : throw : new Error "Cannot find glyph '\(fromGlyphName)'" include fromGlyph AS_BASE ALSO_METRICS - currentGlyph.dependsOn fromGlyph currentGlyph.cloneRankFromGlyph fromGlyph ApplyCv currentGlyph shapeFrom [resolveMainFollow follow] [resolveAllFollow follow] para @@ -106,7 +105,7 @@ glyph-block Common-Derivatives : begin linksGnMap.set key gnDerivedTo local gDerivedTo : query-glyph gnDerivedTo - if (gSource && gDerivedTo) : gSource.dependsOn gDerivedTo + if (gSource && gDerivedTo) : gSource.addVariantForRecursiveBuild gDerivedTo # Link related derivatives foreach { gr from to } [items-of mesh] : begin diff --git a/packages/font-glyphs/src/index.ptl b/packages/font-glyphs/src/index.ptl index 4cb9d4b835..a52b08bf47 100644 --- a/packages/font-glyphs/src/index.ptl +++ b/packages/font-glyphs/src/index.ptl @@ -74,6 +74,7 @@ export : define [buildGlyphs para recursive] : begin run-glyph-module "./marks/index.mjs" # Unified letters + run-glyph-module "./letter/accent-builder.mjs" run-glyph-module "./letter/shared.mjs" run-glyph-module "./letter/latin.mjs" run-glyph-module "./letter/greek.mjs" @@ -97,12 +98,12 @@ export : define [buildGlyphs para recursive] : begin run-glyph-module "./symbol/math.mjs" run-glyph-module "./symbol/letter.mjs" run-glyph-module "./symbol/braille.mjs" + run-glyph-module "./symbol/counting-rod.mjs" run-glyph-module "./symbol/ligation.mjs" # Auto-builds if [not recursive] : begin run-glyph-module "./auto-build/recursive-build.mjs" - run-glyph-module "./auto-build/mark-doppelganger.mjs" run-glyph-module "./auto-build/accents.mjs" run-glyph-module "./auto-build/transformed.mjs" run-glyph-module "./auto-build/composite.mjs" diff --git a/packages/font-glyphs/src/letter-like/fraktur/lower-mnu.ptl b/packages/font-glyphs/src/letter-like/fraktur/lower-mnu.ptl index 7e85fae0c5..a7e96b1bed 100644 --- a/packages/font-glyphs/src/letter-like/fraktur/lower-mnu.ptl +++ b/packages/font-glyphs/src/letter-like/fraktur/lower-mnu.ptl @@ -7,7 +7,6 @@ glyph-module glyph-block LetterLike-Fraktur-Lower-MNU : begin glyph-block-import Common-Derivatives glyph-block-import CommonShapes - glyph-block-import Letter-Shared : CreateAccentedComposition glyph-block-import Mark-Shared-Metrics : markMiddle markDotsRadius glyph-block-import Mark-Above : StdAnchors aboveMarkTop aboveMarkBot aboveMarkMid aboveMarkStack glyph-block-import LetterLike-Fraktur-Common : LowerDf S M fraktur-stroke change-pen diff --git a/packages/font-glyphs/src/letter/accent-builder.ptl b/packages/font-glyphs/src/letter/accent-builder.ptl new file mode 100644 index 0000000000..12dd194686 --- /dev/null +++ b/packages/font-glyphs/src/letter/accent-builder.ptl @@ -0,0 +1,199 @@ +$$include '../meta/macros.ptl' + +import [fallback ArrayUtil MatchUtil] from "@iosevka/util" +import [Dotless LeaningMark LeaningMarkSpacer] from "@iosevka/glyph/relation" +import as UnicodeKnowledge from "../meta/unicode-knowledge.mjs" + +extern Map +extern Set + +glyph-module + +glyph-block Letter-Accent-Builder : begin + glyph-block-import Common-Derivatives : query-glyph refer-glyph + + ### Perform in-place transformation of the glyphs used to build accented letters + glyph-block-export TransformGlyphCompositionSequence + define [TransformGlyphCompositionSequence parts] : begin + ### Keep the semantics here synchronized with `ccmp` feature + # Handle dotless form + substParts parts + ignore -- [isMarkExcluding 'above'] + input -- {dotless} + lookAhead -- {[isMark 'above']} + replace -- dotless + + # Handle iota subscript + substParts parts + ignore -- iotaLF.ignore + backtrack -- {[hasBaseAnchor 'lf']} + input -- {iotaLF.matcher} + replace -- iotaLF.production + + # Handle ogonek + substParts parts + ignore -- ogonek.ignore + backtrack -- {[hasBaseAnchor 'trailing']} + input -- {ogonek.matcher} + replace -- ogonek.production + + # Handle mark combinations (Greek) + substParts parts + input -- { markComposition.matchFirst markComposition.matchSecond } + replace -- markComposition.production + + # Handle upper Greek Tonos marks + substParts parts + backtrack -- {[hasBaseAnchor 'grekUpperTonos']} + input -- {upperTonos.matcher} + replace -- upperTonos.production + + # Handle leaning marks + substParts parts + ignore -- [isMarkExcluding 'above'] + backtrack -- {[MatchUtil.either [hasBaseAnchor 'leaningAbove'] [isMark 'leaningAbove']]} + input -- {[isMark 'above']} + replace -- [produceLeaningMark 'mark/suppressLeaningAboveAnchor'] + substParts parts + ignore -- [isMarkExcluding 'below'] + backtrack -- {[MatchUtil.either [hasBaseAnchor 'leaningBelow'] [isMark 'leaningBelow']]} + input -- {[isMark 'below']} + replace -- [produceLeaningMark 'mark/suppressLeaningBelowAnchor'] + + # Here, we build a simplified substitution builder that does the mark substitutions + # This is similar to GSUB lookup type 6 but with more flexibility + define flex-params [substParts] : begin + local-parameter : parts + local-parameter : ignore -- MatchUtil.never + local-parameter : backtrack -- {} + local-parameter : input + local-parameter : lookAhead -- {} + local-parameter : replace + local igl 0 + while (igl < parts.length) : begin + local m : substMatch parts igl ignore backtrack input lookAhead + if [not m] + : then : inc igl + : else : begin + local inputGlyphs : ArrayUtil.mapIndexToItems parts m + local producedGlyphs : replace.apply null inputGlyphs + foreach i [range (m.length - 1) downtill 0] : begin + parts.splice m.(i) 1 + ArrayUtil.insertSliceAt parts m.0 producedGlyphs + set igl : m.(m.length - 1) + 1 + producedGlyphs.length - m.length + + return parts + + define [substMatch parts igl ignore backtrack input lookAhead] : begin + if (igl >= parts.length) : return null + if [ignore parts.(igl)] : return null + if [not : input.0 parts.(igl)] : return null + + local m { igl } + + # Check input + local iglInput : igl + 1 + foreach iInput [range 1 input.length] : begin + while (iglInput < parts.length && [ignore parts.(iglInput)]) : inc iglInput + if (iglInput >= parts.length) : return null + if [not : input.(iInput) parts.(iglInput)] : return null + m.push iglInput + inc iglInput + + # Check lookahead + local iglLookAhead iglInput + foreach iLookAhead [range 0 lookAhead.length] : begin + while (iglLookAhead < parts.length && [ignore parts.(iglLookAhead)]) : inc iglLookAhead + if (iglLookAhead >= parts.length) : return null + if [not : lookAhead.(iLookAhead) parts.(iglLookAhead)] : return null + inc iglLookAhead + + # Check backtrack + local iglBacktrack : igl - 1 + foreach iBacktrack [range (backtrack.length - 1) downtill 0] : begin + while (iglBacktrack >= 0 && [ignore parts.(iglBacktrack)]) : dec iglBacktrack + if (iglBacktrack < 0) : return null + if [not : backtrack.(iBacktrack) parts.(iglBacktrack)] : return null + dec iglBacktrack + + return m + + # Match/replace directives + define [dotless g] : begin + local gDotless : query-glyph : Dotless.get g + if [not gDotless] : return null + return {gDotless} + define [isMark k] : function [g] : begin + return : g && g.markAnchors && g.markAnchors.(k) + define [isMarkExcluding k] : function [g] : begin + return : g && g.markAnchors && [Object.keys g.markAnchors].length && !g.markAnchors.(k) + define [hasBaseAnchor k] : function [g] : begin + return : g && g.baseAnchors && g.baseAnchors.(k) + + define [markSubst uk] : begin + local mapping : new Map + foreach { k v } [Object.entries uk] : begin + local gFrom : query-glyph k + local gTo : query-glyph v + mapping.set gFrom gTo + + define [matcher g] : mapping.has g + define [ignore g] : g && g.markAnchors && [Object.keys g.markAnchors].length && ![matcher g] + define [production g] : list ([mapping.get g] || g) + + return : object matcher ignore production + + define [markSplit uk] : begin + local mapping : new Map + foreach { k v } [Object.entries uk] : begin + local gFrom : query-glyph k + local gsTo : v.map query-glyph + mapping.set gFrom gsTo + + define [matcher g] : mapping.has g + define [ignore g] : g && g.markAnchors && [Object.keys g.markAnchors].length && ![matcher g] + define [production g] : [mapping.get g] || { g } + + return : object matcher ignore production + + define [markCombine uk] : begin + local first : new Set + local second : new Set + local mapping : new Map + + foreach { { k1 k2 } v } [items-of uk] : begin + local g1 : query-glyph k1 + local g2 : query-glyph k2 + local g3 : query-glyph v + if (g1 && g2 && g3) : begin + first.add g1 + second.add g2 + + local mm : mapping.get g1 + if [not mm] : begin + set mm : new Map + mapping.set g1 mm + mm.set g2 g3 + + define [matchFirst g] : first.has g + define [matchSecond g] : second.has g + define [production g1 g2] : begin + local mm : mapping.get g1 + if [not mm] : return { g1 g2 } + local g3 : mm.get g2 + if [not g3] : return { g1 g2 } + return { g3 } + + return : object matchFirst matchSecond production + + define iotaLF : markSubst UnicodeKnowledge.iotaBelowToLfTf + define ogonek : markSplit UnicodeKnowledge.ogonekBelowToTRTf + define upperTonos : markSubst UnicodeKnowledge.upperGrekMarkToTonosTf + + define markComposition : markCombine UnicodeKnowledge.markCompositionTf + + define [produceLeaningMark gnSuppressAnchor] : function [g] : begin + local spacer : query-glyph : LeaningMarkSpacer.get g + local alternative : query-glyph : LeaningMark.get g + if (spacer && alternative) : return { spacer alternative } + return { [query-glyph gnSuppressAnchor] g } diff --git a/packages/font-glyphs/src/letter/cyrillic.ptl b/packages/font-glyphs/src/letter/cyrillic.ptl index 522bb8c785..b364a9a3f1 100644 --- a/packages/font-glyphs/src/letter/cyrillic.ptl +++ b/packages/font-glyphs/src/letter/cyrillic.ptl @@ -24,6 +24,7 @@ export : define [apply] : begin run-glyph-module "./cyrillic/small-yus.mjs" run-glyph-module "./cyrillic/te-comb.mjs" run-glyph-module "./cyrillic/te-midhook.mjs" + run-glyph-module "./cyrillic/tje.mjs" run-glyph-module "./cyrillic/tse.mjs" run-glyph-module "./cyrillic/tshe.mjs" run-glyph-module "./cyrillic/lower-uk.mjs" diff --git a/packages/font-glyphs/src/letter/cyrillic/orthography.ptl b/packages/font-glyphs/src/letter/cyrillic/orthography.ptl index 9c0f7088ae..e0e1fcb2dd 100644 --- a/packages/font-glyphs/src/letter/cyrillic/orthography.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/orthography.ptl @@ -34,6 +34,8 @@ glyph-block Letter-Cyrillic-Orthography : begin orthographic-italic 'cyrl/dche' 0x52D orthographic-italic 'cyrl/teTall' 0x1C84 orthographic-italic 'cyrl/teThreeLeg' 0x1C85 + orthographic-italic 'cyrl/tje' 0x1C8A + orthographic-italic 'cyrl/este' null orthographic-italic 'cyrl/tseRev' 0xA661 orthographic-italic 'cyrl/dzze' 0xA689 orthographic-italic 'cyrl/teMidHook' 0xA68B diff --git a/packages/font-glyphs/src/letter/cyrillic/tje.ptl b/packages/font-glyphs/src/letter/cyrillic/tje.ptl new file mode 100644 index 0000000000..cbe5e3510a --- /dev/null +++ b/packages/font-glyphs/src/letter/cyrillic/tje.ptl @@ -0,0 +1,97 @@ +$$include '../../meta/macros.ptl' + +import [mix linreg clamp fallback] from "@iosevka/util" +import [DependentSelector] from "@iosevka/glyph/relation" + +glyph-module + +glyph-block Letter-Cyrillic-Tje : begin + glyph-block-import CommonShapes + glyph-block-import Common-Derivatives + glyph-block-import Letter-Shared : CreateDependentComposite + glyph-block-import Letter-Shared-Shapes : SerifFrame + glyph-block-import Letter-Latin-Upper-F : EFVJutLength + glyph-block-import Letter-Cyrillic-Yeri : YeriConfig YeriBarPos + + define [LeftHalf df top slabTop slabBot] : glyph-proc + local left : [mix df.leftSB df.rightSB 0.3] + OX + + local xTopBarLeft : df.leftSB - SideJut + local xTopBarRightSym : 2 * left + [HSwToV df.mvs] - xTopBarLeft + local xTopBarRight : Math.max xTopBarRightSym : mix left df.rightSB 0.475 + + include : HBar.t xTopBarLeft xTopBarRight top df.mvs + + if slabTop : begin + local { jutTop jutBot jutMid } : EFVJutLength top YeriBarPos df.mvs + include : VSerif.dl xTopBarLeft top jutTop + include : VSerif.dr xTopBarRight top jutTop + + if slabBot : begin + include : HSerif.lb left 0 SideJut + + define [RightHalf Yeri df top] : glyph-proc + local { jutTop jutBot jutMid } : EFVJutLength top YeriBarPos df.mvs + include : Yeri top + left -- [mix df.leftSB df.rightSB 0.3] + OX + right -- df.rightSB + stroke -- df.mvs + bowl -- YeriBarPos * top + [Math.min HalfStroke jutMid] + eject-contour 'serifYeriLT' + eject-contour 'serifYeriLB' + + define Config : object + serifless { false false } + motionSerifed { true false } + serifed { true true } + + foreach { suffix { doST doSB } } [Object.entries Config] : do + local df : DivFrame [mix 1 para.diversityM 0.5] 3 + + create-glyph "cyrl/Tje/leftHalf.\(suffix)" : glyph-proc + set-width df.width + include : df.markSet.capital + include : LeftHalf df CAP doST doSB + + create-glyph "cyrl/tje.upright/leftHalf.\(suffix)" : glyph-proc + set-width df.width + include : df.markSet.e + include : LeftHalf df XH doST doSB + + foreach { suffix { Uc Lc } } [Object.entries YeriConfig] : do + create-glyph "cyrl/Tje/rightHalf.\(suffix)" : glyph-proc + local df : include : DivFrame [mix 1 para.diversityM 0.5] 3 + include : df.markSet.capital + include : RightHalf Uc df CAP + DependentSelector.set currentGlyph : if (suffix === "corner") 'full' 'reduced' + + create-glyph "cyrl/tje.upright/rightHalf.\(suffix)" : glyph-proc + local df : include : DivFrame [mix 1 para.diversityM 0.5] 3 + include : df.markSet.e + include : RightHalf Lc df XH + DependentSelector.set currentGlyph : if (suffix === "corner") 'full' 'reduced' + + select-variant 'cyrl/Tje/leftHalf/full' + follow -- 'cyrl/Tje/leftHalf' + shapeFrom -- 'cyrl/Tje/leftHalf' + select-variant 'cyrl/tje.upright/leftHalf/full' + follow -- 'cyrl/tje.upright/leftHalf' + shapeFrom -- 'cyrl/tje.upright/leftHalf' + select-variant 'cyrl/Tje/leftHalf/reduced' + follow -- 'cyrl/Tje/leftHalf/reduced' + shapeFrom -- 'cyrl/Tje/leftHalf' + select-variant 'cyrl/tje.upright/leftHalf/reduced' + follow -- 'cyrl/tje.upright/leftHalf/reduced' + shapeFrom -- 'cyrl/tje.upright/leftHalf' + + select-variant 'cyrl/Tje/rightHalf' + follow -- 'cyrl/Tje/rightHalf' + select-variant 'cyrl/tje.upright/rightHalf' + follow -- 'cyrl/tje/rightHalf' + + CreateDependentComposite 'cyrl/Tje' 0x1C89 'cyrl/Tje/rightHalf' : object + full 'cyrl/Tje/leftHalf/full' + reduced 'cyrl/Tje/leftHalf/reduced' + CreateDependentComposite 'cyrl/tje.upright' null 'cyrl/tje.upright/rightHalf' : object + full 'cyrl/tje.upright/leftHalf/full' + reduced 'cyrl/tje.upright/leftHalf/reduced' diff --git a/packages/font-glyphs/src/letter/cyrillic/yat.ptl b/packages/font-glyphs/src/letter/cyrillic/yat.ptl index 2ef71b269c..cd4d549f2e 100644 --- a/packages/font-glyphs/src/letter/cyrillic/yat.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/yat.ptl @@ -112,6 +112,21 @@ glyph-block Letter-Cyrillic-Yat : begin DependentSelector.set currentGlyph : if (suffix === "corner") 'full' 'reduced' + create-glyph "cyrl/tje.italic/yeri.\(suffix)" : glyph-proc + local df : include : DivFrame [mix 1 para.diversityM 2] 4 + include : df.markSet.e + + local dfSub : df.slice 4 3 0 + local xMidBarLeft : dfSub.rightSB - [HSwToV df.mvs] + + include : Lc XH xMidBarLeft df.rightSB + stroke -- df.mvs + yStart -- (XH - SmallArchDepthB) + eject-contour 'serifYeriLT' + eject-contour 'serifYeriLB' + + DependentSelector.set currentGlyph : if (suffix === "corner") 'full' 'reduced' + select-variant 'cyrl/Yat' 0x462 (follow -- 'cyrl/Yeri') select-variant 'cyrl/yat.upright' (follow -- 'cyrl/yeri') select-variant 'cyrl/yatTall' 0x1C87 (follow -- 'cyrl/yeri') @@ -124,4 +139,9 @@ glyph-block Letter-Cyrillic-Yat : begin full 'cyrl/yat.italic/base/corner' reduced 'cyrl/yat.italic/base/cursive' + select-variant 'cyrl/tje.italic/yeri' (follow -- 'cyrl/tje/rightHalf') + CreateDependentComposite 'cyrl/tje.italic' null 'cyrl/tje.italic/yeri' : object + full 'cyrl/tje.italic/base/corner' + reduced 'cyrl/tje.italic/base/cursive' + alias 'latn/yatSakha.italic' null 'cyrl/yat.italic' diff --git a/packages/font-glyphs/src/letter/cyrillic/yeri.ptl b/packages/font-glyphs/src/letter/cyrillic/yeri.ptl index 45f8a23082..82d0c653f7 100644 --- a/packages/font-glyphs/src/letter/cyrillic/yeri.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/yeri.ptl @@ -11,7 +11,8 @@ glyph-block Letter-Cyrillic-Yeri : begin glyph-block-import Letter-Shared-Shapes : RightwardTailedBar glyph-block-import Letter-Shared-Shapes : LetterBarOverlay UpwardHookShape VerticalHook SerifFrame - define DefaultBarPos 0.55 + glyph-block-export YeriBarPos + define YeriBarPos 0.55 define Yeri : namespace define flex-params [CornerCommon] : glyph-proc @@ -20,10 +21,10 @@ glyph-block Letter-Cyrillic-Yeri : begin local-parameter : right -- RightSB local-parameter : stroke -- Stroke local-parameter : jut -- Jut - local-parameter : pBar -- DefaultBarPos + local-parameter : pBar -- YeriBarPos local-parameter : yStart -- top + local-parameter : bowl -- (top * pBar + HalfStroke) - local bowl : top * pBar + HalfStroke local turnRadius : BowlXDepth bowl 0 left right stroke local ada : ArchDepthAOf ArchDepth (right - left + SB * 2) local adb : ArchDepthBOf ArchDepth (right - left + SB * 2) @@ -50,8 +51,9 @@ glyph-block Letter-Cyrillic-Yeri : begin local-parameter : right -- RightSB local-parameter : stroke -- Stroke local-parameter : jut -- Jut - local-parameter : pBar -- DefaultBarPos + local-parameter : pBar -- YeriBarPos local-parameter : yStart -- top + local-parameter : bowl -- (top * pBar + HalfStroke) include : CornerCommon.apply null $-flex-arguments if SLAB : begin @@ -64,8 +66,9 @@ glyph-block Letter-Cyrillic-Yeri : begin local-parameter : right -- RightSB local-parameter : stroke -- Stroke local-parameter : jut -- Jut - local-parameter : pBar -- DefaultBarPos + local-parameter : pBar -- YeriBarPos local-parameter : yStart -- top + local-parameter : bowl -- (top * pBar + HalfStroke) include : CornerCommon.apply null $-flex-arguments if SLAB : begin @@ -76,8 +79,16 @@ glyph-block Letter-Cyrillic-Yeri : begin : then : ItalicShape.apply null $-flex-arguments : else : UprightShape.apply null $-flex-arguments - export : define flex-params [RoundShape top [left SB] [right RightSB] [stroke Stroke] [jut Jut] [pBar DefaultBarPos] [yStart top]] : glyph-proc - local bowl : top * pBar + HalfStroke + export : define flex-params [RoundShape] : glyph-proc + local-parameter : top + local-parameter : left -- SB + local-parameter : right -- RightSB + local-parameter : stroke -- Stroke + local-parameter : jut -- Jut + local-parameter : pBar -- YeriBarPos + local-parameter : yStart -- top + local-parameter : bowl -- (top * pBar + HalfStroke) + local turnRadius : BowlXDepth bowl 0 left right stroke local ada : ArchDepthAOf ArchDepth (right - left + SB * 2) local adb : ArchDepthBOf ArchDepth (right - left + SB * 2) @@ -98,8 +109,16 @@ glyph-block Letter-Cyrillic-Yeri : begin if SLAB : begin include : tagged 'serifYeriLT' : HSerif.lt left top (jut - [HSwToV : 0.5 * stroke]) stroke - export : define flex-params [CursiveShape top [left SB] [right RightSB] [stroke Stroke] [jut Jut] [pBar DefaultBarPos] [yStart top]] : glyph-proc - local bowl : top * pBar + HalfStroke + export : define flex-params [CursiveShape] : glyph-proc + local-parameter : top + local-parameter : left -- SB + local-parameter : right -- RightSB + local-parameter : stroke -- Stroke + local-parameter : jut -- Jut + local-parameter : pBar -- YeriBarPos + local-parameter : yStart -- top + local-parameter : bowl -- (top * pBar + HalfStroke) + local turnRadius : BowlXDepth bowl 0 left right stroke local ada : ArchDepthAOf ArchDepth (right - left + SB * 2) local adb : ArchDepthBOf ArchDepth (right - left + SB * 2) @@ -120,7 +139,7 @@ glyph-block Letter-Cyrillic-Yeri : begin include : tagged 'serifYeriLT' : HSerif.lt left top (jut - [HSwToV : 0.5 * stroke]) stroke define RevYeri : namespace - export : define flex-params [Shape top [left SB] [right RightSB] [stroke Stroke] [jut Jut] [pBar DefaultBarPos]] : glyph-proc + export : define flex-params [Shape top [left SB] [right RightSB] [stroke Stroke] [jut Jut] [pBar YeriBarPos]] : glyph-proc local bowl : top * pBar + HalfStroke local turnRadius : bowl * 0.45 local turnbottom : mix 0 bowl (ArchDepthB / (ArchDepthA + ArchDepthB)) @@ -141,7 +160,7 @@ glyph-block Letter-Cyrillic-Yeri : begin include : tagged 'serifYeriRT' HSerif.mt (right - [HSwToV : 0.5 * stroke]) top jut stroke - export : define flex-params [RoundShape top [left SB] [right RightSB] [stroke Stroke] [jut Jut] [pBar DefaultBarPos] [yStart top]] : glyph-proc + export : define flex-params [RoundShape top [left SB] [right RightSB] [stroke Stroke] [jut Jut] [pBar YeriBarPos] [yStart top]] : glyph-proc local bowl : top * pBar + HalfStroke local turnRadius : BowlXDepth bowl 0 left right stroke local ada : ArchDepthAOf ArchDepth (right - left + SB * 2) @@ -160,7 +179,7 @@ glyph-block Letter-Cyrillic-Yeri : begin flat [arch.adjust-x.top [mix left right 0.5] stroke] bowl curl (right - Stroke * 0.2) bowl [heading Rightward] - define flex-params [CyrBackYerShape Base top left right [stroke Stroke] [jut Jut] [pBar DefaultBarPos]] : glyph-proc + define flex-params [CyrBackYerShape Base top left right [stroke Stroke] [jut Jut] [pBar YeriBarPos]] : glyph-proc local xLeftBarLeftEdge : Math.max (right - (RightSB - SB)) : if SLAB [mix left right 0.35] - [HSwToV : 0.50 * stroke] [mix left right 0.20] - [HSwToV : 0.25 * stroke] @@ -253,7 +272,7 @@ glyph-block Letter-Cyrillic-Yeri : begin local stroke : AdviceStroke2 2 3 top return : LetterBarOverlay.l.in x -- df.leftSB - bot -- top * DefaultBarPos + stroke / 2 + bot -- top * YeriBarPos + stroke / 2 top -- top - [if SLAB Stroke 0] foreach { suffix { Uc Lc } } [Object.entries YeriConfig] : do @@ -286,7 +305,7 @@ glyph-block Letter-Cyrillic-Yeri : begin create-glyph "cyrl/yerTall.\(suffix)" : glyph-proc local df : include : DivFrame [mix 1 para.diversityM 0.5] include : df.markSet.b - include : CyrBackYerShape Lc Ascender (left -- df.leftSB) (right -- df.rightSB) (pBar -- DefaultBarPos * XH / Ascender) + include : CyrBackYerShape Lc Ascender (left -- df.leftSB) (right -- df.rightSB) (pBar -- YeriBarPos * XH / Ascender) create-glyph "cyrl/YerNeutral.\(suffix)" : glyph-proc local df : include : DivFrame [mix 1 para.diversityM 0.5] include : df.markSet.capital diff --git a/packages/font-glyphs/src/letter/greek/lower-epsilon.ptl b/packages/font-glyphs/src/letter/greek/lower-epsilon.ptl index 45d016c381..e931c730d3 100644 --- a/packages/font-glyphs/src/letter/greek/lower-epsilon.ptl +++ b/packages/font-glyphs/src/letter/greek/lower-epsilon.ptl @@ -100,11 +100,10 @@ glyph-block Letter-Greek-Lower-Epsilon : begin glyph-block-export CyrZe define [CyrZe] : with-params [ - slabTop slabBot top bot left right blend hook _stroke + slabTop slabBot top bot left right blend hook [stroke : AdviceStroke2 2 3 (top - bot)] [xo OX] [yo O] [op OverlayPos] [ada2 SmallArchDepthA] [adb2 SmallArchDepthB] ] : namespace export : define [Dim] : begin - local stroke : fallback _stroke : AdviceStroke2 2 3 (top - bot) local midx : mix right left blend local midy : mix bot top op local topHeight : top - bot @@ -247,7 +246,7 @@ glyph-block Letter-Greek-Lower-Epsilon : begin include : ExtendBelowBaseAnchors (-LongJut + 0.5 * Stroke) include : let [zeNoO : CyrZe slabTop slabBot CAP 0 SB RightSB StdBlend Hook (xo -- 0) (yo -- 0)] difference - VBar.m Middle (-LongJut + 0.5 * Stroke) (Stroke + O) [AdviceStroke 3.5] + VBar.m [arch.adjust-x.bot Middle] (-LongJut + 0.5 * Stroke) (Stroke + O) [AdviceStroke 3.5] zeNoO.ShapeMask create-glyph "cyrl/dhe.\(suffix)" : glyph-proc @@ -255,7 +254,7 @@ glyph-block Letter-Greek-Lower-Epsilon : begin include : ExtendBelowBaseAnchors (-LongJut + 0.5 * Stroke) include : let [zeNoO : CyrZe slabTop slabBot XH 0 SB RightSB StdBlend SHook (xo -- 0) (yo -- 0)] difference - VBar.m Middle (-LongJut + 0.5 * Stroke) (Stroke + O) [AdviceStroke 3.5] + VBar.m [arch.adjust-x.bot Middle] (-LongJut + 0.5 * Stroke) (Stroke + O) [AdviceStroke 3.5] zeNoO.ShapeMask create-glyph "cyrl/DzjeKomi.\(suffix)" : glyph-proc diff --git a/packages/font-glyphs/src/letter/latin-ext/orthography.ptl b/packages/font-glyphs/src/letter/latin-ext/orthography.ptl deleted file mode 100644 index 5e650def18..0000000000 --- a/packages/font-glyphs/src/letter/latin-ext/orthography.ptl +++ /dev/null @@ -1,8 +0,0 @@ -$$include '../../meta/macros.ptl' - -glyph-module - -glyph-block Letter-Latin-Orthography : begin - glyph-block-import Common-Derivatives - - orthographic-italic "cyrl/este" diff --git a/packages/font-glyphs/src/letter/latin-ext/rams-horn.ptl b/packages/font-glyphs/src/letter/latin-ext/rams-horn.ptl index 5a145af1f4..2feae5acd9 100644 --- a/packages/font-glyphs/src/letter/latin-ext/rams-horn.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/rams-horn.ptl @@ -76,6 +76,10 @@ glyph-block Letter-Latin-Rams-Horn : begin include : MarkSet.e include : RamsHornShape false 0 XH + create-glyph 'Ramshorn' 0xA7CB : glyph-proc + include : MarkSet.capital + include : RamsHornShape false 0 CAP + ### Ayin create-glyph 'latinAyin' 0x1D25 : glyph-proc include : MarkSet.e diff --git a/packages/font-glyphs/src/letter/latin.ptl b/packages/font-glyphs/src/letter/latin.ptl index 3acbe4362f..910d8a84fe 100644 --- a/packages/font-glyphs/src/letter/latin.ptl +++ b/packages/font-glyphs/src/letter/latin.ptl @@ -46,6 +46,8 @@ export : define [apply] : begin run-glyph-module "./latin/lower-y.mjs" run-glyph-module "./latin/z.mjs" + run-glyph-module "./latin/orthography.mjs" + run-glyph-module "./latin-ext/bidental-percussive.mjs" run-glyph-module "./latin-ext/egyptological.mjs" run-glyph-module "./latin-ext/eszet.mjs" @@ -71,5 +73,3 @@ export : define [apply] : begin run-glyph-module "./latin-ext/upper-aa-ao.mjs" run-glyph-module "./latin-ext/wynn.mjs" run-glyph-module "./latin-ext/yogh.mjs" - - run-glyph-module "./latin-ext/orthography.mjs" diff --git a/packages/font-glyphs/src/letter/latin/c.ptl b/packages/font-glyphs/src/letter/latin/c.ptl index c86f0ba738..fc7041c274 100644 --- a/packages/font-glyphs/src/letter/latin/c.ptl +++ b/packages/font-glyphs/src/letter/latin/c.ptl @@ -359,7 +359,7 @@ glyph-block Letter-Latin-C : begin include [refer-glyph src] AS_BASE ALSO_METRICS include : ExtendBelowBaseAnchors (-LongJut + 0.5 * Stroke) include : difference - VBar.m Middle (-LongJut + 0.5 * Stroke) (Stroke + O) [AdviceStroke 3.5] + VBar.m [arch.adjust-x.bot Middle] (-LongJut + 0.5 * Stroke) (Stroke + O) [AdviceStroke 3.5] OShapeOutline.NoOvershoot CAP 0 SB RightSB Stroke ArchDepthA ArchDepthB derive-multi-part-glyphs 'cyrl/The.BSH' null { 'cyrl/Es' 'invCommaBelow' } : lambda [srcs gr] : glyph-proc @@ -375,7 +375,7 @@ glyph-block Letter-Latin-C : begin include [refer-glyph src] AS_BASE ALSO_METRICS include : ExtendBelowBaseAnchors (-LongJut + 0.5 * Stroke) include : difference - VBar.m Middle (-LongJut + 0.5 * Stroke) (Stroke + O) [AdviceStroke 3.5] + VBar.m [arch.adjust-x.bot Middle] (-LongJut + 0.5 * Stroke) (Stroke + O) [AdviceStroke 3.5] OShapeOutline.NoOvershoot XH 0 SB RightSB Stroke SmallArchDepthA SmallArchDepthB derive-multi-part-glyphs 'cyrl/the.BSH' null { 'cyrl/es' 'invCommaBelow' } : lambda [srcs gr] : glyph-proc diff --git a/packages/font-glyphs/src/letter/latin/lower-a.ptl b/packages/font-glyphs/src/letter/latin/lower-a.ptl index e34c9f5a47..22029c3171 100644 --- a/packages/font-glyphs/src/letter/latin/lower-a.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-a.ptl @@ -9,7 +9,7 @@ glyph-block Letter-Latin-Lower-A : begin glyph-block-import CommonShapes glyph-block-import Common-Derivatives glyph-block-import Mark-Shared-Metrics : markHalfStroke - glyph-block-import Letter-Shared : CreateAccentedComposition CreateOgonekComposition + glyph-block-import Letter-Shared : CreateAccentedComposition glyph-block-import Letter-Shared : CreateTurnedLetter glyph-block-import Letter-Shared-Shapes : SerifFrame OBarLeft OBarRight ArcStartSerif glyph-block-import Letter-Shared-Shapes : RightwardTailedBar InvRightwardTailedBar @@ -287,6 +287,3 @@ glyph-block Letter-Latin-Lower-A : begin CreateAccentedComposition 'aDieresis' 0xE4 'a' 'dieresisAbove' CreateAccentedComposition 'aSbRsbUnderlineBelow' null 'a' 'sbRsbUnderlineBelow' CreateAccentedComposition 'aRightHalfRingTR' 0x1E9A 'a' 'rightHalfCircleTR' - - # Ognoek shapes - CreateOgonekComposition 'aOgonek' 0x105 'a' diff --git a/packages/font-glyphs/src/letter/latin/lower-d.ptl b/packages/font-glyphs/src/letter/latin/lower-d.ptl index d5cfbf4231..4d9d674334 100644 --- a/packages/font-glyphs/src/letter/latin/lower-d.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-d.ptl @@ -124,7 +124,7 @@ glyph-block Letter-Latin-Lower-D : begin include : LeaningAnchor.Above.VBar.r df.rightSB if [not bottomSerif] : create-glyph "cyrl/djeKomi.\(suffix)" : glyph-proc - local df : DivFrame 1 3 + local df : include : DivFrame para.diversityM 3 include : df.markSet.b local dfHalf : df.slice 3 2 diff --git a/packages/font-glyphs/src/letter/latin/lower-e.ptl b/packages/font-glyphs/src/letter/latin/lower-e.ptl index 37acedddea..53f61d1114 100644 --- a/packages/font-glyphs/src/letter/latin/lower-e.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-e.ptl @@ -198,6 +198,15 @@ glyph-block Letter-Latin-Lower-E : begin y -- 0 yAttach -- lastKnot.y + create-glyph "Schwa.\(suffix)" : glyph-proc + include : MarkSet.capital + include : Body [DivFrame 1] CAP [AdviceStroke2 2 3 CAP] + include : FlipAround Middle (CAP / 2) + + create-glyph "schwa.\(suffix)" : glyph-proc + include [refer-glyph "e.\(suffix)"] AS_BASE ALSO_METRICS + include : FlipAround Middle (XH / 2) + create-glyph "eRev.\(suffix)" : glyph-proc include : MarkSet.e include : RevBody [DivFrame 1] XH [AdviceStroke2 2 3 XH] @@ -207,8 +216,8 @@ glyph-block Letter-Latin-Lower-E : begin include : HBar.m [mix SB 0 0.7] [mix RightSB Width 0.7] (XH * 0.25 + Stroke * 0.25) Math.min [AdviceStroke 5] (0.25 * (XH - 3 * Stroke)) - DefineSelectorGlyph "Schwa" suffix [DivFrame 1] 'capital' - DefineSelectorGlyph "schwa" suffix [DivFrame 1] 'e' + DefineSelectorGlyph "cyrl/Schwa" suffix [DivFrame 1] 'capital' + DefineSelectorGlyph "cyrl/schwa" suffix [DivFrame 1] 'e' define abkCheDf : DivFrame para.diversityM 3 @@ -218,12 +227,12 @@ glyph-block Letter-Latin-Lower-E : begin DefineSelectorGlyph "cyrl/abk/cheDescender" suffix abkCheDf 'p' foreach { suffixSerif { styTop styBot } } [Object.entries CConfig] : do - create-glyph "Schwa.\(suffix).\(suffixSerif)" : glyph-proc + create-glyph "cyrl/Schwa.\(suffix).\(suffixSerif)" : glyph-proc set-width 0 set-mark-anchor 'cvDecompose' 0 0 include : Body [DivFrame 1] CAP [AdviceStroke2 2 3 CAP] (tailSlab -- styTop) (schwaTail -- true) include : FlipAround Middle (CAP / 2) - create-glyph "schwa.\(suffix).\(suffixSerif)" : glyph-proc + create-glyph "cyrl/schwa.\(suffix).\(suffixSerif)" : glyph-proc set-width 0 set-mark-anchor 'cvDecompose' 0 0 include : Body [DivFrame 1] XH [AdviceStroke2 2 3 XH] (tailSlab -- styTop) (schwaTail -- true) @@ -246,8 +255,8 @@ glyph-block Letter-Latin-Lower-E : begin set-mark-anchor 'cvDecompose' 0 0 include : AbkCheShape 1 Body abkCheDf XH (tailSlab -- styBot) - select-variant "Schwa.\(suffix)" (follow -- 'cyrl/ETopSerifOnly') - select-variant "schwa.\(suffix)" (follow -- 'cyrl/eTopSerifOnly') + select-variant "cyrl/Schwa.\(suffix)" (follow -- 'cyrl/ETopSerifOnly') + select-variant "cyrl/schwa.\(suffix)" (follow -- 'cyrl/eTopSerifOnly') select-variant "cyrl/abk/Che.\(suffix)" (follow -- 'CBottomSerifOnly') select-variant "cyrl/abk/che.\(suffix)" (follow -- 'cBottomSerifOnly') select-variant "cyrl/abk/CheDescender.\(suffix)" (follow -- 'CBottomSerifOnly') @@ -261,20 +270,23 @@ glyph-block Letter-Latin-Lower-E : begin select-variant 'eRetroflexHook' 0x1D92 (follow -- 'e') select-variant 'eWithNotch' 0x2C78 (follow -- 'e') + select-variant 'Schwa' 0x18F + select-variant 'schwa' 0x259 + select-variant 'eRev' 0x258 (follow -- 'e') select-variant 'eBar' 0xAB33 (follow -- 'e') - CreateSelectorVariants 'Schwa' 0x18F [Object.keys SmallEConfig] (follow -- 'e') - alias 'cyrl/Schwa' 0x4D8 'Schwa' + CreateSelectorVariants 'cyrl/Schwa' 0x4D8 [Object.keys SmallEConfig] (follow -- 'Schwa') + alias 'Schwa.TRK' null 'cyrl/Schwa' - CreateSelectorVariants 'schwa' 0x259 [Object.keys SmallEConfig] (follow -- 'e') - alias 'cyrl/schwa' 0x4D9 'schwa' + CreateSelectorVariants 'cyrl/schwa' 0x4D9 [Object.keys SmallEConfig] (follow -- 'schwa') + alias 'schwa.TRK' null 'cyrl/schwa' - CreateSelectorVariants 'cyrl/abk/Che' 0x4BC [Object.keys SmallEConfig] (follow -- 'e') - CreateSelectorVariants 'cyrl/abk/che' 0x4BD [Object.keys SmallEConfig] (follow -- 'e') - CreateSelectorVariants 'cyrl/abk/CheDescender' 0x4BE [Object.keys SmallEConfig] (follow -- 'e') - CreateSelectorVariants 'cyrl/abk/cheDescender' 0x4BF [Object.keys SmallEConfig] (follow -- 'e') + CreateSelectorVariants 'cyrl/abk/Che' 0x4BC [Object.keys SmallEConfig] + CreateSelectorVariants 'cyrl/abk/che' 0x4BD [Object.keys SmallEConfig] + CreateSelectorVariants 'cyrl/abk/CheDescender' 0x4BE [Object.keys SmallEConfig] (follow -- 'cyrl/abk/Che') + CreateSelectorVariants 'cyrl/abk/cheDescender' 0x4BF [Object.keys SmallEConfig] (follow -- 'cyrl/abk/che') glyph-block-import Letter-Blackboard : BBS BBD create-glyph 'mathbb/e' 0x1D556 : glyph-proc diff --git a/packages/font-glyphs/src/letter/latin/lower-il.ptl b/packages/font-glyphs/src/letter/latin/lower-il.ptl index da16856266..b2b2ac73f5 100644 --- a/packages/font-glyphs/src/letter/latin/lower-il.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-il.ptl @@ -10,8 +10,7 @@ glyph-block Letter-Latin-Lower-I : begin glyph-block-import Common-Derivatives glyph-block-import Mark-Adjustment : LeaningAnchor ExtendBelowBaseAnchors glyph-block-import Letter-Shared : CreateAccentedComposition CreateMultiAccentedComposition - glyph-block-import Letter-Shared : CreateCommaCaronComposition CreateOgonekComposition - glyph-block-import Letter-Shared : CreateTurnedLetter + glyph-block-import Letter-Shared : CreateCommaCaronComposition CreateTurnedLetter glyph-block-import Letter-Shared-Shapes : FlatHookDepth DiagTail glyph-block-import Letter-Shared-Shapes : CurlyTail BeltOverlay PalatalHook glyph-block-import Letter-Shared-Shapes : RetroflexHook LetterBarOverlay RightwardTailedBar @@ -265,8 +264,8 @@ glyph-block Letter-Latin-Lower-I : begin maskOut -- [MaskAbove maskY] create-glyph "lHighBar.\(suffix)" : glyph-proc - include [refer-glyph "l.\(suffix)"] AS_BASE ALSO_METRICS local df : DivFrame div + include [refer-glyph "l.\(suffix)"] AS_BASE ALSO_METRICS include : LetterBarOverlay.m.in [xMiddleT df] XH (Ascender - [if Serif Stroke 0]) create-glyph "grek/tau.\(suffix)" : glyph-proc @@ -276,7 +275,6 @@ glyph-block Letter-Latin-Lower-I : begin include : Body df XH xMiddle include : Marks df XH xMiddle include : HBar.t df.leftSB df.rightSB XH - currentGlyph.deleteBaseAnchor 'trailing' create-glyph "cyrl/Twe/middle.\(suffix)" : glyph-proc @@ -288,8 +286,8 @@ glyph-block Letter-Latin-Lower-I : begin create-glyph "cyrl/twe/middle.\(suffix)" : glyph-proc local df : include : DivFrame div - include : Body df XH [XMiddle.Center df] - include : Marks df XH [XMiddle.Center df] + include : Body df XH [XMiddle.Center df] + include : Marks df XH [XMiddle.Center df] currentGlyph.deleteBaseAnchor 'trailing' set-mark-anchor 'cvDecompose' (df.width / 2) XH @@ -298,7 +296,6 @@ glyph-block Letter-Latin-Lower-I : begin link-reduced-variant 'dotlessi/sansSerif' 'dotlessi' MathSansSerif select-variant 'dotlessi/compLigRight' (shapeFrom -- 'dotlessi') select-variant 'dotlessiRetroflexHook' (follow -- 'dotlessi') - CreateOgonekComposition 'iOgonek.dotless' null 'dotlessi' CreateAccentedComposition 'i' 'i' 'dotlessi' 'tittleAbove' CreateAccentedComposition 'i/sansSerif' null 'dotlessi/sansSerif' 'tittleAbove' @@ -320,15 +317,14 @@ glyph-block Letter-Latin-Lower-I : begin alias 'cyrl/Iota' 0xA646 'latn/Iota' select-variant 'cyrl/ghe.SRB/base' (shapeFrom -- 'dotlessi') (follow -- 'cyrl/ghe.SRB') - CreateAccentedComposition 'cyrl/ghe.SRB' null 'cyrl/ghe.SRB/base' 'macronAbove' - CreateMultiAccentedComposition 'cyrl/gje.SRB' null 'cyrl/ghe.SRB/base' { 'macronAbove' 'acuteAbove' } + CreateAccentedComposition 'cyrl/ghe.SRB' null 'cyrl/ghe.SRB/base' 'sbRsbOverlineAbove/diversityI' + CreateMultiAccentedComposition 'cyrl/gje.SRB' null 'cyrl/ghe.SRB/base' { 'sbRsbOverlineAbove/diversityI' 'acuteAbove' } CreateTurnedLetter 'turni' 0x1D09 'i' HalfAdvance (XH / 2) CreateTurnedLetter 'grek/turniota' 0x2129 'latn/iota' HalfAdvance (XH / 2) CreateAccentedComposition 'dotlessiBarOver' null 'dotlessi' 'barOver' CreateAccentedComposition 'iBarOver' 0x268 'dotlessiBarOver' 'tittleAbove' - CreateAccentedComposition 'iOgonek' 0x12F 'iOgonek.dotless' 'tittleAbove' CreateAccentedComposition 'iRetroflexHook' 0x1D96 'dotlessiRetroflexHook' 'tittleAbove' do "l glyphs" diff --git a/packages/font-glyphs/src/letter/latin/lower-m.ptl b/packages/font-glyphs/src/letter/latin/lower-m.ptl index 2bfda0cd57..82132fbf97 100644 --- a/packages/font-glyphs/src/letter/latin/lower-m.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-m.ptl @@ -296,6 +296,17 @@ glyph-block Letter-Latin-Lower-M : begin local sf2 : [SerifFrame.fromDf df (XH / 2) 0].slice 2 3 if SLAB : include sf2.rt.full + create-glyph "cyrl/tje.italic/base/corner.\(suffix)" : glyph-proc + local df : include : DivFrame [mix 1 para.diversityM 2] 4 + include : df.markSet.e + local subDf : df.slice 4 3 0 + include : Body subDf XH 0 0 (XH - SmallArchDepthB - TINY) + include : Serifs subDf XH 0 0 0 false false + + create-glyph "cyrl/tje.italic/base/cursive.\(suffix)" : glyph-proc + include [refer-glyph "cyrl/tje.italic/base/corner.\(suffix)"] AS_BASE ALSO_METRICS + eject-contour 'serifRB' + create-glyph "cyrl/teMidHook.italic.\(suffix)" : glyph-proc local df : include : DivFrame [mix 1 para.diversityM 2] 4 include : df.markSet.e @@ -317,6 +328,10 @@ glyph-block Letter-Latin-Lower-M : begin alias 'cyrl/te/reduced.italic' null 'cyrl/te.italic' select-variant 'cyrl/te.italic/descBase' (shapeFrom -- 'm') select-variant 'cyrl/tjeKomi.italic' + + select-variant 'cyrl/tje.italic/base/corner' + select-variant 'cyrl/tje.italic/base/cursive' + select-variant 'cyrl/teMidHook.italic' (follow -- 'cyrl/te.italic') alias 'cyrl/te.BGR' null 'cyrl/te.italic' alias 'cyrl/te/reduced.BGR' null 'cyrl/te.italic' @@ -422,8 +437,8 @@ glyph-block Letter-Latin-Lower-M : begin select-variant 'cyrl/shcha/reduced.italic' (shapeFrom -- 'cyrl/shcha.italic') (follow -- 'cyrl/shcha.italic/reduced') alias 'cyrl/shcha/reduced.BGR' null 'cyrl/shcha/reduced.italic' - derive-composites 'cyrl/te.SRB' null 'cyrl/sha.italic' 'macronAbove' - derive-composites 'cyrl/te/reduced.SRB' null 'cyrl/sha/reduced.italic' 'macronAbove' + derive-composites 'cyrl/te.SRB' null 'cyrl/sha.italic' 'sbRsbOverlineAbove/diversityM' + derive-composites 'cyrl/te/reduced.SRB' null 'cyrl/sha/reduced.italic' 'sbRsbOverlineAbove/diversityM' glyph-block-import Letter-Blackboard : BBS BBD BBBarLeft create-glyph 'mathbb/m' 0x1D55E : glyph-proc diff --git a/packages/font-glyphs/src/letter/latin/lower-y.ptl b/packages/font-glyphs/src/letter/latin/lower-y.ptl index d1a2750fea..91e89df65b 100644 --- a/packages/font-glyphs/src/letter/latin/lower-y.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-y.ptl @@ -313,13 +313,13 @@ glyph-block Letter-Latin-Lower-Y : begin include : MarkSet.b include : Shapes.SmallLambdaShapeFromHookTop Ascender 0 - create-glyph "lambdaSlash.\(suffix)" : glyph-proc + create-glyph "latn/lambdaStroke.\(suffix)" : glyph-proc include : MarkSet.b include : union FlatSlashShape [mix SB RightSB 0.45] [mix 0 CAP 0.8] (OverlayStroke / 2) Shapes.SmallLambdaShape Ascender 0 - create-glyph "lambdaSlashFHT.\(suffix)" : glyph-proc + create-glyph "latn/lambdaStrokeFHT.\(suffix)" : glyph-proc include : MarkSet.b include : union FlatSlashShape [mix SB RightSB 0.45] [mix 0 CAP 0.8] (OverlayStroke / 2) @@ -336,10 +336,10 @@ glyph-block Letter-Latin-Lower-Y : begin set-base-anchor 'strike' Middle (XH / 2 - Descender) include : Shapes.SmallYShape CAP 0 - alias 'grek/lambda.tailedTurnSerifless' null 'grek/lambdaFHT.straightTurnSerifless' - alias 'lambdaSlash.tailedTurnSerifless' null 'lambdaSlashFHT.straightTurnSerifless' - alias 'grek/lambda.curlyTailedTurnSerifless' null 'grek/lambdaFHT.curlyTurnSerifless' - alias 'lambdaSlash.curlyTailedTurnSerifless' null 'lambdaSlashFHT.curlyTurnSerifless' + alias 'grek/lambda.tailedTurnSerifless' null 'grek/lambdaFHT.straightTurnSerifless' + alias 'latn/lambdaStroke.tailedTurnSerifless' null 'latn/lambdaStrokeFHT.straightTurnSerifless' + alias 'grek/lambda.curlyTailedTurnSerifless' null 'grek/lambdaFHT.curlyTurnSerifless' + alias 'latn/lambdaStroke.curlyTailedTurnSerifless' null 'latn/lambdaStrokeFHT.curlyTurnSerifless' define Cursive : namespace export : define [Arc top bottom] : new-glyph : glyph-proc @@ -434,7 +434,8 @@ glyph-block Letter-Latin-Lower-Y : begin select-variant 'yLoop' 0x1EFF (shapeFrom -- 'y') select-variant 'grek/lambda' 0x3BB - select-variant 'lambdaSlash' 0x19B (follow -- 'grek/lambda') + alias 'latn/lambda' 0xA7DB 'grek/lambda' + select-variant 'latn/lambdaStroke' 0x19B (follow -- 'grek/lambda') # Blackboard glyph-block-import Letter-Blackboard : BBS BBD diff --git a/packages/font-glyphs/src/letter/latin/orthography.ptl b/packages/font-glyphs/src/letter/latin/orthography.ptl new file mode 100644 index 0000000000..ebbe03004c --- /dev/null +++ b/packages/font-glyphs/src/letter/latin/orthography.ptl @@ -0,0 +1,28 @@ +$$include '../../meta/macros.ptl' + +import [LocalizedForm] from "@iosevka/glyph/relation" + +glyph-module + +glyph-block Letter-Latin-Orthography : begin + glyph-block-import Common-Derivatives + + # Link localization forms + link-gr LocalizedForm.PLK 'CAcute' 'CAcute.PLK' + link-gr LocalizedForm.PLK 'cAcute' 'cAcute.PLK' + link-gr LocalizedForm.PLK 'NAcute' 'NAcute.PLK' + link-gr LocalizedForm.PLK 'nAcute' 'nAcute.PLK' + link-gr LocalizedForm.PLK 'OAcute' 'OAcute.PLK' + link-gr LocalizedForm.PLK 'oAcute' 'oAcute.PLK' + link-gr LocalizedForm.PLK 'SAcute' 'SAcute.PLK' + link-gr LocalizedForm.PLK 'sAcute' 'sAcute.PLK' + link-gr LocalizedForm.PLK 'Z' 'Z.PLK' + link-gr LocalizedForm.PLK 'z' 'z.PLK' + link-gr LocalizedForm.PLK 'ZAcute' 'ZAcute.PLK' + link-gr LocalizedForm.PLK 'zAcute' 'zAcute.PLK' + link-gr LocalizedForm.PLK 'ZDot' 'ZDot.PLK' + link-gr LocalizedForm.PLK 'zDot' 'zDot.PLK' + + link-gr LocalizedForm.TRK 'Schwa' 'Schwa.TRK' + link-gr LocalizedForm.TRK 'schwa' 'schwa.TRK' + link-gr LocalizedForm.TRK 'i' 'i.TRK' diff --git a/packages/font-glyphs/src/letter/latin/u.ptl b/packages/font-glyphs/src/letter/latin/u.ptl index b9e3ee0212..e4e7c36e9c 100644 --- a/packages/font-glyphs/src/letter/latin/u.ptl +++ b/packages/font-glyphs/src/letter/latin/u.ptl @@ -10,7 +10,7 @@ glyph-block Letter-Latin-U : begin glyph-block-import Common-Derivatives glyph-block-import Mark-Shared-Metrics : markHalfStroke glyph-block-import Mark-Adjustment : LeaningAnchor - glyph-block-import Letter-Shared : CreateAccentedComposition CreateOgonekComposition + glyph-block-import Letter-Shared : CreateAccentedComposition glyph-block-import Letter-Shared : SetGrekUpperTonos glyph-block-import Letter-Shared-Shapes : nShoulder RightwardTailedBar DToothlessRise SerifFrame glyph-block-import Letter-Shared-Shapes : CyrDescender CyrTailDescender RetroflexHook VerticalHook @@ -352,7 +352,7 @@ glyph-block Letter-Latin-U : begin derive-glyphs 'cyrl/pe.SRB' null 'cyrl/i.italic' : lambda [src gr] : glyph-proc include [refer-glyph src] AS_BASE ALSO_METRICS - include [refer-glyph 'macronAbove'] + include [refer-glyph 'sbRsbOverlineAbove'] derive-glyphs 'cyrl/tetse.italic' null 'cyrl/tse.italic' : lambda [src gr] : glyph-proc include [refer-glyph src] AS_BASE ALSO_METRICS @@ -418,6 +418,22 @@ glyph-block Letter-Latin-U : begin if SLAB : begin include : HSerif.lt SB XH SideJut + CreateAccentedComposition 'uDieresis' 0xFC 'u' 'dieresisAbove' + CreateAccentedComposition 'uLongBarOver' 0x289 'u' 'hStrike' + CreateAccentedComposition 'smcpUStroke' 0x1D7E 'smcpU' 'hStrike' + + # Sideways dieresis for U+1D1E + derive-glyphs "uDieresisSidewaysMark" null "dieresisAboveAlwaysUpright" : function [gns] : glyph-proc + local ww : Width * para.diversityM + set-width 0 + set-mark-anchor 'cvDecompose' 0 0 + include : PointingTo ww XH ww 0 : function [] : glyph-proc + include : refer-glyph gns + include : Translate (XH / 2 + Width / 2) (ww - SB - XH - AccentHeight) + include : Translate 0 (SB / 2) + + CreateAccentedComposition 'uDieresisSideways' 0x1D1E 'uDieresisSidewaysBase' 'uDieresisSidewaysMark' + glyph-block-import Letter-Blackboard : BBS BBD BBBarRight create-glyph 'mathbb/U' 0x1D54C : glyph-proc include : MarkSet.capital @@ -436,22 +452,3 @@ glyph-block Letter-Latin-U : begin include : df.markSet.e include [refer-glyph 'mathbb/n'] include : FlipAround Middle (XH / 2) - - CreateAccentedComposition 'uDieresis' 0xFC 'u' 'dieresisAbove' - CreateAccentedComposition 'uLongBarOver' 0x289 'u' 'hStrike' - CreateAccentedComposition 'smcpUStroke' 0x1D7E 'smcpU' 'hStrike' - - # Sideways dieresis for U+1D1E - derive-glyphs "uDieresisSidewaysMark" null "dieresisAboveAlwaysUpright" : function [gns] : glyph-proc - local ww : Width * para.diversityM - set-width 0 - set-mark-anchor 'cvDecompose' 0 0 - include : PointingTo ww XH ww 0 : function [] : glyph-proc - include : refer-glyph gns - include : Translate (XH / 2 + Width / 2) (ww - SB - XH - AccentHeight) - include : Translate 0 (SB / 2) - - CreateAccentedComposition 'uDieresisSideways' 0x1D1E 'uDieresisSidewaysBase' 'uDieresisSidewaysMark' - - CreateOgonekComposition 'UOgonek' 0x172 'U' - CreateOgonekComposition 'uOgonek' 0x173 'u' diff --git a/packages/font-glyphs/src/letter/latin/upper-a.ptl b/packages/font-glyphs/src/letter/latin/upper-a.ptl index 5c861102b9..4833cf1041 100644 --- a/packages/font-glyphs/src/letter/latin/upper-a.ptl +++ b/packages/font-glyphs/src/letter/latin/upper-a.ptl @@ -11,7 +11,8 @@ glyph-block Letter-Latin-Upper-A : begin glyph-block-import CommonShapes glyph-block-import Common-Derivatives glyph-block-import Mark-Shared-Metrics : markHalfStroke - glyph-block-import Letter-Shared : SetGrekUpperTonos CreateOgonekComposition CreateTurnedLetter + glyph-block-import Letter-Shared : CreateAccentedComposition + glyph-block-import Letter-Shared : SetGrekUpperTonos CreateTurnedLetter glyph-block-import Letter-Shared-Shapes : SerifFrame glyph-block-import Letter-Latin-V : VShapeOutline VShape VCornerHalfWidth @@ -185,5 +186,3 @@ glyph-block Letter-Latin-Upper-A : begin BBVInnerMaskShape SB RightSB 1 1 CAP HBar.t 0 Width (CAP - XH / 2) BBS include : FlipAround Middle (CAP / 2) - - CreateOgonekComposition 'AOgonek' 0x104 'A' diff --git a/packages/font-glyphs/src/letter/latin/upper-e.ptl b/packages/font-glyphs/src/letter/latin/upper-e.ptl index 77d52f713a..4bb29da852 100644 --- a/packages/font-glyphs/src/letter/latin/upper-e.ptl +++ b/packages/font-glyphs/src/letter/latin/upper-e.ptl @@ -9,7 +9,7 @@ glyph-block Letter-Latin-Upper-E : begin glyph-block-import CommonShapes glyph-block-import Common-Derivatives glyph-block-import Mark-Shared-Metrics : markHalfStroke - glyph-block-import Letter-Shared : SetGrekUpperTonos CreateOgonekComposition CreateTurnedLetter + glyph-block-import Letter-Shared : CreateAccentedComposition SetGrekUpperTonos CreateTurnedLetter glyph-block-import Letter-Latin-Upper-F : xMidBarShrink yMidBar EFVJutLength define kSB 1 @@ -101,4 +101,3 @@ glyph-block Letter-Latin-Upper-E : begin VBar.l (xEBarLeft + BBD) 0 CAP BBS # Ognoek shapes - CreateOgonekComposition 'EOgonek' 0x118 'E' diff --git a/packages/font-glyphs/src/letter/latin/upper-i.ptl b/packages/font-glyphs/src/letter/latin/upper-i.ptl index b001b8b01c..6ceaa4a80d 100644 --- a/packages/font-glyphs/src/letter/latin/upper-i.ptl +++ b/packages/font-glyphs/src/letter/latin/upper-i.ptl @@ -8,17 +8,19 @@ glyph-module glyph-block Letter-Latin-Upper-I : begin glyph-block-import CommonShapes glyph-block-import Common-Derivatives - glyph-block-import Letter-Shared : SetGrekUpperTonos CreateAccentedComposition CreateOgonekComposition + glyph-block-import Letter-Shared : SetGrekUpperTonos CreateAccentedComposition glyph-block-import Mark-Adjustment : ExtendAboveBaseAnchors define [ISeriflessShape df top bot jut] : glyph-proc include : VBar.m df.middle bot top - define [ISerifShape df top bot jut] : glyph-proc + define [ISerifShapeImpl df top bot jut] : glyph-proc include : VBar.m df.middle bot top - include : HSerif.mb df.middle bot (jut * df.div) - include : HSerif.mt df.middle top (jut * df.div) - set-base-anchor 'trailing' (df.middle + jut * df.div) bot + include : HSerif.mb df.middle bot jut + include : HSerif.mt df.middle top jut + set-base-anchor 'trailing' (df.middle + jut) bot + + define [ISerifShape df top bot jut] : ISerifShapeImpl df top bot (jut * df.div) define UpperIConfig : object 'straight' { para.diversityI ISeriflessShape LongJut } @@ -63,7 +65,9 @@ glyph-block Letter-Latin-Upper-I : begin create-glyph 'smcpI' 0x26A : glyph-proc local df : include : DivFrame para.diversityI include : df.markSet.e - include : ISerifShape df XH 0 MidJutCenter + include : ISerifShapeImpl df XH 0 MidJutCenter + + CreateAccentedComposition 'smcpIBarOver' 0x1D7B 'smcpI' 'barOver' glyph-block-import Letter-Blackboard : BBS BBD BBBarCenter create-glyph 'mathbb/I' 0x1D540 : glyph-proc @@ -71,7 +75,3 @@ glyph-block Letter-Latin-Upper-I : begin include : BBBarCenter Middle 0 CAP include : HBar.t (Middle - BBD / 2 - Jut) (Middle + BBD / 2 + Jut) CAP BBS include : HBar.b (Middle - BBD / 2 - Jut) (Middle + BBD / 2 + Jut) 0 BBS - - CreateAccentedComposition 'smcpIBarOver' 0x1D7B 'smcpI' 'barOver' - - CreateOgonekComposition 'IOgonek' 0x12E 'I' diff --git a/packages/font-glyphs/src/letter/latin/upper-n.ptl b/packages/font-glyphs/src/letter/latin/upper-n.ptl index 139de92a95..4c3032e352 100644 --- a/packages/font-glyphs/src/letter/latin/upper-n.ptl +++ b/packages/font-glyphs/src/letter/latin/upper-n.ptl @@ -19,7 +19,8 @@ glyph-block Letter-Latin-Upper-N : begin define SLAB-AUTO 1 define SLAB-MOTION 2 define SLAB-ALL 3 - define SLAB-DIGAMMA 4 + define SLAB-CYRL-I 4 + define SLAB-DIGAMMA 5 define [NShape] : with-params [bodyType slabType top left right [crowd 2] [crDiag 4]] : glyph-proc local swDiag : AdviceStroke crDiag @@ -83,23 +84,21 @@ glyph-block Letter-Latin-Upper-N : begin ExtLineCenter 2 swDiag (left + swDiag) yEnd (right - swDiag) top local sf : SerifFrame top 0 left right (swRef -- stroke) - local lbSerifs : match bodyType - [Just BODY-SYMMETRIC] sf.lb.outer - [Just BODY-ASYMMETRIC] sf.lb.full include : match slabType - [Just SLAB-ALL] : composite-proc sf.lt.full lbSerifs sf.rt.outer sf.rb.full - [Just SLAB-AUTO] : NeedSlab SLAB : composite-proc sf.lt.full lbSerifs sf.rt.outer sf.rb.full - [Just SLAB-MOTION] : composite-proc sf.lt.outer + [Just SLAB-ALL] : composite-proc sf.lt.full sf.rt.outer sf.rb.full + [Just SLAB-AUTO] : NeedSlab SLAB : composite-proc sf.lt.full sf.rt.outer sf.rb.full + [Just SLAB-MOTION] : composite-proc sf.rt.outer [Just SLAB-NONE] : no-shape + [Just SLAB-CYRL-I] : NeedSlab SLAB : composite-proc sf.lt.full sf.lb.outer sf.rt.outer sf.rb.full [Just SLAB-DIGAMMA] : NeedSlab SLAB : composite-proc sf.lt.full sf.rb.full define NConfig : object standardSerifless { BODY-SYMMETRIC 4 SLAB-NONE } standardMotionSerifed { BODY-SYMMETRIC 4 SLAB-MOTION } - standardSerifed { BODY-SYMMETRIC 4 SLAB-ALL } + standardSerifed { BODY-SYMMETRIC 4 SLAB-ALL } asymmetricSerifless { BODY-ASYMMETRIC 3 SLAB-NONE } asymmetricMotionSerifed { BODY-ASYMMETRIC 3 SLAB-MOTION } - asymmetricSerifed { BODY-ASYMMETRIC 3 SLAB-ALL } + asymmetricSerifed { BODY-ASYMMETRIC 3 SLAB-ALL } foreach { suffix { bodyType crD slabType } } [Object.entries NConfig] : do create-glyph "N.\(suffix)" : glyph-proc @@ -114,7 +113,7 @@ glyph-block Letter-Latin-Upper-N : begin create-glyph "Eng.\(suffix)" : glyph-proc include : MarkSet.capDesc local [object swEnd] : include : NShape bodyType slabType CAP SB RightSB (crDiag -- crD) - include : EngHook RightSB 0 Descender (sw -- [Math.min Stroke (swEnd * 1.5)]) + include : EngHook RightSB 0 Descender (sw -- [Math.min Stroke (swEnd * 4/3)]) create-glyph "NHookLeft.\(suffix)" : glyph-proc include [refer-glyph "N.\(suffix)"] AS_BASE ALSO_METRICS @@ -152,10 +151,10 @@ glyph-block Letter-Latin-Upper-N : begin create-glyph 'cyrl/I' 0x418 : glyph-proc include : MarkSet.capital - include : NRevShape BODY-SYMMETRIC SLAB-AUTO CAP SB RightSB (crDiag -- crD) + include : NRevShape BODY-SYMMETRIC SLAB-CYRL-I CAP SB RightSB (crDiag -- crD) create-glyph 'cyrl/i.upright' : glyph-proc include : MarkSet.e - include : NRevShape BODY-SYMMETRIC SLAB-AUTO XH SB RightSB (crDiag -- crD) + include : NRevShape BODY-SYMMETRIC SLAB-CYRL-I XH SB RightSB (crDiag -- crD) create-glyph 'grek/DigammaPamphylian' 0x376 : glyph-proc include : MarkSet.capital diff --git a/packages/font-glyphs/src/letter/latin/upper-t.ptl b/packages/font-glyphs/src/letter/latin/upper-t.ptl index 8d9a25d9a0..31d5ef6479 100644 --- a/packages/font-glyphs/src/letter/latin/upper-t.ptl +++ b/packages/font-glyphs/src/letter/latin/upper-t.ptl @@ -195,16 +195,8 @@ glyph-block Letter-Latin-Upper-T : begin CreateAccentedComposition 'TCedilla' 0x0162 'T' 'cedillaBelow' CreateAccentedComposition 'TComma' 0x021A 'T' 'commaBelow' - create-glyph 'mathbb/T' 0x1D54B : glyph-proc - local df : DivFrame 1 - include : df.markSet.capital - include : HBar.t [TLeftX df] [TRightX df] CAP BBS - include : VBar.m (df.middle - BBD / 2) 0 CAP BBS - include : VBar.m (df.middle + BBD / 2) 0 CAP BBS - include : HBar.b (df.middle - BBD / 2) (df.middle + BBD / 2) 0 BBS - create-glyph 'capitalSmcpI' 0xA7AE : glyph-proc - local df : include : DivFrame 1 + local df : include : DivFrame [if SLAB [mix 1 para.diversityM 0.5] 1] include : df.markSet.capital local l : TLeftX df local r : TRightX df @@ -218,3 +210,11 @@ glyph-block Letter-Latin-Upper-T : begin include : tagged 'serifLT' : VSerif.dl l CAP VJut include : tagged 'serifRB' : VSerif.ur r 0 VJut include : tagged 'serifLB' : VSerif.ul l 0 VJut + + create-glyph 'mathbb/T' 0x1D54B : glyph-proc + local df : DivFrame 1 + include : df.markSet.capital + include : HBar.t [TLeftX df] [TRightX df] CAP BBS + include : VBar.m (df.middle - BBD / 2) 0 CAP BBS + include : VBar.m (df.middle + BBD / 2) 0 CAP BBS + include : HBar.b (df.middle - BBD / 2) (df.middle + BBD / 2) 0 BBS diff --git a/packages/font-glyphs/src/letter/latin/upper-y.ptl b/packages/font-glyphs/src/letter/latin/upper-y.ptl index fc52d7ffc6..1d63758af3 100644 --- a/packages/font-glyphs/src/letter/latin/upper-y.ptl +++ b/packages/font-glyphs/src/letter/latin/upper-y.ptl @@ -129,6 +129,8 @@ glyph-block Letter-Latin-Upper-Y : begin link-reduced-variant 'Y/sansSerif' 'Y' MathSansSerif select-variant 'smcpY' 0x28F (follow -- 'Y') select-variant 'YHookTop' 0x1B3 (follow -- 'Y') + select-variant 'Y/LambdaBase' (shapeFrom -- 'Y') + CreateAccentedComposition 'YBar/LambdaBase' null 'Y/LambdaBase' 'barOver' CreateTurnedLetter 'turnY/sansSerif' 0x2144 'Y/sansSerif' HalfAdvance (CAP / 2) @@ -144,6 +146,9 @@ glyph-block Letter-Latin-Upper-Y : begin create-glyph 'YStroke/Overlay' : HOverlayBar ([mix 0 SB 0.5]) ([mix Width RightSB 0.5]) [mix 0 CAP 0.75] derive-composites 'YStroke' 0x24E 'Y' 'YStroke/Overlay' + CreateTurnedLetter 'latn/Lambda' 0xA7DA 'Y/LambdaBase' HalfAdvance (CAP / 2) + CreateTurnedLetter 'latn/LambdaStroke' 0xA7DC 'YBar/LambdaBase' HalfAdvance (CAP / 2) + select-variant 'currency/yenSign' 0xA5 (follow -- 'Y') # Blackboard diff --git a/packages/font-glyphs/src/letter/latin/z.ptl b/packages/font-glyphs/src/letter/latin/z.ptl index c9d0341b15..dcbe1c2497 100644 --- a/packages/font-glyphs/src/letter/latin/z.ptl +++ b/packages/font-glyphs/src/letter/latin/z.ptl @@ -361,10 +361,12 @@ glyph-block Letter-Latin-Z : begin CreateAccentedComposition 'ZCaron' 0x17D 'Z' 'caronAbove' true CreateAccentedComposition 'zCaron' 0x17E 'z' 'caronAbove' true - CreateAccentedComposition 'ZAcute.PLK' null 'Z' 'kreskaAbove' - CreateAccentedComposition 'zAcute.PLK' null 'z' 'kreskaAbove' - CreateAccentedComposition 'ZDot.PLK' null 'Z' 'kropkaAbove' - CreateAccentedComposition 'zDot.PLK' null 'z' 'kropkaAbove' + alias 'Z.PLK' null 'Z/reduced' + alias 'z.PLK' null 'z/reduced' + CreateAccentedComposition 'ZAcute.PLK' null 'Z/reduced' 'kreskaAbove' + CreateAccentedComposition 'zAcute.PLK' null 'z/reduced' 'kreskaAbove' + CreateAccentedComposition 'ZDot.PLK' null 'Z/reduced' 'kropkaAbove' + CreateAccentedComposition 'zDot.PLK' null 'z/reduced' 'kropkaAbove' CreateAccentedComposition 'ZStroke' 0x1B5 'Z/reduced' 'barOver' CreateAccentedComposition 'zStroke' 0x1B6 'z/reduced' 'barOver' diff --git a/packages/font-glyphs/src/letter/shared.ptl b/packages/font-glyphs/src/letter/shared.ptl index cad4c16558..30fb093728 100644 --- a/packages/font-glyphs/src/letter/shared.ptl +++ b/packages/font-glyphs/src/letter/shared.ptl @@ -12,36 +12,25 @@ glyph-block Letter-Shared : begin glyph-block-import CommonShapes glyph-block-import Common-Derivatives glyph-block-import Mark-Adjustment : TurnMarks LeaningAnchorMap + glyph-block-import Letter-Accent-Builder : TransformGlyphCompositionSequence + + glyph-block-export CreateAccentedComposition + define [CreateAccentedComposition dst u srcGid accentGid] + CreateMultiAccentedComposition dst u srcGid { accentGid } glyph-block-export CreateMultiAccentedComposition define [CreateMultiAccentedComposition dst u gnSrc gnAccents] derive-multi-part-glyphs dst u { gnSrc :: gnAccents } : function [gns gr] : glyph-proc - local { gnBase :: gnAccents } gns + local glyphParts : gns.map : function [gn] : query-glyph gn + TransformGlyphCompositionSequence glyphParts - include [refer-glyph gnBase] AS_BASE ALSO_METRICS - foreach gnAccent [items-of gnAccents] : begin - local gAccent : query-glyph gnAccent - currentGlyph.includeMarkWithLeaningSupport gAccent LeaningAnchorMap + include glyphParts.0 AS_BASE ALSO_METRICS + foreach part [items-of : glyphParts.slice 1] : if part : include part if (!gr) : begin - if (gnAccents.length === 1 && [gnAccents.0.endsWith 'tittleAbove']) - : then : Dotless.set currentGlyph gnBase - : else : CvDecompose.set currentGlyph { gnSrc :: gnAccents } - - glyph-block-export CreateAccentedComposition - define [CreateAccentedComposition dst u srcGid accentGid] - CreateMultiAccentedComposition dst u srcGid { accentGid } - - glyph-block-export CreateOgonekComposition - define [CreateOgonekComposition dst u srcGid] - derive-multi-part-glyphs dst u { srcGid 'ogonekBelow' 'ogonekTR/spacer' 'ogonekTR' } : function [gns gr] : glyph-proc - local { base markBelow spacer markTR } gns - include [refer-glyph base] AS_BASE ALSO_METRICS - if currentGlyph.baseAnchors.trailing - then : begin - include [refer-glyph spacer] - include [refer-glyph markTR] - else : include [refer-glyph markBelow] + if (gns.length === 2 && [gns.1.endsWith 'tittleAbove']) + : then : Dotless.set currentGlyph gns.0 + : else : CvDecompose.set currentGlyph gns glyph-block-export CreateCommaCaronComposition define [CreateCommaCaronComposition dst u sourceGid offset] diff --git a/packages/font-glyphs/src/marks/above.ptl b/packages/font-glyphs/src/marks/above.ptl index 654e8de6e2..7cdf80aeab 100644 --- a/packages/font-glyphs/src/marks/above.ptl +++ b/packages/font-glyphs/src/marks/above.ptl @@ -469,8 +469,8 @@ glyph-block Mark-Above : begin set-width 0 include : StdAnchors.wide - local leftEnd (markMiddle - markExtend * 1.5) - local rightEnd (markMiddle + markExtend * 1.5) + local leftEnd : markMiddle - markExtend * 1.5 + local rightEnd : markMiddle + markExtend * 1.5 include : dispiro flat leftEnd aboveMarkMid [widths.center : 2 * markHalfStroke] @@ -490,6 +490,30 @@ glyph-block Mark-Above : begin flat (SB - Width) aboveMarkMid [widths.center : 2 * markHalfStroke] curl (RightSB - Width) aboveMarkMid + create-glyph 'sbRsbOverlineAbove/diversityI' : glyph-proc + local df : DivFrame para.diversityI + set-width 0 + include : StdAnchors.impl 'above' 0 (1.5 * df.div) + + local leftEnd : markMiddle - (df.rightSB - df.leftSB) / 2 + local rightEnd : markMiddle + (df.rightSB - df.leftSB) / 2 + + include : dispiro + flat leftEnd aboveMarkMid [widths.center : 2 * markHalfStroke] + curl rightEnd aboveMarkMid + + create-glyph 'sbRsbOverlineAbove/diversityM' : glyph-proc + local df : DivFrame para.diversityM + set-width 0 + include : StdAnchors.impl 'above' 0 (1.5 * df.div) + + local leftEnd : markMiddle - (df.rightSB - df.leftSB) / 2 + local rightEnd : markMiddle + (df.rightSB - df.leftSB) / 2 + + include : dispiro + flat leftEnd aboveMarkMid [widths.center : 2 * markHalfStroke] + curl rightEnd aboveMarkMid + create-glyph 'latin1macron' 0xAF : glyph-proc local df : include : DivFrame 1 include : dispiro diff --git a/packages/font-glyphs/src/marks/doppelganger.ptl b/packages/font-glyphs/src/marks/doppelganger.ptl new file mode 100644 index 0000000000..f4b3145530 --- /dev/null +++ b/packages/font-glyphs/src/marks/doppelganger.ptl @@ -0,0 +1,72 @@ +$$include '../meta/macros.ptl' + +import [mix linreg clamp fallback] from "@iosevka/util" +import [TieMark AnyDerivingCv ScheduleLeaningMark LeaningMark LeaningMarkSpacer] from "@iosevka/glyph/relation" + +import [DesignParameters] from "../meta/aesthetics.mjs" + +extern Set + +glyph-module + +glyph-block Mark-Doppelganger : begin + glyph-block-import CommonShapes + glyph-block-import Common-Derivatives + glyph-block-import Mark-Adjustment : TieAnchorMap LeaningAnchorMap + + define [DeriveMarkChange gr gn akFrom akTo] : begin + DeriveMeshT {gn} AnyDerivingCv : function [gns] : begin + local srcGn gns.0 + local src : query-glyph srcGn + local toGN : gr.amendName srcGn + if [not : query-glyph toGN] : begin + create-glyph toGN : glyph-proc + include [refer-glyph srcGn] AS_BASE ALSO_METRICS + set currentGlyph.markAnchors.(akTo) currentGlyph.markAnchors.(akFrom) + currentGlyph.deleteMarkAnchor akFrom + set currentGlyph.baseAnchors.(akTo) currentGlyph.baseAnchors.(akFrom) + currentGlyph.deleteBaseAnchor akFrom + + src.addVariantForRecursiveBuild [query-glyph toGN] + gr.set src toGN + return toGN + + define [DeriveSpacer gr gn] : begin + DeriveMeshT {gn} AnyDerivingCv : function [gns] : begin + local srcGn gns.0 + local src : query-glyph srcGn + local toGN : gr.amendName srcGn + + if [not : query-glyph toGN] : begin + create-glyph toGN : glyph-proc + include [refer-glyph srcGn] AS_BASE ALSO_METRICS + currentGlyph.clearGeometry + + src.addVariantForRecursiveBuild [query-glyph toGN] + gr.set src toGN + return toGN + + # Building the doppelganger and spacer glyph for leaning marks + do : foreach { gn g } [glyphStore.namedEntries] : begin + DeriveTieMarks gn g + DeriveLeaningMark gn g + : where + [PickTieMarkClasses g] : begin + foreach { akFrom akTo } [items-of TieAnchorMap] : begin + if (g.markAnchors.(akFrom)) : begin + return { akFrom akTo } + return null + [DeriveTieMarks gn g] : begin + local cls : PickTieMarkClasses g + if cls : DeriveMarkChange TieMark gn cls.0 cls.1 + + [PickLeaningMarkClasses g] : begin + foreach { akFrom akTo } [items-of LeaningAnchorMap] : begin + if ([ScheduleLeaningMark.get g] && g.markAnchors.(akFrom)) : begin + return { akFrom akTo } + return null + [DeriveLeaningMark gn g] : begin + local cls : PickLeaningMarkClasses g + if cls : begin + DeriveMarkChange LeaningMark gn cls.0 cls.1 + DeriveSpacer LeaningMarkSpacer gn diff --git a/packages/font-glyphs/src/marks/index.ptl b/packages/font-glyphs/src/marks/index.ptl index 9ccce20641..361fe525ba 100644 --- a/packages/font-glyphs/src/marks/index.ptl +++ b/packages/font-glyphs/src/marks/index.ptl @@ -13,3 +13,4 @@ export : define [apply] : begin run-glyph-module "./composite.mjs" run-glyph-module "./adjust.mjs" + run-glyph-module "./doppelganger.mjs" diff --git a/packages/font-glyphs/src/meta/unicode-knowledge.ptl b/packages/font-glyphs/src/meta/unicode-knowledge.ptl index 3d319d8541..80436c0cab 100644 --- a/packages/font-glyphs/src/meta/unicode-knowledge.ptl +++ b/packages/font-glyphs/src/meta/unicode-knowledge.ptl @@ -182,24 +182,13 @@ export : define decompOverrides : object 0x1FE2 { 'grek/upsilon' 'dialytikaVariaAbove' } 0x1FE3 { 'grek/upsilon' 'dialytikaOxiaAbove' } - 0x2c61 { 'l' 'dblBarOver' } - 0x2c65 { 'a' 'shortSlash' } - 0x2c66 { 't' 'longSlash' } + 0x2C61 { 'l' 'dblBarOver' } + 0x2C65 { 'a' 'shortSlash' } + 0x2C66 { 't' 'longSlash' } 0xA74A { 'O' 'hStrike' } 0xA74B { 'o' 'hStrike' } 0xA799 { 'f' 'barOver' } - 0xA7B8 { 'U' 'longSlash' } - 0xA7B9 { 'u' 'shortSlash' } - 0xA7BA { 'grek/Alpha' 'EgyptologicalYodTonos' } - 0xA7BC { 'grek/Iota' 'EgyptologicalYodTonos' } - 0xA7BE { 'U/withTonos' 'EgyptologicalYodTonos' } - 0xA7BB { 'a' 'EgyptologicalYodAbove' } - 0xA7BD { 'i' 'EgyptologicalYodAbove' } - 0xA7BF { 'u' 'EgyptologicalYodAbove' } - 0xA7C9 { 'S' 'hStrike' } - 0xA7CA { 's' 'hStrike' } - 0xA7A0 { 'G' 'oblStrike' } 0xA7A1 { 'g' 'oblStrike' } 0xA7A2 { 'K' 'oblStrike' } @@ -210,6 +199,18 @@ export : define decompOverrides : object 0xA7A7 { 'r' 'oblStrike' } 0xA7A8 { 'S' 'oblStrike' } 0xA7A9 { 's' 'oblStrike' } + 0xA7B8 { 'U' 'longSlash' } + 0xA7B9 { 'u' 'shortSlash' } + 0xA7BA { 'grek/Alpha' 'EgyptologicalYodTonos' } + 0xA7BC { 'grek/Iota' 'EgyptologicalYodTonos' } + 0xA7BE { 'U/withTonos' 'EgyptologicalYodTonos' } + 0xA7BB { 'a' 'EgyptologicalYodAbove' } + 0xA7BD { 'i' 'EgyptologicalYodAbove' } + 0xA7BF { 'u' 'EgyptologicalYodAbove' } + 0xA7C9 { 'S' 'hStrike' } + 0xA7CA { 's' 'hStrike' } + 0xA7CC { 'S' 'longSlash' } + 0xA7CD { 's' 'shortSlash' } 0xAB30 { 'scripta' 'hStrike' } 0xAB3E { 'frak/o' 'shortSlash' } diff --git a/packages/font-glyphs/src/symbol/counting-rod.ptl b/packages/font-glyphs/src/symbol/counting-rod.ptl new file mode 100644 index 0000000000..505db126e7 --- /dev/null +++ b/packages/font-glyphs/src/symbol/counting-rod.ptl @@ -0,0 +1,109 @@ +$$include '../meta/macros.ptl' + +import [mix linreg clamp fallback] from "@iosevka/util" + +glyph-module + +glyph-block Symbol-Counting-Rod : begin + glyph-block-import CommonShapes + glyph-block-import Common-Derivatives + + define rodDiv : mix 1 para.diversityM 2 + define rodDf : DivFrame rodDiv 5 + define rodSw rodDf.mvs + define hRodSw : AdviceStroke 3 rodDiv + define rodSpace : rodDf.width / 5 + + do "Counting Rod Ones" + define [RodY i sw] : mix (0 + sw / 2) (CAP - sw / 2) (i / 4) + create-glyph 'countingRod1' 0x1D360 : glyph-proc + local df : include : DivFrame rodDiv + include : df.markSet.capital + include : HBar.m df.leftSB df.rightSB [RodY 0 hRodSw] hRodSw + create-glyph 'countingRod2' 0x1D361 : glyph-proc + local df : include : DivFrame rodDiv + include : refer-glyph 'countingRod1' AS_BASE ALSO_METRICS + include : HBar.m df.leftSB df.rightSB [RodY 1 hRodSw] hRodSw + create-glyph 'countingRod3' 0x1D362 : glyph-proc + local df : include : DivFrame rodDiv + include : refer-glyph 'countingRod2' AS_BASE ALSO_METRICS + include : HBar.m df.leftSB df.rightSB [RodY 2 hRodSw] hRodSw + create-glyph 'countingRod4' 0x1D363 : glyph-proc + local df : include : DivFrame rodDiv + include : refer-glyph 'countingRod3' AS_BASE ALSO_METRICS + include : HBar.m df.leftSB df.rightSB [RodY 3 hRodSw] hRodSw + create-glyph 'countingRod5' 0x1D364 : glyph-proc + local df : include : DivFrame rodDiv + include : refer-glyph 'countingRod4' AS_BASE ALSO_METRICS + include : HBar.m df.leftSB df.rightSB [RodY 4 hRodSw] hRodSw + create-glyph 'countingRod6' 0x1D365 : glyph-proc + local df : include : DivFrame rodDiv + include : refer-glyph 'countingRod1' AS_BASE ALSO_METRICS + include : VBar.m df.middle [RodY 0 hRodSw] CAP rodSw + create-glyph 'countingRod7' 0x1D366 : glyph-proc + local df : include : DivFrame rodDiv + include : refer-glyph 'countingRod2' AS_BASE ALSO_METRICS + include : VBar.m df.middle [RodY 1 hRodSw] CAP rodSw + create-glyph 'countingRod8' 0x1D367 : glyph-proc + local df : include : DivFrame rodDiv + include : refer-glyph 'countingRod3' AS_BASE ALSO_METRICS + include : VBar.m df.middle [RodY 2 hRodSw] CAP rodSw + create-glyph 'countingRod9' 0x1D368 : glyph-proc + local df : include : DivFrame rodDiv + include : refer-glyph 'countingRod4' AS_BASE ALSO_METRICS + include : VBar.m df.middle [RodY 3 hRodSw] CAP rodSw + + do "Counting Rod Tens" + define [rodTens nStrokes plusFive] : glyph-proc + local df : include : DivFrame rodDiv nStrokes + include : df.markSet.capital + + if plusFive : include : HBar.t df.leftSB df.rightSB CAP hRodSw + + if (nStrokes === 1) : begin + include : VBar.m df.middle 0 CAP rodSw + : else : begin + local radius : (rodSpace * (nStrokes - 1)) / 2 + foreach [j : range 0 nStrokes] : do + include : VBar.m (df.middle + [mix (-radius) radius : j / (nStrokes - 1)]) 0 CAP rodSw + + create-glyph 'countingRodTens1' 0x1D369 : glyph-proc + include : rodTens 1 0 + create-glyph 'countingRodTens2' 0x1D36A : glyph-proc + include : rodTens 2 0 + create-glyph 'countingRodTens3' 0x1D36B : glyph-proc + include : rodTens 3 0 + create-glyph 'countingRodTens4' 0x1D36C : glyph-proc + include : rodTens 4 0 + create-glyph 'countingRodTens5' 0x1D36D : glyph-proc + include : rodTens 5 0 + create-glyph 'countingRodTens6' 0x1D36E : glyph-proc + include : rodTens 1 1 + create-glyph 'countingRodTens7' 0x1D36F : glyph-proc + include : rodTens 2 1 + create-glyph 'countingRodTens8' 0x1D370 : glyph-proc + include : rodTens 3 1 + create-glyph 'countingRodTens9' 0x1D371 : glyph-proc + include : rodTens 4 1 + + do "Tally Marks" + create-glyph 'tallyMarkOne' 0x1D377 : glyph-proc + local df : include : DivFrame : if (para.diversityII < 1) (rodDiv / 4) 1 + include : df.markSet.capital + include : VBar.m df.middle 0 CAP df.mvs + + create-glyph 'tallyMarkFive' 0x1D378 : glyph-proc + local df : include : DivFrame rodDiv 4 + include : df.markSet.capital + + local left : df.leftSB + [HSwToV : 0.5 * df.mvs] + local right : df.rightSB - [HSwToV : 0.5 * df.mvs] + + include : VBar.m left 0 CAP df.mvs + include : VBar.m [mix left right (1/3)] 0 CAP df.mvs + include : VBar.m [mix left right (2/3)] 0 CAP df.mvs + include : VBar.m right 0 CAP df.mvs + + include : dispiro + flat (left - LongJut / 2 + OX) (CAP * (1/3)) [widths.center df.mvs] + curl (right + LongJut / 2 - OX) (CAP * (2/3)) diff --git a/packages/font-glyphs/src/symbol/geometric/masked.ptl b/packages/font-glyphs/src/symbol/geometric/masked.ptl index 38acbc058b..faeb3356ac 100644 --- a/packages/font-glyphs/src/symbol/geometric/masked.ptl +++ b/packages/font-glyphs/src/symbol/geometric/masked.ptl @@ -386,7 +386,41 @@ glyph-block Symbol-Geometric-Masked : for-width-kinds WideWidth1 ExtLineLhs 4 OperatorStroke (Geom.MidX - Geom.Size) Geom.MidY Geom.MidX (Geom.MidY - Geom.Size) ExtLineLhs 4 OperatorStroke Geom.MidX (Geom.MidY - Geom.Size) (Geom.MidX + Geom.Size) Geom.MidY + # Compositions + create-glyph [MangleName 'compositionSymbol'] [MangleUnicode 0x2384] : glyph-proc + set-width Geom.Width + local offsetX : Geom.Size * Size.Medium.size / 2 - GeometryStroke / 4 + include : union + with-transform [Translate offsetX 0] : refer-glyph : MangleName 'whiteMediumCircle' + with-transform [Translate (-offsetX) 0] : refer-glyph : MangleName 'whiteMediumSquare' + create-glyph [MangleName 'whiteSquareVertLine'] [MangleUnicode 0x2385] : glyph-proc set-width Geom.Width include : refer-glyph : MangleName 'whiteSquare' include : BarShape Geom.MidX ParenTop ParenBot + + create-glyph [MangleName 'whiteSquareContainingWhiteDiamond'] [MangleUnicode 0x26CB] : glyph-proc + set-width Geom.Width + include : union + refer-glyph : MangleName 'whiteSquare' + refer-glyph : MangleName 'whiteDiamond' + + create-glyph [MangleName 'squaredSaltire'] [MangleUnicode 0x26DD] : glyph-proc + set-width Geom.Width + include : union + refer-glyph : MangleName 'whiteSquare' + intersection + refer-glyph : MangleName 'blackSquare' + union + dispiro [widths.center GeometryStroke] [flat Geom.Left Geom.Top] [curl Geom.Right Geom.Bot] + dispiro [widths.center GeometryStroke] [flat Geom.Left Geom.Bot] [curl Geom.Right Geom.Top] + + create-glyph [MangleName 'uni26DE'] [MangleUnicode 0x26DE] : glyph-proc + set-width Geom.Width + include : union + difference + refer-glyph : MangleName 'blackSquare' + refer-glyph : MangleName 'blackCircle' + intersection + refer-glyph : MangleName 'blackSquare' + dispiro [widths.center GeometryStroke] [flat Geom.Left Geom.Top] [curl Geom.Right Geom.Bot] diff --git a/packages/font-glyphs/src/symbol/geometric/square-corners.ptl b/packages/font-glyphs/src/symbol/geometric/square-corners.ptl index 7717404179..0de90530e5 100644 --- a/packages/font-glyphs/src/symbol/geometric/square-corners.ptl +++ b/packages/font-glyphs/src/symbol/geometric/square-corners.ptl @@ -24,6 +24,16 @@ glyph-block Symbol-Geometric-Square-Corners : for-width-kinds WideWidth1 intersection [MaskBelow (Geom.MidY + Geom.Size / 3)] [MaskAbove (Geom.MidY - Geom.Size / 3)] intersection [MaskLeft (Geom.MidX + Geom.Size / 3)] [MaskRight (Geom.MidX - Geom.Size / 3)] + create-glyph [MangleName 'driveSlowSign'] [MangleUnicode 0x26DA] : glyph-proc + set-width Geom.Width + include : intersection + refer-glyph : MangleName 'blackSquare' + union + RingAt Geom.Left Geom.Top (Geom.Size / 2) + RingAt Geom.Left Geom.Bot (Geom.Size / 2) + RingAt Geom.Right Geom.Top (Geom.Size / 2) + RingAt Geom.Right Geom.Bot (Geom.Size / 2) + create-glyph [MangleName 'squareCornersSaltires'] [MangleUnicode 0x1CC89] : glyph-proc set-width Geom.Width include : intersection @@ -102,3 +112,4 @@ glyph-block Symbol-Geometric-Square-Corners : for-width-kinds WideWidth1 widths.center lineWidth flat (Geom.MidX - Geom.Size - aperature) (Geom.MidY + Geom.Size) curl (Geom.MidX + Geom.Size - aperature) (Geom.MidY - Geom.Size) + diff --git a/packages/font-glyphs/src/symbol/letter.ptl b/packages/font-glyphs/src/symbol/letter.ptl index f7307ff720..313d53a503 100644 --- a/packages/font-glyphs/src/symbol/letter.ptl +++ b/packages/font-glyphs/src/symbol/letter.ptl @@ -100,7 +100,7 @@ glyph-block Symbol-Currency-Letter-Derived : begin derive-composites 'currency/guaraniSign' 0x20B2 'G' 'longVStrokeOver' derive-composites 'currency/cediSign' 0x20B5 'C' 'longVStrokeOver' - derive-composites 'currency/somSign' 0x20C0 'cyrl/es' 'sbRsbUnderlineBelow' + derive-composites 'currency/somSign' 0x20C0 'smcpC' 'sbRsbUnderlineBelow' glyph-block Symbol-Letter : begin glyph-block-import CommonShapes @@ -290,28 +290,6 @@ glyph-block Symbol-Letter : begin flat (Middle + [HSwToV HalfStroke]) 0 [widths.lhs : AdviceStroke 3] curl (RightSB - O) [mix 0 CAP 0.375] - do "Tally Marks" - create-glyph 'tallyMarkOne' 0x1D377 : glyph-proc - local df : include : DivFrame : if (para.diversityII < 1) ([mix 1 para.diversityM 2] / 4) 1 - include : df.markSet.capital - include : VBar.m df.middle 0 CAP df.mvs - - create-glyph 'tallyMarkFive' 0x1D378 : glyph-proc - local df : include : DivFrame [mix 1 para.diversityM 2] 4 - include : df.markSet.capital - - local left : df.leftSB + [HSwToV : 0.5 * df.mvs] - local right : df.rightSB - [HSwToV : 0.5 * df.mvs] - - include : VBar.m left 0 CAP df.mvs - include : VBar.m [mix left right (1/3)] 0 CAP df.mvs - include : VBar.m [mix left right (2/3)] 0 CAP df.mvs - include : VBar.m right 0 CAP df.mvs - - include : dispiro - flat (left - LongJut / 2 + OX) (CAP * (1/3)) [widths.center df.mvs] - curl (right + LongJut / 2 - OX) (CAP * (2/3)) - glyph-block Symbol-Cyrl-Thousands : begin glyph-block-import CommonShapes create-glyph 'cyrlThousandsSign' 0x482 : glyph-proc diff --git a/packages/font-glyphs/src/symbol/pictograph/iec-power-and-playback.ptl b/packages/font-glyphs/src/symbol/pictograph/iec-power-and-playback.ptl index 9762a91b3d..b889b35bed 100644 --- a/packages/font-glyphs/src/symbol/pictograph/iec-power-and-playback.ptl +++ b/packages/font-glyphs/src/symbol/pictograph/iec-power-and-playback.ptl @@ -21,6 +21,15 @@ glyph-block Symbol-Pictograph-IEC-Power-And-Playback : for-width-kinds WideWidth set-width df.width include : RingStrokeAt df.middle SymbolMid squareRadiusFW GeometryStroke + create-glyph [MangleName 'heavyCircledSaltire'] [MangleUnicode 0x2B59] : glyph-proc + set-width df.width + include : RingStrokeAt df.middle SymbolMid squareRadiusFW GeometryStroke + include : intersection + RingAt df.middle SymbolMid squareRadiusFW + union + dispiro [widths.center GeometryStroke] [flat leftFW topFW] [curl rightFW bottomFW] + dispiro [widths.center GeometryStroke] [flat leftFW bottomFW] [curl rightFW topFW] + create-glyph [MangleName 'powerOn'] [MangleUnicode 0x23FD] : glyph-proc set-width df.width include : Rect diff --git a/packages/font-glyphs/src/symbol/punctuation/brackets.ptl b/packages/font-glyphs/src/symbol/punctuation/brackets.ptl index 028a20c370..4fa9fea296 100644 --- a/packages/font-glyphs/src/symbol/punctuation/brackets.ptl +++ b/packages/font-glyphs/src/symbol/punctuation/brackets.ptl @@ -102,11 +102,26 @@ glyph-block Symbol-Punctuation-Brackets : begin turned "parenRight.\(suffix)" null "parenLeft.\(suffix)" Middle SymbolMid turned "doubleParenRight.\(suffix)" null "doubleParenLeft.\(suffix)" Middle SymbolMid + create-glyph "parenLeftUHalf.\(suffix)" : intersection + refer-glyph "parenLeft.\(suffix)" + MaskAbove SymbolMid + create-glyph "parenLeftLHalf.\(suffix)" : intersection + refer-glyph "parenLeft.\(suffix)" + MaskBelow SymbolMid + + turned "parenRightUHalf.\(suffix)" null "parenLeftLHalf.\(suffix)" Middle SymbolMid + turned "parenRightLHalf.\(suffix)" null "parenLeftUHalf.\(suffix)" Middle SymbolMid + select-variant 'parenLeft' '(' select-variant 'parenRight' ')' select-variant 'doubleParenLeft' 0x2E28 (follow -- 'parenLeft') select-variant 'doubleParenRight' 0x2E29 (follow -- 'parenRight') + select-variant 'parenLeftUHalf' 0x2E59 (follow -- 'parenLeft') + select-variant 'parenRightUHalf' 0x2E5A (follow -- 'parenRight') + select-variant 'parenLeftLHalf' 0x2E5B (follow -- 'parenLeft') + select-variant 'parenRightLHalf' 0x2E5C (follow -- 'parenRight') + alias 'flattenedParenLeft' 0x27EE 'parenLeft.flatArc' alias 'flattenedParenRight' 0x27EF 'parenRight.flatArc' diff --git a/packages/font-kits/package.json b/packages/font-kits/package.json index 71b4b95355..015d2d2b88 100644 --- a/packages/font-kits/package.json +++ b/packages/font-kits/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/font-kits", - "version": "31.6.1", + "version": "31.7.0", "private": true, "exports": { "./derived-coordinates": "./src/derived-coordinates.mjs", @@ -8,8 +8,8 @@ "./spiro-kit": "./src/spiro-kit.mjs" }, "dependencies": { - "@iosevka/geometry": "31.6.1", - "@iosevka/glyph": "31.6.1", - "@iosevka/util": "31.6.1" + "@iosevka/geometry": "31.7.0", + "@iosevka/glyph": "31.7.0", + "@iosevka/util": "31.7.0" } } diff --git a/packages/font-otl/package.json b/packages/font-otl/package.json index dd976a0775..100d9eef8b 100644 --- a/packages/font-otl/package.json +++ b/packages/font-otl/package.json @@ -1,13 +1,13 @@ { "name": "@iosevka/font-otl", - "version": "31.6.1", + "version": "31.7.0", "private": true, "exports": { ".": "./lib/index.mjs" }, "dependencies": { - "@iosevka/font-glyphs": "31.6.1", - "@iosevka/glyph": "31.6.1", + "@iosevka/font-glyphs": "31.7.0", + "@iosevka/glyph": "31.7.0", "toposort": "^2.0.2" } } diff --git a/packages/font-otl/src/gsub-locl.ptl b/packages/font-otl/src/gsub-locl.ptl index ecd057e360..cd33f63851 100644 --- a/packages/font-otl/src/gsub-locl.ptl +++ b/packages/font-otl/src/gsub-locl.ptl @@ -52,21 +52,7 @@ export : define [buildLOCL gsub para glyphStore] : begin # PLK define loclPLK : latnPLK.addFeature : gsub.createFeature 'locl' - loclPLK.addLookup : gsub.createLookup - .type 'gsub_single' - .substitutions : object - 'CAcute' : glyphStore.ensureExists 'CAcute.PLK' - 'cAcute' : glyphStore.ensureExists 'cAcute.PLK' - 'NAcute' : glyphStore.ensureExists 'NAcute.PLK' - 'nAcute' : glyphStore.ensureExists 'nAcute.PLK' - 'OAcute' : glyphStore.ensureExists 'OAcute.PLK' - 'oAcute' : glyphStore.ensureExists 'oAcute.PLK' - 'SAcute' : glyphStore.ensureExists 'SAcute.PLK' - 'sAcute' : glyphStore.ensureExists 'sAcute.PLK' - 'ZAcute' : glyphStore.ensureExists 'ZAcute.PLK' - 'zAcute' : glyphStore.ensureExists 'zAcute.PLK' - 'ZDot' : glyphStore.ensureExists 'ZDot.PLK' - 'zDot' : glyphStore.ensureExists 'zDot.PLK' + loclPLK.addLookup : createGsubLookupFromGr gsub glyphStore LocalizedForm.PLK # ROM define loclROM : gsub.createFeature 'locl' @@ -88,10 +74,7 @@ export : define [buildLOCL gsub para glyphStore] : begin latnKAZ.addFeature loclTRK latnTAT.addFeature loclTRK latnCRT.addFeature loclTRK - loclTRK.addLookup : gsub.createLookup - .type 'gsub_single' - .substitutions : object - 'i' : glyphStore.ensureExists 'i.TRK' + loclTRK.addLookup : createGsubLookupFromGr gsub glyphStore LocalizedForm.TRK # VIT define loclVIT : latnVIT.addFeature : gsub.createFeature 'locl' diff --git a/packages/font/package.json b/packages/font/package.json index e3f657ccc3..e4cbc92442 100644 --- a/packages/font/package.json +++ b/packages/font/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/font", - "version": "31.6.1", + "version": "31.7.0", "private": true, "exports": { ".": "./src/index.mjs", @@ -10,13 +10,13 @@ }, "dependencies": { "@iarna/toml": "^2.2.5", - "@iosevka/font-glyphs": "31.6.1", - "@iosevka/font-otl": "31.6.1", - "@iosevka/geometry": "31.6.1", - "@iosevka/geometry-cache": "31.6.1", - "@iosevka/glyph": "31.6.1", - "@iosevka/param": "31.6.1", - "@iosevka/util": "31.6.1", + "@iosevka/font-glyphs": "31.7.0", + "@iosevka/font-otl": "31.7.0", + "@iosevka/geometry": "31.7.0", + "@iosevka/geometry-cache": "31.7.0", + "@iosevka/glyph": "31.7.0", + "@iosevka/param": "31.7.0", + "@iosevka/util": "31.7.0", "harfbuzzjs": "^0.3.6", "ot-builder": "^1.7.4", "semver": "^7.6.3" diff --git a/packages/font/src/generated/ttfa-ranges.mjs b/packages/font/src/generated/ttfa-ranges.mjs index 37e62e9a05..faf250f6d4 100644 --- a/packages/font/src/generated/ttfa-ranges.mjs +++ b/packages/font/src/generated/ttfa-ranges.mjs @@ -119,7 +119,7 @@ export default [ ], [ 42896, - 42954 + 42957 ], [ 42960, @@ -131,7 +131,7 @@ export default [ ], [ 42965, - 42969 + 42972 ], [ 42997, @@ -433,7 +433,7 @@ export default [ ], [ 7296, - 7304 + 7306 ], [ 7467, diff --git a/packages/geometry-cache/package.json b/packages/geometry-cache/package.json index bc08b1b3c3..02fa235ffa 100644 --- a/packages/geometry-cache/package.json +++ b/packages/geometry-cache/package.json @@ -1,12 +1,12 @@ { "name": "@iosevka/geometry-cache", - "version": "31.6.1", + "version": "31.7.0", "private": true, "exports": { ".": "./src/index.mjs" }, "dependencies": { - "@iosevka/geometry": "31.6.1", + "@iosevka/geometry": "31.7.0", "@msgpack/msgpack": "^2.8.0" } } diff --git a/packages/geometry/package.json b/packages/geometry/package.json index 6ee3ad3d15..0f5e316605 100644 --- a/packages/geometry/package.json +++ b/packages/geometry/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/geometry", - "version": "31.6.1", + "version": "31.7.0", "private": true, "exports": { ".": "./src/index.mjs", @@ -15,7 +15,7 @@ "./spiro-pen-expand": "./src/spiro-pen-expand.mjs" }, "dependencies": { - "@iosevka/util": "31.6.1", + "@iosevka/util": "31.7.0", "spiro": "^3.0.1", "typo-geom": "^0.16.1" } diff --git a/packages/glyph/package.json b/packages/glyph/package.json index 4f34d5d8ee..6c41e9c72a 100644 --- a/packages/glyph/package.json +++ b/packages/glyph/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/glyph", - "version": "31.6.1", + "version": "31.7.0", "private": true, "exports": { ".": "./src/glyph.mjs", @@ -9,6 +9,6 @@ "./relation": "./src/relation.mjs" }, "dependencies": { - "@iosevka/geometry": "31.6.1" + "@iosevka/geometry": "31.7.0" } } diff --git a/packages/glyph/src/block.mjs b/packages/glyph/src/block.mjs index 686119f83d..d98af9d70d 100644 --- a/packages/glyph/src/block.mjs +++ b/packages/glyph/src/block.mjs @@ -49,9 +49,13 @@ export class RecursiveBuildFilter { } } +const DEP_TRAVERSE_PENDING = 1, + DEP_TRAVERSE_CHECKED = 2; + export class DependencyManager { constructor() { this.glyphToGlyph = new WeakMap(); + this.glyphToGlyphVariant = new WeakMap(); this.glyphToBlock = new WeakMap(); this.blockToGlyph = new Map(); } @@ -63,6 +67,14 @@ export class DependencyManager { } s.add(dependency); } + addVariantDependency(dependent, dependency) { + let s = this.glyphToGlyphVariant.get(dependent); + if (!s) { + s = new Set(); + this.glyphToGlyphVariant.set(dependent, s); + } + s.add(dependency); + } hasGlyphToGlyphDependency(dependent, dependency) { return this.hasGlyphToGlyphDependencyImpl(new Set(), dependent, dependency); } @@ -84,47 +96,6 @@ export class DependencyManager { return false; } - traverseGlyphDependenciesImpl(glyphs, fBlockwiseExpand) { - let state = new Map(); - const PENDING = 1, - CHECKED = 2; - - for (const glyph of glyphs) state.set(glyph, PENDING); - - // When fBlockwiseExpand is true, we need to expand the initial glyph set - // to include all glyphs in the same block. - if (fBlockwiseExpand) { - let blocks = new Set(); - for (const glyph of glyphs) { - let b = this.glyphToBlock.get(glyph); - if (b) blocks.add(b); - } - for (const b of blocks) { - const glyphs = this.blockToGlyph.get(b); - if (glyphs) { - for (const g of glyphs) state.set(g, PENDING); - } - } - } - - // Traverse the dependency graph - for (;;) { - let found = false; - for (const [glyph, s] of state) { - if (s !== PENDING) continue; - const deps = this.glyphToGlyph.get(glyph); - if (deps) { - for (const g of deps) state.set(g, PENDING); - found = true; - } - state.set(glyph, CHECKED); - } - if (!found) break; - } - - return state; - } - traverseDependencies(glyphs) { const gGlyphGraph = this.traverseGlyphDependenciesImpl(glyphs, false); const gBlockGraph = this.traverseGlyphDependenciesImpl(glyphs, true); @@ -141,6 +112,56 @@ export class DependencyManager { return new RecursiveBuildFilter(glyphIdFilter, blockIdFilter); } + + traverseGlyphDependenciesImpl(glyphs, fBlockwiseExpand) { + let state = new Map(); + for (const glyph of glyphs) if (glyph) state.set(glyph, DEP_TRAVERSE_PENDING); + + for (let cycle = 0; cycle < 64; cycle++) { + let szBefore = state.size; + this.expandeByVariants(state); + if (fBlockwiseExpand) this.blockwiseExpandGlyphs(state); + this.traverseDirectDependenciesImpl(state); + if (state.size === szBefore) break; + } + + return state; + } + expandeByVariants(state) { + for (const glyph of state.keys()) { + const vs = this.glyphToGlyphVariant.get(glyph); + if (!vs) continue; + for (const v of vs) if (v && !state.has(v)) state.set(v, DEP_TRAVERSE_PENDING); + } + } + blockwiseExpandGlyphs(state) { + let blocks = new Set(); + for (const glyph of state.keys()) { + let b = this.glyphToBlock.get(glyph); + if (b) blocks.add(b); + } + for (const b of blocks) { + const glyphs = this.blockToGlyph.get(b); + if (!glyphs) continue; + for (const g of glyphs) if (g && !state.has(g)) state.set(g, DEP_TRAVERSE_PENDING); + } + } + traverseDirectDependenciesImpl(state) { + // Traverse the dependency graph + for (let cycle = 0; cycle < 64; cycle++) { + let found = false; + for (const [glyph, s] of state) { + if (s !== DEP_TRAVERSE_PENDING) continue; + const deps = this.glyphToGlyph.get(glyph); + if (deps) { + for (const g of deps) if (g) state.set(g, DEP_TRAVERSE_PENDING); + found = true; + } + state.set(glyph, DEP_TRAVERSE_CHECKED); + } + if (!found) break; + } + } } export class GlyphBlock { @@ -191,7 +212,14 @@ export class GlyphSaveSink { ); } + saveFalse($1, $2, contents) { + return this.saveImpl(true, $1, $2, contents); + } save($1, $2, contents) { + return this.saveImpl(false, $1, $2, contents); + } + + saveImpl(fForce, $1, $2, contents) { // Figure out the glyph name and unicode to save let saveGlyphName = null; let unicode = null; @@ -204,7 +232,7 @@ export class GlyphSaveSink { } // If we are in a recursive build run, and the glyph is not needed, skip it - if (saveGlyphName && !this.glyphIsNeeded(saveGlyphName)) return; + if (!fForce && saveGlyphName && !this.glyphIsNeeded(saveGlyphName)) return; // Create the glyph object & include the contents const glyphObject = new Glyph(saveGlyphName); diff --git a/packages/glyph/src/glyph.mjs b/packages/glyph/src/glyph.mjs index 6f67b000e0..12730021b7 100644 --- a/packages/glyph/src/glyph.mjs +++ b/packages/glyph/src/glyph.mjs @@ -5,8 +5,6 @@ import { Anchor } from "@iosevka/geometry/anchor"; import { Vec2 } from "@iosevka/geometry/point"; import { Transform } from "@iosevka/geometry/transform"; -import { ScheduleLeaningMark } from "./relation.mjs"; - export class Glyph { constructor(identifier) { this._m_identifier = identifier; @@ -66,12 +64,18 @@ export class Glyph { // Dependency dependsOn(glyph) { if (!this._m_dependencyManager) return; + if (!glyph) throw new TypeError("Dependency glyph is null or undefined"); this._m_dependencyManager.addDependency(this, glyph); } hasDependency(other) { if (!this._m_dependencyManager) return false; return this._m_dependencyManager.hasGlyphToGlyphDependency(this, other); } + addVariantForRecursiveBuild(variantGlyph) { + if (!this._m_dependencyManager) return; + if (!variantGlyph) throw new TypeError("Variant glyph is null or undefined"); + this._m_dependencyManager.addVariantDependency(this, variantGlyph); + } // Copying cloneFromGlyph(g) { @@ -107,11 +111,6 @@ export class Glyph { if (copyAnchors) this.copyAnchors(g); if (copyWidth && g.advanceWidth >= 0) this.advanceWidth = g.advanceWidth; } - includeMarkWithLeaningSupport(g, lm) { - let shift = new Vec2(0, 0); - this.combineMarks(g, shift, lm); - this.includeGlyphImpl(g, shift.x, shift.y); - } includeGlyphImpl(g, shiftX, shiftY) { if (g._m_identifier) { this.includeGeometry(new Geom.ReferenceGeometry(g, shiftX, shiftY)); @@ -146,7 +145,7 @@ export class Glyph { tryBecomeMirrorOf(dst, rankSet) { if (rankSet.has(this) || rankSet.has(dst)) return; - if (dst.hasDependency(this)) return; + if (this === dst || dst.hasDependency(this)) return; const csThis = Geom.hashGeometry(this.geometry); const csDst = Geom.hashGeometry(dst.geometry); if (csThis && csDst && csThis === csDst) { @@ -162,21 +161,15 @@ export class Glyph { } // Anchors - combineMarks(g, shift, lm) { + combineMarks(g, shift) { if (!g.markAnchors) return; - const fScheduledLeaning = lm && ScheduleLeaningMark.get(g); for (const mk in g.markAnchors) { // Find the base mark class and anchor const baseThisN = this.baseAnchors[mk]; if (!baseThisN) continue; // Find the leaning base mark class and anchor, if any - let mkLeaning = mk; - if (fScheduledLeaning) { - for (const [mkT, mkLeaningT] of lm) - if (mk === mkT && this.baseAnchors[mkLeaningT]) mkLeaning = mkLeaningT; - } - const baseThisL = this.baseAnchors[mkLeaning]; + const baseThisL = this.baseAnchors[mk]; if (!baseThisL) continue; // Find the mark anchor in mark glyph @@ -195,15 +188,7 @@ export class Glyph { baseThisN.x - markThat.x + baseDerived.x, baseThisN.y - markThat.y + baseDerived.y, ); - if (mkNewMark === mk) { - fSuppress = false; - if (mkLeaning !== mk) { - this.baseAnchors[mkLeaning] = new Anchor( - baseThisL.x - markThat.x + baseDerived.x, - baseThisL.y - markThat.y + baseDerived.y, - ); - } - } + if (mkNewMark === mk) fSuppress = false; } } if (fSuppress) delete this.baseAnchors[mk]; diff --git a/packages/glyph/src/relation.mjs b/packages/glyph/src/relation.mjs index 6d0c46d7e7..88c5890c11 100644 --- a/packages/glyph/src/relation.mjs +++ b/packages/glyph/src/relation.mjs @@ -35,6 +35,8 @@ export const LocalizedForm = { Italic: LinkedGlyphProp("BashkirLocItalic"), }, CHU: LinkedGlyphProp("ChuvashLoc"), + PLK: LinkedGlyphProp("PolishLoc"), + TRK: LinkedGlyphProp("TurkishLoc"), IPPH: LinkedGlyphProp("IPALoc"), }; @@ -192,6 +194,8 @@ export const AnyLocalizedForm = { if (LocalizedForm.BSH.Upright.get(glyph)) grs.push(LocalizedForm.BSH.Upright); if (LocalizedForm.BSH.Italic.get(glyph)) grs.push(LocalizedForm.BSH.Italic); if (LocalizedForm.CHU.get(glyph)) grs.push(LocalizedForm.CHU); + if (LocalizedForm.PLK.get(glyph)) grs.push(LocalizedForm.PLK); + if (LocalizedForm.TRK.get(glyph)) grs.push(LocalizedForm.TRK); if (LocalizedForm.IPPH.get(glyph)) grs.push(LocalizedForm.IPPH); if (grs.length) return grs; return null; diff --git a/packages/param/package.json b/packages/param/package.json index fb2aa51a1e..831be58fdd 100644 --- a/packages/param/package.json +++ b/packages/param/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/param", - "version": "31.6.1", + "version": "31.7.0", "private": true, "exports": { ".": "./src/index.mjs", @@ -9,6 +9,6 @@ "./metric-override": "./src/metric-override.mjs" }, "dependencies": { - "@iosevka/util": "31.6.1" + "@iosevka/util": "31.7.0" } } diff --git a/packages/util/package.json b/packages/util/package.json index 4b9b98f883..095432f5e4 100644 --- a/packages/util/package.json +++ b/packages/util/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/util", - "version": "31.6.1", + "version": "31.7.0", "private": true, "exports": { ".": "./src/index.mjs", diff --git a/params/variants.toml b/params/variants.toml index 987cfcab93..44f46e5a08 100644 --- a/params/variants.toml +++ b/params/variants.toml @@ -1610,6 +1610,10 @@ description = "Serifless T" selector.T = "serifless" selector."T/sansSerif" = "serifless" selector."T/rtailBase" = "serifless" +selector."cyrl/Tje/leftHalf" = "serifless" +selector."cyrl/Tje/leftHalf/reduced" = "serifless" +selector."cyrl/tje.upright/leftHalf" = "serifless" +selector."cyrl/tje.upright/leftHalf/reduced" = "serifless" [prime.capital-t.variants.motion-serifed] rank = 2 @@ -1617,6 +1621,10 @@ description = "Motion-Serifed T" selector.T = "motionSerifed" selector."T/sansSerif" = "serifless" selector."T/rtailBase" = "motionSerifed" +selector."cyrl/Tje/leftHalf" = "motionSerifed" +selector."cyrl/Tje/leftHalf/reduced" = "motionSerifed" +selector."cyrl/tje.upright/leftHalf" = "motionSerifed" +selector."cyrl/tje.upright/leftHalf/reduced" = "motionSerifed" [prime.capital-t.variants.serifed] rank = 3 @@ -1624,6 +1632,10 @@ description = "Serifed T" selector.T = "serifed" selector."T/sansSerif" = "serifless" selector."T/rtailBase" = "motionSerifed" +selector."cyrl/Tje/leftHalf" = "serifed" +selector."cyrl/Tje/leftHalf/reduced" = "motionSerifed" +selector."cyrl/tje.upright/leftHalf" = "serifed" +selector."cyrl/tje.upright/leftHalf/reduced" = "motionSerifed" @@ -2569,11 +2581,19 @@ tagKind = "letter" rank = 1 description = "`e` with flat crossbar" selector.e = "flatCrossbar" +selector.Schwa = "flatCrossbar" +selector.schwa = "flatCrossbar" +selector."cyrl/abk/Che" = "flatCrossbar" +selector."cyrl/abk/che" = "flatCrossbar" [prime.e.variants.rounded] rank = 2 description = "`e` with more rounded shape" selector.e = "rounded" +selector.Schwa = "flatCrossbar" +selector.schwa = "rounded" +selector."cyrl/abk/Che" = "flatCrossbar" +selector."cyrl/abk/che" = "rounded" @@ -3459,6 +3479,8 @@ selectorAffix."m/sansSerif" = "" selectorAffix."cyrl/te.italic" = "" selectorAffix."cyrl/este.italic/right" = "" selectorAffix."cyrl/tjeKomi.italic" = "" +selectorAffix."cyrl/tje.italic/base/corner" = "" +selectorAffix."cyrl/tje.italic/base/cursive" = "" selectorAffix.meng = "" [prime.m.variants-buildup.stages.body.earless-corner-double-arch] @@ -3471,6 +3493,8 @@ selectorAffix."m/sansSerif" = "earlessCornerDoubleArch" selectorAffix."cyrl/te.italic" = "" selectorAffix."cyrl/este.italic/right" = "" selectorAffix."cyrl/tjeKomi.italic" = "" +selectorAffix."cyrl/tje.italic/base/corner" = "" +selectorAffix."cyrl/tje.italic/base/cursive" = "" selectorAffix.meng = "earlessCornerDoubleArch" [prime.m.variants-buildup.stages.body.earless-rounded-double-arch] @@ -3483,6 +3507,8 @@ selectorAffix."m/sansSerif" = "earlessRoundedDoubleArch" selectorAffix."cyrl/te.italic" = "" selectorAffix."cyrl/este.italic/right" = "" selectorAffix."cyrl/tjeKomi.italic" = "" +selectorAffix."cyrl/tje.italic/base/corner" = "" +selectorAffix."cyrl/tje.italic/base/cursive" = "" selectorAffix.meng = "earlessRoundedDoubleArch" [prime.m.variants-buildup.stages.body.earless-single-arch] @@ -3495,6 +3521,8 @@ selectorAffix."m/sansSerif" = "earlessSingleArch" selectorAffix."cyrl/te.italic" = "" selectorAffix."cyrl/este.italic/right" = "" selectorAffix."cyrl/tjeKomi.italic" = "" +selectorAffix."cyrl/tje.italic/base/corner" = "" +selectorAffix."cyrl/tje.italic/base/cursive" = "" selectorAffix.meng = "earlessSingleArch" [prime.m.variants-buildup.stages.leg."*"] @@ -3512,6 +3540,8 @@ selectorAffix."cyrl/te.italic" = "" selectorAffix."cyrl/este.italic/right" = "" selectorAffix."cyrl/te.italic/descBase" = "" selectorAffix."cyrl/tjeKomi.italic" = "" +selectorAffix."cyrl/tje.italic/base/corner" = "" +selectorAffix."cyrl/tje.italic/base/cursive" = "" selectorAffix.meng = "" [prime.m.variants-buildup.stages.leg.short-leg] @@ -3525,6 +3555,8 @@ selectorAffix."cyrl/te.italic" = "" selectorAffix."cyrl/este.italic/right" = "" selectorAffix."cyrl/te.italic/descBase" = "" selectorAffix."cyrl/tjeKomi.italic" = "" +selectorAffix."cyrl/tje.italic/base/corner" = "" +selectorAffix."cyrl/tje.italic/base/cursive" = "" selectorAffix.meng = "shortLeg" [prime.m.variants-buildup.stages.tail."*"] @@ -3540,6 +3572,8 @@ selectorAffix."cyrl/te.italic" = "" selectorAffix."cyrl/este.italic/right" = "" selectorAffix."cyrl/te.italic/descBase" = "" selectorAffix."cyrl/tjeKomi.italic" = "" +selectorAffix."cyrl/tje.italic/base/corner" = "" +selectorAffix."cyrl/tje.italic/base/cursive" = "" selectorAffix.meng = "" [prime.m.variants-buildup.stages.tail.tailed] @@ -3552,6 +3586,8 @@ selectorAffix."cyrl/te.italic" = "tailed" selectorAffix."cyrl/este.italic/right" = "tailed" selectorAffix."cyrl/te.italic/descBase" = "" selectorAffix."cyrl/tjeKomi.italic" = "" +selectorAffix."cyrl/tje.italic/base/corner" = "" +selectorAffix."cyrl/tje.italic/base/cursive" = "" selectorAffix.meng = "" [prime.m.variants-buildup.stages.serifs.serifless] @@ -3565,6 +3601,8 @@ selectorAffix."cyrl/te.italic" = "serifless" selectorAffix."cyrl/este.italic/right" = "serifless" selectorAffix."cyrl/te.italic/descBase" = "serifless" selectorAffix."cyrl/tjeKomi.italic" = "serifless" +selectorAffix."cyrl/tje.italic/base/corner" = "serifless" +selectorAffix."cyrl/tje.italic/base/cursive" = "serifless" selectorAffix.meng = "serifless" [prime.m.variants-buildup.stages.serifs.top-left-serifed] @@ -3578,6 +3616,8 @@ selectorAffix."cyrl/te.italic" = "topLeftSerifed" selectorAffix."cyrl/este.italic/right" = "serifless" selectorAffix."cyrl/te.italic/descBase" = "topLeftSerifed" selectorAffix."cyrl/tjeKomi.italic" = "topLeftSerifed" +selectorAffix."cyrl/tje.italic/base/corner" = "topLeftSerifed" +selectorAffix."cyrl/tje.italic/base/cursive" = "topLeftSerifed" selectorAffix.meng = "topLeftSerifed" [prime.m.variants-buildup.stages.serifs.top-left-and-bottom-right-serifed] @@ -3591,6 +3631,8 @@ selectorAffix."cyrl/te.italic" = "topLeftAndBottomRightSerifed" selectorAffix."cyrl/este.italic/right" = "bottomRightSerifed" selectorAffix."cyrl/te.italic/descBase" = "topLeftSerifed" selectorAffix."cyrl/tjeKomi.italic" = "topLeftSerifed" +selectorAffix."cyrl/tje.italic/base/corner" = "topLeftSerifed" +selectorAffix."cyrl/tje.italic/base/cursive" = "topLeftSerifed" selectorAffix.meng = "topLeftSerifed" [prime.m.variants-buildup.stages.serifs.bottom-right-serifed] @@ -3604,6 +3646,8 @@ selectorAffix."cyrl/te.italic" = "topLeftAndBottomRightSerifed" selectorAffix."cyrl/este.italic/right" = "bottomRightSerifed" selectorAffix."cyrl/te.italic/descBase" = "topLeftSerifed" selectorAffix."cyrl/tjeKomi.italic" = "topLeftSerifed" +selectorAffix."cyrl/tje.italic/base/corner" = "topLeftSerifed" +selectorAffix."cyrl/tje.italic/base/cursive" = "topLeftSerifed" selectorAffix.meng = "serifless" [prime.m.variants-buildup.stages.serifs.serifed] @@ -3616,6 +3660,8 @@ selectorAffix."cyrl/te.italic" = "serifed" selectorAffix."cyrl/este.italic/right" = "serifed" selectorAffix."cyrl/te.italic/descBase" = "serifed" selectorAffix."cyrl/tjeKomi.italic" = "serifed" +selectorAffix."cyrl/tje.italic/base/corner" = "serifed" +selectorAffix."cyrl/tje.italic/base/cursive" = "serifed" selectorAffix.meng = "serifed" @@ -5711,6 +5757,7 @@ descriptionAffix = "straight shape" selectorAffix."grek/Lambda" = "straight" selectorAffix."grek/Lambda/sansSerif" = "straight" selectorAffix."cyrl/Yus" = "straight" +selectorAffix."Y/LambdaBase" = "straight" [prime.capital-lambda.variants-buildup.stages.body.curly] rank = 2 @@ -5718,6 +5765,7 @@ descriptionAffix = "curly shape" selectorAffix."grek/Lambda" = "curly" selectorAffix."grek/Lambda/sansSerif" = "curly" selectorAffix."cyrl/Yus" = "curly" +selectorAffix."Y/LambdaBase" = "curly" [prime.capital-lambda.variants-buildup.stages.serifs.serifless] rank = 1 @@ -5726,6 +5774,7 @@ descriptionJoiner = "without" selectorAffix."grek/Lambda" = "serifless" selectorAffix."grek/Lambda/sansSerif" = "serifless" selectorAffix."cyrl/Yus" = "" +selectorAffix."Y/LambdaBase" = "serifless" [prime.capital-lambda.variants-buildup.stages.serifs.top-serifed] rank = 2 @@ -5733,6 +5782,7 @@ descriptionAffix = "serifs at top" selectorAffix."grek/Lambda" = "topSerifed" selectorAffix."grek/Lambda/sansSerif" = "serifless" selectorAffix."cyrl/Yus" = "" +selectorAffix."Y/LambdaBase" = "baseSerifed" [prime.capital-lambda.variants-buildup.stages.serifs.base-serifed] rank = 3 @@ -5740,6 +5790,7 @@ descriptionAffix = "serifs at base" selectorAffix."grek/Lambda" = "baseSerifed" selectorAffix."grek/Lambda/sansSerif" = "serifless" selectorAffix."cyrl/Yus" = "" +selectorAffix."Y/LambdaBase" = "serifed" [prime.capital-lambda.variants-buildup.stages.serifs.tri-serifed] rank = 4 @@ -5747,6 +5798,7 @@ descriptionAffix = "serifs at both top and base" selectorAffix."grek/Lambda" = "triSerifed" selectorAffix."grek/Lambda/sansSerif" = "serifless" selectorAffix."cyrl/Yus" = "" +selectorAffix."Y/LambdaBase" = "serifed" @@ -7261,6 +7313,7 @@ selector."cyrl/Yer" = "corner" selector."cyrl/Yeri" = "corner" selector."cyrl/Nje/rightHalf" = "corner" selector."cyrl/Lje" = "corner" +selector."cyrl/Tje/rightHalf" = "corner" [prime.cyrl-capital-yeri.variants.round] rank = 2 @@ -7268,6 +7321,7 @@ selector."cyrl/Yer" = "round" selector."cyrl/Yeri" = "round" selector."cyrl/Nje/rightHalf" = "round" selector."cyrl/Lje" = "round" +selector."cyrl/Tje/rightHalf" = "round" [prime.cyrl-capital-yeri.variants.cursive] rank = 3 @@ -7275,6 +7329,7 @@ selector."cyrl/Yer" = "cursive" selector."cyrl/Yeri" = "cursive" selector."cyrl/Nje/rightHalf" = "cursive" selector."cyrl/Lje" = "cursive" +selector."cyrl/Tje/rightHalf" = "round" @@ -7292,6 +7347,7 @@ selector."cyrl/yeri" = "corner" selector."cyrl/yeri.BGR" = "round" # Bulgarian selector."cyrl/nje/rightHalf" = "corner" selector."cyrl/lje" = "corner" +selector."cyrl/tje/rightHalf" = "corner" [prime.cyrl-yeri.variants.round] rank = 2 @@ -7302,6 +7358,7 @@ selector."cyrl/yeri" = "round" selector."cyrl/yeri.BGR" = "round" selector."cyrl/nje/rightHalf" = "round" selector."cyrl/lje" = "round" +selector."cyrl/tje/rightHalf" = "round" [prime.cyrl-yeri.variants.cursive] rank = 3 @@ -7312,6 +7369,7 @@ selector."cyrl/yeri" = "cursive" selector."cyrl/yeri.BGR" = "cursive" selector."cyrl/nje/rightHalf" = "cursive" selector."cyrl/lje" = "cursive" +selector."cyrl/tje/rightHalf" = "cursive" diff --git a/tools/amend-readme/package.json b/tools/amend-readme/package.json index 6e29ec18a0..10048171ba 100644 --- a/tools/amend-readme/package.json +++ b/tools/amend-readme/package.json @@ -1,13 +1,13 @@ { "name": "@iosevka/amend-readme", - "version": "31.6.1", + "version": "31.7.0", "private": true, "exports": { ".": "./src/index.mjs" }, "dependencies": { "@iarna/toml": "^2.2.5", - "@iosevka/param": "31.6.1", - "@unicode/unicode-15.1.0": "^1.5.2" + "@iosevka/param": "31.7.0", + "@unicode/unicode-16.0.0": "^1.0.0" } } diff --git a/tools/data-export/package.json b/tools/data-export/package.json index 7643c3dfe9..117296b756 100644 --- a/tools/data-export/package.json +++ b/tools/data-export/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/data-export", - "version": "31.6.1", + "version": "31.7.0", "private": true, "exports": { ".": "./src/index.mjs", @@ -10,8 +10,8 @@ }, "dependencies": { "@iarna/toml": "^2.2.5", - "@iosevka/param": "31.6.1", - "@unicode/unicode-15.1.0": "^1.5.2", + "@iosevka/param": "31.7.0", + "@unicode/unicode-16.0.0": "^1.0.0", "cldr": "^7.5.0" } } diff --git a/tools/data-export/src/coverage-export/block-data.mjs b/tools/data-export/src/coverage-export/block-data.mjs index 5b4b841fb4..838802ef5f 100644 --- a/tools/data-export/src/coverage-export/block-data.mjs +++ b/tools/data-export/src/coverage-export/block-data.mjs @@ -1,16 +1,15 @@ -import UnicodeDataIndex from "@unicode/unicode-15.1.0"; +import UnicodeDataIndex from "@unicode/unicode-16.0.0"; export async function collectBlockData() { const BlockData = [ [[0xe0a0, 0xe0df], "Private Use Area — Powerline"], [[0xee00, 0xee0f], "Private Use Area — Progress Bar"], [[0xef10, 0xef1f], "Private Use Area — Iosevka Private Dingbats"], - [[0x1cc00, 0x1ceaf], "Symbols for Legacy Computing Supplement (Proposed)"], ]; for (const id of UnicodeDataIndex.Block) { if (!id || /Private_Use_Area/.test(id) || /undefined/.test(id)) continue; - const rangesModule = await import(`@unicode/unicode-15.1.0/Block/${id}/ranges.js`); + const rangesModule = await import(`@unicode/unicode-16.0.0/Block/${id}/ranges.js`); const rg = rangesModule.default; BlockData.push([[rg[0].begin, rg[0].end - 1], id.replace(/_/g, " ")]); } diff --git a/tools/data-export/src/coverage-export/char-data.mjs b/tools/data-export/src/coverage-export/char-data.mjs index 3faf941710..8885fb84f5 100644 --- a/tools/data-export/src/coverage-export/char-data.mjs +++ b/tools/data-export/src/coverage-export/char-data.mjs @@ -2,8 +2,8 @@ import fs from "fs"; import path from "path"; import url from "url"; -import ugc from "@unicode/unicode-15.1.0/General_Category/index.js"; -import ucdNames from "@unicode/unicode-15.1.0/Names/index.js"; +import ugc from "@unicode/unicode-16.0.0/General_Category/index.js"; +import ucdNames from "@unicode/unicode-16.0.0/Names/index.js"; const __dirname = url.fileURLToPath(new URL(".", import.meta.url)); diff --git a/tools/generate-samples/package.json b/tools/generate-samples/package.json index 500a17177a..dae7d7c9e4 100644 --- a/tools/generate-samples/package.json +++ b/tools/generate-samples/package.json @@ -1,11 +1,11 @@ { "name": "@iosevka/generate-samples", - "version": "31.6.1", + "version": "31.7.0", "private": true, "exports": { ".": "./src/index.mjs" }, "dependencies": { - "@iosevka/data-export": "31.6.1" + "@iosevka/data-export": "31.7.0" } } diff --git a/tools/misc/package.json b/tools/misc/package.json index de9f02503a..fcda5ee124 100644 --- a/tools/misc/package.json +++ b/tools/misc/package.json @@ -1,10 +1,10 @@ { "name": "@iosevka/misc", - "version": "31.6.1", + "version": "31.7.0", "private": true, "dependencies": { "semver": "^7.6.3", "wawoff2": "^2.0.1", - "@iosevka/util": "31.6.1" + "@iosevka/util": "31.7.0" } } diff --git a/tools/misc/src/copy-char-name-to-markdown.mjs b/tools/misc/src/copy-char-name-to-markdown.mjs index eeb17b8405..7a7afccbaa 100644 --- a/tools/misc/src/copy-char-name-to-markdown.mjs +++ b/tools/misc/src/copy-char-name-to-markdown.mjs @@ -1,6 +1,6 @@ "use strict"; -import ucdNames from "@unicode/unicode-15.1.0/Names/index.js"; +import ucdNames from "@unicode/unicode-16.0.0/Names/index.js"; const codes = process.argv .slice(2) diff --git a/tools/misc/src/generate-ttfa-ranges.mjs b/tools/misc/src/generate-ttfa-ranges.mjs index e0119663dc..1e63252c61 100644 --- a/tools/misc/src/generate-ttfa-ranges.mjs +++ b/tools/misc/src/generate-ttfa-ranges.mjs @@ -70,7 +70,7 @@ class InUnicodeDataSet { async load() { if (this.dataset) return; - const d = (await import(`@unicode/unicode-15.1.0/${this.subpath}/code-points.js`)).default; + const d = (await import(`@unicode/unicode-16.0.0/${this.subpath}/code-points.js`)).default; this.dataset = new Set(d); }