From a87602b3c45b1f7903460adfd6268c65c8669682 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 29 Dec 2023 16:50:43 +0100 Subject: [PATCH] chore(deps): update doc-dependencies (#2301) --- docs/.vitepress/config.ts | 9 +- docs/.vitepress/theme/index.css | 4 +- docs/api/ApiIndex.vue | 6 +- package.json | 6 +- pnpm-lock.yaml | 763 +++++++++--------- scripts/apidoc.ts | 6 +- scripts/apidoc/generate.ts | 2 +- scripts/apidoc/typedoc.ts | 24 +- .../apidoc/__snapshots__/module.spec.ts.snap | 2 +- .../__snapshots__/signature.spec.ts.snap | 116 +-- test/scripts/apidoc/module.spec.ts | 7 +- test/scripts/apidoc/signature.debug.ts | 3 +- test/scripts/apidoc/signature.spec.ts | 7 +- test/scripts/apidoc/utils.ts | 24 +- test/scripts/apidoc/verify-jsdoc-tags.spec.ts | 182 ++--- vite.config.ts | 21 + 16 files changed, 633 insertions(+), 549 deletions(-) diff --git a/docs/.vitepress/config.ts b/docs/.vitepress/config.ts index 6dc31dd6078..cdb0ae9e62c 100644 --- a/docs/.vitepress/config.ts +++ b/docs/.vitepress/config.ts @@ -1,5 +1,5 @@ -import { defineConfig } from 'vitepress'; -import { DefaultTheme } from 'vitepress/theme'; +import type { UserConfig } from 'vitepress'; +import type { DefaultTheme } from 'vitepress/theme'; import { apiPages } from './api-pages'; import { currentVersion, oldVersions, versionBannerInfix } from './versions'; @@ -55,7 +55,8 @@ function extendSideNav(current: SidebarItem): SidebarItem[] { return links; } -const config = defineConfig({ +// TODO @Shinigami92 2023-12-28: reuse `defineConfig` from vitepress, when we can go esm-only +const config: UserConfig = { title: 'Faker', description, @@ -259,7 +260,7 @@ const config = defineConfig({ __BANNER__: versionBannerInfix ?? false, }, }, -}); +}; if (versionBannerInfix) { config.head?.push([ diff --git a/docs/.vitepress/theme/index.css b/docs/.vitepress/theme/index.css index f6981bb9eaf..0d8e1853738 100644 --- a/docs/.vitepress/theme/index.css +++ b/docs/.vitepress/theme/index.css @@ -15,6 +15,6 @@ table td ul li { } .VPHero .action:not(:last-child) a.VPButton.alt { - border-color: var(--vp-button-brand-border) !important; - color: var(--vp-button-brand-border) !important; + border-color: var(--vp-button-brand-bg) !important; + color: var(--vp-button-brand-text) !important; } diff --git a/docs/api/ApiIndex.vue b/docs/api/ApiIndex.vue index 7ef64a802dc..3d2130cd83e 100644 --- a/docs/api/ApiIndex.vue +++ b/docs/api/ApiIndex.vue @@ -120,7 +120,7 @@ h2 { h3 { letter-spacing: -0.01em; - color: var(--vp-c-green); + color: var(--vp-c-brand-1); font-size: 18px; margin-bottom: 1em; transition: color 0.5s; @@ -147,7 +147,7 @@ h3 { } .api-groups ul a:hover { - color: var(--vp-c-green); + color: var(--vp-c-brand-1); transition: none; } @@ -181,7 +181,7 @@ h3 { } .api-filter:focus { - border-color: var(--vp-c-green-light); + border-color: var(--vp-c-brand-2); } .no-match { diff --git a/package.json b/package.json index f8b053b0b6e..fd099531d1d 100644 --- a/package.json +++ b/package.json @@ -88,7 +88,7 @@ }, "devDependencies": { "@actions/github": "~6.0.0", - "@algolia/client-search": "~4.19.1", + "@algolia/client-search": "~4.22.0", "@eslint-types/deprecation": "2.0.0-1", "@eslint-types/jsdoc": "~46.9.1", "@eslint-types/prettier": "5.1.2", @@ -125,11 +125,11 @@ "semver": "~7.5.4", "standard-version": "~9.5.0", "tsx": "~3.13.0", - "typedoc": "~0.24.8", + "typedoc": "~0.25.4", "typescript": "~4.9.5", "validator": "~13.11.0", "vite": "~4.5.1", - "vitepress": "1.0.0-beta.7", + "vitepress": "1.0.0-rc.29", "vitest": "~0.34.6", "vue": "~3.3.13" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2de3cd3ba70..63ccc1c5ca6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -5,8 +5,8 @@ devDependencies: specifier: ~6.0.0 version: 6.0.0 '@algolia/client-search': - specifier: ~4.19.1 - version: 4.19.1 + specifier: ~4.22.0 + version: 4.22.0 '@eslint-types/deprecation': specifier: 2.0.0-1 version: 2.0.0-1 @@ -116,8 +116,8 @@ devDependencies: specifier: ~3.13.0 version: 3.13.0 typedoc: - specifier: ~0.24.8 - version: 0.24.8(typescript@4.9.5) + specifier: ~0.25.4 + version: 0.25.4(typescript@4.9.5) typescript: specifier: ~4.9.5 version: 4.9.5 @@ -128,8 +128,8 @@ devDependencies: specifier: ~4.5.1 version: 4.5.1(@types/node@20.10.5) vitepress: - specifier: 1.0.0-beta.7 - version: 1.0.0-beta.7(@algolia/client-search@4.19.1)(@types/node@20.10.5)(search-insights@2.11.0)(typescript@4.9.5) + specifier: 1.0.0-rc.29 + version: 1.0.0-rc.29(@algolia/client-search@4.22.0)(@types/node@20.10.5)(search-insights@2.13.0)(typescript@4.9.5) vitest: specifier: ~0.34.6 version: 0.34.6(@vitest/ui@0.34.7) @@ -148,185 +148,150 @@ packages: resolution: {integrity: sha512-alScpSVnYmjNEXboZjarjukQEzgCRmjMv6Xj47fsdnqGS73bjJNDpiiXmp8jr0UZLdUB6d9jW63IcmddUP+l0g==} dependencies: '@actions/http-client': 2.2.0 - '@octokit/core': 5.0.1 - '@octokit/plugin-paginate-rest': 9.1.4(@octokit/core@5.0.1) - '@octokit/plugin-rest-endpoint-methods': 10.1.5(@octokit/core@5.0.1) + '@octokit/core': 5.0.2 + '@octokit/plugin-paginate-rest': 9.1.5(@octokit/core@5.0.2) + '@octokit/plugin-rest-endpoint-methods': 10.2.0(@octokit/core@5.0.2) dev: true /@actions/http-client@2.2.0: resolution: {integrity: sha512-q+epW0trjVUUHboliPb4UF9g2msf+w61b32tAkFEwL/IwP0DQWgbCMM0Hbe3e3WXSKz5VcUXbzJQgy8Hkra/Lg==} dependencies: tunnel: 0.0.6 - undici: 5.27.2 + undici: 5.28.2 dev: true - /@algolia/autocomplete-core@1.9.3(@algolia/client-search@4.19.1)(algoliasearch@4.20.0)(search-insights@2.11.0): + /@algolia/autocomplete-core@1.9.3(@algolia/client-search@4.22.0)(algoliasearch@4.22.0)(search-insights@2.13.0): resolution: {integrity: sha512-009HdfugtGCdC4JdXUbVJClA0q0zh24yyePn+KUGk3rP7j8FEe/m5Yo/z65gn6nP/cM39PxpzqKrL7A6fP6PPw==} dependencies: - '@algolia/autocomplete-plugin-algolia-insights': 1.9.3(@algolia/client-search@4.19.1)(algoliasearch@4.20.0)(search-insights@2.11.0) - '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.19.1)(algoliasearch@4.20.0) + '@algolia/autocomplete-plugin-algolia-insights': 1.9.3(@algolia/client-search@4.22.0)(algoliasearch@4.22.0)(search-insights@2.13.0) + '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.22.0)(algoliasearch@4.22.0) transitivePeerDependencies: - '@algolia/client-search' - algoliasearch - search-insights dev: true - /@algolia/autocomplete-plugin-algolia-insights@1.9.3(@algolia/client-search@4.19.1)(algoliasearch@4.20.0)(search-insights@2.11.0): + /@algolia/autocomplete-plugin-algolia-insights@1.9.3(@algolia/client-search@4.22.0)(algoliasearch@4.22.0)(search-insights@2.13.0): resolution: {integrity: sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg==} peerDependencies: search-insights: '>= 1 < 3' dependencies: - '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.19.1)(algoliasearch@4.20.0) - search-insights: 2.11.0 + '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.22.0)(algoliasearch@4.22.0) + search-insights: 2.13.0 transitivePeerDependencies: - '@algolia/client-search' - algoliasearch dev: true - /@algolia/autocomplete-preset-algolia@1.9.3(@algolia/client-search@4.19.1)(algoliasearch@4.20.0): + /@algolia/autocomplete-preset-algolia@1.9.3(@algolia/client-search@4.22.0)(algoliasearch@4.22.0): resolution: {integrity: sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA==} peerDependencies: '@algolia/client-search': '>= 4.9.1 < 6' algoliasearch: '>= 4.9.1 < 6' dependencies: - '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.19.1)(algoliasearch@4.20.0) - '@algolia/client-search': 4.19.1 - algoliasearch: 4.20.0 + '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.22.0)(algoliasearch@4.22.0) + '@algolia/client-search': 4.22.0 + algoliasearch: 4.22.0 dev: true - /@algolia/autocomplete-shared@1.9.3(@algolia/client-search@4.19.1)(algoliasearch@4.20.0): + /@algolia/autocomplete-shared@1.9.3(@algolia/client-search@4.22.0)(algoliasearch@4.22.0): resolution: {integrity: sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ==} peerDependencies: '@algolia/client-search': '>= 4.9.1 < 6' algoliasearch: '>= 4.9.1 < 6' dependencies: - '@algolia/client-search': 4.19.1 - algoliasearch: 4.20.0 + '@algolia/client-search': 4.22.0 + algoliasearch: 4.22.0 dev: true - /@algolia/cache-browser-local-storage@4.20.0: - resolution: {integrity: sha512-uujahcBt4DxduBTvYdwO3sBfHuJvJokiC3BP1+O70fglmE1ShkH8lpXqZBac1rrU3FnNYSUs4pL9lBdTKeRPOQ==} + /@algolia/cache-browser-local-storage@4.22.0: + resolution: {integrity: sha512-uZ1uZMLDZb4qODLfTSNHxSi4fH9RdrQf7DXEzW01dS8XK7QFtFh29N5NGKa9S+Yudf1vUMIF+/RiL4i/J0pWlQ==} dependencies: - '@algolia/cache-common': 4.20.0 + '@algolia/cache-common': 4.22.0 dev: true - /@algolia/cache-common@4.19.1: - resolution: {integrity: sha512-XGghi3l0qA38HiqdoUY+wvGyBsGvKZ6U3vTiMBT4hArhP3fOGLXpIINgMiiGjTe4FVlTa5a/7Zf2bwlIHfRqqg==} + /@algolia/cache-common@4.22.0: + resolution: {integrity: sha512-TPwUMlIGPN16eW67qamNQUmxNiGHg/WBqWcrOoCddhqNTqGDPVqmgfaM85LPbt24t3r1z0zEz/tdsmuq3Q6oaA==} dev: true - /@algolia/cache-common@4.20.0: - resolution: {integrity: sha512-vCfxauaZutL3NImzB2G9LjLt36vKAckc6DhMp05An14kVo8F1Yofb6SIl6U3SaEz8pG2QOB9ptwM5c+zGevwIQ==} - dev: true - - /@algolia/cache-in-memory@4.20.0: - resolution: {integrity: sha512-Wm9ak/IaacAZXS4mB3+qF/KCoVSBV6aLgIGFEtQtJwjv64g4ePMapORGmCyulCFwfePaRAtcaTbMcJF+voc/bg==} - dependencies: - '@algolia/cache-common': 4.20.0 - dev: true - - /@algolia/client-account@4.20.0: - resolution: {integrity: sha512-GGToLQvrwo7am4zVkZTnKa72pheQeez/16sURDWm7Seyz+HUxKi3BM6fthVVPUEBhtJ0reyVtuK9ArmnaKl10Q==} - dependencies: - '@algolia/client-common': 4.20.0 - '@algolia/client-search': 4.20.0 - '@algolia/transporter': 4.20.0 - dev: true - - /@algolia/client-analytics@4.20.0: - resolution: {integrity: sha512-EIr+PdFMOallRdBTHHdKI3CstslgLORQG7844Mq84ib5oVFRVASuuPmG4bXBgiDbcsMLUeOC6zRVJhv1KWI0ug==} + /@algolia/cache-in-memory@4.22.0: + resolution: {integrity: sha512-kf4Cio9NpPjzp1+uXQgL4jsMDeck7MP89BYThSvXSjf2A6qV/0KeqQf90TL2ECS02ovLOBXkk98P7qVarM+zGA==} dependencies: - '@algolia/client-common': 4.20.0 - '@algolia/client-search': 4.20.0 - '@algolia/requester-common': 4.20.0 - '@algolia/transporter': 4.20.0 + '@algolia/cache-common': 4.22.0 dev: true - /@algolia/client-common@4.19.1: - resolution: {integrity: sha512-3kAIVqTcPrjfS389KQvKzliC559x+BDRxtWamVJt8IVp7LGnjq+aVAXg4Xogkur1MUrScTZ59/AaUd5EdpyXgA==} + /@algolia/client-account@4.22.0: + resolution: {integrity: sha512-Bjb5UXpWmJT+yGWiqAJL0prkENyEZTBzdC+N1vBuHjwIJcjLMjPB6j1hNBRbT12Lmwi55uzqeMIKS69w+0aPzA==} dependencies: - '@algolia/requester-common': 4.19.1 - '@algolia/transporter': 4.19.1 + '@algolia/client-common': 4.22.0 + '@algolia/client-search': 4.22.0 + '@algolia/transporter': 4.22.0 dev: true - /@algolia/client-common@4.20.0: - resolution: {integrity: sha512-P3WgMdEss915p+knMMSd/fwiHRHKvDu4DYRrCRaBrsfFw7EQHon+EbRSm4QisS9NYdxbS04kcvNoavVGthyfqQ==} + /@algolia/client-analytics@4.22.0: + resolution: {integrity: sha512-os2K+kHUcwwRa4ArFl5p/3YbF9lN3TLOPkbXXXxOvDpqFh62n9IRZuzfxpHxMPKAQS3Et1s0BkKavnNP02E9Hg==} dependencies: - '@algolia/requester-common': 4.20.0 - '@algolia/transporter': 4.20.0 + '@algolia/client-common': 4.22.0 + '@algolia/client-search': 4.22.0 + '@algolia/requester-common': 4.22.0 + '@algolia/transporter': 4.22.0 dev: true - /@algolia/client-personalization@4.20.0: - resolution: {integrity: sha512-N9+zx0tWOQsLc3K4PVRDV8GUeOLAY0i445En79Pr3zWB+m67V+n/8w4Kw1C5LlbHDDJcyhMMIlqezh6BEk7xAQ==} + /@algolia/client-common@4.22.0: + resolution: {integrity: sha512-BlbkF4qXVWuwTmYxVWvqtatCR3lzXwxx628p1wj1Q7QP2+LsTmGt1DiUYRuy9jG7iMsnlExby6kRMOOlbhv2Ag==} dependencies: - '@algolia/client-common': 4.20.0 - '@algolia/requester-common': 4.20.0 - '@algolia/transporter': 4.20.0 + '@algolia/requester-common': 4.22.0 + '@algolia/transporter': 4.22.0 dev: true - /@algolia/client-search@4.19.1: - resolution: {integrity: sha512-mBecfMFS4N+yK/p0ZbK53vrZbL6OtWMk8YmnOv1i0LXx4pelY8TFhqKoTit3NPVPwoSNN0vdSN9dTu1xr1XOVw==} + /@algolia/client-personalization@4.22.0: + resolution: {integrity: sha512-pEOftCxeBdG5pL97WngOBi9w5Vxr5KCV2j2D+xMVZH8MuU/JX7CglDSDDb0ffQWYqcUN+40Ry+xtXEYaGXTGow==} dependencies: - '@algolia/client-common': 4.19.1 - '@algolia/requester-common': 4.19.1 - '@algolia/transporter': 4.19.1 + '@algolia/client-common': 4.22.0 + '@algolia/requester-common': 4.22.0 + '@algolia/transporter': 4.22.0 dev: true - /@algolia/client-search@4.20.0: - resolution: {integrity: sha512-zgwqnMvhWLdpzKTpd3sGmMlr4c+iS7eyyLGiaO51zDZWGMkpgoNVmltkzdBwxOVXz0RsFMznIxB9zuarUv4TZg==} + /@algolia/client-search@4.22.0: + resolution: {integrity: sha512-bn4qQiIdRPBGCwsNuuqB8rdHhGKKWIij9OqidM1UkQxnSG8yzxHdb7CujM30pvp5EnV7jTqDZRbxacbjYVW20Q==} dependencies: - '@algolia/client-common': 4.20.0 - '@algolia/requester-common': 4.20.0 - '@algolia/transporter': 4.20.0 - dev: true - - /@algolia/logger-common@4.19.1: - resolution: {integrity: sha512-i6pLPZW/+/YXKis8gpmSiNk1lOmYCmRI6+x6d2Qk1OdfvX051nRVdalRbEcVTpSQX6FQAoyeaui0cUfLYW5Elw==} + '@algolia/client-common': 4.22.0 + '@algolia/requester-common': 4.22.0 + '@algolia/transporter': 4.22.0 dev: true - /@algolia/logger-common@4.20.0: - resolution: {integrity: sha512-xouigCMB5WJYEwvoWW5XDv7Z9f0A8VoXJc3VKwlHJw/je+3p2RcDXfksLI4G4lIVncFUYMZx30tP/rsdlvvzHQ==} + /@algolia/logger-common@4.22.0: + resolution: {integrity: sha512-HMUQTID0ucxNCXs5d1eBJ5q/HuKg8rFVE/vOiLaM4Abfeq1YnTtGV3+rFEhOPWhRQxNDd+YHa4q864IMc0zHpQ==} dev: true - /@algolia/logger-console@4.20.0: - resolution: {integrity: sha512-THlIGG1g/FS63z0StQqDhT6bprUczBI8wnLT3JWvfAQDZX5P6fCg7dG+pIrUBpDIHGszgkqYEqECaKKsdNKOUA==} + /@algolia/logger-console@4.22.0: + resolution: {integrity: sha512-7JKb6hgcY64H7CRm3u6DRAiiEVXMvCJV5gRE672QFOUgDxo4aiDpfU61g6Uzy8NKjlEzHMmgG4e2fklELmPXhQ==} dependencies: - '@algolia/logger-common': 4.20.0 + '@algolia/logger-common': 4.22.0 dev: true - /@algolia/requester-browser-xhr@4.20.0: - resolution: {integrity: sha512-HbzoSjcjuUmYOkcHECkVTwAelmvTlgs48N6Owt4FnTOQdwn0b8pdht9eMgishvk8+F8bal354nhx/xOoTfwiAw==} + /@algolia/requester-browser-xhr@4.22.0: + resolution: {integrity: sha512-BHfv1h7P9/SyvcDJDaRuIwDu2yrDLlXlYmjvaLZTtPw6Ok/ZVhBR55JqW832XN/Fsl6k3LjdkYHHR7xnsa5Wvg==} dependencies: - '@algolia/requester-common': 4.20.0 - dev: true - - /@algolia/requester-common@4.19.1: - resolution: {integrity: sha512-BisRkcWVxrDzF1YPhAckmi2CFYK+jdMT60q10d7z3PX+w6fPPukxHRnZwooiTUrzFe50UBmLItGizWHP5bDzVQ==} - dev: true - - /@algolia/requester-common@4.20.0: - resolution: {integrity: sha512-9h6ye6RY/BkfmeJp7Z8gyyeMrmmWsMOCRBXQDs4mZKKsyVlfIVICpcSibbeYcuUdurLhIlrOUkH3rQEgZzonng==} + '@algolia/requester-common': 4.22.0 dev: true - /@algolia/requester-node-http@4.20.0: - resolution: {integrity: sha512-ocJ66L60ABSSTRFnCHIEZpNHv6qTxsBwJEPfYaSBsLQodm0F9ptvalFkHMpvj5DfE22oZrcrLbOYM2bdPJRHng==} - dependencies: - '@algolia/requester-common': 4.20.0 + /@algolia/requester-common@4.22.0: + resolution: {integrity: sha512-Y9cEH/cKjIIZgzvI1aI0ARdtR/xRrOR13g5psCxkdhpgRN0Vcorx+zePhmAa4jdQNqexpxtkUdcKYugBzMZJgQ==} dev: true - /@algolia/transporter@4.19.1: - resolution: {integrity: sha512-nkpvPWbpuzxo1flEYqNIbGz7xhfhGOKGAZS7tzC+TELgEmi7z99qRyTfNSUlW7LZmB3ACdnqAo+9A9KFBENviQ==} + /@algolia/requester-node-http@4.22.0: + resolution: {integrity: sha512-8xHoGpxVhz3u2MYIieHIB6MsnX+vfd5PS4REgglejJ6lPigftRhTdBCToe6zbwq4p0anZXjjPDvNWMlgK2+xYA==} dependencies: - '@algolia/cache-common': 4.19.1 - '@algolia/logger-common': 4.19.1 - '@algolia/requester-common': 4.19.1 + '@algolia/requester-common': 4.22.0 dev: true - /@algolia/transporter@4.20.0: - resolution: {integrity: sha512-Lsii1pGWOAISbzeyuf+r/GPhvHMPHSPrTDWNcIzOE1SG1inlJHICaVe2ikuoRjcpgxZNU54Jl+if15SUCsaTUg==} + /@algolia/transporter@4.22.0: + resolution: {integrity: sha512-ieO1k8x2o77GNvOoC+vAkFKppydQSVfbjM3YrSjLmgywiBejPTvU1R1nEvG59JIIUvtSLrZsLGPkd6vL14zopA==} dependencies: - '@algolia/cache-common': 4.20.0 - '@algolia/logger-common': 4.20.0 - '@algolia/requester-common': 4.20.0 + '@algolia/cache-common': 4.22.0 + '@algolia/logger-common': 4.22.0 + '@algolia/requester-common': 4.22.0 dev: true /@ampproject/remapping@2.2.1: @@ -337,16 +302,16 @@ packages: '@jridgewell/trace-mapping': 0.3.20 dev: true - /@babel/code-frame@7.22.13: - resolution: {integrity: sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==} + /@babel/code-frame@7.23.5: + resolution: {integrity: sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/highlight': 7.22.20 + '@babel/highlight': 7.23.4 chalk: 2.4.2 dev: true - /@babel/helper-string-parser@7.22.5: - resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==} + /@babel/helper-string-parser@7.23.4: + resolution: {integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==} engines: {node: '>=6.9.0'} dev: true @@ -355,8 +320,8 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/highlight@7.22.20: - resolution: {integrity: sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==} + /@babel/highlight@7.23.4: + resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==} engines: {node: '>=6.9.0'} dependencies: '@babel/helper-validator-identifier': 7.22.20 @@ -364,19 +329,19 @@ packages: js-tokens: 4.0.0 dev: true - /@babel/parser@7.23.5: - resolution: {integrity: sha512-hOOqoiNXrmGdFbhgCzu6GiURxUgM27Xwd/aPuu8RfHEZPBzL1Z54okAHAQjXfcQNwvrlkAmAp4SlRTZ45vlthQ==} + /@babel/parser@7.23.6: + resolution: {integrity: sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==} engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.23.3 + '@babel/types': 7.23.6 dev: true - /@babel/types@7.23.3: - resolution: {integrity: sha512-OZnvoH2l8PK5eUvEcUyCt/sXgr/h+UWpVuBbOljwcrAgUl6lpchoQ++PHGyQy1AtYnVA6CEq3y5xeEI10brpXw==} + /@babel/types@7.23.6: + resolution: {integrity: sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-string-parser': 7.22.5 + '@babel/helper-string-parser': 7.23.4 '@babel/helper-validator-identifier': 7.22.20 to-fast-properties: 2.0.0 dev: true @@ -429,11 +394,11 @@ packages: resolution: {integrity: sha512-SPiDHaWKQZpwR2siD0KQUwlStvIAnEyK6tAE2h2Wuoq8ue9skzhlyVQ1ddzOxX6khULnAALDiR/isSF3bnuciA==} dev: true - /@docsearch/js@3.5.2(@algolia/client-search@4.19.1)(search-insights@2.11.0): + /@docsearch/js@3.5.2(@algolia/client-search@4.22.0)(search-insights@2.13.0): resolution: {integrity: sha512-p1YFTCDflk8ieHgFJYfmyHBki1D61+U9idwrLh+GQQMrBSP3DLGKpy0XUJtPjAOPltcVbqsTjiPFfH7JImjUNg==} dependencies: - '@docsearch/react': 3.5.2(@algolia/client-search@4.19.1)(search-insights@2.11.0) - preact: 10.19.2 + '@docsearch/react': 3.5.2(@algolia/client-search@4.22.0)(search-insights@2.13.0) + preact: 10.19.3 transitivePeerDependencies: - '@algolia/client-search' - '@types/react' @@ -442,7 +407,7 @@ packages: - search-insights dev: true - /@docsearch/react@3.5.2(@algolia/client-search@4.19.1)(search-insights@2.11.0): + /@docsearch/react@3.5.2(@algolia/client-search@4.22.0)(search-insights@2.13.0): resolution: {integrity: sha512-9Ahcrs5z2jq/DcAvYtvlqEBHImbm4YJI8M9y0x6Tqg598P40HTEkX7hsMcIuThI+hTFxRGZ9hll0Wygm2yEjng==} peerDependencies: '@types/react': '>= 16.8.0 < 19.0.0' @@ -459,11 +424,11 @@ packages: search-insights: optional: true dependencies: - '@algolia/autocomplete-core': 1.9.3(@algolia/client-search@4.19.1)(algoliasearch@4.20.0)(search-insights@2.11.0) - '@algolia/autocomplete-preset-algolia': 1.9.3(@algolia/client-search@4.19.1)(algoliasearch@4.20.0) + '@algolia/autocomplete-core': 1.9.3(@algolia/client-search@4.22.0)(algoliasearch@4.22.0)(search-insights@2.13.0) + '@algolia/autocomplete-preset-algolia': 1.9.3(@algolia/client-search@4.22.0)(algoliasearch@4.22.0) '@docsearch/css': 3.5.2 - algoliasearch: 4.20.0 - search-insights: 2.11.0 + algoliasearch: 4.22.0 + search-insights: 2.13.0 transitivePeerDependencies: - '@algolia/client-search' dev: true @@ -924,7 +889,7 @@ packages: ajv: 6.12.6 debug: 4.3.4(supports-color@8.1.1) espree: 9.6.1 - globals: 13.23.0 + globals: 13.24.0 ignore: 5.3.0 import-fresh: 3.3.0 js-yaml: 4.1.0 @@ -1046,7 +1011,7 @@ packages: engines: {node: '>= 8'} dependencies: '@nodelib/fs.scandir': 2.1.5 - fastq: 1.15.0 + fastq: 1.16.0 dev: true /@octokit/auth-token@4.0.0: @@ -1054,25 +1019,24 @@ packages: engines: {node: '>= 18'} dev: true - /@octokit/core@5.0.1: - resolution: {integrity: sha512-lyeeeZyESFo+ffI801SaBKmCfsvarO+dgV8/0gD8u1d87clbEdWsP5yC+dSj3zLhb2eIf5SJrn6vDz9AheETHw==} + /@octokit/core@5.0.2: + resolution: {integrity: sha512-cZUy1gUvd4vttMic7C0lwPed8IYXWYp8kHIMatyhY8t8n3Cpw2ILczkV5pGMPqef7v0bLo0pOHrEHarsau2Ydg==} engines: {node: '>= 18'} dependencies: '@octokit/auth-token': 4.0.0 '@octokit/graphql': 7.0.2 - '@octokit/request': 8.1.5 + '@octokit/request': 8.1.6 '@octokit/request-error': 5.0.1 - '@octokit/types': 12.3.0 + '@octokit/types': 12.4.0 before-after-hook: 2.2.3 universal-user-agent: 6.0.1 dev: true - /@octokit/endpoint@9.0.2: - resolution: {integrity: sha512-qhKW8YLIi+Kmc92FQUFGr++DYtkx/1fBv+Thua6baqnjnOsgBYJDCvWZR1YcINuHGOEQt416WOfE+A/oG60NBQ==} + /@octokit/endpoint@9.0.4: + resolution: {integrity: sha512-DWPLtr1Kz3tv8L0UvXTDP1fNwM0S+z6EJpRcvH66orY6Eld4XBMCSYsaWp4xIm61jTWxK68BrR7ibO+vSDnZqw==} engines: {node: '>= 18'} dependencies: - '@octokit/types': 12.3.0 - is-plain-object: 5.0.0 + '@octokit/types': 12.4.0 universal-user-agent: 6.0.1 dev: true @@ -1080,59 +1044,58 @@ packages: resolution: {integrity: sha512-OJ2iGMtj5Tg3s6RaXH22cJcxXRi7Y3EBqbHTBRq+PQAqfaS8f/236fUrWhfSn8P4jovyzqucxme7/vWSSZBX2Q==} engines: {node: '>= 18'} dependencies: - '@octokit/request': 8.1.5 - '@octokit/types': 12.3.0 + '@octokit/request': 8.1.6 + '@octokit/types': 12.4.0 universal-user-agent: 6.0.1 dev: true - /@octokit/openapi-types@19.0.2: - resolution: {integrity: sha512-8li32fUDUeml/ACRp/njCWTsk5t17cfTM1jp9n08pBrqs5cDFJubtjsSnuz56r5Tad6jdEPJld7LxNp9dNcyjQ==} + /@octokit/openapi-types@19.1.0: + resolution: {integrity: sha512-6G+ywGClliGQwRsjvqVYpklIfa7oRPA0vyhPQG/1Feh+B+wU0vGH1JiJ5T25d3g1JZYBHzR2qefLi9x8Gt+cpw==} dev: true - /@octokit/plugin-paginate-rest@9.1.4(@octokit/core@5.0.1): - resolution: {integrity: sha512-MvZx4WvfhBnt7PtH5XE7HORsO7bBk4er1FgRIUr1qJ89NR2I6bWjGyKsxk8z42FPQ34hFQm0Baanh4gzdZR4gQ==} + /@octokit/plugin-paginate-rest@9.1.5(@octokit/core@5.0.2): + resolution: {integrity: sha512-WKTQXxK+bu49qzwv4qKbMMRXej1DU2gq017euWyKVudA6MldaSSQuxtz+vGbhxV4CjxpUxjZu6rM2wfc1FiWVg==} engines: {node: '>= 18'} peerDependencies: '@octokit/core': '>=5' dependencies: - '@octokit/core': 5.0.1 - '@octokit/types': 12.3.0 + '@octokit/core': 5.0.2 + '@octokit/types': 12.4.0 dev: true - /@octokit/plugin-rest-endpoint-methods@10.1.5(@octokit/core@5.0.1): - resolution: {integrity: sha512-LMEdsMV8TTMjMTqVoqMzV95XTbv0ZsWxCxQtjAunQOCdwoDH4BVF/Ke5JMSZEVCWGI2kzxnUNbFnK/MxwV7NjA==} + /@octokit/plugin-rest-endpoint-methods@10.2.0(@octokit/core@5.0.2): + resolution: {integrity: sha512-ePbgBMYtGoRNXDyKGvr9cyHjQ163PbwD0y1MkDJCpkO2YH4OeXX40c4wYHKikHGZcpGPbcRLuy0unPUuafco8Q==} engines: {node: '>= 18'} peerDependencies: '@octokit/core': '>=5' dependencies: - '@octokit/core': 5.0.1 - '@octokit/types': 12.3.0 + '@octokit/core': 5.0.2 + '@octokit/types': 12.4.0 dev: true /@octokit/request-error@5.0.1: resolution: {integrity: sha512-X7pnyTMV7MgtGmiXBwmO6M5kIPrntOXdyKZLigNfQWSEQzVxR4a4vo49vJjTWX70mPndj8KhfT4Dx+2Ng3vnBQ==} engines: {node: '>= 18'} dependencies: - '@octokit/types': 12.3.0 + '@octokit/types': 12.4.0 deprecation: 2.3.1 once: 1.4.0 dev: true - /@octokit/request@8.1.5: - resolution: {integrity: sha512-zVKbNbX1xUluD9ZR4/tPs1yuYrK9xeh5fGZUXA6u04XGsTvomg0YO8/ZUC0FqAd49hAOEMFPAVUTh+2lBhOhLA==} + /@octokit/request@8.1.6: + resolution: {integrity: sha512-YhPaGml3ncZC1NfXpP3WZ7iliL1ap6tLkAp6MvbK2fTTPytzVUyUesBBogcdMm86uRYO5rHaM1xIWxigWZ17MQ==} engines: {node: '>= 18'} dependencies: - '@octokit/endpoint': 9.0.2 + '@octokit/endpoint': 9.0.4 '@octokit/request-error': 5.0.1 - '@octokit/types': 12.3.0 - is-plain-object: 5.0.0 + '@octokit/types': 12.4.0 universal-user-agent: 6.0.1 dev: true - /@octokit/types@12.3.0: - resolution: {integrity: sha512-nJ8X2HRr234q3w/FcovDlA+ttUU4m1eJAourvfUUtwAWeqL8AsyRqfnLvVnYn3NFbUnsmzQCzLNdFerPwdmcDQ==} + /@octokit/types@12.4.0: + resolution: {integrity: sha512-FLWs/AvZllw/AGVs+nJ+ELCDZZJk+kY0zMen118xhL2zD0s1etIUHm1odgjP7epxYU1ln7SZxEUWYop5bhsdgQ==} dependencies: - '@octokit/openapi-types': 19.0.2 + '@octokit/openapi-types': 19.1.0 dev: true /@pkgjs/parseargs@0.11.0: @@ -1147,9 +1110,113 @@ packages: engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} dev: true - /@polka/url@1.0.0-next.23: - resolution: {integrity: sha512-C16M+IYz0rgRhWZdCmK+h58JMv8vijAA61gmz2rspCSwKwzBebpdcsiUmwrtJRdphuY30i6BSLEOP8ppbNLyLg==} + /@polka/url@1.0.0-next.24: + resolution: {integrity: sha512-2LuNTFBIO0m7kKIQvvPHN6UE63VjpmL9rnEEaOOaiSPbZK+zUOYIzBAWcED+3XYzhYsd/0mD57VdxAEqqV52CQ==} + dev: true + + /@rollup/rollup-android-arm-eabi@4.9.1: + resolution: {integrity: sha512-6vMdBZqtq1dVQ4CWdhFwhKZL6E4L1dV6jUjuBvsavvNJSppzi6dLBbuV+3+IyUREaj9ZFvQefnQm28v4OCXlig==} + cpu: [arm] + os: [android] + requiresBuild: true dev: true + optional: true + + /@rollup/rollup-android-arm64@4.9.1: + resolution: {integrity: sha512-Jto9Fl3YQ9OLsTDWtLFPtaIMSL2kwGyGoVCmPC8Gxvym9TCZm4Sie+cVeblPO66YZsYH8MhBKDMGZ2NDxuk/XQ==} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-darwin-arm64@4.9.1: + resolution: {integrity: sha512-LtYcLNM+bhsaKAIGwVkh5IOWhaZhjTfNOkGzGqdHvhiCUVuJDalvDxEdSnhFzAn+g23wgsycmZk1vbnaibZwwA==} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-darwin-x64@4.9.1: + resolution: {integrity: sha512-KyP/byeXu9V+etKO6Lw3E4tW4QdcnzDG/ake031mg42lob5tN+5qfr+lkcT/SGZaH2PdW4Z1NX9GHEkZ8xV7og==} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm-gnueabihf@4.9.1: + resolution: {integrity: sha512-Yqz/Doumf3QTKplwGNrCHe/B2p9xqDghBZSlAY0/hU6ikuDVQuOUIpDP/YcmoT+447tsZTmirmjgG3znvSCR0Q==} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm64-gnu@4.9.1: + resolution: {integrity: sha512-u3XkZVvxcvlAOlQJ3UsD1rFvLWqu4Ef/Ggl40WAVCuogf4S1nJPHh5RTgqYFpCOvuGJ7H5yGHabjFKEZGExk5Q==} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm64-musl@4.9.1: + resolution: {integrity: sha512-0XSYN/rfWShW+i+qjZ0phc6vZ7UWI8XWNz4E/l+6edFt+FxoEghrJHjX1EY/kcUGCnZzYYRCl31SNdfOi450Aw==} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-riscv64-gnu@4.9.1: + resolution: {integrity: sha512-LmYIO65oZVfFt9t6cpYkbC4d5lKHLYv5B4CSHRpnANq0VZUQXGcCPXHzbCXCz4RQnx7jvlYB1ISVNCE/omz5cw==} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-x64-gnu@4.9.1: + resolution: {integrity: sha512-kr8rEPQ6ns/Lmr/hiw8sEVj9aa07gh1/tQF2Y5HrNCCEPiCBGnBUt9tVusrcBBiJfIt1yNaXN6r1CCmpbFEDpg==} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-x64-musl@4.9.1: + resolution: {integrity: sha512-t4QSR7gN+OEZLG0MiCgPqMWZGwmeHhsM4AkegJ0Kiy6TnJ9vZ8dEIwHw1LcZKhbHxTY32hp9eVCMdR3/I8MGRw==} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-win32-arm64-msvc@4.9.1: + resolution: {integrity: sha512-7XI4ZCBN34cb+BH557FJPmh0kmNz2c25SCQeT9OiFWEgf8+dL6ZwJ8f9RnUIit+j01u07Yvrsuu1rZGxJCc51g==} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-win32-ia32-msvc@4.9.1: + resolution: {integrity: sha512-yE5c2j1lSWOH5jp+Q0qNL3Mdhr8WuqCNVjc6BxbVfS5cAS6zRmdiw7ktb8GNpDCEUJphILY6KACoFoRtKoqNQg==} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-win32-x64-msvc@4.9.1: + resolution: {integrity: sha512-PyJsSsafjmIhVgaI1Zdj7m8BB8mMckFah/xbpplObyHfiXzKcI5UOUXRyOdHW7nz4DpMCuzLnF7v5IWHenCwYA==} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true /@sinclair/typebox@0.27.8: resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} @@ -1158,11 +1225,11 @@ packages: /@types/chai-subset@1.3.5: resolution: {integrity: sha512-c2mPnw+xHtXDoHmdtcCXGwyLMiauiAyxWMzhGpqHC4nqI/Y5G2XhTampslK2rb59kpcuHon03UH8W6iYUzw88A==} dependencies: - '@types/chai': 4.3.10 + '@types/chai': 4.3.11 dev: true - /@types/chai@4.3.10: - resolution: {integrity: sha512-of+ICnbqjmFCiixUnqRulbylyXQrPqIGf/B3Jax1wIF3DvSheysQxAWvqHhZiW3IQrycvokcLcFQlveGp+vyNg==} + /@types/chai@4.3.11: + resolution: {integrity: sha512-qQR1dr2rGIHYlJulmr8Ioq3De0Le9E4MJ5AiaeAETJJpndT1uUNHsGFK3L/UIu+rbkQSdj8J/w2bCsBZc/Y5fQ==} dev: true /@types/istanbul-lib-coverage@2.0.6: @@ -1192,8 +1259,8 @@ packages: resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==} dev: true - /@types/node@18.18.9: - resolution: {integrity: sha512-0f5klcuImLnG4Qreu9hPj/rEfFq6YRc5n2mAjSsH+ec/mJL+3voBH0+8T7o8RpFjH7ovc+TRsL/c7OYIQsPTfQ==} + /@types/node@18.19.3: + resolution: {integrity: sha512-k5fggr14DwAytoA/t8rPrIz++lXK7/DqckthCmoZOKNsEbJkId4Z//BqgApXBUGrGddrigYa1oqheo/7YmW4rg==} dependencies: undici-types: 5.26.5 dev: true @@ -1222,8 +1289,8 @@ packages: resolution: {integrity: sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g==} dev: true - /@types/sizzle@2.3.6: - resolution: {integrity: sha512-m04Om5Gz6kbjUwAQ7XJJQ30OdEFsSmAVsvn4NYwcTRyMVpKKa1aPuESw1n2CxS5fYkOQv3nHgDKeNa8e76fUkw==} + /@types/sizzle@2.3.8: + resolution: {integrity: sha512-0vWLNK2D5MT9dg0iOo8GlKguPAU02QjmZitPEsXRuJXU/OGIOt9vT9Fc26wtYuavLxtO45v9PGleoL9Z0k1LHg==} dev: true /@types/validator@13.11.7: @@ -1292,14 +1359,6 @@ packages: - supports-color dev: true - /@typescript-eslint/scope-manager@6.11.0: - resolution: {integrity: sha512-0A8KoVvIURG4uhxAdjSaxy8RdRE//HztaZdG8KiHLP8WOXSk0vlF7Pvogv+vlJA5Rnjj/wDcFENvDaHb+gKd1A==} - engines: {node: ^16.0.0 || >=18.0.0} - dependencies: - '@typescript-eslint/types': 6.11.0 - '@typescript-eslint/visitor-keys': 6.11.0 - dev: true - /@typescript-eslint/scope-manager@6.16.0: resolution: {integrity: sha512-0N7Y9DSPdaBQ3sqSCwlrm9zJwkpOuc6HYm7LpzLAPqBL7dmzAUimr4M29dMkOP/tEwvOCC/Cxo//yOfJD3HUiw==} engines: {node: ^16.0.0 || >=18.0.0} @@ -1328,37 +1387,11 @@ packages: - supports-color dev: true - /@typescript-eslint/types@6.11.0: - resolution: {integrity: sha512-ZbEzuD4DwEJxwPqhv3QULlRj8KYTAnNsXxmfuUXFCxZmO6CF2gM/y+ugBSAQhrqaJL3M+oe4owdWunaHM6beqA==} - engines: {node: ^16.0.0 || >=18.0.0} - dev: true - /@typescript-eslint/types@6.16.0: resolution: {integrity: sha512-hvDFpLEvTJoHutVl87+MG/c5C8I6LOgEx05zExTSJDEVU7hhR3jhV8M5zuggbdFCw98+HhZWPHZeKS97kS3JoQ==} engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/typescript-estree@6.11.0(typescript@4.9.5): - resolution: {integrity: sha512-Aezzv1o2tWJwvZhedzvD5Yv7+Lpu1by/U1LZ5gLc4tCx8jUmuSCMioPFRjliN/6SJIvY6HpTtJIWubKuYYYesQ==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/types': 6.11.0 - '@typescript-eslint/visitor-keys': 6.11.0 - debug: 4.3.4(supports-color@8.1.1) - globby: 11.1.0 - is-glob: 4.0.3 - semver: 7.5.4 - ts-api-utils: 1.0.3(typescript@4.9.5) - typescript: 4.9.5 - transitivePeerDependencies: - - supports-color - dev: true - /@typescript-eslint/typescript-estree@6.16.0(typescript@4.9.5): resolution: {integrity: sha512-VTWZuixh/vr7nih6CfrdpmFNLEnoVBF1skfjdyGnNwXOH1SLeHItGdZDHhhAIzd3ACazyY2Fg76zuzOVTaknGA==} engines: {node: ^16.0.0 || >=18.0.0} @@ -1381,25 +1414,6 @@ packages: - supports-color dev: true - /@typescript-eslint/utils@6.11.0(eslint@8.56.0)(typescript@4.9.5): - resolution: {integrity: sha512-p23ibf68fxoZy605dc0dQAEoUsoiNoP3MD9WQGiHLDuTSOuqoTsa4oAy+h3KDkTcxbbfOtUjb9h3Ta0gT4ug2g==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) - '@types/json-schema': 7.0.15 - '@types/semver': 7.5.6 - '@typescript-eslint/scope-manager': 6.11.0 - '@typescript-eslint/types': 6.11.0 - '@typescript-eslint/typescript-estree': 6.11.0(typescript@4.9.5) - eslint: 8.56.0 - semver: 7.5.4 - transitivePeerDependencies: - - supports-color - - typescript - dev: true - /@typescript-eslint/utils@6.16.0(eslint@8.56.0)(typescript@4.9.5): resolution: {integrity: sha512-T83QPKrBm6n//q9mv7oiSvy/Xq/7Hyw9SzSEhMHJwznEmQayfBM87+oAlkNAMEO7/MjIwKyOHgBJbxB0s7gx2A==} engines: {node: ^16.0.0 || >=18.0.0} @@ -1419,14 +1433,6 @@ packages: - typescript dev: true - /@typescript-eslint/visitor-keys@6.11.0: - resolution: {integrity: sha512-+SUN/W7WjBr05uRxPggJPSzyB8zUpaYo2hByKasWbqr3PM8AXfZt8UHdNpBS1v9SA62qnSSMF3380SwDqqprgQ==} - engines: {node: ^16.0.0 || >=18.0.0} - dependencies: - '@typescript-eslint/types': 6.11.0 - eslint-visitor-keys: 3.4.3 - dev: true - /@typescript-eslint/visitor-keys@6.16.0: resolution: {integrity: sha512-QSFQLruk7fhs91a/Ep/LqRdbJCZ1Rq03rqBdKT5Ky17Sz8zRLUksqIe9DW0pKtg/Z35/ztbLQ6qpOCN6rOC11A==} engines: {node: ^16.0.0 || >=18.0.0} @@ -1439,14 +1445,14 @@ packages: resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} dev: true - /@vitejs/plugin-vue@4.5.0(vite@4.5.1)(vue@3.3.13): - resolution: {integrity: sha512-a2WSpP8X8HTEww/U00bU4mX1QpLINNuz/2KMNpLsdu3BzOpak3AGI1CJYBTXcc4SPhaD0eNRUp7IyQK405L5dQ==} + /@vitejs/plugin-vue@4.6.0(vite@5.0.10)(vue@3.3.13): + resolution: {integrity: sha512-XHuyFdAikWRmHuAd89FOyUGIjrBU5KlxJtyi2hVeR9ySGFxQwE0bl5xAQju/ArMq5azdBivY4d+D2yPKwoYWUg==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: vite: ^4.0.0 || ^5.0.0 vue: ^3.2.25 dependencies: - vite: 4.5.1(@types/node@20.10.5) + vite: 5.0.10(@types/node@20.10.5) vue: 3.3.13(typescript@4.9.5) dev: true @@ -1463,9 +1469,9 @@ packages: istanbul-reports: 3.1.6 magic-string: 0.30.5 picocolors: 1.0.0 - std-env: 3.5.0 + std-env: 3.7.0 test-exclude: 6.0.0 - v8-to-istanbul: 9.1.3 + v8-to-istanbul: 9.2.0 vitest: 0.34.6(@vitest/ui@0.34.7) transitivePeerDependencies: - supports-color @@ -1512,7 +1518,7 @@ packages: flatted: 3.2.9 pathe: 1.1.1 picocolors: 1.0.0 - sirv: 2.0.3 + sirv: 2.0.4 vitest: 0.34.6(@vitest/ui@0.34.7) dev: true @@ -1535,7 +1541,7 @@ packages: /@vue/compiler-core@3.3.13: resolution: {integrity: sha512-bwi9HShGu7uaZLOErZgsH2+ojsEdsjerbf2cMXPwmvcgZfVPZ2BVZzCVnwZBxTAYd6Mzbmf6izcUNDkWnBBQ6A==} dependencies: - '@babel/parser': 7.23.5 + '@babel/parser': 7.23.6 '@vue/shared': 3.3.13 estree-walker: 2.0.2 source-map-js: 1.0.2 @@ -1551,7 +1557,7 @@ packages: /@vue/compiler-sfc@3.3.13: resolution: {integrity: sha512-DQVmHEy/EKIgggvnGRLx21hSqnr1smUS9Aq8tfxiiot8UR0/pXKHN9k78/qQ7etyQTFj5em5nruODON7dBeumw==} dependencies: - '@babel/parser': 7.23.5 + '@babel/parser': 7.23.6 '@vue/compiler-core': 3.3.13 '@vue/compiler-dom': 3.3.13 '@vue/compiler-ssr': 3.3.13 @@ -1577,7 +1583,7 @@ packages: /@vue/reactivity-transform@3.3.13: resolution: {integrity: sha512-oWnydGH0bBauhXvh5KXUy61xr9gKaMbtsMHk40IK9M4gMuKPJ342tKFarY0eQ6jef8906m35q37wwA8DMZOm5Q==} dependencies: - '@babel/parser': 7.23.5 + '@babel/parser': 7.23.6 '@vue/compiler-core': 3.3.13 '@vue/shared': 3.3.13 estree-walker: 2.0.2 @@ -1619,18 +1625,6 @@ packages: resolution: {integrity: sha512-/zYUwiHD8j7gKx2argXEMCUXVST6q/21DFU0sTfNX0URJroCe3b1UF6vLJ3lQDfLNIiiRl2ONp7Nh5UVWS6QnA==} dev: true - /@vueuse/core@10.6.1(vue@3.3.13): - resolution: {integrity: sha512-Pc26IJbqgC9VG1u6VY/xrXXfxD33hnvxBnKrLlA2LJlyHII+BSrRoTPJgGYq7qZOu61itITFUnm6QbacwZ4H8Q==} - dependencies: - '@types/web-bluetooth': 0.0.20 - '@vueuse/metadata': 10.6.1 - '@vueuse/shared': 10.6.1(vue@3.3.13) - vue-demi: 0.14.6(vue@3.3.13) - transitivePeerDependencies: - - '@vue/composition-api' - - vue - dev: true - /@vueuse/core@10.7.1(vue@3.3.13): resolution: {integrity: sha512-74mWHlaesJSWGp1ihg76vAnfVq9NTv1YT0SYhAQ6zwFNdBkkP+CKKJmVOEHcdSnLXCXYiL5e7MaewblfiYLP7g==} dependencies: @@ -1643,8 +1637,8 @@ packages: - vue dev: true - /@vueuse/integrations@10.6.1(focus-trap@7.5.4)(vue@3.3.13): - resolution: {integrity: sha512-mPDupuofMJ4DPmtX/FfP1MajmWRzYDv8WSaTCo8LQ5kFznjWgmUQ16ApjYqgMquqffNY6+IRMdMgosLDRZOSZA==} + /@vueuse/integrations@10.7.1(focus-trap@7.5.4)(vue@3.3.13): + resolution: {integrity: sha512-cKo5LEeKVHdBRBtMTOrDPdR0YNtrmN9IBfdcnY2P3m5LHVrsD0xiHUtAH1WKjHQRIErZG6rJUa6GA4tWZt89Og==} peerDependencies: async-validator: '*' axios: '*' @@ -1684,8 +1678,8 @@ packages: universal-cookie: optional: true dependencies: - '@vueuse/core': 10.6.1(vue@3.3.13) - '@vueuse/shared': 10.6.1(vue@3.3.13) + '@vueuse/core': 10.7.1(vue@3.3.13) + '@vueuse/shared': 10.7.1(vue@3.3.13) focus-trap: 7.5.4 vue-demi: 0.14.6(vue@3.3.13) transitivePeerDependencies: @@ -1693,23 +1687,10 @@ packages: - vue dev: true - /@vueuse/metadata@10.6.1: - resolution: {integrity: sha512-qhdwPI65Bgcj23e5lpGfQsxcy0bMjCAsUGoXkJ7DsoeDUdasbZ2DBa4dinFCOER3lF4gwUv+UD2AlA11zdzMFw==} - dev: true - /@vueuse/metadata@10.7.1: resolution: {integrity: sha512-jX8MbX5UX067DYVsbtrmKn6eG6KMcXxLRLlurGkZku5ZYT3vxgBjui2zajvUZ18QLIjrgBkFRsu7CqTAg18QFw==} dev: true - /@vueuse/shared@10.6.1(vue@3.3.13): - resolution: {integrity: sha512-TECVDTIedFlL0NUfHWncf3zF9Gc4VfdxfQc8JFwoVZQmxpONhLxFrlm0eHQeidHj4rdTPL3KXJa0TZCk1wnc5Q==} - dependencies: - vue-demi: 0.14.6(vue@3.3.13) - transitivePeerDependencies: - - '@vue/composition-api' - - vue - dev: true - /@vueuse/shared@10.7.1(vue@3.3.13): resolution: {integrity: sha512-v0jbRR31LSgRY/C5i5X279A/WQjD6/JsMzGa+eqt658oJ75IvQXAeONmwvEMrvJQKnRElq/frzBR7fhmWY5uLw==} dependencies: @@ -1735,8 +1716,8 @@ packages: acorn: 8.11.2 dev: true - /acorn-walk@8.3.0: - resolution: {integrity: sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA==} + /acorn-walk@8.3.1: + resolution: {integrity: sha512-TgUZgYvqZprrl7YldZNoa9OciCAyZR+Ejm9eXzKCmjsF5IKp/wgQ7Z/ZpjpGTIUPwrHQIcYeI8qDh4PsEwxMbw==} engines: {node: '>=0.4.0'} dev: true @@ -1767,23 +1748,23 @@ packages: uri-js: 4.4.1 dev: true - /algoliasearch@4.20.0: - resolution: {integrity: sha512-y+UHEjnOItoNy0bYO+WWmLWBlPwDjKHW6mNHrPi0NkuhpQOOEbrkwQH/wgKFDLh7qlKjzoKeiRtlpewDPDG23g==} + /algoliasearch@4.22.0: + resolution: {integrity: sha512-gfceltjkwh7PxXwtkS8KVvdfK+TSNQAWUeNSxf4dA29qW5tf2EGwa8jkJujlT9jLm17cixMVoGNc+GJFO1Mxhg==} dependencies: - '@algolia/cache-browser-local-storage': 4.20.0 - '@algolia/cache-common': 4.20.0 - '@algolia/cache-in-memory': 4.20.0 - '@algolia/client-account': 4.20.0 - '@algolia/client-analytics': 4.20.0 - '@algolia/client-common': 4.20.0 - '@algolia/client-personalization': 4.20.0 - '@algolia/client-search': 4.20.0 - '@algolia/logger-common': 4.20.0 - '@algolia/logger-console': 4.20.0 - '@algolia/requester-browser-xhr': 4.20.0 - '@algolia/requester-common': 4.20.0 - '@algolia/requester-node-http': 4.20.0 - '@algolia/transporter': 4.20.0 + '@algolia/cache-browser-local-storage': 4.22.0 + '@algolia/cache-common': 4.22.0 + '@algolia/cache-in-memory': 4.22.0 + '@algolia/client-account': 4.22.0 + '@algolia/client-analytics': 4.22.0 + '@algolia/client-common': 4.22.0 + '@algolia/client-personalization': 4.22.0 + '@algolia/client-search': 4.22.0 + '@algolia/logger-common': 4.22.0 + '@algolia/logger-console': 4.22.0 + '@algolia/requester-browser-xhr': 4.22.0 + '@algolia/requester-common': 4.22.0 + '@algolia/requester-node-http': 4.22.0 + '@algolia/transporter': 4.22.0 dev: true /ansi-colors@4.1.3: @@ -1965,10 +1946,6 @@ packages: resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} dev: true - /body-scroll-lock@4.0.0-beta.0: - resolution: {integrity: sha512-a7tP5+0Mw3YlUJcGAKUqIBkYYGlYxk2fnCasq/FUph1hadxlTRjF+gAcZksxANnaMnALjxEddmSi/H3OR8ugcQ==} - dev: true - /brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} dependencies: @@ -2546,9 +2523,9 @@ packages: dependencies: '@cypress/request': 3.0.1 '@cypress/xvfb': 1.2.4(supports-color@8.1.1) - '@types/node': 18.18.9 + '@types/node': 18.19.3 '@types/sinonjs__fake-timers': 8.1.1 - '@types/sizzle': 2.3.6 + '@types/sizzle': 2.3.8 arch: 2.2.0 blob-util: 2.0.2 bluebird: 3.7.2 @@ -2840,7 +2817,7 @@ packages: is-weakref: 1.0.2 object-inspect: 1.13.1 object-keys: 1.1.1 - object.assign: 4.1.4 + object.assign: 4.1.5 regexp.prototype.flags: 1.5.1 safe-array-concat: 1.0.1 safe-regex-test: 1.0.0 @@ -2989,7 +2966,7 @@ packages: eslint: ^7.0.0 || ^8.0.0 typescript: ^4.2.4 || ^5.0.0 dependencies: - '@typescript-eslint/utils': 6.11.0(eslint@8.56.0)(typescript@4.9.5) + '@typescript-eslint/utils': 6.16.0(eslint@8.56.0)(typescript@4.9.5) eslint: 8.56.0 tslib: 2.6.2 tsutils: 3.21.0(typescript@4.9.5) @@ -3125,7 +3102,7 @@ packages: file-entry-cache: 6.0.1 find-up: 5.0.0 glob-parent: 6.0.2 - globals: 13.23.0 + globals: 13.24.0 graphemer: 1.4.0 ignore: 5.3.0 imurmurhash: 0.1.4 @@ -3257,8 +3234,8 @@ packages: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} dev: true - /fastq@1.15.0: - resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} + /fastq@1.16.0: + resolution: {integrity: sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==} dependencies: reusify: 1.0.4 dev: true @@ -3578,8 +3555,8 @@ packages: ini: 2.0.0 dev: true - /globals@13.23.0: - resolution: {integrity: sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==} + /globals@13.24.0: + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} engines: {node: '>=8'} dependencies: type-fest: 0.20.2 @@ -3695,7 +3672,7 @@ packages: resolution: {integrity: sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==} engines: {node: ^16.14.0 || >=18.0.0} dependencies: - lru-cache: 10.0.2 + lru-cache: 10.1.0 dev: true /html-escaper@2.0.2: @@ -4071,8 +4048,8 @@ packages: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} dev: true - /json-parse-even-better-errors@3.0.0: - resolution: {integrity: sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA==} + /json-parse-even-better-errors@3.0.1: + resolution: {integrity: sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dev: true @@ -4264,11 +4241,9 @@ packages: get-func-name: 2.0.2 dev: true - /lru-cache@10.0.2: - resolution: {integrity: sha512-Yj9mA8fPiVgOUpByoTZO5pNrcl5Yk37FcSHsUINpAsaBIEZIuqcCclDZJCVxqQShDsmYX8QG63svJiTbOATZwg==} + /lru-cache@10.1.0: + resolution: {integrity: sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==} engines: {node: 14 || >=16.14} - dependencies: - semver: 7.5.4 dev: true /lru-cache@6.0.0: @@ -4413,8 +4388,8 @@ packages: engines: {node: '>=16 || 14 >=14.17'} dev: true - /minisearch@6.2.0: - resolution: {integrity: sha512-BECkorDF1TY2rGKt9XHdSeP9TP29yUbrAaCh/C03wpyf1vx3uYcP/+8XlMcpTkgoU0rBVnHMAOaP83Rc9Tm+TQ==} + /minisearch@6.3.0: + resolution: {integrity: sha512-ihFnidEeU8iXzcVHy74dhkxh/dn8Dc08ERl0xwoMMGqp4+LvRSCgicb+zGqWthVokQKvCSxITlh3P08OzdTYCQ==} dev: true /mlly@1.4.2: @@ -4436,6 +4411,11 @@ packages: engines: {node: '>=10'} dev: true + /mrmime@2.0.0: + resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==} + engines: {node: '>=10'} + dev: true + /ms@2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} dev: true @@ -4523,8 +4503,8 @@ packages: engines: {node: '>= 0.4'} dev: true - /object.assign@4.1.4: - resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} + /object.assign@4.1.5: + resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.5 @@ -4661,7 +4641,7 @@ packages: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} dependencies: - '@babel/code-frame': 7.22.13 + '@babel/code-frame': 7.23.5 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 @@ -4671,9 +4651,9 @@ packages: resolution: {integrity: sha512-SgOTCX/EZXtZxBE5eJ97P4yGM5n37BwRU+YMsH4vNzFqJV/oWFXXCmwFlgWUM4PrakybVOueJJ6pwHqSVhTFDw==} engines: {node: '>=16'} dependencies: - '@babel/code-frame': 7.22.13 + '@babel/code-frame': 7.23.5 error-ex: 1.3.2 - json-parse-even-better-errors: 3.0.0 + json-parse-even-better-errors: 3.0.1 lines-and-columns: 2.0.4 type-fest: 3.13.1 dev: true @@ -4720,7 +4700,7 @@ packages: resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} engines: {node: '>=16 || 14 >=14.17'} dependencies: - lru-cache: 10.0.2 + lru-cache: 10.1.0 minipass: 7.0.4 dev: true @@ -4790,15 +4770,6 @@ packages: engines: {node: '>=4'} dev: true - /postcss@8.4.31: - resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} - engines: {node: ^10 || ^12 || >=14} - dependencies: - nanoid: 3.3.7 - picocolors: 1.0.0 - source-map-js: 1.0.2 - dev: true - /postcss@8.4.32: resolution: {integrity: sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==} engines: {node: ^10 || ^12 || >=14} @@ -4808,8 +4779,8 @@ packages: source-map-js: 1.0.2 dev: true - /preact@10.19.2: - resolution: {integrity: sha512-UA9DX/OJwv6YwP9Vn7Ti/vF80XL+YA5H2l7BpCtUr3ya8LWHFzpiO5R+N7dN16ujpIxhekRFuOOF82bXX7K/lg==} + /preact@10.19.3: + resolution: {integrity: sha512-nHHTeFVBTHRGxJXKkKu5hT8C/YWBkPso4/Gad6xuj5dbptt9iF9NZr9pHbPhBrnT2klheu7mHTxTZ/LjwJiEiQ==} dev: true /prelude-ls@1.2.1: @@ -4925,7 +4896,7 @@ packages: dependencies: find-up: 6.3.0 read-pkg: 8.1.0 - type-fest: 4.8.1 + type-fest: 4.9.0 dev: true /read-pkg-up@3.0.0: @@ -4971,7 +4942,7 @@ packages: '@types/normalize-package-data': 2.4.4 normalize-package-data: 6.0.0 parse-json: 7.1.1 - type-fest: 4.8.1 + type-fest: 4.9.0 dev: true /readable-stream@2.3.8: @@ -5097,6 +5068,27 @@ packages: fsevents: 2.3.3 dev: true + /rollup@4.9.1: + resolution: {integrity: sha512-pgPO9DWzLoW/vIhlSoDByCzcpX92bKEorbgXuZrqxByte3JFk2xSW2JEeAcyLc9Ru9pqcNNW+Ob7ntsk2oT/Xw==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.9.1 + '@rollup/rollup-android-arm64': 4.9.1 + '@rollup/rollup-darwin-arm64': 4.9.1 + '@rollup/rollup-darwin-x64': 4.9.1 + '@rollup/rollup-linux-arm-gnueabihf': 4.9.1 + '@rollup/rollup-linux-arm64-gnu': 4.9.1 + '@rollup/rollup-linux-arm64-musl': 4.9.1 + '@rollup/rollup-linux-riscv64-gnu': 4.9.1 + '@rollup/rollup-linux-x64-gnu': 4.9.1 + '@rollup/rollup-linux-x64-musl': 4.9.1 + '@rollup/rollup-win32-arm64-msvc': 4.9.1 + '@rollup/rollup-win32-ia32-msvc': 4.9.1 + '@rollup/rollup-win32-x64-msvc': 4.9.1 + fsevents: 2.3.3 + dev: true + /run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} dependencies: @@ -5147,11 +5139,11 @@ packages: htmlparser2: 8.0.2 is-plain-object: 5.0.0 parse-srcset: 1.0.2 - postcss: 8.4.31 + postcss: 8.4.32 dev: true - /search-insights@2.11.0: - resolution: {integrity: sha512-Uin2J8Bpm3xaZi9Y8QibSys6uJOFZ+REMrf42v20AA3FUDUrshKkMEP6liJbMAHCm71wO6ls4mwAf7a3gFVxLw==} + /search-insights@2.13.0: + resolution: {integrity: sha512-Orrsjf9trHHxFRuo9/rzm0KIWmgzE8RMlZMzuhZOJ01Rnz3D0YBAe+V6473t6/H6c7irs6Lt48brULAiRWb3Vw==} dev: true /semver@5.7.2: @@ -5219,8 +5211,8 @@ packages: resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} dev: true - /shiki@0.14.5: - resolution: {integrity: sha512-1gCAYOcmCFONmErGTrS1fjzJLA7MGZmKzrBNX7apqSwhyITJg2O102uFzXUeBxNnEkDA9vHIKLyeKq0V083vIw==} + /shiki@0.14.7: + resolution: {integrity: sha512-dNPAPrxSc87ua2sKJ3H5dQ/6ZaY8RNnaAqK+t0eG7p0Soi2ydiqbGOTaZCqaYvA/uZYfS1LJnemt3Q+mSfcPCg==} dependencies: ansi-sequence-parser: 1.1.1 jsonc-parser: 3.2.0 @@ -5249,12 +5241,12 @@ packages: engines: {node: '>=14'} dev: true - /sirv@2.0.3: - resolution: {integrity: sha512-O9jm9BsID1P+0HOi81VpXPoDxYP374pkOLzACAoyUQ/3OUVndNpsz6wMnY2z+yOxzbllCKZrM+9QrWsv4THnyA==} + /sirv@2.0.4: + resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} engines: {node: '>= 10'} dependencies: - '@polka/url': 1.0.0-next.23 - mrmime: 1.0.1 + '@polka/url': 1.0.0-next.24 + mrmime: 2.0.0 totalist: 3.0.1 dev: true @@ -5385,8 +5377,8 @@ packages: yargs: 16.2.0 dev: true - /std-env@3.5.0: - resolution: {integrity: sha512-JGUEaALvL0Mf6JCfYnJOTcobY+Nc7sG/TemDRBqCA0wEr4DER7zDchaaixTlmOxAjG1uRJmX82EQcxwTQTkqVA==} + /std-env@3.7.0: + resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} dev: true /string-width@4.2.3: @@ -5742,8 +5734,8 @@ packages: engines: {node: '>=14.16'} dev: true - /type-fest@4.8.1: - resolution: {integrity: sha512-ShaaYnjf+0etG8W/FumARKMjjIToy/haCaTjN2dvcewOSoNqCQzdgG7m2JVOlM5qndGTHjkvsrWZs+k/2Z7E0Q==} + /type-fest@4.9.0: + resolution: {integrity: sha512-KS/6lh/ynPGiHD/LnAobrEFq3Ad4pBzOlJ1wAnJx9N4EYoqFhMfLIBjUT2UEx4wg5ZE+cC1ob6DCSpppVo+rtg==} engines: {node: '>=16'} dev: true @@ -5789,17 +5781,17 @@ packages: resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} dev: true - /typedoc@0.24.8(typescript@4.9.5): - resolution: {integrity: sha512-ahJ6Cpcvxwaxfu4KtjA8qZNqS43wYt6JL27wYiIgl1vd38WW/KWX11YuAeZhuz9v+ttrutSsgK+XO1CjL1kA3w==} - engines: {node: '>= 14.14'} + /typedoc@0.25.4(typescript@4.9.5): + resolution: {integrity: sha512-Du9ImmpBCw54bX275yJrxPVnjdIyJO/84co0/L9mwe0R3G4FSR6rQ09AlXVRvZEGMUg09+z/usc8mgygQ1aidA==} + engines: {node: '>= 16'} hasBin: true peerDependencies: - typescript: 4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x + typescript: 4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x || 5.3.x dependencies: lunr: 2.3.9 marked: 4.3.0 minimatch: 9.0.3 - shiki: 0.14.5 + shiki: 0.14.7 typescript: 4.9.5 dev: true @@ -5834,8 +5826,8 @@ packages: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} dev: true - /undici@5.27.2: - resolution: {integrity: sha512-iS857PdOEy/y3wlM3yRp+6SNQQ6xU0mmZcwRSriqk+et/cwWAtwmIGf6WkoDN2EK/AMdCO/dfXzIwi+rFMrjjQ==} + /undici@5.28.2: + resolution: {integrity: sha512-wh1pHJHnUeQV5Xa8/kyQhO7WFa8M34l026L5P/+2TYiakvGy5Rdc8jWZVyG7ieht/0WgJLEd3kcU5gKx+6GC8w==} engines: {node: '>=14.0'} dependencies: '@fastify/busboy': 2.1.0 @@ -5882,8 +5874,8 @@ packages: hasBin: true dev: true - /v8-to-istanbul@9.1.3: - resolution: {integrity: sha512-9lDD+EVI2fjFsMWXc6dy5JJzBsVTcQ2fVkfBvncZ6xJWG9wtBhOldG+mHkSL0+V1K/xgZz0JDO5UT5hFwHUghg==} + /v8-to-istanbul@9.2.0: + resolution: {integrity: sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==} engines: {node: '>=10.12.0'} dependencies: '@jridgewell/trace-mapping': 0.3.20 @@ -5964,28 +5956,73 @@ packages: dependencies: '@types/node': 20.10.5 esbuild: 0.18.20 - postcss: 8.4.31 + postcss: 8.4.32 rollup: 3.29.4 optionalDependencies: fsevents: 2.3.3 dev: true - /vitepress@1.0.0-beta.7(@algolia/client-search@4.19.1)(@types/node@20.10.5)(search-insights@2.11.0)(typescript@4.9.5): - resolution: {integrity: sha512-P9Rw+FXatKIU4fVdtKxqwHl6fby8E/8zE3FIfep6meNgN4BxbWqoKJ6yfuuQQR9IrpQqwnyaBh4LSabyll6tWg==} + /vite@5.0.10(@types/node@20.10.5): + resolution: {integrity: sha512-2P8J7WWgmc355HUMlFrwofacvr98DAjoE52BfdbwQtyLH06XKwaL/FMnmKM2crF0iX4MpmMKoDlNCB1ok7zHCw==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || >=20.0.0 + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + '@types/node': 20.10.5 + esbuild: 0.19.10 + postcss: 8.4.32 + rollup: 4.9.1 + optionalDependencies: + fsevents: 2.3.3 + dev: true + + /vitepress@1.0.0-rc.29(@algolia/client-search@4.22.0)(@types/node@20.10.5)(search-insights@2.13.0)(typescript@4.9.5): + resolution: {integrity: sha512-6sKmyEvH16SgMqkHzRwwadt9Uju13AOIqouzOVEg3Rk6X9mds6jLsq2GxnAJvg0s6bl/0Qs/cw+f8SNki82ltw==} hasBin: true + peerDependencies: + markdown-it-mathjax3: ^4.3.2 + postcss: ^8.4.31 + peerDependenciesMeta: + markdown-it-mathjax3: + optional: true + postcss: + optional: true dependencies: '@docsearch/css': 3.5.2 - '@docsearch/js': 3.5.2(@algolia/client-search@4.19.1)(search-insights@2.11.0) - '@vitejs/plugin-vue': 4.5.0(vite@4.5.1)(vue@3.3.13) + '@docsearch/js': 3.5.2(@algolia/client-search@4.22.0)(search-insights@2.13.0) + '@types/markdown-it': 13.0.7 + '@vitejs/plugin-vue': 4.6.0(vite@5.0.10)(vue@3.3.13) '@vue/devtools-api': 6.5.1 '@vueuse/core': 10.7.1(vue@3.3.13) - '@vueuse/integrations': 10.6.1(focus-trap@7.5.4)(vue@3.3.13) - body-scroll-lock: 4.0.0-beta.0 + '@vueuse/integrations': 10.7.1(focus-trap@7.5.4)(vue@3.3.13) focus-trap: 7.5.4 mark.js: 8.11.1 - minisearch: 6.2.0 - shiki: 0.14.5 - vite: 4.5.1(@types/node@20.10.5) + minisearch: 6.3.0 + mrmime: 1.0.1 + shiki: 0.14.7 + vite: 5.0.10(@types/node@20.10.5) vue: 3.3.13(typescript@4.9.5) transitivePeerDependencies: - '@algolia/client-search' @@ -6046,7 +6083,7 @@ packages: webdriverio: optional: true dependencies: - '@types/chai': 4.3.10 + '@types/chai': 4.3.11 '@types/chai-subset': 1.3.5 '@types/node': 20.10.5 '@vitest/expect': 0.34.6 @@ -6056,7 +6093,7 @@ packages: '@vitest/ui': 0.34.7(vitest@0.34.6) '@vitest/utils': 0.34.6 acorn: 8.11.2 - acorn-walk: 8.3.0 + acorn-walk: 8.3.1 cac: 6.7.14 chai: 4.3.10 debug: 4.3.4(supports-color@8.1.1) @@ -6064,7 +6101,7 @@ packages: magic-string: 0.30.5 pathe: 1.1.1 picocolors: 1.0.0 - std-env: 3.5.0 + std-env: 3.7.0 strip-literal: 1.3.0 tinybench: 2.5.1 tinypool: 0.7.0 diff --git a/scripts/apidoc.ts b/scripts/apidoc.ts index 8c7ac6b8046..d7c965aeded 100644 --- a/scripts/apidoc.ts +++ b/scripts/apidoc.ts @@ -8,4 +8,8 @@ async function build(): Promise { await generate(); } -build().catch(console.error); +build().catch((error) => { + // Workaround until top level await is available + console.error(error); + process.exit(1); +}); diff --git a/scripts/apidoc/generate.ts b/scripts/apidoc/generate.ts index 44610869b84..eb00cea461a 100644 --- a/scripts/apidoc/generate.ts +++ b/scripts/apidoc/generate.ts @@ -17,7 +17,7 @@ const pathOutputJson = resolve(pathOutputDir, 'typedoc.json'); * Generates the API documentation. */ export async function generate(): Promise { - const [app, project] = loadProject(); + const [app, project] = await loadProject(); // Useful for manually analyzing the content await app.generateJson(project, pathOutputJson); diff --git a/scripts/apidoc/typedoc.ts b/scripts/apidoc/typedoc.ts index 1e548c14906..4d6a2b6c313 100644 --- a/scripts/apidoc/typedoc.ts +++ b/scripts/apidoc/typedoc.ts @@ -31,19 +31,17 @@ type CommentHolder = Pick; * * @returns The TypeDoc application and the project reflection. */ -export function loadProject( +export async function loadProject( options: Partial = { entryPoints: ['src/index.ts'], pretty: true, cleanOutputDir: true, tsconfig: 'tsconfig.build.json', } -): [Application, ProjectReflection] { - const app = newTypeDocApp(); +): Promise<[Application, ProjectReflection]> { + const app = await newTypeDocApp(options); - app.bootstrap(options); - - const project = app.convert(); + const project = await app.convert(); if (!project) { throw new Error('Failed to convert project'); @@ -56,13 +54,15 @@ export function loadProject( /** * Creates and configures a new typedoc application. + * + * @param options The options to use for the project. */ -function newTypeDocApp(): Application { - const app = new Application(); - - app.options.addReader(new TSConfigReader()); - // If you want TypeDoc to load typedoc.json files - //app.options.addReader(new TypeDoc.TypeDocReader()); +async function newTypeDocApp( + options?: Partial +): Promise { + const app = await Application.bootstrapWithPlugins(options, [ + new TSConfigReader(), + ]); // Read parameter defaults app.converter.on(Converter.EVENT_CREATE_DECLARATION, parameterDefaultReader); diff --git a/test/scripts/apidoc/__snapshots__/module.spec.ts.snap b/test/scripts/apidoc/__snapshots__/module.spec.ts.snap index 3afdab63b01..dcd88cd0cf3 100644 --- a/test/scripts/apidoc/__snapshots__/module.spec.ts.snap +++ b/test/scripts/apidoc/__snapshots__/module.spec.ts.snap @@ -12,7 +12,7 @@ exports[`module > analyzeModule() > ModuleExampleTest 1`] = ` { "comment": "This is a description for a module with a code example.", "deprecated": undefined, - "examples": "
ts
new ModuleExampleTest()
+ "examples": "
ts
new ModuleExampleTest()
new ModuleExampleTest()
", } `; diff --git a/test/scripts/apidoc/__snapshots__/signature.spec.ts.snap b/test/scripts/apidoc/__snapshots__/signature.spec.ts.snap index 84365003a9d..04e2ee97c6f 100644 --- a/test/scripts/apidoc/__snapshots__/signature.spec.ts.snap +++ b/test/scripts/apidoc/__snapshots__/signature.spec.ts.snap @@ -5,10 +5,13 @@ exports[`signature > analyzeSignature() > complexArrayParameter 1`] = ` "deprecated": undefined, "description": "

Complex array parameter.

", - "examples": "
ts
complexArrayParameter<T>(array: readonly Array<{
-  value: T,
-  weight: number
-}>): T
+ "examples": "
ts
complexArrayParameter<T>(array: readonly Array<{
+  value: T,
+  weight: number
+}>): T
complexArrayParameter<T>(array: readonly Array<{
+  value: T,
+  weight: number
+}>): T
", "name": "complexArrayParameter", "parameters": [ @@ -53,7 +56,7 @@ exports[`signature > analyzeSignature() > defaultBooleanParamMethod 1`] = ` "deprecated": undefined, "description": "

Test with a default parameter.

", - "examples": "
ts
defaultBooleanParamMethod(c: boolean = true): number
+ "examples": "
ts
defaultBooleanParamMethod(c: boolean = true): number
defaultBooleanParamMethod(c: boolean = true): number
", "name": "defaultBooleanParamMethod", "parameters": [ @@ -105,7 +108,7 @@ exports[`signature > analyzeSignature() > functionParamMethod 1`] = ` "deprecated": undefined, "description": "

Test with a function parameters.

", - "examples": "
ts
functionParamMethod(fn: (a: string) => number): number
+ "examples": "
ts
functionParamMethod(fn: (a: string) => number): number
functionParamMethod(fn: (a: string) => number): number
", "name": "functionParamMethod", "parameters": [ @@ -130,7 +133,7 @@ exports[`signature > analyzeSignature() > literalUnionParamMethod 1`] = ` "deprecated": undefined, "description": "

Test with LiteralUnion.

", - "examples": "
ts
literalUnionParamMethod(value: 'a' | 'b' | string, namedValue: 'a' | 'b' | string, array: readonly Array<'a' | 'b' | string>, namedArray: readonly Array<'a' | 'b' | string>, mixed: 'a' | 'b' | string | readonly Array<'a' | 'b' | string>, namedMixed: 'a' | 'b' | string | readonly Array<'a' | 'b' | string>): string
+ "examples": "
ts
literalUnionParamMethod(value: 'a' | 'b' | string, namedValue: 'a' | 'b' | string, array: readonly Array<'a' | 'b' | string>, namedArray: readonly Array<'a' | 'b' | string>, mixed: 'a' | 'b' | string | readonly Array<'a' | 'b' | string>, namedMixed: 'a' | 'b' | string | readonly Array<'a' | 'b' | string>): string
literalUnionParamMethod(value: 'a' | 'b' | string, namedValue: 'a' | 'b' | string, array: readonly Array<'a' | 'b' | string>, namedArray: readonly Array<'a' | 'b' | string>, mixed: 'a' | 'b' | string | readonly Array<'a' | 'b' | string>, namedMixed: 'a' | 'b' | string | readonly Array<'a' | 'b' | string>): string
", "name": "literalUnionParamMethod", "parameters": [ @@ -191,7 +194,7 @@ exports[`signature > analyzeSignature() > methodWithDeprecated 1`] = ` ", "description": "

Test with deprecated and see marker.

", - "examples": "
ts
methodWithDeprecated(): number
+ "examples": "
ts
methodWithDeprecated(): number
methodWithDeprecated(): number
", "name": "methodWithDeprecated", "parameters": [], @@ -210,11 +213,15 @@ exports[`signature > analyzeSignature() > methodWithDeprecatedOption 1`] = ` "deprecated": undefined, "description": "

Test with deprecated option.

", - "examples": "
ts
methodWithDeprecatedOption(option: {
-  a: string,
-  b: () => number,
-  c: number
-}): number
+ "examples": "
ts
methodWithDeprecatedOption(option: {
+  a: string,
+  b: () => number,
+  c: number
+}): number
methodWithDeprecatedOption(option: {
+  a: string,
+  b: () => number,
+  c: number
+}): number
", "name": "methodWithDeprecatedOption", "parameters": [ @@ -262,8 +269,9 @@ exports[`signature > analyzeSignature() > methodWithExample 1`] = ` "deprecated": undefined, "description": "

Test with example marker.

", - "examples": "
ts
methodWithExample(): number
-test.apidoc.methodWithExample() // 0
+ "examples": "
ts
methodWithExample(): number
+test.apidoc.methodWithExample() // 0
methodWithExample(): number
+test.apidoc.methodWithExample() // 0
", "name": "methodWithExample", "parameters": [], @@ -280,7 +288,7 @@ exports[`signature > analyzeSignature() > methodWithMultipleSeeMarkers 1`] = ` "deprecated": undefined, "description": "

Test with multiple see markers.

", - "examples": "
ts
methodWithMultipleSeeMarkers(): number
+ "examples": "
ts
methodWithMultipleSeeMarkers(): number
methodWithMultipleSeeMarkers(): number
", "name": "methodWithMultipleSeeMarkers", "parameters": [], @@ -300,7 +308,7 @@ exports[`signature > analyzeSignature() > methodWithMultipleSeeMarkersAndBacktic "deprecated": undefined, "description": "

Test with multiple see markers and backticks.

", - "examples": "
ts
methodWithMultipleSeeMarkersAndBackticks(): number
+ "examples": "
ts
methodWithMultipleSeeMarkersAndBackticks(): number
methodWithMultipleSeeMarkersAndBackticks(): number
", "name": "methodWithMultipleSeeMarkersAndBackticks", "parameters": [], @@ -320,7 +328,7 @@ exports[`signature > analyzeSignature() > methodWithMultipleThrows 1`] = ` "deprecated": undefined, "description": "

Test with multiple throws.

", - "examples": "
ts
methodWithMultipleThrows(): number
+ "examples": "
ts
methodWithMultipleThrows(): number
methodWithMultipleThrows(): number
", "name": "methodWithMultipleThrows", "parameters": [], @@ -338,7 +346,7 @@ exports[`signature > analyzeSignature() > methodWithSinceMarker 1`] = ` "deprecated": undefined, "description": "

Test with since marker.

", - "examples": "
ts
methodWithSinceMarker(): number
+ "examples": "
ts
methodWithSinceMarker(): number
methodWithSinceMarker(): number
", "name": "methodWithSinceMarker", "parameters": [], @@ -355,7 +363,7 @@ exports[`signature > analyzeSignature() > methodWithThrows 1`] = ` "deprecated": undefined, "description": "

Test with throws.

", - "examples": "
ts
methodWithThrows(): number
+ "examples": "
ts
methodWithThrows(): number
methodWithThrows(): number
", "name": "methodWithThrows", "parameters": [], @@ -372,7 +380,7 @@ exports[`signature > analyzeSignature() > multiParamMethod 1`] = ` "deprecated": undefined, "description": "

Test with multiple parameters.

", - "examples": "
ts
multiParamMethod(a: number, b?: string, c: boolean = true): number
+ "examples": "
ts
multiParamMethod(a: number, b?: string, c: boolean = true): number
multiParamMethod(a: number, b?: string, c: boolean = true): number
", "name": "multiParamMethod", "parameters": [ @@ -411,7 +419,7 @@ exports[`signature > analyzeSignature() > noParamMethod 1`] = ` "deprecated": undefined, "description": "

Test with no parameters.

", - "examples": "
ts
noParamMethod(): number
+ "examples": "
ts
noParamMethod(): number
noParamMethod(): number
", "name": "noParamMethod", "parameters": [], @@ -428,7 +436,7 @@ exports[`signature > analyzeSignature() > optionalStringParamMethod 1`] = ` "deprecated": undefined, "description": "

Test with an optional parameter.

", - "examples": "
ts
optionalStringParamMethod(b?: string): number
+ "examples": "
ts
optionalStringParamMethod(b?: string): number
optionalStringParamMethod(b?: string): number
", "name": "optionalStringParamMethod", "parameters": [ @@ -453,13 +461,19 @@ exports[`signature > analyzeSignature() > optionsInlineParamMethodWithDefaults 1 "deprecated": undefined, "description": "

Test with a function parameters (inline types) with defaults.

", - "examples": "
ts
optionsInlineParamMethodWithDefaults(a: {
-  value: number
-} = { value: 1 }, b: {
-  value: number
-} = { value: 1 }, c: {
-  value: number
-}): number
+ "examples": "
ts
optionsInlineParamMethodWithDefaults(a: {
+  value: number
+} = { value: 1 }, b: {
+  value: number
+} = { value: 1 }, c: {
+  value: number
+}): number
optionsInlineParamMethodWithDefaults(a: {
+  value: number
+} = { value: 1 }, b: {
+  value: number
+} = { value: 1 }, c: {
+  value: number
+}): number
", "name": "optionsInlineParamMethodWithDefaults", "parameters": [ @@ -521,7 +535,7 @@ exports[`signature > analyzeSignature() > optionsInterfaceParamMethodWithDefault "deprecated": undefined, "description": "

Test with a function parameters with defaults.

", - "examples": "
ts
optionsInterfaceParamMethodWithDefaults(a: ParameterOptionsInterfaceA = { value: 1 }, b: ParameterOptionsInterfaceB = { value: 1 }, c: ParameterOptionsInterfaceC): number
+ "examples": "
ts
optionsInterfaceParamMethodWithDefaults(a: ParameterOptionsInterfaceA = { value: 1 }, b: ParameterOptionsInterfaceB = { value: 1 }, c: ParameterOptionsInterfaceC): number
optionsInterfaceParamMethodWithDefaults(a: ParameterOptionsInterfaceA = { value: 1 }, b: ParameterOptionsInterfaceB = { value: 1 }, c: ParameterOptionsInterfaceC): number
", "name": "optionsInterfaceParamMethodWithDefaults", "parameters": [ @@ -560,13 +574,19 @@ exports[`signature > analyzeSignature() > optionsParamMethod 1`] = ` "deprecated": undefined, "description": "

Test with an options parameter.

", - "examples": "
ts
optionsParamMethod(options: {
-  a: number,
-  b: string,
-  c: boolean,
-  d: () => string,
-  e: 'a' | 'b' | string
-}): number
+ "examples": "
ts
optionsParamMethod(options: {
+  a: number,
+  b: string,
+  c: boolean,
+  d: () => string,
+  e: 'a' | 'b' | string
+}): number
optionsParamMethod(options: {
+  a: number,
+  b: string,
+  c: boolean,
+  d: () => string,
+  e: 'a' | 'b' | string
+}): number
", "name": "optionsParamMethod", "parameters": [ @@ -626,7 +646,7 @@ exports[`signature > analyzeSignature() > optionsTypeParamMethodWithDefaults 1`] "deprecated": undefined, "description": "

Test with a function parameters with defaults.

", - "examples": "
ts
optionsTypeParamMethodWithDefaults(a: ParameterOptionsTypeA = { value: 1 }, b: ParameterOptionsTypeB = { value: 1 }, c: ParameterOptionsTypeC): number
+ "examples": "
ts
optionsTypeParamMethodWithDefaults(a: ParameterOptionsTypeA = { value: 1 }, b: ParameterOptionsTypeB = { value: 1 }, c: ParameterOptionsTypeC): number
optionsTypeParamMethodWithDefaults(a: ParameterOptionsTypeA = { value: 1 }, b: ParameterOptionsTypeB = { value: 1 }, c: ParameterOptionsTypeC): number
", "name": "optionsTypeParamMethodWithDefaults", "parameters": [ @@ -665,7 +685,7 @@ exports[`signature > analyzeSignature() > recordParamMethod 1`] = ` "deprecated": undefined, "description": "

Test with a Record parameter.

", - "examples": "
ts
recordParamMethod(object: Record<string, number>): number
+ "examples": "
ts
recordParamMethod(object: Record<string, number>): number
recordParamMethod(object: Record<string, number>): number
", "name": "recordParamMethod", "parameters": [ @@ -690,7 +710,7 @@ exports[`signature > analyzeSignature() > requiredNumberParamMethod 1`] = ` "deprecated": undefined, "description": "

Test with a required parameter.

", - "examples": "
ts
requiredNumberParamMethod(a: number): number
+ "examples": "
ts
requiredNumberParamMethod(a: number): number
requiredNumberParamMethod(a: number): number
", "name": "requiredNumberParamMethod", "parameters": [ @@ -715,11 +735,15 @@ exports[`signature > analyzeSignature() > stringUnionParamMethod 1`] = ` "deprecated": undefined, "description": "

Test with string union.

", - "examples": "
ts
stringUnionParamMethod(value: 'a' | 'b', options?: {
-  casing: 'lower' | 'mixed' | 'upper',
-  excludes: readonly AlphaNumericChar[],
-  format: 'binary' | 'css' | 'decimal' | 'hex'
-}): string
+ "examples": "
ts
stringUnionParamMethod(value: 'a' | 'b', options?: {
+  casing: 'lower' | 'mixed' | 'upper',
+  excludes: readonly AlphaNumericChar[],
+  format: 'binary' | 'css' | 'decimal' | 'hex'
+}): string
stringUnionParamMethod(value: 'a' | 'b', options?: {
+  casing: 'lower' | 'mixed' | 'upper',
+  excludes: readonly AlphaNumericChar[],
+  format: 'binary' | 'css' | 'decimal' | 'hex'
+}): string
", "name": "stringUnionParamMethod", "parameters": [ diff --git a/test/scripts/apidoc/module.spec.ts b/test/scripts/apidoc/module.spec.ts index 508c9de36af..5e55afea850 100644 --- a/test/scripts/apidoc/module.spec.ts +++ b/test/scripts/apidoc/module.spec.ts @@ -4,12 +4,11 @@ import { analyzeModule } from '../../../scripts/apidoc/module-methods'; import * as ModuleTests from './module.example'; import { loadExampleModules } from './utils'; +beforeAll(initMarkdownRenderer); +const modules = await loadExampleModules(); + describe('module', () => { describe('analyzeModule()', () => { - const modules = loadExampleModules(); - - beforeAll(initMarkdownRenderer); - it('dummy dependency to rerun the test if the example changes', () => { expect(Object.keys(ModuleTests)).not.toEqual([]); }); diff --git a/test/scripts/apidoc/signature.debug.ts b/test/scripts/apidoc/signature.debug.ts index d72709b0754..9e99e8c6f93 100644 --- a/test/scripts/apidoc/signature.debug.ts +++ b/test/scripts/apidoc/signature.debug.ts @@ -8,10 +8,9 @@ import { loadExampleMethods } from './utils'; /* Run with `pnpm tsx test/scripts/apidoc/signature.debug.ts` */ -const methods = loadExampleMethods(); - initMarkdownRenderer() .then(async () => { + const methods = await loadExampleMethods(); for (const [name, method] of Object.entries(methods)) { console.log('Analyzing:', name); const result = await analyzeSignature(method, '', method.name); diff --git a/test/scripts/apidoc/signature.spec.ts b/test/scripts/apidoc/signature.spec.ts index 75abf23bd9a..51935fcf44b 100644 --- a/test/scripts/apidoc/signature.spec.ts +++ b/test/scripts/apidoc/signature.spec.ts @@ -4,12 +4,11 @@ import { analyzeSignature } from '../../../scripts/apidoc/signature'; import { SignatureTest } from './signature.example'; import { loadExampleMethods } from './utils'; +beforeAll(initMarkdownRenderer); +const methods = await loadExampleMethods(); + describe('signature', () => { describe('analyzeSignature()', () => { - const methods = loadExampleMethods(); - - beforeAll(initMarkdownRenderer); - it('dummy dependency to rerun the test if the example changes', () => { expect(new SignatureTest()).toBeTruthy(); }); diff --git a/test/scripts/apidoc/utils.ts b/test/scripts/apidoc/utils.ts index ade31120ad8..2752f25b648 100644 --- a/test/scripts/apidoc/utils.ts +++ b/test/scripts/apidoc/utils.ts @@ -16,14 +16,13 @@ import { mapByName } from '../../../scripts/apidoc/utils'; * @param options The TypeDoc options. * @param includeTestModules Whether to include the test modules. */ -export function loadProjectModules( +export async function loadProjectModules( options?: Partial, includeTestModules = false -): Record< - string, - [DeclarationReflection, Record] +): Promise< + Record]> > { - const [, project] = loadProject(options); + const [, project] = await loadProject(options); const modules = selectApiModules(project, includeTestModules); @@ -33,20 +32,25 @@ export function loadProjectModules( /** * Loads the example methods using TypeDoc. */ -export function loadExampleMethods(): Record { - return loadProjectModules( +export async function loadExampleMethods(): Promise< + Record +> { + const modules = await loadProjectModules( { entryPoints: ['test/scripts/apidoc/signature.example.ts'], }, true - )['SignatureTest'][1]; + ); + return modules['SignatureTest'][1]; } /** * Loads the example modules using TypeDoc. */ -export function loadExampleModules(): Record { - const modules = loadProjectModules( +export async function loadExampleModules(): Promise< + Record +> { + const modules = await loadProjectModules( { entryPoints: ['test/scripts/apidoc/module.example.ts'], }, diff --git a/test/scripts/apidoc/verify-jsdoc-tags.spec.ts b/test/scripts/apidoc/verify-jsdoc-tags.spec.ts index 89afc225368..b14523e1653 100644 --- a/test/scripts/apidoc/verify-jsdoc-tags.spec.ts +++ b/test/scripts/apidoc/verify-jsdoc-tags.spec.ts @@ -35,115 +35,111 @@ afterAll(() => { } }); -describe('verify JSDoc tags', () => { - const modules = loadProjectModules(); +const modules = await loadProjectModules(); + +function resolveDirToModule(moduleName: string): string { + return resolve(tempDir, moduleName); +} + +function resolvePathToMethodFile( + moduleName: string, + methodName: string +): string { + const dir = resolveDirToModule(moduleName); + return resolve(dir, `${methodName}.ts`); +} + +const allowedReferences = new Set( + Object.values(modules).flatMap(([module, methods]) => { + const moduleFieldName = extractModuleFieldName(module); + return Object.keys(methods).map( + (methodName) => `faker.${moduleFieldName}.${methodName}` + ); + }) +); +const allowedLinks = new Set( + Object.values(modules).flatMap(([module, methods]) => { + const moduleFieldName = extractModuleFieldName(module); + return [ + `/api/${moduleFieldName}.html`, + ...Object.keys(methods).map( + (methodName) => + `/api/${moduleFieldName}.html#${methodName.toLowerCase()}` + ), + ]; + }) +); + +function assertDescription(description: string, isHtml: boolean): void { + const linkRegexp = isHtml ? /(href)="([^"]+)"/g : /\[([^\]]+)\]\(([^)]+)\)/g; + const links = [...description.matchAll(linkRegexp)].map((m) => m[2]); + + for (const link of links) { + if (!isHtml) { + expect(link).toMatch(/^https?:\/\//); + expect(link).toSatisfy(validator.isURL); + } - function resolveDirToModule(moduleName: string): string { - return resolve(tempDir, moduleName); + if (isHtml ? link.startsWith('/api/') : link.includes('fakerjs.dev/api/')) { + expect(allowedLinks, `${link} to point to a valid target`).toContain( + link.replace(/.*fakerjs.dev\//, '/') + ); + } } - - function resolvePathToMethodFile( - moduleName: string, - methodName: string - ): string { - const dir = resolveDirToModule(moduleName); - return resolve(dir, `${methodName}.ts`); +} + +// keep in sync with analyzeParameterOptions +function assertNestedParameterDefault( + name: string, + parameterType?: SomeType +): void { + if (!parameterType) { + return; } - const allowedReferences = new Set( - Object.values(modules).flatMap(([module, methods]) => { - const moduleFieldName = extractModuleFieldName(module); - return Object.keys(methods).map( - (methodName) => `faker.${moduleFieldName}.${methodName}` + switch (parameterType.type) { + case 'array': + return assertNestedParameterDefault( + `${name}[]`, + parameterType.elementType ); - }) - ); - const allowedLinks = new Set( - Object.values(modules).flatMap(([module, methods]) => { - const moduleFieldName = extractModuleFieldName(module); - return [ - `/api/${moduleFieldName}.html`, - ...Object.keys(methods).map( - (methodName) => - `/api/${moduleFieldName}.html#${methodName.toLowerCase()}` - ), - ]; - }) - ); - function assertDescription(description: string, isHtml: boolean): void { - const linkRegexp = isHtml - ? /(href)="([^"]+)"/g - : /\[([^\]]+)\]\(([^)]+)\)/g; - const links = [...description.matchAll(linkRegexp)].map((m) => m[2]); - - for (const link of links) { - if (!isHtml) { - expect(link).toMatch(/^https?:\/\//); - expect(link).toSatisfy(validator.isURL); - } - - if ( - isHtml ? link.startsWith('/api/') : link.includes('fakerjs.dev/api/') - ) { - expect(allowedLinks, `${link} to point to a valid target`).toContain( - link.replace(/.*fakerjs.dev\//, '/') - ); + case 'union': + for (const type of parameterType.types) { + assertNestedParameterDefault(name, type); } - } - } - // keep in sync with analyzeParameterOptions - function assertNestedParameterDefault( - name: string, - parameterType?: SomeType - ): void { - if (!parameterType) { return; - } - switch (parameterType.type) { - case 'array': - return assertNestedParameterDefault( - `${name}[]`, - parameterType.elementType - ); - - case 'union': - for (const type of parameterType.types) { - assertNestedParameterDefault(name, type); + case 'reflection': { + for (const property of parameterType.declaration.children ?? []) { + const reflection = property.comment + ? property + : (property.type as ReflectionType)?.declaration?.signatures?.[0]; + const comment = reflection?.comment; + const tagDefault = extractRawDefault({ comment }) || undefined; + const summaryDefault = extractSummaryDefault(comment, false); + + if (summaryDefault) { + expect( + tagDefault, + `Expect jsdoc summary default and @default for ${name}.${property.name} to be the same` + ).toBe(summaryDefault); } - - return; - - case 'reflection': { - for (const property of parameterType.declaration.children ?? []) { - const reflection = property.comment - ? property - : (property.type as ReflectionType)?.declaration?.signatures?.[0]; - const comment = reflection?.comment; - const tagDefault = extractRawDefault({ comment }) || undefined; - const summaryDefault = extractSummaryDefault(comment, false); - - if (summaryDefault) { - expect( - tagDefault, - `Expect jsdoc summary default and @default for ${name}.${property.name} to be the same` - ).toBe(summaryDefault); - } - } - - return; } - case 'typeOperator': - return assertNestedParameterDefault(name, parameterType.target); - - default: - return; + return; } + + case 'typeOperator': + return assertNestedParameterDefault(name, parameterType.target); + + default: + return; } +} +describe('verify JSDoc tags', () => { describe.each(Object.entries(modules))( '%s', (moduleName, [module, methodsByName]) => { diff --git a/vite.config.ts b/vite.config.ts index 4cbe0c4fcc5..ca3339f2c7e 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -5,6 +5,17 @@ const VITEST_SEQUENCE_SEED = Date.now(); console.log('VITEST_SEQUENCE_SEED', VITEST_SEQUENCE_SEED); +// TODO @Shinigami92 2023-12-28: remove when we drop support for Node 14 +const [nodeVersionMajor] = process.versions.node.split('.').map(Number); +const excludedTests: string[] = []; +if (nodeVersionMajor < 16) { + excludedTests.push( + 'test/scripts/apidoc/module.spec.ts', + 'test/scripts/apidoc/signature.spec.ts', + 'test/scripts/apidoc/verify-jsdoc-tags.spec.ts' + ); +} + // https://vitejs.dev/config/ export default defineConfig({ test: { @@ -20,6 +31,16 @@ export default defineConfig({ seed: VITEST_SEQUENCE_SEED, shuffle: true, }, + // TODO @Shinigami92 2023-12-28: remove the whole `exclude` when we drop support for Node 14 + exclude: [ + // should be originally `...configDefaults.exclude` from `'vitest/config'`, but esm... + 'node_modules', + 'dist', + '.idea', + '.git', + '.cache', + ...excludedTests, + ], onConsoleLog(log, type) { if ( type === 'stderr' &&