Repository: simple-icons/simple-icons
Pull request #10977 (2024-05-20 10:55:24)

Updates to README ahead of `v12`.
This PR serves two functions:
- Split extensions to 3rd Party tooling out into their own category.
- Remove libraries that have not kept up to date with the latest releases.

## Removed Extensions

> [!IMPORTANT]\
> Removal of extensions from the list just means we don't 'endorse' them, given they are not keeping up with our legal obligations to remove icons when requested by brands. They can be added back in as/when they become compliant again. Maintainers of these extensions have had notice since v10 of this shift.

- Angular
- Drupal
- Flutter
- Hexo
- Home Assistant
- Java
- Jetpack Compose
- Leptos
- Python
- Solid
- Vue
- WordPress

adamrusted: @uncenter @LitoMore - have just amended to include changes to the tests.

Patch:
diff --git a/README.md b/README.md
index d40bd8f8..d6ab37b1 100644
--- a/README.md
+++ b/README.md
@@ -150,43 +150,39 @@ echo file_get_contents('path/to/package/icons/simpleicons.svg');
 
 ## Third-Party Extensions
 
-| Extension | Author | License | Simple Icons Version |
+The below are known extensions to third-party tools.
+
+| Extension | Author |
+| :- | :- |
+| [Blender add-on](https://github.com/mondeja/simple-icons-blender) <img src="https://cdn.simpleicons.org/blender/000/fff" alt="Blender" align=left width=24 height=24> | [@mondeja](https://github.com/mondeja) |
+| [Boxy SVG library](https://boxy-svg.com/ideas/298/simple-icons-library-provider) <img src="https://cdn.simpleicons.org/boxysvg/000/fff" alt="Boxy SVG" align=left width=24 height=24> | [@Jarek](https://boxy-svg.com/profiles/0000000000/jarek) |
+| [Drawio library](https://github.com/mondeja/simple-icons-drawio) <img src="https://cdn.simpleicons.org/diagramsdotnet/000/fff" alt="Drawio" align=left width=24 height=24> | [@mondeja](https://github.com/mondeja) |
+| [Figma plugin](https://www.figma.com/community/plugin/1149614463603005908/Simple-Icons) <img src="https://cdn.simpleicons.org/figma/000/fff" alt="Figma" align=left width=24 height=24> | [@LitoMore](https://github.com/LitoMore) |
+| [Miro app](https://miro.com/marketplace/brand-icons/) <img src="https://cdn.simpleicons.org/miro/000/fff" alt="Miro" align=left width=24 height=24> | [@LitoMore](https://github.com/LitoMore) |
+| [Raycast extension](https://www.raycast.com/litomore/simple-icons) <img src="https://cdn.simpleicons.org/raycast/000/fff" alt="Raycast" align=left width=24 height=24> | [@LitoMore](https://github.com/LitoMore) |
+| [Stream Deck icon pack](https://github.com/mackenly/simple-icons-stream-deck) <img src="https://cdn.simpleicons.org/elgato/000/fff" alt="Stream Deck" align=left width=24 height=24> | [@mackenly](https://github.com/mackenly) | ![](https://img.shields.io/github/license/mackenly/simple-icons-stream-deck) | ![](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fraw.githubusercontent.com%2Fmackenly%2Fsimple-icons-stream-deck%2Fmain%2Ftemplate%2Fmanifest.json&query=Version&logo=simpleicons&label=version) |
+| [Webflow app](https://webflow.com/apps/detail/simple-icons) <img src="https://cdn.simpleicons.org/webflow/000/fff" alt="Webflow" align=left width=24 height=24> | [@diegoliv](https://github.com/diegoliv) |
+
+Maintain an extension? [Submit a PR][open-pr] to include it in the list above.
+
+## Third-Party Libraries
+
+The below are known third-party libraries for use in your own projects. We only keep items in the list that are at least up to date with our previous major version.
+
+| Library | Author | License | Simple Icons Version |
 | :-- | :-- | :-: | :-: |
-| [Angular module](https://github.com/avmaisak/ngx-simple-icons) <img src="https://cdn.simpleicons.org/angular/000/fff" alt="Angular" align=left width=24 height=24> | [@avmaisak](https://github.com/avmaisak) | ![](https://img.shields.io/github/license/avmaisak/ngx-simple-icons) | [![v6.18.0](https://img.shields.io/static/v1?label=version&message=v6.18.0&logo=simpleicons&color=red)](https://github.com/simple-icons/simple-icons/tree/6.18.0) |
 | [Blazor Nuget package](https://github.com/TimeWarpEngineering/timewarp-simple-icons) <img src="https://cdn.simpleicons.org/blazor/000/fff" alt="Blazor" align=left width=24 height=24> | [@TimeWarpEngineering](https://github.com/TimeWarpEngineering)  | ![](https://img.shields.io/github/license/TimeWarpEngineering/timewarp-simple-icons) | ![](https://img.shields.io/badge/dynamic/xml?url=https%3A%2F%2Fraw.githubusercontent.com%2FTimeWarpEngineering%2Ftimewarp-simple-icons%2Fmain%2Fsource%2Ftimewarp-simple-icons%2Ftimewarp-simple-icons.csproj&query=%2FProject%2FPropertyGroup%2FVersion&logo=simpleicons&label=version) |
-| [Blender add-on](https://github.com/mondeja/simple-icons-blender) <img src="https://cdn.simpleicons.org/blender/000/fff" alt="Blender" align=left width=24 height=24> | [@mondeja](https://github.com/mondeja) | ![](https://img.shields.io/github/license/mondeja/simple-icons-blender) | ![](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fraw.githubusercontent.com%2Fmondeja%2Fsimple-icons-blender%2Fdevelop%2Fpackage.json&query=%24..%5B'simple-icons'%5D&logo=simpleicons&label=version) |
-| [Boxy SVG library](https://boxy-svg.com/ideas/298/simple-icons-library-provider) <img src="https://cdn.simpleicons.org/boxysvg/000/fff" alt="Boxy SVG" align=left width=24 height=24> | [@Jarek](https://boxy-svg.com/profiles/0000000000/jarek) | | |
-| [Drawio library](https://github.com/mondeja/simple-icons-drawio) <img src="https://cdn.simpleicons.org/diagramsdotnet/000/fff" alt="Drawio" align=left width=24 height=24> | [@mondeja](https://github.com/mondeja) | ![](https://img.shields.io/github/license/mondeja/simple-icons-drawio) | ![](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fraw.githubusercontent.com%2Fmondeja%2Fsimple-icons-drawio%2Fdevelop%2Fpackage.json&query=%24..%5B'simple-icons'%5D&logo=simpleicons&label=version) |
-| [Drupal module](https://www.drupal.org/project/simple_icons) <img src="https://cdn.simpleicons.org/drupal/000/fff" alt="Drupal" align=left width=24 height=24> | [Phil Wolstenholme](https://www.drupal.org/u/phil-wolstenholme) | ![](https://img.shields.io/badge/license-GPL_v2-blue.svg) | ![](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fgit.drupalcode.org%2Fproject%2Fsimple_icons%2F-%2Fraw%2F8.x-1.x%2Fpackage-lock.json%3Fref_type%3Dheads&query=%24..%5B'simple-icons'%5D.version&logo=simpleicons&label=version) |
-| [Figma plugin](https://www.figma.com/community/plugin/1149614463603005908/Simple-Icons) <img src="https://cdn.simpleicons.org/figma/000/fff" alt="Figma" align=left width=24 height=24> | [@LitoMore](https://github.com/LitoMore) | ![](https://img.shields.io/github/license/litomore/simple-icons-figma) | ![](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fraw.githubusercontent.com%2Fsimple-icons%2Fsimple-icons%2Fmaster%2Fpackage.json&query=%24.version&logo=simpleicons&label=version)  |
-| [Flutter package](https://pub.dev/packages/simple_icons) <img src="https://cdn.simpleicons.org/flutter/000/fff" alt="Flutter" align=left width=24 height=24> | [@jlnrrg](https://github.com/jlnrrg) | ![](https://img.shields.io/github/license/jlnrrg/simple_icons) | ![](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fraw.githubusercontent.com%2Fjlnrrg%2Fsimple_icons%2Fmaster%2Fvendor%2Fpackage-lock.json&query=%24..%5B'node_modules%2Fsimple-icons-font'%5D.version&logo=simpleicons&label=version) |
 | [Framer component](https://github.com/LitoMore/simple-icons-framer) <img src="https://cdn.simpleicons.org/framer/000/fff" alt="Framer" align=left width=24 height=24> | [@LitoMore](https://github.com/LitoMore) | ![](https://img.shields.io/github/license/LitoMore/simple-icons-framer) | ![](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fraw.githubusercontent.com%2Fsimple-icons%2Fsimple-icons%2Fmaster%2Fpackage.json&query=%24.version&logo=simpleicons&label=version) |
-| [Hexo plugin](https://github.com/nidbCN/hexo-simpleIcons) <img src="https://cdn.simpleicons.org/hexo/000/fff" alt="Hexo" align=left width=24 height=24> | [@nidbCN](https://github.com/nidbCN/) | ![](https://img.shields.io/github/license/nidbCN/hexo-simpleIcons) | ![](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fraw.githubusercontent.com%2FnidbCN%2Fhexo-simpleIcons%2Fmaster%2Fpackage.json&query=%24..%5B'simple-icons'%5D&logo=simpleicons&label=version) |
-| [Home Assistant plugin](https://github.com/vigonotion/hass-simpleicons) <img src="https://cdn.simpleicons.org/homeassistant/000/fff" alt="Home Assistant" align=left width=24 height=24> | [@vigonotion](https://github.com/vigonotion/) | ![](https://img.shields.io/github/license/vigonotion/hass-simpleicons) | [![v7.14.0](https://img.shields.io/static/v1?label=version&message=v7.14.0&logo=simpleicons&color=red)](https://github.com/simple-icons/simple-icons/tree/7.14.0) |
 | [Hugo module](https://github.com/foo-dogsquared/hugo-mod-simple-icons) <img src="https://cdn.simpleicons.org/hugo/000/fff" alt="Hugo" align=left width=24 height=24> | [@foo-dogsquared](https://github.com/foo-dogsquared) | ![](https://img.shields.io/github/license/foo-dogsquared/hugo-mod-simple-icons) | ![](https://img.shields.io/github/v/tag/foo-dogsquared/hugo-mod-simple-icons?logo=simpleicons&label=version) |
-| [Java library](https://github.com/silentsoft/simpleicons4j) <img src="https://cdn.simpleicons.org/openjdk/000/fff" alt="OpenJDK" align=left width=24 height=24> | [@silentsoft](https://github.com/silentsoft) | ![](https://img.shields.io/github/license/silentsoft/simpleicons4j) | ![](https://img.shields.io/badge/dynamic/xml?url=https%3A%2F%2Fraw.githubusercontent.com%2Fsilentsoft%2Fsimpleicons4j%2Fmain%2Fpom.xml&query=%2A%5Blocal-name%28.%29%3D%27project%27%5D%2F%2F%2A%5Blocal-name%28.%29%3D%27dependencies%27%5D%2F%2F%2A%5Blocal-name%28.%29%3D%27dependency%27%20and%20%2A%5Blocal-name%28.%29%3D%27artifactId%27%20and%20text%28%29%3D%27simple-icons%27%5D%5D%2F%2F%2A%5Blocal-name%28.%29%3D%27version%27%5D%2F%2Ftext%28%29&logo=simpleicons&label=version) |
-| [Jetpack Compose library](https://github.com/DevSrSouza/compose-icons) <img src="https://cdn.simpleicons.org/jetpackcompose/000/fff" alt="Jetpack Compose" align=left width=24 height=24> | [@DevSrSouza](https://github.com/devsrsouza/) | ![](https://img.shields.io/github/license/DevSrSouza/compose-icons) | [![v4.14.0](https://img.shields.io/static/v1?label=version&message=v4.14.0&logo=simpleicons&color=red)](https://github.com/simple-icons/simple-icons/tree/4.14.0) |
 | [Kirby plugin](https://github.com/runxel/kirby3-simpleicons) <img src="https://cdn.simpleicons.org/kirby/000/fff" alt="Kirby" align=left width=24 height=24> | [@runxel](https://github.com/runxel) | ![](https://img.shields.io/github/license/runxel/kirby3-simpleicons) | ![](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fraw.githubusercontent.com%2Frunxel%2Fkirby3-simpleicons%2Fmaster%2Fcomposer.json&query=%24..%5B'simple-icons%2Fsimple-icons'%5D&logo=simpleicons&label=version) |
 | [LaTeX package](https://github.com/ineshbose/simple-icons-latex) <img src="https://cdn.simpleicons.org/latex/000/fff" alt="LaTeX" align=left width=24 height=24> | [@ineshbose](https://github.com/ineshbose) | ![](https://img.shields.io/github/license/ineshbose/simple-icons-latex) | ![](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fraw.githubusercontent.com%2Fineshbose%2Fsimple-icons-latex%2Fdevelop%2Fpackage.json&query=%24..%5B'simple-icons-font'%5D&logo=simpleicons&label=version) |
 | [Laravel package](https://github.com/ublabs/blade-simple-icons) <img src="https://cdn.simpleicons.org/laravel/000/fff" alt="Laravel" align=left width=24 height=24> | [@adrian-ub](https://github.com/adrian-ub) | ![](https://img.shields.io/github/license/ublabs/blade-simple-icons) | ![](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fraw.githubusercontent.com%2Fsimple-icons%2Fsimple-icons%2Fmaster%2Fpackage.json&query=%24.version&logo=simpleicons&label=version) |
-| [Leptos crate](https://github.com/Carlosted/leptos-icons) <img src="https://cdn.simpleicons.org/leptos/000/fff" alt="Leptos" align=left width=24 height=24> | [@Carlosted](https://github.com/Carlosted)  | ![](https://img.shields.io/github/license/Carlosted/leptos-icons) | [![v9.14.0](https://img.shields.io/static/v1?label=version&message=v9.14.0&logo=simpleicons&color=yellow)](https://github.com/simple-icons/simple-icons/tree/9.14.0) |
-| [Miro app](https://miro.com/marketplace/brand-icons/) <img src="https://cdn.simpleicons.org/miro/000/fff" alt="Miro" align=left width=24 height=24> | [@LitoMore](https://github.com/LitoMore) | ![](https://img.shields.io/github/license/LitoMore/simple-icons-miro) | ![](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fraw.githubusercontent.com%2Fsimple-icons%2Fsimple-icons%2Fmaster%2Fpackage.json&query=%24.version&logo=simpleicons&label=version) |
-| [Python package](https://github.com/sachinraja/simple-icons-py) <img src="https://cdn.simpleicons.org/python/000/fff" alt="Python" align=left width=24 height=24> | [@sachinraja](https://github.com/sachinraja) | ![](https://img.shields.io/github/license/sachinraja/simple-icons-py) | [![v7.21.0](https://img.shields.io/static/v1?label=version&message=v7.21.0&logo=simpleicons&color=red)](https://github.com/simple-icons/simple-icons/tree/7.21.0) |
-| [Raycast extension](https://www.raycast.com/litomore/simple-icons) <img src="https://cdn.simpleicons.org/raycast/000/fff" alt="Raycast" align=left width=24 height=24> | [@LitoMore](https://github.com/LitoMore) | ![](https://img.shields.io/github/license/raycast/extensions) | ![](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fraw.githubusercontent.com%2Fsimple-icons%2Fsimple-icons%2Fmaster%2Fpackage.json&query=%24.version&logo=simpleicons&label=version) |
 | [React package](https://github.com/icons-pack/react-simple-icons) <img src="https://cdn.simpleicons.org/react/000/fff" alt="React" align=left width=24 height=24> | [@wootsbot](https://github.com/wootsbot) | ![](https://img.shields.io/github/license/icons-pack/react-simple-icons) | ![](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fraw.githubusercontent.com%2Ficons-pack%2Freact-simple-icons%2Fmain%2Fpackage.json&query=%24..%5B'simple-icons'%5D&logo=simpleicons&label=version) |
 | [Ruby gem](https://rubygems.org/gems/simple-icons-rails) <img src="https://cdn.simpleicons.org/rubygems/000/fff" alt="Ruby" align=left width=24 height=24> | [@thepew](https://github.com/the-pew-inc) | ![](https://img.shields.io/github/license/the-pew-inc/simple-icons-rails) | ![](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fraw.githubusercontent.com%2Fsimple-icons%2Fsimple-icons%2Fmaster%2Fpackage.json&query=%24.version&logo=simpleicons&label=version) |
-| [Solid package](https://github.com/x64Bits/solid-icons) <img src="https://cdn.simpleicons.org/solid/000/fff" alt="Solid" align=left width=24 height=24> | [@x64Bits](https://github.com/x64Bits) | ![](https://img.shields.io/github/license/x64Bits/solid-icons) | [![v9.0.0](https://img.shields.io/static/v1?label=version&message=v9.0.0&logo=simpleicons&color=yellow)](https://github.com/simple-icons/simple-icons/tree/9.0.0) |
-| [Stream Deck icon pack](https://github.com/mackenly/simple-icons-stream-deck) <img src="https://cdn.simpleicons.org/elgato/000/fff" alt="Stream Deck" align=left width=24 height=24> | [@mackenly](https://github.com/mackenly) | ![](https://img.shields.io/github/license/mackenly/simple-icons-stream-deck) | ![](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fraw.githubusercontent.com%2Fmackenly%2Fsimple-icons-stream-deck%2Fmain%2Ftemplate%2Fmanifest.json&query=Version&logo=simpleicons&label=version) |
 | [Svelte package](https://github.com/icons-pack/svelte-simple-icons) <img src="https://cdn.simpleicons.org/svelte/000/fff" alt="Svelte" align=left width=24 height=24> | [@wootsbot](https://github.com/wootsbot) | ![](https://img.shields.io/github/license/icons-pack/svelte-simple-icons) | ![](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fraw.githubusercontent.com%2Ficons-pack%2Fsvelte-simple-icons%2Fmain%2Fpackage.json&query=%24..%5B'simple-icons'%5D&logo=simpleicons&label=version) |
 | [Vue 3 package](https://github.com/wyatt-herkamp/vue3-simple-icons) <img src="https://cdn.simpleicons.org/vuedotjs/000/fff" alt="Vue" align=left width=24 height=24> | [@wyatt-herkamp](https://github.com/wyatt-herkamp) | ![](https://img.shields.io/github/license/wyatt-herkamp/vue3-simple-icons) | ![](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fraw.githubusercontent.com%2Fwyatt-herkamp%2Fvue3-simple-icons%2Fmain%2Fsimple-icons.json&query=simpleIconsVersion&logo=simpleicons&label=version) |
-| [Vue package](https://github.com/mainvest/vue-simple-icons) <img src="https://cdn.simpleicons.org/vuedotjs/000/fff" alt="Vue" align=left width=24 height=24> | [@noahlitvin](https://github.com/noahlitvin) | ![](https://img.shields.io/github/license/mainvest/vue-simple-icons) | ![](https://img.shields.io/badge/dynamic/yaml?url=https%3A%2F%2Fraw.githubusercontent.com%2Fmainvest%2Fvue-simple-icons%2Fmaster%2Fpackage.json&query=%24.version&logo=simpleicons&label=version) |
-| [Webflow app](https://webflow.com/apps/detail/simple-icons) <img src="https://cdn.simpleicons.org/webflow/000/fff" alt="Webflow" align=left width=24 height=24> | [@diegoliv](https://github.com/diegoliv) | ![](https://img.shields.io/github/license/diegoliv/wf-simpleicons-search) | ![](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fraw.githubusercontent.com%2Fdiegoliv%2Fwf-simpleicons-search%2Fmain%2Fpackage.json&query=%24..%5B'simple-icons'%5D&logo=simpleicons&label=version) |
-| [WordPress plugin](https://wordpress.org/plugins/simple-icons/) <img src="https://cdn.simpleicons.org/wordpress/000/fff" alt="WordPress" align=left width=24 height=24> | [@tjtaylo](https://github.com/tjtaylo) | ![](https://img.shields.io/badge/license-GPL_v2-blue.svg) | [![v4.25.0](https://img.shields.io/static/v1?label=version&message=v4.25.0&logo=simpleicons&color=red)](https://github.com/simple-icons/simple-icons/tree/4.25.0) |
 
-> [!IMPORTANT]\
-> From our next scheduled major release (v12, releasing on May 26, 2024), we will begin removing third-party extensions from the above list that are not up to date with at least our previous major release.\
-> For example, when v12 is released, we will remove any extensions that don't support `v11.0.0` or higher.\
-> Please create a PR to update the version number of your extension in this README following each update of your extension.
+Maintain a library? [Submit a PR][open-pr] to include it in the list above.
 
 ## Contribute
 
@@ -198,6 +194,7 @@ echo file_get_contents('path/to/package/icons/simpleicons.svg');
 Information describing how to contribute can be found in the file [CONTRIBUTING.md](https://github.com/simple-icons/simple-icons/blob/develop/CONTRIBUTING.md)
 
 [slug]: https://github.com/simple-icons/simple-icons/blob/master/slugs.md
+[open-pr]: https://github.com/simple-icons/simple-icons/compare
 
 ## Contributors
 
diff --git a/sdk.mjs b/sdk.mjs
index a0cfe9cd..2e80cf4c 100644
--- a/sdk.mjs
+++ b/sdk.mjs
@@ -196,8 +196,39 @@ export const getThirdPartyExtensions = async (
   ),
 ) =>
   normalizeNewlines(await fs.readFile(readmePath, 'utf8'))
-    .split('## Third-Party Extensions\n\n')[1]
-    .split('\n\n', 1)[0]
+    .split('## Third-Party Extensions')[1]
+    .split('\n\n')[2]
+    .split('\n')
+    .slice(2)
+    .map((line) => {
+      let [module, author] = line.split(' | ');
+      module = module.split('<img src="')[0];
+      return {
+        module: {
+          name: /\[(.+)]/.exec(module)[1],
+          url: /\((.+)\)/.exec(module)[1],
+        },
+        author: {
+          name: /\[(.+)]/.exec(author)[1],
+          url: /\((.+)\)/.exec(author)[1],
+        },
+      };
+    });
+
+/**
+ * Get information about third party libraries from the README table.
+ * @param {String} readmePath Path to the README file
+ * @returns {Promise<ThirdPartyExtension[]>} Information about third party libraries
+ */
+export const getThirdPartyLibraries = async (
+  readmePath = path.join(
+    getDirnameFromImportMeta(import.meta.url),
+    'README.md',
+  ),
+) =>
+  normalizeNewlines(await fs.readFile(readmePath, 'utf8'))
+    .split('## Third-Party Libraries')[1]
+    .split('\n\n')[2]
     .split('\n')
     .slice(2)
     .map((line) => {


Test patch:
diff --git a/tests/docs.test.js b/tests/docs.test.js
index 9d79ed91..9c5afeca 100644
--- a/tests/docs.test.js
+++ b/tests/docs.test.js
@@ -1,6 +1,6 @@
 import {strict as assert} from 'node:assert';
 import {test} from 'mocha';
-import {getThirdPartyExtensions} from '../sdk.mjs';
+import {getThirdPartyExtensions, getThirdPartyLibraries} from '../sdk.mjs';
 
 test('README third party extensions must be alphabetically sorted', async () => {
   const thirdPartyExtensions = await getThirdPartyExtensions();
@@ -17,3 +17,19 @@ test('README third party extensions must be alphabetically sorted', async () =>
     'Wrong alphabetical order of third party extensions in README.',
   );
 });
+
+test('README third party libraries must be alphabetically sorted', async () => {
+  const thirdPartyLibraries = await getThirdPartyLibraries();
+  assert.ok(thirdPartyLibraries.length > 0);
+
+  const thirdPartyLibrariesNames = thirdPartyLibraries.map(
+    (library) => library.module.name,
+  );
+
+  const expectedOrder = [...thirdPartyLibrariesNames].sort();
+  assert.deepEqual(
+    thirdPartyLibrariesNames,
+    expectedOrder,
+    'Wrong alphabetical order of third party libraries in README.',
+  );
+});