diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 000000000..05bb8f5b6 --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,11 @@ +{ + "name": "Material for MkDocs - VS Code dev container", + "image": "mcr.microsoft.com/devcontainers/typescript-node:0-18", + "features": { + "ghcr.io/devcontainers/features/python:1": { + "installTools": true, + "version": "3.11" + } + }, + "postCreateCommand": "pip install -e . && pip install mkdocs-minify-plugin mkdocs-redirects && npm install && npm run build" +} diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index fd28646aa..e10aecede 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -29,7 +29,7 @@ on: - published env: - NODE_VERSION: 14.x + NODE_VERSION: 18.x PYTHON_VERSION: 3.x permissions: @@ -144,9 +144,11 @@ jobs: - name: Check Docker image working-directory: /tmp + env: + REPO_FULL_NAME: '${{ github.event.repository.full_name }}' run: | - docker run --rm -i -v ${PWD}:/docs ${{ github.event.repository.full_name }}:${{ steps.meta.outputs.version }} new . - docker run --rm -i -v ${PWD}:/docs ${{ github.event.repository.full_name }}:${{ steps.meta.outputs.version }} build + docker run --rm -i -v ${PWD}:/docs ${REPO_FULL_NAME,,}:${{ steps.meta.outputs.version }} new . + docker run --rm -i -v ${PWD}:/docs ${REPO_FULL_NAME,,}:${{ steps.meta.outputs.version }} build - name: Set platforms if: github.event_name == 'release' diff --git a/.github/workflows/documentation.yml b/.github/workflows/documentation.yml index 4be118233..0b97712a6 100644 --- a/.github/workflows/documentation.yml +++ b/.github/workflows/documentation.yml @@ -46,12 +46,17 @@ jobs: with: python-version: ${{ env.PYTHON_VERSION }} + - name: Set the date environmental variable + run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV + - name: Set up build cache uses: actions/cache@v3 id: cache with: - key: ${{ runner.os }}-${{ hashFiles('.cache/**') }} + key: mkdocs-material-${{ env.cache_id }} path: .cache + restore-keys: | + mkdocs-material- - name: Install dependencies run: sudo apt-get install pngquant diff --git a/.vscode/settings.json b/.vscode/settings.json index 7e278e9a6..36ef96f40 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -17,8 +17,5 @@ "tag:yaml.org,2002:python/name:materialx.emoji.to_svg", "tag:yaml.org,2002:python/name:materialx.emoji.twemoji", "tag:yaml.org,2002:python/name:pymdownx.superfences.fence_code_format" - ], - "cSpell.words": [ - "mkdocs" ] } diff --git a/CHANGELOG b/CHANGELOG index aa370005f..d44e31e45 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,17 +1,68 @@ +mkdocs-material-9.1.12+insiders-4.34.0 (2023-05-14) + + * Added support for new overflow mode to auto-fit text in social plugin + * Reduced subtle rendering bugs in (code) annotations due to subpixel rounding + * Improved print styles for (code) annotation lists + * Improved performance of social plugin, now 3x as fast + * Improved interop of typeset plugin with MkDocstrings + * Fixed logo location for variants of default template in social plugin + * Fixed #5446: Built-in typeset plugin picks up headings in code blocks + +mkdocs-material-9.1.12+insiders-4.33.2 (2023-05-12) + + * Fixed #5508: Social plugin crashes trying to copy cards on Docker/Windows + * Fixed #5507: Social plugin crashes on serve when layouts folder doesn't exist + * Fixed #5505: Social plugin trying to resolve logo in wrong location + * Fixed #5496: Annotations with nested lists incorrectly mounted + * Fixed #5493: Social plugin crashes on Python 3.8 + +mkdocs-material-9.1.12 (2023-05-12) + + * Updated Bengali (Bangla) translations + * Fixed #5503: Docker image publish errors on uppercase characters + * Fixed #5407: Auto-pause media when in hidden content tabs + +mkdocs-material-9.1.11+insiders-4.33.1 (2023-05-09) + + * Added support for SVG background images in social plugin + +mkdocs-material-9.1.11 (2023-05-08) + + * Fixed #5487: Social plugin crashes without options (9.1.10 regression) + +mkdocs-material-9.1.10+insiders-4.33.0 (2023-05-08) + + * Added support for custom layouts for social plugin + * Added support for background images for social cards + +mkdocs-material-9.1.10 (2023-05-08) + + * Added cards_layout_options setting for social cards + * Deprecated cards_color and cards_font setting for social cards + +mkdocs-material-9.1.9 (2023-05-02) + + * Added Telugu, Kannada and Sanskrit translations + * Fixed #5428: Fixed margins for light/dark mode images in figures + * Fixed #5420: Social plugin crashing for some specific Google Fonts + * Fixed #5160: Instant loading makes code annotations jump (9.1.1 regression) + * Fixed #4920: Social plugin not loading logo from custom icon set + * Fixed social plugin crashing when only code font is specified + mkdocs-material-9.1.8 (2023-04-24) -- Fixed #5417: Theme breaks when palette is not defined (9.1.7 regression) + * Fixed #5417: Theme breaks when palette is not defined (9.1.7 regression) mkdocs-material-9.1.7+insiders-4.32.6 (2023-04-22) -- Fixed #5336: Interplay of blog plugin with git-revision-date-localized + * Fixed #5336: Interplay of blog plugin with git-revision-date-localized mkdocs-material-9.1.7 (2023-04-22) -- Updated Persian (Farsi) and Turkish translations -- Fixed #5401: Added missing flag to disable built-in tags plugin -- Fixed #5206: Ensure defaults are set for primary and accent colors -- Fixed unnecessary inclusion of palette CSS when unused + * Updated Persian (Farsi) and Turkish translations + * Fixed #5401: Added missing flag to disable built-in tags plugin + * Fixed #5206: Ensure defaults are set for primary and accent colors + * Fixed unnecessary inclusion of palette CSS when unused mkdocs-material-9.1.6+insiders-4.32.5 (2023-04-07) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 9bcb6bcef..80d9e267b 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -42,10 +42,10 @@ it is: ### Missing translations? -Material for MkDocs supports 50+ languages with the help of community +Material for MkDocs supports 60+ languages with the help of community contributions. When new features are added, sometimes, new translations are necessary as well. It's impossible for the maintainers of the project to update -all translations (we just don't speak 50+ languages), so we have to rely on +all translations (we just don't speak 60+ languages), so we have to rely on our contributors to update translations incrementally. This process is pretty simple, so if you find a translation missing in your language, follow these guidelines: diff --git a/README.md b/README.md index 2aeaaa468..4d512b522 100644 --- a/README.md +++ b/README.md @@ -39,7 +39,7 @@

Write your documentation in Markdown and create a professional static site for your Open Source or commercial project in minutes – searchable, customizable, - more than 50 languages, for all devices. + more than 60 languages, for all devices.

diff --git a/docs/assets/screenshots/social-cards-accent.png b/docs/assets/screenshots/social-cards-accent.png new file mode 100644 index 000000000..8531f694e Binary files /dev/null and b/docs/assets/screenshots/social-cards-accent.png differ diff --git a/docs/assets/screenshots/social-cards-debug.png b/docs/assets/screenshots/social-cards-debug.png new file mode 100644 index 000000000..bef1c0a91 Binary files /dev/null and b/docs/assets/screenshots/social-cards-debug.png differ diff --git a/docs/assets/screenshots/social-cards-invert.png b/docs/assets/screenshots/social-cards-invert.png new file mode 100644 index 000000000..156a4e968 Binary files /dev/null and b/docs/assets/screenshots/social-cards-invert.png differ diff --git a/docs/assets/screenshots/social-cards-layer-0.png b/docs/assets/screenshots/social-cards-layer-0.png new file mode 100644 index 000000000..063d5f970 Binary files /dev/null and b/docs/assets/screenshots/social-cards-layer-0.png differ diff --git a/docs/assets/screenshots/social-cards-layer-1.png b/docs/assets/screenshots/social-cards-layer-1.png new file mode 100644 index 000000000..af66e76c0 Binary files /dev/null and b/docs/assets/screenshots/social-cards-layer-1.png differ diff --git a/docs/assets/screenshots/social-cards-layer-2.png b/docs/assets/screenshots/social-cards-layer-2.png new file mode 100644 index 000000000..05efa9d65 Binary files /dev/null and b/docs/assets/screenshots/social-cards-layer-2.png differ diff --git a/docs/assets/screenshots/social-cards-layer-3.png b/docs/assets/screenshots/social-cards-layer-3.png new file mode 100644 index 000000000..1511b99f8 Binary files /dev/null and b/docs/assets/screenshots/social-cards-layer-3.png differ diff --git a/docs/assets/screenshots/social-cards-layer-4.png b/docs/assets/screenshots/social-cards-layer-4.png new file mode 100644 index 000000000..45ad3cd7b Binary files /dev/null and b/docs/assets/screenshots/social-cards-layer-4.png differ diff --git a/docs/assets/screenshots/social-cards-layer-5.png b/docs/assets/screenshots/social-cards-layer-5.png new file mode 100644 index 000000000..7595600fc Binary files /dev/null and b/docs/assets/screenshots/social-cards-layer-5.png differ diff --git a/docs/assets/screenshots/social-cards-layer-background-color.png b/docs/assets/screenshots/social-cards-layer-background-color.png new file mode 100644 index 000000000..95ade5167 Binary files /dev/null and b/docs/assets/screenshots/social-cards-layer-background-color.png differ diff --git a/docs/assets/screenshots/social-cards-layer-background-image.png b/docs/assets/screenshots/social-cards-layer-background-image.png new file mode 100644 index 000000000..d66cff14a Binary files /dev/null and b/docs/assets/screenshots/social-cards-layer-background-image.png differ diff --git a/docs/assets/screenshots/social-cards-layer-background.png b/docs/assets/screenshots/social-cards-layer-background.png new file mode 100644 index 000000000..11d0f99f6 Binary files /dev/null and b/docs/assets/screenshots/social-cards-layer-background.png differ diff --git a/docs/assets/screenshots/social-cards-layer-icon-circles.png b/docs/assets/screenshots/social-cards-layer-icon-circles.png new file mode 100644 index 000000000..c30d86f4c Binary files /dev/null and b/docs/assets/screenshots/social-cards-layer-icon-circles.png differ diff --git a/docs/assets/screenshots/social-cards-layer-icon.png b/docs/assets/screenshots/social-cards-layer-icon.png new file mode 100644 index 000000000..d3b82acbf Binary files /dev/null and b/docs/assets/screenshots/social-cards-layer-icon.png differ diff --git a/docs/assets/screenshots/social-cards-layer-size.png b/docs/assets/screenshots/social-cards-layer-size.png new file mode 100644 index 000000000..a0a260ed3 Binary files /dev/null and b/docs/assets/screenshots/social-cards-layer-size.png differ diff --git a/docs/assets/screenshots/social-cards-layer-typography-align.png b/docs/assets/screenshots/social-cards-layer-typography-align.png new file mode 100644 index 000000000..e05e4ab4d Binary files /dev/null and b/docs/assets/screenshots/social-cards-layer-typography-align.png differ diff --git a/docs/assets/screenshots/social-cards-layer-typography-ellipsis.png b/docs/assets/screenshots/social-cards-layer-typography-ellipsis.png new file mode 100644 index 000000000..34750aebf Binary files /dev/null and b/docs/assets/screenshots/social-cards-layer-typography-ellipsis.png differ diff --git a/docs/assets/screenshots/social-cards-layer-typography-shrink.png b/docs/assets/screenshots/social-cards-layer-typography-shrink.png new file mode 100644 index 000000000..82670c3b5 Binary files /dev/null and b/docs/assets/screenshots/social-cards-layer-typography-shrink.png differ diff --git a/docs/assets/screenshots/social-cards-layer-typography.png b/docs/assets/screenshots/social-cards-layer-typography.png new file mode 100644 index 000000000..c4e97c7f2 Binary files /dev/null and b/docs/assets/screenshots/social-cards-layer-typography.png differ diff --git a/docs/assets/screenshots/social-cards-variant.png b/docs/assets/screenshots/social-cards-variant.png new file mode 100644 index 000000000..7bdaae397 Binary files /dev/null and b/docs/assets/screenshots/social-cards-variant.png differ diff --git a/docs/assets/screenshots/social-cards.png b/docs/assets/screenshots/social-cards.png index 3b348db34..40c51d7bd 100644 Binary files a/docs/assets/screenshots/social-cards.png and b/docs/assets/screenshots/social-cards.png differ diff --git a/docs/changelog/index.md b/docs/changelog/index.md index b2b942ce4..bd1323267 100644 --- a/docs/changelog/index.md +++ b/docs/changelog/index.md @@ -2,6 +2,30 @@ ## Material for MkDocs +### 9.1.12 May 12, 2023 { id="9.1.12" } + +- Updated Bengali (Bangla) translations +- Fixed #5503: Docker image publish errors on uppercase characters +- Fixed #5407: Auto-pause media when in hidden content tabs + +### 9.1.11 May 8, 2023 { id="9.1.11" } + +- Fixed #5487: Social plugin crashes without options (9.1.10 regression) + +### 9.1.10 May 8, 2023 { id="9.1.10" } + +- Added `cards_layout_options` setting for social cards +- Deprecated `cards_color` and `cards_font` setting for social cards + +### 9.1.9 May 2, 2023 { id="9.1.9" } + +- Added Telugu, Kannada and Sanskrit translations +- Fixed #5428: Fixed margins for light/dark mode images in figures +- Fixed #5420: Social plugin crashing for some specific Google Fonts +- Fixed #5160: Instant loading makes code annotations jump (9.1.1 regression) +- Fixed #4920: Social plugin not loading logo from custom icon set +- Fixed social plugin crashing when only code font is specified + ### 9.1.8 April 24, 2023 { id="9.1.8" } - Fixed #5417: Theme breaks when `palette` is not defined (9.1.7 regression) diff --git a/docs/getting-started.md b/docs/getting-started.md index 34a49fcdb..c5a2b5d94 100644 --- a/docs/getting-started.md +++ b/docs/getting-started.md @@ -61,8 +61,8 @@ install those packages separately. :fontawesome-brands-youtube:{ style="color: #EE0F0F" } __[How to set up Material for MkDocs]__ by @james-willett – :octicons-clock-24: -15m – Learn how to create and host a documentation site using Material for Docs -on GitHub Pages in a step-by-step guide. +15m – Learn how to create and host a documentation site using Material for +MkDocs on GitHub Pages in a step-by-step guide. [How to set up Material for MkDocs]: https://www.youtube.com/watch?v=Q-YA_dA8C20 diff --git a/docs/insiders/changelog.md b/docs/insiders/changelog.md index 6d623e585..ea1c7f3a6 100644 --- a/docs/insiders/changelog.md +++ b/docs/insiders/changelog.md @@ -2,6 +2,33 @@ ## Material for MkDocs Insiders +### 4.34.0 May 14, 2023 { id="4.34.0" } + +- Added support for new overflow mode to auto-fit text in social plugin +- Reduced subtle rendering bugs in (code) annotations due to subpixel rounding +- Improved print styles for (code) annotation lists +- Improved performance of social plugin, now 3x as fast +- Improved interop of typeset plugin with MkDocstrings +- Fixed logo location for variants of default template in social plugin +- Fixed #5446: Built-in typeset plugin picks up headings in code blocks + +### 4.33.2 May 12, 2023 { id="4.33.2" } + +- Fixed #5508: Social plugin crashes trying to copy cards on Docker/Windows +- Fixed #5507: Social plugin crashes on serve when layouts folder doesn't exist +- Fixed #5505: Social plugin trying to resolve logo in wrong location +- Fixed #5496: Annotations with nested lists incorrectly mounted +- Fixed #5493: Social plugin crashes on Python 3.8 + +### 4.33.1 May 9, 2023 { id="4.33.1" } + +- Added support for SVG background images in social plugin + +### 4.33.0 May 8, 2023 { id="4.33.0" } + +- Added support for custom layouts for social plugin +- Added support for background images for social cards + ### 4.32.6 April 22, 2023 { id="4.32.6" } - Fixed #5336: Interplay of blog plugin with git-revision-date-localized diff --git a/docs/insiders/index.md b/docs/insiders/index.md index 0a6368dea..718788fcc 100644 --- a/docs/insiders/index.md +++ b/docs/insiders/index.md @@ -88,14 +88,16 @@ a handful of them, [thanks to our awesome sponsors]! ## What's in it for me? The moment you [become a sponsor][how to become a sponsor], you'll get __immediate -access to 25 additional features__ that you can start using right away, and +access to 27 additional features__ that you can start using right away, and which are currently exclusively available to sponsors:

+- [x] [Social plugin: custom layouts] :material-alert-decagram:{ .mdx-pulse title="Added on May 8, 2023" } +- [x] [Social plugin: background images] :material-alert-decagram:{ .mdx-pulse title="Added on May 8, 2023" } - [x] [Code range selection] :material-alert-decagram:{ .mdx-pulse title="Added on February 19, 2023" } -- [x] [Code annotations: custom selectors] :material-alert-decagram:{ .mdx-pulse title="Added on February 19, 2023" } -- [x] [Privacy plugin: optimization support] :material-alert-decagram:{ .mdx-pulse title="Added on February 6, 2023" } +- [x] [Code annotations: custom selectors] +- [x] [Privacy plugin: optimization support] - [x] [Optimize plugin] - [x] [Navigation path] (Breadcrumbs) - [x] [Typeset plugin] @@ -256,10 +258,6 @@ features prefixed with a checkmark symbol, denoting whether a feature is :octicons-check-circle-fill-24:{ style="color: var(--md-default-fg-color--lightest)" } planned, but not yet implemented. When the funding goal is hit, the features are released for general availability. -> [In February, we lost $1,3k in monthly funding because GitHub removed PayPal support][Twitter] - - [Twitter]: https://twitter.com/squidfunk/status/1643539228574269443 - #### $ 12,000 – Piri Piri - [x] [Blog plugin] @@ -320,17 +318,21 @@ are released for general availability. [Optimize plugin]: ../setup/building-an-optimized-site.md#built-in-optimize-plugin [Typeset plugin]: ../reference/index.md#built-in-typeset-plugin - [Privacy plugin: external links]: ../setup/ensuring-data-privacy.md#+privacy.external_links - [Privacy plugin: optimization support]: ../setup/ensuring-data-privacy.md#+privacy.external_assets_include + [Privacy plugin: external links]: ../setup/ensuring-data-privacy.md#+privacy.links + [Privacy plugin: optimization support]: ../setup/ensuring-data-privacy.md#+privacy.assets_include [Navigation path]: ../setup/setting-up-navigation.md#navigation-path [Instant previews]: https://twitter.com/squidfunk/status/1466794654213492743 #### $ 24,000 – Blockpaprika +- [x] [Social plugin: custom layouts] +- [x] [Social plugin: background images] - [x] [Code range selection] - [x] [Code annotations: custom selectors] - [ ] Code line wrap button + [Social plugin: custom layouts]: ../setup/setting-up-social-cards.md#customization + [Social plugin: background images]: ../setup/setting-up-social-cards.md#+social.cards_layout_params.background_image [Code range selection]: ../reference/code-blocks.md#code-selection-button [Code annotations: custom selectors]: ../reference/code-blocks.md#custom-selectors diff --git a/docs/publishing-your-site.md b/docs/publishing-your-site.md index 8549c3bb8..264bb687e 100644 --- a/docs/publishing-your-site.md +++ b/docs/publishing-your-site.md @@ -38,11 +38,14 @@ contents: - uses: actions/setup-python@v4 with: python-version: 3.x - - uses: actions/cache@v2 + - run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV # (3)! + - uses: actions/cache@v3 with: - key: ${{ github.ref }} + key: mkdocs-material-${{ env.cache_id }} path: .cache - - run: pip install mkdocs-material # (3)! + restore-keys: | + mkdocs-material- + - run: pip install mkdocs-material # (4)! - run: mkdocs gh-deploy --force ``` @@ -51,7 +54,16 @@ contents: 2. At some point, GitHub renamed `master` to `main`. If your default branch is named `master`, you can safely remove `main`, vice versa. - 3. This is the place to install further [MkDocs plugins] or Markdown + 3. Store the `cache_id` environmental variable to access it later during cache + `key` creation. The name is case-sensitive, so be sure to align it with `${{ env.cache_id }}`. + + - The `--utc` option makes sure that each workflow runner uses the same time zone. + - The `%V` format assures a cache update once a week. + - You can change the format to `%F` to have daily cache updates. + + You can read the [manual page] to learn more about the formatting options of the `date` command. + + 4. This is the place to install further [MkDocs plugins] or Markdown extensions with `pip` to be used during the build: ``` sh @@ -81,10 +93,13 @@ contents: - uses: actions/setup-python@v4 with: python-version: 3.x - - uses: actions/cache@v2 + - run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV + - uses: actions/cache@v3 with: - key: ${{ github.ref }} + key: mkdocs-material-${{ env.cache_id }} path: .cache + restore-keys: | + mkdocs-material- - run: apt-get install pngquant # (1)! - run: pip install git+https://${GH_TOKEN}@github.com/squidfunk/mkdocs-material-insiders.git - run: mkdocs gh-deploy --force @@ -116,6 +131,7 @@ Your documentation should shortly appear at `.github.io/`. [built-in optimize plugin]: setup/building-an-optimized-site.md#built-in-optimize-plugin [GitHub secrets]: https://docs.github.com/en/actions/configuring-and-managing-workflows/creating-and-storing-encrypted-secrets [publishing source branch]: https://docs.github.com/en/pages/getting-started-with-github-pages/configuring-a-publishing-source-for-your-github-pages-site + [manual page]: https://man7.org/linux/man-pages/man1/date.1.html ### with MkDocs diff --git a/docs/reference/images.md b/docs/reference/images.md index f120352de..ee0245a1a 100644 --- a/docs/reference/images.md +++ b/docs/reference/images.md @@ -172,7 +172,37 @@ hash fragment to the image URL:
+!!! warning "Requirements when using [custom color schemes]" + + The built-in [color schemes] define the aforementioned hash fragments, but + if you're using [custom color schemes], you'll also have to add the + following selectors to your scheme, depending on whether it's a light or + dark scheme: + + === "Custom light scheme" + + ``` css + [data-md-color-scheme="custom-light"] img[src$="#only-dark"] + [data-md-color-scheme="custom-light"] img[src$="#gh-dark-mode-only"] { + display: none; /* Hide dark images in light mode */ + } + ``` + + === "Custom dark scheme" + + ``` css + [data-md-color-scheme="custom-dark"] img[src$="#only-light"], + [data-md-color-scheme="custom-dark"] img[src$="#gh-light-mode-only"] { + display: none; /* Hide light images in dark mode */ + } + ``` + + Remember to change `#!css "custom-light"` and `#!css "custom-dark"` to the + name of your scheme. + [Light and dark mode support]: https://github.com/squidfunk/mkdocs-material/releases/tag/8.1.1 [color palette toggle]: ../setup/changing-the-colors.md#color-palette-toggle [Zelda light world]: ../assets/images/zelda-light-world.png#only-light [Zelda dark world]: ../assets/images/zelda-dark-world.png#only-dark + [color schemes]: ../setup/changing-the-colors.md#color-scheme + [custom color schemes]: ../setup/changing-the-colors.md#custom-color-schemes diff --git a/docs/schema/assets/icons.json b/docs/schema/assets/icons.json index 6e434757b..1f48421a1 100644 --- a/docs/schema/assets/icons.json +++ b/docs/schema/assets/icons.json @@ -9470,6 +9470,8 @@ "octicons/device-desktop-24", "octicons/device-mobile-16", "octicons/device-mobile-24", + "octicons/devices-16", + "octicons/devices-24", "octicons/diamond-16", "octicons/diamond-24", "octicons/diff-16", @@ -9707,6 +9709,8 @@ "octicons/person-fill-24", "octicons/pin-16", "octicons/pin-24", + "octicons/pin-slash-16", + "octicons/pin-slash-24", "octicons/play-16", "octicons/play-24", "octicons/plug-16", @@ -9884,6 +9888,7 @@ "octicons/webhook-16", "octicons/workflow-16", "octicons/workflow-24", + "octicons/x-12", "octicons/x-16", "octicons/x-24", "octicons/x-circle-16", @@ -9947,6 +9952,7 @@ "simple/aeromexico", "simple/aerospike", "simple/aew", + "simple/affine", "simple/affinity", "simple/affinitydesigner", "simple/affinityphoto", @@ -10078,6 +10084,7 @@ "simple/aqua", "simple/aral", "simple/arangodb", + "simple/arcgis", "simple/archicad", "simple/archiveofourown", "simple/archlinux", @@ -10250,6 +10257,7 @@ "simple/canonical", "simple/canva", "simple/capacitor", + "simple/cardano", "simple/carrefour", "simple/carthrottle", "simple/carto", @@ -10316,6 +10324,7 @@ "simple/cmake", "simple/cncf", "simple/cnn", + "simple/cocacola", "simple/cockpit", "simple/cockroachlabs", "simple/cocoapods", @@ -10365,6 +10374,7 @@ "simple/consul", "simple/contactlesspayment", "simple/containerd", + "simple/contao", "simple/contentful", "simple/conventionalcommits", "simple/convertio", @@ -10569,6 +10579,7 @@ "simple/eslint", "simple/esphome", "simple/espressif", + "simple/esri", "simple/etcd", "simple/ethereum", "simple/ethiopianairlines", @@ -11254,6 +11265,7 @@ "simple/monero", "simple/moneygram", "simple/mongodb", + "simple/mongoose", "simple/monica", "simple/monkeytie", "simple/monogames", @@ -11556,6 +11568,7 @@ "simple/prezi", "simple/prime", "simple/primevideo", + "simple/printables", "simple/prisma", "simple/prismic", "simple/privateinternetaccess", @@ -11727,6 +11740,7 @@ "simple/rubygems", "simple/rubyonrails", "simple/rubysinatra", + "simple/ruff", "simple/runkeeper", "simple/runkit", "simple/rust", diff --git a/docs/schema/plugins/privacy.json b/docs/schema/plugins/privacy.json index 4afa6559f..aaa36b830 100644 --- a/docs/schema/plugins/privacy.json +++ b/docs/schema/plugins/privacy.json @@ -24,62 +24,60 @@ "concurrency": { "title": "Concurrency (number of CPUs)", "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/ensuring-data-privacy/#+privacy.concurrency", - "type": "number" + "type": "number", + "default": 1 }, - "external_assets": { - "title": "External assets", - "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/ensuring-data-privacy/#+privacy.external_assets", - "oneOf": [ - { - "title": "Bundle external assets", - "enum": ["bundle"] - }, - { - "title": "Report external assets as warnings", - "enum": ["report"] - } - ], - "default": "bundle" - }, - "external_assets_dir": { - "title": "External assets download directory", - "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/ensuring-data-privacy/#+privacy.external_assets_dir", - "type": "string", - "default": "assets/external" - }, - "external_assets_include": { - "title": "External assets to include", - "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/ensuring-data-privacy/#+privacy.external_assets_include", - "type": "array", - "items": { - "title": "External assets matching this pattern will be downloaded", - "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/ensuring-data-privacy/#+privacy.external_assets_include", - "pattern": ".*" - }, - "uniqueItems": true, - "minItems": 1 - }, - "external_assets_exclude": { - "title": "External assets to exclude", - "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/ensuring-data-privacy/#+privacy.external_assets_exclude", - "type": "array", - "items": { - "title": "External assets matching this pattern will not be downloaded", - "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/ensuring-data-privacy/#+privacy.external_assets_exclude", - "pattern": ".*" - }, - "uniqueItems": true, - "minItems": 1 - }, - "external_links": { - "title": "External links", - "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/ensuring-data-privacy/#+privacy.external_links", + "assets": { + "title": "Process external assets", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/ensuring-data-privacy/#+privacy.assets", "type": "boolean", "default": true }, - "external_links_attr_map": { + "assets_fetch": { + "title": "Download external assets", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/ensuring-data-privacy/#+privacy.assets_fetch", + "type": "boolean", + "default": true + }, + "assets_fetch_dir": { + "title": "Download external assets to this directory", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/ensuring-data-privacy/#+privacy.assets_fetch_dir", + "type": "string", + "default": "assets/external" + }, + "assets_include": { + "title": "External assets to include", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/ensuring-data-privacy/#+privacy.assets_include", + "type": "array", + "items": { + "title": "External assets matching this pattern will be downloaded", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/ensuring-data-privacy/#+privacy.assets_include", + "pattern": ".*" + }, + "uniqueItems": true, + "minItems": 1 + }, + "assets_exclude": { + "title": "External assets to exclude", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/ensuring-data-privacy/#+privacy.assets_exclude", + "type": "array", + "items": { + "title": "External assets matching this pattern will not be downloaded", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/ensuring-data-privacy/#+privacy.assets_exclude", + "pattern": ".*" + }, + "uniqueItems": true, + "minItems": 1 + }, + "links": { + "title": "Process external links", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/ensuring-data-privacy/#+privacy.links", + "type": "boolean", + "default": true + }, + "links_attr_map": { "title": "Custom attributes to add to external links", - "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/ensuring-data-privacy/#+privacy.external_links_attr_map", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/ensuring-data-privacy/#+privacy.links_attr_map", "type": "object", "patternProperties": { "^[\\w_]+$": { @@ -87,9 +85,9 @@ } } }, - "external_links_noopener": { + "links_noopener": { "title": "Behavior for external links that open in new windows", - "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/ensuring-data-privacy/#+privacy.external_links_noopener", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/ensuring-data-privacy/#+privacy.links_noopener", "type": "boolean", "default": true } diff --git a/docs/schema/plugins/social.json b/docs/schema/plugins/social.json index 161d7cf8c..668caa87a 100644 --- a/docs/schema/plugins/social.json +++ b/docs/schema/plugins/social.json @@ -15,51 +15,90 @@ "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-social-cards/#built-in-social-plugin", "type": "object", "properties": { + "enabled": { + "title": "Enable plugin", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-social-cards/#+social.enabled", + "type": "boolean", + "default": true + }, + "concurrency": { + "title": "Concurrency (number of CPUs)", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-social-cards/#+social.concurrency", + "type": "number", + "default": 1 + }, "cards": { - "title": "Social card generation", + "title": "Social cards", "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-social-cards/#+social.cards", "type": "boolean", "default": true }, - "cards_color": { - "title": "Social card color palette", - "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-social-cards/#+social.cards_color", - "type": "object", - "properties": { - "fill": { - "title": "Background fill color", - "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-social-cards/#+social.cards_color", - "type": "string" - }, - "text": { - "title": "Foreground text color", - "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-social-cards/#+social.cards_color", - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "fill", - "text" - ] - }, - "cards_font": { - "$ref": "../assets/fonts.json" - }, "cards_dir": { - "title": "Social card directory", + "title": "Social cards directory", "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-social-cards/#+social.cards_dir", "type": "string", "default": "assets/images/social" + }, + "cards_layout_dir": { + "title": "Social cards layout directory", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-social-cards/#+social.cards_layout_dir", + "type": "string", + "default": "layouts" + }, + "cards_layout": { + "title": "Social cards layout", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-social-cards/#+social.cards_layout", + "default": "default", + "enum": [ + "default", + "default/accent", + "default/invert", + "default/variant" + ] + }, + "cards_layout_options": { + "title": "Social cards layout options", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-social-cards/#+social.cards_layout_options", + "type": "object" + }, + "debug": { + "title": "Debug mode", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-social-cards/#+social.debug", + "type": "boolean", + "default": true + }, + "debug_grid": { + "title": "Debug grid", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-social-cards/#+social.debug_grid", + "type": "boolean", + "default": true + }, + "debug_grid_step": { + "title": "Debug grid step size", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-social-cards/#+social.debug_grid_step", + "type": "number", + "default": 32 + }, + "debug_color": { + "title": "Debug color", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-social-cards/#+social.debug_color", + "type": "string", + "default": "yellow" + }, + "cache": { + "title": "Enable caching", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-social-cards/#+social.cache", + "type": "boolean", + "default": true + }, + "cache_dir": { + "title": "Cache directory", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/setup/setting-up-social-cards/#+social.cache_dir", + "type": "string", + "default": ".cache/plugins/social" } }, - "additionalProperties": false, - "defaultSnippets": [ - { - "label": "cards_font", - "body": "cards_font: ${1:Roboto}" - } - ] + "additionalProperties": false } }, "additionalProperties": false diff --git a/docs/schema/theme.json b/docs/schema/theme.json index 9f51b902f..ec0123598 100644 --- a/docs/schema/theme.json +++ b/docs/schema/theme.json @@ -214,6 +214,12 @@ "ka" ] }, + { + "title": "Site language: Kannada", + "enum": [ + "kn" + ] + }, { "title": "Site language: Korean", "enum": [ @@ -304,6 +310,12 @@ "ru" ] }, + { + "title": "Site language: Sanskrit", + "enum": [ + "sa" + ] + }, { "title": "Site language: Serbo-Croatian", "enum": [ @@ -340,6 +352,12 @@ "sv" ] }, + { + "title": "Site language: Telugu", + "enum": [ + "te" + ] + }, { "title": "Site language: Thai", "enum": [ @@ -918,7 +936,8 @@ "grey", "blue grey", "black", - "white" + "white", + "custom" ] }, "accent": { @@ -945,7 +964,8 @@ "grey", "blue grey", "black", - "white" + "white", + "custom" ] }, "icon": { diff --git a/docs/setup/building-an-optimized-site.md b/docs/setup/building-an-optimized-site.md index 1110dfc98..1486530de 100644 --- a/docs/setup/building-an-optimized-site.md +++ b/docs/setup/building-an-optimized-site.md @@ -1,7 +1,3 @@ ---- -status: new ---- - # Building an optimized site Material for MkDocs, by default, allows to build optimized sites that rank great @@ -196,7 +192,7 @@ The following configuration options are available for caching: ``` yaml plugins: - optimize: - cache_dir: path/to/folder + cache_dir: .cache/plugins/optimize ``` By default, all built-in plugins that implement caching will create a diff --git a/docs/setup/changing-the-colors.md b/docs/setup/changing-the-colors.md index 07106b8eb..af16f0d7b 100644 --- a/docs/setup/changing-the-colors.md +++ b/docs/setup/changing-the-colors.md @@ -105,6 +105,8 @@ Click on a tile to change the primary color: }) +See our guide below to learn how to set [custom colors]. + [Primary color support]: https://github.com/squidfunk/mkdocs-material/releases/tag/0.2.0 #### Accent color @@ -162,6 +164,8 @@ Click on a tile to change the accent color: }) +See our guide below to learn how to set [custom colors]. + [Accent color support]: https://github.com/squidfunk/mkdocs-material/releases/tag/0.2.0 ### Color palette toggle @@ -323,6 +327,16 @@ properties). If you want to customize the colors beyond the palette (e.g. to use your brand-specific colors), you can add an [additional style sheet] and tweak the values of the CSS variables. +First, set the [`primary`][palette.primary] or [`accent`][palette.accent] values +in `mkdocs.yml` to `custom`, to signal to the theme that you want to define +custom colors, e.g., when you want to override the `primary` color: + +``` yaml +theme: + palette: + primary: custom +``` + Let's say you're :fontawesome-brands-youtube:{ style="color: #EE0F0F" } __YouTube__, and want to set the primary color to your brand's palette. Just add: diff --git a/docs/setup/changing-the-language.md b/docs/setup/changing-the-language.md index e3ddc2326..5b34828d5 100644 --- a/docs/setup/changing-the-language.md +++ b/docs/setup/changing-the-language.md @@ -1,7 +1,7 @@ # Changing the language Material for MkDocs supports internationalization (i18n) and provides -translations for template variables and labels in 50+ languages. Additionally, +translations for template variables and labels in 60+ languages. Additionally, the site search can be configured to use a language-specific stemmer, if available. diff --git a/docs/setup/ensuring-data-privacy.md b/docs/setup/ensuring-data-privacy.md index 5f2417963..ae9060fda 100644 --- a/docs/setup/ensuring-data-privacy.md +++ b/docs/setup/ensuring-data-privacy.md @@ -199,28 +199,38 @@ The following configuration options are available: The following configuration options are available for external assets: -[`external_assets`](#+privacy.external_assets){ #+privacy.external_assets } +[`assets`](#+privacy.assets){ #+privacy.assets } -: :octicons-milestone-24: Default: `bundle` – This option specifies what the - plugin should do when encountering external assets. There are two options: - while `report` will issue warning messages during the build, `bundle` will - automatically download all external files and adjust all references: +: :octicons-milestone-24: Default: `true` – This option specifies whether the + plugin should scan the HTML output to detect and process external assets: ``` yaml plugins: - privacy: - external_assets: bundle + assets: true ``` If you've removed all external assets from your project via [customization], - it's still a good idea to enable the plugin and set the mode to `report`, - as the plugin will make sure that there are no hidden external links in any - Markdown files that were unintentionally added. + it's still a good idea to enable the plugin, as the plugin will make sure + that there are no hidden external links in any Markdown files that were + unintentionally added. - Using `report` in [strict mode] will make the build fail when external + Using `assets` in [strict mode] will make the build fail when external assets are detected. -[`external_assets_dir`](#+privacy.external_assets_dir){ #+privacy.external_assets_dir } +[`assets_fetch`](#+privacy.assets_fetch){ #+privacy.assets_fetch } + +: :octicons-milestone-24: Default: `true` – This option specifies whether the + plugin should download external assets it encountered and bundle them with + your documentation: + + ``` yaml + plugins: + - privacy: + assets_fetch: true + ``` + +[`assets_fetch_dir`](#+privacy.assets_fetch_dir){ #+privacy.assets_fetch_dir } : :octicons-milestone-24: Default: `assets/external` – This option specifies where the downloaded [external assets] will be stored. It's @@ -229,12 +239,12 @@ The following configuration options are available for external assets: ``` yaml plugins: - privacy: - external_assets_dir: assets/external + assets_fetch_dir: assets/external ``` The path must be defined relative to [`docs_dir`][docs_dir]. -[`external_assets_include`](#+privacy.external_assets_include){ #+privacy.external_assets_include } :material-alert-decagram:{ .mdx-pulse title="Added on February 6, 2023" } +[`assets_include`](#+privacy.assets_include){ #+privacy.assets_include } : :octicons-milestone-24: Default: _none_ – This option allows to only include certain external assets for processing by the privacy plugin, so they will @@ -243,7 +253,7 @@ The following configuration options are available for external assets: ``` yaml plugins: - privacy: - external_assets_include: + assets_include: - unsplash.com/* ``` @@ -265,7 +275,7 @@ The following configuration options are available for external assets: differently from others or exclude some images from downloading, you can use multiple instances of the [built-in privacy plugin]. -[`external_assets_exclude`](#+privacy.external_assets_exclude){ #+privacy.external_assets_exclude } +[`assets_exclude`](#+privacy.assets_exclude){ #+privacy.assets_exclude } : :octicons-milestone-24: Default: _none_ – This option allows to exclude certain external assets from processing by the privacy plugin, so they will @@ -274,7 +284,7 @@ The following configuration options are available for external assets: ``` yaml plugins: - privacy: - external_assets_exclude: # (1)! + assets_exclude: # (1)! - cdn.jsdelivr.net/npm/mathjax@3/* - giscus.app/* ``` @@ -333,7 +343,7 @@ The following configuration options are available for external assets: The following configuration options are available for external links: -[`external_links`](#+privacy.external_links){ #+privacy.external_links } +[`links`](#+privacy.links){ #+privacy.links } : :octicons-milestone-24: Default: `true` – This option specifies whether the plugin should parse and process external links. If you want to speed up @@ -342,10 +352,10 @@ The following configuration options are available for external links: ``` yaml plugins: - privacy: - external_links: !ENV [CI, false] + links: !ENV [CI, false] ``` -[`external_links_attr_map`](#+privacy.external_links_attr_map){ #+privacy.external_links_attr_map } +[`links_attr_map`](#+privacy.links_attr_map){ #+privacy.links_attr_map } : :octicons-milestone-24: Default: _None_ – This option specifies custom attributes that should be added to external links, like for example @@ -354,11 +364,11 @@ The following configuration options are available for external links: ``` yaml plugins: - privacy: - external_links_attr_map: + links_attr_map: target: _blank ``` -[`external_links_noopener`](#+privacy.external_links_noopener){ #+privacy.external_links_noopener } +[`links_noopener`](#+privacy.links_noopener){ #+privacy.links_noopener } : :octicons-milestone-24: Default: `true` – This option specifies whether the plugin should automatically add [`rel="noopener"`][noopener] to all links @@ -367,7 +377,7 @@ The following configuration options are available for external links: ``` yaml plugins: - privacy: - external_links_noopener: true + links_noopener: true ``` [noopener]: https://mathiasbynens.github.io/rel-noopener/ @@ -484,27 +494,30 @@ carried out. You might want to: `.cache` directory in between builds. Taking the example from the [publishing guide], add the following lines: - ``` yaml hl_lines="15-18" + ``` yaml hl_lines="15-21" name: ci on: push: branches: - master - main - jobs: - deploy: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: actions/setup-python@v2 - with: - python-version: 3.x - - uses: actions/cache@v2 - with: - key: ${{ github.ref }} - path: .cache - - run: pip install mkdocs-material - - run: mkdocs gh-deploy --force + jobs: + deploy: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-python@v4 + with: + python-version: 3.x + - run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV + - uses: actions/cache@v3 + with: + key: mkdocs-material-${{ env.cache_id }} + path: .cache + restore-keys: | + mkdocs-material- + - run: pip install mkdocs-material + - run: mkdocs gh-deploy --force ``` [publishing guide]: ../publishing-your-site.md#with-github-actions diff --git a/docs/setup/index.md b/docs/setup/index.md index b848c95b3..d20a3544d 100644 --- a/docs/setup/index.md +++ b/docs/setup/index.md @@ -13,7 +13,7 @@ setting up site search, and more.
-- :fontawesome-solid-earth-americas: __[Language]__ – Choose out of the 50+ supported languages or add a new one +- :fontawesome-solid-earth-americas: __[Language]__ – Choose out of the 60+ supported languages or add a new one - :material-page-layout-sidebar-left: __[Navigation]__ – Create a clear, concise, and comprehensive navigation structure - :material-page-layout-header: __[Header]__ – Customize the behavior of the header, add an announcement bar - :material-page-layout-footer: __[Footer]__ – Add links to your social media profiles or websites in the footer diff --git a/docs/setup/setting-up-a-blog.md b/docs/setup/setting-up-a-blog.md index 1470cf79d..454fef4d3 100644 --- a/docs/setup/setting-up-a-blog.md +++ b/docs/setup/setting-up-a-blog.md @@ -93,7 +93,7 @@ The following configuration options are available: ``` yaml plugins: - blog: - blog_dir: path/to/folder + blog_dir: blog ``` === "Standalone" diff --git a/docs/setup/setting-up-navigation.md b/docs/setup/setting-up-navigation.md index ea8684256..abe27d36f 100644 --- a/docs/setup/setting-up-navigation.md +++ b/docs/setup/setting-up-navigation.md @@ -31,7 +31,7 @@ are rebound automatically, i.e., __Material for MkDocs now behaves like a Single Page Application__. Now, the search index survives navigation, which is especially useful for large documentation sites. - [Instant loading support]: https://github.com/squidfunk/mkdocs-material/releases/tag/5.2.0 + [Instant loading support]: https://github.com/squidfunk/mkdocs-material/releases/tag/5.0.0 [XHR]: https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest ### Anchor tracking diff --git a/docs/setup/setting-up-site-search.md b/docs/setup/setting-up-site-search.md index 937daf02c..d7a50dd32 100644 --- a/docs/setup/setting-up-site-search.md +++ b/docs/setup/setting-up-site-search.md @@ -73,17 +73,25 @@ The following configuration options are supported: - `es` – Spanish - `fi` – Finnish - `fr` – French + - `hi` – Hindi - `hu` – Hungarian + - `hy` – Armenian - `it` – Italian - `ja` – Japanese + - `kn` - Kannada + - `ko` – Korean - `no` – Norwegian - `pt` – Portuguese - `ro` – Romanian - `ru` – Russian + - `sa` – Sanskrit - `sv` – Swedish + - `ta` – Tamil + - `te` – Telugu - `th` – Thai - `tr` – Turkish - `vi` – Vietnamese + - `zh` – Chinese
diff --git a/docs/setup/setting-up-social-cards.md b/docs/setup/setting-up-social-cards.md index 48ec14c59..21c7b21b8 100644 --- a/docs/setup/setting-up-social-cards.md +++ b/docs/setup/setting-up-social-cards.md @@ -1,37 +1,27 @@ +--- +status: new +--- + # Setting up social cards -Social cards, also known as social previews, are images that are displayed when -a link to your project documentation is shared on social media. Material for -MkDocs can generate beautiful social cards automatically, using the [colors], -[fonts] and [logo][^1] defined in `mkdocs.yml`, -e.g.: +Material for MkDocs can automatically create beautiful social cards for your +documentation, which appear as link previews on social media platforms. You +can select from several [pre-designed layouts][default layouts] or create +[custom layouts] to match your unique style and branding.
-[![Social cards preview]][Social cards preview] +[![Layout default variant]][Layout default variant]
-The social preview image for the page on [setting up site analytics]. -[Twitter's Card validator] shows how it will look when shared. +Social card of our [formatting] reference
- [^1]: - Both types of logos, images (`theme.logo`) and icons (`theme.icon.logo`) - are supported. While an image logo is used as-is, icons are filled with the - color used in the header (white or black), which depends on the primary - color. Note that custom logos and icons must reside in the `docs_dir` for - the plugin to find them. For guidance, see #4920. This limitation will be - lifted in the future when the social plugin will receive its next update. - - [colors]: changing-the-colors.md#primary-color - [fonts]: changing-the-fonts.md#regular-font - [logo]: changing-the-logo-and-icons.md#logo - [Social cards preview]: ../assets/screenshots/social-cards.png - [setting up site analytics]: setting-up-site-analytics.md - [Twitter's Card validator]: https://cards-dev.twitter.com/validator + [custom layouts]: #customization + [formatting]: ../reference/formatting.md ## Configuration @@ -41,17 +31,71 @@ The social preview image for the page on [setting up site analytics]. :octicons-cpu-24: Plugin · :octicons-beaker-24: Experimental -First, ensure you've installed all [dependencies] and have a valid [`site_url`] -[site_url], as social preview images must be referenced via absolute URLs. -Then, add the following lines to `mkdocs.yml`: +The built-in social plugin automatically generate a custom preview image for +each page. Install all [dependencies for image processing][^1] and add the +following lines to `mkdocs.yml`: + + [^1]: + The awesome thing about social cards is that they are generated during + build time and directly distributed with your documentation, no external + services involved. While it would technically be simpler to generate + social cards using a web browser and an automation framework like + [Puppeteer], it would add further liabilities to the toolchain, with the + potential to make build pipelines more complex and resource intense. + + For this reason, Material for MkDocs again follows its core principle of + making it as simple and powerful as possible, providing an easy-to-use + framework for building [custom layouts] using Python image processing + libraries. ``` yaml plugins: - social ``` +> Note that [Insiders] contains a ground up rewrite of the social plugin that +> generates images much more efficiently in parallel and allows to build +> entirely [custom layouts]. + The following configuration options are available: +[`enabled`](#+social.enabled){ #+social.enabled } + +: :octicons-milestone-24: Default: `true` – This option specifies whether + the plugin is enabled when building your project. If you want to speed up + local builds, you can use an [environment variable]: + + ``` yaml + plugins: + - social: + enabled: !ENV [CI, false] + ``` + +[`concurrency`](#+social.concurrency){ #+social.concurrency } + +: [:octicons-tag-24: insiders-4.33.0][Insiders] · :octicons-milestone-24: + Default: _number of CPUs_ – How many CPUs the plugin is allowed to use when + generating social cards. With more CPUs, the plugin can do more work in the + same time, thus complete generation faster. Concurrent processing can be + disabled with: + + ``` yaml + plugins: + - social: + concurrency: 1 + ``` + + [Social cards support]: https://github.com/squidfunk/mkdocs-material/releases/tag/8.5.0 + [built-in plugins]: ../insiders/getting-started.md#built-in-plugins + [dependencies for image processing]: dependencies/image-processing.md + [Puppeteer]: https://github.com/puppeteer/puppeteer + [Insiders]: ../insiders/index.md + [environment variable]: https://www.mkdocs.org/user-guide/configuration/#environment-variables + +#### Social cards + +The following configuration options are available for card generation: + [`cards`](#+social.cards){ #+social.cards } : :octicons-milestone-24: Default: `true` – This option specifies whether @@ -61,254 +105,323 @@ The following configuration options are available: ``` yaml plugins: - social: - cards: !ENV [CARDS, false] + cards: !ENV [CI, false] ``` -[`cards_color`](#+social.cards_color){ #+social.cards_color } +[`cards_dir`](#+social.cards_dir){ #+social.cards_dir } -: :octicons-milestone-24: Default: [`theme.palette.primary`][palette.primary] - – This option specifies the colors for the background `fill` and foreground +: :octicons-milestone-24: Default: `assets/images/social` – This option + specifies where the generated social cards will be stored. While it's + usually not necessary to change this option, change it with: + + ``` yaml + plugins: + - social: + cards_dir: assets/images/social + ``` + +
+ +[`cards_color`](#+social.cards_color){ #+social.cards_color } – :material-trash-can: Deprecated, use [`cards_layout_options`][layout options] + +: :octicons-milestone-24: Default: [`theme.palette.primary`][primary color] – + This option specifies the colors for the background `fill` and foreground `text` when generating the social card: ``` yaml plugins: - social: cards_color: - fill: "#0FF1CE" # (1)! + fill: "#0FF1CE" text: "#FFFFFF" ``` - 1. Colors can either be defined as HEX colors, or as [CSS color keywords]. - Note that HEX colors must be enclosed in quotes. +[`cards_font`](#+social.cards_font){ #+social.cards_font } – :material-trash-can: Deprecated, use [`cards_layout_options`][layout options] -[`cards_font`](#+social.cards_font){ #+social.cards_font } - -: :octicons-milestone-24: Default: [`theme.font.text`][font.text] – This - option specifies which font to use for rendering the social card, which can - be any font hosted on [Google Fonts]: +: :octicons-milestone-24: Default: [`theme.font.text`][font] – This option + specifies which font to use for rendering the social card, which can be + any font hosted on [Google Fonts]: ``` yaml plugins: - social: - cards_font: Roboto + cards_font: Ubuntu ``` - !!! question "Why do social cards render boxes for CJK languages?" +
- Some fonts do not contain CJK characters, like for example the - [default font, `Roboto`][font.text]. In case your `site_name`, - `site_description`, or [page title] contain CJK characters, choose - another font from [Google Fonts] which comes with CJK characters, e.g. - one from the `Noto Sans` font family: +[`cards_layout_dir`](#+social.cards_layout_dir){ #+social.cards_layout_dir } - === "Chinese (Simplified)" - - ``` yaml - plugins: - - social: - cards_font: Noto Sans SC - ``` - - === "Chinese (Traditional)" - - ``` yaml - plugins: - - social: - cards_font: Noto Sans TC - ``` - - === "Japanese" - - ``` yaml - plugins: - - social: - cards_font: Noto Sans JP - ``` - - === "Korean" - - ``` yaml - plugins: - - social: - cards_font: Noto Sans KR - ``` - -[`cards_dir`](#+social.cards_dir){ #+social.cards_dir } - -: :octicons-milestone-24: Default: `assets/images/social` – This option - specifies where the generated social card images will be written to. It's - normally not necessary to change this option: +: [:octicons-tag-24: insiders-4.33.0][Insiders] · :octicons-milestone-24: + Default: _none_ – This option specifies where the social plugin should try + to resolve [custom layouts] from, taking precedence over the included + layouts: ``` yaml plugins: - social: - cards_dir: path/to/folder + cards_layout_dir: layouts ``` - [Social cards support]: https://github.com/squidfunk/mkdocs-material/releases/tag/8.5.0 - [dependencies]: #dependencies - [site_url]: https://www.mkdocs.org/user-guide/configuration/#site_url - [palette.primary]: changing-the-colors.md#primary-color - [font.text]: changing-the-fonts.md#regular-font - [environment variable]: https://www.mkdocs.org/user-guide/configuration/#environment-variables - [CSS color keywords]: https://developer.mozilla.org/en-US/docs/Web/CSS/color_value#color_keywords - [Google Fonts]: https://fonts.google.com - [page title]: ../reference/index.md#setting-the-page-title +[`cards_layout`](#+social.cards_layout){ #+social.cards_layout } :material-alert-decagram:{ .mdx-pulse title="Added on May 8, 2023" } -#### Dependencies +: [:octicons-tag-24: insiders-4.33.0][Insiders] · :octicons-milestone-24: + Default: `default` – Layout specification the social card should use. The + plugin includes the following layouts which make use of the [color palette] + and [font]: -Two Python libraries must be installed alongside Material for MkDocs to generate -the social preview images, both of which are based on [Cairo Graphics] – -[Pillow] and [CairoSVG]: + === "`default`" -``` -pip install pillow cairosvg -``` + ``` yaml + plugins: + - social: + cards_layout: default + ``` -Both libraries are built with native extensions which need to be installed as -well. The [Docker image] comes with all dependencies pre-installed. If you don't -want to use Docker, see the following section which explains how to install all -dependencies on your system: + This layout uses the configured [primary color] as a background: -=== ":material-apple: macOS" + [![Layout default]][Layout default] - Make sure [Homebrew] is installed, which is a modern package manager for - macOS. Next, use the following command to install all necessary - dependencies: + === "`default/variant`" - ``` - brew install cairo freetype libffi libjpeg libpng zlib + ``` yaml + plugins: + - social: + cards_layout: default/variant + ``` + + This layout includes the [page icon] as a watermark, if defined: + + [![Layout default variant]][Layout default variant] + + === "`default/accent`" + + ``` yaml + plugins: + - social: + cards_layout: default/accent + ``` + + This layout uses the configured [accent color] as a background: + + [![Layout default accent]][Layout default accent] + + === "`default/invert`" + + ``` yaml + plugins: + - social: + cards_layout: default/invert + ``` + + This layout inverts the background and foreground colors: + + [![Layout default invert]][Layout default invert] + + All [`default`][default layouts] layouts make use of the following + [template variables]: + + - :material-page-layout-header: – `config.site_name` + - :material-page-layout-body: – `page.meta.title` or `page.title` + - :material-page-layout-footer: – `page.meta.description` or `config.site_description` + - :material-page-layout-sidebar-right: – `theme.logo` or `theme.icon.logo` + +[`cards_layout_options`](#+social.cards_layout_options){ #+social.cards_layout_options } + +: [:octicons-tag-24: insiders-4.33.0][Insiders] · :octicons-milestone-24: + Default: _none_ – This option allows to set [parameters] as provided by + the layout specification. For [custom layouts], this key can be used to + provide layout-specific options, making layouts entirels configurable. + + --- + + All [`default`][default layouts] layouts expose the following parameters: + + [`background_color`](#+social.cards_layout_options.background_color){ #+social.cards_layout_options.background_color } + + : Set a background color, which can be a [CSS color keyword], or a 3, 4, 6 + or 8 letter HEX color code. Alpha channels are supported as well: + + ``` yaml + plugins: + - social: + cards_layout_options: + background_color: "#0FF1CE" + ``` + + [`background_image`](#+social.cards_layout_options.background_image){ #+social.cards_layout_options.background_image } + + : [:octicons-tag-24: insiders-4.33.0][Insiders] – Set a background image. + If a `background_color` is set, like for the + [`default`][default layouts] layouts, the image is tinted (overlayed) + with the color. Thus, the background color must be (partially) + transparent for the image to become visible: + + ``` yaml + plugins: + - social: + cards_layout_options: + background_color: "#00000000" + background_image: layouts/background.png + ``` + + The path of the image must be defined relative to the project root. + + [`color`](#+social.cards_layout_options.color){ #+social.cards_layout_options.color } + + : Set a foreground color, which can be a [CSS color keyword], or a 3, 4, 6 + or 8 letter HEX color code. The color is primarily used to tint text and + icons: + + ``` yaml + plugins: + - social: + cards_layout_options: + color: "#0FF1CE" + ``` + + [`font_family`](#+social.cards_layout_options.font_family){ #+social.cards_layout_options.font_family } + + : Set a font family. This overrides the [font] that is set as part of the + theme configuration. The [built-in social plugin] will automatically + download the font from [Google Fonts]: + + ``` yaml + plugins: + - social: + cards_layout_options: + font_family: Ubuntu + ``` + + [color palette]: ./changing-the-colors.md#color-palette + [primary color]: ./changing-the-colors.md#primary-color + [accent color]: ./changing-the-colors.md#accent-color + [font]: ./changing-the-fonts.md#regular-font + [Google Fonts]: https://fonts.google.com/ + [layout options]: #+social.cards_layout_options + [page icon]: ../reference/index.md#setting-the-page-icon + [Layout default]: ../assets/screenshots/social-cards.png + [Layout default variant]: ../assets/screenshots/social-cards-variant.png + [Layout default accent]: ../assets/screenshots/social-cards-accent.png + [Layout default invert]: ../assets/screenshots/social-cards-invert.png + [template variables]: https://www.mkdocs.org/dev-guide/themes/#template-variables + [parameters]: #parameters + [default layouts]: #+social.cards_layout + [CSS color keyword]: https://developer.mozilla.org/en-US/docs/Web/CSS/color_value#color_keywords + +#### Debugging + +The following configuration options are available for debugging: + +[`debug`](#+social.debug){ #+social.debug } + +: [:octicons-tag-24: insiders-4.33.0][Insiders] · :octicons-milestone-24: + Default: `false` – This option enables a special debug mode, which renders + each layer with an outline and its `x` and `y` offset in order to understand + how the layout is composed, and optionally renders a grid for easier + alignment: + + ``` yaml + plugins: + - social: + debug: true ``` -=== ":fontawesome-brands-windows: Windows" + === "With debug mode" - As stated in the [installation guide], the easiest way to get up and running - with the [Cairo Graphics] library on Windows is by installing [GTK+], since - it has Cairo as a dependency. You can also download and install a - precompiled [GTK runtime]. + [![Debug mode enabled]][Debug mode enabled] -=== ":material-linux: Linux" + === "Without" - There are several package managers for Linux with varying availability per - distribution. The [installation guide] explains how to install the [Cairo - Graphics] library for your distribution: + [![Debug mode disabled]][Debug mode disabled] - === ":material-ubuntu: Ubuntu" + [Debug mode enabled]: ../assets/screenshots/social-cards-debug.png + [Debug mode disabled]: ../assets/screenshots/social-cards-variant.png - ``` - apt-get install libcairo2-dev libfreetype6-dev libffi-dev libjpeg-dev libpng-dev libz-dev - ``` +[`debug_grid`](#+social.debug_grid){ #+social.debug_grid } - === ":material-fedora: Fedora" +: [:octicons-tag-24: insiders-4.33.0][Insiders] · :octicons-milestone-24: + Default: `true` – This option enables the rendering of a dot grid when + [`debug`][debug] is enabled (see screenshot above). The grid can be switched + off with: - ``` - yum install cairo-devel freetype-devel libffi-devel libjpeg-devel libpng-devel zlib-devel - ``` - - === ":fontawesome-brands-suse: openSUSE" - - ``` - zypper install cairo-devel freetype-devel libffi-devel libjpeg-devel libpng-devel zlib-devel - ``` - - [Cairo Graphics]: https://www.cairographics.org/ - [Pillow]: https://pillow.readthedocs.io/ - [CairoSVG]: https://cairosvg.org/ - [Docker image]: https://hub.docker.com/r/squidfunk/mkdocs-material/ - [Homebrew]: https://brew.sh/ - [installation guide]: https://www.cairographics.org/download/ - [GTK+]: https://www.gtk.org/docs/installations/windows/ - [GTK runtime]: https://github.com/tschoonj/GTK-for-Windows-Runtime-Environment-Installer/releases - -#### Caching recommended { #caching data-toc-label="Caching" } - -The [built-in social plugin] automatically fetches the fonts you define in -`mkdocs.yml` from Google Fonts, and uses them to render the text that is -displayed on the social card. The font files and generated cards are both -written to the `.cache` directory, which is used in subsequent builds to detect -whether the social cards need to be regenerated. You might want to: - -1. Ignore the `.cache` directory in your project, by adding it to `.gitignore`. -2. When building your site for publishing, use a build cache to save the - `.cache` directory in between builds. Taking the example from the - [publishing guide], add the following lines: - - ``` yaml hl_lines="15-18" - name: ci - on: - push: - branches: - - master - - main - jobs: - deploy: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: actions/setup-python@v2 - with: - python-version: 3.x - - uses: actions/cache@v2 - with: - key: ${{ github.ref }} - path: .cache - - run: pip install mkdocs-material - - run: mkdocs gh-deploy --force + ``` yaml + plugins: + - social: + debug_grid: false ``` +[`debug_grid_step`](#+social.debug_grid_step){ #+social.debug_grid_step } + +: [:octicons-tag-24: insiders-4.33.0][Insiders] · :octicons-milestone-24: + Default: `32` – This option specifies the step size of the grid in pixels, + if enabled, which can be used to align elements. It can be changed with: + + ``` yaml + plugins: + - social: + debug_grid_step: 64 + ``` + +[`debug_color`](#+social.debug_color){ #+social.debug_color } + +: [:octicons-tag-24: insiders-4.33.0][Insiders] · :octicons-milestone-24: + Default: `grey` – This option sets the color of the layer outlines and + the grid which are rendered when [`debug`][debug] is enabled. It can be + changed with: + + ``` yaml + plugins: + - social: + debug_color: yellow + ``` + + [debug]: #+social.debug + +#### Caching + +The [built-in social plugin] implements an intelligent caching mechanism, +ensuring that social cards are only re-generated when they're not contained in +the cache or their contents change. If any of the variables used in a layout +changes, the plugin will detect it and re-generate the card. + +The following configuration options are available for caching: + +[`cache`](#+social.cache){ #+social.cache } + +: [:octicons-tag-24: insiders-4.33.0][Insiders] · :octicons-milestone-24: + Default: `true` – Whether the plugin queries its cache for an existing + artifact before starting a generation job. It's normally not necessary to + change this setting, except for when debugging the plugin itself. Caching + can be disabled with: + + ``` yaml + plugins: + - social: + cache: false + ``` + +[`cache_dir`](#+social.cache_dir){ #+social.cache_dir } + +: :octicons-milestone-24: Default: `.cache/plugins/social` – This option + specifies the file system location of the plugin's cache. It's normally not + necessary to change this setting, except for when debugging the plugin + itself. The cache directory can be changed with: + + ``` yaml + plugins: + - social: + cache_dir: .cache/plugins/social + ``` + + By default, all built-in plugins that implement caching will create a + `.cache` directory in the same folder your `mkdocs.yml` resides, and create + subfolders to not interfere with each other. If you use multiple instances + of this plugin, it could be necessary to change this setting. + [built-in social plugin]: #built-in-social-plugin [publishing guide]: ../publishing-your-site.md#with-github-actions -#### Meta tags - -The [built-in social plugin] automatically sets all necessary `meta` tags, -equivalent to the following two customizations, which you can set manually when -you don't want to use it: - -=== ":material-graph: Open Graph" - - ``` html - {% extends "base.html" %} - - {% block extrahead %} - {% set title = config.site_name %} - {% if page and page.meta and page.meta.title %} - {% set title = title ~ " - " ~ page.meta.title %} - {% elif page and page.title and not page.is_homepage %} - {% set title = title ~ " - " ~ page.title %} - {% endif %} - - - - - - - - - {% endblock %} - ``` - -=== ":fontawesome-brands-twitter: Twitter Cards" - - ``` html - {% extends "base.html" %} - - {% block extrahead %} - {% set title = config.site_name %} - {% if page and page.meta and page.meta.title %} - {% set title = title ~ " - " ~ page.meta.title %} - {% elif page and page.title and not page.is_homepage %} - {% set title = title ~ " - " ~ page.title %} - {% endif %} - - - - - {% endblock %} - ``` - - [Twitter Cards]: https://developer.twitter.com/en/docs/tweets/optimize-with-cards/overview/abouts-cards - ## Usage If you want to adjust the title or set a custom description for the social card, @@ -320,3 +433,408 @@ precedence over the default values. [Changing the title]: ../reference/index.md#setting-the-page-title [Changing the description]: ../reference/index.md#setting-the-page-description + + +### Choosing a font + +Some fonts do not contain CJK characters, like for example the +[default font, `Roboto`][font]. In case your `site_name`, `site_description`, or +page title contain CJK characters, choose another font from [Google Fonts] which +comes with CJK characters, e.g. one from the `Noto Sans` font family: + +=== "Chinese (Simplified)" + + ``` yaml + plugins: + - social: + cards_font: Noto Sans SC + ``` + +=== "Chinese (Traditional)" + + ``` yaml + plugins: + - social: + cards_font: Noto Sans TC + ``` + +=== "Japanese" + + ``` yaml + plugins: + - social: + cards_font: Noto Sans JP + ``` + +=== "Korean" + + ``` yaml + plugins: + - social: + cards_font: Noto Sans KR + ``` + +## Customization + +[:octicons-heart-fill-24:{ .mdx-heart } Sponsors only][Insiders]{ .mdx-insiders } · +[:octicons-tag-24: insiders-4.33.0][Insiders] · +:octicons-beaker-24: Experimental + +[Insiders] ships a ground up rewrite of the [built-in social plugin] and +introduces a brand new layout system based on a combination of YAML and +[Jinja templates] – the same engine Material for MkDocs uses for HTML +templating – allowing for the creation of complex custom layouts: + +
+
+
+ Layer 0 + +
+
+
+
+ Layer 1 + +
+
+
+
+ Layer 2 + +
+
+
+
+ Layer 3 + +
+
+
+
+ Layer 4 + +
+
+
+
+ Layer 5 + +
+
+
+ +Social cards are composed of layers, analogous to how they are represented in +graphic design software such as Adobe Photoshop. As many layers are common +across the cards generated for each page (e.g., backgrounds or logos), the +built-in social plugin can automatically deduplicate layers and render them +just once, substantially accelerating card generation. The generated cards are +cached to ensure they are only regenerated when their contents change. + +Layouts are written in YAML syntax. Before starting to create a custom layout, +it is a good idea to [study the pre-designed layouts] (link to [Insiders] +repository), in order to get a better understanding of how they work. Then, +create a new layout and reference it in `mkdocs.yml`: + +=== ":octicons-file-code-16: `layouts/custom.yml`" + + ``` yaml + size: { width: 1200, height: 630 } + layers: [] + ``` + +=== ":octicons-file-code-16: `mkdocs.yml`" + + ``` yaml + plugins: + - social: + cards_layout_dir: layouts + cards_layout: custom + debug: true + ``` + +Note that the `.yml` file extension should be omitted. Next, run `mkdocs serve`, +and see how the `.cache` directory is populated with the generated cards. Open +any card in your editor, so you can see your changes immediately. Since we +haven't defined any layers, the cards are transparent. + +The following sections explain how to create custom layouts. + + [Jinja templates]: https://jinja.palletsprojects.com/en/3.1.x/ + [study the pre-designed layouts]: https://github.com/squidfunk/mkdocs-material-insiders/tree/master/src/plugins/social/layouts + +### Size and offset + +Each layer has an associated size and offset, which is defined in pixels. The +`size` is defined by a `width` and `height` property, and the `offset` by `x` +and `y` properties: + +``` yaml +size: { width: 1200, height: 630 } +layers: + - size: { width: 1200, height: 630 } + offset: { x: 0, y: 0 } +``` + +If the `size` is omitted, it defaults to the size of the layout. If the `offset` +is omitted, it defaults to the top left corner, which is the origin for all +layers. Saving the layout and reloading renders: + +![Layer size] + +The layer outline and grid are visible because we enabled [`debug`][debug] +mode in `mkdocs.yml`. The top left shows the layer index and offset, which is +useful for alignment and composition. + + [Layer size]: ../assets/screenshots/social-cards-layer-size.png + +### Backgrounds + +Each layer can be assigned a background color and image. If both are given, the +color is rendered on top of the image, allowing for semi-transparent, tinted +backgrounds: + +=== "Background color" + + ``` yaml + size: { width: 1200, height: 630 } + layers: + - background: + color: "#4051b5" + ``` + + ![Layer background color] + +=== "Background image" + + ``` yaml + size: { width: 1200, height: 630 } + layers: + - background: + image: layouts/background.jpg + ``` + + ![Layer background image] + +=== "Background image, tinted" + + ``` yaml + size: { width: 1200, height: 630 } + layers: + - background: + image: layouts/background.jpg + color: "#4051b5ee" # (1)! + ``` + + 1. The color value can be set to a [CSS color keyword], or a 3, 4, 6 or 8 + letter HEX color code, allowing for semi-transparent layers. + + ![Layer background] + +Background images are automatically scaled to fit the layer while preserving +aspect-ratio. Notice how we omitted `size` and `offset`, because we want to +fill the entire area of the social card. + +[Layer background color]: ../assets/screenshots/social-cards-layer-background-color.png +[Layer background image]: ../assets/screenshots/social-cards-layer-background-image.png +[Layer background]: ../assets/screenshots/social-cards-layer-background.png + +### Typography + +Now, we can add dynamic typography that is sourced from Markdown files - this is +the actual raison d'être of the [built-in social plugin]. [Jinja templates] are +used to render a text string that is then added to the image: + +``` yaml +size: { width: 1200, height: 630 } +layers: + - size: { width: 832, height: 310 } + offset: { x: 62, y: 160 } + typography: + content: "{{ page.title }}" # (1)! + align: start + color: white + line: + amount: 3 + height: 1.25 + font: + family: Roboto + style: Bold +``` + +1. The following variables can be used in [Jinja templates]: + + - [`config.*`][config variable] + - [`page.*`][page variable] + - [`layout.*`][layout options] + + The author is free in defining `layout.*` options, which can be used to pass + arbitrary data to the layout from `mkdocs.yml`. + +This renders a text layer with the title of the page with a line height of 1.25, +and a maximum number of 3 lines. The plugin automatically computes the font size +from the line height, the number of lines, and font metrics like ascender and +descender.[^2] This renders: + + [^2]: + If the plugin would require the author to specify the font size and line + height manually, it would be impossible to guarantee that the text fits + into the layer. For this reason we implemented a declarative approach, + where the author specifies the desired line height and number of lines, and + the plugin computes the font size automatically. + +![Layer typography] + + [config variable]: https://www.mkdocs.org/dev-guide/themes/#config + [page variable]: https://www.mkdocs.org/dev-guide/themes/#page + [Layer typography]: ../assets/screenshots/social-cards-layer-typography.png + +#### Overflow + +If the text overflows the layer, there are two possible behaviors: either the +text is automatically truncated and shortened with an ellipsis, or the text is +automatically scaled down to fit the layer: + +``` { .markdown .no-copy } +# If we use a very long headline, we can see how the text will be truncated +``` + +=== ":octicons-ellipsis-16: Ellipsis" + + ![Layer typography ellipsis] + +=== ":material-arrow-collapse: Shrink" + + ![Layer typography shrink] + +While truncating with an ellipsis is the default, auto-shrinking can be enabled +by setting `overflow` to `shrink`: + +``` yaml hl_lines="7" +size: { width: 1200, height: 630 } +layers: + - size: { width: 832, height: 310 } + offset: { x: 62, y: 160 } + typography: + content: "{{ page.title }}" + overflow: shrink + align: start + color: white + line: + amount: 3 + height: 1.25 + font: + family: Roboto + style: Bold +``` + + [Layer typography ellipsis]: ../assets/screenshots/social-cards-layer-typography-ellipsis.png + [Layer typography shrink]: ../assets/screenshots/social-cards-layer-typography-shrink.png + +#### Alignment + +Text can be aligned to all corners and edges of the layer. For example, if we +want to align the text to the middle of the layer, we can set `align` to `start center`, which will render as: + +![Layer typography align] + + [Layer typography align]: ../assets/screenshots/social-cards-layer-typography-align.png + +The following table shows the supported values: + +
+ +| Alignment | | | +| -------------- | --------------- | ------------ | +| :material-arrow-top-left: `start top` | :material-arrow-up: `center top` | :material-arrow-top-right: `end top` | +| :material-arrow-left: `start center` | :material-circle-small: `center` | :material-arrow-right: `end center` | +| :material-arrow-bottom-left: `start bottom` | :material-arrow-down: `center bottom` | :material-arrow-bottom-right: `end bottom` | + +
+ Supported values for text alignment +
+
+ +#### Font + +The [built-in social plugin] integrates with [Google Fonts] and will +automatically download the font files for you. The `font` property accepts a +`family` and `style` property, where the `family` must be set to the name of the +font, and the `style` to one of the supported font styles. For example, setting +`family` to `Roboto` will automatically download the following files: + +``` { .sh .no-copy #example } +.cache/plugins/social/fonts +└─ Roboto/ + ├─ Black.ttf + ├─ Black Italic.ttf + ├─ Bold.ttf + ├─ Bold Italic.ttf + ├─ Italic.ttf + ├─ Light.ttf + ├─ Light Italic.ttf + ├─ Medium.ttf + ├─ Medium Italic.ttf + ├─ Regular.ttf + ├─ Thin.ttf + └─ Thin Italic.ttf +``` + +In that case, the author can use `Bold` or `Medium Italic` as the `style`. If +the font style specified in the layer is not part of the font family, the +font always falls back to `Regular` and prints a warning in [`debug`][debug] +mode, as `Regular` is included with all font families. + +### Icons + +Authors can leverage the full range of icons that are shipped with Material for +MkDocs, or even provide custom icons by using theme extension and going through +the process described in the guide on [additional icons]. Icons can even be +tinted by using the `color` property: + +``` yaml +size: { width: 1200, height: 630 } +layers: + - background: + color: "#4051b5" + - size: { width: 144, height: 144 } + offset: { x: 992, y: 64 } + icon: + value: material/cat + color: white +``` + +This will render the icon in the top right corner of the social card: + +![Layer icon] + +The possibilities are endless. For example, icons can be used to draw shapes +like circles: + +``` yaml +size: { width: 1200, height: 630 } +layers: + - background: + color: "#4051b5" + - size: { width: 2400, height: 2400 } + offset: { x: -1024, y: 64 } + icon: + value: material/circle + color: "#5c6bc0" + - size: { width: 1800, height: 1800 } + offset: { x: 512, y: -1024 } + icon: + value: material/circle + color: "#3949ab" +``` + +This will add two circles to the background: + +![Layer icon circles] + +__Are you missing something? Please [open a discussion] and let us know!__ + + [additional icons]: ./changing-the-logo-and-icons.md#additional-icons + [Layer icon]: ../assets/screenshots/social-cards-layer-icon.png + [Layer icon circles]: ../assets/screenshots/social-cards-layer-icon-circles.png + [open a discussion]: https://github.com/squidfunk/mkdocs-material/discussions/new diff --git a/docs/setup/setting-up-tags.md b/docs/setup/setting-up-tags.md index 30ed0c935..921e5b897 100644 --- a/docs/setup/setting-up-tags.md +++ b/docs/setup/setting-up-tags.md @@ -141,7 +141,7 @@ The following configuration options are available: ``` yaml plugins: - tags: - tags_compare: !!python/name:material.plugins.tags.plugin.casefold + tags_compare: !!python/name:material.plugins.tags.casefold ``` You can also define your own comparison function which must return a tag diff --git a/material/.icons/octicons/devices-16.svg b/material/.icons/octicons/devices-16.svg new file mode 100644 index 000000000..84af9d860 --- /dev/null +++ b/material/.icons/octicons/devices-16.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/material/.icons/octicons/devices-24.svg b/material/.icons/octicons/devices-24.svg new file mode 100644 index 000000000..5bceb44fe --- /dev/null +++ b/material/.icons/octicons/devices-24.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/material/.icons/octicons/move-to-bottom-24.svg b/material/.icons/octicons/move-to-bottom-24.svg index 3342b0d61..06087834d 100644 --- a/material/.icons/octicons/move-to-bottom-24.svg +++ b/material/.icons/octicons/move-to-bottom-24.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/material/.icons/octicons/move-to-top-16.svg b/material/.icons/octicons/move-to-top-16.svg index 532e69c31..438b49260 100644 --- a/material/.icons/octicons/move-to-top-16.svg +++ b/material/.icons/octicons/move-to-top-16.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/material/.icons/octicons/move-to-top-24.svg b/material/.icons/octicons/move-to-top-24.svg index 3c32e431c..67c3ac430 100644 --- a/material/.icons/octicons/move-to-top-24.svg +++ b/material/.icons/octicons/move-to-top-24.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/material/.icons/octicons/pin-16.svg b/material/.icons/octicons/pin-16.svg index 1db000190..5dbac7f27 100644 --- a/material/.icons/octicons/pin-16.svg +++ b/material/.icons/octicons/pin-16.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/material/.icons/octicons/pin-24.svg b/material/.icons/octicons/pin-24.svg index 324e543f1..1668748bf 100644 --- a/material/.icons/octicons/pin-24.svg +++ b/material/.icons/octicons/pin-24.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/material/.icons/octicons/pin-slash-16.svg b/material/.icons/octicons/pin-slash-16.svg new file mode 100644 index 000000000..4435bb445 --- /dev/null +++ b/material/.icons/octicons/pin-slash-16.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/material/.icons/octicons/pin-slash-24.svg b/material/.icons/octicons/pin-slash-24.svg new file mode 100644 index 000000000..be9b881eb --- /dev/null +++ b/material/.icons/octicons/pin-slash-24.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/material/.icons/octicons/x-12.svg b/material/.icons/octicons/x-12.svg new file mode 100644 index 000000000..040c72d63 --- /dev/null +++ b/material/.icons/octicons/x-12.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/material/.icons/simple/affine.svg b/material/.icons/simple/affine.svg new file mode 100644 index 000000000..d7a6d1a2b --- /dev/null +++ b/material/.icons/simple/affine.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/material/.icons/simple/algolia.svg b/material/.icons/simple/algolia.svg index 9bfed3fd5..ea03e32f1 100644 --- a/material/.icons/simple/algolia.svg +++ b/material/.icons/simple/algolia.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/material/.icons/simple/arcgis.svg b/material/.icons/simple/arcgis.svg new file mode 100644 index 000000000..f5d9f867c --- /dev/null +++ b/material/.icons/simple/arcgis.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/material/.icons/simple/cardano.svg b/material/.icons/simple/cardano.svg new file mode 100644 index 000000000..9cdecef6c --- /dev/null +++ b/material/.icons/simple/cardano.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/material/.icons/simple/cocacola.svg b/material/.icons/simple/cocacola.svg new file mode 100644 index 000000000..a90264546 --- /dev/null +++ b/material/.icons/simple/cocacola.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/material/.icons/simple/contao.svg b/material/.icons/simple/contao.svg new file mode 100644 index 000000000..1b6ade3e6 --- /dev/null +++ b/material/.icons/simple/contao.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/material/.icons/simple/esri.svg b/material/.icons/simple/esri.svg new file mode 100644 index 000000000..ca343b0f1 --- /dev/null +++ b/material/.icons/simple/esri.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/material/.icons/simple/flathub.svg b/material/.icons/simple/flathub.svg index d281f435b..32c7ceb60 100644 --- a/material/.icons/simple/flathub.svg +++ b/material/.icons/simple/flathub.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/material/.icons/simple/mongoose.svg b/material/.icons/simple/mongoose.svg new file mode 100644 index 000000000..1073fb642 --- /dev/null +++ b/material/.icons/simple/mongoose.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/material/.icons/simple/polkadot.svg b/material/.icons/simple/polkadot.svg index 5a4131a9b..43e407b3a 100644 --- a/material/.icons/simple/polkadot.svg +++ b/material/.icons/simple/polkadot.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/material/.icons/simple/printables.svg b/material/.icons/simple/printables.svg new file mode 100644 index 000000000..77c2db6c9 --- /dev/null +++ b/material/.icons/simple/printables.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/material/.icons/simple/ruff.svg b/material/.icons/simple/ruff.svg new file mode 100644 index 000000000..986339b8d --- /dev/null +++ b/material/.icons/simple/ruff.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/material/.icons/simple/supabase.svg b/material/.icons/simple/supabase.svg index 9560e607d..218f62cfd 100644 --- a/material/.icons/simple/supabase.svg +++ b/material/.icons/simple/supabase.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/material/.overrides/assets/javascripts/custom.a7283b5f.min.js b/material/.overrides/assets/javascripts/custom.13133f3f.min.js similarity index 99% rename from material/.overrides/assets/javascripts/custom.a7283b5f.min.js rename to material/.overrides/assets/javascripts/custom.13133f3f.min.js index 44bd40cf3..512e9733d 100644 --- a/material/.overrides/assets/javascripts/custom.a7283b5f.min.js +++ b/material/.overrides/assets/javascripts/custom.13133f3f.min.js @@ -14,5 +14,5 @@ PERFORMANCE OF THIS SOFTWARE. ***************************************************************************** */var Lr=function(e,r){return Lr=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,n){t.__proto__=n}||function(t,n){for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(t[o]=n[o])},Lr(e,r)};function j(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");Lr(e,r);function t(){this.constructor=e}e.prototype=r===null?Object.create(r):(t.prototype=r.prototype,new t)}function nt(e,r,t,n){function o(i){return i instanceof t?i:new t(function(a){a(i)})}return new(t||(t=Promise))(function(i,a){function c(f){try{s(n.next(f))}catch(p){a(p)}}function u(f){try{s(n.throw(f))}catch(p){a(p)}}function s(f){f.done?i(f.value):o(f.value).then(c,u)}s((n=n.apply(e,r||[])).next())})}function Ge(e,r){var t={label:0,sent:function(){if(i[0]&1)throw i[1];return i[1]},trys:[],ops:[]},n,o,i,a;return a={next:c(0),throw:c(1),return:c(2)},typeof Symbol=="function"&&(a[Symbol.iterator]=function(){return this}),a;function c(s){return function(f){return u([s,f])}}function u(s){if(n)throw new TypeError("Generator is already executing.");for(;t;)try{if(n=1,o&&(i=s[0]&2?o.return:s[0]?o.throw||((i=o.return)&&i.call(o),0):o.next)&&!(i=i.call(o,s[1])).done)return i;switch(o=0,i&&(s=[s[0]&2,i.value]),s[0]){case 0:case 1:i=s;break;case 4:return t.label++,{value:s[1],done:!1};case 5:t.label++,o=s[1],s=[0];continue;case 7:s=t.ops.pop(),t.trys.pop();continue;default:if(i=t.trys,!(i=i.length>0&&i[i.length-1])&&(s[0]===6||s[0]===2)){t=0;continue}if(s[0]===3&&(!i||s[1]>i[0]&&s[1]=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(r?"Object is not iterable.":"Symbol.iterator is not defined.")}function W(e,r){var t=typeof Symbol=="function"&&e[Symbol.iterator];if(!t)return e;var n=t.call(e),o,i=[],a;try{for(;(r===void 0||r-- >0)&&!(o=n.next()).done;)i.push(o.value)}catch(c){a={error:c}}finally{try{o&&!o.done&&(t=n.return)&&t.call(n)}finally{if(a)throw a.error}}return i}function U(e,r,t){if(t||arguments.length===2)for(var n=0,o=r.length,i;n1||c(l,v)})})}function c(l,v){try{u(n[l](v))}catch(h){p(i[0][3],h)}}function u(l){l.value instanceof ve?Promise.resolve(l.value.v).then(s,f):p(i[0][2],l)}function s(l){c("next",l)}function f(l){c("throw",l)}function p(l,v){l(v),i.shift(),i.length&&c(i[0][0],i[0][1])}}function it(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r=e[Symbol.asyncIterator],t;return r?r.call(e):(e=typeof G=="function"?G(e):e[Symbol.iterator](),t={},n("next"),n("throw"),n("return"),t[Symbol.asyncIterator]=function(){return this},t);function n(i){t[i]=e[i]&&function(a){return new Promise(function(c,u){a=e[i](a),o(c,u,a.done,a.value)})}}function o(i,a,c,u){Promise.resolve(u).then(function(s){i({value:s,done:c})},a)}}function _(e){return typeof e=="function"}function Ye(e){var r=function(n){Error.call(n),n.stack=new Error().stack},t=e(r);return t.prototype=Object.create(Error.prototype),t.prototype.constructor=t,t}var Je=Ye(function(e){return function(t){e(this),this.message=t?t.length+` errors occurred during unsubscription: `+t.map(function(n,o){return o+1+") "+n.toString()}).join(` `):"",this.name="UnsubscriptionError",this.errors=t}});function fe(e,r){if(e){var t=e.indexOf(r);0<=t&&e.splice(t,1)}}var ie=function(){function e(r){this.initialTeardown=r,this.closed=!1,this._parentage=null,this._finalizers=null}return e.prototype.unsubscribe=function(){var r,t,n,o,i;if(!this.closed){this.closed=!0;var a=this._parentage;if(a)if(this._parentage=null,Array.isArray(a))try{for(var c=G(a),u=c.next();!u.done;u=c.next()){var s=u.value;s.remove(this)}}catch(m){r={error:m}}finally{try{u&&!u.done&&(t=c.return)&&t.call(c)}finally{if(r)throw r.error}}else a.remove(this);var f=this.initialTeardown;if(_(f))try{f()}catch(m){i=m instanceof Je?m.errors:[m]}var p=this._finalizers;if(p){this._finalizers=null;try{for(var l=G(p),v=l.next();!v.done;v=l.next()){var h=v.value;try{at(h)}catch(m){i=i!=null?i:[],m instanceof Je?i=U(U([],W(i)),W(m.errors)):i.push(m)}}}catch(m){n={error:m}}finally{try{v&&!v.done&&(o=l.return)&&o.call(l)}finally{if(n)throw n.error}}}if(i)throw new Je(i)}},e.prototype.add=function(r){var t;if(r&&r!==this)if(this.closed)at(r);else{if(r instanceof e){if(r.closed||r._hasParent(this))return;r._addParent(this)}(this._finalizers=(t=this._finalizers)!==null&&t!==void 0?t:[]).push(r)}},e.prototype._hasParent=function(r){var t=this._parentage;return t===r||Array.isArray(t)&&t.includes(r)},e.prototype._addParent=function(r){var t=this._parentage;this._parentage=Array.isArray(t)?(t.push(r),t):t?[t,r]:r},e.prototype._removeParent=function(r){var t=this._parentage;t===r?this._parentage=null:Array.isArray(t)&&fe(t,r)},e.prototype.remove=function(r){var t=this._finalizers;t&&fe(t,r),r instanceof e&&r._removeParent(this)},e.EMPTY=function(){var r=new e;return r.closed=!0,r}(),e}();var Rr=ie.EMPTY;function Be(e){return e instanceof ie||e&&"closed"in e&&_(e.remove)&&_(e.add)&&_(e.unsubscribe)}function at(e){_(e)?e():e.unsubscribe()}var te={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1};var Te={setTimeout:function(e,r){for(var t=[],n=2;n0},enumerable:!1,configurable:!0}),r.prototype._trySubscribe=function(t){return this._throwIfClosed(),e.prototype._trySubscribe.call(this,t)},r.prototype._subscribe=function(t){return this._throwIfClosed(),this._checkFinalizedStatuses(t),this._innerSubscribe(t)},r.prototype._innerSubscribe=function(t){var n=this,o=this,i=o.hasError,a=o.isStopped,c=o.observers;return i||a?Rr:(this.currentObservers=null,c.push(t),new ie(function(){n.currentObservers=null,fe(c,t)}))},r.prototype._checkFinalizedStatuses=function(t){var n=this,o=n.hasError,i=n.thrownError,a=n.isStopped;o?t.error(i):a&&t.complete()},r.prototype.asObservable=function(){var t=new L;return t.source=this,t},r.create=function(t,n){return new ht(t,n)},r}(L);var ht=function(e){j(r,e);function r(t,n){var o=e.call(this)||this;return o.destination=t,o.source=n,o}return r.prototype.next=function(t){var n,o;(o=(n=this.destination)===null||n===void 0?void 0:n.next)===null||o===void 0||o.call(n,t)},r.prototype.error=function(t){var n,o;(o=(n=this.destination)===null||n===void 0?void 0:n.error)===null||o===void 0||o.call(n,t)},r.prototype.complete=function(){var t,n;(n=(t=this.destination)===null||t===void 0?void 0:t.complete)===null||n===void 0||n.call(t)},r.prototype._subscribe=function(t){var n,o;return(o=(n=this.source)===null||n===void 0?void 0:n.subscribe(t))!==null&&o!==void 0?o:Rr},r}(B);var ze={now:function(){return(ze.delegate||Date).now()},delegate:void 0};var dt=function(e){j(r,e);function r(t,n,o){t===void 0&&(t=1/0),n===void 0&&(n=1/0),o===void 0&&(o=ze);var i=e.call(this)||this;return i._bufferSize=t,i._windowTime=n,i._timestampProvider=o,i._buffer=[],i._infiniteTimeWindow=!0,i._infiniteTimeWindow=n===1/0,i._bufferSize=Math.max(1,t),i._windowTime=Math.max(1,n),i}return r.prototype.next=function(t){var n=this,o=n.isStopped,i=n._buffer,a=n._infiniteTimeWindow,c=n._timestampProvider,u=n._windowTime;o||(i.push(t),!a&&i.push(c.now()+u)),this._trimBuffer(),e.prototype.next.call(this,t)},r.prototype._subscribe=function(t){this._throwIfClosed(),this._trimBuffer();for(var n=this._innerSubscribe(t),o=this,i=o._infiniteTimeWindow,a=o._buffer,c=a.slice(),u=0;u0?e.prototype.requestAsyncId.call(this,t,n,o):(t.actions.push(this),t._scheduled||(t._scheduled=Ce.requestAnimationFrame(function(){return t.flush(void 0)})))},r.prototype.recycleAsyncId=function(t,n,o){var i;if(o===void 0&&(o=0),o!=null?o>0:this.delay>0)return e.prototype.recycleAsyncId.call(this,t,n,o);var a=t.actions;n!=null&&((i=a[a.length-1])===null||i===void 0?void 0:i.id)!==n&&(Ce.cancelAnimationFrame(n),t._scheduled=void 0)},r}(er);var yt=function(e){j(r,e);function r(){return e!==null&&e.apply(this,arguments)||this}return r.prototype.flush=function(t){this._active=!0;var n=this._scheduled;this._scheduled=void 0;var o=this.actions,i;t=t||o.shift();do if(i=t.execute(t.state,t.delay))break;while((t=o[0])&&t.id===n&&o.shift());if(this._active=!1,i){for(;(t=o[0])&&t.id===n&&o.shift();)t.unsubscribe();throw i}},r}(rr);var Wr=new yt(xt);var pe=new L(function(e){return e.complete()});function tr(e){return e&&_(e.schedule)}function zr(e){return e[e.length-1]}function Ie(e){return _(zr(e))?e.pop():void 0}function ae(e){return tr(zr(e))?e.pop():void 0}function gt(e,r){return typeof zr(e)=="number"?e.pop():r}var Le=function(e){return e&&typeof e.length=="number"&&typeof e!="function"};function nr(e){return _(e==null?void 0:e.then)}function or(e){return _(e[Me])}function ir(e){return Symbol.asyncIterator&&_(e==null?void 0:e[Symbol.asyncIterator])}function ar(e){return new TypeError("You provided "+(e!==null&&typeof e=="object"?"an invalid object":"'"+e+"'")+" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.")}function jn(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}var sr=jn();function ur(e){return _(e==null?void 0:e[sr])}function fr(e){return ot(this,arguments,function(){var t,n,o,i;return Ge(this,function(a){switch(a.label){case 0:t=e.getReader(),a.label=1;case 1:a.trys.push([1,,9,10]),a.label=2;case 2:return[4,ve(t.read())];case 3:return n=a.sent(),o=n.value,i=n.done,i?[4,ve(void 0)]:[3,5];case 4:return[2,a.sent()];case 5:return[4,ve(o)];case 6:return[4,a.sent()];case 7:return a.sent(),[3,2];case 8:return[3,10];case 9:return t.releaseLock(),[7];case 10:return[2]}})})}function cr(e){return _(e==null?void 0:e.getReader)}function P(e){if(e instanceof L)return e;if(e!=null){if(or(e))return $n(e);if(Le(e))return qn(e);if(nr(e))return Nn(e);if(ir(e))return wt(e);if(ur(e))return Dn(e);if(cr(e))return Qn(e)}throw ar(e)}function $n(e){return new L(function(r){var t=e[Me]();if(_(t.subscribe))return t.subscribe(r);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}function qn(e){return new L(function(r){for(var t=0;t0&&(f=new xe({next:function(E){return x.next(E)},error:function(E){m=!0,b(),p=Qr(w,o,E),x.error(E)},complete:function(){h=!0,b(),p=Qr(w,a),x.complete()}}),P(R).subscribe(f))})(s)}}function Qr(e,r){for(var t=[],n=2;n{let r=yr();return typeof r!="undefined"?e.contains(r):!1}),he(e===yr()),le())}function Dt(e){return{x:e.scrollLeft,y:e.scrollTop}}function Qt(e){return N(K(e,"scroll"),K(window,"resize")).pipe(Vr(0,Wr),k(()=>Dt(e)),he(Dt(e)))}var Gt=function(){if(typeof Map!="undefined")return Map;function e(r,t){var n=-1;return r.some(function(o,i){return o[0]===t?(n=i,!0):!1}),n}return function(){function r(){this.__entries__=[]}return Object.defineProperty(r.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),r.prototype.get=function(t){var n=e(this.__entries__,t),o=this.__entries__[n];return o&&o[1]},r.prototype.set=function(t,n){var o=e(this.__entries__,t);~o?this.__entries__[o][1]=n:this.__entries__.push([t,n])},r.prototype.delete=function(t){var n=this.__entries__,o=e(n,t);~o&&n.splice(o,1)},r.prototype.has=function(t){return!!~e(this.__entries__,t)},r.prototype.clear=function(){this.__entries__.splice(0)},r.prototype.forEach=function(t,n){n===void 0&&(n=null);for(var o=0,i=this.__entries__;o0},e.prototype.connect_=function(){!Gr||this.connected_||(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),vo?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},e.prototype.disconnect_=function(){!Gr||!this.connected_||(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},e.prototype.onTransitionEnd_=function(r){var t=r.propertyName,n=t===void 0?"":t,o=ho.some(function(i){return!!~n.indexOf(i)});o&&this.refresh()},e.getInstance=function(){return this.instance_||(this.instance_=new e),this.instance_},e.instance_=null,e}(),Yt=function(e,r){for(var t=0,n=Object.keys(r);t0},e}(),Bt=typeof WeakMap!="undefined"?new WeakMap:new Gt,Xt=function(){function e(r){if(!(this instanceof e))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var t=bo.getInstance(),n=new Ao(r,t,this);Bt.set(this,n)}return e}();["observe","unobserve","disconnect"].forEach(function(e){Xt.prototype[e]=function(){var r;return(r=Bt.get(this))[e].apply(r,arguments)}});var Mo=function(){return typeof gr.ResizeObserver!="undefined"?gr.ResizeObserver:Xt}(),Zt=Mo;var Co=new B,Yp=je(()=>Z(new Zt(e=>{for(let r of e)Co.next(r)}))).pipe(D(e=>N($e,Z(e)).pipe(Ee(()=>e.disconnect()))),Se(1));function en(e){return{width:e.offsetWidth,height:e.offsetHeight}}function rn(e){return{width:e.scrollWidth,height:e.scrollHeight}}var Io=new B,ol=je(()=>Z(new IntersectionObserver(e=>{for(let r of e)Io.next(r)},{threshold:0}))).pipe(D(e=>N($e,Z(e)).pipe(Ee(()=>e.disconnect()))),Se(1));function tn(e,r=16){return Qt(e).pipe(k(({y:t})=>{let n=en(e),o=rn(e);return t>=o.height-n.height-r}),le())}var ml={drawer:ee("[data-md-toggle=drawer]"),search:ee("[data-md-toggle=search]")};function nn(){return new URL(location.href)}function on(e,r){if(typeof r=="string"||typeof r=="number")e.innerHTML+=r.toString();else if(r instanceof Node)e.appendChild(r);else if(Array.isArray(r))for(let t of r)on(e,t)}function re(e,r,...t){let n=document.createElement(e);if(r)for(let o of Object.keys(r))typeof r[o]!="undefined"&&(typeof r[o]!="boolean"?n.setAttribute(o,r[o]):n.setAttribute(o,""));for(let o of t)on(n,o);return n}function an(e){if(e>999){let r=+((e-950)%1e3>99);return`${((e+1e-6)/1e3).toFixed(r)}k`}else return e.toString()}function Lo(e,r={credentials:"same-origin"}){return X(fetch(`${e}`,r)).pipe(br(()=>pe),D(t=>t.status!==200?Ur(()=>new Error(t.statusText)):Z(t)))}function Sr(e,r){return Lo(e,r).pipe(D(t=>t.json()),Se(1))}(()=>{function e(n,o){parent.postMessage(n,o||"*")}function r(...n){return n.reduce((o,i)=>o.then(()=>new Promise(a=>{let c=document.createElement("script");c.src=i,c.onload=a,document.body.appendChild(c)})),Promise.resolve())}var t=class extends EventTarget{constructor(n){super(),this.url=n,this.m=i=>{i.source===this.w&&(this.dispatchEvent(new MessageEvent("message",{data:i.data})),this.onmessage&&this.onmessage(i))},this.e=(i,a,c,u,s)=>{if(a===`${this.url}`){let f=new ErrorEvent("error",{message:i,filename:a,lineno:c,colno:u,error:s});this.dispatchEvent(f),this.onerror&&this.onerror(f)}};let o=document.createElement("iframe");o.hidden=!0,document.body.appendChild(this.iframe=o),this.w.document.open(),this.w.document.write(` + {% endblock %} diff --git a/material/assets/javascripts/bundle.51198bba.min.js b/material/assets/javascripts/bundle.51198bba.min.js deleted file mode 100644 index 31bd0414c..000000000 --- a/material/assets/javascripts/bundle.51198bba.min.js +++ /dev/null @@ -1,29 +0,0 @@ -"use strict";(()=>{var Ri=Object.create;var gr=Object.defineProperty;var ki=Object.getOwnPropertyDescriptor;var Hi=Object.getOwnPropertyNames,Ht=Object.getOwnPropertySymbols,Pi=Object.getPrototypeOf,yr=Object.prototype.hasOwnProperty,on=Object.prototype.propertyIsEnumerable;var nn=(e,t,r)=>t in e?gr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,P=(e,t)=>{for(var r in t||(t={}))yr.call(t,r)&&nn(e,r,t[r]);if(Ht)for(var r of Ht(t))on.call(t,r)&&nn(e,r,t[r]);return e};var an=(e,t)=>{var r={};for(var n in e)yr.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&Ht)for(var n of Ht(e))t.indexOf(n)<0&&on.call(e,n)&&(r[n]=e[n]);return r};var Pt=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var $i=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Hi(t))!yr.call(e,o)&&o!==r&&gr(e,o,{get:()=>t[o],enumerable:!(n=ki(t,o))||n.enumerable});return e};var yt=(e,t,r)=>(r=e!=null?Ri(Pi(e)):{},$i(t||!e||!e.__esModule?gr(r,"default",{value:e,enumerable:!0}):r,e));var cn=Pt((xr,sn)=>{(function(e,t){typeof xr=="object"&&typeof sn!="undefined"?t():typeof define=="function"&&define.amd?define(t):t()})(xr,function(){"use strict";function e(r){var n=!0,o=!1,i=null,s={text:!0,search:!0,url:!0,tel:!0,email:!0,password:!0,number:!0,date:!0,month:!0,week:!0,time:!0,datetime:!0,"datetime-local":!0};function a(T){return!!(T&&T!==document&&T.nodeName!=="HTML"&&T.nodeName!=="BODY"&&"classList"in T&&"contains"in T.classList)}function c(T){var Qe=T.type,De=T.tagName;return!!(De==="INPUT"&&s[Qe]&&!T.readOnly||De==="TEXTAREA"&&!T.readOnly||T.isContentEditable)}function f(T){T.classList.contains("focus-visible")||(T.classList.add("focus-visible"),T.setAttribute("data-focus-visible-added",""))}function u(T){T.hasAttribute("data-focus-visible-added")&&(T.classList.remove("focus-visible"),T.removeAttribute("data-focus-visible-added"))}function p(T){T.metaKey||T.altKey||T.ctrlKey||(a(r.activeElement)&&f(r.activeElement),n=!0)}function m(T){n=!1}function d(T){a(T.target)&&(n||c(T.target))&&f(T.target)}function h(T){a(T.target)&&(T.target.classList.contains("focus-visible")||T.target.hasAttribute("data-focus-visible-added"))&&(o=!0,window.clearTimeout(i),i=window.setTimeout(function(){o=!1},100),u(T.target))}function v(T){document.visibilityState==="hidden"&&(o&&(n=!0),G())}function G(){document.addEventListener("mousemove",N),document.addEventListener("mousedown",N),document.addEventListener("mouseup",N),document.addEventListener("pointermove",N),document.addEventListener("pointerdown",N),document.addEventListener("pointerup",N),document.addEventListener("touchmove",N),document.addEventListener("touchstart",N),document.addEventListener("touchend",N)}function oe(){document.removeEventListener("mousemove",N),document.removeEventListener("mousedown",N),document.removeEventListener("mouseup",N),document.removeEventListener("pointermove",N),document.removeEventListener("pointerdown",N),document.removeEventListener("pointerup",N),document.removeEventListener("touchmove",N),document.removeEventListener("touchstart",N),document.removeEventListener("touchend",N)}function N(T){T.target.nodeName&&T.target.nodeName.toLowerCase()==="html"||(n=!1,oe())}document.addEventListener("keydown",p,!0),document.addEventListener("mousedown",m,!0),document.addEventListener("pointerdown",m,!0),document.addEventListener("touchstart",m,!0),document.addEventListener("visibilitychange",v,!0),G(),r.addEventListener("focus",d,!0),r.addEventListener("blur",h,!0),r.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&r.host?r.host.setAttribute("data-js-focus-visible",""):r.nodeType===Node.DOCUMENT_NODE&&(document.documentElement.classList.add("js-focus-visible"),document.documentElement.setAttribute("data-js-focus-visible",""))}if(typeof window!="undefined"&&typeof document!="undefined"){window.applyFocusVisiblePolyfill=e;var t;try{t=new CustomEvent("focus-visible-polyfill-ready")}catch(r){t=document.createEvent("CustomEvent"),t.initCustomEvent("focus-visible-polyfill-ready",!1,!1,{})}window.dispatchEvent(t)}typeof document!="undefined"&&e(document)})});var fn=Pt(Er=>{(function(e){var t=function(){try{return!!Symbol.iterator}catch(f){return!1}},r=t(),n=function(f){var u={next:function(){var p=f.shift();return{done:p===void 0,value:p}}};return r&&(u[Symbol.iterator]=function(){return u}),u},o=function(f){return encodeURIComponent(f).replace(/%20/g,"+")},i=function(f){return decodeURIComponent(String(f).replace(/\+/g," "))},s=function(){var f=function(p){Object.defineProperty(this,"_entries",{writable:!0,value:{}});var m=typeof p;if(m!=="undefined")if(m==="string")p!==""&&this._fromString(p);else if(p instanceof f){var d=this;p.forEach(function(oe,N){d.append(N,oe)})}else if(p!==null&&m==="object")if(Object.prototype.toString.call(p)==="[object Array]")for(var h=0;hd[0]?1:0}),f._entries&&(f._entries={});for(var p=0;p1?i(d[1]):"")}})})(typeof global!="undefined"?global:typeof window!="undefined"?window:typeof self!="undefined"?self:Er);(function(e){var t=function(){try{var o=new e.URL("b","http://a");return o.pathname="c d",o.href==="http://a/c%20d"&&o.searchParams}catch(i){return!1}},r=function(){var o=e.URL,i=function(c,f){typeof c!="string"&&(c=String(c)),f&&typeof f!="string"&&(f=String(f));var u=document,p;if(f&&(e.location===void 0||f!==e.location.href)){f=f.toLowerCase(),u=document.implementation.createHTMLDocument(""),p=u.createElement("base"),p.href=f,u.head.appendChild(p);try{if(p.href.indexOf(f)!==0)throw new Error(p.href)}catch(T){throw new Error("URL unable to set base "+f+" due to "+T)}}var m=u.createElement("a");m.href=c,p&&(u.body.appendChild(m),m.href=m.href);var d=u.createElement("input");if(d.type="url",d.value=c,m.protocol===":"||!/:/.test(m.href)||!d.checkValidity()&&!f)throw new TypeError("Invalid URL");Object.defineProperty(this,"_anchorElement",{value:m});var h=new e.URLSearchParams(this.search),v=!0,G=!0,oe=this;["append","delete","set"].forEach(function(T){var Qe=h[T];h[T]=function(){Qe.apply(h,arguments),v&&(G=!1,oe.search=h.toString(),G=!0)}}),Object.defineProperty(this,"searchParams",{value:h,enumerable:!0});var N=void 0;Object.defineProperty(this,"_updateSearchParams",{enumerable:!1,configurable:!1,writable:!1,value:function(){this.search!==N&&(N=this.search,G&&(v=!1,this.searchParams._fromString(this.search),v=!0))}})},s=i.prototype,a=function(c){Object.defineProperty(s,c,{get:function(){return this._anchorElement[c]},set:function(f){this._anchorElement[c]=f},enumerable:!0})};["hash","host","hostname","port","protocol"].forEach(function(c){a(c)}),Object.defineProperty(s,"search",{get:function(){return this._anchorElement.search},set:function(c){this._anchorElement.search=c,this._updateSearchParams()},enumerable:!0}),Object.defineProperties(s,{toString:{get:function(){var c=this;return function(){return c.href}}},href:{get:function(){return this._anchorElement.href.replace(/\?$/,"")},set:function(c){this._anchorElement.href=c,this._updateSearchParams()},enumerable:!0},pathname:{get:function(){return this._anchorElement.pathname.replace(/(^\/?)/,"/")},set:function(c){this._anchorElement.pathname=c},enumerable:!0},origin:{get:function(){var c={"http:":80,"https:":443,"ftp:":21}[this._anchorElement.protocol],f=this._anchorElement.port!=c&&this._anchorElement.port!=="";return this._anchorElement.protocol+"//"+this._anchorElement.hostname+(f?":"+this._anchorElement.port:"")},enumerable:!0},password:{get:function(){return""},set:function(c){},enumerable:!0},username:{get:function(){return""},set:function(c){},enumerable:!0}}),i.createObjectURL=function(c){return o.createObjectURL.apply(o,arguments)},i.revokeObjectURL=function(c){return o.revokeObjectURL.apply(o,arguments)},e.URL=i};if(t()||r(),e.location!==void 0&&!("origin"in e.location)){var n=function(){return e.location.protocol+"//"+e.location.hostname+(e.location.port?":"+e.location.port:"")};try{Object.defineProperty(e.location,"origin",{get:n,enumerable:!0})}catch(o){setInterval(function(){e.location.origin=n()},100)}}})(typeof global!="undefined"?global:typeof window!="undefined"?window:typeof self!="undefined"?self:Er)});var Kr=Pt((Mt,qr)=>{/*! - * clipboard.js v2.0.11 - * https://clipboardjs.com/ - * - * Licensed MIT © Zeno Rocha - */(function(t,r){typeof Mt=="object"&&typeof qr=="object"?qr.exports=r():typeof define=="function"&&define.amd?define([],r):typeof Mt=="object"?Mt.ClipboardJS=r():t.ClipboardJS=r()})(Mt,function(){return function(){var e={686:function(n,o,i){"use strict";i.d(o,{default:function(){return Ci}});var s=i(279),a=i.n(s),c=i(370),f=i.n(c),u=i(817),p=i.n(u);function m(j){try{return document.execCommand(j)}catch(O){return!1}}var d=function(O){var E=p()(O);return m("cut"),E},h=d;function v(j){var O=document.documentElement.getAttribute("dir")==="rtl",E=document.createElement("textarea");E.style.fontSize="12pt",E.style.border="0",E.style.padding="0",E.style.margin="0",E.style.position="absolute",E.style[O?"right":"left"]="-9999px";var H=window.pageYOffset||document.documentElement.scrollTop;return E.style.top="".concat(H,"px"),E.setAttribute("readonly",""),E.value=j,E}var G=function(O,E){var H=v(O);E.container.appendChild(H);var I=p()(H);return m("copy"),H.remove(),I},oe=function(O){var E=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{container:document.body},H="";return typeof O=="string"?H=G(O,E):O instanceof HTMLInputElement&&!["text","search","url","tel","password"].includes(O==null?void 0:O.type)?H=G(O.value,E):(H=p()(O),m("copy")),H},N=oe;function T(j){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?T=function(E){return typeof E}:T=function(E){return E&&typeof Symbol=="function"&&E.constructor===Symbol&&E!==Symbol.prototype?"symbol":typeof E},T(j)}var Qe=function(){var O=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},E=O.action,H=E===void 0?"copy":E,I=O.container,q=O.target,Me=O.text;if(H!=="copy"&&H!=="cut")throw new Error('Invalid "action" value, use either "copy" or "cut"');if(q!==void 0)if(q&&T(q)==="object"&&q.nodeType===1){if(H==="copy"&&q.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if(H==="cut"&&(q.hasAttribute("readonly")||q.hasAttribute("disabled")))throw new Error(`Invalid "target" attribute. You can't cut text from elements with "readonly" or "disabled" attributes`)}else throw new Error('Invalid "target" value, use a valid Element');if(Me)return N(Me,{container:I});if(q)return H==="cut"?h(q):N(q,{container:I})},De=Qe;function $e(j){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?$e=function(E){return typeof E}:$e=function(E){return E&&typeof Symbol=="function"&&E.constructor===Symbol&&E!==Symbol.prototype?"symbol":typeof E},$e(j)}function wi(j,O){if(!(j instanceof O))throw new TypeError("Cannot call a class as a function")}function rn(j,O){for(var E=0;E0&&arguments[0]!==void 0?arguments[0]:{};this.action=typeof I.action=="function"?I.action:this.defaultAction,this.target=typeof I.target=="function"?I.target:this.defaultTarget,this.text=typeof I.text=="function"?I.text:this.defaultText,this.container=$e(I.container)==="object"?I.container:document.body}},{key:"listenClick",value:function(I){var q=this;this.listener=f()(I,"click",function(Me){return q.onClick(Me)})}},{key:"onClick",value:function(I){var q=I.delegateTarget||I.currentTarget,Me=this.action(q)||"copy",kt=De({action:Me,container:this.container,target:this.target(q),text:this.text(q)});this.emit(kt?"success":"error",{action:Me,text:kt,trigger:q,clearSelection:function(){q&&q.focus(),window.getSelection().removeAllRanges()}})}},{key:"defaultAction",value:function(I){return vr("action",I)}},{key:"defaultTarget",value:function(I){var q=vr("target",I);if(q)return document.querySelector(q)}},{key:"defaultText",value:function(I){return vr("text",I)}},{key:"destroy",value:function(){this.listener.destroy()}}],[{key:"copy",value:function(I){var q=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{container:document.body};return N(I,q)}},{key:"cut",value:function(I){return h(I)}},{key:"isSupported",value:function(){var I=arguments.length>0&&arguments[0]!==void 0?arguments[0]:["copy","cut"],q=typeof I=="string"?[I]:I,Me=!!document.queryCommandSupported;return q.forEach(function(kt){Me=Me&&!!document.queryCommandSupported(kt)}),Me}}]),E}(a()),Ci=Ai},828:function(n){var o=9;if(typeof Element!="undefined"&&!Element.prototype.matches){var i=Element.prototype;i.matches=i.matchesSelector||i.mozMatchesSelector||i.msMatchesSelector||i.oMatchesSelector||i.webkitMatchesSelector}function s(a,c){for(;a&&a.nodeType!==o;){if(typeof a.matches=="function"&&a.matches(c))return a;a=a.parentNode}}n.exports=s},438:function(n,o,i){var s=i(828);function a(u,p,m,d,h){var v=f.apply(this,arguments);return u.addEventListener(m,v,h),{destroy:function(){u.removeEventListener(m,v,h)}}}function c(u,p,m,d,h){return typeof u.addEventListener=="function"?a.apply(null,arguments):typeof m=="function"?a.bind(null,document).apply(null,arguments):(typeof u=="string"&&(u=document.querySelectorAll(u)),Array.prototype.map.call(u,function(v){return a(v,p,m,d,h)}))}function f(u,p,m,d){return function(h){h.delegateTarget=s(h.target,p),h.delegateTarget&&d.call(u,h)}}n.exports=c},879:function(n,o){o.node=function(i){return i!==void 0&&i instanceof HTMLElement&&i.nodeType===1},o.nodeList=function(i){var s=Object.prototype.toString.call(i);return i!==void 0&&(s==="[object NodeList]"||s==="[object HTMLCollection]")&&"length"in i&&(i.length===0||o.node(i[0]))},o.string=function(i){return typeof i=="string"||i instanceof String},o.fn=function(i){var s=Object.prototype.toString.call(i);return s==="[object Function]"}},370:function(n,o,i){var s=i(879),a=i(438);function c(m,d,h){if(!m&&!d&&!h)throw new Error("Missing required arguments");if(!s.string(d))throw new TypeError("Second argument must be a String");if(!s.fn(h))throw new TypeError("Third argument must be a Function");if(s.node(m))return f(m,d,h);if(s.nodeList(m))return u(m,d,h);if(s.string(m))return p(m,d,h);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")}function f(m,d,h){return m.addEventListener(d,h),{destroy:function(){m.removeEventListener(d,h)}}}function u(m,d,h){return Array.prototype.forEach.call(m,function(v){v.addEventListener(d,h)}),{destroy:function(){Array.prototype.forEach.call(m,function(v){v.removeEventListener(d,h)})}}}function p(m,d,h){return a(document.body,m,d,h)}n.exports=c},817:function(n){function o(i){var s;if(i.nodeName==="SELECT")i.focus(),s=i.value;else if(i.nodeName==="INPUT"||i.nodeName==="TEXTAREA"){var a=i.hasAttribute("readonly");a||i.setAttribute("readonly",""),i.select(),i.setSelectionRange(0,i.value.length),a||i.removeAttribute("readonly"),s=i.value}else{i.hasAttribute("contenteditable")&&i.focus();var c=window.getSelection(),f=document.createRange();f.selectNodeContents(i),c.removeAllRanges(),c.addRange(f),s=c.toString()}return s}n.exports=o},279:function(n){function o(){}o.prototype={on:function(i,s,a){var c=this.e||(this.e={});return(c[i]||(c[i]=[])).push({fn:s,ctx:a}),this},once:function(i,s,a){var c=this;function f(){c.off(i,f),s.apply(a,arguments)}return f._=s,this.on(i,f,a)},emit:function(i){var s=[].slice.call(arguments,1),a=((this.e||(this.e={}))[i]||[]).slice(),c=0,f=a.length;for(c;c{"use strict";/*! - * escape-html - * Copyright(c) 2012-2013 TJ Holowaychuk - * Copyright(c) 2015 Andreas Lubbe - * Copyright(c) 2015 Tiancheng "Timothy" Gu - * MIT Licensed - */var ns=/["'&<>]/;Go.exports=os;function os(e){var t=""+e,r=ns.exec(t);if(!r)return t;var n,o="",i=0,s=0;for(i=r.index;i0&&i[i.length-1])&&(f[0]===6||f[0]===2)){r=0;continue}if(f[0]===3&&(!i||f[1]>i[0]&&f[1]=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function W(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),o,i=[],s;try{for(;(t===void 0||t-- >0)&&!(o=n.next()).done;)i.push(o.value)}catch(a){s={error:a}}finally{try{o&&!o.done&&(r=n.return)&&r.call(n)}finally{if(s)throw s.error}}return i}function D(e,t,r){if(r||arguments.length===2)for(var n=0,o=t.length,i;n1||a(m,d)})})}function a(m,d){try{c(n[m](d))}catch(h){p(i[0][3],h)}}function c(m){m.value instanceof et?Promise.resolve(m.value.v).then(f,u):p(i[0][2],m)}function f(m){a("next",m)}function u(m){a("throw",m)}function p(m,d){m(d),i.shift(),i.length&&a(i[0][0],i[0][1])}}function ln(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],r;return t?t.call(e):(e=typeof Ee=="function"?Ee(e):e[Symbol.iterator](),r={},n("next"),n("throw"),n("return"),r[Symbol.asyncIterator]=function(){return this},r);function n(i){r[i]=e[i]&&function(s){return new Promise(function(a,c){s=e[i](s),o(a,c,s.done,s.value)})}}function o(i,s,a,c){Promise.resolve(c).then(function(f){i({value:f,done:a})},s)}}function C(e){return typeof e=="function"}function at(e){var t=function(n){Error.call(n),n.stack=new Error().stack},r=e(t);return r.prototype=Object.create(Error.prototype),r.prototype.constructor=r,r}var It=at(function(e){return function(r){e(this),this.message=r?r.length+` errors occurred during unsubscription: -`+r.map(function(n,o){return o+1+") "+n.toString()}).join(` - `):"",this.name="UnsubscriptionError",this.errors=r}});function Ve(e,t){if(e){var r=e.indexOf(t);0<=r&&e.splice(r,1)}}var Ie=function(){function e(t){this.initialTeardown=t,this.closed=!1,this._parentage=null,this._finalizers=null}return e.prototype.unsubscribe=function(){var t,r,n,o,i;if(!this.closed){this.closed=!0;var s=this._parentage;if(s)if(this._parentage=null,Array.isArray(s))try{for(var a=Ee(s),c=a.next();!c.done;c=a.next()){var f=c.value;f.remove(this)}}catch(v){t={error:v}}finally{try{c&&!c.done&&(r=a.return)&&r.call(a)}finally{if(t)throw t.error}}else s.remove(this);var u=this.initialTeardown;if(C(u))try{u()}catch(v){i=v instanceof It?v.errors:[v]}var p=this._finalizers;if(p){this._finalizers=null;try{for(var m=Ee(p),d=m.next();!d.done;d=m.next()){var h=d.value;try{mn(h)}catch(v){i=i!=null?i:[],v instanceof It?i=D(D([],W(i)),W(v.errors)):i.push(v)}}}catch(v){n={error:v}}finally{try{d&&!d.done&&(o=m.return)&&o.call(m)}finally{if(n)throw n.error}}}if(i)throw new It(i)}},e.prototype.add=function(t){var r;if(t&&t!==this)if(this.closed)mn(t);else{if(t instanceof e){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=(r=this._finalizers)!==null&&r!==void 0?r:[]).push(t)}},e.prototype._hasParent=function(t){var r=this._parentage;return r===t||Array.isArray(r)&&r.includes(t)},e.prototype._addParent=function(t){var r=this._parentage;this._parentage=Array.isArray(r)?(r.push(t),r):r?[r,t]:t},e.prototype._removeParent=function(t){var r=this._parentage;r===t?this._parentage=null:Array.isArray(r)&&Ve(r,t)},e.prototype.remove=function(t){var r=this._finalizers;r&&Ve(r,t),t instanceof e&&t._removeParent(this)},e.EMPTY=function(){var t=new e;return t.closed=!0,t}(),e}();var Sr=Ie.EMPTY;function jt(e){return e instanceof Ie||e&&"closed"in e&&C(e.remove)&&C(e.add)&&C(e.unsubscribe)}function mn(e){C(e)?e():e.unsubscribe()}var Le={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1};var st={setTimeout:function(e,t){for(var r=[],n=2;n0},enumerable:!1,configurable:!0}),t.prototype._trySubscribe=function(r){return this._throwIfClosed(),e.prototype._trySubscribe.call(this,r)},t.prototype._subscribe=function(r){return this._throwIfClosed(),this._checkFinalizedStatuses(r),this._innerSubscribe(r)},t.prototype._innerSubscribe=function(r){var n=this,o=this,i=o.hasError,s=o.isStopped,a=o.observers;return i||s?Sr:(this.currentObservers=null,a.push(r),new Ie(function(){n.currentObservers=null,Ve(a,r)}))},t.prototype._checkFinalizedStatuses=function(r){var n=this,o=n.hasError,i=n.thrownError,s=n.isStopped;o?r.error(i):s&&r.complete()},t.prototype.asObservable=function(){var r=new F;return r.source=this,r},t.create=function(r,n){return new En(r,n)},t}(F);var En=function(e){ie(t,e);function t(r,n){var o=e.call(this)||this;return o.destination=r,o.source=n,o}return t.prototype.next=function(r){var n,o;(o=(n=this.destination)===null||n===void 0?void 0:n.next)===null||o===void 0||o.call(n,r)},t.prototype.error=function(r){var n,o;(o=(n=this.destination)===null||n===void 0?void 0:n.error)===null||o===void 0||o.call(n,r)},t.prototype.complete=function(){var r,n;(n=(r=this.destination)===null||r===void 0?void 0:r.complete)===null||n===void 0||n.call(r)},t.prototype._subscribe=function(r){var n,o;return(o=(n=this.source)===null||n===void 0?void 0:n.subscribe(r))!==null&&o!==void 0?o:Sr},t}(x);var Et={now:function(){return(Et.delegate||Date).now()},delegate:void 0};var wt=function(e){ie(t,e);function t(r,n,o){r===void 0&&(r=1/0),n===void 0&&(n=1/0),o===void 0&&(o=Et);var i=e.call(this)||this;return i._bufferSize=r,i._windowTime=n,i._timestampProvider=o,i._buffer=[],i._infiniteTimeWindow=!0,i._infiniteTimeWindow=n===1/0,i._bufferSize=Math.max(1,r),i._windowTime=Math.max(1,n),i}return t.prototype.next=function(r){var n=this,o=n.isStopped,i=n._buffer,s=n._infiniteTimeWindow,a=n._timestampProvider,c=n._windowTime;o||(i.push(r),!s&&i.push(a.now()+c)),this._trimBuffer(),e.prototype.next.call(this,r)},t.prototype._subscribe=function(r){this._throwIfClosed(),this._trimBuffer();for(var n=this._innerSubscribe(r),o=this,i=o._infiniteTimeWindow,s=o._buffer,a=s.slice(),c=0;c0?e.prototype.requestAsyncId.call(this,r,n,o):(r.actions.push(this),r._scheduled||(r._scheduled=ut.requestAnimationFrame(function(){return r.flush(void 0)})))},t.prototype.recycleAsyncId=function(r,n,o){var i;if(o===void 0&&(o=0),o!=null?o>0:this.delay>0)return e.prototype.recycleAsyncId.call(this,r,n,o);var s=r.actions;n!=null&&((i=s[s.length-1])===null||i===void 0?void 0:i.id)!==n&&(ut.cancelAnimationFrame(n),r._scheduled=void 0)},t}(Wt);var Tn=function(e){ie(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.flush=function(r){this._active=!0;var n=this._scheduled;this._scheduled=void 0;var o=this.actions,i;r=r||o.shift();do if(i=r.execute(r.state,r.delay))break;while((r=o[0])&&r.id===n&&o.shift());if(this._active=!1,i){for(;(r=o[0])&&r.id===n&&o.shift();)r.unsubscribe();throw i}},t}(Dt);var Te=new Tn(Sn);var _=new F(function(e){return e.complete()});function Vt(e){return e&&C(e.schedule)}function Cr(e){return e[e.length-1]}function Ye(e){return C(Cr(e))?e.pop():void 0}function Oe(e){return Vt(Cr(e))?e.pop():void 0}function zt(e,t){return typeof Cr(e)=="number"?e.pop():t}var pt=function(e){return e&&typeof e.length=="number"&&typeof e!="function"};function Nt(e){return C(e==null?void 0:e.then)}function qt(e){return C(e[ft])}function Kt(e){return Symbol.asyncIterator&&C(e==null?void 0:e[Symbol.asyncIterator])}function Qt(e){return new TypeError("You provided "+(e!==null&&typeof e=="object"?"an invalid object":"'"+e+"'")+" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.")}function Ni(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}var Yt=Ni();function Gt(e){return C(e==null?void 0:e[Yt])}function Bt(e){return pn(this,arguments,function(){var r,n,o,i;return $t(this,function(s){switch(s.label){case 0:r=e.getReader(),s.label=1;case 1:s.trys.push([1,,9,10]),s.label=2;case 2:return[4,et(r.read())];case 3:return n=s.sent(),o=n.value,i=n.done,i?[4,et(void 0)]:[3,5];case 4:return[2,s.sent()];case 5:return[4,et(o)];case 6:return[4,s.sent()];case 7:return s.sent(),[3,2];case 8:return[3,10];case 9:return r.releaseLock(),[7];case 10:return[2]}})})}function Jt(e){return C(e==null?void 0:e.getReader)}function U(e){if(e instanceof F)return e;if(e!=null){if(qt(e))return qi(e);if(pt(e))return Ki(e);if(Nt(e))return Qi(e);if(Kt(e))return On(e);if(Gt(e))return Yi(e);if(Jt(e))return Gi(e)}throw Qt(e)}function qi(e){return new F(function(t){var r=e[ft]();if(C(r.subscribe))return r.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}function Ki(e){return new F(function(t){for(var r=0;r=2;return function(n){return n.pipe(e?A(function(o,i){return e(o,i,n)}):de,ge(1),r?He(t):Vn(function(){return new Zt}))}}function zn(){for(var e=[],t=0;t=2,!0))}function pe(e){e===void 0&&(e={});var t=e.connector,r=t===void 0?function(){return new x}:t,n=e.resetOnError,o=n===void 0?!0:n,i=e.resetOnComplete,s=i===void 0?!0:i,a=e.resetOnRefCountZero,c=a===void 0?!0:a;return function(f){var u,p,m,d=0,h=!1,v=!1,G=function(){p==null||p.unsubscribe(),p=void 0},oe=function(){G(),u=m=void 0,h=v=!1},N=function(){var T=u;oe(),T==null||T.unsubscribe()};return y(function(T,Qe){d++,!v&&!h&&G();var De=m=m!=null?m:r();Qe.add(function(){d--,d===0&&!v&&!h&&(p=$r(N,c))}),De.subscribe(Qe),!u&&d>0&&(u=new rt({next:function($e){return De.next($e)},error:function($e){v=!0,G(),p=$r(oe,o,$e),De.error($e)},complete:function(){h=!0,G(),p=$r(oe,s),De.complete()}}),U(T).subscribe(u))})(f)}}function $r(e,t){for(var r=[],n=2;ne.next(document)),e}function K(e,t=document){return Array.from(t.querySelectorAll(e))}function z(e,t=document){let r=ce(e,t);if(typeof r=="undefined")throw new ReferenceError(`Missing element: expected "${e}" to be present`);return r}function ce(e,t=document){return t.querySelector(e)||void 0}function _e(){return document.activeElement instanceof HTMLElement&&document.activeElement||void 0}function tr(e){return L(b(document.body,"focusin"),b(document.body,"focusout")).pipe(ke(1),l(()=>{let t=_e();return typeof t!="undefined"?e.contains(t):!1}),V(e===_e()),B())}function Xe(e){return{x:e.offsetLeft,y:e.offsetTop}}function Qn(e){return L(b(window,"load"),b(window,"resize")).pipe(Ce(0,Te),l(()=>Xe(e)),V(Xe(e)))}function rr(e){return{x:e.scrollLeft,y:e.scrollTop}}function dt(e){return L(b(e,"scroll"),b(window,"resize")).pipe(Ce(0,Te),l(()=>rr(e)),V(rr(e)))}var Gn=function(){if(typeof Map!="undefined")return Map;function e(t,r){var n=-1;return t.some(function(o,i){return o[0]===r?(n=i,!0):!1}),n}return function(){function t(){this.__entries__=[]}return Object.defineProperty(t.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),t.prototype.get=function(r){var n=e(this.__entries__,r),o=this.__entries__[n];return o&&o[1]},t.prototype.set=function(r,n){var o=e(this.__entries__,r);~o?this.__entries__[o][1]=n:this.__entries__.push([r,n])},t.prototype.delete=function(r){var n=this.__entries__,o=e(n,r);~o&&n.splice(o,1)},t.prototype.has=function(r){return!!~e(this.__entries__,r)},t.prototype.clear=function(){this.__entries__.splice(0)},t.prototype.forEach=function(r,n){n===void 0&&(n=null);for(var o=0,i=this.__entries__;o0},e.prototype.connect_=function(){!Dr||this.connected_||(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),ga?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},e.prototype.disconnect_=function(){!Dr||!this.connected_||(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},e.prototype.onTransitionEnd_=function(t){var r=t.propertyName,n=r===void 0?"":r,o=va.some(function(i){return!!~n.indexOf(i)});o&&this.refresh()},e.getInstance=function(){return this.instance_||(this.instance_=new e),this.instance_},e.instance_=null,e}(),Bn=function(e,t){for(var r=0,n=Object.keys(t);r0},e}(),Xn=typeof WeakMap!="undefined"?new WeakMap:new Gn,Zn=function(){function e(t){if(!(this instanceof e))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var r=ya.getInstance(),n=new Aa(t,r,this);Xn.set(this,n)}return e}();["observe","unobserve","disconnect"].forEach(function(e){Zn.prototype[e]=function(){var t;return(t=Xn.get(this))[e].apply(t,arguments)}});var Ca=function(){return typeof nr.ResizeObserver!="undefined"?nr.ResizeObserver:Zn}(),eo=Ca;var to=new x,Ra=$(()=>k(new eo(e=>{for(let t of e)to.next(t)}))).pipe(g(e=>L(ze,k(e)).pipe(R(()=>e.disconnect()))),J(1));function he(e){return{width:e.offsetWidth,height:e.offsetHeight}}function ye(e){return Ra.pipe(S(t=>t.observe(e)),g(t=>to.pipe(A(({target:r})=>r===e),R(()=>t.unobserve(e)),l(()=>he(e)))),V(he(e)))}function bt(e){return{width:e.scrollWidth,height:e.scrollHeight}}function ar(e){let t=e.parentElement;for(;t&&(e.scrollWidth<=t.scrollWidth&&e.scrollHeight<=t.scrollHeight);)t=(e=t).parentElement;return t?e:void 0}var ro=new x,ka=$(()=>k(new IntersectionObserver(e=>{for(let t of e)ro.next(t)},{threshold:0}))).pipe(g(e=>L(ze,k(e)).pipe(R(()=>e.disconnect()))),J(1));function sr(e){return ka.pipe(S(t=>t.observe(e)),g(t=>ro.pipe(A(({target:r})=>r===e),R(()=>t.unobserve(e)),l(({isIntersecting:r})=>r))))}function no(e,t=16){return dt(e).pipe(l(({y:r})=>{let n=he(e),o=bt(e);return r>=o.height-n.height-t}),B())}var cr={drawer:z("[data-md-toggle=drawer]"),search:z("[data-md-toggle=search]")};function oo(e){return cr[e].checked}function Ke(e,t){cr[e].checked!==t&&cr[e].click()}function Ue(e){let t=cr[e];return b(t,"change").pipe(l(()=>t.checked),V(t.checked))}function Ha(e,t){switch(e.constructor){case HTMLInputElement:return e.type==="radio"?/^Arrow/.test(t):!0;case HTMLSelectElement:case HTMLTextAreaElement:return!0;default:return e.isContentEditable}}function Pa(){return L(b(window,"compositionstart").pipe(l(()=>!0)),b(window,"compositionend").pipe(l(()=>!1))).pipe(V(!1))}function io(){let e=b(window,"keydown").pipe(A(t=>!(t.metaKey||t.ctrlKey)),l(t=>({mode:oo("search")?"search":"global",type:t.key,claim(){t.preventDefault(),t.stopPropagation()}})),A(({mode:t,type:r})=>{if(t==="global"){let n=_e();if(typeof n!="undefined")return!Ha(n,r)}return!0}),pe());return Pa().pipe(g(t=>t?_:e))}function le(){return new URL(location.href)}function ot(e){location.href=e.href}function ao(){return new x}function so(e,t){if(typeof t=="string"||typeof t=="number")e.innerHTML+=t.toString();else if(t instanceof Node)e.appendChild(t);else if(Array.isArray(t))for(let r of t)so(e,r)}function M(e,t,...r){let n=document.createElement(e);if(t)for(let o of Object.keys(t))typeof t[o]!="undefined"&&(typeof t[o]!="boolean"?n.setAttribute(o,t[o]):n.setAttribute(o,""));for(let o of r)so(n,o);return n}function fr(e){if(e>999){let t=+((e-950)%1e3>99);return`${((e+1e-6)/1e3).toFixed(t)}k`}else return e.toString()}function co(){return location.hash.substring(1)}function Vr(e){let t=M("a",{href:e});t.addEventListener("click",r=>r.stopPropagation()),t.click()}function $a(e){return L(b(window,"hashchange"),e).pipe(l(co),V(co()),A(t=>t.length>0),J(1))}function fo(e){return $a(e).pipe(l(t=>ce(`[id="${t}"]`)),A(t=>typeof t!="undefined"))}function zr(e){let t=matchMedia(e);return er(r=>t.addListener(()=>r(t.matches))).pipe(V(t.matches))}function uo(){let e=matchMedia("print");return L(b(window,"beforeprint").pipe(l(()=>!0)),b(window,"afterprint").pipe(l(()=>!1))).pipe(V(e.matches))}function Nr(e,t){return e.pipe(g(r=>r?t():_))}function ur(e,t={credentials:"same-origin"}){return ue(fetch(`${e}`,t)).pipe(fe(()=>_),g(r=>r.status!==200?Tt(()=>new Error(r.statusText)):k(r)))}function We(e,t){return ur(e,t).pipe(g(r=>r.json()),J(1))}function po(e,t){let r=new DOMParser;return ur(e,t).pipe(g(n=>n.text()),l(n=>r.parseFromString(n,"text/xml")),J(1))}function pr(e){let t=M("script",{src:e});return $(()=>(document.head.appendChild(t),L(b(t,"load"),b(t,"error").pipe(g(()=>Tt(()=>new ReferenceError(`Invalid script: ${e}`))))).pipe(l(()=>{}),R(()=>document.head.removeChild(t)),ge(1))))}function lo(){return{x:Math.max(0,scrollX),y:Math.max(0,scrollY)}}function mo(){return L(b(window,"scroll",{passive:!0}),b(window,"resize",{passive:!0})).pipe(l(lo),V(lo()))}function ho(){return{width:innerWidth,height:innerHeight}}function bo(){return b(window,"resize",{passive:!0}).pipe(l(ho),V(ho()))}function vo(){return Q([mo(),bo()]).pipe(l(([e,t])=>({offset:e,size:t})),J(1))}function lr(e,{viewport$:t,header$:r}){let n=t.pipe(Z("size")),o=Q([n,r]).pipe(l(()=>Xe(e)));return Q([r,t,o]).pipe(l(([{height:i},{offset:s,size:a},{x:c,y:f}])=>({offset:{x:s.x-c,y:s.y-f+i},size:a})))}(()=>{function e(n,o){parent.postMessage(n,o||"*")}function t(...n){return n.reduce((o,i)=>o.then(()=>new Promise(s=>{let a=document.createElement("script");a.src=i,a.onload=s,document.body.appendChild(a)})),Promise.resolve())}var r=class extends EventTarget{constructor(n){super(),this.url=n,this.m=i=>{i.source===this.w&&(this.dispatchEvent(new MessageEvent("message",{data:i.data})),this.onmessage&&this.onmessage(i))},this.e=(i,s,a,c,f)=>{if(s===`${this.url}`){let u=new ErrorEvent("error",{message:i,filename:s,lineno:a,colno:c,error:f});this.dispatchEvent(u),this.onerror&&this.onerror(u)}};let o=document.createElement("iframe");o.hidden=!0,document.body.appendChild(this.iframe=o),this.w.document.open(),this.w.document.write(` {% endblock %} {% block scripts %} - + {% for path in config.extra_javascript %} {% endfor %} diff --git a/material/partials/languages/bn.html b/material/partials/languages/bn.html index ee55717b5..b5fed867c 100644 --- a/material/partials/languages/bn.html +++ b/material/partials/languages/bn.html @@ -5,25 +5,52 @@ "language": "bn", "action.edit": "এই পেজ এডিট করুন", "action.skip": "কনটেন্টে যান", + "action.view": "পেজের ভিউ", + "announce.dismiss": "আর কখনো দেখাবে না", + "blog.archive": "সংরক্ষণাগার", + "blog.categories": "বিভাগ", + "blog.categories.in": "বিভাগের মধ্যে", + "blog.continue": "পড়তে থাকুন", + "blog.draft": "খসড়া", + "blog.index": "ইনডেক্সে ফিরে যান", + "blog.meta": "মেটাডেটা", + "blog.references": "সম্পর্কিত লিংক", "clipboard.copy": "ক্লিপবোর্ডে কপি করুন", "clipboard.copied": "ক্লিপবোর্ডে কপি হয়েছে", + "consent.accept": "গ্রহণ", + "consent.manage": "সেটিংস ব্যবস্থাপনা", + "consent.reject": "প্রত্যাখ্যান", "footer": "ফুটার", "footer.next": "পরে", "footer.previous": "পূর্ববর্তী", "header": "হেডার", - "meta.comments": "কমেন্ট", - "meta.source": "সোর্স", + "meta.comments": "মন্তব্য", + "meta.source": "উৎস", "nav": "ন্যাভিগেশন", + "readtime.one": "১ মিনিট পড়া", + "readtime.other": "# মিনিট পড়া", + "rss.created": "আরএসএস ফিড", + "rss.updated": "আপডেট করা বিষয়বস্তুর আরএসএস ফিড", + "search": "অনুসন্ধান করুন", "search.config.pipeline": " ", - "search.placeholder": "সার্চ", - "search.reset": "মুছে ফেলুন", + "search.placeholder": "অনুসন্ধান করুন", + "search.share": "শেয়ার", + "search.reset": "রিসেট", + "search.result.initializer": "অনুসন্ধান শুরু করা হচ্ছে", "search.result.placeholder": "সার্চ টাইপ করুন", "search.result.none": "কিছু পাওয়া যায়নি", "search.result.one": "১ টা ডকুমেন্ট", "search.result.other": "# টা ডকুমেন্ট", + "search.result.more.one": "এই পৃষ্ঠায় আরও ১টি আছে", + "search.result.more.other": "এই পৃষ্ঠায় আরও #টি আছে", + "search.result.term.missing": "অনুপস্থিত", + "select.language": "ভাষা নির্বাচন করুণ", + "select.version": "সংস্করণ নির্বাচন করুণ", "source": "রিপোজিটরিতে যান", + "source.file.contributors": "অবদানকারী", "source.file.date.created": "তৈরি হয়েছে", "source.file.date.updated": "শেষ আপডেট", "tabs": "ট্যাব", - "toc": "টেবিল অফ কনটেন্ট" + "toc": "সূচি তালিকা", + "top": "উপরে ফিরে যাও" }[key] }}{% endmacro %} diff --git a/material/partials/languages/kn.html b/material/partials/languages/kn.html new file mode 100644 index 000000000..876a7e0e5 --- /dev/null +++ b/material/partials/languages/kn.html @@ -0,0 +1,55 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "kn", + "action.edit": "ಈ ಪುಟವನ್ನು ತಿದ್ದುಪಡಿ ಮಾಡಿ", + "action.skip": "ವಿಷಯಕ್ಕೆ ತೆರಳಿ", + "action.view": "ಈ ಪುಟದ ಮೂಲವನ್ನು ವೀಕ್ಷಿಸಿ", + "announce.dismiss": "ಇದನ್ನು ಮತ್ತೊಮ್ಮೆ ತೋರಿಸಬೇಡಿ", + "blog.archive": "ಹಳೆಯ ಲೇಖನ", + "blog.categories": "ವರ್ಗಗಳು", + "blog.categories.in": "ರಲ್ಲಿ", + "blog.continue": "ಓದು ಮುಂದುವರೆಸಿ", + "blog.draft": "ಆರಂಭಿಕ ಬರವಣಿಗೆ", + "blog.index": "ಸೂಚ್ಯಂಕಕ್ಕೆ ಹಿಂತಿರುಗಿ", + "blog.meta": "ಮಾಹಿತಿಯ ಬಗ್ಗೆ ಮಾಹಿತಿ", + "blog.references": "ಸಂಬಂಧಿತ ಉಲ್ಲೇಖಗಳು", + "clipboard.copy": "ಇದನ್ನು ನಕಲಿಸಿ", + "clipboard.copied": "ಇದನ್ನು ನಕಲು ಮಾಡಿದೆ", + "consent.accept": "ನಾನು ಇದನ್ನು ಒಪ್ಪಿಕೊಳ್ಳುತ್ತೇನೆ", + "consent.manage": "ಸಂರಚನೆಯನ್ನು ನಿರ್ವಹಿಸಿ", + "consent.reject": "ನಾನು ಇದನ್ನು ತಿರಸ್ಕರಿಸುತ್ತೇನೆ", + "footer": "ಅಡಿಟಿಪ್ಪಣಿ", + "footer.next": "ಮುಂದಿನ ಸಂಚಿಕೆ", + "footer.previous": "ಹಿಂದಿನ ಸಂಚಿಕೆ", + "header": "ಮೇಲ್ಟಿಪ್ಪಣಿ", + "meta.comments": "ಪ್ರತಿಕ್ರಿಯೆಗಳು", + "meta.source": "ಮೂಲ", + "nav": "ಸಂಚರಣೆ", + "readtime.one": "ಓದಲು ೧ ನಿಮಿಷ ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ", + "readtime.other": "ಓದಲು # ನಿಮಿಷಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ", + "rss.created": "ಆರ್ಎಸ್ಎಸ್ ಸೇವೆ", + "rss.updated": "ಆರ್ಎಸ್ಎಸ್ ಸೇವೆಯಿಂದ ಇತ್ತೀಚಿನ ನವೀಕರಣ", + "search": "ಹುಡುಕಿ", + "search.placeholder": "ಹುಡುಕಿ", + "search.share": "ಹಂಚಿಕೊಳ್ಳಿ", + "search.reset": "ಅಳಿಸು", + "search.result.initializer": "ಹುಡುಕಾಟವನ್ನು ಪ್ರಾರಂಭಿಸಲಾಗುತ್ತಿದೆ", + "search.result.placeholder": "ಬರೆಯುವ ಮೂಲಕ ಹುಡುಕಲು ಪ್ರಾರಂಭಿಸಿ", + "search.result.none": "ಹೊಂದಾಣಿಕೆಯಾಗುವ ದಾಖಲೆಗಳಿಲ್ಲ", + "search.result.one": "೧ ಹೊಂದಾಣಿಕೆಯ ದಾಖಲೆಯಿದೆ", + "search.result.other": "# ಹೊಂದಾಣಿಕೆಯ ದಾಖಲೆಗಳಿವೆ", + "search.result.more.one": "ಈ ಪುಟದಲ್ಲಿ ಇನ್ನೂ ಒಂದು ಕಂಡುಬಂದಿದೆ", + "search.result.more.other": "ಈ ಪುಟದಲ್ಲಿ ಇನ್ನೂ # ಇವೆ", + "search.result.term.missing": "ಕಾಣೆಯಾಗಿದೆ", + "select.language": "ಭಾಷೆಯನ್ನು ಆಯ್ಕೆಮಾಡಿ", + "select.version": "ಆವೃತ್ತಿಯನ್ನು ಆಯ್ಕೆಮಾಡಿ", + "source": "ಭಂಡಾರಕ್ಕೆ ಹೋಗಿ", + "source.file.contributors": "ಕೊಡುಗೆದಾರರು", + "source.file.date.created": "ರಚಿಸಿದ ದಿನಾಂಕ", + "source.file.date.updated": "ಕೊನೆಯ ನವೀಕರಣ ದಿನಾಂಕ", + "tabs": "ವಿವಿಧ ಕಿಟಕಿಗಳು", + "toc": "ವಿಷಯಗಳ ಪಟ್ಟಿ", + "top": "ಮೇಲಕ್ಕೆ ಹಿಂತಿರುಗಿ" +}[key] }}{% endmacro %} diff --git a/material/partials/languages/sa.html b/material/partials/languages/sa.html new file mode 100644 index 000000000..eff71cee2 --- /dev/null +++ b/material/partials/languages/sa.html @@ -0,0 +1,55 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "sa", + "action.edit": "एतत् पृष्ठं सम्पादयतु", + "action.skip": "सामग्रीं त्यजन्तु", + "action.view": "अस्य पृष्ठस्य स्रोतः पश्यन्तु", + "announce.dismiss": "एतत् पुनः न दर्शयतु", + "blog.archive": "लेखागार", + "blog.categories": "श्रेणियाँ", + "blog.categories.in": "इत्यस्मिन्‌", + "blog.continue": "पठनं निरन्तरं कुर्वन्तु", + "blog.draft": "प्रारूप", + "blog.index": "अनुक्रमणिकां प्रति पुनः आगच्छन्तु", + "blog.meta": "परिदत्तांश", + "blog.references": "सन्दर्भाः", + "clipboard.copy": "एतत् प्रतिलिख्यताम्", + "clipboard.copied": "प्रतिलिपितः भवति", + "consent.accept": "अहं तत् स्वीकुर्वन् अस्मि", + "consent.manage": "वविन्यासं प्रबन्धयन्तु", + "consent.reject": "अहं तत् निराकरोमि", + "footer": "पादलेखः", + "footer.next": "अग्रिमः", + "footer.previous": "पूर्वकृत", + "header": "शीर्षकम्", + "meta.comments": "विचाराः", + "meta.source": "स्रोतः", + "nav": "मार्गदर्शनम्", + "readtime.one": "१ निमेषं पठितुं", + "readtime.other": "# निमेषं पठितुं", + "rss.created": "आरएसएस सेवा", + "rss.updated": "आरएसएस सेवातः नवीनतमं अद्यतनम्", + "search": "अन्वेषण", + "search.placeholder": "अन्वेषण", + "search.share": "साझां कुर्वन्तु", + "search.reset": "तत् स्वच्छं कुर्वन्तु", + "search.result.initializer": "अन्वेषणस्य आरम्भः", + "search.result.placeholder": "अन्वेषणं आरभ्य लिखन्तु", + "search.result.none": "मेलयुक्ताः दस्तावेजाः नास्ति", + "search.result.one": "१ मेलकर्ता दस्तावेजः अस्ति", + "search.result.other": "# मेलनदस्तावेजाः सन्ति", + "search.result.more.one": "अस्मिन् पृष्ठे १ अधिकं अस्ति", + "search.result.more.other": "अस्मिन् पृष्ठे # अधिकाः सन्ति", + "search.result.term.missing": "असमेत", + "select.language": "भाषां चिनोतु", + "select.version": "संस्करणं चिनोतु", + "source": "भण्डारं गच्छन्तु", + "source.file.contributors": "अंशदाता", + "source.file.date.created": "ननिर्माणस्य तिथिः", + "source.file.date.updated": "परिवर्तनस्य तिथिः", + "tabs": "दस्तावेजस्य प्रमुखः", + "toc": "सामग्रीसारणी", + "top": "पुनः उपरिभागं प्रति गच्छन्तु" +}[key] }}{% endmacro %} diff --git a/material/partials/languages/te.html b/material/partials/languages/te.html new file mode 100644 index 000000000..2bd6036d6 --- /dev/null +++ b/material/partials/languages/te.html @@ -0,0 +1,55 @@ +{#- + This file was automatically generated - do not edit +-#} +{% macro t(key) %}{{ { + "language": "te", + "action.edit": "ఈ పేజీలో దిద్దుబాట్లు చేయండి", + "action.skip": "సమాచారానికి వెళ్లండి", + "action.view": "నేను ఈ పేజీ యొక్క మూలాన్ని చూడాలనుకుంటున్నాను", + "announce.dismiss": "దీన్ని మళ్లీ చూపవద్దు", + "blog.archive": "పాత వ్యాసం", + "blog.categories": "వర్గాలు", + "blog.categories.in": "లో", + "blog.continue": "చదవడం కొనసాగించండి", + "blog.draft": "ప్రారంభ రచన", + "blog.index": "సూచికకు తిరిగి వెళ్ళు", + "blog.meta": "సమాచారం గురించి సమాచారం", + "blog.references": "సంబంధిత సూచనలు", + "clipboard.copy": "దీనిని అనుకరించు", + "clipboard.copied": "దీనిని అతికించు", + "consent.accept": "నేను దీనిని అంగీకరిస్తున్నాను", + "consent.manage": "ఆకృతీకరణను నిర్వహించండి", + "consent.reject": "నేను దీనిని తిరస్కరిస్తున్నాను", + "footer": "అడిటిప్పణి", + "footer.next": "తదుపరి భాగం", + "footer.previous": "మునుపటి భాగం", + "header": "శీర్షిక విభాగం", + "meta.comments": "అభిప్రాయాలు", + "meta.source": "మూలం", + "nav": "మార్గదర్శక పట్టీ", + "readtime.one": "చదవడానికి ఒక నిమిషం పడుతుంది", + "readtime.other": "చదవడానికి # నిమిషాలు పడుతుంది", + "rss.created": "ఆర్ఎస్ఎస్ సేవ", + "rss.updated": "ఆర్ఎస్ఎస్ సేవ నుండి తాజా నవీకరణ", + "search": "వెతకండి", + "search.placeholder": "వెతకండి", + "search.share": "పంచుకోండి", + "search.reset": "తుడిచివేయు", + "search.result.initializer": "శోధనను ప్రారంభిస్తోంది", + "search.result.placeholder": "రాయడం ద్వారా వెతకడం ప్రారంభించండి", + "search.result.none": "సరిపోలే పత్రాలు లేవు", + "search.result.one": "ఒక సరిపోలే పత్రం", + "search.result.other": "# సరిపోలే పత్రాలు", + "search.result.more.one": "ఈ పేజీలో మరొకటి", + "search.result.more.other": "ఈ పేజీలో ఇంకా # ఉన్నాయి", + "search.result.term.missing": "తప్పిపోయింది", + "select.language": "భాషను ఎంచుకోండి", + "select.version": "సంస్కరణను ఎంచుకోండి", + "source": "భండారానికి వెళ్ళండి", + "source.file.contributors": "సహకారులు", + "source.file.date.created": "సృష్టించబడింది", + "source.file.date.updated": "చివరి నవీకరణ", + "tabs": "వివిధ కిటికీలు", + "toc": "విషయ సూచిక", + "top": "పైకి తిరిగి వెళ్ళు" +}[key] }}{% endmacro %} diff --git a/material/plugins/social/plugin.py b/material/plugins/social/plugin.py index 06b43714e..c2ad516a0 100644 --- a/material/plugins/social/plugin.py +++ b/material/plugins/social/plugin.py @@ -57,8 +57,19 @@ class SocialPluginConfig(Config): # Options for social cards cards = opt.Type(bool, default = True) cards_dir = opt.Type(str, default = "assets/images/social") - cards_color = opt.Type(dict, default = dict()) - cards_font = opt.Optional(opt.Type(str)) + cards_layout_options = opt.Type(dict, default = {}) + + # Deprecated options + cards_color = opt.Deprecated( + option_type = opt.Type(dict, default = {}), + message = + "Deprecated, use 'cards_layout_options.background_color' " + "and 'cards_layout_options.color' with 'default' layout" + ) + cards_font = opt.Deprecated( + option_type = opt.Type(str), + message = "Deprecated, use 'cards_layout_options.font_family'" + ) # ----------------------------------------------------------------------------- @@ -67,6 +78,7 @@ class SocialPlugin(BasePlugin[SocialPluginConfig]): def __init__(self): self._executor = concurrent.futures.ThreadPoolExecutor(4) + self.custom_dir = None # Retrieve configuration def on_config(self, config): @@ -74,6 +86,24 @@ class SocialPlugin(BasePlugin[SocialPluginConfig]): if not self.config.cards: return + # Move color options + if "cards_color" in self.config: + + # Move background color to new option + value = self.config.cards_color.get("fill") + if value: + self.config.cards_layout_options["background_color"] = value + + # Move color to new option + value = self.config.cards_color.get("text") + if value: + self.config.cards_layout_options["color"] = value + + # Move font family to new option + if "cards_font" in self.config: + value = self.config.cards_font + self.config.cards_layout_options["font_family"] = value + # Check if required dependencies are installed if not dependencies: log.error( @@ -109,7 +139,18 @@ class SocialPlugin(BasePlugin[SocialPluginConfig]): self.color = colors.get(primary, self.color) # Retrieve color overrides - self.color = { **self.color, **self.config.cards_color } + options = self.config.cards_layout_options + self.color = { + "fill": options.get("background_color", self.color["fill"]), + "text": options.get("color", self.color["text"]) + } + + # Retrieve custom_dir path + for user_config in config.user_configs: + custom_dir = user_config.get("theme", {}).get("custom_dir") + if custom_dir: + self.custom_dir = custom_dir + break # Retrieve logo and font self._resized_logo_promise = self._executor.submit(self._load_resized_logo, config) @@ -343,8 +384,15 @@ class SocialPlugin(BasePlugin[SocialPluginConfig]): if "logo" in theme: _, extension = os.path.splitext(theme["logo"]) - # Load SVG and convert to PNG path = os.path.join(config.docs_dir, theme["logo"]) + + # Allow users to put the logo inside their custom_dir (theme["logo"] case) + if self.custom_dir: + custom_dir_logo = os.path.join(self.custom_dir, theme["logo"]) + if os.path.exists(custom_dir_logo): + path = custom_dir_logo + + # Load SVG and convert to PNG if extension == ".svg": return self._load_logo_svg(path) @@ -352,10 +400,11 @@ class SocialPlugin(BasePlugin[SocialPluginConfig]): return Image.open(path).convert("RGBA") # Handle icons - logo = "material/library" icon = theme["icon"] or {} if "logo" in icon and icon["logo"]: logo = icon["logo"] + else: + logo = "material/library" # Resolve path of package base = os.path.abspath(os.path.join( @@ -363,8 +412,15 @@ class SocialPlugin(BasePlugin[SocialPluginConfig]): "../.." )) - # Load icon data and fill with color path = f"{base}/.icons/{logo}.svg" + + # Allow users to put the logo inside their custom_dir (theme["icon"]["logo"] case) + if self.custom_dir: + custom_dir_logo = os.path.join(self.custom_dir, ".icons", f"{logo}.svg") + if os.path.exists(custom_dir_logo): + path = custom_dir_logo + + # Load icon data and fill with color return self._load_logo_svg(path, self.color["text"]) # Load SVG file and convert to PNG @@ -382,28 +438,41 @@ class SocialPlugin(BasePlugin[SocialPluginConfig]): # Retrieve font def _load_font(self, config): - name = self.config.cards_font + name = self.config.cards_layout_options.get("font_family") if not name: # Retrieve from theme (default: Roboto) theme = config.theme - if theme["font"]: + if isinstance(theme["font"], dict) and "text" in theme["font"]: name = theme["font"]["text"] else: name = "Roboto" - # Retrieve font files, if not already done - files = os.listdir(self.cache) - files = [file for file in files if file.endswith(".ttf") or file.endswith(".otf")] or ( - self._load_font_from_google(name) - ) + # Google fonts can return varients like OpenSans_Condensed-Regular.ttf so + # we only use the font requested e.g. OpenSans-Regular.ttf + font_filename_base = name.replace(' ', '') + filename_regex = re.escape(font_filename_base)+r"-(\w+)\.[ot]tf$" - # Map available font weights to file paths font = dict() - for file in files: - match = re.search(r"-(\w+)\.[ot]tf$", file) - if match: - font[match.group(1)] = os.path.join(self.cache, file) + # Check for cached files - note these may be in subfolders + for currentpath, folders, files in os.walk(self.cache): + for file in files: + # Map available font weights to file paths + fname = os.path.join(currentpath, file) + match = re.search(filename_regex, fname) + if match: + font[match.group(1)] = fname + + # If none found, fetch from Google and try again + if len(font) == 0: + self._load_font_from_google(name) + for currentpath, folders, files in os.walk(self.cache): + for file in files: + # Map available font weights to file paths + fname = os.path.join(currentpath, file) + match = re.search(filename_regex, fname) + if match: + font[match.group(1)] = fname # Return available font weights with fallback return defaultdict(lambda: font["Regular"], font) diff --git a/mkdocs.yml b/mkdocs.yml index 25f00ac59..440c64bae 100755 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -24,7 +24,7 @@ site_url: https://squidfunk.github.io/mkdocs-material/ site_author: Martin Donath site_description: >- Write your documentation in Markdown and create a professional static site in - minutes – searchable, customizable, for all devices + minutes – searchable, customizable, in 60+ languages, for all devices # Repository repo_name: squidfunk/mkdocs-material diff --git a/package-lock.json b/package-lock.json index a975e526f..ea8fb1319 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "mkdocs-material", - "version": "9.1.8", + "version": "9.1.12", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "mkdocs-material", - "version": "9.1.8", + "version": "9.1.12", "license": "MIT", "dependencies": { "array-flat-polyfill": "^1.0.1", @@ -16,34 +16,34 @@ "fuzzaldrin-plus": "^0.6.0", "iframe-worker": "^1.0.3", "lunr": "^2.3.9", - "lunr-languages": "^1.10.0", + "lunr-languages": "^1.12.0", "resize-observer-polyfill": "^1.5.1", - "rxjs": "^7.8.0", + "rxjs": "^7.8.1", "unfetch": "^5.0.0", "url-polyfill": "^1.1.12" }, "devDependencies": { "@fortawesome/fontawesome-free": "^6.4.0", "@mdi/svg": "^7.2.96", - "@primer/octicons": "^18.3.0", + "@primer/octicons": "^19.1.0", "@types/css-modules": "^1.0.2", "@types/escape-html": "^1.0.2", "@types/fuzzaldrin-plus": "^0.6.2", "@types/html-minifier": "^4.0.2", "@types/lunr": "^2.3.4", - "@types/node": "^18.15.11", + "@types/node": "^20.1.4", "@types/resize-observer-browser": "^0.1.7", "@types/sass": "^1.45.0", - "@typescript-eslint/eslint-plugin": "^5.59.0", - "@typescript-eslint/parser": "^5.59.0", + "@typescript-eslint/eslint-plugin": "^5.59.5", + "@typescript-eslint/parser": "^5.59.5", "autoprefixer": "^10.4.14", "chokidar": "^3.5.3", "cssnano": "5.1.0", - "esbuild": "^0.17.17", - "eslint": "^8.38.0", + "esbuild": "^0.17.19", + "eslint": "^8.40.0", "eslint-plugin-eslint-comments": "^3.2.0", "eslint-plugin-import": "^2.27.5", - "eslint-plugin-jsdoc": "^43.0.0", + "eslint-plugin-jsdoc": "^44.2.3", "eslint-plugin-no-null": "^1.0.2", "github-types": "^1.0.0", "gitlab": "^14.2.2", @@ -51,29 +51,29 @@ "html-minifier": "^4.0.0", "material-design-color": "^2.3.2", "material-shadows": "^3.0.1", - "npm-check-updates": "^16.10.8", + "npm-check-updates": "^16.10.12", "npm-run-all": "^4.1.5", - "postcss": "^8.4.22", + "postcss": "^8.4.23", "postcss-dir-pseudo-class": "^7.0.2", "postcss-inline-svg": "^6.0.0", "postcss-logical": "5.0.4", "postcss-pseudo-is": "^0.3.0", - "preact": "^10.13.2", + "preact": "^10.14.0", "rimraf": "^5.0.0", - "sass": "^1.62.0", - "simple-icons": "^8.10.0", - "stylelint": "^15.5.0", + "sass": "^1.62.1", + "simple-icons": "^8.13.0", + "stylelint": "^15.6.1", "stylelint-config-recess-order": "^4.0.0", "stylelint-config-recommended": "^12.0.0", - "stylelint-config-standard-scss": "^8.0.0", - "stylelint-scss": "^4.6.0", + "stylelint-config-standard-scss": "^9.0.0", + "stylelint-scss": "^5.0.0", "svgo": "3.0.0", "tiny-glob": "^0.2.9", "ts-node": "^10.9.1", "typescript": "^5.0.4" }, "engines": { - "node": ">= 16" + "node": ">= 18" } }, "node_modules/@babel/code-frame": { @@ -196,23 +196,23 @@ } }, "node_modules/@es-joy/jsdoccomment": { - "version": "0.37.0", - "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.37.0.tgz", - "integrity": "sha512-hjK0wnsPCYLlF+HHB4R/RbUjOWeLW2SlarB67+Do5WsKILOkmIZvvPJFbtWSmbypxcjpoECLAMzoao0D4Bg5ZQ==", + "version": "0.39.3", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.39.3.tgz", + "integrity": "sha512-q6pObzaS+aTA96kl4DF91QILNpSiDE8S89cQdJnhIc7hWzwIHPnfBnsiBVa0Z/R9pLHdZTnXEMnggGMmCq7HmA==", "dev": true, "dependencies": { "comment-parser": "1.3.1", - "esquery": "^1.4.0", + "esquery": "^1.5.0", "jsdoc-type-pratt-parser": "~4.0.0" }, "engines": { - "node": "^14 || ^16 || ^17 || ^18 || ^19" + "node": ">=16" } }, "node_modules/@esbuild/android-arm": { - "version": "0.17.17", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.17.tgz", - "integrity": "sha512-E6VAZwN7diCa3labs0GYvhEPL2M94WLF8A+czO8hfjREXxba8Ng7nM5VxV+9ihNXIY1iQO1XxUU4P7hbqbICxg==", + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.19.tgz", + "integrity": "sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==", "cpu": [ "arm" ], @@ -226,9 +226,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.17.17", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.17.tgz", - "integrity": "sha512-jaJ5IlmaDLFPNttv0ofcwy/cfeY4bh/n705Tgh+eLObbGtQBK3EPAu+CzL95JVE4nFAliyrnEu0d32Q5foavqg==", + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz", + "integrity": "sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==", "cpu": [ "arm64" ], @@ -242,9 +242,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.17.17", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.17.tgz", - "integrity": "sha512-446zpfJ3nioMC7ASvJB1pszHVskkw4u/9Eu8s5yvvsSDTzYh4p4ZIRj0DznSl3FBF0Z/mZfrKXTtt0QCoFmoHA==", + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.19.tgz", + "integrity": "sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==", "cpu": [ "x64" ], @@ -258,9 +258,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.17.17", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.17.tgz", - "integrity": "sha512-m/gwyiBwH3jqfUabtq3GH31otL/0sE0l34XKpSIqR7NjQ/XHQ3lpmQHLHbG8AHTGCw8Ao059GvV08MS0bhFIJQ==", + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz", + "integrity": "sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==", "cpu": [ "arm64" ], @@ -274,9 +274,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.17.17", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.17.tgz", - "integrity": "sha512-4utIrsX9IykrqYaXR8ob9Ha2hAY2qLc6ohJ8c0CN1DR8yWeMrTgYFjgdeQ9LIoTOfLetXjuCu5TRPHT9yKYJVg==", + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz", + "integrity": "sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==", "cpu": [ "x64" ], @@ -290,9 +290,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.17.17", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.17.tgz", - "integrity": "sha512-4PxjQII/9ppOrpEwzQ1b0pXCsFLqy77i0GaHodrmzH9zq2/NEhHMAMJkJ635Ns4fyJPFOlHMz4AsklIyRqFZWA==", + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz", + "integrity": "sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==", "cpu": [ "arm64" ], @@ -306,9 +306,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.17.17", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.17.tgz", - "integrity": "sha512-lQRS+4sW5S3P1sv0z2Ym807qMDfkmdhUYX30GRBURtLTrJOPDpoU0kI6pVz1hz3U0+YQ0tXGS9YWveQjUewAJw==", + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz", + "integrity": "sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==", "cpu": [ "x64" ], @@ -322,9 +322,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.17.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.17.tgz", - "integrity": "sha512-biDs7bjGdOdcmIk6xU426VgdRUpGg39Yz6sT9Xp23aq+IEHDb/u5cbmu/pAANpDB4rZpY/2USPhCA+w9t3roQg==", + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz", + "integrity": "sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==", "cpu": [ "arm" ], @@ -338,9 +338,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.17.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.17.tgz", - "integrity": "sha512-2+pwLx0whKY1/Vqt8lyzStyda1v0qjJ5INWIe+d8+1onqQxHLLi3yr5bAa4gvbzhZqBztifYEu8hh1La5+7sUw==", + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz", + "integrity": "sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==", "cpu": [ "arm64" ], @@ -354,9 +354,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.17.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.17.tgz", - "integrity": "sha512-IBTTv8X60dYo6P2t23sSUYym8fGfMAiuv7PzJ+0LcdAndZRzvke+wTVxJeCq4WgjppkOpndL04gMZIFvwoU34Q==", + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz", + "integrity": "sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==", "cpu": [ "ia32" ], @@ -370,9 +370,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.17.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.17.tgz", - "integrity": "sha512-WVMBtcDpATjaGfWfp6u9dANIqmU9r37SY8wgAivuKmgKHE+bWSuv0qXEFt/p3qXQYxJIGXQQv6hHcm7iWhWjiw==", + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz", + "integrity": "sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==", "cpu": [ "loong64" ], @@ -386,9 +386,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.17.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.17.tgz", - "integrity": "sha512-2kYCGh8589ZYnY031FgMLy0kmE4VoGdvfJkxLdxP4HJvWNXpyLhjOvxVsYjYZ6awqY4bgLR9tpdYyStgZZhi2A==", + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz", + "integrity": "sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==", "cpu": [ "mips64el" ], @@ -402,9 +402,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.17.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.17.tgz", - "integrity": "sha512-KIdG5jdAEeAKogfyMTcszRxy3OPbZhq0PPsW4iKKcdlbk3YE4miKznxV2YOSmiK/hfOZ+lqHri3v8eecT2ATwQ==", + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz", + "integrity": "sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==", "cpu": [ "ppc64" ], @@ -418,9 +418,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.17.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.17.tgz", - "integrity": "sha512-Cj6uWLBR5LWhcD/2Lkfg2NrkVsNb2sFM5aVEfumKB2vYetkA/9Uyc1jVoxLZ0a38sUhFk4JOVKH0aVdPbjZQeA==", + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz", + "integrity": "sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==", "cpu": [ "riscv64" ], @@ -434,9 +434,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.17.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.17.tgz", - "integrity": "sha512-lK+SffWIr0XsFf7E0srBjhpkdFVJf3HEgXCwzkm69kNbRar8MhezFpkIwpk0qo2IOQL4JE4mJPJI8AbRPLbuOQ==", + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz", + "integrity": "sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==", "cpu": [ "s390x" ], @@ -450,9 +450,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.17.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.17.tgz", - "integrity": "sha512-XcSGTQcWFQS2jx3lZtQi7cQmDYLrpLRyz1Ns1DzZCtn898cWfm5Icx/DEWNcTU+T+tyPV89RQtDnI7qL2PObPg==", + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz", + "integrity": "sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==", "cpu": [ "x64" ], @@ -466,9 +466,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.17.17", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.17.tgz", - "integrity": "sha512-RNLCDmLP5kCWAJR+ItLM3cHxzXRTe4N00TQyQiimq+lyqVqZWGPAvcyfUBM0isE79eEZhIuGN09rAz8EL5KdLA==", + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz", + "integrity": "sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==", "cpu": [ "x64" ], @@ -482,9 +482,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.17.17", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.17.tgz", - "integrity": "sha512-PAXswI5+cQq3Pann7FNdcpSUrhrql3wKjj3gVkmuz6OHhqqYxKvi6GgRBoaHjaG22HV/ZZEgF9TlS+9ftHVigA==", + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz", + "integrity": "sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==", "cpu": [ "x64" ], @@ -498,9 +498,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.17.17", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.17.tgz", - "integrity": "sha512-V63egsWKnx/4V0FMYkr9NXWrKTB5qFftKGKuZKFIrAkO/7EWLFnbBZNM1CvJ6Sis+XBdPws2YQSHF1Gqf1oj/Q==", + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz", + "integrity": "sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==", "cpu": [ "x64" ], @@ -514,9 +514,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.17.17", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.17.tgz", - "integrity": "sha512-YtUXLdVnd6YBSYlZODjWzH+KzbaubV0YVd6UxSfoFfa5PtNJNaW+1i+Hcmjpg2nEe0YXUCNF5bkKy1NnBv1y7Q==", + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz", + "integrity": "sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==", "cpu": [ "arm64" ], @@ -530,9 +530,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.17.17", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.17.tgz", - "integrity": "sha512-yczSLRbDdReCO74Yfc5tKG0izzm+lPMYyO1fFTcn0QNwnKmc3K+HdxZWLGKg4pZVte7XVgcFku7TIZNbWEJdeQ==", + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz", + "integrity": "sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==", "cpu": [ "ia32" ], @@ -546,9 +546,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.17.17", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.17.tgz", - "integrity": "sha512-FNZw7H3aqhF9OyRQbDDnzUApDXfC1N6fgBhkqEO2jvYCJ+DxMTfZVqg3AX0R1khg1wHTBRD5SdcibSJ+XF6bFg==", + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz", + "integrity": "sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==", "cpu": [ "x64" ], @@ -586,14 +586,14 @@ } }, "node_modules/@eslint/eslintrc": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.2.tgz", - "integrity": "sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.3.tgz", + "integrity": "sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ==", "dev": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.5.1", + "espree": "^9.5.2", "globals": "^13.19.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", @@ -609,9 +609,9 @@ } }, "node_modules/@eslint/js": { - "version": "8.38.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.38.0.tgz", - "integrity": "sha512-IoD2MfUnOV58ghIHCiil01PcohxjbYR/qCxsoC+xNgUwh1EY8jOOrYmu3d3a71+tJJ23uscEV4X2HJWMsPJu4g==", + "version": "8.40.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.40.0.tgz", + "integrity": "sha512-ElyB54bJIhXQYVKjDSvCkPO1iU1tSAeVQJbllWJq1XQSmmA4dgFk8CbiBGpiOPxleE48vDogxCtmMYku4HSVLA==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -666,6 +666,73 @@ "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", "dev": true }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "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==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/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 + }, + "node_modules/@isaacs/cliui/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, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, "node_modules/@jridgewell/resolve-uri": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz", @@ -745,14 +812,13 @@ } }, "node_modules/@npmcli/git": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-4.0.3.tgz", - "integrity": "sha512-8cXNkDIbnXPVbhXMmQ7/bklCAjtmPaXfI9aEM4iH+xSuEHINLMHhlfESvVwdqmHJRJkR48vNJTSUvoF6GRPSFA==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-4.0.4.tgz", + "integrity": "sha512-5yZghx+u5M47LghaybLCkdSyFzV/w4OuH12d96HO389Ik9CDsLaDZJVynSGGVJOLn6gy/k7Dz5XYcplM3uxXRg==", "dev": true, "dependencies": { "@npmcli/promise-spawn": "^6.0.0", "lru-cache": "^7.4.4", - "mkdirp": "^1.0.4", "npm-pick-manifest": "^8.0.0", "proc-log": "^3.0.0", "promise-inflight": "^1.0.1", @@ -765,30 +831,18 @@ } }, "node_modules/@npmcli/git/node_modules/lru-cache": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.17.0.tgz", - "integrity": "sha512-zSxlVVwOabhVyTi6E8gYv2cr6bXK+8ifYz5/uyJb9feXX6NACVDwY4p5Ut3WC3Ivo/QhpARHU3iujx2xGAYHbQ==", + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", "dev": true, "engines": { "node": ">=12" } }, - "node_modules/@npmcli/git/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@npmcli/git/node_modules/which": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-3.0.0.tgz", - "integrity": "sha512-nla//68K9NU6yRiwDY/Q8aU6siKlSs64aEC7+IV56QoAuyQT2ovsJcgGYGyqMOmI/CGN1BOR6mM5EN0FBO+zyQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/which/-/which-3.0.1.tgz", + "integrity": "sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==", "dev": true, "dependencies": { "isexe": "^2.0.0" @@ -830,18 +884,6 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "node_modules/@npmcli/move-file/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@npmcli/move-file/node_modules/rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", @@ -879,9 +921,9 @@ } }, "node_modules/@npmcli/promise-spawn/node_modules/which": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-3.0.0.tgz", - "integrity": "sha512-nla//68K9NU6yRiwDY/Q8aU6siKlSs64aEC7+IV56QoAuyQT2ovsJcgGYGyqMOmI/CGN1BOR6mM5EN0FBO+zyQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/which/-/which-3.0.1.tgz", + "integrity": "sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==", "dev": true, "dependencies": { "isexe": "^2.0.0" @@ -894,9 +936,9 @@ } }, "node_modules/@npmcli/run-script": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-6.0.0.tgz", - "integrity": "sha512-ql+AbRur1TeOdl1FY+RAwGW9fcr4ZwiVKabdvm93mujGREVuVLbdkXRJDrkTXSdCjaxYydr1wlA2v67jxWG5BQ==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-6.0.2.tgz", + "integrity": "sha512-NCcr1uQo1k5U+SYlnIrbAh3cxy+OQT1VtqiAbxdymSlptbzBb62AjH2xXgjNCoP073hoa1CfCAcwoZ8k96C4nA==", "dev": true, "dependencies": { "@npmcli/node-gyp": "^3.0.0", @@ -910,9 +952,9 @@ } }, "node_modules/@npmcli/run-script/node_modules/which": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-3.0.0.tgz", - "integrity": "sha512-nla//68K9NU6yRiwDY/Q8aU6siKlSs64aEC7+IV56QoAuyQT2ovsJcgGYGyqMOmI/CGN1BOR6mM5EN0FBO+zyQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/which/-/which-3.0.1.tgz", + "integrity": "sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==", "dev": true, "dependencies": { "isexe": "^2.0.0" @@ -924,6 +966,16 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=14" + } + }, "node_modules/@pnpm/network.ca-file": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@pnpm/network.ca-file/-/network.ca-file-1.0.1.tgz", @@ -950,14 +1002,23 @@ } }, "node_modules/@primer/octicons": { - "version": "18.3.0", - "resolved": "https://registry.npmjs.org/@primer/octicons/-/octicons-18.3.0.tgz", - "integrity": "sha512-vyUej5rKjXfqHAmYSo2k3pA9IsL5KJaYOBVXvc188FwBfUweA+WVP3qwWyZTSQnp9LK6yOajGyr0SCMIa9ombw==", + "version": "19.1.0", + "resolved": "https://registry.npmjs.org/@primer/octicons/-/octicons-19.1.0.tgz", + "integrity": "sha512-5o90F89gNPnAk1qfzl3hb/TcsUjk5g0WFI+fBRHLkBKzB3uc9EvxTpgzjXhhjyriOkrBOjFo58D0sjtwttaQww==", "dev": true, "dependencies": { "object-assign": "^4.1.1" } }, + "node_modules/@sigstore/protobuf-specs": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.1.0.tgz", + "integrity": "sha512-a31EnjuIDSX8IXBUib3cYLDRlPMU36AWX4xS8ysLaNu4ZzUesDiPt83pgrW2X1YLMe5L2HbDyaKK5BrL4cNKaQ==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/@sindresorhus/is": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.3.0.tgz", @@ -1024,6 +1085,52 @@ "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==", "dev": true }, + "node_modules/@tufjs/canonical-json": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-1.0.0.tgz", + "integrity": "sha512-QTnf++uxunWvG2z3UFNzAoQPHxnSXOwtaI3iJ+AohhV+5vONuArPjJE7aPXPVXfXJsqrVbZBu9b81AJoSd09IQ==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@tufjs/models": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-1.0.4.tgz", + "integrity": "sha512-qaGV9ltJP0EO25YfFUPhxRVK0evXFIAGicsVXuRim4Ed9cjPxYhNnNJ49SFmbeLgtxpslIkX317IgpfcHPVj/A==", + "dev": true, + "dependencies": { + "@tufjs/canonical-json": "1.0.0", + "minimatch": "^9.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@tufjs/models/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@tufjs/models/node_modules/minimatch": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.0.tgz", + "integrity": "sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/@types/clean-css": { "version": "4.2.5", "resolved": "https://registry.npmjs.org/@types/clean-css/-/clean-css-4.2.5.tgz", @@ -1094,9 +1201,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "18.15.11", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.11.tgz", - "integrity": "sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q==", + "version": "20.1.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.1.4.tgz", + "integrity": "sha512-At4pvmIOki8yuwLtd7BNHl3CiWNbtclUbNtScGx4OHfBd4/oWoJC8KRCIxXwkdndzhxOsPXihrsOoydxBjlE9Q==", "dev": true }, "node_modules/@types/normalize-package-data": { @@ -1128,9 +1235,9 @@ } }, "node_modules/@types/semver": { - "version": "7.3.13", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", - "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==", + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.0.tgz", + "integrity": "sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==", "dev": true }, "node_modules/@types/uglify-js": { @@ -1143,15 +1250,15 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.59.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.0.tgz", - "integrity": "sha512-p0QgrEyrxAWBecR56gyn3wkG15TJdI//eetInP3zYRewDh0XS+DhB3VUAd3QqvziFsfaQIoIuZMxZRB7vXYaYw==", + "version": "5.59.5", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.5.tgz", + "integrity": "sha512-feA9xbVRWJZor+AnLNAr7A8JRWeZqHUf4T9tlP+TN04b05pFVhO5eN7/O93Y/1OUlLMHKbnJisgDURs/qvtqdg==", "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.59.0", - "@typescript-eslint/type-utils": "5.59.0", - "@typescript-eslint/utils": "5.59.0", + "@typescript-eslint/scope-manager": "5.59.5", + "@typescript-eslint/type-utils": "5.59.5", + "@typescript-eslint/utils": "5.59.5", "debug": "^4.3.4", "grapheme-splitter": "^1.0.4", "ignore": "^5.2.0", @@ -1177,14 +1284,14 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "5.59.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.59.0.tgz", - "integrity": "sha512-qK9TZ70eJtjojSUMrrEwA9ZDQ4N0e/AuoOIgXuNBorXYcBDk397D2r5MIe1B3cok/oCtdNC5j+lUUpVB+Dpb+w==", + "version": "5.59.5", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.59.5.tgz", + "integrity": "sha512-NJXQC4MRnF9N9yWqQE2/KLRSOLvrrlZb48NGVfBa+RuPMN6B7ZcK5jZOvhuygv4D64fRKnZI4L4p8+M+rfeQuw==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.59.0", - "@typescript-eslint/types": "5.59.0", - "@typescript-eslint/typescript-estree": "5.59.0", + "@typescript-eslint/scope-manager": "5.59.5", + "@typescript-eslint/types": "5.59.5", + "@typescript-eslint/typescript-estree": "5.59.5", "debug": "^4.3.4" }, "engines": { @@ -1204,13 +1311,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "5.59.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.0.tgz", - "integrity": "sha512-tsoldKaMh7izN6BvkK6zRMINj4Z2d6gGhO2UsI8zGZY3XhLq1DndP3Ycjhi1JwdwPRwtLMW4EFPgpuKhbCGOvQ==", + "version": "5.59.5", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.5.tgz", + "integrity": "sha512-jVecWwnkX6ZgutF+DovbBJirZcAxgxC0EOHYt/niMROf8p4PwxxG32Qdhj/iIQQIuOflLjNkxoXyArkcIP7C3A==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.59.0", - "@typescript-eslint/visitor-keys": "5.59.0" + "@typescript-eslint/types": "5.59.5", + "@typescript-eslint/visitor-keys": "5.59.5" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -1221,13 +1328,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "5.59.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.59.0.tgz", - "integrity": "sha512-d/B6VSWnZwu70kcKQSCqjcXpVH+7ABKH8P1KNn4K7j5PXXuycZTPXF44Nui0TEm6rbWGi8kc78xRgOC4n7xFgA==", + "version": "5.59.5", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.59.5.tgz", + "integrity": "sha512-4eyhS7oGym67/pSxA2mmNq7X164oqDYNnZCUayBwJZIRVvKpBCMBzFnFxjeoDeShjtO6RQBHBuwybuX3POnDqg==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "5.59.0", - "@typescript-eslint/utils": "5.59.0", + "@typescript-eslint/typescript-estree": "5.59.5", + "@typescript-eslint/utils": "5.59.5", "debug": "^4.3.4", "tsutils": "^3.21.0" }, @@ -1248,9 +1355,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "5.59.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.0.tgz", - "integrity": "sha512-yR2h1NotF23xFFYKHZs17QJnB51J/s+ud4PYU4MqdZbzeNxpgUr05+dNeCN/bb6raslHvGdd6BFCkVhpPk/ZeA==", + "version": "5.59.5", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.5.tgz", + "integrity": "sha512-xkfRPHbqSH4Ggx4eHRIO/eGL8XL4Ysb4woL8c87YuAo8Md7AUjyWKa9YMwTL519SyDPrfEgKdewjkxNCVeJW7w==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -1261,13 +1368,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.59.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.0.tgz", - "integrity": "sha512-sUNnktjmI8DyGzPdZ8dRwW741zopGxltGs/SAPgGL/AAgDpiLsCFLcMNSpbfXfmnNeHmK9h3wGmCkGRGAoUZAg==", + "version": "5.59.5", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.5.tgz", + "integrity": "sha512-+XXdLN2CZLZcD/mO7mQtJMvCkzRfmODbeSKuMY/yXbGkzvA9rJyDY5qDYNoiz2kP/dmyAxXquL2BvLQLJFPQIg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.59.0", - "@typescript-eslint/visitor-keys": "5.59.0", + "@typescript-eslint/types": "5.59.5", + "@typescript-eslint/visitor-keys": "5.59.5", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -1288,17 +1395,17 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "5.59.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.59.0.tgz", - "integrity": "sha512-GGLFd+86drlHSvPgN/el6dRQNYYGOvRSDVydsUaQluwIW3HvbXuxyuD5JETvBt/9qGYe+lOrDk6gRrWOHb/FvA==", + "version": "5.59.5", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.59.5.tgz", + "integrity": "sha512-sCEHOiw+RbyTii9c3/qN74hYDPNORb8yWCoPLmB7BIflhplJ65u2PBpdRla12e3SSTJ2erRkPjz7ngLHhUegxA==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@types/json-schema": "^7.0.9", "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.59.0", - "@typescript-eslint/types": "5.59.0", - "@typescript-eslint/typescript-estree": "5.59.0", + "@typescript-eslint/scope-manager": "5.59.5", + "@typescript-eslint/types": "5.59.5", + "@typescript-eslint/typescript-estree": "5.59.5", "eslint-scope": "^5.1.1", "semver": "^7.3.7" }, @@ -1314,12 +1421,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.59.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.0.tgz", - "integrity": "sha512-qZ3iXxQhanchCeaExlKPV3gDQFxMUmU35xfd5eCXB6+kUw1TUAbIy2n7QIrwz9s98DQLzNWyHp61fY0da4ZcbA==", + "version": "5.59.5", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.5.tgz", + "integrity": "sha512-qL+Oz+dbeBRTeyJTIy0eniD3uvqU7x+y1QceBismZ41hd4aBSRh8UAw4pZP0+XzLuPZmx4raNMq/I+59W2lXKA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.59.0", + "@typescript-eslint/types": "5.59.5", "eslint-visitor-keys": "^3.3.0" }, "engines": { @@ -1391,13 +1498,13 @@ } }, "node_modules/agentkeepalive": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.1.tgz", - "integrity": "sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.3.0.tgz", + "integrity": "sha512-7Epl1Blf4Sy37j4v9f9FjICCh4+KAQOyXgHEwlyBiAQLbhKdq/i2QQU3amQalS/wPhdPzDXPL5DMR5bkn+YeWg==", "dev": true, "dependencies": { "debug": "^4.1.0", - "depd": "^1.1.2", + "depd": "^2.0.0", "humanize-ms": "^1.2.1" }, "engines": { @@ -1840,21 +1947,20 @@ } }, "node_modules/cacache": { - "version": "17.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-17.0.4.tgz", - "integrity": "sha512-Z/nL3gU+zTUjz5pCA5vVjYM8pmaw2kxM7JEiE0fv3w77Wj+sFbi70CrBruUWH0uNcEdvLDixFpgA2JM4F4DBjA==", + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-17.1.0.tgz", + "integrity": "sha512-hXpFU+Z3AfVmNuiLve1qxWHMq0RSIt5gjCKAHi/M6DktwFwDdAXAtunl1i4WSKaaVcU9IsRvXFg42jTHigcC6Q==", "dev": true, "dependencies": { "@npmcli/fs": "^3.1.0", "fs-minipass": "^3.0.0", - "glob": "^8.0.1", + "glob": "^10.2.2", "lru-cache": "^7.7.1", - "minipass": "^4.0.0", + "minipass": "^5.0.0", "minipass-collect": "^1.0.2", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", "ssri": "^10.0.0", "tar": "^6.1.11", "unique-filename": "^3.0.0" @@ -1873,43 +1979,49 @@ } }, "node_modules/cacache/node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "version": "10.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.2.3.tgz", + "integrity": "sha512-Kb4rfmBVE3eQTAimgmeqc2LwSnN0wIOkkUL6HmxEFxNJ4fHghYHVbFba/HcGcRjE6s9KoMNK3rSOwkL4PioZjg==", "dev": true, "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" + "foreground-child": "^3.1.0", + "jackspeak": "^2.0.3", + "minimatch": "^9.0.0", + "minipass": "^5.0.0", + "path-scurry": "^1.7.0" + }, + "bin": { + "glob": "dist/cjs/src/bin.js" }, "engines": { - "node": ">=12" + "node": ">=16 || 14 >=14.17" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/cacache/node_modules/lru-cache": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.17.0.tgz", - "integrity": "sha512-zSxlVVwOabhVyTi6E8gYv2cr6bXK+8ifYz5/uyJb9feXX6NACVDwY4p5Ut3WC3Ivo/QhpARHU3iujx2xGAYHbQ==", + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", "dev": true, "engines": { "node": ">=12" } }, "node_modules/cacache/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.0.tgz", + "integrity": "sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=10" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/cacheable-lookup": { @@ -2783,12 +2895,12 @@ "dev": true }, "node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", "dev": true, "engines": { - "node": ">= 0.6" + "node": ">= 0.8" } }, "node_modules/diff": { @@ -2812,12 +2924,6 @@ "node": ">=8" } }, - "node_modules/dlv": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", - "dev": true - }, "node_modules/doctrine": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", @@ -3006,9 +3112,9 @@ } }, "node_modules/esbuild": { - "version": "0.17.17", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.17.tgz", - "integrity": "sha512-/jUywtAymR8jR4qsa2RujlAF7Krpt5VWi72Q2yuLD4e/hvtNcFQ0I1j8m/bxq238pf3/0KO5yuXNpuLx8BE1KA==", + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.19.tgz", + "integrity": "sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==", "dev": true, "hasInstallScript": true, "bin": { @@ -3018,28 +3124,28 @@ "node": ">=12" }, "optionalDependencies": { - "@esbuild/android-arm": "0.17.17", - "@esbuild/android-arm64": "0.17.17", - "@esbuild/android-x64": "0.17.17", - "@esbuild/darwin-arm64": "0.17.17", - "@esbuild/darwin-x64": "0.17.17", - "@esbuild/freebsd-arm64": "0.17.17", - "@esbuild/freebsd-x64": "0.17.17", - "@esbuild/linux-arm": "0.17.17", - "@esbuild/linux-arm64": "0.17.17", - "@esbuild/linux-ia32": "0.17.17", - "@esbuild/linux-loong64": "0.17.17", - "@esbuild/linux-mips64el": "0.17.17", - "@esbuild/linux-ppc64": "0.17.17", - "@esbuild/linux-riscv64": "0.17.17", - "@esbuild/linux-s390x": "0.17.17", - "@esbuild/linux-x64": "0.17.17", - "@esbuild/netbsd-x64": "0.17.17", - "@esbuild/openbsd-x64": "0.17.17", - "@esbuild/sunos-x64": "0.17.17", - "@esbuild/win32-arm64": "0.17.17", - "@esbuild/win32-ia32": "0.17.17", - "@esbuild/win32-x64": "0.17.17" + "@esbuild/android-arm": "0.17.19", + "@esbuild/android-arm64": "0.17.19", + "@esbuild/android-x64": "0.17.19", + "@esbuild/darwin-arm64": "0.17.19", + "@esbuild/darwin-x64": "0.17.19", + "@esbuild/freebsd-arm64": "0.17.19", + "@esbuild/freebsd-x64": "0.17.19", + "@esbuild/linux-arm": "0.17.19", + "@esbuild/linux-arm64": "0.17.19", + "@esbuild/linux-ia32": "0.17.19", + "@esbuild/linux-loong64": "0.17.19", + "@esbuild/linux-mips64el": "0.17.19", + "@esbuild/linux-ppc64": "0.17.19", + "@esbuild/linux-riscv64": "0.17.19", + "@esbuild/linux-s390x": "0.17.19", + "@esbuild/linux-x64": "0.17.19", + "@esbuild/netbsd-x64": "0.17.19", + "@esbuild/openbsd-x64": "0.17.19", + "@esbuild/sunos-x64": "0.17.19", + "@esbuild/win32-arm64": "0.17.19", + "@esbuild/win32-ia32": "0.17.19", + "@esbuild/win32-x64": "0.17.19" } }, "node_modules/escalade": { @@ -3078,15 +3184,15 @@ } }, "node_modules/eslint": { - "version": "8.38.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.38.0.tgz", - "integrity": "sha512-pIdsD2jwlUGf/U38Jv97t8lq6HpaU/G9NKbYmpWpZGw3LdTNhZLbJePqxOXGB5+JEKfOPU/XLxYxFh03nr1KTg==", + "version": "8.40.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.40.0.tgz", + "integrity": "sha512-bvR+TsP9EHL3TqNtj9sCNJVAFK3fBN8Q7g5waghxyRsPLIMwL73XSKnZFK0hk/O2ANC+iAoq6PWMQ+IfBAJIiQ==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.4.0", - "@eslint/eslintrc": "^2.0.2", - "@eslint/js": "8.38.0", + "@eslint/eslintrc": "^2.0.3", + "@eslint/js": "8.40.0", "@humanwhocodes/config-array": "^0.11.8", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", @@ -3096,9 +3202,9 @@ "debug": "^4.3.2", "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.1", - "eslint-visitor-keys": "^3.4.0", - "espree": "^9.5.1", + "eslint-scope": "^7.2.0", + "eslint-visitor-keys": "^3.4.1", + "espree": "^9.5.2", "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -3259,22 +3365,22 @@ } }, "node_modules/eslint-plugin-jsdoc": { - "version": "43.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-43.0.0.tgz", - "integrity": "sha512-Z1Ox1MAGcFV7ZNKe5eYIk4ALUtCjo1r4HBMoAYUs+bBKPcHro5A/YDDHOTsQ7zxcuUnm5R9rXCZTvGWcihwZpg==", + "version": "44.2.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-44.2.3.tgz", + "integrity": "sha512-Ut9jL/170sMKRRFX7P7Ecmdc9XkPcANZs00QWG+VeMN/mcs0kzE6mXCmbhB4EUsLtRASLRAasOwVq0GN5r0oKw==", "dev": true, "dependencies": { - "@es-joy/jsdoccomment": "~0.37.0", + "@es-joy/jsdoccomment": "~0.39.1", "are-docs-informative": "^0.0.2", "comment-parser": "1.3.1", "debug": "^4.3.4", "escape-string-regexp": "^4.0.0", "esquery": "^1.5.0", - "semver": "^7.3.8", + "semver": "^7.5.0", "spdx-expression-parse": "^3.0.1" }, "engines": { - "node": "^14 || ^16 || ^17 || ^18 || ^19" + "node": ">=16" }, "peerDependencies": { "eslint": "^7.0.0 || ^8.0.0" @@ -3318,9 +3424,9 @@ } }, "node_modules/eslint-visitor-keys": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz", - "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==", + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", + "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -3391,9 +3497,9 @@ } }, "node_modules/eslint/node_modules/eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz", + "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==", "dev": true, "dependencies": { "esrecurse": "^4.3.0", @@ -3401,6 +3507,9 @@ }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/eslint/node_modules/estraverse": { @@ -3495,14 +3604,14 @@ } }, "node_modules/espree": { - "version": "9.5.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.1.tgz", - "integrity": "sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==", + "version": "9.5.2", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.2.tgz", + "integrity": "sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==", "dev": true, "dependencies": { "acorn": "^8.8.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.0" + "eslint-visitor-keys": "^3.4.1" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -3719,6 +3828,34 @@ "is-callable": "^1.1.3" } }, + "node_modules/foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/foreground-child/node_modules/signal-exit": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.2.tgz", + "integrity": "sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/form-data": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", @@ -3765,12 +3902,12 @@ } }, "node_modules/fs-minipass": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.1.tgz", - "integrity": "sha512-MhaJDcFRTuLidHrIttu0RDGyyXs/IYHVmlcxfLAEFIWjc1vdLAkdwT7Ace2u7DbitWC0toKMl5eJZRYNVreIMw==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.2.tgz", + "integrity": "sha512-2GAfyfoaCDRrM6jaOS3UsBts8yJ55VioXdWcOL7dK9zdAuKT71+WBA4ifnNYqVjYv+4SsPxjK0JT4yIIn4cA/g==", "dev": true, "dependencies": { - "minipass": "^4.0.0" + "minipass": "^5.0.0" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" @@ -4574,12 +4711,12 @@ } }, "node_modules/ignore-walk": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.1.tgz", - "integrity": "sha512-/c8MxUAqpRccq+LyDOecwF+9KqajueJHh8fz7g3YqjMZt+NSfJzx05zrKiXwa2sKwFCzaiZ5qUVfRj0pmxixEA==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.3.tgz", + "integrity": "sha512-C7FfFoTA+bI10qfeydT8aZbvr91vAEU+2W5BZUlzPec47oNb07SsOfwYrtxuvOYdUApPP/Qlh4DtAO51Ekk2QA==", "dev": true, "dependencies": { - "minimatch": "^6.1.6" + "minimatch": "^9.0.0" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" @@ -4595,15 +4732,15 @@ } }, "node_modules/ignore-walk/node_modules/minimatch": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-6.2.0.tgz", - "integrity": "sha512-sauLxniAmvnhhRjFwPNnJKaPFYyddAgbYdeUpHULtCT/GhzdCx/MDNy+Y40lBxTQUrMzDE8e0S43Z5uqfO0REg==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.0.tgz", + "integrity": "sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=10" + "node": ">=16 || 14 >=14.17" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -5060,6 +5197,24 @@ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", "dev": true }, + "node_modules/jackspeak": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.2.0.tgz", + "integrity": "sha512-r5XBrqIJfwRIjRt/Xr5fv9Wh09qyhHfKnYddDlpM+ibRR20qrYActpCAgU6U+d53EOEjzkvxPMVHSlgR7leXrQ==", + "dev": true, + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, "node_modules/jju": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", @@ -5368,9 +5523,9 @@ "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==" }, "node_modules/lunr-languages": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/lunr-languages/-/lunr-languages-1.10.0.tgz", - "integrity": "sha512-BBjKKcwrieJlzwwc9M5H/MRXGJ2qyOSDx/NXYiwkuKjiLOOoouh0WsDzeqcLoUWcX31y7i8sb8IgsZKObdUCkw==" + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/lunr-languages/-/lunr-languages-1.12.0.tgz", + "integrity": "sha512-C2z02jt74ymrDocBwxYB4Cr1LNZj9rHGLTH/00+JuoT6eJOSSuPBzeqQG8kjnlPUQe+/PAWv1/KHbDT+YYYRnA==" }, "node_modules/make-error": { "version": "1.3.6", @@ -5488,9 +5643,9 @@ } }, "node_modules/make-fetch-happen/node_modules/lru-cache": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.17.0.tgz", - "integrity": "sha512-zSxlVVwOabhVyTi6E8gYv2cr6bXK+8ifYz5/uyJb9feXX6NACVDwY4p5Ut3WC3Ivo/QhpARHU3iujx2xGAYHbQ==", + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", "dev": true, "engines": { "node": ">=12" @@ -5520,18 +5675,6 @@ "node": ">=8" } }, - "node_modules/make-fetch-happen/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/make-fetch-happen/node_modules/rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", @@ -5845,9 +5988,9 @@ } }, "node_modules/minipass": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.4.tgz", - "integrity": "sha512-lwycX3cBMTvcejsHITUgYj6Gy6A7Nh4Q6h9NP4sTHY1ccJlC7yKzDmiShEHsJ16Jf1nKGDEaiHxiltsJEvk0nQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", "dev": true, "engines": { "node": ">=8" @@ -6025,6 +6168,18 @@ "node": ">=8" } }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -6235,9 +6390,9 @@ } }, "node_modules/npm-check-updates": { - "version": "16.10.8", - "resolved": "https://registry.npmjs.org/npm-check-updates/-/npm-check-updates-16.10.8.tgz", - "integrity": "sha512-e+p3rUCvaU0iKOvi+/Xiyx+mLe9/aRTu9Zrc7+TR6H2q+uFgmXEwqbXYN9Ngqsta8gdTjpn751UD5MEOogO5cA==", + "version": "16.10.12", + "resolved": "https://registry.npmjs.org/npm-check-updates/-/npm-check-updates-16.10.12.tgz", + "integrity": "sha512-js/Gg9+5RTyOQZnmFcPswLxf4sK/H5AE/8bl4tkleLJTC1gXhQqqELUFwXqppNvx488aXxN52ZY9k9MSSvEW2A==", "dev": true, "dependencies": { "chalk": "^5.2.0", @@ -6254,7 +6409,7 @@ "json-parse-helpfulerror": "^1.0.3", "jsonlines": "^0.1.1", "lodash": "^4.17.21", - "minimatch": "^8.0.3", + "minimatch": "^9.0.0", "p-map": "^4.0.0", "pacote": "15.1.1", "parse-github-url": "^1.0.2", @@ -6262,8 +6417,8 @@ "prompts-ncu": "^3.0.0", "rc-config-loader": "^4.1.2", "remote-git-tags": "^3.0.0", - "rimraf": "^4.4.1", - "semver": "^7.3.8", + "rimraf": "^5.0.0", + "semver": "^7.4.0", "semver-utils": "^1.1.4", "source-map-support": "^0.5.21", "spawn-please": "^2.0.1", @@ -6301,9 +6456,9 @@ } }, "node_modules/npm-check-updates/node_modules/commander": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.0.tgz", - "integrity": "sha512-zS5PnTI22FIRM6ylNW8G4Ap0IEOyk62fhLSD0+uHRT9McRCLGpkVNvao4bjimpK/GShynyQkFFxHhwMcETmduA==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", "dev": true, "engines": { "node": ">=14" @@ -6325,24 +6480,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/npm-check-updates/node_modules/glob": { - "version": "9.3.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-9.3.5.tgz", - "integrity": "sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "minimatch": "^8.0.2", - "minipass": "^4.2.4", - "path-scurry": "^1.6.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/npm-check-updates/node_modules/hosted-git-info": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.1.0.tgz", @@ -6356,9 +6493,9 @@ } }, "node_modules/npm-check-updates/node_modules/ini": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-4.0.0.tgz", - "integrity": "sha512-t0ikzf5qkSFqRl1e6ejKBe+Tk2bsQd8ivEkcisyGXsku2t8NvXZ1Y3RRz5vxrDgOrTBOi13CvGsVoI5wVpd7xg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.0.tgz", + "integrity": "sha512-HLR38RSF2iulAzc3I/sma4CoYxQP844rPYCNfzGDOHqa/YqVlwuuZgBx6M50/X8dKgzk0cm1qRg3+47mK2N+cQ==", "dev": true, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" @@ -6389,9 +6526,9 @@ } }, "node_modules/npm-check-updates/node_modules/minimatch": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-8.0.4.tgz", - "integrity": "sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.0.tgz", + "integrity": "sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" @@ -6442,24 +6579,6 @@ "node": ">=8" } }, - "node_modules/npm-check-updates/node_modules/rimraf": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.4.1.tgz", - "integrity": "sha512-Gk8NlF062+T9CqNGn6h4tls3k6T1+/nXdOcSZVikNVtlRdYpA7wRJJMoXmuvOnLW844rPjdQ7JgXCYM6PPC/og==", - "dev": true, - "dependencies": { - "glob": "^9.2.0" - }, - "bin": { - "rimraf": "dist/cjs/src/bin.js" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/npm-check-updates/node_modules/strip-json-comments": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-5.0.0.tgz", @@ -6473,9 +6592,9 @@ } }, "node_modules/npm-install-checks": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-6.0.0.tgz", - "integrity": "sha512-SBU9oFglRVZnfElwAtF14NivyulDqF1VKqqwNsFW9HDcbHMAPHpRSsVFgKuwFGq/hVvWZExz62Th0kvxn/XE7Q==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-6.1.1.tgz", + "integrity": "sha512-dH3GmQL4vsPtld59cOn8uY0iOqRmqKvV+DLGwNXV/Q7MDgD2QfOADWd/mFXcIE5LVhYYGjA3baz6W9JneqnuCw==", "dev": true, "dependencies": { "semver": "^7.1.1" @@ -6485,9 +6604,9 @@ } }, "node_modules/npm-normalize-package-bin": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.0.tgz", - "integrity": "sha512-g+DPQSkusnk7HYXr75NtzkIP4+N81i3RPsGFidF3DzHd9MT9wWngmqoeg/fnHFz5MNdtG4w03s+QnhewSLTT2Q==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz", + "integrity": "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==", "dev": true, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" @@ -6521,9 +6640,9 @@ } }, "node_modules/npm-package-arg/node_modules/lru-cache": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.17.0.tgz", - "integrity": "sha512-zSxlVVwOabhVyTi6E8gYv2cr6bXK+8ifYz5/uyJb9feXX6NACVDwY4p5Ut3WC3Ivo/QhpARHU3iujx2xGAYHbQ==", + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", "dev": true, "engines": { "node": ">=12" @@ -6557,13 +6676,13 @@ } }, "node_modules/npm-registry-fetch": { - "version": "14.0.3", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-14.0.3.tgz", - "integrity": "sha512-YaeRbVNpnWvsGOjX2wk5s85XJ7l1qQBGAp724h8e2CZFFhMSuw9enom7K1mWVUtvXO1uUSFIAPofQK0pPN0ZcA==", + "version": "14.0.5", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-14.0.5.tgz", + "integrity": "sha512-kIDMIo4aBm6xg7jOttupWZamsZRkAqMqwqqbVXnUqstY5+tapvv6bkH/qMR76jdgV+YljEUCyWx3hRYMrJiAgA==", "dev": true, "dependencies": { "make-fetch-happen": "^11.0.0", - "minipass": "^4.0.0", + "minipass": "^5.0.0", "minipass-fetch": "^3.0.0", "minipass-json-stream": "^1.0.1", "minizlib": "^2.1.2", @@ -6575,18 +6694,18 @@ } }, "node_modules/npm-registry-fetch/node_modules/lru-cache": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.17.0.tgz", - "integrity": "sha512-zSxlVVwOabhVyTi6E8gYv2cr6bXK+8ifYz5/uyJb9feXX6NACVDwY4p5Ut3WC3Ivo/QhpARHU3iujx2xGAYHbQ==", + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", "dev": true, "engines": { "node": ">=12" } }, "node_modules/npm-registry-fetch/node_modules/make-fetch-happen": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.0.3.tgz", - "integrity": "sha512-oPLh5m10lRNNZDjJ2kP8UpboUx2uFXVaVweVe/lWut4iHWcQEmfqSVJt2ihZsFI8HbpwyyocaXbCAWf0g1ukIA==", + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz", + "integrity": "sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==", "dev": true, "dependencies": { "agentkeepalive": "^4.2.1", @@ -6596,7 +6715,7 @@ "https-proxy-agent": "^5.0.0", "is-lambda": "^1.0.1", "lru-cache": "^7.7.1", - "minipass": "^4.0.0", + "minipass": "^5.0.0", "minipass-fetch": "^3.0.0", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", @@ -6610,12 +6729,12 @@ } }, "node_modules/npm-registry-fetch/node_modules/minipass-fetch": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.1.tgz", - "integrity": "sha512-t9/wowtf7DYkwz8cfMSt0rMwiyNIBXf5CKZ3S5ZMqRqMYT0oLTp0x1WorMI9WTwvaPg21r1JbFxJMum8JrLGfw==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.3.tgz", + "integrity": "sha512-n5ITsTkDqYkYJZjcRWzZt9qnZKCT7nKCosJhHoj7S7zD+BP4jVbWs+odsniw5TA3E0sLomhTKOKjF86wf11PuQ==", "dev": true, "dependencies": { - "minipass": "^4.0.0", + "minipass": "^5.0.0", "minipass-sized": "^1.0.3", "minizlib": "^2.1.2" }, @@ -6990,6 +7109,15 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, + "node_modules/pacote/node_modules/minipass": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.8.tgz", + "integrity": "sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/param-case": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", @@ -7070,9 +7198,9 @@ "dev": true }, "node_modules/path-scurry": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.6.4.tgz", - "integrity": "sha512-Qp/9IHkdNiXJ3/Kon++At2nVpnhRiPq/aSvQN+H3U1WZbvNRK0RIQK/o4HMqPoXjpuGJUEWpHSs6Mnjxqh3TQg==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.7.0.tgz", + "integrity": "sha512-UkZUeDjczjYRE495+9thsgcVgsaCPkaw80slmfVFgllxY+IO8ubTsOpFVjDPROBqJdHfVPUFRHPBV/WciOVfWg==", "dev": true, "dependencies": { "lru-cache": "^9.0.0", @@ -7094,15 +7222,6 @@ "node": ">=16.14" } }, - "node_modules/path-scurry/node_modules/minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", @@ -7152,9 +7271,9 @@ } }, "node_modules/postcss": { - "version": "8.4.22", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.22.tgz", - "integrity": "sha512-XseknLAfRHzVWjCEtdviapiBtfLdgyzExD50Rg2ePaucEesyh8Wv4VPdW0nbyDa1ydbrAxV19jvMT4+LFmcNUA==", + "version": "8.4.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.23.tgz", + "integrity": "sha512-bQ3qMcpF6A/YjR55xtoTr0jGOlnPOKAIMdOWiv0EIT6HVPEaJiJB4NLljSbiHoC2RX7DN5Uvjtpbg1NPdwv1oA==", "dev": true, "funding": [ { @@ -7701,9 +7820,9 @@ } }, "node_modules/postcss-selector-parser": { - "version": "6.0.11", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz", - "integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==", + "version": "6.0.12", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.12.tgz", + "integrity": "sha512-NdxGCAZdRrwVI1sy59+Wzrh+pMMHxapGnpfenDVlMEXoOcvt4pGE0JLK9YY2F5dLxcFYA/YbVQKhcGU+FtSYQg==", "dev": true, "dependencies": { "cssesc": "^3.0.0", @@ -7877,9 +7996,9 @@ "dev": true }, "node_modules/preact": { - "version": "10.13.2", - "resolved": "https://registry.npmjs.org/preact/-/preact-10.13.2.tgz", - "integrity": "sha512-q44QFLhOhty2Bd0Y46fnYW0gD/cbVM9dUVtNTDKPcdXSMA7jfY+Jpd6rk3GB0lcQss0z5s/6CmVP0Z/hV+g6pw==", + "version": "10.14.0", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.14.0.tgz", + "integrity": "sha512-4oh2sf208mKAdL5AQtzXxE387iSGNWMX/YjwMjH6m/XROILKAmx5Pbs2FsXrW7ixoVGGjpfYSBB833vOwYxNxw==", "dev": true, "funding": { "type": "opencollective", @@ -8071,12 +8190,12 @@ } }, "node_modules/read-package-json": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-6.0.0.tgz", - "integrity": "sha512-b/9jxWJ8EwogJPpv99ma+QwtqB7FSl3+V6UXS7Aaay8/5VwMY50oIFooY1UKXMWpfNCM6T/PoGqa5GD1g9xf9w==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-6.0.3.tgz", + "integrity": "sha512-4QbpReW4kxFgeBQ0vPAqh2y8sXEB3D4t3jsXbJKIhBiF80KT6XRo45reqwtftju5J6ru1ax06A2Gb/wM1qCOEQ==", "dev": true, "dependencies": { - "glob": "^8.0.1", + "glob": "^10.2.2", "json-parse-even-better-errors": "^3.0.0", "normalize-package-data": "^5.0.0", "npm-normalize-package-bin": "^3.0.0" @@ -8117,19 +8236,22 @@ } }, "node_modules/read-package-json/node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "version": "10.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.2.3.tgz", + "integrity": "sha512-Kb4rfmBVE3eQTAimgmeqc2LwSnN0wIOkkUL6HmxEFxNJ4fHghYHVbFba/HcGcRjE6s9KoMNK3rSOwkL4PioZjg==", "dev": true, "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" + "foreground-child": "^3.1.0", + "jackspeak": "^2.0.3", + "minimatch": "^9.0.0", + "minipass": "^5.0.0", + "path-scurry": "^1.7.0" + }, + "bin": { + "glob": "dist/cjs/src/bin.js" }, "engines": { - "node": ">=12" + "node": ">=16 || 14 >=14.17" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -8157,24 +8279,27 @@ } }, "node_modules/read-package-json/node_modules/lru-cache": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.17.0.tgz", - "integrity": "sha512-zSxlVVwOabhVyTi6E8gYv2cr6bXK+8ifYz5/uyJb9feXX6NACVDwY4p5Ut3WC3Ivo/QhpARHU3iujx2xGAYHbQ==", + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", "dev": true, "engines": { "node": ">=12" } }, "node_modules/read-package-json/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.0.tgz", + "integrity": "sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=10" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/read-package-json/node_modules/normalize-package-data": { @@ -8357,9 +8482,9 @@ } }, "node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, "dependencies": { "inherits": "^2.0.3", @@ -8610,15 +8735,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/rimraf/node_modules/minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -8643,9 +8759,9 @@ } }, "node_modules/rxjs": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz", - "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==", + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", "dependencies": { "tslib": "^2.1.0" } @@ -8655,6 +8771,26 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, "node_modules/safe-regex-test": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", @@ -8677,9 +8813,9 @@ "optional": true }, "node_modules/sass": { - "version": "1.62.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.62.0.tgz", - "integrity": "sha512-Q4USplo4pLYgCi+XlipZCWUQz5pkg/ruSSgJ0WRDSb/+3z9tXUOkQ7QPYn4XrhZKYAK4HlpaQecRwKLJX6+DBg==", + "version": "1.62.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.62.1.tgz", + "integrity": "sha512-NHpxIzN29MXvWiuswfc1W3I0N8SXBd8UR26WntmDlRYf0bSADnwnOjsyMZ3lMezSlArD33Vs3YFhp7dWvL770A==", "dev": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", @@ -8699,9 +8835,9 @@ "integrity": "sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0=" }, "node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", + "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -8788,13 +8924,14 @@ "dev": true }, "node_modules/sigstore": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-1.0.0.tgz", - "integrity": "sha512-e+qfbn/zf1+rCza/BhIA//Awmf0v1pa5HQS8Xk8iXrn9bgytytVLqYD0P7NSqZ6IELTgq+tcDvLPkQjNHyWLNg==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-1.5.0.tgz", + "integrity": "sha512-i3nhvdobiPj8XrXNIggjeur6+A5iAQ4f+r1bR5SGitFJBbthy/6c7Fz0h+kY70Wua1FSMdDr/UEhXSVRXNpynw==", "dev": true, "dependencies": { + "@sigstore/protobuf-specs": "^0.1.0", "make-fetch-happen": "^11.0.1", - "tuf-js": "^1.0.0" + "tuf-js": "^1.1.3" }, "bin": { "sigstore": "bin/sigstore.js" @@ -8804,18 +8941,18 @@ } }, "node_modules/sigstore/node_modules/lru-cache": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.17.0.tgz", - "integrity": "sha512-zSxlVVwOabhVyTi6E8gYv2cr6bXK+8ifYz5/uyJb9feXX6NACVDwY4p5Ut3WC3Ivo/QhpARHU3iujx2xGAYHbQ==", + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", "dev": true, "engines": { "node": ">=12" } }, "node_modules/sigstore/node_modules/make-fetch-happen": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.0.3.tgz", - "integrity": "sha512-oPLh5m10lRNNZDjJ2kP8UpboUx2uFXVaVweVe/lWut4iHWcQEmfqSVJt2ihZsFI8HbpwyyocaXbCAWf0g1ukIA==", + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz", + "integrity": "sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==", "dev": true, "dependencies": { "agentkeepalive": "^4.2.1", @@ -8825,7 +8962,7 @@ "https-proxy-agent": "^5.0.0", "is-lambda": "^1.0.1", "lru-cache": "^7.7.1", - "minipass": "^4.0.0", + "minipass": "^5.0.0", "minipass-fetch": "^3.0.0", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", @@ -8839,12 +8976,12 @@ } }, "node_modules/sigstore/node_modules/minipass-fetch": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.1.tgz", - "integrity": "sha512-t9/wowtf7DYkwz8cfMSt0rMwiyNIBXf5CKZ3S5ZMqRqMYT0oLTp0x1WorMI9WTwvaPg21r1JbFxJMum8JrLGfw==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.3.tgz", + "integrity": "sha512-n5ITsTkDqYkYJZjcRWzZt9qnZKCT7nKCosJhHoj7S7zD+BP4jVbWs+odsniw5TA3E0sLomhTKOKjF86wf11PuQ==", "dev": true, "dependencies": { - "minipass": "^4.0.0", + "minipass": "^5.0.0", "minipass-sized": "^1.0.3", "minizlib": "^2.1.2" }, @@ -8856,9 +8993,9 @@ } }, "node_modules/simple-icons": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/simple-icons/-/simple-icons-8.10.0.tgz", - "integrity": "sha512-q3MX9Og3ekffeY4vA2EEhKIzuVqARI4zAnK0wgQ1wJLIbzhspRrauRqd6eUO2YT3eH09uqRIVLphf0S0apBT/g==", + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/simple-icons/-/simple-icons-8.13.0.tgz", + "integrity": "sha512-rS75HEr/E6/7jEFpWrKfhMhDopdqrZiXa6PveKlUWS12kz7Evv2s7ZrMKKpKKF8OsM3sNP0/FEIe0q4lHx9EvA==", "dev": true, "engines": { "node": ">=0.12.18" @@ -9053,12 +9190,12 @@ } }, "node_modules/ssri": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.1.tgz", - "integrity": "sha512-WVy6di9DlPOeBWEjMScpNipeSX2jIZBGEn5Uuo8Q7aIuFEuDX0pw8RxcOjlD1TWP4obi24ki7m/13+nFpcbXrw==", + "version": "10.0.4", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.4.tgz", + "integrity": "sha512-12+IR2CB2C28MMAw0Ncqwj5QbTcs0nGIhgJzYWzDkb21vWmfNI83KS4f3Ci6GI98WreIfG7o9UXp3C0qbpA8nQ==", "dev": true, "dependencies": { - "minipass": "^4.0.0" + "minipass": "^5.0.0" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" @@ -9089,26 +9226,6 @@ "safe-buffer": "~5.2.0" } }, - "node_modules/string_decoder/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, "node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", @@ -9123,6 +9240,21 @@ "node": ">=8" } }, + "node_modules/string-width-cjs": { + "name": "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, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/string.prototype.padend": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.2.tgz", @@ -9180,6 +9312,19 @@ "node": ">=8" } }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", @@ -9236,14 +9381,14 @@ } }, "node_modules/stylelint": { - "version": "15.5.0", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-15.5.0.tgz", - "integrity": "sha512-jyMO3R1QtE5mUS4v40+Gg+sIQBqe7CF1xPslxycDzNVkIBCUD4O+5F1vLPq16VmunUTv4qG9o2rUKLnU5KkVeQ==", + "version": "15.6.1", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-15.6.1.tgz", + "integrity": "sha512-d8icFBlVl93Elf3Z5ABQNOCe4nx69is3D/NZhDLAie1eyYnpxfeKe7pCfqzT5W4F8vxHCLSDfV8nKNJzogvV2Q==", "dev": true, "dependencies": { - "@csstools/css-parser-algorithms": "^2.1.0", - "@csstools/css-tokenizer": "^2.1.0", - "@csstools/media-query-list-parser": "^2.0.2", + "@csstools/css-parser-algorithms": "^2.1.1", + "@csstools/css-tokenizer": "^2.1.1", + "@csstools/media-query-list-parser": "^2.0.4", "@csstools/selector-specificity": "^2.2.0", "balanced-match": "^2.0.0", "colord": "^2.9.3", @@ -9268,11 +9413,11 @@ "micromatch": "^4.0.5", "normalize-path": "^3.0.0", "picocolors": "^1.0.0", - "postcss": "^8.4.21", + "postcss": "^8.4.23", "postcss-media-query-parser": "^0.2.3", "postcss-resolve-nested-selector": "^0.1.1", "postcss-safe-parser": "^6.0.0", - "postcss-selector-parser": "^6.0.11", + "postcss-selector-parser": "^6.0.12", "postcss-value-parser": "^4.2.0", "resolve-from": "^5.0.0", "string-width": "^4.2.3", @@ -9282,7 +9427,7 @@ "svg-tags": "^1.0.0", "table": "^6.8.1", "v8-compile-cache": "^2.3.0", - "write-file-atomic": "^5.0.0" + "write-file-atomic": "^5.0.1" }, "bin": { "stylelint": "bin/stylelint.js" @@ -9317,18 +9462,18 @@ } }, "node_modules/stylelint-config-recommended-scss": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-10.0.0.tgz", - "integrity": "sha512-+YvPgUHi0W5mCJCKdupBCIsWPYNbWuJcRmFtSYujwNg+41ljFknhO9bpY6C+oahv659zW7W1AT7i6DQvJYYr1A==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-11.0.0.tgz", + "integrity": "sha512-EDghTDU7aOv2LTsRZvcT1w8mcjUaMhuy+t38iV5I/0Qiu6ixdkRwhLEMul3K/fnB2v9Nwqvb3xpvJfPH+HduDw==", "dev": true, "dependencies": { "postcss-scss": "^4.0.6", - "stylelint-config-recommended": "^11.0.0", + "stylelint-config-recommended": "^12.0.0", "stylelint-scss": "^4.6.0" }, "peerDependencies": { "postcss": "^8.3.3", - "stylelint": "^15.3.0" + "stylelint": "^15.5.0" }, "peerDependenciesMeta": { "postcss": { @@ -9336,39 +9481,45 @@ } } }, - "node_modules/stylelint-config-recommended-scss/node_modules/stylelint-config-recommended": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-11.0.0.tgz", - "integrity": "sha512-SoGIHNI748OCZn6BxFYT83ytWoYETCINVHV3LKScVAWQQauWdvmdDqJC5YXWjpBbxg2E761Tg5aUGKLFOVhEkA==", + "node_modules/stylelint-config-recommended-scss/node_modules/stylelint-scss": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-4.7.0.tgz", + "integrity": "sha512-TSUgIeS0H3jqDZnby1UO1Qv3poi1N8wUYIJY6D1tuUq2MN3lwp/rITVo0wD+1SWTmRm0tNmGO0b7nKInnqF6Hg==", "dev": true, + "dependencies": { + "postcss-media-query-parser": "^0.2.3", + "postcss-resolve-nested-selector": "^0.1.1", + "postcss-selector-parser": "^6.0.11", + "postcss-value-parser": "^4.2.0" + }, "peerDependencies": { - "stylelint": "^15.3.0" + "stylelint": "^14.5.1 || ^15.0.0" } }, "node_modules/stylelint-config-standard": { - "version": "32.0.0", - "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-32.0.0.tgz", - "integrity": "sha512-UnGJxYDyYFrIE9CjDMZRkrNh2o4lOtO+MVZ9qG5b8yARfsWho0GMx4YvhHfsv8zKKgHeWX2wfeyxmuoqcaYZ4w==", + "version": "33.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-33.0.0.tgz", + "integrity": "sha512-eyxnLWoXImUn77+ODIuW9qXBDNM+ALN68L3wT1lN2oNspZ7D9NVGlNHb2QCUn4xDug6VZLsh0tF8NyoYzkgTzg==", "dev": true, "dependencies": { - "stylelint-config-recommended": "^11.0.0" + "stylelint-config-recommended": "^12.0.0" }, "peerDependencies": { - "stylelint": "^15.4.0" + "stylelint": "^15.5.0" } }, "node_modules/stylelint-config-standard-scss": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/stylelint-config-standard-scss/-/stylelint-config-standard-scss-8.0.0.tgz", - "integrity": "sha512-TDT/gJD/0LUDoUgkjF1uoI/4DfczXHxg7gJVcWT4/JbE6k5hszVuI14reNX+tEwSyMNhcK2BA7izrK+uVAz7XA==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-standard-scss/-/stylelint-config-standard-scss-9.0.0.tgz", + "integrity": "sha512-yPKpJsrZn4ybuQZx/DkEHuCjw7pJginErE/47dFhCnrvD48IJ4UYec8tSiCuJWMA3HRjbIa3nh5ZeSauDGuVAg==", "dev": true, "dependencies": { - "stylelint-config-recommended-scss": "^10.0.0", - "stylelint-config-standard": "^32.0.0" + "stylelint-config-recommended-scss": "^11.0.0", + "stylelint-config-standard": "^33.0.0" }, "peerDependencies": { "postcss": "^8.3.3", - "stylelint": "^15.4.0" + "stylelint": "^15.5.0" }, "peerDependenciesMeta": { "postcss": { @@ -9376,15 +9527,6 @@ } } }, - "node_modules/stylelint-config-standard/node_modules/stylelint-config-recommended": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-11.0.0.tgz", - "integrity": "sha512-SoGIHNI748OCZn6BxFYT83ytWoYETCINVHV3LKScVAWQQauWdvmdDqJC5YXWjpBbxg2E761Tg5aUGKLFOVhEkA==", - "dev": true, - "peerDependencies": { - "stylelint": "^15.3.0" - } - }, "node_modules/stylelint-order": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/stylelint-order/-/stylelint-order-6.0.2.tgz", @@ -9399,12 +9541,11 @@ } }, "node_modules/stylelint-scss": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-4.6.0.tgz", - "integrity": "sha512-M+E0BQim6G4XEkaceEhfVjP/41C9Klg5/tTPTCQVlgw/jm2tvB+OXJGaU0TDP5rnTCB62aX6w+rT+gqJW/uwjA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-5.0.0.tgz", + "integrity": "sha512-5Ee5kG3JIcP2jk2PMoFMiNmW/815V+wK5o37X5ke90ihWMpPXI9iyqeA6zEWipWSRXeQc0kqbd7hKqiR+wPKNA==", "dev": true, "dependencies": { - "dlv": "^1.1.3", "postcss-media-query-parser": "^0.2.3", "postcss-resolve-nested-selector": "^0.1.1", "postcss-selector-parser": "^6.0.11", @@ -9473,14 +9614,26 @@ "node": ">=8" } }, + "node_modules/stylelint/node_modules/signal-exit": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.1.tgz", + "integrity": "sha512-uUWsN4aOxJAS8KOuf3QMyFtgm1pkb6I+KRZbRF/ghdf5T7sM+B1lLLzPDxswUjkmHyxQAVzEgG35E3NzDM9GVw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/stylelint/node_modules/write-file-atomic": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.0.tgz", - "integrity": "sha512-R7NYMnHSlV42K54lwY9lvW6MnSm1HSJqZL3xiSgi9E7//FYaI74r2G0rd+/X6VAMkHEdzxQaU5HUOXWUz5kA/w==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz", + "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==", "dev": true, "dependencies": { "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" + "signal-exit": "^4.0.1" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" @@ -9628,14 +9781,14 @@ "dev": true }, "node_modules/tar": { - "version": "6.1.13", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.13.tgz", - "integrity": "sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==", + "version": "6.1.14", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.14.tgz", + "integrity": "sha512-piERznXu0U7/pW7cdSn7hjqySIVTYT6F76icmFk7ptU7dDYlXTm5r9A6K04R2vU3olYgoKeo1Cg3eeu5nhftAw==", "dev": true, "dependencies": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", - "minipass": "^4.0.0", + "minipass": "^5.0.0", "minizlib": "^2.1.1", "mkdirp": "^1.0.3", "yallist": "^4.0.0" @@ -9668,18 +9821,6 @@ "node": ">=8" } }, - "node_modules/tar/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", @@ -9811,40 +9952,32 @@ } }, "node_modules/tuf-js": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-1.0.0.tgz", - "integrity": "sha512-1dxsQwESDzACJjTdYHQ4wJ1f/of7jALWKfJEHSBWUQB/5UTJUx9SW6GHXp4mZ1KvdBRJCpGjssoPFGi4hvw8/A==", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-1.1.6.tgz", + "integrity": "sha512-CXwFVIsXGbVY4vFiWF7TJKWmlKJAT8TWkH4RmiohJRcDJInix++F0dznDmoVbtJNzZ8yLprKUG4YrDIhv3nBMg==", "dev": true, "dependencies": { - "make-fetch-happen": "^11.0.1", - "minimatch": "^6.1.0" + "@tufjs/models": "1.0.4", + "debug": "^4.3.4", + "make-fetch-happen": "^11.1.0" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/tuf-js/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, "node_modules/tuf-js/node_modules/lru-cache": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.17.0.tgz", - "integrity": "sha512-zSxlVVwOabhVyTi6E8gYv2cr6bXK+8ifYz5/uyJb9feXX6NACVDwY4p5Ut3WC3Ivo/QhpARHU3iujx2xGAYHbQ==", + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", "dev": true, "engines": { "node": ">=12" } }, "node_modules/tuf-js/node_modules/make-fetch-happen": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.0.3.tgz", - "integrity": "sha512-oPLh5m10lRNNZDjJ2kP8UpboUx2uFXVaVweVe/lWut4iHWcQEmfqSVJt2ihZsFI8HbpwyyocaXbCAWf0g1ukIA==", + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz", + "integrity": "sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==", "dev": true, "dependencies": { "agentkeepalive": "^4.2.1", @@ -9854,7 +9987,7 @@ "https-proxy-agent": "^5.0.0", "is-lambda": "^1.0.1", "lru-cache": "^7.7.1", - "minipass": "^4.0.0", + "minipass": "^5.0.0", "minipass-fetch": "^3.0.0", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", @@ -9867,28 +10000,13 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/tuf-js/node_modules/minimatch": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-6.2.0.tgz", - "integrity": "sha512-sauLxniAmvnhhRjFwPNnJKaPFYyddAgbYdeUpHULtCT/GhzdCx/MDNy+Y40lBxTQUrMzDE8e0S43Z5uqfO0REg==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/tuf-js/node_modules/minipass-fetch": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.1.tgz", - "integrity": "sha512-t9/wowtf7DYkwz8cfMSt0rMwiyNIBXf5CKZ3S5ZMqRqMYT0oLTp0x1WorMI9WTwvaPg21r1JbFxJMum8JrLGfw==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.3.tgz", + "integrity": "sha512-n5ITsTkDqYkYJZjcRWzZt9qnZKCT7nKCosJhHoj7S7zD+BP4jVbWs+odsniw5TA3E0sLomhTKOKjF86wf11PuQ==", "dev": true, "dependencies": { - "minipass": "^4.0.0", + "minipass": "^5.0.0", "minipass-sized": "^1.0.3", "minizlib": "^2.1.2" }, @@ -10325,9 +10443,9 @@ } }, "node_modules/wrap-ansi": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.0.1.tgz", - "integrity": "sha512-QFF+ufAqhoYHvoHdajT/Po7KoXVBPXS2bgjIam5isfWJPfIOnQZ50JtUiVvCv/sjgacf3yRrt2ZKUZ/V4itN4g==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", "dev": true, "dependencies": { "ansi-styles": "^6.1.0", @@ -10341,6 +10459,57 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi-cjs/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==", + "dev": true + }, "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", @@ -10558,167 +10727,167 @@ "requires": {} }, "@es-joy/jsdoccomment": { - "version": "0.37.0", - "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.37.0.tgz", - "integrity": "sha512-hjK0wnsPCYLlF+HHB4R/RbUjOWeLW2SlarB67+Do5WsKILOkmIZvvPJFbtWSmbypxcjpoECLAMzoao0D4Bg5ZQ==", + "version": "0.39.3", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.39.3.tgz", + "integrity": "sha512-q6pObzaS+aTA96kl4DF91QILNpSiDE8S89cQdJnhIc7hWzwIHPnfBnsiBVa0Z/R9pLHdZTnXEMnggGMmCq7HmA==", "dev": true, "requires": { "comment-parser": "1.3.1", - "esquery": "^1.4.0", + "esquery": "^1.5.0", "jsdoc-type-pratt-parser": "~4.0.0" } }, "@esbuild/android-arm": { - "version": "0.17.17", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.17.tgz", - "integrity": "sha512-E6VAZwN7diCa3labs0GYvhEPL2M94WLF8A+czO8hfjREXxba8Ng7nM5VxV+9ihNXIY1iQO1XxUU4P7hbqbICxg==", + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.19.tgz", + "integrity": "sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==", "dev": true, "optional": true }, "@esbuild/android-arm64": { - "version": "0.17.17", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.17.tgz", - "integrity": "sha512-jaJ5IlmaDLFPNttv0ofcwy/cfeY4bh/n705Tgh+eLObbGtQBK3EPAu+CzL95JVE4nFAliyrnEu0d32Q5foavqg==", + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz", + "integrity": "sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==", "dev": true, "optional": true }, "@esbuild/android-x64": { - "version": "0.17.17", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.17.tgz", - "integrity": "sha512-446zpfJ3nioMC7ASvJB1pszHVskkw4u/9Eu8s5yvvsSDTzYh4p4ZIRj0DznSl3FBF0Z/mZfrKXTtt0QCoFmoHA==", + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.19.tgz", + "integrity": "sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==", "dev": true, "optional": true }, "@esbuild/darwin-arm64": { - "version": "0.17.17", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.17.tgz", - "integrity": "sha512-m/gwyiBwH3jqfUabtq3GH31otL/0sE0l34XKpSIqR7NjQ/XHQ3lpmQHLHbG8AHTGCw8Ao059GvV08MS0bhFIJQ==", + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz", + "integrity": "sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==", "dev": true, "optional": true }, "@esbuild/darwin-x64": { - "version": "0.17.17", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.17.tgz", - "integrity": "sha512-4utIrsX9IykrqYaXR8ob9Ha2hAY2qLc6ohJ8c0CN1DR8yWeMrTgYFjgdeQ9LIoTOfLetXjuCu5TRPHT9yKYJVg==", + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz", + "integrity": "sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==", "dev": true, "optional": true }, "@esbuild/freebsd-arm64": { - "version": "0.17.17", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.17.tgz", - "integrity": "sha512-4PxjQII/9ppOrpEwzQ1b0pXCsFLqy77i0GaHodrmzH9zq2/NEhHMAMJkJ635Ns4fyJPFOlHMz4AsklIyRqFZWA==", + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz", + "integrity": "sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==", "dev": true, "optional": true }, "@esbuild/freebsd-x64": { - "version": "0.17.17", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.17.tgz", - "integrity": "sha512-lQRS+4sW5S3P1sv0z2Ym807qMDfkmdhUYX30GRBURtLTrJOPDpoU0kI6pVz1hz3U0+YQ0tXGS9YWveQjUewAJw==", + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz", + "integrity": "sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==", "dev": true, "optional": true }, "@esbuild/linux-arm": { - "version": "0.17.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.17.tgz", - "integrity": "sha512-biDs7bjGdOdcmIk6xU426VgdRUpGg39Yz6sT9Xp23aq+IEHDb/u5cbmu/pAANpDB4rZpY/2USPhCA+w9t3roQg==", + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz", + "integrity": "sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==", "dev": true, "optional": true }, "@esbuild/linux-arm64": { - "version": "0.17.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.17.tgz", - "integrity": "sha512-2+pwLx0whKY1/Vqt8lyzStyda1v0qjJ5INWIe+d8+1onqQxHLLi3yr5bAa4gvbzhZqBztifYEu8hh1La5+7sUw==", + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz", + "integrity": "sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==", "dev": true, "optional": true }, "@esbuild/linux-ia32": { - "version": "0.17.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.17.tgz", - "integrity": "sha512-IBTTv8X60dYo6P2t23sSUYym8fGfMAiuv7PzJ+0LcdAndZRzvke+wTVxJeCq4WgjppkOpndL04gMZIFvwoU34Q==", + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz", + "integrity": "sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==", "dev": true, "optional": true }, "@esbuild/linux-loong64": { - "version": "0.17.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.17.tgz", - "integrity": "sha512-WVMBtcDpATjaGfWfp6u9dANIqmU9r37SY8wgAivuKmgKHE+bWSuv0qXEFt/p3qXQYxJIGXQQv6hHcm7iWhWjiw==", + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz", + "integrity": "sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==", "dev": true, "optional": true }, "@esbuild/linux-mips64el": { - "version": "0.17.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.17.tgz", - "integrity": "sha512-2kYCGh8589ZYnY031FgMLy0kmE4VoGdvfJkxLdxP4HJvWNXpyLhjOvxVsYjYZ6awqY4bgLR9tpdYyStgZZhi2A==", + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz", + "integrity": "sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==", "dev": true, "optional": true }, "@esbuild/linux-ppc64": { - "version": "0.17.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.17.tgz", - "integrity": "sha512-KIdG5jdAEeAKogfyMTcszRxy3OPbZhq0PPsW4iKKcdlbk3YE4miKznxV2YOSmiK/hfOZ+lqHri3v8eecT2ATwQ==", + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz", + "integrity": "sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==", "dev": true, "optional": true }, "@esbuild/linux-riscv64": { - "version": "0.17.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.17.tgz", - "integrity": "sha512-Cj6uWLBR5LWhcD/2Lkfg2NrkVsNb2sFM5aVEfumKB2vYetkA/9Uyc1jVoxLZ0a38sUhFk4JOVKH0aVdPbjZQeA==", + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz", + "integrity": "sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==", "dev": true, "optional": true }, "@esbuild/linux-s390x": { - "version": "0.17.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.17.tgz", - "integrity": "sha512-lK+SffWIr0XsFf7E0srBjhpkdFVJf3HEgXCwzkm69kNbRar8MhezFpkIwpk0qo2IOQL4JE4mJPJI8AbRPLbuOQ==", + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz", + "integrity": "sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==", "dev": true, "optional": true }, "@esbuild/linux-x64": { - "version": "0.17.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.17.tgz", - "integrity": "sha512-XcSGTQcWFQS2jx3lZtQi7cQmDYLrpLRyz1Ns1DzZCtn898cWfm5Icx/DEWNcTU+T+tyPV89RQtDnI7qL2PObPg==", + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz", + "integrity": "sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==", "dev": true, "optional": true }, "@esbuild/netbsd-x64": { - "version": "0.17.17", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.17.tgz", - "integrity": "sha512-RNLCDmLP5kCWAJR+ItLM3cHxzXRTe4N00TQyQiimq+lyqVqZWGPAvcyfUBM0isE79eEZhIuGN09rAz8EL5KdLA==", + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz", + "integrity": "sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==", "dev": true, "optional": true }, "@esbuild/openbsd-x64": { - "version": "0.17.17", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.17.tgz", - "integrity": "sha512-PAXswI5+cQq3Pann7FNdcpSUrhrql3wKjj3gVkmuz6OHhqqYxKvi6GgRBoaHjaG22HV/ZZEgF9TlS+9ftHVigA==", + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz", + "integrity": "sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==", "dev": true, "optional": true }, "@esbuild/sunos-x64": { - "version": "0.17.17", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.17.tgz", - "integrity": "sha512-V63egsWKnx/4V0FMYkr9NXWrKTB5qFftKGKuZKFIrAkO/7EWLFnbBZNM1CvJ6Sis+XBdPws2YQSHF1Gqf1oj/Q==", + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz", + "integrity": "sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==", "dev": true, "optional": true }, "@esbuild/win32-arm64": { - "version": "0.17.17", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.17.tgz", - "integrity": "sha512-YtUXLdVnd6YBSYlZODjWzH+KzbaubV0YVd6UxSfoFfa5PtNJNaW+1i+Hcmjpg2nEe0YXUCNF5bkKy1NnBv1y7Q==", + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz", + "integrity": "sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==", "dev": true, "optional": true }, "@esbuild/win32-ia32": { - "version": "0.17.17", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.17.tgz", - "integrity": "sha512-yczSLRbDdReCO74Yfc5tKG0izzm+lPMYyO1fFTcn0QNwnKmc3K+HdxZWLGKg4pZVte7XVgcFku7TIZNbWEJdeQ==", + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz", + "integrity": "sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==", "dev": true, "optional": true }, "@esbuild/win32-x64": { - "version": "0.17.17", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.17.tgz", - "integrity": "sha512-FNZw7H3aqhF9OyRQbDDnzUApDXfC1N6fgBhkqEO2jvYCJ+DxMTfZVqg3AX0R1khg1wHTBRD5SdcibSJ+XF6bFg==", + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz", + "integrity": "sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==", "dev": true, "optional": true }, @@ -10738,14 +10907,14 @@ "dev": true }, "@eslint/eslintrc": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.2.tgz", - "integrity": "sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.3.tgz", + "integrity": "sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ==", "dev": true, "requires": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.5.1", + "espree": "^9.5.2", "globals": "^13.19.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", @@ -10755,9 +10924,9 @@ } }, "@eslint/js": { - "version": "8.38.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.38.0.tgz", - "integrity": "sha512-IoD2MfUnOV58ghIHCiil01PcohxjbYR/qCxsoC+xNgUwh1EY8jOOrYmu3d3a71+tJJ23uscEV4X2HJWMsPJu4g==", + "version": "8.40.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.40.0.tgz", + "integrity": "sha512-ElyB54bJIhXQYVKjDSvCkPO1iU1tSAeVQJbllWJq1XQSmmA4dgFk8CbiBGpiOPxleE48vDogxCtmMYku4HSVLA==", "dev": true }, "@fortawesome/fontawesome-free": { @@ -10795,6 +10964,54 @@ "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", "dev": true }, + "@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "requires": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true + }, + "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 + }, + "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, + "requires": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + } + }, + "strip-ansi": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "dev": true, + "requires": { + "ansi-regex": "^6.0.1" + } + } + } + }, "@jridgewell/resolve-uri": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz", @@ -10859,14 +11076,13 @@ } }, "@npmcli/git": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-4.0.3.tgz", - "integrity": "sha512-8cXNkDIbnXPVbhXMmQ7/bklCAjtmPaXfI9aEM4iH+xSuEHINLMHhlfESvVwdqmHJRJkR48vNJTSUvoF6GRPSFA==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-4.0.4.tgz", + "integrity": "sha512-5yZghx+u5M47LghaybLCkdSyFzV/w4OuH12d96HO389Ik9CDsLaDZJVynSGGVJOLn6gy/k7Dz5XYcplM3uxXRg==", "dev": true, "requires": { "@npmcli/promise-spawn": "^6.0.0", "lru-cache": "^7.4.4", - "mkdirp": "^1.0.4", "npm-pick-manifest": "^8.0.0", "proc-log": "^3.0.0", "promise-inflight": "^1.0.1", @@ -10876,21 +11092,15 @@ }, "dependencies": { "lru-cache": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.17.0.tgz", - "integrity": "sha512-zSxlVVwOabhVyTi6E8gYv2cr6bXK+8ifYz5/uyJb9feXX6NACVDwY4p5Ut3WC3Ivo/QhpARHU3iujx2xGAYHbQ==", - "dev": true - }, - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", "dev": true }, "which": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-3.0.0.tgz", - "integrity": "sha512-nla//68K9NU6yRiwDY/Q8aU6siKlSs64aEC7+IV56QoAuyQT2ovsJcgGYGyqMOmI/CGN1BOR6mM5EN0FBO+zyQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/which/-/which-3.0.1.tgz", + "integrity": "sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==", "dev": true, "requires": { "isexe": "^2.0.0" @@ -10918,12 +11128,6 @@ "rimraf": "^3.0.2" }, "dependencies": { - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true - }, "rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", @@ -10951,9 +11155,9 @@ }, "dependencies": { "which": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-3.0.0.tgz", - "integrity": "sha512-nla//68K9NU6yRiwDY/Q8aU6siKlSs64aEC7+IV56QoAuyQT2ovsJcgGYGyqMOmI/CGN1BOR6mM5EN0FBO+zyQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/which/-/which-3.0.1.tgz", + "integrity": "sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==", "dev": true, "requires": { "isexe": "^2.0.0" @@ -10962,9 +11166,9 @@ } }, "@npmcli/run-script": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-6.0.0.tgz", - "integrity": "sha512-ql+AbRur1TeOdl1FY+RAwGW9fcr4ZwiVKabdvm93mujGREVuVLbdkXRJDrkTXSdCjaxYydr1wlA2v67jxWG5BQ==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-6.0.2.tgz", + "integrity": "sha512-NCcr1uQo1k5U+SYlnIrbAh3cxy+OQT1VtqiAbxdymSlptbzBb62AjH2xXgjNCoP073hoa1CfCAcwoZ8k96C4nA==", "dev": true, "requires": { "@npmcli/node-gyp": "^3.0.0", @@ -10975,9 +11179,9 @@ }, "dependencies": { "which": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-3.0.0.tgz", - "integrity": "sha512-nla//68K9NU6yRiwDY/Q8aU6siKlSs64aEC7+IV56QoAuyQT2ovsJcgGYGyqMOmI/CGN1BOR6mM5EN0FBO+zyQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/which/-/which-3.0.1.tgz", + "integrity": "sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==", "dev": true, "requires": { "isexe": "^2.0.0" @@ -10985,6 +11189,13 @@ } } }, + "@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "optional": true + }, "@pnpm/network.ca-file": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@pnpm/network.ca-file/-/network.ca-file-1.0.1.tgz", @@ -11005,14 +11216,20 @@ } }, "@primer/octicons": { - "version": "18.3.0", - "resolved": "https://registry.npmjs.org/@primer/octicons/-/octicons-18.3.0.tgz", - "integrity": "sha512-vyUej5rKjXfqHAmYSo2k3pA9IsL5KJaYOBVXvc188FwBfUweA+WVP3qwWyZTSQnp9LK6yOajGyr0SCMIa9ombw==", + "version": "19.1.0", + "resolved": "https://registry.npmjs.org/@primer/octicons/-/octicons-19.1.0.tgz", + "integrity": "sha512-5o90F89gNPnAk1qfzl3hb/TcsUjk5g0WFI+fBRHLkBKzB3uc9EvxTpgzjXhhjyriOkrBOjFo58D0sjtwttaQww==", "dev": true, "requires": { "object-assign": "^4.1.1" } }, + "@sigstore/protobuf-specs": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.1.0.tgz", + "integrity": "sha512-a31EnjuIDSX8IXBUib3cYLDRlPMU36AWX4xS8ysLaNu4ZzUesDiPt83pgrW2X1YLMe5L2HbDyaKK5BrL4cNKaQ==", + "dev": true + }, "@sindresorhus/is": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.3.0.tgz", @@ -11064,6 +11281,42 @@ "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==", "dev": true }, + "@tufjs/canonical-json": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-1.0.0.tgz", + "integrity": "sha512-QTnf++uxunWvG2z3UFNzAoQPHxnSXOwtaI3iJ+AohhV+5vONuArPjJE7aPXPVXfXJsqrVbZBu9b81AJoSd09IQ==", + "dev": true + }, + "@tufjs/models": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-1.0.4.tgz", + "integrity": "sha512-qaGV9ltJP0EO25YfFUPhxRVK0evXFIAGicsVXuRim4Ed9cjPxYhNnNJ49SFmbeLgtxpslIkX317IgpfcHPVj/A==", + "dev": true, + "requires": { + "@tufjs/canonical-json": "1.0.0", + "minimatch": "^9.0.0" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "minimatch": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.0.tgz", + "integrity": "sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + } + } + }, "@types/clean-css": { "version": "4.2.5", "resolved": "https://registry.npmjs.org/@types/clean-css/-/clean-css-4.2.5.tgz", @@ -11134,9 +11387,9 @@ "dev": true }, "@types/node": { - "version": "18.15.11", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.11.tgz", - "integrity": "sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q==", + "version": "20.1.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.1.4.tgz", + "integrity": "sha512-At4pvmIOki8yuwLtd7BNHl3CiWNbtclUbNtScGx4OHfBd4/oWoJC8KRCIxXwkdndzhxOsPXihrsOoydxBjlE9Q==", "dev": true }, "@types/normalize-package-data": { @@ -11167,9 +11420,9 @@ } }, "@types/semver": { - "version": "7.3.13", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", - "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==", + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.0.tgz", + "integrity": "sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==", "dev": true }, "@types/uglify-js": { @@ -11182,15 +11435,15 @@ } }, "@typescript-eslint/eslint-plugin": { - "version": "5.59.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.0.tgz", - "integrity": "sha512-p0QgrEyrxAWBecR56gyn3wkG15TJdI//eetInP3zYRewDh0XS+DhB3VUAd3QqvziFsfaQIoIuZMxZRB7vXYaYw==", + "version": "5.59.5", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.5.tgz", + "integrity": "sha512-feA9xbVRWJZor+AnLNAr7A8JRWeZqHUf4T9tlP+TN04b05pFVhO5eN7/O93Y/1OUlLMHKbnJisgDURs/qvtqdg==", "dev": true, "requires": { "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.59.0", - "@typescript-eslint/type-utils": "5.59.0", - "@typescript-eslint/utils": "5.59.0", + "@typescript-eslint/scope-manager": "5.59.5", + "@typescript-eslint/type-utils": "5.59.5", + "@typescript-eslint/utils": "5.59.5", "debug": "^4.3.4", "grapheme-splitter": "^1.0.4", "ignore": "^5.2.0", @@ -11200,53 +11453,53 @@ } }, "@typescript-eslint/parser": { - "version": "5.59.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.59.0.tgz", - "integrity": "sha512-qK9TZ70eJtjojSUMrrEwA9ZDQ4N0e/AuoOIgXuNBorXYcBDk397D2r5MIe1B3cok/oCtdNC5j+lUUpVB+Dpb+w==", + "version": "5.59.5", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.59.5.tgz", + "integrity": "sha512-NJXQC4MRnF9N9yWqQE2/KLRSOLvrrlZb48NGVfBa+RuPMN6B7ZcK5jZOvhuygv4D64fRKnZI4L4p8+M+rfeQuw==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.59.0", - "@typescript-eslint/types": "5.59.0", - "@typescript-eslint/typescript-estree": "5.59.0", + "@typescript-eslint/scope-manager": "5.59.5", + "@typescript-eslint/types": "5.59.5", + "@typescript-eslint/typescript-estree": "5.59.5", "debug": "^4.3.4" } }, "@typescript-eslint/scope-manager": { - "version": "5.59.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.0.tgz", - "integrity": "sha512-tsoldKaMh7izN6BvkK6zRMINj4Z2d6gGhO2UsI8zGZY3XhLq1DndP3Ycjhi1JwdwPRwtLMW4EFPgpuKhbCGOvQ==", + "version": "5.59.5", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.5.tgz", + "integrity": "sha512-jVecWwnkX6ZgutF+DovbBJirZcAxgxC0EOHYt/niMROf8p4PwxxG32Qdhj/iIQQIuOflLjNkxoXyArkcIP7C3A==", "dev": true, "requires": { - "@typescript-eslint/types": "5.59.0", - "@typescript-eslint/visitor-keys": "5.59.0" + "@typescript-eslint/types": "5.59.5", + "@typescript-eslint/visitor-keys": "5.59.5" } }, "@typescript-eslint/type-utils": { - "version": "5.59.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.59.0.tgz", - "integrity": "sha512-d/B6VSWnZwu70kcKQSCqjcXpVH+7ABKH8P1KNn4K7j5PXXuycZTPXF44Nui0TEm6rbWGi8kc78xRgOC4n7xFgA==", + "version": "5.59.5", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.59.5.tgz", + "integrity": "sha512-4eyhS7oGym67/pSxA2mmNq7X164oqDYNnZCUayBwJZIRVvKpBCMBzFnFxjeoDeShjtO6RQBHBuwybuX3POnDqg==", "dev": true, "requires": { - "@typescript-eslint/typescript-estree": "5.59.0", - "@typescript-eslint/utils": "5.59.0", + "@typescript-eslint/typescript-estree": "5.59.5", + "@typescript-eslint/utils": "5.59.5", "debug": "^4.3.4", "tsutils": "^3.21.0" } }, "@typescript-eslint/types": { - "version": "5.59.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.0.tgz", - "integrity": "sha512-yR2h1NotF23xFFYKHZs17QJnB51J/s+ud4PYU4MqdZbzeNxpgUr05+dNeCN/bb6raslHvGdd6BFCkVhpPk/ZeA==", + "version": "5.59.5", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.5.tgz", + "integrity": "sha512-xkfRPHbqSH4Ggx4eHRIO/eGL8XL4Ysb4woL8c87YuAo8Md7AUjyWKa9YMwTL519SyDPrfEgKdewjkxNCVeJW7w==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "5.59.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.0.tgz", - "integrity": "sha512-sUNnktjmI8DyGzPdZ8dRwW741zopGxltGs/SAPgGL/AAgDpiLsCFLcMNSpbfXfmnNeHmK9h3wGmCkGRGAoUZAg==", + "version": "5.59.5", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.5.tgz", + "integrity": "sha512-+XXdLN2CZLZcD/mO7mQtJMvCkzRfmODbeSKuMY/yXbGkzvA9rJyDY5qDYNoiz2kP/dmyAxXquL2BvLQLJFPQIg==", "dev": true, "requires": { - "@typescript-eslint/types": "5.59.0", - "@typescript-eslint/visitor-keys": "5.59.0", + "@typescript-eslint/types": "5.59.5", + "@typescript-eslint/visitor-keys": "5.59.5", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -11255,28 +11508,28 @@ } }, "@typescript-eslint/utils": { - "version": "5.59.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.59.0.tgz", - "integrity": "sha512-GGLFd+86drlHSvPgN/el6dRQNYYGOvRSDVydsUaQluwIW3HvbXuxyuD5JETvBt/9qGYe+lOrDk6gRrWOHb/FvA==", + "version": "5.59.5", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.59.5.tgz", + "integrity": "sha512-sCEHOiw+RbyTii9c3/qN74hYDPNORb8yWCoPLmB7BIflhplJ65u2PBpdRla12e3SSTJ2erRkPjz7ngLHhUegxA==", "dev": true, "requires": { "@eslint-community/eslint-utils": "^4.2.0", "@types/json-schema": "^7.0.9", "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.59.0", - "@typescript-eslint/types": "5.59.0", - "@typescript-eslint/typescript-estree": "5.59.0", + "@typescript-eslint/scope-manager": "5.59.5", + "@typescript-eslint/types": "5.59.5", + "@typescript-eslint/typescript-estree": "5.59.5", "eslint-scope": "^5.1.1", "semver": "^7.3.7" } }, "@typescript-eslint/visitor-keys": { - "version": "5.59.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.0.tgz", - "integrity": "sha512-qZ3iXxQhanchCeaExlKPV3gDQFxMUmU35xfd5eCXB6+kUw1TUAbIy2n7QIrwz9s98DQLzNWyHp61fY0da4ZcbA==", + "version": "5.59.5", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.5.tgz", + "integrity": "sha512-qL+Oz+dbeBRTeyJTIy0eniD3uvqU7x+y1QceBismZ41hd4aBSRh8UAw4pZP0+XzLuPZmx4raNMq/I+59W2lXKA==", "dev": true, "requires": { - "@typescript-eslint/types": "5.59.0", + "@typescript-eslint/types": "5.59.5", "eslint-visitor-keys": "^3.3.0" } }, @@ -11324,13 +11577,13 @@ } }, "agentkeepalive": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.1.tgz", - "integrity": "sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.3.0.tgz", + "integrity": "sha512-7Epl1Blf4Sy37j4v9f9FjICCh4+KAQOyXgHEwlyBiAQLbhKdq/i2QQU3amQalS/wPhdPzDXPL5DMR5bkn+YeWg==", "dev": true, "requires": { "debug": "^4.1.0", - "depd": "^1.1.2", + "depd": "^2.0.0", "humanize-ms": "^1.2.1" } }, @@ -11637,21 +11890,20 @@ } }, "cacache": { - "version": "17.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-17.0.4.tgz", - "integrity": "sha512-Z/nL3gU+zTUjz5pCA5vVjYM8pmaw2kxM7JEiE0fv3w77Wj+sFbi70CrBruUWH0uNcEdvLDixFpgA2JM4F4DBjA==", + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-17.1.0.tgz", + "integrity": "sha512-hXpFU+Z3AfVmNuiLve1qxWHMq0RSIt5gjCKAHi/M6DktwFwDdAXAtunl1i4WSKaaVcU9IsRvXFg42jTHigcC6Q==", "dev": true, "requires": { "@npmcli/fs": "^3.1.0", "fs-minipass": "^3.0.0", - "glob": "^8.0.1", + "glob": "^10.2.2", "lru-cache": "^7.7.1", - "minipass": "^4.0.0", + "minipass": "^5.0.0", "minipass-collect": "^1.0.2", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", "ssri": "^10.0.0", "tar": "^6.1.11", "unique-filename": "^3.0.0" @@ -11667,28 +11919,28 @@ } }, "glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "version": "10.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.2.3.tgz", + "integrity": "sha512-Kb4rfmBVE3eQTAimgmeqc2LwSnN0wIOkkUL6HmxEFxNJ4fHghYHVbFba/HcGcRjE6s9KoMNK3rSOwkL4PioZjg==", "dev": true, "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" + "foreground-child": "^3.1.0", + "jackspeak": "^2.0.3", + "minimatch": "^9.0.0", + "minipass": "^5.0.0", + "path-scurry": "^1.7.0" } }, "lru-cache": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.17.0.tgz", - "integrity": "sha512-zSxlVVwOabhVyTi6E8gYv2cr6bXK+8ifYz5/uyJb9feXX6NACVDwY4p5Ut3WC3Ivo/QhpARHU3iujx2xGAYHbQ==", + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", "dev": true }, "minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.0.tgz", + "integrity": "sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==", "dev": true, "requires": { "brace-expansion": "^2.0.1" @@ -12324,9 +12576,9 @@ "dev": true }, "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", "dev": true }, "diff": { @@ -12344,12 +12596,6 @@ "path-type": "^4.0.0" } }, - "dlv": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", - "dev": true - }, "doctrine": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", @@ -12504,33 +12750,33 @@ } }, "esbuild": { - "version": "0.17.17", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.17.tgz", - "integrity": "sha512-/jUywtAymR8jR4qsa2RujlAF7Krpt5VWi72Q2yuLD4e/hvtNcFQ0I1j8m/bxq238pf3/0KO5yuXNpuLx8BE1KA==", + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.19.tgz", + "integrity": "sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==", "dev": true, "requires": { - "@esbuild/android-arm": "0.17.17", - "@esbuild/android-arm64": "0.17.17", - "@esbuild/android-x64": "0.17.17", - "@esbuild/darwin-arm64": "0.17.17", - "@esbuild/darwin-x64": "0.17.17", - "@esbuild/freebsd-arm64": "0.17.17", - "@esbuild/freebsd-x64": "0.17.17", - "@esbuild/linux-arm": "0.17.17", - "@esbuild/linux-arm64": "0.17.17", - "@esbuild/linux-ia32": "0.17.17", - "@esbuild/linux-loong64": "0.17.17", - "@esbuild/linux-mips64el": "0.17.17", - "@esbuild/linux-ppc64": "0.17.17", - "@esbuild/linux-riscv64": "0.17.17", - "@esbuild/linux-s390x": "0.17.17", - "@esbuild/linux-x64": "0.17.17", - "@esbuild/netbsd-x64": "0.17.17", - "@esbuild/openbsd-x64": "0.17.17", - "@esbuild/sunos-x64": "0.17.17", - "@esbuild/win32-arm64": "0.17.17", - "@esbuild/win32-ia32": "0.17.17", - "@esbuild/win32-x64": "0.17.17" + "@esbuild/android-arm": "0.17.19", + "@esbuild/android-arm64": "0.17.19", + "@esbuild/android-x64": "0.17.19", + "@esbuild/darwin-arm64": "0.17.19", + "@esbuild/darwin-x64": "0.17.19", + "@esbuild/freebsd-arm64": "0.17.19", + "@esbuild/freebsd-x64": "0.17.19", + "@esbuild/linux-arm": "0.17.19", + "@esbuild/linux-arm64": "0.17.19", + "@esbuild/linux-ia32": "0.17.19", + "@esbuild/linux-loong64": "0.17.19", + "@esbuild/linux-mips64el": "0.17.19", + "@esbuild/linux-ppc64": "0.17.19", + "@esbuild/linux-riscv64": "0.17.19", + "@esbuild/linux-s390x": "0.17.19", + "@esbuild/linux-x64": "0.17.19", + "@esbuild/netbsd-x64": "0.17.19", + "@esbuild/openbsd-x64": "0.17.19", + "@esbuild/sunos-x64": "0.17.19", + "@esbuild/win32-arm64": "0.17.19", + "@esbuild/win32-ia32": "0.17.19", + "@esbuild/win32-x64": "0.17.19" } }, "escalade": { @@ -12557,15 +12803,15 @@ "dev": true }, "eslint": { - "version": "8.38.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.38.0.tgz", - "integrity": "sha512-pIdsD2jwlUGf/U38Jv97t8lq6HpaU/G9NKbYmpWpZGw3LdTNhZLbJePqxOXGB5+JEKfOPU/XLxYxFh03nr1KTg==", + "version": "8.40.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.40.0.tgz", + "integrity": "sha512-bvR+TsP9EHL3TqNtj9sCNJVAFK3fBN8Q7g5waghxyRsPLIMwL73XSKnZFK0hk/O2ANC+iAoq6PWMQ+IfBAJIiQ==", "dev": true, "requires": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.4.0", - "@eslint/eslintrc": "^2.0.2", - "@eslint/js": "8.38.0", + "@eslint/eslintrc": "^2.0.3", + "@eslint/js": "8.40.0", "@humanwhocodes/config-array": "^0.11.8", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", @@ -12575,9 +12821,9 @@ "debug": "^4.3.2", "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.1", - "eslint-visitor-keys": "^3.4.0", - "espree": "^9.5.1", + "eslint-scope": "^7.2.0", + "eslint-visitor-keys": "^3.4.1", + "espree": "^9.5.2", "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -12645,9 +12891,9 @@ "dev": true }, "eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz", + "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==", "dev": true, "requires": { "esrecurse": "^4.3.0", @@ -12816,18 +13062,18 @@ } }, "eslint-plugin-jsdoc": { - "version": "43.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-43.0.0.tgz", - "integrity": "sha512-Z1Ox1MAGcFV7ZNKe5eYIk4ALUtCjo1r4HBMoAYUs+bBKPcHro5A/YDDHOTsQ7zxcuUnm5R9rXCZTvGWcihwZpg==", + "version": "44.2.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-44.2.3.tgz", + "integrity": "sha512-Ut9jL/170sMKRRFX7P7Ecmdc9XkPcANZs00QWG+VeMN/mcs0kzE6mXCmbhB4EUsLtRASLRAasOwVq0GN5r0oKw==", "dev": true, "requires": { - "@es-joy/jsdoccomment": "~0.37.0", + "@es-joy/jsdoccomment": "~0.39.1", "are-docs-informative": "^0.0.2", "comment-parser": "1.3.1", "debug": "^4.3.4", "escape-string-regexp": "^4.0.0", "esquery": "^1.5.0", - "semver": "^7.3.8", + "semver": "^7.5.0", "spdx-expression-parse": "^3.0.1" }, "dependencies": { @@ -12857,20 +13103,20 @@ } }, "eslint-visitor-keys": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz", - "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==", + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", + "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==", "dev": true }, "espree": { - "version": "9.5.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.1.tgz", - "integrity": "sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==", + "version": "9.5.2", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.2.tgz", + "integrity": "sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==", "dev": true, "requires": { "acorn": "^8.8.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.0" + "eslint-visitor-keys": "^3.4.1" } }, "esquery": { @@ -13042,6 +13288,24 @@ "is-callable": "^1.1.3" } }, + "foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "dependencies": { + "signal-exit": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.2.tgz", + "integrity": "sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==", + "dev": true + } + } + }, "form-data": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", @@ -13072,12 +13336,12 @@ "dev": true }, "fs-minipass": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.1.tgz", - "integrity": "sha512-MhaJDcFRTuLidHrIttu0RDGyyXs/IYHVmlcxfLAEFIWjc1vdLAkdwT7Ace2u7DbitWC0toKMl5eJZRYNVreIMw==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.2.tgz", + "integrity": "sha512-2GAfyfoaCDRrM6jaOS3UsBts8yJ55VioXdWcOL7dK9zdAuKT71+WBA4ifnNYqVjYv+4SsPxjK0JT4yIIn4cA/g==", "dev": true, "requires": { - "minipass": "^4.0.0" + "minipass": "^5.0.0" } }, "fs.realpath": { @@ -13661,12 +13925,12 @@ "dev": true }, "ignore-walk": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.1.tgz", - "integrity": "sha512-/c8MxUAqpRccq+LyDOecwF+9KqajueJHh8fz7g3YqjMZt+NSfJzx05zrKiXwa2sKwFCzaiZ5qUVfRj0pmxixEA==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.3.tgz", + "integrity": "sha512-C7FfFoTA+bI10qfeydT8aZbvr91vAEU+2W5BZUlzPec47oNb07SsOfwYrtxuvOYdUApPP/Qlh4DtAO51Ekk2QA==", "dev": true, "requires": { - "minimatch": "^6.1.6" + "minimatch": "^9.0.0" }, "dependencies": { "brace-expansion": { @@ -13679,9 +13943,9 @@ } }, "minimatch": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-6.2.0.tgz", - "integrity": "sha512-sauLxniAmvnhhRjFwPNnJKaPFYyddAgbYdeUpHULtCT/GhzdCx/MDNy+Y40lBxTQUrMzDE8e0S43Z5uqfO0REg==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.0.tgz", + "integrity": "sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==", "dev": true, "requires": { "brace-expansion": "^2.0.1" @@ -14008,6 +14272,16 @@ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", "dev": true }, + "jackspeak": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.2.0.tgz", + "integrity": "sha512-r5XBrqIJfwRIjRt/Xr5fv9Wh09qyhHfKnYddDlpM+ibRR20qrYActpCAgU6U+d53EOEjzkvxPMVHSlgR7leXrQ==", + "dev": true, + "requires": { + "@isaacs/cliui": "^8.0.2", + "@pkgjs/parseargs": "^0.11.0" + } + }, "jju": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", @@ -14259,9 +14533,9 @@ "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==" }, "lunr-languages": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/lunr-languages/-/lunr-languages-1.10.0.tgz", - "integrity": "sha512-BBjKKcwrieJlzwwc9M5H/MRXGJ2qyOSDx/NXYiwkuKjiLOOoouh0WsDzeqcLoUWcX31y7i8sb8IgsZKObdUCkw==" + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/lunr-languages/-/lunr-languages-1.12.0.tgz", + "integrity": "sha512-C2z02jt74ymrDocBwxYB4Cr1LNZj9rHGLTH/00+JuoT6eJOSSuPBzeqQG8kjnlPUQe+/PAWv1/KHbDT+YYYRnA==" }, "make-error": { "version": "1.3.6", @@ -14361,9 +14635,9 @@ } }, "lru-cache": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.17.0.tgz", - "integrity": "sha512-zSxlVVwOabhVyTi6E8gYv2cr6bXK+8ifYz5/uyJb9feXX6NACVDwY4p5Ut3WC3Ivo/QhpARHU3iujx2xGAYHbQ==", + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", "dev": true }, "minimatch": { @@ -14384,12 +14658,6 @@ "yallist": "^4.0.0" } }, - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true - }, "rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", @@ -14624,9 +14892,9 @@ } }, "minipass": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.4.tgz", - "integrity": "sha512-lwycX3cBMTvcejsHITUgYj6Gy6A7Nh4Q6h9NP4sTHY1ccJlC7yKzDmiShEHsJ16Jf1nKGDEaiHxiltsJEvk0nQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", "dev": true }, "minipass-collect": { @@ -14774,6 +15042,12 @@ } } }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -14926,9 +15200,9 @@ } }, "npm-check-updates": { - "version": "16.10.8", - "resolved": "https://registry.npmjs.org/npm-check-updates/-/npm-check-updates-16.10.8.tgz", - "integrity": "sha512-e+p3rUCvaU0iKOvi+/Xiyx+mLe9/aRTu9Zrc7+TR6H2q+uFgmXEwqbXYN9Ngqsta8gdTjpn751UD5MEOogO5cA==", + "version": "16.10.12", + "resolved": "https://registry.npmjs.org/npm-check-updates/-/npm-check-updates-16.10.12.tgz", + "integrity": "sha512-js/Gg9+5RTyOQZnmFcPswLxf4sK/H5AE/8bl4tkleLJTC1gXhQqqELUFwXqppNvx488aXxN52ZY9k9MSSvEW2A==", "dev": true, "requires": { "chalk": "^5.2.0", @@ -14945,7 +15219,7 @@ "json-parse-helpfulerror": "^1.0.3", "jsonlines": "^0.1.1", "lodash": "^4.17.21", - "minimatch": "^8.0.3", + "minimatch": "^9.0.0", "p-map": "^4.0.0", "pacote": "15.1.1", "parse-github-url": "^1.0.2", @@ -14953,8 +15227,8 @@ "prompts-ncu": "^3.0.0", "rc-config-loader": "^4.1.2", "remote-git-tags": "^3.0.0", - "rimraf": "^4.4.1", - "semver": "^7.3.8", + "rimraf": "^5.0.0", + "semver": "^7.4.0", "semver-utils": "^1.1.4", "source-map-support": "^0.5.21", "spawn-please": "^2.0.1", @@ -14979,9 +15253,9 @@ "dev": true }, "commander": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.0.tgz", - "integrity": "sha512-zS5PnTI22FIRM6ylNW8G4Ap0IEOyk62fhLSD0+uHRT9McRCLGpkVNvao4bjimpK/GShynyQkFFxHhwMcETmduA==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", "dev": true }, "find-up": { @@ -14994,18 +15268,6 @@ "path-exists": "^4.0.0" } }, - "glob": { - "version": "9.3.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-9.3.5.tgz", - "integrity": "sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "minimatch": "^8.0.2", - "minipass": "^4.2.4", - "path-scurry": "^1.6.1" - } - }, "hosted-git-info": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.1.0.tgz", @@ -15016,9 +15278,9 @@ } }, "ini": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-4.0.0.tgz", - "integrity": "sha512-t0ikzf5qkSFqRl1e6ejKBe+Tk2bsQd8ivEkcisyGXsku2t8NvXZ1Y3RRz5vxrDgOrTBOi13CvGsVoI5wVpd7xg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.0.tgz", + "integrity": "sha512-HLR38RSF2iulAzc3I/sma4CoYxQP844rPYCNfzGDOHqa/YqVlwuuZgBx6M50/X8dKgzk0cm1qRg3+47mK2N+cQ==", "dev": true }, "locate-path": { @@ -15037,9 +15299,9 @@ "dev": true }, "minimatch": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-8.0.4.tgz", - "integrity": "sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.0.tgz", + "integrity": "sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==", "dev": true, "requires": { "brace-expansion": "^2.0.1" @@ -15069,15 +15331,6 @@ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true }, - "rimraf": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.4.1.tgz", - "integrity": "sha512-Gk8NlF062+T9CqNGn6h4tls3k6T1+/nXdOcSZVikNVtlRdYpA7wRJJMoXmuvOnLW844rPjdQ7JgXCYM6PPC/og==", - "dev": true, - "requires": { - "glob": "^9.2.0" - } - }, "strip-json-comments": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-5.0.0.tgz", @@ -15087,18 +15340,18 @@ } }, "npm-install-checks": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-6.0.0.tgz", - "integrity": "sha512-SBU9oFglRVZnfElwAtF14NivyulDqF1VKqqwNsFW9HDcbHMAPHpRSsVFgKuwFGq/hVvWZExz62Th0kvxn/XE7Q==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-6.1.1.tgz", + "integrity": "sha512-dH3GmQL4vsPtld59cOn8uY0iOqRmqKvV+DLGwNXV/Q7MDgD2QfOADWd/mFXcIE5LVhYYGjA3baz6W9JneqnuCw==", "dev": true, "requires": { "semver": "^7.1.1" } }, "npm-normalize-package-bin": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.0.tgz", - "integrity": "sha512-g+DPQSkusnk7HYXr75NtzkIP4+N81i3RPsGFidF3DzHd9MT9wWngmqoeg/fnHFz5MNdtG4w03s+QnhewSLTT2Q==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz", + "integrity": "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==", "dev": true }, "npm-package-arg": { @@ -15123,9 +15376,9 @@ } }, "lru-cache": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.17.0.tgz", - "integrity": "sha512-zSxlVVwOabhVyTi6E8gYv2cr6bXK+8ifYz5/uyJb9feXX6NACVDwY4p5Ut3WC3Ivo/QhpARHU3iujx2xGAYHbQ==", + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", "dev": true } } @@ -15152,13 +15405,13 @@ } }, "npm-registry-fetch": { - "version": "14.0.3", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-14.0.3.tgz", - "integrity": "sha512-YaeRbVNpnWvsGOjX2wk5s85XJ7l1qQBGAp724h8e2CZFFhMSuw9enom7K1mWVUtvXO1uUSFIAPofQK0pPN0ZcA==", + "version": "14.0.5", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-14.0.5.tgz", + "integrity": "sha512-kIDMIo4aBm6xg7jOttupWZamsZRkAqMqwqqbVXnUqstY5+tapvv6bkH/qMR76jdgV+YljEUCyWx3hRYMrJiAgA==", "dev": true, "requires": { "make-fetch-happen": "^11.0.0", - "minipass": "^4.0.0", + "minipass": "^5.0.0", "minipass-fetch": "^3.0.0", "minipass-json-stream": "^1.0.1", "minizlib": "^2.1.2", @@ -15167,15 +15420,15 @@ }, "dependencies": { "lru-cache": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.17.0.tgz", - "integrity": "sha512-zSxlVVwOabhVyTi6E8gYv2cr6bXK+8ifYz5/uyJb9feXX6NACVDwY4p5Ut3WC3Ivo/QhpARHU3iujx2xGAYHbQ==", + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", "dev": true }, "make-fetch-happen": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.0.3.tgz", - "integrity": "sha512-oPLh5m10lRNNZDjJ2kP8UpboUx2uFXVaVweVe/lWut4iHWcQEmfqSVJt2ihZsFI8HbpwyyocaXbCAWf0g1ukIA==", + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz", + "integrity": "sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==", "dev": true, "requires": { "agentkeepalive": "^4.2.1", @@ -15185,7 +15438,7 @@ "https-proxy-agent": "^5.0.0", "is-lambda": "^1.0.1", "lru-cache": "^7.7.1", - "minipass": "^4.0.0", + "minipass": "^5.0.0", "minipass-fetch": "^3.0.0", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", @@ -15196,13 +15449,13 @@ } }, "minipass-fetch": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.1.tgz", - "integrity": "sha512-t9/wowtf7DYkwz8cfMSt0rMwiyNIBXf5CKZ3S5ZMqRqMYT0oLTp0x1WorMI9WTwvaPg21r1JbFxJMum8JrLGfw==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.3.tgz", + "integrity": "sha512-n5ITsTkDqYkYJZjcRWzZt9qnZKCT7nKCosJhHoj7S7zD+BP4jVbWs+odsniw5TA3E0sLomhTKOKjF86wf11PuQ==", "dev": true, "requires": { "encoding": "^0.1.13", - "minipass": "^4.0.0", + "minipass": "^5.0.0", "minipass-sized": "^1.0.3", "minizlib": "^2.1.2" } @@ -15474,6 +15727,14 @@ "sigstore": "^1.0.0", "ssri": "^10.0.0", "tar": "^6.1.11" + }, + "dependencies": { + "minipass": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.8.tgz", + "integrity": "sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==", + "dev": true + } } }, "param-case": { @@ -15537,9 +15798,9 @@ "dev": true }, "path-scurry": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.6.4.tgz", - "integrity": "sha512-Qp/9IHkdNiXJ3/Kon++At2nVpnhRiPq/aSvQN+H3U1WZbvNRK0RIQK/o4HMqPoXjpuGJUEWpHSs6Mnjxqh3TQg==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.7.0.tgz", + "integrity": "sha512-UkZUeDjczjYRE495+9thsgcVgsaCPkaw80slmfVFgllxY+IO8ubTsOpFVjDPROBqJdHfVPUFRHPBV/WciOVfWg==", "dev": true, "requires": { "lru-cache": "^9.0.0", @@ -15551,12 +15812,6 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-9.0.0.tgz", "integrity": "sha512-9AEKXzvOZc4BMacFnYiTOlDH/197LNnQIK9wZ6iMB5NXPzuv4bWR/Msv7iUMplkiMQ1qQL+KSv/JF1mZAB5Lrg==", "dev": true - }, - "minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", - "dev": true } } }, @@ -15591,9 +15846,9 @@ "dev": true }, "postcss": { - "version": "8.4.22", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.22.tgz", - "integrity": "sha512-XseknLAfRHzVWjCEtdviapiBtfLdgyzExD50Rg2ePaucEesyh8Wv4VPdW0nbyDa1ydbrAxV19jvMT4+LFmcNUA==", + "version": "8.4.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.23.tgz", + "integrity": "sha512-bQ3qMcpF6A/YjR55xtoTr0jGOlnPOKAIMdOWiv0EIT6HVPEaJiJB4NLljSbiHoC2RX7DN5Uvjtpbg1NPdwv1oA==", "dev": true, "requires": { "nanoid": "^3.3.6", @@ -15923,9 +16178,9 @@ "requires": {} }, "postcss-selector-parser": { - "version": "6.0.11", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz", - "integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==", + "version": "6.0.12", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.12.tgz", + "integrity": "sha512-NdxGCAZdRrwVI1sy59+Wzrh+pMMHxapGnpfenDVlMEXoOcvt4pGE0JLK9YY2F5dLxcFYA/YbVQKhcGU+FtSYQg==", "dev": true, "requires": { "cssesc": "^3.0.0", @@ -16054,9 +16309,9 @@ "dev": true }, "preact": { - "version": "10.13.2", - "resolved": "https://registry.npmjs.org/preact/-/preact-10.13.2.tgz", - "integrity": "sha512-q44QFLhOhty2Bd0Y46fnYW0gD/cbVM9dUVtNTDKPcdXSMA7jfY+Jpd6rk3GB0lcQss0z5s/6CmVP0Z/hV+g6pw==", + "version": "10.14.0", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.14.0.tgz", + "integrity": "sha512-4oh2sf208mKAdL5AQtzXxE387iSGNWMX/YjwMjH6m/XROILKAmx5Pbs2FsXrW7ixoVGGjpfYSBB833vOwYxNxw==", "dev": true }, "prelude-ls": { @@ -16189,12 +16444,12 @@ } }, "read-package-json": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-6.0.0.tgz", - "integrity": "sha512-b/9jxWJ8EwogJPpv99ma+QwtqB7FSl3+V6UXS7Aaay8/5VwMY50oIFooY1UKXMWpfNCM6T/PoGqa5GD1g9xf9w==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-6.0.3.tgz", + "integrity": "sha512-4QbpReW4kxFgeBQ0vPAqh2y8sXEB3D4t3jsXbJKIhBiF80KT6XRo45reqwtftju5J6ru1ax06A2Gb/wM1qCOEQ==", "dev": true, "requires": { - "glob": "^8.0.1", + "glob": "^10.2.2", "json-parse-even-better-errors": "^3.0.0", "normalize-package-data": "^5.0.0", "npm-normalize-package-bin": "^3.0.0" @@ -16210,16 +16465,16 @@ } }, "glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "version": "10.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.2.3.tgz", + "integrity": "sha512-Kb4rfmBVE3eQTAimgmeqc2LwSnN0wIOkkUL6HmxEFxNJ4fHghYHVbFba/HcGcRjE6s9KoMNK3rSOwkL4PioZjg==", "dev": true, "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" + "foreground-child": "^3.1.0", + "jackspeak": "^2.0.3", + "minimatch": "^9.0.0", + "minipass": "^5.0.0", + "path-scurry": "^1.7.0" } }, "hosted-git-info": { @@ -16238,15 +16493,15 @@ "dev": true }, "lru-cache": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.17.0.tgz", - "integrity": "sha512-zSxlVVwOabhVyTi6E8gYv2cr6bXK+8ifYz5/uyJb9feXX6NACVDwY4p5Ut3WC3Ivo/QhpARHU3iujx2xGAYHbQ==", + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", "dev": true }, "minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.0.tgz", + "integrity": "sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==", "dev": true, "requires": { "brace-expansion": "^2.0.1" @@ -16407,9 +16662,9 @@ } }, "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, "requires": { "inherits": "^2.0.3", @@ -16580,12 +16835,6 @@ "requires": { "brace-expansion": "^2.0.1" } - }, - "minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", - "dev": true } } }, @@ -16599,9 +16848,9 @@ } }, "rxjs": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz", - "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==", + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", "requires": { "tslib": "^2.1.0" }, @@ -16613,6 +16862,12 @@ } } }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + }, "safe-regex-test": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", @@ -16632,9 +16887,9 @@ "optional": true }, "sass": { - "version": "1.62.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.62.0.tgz", - "integrity": "sha512-Q4USplo4pLYgCi+XlipZCWUQz5pkg/ruSSgJ0WRDSb/+3z9tXUOkQ7QPYn4XrhZKYAK4HlpaQecRwKLJX6+DBg==", + "version": "1.62.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.62.1.tgz", + "integrity": "sha512-NHpxIzN29MXvWiuswfc1W3I0N8SXBd8UR26WntmDlRYf0bSADnwnOjsyMZ3lMezSlArD33Vs3YFhp7dWvL770A==", "dev": true, "requires": { "chokidar": ">=3.0.0 <4.0.0", @@ -16648,9 +16903,9 @@ "integrity": "sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0=" }, "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", + "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -16716,25 +16971,26 @@ "dev": true }, "sigstore": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-1.0.0.tgz", - "integrity": "sha512-e+qfbn/zf1+rCza/BhIA//Awmf0v1pa5HQS8Xk8iXrn9bgytytVLqYD0P7NSqZ6IELTgq+tcDvLPkQjNHyWLNg==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-1.5.0.tgz", + "integrity": "sha512-i3nhvdobiPj8XrXNIggjeur6+A5iAQ4f+r1bR5SGitFJBbthy/6c7Fz0h+kY70Wua1FSMdDr/UEhXSVRXNpynw==", "dev": true, "requires": { + "@sigstore/protobuf-specs": "^0.1.0", "make-fetch-happen": "^11.0.1", - "tuf-js": "^1.0.0" + "tuf-js": "^1.1.3" }, "dependencies": { "lru-cache": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.17.0.tgz", - "integrity": "sha512-zSxlVVwOabhVyTi6E8gYv2cr6bXK+8ifYz5/uyJb9feXX6NACVDwY4p5Ut3WC3Ivo/QhpARHU3iujx2xGAYHbQ==", + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", "dev": true }, "make-fetch-happen": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.0.3.tgz", - "integrity": "sha512-oPLh5m10lRNNZDjJ2kP8UpboUx2uFXVaVweVe/lWut4iHWcQEmfqSVJt2ihZsFI8HbpwyyocaXbCAWf0g1ukIA==", + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz", + "integrity": "sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==", "dev": true, "requires": { "agentkeepalive": "^4.2.1", @@ -16744,7 +17000,7 @@ "https-proxy-agent": "^5.0.0", "is-lambda": "^1.0.1", "lru-cache": "^7.7.1", - "minipass": "^4.0.0", + "minipass": "^5.0.0", "minipass-fetch": "^3.0.0", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", @@ -16755,13 +17011,13 @@ } }, "minipass-fetch": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.1.tgz", - "integrity": "sha512-t9/wowtf7DYkwz8cfMSt0rMwiyNIBXf5CKZ3S5ZMqRqMYT0oLTp0x1WorMI9WTwvaPg21r1JbFxJMum8JrLGfw==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.3.tgz", + "integrity": "sha512-n5ITsTkDqYkYJZjcRWzZt9qnZKCT7nKCosJhHoj7S7zD+BP4jVbWs+odsniw5TA3E0sLomhTKOKjF86wf11PuQ==", "dev": true, "requires": { "encoding": "^0.1.13", - "minipass": "^4.0.0", + "minipass": "^5.0.0", "minipass-sized": "^1.0.3", "minizlib": "^2.1.2" } @@ -16769,9 +17025,9 @@ } }, "simple-icons": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/simple-icons/-/simple-icons-8.10.0.tgz", - "integrity": "sha512-q3MX9Og3ekffeY4vA2EEhKIzuVqARI4zAnK0wgQ1wJLIbzhspRrauRqd6eUO2YT3eH09uqRIVLphf0S0apBT/g==", + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/simple-icons/-/simple-icons-8.13.0.tgz", + "integrity": "sha512-rS75HEr/E6/7jEFpWrKfhMhDopdqrZiXa6PveKlUWS12kz7Evv2s7ZrMKKpKKF8OsM3sNP0/FEIe0q4lHx9EvA==", "dev": true }, "sisteransi": { @@ -16920,12 +17176,12 @@ "dev": true }, "ssri": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.1.tgz", - "integrity": "sha512-WVy6di9DlPOeBWEjMScpNipeSX2jIZBGEn5Uuo8Q7aIuFEuDX0pw8RxcOjlD1TWP4obi24ki7m/13+nFpcbXrw==", + "version": "10.0.4", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.4.tgz", + "integrity": "sha512-12+IR2CB2C28MMAw0Ncqwj5QbTcs0nGIhgJzYWzDkb21vWmfNI83KS4f3Ci6GI98WreIfG7o9UXp3C0qbpA8nQ==", "dev": true, "requires": { - "minipass": "^4.0.0" + "minipass": "^5.0.0" } }, "stable": { @@ -16947,14 +17203,6 @@ "dev": true, "requires": { "safe-buffer": "~5.2.0" - }, - "dependencies": { - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - } } }, "string-width": { @@ -16968,6 +17216,17 @@ "strip-ansi": "^6.0.1" } }, + "string-width-cjs": { + "version": "npm:string-width@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, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, "string.prototype.padend": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.2.tgz", @@ -17010,6 +17269,15 @@ "ansi-regex": "^5.0.1" } }, + "strip-ansi-cjs": { + "version": "npm:strip-ansi@6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, "strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", @@ -17048,14 +17316,14 @@ } }, "stylelint": { - "version": "15.5.0", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-15.5.0.tgz", - "integrity": "sha512-jyMO3R1QtE5mUS4v40+Gg+sIQBqe7CF1xPslxycDzNVkIBCUD4O+5F1vLPq16VmunUTv4qG9o2rUKLnU5KkVeQ==", + "version": "15.6.1", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-15.6.1.tgz", + "integrity": "sha512-d8icFBlVl93Elf3Z5ABQNOCe4nx69is3D/NZhDLAie1eyYnpxfeKe7pCfqzT5W4F8vxHCLSDfV8nKNJzogvV2Q==", "dev": true, "requires": { - "@csstools/css-parser-algorithms": "^2.1.0", - "@csstools/css-tokenizer": "^2.1.0", - "@csstools/media-query-list-parser": "^2.0.2", + "@csstools/css-parser-algorithms": "^2.1.1", + "@csstools/css-tokenizer": "^2.1.1", + "@csstools/media-query-list-parser": "^2.0.4", "@csstools/selector-specificity": "^2.2.0", "balanced-match": "^2.0.0", "colord": "^2.9.3", @@ -17080,11 +17348,11 @@ "micromatch": "^4.0.5", "normalize-path": "^3.0.0", "picocolors": "^1.0.0", - "postcss": "^8.4.21", + "postcss": "^8.4.23", "postcss-media-query-parser": "^0.2.3", "postcss-resolve-nested-selector": "^0.1.1", "postcss-safe-parser": "^6.0.0", - "postcss-selector-parser": "^6.0.11", + "postcss-selector-parser": "^6.0.12", "postcss-value-parser": "^4.2.0", "resolve-from": "^5.0.0", "string-width": "^4.2.3", @@ -17094,7 +17362,7 @@ "svg-tags": "^1.0.0", "table": "^6.8.1", "v8-compile-cache": "^2.3.0", - "write-file-atomic": "^5.0.0" + "write-file-atomic": "^5.0.1" }, "dependencies": { "balanced-match": { @@ -17138,14 +17406,20 @@ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true }, + "signal-exit": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.1.tgz", + "integrity": "sha512-uUWsN4aOxJAS8KOuf3QMyFtgm1pkb6I+KRZbRF/ghdf5T7sM+B1lLLzPDxswUjkmHyxQAVzEgG35E3NzDM9GVw==", + "dev": true + }, "write-file-atomic": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.0.tgz", - "integrity": "sha512-R7NYMnHSlV42K54lwY9lvW6MnSm1HSJqZL3xiSgi9E7//FYaI74r2G0rd+/X6VAMkHEdzxQaU5HUOXWUz5kA/w==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz", + "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==", "dev": true, "requires": { "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" + "signal-exit": "^4.0.1" } } } @@ -17167,51 +17441,47 @@ "requires": {} }, "stylelint-config-recommended-scss": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-10.0.0.tgz", - "integrity": "sha512-+YvPgUHi0W5mCJCKdupBCIsWPYNbWuJcRmFtSYujwNg+41ljFknhO9bpY6C+oahv659zW7W1AT7i6DQvJYYr1A==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-11.0.0.tgz", + "integrity": "sha512-EDghTDU7aOv2LTsRZvcT1w8mcjUaMhuy+t38iV5I/0Qiu6ixdkRwhLEMul3K/fnB2v9Nwqvb3xpvJfPH+HduDw==", "dev": true, "requires": { "postcss-scss": "^4.0.6", - "stylelint-config-recommended": "^11.0.0", + "stylelint-config-recommended": "^12.0.0", "stylelint-scss": "^4.6.0" }, "dependencies": { - "stylelint-config-recommended": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-11.0.0.tgz", - "integrity": "sha512-SoGIHNI748OCZn6BxFYT83ytWoYETCINVHV3LKScVAWQQauWdvmdDqJC5YXWjpBbxg2E761Tg5aUGKLFOVhEkA==", + "stylelint-scss": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-4.7.0.tgz", + "integrity": "sha512-TSUgIeS0H3jqDZnby1UO1Qv3poi1N8wUYIJY6D1tuUq2MN3lwp/rITVo0wD+1SWTmRm0tNmGO0b7nKInnqF6Hg==", "dev": true, - "requires": {} + "requires": { + "postcss-media-query-parser": "^0.2.3", + "postcss-resolve-nested-selector": "^0.1.1", + "postcss-selector-parser": "^6.0.11", + "postcss-value-parser": "^4.2.0" + } } } }, "stylelint-config-standard": { - "version": "32.0.0", - "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-32.0.0.tgz", - "integrity": "sha512-UnGJxYDyYFrIE9CjDMZRkrNh2o4lOtO+MVZ9qG5b8yARfsWho0GMx4YvhHfsv8zKKgHeWX2wfeyxmuoqcaYZ4w==", + "version": "33.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-33.0.0.tgz", + "integrity": "sha512-eyxnLWoXImUn77+ODIuW9qXBDNM+ALN68L3wT1lN2oNspZ7D9NVGlNHb2QCUn4xDug6VZLsh0tF8NyoYzkgTzg==", "dev": true, "requires": { - "stylelint-config-recommended": "^11.0.0" - }, - "dependencies": { - "stylelint-config-recommended": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-11.0.0.tgz", - "integrity": "sha512-SoGIHNI748OCZn6BxFYT83ytWoYETCINVHV3LKScVAWQQauWdvmdDqJC5YXWjpBbxg2E761Tg5aUGKLFOVhEkA==", - "dev": true, - "requires": {} - } + "stylelint-config-recommended": "^12.0.0" } }, "stylelint-config-standard-scss": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/stylelint-config-standard-scss/-/stylelint-config-standard-scss-8.0.0.tgz", - "integrity": "sha512-TDT/gJD/0LUDoUgkjF1uoI/4DfczXHxg7gJVcWT4/JbE6k5hszVuI14reNX+tEwSyMNhcK2BA7izrK+uVAz7XA==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-standard-scss/-/stylelint-config-standard-scss-9.0.0.tgz", + "integrity": "sha512-yPKpJsrZn4ybuQZx/DkEHuCjw7pJginErE/47dFhCnrvD48IJ4UYec8tSiCuJWMA3HRjbIa3nh5ZeSauDGuVAg==", "dev": true, "requires": { - "stylelint-config-recommended-scss": "^10.0.0", - "stylelint-config-standard": "^32.0.0" + "stylelint-config-recommended-scss": "^11.0.0", + "stylelint-config-standard": "^33.0.0" } }, "stylelint-order": { @@ -17225,12 +17495,11 @@ } }, "stylelint-scss": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-4.6.0.tgz", - "integrity": "sha512-M+E0BQim6G4XEkaceEhfVjP/41C9Klg5/tTPTCQVlgw/jm2tvB+OXJGaU0TDP5rnTCB62aX6w+rT+gqJW/uwjA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-5.0.0.tgz", + "integrity": "sha512-5Ee5kG3JIcP2jk2PMoFMiNmW/815V+wK5o37X5ke90ihWMpPXI9iyqeA6zEWipWSRXeQc0kqbd7hKqiR+wPKNA==", "dev": true, "requires": { - "dlv": "^1.1.3", "postcss-media-query-parser": "^0.2.3", "postcss-resolve-nested-selector": "^0.1.1", "postcss-selector-parser": "^6.0.11", @@ -17346,14 +17615,14 @@ } }, "tar": { - "version": "6.1.13", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.13.tgz", - "integrity": "sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==", + "version": "6.1.14", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.14.tgz", + "integrity": "sha512-piERznXu0U7/pW7cdSn7hjqySIVTYT6F76icmFk7ptU7dDYlXTm5r9A6K04R2vU3olYgoKeo1Cg3eeu5nhftAw==", "dev": true, "requires": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", - "minipass": "^4.0.0", + "minipass": "^5.0.0", "minizlib": "^2.1.1", "mkdirp": "^1.0.3", "yallist": "^4.0.0" @@ -17378,12 +17647,6 @@ } } } - }, - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true } } }, @@ -17484,34 +17747,26 @@ } }, "tuf-js": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-1.0.0.tgz", - "integrity": "sha512-1dxsQwESDzACJjTdYHQ4wJ1f/of7jALWKfJEHSBWUQB/5UTJUx9SW6GHXp4mZ1KvdBRJCpGjssoPFGi4hvw8/A==", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-1.1.6.tgz", + "integrity": "sha512-CXwFVIsXGbVY4vFiWF7TJKWmlKJAT8TWkH4RmiohJRcDJInix++F0dznDmoVbtJNzZ8yLprKUG4YrDIhv3nBMg==", "dev": true, "requires": { - "make-fetch-happen": "^11.0.1", - "minimatch": "^6.1.0" + "@tufjs/models": "1.0.4", + "debug": "^4.3.4", + "make-fetch-happen": "^11.1.0" }, "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, "lru-cache": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.17.0.tgz", - "integrity": "sha512-zSxlVVwOabhVyTi6E8gYv2cr6bXK+8ifYz5/uyJb9feXX6NACVDwY4p5Ut3WC3Ivo/QhpARHU3iujx2xGAYHbQ==", + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", "dev": true }, "make-fetch-happen": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.0.3.tgz", - "integrity": "sha512-oPLh5m10lRNNZDjJ2kP8UpboUx2uFXVaVweVe/lWut4iHWcQEmfqSVJt2ihZsFI8HbpwyyocaXbCAWf0g1ukIA==", + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz", + "integrity": "sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==", "dev": true, "requires": { "agentkeepalive": "^4.2.1", @@ -17521,7 +17776,7 @@ "https-proxy-agent": "^5.0.0", "is-lambda": "^1.0.1", "lru-cache": "^7.7.1", - "minipass": "^4.0.0", + "minipass": "^5.0.0", "minipass-fetch": "^3.0.0", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", @@ -17531,23 +17786,14 @@ "ssri": "^10.0.0" } }, - "minimatch": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-6.2.0.tgz", - "integrity": "sha512-sauLxniAmvnhhRjFwPNnJKaPFYyddAgbYdeUpHULtCT/GhzdCx/MDNy+Y40lBxTQUrMzDE8e0S43Z5uqfO0REg==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - }, "minipass-fetch": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.1.tgz", - "integrity": "sha512-t9/wowtf7DYkwz8cfMSt0rMwiyNIBXf5CKZ3S5ZMqRqMYT0oLTp0x1WorMI9WTwvaPg21r1JbFxJMum8JrLGfw==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.3.tgz", + "integrity": "sha512-n5ITsTkDqYkYJZjcRWzZt9qnZKCT7nKCosJhHoj7S7zD+BP4jVbWs+odsniw5TA3E0sLomhTKOKjF86wf11PuQ==", "dev": true, "requires": { "encoding": "^0.1.13", - "minipass": "^4.0.0", + "minipass": "^5.0.0", "minipass-sized": "^1.0.3", "minizlib": "^2.1.2" } @@ -17868,9 +18114,9 @@ "dev": true }, "wrap-ansi": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.0.1.tgz", - "integrity": "sha512-QFF+ufAqhoYHvoHdajT/Po7KoXVBPXS2bgjIam5isfWJPfIOnQZ50JtUiVvCv/sjgacf3yRrt2ZKUZ/V4itN4g==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", "dev": true, "requires": { "ansi-styles": "^6.1.0", @@ -17918,6 +18164,43 @@ } } }, + "wrap-ansi-cjs": { + "version": "npm:wrap-ansi@7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "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==", + "dev": true + } + } + }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", diff --git a/package.json b/package.json index 1b45922f8..f8667b8b1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "mkdocs-material", - "version": "9.1.8", + "version": "9.1.12", "description": "Documentation that simply works", "keywords": [ "mkdocs", @@ -46,34 +46,34 @@ "fuzzaldrin-plus": "^0.6.0", "iframe-worker": "^1.0.3", "lunr": "^2.3.9", - "lunr-languages": "^1.10.0", + "lunr-languages": "^1.12.0", "resize-observer-polyfill": "^1.5.1", - "rxjs": "^7.8.0", + "rxjs": "^7.8.1", "unfetch": "^5.0.0", "url-polyfill": "^1.1.12" }, "devDependencies": { "@fortawesome/fontawesome-free": "^6.4.0", "@mdi/svg": "^7.2.96", - "@primer/octicons": "^18.3.0", + "@primer/octicons": "^19.1.0", "@types/css-modules": "^1.0.2", "@types/escape-html": "^1.0.2", "@types/fuzzaldrin-plus": "^0.6.2", "@types/html-minifier": "^4.0.2", "@types/lunr": "^2.3.4", - "@types/node": "^18.15.11", + "@types/node": "^20.1.4", "@types/resize-observer-browser": "^0.1.7", "@types/sass": "^1.45.0", - "@typescript-eslint/eslint-plugin": "^5.59.0", - "@typescript-eslint/parser": "^5.59.0", + "@typescript-eslint/eslint-plugin": "^5.59.5", + "@typescript-eslint/parser": "^5.59.5", "autoprefixer": "^10.4.14", "chokidar": "^3.5.3", "cssnano": "5.1.0", - "esbuild": "^0.17.17", - "eslint": "^8.38.0", + "esbuild": "^0.17.19", + "eslint": "^8.40.0", "eslint-plugin-eslint-comments": "^3.2.0", "eslint-plugin-import": "^2.27.5", - "eslint-plugin-jsdoc": "^43.0.0", + "eslint-plugin-jsdoc": "^44.2.3", "eslint-plugin-no-null": "^1.0.2", "github-types": "^1.0.0", "gitlab": "^14.2.2", @@ -81,28 +81,28 @@ "html-minifier": "^4.0.0", "material-design-color": "^2.3.2", "material-shadows": "^3.0.1", - "npm-check-updates": "^16.10.8", + "npm-check-updates": "^16.10.12", "npm-run-all": "^4.1.5", - "postcss": "^8.4.22", + "postcss": "^8.4.23", "postcss-dir-pseudo-class": "^7.0.2", "postcss-inline-svg": "^6.0.0", "postcss-logical": "5.0.4", "postcss-pseudo-is": "^0.3.0", - "preact": "^10.13.2", + "preact": "^10.14.0", "rimraf": "^5.0.0", - "sass": "^1.62.0", - "simple-icons": "^8.10.0", - "stylelint": "^15.5.0", + "sass": "^1.62.1", + "simple-icons": "^8.13.0", + "stylelint": "^15.6.1", "stylelint-config-recess-order": "^4.0.0", "stylelint-config-recommended": "^12.0.0", - "stylelint-config-standard-scss": "^8.0.0", - "stylelint-scss": "^4.6.0", + "stylelint-config-standard-scss": "^9.0.0", + "stylelint-scss": "^5.0.0", "svgo": "3.0.0", "tiny-glob": "^0.2.9", "ts-node": "^10.9.1", "typescript": "^5.0.4" }, "engines": { - "node": ">= 16" + "node": ">= 18" } } diff --git a/src/.overrides/assets/stylesheets/custom/_typeset.scss b/src/.overrides/assets/stylesheets/custom/_typeset.scss index 70e8b752e..d9e3fba4f 100644 --- a/src/.overrides/assets/stylesheets/custom/_typeset.scss +++ b/src/.overrides/assets/stylesheets/custom/_typeset.scss @@ -211,4 +211,74 @@ } } } + + // Social card + .mdx-social { + position: relative; + height: min(#{px2rem(540px)}, 80vw); + + // Social card image on hover + &:hover .mdx-social__image { + background-color: rgba(228, 228, 228, 0.05); + } + + // Social card layer + &__layer { + position: absolute; + margin-top: px2rem(80px); + transition: 250ms cubic-bezier(0.7, 0, 0.3, 1); + transform-style: preserve-3d; + + // Social card layer on hover + &:hover { + + // Social card label + .mdx-social__label { + opacity: 1; + } + + // Social card image + .mdx-social__image { + background-color: rgba(127, 127, 127, 0.99); + } + + // Hide top layers + ~ .mdx-social__layer { + opacity: 0; + } + } + } + + // Social card image + &__image { + box-shadow: + px2rem(-5px) px2rem(5px) px2rem(10px) + rgba(0, 0, 0, 0.05); + transition: all 250ms; + transform: rotate(-40deg) skew(15deg, 15deg) scale(0.7); + + // Actual image + img { + display: block; + } + } + + // Social card label + &__label { + position: absolute; + display: block; + padding: px2rem(4px) px2rem(8px); + color: var(--md-default-bg-color); + background-color: var(--md-default-fg-color--light); + opacity: 0; + transition: all 250ms; + } + + // Transform on hover + @for $i from 6 through 0 { + &:hover .mdx-social__layer:nth-child(#{$i}) { + transform: translateY(#{($i - 3) * -10}px); + } + } + } } diff --git a/src/.overrides/hooks/translations.py b/src/.overrides/hooks/translations.py index 6650db911..663a01c1f 100644 --- a/src/.overrides/hooks/translations.py +++ b/src/.overrides/hooks/translations.py @@ -151,6 +151,7 @@ countries = dict({ "it": "it", "ja": "jp", "ka": "ge", + "kn": "in", "ko": "kr", "ku-IQ": "iq", "lt": "lt", @@ -167,12 +168,14 @@ countries = dict({ "pt": "pt", "ro": "ro", "ru": "ru", + "sa": "in", "sh": "rs", "si": "lk", "sk": "sk", "sl": "si", "sr": "rs", "sv": "se", + "te": "in", "th": "th", "tl": "ph", "tr": "tr", diff --git a/src/assets/javascripts/components/content/annotation/_/index.ts b/src/assets/javascripts/components/content/annotation/_/index.ts index 01c4d6736..07855a3c8 100644 --- a/src/assets/javascripts/components/content/annotation/_/index.ts +++ b/src/assets/javascripts/components/content/annotation/_/index.ts @@ -222,7 +222,10 @@ export function mountAnnotation( takeUntil(done$), filter(ev => !(ev.metaKey || ev.ctrlKey)) ) - .subscribe(ev => ev.preventDefault()) + .subscribe(ev => { + ev.stopPropagation() + ev.preventDefault() + }) /* Allow to open link in new tab or blur on close */ fromEvent(index, "mousedown") diff --git a/src/assets/javascripts/components/content/tabs/index.ts b/src/assets/javascripts/components/content/tabs/index.ts index 35bcf37d0..f57447e26 100644 --- a/src/assets/javascripts/components/content/tabs/index.ts +++ b/src/assets/javascripts/components/content/tabs/index.ts @@ -244,6 +244,13 @@ export function mountContentTabs( } }) + /* Pause media (audio, video) on switch - see https://bit.ly/3Bk6cel */ + push$.pipe(takeUntil(done$)) + .subscribe(() => { + for (const media of getElements("audio, video", el)) + media.pause() + }) + /* Create and return component */ return watchContentTabs(el) .pipe( diff --git a/src/assets/stylesheets/main/_colors.scss b/src/assets/stylesheets/main/_colors.scss index 1be8127be..58135e495 100644 --- a/src/assets/stylesheets/main/_colors.scss +++ b/src/assets/stylesheets/main/_colors.scss @@ -47,6 +47,12 @@ // Allow to explicitly use color schemes in nested content [data-md-color-scheme="default"] { @extend %root; + + // Hide images for dark mode + img[src$="#only-dark"], + img[src$="#gh-dark-mode-only"] { + display: none; + } } // ---------------------------------------------------------------------------- diff --git a/src/assets/stylesheets/main/_typeset.scss b/src/assets/stylesheets/main/_typeset.scss index 94e054ff9..1c322859e 100644 --- a/src/assets/stylesheets/main/_typeset.scss +++ b/src/assets/stylesheets/main/_typeset.scss @@ -413,12 +413,6 @@ kbd { &[align]:only-child { margin-top: 0; } - - // Hide images for dark mode - &[src$="#only-dark"], - &[src$="#gh-dark-mode-only"] { - display: none; - } } // Figure diff --git a/src/assets/stylesheets/palette/_scheme.scss b/src/assets/stylesheets/palette/_scheme.scss index f4d1a69d9..a4704018d 100644 --- a/src/assets/stylesheets/palette/_scheme.scss +++ b/src/assets/stylesheets/palette/_scheme.scss @@ -110,12 +110,6 @@ img[src$="#gh-light-mode-only"] { display: none; } - - // Show images for dark mode - img[src$="#only-dark"], - img[src$="#gh-dark-mode-only"] { - display: initial; - } } // -------------------------------------------------------------------------- diff --git a/src/partials/languages/bn.html b/src/partials/languages/bn.html index 872706b6f..0a3ee6d04 100644 --- a/src/partials/languages/bn.html +++ b/src/partials/languages/bn.html @@ -25,25 +25,52 @@ "language": "bn", "action.edit": "এই পেজ এডিট করুন", "action.skip": "কনটেন্টে যান", + "action.view": "পেজের ভিউ", + "announce.dismiss": "আর কখনো দেখাবে না", + "blog.archive": "সংরক্ষণাগার", + "blog.categories": "বিভাগ", + "blog.categories.in": "বিভাগের মধ্যে", + "blog.continue": "পড়তে থাকুন", + "blog.draft": "খসড়া", + "blog.index": "ইনডেক্সে ফিরে যান", + "blog.meta": "মেটাডেটা", + "blog.references": "সম্পর্কিত লিংক", "clipboard.copy": "ক্লিপবোর্ডে কপি করুন", "clipboard.copied": "ক্লিপবোর্ডে কপি হয়েছে", + "consent.accept": "গ্রহণ", + "consent.manage": "সেটিংস ব্যবস্থাপনা", + "consent.reject": "প্রত্যাখ্যান", "footer": "ফুটার", "footer.next": "পরে", "footer.previous": "পূর্ববর্তী", "header": "হেডার", - "meta.comments": "কমেন্ট", - "meta.source": "সোর্স", + "meta.comments": "মন্তব্য", + "meta.source": "উৎস", "nav": "ন্যাভিগেশন", + "readtime.one": "১ মিনিট পড়া", + "readtime.other": "# মিনিট পড়া", + "rss.created": "আরএসএস ফিড", + "rss.updated": "আপডেট করা বিষয়বস্তুর আরএসএস ফিড", + "search": "অনুসন্ধান করুন", "search.config.pipeline": " ", - "search.placeholder": "সার্চ", - "search.reset": "মুছে ফেলুন", + "search.placeholder": "অনুসন্ধান করুন", + "search.share": "শেয়ার", + "search.reset": "রিসেট", + "search.result.initializer": "অনুসন্ধান শুরু করা হচ্ছে", "search.result.placeholder": "সার্চ টাইপ করুন", "search.result.none": "কিছু পাওয়া যায়নি", "search.result.one": "১ টা ডকুমেন্ট", "search.result.other": "# টা ডকুমেন্ট", + "search.result.more.one": "এই পৃষ্ঠায় আরও ১টি আছে", + "search.result.more.other": "এই পৃষ্ঠায় আরও #টি আছে", + "search.result.term.missing": "অনুপস্থিত", + "select.language": "ভাষা নির্বাচন করুণ", + "select.version": "সংস্করণ নির্বাচন করুণ", "source": "রিপোজিটরিতে যান", + "source.file.contributors": "অবদানকারী", "source.file.date.created": "তৈরি হয়েছে", "source.file.date.updated": "শেষ আপডেট", "tabs": "ট্যাব", - "toc": "টেবিল অফ কনটেন্ট" + "toc": "সূচি তালিকা", + "top": "উপরে ফিরে যাও" }[key] }}{% endmacro %} diff --git a/src/partials/languages/kn.html b/src/partials/languages/kn.html new file mode 100644 index 000000000..bd0ff722d --- /dev/null +++ b/src/partials/languages/kn.html @@ -0,0 +1,75 @@ + + + +{% macro t(key) %}{{ { + "language": "kn", + "action.edit": "ಈ ಪುಟವನ್ನು ತಿದ್ದುಪಡಿ ಮಾಡಿ", + "action.skip": "ವಿಷಯಕ್ಕೆ ತೆರಳಿ", + "action.view": "ಈ ಪುಟದ ಮೂಲವನ್ನು ವೀಕ್ಷಿಸಿ", + "announce.dismiss": "ಇದನ್ನು ಮತ್ತೊಮ್ಮೆ ತೋರಿಸಬೇಡಿ", + "blog.archive": "ಹಳೆಯ ಲೇಖನ", + "blog.categories": "ವರ್ಗಗಳು", + "blog.categories.in": "ರಲ್ಲಿ", + "blog.continue": "ಓದು ಮುಂದುವರೆಸಿ", + "blog.draft": "ಆರಂಭಿಕ ಬರವಣಿಗೆ", + "blog.index": "ಸೂಚ್ಯಂಕಕ್ಕೆ ಹಿಂತಿರುಗಿ", + "blog.meta": "ಮಾಹಿತಿಯ ಬಗ್ಗೆ ಮಾಹಿತಿ", + "blog.references": "ಸಂಬಂಧಿತ ಉಲ್ಲೇಖಗಳು", + "clipboard.copy": "ಇದನ್ನು ನಕಲಿಸಿ", + "clipboard.copied": "ಇದನ್ನು ನಕಲು ಮಾಡಿದೆ", + "consent.accept": "ನಾನು ಇದನ್ನು ಒಪ್ಪಿಕೊಳ್ಳುತ್ತೇನೆ", + "consent.manage": "ಸಂರಚನೆಯನ್ನು ನಿರ್ವಹಿಸಿ", + "consent.reject": "ನಾನು ಇದನ್ನು ತಿರಸ್ಕರಿಸುತ್ತೇನೆ", + "footer": "ಅಡಿಟಿಪ್ಪಣಿ", + "footer.next": "ಮುಂದಿನ ಸಂಚಿಕೆ", + "footer.previous": "ಹಿಂದಿನ ಸಂಚಿಕೆ", + "header": "ಮೇಲ್ಟಿಪ್ಪಣಿ", + "meta.comments": "ಪ್ರತಿಕ್ರಿಯೆಗಳು", + "meta.source": "ಮೂಲ", + "nav": "ಸಂಚರಣೆ", + "readtime.one": "ಓದಲು ೧ ನಿಮಿಷ ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ", + "readtime.other": "ಓದಲು # ನಿಮಿಷಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ", + "rss.created": "ಆರ್ಎಸ್ಎಸ್ ಸೇವೆ", + "rss.updated": "ಆರ್ಎಸ್ಎಸ್ ಸೇವೆಯಿಂದ ಇತ್ತೀಚಿನ ನವೀಕರಣ", + "search": "ಹುಡುಕಿ", + "search.placeholder": "ಹುಡುಕಿ", + "search.share": "ಹಂಚಿಕೊಳ್ಳಿ", + "search.reset": "ಅಳಿಸು", + "search.result.initializer": "ಹುಡುಕಾಟವನ್ನು ಪ್ರಾರಂಭಿಸಲಾಗುತ್ತಿದೆ", + "search.result.placeholder": "ಬರೆಯುವ ಮೂಲಕ ಹುಡುಕಲು ಪ್ರಾರಂಭಿಸಿ", + "search.result.none": "ಹೊಂದಾಣಿಕೆಯಾಗುವ ದಾಖಲೆಗಳಿಲ್ಲ", + "search.result.one": "೧ ಹೊಂದಾಣಿಕೆಯ ದಾಖಲೆಯಿದೆ", + "search.result.other": "# ಹೊಂದಾಣಿಕೆಯ ದಾಖಲೆಗಳಿವೆ", + "search.result.more.one": "ಈ ಪುಟದಲ್ಲಿ ಇನ್ನೂ ಒಂದು ಕಂಡುಬಂದಿದೆ", + "search.result.more.other": "ಈ ಪುಟದಲ್ಲಿ ಇನ್ನೂ # ಇವೆ", + "search.result.term.missing": "ಕಾಣೆಯಾಗಿದೆ", + "select.language": "ಭಾಷೆಯನ್ನು ಆಯ್ಕೆಮಾಡಿ", + "select.version": "ಆವೃತ್ತಿಯನ್ನು ಆಯ್ಕೆಮಾಡಿ", + "source": "ಭಂಡಾರಕ್ಕೆ ಹೋಗಿ", + "source.file.contributors": "ಕೊಡುಗೆದಾರರು", + "source.file.date.created": "ರಚಿಸಿದ ದಿನಾಂಕ", + "source.file.date.updated": "ಕೊನೆಯ ನವೀಕರಣ ದಿನಾಂಕ", + "tabs": "ವಿವಿಧ ಕಿಟಕಿಗಳು", + "toc": "ವಿಷಯಗಳ ಪಟ್ಟಿ", + "top": "ಮೇಲಕ್ಕೆ ಹಿಂತಿರುಗಿ" +}[key] }}{% endmacro %} diff --git a/src/partials/languages/sa.html b/src/partials/languages/sa.html new file mode 100644 index 000000000..e3d06ac5e --- /dev/null +++ b/src/partials/languages/sa.html @@ -0,0 +1,75 @@ + + + +{% macro t(key) %}{{ { + "language": "sa", + "action.edit": "एतत् पृष्ठं सम्पादयतु", + "action.skip": "सामग्रीं त्यजन्तु", + "action.view": "अस्य पृष्ठस्य स्रोतः पश्यन्तु", + "announce.dismiss": "एतत् पुनः न दर्शयतु", + "blog.archive": "लेखागार", + "blog.categories": "श्रेणियाँ", + "blog.categories.in": "इत्यस्मिन्‌", + "blog.continue": "पठनं निरन्तरं कुर्वन्तु", + "blog.draft": "प्रारूप", + "blog.index": "अनुक्रमणिकां प्रति पुनः आगच्छन्तु", + "blog.meta": "परिदत्तांश", + "blog.references": "सन्दर्भाः", + "clipboard.copy": "एतत् प्रतिलिख्यताम्", + "clipboard.copied": "प्रतिलिपितः भवति", + "consent.accept": "अहं तत् स्वीकुर्वन् अस्मि", + "consent.manage": "वविन्यासं प्रबन्धयन्तु", + "consent.reject": "अहं तत् निराकरोमि", + "footer": "पादलेखः", + "footer.next": "अग्रिमः", + "footer.previous": "पूर्वकृत", + "header": "शीर्षकम्", + "meta.comments": "विचाराः", + "meta.source": "स्रोतः", + "nav": "मार्गदर्शनम्", + "readtime.one": "१ निमेषं पठितुं", + "readtime.other": "# निमेषं पठितुं", + "rss.created": "आरएसएस सेवा", + "rss.updated": "आरएसएस सेवातः नवीनतमं अद्यतनम्", + "search": "अन्वेषण", + "search.placeholder": "अन्वेषण", + "search.share": "साझां कुर्वन्तु", + "search.reset": "तत् स्वच्छं कुर्वन्तु", + "search.result.initializer": "अन्वेषणस्य आरम्भः", + "search.result.placeholder": "अन्वेषणं आरभ्य लिखन्तु", + "search.result.none": "मेलयुक्ताः दस्तावेजाः नास्ति", + "search.result.one": "१ मेलकर्ता दस्तावेजः अस्ति", + "search.result.other": "# मेलनदस्तावेजाः सन्ति", + "search.result.more.one": "अस्मिन् पृष्ठे १ अधिकं अस्ति", + "search.result.more.other": "अस्मिन् पृष्ठे # अधिकाः सन्ति", + "search.result.term.missing": "असमेत", + "select.language": "भाषां चिनोतु", + "select.version": "संस्करणं चिनोतु", + "source": "भण्डारं गच्छन्तु", + "source.file.contributors": "अंशदाता", + "source.file.date.created": "ननिर्माणस्य तिथिः", + "source.file.date.updated": "परिवर्तनस्य तिथिः", + "tabs": "दस्तावेजस्य प्रमुखः", + "toc": "सामग्रीसारणी", + "top": "पुनः उपरिभागं प्रति गच्छन्तु" +}[key] }}{% endmacro %} diff --git a/src/partials/languages/te.html b/src/partials/languages/te.html new file mode 100644 index 000000000..7529a47cc --- /dev/null +++ b/src/partials/languages/te.html @@ -0,0 +1,75 @@ + + + +{% macro t(key) %}{{ { + "language": "te", + "action.edit": "ఈ పేజీలో దిద్దుబాట్లు చేయండి", + "action.skip": "సమాచారానికి వెళ్లండి", + "action.view": "నేను ఈ పేజీ యొక్క మూలాన్ని చూడాలనుకుంటున్నాను", + "announce.dismiss": "దీన్ని మళ్లీ చూపవద్దు", + "blog.archive": "పాత వ్యాసం", + "blog.categories": "వర్గాలు", + "blog.categories.in": "లో", + "blog.continue": "చదవడం కొనసాగించండి", + "blog.draft": "ప్రారంభ రచన", + "blog.index": "సూచికకు తిరిగి వెళ్ళు", + "blog.meta": "సమాచారం గురించి సమాచారం", + "blog.references": "సంబంధిత సూచనలు", + "clipboard.copy": "దీనిని అనుకరించు", + "clipboard.copied": "దీనిని అతికించు", + "consent.accept": "నేను దీనిని అంగీకరిస్తున్నాను", + "consent.manage": "ఆకృతీకరణను నిర్వహించండి", + "consent.reject": "నేను దీనిని తిరస్కరిస్తున్నాను", + "footer": "అడిటిప్పణి", + "footer.next": "తదుపరి భాగం", + "footer.previous": "మునుపటి భాగం", + "header": "శీర్షిక విభాగం", + "meta.comments": "అభిప్రాయాలు", + "meta.source": "మూలం", + "nav": "మార్గదర్శక పట్టీ", + "readtime.one": "చదవడానికి ఒక నిమిషం పడుతుంది", + "readtime.other": "చదవడానికి # నిమిషాలు పడుతుంది", + "rss.created": "ఆర్ఎస్ఎస్ సేవ", + "rss.updated": "ఆర్ఎస్ఎస్ సేవ నుండి తాజా నవీకరణ", + "search": "వెతకండి", + "search.placeholder": "వెతకండి", + "search.share": "పంచుకోండి", + "search.reset": "తుడిచివేయు", + "search.result.initializer": "శోధనను ప్రారంభిస్తోంది", + "search.result.placeholder": "రాయడం ద్వారా వెతకడం ప్రారంభించండి", + "search.result.none": "సరిపోలే పత్రాలు లేవు", + "search.result.one": "ఒక సరిపోలే పత్రం", + "search.result.other": "# సరిపోలే పత్రాలు", + "search.result.more.one": "ఈ పేజీలో మరొకటి", + "search.result.more.other": "ఈ పేజీలో ఇంకా # ఉన్నాయి", + "search.result.term.missing": "తప్పిపోయింది", + "select.language": "భాషను ఎంచుకోండి", + "select.version": "సంస్కరణను ఎంచుకోండి", + "source": "భండారానికి వెళ్ళండి", + "source.file.contributors": "సహకారులు", + "source.file.date.created": "సృష్టించబడింది", + "source.file.date.updated": "చివరి నవీకరణ", + "tabs": "వివిధ కిటికీలు", + "toc": "విషయ సూచిక", + "top": "పైకి తిరిగి వెళ్ళు" +}[key] }}{% endmacro %} diff --git a/src/plugins/social/plugin.py b/src/plugins/social/plugin.py index 62bdb6301..c2ad516a0 100644 --- a/src/plugins/social/plugin.py +++ b/src/plugins/social/plugin.py @@ -57,8 +57,19 @@ class SocialPluginConfig(Config): # Options for social cards cards = opt.Type(bool, default = True) cards_dir = opt.Type(str, default = "assets/images/social") - cards_color = opt.Type(dict, default = dict()) - cards_font = opt.Optional(opt.Type(str)) + cards_layout_options = opt.Type(dict, default = {}) + + # Deprecated options + cards_color = opt.Deprecated( + option_type = opt.Type(dict, default = {}), + message = + "Deprecated, use 'cards_layout_options.background_color' " + "and 'cards_layout_options.color' with 'default' layout" + ) + cards_font = opt.Deprecated( + option_type = opt.Type(str), + message = "Deprecated, use 'cards_layout_options.font_family'" + ) # ----------------------------------------------------------------------------- @@ -67,6 +78,7 @@ class SocialPlugin(BasePlugin[SocialPluginConfig]): def __init__(self): self._executor = concurrent.futures.ThreadPoolExecutor(4) + self.custom_dir = None # Retrieve configuration def on_config(self, config): @@ -74,6 +86,24 @@ class SocialPlugin(BasePlugin[SocialPluginConfig]): if not self.config.cards: return + # Move color options + if "cards_color" in self.config: + + # Move background color to new option + value = self.config.cards_color.get("fill") + if value: + self.config.cards_layout_options["background_color"] = value + + # Move color to new option + value = self.config.cards_color.get("text") + if value: + self.config.cards_layout_options["color"] = value + + # Move font family to new option + if "cards_font" in self.config: + value = self.config.cards_font + self.config.cards_layout_options["font_family"] = value + # Check if required dependencies are installed if not dependencies: log.error( @@ -109,7 +139,18 @@ class SocialPlugin(BasePlugin[SocialPluginConfig]): self.color = colors.get(primary, self.color) # Retrieve color overrides - self.color = { **self.color, **self.config.cards_color } + options = self.config.cards_layout_options + self.color = { + "fill": options.get("background_color", self.color["fill"]), + "text": options.get("color", self.color["text"]) + } + + # Retrieve custom_dir path + for user_config in config.user_configs: + custom_dir = user_config.get("theme", {}).get("custom_dir") + if custom_dir: + self.custom_dir = custom_dir + break # Retrieve logo and font self._resized_logo_promise = self._executor.submit(self._load_resized_logo, config) @@ -343,8 +384,15 @@ class SocialPlugin(BasePlugin[SocialPluginConfig]): if "logo" in theme: _, extension = os.path.splitext(theme["logo"]) - # Load SVG and convert to PNG path = os.path.join(config.docs_dir, theme["logo"]) + + # Allow users to put the logo inside their custom_dir (theme["logo"] case) + if self.custom_dir: + custom_dir_logo = os.path.join(self.custom_dir, theme["logo"]) + if os.path.exists(custom_dir_logo): + path = custom_dir_logo + + # Load SVG and convert to PNG if extension == ".svg": return self._load_logo_svg(path) @@ -352,10 +400,11 @@ class SocialPlugin(BasePlugin[SocialPluginConfig]): return Image.open(path).convert("RGBA") # Handle icons - logo = "material/library" icon = theme["icon"] or {} if "logo" in icon and icon["logo"]: logo = icon["logo"] + else: + logo = "material/library" # Resolve path of package base = os.path.abspath(os.path.join( @@ -363,8 +412,15 @@ class SocialPlugin(BasePlugin[SocialPluginConfig]): "../.." )) - # Load icon data and fill with color path = f"{base}/.icons/{logo}.svg" + + # Allow users to put the logo inside their custom_dir (theme["icon"]["logo"] case) + if self.custom_dir: + custom_dir_logo = os.path.join(self.custom_dir, ".icons", f"{logo}.svg") + if os.path.exists(custom_dir_logo): + path = custom_dir_logo + + # Load icon data and fill with color return self._load_logo_svg(path, self.color["text"]) # Load SVG file and convert to PNG @@ -382,24 +438,24 @@ class SocialPlugin(BasePlugin[SocialPluginConfig]): # Retrieve font def _load_font(self, config): - name = self.config.cards_font + name = self.config.cards_layout_options.get("font_family") if not name: # Retrieve from theme (default: Roboto) theme = config.theme - if theme["font"]: + if isinstance(theme["font"], dict) and "text" in theme["font"]: name = theme["font"]["text"] else: name = "Roboto" - # Google fonts can return varients like OpenSane_Condensed-Regulat.ttf so + # Google fonts can return varients like OpenSans_Condensed-Regular.ttf so # we only use the font requested e.g. OpenSans-Regular.ttf font_filename_base = name.replace(' ', '') filename_regex = re.escape(font_filename_base)+r"-(\w+)\.[ot]tf$" font = dict() # Check for cached files - note these may be in subfolders - for currentpath, folders, files in os.walk("./.cache/"): + for currentpath, folders, files in os.walk(self.cache): for file in files: # Map available font weights to file paths fname = os.path.join(currentpath, file) @@ -410,7 +466,7 @@ class SocialPlugin(BasePlugin[SocialPluginConfig]): # If none found, fetch from Google and try again if len(font) == 0: self._load_font_from_google(name) - for currentpath, folders, files in os.walk("./.cache/"): + for currentpath, folders, files in os.walk(self.cache): for file in files: # Map available font weights to file paths fname = os.path.join(currentpath, file)