diff --git a/.eslintrc b/.eslintrc index 7ab680f4a..c1042c736 100644 --- a/.eslintrc +++ b/.eslintrc @@ -1,11 +1,10 @@ { "root": true, - "extends": [ - "@nuxtjs/eslint-config-typescript" - ], + "extends": ["@nuxtjs/eslint-config-typescript"], "rules": { "vue/multi-word-component-names": "off", "vue/no-multiple-template-root": "off", - "no-redeclare": "off" + "no-redeclare": "off", + "import/named": "off" } } diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7e7401787..8688e07d9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -22,12 +22,11 @@ jobs: - run: yarn dev:prepare - run: yarn lint - run: yarn build - - run: yarn test:unit + - run: yarn test - name: Release Edge if: | github.event_name == 'push' && - !contains(github.event.head_commit.message, '[skip-release]') && - !contains(github.event.head_commit.message, 'docs') + !contains(github.event.head_commit.message, '[skip-release]') run: ./scripts/release-edge.sh env: NODE_AUTH_TOKEN: ${{secrets.NODE_AUTH_TOKEN}} diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 000000000..d436c8542 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,188 @@ +# Changelog + + +## main (v2.0.1..v2.1.0) + + +### 🚀 Enhancements + + - **types:** Provide augmentations for `only` and `without` (#1200) + - **types:** Expose `MarkdownParsedContent` for improved type generics (#1199) + - **navigation:** Allow passing QueryBuilder or QueryBuilderParams in `fetchNavigation` or `` (#1206) + - **markdown:** Allow overwriting plugins (#1226) + - **config:** Allow ws config (#1249) + - **markdown:** Support multiple themes for code highlighter (#1251) + - **navigation:** Allow _dir.yml to filter navigation (#1261) + - **source:** Allow overwriting default source (#1273) + - Variable binding (#1266) + - **document-driven:** Add document-driven as a @nuxt/content feature (#1279) + - **docs:** Upgrade docus (3adf4e5d) + - **use-content-head:** Add helper for binding (#1295) + - **document-driven:** Add caching layer on client-side (#1312) + - Add web-types.json for WebStorm (#1288) + - Support navigation field in content and _dir.yml (#1328) + - Disable document driven with route meta (#1333) + - **tailwindcss:** Support tailwindcss classes in content (with hmr) (#1351) + - Improve where query types (#1359) + - Export transformers (#1374) + - DocumentDriven configuration (#1378) + - **``:** Support fallback default slot (#1405) + - Create index for path base search (#1401) + - Pre fetch contents on build (#1411) + - Per-page components (#1429) + - Implement csv parser with unist/mircomark stack (#1468) + - **generate:** Use nitro header instead of header link (#1502) + +### 🩹 Fixes + + - **navigation:** Allow navigation opt-out with `navigation: false` (#1208) + - **types:** More accurately represent `ParsedContentMeta` (#1196) + - **types:** Change `QueryBuilderParams` keys to partial (#1203) + - **ContentQuery:** Handle `null` data (#1230) + - **markdown:** Issue with `h1-6` tags (#1223) + - **markdown:** Detect inline component followed non whitespace characters (#1227) + - **query:** Use exact match for `findOne` (#1224) + - **query:** Surround and only cannot be used at the same time (#1238) + - **storage:** Warn & ignore files with invalid characters (#1239) + - **lint:** Fix linting (ellipsis.vue) (855bb383) + - **ContentQuery:** Add condition if value is undefined (6a055081) + - **mdc-parser:** Minor fixes in markdown generation (caf9b83d) + - **highlight:** Preload common languages (#1278) + - **query:** Handle array fields in `$in` operator (#1277) + - **document-driven:** Update documentDriven feature (#1294) + - **highlight:** Warn about languages dynamic loading (#1291) + - **markdown:** Generate depth field in TOC for h5 & h6 (#1296) + - Support layout from defined vue page in DDM (48fc30b0) + - **ignore:** Fix ignore paths injected from the module (97f1d74c) + - **runtime:** ContentRenderer extra props (#1300) + - Remove _theme.yml fetch with doc driven by default (#1310) + - **ContentRendererMarkdown:** Preload components used in content (#1309) + - **markdown:** Attributes of span inside headings (#1307) + - Handler files with `index` as substring (#1334) + - **document-driven:** Rendering flash (#1336) + - DocumentDrivenNotFound shall use the layout (d41205aa) + - **highlight:** Remove `@nuxt/kit` from runtime bundle (#1346) + - **document-driven:** Add empty promise for disabled features (#1356) + - **hot:** Mitigate empty code blocks (hotfix) (a13cca98) + - **lint:** Fix linting (cbf08ad9) + - **highlight:** Respect `highlight` option (#1372) + - Clone `head.meta` before manipulating (#1370) + - **prose-components:** Use html anchor link in headings (#1381) + - Support components/content in layers for extends (#1404) + - **document-driven:** Throw 404 error when content is missing (#1394) + - Import `useRoute` (#1408) + - **document-driven:** Only set 404 status on SSR (#1409) + - **query:** Do not create empty `where` (c71c79bd) + - **content-index:** Files in `content` directory has higher priority (#1414) + - **markdown:** Add missing task list class (#1416) + - Make sure `components/content` is on top in layers (#1418) + - Remove (now deprecated) template utils (#1423) + - **pre-fetch:** Support github driver (#1433) + - **query:** Ensure where is set (10709ee2) + - **json:** Handle parsed content (#1437) + - Avoid mutating `_layers` (#1455) + - **prerender:** Add extension to pre-rendered queries (#1456) + - **``:** Prioritize default slot (#1460) + - `useContentHead` was not respecting `og:image` props (#1461) + - **document-driven:** Avoid calling middleware on hash change (5a64f469) + - **runtime:** Allow to give instance of the remark plugin (#1466) + - **useContentHead:** Set title only if defined (9b9b6489) + - **module:** Do not add vue files to ignore list (#1476) + - **``:** Prevent multiple deprecation log (#1497) + +### 💅 Refactors + + - ⚠️ Spell `extensions` correctly (#1204) + - Use `remark-mdc` package (#1315) + - Extract nitro logic from transformers (#1352) + +### 📖 Documentation + + - Fix typo (fff00b19) + - Remove config redirect (04fe4248) + - Upgrade with latest docus (#1250) + - Update playground (96c161d5) + - Update driverOptions (7adaed10) + - Note about rendering content in Get Started (#1255) + - Small typo (1b7fd920) + - **get-started:** Minor fixes (#1274) + - Add edge releases channel (58cae1d2) + - **edge-channel:** Update edge package name (fe1ebb59) + - Upgrade @nuxt/content (3dc1f25d) + - Update document-driven page (90d04bb3) + - Move example of doc driven (6426160e) + - Improve examples (#1302) + - Fix inline code block (#1303) + - Fix missing slash (#1306) + - Generate blog too (#1311) + - Fix link to document-driven example (6e1ff3b1) + - Add template for doc-driven mode (a4ab9444) + - Fix the link-id for the surround EN v1 docs (#1321) + - Missing `,` (#1330) + - Specify version in v1 installation guide (85e22aca) + - Remove doubled . from filename (docs FR v1) (#1323) + - Add edge channel for document-driven mode (4b23370c) + - Improve catch-all section in document-driven mode (93813f9a) + - Fix typo (e82fed4b) + - **sitemap:** Add npm and pnpm install script (#1349) + - Add deploy section (#1347) + - **api:** QueryContent().sort() descending sorting (#1364) + - Add article 'a' to sentence (#1395) + - Move fetchContentNavigation into function (#1403) + - Upgrade deps (#1424) + - Upgrade deps " (#1424) + - Fix typo 'Convent' -> 'Content' (#1442) + - Describe `highlight.preload` (#1436) + - Add pnpm as project start option (#1450) + - Excerpt (#1441) + - Document transformers (#1453) + - Temporary use `` (ac95d137) + - **README:** Fix link to MDC syntax (#1467) + - **querying:** Add `_params` to api routes (#1463) + - Playground content from query (#1499) + - Upgrade docus (#1503) + - Update home page (d7bd2b1a) + - Update social image (8cdae3e2) + +### 🏡 Chore + + - Typo (fd1c56dc) + - **docs:** Upgrade docs (d0ee386e) + - **prepare:** Prepare for 2.1.0 release (update version) (3dd85b57) + - **playground:** Add example with ddm and vue page (07d79882) + - Remove style and rename document-driven class (8bf91546) + - Add page:content:start hook (45f696ba) + - Rename to content:middleware:start (63749d2b) + - Remove `unctx` from dependencies (#1413) + - Deprecate markdown component (#1435) + - Upgrade to nuxt rc9 (#1498) + - Use latest docus (ef5c3ec9) + +#### ⚠️ Breaking Changes + + - ⚠️ Spell `extensions` correctly (#1204) + +### ❤️ Contributors + +- Ahad Birang +- Alexey Tuzov +- Benjamin Canac +- Clément Ollivier +- Daniel Roe +- Farnabaz +- Gregor Becker +- Gustavo Alfredo Marín Sáez +- Harlan Wilton +- Itshizhan +- Kot +- Kotaro Yabe +- Lukas Von Blarer +- Maciej Błędkowski +- Nobkd +- Pooya Parsa +- Rem +- Sébastien Chopin +- Vinayak Kulkarni +- Vinccool96 +- Yaël Guilloux + diff --git a/README.md b/README.md index f9bdb1be1..e810b3278 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ # Nuxt Content -Nuxt Content reads the `content/` directory in your project, parses `.md`, `.yml`, `.csv` or `.json` files and creates a powerful data layer for your application. Bonus, use Vue components in Markdown with the [MDC syntax](/guide/writing/mdc). +Nuxt Content reads the `content/` directory in your project, parses `.md`, `.yml`, `.csv` or `.json` files and creates a powerful data layer for your application. Bonus, use Vue components in Markdown with the [MDC syntax](https://content.nuxtjs.org/guide/writing/mdc). - [📖  Read the documentation](https://content.nuxtjs.org) - [👾  Playground](https://stackblitz.com/github/nuxt/content/tree/main/examples/essentials/hello-world?file=app.vue) diff --git a/docs/README.md b/docs/README.md index ddef0e998..49d567d56 100644 --- a/docs/README.md +++ b/docs/README.md @@ -2,7 +2,7 @@ # Documentation -This documentation uses [Docus](https://github.com/nuxtlabs/docus). +This documentation uses [Docus](https://github.com/nuxt-themes/docus). ## 💻 Development diff --git a/docs/app.config.ts b/docs/app.config.ts new file mode 100644 index 000000000..36198b9b2 --- /dev/null +++ b/docs/app.config.ts @@ -0,0 +1,56 @@ +export default defineAppConfig({ + docus: { + title: 'Nuxt Content', + description: 'Write pages in markdown, use Vue components and enjoy the power of Nuxt with a blazing fast developer experience.', + layout: 'docs', + image: 'https://content.nuxtjs.org/preview.png', + url: 'https://content.nuxtjs.org', + debug: false, + socials: { + twitter: '@nuxt_js', + github: 'nuxt/content' + }, + github: { + root: 'docs/content', + edit: true, + releases: true + }, + cover: { + src: '/cover.jpg', + alt: 'Content made easy for Vue developers' + }, + aside: { + level: 1, + filter: [ + '/v1', + '/content-v1', + '/fr', + '/ja', + '/ru' + ] + }, + header: { + title: false, + logo: true + }, + footer: { + credits: { + icon: 'IconDocus', + text: 'Powered by Docus', + href: 'https://docus.com' + }, + icons: [ + { + label: 'NuxtJS', + href: 'https://nuxtjs.org', + component: 'IconNuxt' + }, + { + label: 'Vue Telescope', + href: 'https://vuetelescope.com', + component: 'IconVueTelescope' + } + ] + } + } +}) diff --git a/docs/components/content/ArticleHero.vue b/docs/components/content/ArticleHero.vue deleted file mode 100644 index 5a21b4340..000000000 --- a/docs/components/content/ArticleHero.vue +++ /dev/null @@ -1,45 +0,0 @@ - - - diff --git a/docs/components/content/BlockHero.vue b/docs/components/content/BlockHero.vue deleted file mode 100644 index fe46dab31..000000000 --- a/docs/components/content/BlockHero.vue +++ /dev/null @@ -1,56 +0,0 @@ - - - diff --git a/docs/components/content/Ellipsis.vue b/docs/components/content/Ellipsis.vue new file mode 100644 index 000000000..203e467b0 --- /dev/null +++ b/docs/components/content/Ellipsis.vue @@ -0,0 +1,14 @@ + + + diff --git a/docs/components/content/ExampleTheTitle.vue b/docs/components/content/ExampleTheTitle.vue index eac4512a0..e2fb02318 100644 --- a/docs/components/content/ExampleTheTitle.vue +++ b/docs/components/content/ExampleTheTitle.vue @@ -1,5 +1,5 @@ diff --git a/docs/components/content/HeroAnnouncement.vue b/docs/components/content/HeroAnnouncement.vue new file mode 100644 index 000000000..8a48dad4b --- /dev/null +++ b/docs/components/content/HeroAnnouncement.vue @@ -0,0 +1,19 @@ + + + diff --git a/docs/components/content/IconCodeSandBox.vue b/docs/components/content/IconCodeSandBox.vue deleted file mode 100644 index 4682bdaea..000000000 --- a/docs/components/content/IconCodeSandBox.vue +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/docs/components/content/IconStackBlitz.vue b/docs/components/content/IconStackBlitz.vue deleted file mode 100644 index 09d5859f9..000000000 --- a/docs/components/content/IconStackBlitz.vue +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/docs/components/content/MyButton.vue b/docs/components/content/MyButton.vue index 56f5f142b..be09d2831 100644 --- a/docs/components/content/MyButton.vue +++ b/docs/components/content/MyButton.vue @@ -9,7 +9,7 @@ defineProps({ diff --git a/docs/components/content/Playground.vue b/docs/components/content/Playground.vue index 91743b513..2c1744854 100644 --- a/docs/components/content/Playground.vue +++ b/docs/components/content/Playground.vue @@ -1,8 +1,13 @@ + + + + diff --git a/docs/components/content/ReadMore.vue b/docs/components/content/ReadMore.vue new file mode 100644 index 000000000..f17f9085e --- /dev/null +++ b/docs/components/content/ReadMore.vue @@ -0,0 +1,29 @@ + + + diff --git a/docs/content-v1/en/1.getting-started/1.introduction.md b/docs/content-v1/en/1.getting-started/1.introduction.md index 9728be7bd..e063f1842 100644 --- a/docs/content-v1/en/1.getting-started/1.introduction.md +++ b/docs/content-v1/en/1.getting-started/1.introduction.md @@ -3,8 +3,6 @@ title: Introduction description: 'Empower your NuxtJS application with the @nuxt/content module: write in a content/ directory and fetch your Markdown, JSON, YAML and CSV files through a MongoDB-like API, acting as a Git-based Headless CMS.' --- -Empower your NuxtJS application with the `@nuxt/content` module: write in a `content/` directory and fetch your Markdown, JSON, YAML, XML and CSV files through a MongoDB-like API, acting as a **Git-based Headless CMS**. - ## Features ::list diff --git a/docs/content-v1/en/1.getting-started/2.installation.md b/docs/content-v1/en/1.getting-started/2.installation.md index ea5056357..26803fd57 100644 --- a/docs/content-v1/en/1.getting-started/2.installation.md +++ b/docs/content-v1/en/1.getting-started/2.installation.md @@ -7,11 +7,11 @@ Add `@nuxt/content` dependency to your project: ::code-group ```bash [Yarn] - yarn add @nuxt/content + yarn add @nuxt/content@^1 ``` ```bash [NPM] - npm install @nuxt/content + npm install @nuxt/content@^1 ``` :: diff --git a/docs/content-v1/en/3.community/1.snippets.md b/docs/content-v1/en/3.community/1.snippets.md index 31e278655..c14676c43 100644 --- a/docs/content-v1/en/3.community/1.snippets.md +++ b/docs/content-v1/en/3.community/1.snippets.md @@ -145,7 +145,7 @@ even when the current page is showing the higer-positioned document. -> Check out the [surround documentation](/fetching#surroundslug-options) +> Check out the [surround documentation](/fetching#surroundslugorpath-options) ### Case-Insensitive Sorting diff --git a/docs/content-v1/fr/1.getting-started/1.introduction.md b/docs/content-v1/fr/1.getting-started/1.introduction.md index be81ac3db..9e0e251f6 100644 --- a/docs/content-v1/fr/1.getting-started/1.introduction.md +++ b/docs/content-v1/fr/1.getting-started/1.introduction.md @@ -3,8 +3,6 @@ title: Introduction description: 'Renforcez votre application NuxtJS avec le module @nuxt/content : écrivez dans un répertoire content/ et récupérez vos fichiers Markdown, JSON, YAML et CSV à travers une API de type MongoDB, agissant comme un Headless CMS basé sur Git' --- -Renforcez votre application NuxtJS avec le module `@nuxt/content` : écrivez dans un répertoire `content/` et récupérez vos fichiers Markdown, JSON, YAML et CSV à travers une API de type MongoDB, agissant comme un **Headless CMS basé sur Git**. - ## Fonctionnalités ::list diff --git a/docs/content-v1/fr/1.getting-started/5.displaying.md b/docs/content-v1/fr/1.getting-started/5.displaying.md index 744951671..f8b58c490 100644 --- a/docs/content-v1/fr/1.getting-started/5.displaying.md +++ b/docs/content-v1/fr/1.getting-started/5.displaying.md @@ -1,8 +1,6 @@ --- title: Afficher du contenu description: Vous pouvez utiliser le composant `` directement dans vos template afin d'afficher votre Markdown. -position: 5 -category: Pour commencer --- ::alert{type="info"} diff --git a/docs/content-v1/fr/1.getting-started/7.advanced.md b/docs/content-v1/fr/1.getting-started/7.advanced.md index 653de5135..e302179db 100644 --- a/docs/content-v1/fr/1.getting-started/7.advanced.md +++ b/docs/content-v1/fr/1.getting-started/7.advanced.md @@ -1,8 +1,6 @@ --- title: Utilisation avancée description: Apprenez l'utilisation avancée du module @nuxt/content -position: 7 -category: Pour commencer --- ## Utilisation Programmatique diff --git a/docs/content-v1/fr/3.community/1.snippets.md b/docs/content-v1/fr/3.community/1.snippets.md index 72b3a7896..3f651ff38 100644 --- a/docs/content-v1/fr/3.community/1.snippets.md +++ b/docs/content-v1/fr/3.community/1.snippets.md @@ -1,8 +1,6 @@ --- title: Extraits description: 'Apprenez comment implémenter @nuxt/content dans votre application avec ces extraits de code.' -subtitle: 'Découvrez ces extraits de code qui peuvent être copiés directement dans votre application.' -version: 1.1 --- ## Utilisation diff --git a/docs/content-v1/fr/3.community/2..integrations.md b/docs/content-v1/fr/3.community/2.integrations.md similarity index 100% rename from docs/content-v1/fr/3.community/2..integrations.md rename to docs/content-v1/fr/3.community/2.integrations.md diff --git a/docs/content-v1/ja/1.getting-started/1.introduction.md b/docs/content-v1/ja/1.getting-started/1.introduction.md index 211798c51..296bb88f3 100644 --- a/docs/content-v1/ja/1.getting-started/1.introduction.md +++ b/docs/content-v1/ja/1.getting-started/1.introduction.md @@ -3,8 +3,6 @@ title: Content とは description: 'nuxt/contentモジュールを使ってNuxtJSアプリケーションを強化します。content/ディレクトリに書き込むことで、MongoDBのようなAPIを使ってMarkdown、JSON、YAML、CSVファイルを取得します。これはGitベースのヘッドレスCMSとして動作します。' --- -`nuxt/content`モジュールを使ってNuxtJSアプリケーションを強化します。`content/`ディレクトリに書き込むことで、MongoDBのようなAPIを使ってMarkdown、JSON、YAML、XML、CSVファイルを取得します。これは**GitベースのヘッドレスCMS**として動作します。 - ## 特徴 ::list diff --git a/docs/content-v1/ja/2.examples/2.docs-theme.md b/docs/content-v1/ja/2.examples/2.docs-theme.md index ab3c3626a..7eaa1ffd5 100644 --- a/docs/content-v1/ja/2.examples/2.docs-theme.md +++ b/docs/content-v1/ja/2.examples/2.docs-theme.md @@ -1,7 +1,6 @@ --- title: Docs description: 'テーマを使って、Nuxtと@nuxt/contentで開発を加速させましょう。' -version: 1.6 --- diff --git a/docs/content-v1/ru/1.getting-started/1.introduction.md b/docs/content-v1/ru/1.getting-started/1.introduction.md index dbbb035e4..fa7f0b968 100644 --- a/docs/content-v1/ru/1.getting-started/1.introduction.md +++ b/docs/content-v1/ru/1.getting-started/1.introduction.md @@ -3,8 +3,6 @@ title: Вступление description: 'Прокачайте ваше NuxtJS приложение с модулем @nuxt/content: пишите в директории content/ и получайте ваши Markdown, JSON, YAML и CSV файлы через MongoDB подобное API, работает как базирующаяся на Git безголовая CMS.' --- -Прокачайте ваше NuxtJS приложение с модулем `@nuxt/content`: пишите в директории `content/` и получайте ваши Markdown, JSON, YAML и CSV файлы через MongoDB подобное API, работает как **базирующаяся на Git безголовая CMS**. - ## Особенности ::list diff --git a/docs/content/1.index.md b/docs/content/1.index.md index 0fecaecc7..92b4071f5 100755 --- a/docs/content/1.index.md +++ b/docs/content/1.index.md @@ -2,14 +2,11 @@ title: "Content made easy for Vue developers" description: "The file-based CMS for your Nuxt application, powered by Markdown and Vue components." navigation: false -layout: fluid +layout: page --- ::block-hero --- -announcement: - - 'Announcing Nuxt Content v2' - - /blog/announcing-v2 cta: - Get Started - /get-started @@ -18,11 +15,23 @@ secondary: - https://github.com/nuxt/content --- +#top + ::hero-announcement + --- + label: "Discover the Document Driven mode" + to: /guide/writing/document-driven + --- + :: + #title Content made easy for Vue Developers #description Nuxt Content reads the `content/` directory in your project, parses `.md`, `.yml`, `.csv` and `.json` files to create a powerful data layer for your application. Use Vue components in Markdown with the [MDC syntax](/guide/writing/mdc). + +#right +::video-player{src="https://www.youtube.com/watch?v=o9e12WbKrd8" poster="/video-cover.jpeg" .border-2 .u-border-gray-100 .shadow-lg .h-64} +:: :: ::card-grid @@ -33,54 +42,68 @@ Powerful Features ::card --- icon: simple-icons:nuxtdotjs - title: Built for Nuxt 3 - description: 'Take advantage of Nuxt 3 features: Vue 3, Auto-imports, Vite and Nitro server.' --- + #title + Built for Nuxt 3 + #description + Take advantage of Nuxt 3 features: Vue 3, Auto-imports, Vite and Nitro server. :: ::card --- icon: ph:file - description: Write your content in Markdown, YML, CSV or JSON and query it in your components. - title: File-based CMS --- + #title + File-based CMS + #description + Write your content in Markdown, YML, CSV or JSON and query it in your components. :: ::card --- icon: ph:funnel - title: Query Builder - description: Query your content with a MongoDB-like API to fetch the right data at the right time. --- + #title + Query Builder + #description + Query your content with a MongoDB-like API to fetch the right data at the right time. :: + ::card --- icon: IconMarkdown - title: MDC Syntax - description: Use your Vue components in Markdown files, supporting props, slots and nested components. --- + #title + MDC Syntax + #description + Use your Vue components in Markdown files, supporting props, slots and nested components. :: + ::card --- icon: ph:scan - title: Code highlighting - description: Display beautiful code blocks in your website with the Shiki integration supporting VS Code themes. --- + #title + Code highlighting + #description + Display beautiful code blocks in your website with the Shiki integration supporting VS Code themes. :: ::card --- icon: ph:rocket-launch - title: Deploy everywhere. - description: Nuxt Content support both Static or Node server hosting. --- + #title + Deploy everywhere. + #description + Nuxt Content support both Static or Node server hosting. :: #root :ellipsis :: -::container{padded .py-8 .mb-8 .flex .items-center .justify-center} +::div{.py-8 .mb-8 .flex .items-center .justify-center} ::button-link{href="/content-v1" type="base"} Looking for v1 documentation ? diff --git a/docs/content/2.get-started.md b/docs/content/2.get-started.md index 44afd0d5e..273017bd2 100644 --- a/docs/content/2.get-started.md +++ b/docs/content/2.get-started.md @@ -1,10 +1,14 @@ --- title: Get Started -description: How to start with Nuxt Content, from a starting with a fresh new project or adding it to your Nuxt application. +description: How to start with Nuxt Content, by creating a fresh new project or adding it to your Nuxt application. icon: heroicons-outline:lightning-bolt -layout: blogpost +layout: page +constrainedClass: 'max-w-4xl' --- +::article-hero +:: + ## Play online You can start playing with Nuxt Content in your browser using our online sandboxes: @@ -106,6 +110,28 @@ export default defineNuxtConfig({ }) ``` +## Create content + +Place your markdown files inside the `content/` directory in the root directory of your project. + +```md [content/index.md] +# Hello Content +``` + +The module automatically loads and parses them. + +## Render pages + +To render content pages, add a [catch-all route](https://v3.nuxtjs.org/guide/directory-structure/pages/#catch-all-route) using the `ContentDoc` component: + +```vue [pages/[...slug].vue] + +``` + ::alert{type=warning} ⚠️ Content v2 requires [Nuxt 3](https://v3.nuxtjs.org). If you are using Nuxt 2, checkout [Content v1 documentation](https://content.nuxtjs.org/v1/getting-started/installation). :: diff --git a/docs/content/3.guide/1.writing/1.content-directory.md b/docs/content/3.guide/1.writing/1.content-directory.md index 2683972bc..762479104 100644 --- a/docs/content/3.guide/1.writing/1.content-directory.md +++ b/docs/content/3.guide/1.writing/1.content-directory.md @@ -1,12 +1,8 @@ --- title: 'Content directory' -description: 'The Content module parses .md and .yam` files inside the content/ directory and provides paths according to the directory structure.' +description: 'The Content module parses .md and .yaml files inside the content/ directory and provides paths according to the directory structure.' --- -# Content directory - -The Content module parses `.md`, `.yml`, `.yaml`, `.csv`, `.json` and `.json5` files inside the `content/` directory and provides paths according to the directory structure. - ## Paths Nuxt Content will automatically generate paths for your content files. @@ -33,7 +29,7 @@ Nuxt Content uses these numbers to order content lists. content/ 1.frameworks/ 1.vue.md - 2.nuxt.md + 2.nuxt.md 2.examples/ 1.vercel.md 2.netlify.md @@ -51,9 +47,9 @@ Content module will ignore files and folders starting with a `.`. ```[Directory structure] content/ - 1.frameworks/ + 1.frameworks/ .1.vue.md // Ignored content - 2.nuxt.md + 2.nuxt.md .2.translation/ // Ignored directory 1.fa/ 1.messages.md // Ignored content because of its grand parent @@ -71,7 +67,7 @@ Partial contents are accessible in search and content lists but are not displaye content/ 1.frameworks/ _1.vue.md // Partial content - 2.nuxt.md + 2.nuxt.md _2.translation/ // Partial directory 1.fa/ 1.messages.md // Partial content because of its grand parent diff --git a/docs/content/3.guide/1.writing/2.markdown.md b/docs/content/3.guide/1.writing/2.markdown.md index 9127b1f1a..e0b207956 100755 --- a/docs/content/3.guide/1.writing/2.markdown.md +++ b/docs/content/3.guide/1.writing/2.markdown.md @@ -3,10 +3,6 @@ title: Markdown description: 'Nuxt Content uses the Markdown syntax and conventions to provide a rich-text editing experience.' --- -# Markdown - -Nuxt Content uses the Markdown syntax and conventions to provide a rich-text editing experience. - - Use Markdown to format your content with Prose components. - Edit the meta-data of your pages in the front-matter block of your files. @@ -65,22 +61,43 @@ description: 'meta description of the page' ### Native parameters -| Key | Type | Default | Description | -|---------|--------| -----|-----| -| `title` | `string` | First `

`{lang="html"} of the page | Title of the page (will also be injected in metas) | -| `description` | `string` | First `

`{lang="html"} of the page | Description of the page, will be added below the title and injected into the metas | -| `draft` | `Boolean` | `false` | Mark the page as draft (and only display it in development mode). You can also use the filename suffix `.draft`, example: `3.my-draft-page.draft.md` | -| `navigation` | `Boolean` | `true` | Define if the page is included in [`fetchContentNavigation`](/guide/displaying/navigation) return value. | +| Key | Type | Default | Description | +| ------------------------------------------- | --------- | ------------------------------------- | -------------------------------------------------------------------------------------------------------- | +| `title` | `string` | First `

`{lang="html"} of the page | Title of the page, will also be injected in metas | +| `description` | `string` | First `

`{lang="html"} of the page | Description of the page, will be shown below the title and injected into the metas | +| `draft` | `Boolean` | `false` | Mark the page as draft (and only display it in development mode). | +| `navigation` | `Boolean` | `true` | Define if the page is included in [`fetchContentNavigation`](/guide/displaying/navigation) return value. | +| [`head`](/api/composables/use-content-head) | `Object` | `true` | Easy access to [`useContentHead`](/api/composables/use-content-head) | + +When used together with [``](/guide/displaying/rendering#contentdoc-) or the [document-driven mode](/guide/writing/document-driven) to display the current page, the [`useContentHead() composable`](/api/composables/use-content-head) will be used to set the page's metadata. + + +## Excerpt + +Content excerpt or summary can be extracted from the content using `` as a divider. -When used together with [``](/guide/displaying/rendering#contentdoc-) to display the current page, you can use the following parameters: +```md +--- +title: Introduction +--- + +Learn how to use @nuxt/content. + +Full amount of content beyond the more divider. +``` + +Description property will contain the excerpt content unless defined within the Front Matter props. -| Key | Type | Default | Description | -|---------|--------| -----|-----| -| `head.title` | `String` | Generated `title` | Overrides the `` | -| `head.description` | `String` | Generated `description` | Overrides the `<meta name="description">` | -| `head.image` | `String` | | Overrides the `<meta property="og:image>` | +Example variables will be injected into the document: -You can set any head parameters inside the front-matter, read more in the [Head Management](https://v3.nuxtjs.org/guide/features/head-management) section of Nuxt 3. +```json +{ + "_id": "content:index.md" + "excerpt": Object + "body": Object + // ... other keys +} +``` ## Code Highlighting diff --git a/docs/content/3.guide/1.writing/3.mdc.md b/docs/content/3.guide/1.writing/3.mdc.md index 320c7c2ac..835cee602 100755 --- a/docs/content/3.guide/1.writing/3.mdc.md +++ b/docs/content/3.guide/1.writing/3.mdc.md @@ -3,12 +3,6 @@ title: 'MDC Syntax' description: MDC stands for MarkDown Components. This syntax supercharges regular Markdown to write documents interacting deeply with any Vue component from your components/content/ directory or provided by a module. --- -# MDC - -MDC stands for _**M**ark**D**own **C**omponents_. - -This syntax supercharges regular Markdown to write documents interacting deeply with any Vue component from your `components/content/` directory or provided by a module. - ::alert{type=info} Install the [MDC VS Code extension](https://marketplace.visualstudio.com/items?itemName=Nuxt.mdc) to get proper syntax highlighting for your MDC components. :: @@ -22,7 +16,7 @@ Any component in the `components/content/` directory or [made available globally The component must contain either: - A `<slot />`{lang="html"} to accept raw text or another component. -- The `<Markdown />`{lang="html"} component to accept formatted text. +- The `<ContentSlot />`{lang="html"} component to accept formatted text. In a markdown file, use the component with the **`::`** identifier. @@ -66,7 +60,7 @@ A component's slots can accept content or another components. <template> <section> <h1 class="text-4xl"><slot /></h1> - <slot name="description"> + <slot name="description"/> </section> </template> ``` @@ -113,7 +107,7 @@ You can add more `::::` when nesting components as a visual reminder. ### Markdown rendering -The `<Markdown />`{lang="html"} component is auto-imported by Nuxt Content. It acts as a special slot that accepts rich text rendered by Markdown. +The `<ContentSlot />`{lang="html"} component is auto-imported by Nuxt Content. It acts as a special slot that accepts rich text rendered by Markdown. The `unwrap` prop accepts an HTML tag that will be used to unwrap the content, useful when using tags such as title tags (`<h1>`{lang="html"}, `<h2>`{lang="html"}, ...) or inline tags (`<button>`{lang="html"}, `<a>`{lang="html"}, ...). @@ -121,7 +115,7 @@ The `unwrap` prop accepts an HTML tag that will be used to unwrap the content, u ```html [TheTitle.vue] <template> <h1 class="text-4xl"> - <Markdown unwrap="p" /> + <ContentSlot :use="$slots.default" unwrap="p" /> </h1> </template> ``` @@ -137,15 +131,15 @@ The `unwrap` prop accepts an HTML tag that will be used to unwrap the content, u :: :: -The `<Markdown />` component can act as a named slot with the `use` property: +The `<ContentSlot />` component can act as a named slot with the `use` property: ```html -<Markdown :use="$slots.description" unwrap="p"> +<ContentSlot :use="$slots.description" unwrap="p"> ``` ## Inline components -Inline components are components without slots or `<Markdown />`. +Inline components are components without slots or `<ContentSlot />`. They can be used with the `:` identifier. @@ -164,6 +158,14 @@ They can be used with the `:` identifier. ``` :: +If you want to use an inline component followed by specific characters like `-`, `_` or `:`, you can use a dummy props specifier after it. + +```md +:hello{}-world +``` + +In this example, `:hello{}` will search for the `<Hello />` component, and `-world` will be plain text. + ## Props There are two ways to pass props to components using MDC. @@ -181,9 +183,15 @@ The `{}` identifier passes props to components in a terse way by using a `key=va ``` ```html [Alert.vue] +<script setup> +defineProps(['type']) +</script> + +<template> <div :class="[type]"> - <Markdown unwrap="p" /> + <ContentSlot :use="$slots.default" unwrap="p" /> </div> +</template> ``` ::code-block{label="Preview" preview} @@ -285,15 +293,15 @@ Other than `span`s the attribute syntax will work on images, links, `code`, **bo ```md [Code] Attributes works on: - - ![](/icon.png){.inline.w-5.h-5.bg-primary-500} image, - - [link](#attributes){.bg-primary-400}, `code`{.text-red-500}, + - ![](/icon.png){.inline.w-5.h-5.bg-primary-500} image, + - [link](#attributes){.bg-primary-400}, `code`{.text-red-500}, - _italic_{.bg-primary-500} and **bold**{.bg-primary-500} texts. ``` - ::code-block{label="Preview" preview} - Attributes works on: - - ![](/icon.png){.inline.w-5.h-5.bg-primary-500} image, - - [link](#attributes){.bg-primary-400}, `code`{.text-red-500}, + ::code-block{label="Preview" preview} + Attributes works on: + - ![](/icon.png){.inline.w-5.h-5.bg-primary-500} image, + - [link](#attributes){.bg-primary-400}, `code`{.text-red-500}, - _italic_{.bg-primary-500} and **bold**{.bg-primary-500} texts. :: :: diff --git a/docs/content/3.guide/1.writing/4.json.md b/docs/content/3.guide/1.writing/4.json.md index 300704421..09fd31691 100644 --- a/docs/content/3.guide/1.writing/4.json.md +++ b/docs/content/3.guide/1.writing/4.json.md @@ -3,10 +3,6 @@ title: JSON description: 'Nuxt Content can query JSON formatted content.' --- -# JSON - -Nuxt Content can query JSON formatted content. - ::alert{type=info} If the document root is an object `{}`, the output contains all the document properties at its root. If the document root is an array `[]`, the output contains all the document properties in a `body` property. :: diff --git a/docs/content/3.guide/1.writing/5.yaml.md b/docs/content/3.guide/1.writing/5.yaml.md index eaf412334..f0c0d6a8b 100644 --- a/docs/content/3.guide/1.writing/5.yaml.md +++ b/docs/content/3.guide/1.writing/5.yaml.md @@ -3,10 +3,6 @@ title: YAML / YML description: 'Nuxt Content can query YAML / YML formatted content.' --- -# YAML / YML - -Nuxt Content can query YAML / YML formatted content. - ::alert{type=info} If the document root is based on key-value pairs, the output contains all the document properties at its root. If the document root is a list `-`, the output contains all the document properties in a `body` property. :: diff --git a/docs/content/3.guide/1.writing/6.csv.md b/docs/content/3.guide/1.writing/6.csv.md index 138259ab7..2270e60cc 100644 --- a/docs/content/3.guide/1.writing/6.csv.md +++ b/docs/content/3.guide/1.writing/6.csv.md @@ -3,9 +3,9 @@ title: CSV description: 'Nuxt Content can query CSV formatted content.' --- -# CSV - -Nuxt Content can query CSV formatted content. The `body` of the output is an array containing every row as objects. +::alert{type=info} +The `body` of the output is an array containing every row as objects. +:: ## Example @@ -18,7 +18,6 @@ Hello Content v2!,The writing experience for Nuxt 3,announcement ```js [Output] { - { _path: '/hello', _draft: false, _partial: false, @@ -36,7 +35,6 @@ Hello Content v2!,The writing experience for Nuxt 3,announcement _file: 'hello.csv', _extension: 'csv' } -} ``` :: diff --git a/docs/content/3.guide/1.writing/7.document-driven.md b/docs/content/3.guide/1.writing/7.document-driven.md new file mode 100644 index 000000000..12e3f9de3 --- /dev/null +++ b/docs/content/3.guide/1.writing/7.document-driven.md @@ -0,0 +1,240 @@ +--- +title: Document-driven +description: 'The Document-driven development mode gives a lot more power to Markdown-based websites.' +--- + +Document-driven development gives a lot more power to Markdown-based websites. + +This mode creates a direct binding between the `content/` directory and pages. + +It also offers `page`, `navigation`, `surround` and `globals` variables. + +::alert{type="info"} +This feature is currently available on the [edge channel](/guide/migration/edge-channel). +:: + +## Enable the mode + +### Existing project + +Add the [`documentDriven`](/api/configuration#documentdriven) option in the `nuxt.config`: + +```ts +import { defineNuxtConfig } from 'nuxt' + +export default defineNuxtConfig({ + modules: ['@nuxt/content'], + content: { + documentDriven: true + } +}) +``` + +### Fresh project + +Start with a fresh project with the document driven mode enabled: + +::code-group + ```bash [npx] + npx nuxi init doc-driven-app -t doc-driven + ``` + ```bash [pnpm] + pnpm dlx nuxi init doc-driven-app -t doc-driven + ``` +:: + +You can also use an object to configure the behavior of the mode, checkout the [configuration section](/api/configuration#documentdriven). + +## Catch-all page + +The document driven mode ships a pre-configured [catch-all route](https://v3.nuxtjs.org/guide/directory-structure/pages#catch-all-route). + +This [injected Vue page](https://github.com/nuxt/content/blob/main/src/runtime/pages/document-driven.vue) is useful for having a minimal project structure: + +``` +my-project/ + content/ + index.md + nuxt.config.ts + package.json + tsconfig.json +``` + +It comes with a direct binding between your page’s metadada to the OpenGraph tags using the [useContentHead() composable](/api/composables/use-content-head), providing effective SEO with no configuration. + +### Page slots + +That page comes with 2 slot components that you can replace at your project level. + +To do so, you only have to create a component with the same name in your project `components/` directory. + +- `<DocumentDrivenNotFound />`{lang=html} + +```html [components/DocumentDrivenNotFound.vue] +<template> + <h1>Page not found</h1> +</template> +``` + +- `<DocumentDrivenEmpty />`{lang=html} + +This component will be shown when there is no content for the current page, but the page exists. + +```html [components/DocumentDrivenEmpty.vue] +<template> + <h1>This page is empty</h1> +</template> +``` + +This component will be shown when no page has been found for the current URL. + +## Layout binding + +As the page data is available beforehand, the layout can be defined in the page front-matter: + +```md [content/blog/hello-world.md] +--- +layout: article +--- + +This page will use the article layout! +``` + +By default, it uses the `default` layout if none is specified. + +If you want to use another layout by default, use the `layoutFallbacks` option in the `nuxt.config`: + +```ts [nuxt.config.ts] +export default defineNuxtConfig({ + content: { + documentDriven: { + layoutFallbacks: ['theme'], + } + } +}) +``` + +This option will search for a `theme` key in `globals`, then search for a `layout` key inside that object. If found, that `layout` key will be used as a fallback. + +## Global variables + +Queries are be made from a [route middlewares](https://v3.nuxtjs.org/guide/directory-structure/middleware#middleware-directory) and are resolved before your page renders. + +This gives access to the [`useContent()`](/api/composables/use-document-driven) composable **anywhere in your app** with the following variables: +- `page` +- `surround` +- `navigation` +- `globals` + +```html +<script setup lang="ts"> +const { navigation, page, surround, globals } = useContent() + +console.log(page.value) +</script> +``` + +## Extend global variables + +This mode gives you a convenient way to access file data globally in your application. + +Use the `documentDriven.globals` key of in your `nuxt.config` to specify a query: + +```ts [nuxt.config.ts] +export default defineNuxtConfig({ + content: { + documentDriven: { + globals: { + theme: { + where: [ + { + _id: 'content:_theme.yml' + } + ], + without: ['_'] + } + } + } + } +}) +``` + +This configuration will search for a `_theme.yml` file in the `content/` directory. + +If found, a `theme` object will be accessible via `useContent().globals`: + +```ts +const { theme } = useContent().globals +``` + +Any changes to these files will be automatically reflected in the application during development. + +## Disable or control the page data + +Using special `documentDriven` meta in your pages, you can disable this feature for specific route or control it's behavior. + +### Disable document driven + +Setting `documentDriven` to `false` will disable document driven. This means that exposed refs from `useContent()` will be `undefined`. + +```html +<script setup lang="ts"> +definePageMeta({ + documentDriven: false +}) +</script> +``` + +### Control data + +To control document driven data you can pass an object to `documentDriven` meta key and enable/disable specific parts of it. + +```html +<script setup lang="ts"> +definePageMeta({ + documentDriven: { + page: true, // Keep page fetching enabled + surround: false // Disable surround fetching + } +}) +</script> +``` + +### Config content + +You can pass custom path/query to `page` and `surround` options to config documentDriven content. + +```html +<script setup lang="ts"> +definePageMeta({ + documentDriven: { + // Simple Path + page: '/foo', + // Rich Query + surround: { + _path: '/foo/bar' + } + } +}) +</script> +``` + +::alert +If you change `page` option and leave `surround` unset, `surround` option will use same config and `page`. +```html +<script setup lang="ts"> +definePageMeta({ + documentDriven: { + page: { + _path: '/foo/bar' + }, + // surround will use `{ _path: '/foo/bar' }` + } +}) +</script> +``` +:: + +## Example + +Jump into the [Document Driven Example](/examples/essentials/document-driven) to see a working example. diff --git a/docs/content/3.guide/2.displaying/1.rendering.md b/docs/content/3.guide/2.displaying/1.rendering.md index 9fa40040d..56509c814 100644 --- a/docs/content/3.guide/2.displaying/1.rendering.md +++ b/docs/content/3.guide/2.displaying/1.rendering.md @@ -3,8 +3,6 @@ title: 'Rendering' description: 'The <ContentDoc> and <ContentRenderer> components render the body of a Markdown document in a rich-text format.' --- -# Rendering Content - Nuxt Content provides 2 components to render Markdown content in a rich-text format, applying HTML tags ([Prose](/guide/writing/markdown)) and displaying Vue components ([MDC](/guide/writing/mdc)). - The `<ContentDoc>` component accepts an optional `path` prop to fetch the `content/` directory. diff --git a/docs/content/3.guide/2.displaying/2.querying.md b/docs/content/3.guide/2.displaying/2.querying.md index 79dc5249b..948cc33c1 100644 --- a/docs/content/3.guide/2.displaying/2.querying.md +++ b/docs/content/3.guide/2.displaying/2.querying.md @@ -1,11 +1,8 @@ --- title: 'Querying' -description: 'Any component or page of your application can fetch content from the content/ directory. The queryContent() function is auto-imported by Nuxt Content to build queries with a MongoDB-like syntax.' +description: 'Any component or page of your application can fetch content from the content/ directory.' --- -# Querying Content - -Any component or page of your application can fetch content from the `content/` directory. The `queryContent()`{lang="ts"} function is auto-imported by Nuxt Content to build queries with a MongoDB-like syntax. ## Usage @@ -150,6 +147,7 @@ The API root path `/api/_content/query` accepts query parameters such as: - `/api/_content/query?only=title` - `/api/_content/query?sort=size:1` - `/api/_content/query?without=body` +- `/api/_content/query?_params={"where":{"_path":"/hello"},"without":["body"]}` ### Example diff --git a/docs/content/3.guide/2.displaying/3.navigation.md b/docs/content/3.guide/2.displaying/3.navigation.md index 8d0986287..ad4926512 100644 --- a/docs/content/3.guide/2.displaying/3.navigation.md +++ b/docs/content/3.guide/2.displaying/3.navigation.md @@ -1,82 +1,195 @@ --- title: Navigation -description: 'The fetchContentNavigation utility returns a tree of items based on the content/ directory structure and files.' +description: 'Nuxt Content provides a component and composable to display a navigation based on the content/ directory structure and files.' --- -# Navigation +Based on the generated `_id` and `_path` keys, Nuxt Content generates a whole navigation structure for your content. -The `fetchContentNavigation()`{lang="ts"} utility returns a tree of items based on the `content/` directory structure and files. Use the `title`{lang="ts"} and `path`{lang="ts"} properties of each item to create your application's navigation. +It allows you to create advanced navigation components without having to maintain any querying logic related to it. -## Nested navigation +## Structure -You can pass a `queryContent()`{lang="ts"} instance to the `fetchContentNavigation()`{lang="ts"} utility to filter the items returned. +The navigation object can be seen as a tree representing in a JSON format the structure of your content sources. -That allows to create navigation objects for which the starting point is based on a specific content directory. +It is divided in two type of nodes, **pages** and **directories**. -```ts -const query = queryContent({ - where: { - _path: { $contains: '/your/navigation/starting/point' } +::code-group + +``` [Directory structure] +content/ + my-directory/ + page.md +``` + +```json [Directory node] +{ + "title": "My Directory", + "_path": "/my-directory", + "children": [ + ...pagesNodes + ] +} +``` + +```json [Page node] +{ + "title": "Page title", + "_path": "/my-directory/my-page", + "_id": "content:my-directory:page.md" +} +``` + +```json [Complete navigation] +[ + { + "title": "My Directory", + "_path": "/my-directory", + "children": [ + { + "title": "Page title", + "_path": "/my-directory/my-page", + "_id": "content:my-directory:page.md" + } + ] } -}) +] ``` -## Configuration +:: -Set `navigation: false` in the [front-matter](/guide/writing/markdown) of a page to exclude it in `fetchContentNavigation()` return value. +## Custom keys -```md +You can use the `navigation` property in the front-matter of your content files to add keys to the navigation object. + +::code-group +```md [index.md] --- -navigation: false +navigation: + title: 'Home' + icon: '🏡' --- + +# Welcome +``` + +```json [Navigation] +[ + { + "title": "Home", + "icon": "🏡", + "_path": "/", + } +] ``` +:: -## Example + +Alternatively, the navigation also allows you to configure directory nodes via `_dir.yml` files. + +It allows you to overwrite the `title` and custom properties to directory nodes in navigation. ::code-group -```Text [Directory structure] +``` [Directory structure] content/ - index.md - sub-folder - about.md + my-directory/ + _dir.yml + page.md +``` + +```yaml [_dir.yml] +title: 'My awesome directory' +navigation.icon: '📁' +``` + +```json [Navigation] +{ + "title": "My awesome directory", + "icon": "📁", + "_path": "/my-directory", + "children": [ + ... + ] +} ``` +:: + +If you want to use top-level keys in the front-matter to be included in the navigation object, use the [`content.navigation.fields`](/api/configuration#navigation) property in the `nuxt.config`: + +::code-group -```vue [app.vue] -<script setup> -const { data: navigation } = await useAsyncData('navigation', () => { - return fetchContentNavigation() +```ts [nuxt.config.ts] +defineNuxtConfig({ + content: { + navigation: { + fields: ['author', 'publishedAt'] + } + } }) -</script> +``` -<template> - <pre> - {{ navigation }} - </pre> -</template> +```md [page.md] +--- +title: My Page +author: 'Sébastien Chopin' +publishedAt: '15-06-2022' +--- +``` + +```json [Navigation node] +{ + "title": "My Page", + "author": "Sébastien Chopin", + "publishedAt": "15-06-2022", + "_path": "/page", + "_id": "content:page.md", +} ``` -```Text [Output] +:: + + +## Excluding + +Set `navigation: false` in the [front-matter](/guide/writing/markdown) of a page to filter it out. + +```md [page.md] +--- +navigation: false +--- +``` + +This pattern also works inside `_dir.yml` file, allowing you to filter out content directories and files. + +```yaml [_dir.yml] +navigation: false +``` + +You can also use the `_` content prefix to exclude content directories and files. + +::code-group + +``` [Directory structure] +content/ + _hidden-directory/ + page.md + index.md + not-hidden-directory/ + _dir.yml + index.md + page.md +``` + +```json [Navigation object] [ { - "title": "Hello Content V2", - "_path": "/", + "title": "Not Hidden Directory", + "_path": "/not-hidden-directory", "children": [ { - "_id": "content:index.md", - "title": "Hello Content V2", - "_path": "/" - } - ] - }, - { - "title": "Sub Directory", - "_path": "/sub-directory", - "children": [ - { - "_id": "content:sub-directory:about.md", - "title": "About Content V2", - "_path": "/sub-directory/about" + "title": "Page", + "_id": "content:not-hidden-directory:page.md", + "_path": "/not-hidden-directory/page" } ] } @@ -85,4 +198,26 @@ const { data: navigation } = await useAsyncData('navigation', () => { :: -:ReadMore{link="/examples/navigation/fetch-content-navigation"} + +## Nested navigation + +You can pass a `queryContent()`{lang="ts"} instance to the `fetchContentNavigation()`{lang="ts"} utility to filter the items returned. + +That allows to create navigation objects for which the starting point is based on a specific content directory. + +```ts +const query = queryContent({ + where: { + _path: { $contains: '/your/navigation/starting/point' } + } +}) +``` + +--- + +::alert +Go deeper in the **API** section: + +- [`fetchContentNavigation()`](/api/composables/fetch-content-navigation) composable to fetch navigation in `<script>` +- [`<ContentNavigation>`](/api/components/content-navigation) component made to shorten access to navigation in `<template>` +:: diff --git a/docs/content/3.guide/2.displaying/4.typescript.md b/docs/content/3.guide/2.displaying/4.typescript.md index 019f7aea9..e64167a18 100644 --- a/docs/content/3.guide/2.displaying/4.typescript.md +++ b/docs/content/3.guide/2.displaying/4.typescript.md @@ -1,11 +1,8 @@ --- title: TypeScript +description: 'Nuxt Content v2 is built with TypeScript in mind.' --- -# TypeScript usage - -Nuxt Content v2 is built with TypeScript in mind. - The module exposes typings properly from configuration to query builder. ## Usage @@ -39,6 +36,27 @@ const { data } = await useAsyncData( </script> ``` +## Markdown Specific Types + +If you know the content being fetched will be Markdown, then you can extend the `MarkdownParsedContent`{lang="ts"} type for improved +type-safety. + +```vue +<script setup lang="ts"> +import type { MarkdownParsedContent } from '@nuxt/content/dist/runtime/types' + +interface Article extends MarkdownParsedContent { + author: string +} +const { data } = await useAsyncData( + 'first-article', + () => queryContent<Article>('articles').findOne() +) +// data.value.author will be typed as well as markdown specific entries +</script> +``` + + ## The future TypeScript support is a strong focus for us. diff --git a/docs/content/3.guide/3.recipes/1.sitemap.md b/docs/content/3.guide/3.recipes/1.sitemap.md index c90dee553..8fb2fc0af 100644 --- a/docs/content/3.guide/3.recipes/1.sitemap.md +++ b/docs/content/3.guide/3.recipes/1.sitemap.md @@ -1,16 +1,21 @@ --- title: Sitemap +description: 'A sitemap file is useful for helping Google to better index your website, ensuring that the content you write can be visible on search results.' --- -# Sitemap Generation - -A sitemap file is useful for helping Google to better index your website, ensuring that the content you write can be visible on search results. - This can be created utilising the `sitemap` library, so you'll need to install that which can be done like so: -```bash -yarn add --dev sitemap -``` +::code-group + ```bash [yarn] + yarn add --dev sitemap + ``` + ```bash [npm] + npm install --save-dev sitemap + ``` + ```bash [pnpm] + pnpm add --save-dev sitemap + ``` +:: ## Server Route diff --git a/docs/content/3.guide/4.deploy/1.node-server.md b/docs/content/3.guide/4.deploy/1.node-server.md new file mode 100644 index 000000000..1713ca72e --- /dev/null +++ b/docs/content/3.guide/4.deploy/1.node-server.md @@ -0,0 +1,15 @@ +# Node Server + +Use the [`nuxi build` command](https://v3.nuxtjs.org//api/commands/build) to build your application. The JS files will be generated in the `.output` directory. + +```bash +npx nuxi build +``` + +Generated files are ready-to-run on Node environment. + +```bash +node .output/server/index.mjs +``` + +Read more about [Node Server deploy](https://v3.nuxtjs.org/guide/deploy/node-server) on Nuxt official docs. \ No newline at end of file diff --git a/docs/content/3.guide/4.deploy/2.static-hosting.md b/docs/content/3.guide/4.deploy/2.static-hosting.md new file mode 100644 index 000000000..008c34d19 --- /dev/null +++ b/docs/content/3.guide/4.deploy/2.static-hosting.md @@ -0,0 +1,33 @@ +# Static Hosting + +There are two ways to deploy a Content application to any static hosting services: + +- Static site generation (SSG) prerenders every route of your application at build time. For every page, Nuxt uses a crawler to generate a corresponding HTML file. +- Using `ssr: false` and `service-worker` preset to produce a pure client-side output. + + +## Prerendering + +Use the [`nuxi generate` command](https://v3.nuxtjs.org//api/commands/generate) to build your application. The HTML files will be generated in the `.output/public` directory. + +```bash +npx nuxi generate +``` + +## Client-side only rendering + +If you don't want to prerender your routes, another way of using static hosting is to set the `ssr` property to `false` and `nitro.preset` to `service-worker` in the `nuxt.config` file. The `nuxi build` command will then output an `index.html` entrypoint like a classic client-side Vue.js application. + +```ts [nuxt.config.ts|js] +defineNuxtConfig({ + ssr: false, + nitro: { + preset: 'service-worker' + } +}) +``` + +::alert{type=warning} +Nuxt Content highly depends on [Nuxt's server engine](https://v3.nuxtjs.org/guide/concepts/server-engine). The only way to have server engine in client only rendering is to use Service Workers. +:: + diff --git a/docs/content/3.guide/4.deploy/_dir.yml b/docs/content/3.guide/4.deploy/_dir.yml new file mode 100644 index 000000000..667e034cd --- /dev/null +++ b/docs/content/3.guide/4.deploy/_dir.yml @@ -0,0 +1 @@ +icon: heroicons-outline:book-open diff --git a/docs/content/3.guide/4.migration/1.from-v1.md b/docs/content/3.guide/5.migration/1.from-v1.md similarity index 96% rename from docs/content/3.guide/4.migration/1.from-v1.md rename to docs/content/3.guide/5.migration/1.from-v1.md index e12f641c2..102b7c5ed 100644 --- a/docs/content/3.guide/4.migration/1.from-v1.md +++ b/docs/content/3.guide/5.migration/1.from-v1.md @@ -3,8 +3,6 @@ title: 'From Content v1' description: 'Learn how to upgrade from Nuxt Content V1 to Nuxt Content V2 for Nuxt 3.' --- -# Migration from Content V1 - - Make sure your dev server (`nuxt dev`) isn't running and remove any package lock files (`package-lock.json` and `yarn.lock`) - Upgrade to Nuxt 3 (check out the [Nuxt 3 migration guide](https://v3.nuxtjs.org/getting-started/migration)) @@ -99,9 +97,9 @@ The `<ContentDoc>` component will fetch the document for the current route path ## Feature comparison -| Feature / Version | Convent v1 | Content v2 | +| Feature / Version | Content v1 | Content v2 | | ----------------- | :--------: | :--------: | -| Nuxt Version | `nuxt@2.x` | `nuxt@3.x` | +| Nuxt Version | `nuxt@2.x` | `nuxt@3.x` | | Supported files | `.md`, `.yaml`, `.yml`, `.csv`, `.json`, `.json5`, `.xml` | `.md`, `.yaml`, `.yml`, `.csv`, `.json`, `.json5` | | Full text search | ✅ | ❌ | | Reactive Composables | ❌ | ✅ | diff --git a/docs/content/3.guide/5.migration/2.edge-channel.md b/docs/content/3.guide/5.migration/2.edge-channel.md new file mode 100644 index 000000000..cfd86ad44 --- /dev/null +++ b/docs/content/3.guide/5.migration/2.edge-channel.md @@ -0,0 +1,44 @@ +--- +title: Edge Channel +description: Nuxt Content is landing commits, improvements, and bug fixes every day. You can opt-in to test them earlier before the next release. +--- + +After each commit is merged into the `main` branch of [nuxt/content](https://github.com/nuxt/content) and **passing all tests**, we trigger an automated npm release using Github Actions publishing a `@nuxt/content-edge` package. + +You can opt in to use this release channel and avoid waiting for the next release and helping the module by beta testing changes. + +The build and publishing method and quality of edge releases are the same as stable ones. The only difference is that you should often check the [GitHub repository](https://github.com/nuxt/content) for updates. There is a slight chance of regressions not being caught during the review process and by the automated tests. Therefore, we internally use this channel to double-check everything before each release. + +::alert +Features only available on the edge channel are marked with an alert in the documentation. +:: + +## Opting into the edge channel + +Update `@nuxt/content` dependency inside `package.json`: + +```diff [package.json] +{ + "devDependencies": { +-- "@nuxt/content": "^2.0.0" +++ "@nuxt/content": "npm:@nuxt/content-edge@latest" + } +} +``` + +Remove lockfile (`package-lock.json`, `yarn.lock`, or `pnpm-lock.yaml`) and reinstall dependencies. + +## Opting out from the edge channel + +Update `@nuxt/content` dependency inside `package.json`: + +```diff [package.json] +{ + "devDependencies": { +-- "@nuxt/content": "npm:@nuxt/content-edge@latest" +++ "@nuxt/content": "^2.0.0" + } +} +``` + +Remove lockfile (`package-lock.json`, `yarn.lock`, or `pnpm-lock.yaml`) and reinstall dependencies. diff --git a/docs/content/3.guide/4.migration/_dir.yml b/docs/content/3.guide/5.migration/_dir.yml similarity index 100% rename from docs/content/3.guide/4.migration/_dir.yml rename to docs/content/3.guide/5.migration/_dir.yml diff --git a/docs/content/4.api/1.components/1.content-doc.md b/docs/content/4.api/1.components/1.content-doc.md index a31ca5b5d..aa0c0dc25 100644 --- a/docs/content/4.api/1.components/1.content-doc.md +++ b/docs/content/4.api/1.components/1.content-doc.md @@ -3,8 +3,6 @@ title: '<ContentDoc>' description: 'The fastest way to query and display your content.' --- -# `<ContentDoc>` - The `<ContentDoc>`{lang=html} component fetches and renders a single document. An explicit path can be passed to the component with the `path`{lang=ts} prop. If not provided, the `$route.path`{lang=ts} will be used. @@ -25,7 +23,9 @@ It uses `<ContentRenderer>`{lang=html} and `<ContentQuery>`{lang=html} under the - `query`{lang=ts}: A query to be passed to `queryContent()`. - Type: `QueryBuilderParams`{lang=ts} - Default: `undefined`{lang=ts} - +- `head`{lang=ts}: Toggles the usage of [`useContentHead`](/api/composables/use-content-head). + - Type: `Boolean`{lang=ts} + - Default: `true`{lang=ts} ## Slots diff --git a/docs/content/4.api/1.components/2.content-list.md b/docs/content/4.api/1.components/2.content-list.md index 7fce565f0..a2dc8f729 100644 --- a/docs/content/4.api/1.components/2.content-list.md +++ b/docs/content/4.api/1.components/2.content-list.md @@ -3,8 +3,6 @@ title: '<ContentList>' description: 'The fastest way to query and display your content.' --- -# `<ContentList>` - The `<ContentList>`{lang=html} component fetches a list of documents and allows you to render them by using `slots`. The fetching path defaults to the content root (`/`). diff --git a/docs/content/4.api/1.components/2.content-renderer.md b/docs/content/4.api/1.components/2.content-renderer.md index fbad81d66..9cf3f8fba 100644 --- a/docs/content/4.api/1.components/2.content-renderer.md +++ b/docs/content/4.api/1.components/2.content-renderer.md @@ -3,11 +3,9 @@ title: '<ContentRenderer>' description: 'Takes your component from an AST to a wonderful template.' --- -# `<ContentRenderer>` - The `<ContentRenderer>`{lang=html} component renders a document coming from a query. -It will use `<MarkdownRenderer>`{lang=html} component to render `.md` file types. +It will use `<ContentRendererMarkdown>`{lang=html} component to render `.md` file types. Other types will currently be passed to default slot via `v-slot="{ data }"` or be rendered inside `<pre />` tag. @@ -22,6 +20,9 @@ Other types will currently be passed to default slot via `v-slot="{ data }"` or - `excerpt`{lang=ts}: Whether or not to render the excerpt. - Type: `Boolean`{lang=ts} - Default: `false`{lang=ts} +- `components`{lang=ts}: The map of custom components to use for rendering. This prop will pass to markdown renderer and will not affect other file types. + - Type: `Object`{lang=ts} + - Default: `{}`{lang=ts} ## Slots @@ -36,7 +37,7 @@ const { data } = await useAsyncData('page-data', () => queryContent('/hello').fi <main> <ContentRenderer :value="data"> <h1>{{ data.title }}</h1> - <MarkdownRenderer :value="data" /> + <ContentRendererMarkdown :value="data" /> </ContentRenderer> </main> </template> @@ -59,3 +60,26 @@ const { data } = await useAsyncData('page-data', () => queryContent('/hello').fi </main> </template> ``` + +::alert +Note that when you use default slot and `<ContentRendererMarkdown>` in your template you need to pass `components` to `<ContentRendererMarkdown>`. + +```html [pages/[...slug].vue] +<script setup lang="ts"> +const { data } = await useAsyncData('page-data', () => queryContent('/hello').findOne()) + +const components = { + p: 'CustomParagraph' +} +</script> + +<template> + <main> + <ContentRenderer :value="data"> + <h1>{{ data.title }}</h1> + <ContentRendererMarkdown :value="data" :components="components" /> + </ContentRenderer> + </main> +</template> +``` +:: \ No newline at end of file diff --git a/docs/content/4.api/1.components/3.content-navigation.md b/docs/content/4.api/1.components/3.content-navigation.md index 1e47d1763..917ffc699 100644 --- a/docs/content/4.api/1.components/3.content-navigation.md +++ b/docs/content/4.api/1.components/3.content-navigation.md @@ -3,19 +3,17 @@ title: '<ContentNavigation>' description: 'Building complex navigation from your content has never been easier.' --- -# `<ContentNavigation>` - -The `<ContentNavigation>`{lang=html} is a renderless component shortening the access to navigation. +The `<ContentNavigation>`{lang=html} is a renderless component shortening the access to [the navigation](/guide/displaying/navigation). ## Props - `query`{lang=ts}: A query to be passed to `fetchContentNavigation()`. - - Type: `QueryBuilderParams`{lang=ts} + - Type: `QueryBuilderParams | QueryBuilder`{lang=ts} - Default: `undefined`{lang=ts} ## Slots -The `default`{lang=ts} slot can be used to render the content via `v-slot="{ data }"`{lang=html} syntax. +The `default`{lang=ts} slot can be used to render the content with `v-slot="{ navigation }"`{lang=html} syntax. ```html [components/Navbar.vue] <template> @@ -29,17 +27,34 @@ The `default`{lang=ts} slot can be used to render the content via `v-slot="{ dat </template> ``` -The `empty`{lang=ts} slot can be used to display a default content before rendering the document. +## Query + +By providing the `query` prop you can customise the content used for navigation. + +Here we pass along a `QueryBuilder` instance. + +```vue +<script setup> +const catsQuery = queryContent('cats') +/* +// If you'd prefer to pass along raw `QueryBuilderParams`: +const catsQuery = { + where: [ + { _path: /^\/cats/ }, + ], +} +*/ +</script> -```html [components/Navbar.vue] <template> - <nav> - <ContentNavigation v-slot="{ navigation }"> - <!-- ...default slot --> - <template #empty> - <p>No navigation found.</p> - </template> - </ContentNavigation> - </nav> +<ContentNavigation v-slot="{ navigation }" :query="catsQuery"> + <NuxtLink + v-for="link of navigation" + :key="link._path" + :to="link._path" + > + {{ link.navTitle || link.title }} + </NuxtLink> +</ContentNavigation> </template> ``` diff --git a/docs/content/4.api/1.components/4.content-query.md b/docs/content/4.api/1.components/4.content-query.md index f8c53aff1..92dcc2faa 100644 --- a/docs/content/4.api/1.components/4.content-query.md +++ b/docs/content/4.api/1.components/4.content-query.md @@ -3,8 +3,6 @@ title: '<ContentQuery>' description: 'The fastest way to query and display your content.' --- -# `<ContentQuery>` - The `<ContentQuery>`{lang=html} component fetches a document and gives access to it via a scoped slot. ## Props diff --git a/docs/content/4.api/1.components/5.markdown.md b/docs/content/4.api/1.components/5.markdown.md index 363a1f476..2a9a6768d 100644 --- a/docs/content/4.api/1.components/5.markdown.md +++ b/docs/content/4.api/1.components/5.markdown.md @@ -3,7 +3,9 @@ title: '<Markdown>' description: 'The fastest way to inject Markdown into your Vue components.' --- -# `<Markdown>` +::alert{type=danger} +**NOTE**: As of Content@2.1.0 this component is deprecated and replaced by [`<ContentSlot>`](./content-slot). +:: The `<Markdown>`{lang=html} component makes it easier to use Markdown syntax in your Vue components. @@ -11,10 +13,9 @@ It is useful when creating components that you want to use in your Markdown cont ## Props -- `use`{lang=ts}: The slot to bind on, you must provide a `use`{lang=ts} via `$slots.{your_slot}`{lang=ts} in `<template>`{lang=html}. - - Type: `String`{lang=ts} or `Function` +- `use`{lang=ts}: The slot to bind on, you must provide a `use`{lang=ts} via `$slots.{your_slot}`{lang=ts} in `<template>`{lang=html}. + - Type: Vue slot `Function` - Example: `$slots.default`{lang=ts} - - *Warning*: Using a plain string won't let you profit from reactivity for that component. - `unwrap`{lang=ts}: Whether to unwrap the content or not. This is useful when you want to extract the content nested in native Markdown syntax. Each specified tag will get removed from AST. - Type: `Boolean`{lang=ts} or `String`{lang=ts} - Default: `false`{lang=ts} @@ -33,8 +34,3 @@ It is useful when creating components that you want to use in your Markdown cont That text paragraph will be unwrapped. :: ``` - - - - - diff --git a/docs/content/4.api/1.components/6.content-slot.md b/docs/content/4.api/1.components/6.content-slot.md new file mode 100644 index 000000000..aa209611f --- /dev/null +++ b/docs/content/4.api/1.components/6.content-slot.md @@ -0,0 +1,32 @@ +--- +title: '<ContentSlot>' +description: 'The fastest way to inject Markdown into your Vue components.' +--- + +The `<ContentSlot>`{lang=html} component makes it easier to use Markdown syntax in your Vue components. + +It is useful when creating components that you want to use in your Markdown content. + +## Props + +- `use`{lang=ts}: The slot to bind on, you must provide a `use`{lang=ts} via `$slots.{your_slot}`{lang=ts} in `<template>`{lang=html}. + - Type: Vue slot `Function` + - Example: `$slots.default`{lang=ts} +- `unwrap`{lang=ts}: Whether to unwrap the content or not. This is useful when you want to extract the content nested in native Markdown syntax. Each specified tag will get removed from AST. + - Type: `Boolean`{lang=ts} or `String`{lang=ts} + - Default: `false`{lang=ts} + - Example: `'ul li'`{lang=ts} + +## Example + +```html [components/FancyHeader.vue] +<template> + <h2 class="fancy-header"><ContentSlot :use="$slots.default" unwrap="p" /></h2> +</template> +``` + +```md [content/index.md] +::fancy-header +That text paragraph will be unwrapped. +:: +``` diff --git a/docs/content/4.api/1.components/6.prose.md b/docs/content/4.api/1.components/7.prose.md similarity index 85% rename from docs/content/4.api/1.components/6.prose.md rename to docs/content/4.api/1.components/7.prose.md index d62541f8d..3fb127d28 100755 --- a/docs/content/4.api/1.components/6.prose.md +++ b/docs/content/4.api/1.components/7.prose.md @@ -3,10 +3,10 @@ title: 'Prose Components' description: 'A list of Prose components currently implemented.' --- -# Prose - Here is a list of all the Prose components currently implemented. +To overwrite a prose component, create a component with the same name in your project `components/content/` directory (ex: `components/content/ProseA.vue`) + ## `ProseA` [:icon{name="fa-brands:github" class="inline -mt-1 w-6"} Source](https://github.com/nuxt/content/tree/main/src/runtime/components/Prose/ProseA.vue) @@ -54,17 +54,19 @@ Here is a list of all the Prose components currently implemented. ``` ::code-block{label="Preview"} - + ```javascript export default () => { console.log('Code block') } ``` - + :: :: +Check out [highlight options](/api/configuration#highlight) for more about the syntax highlighting. + ## `ProseCodeInline` [:icon{name="fa-brands:github" class="inline -mt-1 w-6"} Source](https://github.com/nuxt/content/tree/main/src/runtime/components/Prose/ProseCodeInline.vue) @@ -135,6 +137,45 @@ Here is a list of all the Prose components currently implemented. :: +## `ProseH4` + +[:icon{name="fa-brands:github" class="inline -mt-1 w-6"} Source](https://github.com/nuxt/content/tree/main/src/runtime/components/Prose/ProseH4.vue) + +::code-group + ```markdown [Code] + ## H4 Heading + ``` + ::code-block{label="Preview"} + ## H4 Heading + :: +:: + +## `ProseH5` + +[:icon{name="fa-brands:github" class="inline -mt-1 w-6"} Source](https://github.com/nuxt/content/tree/main/src/runtime/components/Prose/ProseH5.vue) + +::code-group + ```markdown [Code] + ## H5 Heading + ``` + ::code-block{label="Preview"} + ## H5 Heading + :: +:: + +## `ProseH6` + +[:icon{name="fa-brands:github" class="inline -mt-1 w-6"} Source](https://github.com/nuxt/content/tree/main/src/runtime/components/Prose/ProseH6.vue) + +::code-group + ```markdown [Code] + ## H6 Heading + ``` + ::code-block{label="Preview"} + ## H6 Heading + :: +:: + ## `ProseHr` [:icon{name="fa-brands:github" class="inline -mt-1 w-6"} Source](https://github.com/nuxt/content/tree/main/src/runtime/components/Prose/ProseHr.vue) @@ -233,9 +274,9 @@ Here is a list of all the Prose components currently implemented. :: -## `ProseParagraph` +## `ProseP` -[:icon{name="fa-brands:github" class="inline -mt-1 w-6"} Source](https://github.com/nuxt/content/tree/main/src/runtime/components/Prose/ProseParagraph.vue) +[:icon{name="fa-brands:github" class="inline -mt-1 w-6"} Source](https://github.com/nuxt/content/tree/main/src/runtime/components/Prose/ProseP.vue) ::code-group diff --git a/docs/content/4.api/2.composables/1.query-content.md b/docs/content/4.api/2.composables/1.query-content.md index b967c599e..81f6b26aa 100644 --- a/docs/content/4.api/2.composables/1.query-content.md +++ b/docs/content/4.api/2.composables/1.query-content.md @@ -3,10 +3,6 @@ title: 'queryContent()' description: 'The queryContent composable provides methods for querying and fetching your contents.' --- -# `queryContent()` - -The `queryContent()` composable provides methods for querying and fetching your contents. - Create a query builder to search contents. ```ts @@ -68,12 +64,12 @@ const articles = await queryContent('articles') // Sort by title ascending first then sort by category descending const articles = await queryContent('articles') - .sort({ title: 1, category: 0 }) + .sort({ title: 1, category: -1 }) .find() // OR const articles = await queryContent('articles') .sort({ title: 1 }) - .sort({ category: 0 }) + .sort({ category: -1 }) .find() // Sort by nested field diff --git a/docs/content/4.api/2.composables/2.fetch-content-navigation.md b/docs/content/4.api/2.composables/2.fetch-content-navigation.md index a0e12a9b6..be8c35df9 100644 --- a/docs/content/4.api/2.composables/2.fetch-content-navigation.md +++ b/docs/content/4.api/2.composables/2.fetch-content-navigation.md @@ -3,9 +3,57 @@ title: 'fetchContentNavigation()' description: 'The fetchContentNavigation utility returns a tree of items based on the content/ directory structure and files.' --- -# `fetchContentNavigation()` +## Usage -The `fetchContentNavigation()` utility returns a tree of items based on the content/ directory structure and files. +::code-group + +```Text [Directory structure] +content/ + index.md + sub-folder + about.md +``` + +```vue [app.vue] +<script setup> +const { data: navigation } = await useAsyncData('navigation', () => fetchContentNavigation()) +</script> + +<template> + <pre>{{ navigation }}</pre> +</template> +``` + +```json [Output] +[ + { + "title": "Hello Content V2", + "_path": "/", + "children": [ + { + "title": "Hello Content V2", + "_id": "content:index.md", + "_path": "/" + } + ] + }, + { + "title": "Sub Folder", + "_path": "/sub-folder", + "children": [ + { + "title": "About Content V2", + "_id": "content:sub-folder:about.md", + "_path": "/sub-folder/about" + } + ] + } +] +``` + +:: + +:ReadMore{link="/examples/navigation/fetch-content-navigation"} ## Arguments @@ -14,4 +62,3 @@ The `fetchContentNavigation()` utility returns a tree of items based on the cont - Definition: Any query built via `queryContent()`{lang=ts} - Default: `/`{lang=ts} - :ReadMore{link="/examples/navigation/fetch-content-navigation"} diff --git a/docs/content/4.api/2.composables/3.unwrap.md b/docs/content/4.api/2.composables/3.unwrap.md index 4ad42fa26..c95722fad 100644 --- a/docs/content/4.api/2.composables/3.unwrap.md +++ b/docs/content/4.api/2.composables/3.unwrap.md @@ -2,8 +2,4 @@ title: 'useUnwrap()' --- -# useUnwrap - -`useUnwrap()`{lang=ts} can be used to access unwrap features from any component. - -It can be used to achieve a similar behavior as `unwrap`{lang=ts} prop from `<Markdown>`{lang=html} component. +It can be used to achieve a similar behavior as `unwrap`{lang=ts} prop from `<ContentSlot>`{lang=html} component. diff --git a/docs/content/4.api/2.composables/4.use-document-driven.md b/docs/content/4.api/2.composables/4.use-document-driven.md new file mode 100644 index 000000000..4e19619b5 --- /dev/null +++ b/docs/content/4.api/2.composables/4.use-document-driven.md @@ -0,0 +1,84 @@ +--- +title: useContent() +--- + +::alert{type="warning"} +This composable will only be enabled if you toggle the [Document-driven](/guide/writing/document-driven) feature! +:: + +## Usage + +`useContent()`{lang="ts"} is available everywhere in your app and gives access to a list of refs based on your content. + +```ts +<script setup lang="ts"> +const { + // Global references + globals, + navigation, + surround, + page, + // Computed properties from `page` key + excerpt, + toc, + type, + layout, + // Computed properties from `surround` key + next, + prev +} = useContent() +</script> +``` + +## Examples + +### Rendering the page + +Rendering the current page becomes a bliss with this composable: + +```vue [pages/[...slug].vue] +<script setup lang="ts"> +const { page } = useContent() +</script> + +<template> + <ContentRenderer :key="page._id" :value="page"> +</template> +``` + +### Creating a previous/next page component + +```vue [PagePrevNext.vue] +<script setup lang="ts"> +const { prev, next } = useContent() +</script> + +<template> + <div> + <NuxtLink v-if="prev" :to="prev._path">{{ prev.title }}</NuxtLink> + <NuxtLink v-if="next" :to="next._path">{{ next.title }}</NuxtLink> + </div> +</template> +``` + +### Creating a Table of Contents component + +```vue [PageToc.vue] +<script setup lang="ts"> +const { toc } = useContent() +</script> + +<template> + <div> + <ul v-if="toc && toc.links"> + <li v-for="link in toc.links" :key="link.text"> + <a + :href="`#${link.id}`" + > + {{ link.text }} + </a> + </li> + </ul> + </div> +</template> +``` diff --git a/docs/content/4.api/2.composables/5.use-content-helpers.md b/docs/content/4.api/2.composables/5.use-content-helpers.md new file mode 100644 index 000000000..7a59fb66b --- /dev/null +++ b/docs/content/4.api/2.composables/5.use-content-helpers.md @@ -0,0 +1,80 @@ +--- +title: useContentHelpers() +--- + +## Usage + +`useContentHelpers()`{lang="ts"} is available everywhere in your app and gives access to helpers to interact with the navigation object. + +```ts +<script setup lang="ts"> +const { + navBottomLink, + navDirFromPath, + navPageFromPath, + navKeyFromPath +} = useContentHelpers() +</script> +``` + +### `navBottomLink()` + +This function will take a navigation node and will resolve the first available path from that node. + +It can be useful to build nested navigations systems. + +**Example:** + +```ts +const { navigation } = useContent() + +const path = navBottomLink(navigation.value) +``` + +### `navDirFromPath()` + +This function will take a path and will resolve the first available navigation node from that path. + +It can be useful to find the current directory of a navigation node. + +**Example:** + +```ts +const route = useRoute() + +const { navigation } = useContent() + +const dir = navDirFromPath(route.path, navigation.value) +``` + +### `navPageFromPath()` + +This function will take a path and will resolve the first available navigation page from that path. + +It can be useful to find the current navigation node the page you're browsing. + +**Example:** + +```ts +const route = useRoute() + +const { navigation } = useContent() + +const page = navPageFromPath(route.path, navigation.value) +``` + +### `navKeyFromPath()` + +This function will take a path and will resolve a specific key from that path. + +It can be useful when you want to add a fallback on the `_dir.yml` value of a key in a page. + +**Example:** + +```ts +const route = useRoute() + +const { navigation } = useContent() + +const layout = navKeyFromPath(route.path, 'layout', navigation.value) +``` diff --git a/docs/content/4.api/2.composables/6.use-content-head.md b/docs/content/4.api/2.composables/6.use-content-head.md new file mode 100644 index 000000000..220de935f --- /dev/null +++ b/docs/content/4.api/2.composables/6.use-content-head.md @@ -0,0 +1,82 @@ +--- +title: 'useContentHead()' +description: 'Configuring your <head> tag from your content has never been easier!' +--- + +`useContentHead()`{lang="ts"} is a composable providing a binding between your content data and [`useHead`](https://v3.nuxtjs.org/guide/features/head-management). + +It is already implemented for you in both [`<ContentDoc />`](/api/components/content-doc) component and the default [`documentDriven`](https://content.nuxtjs.org/guide/writing/document-driven) page. + +## Parameters + +These parameters can be used from the [Front-Matter](/guide/writing/markdown#front-matter) section of your pages. + +| Key | Type | Default | Description | +| ------------------ | ------------------ | -------------------- | ----------------------------------------------------------------------------------- | +| `head` | `Object` | | A [useHead](https://v3.nuxtjs.org/guide/features/head-management) compatible object | +| `title` | `String` | | Will be used as the default value for `head.title` | +| `head.title` | `String` | Parsed `title` | Sets the `<title>` tag | +| `description` | `String` | | Will be used as the default value for `head.description` | +| `head.description` | `String` | Parsed `description` | Sets the `<meta name="description">` tag | +| `image` | `String \| Object` | | Will be used as the default value for `head.image` | +| `image.src` | `String` | | The source of the image | +| `image.alt` | `String` | | The alt description of the image | +| `image.xxx` | `String` | | Any [`og:image:xxx` compatible](https://ogp.me/#structured) attribute | +| `head.image` | `String \| Object` | | Overrides the `<meta property="og:image">` | + +At the exception of `title`, `description` and `image`, the `head` object behaves exactly the same in [Front-Matter](/guide/writing/markdown#front-matter) as it would in [`useHead({ ... })`](https://v3.nuxtjs.org/guide/features/head-management) composable. + +You can specify any value that is writeable in `yaml` format. + +```md [example-usage.md] +--- +title: 'My Page Title' +description: 'What a lovely page.' +image: + src: '/assets/image.jpg' + alt: 'An image showcasing My Page.' + width: 400 + height: 300 +head: + meta: + - name: 'keywords' + content: 'nuxt, vue, content' + - name: 'robots' + content: 'index, follow' + - name: 'author' + content: 'NuxtLabs' + - name: 'copyright' + content: '© 2022 NuxtLabs' +--- +``` + +## Usage + +`useContentHead()`{lang="ts"} is available everywhere in your app where `useHead` would be. + +It takes two arguments: + +- `document`: A document data (of any type) + +- `to`: A route path + - Default: `useRoute()`{lang=ts} + +::code-group + + ```vue [with documentDriven] + <script setup lang="ts"> + const { page } = useContent() + + useContentHead(page) + </script> + ``` + + ```vue [with queryContent] + <script setup lang="ts"> + const { data: page } = await useAsyncData('my-page', queryContent('/').findOne) + + useContentHead(page) + </script> + ``` + +:: diff --git a/docs/content/4.api/3.configuration.md b/docs/content/4.api/3.configuration.md index b3ee3dbae..0157173c8 100644 --- a/docs/content/4.api/3.configuration.md +++ b/docs/content/4.api/3.configuration.md @@ -4,10 +4,6 @@ description: 'You can configure Nuxt Content with the content property in your n icon: heroicons-outline:adjustments --- -# Configuration - -You can configure Nuxt Content with the content property in your `nuxt.config.ts` file. - ```ts [nuxt.config.ts] export default defineNuxtConfig({ content: { @@ -16,8 +12,6 @@ export default defineNuxtConfig({ }) ``` -Before diving into the individual attributes, have a [look at the default settings][default-settings] of the module. - ## `base` - Type: `String`{lang=ts} @@ -35,18 +29,44 @@ export default defineNuxtConfig({ ## `watch` -- Type: `Boolean`{lang=ts} -- Default: `true`{lang=ts} +- Type: `Object | false`{lang=ts} +- Default: `{ port: 4000, showUrl: true }`{lang=ts} -Disable content watcher and hot content reload. Watcher is a development feature and will not includes in the production. +Disable content watcher and hot content reload. -```ts [nuxt.config.ts] -export default defineNuxtConfig({ - content: { - watch: true - } -}) -``` +The watcher is a development feature and will not be included in production. + +::code-group + + ```ts [Enabled] + export default defineNuxtConfig({ + content: { + watch: { + ws: { + port: 4000, + showUrl: true + } + } + } + }) + ``` + + ```ts [Disabled] + export default defineNuxtConfig({ + content: { + watch: false + } + }) + ``` + +:: + +### `ws` options + +| Option | Default | Description | +| --------- | :-----: | :--------------------------------------------- | +| `port` | `4000` | Select the port used for the WebSocket server. | +| `showUrl` | `false` | Toggle URL display in dev server boot message. | ## `sources` @@ -54,20 +74,20 @@ export default defineNuxtConfig({ - Default: `['content']`{lang=ts} Define different sources for contents. + Contents can located in multiple places, in multiple directories or in remote git repositories. ```ts [nuxt.config.ts] export default defineNuxtConfig({ content: { sources: [ - 'content' + 'content', { name: 'fa-ir', prefix: '/fa', // All contents inside this source will be prefixed with `/fa` driver: 'fs', - driverOptions: { - base: resolve(__dirname, 'content-fa') // Path for source directory - } + // ...driverOptions + base: resolve(__dirname, 'content-fa') // Path for source directory } ] } @@ -93,63 +113,41 @@ export default defineNuxtConfig({ ## `markdown` -This module uses [remark][remark] and [rehype][rehype] under the hood to compile markdown files into JSON AST that will be stored into the body variable. - -> The following explanation is valid for both `remarkPlugins` and `rehypePlugins` +This module uses [remark](https://github.com/remarkjs/remark) and [rehype](https://github.com/remarkjs/remark-rehype) under the hood to compile markdown files into JSON AST that will be stored into the body variable. -To configure how the module will parse Markdown, you can: - -- Add a new plugin to the defaults: +To configure how the module will parse Markdown, you can use `markdown.remarkPlugins` and `markdown.rehypePlugins` in your `nuxt.config.ts` file: ```ts [nuxt.config.ts] export default defineNuxtConfig({ content: { markdown: { - remarkPlugins: ['remark-emoji'] - } - } -}) -``` -- Override the default plugins: + // Object syntax can be used to override default options + remarkPlugins: { + // Override remark-emoji options + 'remark-emoji': { + emoticon: true + }, -```ts [nuxt.config.ts] -export default defineNuxtConfig({ - content: { - markdown: { - remarkPlugins: () => ['remark-emoji'] - } - } -}) -``` + // Disable remark-gfm + 'remark-gfm': false, -- Use local plugins: + // Add remark-oembed + 'remark-oembed': { + // Options + } + }, -```ts [nuxt.config.ts] -export default defineNuxtConfig({ - content: { - markdown: { - remarkPlugins: [ - '~/plugins/my-custom-remark-plugin.js' + // Array syntax can be used to add plugins + rehypePlugins: [ + 'rehype-figure' ] } } }) ``` -- Provide options directly in the definition: - -```ts [nuxt.config.ts] -export default defineNuxtConfig({ - content: { - markdown: { - remarkPlugins: [ - ['remark-emoji', { emoticon: true }] - ] - } - } -}) -``` +> [Here](https://github.com/nuxt/content/tree/main/src/runtime/markdown-parser/index.ts#L23) is a list of plugins @nuxt/content is using by default. > When adding a new plugin, make sure to install it in your dependencies. @@ -202,10 +200,58 @@ Nuxt Content uses [Shiki](https://github.com/shikijs/shiki) to provide syntax hi ### `highlight` options -| Option | Default | Description | -| ----------------- | :--------: | :-------- | -| `theme` | `ShikiTheme` | The [color theme](https://github.com/shikijs/shiki/blob/main/docs/themes.md) to use | -| `preload` | `ShikiLang[]` | The [preloaded languages](https://github.com/shikijs/shiki/blob/main/docs/languages.md) available for highlighting. | +| Option | Type | Description | +| --------- | :------------------------------------------: | :------------------------------------------------------------------------------------------------------------------ | +| `theme` | `ShikiTheme` or `Record<string, ShikiTheme>` | The [color theme](https://github.com/shikijs/shiki/blob/main/docs/themes.md) to use. | +| `preload` | `ShikiLang[]` | The [preloaded languages](https://github.com/shikijs/shiki/blob/main/docs/languages.md) available for highlighting. | + +#### `highlight.theme` + +Theme can be specified by a single string but also supports an object with multiple themes. + +This option is compatible with [Color Mode module](https://color-mode.nuxtjs.org/). + +If you are using multiple themes, it's recommended to always have a `default` theme specified. + +```ts +export default defineNuxtConfig({ + content: { + highlight: { + // Theme used in all color schemes. + theme: 'github-light' + // OR + theme: { + // Default theme (same as single string) + default: 'github-light', + // Theme used if `html.dark` + dark: 'github-dark', + // Theme used if `html.sepia` + sepia: 'monokai' + } + } + } +}) +``` + +### `highlight.preload` + +By default, module preloads couple of languages for syntax highlighter: `['diff', 'json', 'js', 'ts', 'css', 'shell', 'html', 'md', 'yaml']`{lang=ts} + +If you plan to use code samples of other languages you need to define the language in this options. + +```ts +export default defineNuxtConfig({ + content: { + highlight: { + preload: [ + 'c', + 'cpp', + 'java' + ] + } + } +}) +``` ## `yaml` @@ -216,10 +262,18 @@ Options for yaml parser. ## `navigation` -- Type: `Boolean`{lang=ts} +- Type: `false or Object`{lang=ts} - Default: `true`{lang=ts} -Enable/Disable content navigation. +Configure the navigation feature. + +Can be set to `false` to disable the feature completely. + +### `navigation` options + +| Option | Type | Description | +| -------- | :--------: | :----------------------------------------------------------------- | +| `fields` | `string[]` | A list of fields to inherit from front-matter to navigation nodes. | ## `locales` @@ -235,7 +289,46 @@ List of locale codes. This codes will be used to detect contents locale. Default locale for top level contents. Module will use first locale code from `locales` array if this option is not defined. -[default-settings]: #defaults +## `documentDriven` + +- Type: `Boolean | Object`{lang=ts} +- Default: `false`{lang=ts} + +Toggles the document-driven mode. + +`false`{lang="ts"} will disable the feature completely. + +`true`{lang="ts"} will enable the feature with these defaults: + +```ts [Document-driven defaults] +{ + // Will fetch navigation, page and surround. + navigation: true, + page: true, + surround: true, + // Will fetch `content/_theme.yml` and put it in `globals.theme` if present. + globals: { + theme: { + where: { + _id: 'content:_theme.yml' + }, + without: ['_'] + } + }, + // Will use `theme` global to search for a fallback `layout` key. + layoutFallbacks: ['theme'], + // Will inject `[...slug].vue` as the root page. + injectPage: true +} +``` + +### `documentDriven` options -[remark]: https://github.com/remarkjs/remark -[rehype]: https://github.com/rehypejs/rehype +| Option | Type | Description | +| ----------------- | :-----------------: | :------------------------------------------------------------- | +| `page` | `Boolean` | Enables the page binding, making it globally accessible. | +| `navigation` | `Boolean` | Enables the navigation binding, making it globally accessible. | +| `surround` | `Boolean` | Enables the surround binding, making it globally accessible. | +| `globals` | `Object \| Boolean` | A list of globals to be made available globally. | +| `layoutFallbacks` | `string[]` | A list of `globals` key to use to find a layout fallback. | +| `injectPage` | `boolean` | Inject `[...slug].vue` pre-configured page | diff --git a/docs/content/4.api/4.advanced.md b/docs/content/4.api/4.advanced.md index 54406a53b..c28f546a1 100644 --- a/docs/content/4.api/4.advanced.md +++ b/docs/content/4.api/4.advanced.md @@ -8,7 +8,7 @@ icon: heroicons-outline:lightning-bolt The module adds some hooks you can use: -`content:file:*` hooks are available in nitro runtime, in order to use them you need to create custom [nitro plugin](https://nitro.unjs.io/guide/plugins.html). +`content:file:*` hooks are available in nitro runtime, in order to use them you need to create a custom [nitro plugin](https://nitro.unjs.io/guide/plugins.html). - Create a plugin in the `server/plugins/` directory @@ -76,4 +76,73 @@ export default defineNitroPlugin((nitroApp) => { }) }) -``` \ No newline at end of file +``` + +## Transformers + +Transformers are responsible for parsing and manipulating contents in the content module. +Internally, the module has specific transformers for each content type to parse the raw content and prepare it for querying and rendering. + +You can create custom transformers to support new content types or improve functionalities of supported content types. + +1. Create your transformer. A transformer consists of 4 parts: + - `name`: Transformer name + - `extensions`: List of valid file extensions + - `parse`: If provided this function will be used to parsed the raw content + - `transform`: Received that parsed content and manipulate the content. + +```ts [my-transformer.ts] +// filename: my-transformer.ts +import { defineTransformer } from '@nuxt/content/transformers' + +export default defineTransformer({ + name: 'my-transformer', + extensions: ['.names'], + parse (_id, rawContent) { + return { + _id, + body: rawContent.trim().split('\n').map(line => line.trim()).sort() + } + } +}) + +``` + +2. Define simple module to register transformer + +```ts [my-module.mjs] +// filename: my-module.mjs +import { resolve } from 'path' +import { defineNuxtModule } from '@nuxt/kit' + +export default defineNuxtModule({ + setup (_options, nuxt) { + nuxt.options.nitro.externals = nuxt.options.nitro.externals || {} + nuxt.options.nitro.externals.inline = nuxt.options.nitro.externals.inline || [] + nuxt.options.nitro.externals.inline.push(resolve('./my-module')) + // @ts-ignore + nuxt.hook('content:context', (contentContext) => { + contentContext.transformers.push(resolve('./my-module/my-transformer.ts')) + }) + } +}) + +``` + +3. Register your module + +```ts [nuxt.config.ts] +// filename: my-module.mjs +import { resolve } from 'path' +import { defineNuxtConfig } from '@nuxt/kit' +import MyModule from './my-module' + +export default defineNuxtConfig({ + modules: [ + MyModule, + '@nuxt/content' + ] +}) +``` + +That's it. You can create `.names` files in content directory. Checkout transformer example. \ No newline at end of file diff --git a/docs/content/5.examples/1.essentials/1.hello-world.md b/docs/content/5.examples/1.essentials/1.hello-world.md index 3e98c44f8..2cff6ea23 100644 --- a/docs/content/5.examples/1.essentials/1.hello-world.md +++ b/docs/content/5.examples/1.essentials/1.hello-world.md @@ -1,9 +1,12 @@ --- toc: false +title: 'Hello World' +description: 'Minimal example of using Nuxt Content V2' +head.title: 'Hello world | Examples' --- -# Hello world +::ReadMore{link="/get-started"} +:: -:ReadMore{link="/get-started"} - -:sandbox{repo="nuxt/content" branch="main" dir="examples/essentials/hello-world" file="app.vue"} +::sandbox{repo="nuxt/content" branch="main" dir="examples/essentials/hello-world" file="app.vue"} +:: diff --git a/docs/content/5.examples/1.essentials/2.document-driven.md b/docs/content/5.examples/1.essentials/2.document-driven.md new file mode 100644 index 000000000..42280ad6b --- /dev/null +++ b/docs/content/5.examples/1.essentials/2.document-driven.md @@ -0,0 +1,11 @@ +--- +toc: false +title: 'Document Driven' +description: 'Discover the document-driven mode of Nuxt Content in a live example.' +--- + +::ReadMore{link="/guide/writing/document-driven"} +:: + +::sandbox{repo="nuxt/content" branch="main" dir="examples/essentials/document-driven" file="index.md"} +:: diff --git a/docs/content/5.examples/2.mdc/1.inline-component.md b/docs/content/5.examples/2.mdc/1.inline-component.md deleted file mode 100644 index dfcc09ff6..000000000 --- a/docs/content/5.examples/2.mdc/1.inline-component.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -toc: false ---- - -# Inline component - -Inline components are components that don't contain any slot. - -After creating them in the `components/` directory, declare them in your markdown files with the `:` MDC syntax. - -:ReadMore{link="/guide/writing/mdc#inline-components"} - -:sandbox{repo="nuxt/content" branch="main" dir="examples/mdc/inline-component" file="content/index.md"} diff --git a/docs/content/5.examples/2.mdc/2.nested-components.md b/docs/content/5.examples/2.mdc/2.nested-components.md deleted file mode 100644 index 5d56f3268..000000000 --- a/docs/content/5.examples/2.mdc/2.nested-components.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -toc: false ---- - -# Nested components - -The MDC syntax allow you to nest components within a parent slot using indentation and the `::` syntax. - -The `components/AppNested.vue` component uses the `<Markdown>` component as markdown-rendering slot. - -:ReadMore{link="/guide/writing/mdc#nesting"} - -:sandbox{repo="nuxt/content" branch="main" dir="examples/mdc/nested-components" file="content/index.md"} diff --git a/docs/content/5.examples/2.mdc/3.props.md b/docs/content/5.examples/2.mdc/3.props.md deleted file mode 100644 index 3b7c11fb2..000000000 --- a/docs/content/5.examples/2.mdc/3.props.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -toc: false ---- - -# Props - -Pass props to your components in Markdown files using the `{}` MDC syntax. - -:ReadMore{link="/guide/writing/mdc#props"} - -:sandbox{repo="nuxt/content" branch="main" dir="examples/mdc/props" file="content/index.md"} diff --git a/docs/content/5.examples/2.mdc/4.slots.md b/docs/content/5.examples/2.mdc/4.slots.md deleted file mode 100644 index 6cc9f1531..000000000 --- a/docs/content/5.examples/2.mdc/4.slots.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -toc: false ---- - -# Slots - -You can fill a component's default slot by inserting content between `::`. - -Use the `#` MDC syntax to fill a named slot inside a component. - -:ReadMore{link="/guide/writing/mdc#slots"} - -:sandbox{repo="nuxt/content" branch="main" dir="examples/mdc/slots" file="content/index.md"} diff --git a/docs/content/5.examples/3.mdc/1.inline-components.md b/docs/content/5.examples/3.mdc/1.inline-components.md new file mode 100644 index 000000000..261f70b28 --- /dev/null +++ b/docs/content/5.examples/3.mdc/1.inline-components.md @@ -0,0 +1,13 @@ +--- +toc: false +title: 'Inline components' +description: 'Inline components are components that can be used inside paragraphs.' +--- + +After creating them in the `components/` directory, declare them in your markdown files with the `:` MDC syntax. + +::ReadMore{link="/guide/writing/mdc#inline-components"} +:: + +::sandbox{repo="nuxt/content" branch="main" dir="examples/mdc/inline-component" file="content/index.md"} +:: diff --git a/docs/content/5.examples/3.mdc/2.nested-components.md b/docs/content/5.examples/3.mdc/2.nested-components.md new file mode 100644 index 000000000..b949544cf --- /dev/null +++ b/docs/content/5.examples/3.mdc/2.nested-components.md @@ -0,0 +1,12 @@ +--- +toc: false +title: 'Nested components' +description: 'The MDC syntax allow you to nest components within a parent slot using indentation and the :: syntax.' +--- + +The `components/AppNested.vue` component uses the `<ContentSlot>` component as markdown-rendering slot. + +::ReadMore{link="/guide/writing/mdc#nesting"} + +::sandbox{repo="nuxt/content" branch="main" dir="examples/mdc/nested-components" file="content/index.md"} +:: diff --git a/docs/content/5.examples/3.mdc/3.props.md b/docs/content/5.examples/3.mdc/3.props.md new file mode 100644 index 000000000..794852303 --- /dev/null +++ b/docs/content/5.examples/3.mdc/3.props.md @@ -0,0 +1,11 @@ +--- +toc: false +title: 'Props' +description: 'Pass props to your components in Markdown files using the {} MDC syntax.' +--- + +::ReadMore{link="/guide/writing/mdc#props"} +:: + +::sandbox{repo="nuxt/content" branch="main" dir="examples/mdc/props" file="content/index.md"} +:: diff --git a/docs/content/5.examples/3.mdc/4.slots.md b/docs/content/5.examples/3.mdc/4.slots.md new file mode 100644 index 000000000..e7ca76022 --- /dev/null +++ b/docs/content/5.examples/3.mdc/4.slots.md @@ -0,0 +1,13 @@ +--- +toc: false +title: 'Slots' +description: "You can fill a component's default slot by inserting content between ::" +--- + +Use the `#` MDC syntax to fill a named slot inside a component. + +::ReadMore{link="/guide/writing/mdc#slots"} +:: + +::sandbox{repo="nuxt/content" branch="main" dir="examples/mdc/slots" file="content/index.md"} +:: diff --git a/docs/content/5.examples/2.mdc/_dir.yml b/docs/content/5.examples/3.mdc/_dir.yml similarity index 100% rename from docs/content/5.examples/2.mdc/_dir.yml rename to docs/content/5.examples/3.mdc/_dir.yml diff --git a/docs/content/5.examples/3.queries/1.where.md b/docs/content/5.examples/3.queries/1.where.md deleted file mode 100644 index 5e2c2b112..000000000 --- a/docs/content/5.examples/3.queries/1.where.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -toc: false ---- - -# Where - -:ReadMore{link="/api/composables/query-content#wherequery"} - -:sandbox{repo="nuxt/content" branch="main" dir="examples/queries/where" file="pages/app.vue"} diff --git a/docs/content/5.examples/3.queries/2.only.md b/docs/content/5.examples/3.queries/2.only.md deleted file mode 100644 index 4440033e2..000000000 --- a/docs/content/5.examples/3.queries/2.only.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -toc: false ---- - -# Only - -:ReadMore{link="/api/composables/query-content#onlykeys"} - -:sandbox{repo="nuxt/content" branch="main" dir="examples/queries/only" file="app.vue"} diff --git a/docs/content/5.examples/3.queries/3.without.md b/docs/content/5.examples/3.queries/3.without.md deleted file mode 100644 index 39c3f6ad0..000000000 --- a/docs/content/5.examples/3.queries/3.without.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -toc: false ---- - -# Without - -:ReadMore{link="/api/composables/query-content#withoutkeys"} - -:sandbox{repo="nuxt/content" branch="main" dir="examples/queries/without" file="app.vue"} diff --git a/docs/content/5.examples/3.queries/4.skip-limit.md b/docs/content/5.examples/3.queries/4.skip-limit.md deleted file mode 100644 index 86854efef..000000000 --- a/docs/content/5.examples/3.queries/4.skip-limit.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -toc: false ---- - -# Skip / Limit - -:ReadMore{link="/api/composables/query-content#skipcount"} -:ReadMore{link="/api/composables/query-content#limitcount"} - -:sandbox{repo="nuxt/content" branch="main" dir="examples/queries/skip-limit" file="app.vue"} diff --git a/docs/content/5.examples/4.navigation/1.fetch-content-navigation.md b/docs/content/5.examples/4.navigation/1.fetch-content-navigation.md deleted file mode 100644 index 2512f004c..000000000 --- a/docs/content/5.examples/4.navigation/1.fetch-content-navigation.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -toc: false ---- - -# fetchContentNavigation - -:ReadMore{link="/guide/displaying/navigation"} - -:sandbox{repo="nuxt/content" branch="main" dir="examples/navigation/fetch-content-navigation" file="app.vue"} diff --git a/docs/content/5.examples/4.navigation/2.use-route.md b/docs/content/5.examples/4.navigation/2.use-route.md deleted file mode 100644 index e734230bb..000000000 --- a/docs/content/5.examples/4.navigation/2.use-route.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -toc: false ---- - -# useRoute - -Use the `where()` method alongside the `useRoute()` composable to query content based on the current route. - -:ReadMore{link="/guide/displaying/querying"} - -:sandbox{repo="nuxt/content" branch="main" dir="examples/navigation/use-route" file="pages/[...slug].vue"} diff --git a/docs/content/5.examples/4.queries/1.where.md b/docs/content/5.examples/4.queries/1.where.md new file mode 100644 index 000000000..d7d2f57ca --- /dev/null +++ b/docs/content/5.examples/4.queries/1.where.md @@ -0,0 +1,12 @@ +--- +toc: false +title: 'Where Queries' +navigation.title: 'Where' +description: 'Example of using the where() method of queryContent()' +--- + +::ReadMore{link="/api/composables/query-content#wherequery"} +:: + +::sandbox{repo="nuxt/content" branch="main" dir="examples/queries/where" file="pages/app.vue"} +:: diff --git a/docs/content/5.examples/4.queries/2.only.md b/docs/content/5.examples/4.queries/2.only.md new file mode 100644 index 000000000..e30f2cc08 --- /dev/null +++ b/docs/content/5.examples/4.queries/2.only.md @@ -0,0 +1,12 @@ +--- +toc: false +title: 'Only Queries' +navigation.title: 'Only' +description: 'Example of using the only() method of queryContent()' +--- + +::ReadMore{link="/api/composables/query-content#onlykeys"} +:: + +::sandbox{repo="nuxt/content" branch="main" dir="examples/queries/only" file="app.vue"} +:: diff --git a/docs/content/5.examples/4.queries/3.without.md b/docs/content/5.examples/4.queries/3.without.md new file mode 100644 index 000000000..72db41c99 --- /dev/null +++ b/docs/content/5.examples/4.queries/3.without.md @@ -0,0 +1,12 @@ +--- +toc: false +title: 'Without Queries' +navigation.title: 'Without' +description: 'Example of using the without() method of queryContent()' +--- + +::ReadMore{link="/api/composables/query-content#withoutkeys"} +:: + +::sandbox{repo="nuxt/content" branch="main" dir="examples/queries/without" file="app.vue"} +:: diff --git a/docs/content/5.examples/4.queries/4.skip-limit.md b/docs/content/5.examples/4.queries/4.skip-limit.md new file mode 100644 index 000000000..06110663f --- /dev/null +++ b/docs/content/5.examples/4.queries/4.skip-limit.md @@ -0,0 +1,15 @@ +--- +toc: false +title: 'Skip & Limit Queries' +navigation.title: 'Skip & Limit' +description: 'Example of using the skip() and limit() methods of queryContent()' +--- + +::ReadMore{link="/api/composables/query-content#skipcount"} +:: + +::ReadMore{link="/api/composables/query-content#limitcount"} +:: + +::sandbox{repo="nuxt/content" branch="main" dir="examples/queries/skip-limit" file="app.vue"} +:: diff --git a/docs/content/5.examples/3.queries/_dir.yml b/docs/content/5.examples/4.queries/_dir.yml similarity index 100% rename from docs/content/5.examples/3.queries/_dir.yml rename to docs/content/5.examples/4.queries/_dir.yml diff --git a/docs/content/5.examples/5.navigation/1.fetch-content-navigation.md b/docs/content/5.examples/5.navigation/1.fetch-content-navigation.md new file mode 100644 index 000000000..8b7f44da1 --- /dev/null +++ b/docs/content/5.examples/5.navigation/1.fetch-content-navigation.md @@ -0,0 +1,11 @@ +--- +toc: false +title: 'fetchContentNavigation' +description: 'Example of using the fetchContentNavigation() composable' +--- + +::ReadMore{link="/guide/displaying/navigation"} +:: + +::sandbox{repo="nuxt/content" branch="main" dir="examples/navigation/fetch-content-navigation" file="app.vue"} +:: diff --git a/docs/content/5.examples/5.navigation/2.use-route.md b/docs/content/5.examples/5.navigation/2.use-route.md new file mode 100644 index 000000000..0673140d5 --- /dev/null +++ b/docs/content/5.examples/5.navigation/2.use-route.md @@ -0,0 +1,11 @@ +--- +toc: false +title: 'useRoute' +description: 'Use the `where()` method alongside the `useRoute()` composable to query content based on the current route.' +--- + +::ReadMore{link="/guide/displaying/querying"} +:: + +::sandbox{repo="nuxt/content" branch="main" dir="examples/navigation/use-route" file="pages/[...slug].vue"} +:: diff --git a/docs/content/5.examples/4.navigation/_dir.yml b/docs/content/5.examples/5.navigation/_dir.yml similarity index 100% rename from docs/content/5.examples/4.navigation/_dir.yml rename to docs/content/5.examples/5.navigation/_dir.yml diff --git a/docs/content/5.examples/5.templates/1.content-wind.md b/docs/content/5.examples/5.templates/1.content-wind.md deleted file mode 100644 index 552186ab7..000000000 --- a/docs/content/5.examples/5.templates/1.content-wind.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -toc: false ---- - -# Content Wind - -A lightweight Nuxt template to write a Markdown driven website, based on [Nuxt Content](https://content.nuxtjs.org), [TailwindCSS](https://tailwindcss.com) and [Iconify](https://iconify.design). - -- Repository: [Atinux/content-wind](https://github.com/Atinux/content-wind) -- Live demo: https://content-wind.nuxt.dev - -It leverages the [`<ContentDoc>`](/api/components/content-doc) and [`<ContentNavigation>`](/api/components/content-navigation) components to display the current Markdown page and generated navigation. - -:sandbox{repo="Atinux/content-wind" branch="main" file="app.vue"} diff --git a/docs/content/5.examples/6.templates/1.content-wind.md b/docs/content/5.examples/6.templates/1.content-wind.md new file mode 100644 index 000000000..839e69ef9 --- /dev/null +++ b/docs/content/5.examples/6.templates/1.content-wind.md @@ -0,0 +1,12 @@ +--- +toc: false +title: 'Content Wind' +description: 'A lightweight Nuxt template to write a Markdown driven website with TailwindCSS and Iconify.' +--- + +It leverages the [`document driven mode`](/guide/writing/document-driven) to display the current Markdown page and the generated navigation. + +- Repository: [Atinux/content-wind](https://github.com/Atinux/content-wind) +- Live demo: https://content-wind.nuxt.dev + +:sandbox{repo="Atinux/content-wind" branch="main" file="app.vue"} diff --git a/docs/content/5.examples/5.templates/_dir.yml b/docs/content/5.examples/6.templates/_dir.yml similarity index 100% rename from docs/content/5.examples/5.templates/_dir.yml rename to docs/content/5.examples/6.templates/_dir.yml diff --git a/docs/content/6.blog/announcing-v2.md b/docs/content/6.blog/1.announcing-v2.md similarity index 98% rename from docs/content/6.blog/announcing-v2.md rename to docs/content/6.blog/1.announcing-v2.md index c779d97e4..35e369f0e 100644 --- a/docs/content/6.blog/announcing-v2.md +++ b/docs/content/6.blog/1.announcing-v2.md @@ -1,5 +1,6 @@ --- -layout: blogpost +layout: page +constrainedClass: 'max-w-4xl' navigation: false title: 'Announcing Nuxt Content v2' description: '2 years after the release of Content v1, we are proud to announce the second version of Nuxt Content built for Nuxt 3.' @@ -25,6 +26,9 @@ tags: category: Announcements --- +::article-hero +:: + 2 years after the [release of Content v1](https://github.com/nuxt/content/releases/tag/v1.0.0), we are proud to announce the second version of Nuxt Content built for [Nuxt 3](https://v3.nuxtjs.org). On top of the Nuxt 3 support, it comes with new features: @@ -205,7 +209,7 @@ MDC is Markdown, so nothing changes and you can keep using the `.md` extension. <template> <button :class="type"> - <Markdown unwrap="p" /> + <ContentSlot :use="$slots.default" unwrap="p" /> </button> </template> ``` diff --git a/docs/content/7.changelog.md b/docs/content/7.changelog.md index 9a6a557f0..8ff4b2fdc 100644 --- a/docs/content/7.changelog.md +++ b/docs/content/7.changelog.md @@ -1,12 +1,9 @@ --- -layout: page +aside: false +toc: false icon: heroicons-outline:newspaper +description: Discover the latest Nuxt Content updates. --- -# Changelog - -Discover the latest Nuxt Content updates. - -:hr - -:releases +::releases +:: diff --git a/docs/content/8.playground.md b/docs/content/8.playground.md index f244a58a9..ab19f8779 100644 --- a/docs/content/8.playground.md +++ b/docs/content/8.playground.md @@ -1,5 +1,6 @@ --- -layout: fluid +layout: page +fluid: true icon: file-icons:sandbox --- diff --git a/docs/content/9.content-v1.md b/docs/content/9.content-v1.md index fe242c68a..fbd2f34d2 100644 --- a/docs/content/9.content-v1.md +++ b/docs/content/9.content-v1.md @@ -1,6 +1,7 @@ --- title: V1 Documentation -layout: fluid +layout: page +fluid: true --- diff --git a/docs/content/_theme.yml b/docs/content/_theme.yml deleted file mode 100644 index 97a66d656..000000000 --- a/docs/content/_theme.yml +++ /dev/null @@ -1,38 +0,0 @@ -title: "Nuxt Content" -description: Write pages in markdown, use Vue components and enjoy the power of Nuxt with a blazing fast developer experience. -layout: docs -url: "https://content.nuxtjs.org" -debug: false -socials: - twitter: "@nuxt_js" - github: "nuxt/content" -github: - root: docs/content - edit: true - releases: true -cover: - src: /cover.jpg - alt: "Content made easy for Vue developers" -aside: - level: 1 - filter: - - /v1 - - /content-v1 - - /fr - - /ja - - /ru -header: - title: false - logo: true -footer: - credits: - icon: IconDocus - text: Powered by Docus - href: https://docus.com - icons: - - label: NuxtJS - href: https://nuxtjs.org - component: IconNuxt - - label: Vue Telescope - href: https://vuetelescope.com - component: IconVueTelescope diff --git a/docs/editor/Editor.vue b/docs/editor/Editor.vue index c3d22c758..3384d0c26 100644 --- a/docs/editor/Editor.vue +++ b/docs/editor/Editor.vue @@ -1,5 +1,5 @@ <template> - <Monaco :value="raw" :language="language" :read-only="readOnly" @change="update" /> + <Monaco :value="readOnly? modelValue : raw" :language="language" :read-only="readOnly" @change="update" /> </template> <script setup lang="ts"> diff --git a/docs/layouts/blogpost.vue b/docs/layouts/blogpost.vue deleted file mode 100644 index afe78e327..000000000 --- a/docs/layouts/blogpost.vue +++ /dev/null @@ -1,20 +0,0 @@ -<script setup lang="ts"> -// eslint-disable-next-line import/named -import { useDocus } from '#imports' - -const { page } = useDocus() -</script> - -<template> - <div id="docus-page" class="flex min-h-screen w-full flex-col"> - <Navbar /> - - <ArticleHero :page="page" /> - - <div class="px-4 sm:px-6 mx-auto max-w-full lg:max-w-7xl h-full pb-6"> - <NuxtPage /> - </div> - - <Footer /> - </div> -</template> diff --git a/docs/nuxt.config.ts b/docs/nuxt.config.ts index 98e83c7c7..189cc3feb 100755 --- a/docs/nuxt.config.ts +++ b/docs/nuxt.config.ts @@ -1,7 +1,6 @@ import { resolve } from 'pathe' import { defineNuxtConfig } from 'nuxt' import consola from 'consola' -import colors from 'tailwindcss/colors.js' const alias = {} @@ -11,6 +10,18 @@ if (process.env.NODE_ENV === 'development') { } export default defineNuxtConfig({ + alias, + app: { + head: { + script: [ + { + defer: true, + 'data-domain': 'content.nuxtjs.org', + src: 'https://plausible.io/js/script.js' + } + ] + } + }, content: { sources: [ { @@ -42,43 +53,22 @@ export default defineNuxtConfig({ preload: ['xml'] } }, - generate: { - routes: [] + nitro: { + prerender: { + routes: [ + '/', + '/blog/announcing-v2' + ] + } }, - modules: ['@nuxthq/admin', '@docus/github', 'vue-plausible'], - alias, - extends: [ - (process.env.DOCUS_THEME_PATH || './node_modules/@docus/docs-theme') - ], + modules: ['@nuxtlabs/github-module'], + extends: process.env.DOCUS_THEME_PATH || '@nuxt-themes/docus', github: { owner: 'nuxt', repo: 'content', branch: 'main' }, - vite: { - define: { - 'process.env.FORCE_COLOR': {}, - 'process.env.NODE_DISABLE_COLORS': {}, - 'process.env.NO_COLOR': {}, - 'process.env.FORCE_TERM': {} - } - }, - plausible: { - domain: 'content.nuxtjs.org' - }, - tailwindcss: { - config: { - theme: { - extend: { - colors: { - primary: colors.emerald - } - } - } - } - }, colorMode: { preference: 'dark' - }, - theme: {} + } }) diff --git a/docs/package.json b/docs/package.json index 163f0e79c..05cef3d5e 100755 --- a/docs/package.json +++ b/docs/package.json @@ -9,15 +9,15 @@ "generate": "nuxi generate" }, "devDependencies": { - "@docus/docs-theme": "npm:@docus/docs-theme-edge@latest", - "@docus/github": "npm:@docus/github-edge@latest", - "monaco-editor-core": "^0.33.0", - "nuxt": "^3.0.0-rc.3", - "vue-plausible": "^1.3.1" + "@nuxt-themes/docus": "npm:@nuxt-themes/docus-edge@latest", + "@nuxtlabs/github-module": "npm:@nuxtlabs/github-module-edge@latest", + "monaco-editor-core": "^0.34.0", + "nuxt": "^3.0.0-rc.9", + "vue-plausible": "^1.3.2" }, "dependencies": { "@typescript/ata": "^0.9.3", - "emmet-monaco-es": "^5.1.0", - "xterm": "^4.18.0" + "emmet-monaco-es": "^5.1.2", + "xterm": "^4.19.0" } } diff --git a/docs/public/_redirects b/docs/public/_redirects index fb7db461b..3277f1414 100644 --- a/docs/public/_redirects +++ b/docs/public/_redirects @@ -8,7 +8,6 @@ /:locale/fetching /:locale/v1/getting-started/fetching 302! /displaying /v1/getting-started/displaying 302! /:locale/displaying /:locale/v1/getting-started/displaying 302! -/:locale/configuration /:locale/v1/getting-started/configuration 302! /examples/basic /v1/examples/basic 302! /:locale/examples/basic /:locale/v1/examples/basic 302! /examples/tailwindcss-typography /v1/examples/tailwindcss-typography 302! diff --git a/docs/tokens.config.ts b/docs/tokens.config.ts new file mode 100644 index 000000000..aec5b0b70 --- /dev/null +++ b/docs/tokens.config.ts @@ -0,0 +1,18 @@ +import { defineTokens } from '@nuxtjs/design-tokens' + +export default defineTokens({ + colors: { + primary: { + 50: { value: '#ecfdf5' }, + 100: { value: '#d1fae5' }, + 200: { value: '#a7f3d0' }, + 300: { value: '#6ee7b7' }, + 400: { value: '#34d399' }, + 500: { value: '#10b981' }, + 600: { value: '#059669' }, + 700: { value: '#047857' }, + 800: { value: '#065f46' }, + 900: { value: '#064e3b' } + } + } +}) diff --git a/docs/yarn.lock b/docs/yarn.lock index f7f60ee98..bf9ba3987 100644 --- a/docs/yarn.lock +++ b/docs/yarn.lock @@ -10,195 +10,205 @@ "@jridgewell/gen-mapping" "^0.1.0" "@jridgewell/trace-mapping" "^0.3.9" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.7.tgz#44416b6bd7624b998f5b1af5d470856c40138789" - integrity sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg== +"@antfu/utils@^0.5.2": + version "0.5.2" + resolved "https://registry.yarnpkg.com/@antfu/utils/-/utils-0.5.2.tgz#8c2d931ff927be0ebe740169874a3d4004ab414b" + integrity sha512-CQkeV+oJxUazwjlHD0/3ZD08QWKuGQkhnrKo3e6ly5pd48VUpXbb77q0xMU4+vc2CkJnDS02Eq/M9ugyX20XZA== + +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" + integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== dependencies: - "@babel/highlight" "^7.16.7" + "@babel/highlight" "^7.18.6" -"@babel/compat-data@^7.17.10": - version "7.17.10" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.17.10.tgz#711dc726a492dfc8be8220028b1b92482362baab" - integrity sha512-GZt/TCsG70Ms19gfZO1tM4CVnXsPgEPBCpJu+Qz3L0LUDsY5nZqFZglIoPC1kIYOtNBZlrnFT+klg12vFGZXrw== +"@babel/compat-data@^7.19.0": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.19.0.tgz#2a592fd89bacb1fcde68de31bee4f2f2dacb0e86" + integrity sha512-y5rqgTTPTmaF5e2nVhOxw+Ur9HDJLsWb6U/KpgUzRZEdPfE6VOubXBKLdbcUTijzRptednSBDQbYZBOSqJxpJw== -"@babel/core@^7.17.7", "@babel/core@^7.17.9": - version "7.18.2" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.18.2.tgz#87b2fcd7cce9becaa7f5acebdc4f09f3dd19d876" - integrity sha512-A8pri1YJiC5UnkdrWcmfZTJTV85b4UXTAfImGmCfYmax4TR9Cw8sDS0MOk++Gp2mE/BefVJ5nwy5yzqNJbP/DQ== +"@babel/core@^7.18.13": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.19.0.tgz#d2f5f4f2033c00de8096be3c9f45772563e150c3" + integrity sha512-reM4+U7B9ss148rh2n1Qs9ASS+w94irYXga7c2jaQv9RVzpS7Mv1a9rnYYwuDa45G+DkORt9g6An2k/V4d9LbQ== dependencies: "@ampproject/remapping" "^2.1.0" - "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.18.2" - "@babel/helper-compilation-targets" "^7.18.2" - "@babel/helper-module-transforms" "^7.18.0" - "@babel/helpers" "^7.18.2" - "@babel/parser" "^7.18.0" - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.18.2" - "@babel/types" "^7.18.2" + "@babel/code-frame" "^7.18.6" + "@babel/generator" "^7.19.0" + "@babel/helper-compilation-targets" "^7.19.0" + "@babel/helper-module-transforms" "^7.19.0" + "@babel/helpers" "^7.19.0" + "@babel/parser" "^7.19.0" + "@babel/template" "^7.18.10" + "@babel/traverse" "^7.19.0" + "@babel/types" "^7.19.0" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" json5 "^2.2.1" semver "^6.3.0" -"@babel/generator@^7.18.2": - version "7.18.2" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.18.2.tgz#33873d6f89b21efe2da63fe554460f3df1c5880d" - integrity sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw== +"@babel/generator@^7.19.0": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.19.0.tgz#785596c06425e59334df2ccee63ab166b738419a" + integrity sha512-S1ahxf1gZ2dpoiFgA+ohK9DIpz50bJ0CWs7Zlzb54Z4sG8qmdIrGrVqmy1sAtTVRb+9CU6U8VqT9L0Zj7hxHVg== dependencies: - "@babel/types" "^7.18.2" - "@jridgewell/gen-mapping" "^0.3.0" + "@babel/types" "^7.19.0" + "@jridgewell/gen-mapping" "^0.3.2" jsesc "^2.5.1" -"@babel/helper-annotate-as-pure@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz#bb2339a7534a9c128e3102024c60760a3a7f3862" - integrity sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw== +"@babel/helper-annotate-as-pure@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz#eaa49f6f80d5a33f9a5dd2276e6d6e451be0a6bb" + integrity sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA== dependencies: - "@babel/types" "^7.16.7" + "@babel/types" "^7.18.6" -"@babel/helper-compilation-targets@^7.18.2": - version "7.18.2" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.2.tgz#67a85a10cbd5fc7f1457fec2e7f45441dc6c754b" - integrity sha512-s1jnPotJS9uQnzFtiZVBUxe67CuBa679oWFHpxYYnTpRL/1ffhyX44R9uYiXoa/pLXcY9H2moJta0iaanlk/rQ== +"@babel/helper-compilation-targets@^7.19.0": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.0.tgz#537ec8339d53e806ed422f1e06c8f17d55b96bb0" + integrity sha512-Ai5bNWXIvwDvWM7njqsG3feMlL9hCVQsPYXodsZyLwshYkZVJt59Gftau4VrE8S9IT9asd2uSP1hG6wCNw+sXA== dependencies: - "@babel/compat-data" "^7.17.10" - "@babel/helper-validator-option" "^7.16.7" + "@babel/compat-data" "^7.19.0" + "@babel/helper-validator-option" "^7.18.6" browserslist "^4.20.2" semver "^6.3.0" -"@babel/helper-create-class-features-plugin@^7.18.0": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.0.tgz#fac430912606331cb075ea8d82f9a4c145a4da19" - integrity sha512-Kh8zTGR9de3J63e5nS0rQUdRs/kbtwoeQQ0sriS0lItjC96u8XXZN6lKpuyWd2coKSU13py/y+LTmThLuVX0Pg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.16.7" - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-function-name" "^7.17.9" - "@babel/helper-member-expression-to-functions" "^7.17.7" - "@babel/helper-optimise-call-expression" "^7.16.7" - "@babel/helper-replace-supers" "^7.16.7" - "@babel/helper-split-export-declaration" "^7.16.7" - -"@babel/helper-environment-visitor@^7.16.7", "@babel/helper-environment-visitor@^7.18.2": - version "7.18.2" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.2.tgz#8a6d2dedb53f6bf248e31b4baf38739ee4a637bd" - integrity sha512-14GQKWkX9oJzPiQQ7/J36FTXcD4kSp8egKjO9nINlSKiHITRA9q/R74qu8S9xlc/b/yjsJItQUeeh3xnGN0voQ== - -"@babel/helper-function-name@^7.17.9": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz#136fcd54bc1da82fcb47565cf16fd8e444b1ff12" - integrity sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg== - dependencies: - "@babel/template" "^7.16.7" - "@babel/types" "^7.17.0" - -"@babel/helper-hoist-variables@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz#86bcb19a77a509c7b77d0e22323ef588fa58c246" - integrity sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-member-expression-to-functions@^7.17.7": - version "7.17.7" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.17.7.tgz#a34013b57d8542a8c4ff8ba3f747c02452a4d8c4" - integrity sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw== - dependencies: - "@babel/types" "^7.17.0" - -"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz#25612a8091a999704461c8a222d0efec5d091437" - integrity sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-module-transforms@^7.18.0": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.18.0.tgz#baf05dec7a5875fb9235bd34ca18bad4e21221cd" - integrity sha512-kclUYSUBIjlvnzN2++K9f2qzYKFgjmnmjwL4zlmU5f8ZtzgWe8s0rUPSTGy2HmK4P8T52MQsS+HTQAgZd3dMEA== - dependencies: - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-module-imports" "^7.16.7" - "@babel/helper-simple-access" "^7.17.7" - "@babel/helper-split-export-declaration" "^7.16.7" - "@babel/helper-validator-identifier" "^7.16.7" - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.18.0" - "@babel/types" "^7.18.0" - -"@babel/helper-optimise-call-expression@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz#a34e3560605abbd31a18546bd2aad3e6d9a174f2" - integrity sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.17.12": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz#86c2347da5acbf5583ba0a10aed4c9bf9da9cf96" - integrity sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA== - -"@babel/helper-replace-supers@^7.16.7": - version "7.18.2" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.18.2.tgz#41fdfcc9abaf900e18ba6e5931816d9062a7b2e0" - integrity sha512-XzAIyxx+vFnrOxiQrToSUOzUOn0e1J2Li40ntddek1Y69AXUTXoDJ40/D5RdjFu7s7qHiaeoTiempZcbuVXh2Q== - dependencies: - "@babel/helper-environment-visitor" "^7.18.2" - "@babel/helper-member-expression-to-functions" "^7.17.7" - "@babel/helper-optimise-call-expression" "^7.16.7" - "@babel/traverse" "^7.18.2" - "@babel/types" "^7.18.2" - -"@babel/helper-simple-access@^7.17.7": - version "7.18.2" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.18.2.tgz#4dc473c2169ac3a1c9f4a51cfcd091d1c36fcff9" - integrity sha512-7LIrjYzndorDY88MycupkpQLKS1AFfsVRm2k/9PtKScSy5tZq0McZTj+DiMRynboZfIqOKvo03pmhTaUgiD6fQ== - dependencies: - "@babel/types" "^7.18.2" - -"@babel/helper-split-export-declaration@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz#0b648c0c42da9d3920d85ad585f2778620b8726b" - integrity sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-validator-identifier@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz#e8c602438c4a8195751243da9031d1607d247cad" - integrity sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw== - -"@babel/helper-validator-option@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz#b203ce62ce5fe153899b617c08957de860de4d23" - integrity sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ== - -"@babel/helpers@^7.18.2": - version "7.18.2" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.18.2.tgz#970d74f0deadc3f5a938bfa250738eb4ac889384" - integrity sha512-j+d+u5xT5utcQSzrh9p+PaJX94h++KN+ng9b9WEJq7pkUPAd61FGqhjuUEdfknb3E/uDBb7ruwEeKkIxNJPIrg== - dependencies: - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.18.2" - "@babel/types" "^7.18.2" - -"@babel/highlight@^7.16.7": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.17.12.tgz#257de56ee5afbd20451ac0a75686b6b404257351" - integrity sha512-7yykMVF3hfZY2jsHZEEgLc+3x4o1O+fYyULu11GynEUQNwB6lua+IIQn1FiJxNucd5UlyJryrwsOh8PL9Sn8Qg== - dependencies: - "@babel/helper-validator-identifier" "^7.16.7" +"@babel/helper-create-class-features-plugin@^7.19.0": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.19.0.tgz#bfd6904620df4e46470bae4850d66be1054c404b" + integrity sha512-NRz8DwF4jT3UfrmUoZjd0Uph9HQnP30t7Ash+weACcyNkiYTywpIjDBgReJMKgr+n86sn2nPVVmJ28Dm053Kqw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-function-name" "^7.19.0" + "@babel/helper-member-expression-to-functions" "^7.18.9" + "@babel/helper-optimise-call-expression" "^7.18.6" + "@babel/helper-replace-supers" "^7.18.9" + "@babel/helper-split-export-declaration" "^7.18.6" + +"@babel/helper-environment-visitor@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be" + integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg== + +"@babel/helper-function-name@^7.19.0": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz#941574ed5390682e872e52d3f38ce9d1bef4648c" + integrity sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w== + dependencies: + "@babel/template" "^7.18.10" + "@babel/types" "^7.19.0" + +"@babel/helper-hoist-variables@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678" + integrity sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-member-expression-to-functions@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz#1531661e8375af843ad37ac692c132841e2fd815" + integrity sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg== + dependencies: + "@babel/types" "^7.18.9" + +"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz#1e3ebdbbd08aad1437b428c50204db13c5a3ca6e" + integrity sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-module-transforms@^7.19.0": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.19.0.tgz#309b230f04e22c58c6a2c0c0c7e50b216d350c30" + integrity sha512-3HBZ377Fe14RbLIA+ac3sY4PTgpxHVkFrESaWhoI5PuyXPBBX8+C34qblV9G89ZtycGJCmCI/Ut+VUDK4bltNQ== + dependencies: + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-module-imports" "^7.18.6" + "@babel/helper-simple-access" "^7.18.6" + "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/helper-validator-identifier" "^7.18.6" + "@babel/template" "^7.18.10" + "@babel/traverse" "^7.19.0" + "@babel/types" "^7.19.0" + +"@babel/helper-optimise-call-expression@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz#9369aa943ee7da47edab2cb4e838acf09d290ffe" + integrity sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.19.0": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.19.0.tgz#4796bb14961521f0f8715990bee2fb6e51ce21bf" + integrity sha512-40Ryx7I8mT+0gaNxm8JGTZFUITNqdLAgdg0hXzeVZxVD6nFsdhQvip6v8dqkRHzsz1VFpFAaOCHNn0vKBL7Czw== + +"@babel/helper-replace-supers@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.18.9.tgz#1092e002feca980fbbb0bd4d51b74a65c6a500e6" + integrity sha512-dNsWibVI4lNT6HiuOIBr1oyxo40HvIVmbwPUm3XZ7wMh4k2WxrxTqZwSqw/eEmXDS9np0ey5M2bz9tBmO9c+YQ== + dependencies: + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-member-expression-to-functions" "^7.18.9" + "@babel/helper-optimise-call-expression" "^7.18.6" + "@babel/traverse" "^7.18.9" + "@babel/types" "^7.18.9" + +"@babel/helper-simple-access@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz#d6d8f51f4ac2978068df934b569f08f29788c7ea" + integrity sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-split-export-declaration@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz#7367949bc75b20c6d5a5d4a97bba2824ae8ef075" + integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-string-parser@^7.18.10": + version "7.18.10" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz#181f22d28ebe1b3857fa575f5c290b1aaf659b56" + integrity sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw== + +"@babel/helper-validator-identifier@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz#9c97e30d31b2b8c72a1d08984f2ca9b574d7a076" + integrity sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g== + +"@babel/helper-validator-option@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz#bf0d2b5a509b1f336099e4ff36e1a63aa5db4db8" + integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw== + +"@babel/helpers@^7.19.0": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.19.0.tgz#f30534657faf246ae96551d88dd31e9d1fa1fc18" + integrity sha512-DRBCKGwIEdqY3+rPJgG/dKfQy9+08rHIAJx8q2p+HSWP87s2HCrQmaAMMyMll2kIXKCW0cO1RdQskx15Xakftg== + dependencies: + "@babel/template" "^7.18.10" + "@babel/traverse" "^7.19.0" + "@babel/types" "^7.19.0" + +"@babel/highlight@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" + integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== + dependencies: + "@babel/helper-validator-identifier" "^7.18.6" chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.16.4", "@babel/parser@^7.16.7", "@babel/parser@^7.18.0": - version "7.18.4" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.4.tgz#6774231779dd700e0af29f6ad8d479582d7ce5ef" - integrity sha512-FDge0dFazETFcxGw/EXzOkN8uJp0PC7Qbm+Pe9T+av2zlBpOgunFHkQPPn+eRuClU73JF+98D531UgayY89tow== +"@babel/parser@^7.16.4", "@babel/parser@^7.18.10", "@babel/parser@^7.18.13", "@babel/parser@^7.19.0": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.19.0.tgz#497fcafb1d5b61376959c1c338745ef0577aa02c" + integrity sha512-74bEXKX2h+8rrfQUfsBfuZZHzsEs6Eql4pqy/T4Nn6Y9wNPggQOqD6z6pn5Bl8ZfysKouFZT/UXEH94ummEeQw== "@babel/plugin-syntax-import-meta@^7.10.4": version "7.10.4" @@ -208,64 +218,65 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-jsx@^7.0.0": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.17.12.tgz#834035b45061983a491f60096f61a2e7c5674a47" - integrity sha512-spyY3E3AURfxh/RHtjx5j6hs8am5NbUBGfcZ2vB3uShSpZdQyXSf5rR5Mk76vbtlAZOelyVQ71Fg0x9SG4fsog== - dependencies: - "@babel/helper-plugin-utils" "^7.17.12" - -"@babel/plugin-syntax-typescript@^7.17.12": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.17.12.tgz#b54fc3be6de734a56b87508f99d6428b5b605a7b" - integrity sha512-TYY0SXFiO31YXtNg3HtFwNJHjLsAyIIhAhNWkQ5whPPS7HWUFlg9z0Ta4qAQNjQbP1wsSt/oKkmZ/4/WWdMUpw== - dependencies: - "@babel/helper-plugin-utils" "^7.17.12" - -"@babel/plugin-transform-typescript@^7.16.8": - version "7.18.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.18.4.tgz#587eaf6a39edb8c06215e550dc939faeadd750bf" - integrity sha512-l4vHuSLUajptpHNEOUDEGsnpl9pfRLsN1XUoDQDD/YBuXTM+v37SHGS+c6n4jdcZy96QtuUuSvZYMLSSsjH8Mw== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.18.0" - "@babel/helper-plugin-utils" "^7.17.12" - "@babel/plugin-syntax-typescript" "^7.17.12" - -"@babel/standalone@^7.17.7": - version "7.18.4" - resolved "https://registry.yarnpkg.com/@babel/standalone/-/standalone-7.18.4.tgz#2a30c7e9a97227399929011dfe19f9f155c59e80" - integrity sha512-3dDouWyjdS8sJTm6hf8KkJq7fr9ORWMlWGNcMV/Uz2rNnoI6uu8wJGhZ7E65J+x6v8ta9yPbzkUT2YBFcWUbWg== - -"@babel/template@^7.0.0", "@babel/template@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.16.7.tgz#8d126c8701fde4d66b264b3eba3d96f07666d155" - integrity sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w== - dependencies: - "@babel/code-frame" "^7.16.7" - "@babel/parser" "^7.16.7" - "@babel/types" "^7.16.7" - -"@babel/traverse@^7.0.0", "@babel/traverse@^7.18.0", "@babel/traverse@^7.18.2": - version "7.18.2" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.18.2.tgz#b77a52604b5cc836a9e1e08dca01cba67a12d2e8" - integrity sha512-9eNwoeovJ6KH9zcCNnENY7DMFwTU9JdGCFtqNLfUAqtUHRCOsTOqWoffosP8vKmNYeSBUv3yVJXjfd8ucwOjUA== - dependencies: - "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.18.2" - "@babel/helper-environment-visitor" "^7.18.2" - "@babel/helper-function-name" "^7.17.9" - "@babel/helper-hoist-variables" "^7.16.7" - "@babel/helper-split-export-declaration" "^7.16.7" - "@babel/parser" "^7.18.0" - "@babel/types" "^7.18.2" + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz#a8feef63b010150abd97f1649ec296e849943ca0" + integrity sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-syntax-typescript@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.18.6.tgz#1c09cd25795c7c2b8a4ba9ae49394576d4133285" + integrity sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-typescript@^7.18.12": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.19.0.tgz#50c3a68ec8efd5e040bde2cd764e8e16bc0cbeaf" + integrity sha512-DOOIywxPpkQHXijXv+s9MDAyZcLp12oYRl3CMWZ6u7TjSoCBq/KqHR/nNFR3+i2xqheZxoF0H2XyL7B6xeSRuA== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.19.0" + "@babel/helper-plugin-utils" "^7.19.0" + "@babel/plugin-syntax-typescript" "^7.18.6" + +"@babel/standalone@^7.18.13": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/standalone/-/standalone-7.19.0.tgz#23cbe261557a72dcc58ba56c3a2125944a251c4f" + integrity sha512-P8lYynBl10MYpgkhGEV1fOsGDE/6lQSYp+e2YvqUPMWHT4JaQrOkM49FizjswrRzJ6KZTgG6ZY90/1GYvAR3/Q== + +"@babel/template@^7.0.0", "@babel/template@^7.18.10": + version "7.18.10" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.18.10.tgz#6f9134835970d1dbf0835c0d100c9f38de0c5e71" + integrity sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA== + dependencies: + "@babel/code-frame" "^7.18.6" + "@babel/parser" "^7.18.10" + "@babel/types" "^7.18.10" + +"@babel/traverse@^7.0.0", "@babel/traverse@^7.18.9", "@babel/traverse@^7.19.0": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.19.0.tgz#eb9c561c7360005c592cc645abafe0c3c4548eed" + integrity sha512-4pKpFRDh+utd2mbRC8JLnlsMUii3PMHjpL6a0SZ4NMZy7YFP9aXORxEhdMVOc9CpWtDF09IkciQLEhK7Ml7gRA== + dependencies: + "@babel/code-frame" "^7.18.6" + "@babel/generator" "^7.19.0" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-function-name" "^7.19.0" + "@babel/helper-hoist-variables" "^7.18.6" + "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/parser" "^7.19.0" + "@babel/types" "^7.19.0" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.16.7", "@babel/types@^7.17.0", "@babel/types@^7.18.0", "@babel/types@^7.18.2": - version "7.18.4" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.18.4.tgz#27eae9b9fd18e9dccc3f9d6ad051336f307be354" - integrity sha512-ThN1mBcMq5pG/Vm2IcBmPPfyPXbd8S02rS+OBIDENdufvqC7Z/jHPCv9IcP01277aKtDI8g/2XysBN4hA8niiw== +"@babel/types@^7.0.0", "@babel/types@^7.18.10", "@babel/types@^7.18.13", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.19.0": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.19.0.tgz#75f21d73d73dc0351f3368d28db73465f4814600" + integrity sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA== dependencies: - "@babel/helper-validator-identifier" "^7.16.7" + "@babel/helper-string-parser" "^7.18.10" + "@babel/helper-validator-identifier" "^7.18.6" to-fast-properties "^2.0.0" "@cloudflare/kv-asset-handler@^0.2.0": @@ -275,50 +286,10 @@ dependencies: mime "^3.0.0" -"@csstools/selector-specificity@1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@csstools/selector-specificity/-/selector-specificity-1.0.0.tgz#91c560df2ed8d9700e4c7ed4ac21a3a322c9d975" - integrity sha512-RkYG5KiGNX0fJ5YoI0f4Wfq2Yo74D25Hru4fxTOioYdQvHBxcrrtTTyT5Ozzh2ejcNrhFy7IEts2WyEY7yi5yw== - -"@docus/base@npm:@docus/base-edge@3.0.0-a0efb08": - version "3.0.0-a0efb08" - resolved "https://registry.yarnpkg.com/@docus/base-edge/-/base-edge-3.0.0-a0efb08.tgz#2b97b40e052b94a60916049ff3722d72451605aa" - integrity sha512-pmFNe8YrgKQqnvNjITA8jA+iTjqjEuEoFkami5pPHbZ+UCafCFouhbO1obN7+gUiTMpB2d+14PvWQEJHGulCqg== - dependencies: - "@nuxt/content" "npm:@nuxt/content-edge@latest" - "@nuxthq/admin" "npm:@nuxthq/admin-edge@latest" - "@vueuse/core" "^8.5.0" - "@vueuse/nuxt" "^8.5.0" - defu "^6.0.0" - nuxt "^3.0.0-rc.3" - pkg-types "^0.3.2" - -"@docus/docs-theme@npm:@docus/docs-theme-edge@latest": - version "3.0.0-a0efb08" - resolved "https://registry.yarnpkg.com/@docus/docs-theme-edge/-/docs-theme-edge-3.0.0-a0efb08.tgz#c337c7d76e26490f96240188adb2e9f1fe32ad1d" - integrity sha512-ic+lgU+Sr77Wmqmo/asdR1wJaNUcnv0TG66liENK7qG5c6CsA8fr3+jpfzKKSM6AshWtYRrVFif67MHdpNLcQA== - dependencies: - "@docus/base" "npm:@docus/base-edge@3.0.0-a0efb08" - "@iconify/vue" "^3.2.1" - "@nuxtjs/color-mode" "^3.0.3" - "@nuxtjs/tailwindcss" "^5.1.2" - "@tailwindcss/aspect-ratio" "^0.4.0" - "@tailwindcss/forms" "^0.5.2" - "@tailwindcss/line-clamp" "^0.4.0" - "@tailwindcss/typography" "^0.5.2" - "@vueuse/motion" "2.0.0-beta.12" - tailwindcss "^3.0.24" - vue-plausible "^1.3.1" - -"@docus/github@npm:@docus/github-edge@latest": - version "1.2.6-a0efb08" - resolved "https://registry.yarnpkg.com/@docus/github-edge/-/github-edge-1.2.6-a0efb08.tgz#0a45560d992029769dd0cefc5c8b03f486b96724" - integrity sha512-uydlwlZ+frduDh6Q2vjpJRwo1lvQ94Xcx3X3To6ogFaEvRpmFPrjLGrqaXvGCMSAsYNsAnYf25K8VlW8hEeXcg== - dependencies: - "@nuxt/kit" "^3.0.0-rc.3" - "@octokit/graphql" "^4.8.0" - "@octokit/rest" "^18.12.0" - remark-github "^11.2.3" +"@csstools/selector-specificity@^2.0.0": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@csstools/selector-specificity/-/selector-specificity-2.0.2.tgz#1bfafe4b7ed0f3e4105837e056e0a89b108ebe36" + integrity sha512-IkpVW/ehM1hWKln4fCA3NzJU8KwD+kIOvPZA4cqxoJHtE21CCzjyp+Kxbu0i5I4tBNOlXPL9mjwnWlL0VEG4Fg== "@emmetio/abbreviation@^2.2.3": version "2.2.3" @@ -339,15 +310,30 @@ resolved "https://registry.yarnpkg.com/@emmetio/scanner/-/scanner-1.0.0.tgz#065b2af6233fe7474d44823e3deb89724af42b5f" integrity sha512-8HqW8EVqjnCmWXVpqAOZf+EGESdkR27odcMMMGefgKXtar00SoYNSryGv//TELI4T3QFsECo78p+0lmalk/CFA== +"@esbuild/linux-loong64@0.14.54": + version "0.14.54" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.14.54.tgz#de2a4be678bd4d0d1ffbb86e6de779cde5999028" + integrity sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw== + +"@esbuild/linux-loong64@0.15.7": + version "0.15.7" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.15.7.tgz#1ec4af4a16c554cbd402cc557ccdd874e3f7be53" + integrity sha512-IKznSJOsVUuyt7cDzzSZyqBEcZe+7WlBqTVXiF1OXP/4Nm387ToaXZ0fyLwI1iBlI/bzpxVq411QE2/Bt2XWWw== + +"@fontsource/inter@^4.5.12": + version "4.5.12" + resolved "https://registry.yarnpkg.com/@fontsource/inter/-/inter-4.5.12.tgz#a6236379bf710658db048d7087ec588754962cb6" + integrity sha512-bGKk4/8tube/nCk8hav0ZDBVbzJzc7m0Vt4xF5p15IN4YImwGdtKG38Oq5bU8xHNS+VfvbFFCepgQNj7Pr/Lvg== + "@iconify/vue@^3.2.1": version "3.2.1" resolved "https://registry.yarnpkg.com/@iconify/vue/-/vue-3.2.1.tgz#bd8a2f1213ba8775d4b7a7a8ba895e53ae2f4dfc" integrity sha512-c4R6ZgFo1JrJ8aPMMgOPgfU7lBswihMGR+yWe/P4ZukC3kTkeT4+lkt9Pc/itVFMkwva/S/7u9YofmYv57fnNQ== "@ioredis/commands@^1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@ioredis/commands/-/commands-1.1.1.tgz#2ba4299ea624a6bfac15b35f6df90b0015691ec3" - integrity sha512-fsR4P/ROllzf/7lXYyElUJCheWdTJVJvOTps8v9IWKFATxR61ANOlnoPqhH099xYLrJGpc2ZQ28B3rMeUt5VQg== + version "1.2.0" + resolved "https://registry.yarnpkg.com/@ioredis/commands/-/commands-1.2.0.tgz#6d61b3097470af1fdbbe622795b8921d42018e11" + integrity sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg== "@jridgewell/gen-mapping@^0.1.0": version "0.1.1" @@ -357,24 +343,24 @@ "@jridgewell/set-array" "^1.0.0" "@jridgewell/sourcemap-codec" "^1.4.10" -"@jridgewell/gen-mapping@^0.3.0": - version "0.3.1" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz#cf92a983c83466b8c0ce9124fadeaf09f7c66ea9" - integrity sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg== +"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": + version "0.3.2" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9" + integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A== dependencies: - "@jridgewell/set-array" "^1.0.0" + "@jridgewell/set-array" "^1.0.1" "@jridgewell/sourcemap-codec" "^1.4.10" "@jridgewell/trace-mapping" "^0.3.9" "@jridgewell/resolve-uri@^3.0.3": - version "3.0.7" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz#30cd49820a962aff48c8fffc5cd760151fca61fe" - integrity sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA== + version "3.1.0" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" + integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== -"@jridgewell/set-array@^1.0.0": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.1.tgz#36a6acc93987adcf0ba50c66908bd0b70de8afea" - integrity sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ== +"@jridgewell/set-array@^1.0.0", "@jridgewell/set-array@^1.0.1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" + integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== "@jridgewell/source-map@^0.3.2": version "0.3.2" @@ -385,14 +371,14 @@ "@jridgewell/trace-mapping" "^0.3.9" "@jridgewell/sourcemap-codec@^1.4.10": - version "1.4.13" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz#b6461fb0c2964356c469e115f504c95ad97ab88c" - integrity sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w== + version "1.4.14" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" + integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== "@jridgewell/trace-mapping@^0.3.9": - version "0.3.13" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz#dcfe3e95f224c8fe97a87a5235defec999aa92ea" - integrity sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w== + version "0.3.15" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz#aba35c48a38d3fd84b37e66c9c0423f9744f9774" + integrity sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g== dependencies: "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" @@ -409,9 +395,9 @@ path-to-regexp "^6.1.0" "@mapbox/node-pre-gyp@^1.0.5": - version "1.0.9" - resolved "https://registry.yarnpkg.com/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.9.tgz#09a8781a3a036151cdebbe8719d6f8b25d4058bc" - integrity sha512-aDF3S3rK9Q2gey/WAttUlISduDItz5BU3306M9Eyv6/oS40aMprnopshtlKTykxRNIBEZuRMaZAnbrQ4QtKGyw== + version "1.0.10" + resolved "https://registry.yarnpkg.com/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.10.tgz#8e6735ccebbb1581e5a7e652244cadc8a844d03c" + integrity sha512-4ySo4CjzStuprMwk35H5pPbkymjv1SF3jGLj6rAHp/xT/RF7TL7bd9CTm1xDY49K2qF7jmR/g7k+SkLETP6opA== dependencies: detect-libc "^2.0.0" https-proxy-agent "^5.0.0" @@ -423,10 +409,10 @@ semver "^7.3.5" tar "^6.1.11" -"@netlify/functions@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@netlify/functions/-/functions-1.0.0.tgz#5b6c02fafc567033c93b15a080cc021e5f10f254" - integrity sha512-7fnJv3vr8uyyyOYPChwoec6MjzsCw1CoRUO2DhQ1BD6bOyJRlD4DUaOOGlMILB2LCT8P24p5LexEGx8AJb7xdA== +"@netlify/functions@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@netlify/functions/-/functions-1.2.0.tgz#0acce06db94113d2a42253930c45cb69ab97c530" + integrity sha512-zCOJPoZQLv4ISHjyBS7asqzR6Y9NU+Vb0VKYDD0xUwYmReMhLTDchjGMkt5x0Jk1EVnJwUvA29rGyQEj3tIgAA== dependencies: is-promise "^4.0.0" @@ -451,133 +437,94 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" +"@nuxt-themes/docus@npm:@nuxt-themes/docus-edge@latest": + version "3.0.0-b989a44" + resolved "https://registry.yarnpkg.com/@nuxt-themes/docus-edge/-/docus-edge-3.0.0-b989a44.tgz#d9880969e8ea10d4d45696904ac7804c80dc01e1" + integrity sha512-5wuxj3p4vpj2zO0CG18otJkFYzn/QnzMXHLuwuPlr8K7S7iZ1YgyHNKupddT+c+a84yU9NFziua1kPfPRnLwuw== + dependencies: + "@fontsource/inter" "^4.5.12" + "@iconify/vue" "^3.2.1" + "@nuxt/content" "npm:@nuxt/content-edge@latest" + "@nuxtjs/color-mode" "^3.1.4" + "@nuxtjs/design-tokens" "npm:@nuxtjs/design-tokens-edge@latest" + "@nuxtjs/tailwindcss" "^5.3.2" + "@tailwindcss/aspect-ratio" "^0.4.0" + "@tailwindcss/forms" "^0.5.2" + "@tailwindcss/line-clamp" "^0.4.0" + "@tailwindcss/typography" "^0.5.4" + "@vueuse/core" "^9.1.0" + "@vueuse/nuxt" "^9.1.0" + vue-plausible "^1.3.2" + "@nuxt/content@npm:@nuxt/content-edge@latest": - version "2.0.0-27566376.82efc23" - resolved "https://registry.yarnpkg.com/@nuxt/content-edge/-/content-edge-2.0.0-27566376.82efc23.tgz#21b570517b6ef837f7b516c17433102b25f852fc" - integrity sha512-k4D9uJsTCqDaggxokS88cyfkzzOAVXBIvIS7YFN84PHXNjcSYt9+gnK+UHAAiT+3N2/g3c5EeN/F4WqU+EwyoQ== + version "2.1.0-27709113.af4452b" + resolved "https://registry.yarnpkg.com/@nuxt/content-edge/-/content-edge-2.1.0-27709113.af4452b.tgz#da255956bd7012400e4a192f61811d9be0b2fc93" + integrity sha512-fuTkCknnk1mlwlsSz/rz3Q4DLVCOk9E+ZFrUNPnpwmCeijSHp8ApIBdspXXFtJovXbfZqns9f5GC+qR6U0wrwA== dependencies: - "@nuxt/kit" "^3.0.0-rc.3" - csvtojson "^2.0.10" - defu "^6.0.0" + "@nuxt/kit" "^3.0.0-rc.9" + consola "^2.15.3" + defu "^6.1.0" destr "^1.1.1" detab "^3.0.1" - flat "^5.0.2" html-tags "^3.2.0" - js-yaml "^4.1.0" json5 "^2.2.1" - listhen "^0.2.11" - mdast-util-from-markdown "^1.2.0" - mdast-util-to-hast "^12.1.1" - mdast-util-to-markdown "^1.3.0" + knitwork "^0.1.2" + listhen "^0.2.15" + mdast-util-to-hast "^12.2.1" mdurl "^1.0.1" - micromark "^3.0.10" - micromark-core-commonmark "^1.0.6" - micromark-factory-space "^1.0.0" - micromark-factory-whitespace "^1.0.0" - micromark-util-character "^1.1.0" - ohash "^0.1.0" - parse-entities "^4.0.0" - pathe "^0.3.0" + ohash "^0.1.5" + pathe "^0.3.7" property-information "^6.1.1" - rehype-external-links "^1.0.1" + rehype-external-links "^2.0.1" rehype-raw "^6.1.1" rehype-slug "^5.0.1" rehype-sort-attribute-values "^4.0.0" rehype-sort-attributes "^4.0.0" remark-emoji "^3.0.2" remark-gfm "^3.0.1" + remark-mdc "^1.0.7" remark-parse "^10.0.1" remark-rehype "^10.1.0" remark-squeeze-paragraphs "^5.0.1" - scule "^0.2.1" + scule "^0.3.2" shiki-es "^0.1.2" slugify "^1.6.5" - stringify-entities "^4.0.2" - ufo "^0.8.4" - unctx "^1.1.4" + ufo "^0.8.5" unified "^10.1.2" unist-builder "^3.0.0" unist-util-position "^4.0.3" - unist-util-visit "^4.1.0" - unstorage "^0.4.1" - ws "^8.7.0" + unist-util-visit "^4.1.1" + unstorage "^0.5.6" + ws "^8.8.1" "@nuxt/devalue@^2.0.0": version "2.0.0" resolved "https://registry.yarnpkg.com/@nuxt/devalue/-/devalue-2.0.0.tgz#c7bd7e9a516514e612d5d2e511ffc399e0eac322" integrity sha512-YBI/6o2EBz02tdEJRBK8xkt3zvOFOWlLBf7WKYGBsSYSRtjjgrqPe2skp6VLLmKx5WbHHDNcW+6oACaurxGzeA== -"@nuxt/kit@3.0.0-rc.1": - version "3.0.0-rc.1" - resolved "https://registry.yarnpkg.com/@nuxt/kit/-/kit-3.0.0-rc.1.tgz#c6197351970d85eecb17d646667178ecefb2b955" - integrity sha512-S2x0zdLYLZ4/2lMnS6emSmFPJszPJf70Y4/8gpmkPb4TArEjPNaOTCIz7tKpj/Upo71fv7cfuwYw/X0F2UAntg== - dependencies: - "@nuxt/schema" "^3.0.0-rc.1" - c12 "^0.2.7" - consola "^2.15.3" - defu "^6.0.0" - globby "^13.1.1" - hash-sum "^2.0.0" - ignore "^5.2.0" - jiti "^1.13.0" - knitwork "^0.1.1" - lodash.template "^4.5.0" - mlly "^0.5.2" - pathe "^0.2.0" - pkg-types "^0.3.2" - scule "^0.2.1" - semver "^7.3.7" - unctx "^1.1.4" - unimport "^0.1.6" - untyped "^0.4.4" - -"@nuxt/kit@^3.0.0-rc.2", "@nuxt/kit@^3.0.0-rc.3": - version "3.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@nuxt/kit/-/kit-3.0.0-rc.3.tgz#9bbedf5be268578d4002766be8eb59b976892cc6" - integrity sha512-aD993HKXZ76cwxkM2LCwWRQaOI3RjLCg/kj+8ZS6qN4VrpwrZp4xM59YYIYs3/Vze4OG3D4+0gr0u5zdgf8v8g== - dependencies: - "@nuxt/schema" "^3.0.0-rc.3" - c12 "^0.2.7" - consola "^2.15.3" - defu "^6.0.0" - globby "^13.1.1" - hash-sum "^2.0.0" - ignore "^5.2.0" - jiti "^1.13.0" - knitwork "^0.1.1" - lodash.template "^4.5.0" - mlly "^0.5.2" - pathe "^0.3.0" - pkg-types "^0.3.2" - scule "^0.2.1" - semver "^7.3.7" - unctx "^1.1.4" - unimport "^0.1.9" - untyped "^0.4.4" - -"@nuxt/kit@npm:@nuxt/kit-edge@latest": - version "3.0.0-rc.3-27550969.a4a3cff" - resolved "https://registry.yarnpkg.com/@nuxt/kit-edge/-/kit-edge-3.0.0-rc.3-27550969.a4a3cff.tgz#a43721d514d674b251b198f5b1b2659edd00c44d" - integrity sha512-2+ki7Vp4geHFVHI8DAkRphR5jnXq420JuPSITsgxnPXEkg2Fz1/LrbI4cO6j4UyKQyjUK7TaF+lEqsEj/Lms8w== +"@nuxt/kit@3.0.0-rc.9", "@nuxt/kit@^3.0.0-rc.3", "@nuxt/kit@^3.0.0-rc.5", "@nuxt/kit@^3.0.0-rc.8", "@nuxt/kit@^3.0.0-rc.9": + version "3.0.0-rc.9" + resolved "https://registry.yarnpkg.com/@nuxt/kit/-/kit-3.0.0-rc.9.tgz#05d9721a7b7bf8538cd6f501ed0692cf0171bc2f" + integrity sha512-Y+db0iw/1pKiLMEG7L/6HCq8O9xsbVJT/ksePY1Q8o3fV40Q9gCWI0YumCIzVdBiAFFEOCNASsxmGj7kPSdpCA== dependencies: - "@nuxt/schema" "npm:@nuxt/schema-edge@3.0.0-rc.3-27550969.a4a3cff" - c12 "^0.2.7" + "@nuxt/schema" "3.0.0-rc.9" + c12 "^0.2.10" consola "^2.15.3" - defu "^6.0.0" - globby "^13.1.1" + defu "^6.1.0" + globby "^13.1.2" hash-sum "^2.0.0" ignore "^5.2.0" - jiti "^1.13.0" - knitwork "^0.1.1" + jiti "^1.14.0" + knitwork "^0.1.2" lodash.template "^4.5.0" - mlly "^0.5.2" - pathe "^0.3.0" - pkg-types "^0.3.2" - scule "^0.2.1" + mlly "^0.5.14" + pathe "^0.3.5" + pkg-types "^0.3.4" + scule "^0.3.2" semver "^7.3.7" - unctx "^1.1.4" - unimport "^0.2.1" - untyped "^0.4.4" + unctx "^2.0.2" + unimport "^0.6.7" + untyped "^0.4.7" "@nuxt/postcss8@^1.1.3": version "1.1.3" @@ -593,243 +540,249 @@ postcss-url "^10.1.1" semver "^7.3.4" -"@nuxt/schema@^3.0.0-rc.1", "@nuxt/schema@^3.0.0-rc.3": - version "3.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@nuxt/schema/-/schema-3.0.0-rc.3.tgz#8664535a91e0923a12e19e69f3e396a74c9e4ed9" - integrity sha512-vICmOpIk8SjVVUN+MadAMMF/MEXqPgY3jquSjSkmWdydtMOBoxrBpl+5nkpJCtsCq5KJAK8WI+9SCNIkEASCgw== +"@nuxt/schema@3.0.0-rc.9": + version "3.0.0-rc.9" + resolved "https://registry.yarnpkg.com/@nuxt/schema/-/schema-3.0.0-rc.9.tgz#5f3f151c08d531e11583abd95c3822fe13385488" + integrity sha512-oxrsJE3v7WC8tqTPxutK4LFxR/6u00Zt2PfPm1XTWwx8fojDk4C5iCv5mxydHwXffsIp5JeP5hddd/oqnbDSpQ== dependencies: - c12 "^0.2.7" + c12 "^0.2.10" create-require "^1.1.1" - defu "^6.0.0" - jiti "^1.13.0" - pathe "^0.3.0" + defu "^6.1.0" + jiti "^1.14.0" + pathe "^0.3.5" postcss-import-resolver "^2.0.0" - scule "^0.2.1" - std-env "^3.1.1" - ufo "^0.8.4" - unimport "^0.1.9" + scule "^0.3.2" + std-env "^3.2.1" + ufo "^0.8.5" + unimport "^0.6.7" -"@nuxt/schema@npm:@nuxt/schema-edge@3.0.0-rc.3-27550969.a4a3cff": - version "3.0.0-rc.3-27550969.a4a3cff" - resolved "https://registry.yarnpkg.com/@nuxt/schema-edge/-/schema-edge-3.0.0-rc.3-27550969.a4a3cff.tgz#76b8858dbe68abd18bcc06d8cd71440696c6cdb1" - integrity sha512-Udh2DDfTHpMzCXPBvI0YR1zby59FkGGFFmaIficMu0xyEI5M8fJVrNMDtu+Shj0iHuKC7qlgkUZ1FLpKlJzEEQ== - dependencies: - c12 "^0.2.7" - create-require "^1.1.1" - defu "^6.0.0" - jiti "^1.13.0" - pathe "^0.3.0" - postcss-import-resolver "^2.0.0" - scule "^0.2.1" - std-env "^3.1.1" - ufo "^0.8.4" - unimport "^0.2.1" - -"@nuxt/telemetry@^2.1.3": - version "2.1.3" - resolved "https://registry.yarnpkg.com/@nuxt/telemetry/-/telemetry-2.1.3.tgz#0ecc8fed684db835bcf2f7e5a0bebef54e43d294" - integrity sha512-k8wP3D17di27/loe35GZEqXyabG/045tFD1CipmG9MOnZdwf6WeL+gFEXzIaDeDFVLmbI1bnddOk+RutxeIjVA== +"@nuxt/telemetry@^2.1.4": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@nuxt/telemetry/-/telemetry-2.1.5.tgz#987c16ab11a4406cbb4b3111359b7f197451fd71" + integrity sha512-Goi35DKG0Na7k/lPcaZkEvb+TWPdXKtyRixvcMMtvdbzjqGD/+gMy9BtHuS051LxdVZBNWBFyGVwT+DqlkVZKw== dependencies: - "@nuxt/kit" "3.0.0-rc.1" + "@nuxt/kit" "^3.0.0-rc.9" chalk "^5.0.1" - ci-info "^3.3.0" + ci-info "^3.3.2" consola "^2.15.3" create-require "^1.1.1" - defu "^6.0.0" + defu "^6.1.0" destr "^1.1.1" - dotenv "^16.0.0" + dotenv "^16.0.2" fs-extra "^10.1.0" - git-url-parse "^11.6.0" - inquirer "^8.2.2" + git-url-parse "^13.0.0" + inquirer "^9.1.1" is-docker "^3.0.0" - jiti "^1.13.0" + jiti "^1.14.0" mri "^1.2.0" - nanoid "^3.3.3" - node-fetch "^3.2.3" - ohmyfetch "^0.4.15" + nanoid "^4.0.0" + node-fetch "^3.2.10" + ohmyfetch "^0.4.18" parse-git-config "^3.0.0" rc9 "^1.2.2" - std-env "^3.1.1" + std-env "^3.2.1" -"@nuxt/ui-templates@^0.1.1": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@nuxt/ui-templates/-/ui-templates-0.1.1.tgz#78725509b078ff874ac8ea0aed82d4e0eee0662c" - integrity sha512-ejiWi7RJfUp71K5IRpfrhoiZcvxhn1K+YH5mWdwwCT7jeQyE+Ok6WdFMpSg4LYy8YsVw6XHr5I+g23OCebc24w== +"@nuxt/ui-templates@^0.3.2": + version "0.3.3" + resolved "https://registry.yarnpkg.com/@nuxt/ui-templates/-/ui-templates-0.3.3.tgz#036af24dc536f1bce3cd3a89d64d4ea087bc2a9e" + integrity sha512-EgxICRWv+VCkt3wjCuJUJqNOFACF3h6FX3Mj+hDXshf6ECvl/y8BWEVGC5T2N8tE/bFcNC6rEJxPsp4s+4+XOQ== -"@nuxt/vite-builder@^3.0.0-rc.3": - version "3.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@nuxt/vite-builder/-/vite-builder-3.0.0-rc.3.tgz#f8b4f463f0aedbcdc17356579a34c8cda67b123e" - integrity sha512-C1IPoUADHYWvlNHJIJzj1gm+rqCVYqbJ+YeKANG118TtVa1mB2t9R+FgMO4AE/oOfmd4nUrbNDPreUoIBaL6kg== +"@nuxt/vite-builder@3.0.0-rc.9": + version "3.0.0-rc.9" + resolved "https://registry.yarnpkg.com/@nuxt/vite-builder/-/vite-builder-3.0.0-rc.9.tgz#efef58ae2093d522f0f94164ebfd69f0609ea735" + integrity sha512-6tHUNKiGQVxGypq5qfr4wqv81+Dt/X0dRceeMZOB1pGdz+KgWGqRbXDILeRXH+R7Ew8c5XuNXdA7g6E9vxmvow== dependencies: - "@nuxt/kit" "^3.0.0-rc.3" - "@vitejs/plugin-vue" "^2.3.2" - "@vitejs/plugin-vue-jsx" "^1.3.10" - autoprefixer "^10.4.7" + "@nuxt/kit" "3.0.0-rc.9" + "@rollup/plugin-replace" "^4.0.0" + "@vitejs/plugin-vue" "^3.0.3" + "@vitejs/plugin-vue-jsx" "^2.0.1" + autoprefixer "^10.4.8" chokidar "^3.5.3" - cssnano "^5.1.7" - defu "^6.0.0" - esbuild "^0.14.38" + cssnano "^5.1.13" + defu "^6.1.0" + esbuild "^0.15.6" escape-string-regexp "^5.0.0" - externality "^0.2.1" + estree-walker "^3.0.1" + externality "^0.2.2" fs-extra "^10.1.0" - get-port-please "^2.5.0" - h3 "^0.7.8" - knitwork "^0.1.1" - magic-string "^0.26.1" - mlly "^0.5.2" - pathe "^0.3.0" + get-port-please "^2.6.1" + h3 "^0.7.19" + knitwork "^0.1.2" + magic-string "^0.26.3" + mlly "^0.5.14" + ohash "^0.1.5" + pathe "^0.3.5" perfect-debounce "^0.1.3" - postcss "^8.4.13" - postcss-import "^14.1.0" + pkg-types "^0.3.4" + postcss "^8.4.16" + postcss-import "^15.0.0" postcss-url "^10.1.3" - rollup "^2.72.1" - rollup-plugin-visualizer "^5.6.0" - ufo "^0.8.4" - unplugin "^0.6.3" - vite "^2.9.8" - vite-node "^0.12.1" - vite-plugin-checker "^0.4.6" - -"@nuxthq/admin@npm:@nuxthq/admin-edge@latest": - version "0.0.1-27556623.cee307a" - resolved "https://registry.yarnpkg.com/@nuxthq/admin-edge/-/admin-edge-0.0.1-27556623.cee307a.tgz#8beb83982308e451f16f30f0a000695fb11392d5" - integrity sha512-y8ivZ630z77J7N+muBV/K3Y80LA7qhWL1nQqw47tX7eYIlimEnc4Lc9mU3U6koqCn8uyxE+4eBNT+8M4xSoahA== + rollup "^2.79.0" + rollup-plugin-visualizer "^5.8.0" + ufo "^0.8.5" + unplugin "^0.9.2" + vite "~3.0.9" + vite-node "^0.22.1" + vite-plugin-checker "^0.5.0" + vue-bundle-renderer "^0.4.2" + +"@nuxtjs/color-mode@^3.1.4": + version "3.1.4" + resolved "https://registry.yarnpkg.com/@nuxtjs/color-mode/-/color-mode-3.1.4.tgz#7b54af2b3a21d07acac158ded8b2e8f45b4d4a24" + integrity sha512-3pxZNbZCFCzBgkyJLU/YvC2L2l1yRvITuD91zfJoIGm52PTx66y/Q1/UW8i9YFDVhJvvRd67s6eWvgaKQtTPlw== dependencies: "@nuxt/kit" "^3.0.0-rc.3" - nuxt-component-meta "^0.1.5" - socket.io-client "^4.5.1" - unstorage "^0.4.1" - -"@nuxtjs/color-mode@^3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@nuxtjs/color-mode/-/color-mode-3.0.3.tgz#f5b332f4383f169759ccb31e60fad1537d67adc8" - integrity sha512-FQVyLgRQ4C4C5NmTBrFRNm+LNjgT4cPFqyqfoRxD6hfVZhLxWJfKPGUaT8H/BCeBzkZZ29583MG9GqyDX7rnNg== - dependencies: - "@nuxt/kit" "npm:@nuxt/kit-edge@latest" - defu "^5.0.0" lodash.template "^4.5.0" - pathe "^0.2.0" + pathe "^0.3.0" -"@nuxtjs/tailwindcss@^5.1.2": - version "5.1.2" - resolved "https://registry.yarnpkg.com/@nuxtjs/tailwindcss/-/tailwindcss-5.1.2.tgz#4137812ea70ab9067817803124a1606cf851a2e4" - integrity sha512-GURUcEyAE6hsOWbLNGOiu832HX53ff2yrbfFJ7qqkFXnq0RNeaoOip+z5MX2mLcmyxlDtFjNmu2rw2rfCTsvHA== +"@nuxtjs/design-tokens@npm:@nuxtjs/design-tokens-edge@latest": + version "0.0.1-27697647.bbefe85" + resolved "https://registry.yarnpkg.com/@nuxtjs/design-tokens-edge/-/design-tokens-edge-0.0.1-27697647.bbefe85.tgz#46ba6d6f7b4aebd52592dbb7e4b5d249a7b31122" + integrity sha512-VrznFT7IViZZqPMEjkioRIYJlEYRB72FM2mYvzlB/SakWkpv8HXeJn+iHfZJqY/WmvJuZpmuXVDsNnf9cg0o6w== dependencies: - "@nuxt/kit" "^3.0.0-rc.3" + "@nuxt/kit" "^3.0.0-rc.8" + "@stitches/stringify" "^1.2.8" + browser-style-dictionary "^3.1.1-browser.1" + chroma-js "^2.4.2" + csstype "^3.1.0" + json5 "^2.2.1" + paneer "^0.0.1" + postcss-custom-properties "^12.1.8" + postcss-easing-gradients "^3.0.1" + postcss-nested "^5.0.6" + to-ast "^1.0.0" + unplugin-ast "^0.5.5" + untyped "^0.4.7" + +"@nuxtjs/tailwindcss@^5.3.2": + version "5.3.2" + resolved "https://registry.yarnpkg.com/@nuxtjs/tailwindcss/-/tailwindcss-5.3.2.tgz#1c9cb3ac82a5ded7e931a158b90ec5ef566e7bfb" + integrity sha512-otxYJ1uLf5O3xKUpdw8kZkyaAPKj7RRqygxBmjs6fWrLCGM1lg3kda610GdWZY4O9lDjgqtQfjK+13ByhYgsbg== + dependencies: + "@nuxt/kit" "^3.0.0-rc.5" "@nuxt/postcss8" "^1.1.3" - "@types/tailwindcss" "^3.0.10" autoprefixer "^10.4.7" - chalk "^4.1.2" + chalk "^5.0.1" clear-module "^4.1.2" consola "^2.15.3" defu "^6.0.0" postcss "^8.4.14" - postcss-custom-properties "^12.1.7" - postcss-nesting "^10.1.7" - tailwind-config-viewer "^1.7.0" - tailwindcss "^3.0.24" - ufo "^0.8.4" - -"@octokit/auth-token@^2.4.4": - version "2.5.0" - resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-2.5.0.tgz#27c37ea26c205f28443402477ffd261311f21e36" - integrity sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g== + postcss-custom-properties "^12.1.8" + postcss-nesting "^10.1.10" + tailwind-config-viewer "^1.7.1" + tailwindcss "^3.1.6" + ufo "^0.8.5" + +"@nuxtlabs/github-module@npm:@nuxtlabs/github-module-edge@latest": + version "1.3.1-27629534.edb1935" + resolved "https://registry.yarnpkg.com/@nuxtlabs/github-module-edge/-/github-module-edge-1.3.1-27629534.edb1935.tgz#5fef977287f90119711a6b0f4d685a824046adb6" + integrity sha512-+JKUM9fQGzL79Jttxi4/UGlI4RL3EXYRlrxT5igrTosKOlVx0juxG4476zgmmw2RlL0G7A4uTvWC8NTPz1TDoQ== + dependencies: + "@nuxt/kit" "^3.0.0-rc.5" + "@octokit/graphql" "^5.0.0" + "@octokit/rest" "^19.0.3" + remark-github "^11.2.4" + +"@octokit/auth-token@^3.0.0": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-3.0.1.tgz#88bc2baf5d706cb258474e722a720a8365dff2ec" + integrity sha512-/USkK4cioY209wXRpund6HZzHo9GmjakpV9ycOkpMcMxMk7QVcVFVyCMtzvXYiHsB2crgDgrtNYSELYFBXhhaA== dependencies: - "@octokit/types" "^6.0.3" + "@octokit/types" "^7.0.0" -"@octokit/core@^3.5.1": - version "3.6.0" - resolved "https://registry.yarnpkg.com/@octokit/core/-/core-3.6.0.tgz#3376cb9f3008d9b3d110370d90e0a1fcd5fe6085" - integrity sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q== - dependencies: - "@octokit/auth-token" "^2.4.4" - "@octokit/graphql" "^4.5.8" - "@octokit/request" "^5.6.3" - "@octokit/request-error" "^2.0.5" - "@octokit/types" "^6.0.3" +"@octokit/core@^4.0.0": + version "4.0.5" + resolved "https://registry.yarnpkg.com/@octokit/core/-/core-4.0.5.tgz#589e68c0a35d2afdcd41dafceab072c2fbc6ab5f" + integrity sha512-4R3HeHTYVHCfzSAi0C6pbGXV8UDI5Rk+k3G7kLVNckswN9mvpOzW9oENfjfH3nEmzg8y3AmKmzs8Sg6pLCeOCA== + dependencies: + "@octokit/auth-token" "^3.0.0" + "@octokit/graphql" "^5.0.0" + "@octokit/request" "^6.0.0" + "@octokit/request-error" "^3.0.0" + "@octokit/types" "^7.0.0" before-after-hook "^2.2.0" universal-user-agent "^6.0.0" -"@octokit/endpoint@^6.0.1": - version "6.0.12" - resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-6.0.12.tgz#3b4d47a4b0e79b1027fb8d75d4221928b2d05658" - integrity sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA== +"@octokit/endpoint@^7.0.0": + version "7.0.2" + resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-7.0.2.tgz#11ee868406ba7bb1642e61bbe676d641f79f02be" + integrity sha512-8/AUACfE9vpRpehE6ZLfEtzkibe5nfsSwFZVMsG8qabqRt1M81qZYUFRZa1B8w8lP6cdfDJfRq9HWS+MbmR7tw== dependencies: - "@octokit/types" "^6.0.3" + "@octokit/types" "^7.0.0" is-plain-object "^5.0.0" universal-user-agent "^6.0.0" -"@octokit/graphql@^4.5.8", "@octokit/graphql@^4.8.0": - version "4.8.0" - resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-4.8.0.tgz#664d9b11c0e12112cbf78e10f49a05959aa22cc3" - integrity sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg== +"@octokit/graphql@^5.0.0": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-5.0.1.tgz#a06982514ad131fb6fbb9da968653b2233fade9b" + integrity sha512-sxmnewSwAixkP1TrLdE6yRG53eEhHhDTYUykUwdV9x8f91WcbhunIHk9x1PZLALdBZKRPUO2HRcm4kezZ79HoA== dependencies: - "@octokit/request" "^5.6.0" - "@octokit/types" "^6.0.3" + "@octokit/request" "^6.0.0" + "@octokit/types" "^7.0.0" universal-user-agent "^6.0.0" -"@octokit/openapi-types@^11.2.0": - version "11.2.0" - resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-11.2.0.tgz#b38d7fc3736d52a1e96b230c1ccd4a58a2f400a6" - integrity sha512-PBsVO+15KSlGmiI8QAzaqvsNlZlrDlyAJYcrXBCvVUxCp7VnXjkwPoFHgjEJXx3WF9BAwkA6nfCUA7i9sODzKA== +"@octokit/openapi-types@^13.9.0": + version "13.9.0" + resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-13.9.0.tgz#847a31b174b44f33a09615a83bc20eeaa59e9ce0" + integrity sha512-MOYjRyLIM0zzNb9RfEwVK6HLIc2nIF2OMVtMqiNOGbX0SHrQvQbI6X1K16ktmaHr8WUBv+eeul8cD9mz4rNiWQ== -"@octokit/plugin-paginate-rest@^2.16.8": - version "2.17.0" - resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.17.0.tgz#32e9c7cab2a374421d3d0de239102287d791bce7" - integrity sha512-tzMbrbnam2Mt4AhuyCHvpRkS0oZ5MvwwcQPYGtMv4tUa5kkzG58SVB0fcsLulOZQeRnOgdkZWkRUiyBlh0Bkyw== +"@octokit/plugin-paginate-rest@^4.0.0": + version "4.2.2" + resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-4.2.2.tgz#3923b03c0ecf45ff7b3686eba86d2cb2558b30f0" + integrity sha512-oslJFmdcWeB3Q8dzn2WNFBzEAvqCH+cvrjBUhS7uwQxAt5yH91w1eo2flWiR0Rqxh+EijQS5ImoB0iQ3hz7P2Q== dependencies: - "@octokit/types" "^6.34.0" + "@octokit/types" "^7.3.0" "@octokit/plugin-request-log@^1.0.4": version "1.0.4" resolved "https://registry.yarnpkg.com/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz#5e50ed7083a613816b1e4a28aeec5fb7f1462e85" integrity sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA== -"@octokit/plugin-rest-endpoint-methods@^5.12.0": - version "5.13.0" - resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.13.0.tgz#8c46109021a3412233f6f50d28786f8e552427ba" - integrity sha512-uJjMTkN1KaOIgNtUPMtIXDOjx6dGYysdIFhgA52x4xSadQCz3b/zJexvITDVpANnfKPW/+E0xkOvLntqMYpviA== +"@octokit/plugin-rest-endpoint-methods@^6.0.0": + version "6.5.0" + resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-6.5.0.tgz#c793231ddb8926dffeda170f80aeb276fd9f0108" + integrity sha512-+r/tWwc7hI3vYDb+d0hAqbr04Kle6pL+MmGxMDTUn7wIwry5qFXnUA8RCa5CO8EcuHbZLywnqIVRLdM08qV8Ew== dependencies: - "@octokit/types" "^6.34.0" + "@octokit/types" "^7.3.0" deprecation "^2.3.1" -"@octokit/request-error@^2.0.5", "@octokit/request-error@^2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-2.1.0.tgz#9e150357831bfc788d13a4fd4b1913d60c74d677" - integrity sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg== +"@octokit/request-error@^3.0.0": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-3.0.1.tgz#3fd747913c06ab2195e52004a521889dadb4b295" + integrity sha512-ym4Bp0HTP7F3VFssV88WD1ZyCIRoE8H35pXSKwLeMizcdZAYc/t6N9X9Yr9n6t3aG9IH75XDnZ6UeZph0vHMWQ== dependencies: - "@octokit/types" "^6.0.3" + "@octokit/types" "^7.0.0" deprecation "^2.0.0" once "^1.4.0" -"@octokit/request@^5.6.0", "@octokit/request@^5.6.3": - version "5.6.3" - resolved "https://registry.yarnpkg.com/@octokit/request/-/request-5.6.3.tgz#19a022515a5bba965ac06c9d1334514eb50c48b0" - integrity sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A== +"@octokit/request@^6.0.0": + version "6.2.1" + resolved "https://registry.yarnpkg.com/@octokit/request/-/request-6.2.1.tgz#3ceeb22dab09a29595d96594b6720fc14495cf4e" + integrity sha512-gYKRCia3cpajRzDSU+3pt1q2OcuC6PK8PmFIyxZDWCzRXRSIBH8jXjFJ8ZceoygBIm0KsEUg4x1+XcYBz7dHPQ== dependencies: - "@octokit/endpoint" "^6.0.1" - "@octokit/request-error" "^2.1.0" - "@octokit/types" "^6.16.1" + "@octokit/endpoint" "^7.0.0" + "@octokit/request-error" "^3.0.0" + "@octokit/types" "^7.0.0" is-plain-object "^5.0.0" node-fetch "^2.6.7" universal-user-agent "^6.0.0" -"@octokit/rest@^18.12.0": - version "18.12.0" - resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-18.12.0.tgz#f06bc4952fc87130308d810ca9d00e79f6988881" - integrity sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q== +"@octokit/rest@^19.0.3": + version "19.0.4" + resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-19.0.4.tgz#fd8bed1cefffa486e9ae46a9dc608ce81bcfcbdd" + integrity sha512-LwG668+6lE8zlSYOfwPj4FxWdv/qFXYBpv79TWIQEpBLKA9D/IMcWsF/U9RGpA3YqMVDiTxpgVpEW3zTFfPFTA== dependencies: - "@octokit/core" "^3.5.1" - "@octokit/plugin-paginate-rest" "^2.16.8" + "@octokit/core" "^4.0.0" + "@octokit/plugin-paginate-rest" "^4.0.0" "@octokit/plugin-request-log" "^1.0.4" - "@octokit/plugin-rest-endpoint-methods" "^5.12.0" + "@octokit/plugin-rest-endpoint-methods" "^6.0.0" -"@octokit/types@^6.0.3", "@octokit/types@^6.16.1", "@octokit/types@^6.34.0": - version "6.34.0" - resolved "https://registry.yarnpkg.com/@octokit/types/-/types-6.34.0.tgz#c6021333334d1ecfb5d370a8798162ddf1ae8218" - integrity sha512-s1zLBjWhdEI2zwaoSgyOFoKSl109CUcVBCc7biPJ3aAf6LGLU6szDvi31JPU7bxfla2lqfhjbbg/5DdFNxOwHw== +"@octokit/types@^7.0.0", "@octokit/types@^7.3.0": + version "7.3.0" + resolved "https://registry.yarnpkg.com/@octokit/types/-/types-7.3.0.tgz#658f916c4a53b552a8f95f866589abae6dbfc7b5" + integrity sha512-7Ar22AVxsJBYZuPkGQwFQybGt2YjuP6j6Z36bPntIYy3R9qSowB55mXOsb16hc0UqtJkYBrRMVXKlaX1OHsh1g== dependencies: - "@octokit/openapi-types" "^11.2.0" + "@octokit/openapi-types" "^13.9.0" "@rollup/plugin-alias@^3.1.9": version "3.1.9" @@ -838,10 +791,10 @@ dependencies: slash "^3.0.0" -"@rollup/plugin-commonjs@^22.0.0": - version "22.0.0" - resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-22.0.0.tgz#f4d87016e2fbf187a593ab9f46626fe05b59e8bd" - integrity sha512-Ktvf2j+bAO+30awhbYoCaXpBcyPmJbaEUYClQns/+6SNCYFURbvBiNbWgHITEsIgDDWCDUclWRKEuf8cwZCFoQ== +"@rollup/plugin-commonjs@^22.0.2": + version "22.0.2" + resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-22.0.2.tgz#ee8ca8415cda30d383b4096aad5222435b4b69b6" + integrity sha512-//NdP6iIwPbMTcazYsiBMbJW7gfmpHom33u1beiIoHDEM0Q9clvtQB1T0efvMqHeKsGohiHo97BCPCkBXdscwg== dependencies: "@rollup/pluginutils" "^3.1.0" commondir "^1.0.1" @@ -901,7 +854,7 @@ estree-walker "^1.0.1" picomatch "^2.2.2" -"@rollup/pluginutils@^4.2.0", "@rollup/pluginutils@^4.2.1": +"@rollup/pluginutils@^4.2.1": version "4.2.1" resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-4.2.1.tgz#e6c6c3aba0744edce3fb2074922d3776c0af2a6d" integrity sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ== @@ -909,36 +862,37 @@ estree-walker "^2.0.1" picomatch "^2.2.2" -"@socket.io/component-emitter@~3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz#96116f2a912e0c02817345b3c10751069920d553" - integrity sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg== +"@stitches/stringify@^1.2.8": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@stitches/stringify/-/stringify-1.2.8.tgz#0c511d74a2e681f49e64caeb300f08a87400dce8" + integrity sha512-juDrnCsfBlckOu0pFOCzEN8iX6oIbLS7vFlrqXwG0Y6yzS6EnOtbP4NGNtB7XzyF9u82jLoCDq1EmBwsgBssqQ== "@tailwindcss/aspect-ratio@^0.4.0": - version "0.4.0" - resolved "https://registry.yarnpkg.com/@tailwindcss/aspect-ratio/-/aspect-ratio-0.4.0.tgz#c635dd7331cbcc1b111cebdc2647dd3493ebdd3e" - integrity sha512-WJu0I4PpqNPuutpaA9zDUq2JXR+lorZ7PbLcKNLmb6GL9/HLfC7w3CRsMhJF4BbYd/lkY6CfXOvkYpuGnZfkpQ== + version "0.4.2" + resolved "https://registry.yarnpkg.com/@tailwindcss/aspect-ratio/-/aspect-ratio-0.4.2.tgz#9ffd52fee8e3c8b20623ff0dcb29e5c21fb0a9ba" + integrity sha512-8QPrypskfBa7QIMuKHg2TA7BqES6vhBrDLOv8Unb6FcFyd3TjKbc6lcmb9UPQHxfl24sXoJ41ux/H7qQQvfaSQ== "@tailwindcss/forms@^0.5.2": - version "0.5.2" - resolved "https://registry.yarnpkg.com/@tailwindcss/forms/-/forms-0.5.2.tgz#4ef45f9916dcb37838cbe7fecdcc4ba7a7c2ab59" - integrity sha512-pSrFeJB6Bg1Mrg9CdQW3+hqZXAKsBrSG9MAfFLKy1pVA4Mb4W7C0k7mEhlmS2Dfo/otxrQOET7NJiJ9RrS563w== + version "0.5.3" + resolved "https://registry.yarnpkg.com/@tailwindcss/forms/-/forms-0.5.3.tgz#e4d7989686cbcaf416c53f1523df5225332a86e7" + integrity sha512-y5mb86JUoiUgBjY/o6FJSFZSEttfb3Q5gllE4xoKjAAD+vBrnIhE4dViwUuow3va8mpH4s9jyUbUbrRGoRdc2Q== dependencies: mini-svg-data-uri "^1.2.3" "@tailwindcss/line-clamp@^0.4.0": - version "0.4.0" - resolved "https://registry.yarnpkg.com/@tailwindcss/line-clamp/-/line-clamp-0.4.0.tgz#03353e31e77636b785f2336e8c978502cec1de81" - integrity sha512-HQZo6gfx1D0+DU3nWlNLD5iA6Ef4JAXh0LeD8lOGrJwEDBwwJNKQza6WoXhhY1uQrxOuU8ROxV7CqiQV4CoiLw== + version "0.4.2" + resolved "https://registry.yarnpkg.com/@tailwindcss/line-clamp/-/line-clamp-0.4.2.tgz#f353c5a8ab2c939c6267ac5b907f012e5ee130f9" + integrity sha512-HFzAQuqYCjyy/SX9sLGB1lroPzmcnWv1FHkIpmypte10hptf4oPUfucryMKovZh2u0uiS9U5Ty3GghWfEJGwVw== -"@tailwindcss/typography@^0.5.2": - version "0.5.2" - resolved "https://registry.yarnpkg.com/@tailwindcss/typography/-/typography-0.5.2.tgz#24b069dab24d7a2467d01aca0dd432cb4b29f0ee" - integrity sha512-coq8DBABRPFcVhVIk6IbKyyHUt7YTEC/C992tatFB+yEx5WGBQrCgsSFjxHUr8AWXphWckadVJbominEduYBqw== +"@tailwindcss/typography@^0.5.4": + version "0.5.7" + resolved "https://registry.yarnpkg.com/@tailwindcss/typography/-/typography-0.5.7.tgz#e0b95bea787ee14c5a34a74fc824e6fe86ea8855" + integrity sha512-JTTSTrgZfp6Ki4svhPA4mkd9nmQ/j9EfE7SbHJ1cLtthKkpW2OxsFXzSmxbhYbEkfNIyAyhle5p4SYyKRbz/jg== dependencies: lodash.castarray "^4.4.0" lodash.isplainobject "^4.0.6" lodash.merge "^4.6.2" + postcss-selector-parser "6.0.10" "@trysound/sax@0.2.0": version "0.2.0" @@ -953,9 +907,9 @@ "@types/ms" "*" "@types/estree@*": - version "0.0.51" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.51.tgz#cfd70924a25a3fd32b218e5e420e6897e1ac4f40" - integrity sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ== + version "1.0.0" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.0.tgz#5fb2e536c1ae9bf35366eed879e827fa59ca41c2" + integrity sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ== "@types/estree@0.0.39": version "0.0.39" @@ -969,15 +923,6 @@ dependencies: "@types/unist" "*" -"@types/jsdom@^16.2.14": - version "16.2.14" - resolved "https://registry.yarnpkg.com/@types/jsdom/-/jsdom-16.2.14.tgz#26fe9da6a8870715b154bb84cd3b2e53433d8720" - integrity sha512-6BAy1xXEmMuHeAJ4Fv4yXKwBDTGTOseExKE3OaHiNycdHdZw59KfYzrt0DkDluvwmik1HRt6QS7bImxUmpSy+w== - dependencies: - "@types/node" "*" - "@types/parse5" "*" - "@types/tough-cookie" "*" - "@types/json-schema@^7.0.8": version "7.0.11" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" @@ -1001,16 +946,16 @@ integrity sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA== "@types/node@*": - version "17.0.36" - resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.36.tgz#c0d5f2fe76b47b63e0e0efc3d2049a9970d68794" - integrity sha512-V3orv+ggDsWVHP99K3JlwtH20R7J4IhI1Kksgc+64q5VxgfRkQG8Ws3MFm/FZOKDYGy9feGFlZ70/HpCNe9QaA== + version "18.7.15" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.7.15.tgz#20ae1ec80c57ee844b469f968a1cd511d4088b29" + integrity sha512-XnjpaI8Bgc3eBag2Aw4t2Uj/49lLBSStHWfqKvIuXD7FIrZyMLWp8KuAFHAqxMZYTF9l08N1ctUn9YNybZJVmQ== "@types/parse-json@^4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== -"@types/parse5@*", "@types/parse5@^6.0.0": +"@types/parse5@^6.0.0": version "6.0.3" resolved "https://registry.yarnpkg.com/@types/parse5/-/parse5-6.0.3.tgz#705bb349e789efa06f43f128cef51240753424cb" integrity sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g== @@ -1022,59 +967,52 @@ dependencies: "@types/node" "*" -"@types/tailwindcss@^3.0.10": - version "3.0.10" - resolved "https://registry.yarnpkg.com/@types/tailwindcss/-/tailwindcss-3.0.10.tgz#cd54bad9c00b4823e9e33c67af585347f235aa11" - integrity sha512-1UnZIHO0NOPyPlPFV0HuMjki2SHkvG9uBA1ZehWj/OQMSROk503nuNyyfmJSIT289yewxTbKoPG+KLxYRvfIIg== - -"@types/tough-cookie@*": - version "4.0.2" - resolved "https://registry.yarnpkg.com/@types/tough-cookie/-/tough-cookie-4.0.2.tgz#6286b4c7228d58ab7866d19716f3696e03a09397" - integrity sha512-Q5vtl1W5ue16D+nIaW8JWebSSraJVlK+EthKn7e7UcD4KWsaSJ8BqGPXNaPghgtcn/fhvrN17Tv8ksUsQpiplw== - "@types/unist@*", "@types/unist@^2.0.0": version "2.0.6" resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.6.tgz#250a7b16c3b91f672a24552ec64678eeb1d3a08d" integrity sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ== +"@types/web-bluetooth@^0.0.15": + version "0.0.15" + resolved "https://registry.yarnpkg.com/@types/web-bluetooth/-/web-bluetooth-0.0.15.tgz#d60330046a6ed8a13b4a53df3813c44942ebdf72" + integrity sha512-w7hEHXnPMEZ+4nGKl/KDRVpxkwYxYExuHOYXyzIzCDzEZ9ZCGMAewulr9IqJu2LR4N37fcnb1XVeuZ09qgOxhA== + "@typescript/ata@^0.9.3": version "0.9.3" resolved "https://registry.yarnpkg.com/@typescript/ata/-/ata-0.9.3.tgz#3ee8f4a43d071a156f7d0a819442db64025cfce5" integrity sha512-/mETZakA5iOT8j8N8/ZUPLEsvSgMJz+cWt9Le1Q9dEwRXwDzekKXw3tpgrq77gaSxgE/Mn/nvtx8uzS41CmZKQ== -"@vercel/nft@^0.18.2": - version "0.18.2" - resolved "https://registry.yarnpkg.com/@vercel/nft/-/nft-0.18.2.tgz#46ab17e1d631220bfc21c8fe299d10e36514e897" - integrity sha512-Oxy4y5JDh7CMbaxEGjKKzHcnQ1gRQqtfp+x3xvOmZYixXHwaD2RMJDTzaPz0b2B3pgVbbPOHY87wffJPFDaoFg== +"@vercel/nft@^0.22.1": + version "0.22.1" + resolved "https://registry.yarnpkg.com/@vercel/nft/-/nft-0.22.1.tgz#0d91d2a21e3a7f0b23ce1550da9870eac4942828" + integrity sha512-lYYZIoxRurqDOSoVIdBicGnpUIpfyaS5qVjdPq+EfI285WqtZK3NK/dyCkiyBul+X2U2OEhRyeMdXPCHGJbohw== dependencies: "@mapbox/node-pre-gyp" "^1.0.5" acorn "^8.6.0" + async-sema "^3.1.1" bindings "^1.4.0" estree-walker "2.0.2" glob "^7.1.3" graceful-fs "^4.2.9" micromatch "^4.0.2" node-gyp-build "^4.2.2" - node-pre-gyp "^0.13.0" resolve-from "^5.0.0" rollup-pluginutils "^2.8.2" -"@vitejs/plugin-vue-jsx@^1.3.10": - version "1.3.10" - resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue-jsx/-/plugin-vue-jsx-1.3.10.tgz#5b61294ed4334fbc5f5679243fd3ccc448b26044" - integrity sha512-Cf5zznh4yNMiEMBfTOztaDVDmK1XXfgxClzOSUVUc8WAmHzogrCUeM8B05ABzuGtg0D1amfng+mUmSIOFGP3Pw== +"@vitejs/plugin-vue-jsx@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue-jsx/-/plugin-vue-jsx-2.0.1.tgz#563a844964f5b025c828b452d6a9882df7194f9a" + integrity sha512-lmiR1k9+lrF7LMczO0pxtQ8mOn6XeppJDHxnpxkJQpT5SiKz4SKhKdeNstXaTNuR8qZhUo5X0pJlcocn72Y4Jg== dependencies: - "@babel/core" "^7.17.9" + "@babel/core" "^7.18.13" "@babel/plugin-syntax-import-meta" "^7.10.4" - "@babel/plugin-transform-typescript" "^7.16.8" - "@rollup/pluginutils" "^4.2.0" + "@babel/plugin-transform-typescript" "^7.18.12" "@vue/babel-plugin-jsx" "^1.1.1" - hash-sum "^2.0.0" -"@vitejs/plugin-vue@^2.3.2": - version "2.3.3" - resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-2.3.3.tgz#fbf80cc039b82ac21a1acb0f0478de8f61fbf600" - integrity sha512-SmQLDyhz+6lGJhPELsBdzXGc+AcaT8stgkbiTFGpXPe8Tl1tJaBw1A6pxDqDuRsVkD8uscrkx3hA7QDOoKYtyw== +"@vitejs/plugin-vue@^3.0.3": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-3.1.0.tgz#3a423ea6943a450e806da412a911150e928598ed" + integrity sha512-fmxtHPjSOEIRg6vHYDaem+97iwCUg/uSIaTzp98lhELt2ISOQuDo2hbkBdXod0g15IhfPMQmAxh4heUks2zvDA== "@vue/babel-helper-vue-transform-on@^1.0.2": version "1.0.2" @@ -1096,147 +1034,136 @@ html-tags "^3.1.0" svg-tags "^1.0.0" -"@vue/compiler-core@3.2.36": - version "3.2.36" - resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.2.36.tgz#2fa44595308c95610602df54dcb69063ba2c8383" - integrity sha512-bbyZM5hvBicv0PW3KUfVi+x3ylHnfKG7DOn5wM+f2OztTzTjLEyBb/5yrarIYpmnGitVGbjZqDbODyW4iK8hqw== +"@vue/compiler-core@3.2.38": + version "3.2.38" + resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.2.38.tgz#0a2a7bffd2280ac19a96baf5301838a2cf1964d7" + integrity sha512-/FsvnSu7Z+lkd/8KXMa4yYNUiqQrI22135gfsQYVGuh5tqEgOB0XqrUdb/KnCLa5+TmQLPwvyUnKMyCpu+SX3Q== dependencies: "@babel/parser" "^7.16.4" - "@vue/shared" "3.2.36" + "@vue/shared" "3.2.38" estree-walker "^2.0.2" source-map "^0.6.1" -"@vue/compiler-dom@3.2.36": - version "3.2.36" - resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.2.36.tgz#16d911ff163ed5fc8087a01645bf14bb7f325401" - integrity sha512-tcOTAOiW4s24QLnq+ON6J+GRONXJ+A/mqKCORi0LSlIh8XQlNnlm24y8xIL8la+ZDgkdbjarQ9ZqYSvEja6gVA== +"@vue/compiler-dom@3.2.38": + version "3.2.38" + resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.2.38.tgz#53d04ed0c0c62d1ef259bf82f9b28100a880b6fd" + integrity sha512-zqX4FgUbw56kzHlgYuEEJR8mefFiiyR3u96498+zWPsLeh1WKvgIReoNE+U7gG8bCUdvsrJ0JRmev0Ky6n2O0g== dependencies: - "@vue/compiler-core" "3.2.36" - "@vue/shared" "3.2.36" + "@vue/compiler-core" "3.2.38" + "@vue/shared" "3.2.38" -"@vue/compiler-sfc@3.2.36", "@vue/compiler-sfc@^3.2.33": - version "3.2.36" - resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.2.36.tgz#e5065e7c0e5170ffa750e3c3dd93a29db109d0f2" - integrity sha512-AvGb4bTj4W8uQ4BqaSxo7UwTEqX5utdRSMyHy58OragWlt8nEACQ9mIeQh3K4di4/SX+41+pJrLIY01lHAOFOA== +"@vue/compiler-sfc@3.2.38": + version "3.2.38" + resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.2.38.tgz#9e763019471a535eb1fceeaac9d4d18a83f0940f" + integrity sha512-KZjrW32KloMYtTcHAFuw3CqsyWc5X6seb8KbkANSWt3Cz9p2qA8c1GJpSkksFP9ABb6an0FLCFl46ZFXx3kKpg== dependencies: "@babel/parser" "^7.16.4" - "@vue/compiler-core" "3.2.36" - "@vue/compiler-dom" "3.2.36" - "@vue/compiler-ssr" "3.2.36" - "@vue/reactivity-transform" "3.2.36" - "@vue/shared" "3.2.36" + "@vue/compiler-core" "3.2.38" + "@vue/compiler-dom" "3.2.38" + "@vue/compiler-ssr" "3.2.38" + "@vue/reactivity-transform" "3.2.38" + "@vue/shared" "3.2.38" estree-walker "^2.0.2" magic-string "^0.25.7" postcss "^8.1.10" source-map "^0.6.1" -"@vue/compiler-ssr@3.2.36": - version "3.2.36" - resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.2.36.tgz#314f3a9424db58142c3608f48cbda7aa05fc66cb" - integrity sha512-+KugInUFRvOxEdLkZwE+W43BqHyhBh0jpYXhmqw1xGq2dmE6J9eZ8UUSOKNhdHtQ/iNLWWeK/wPZkVLUf3YGaw== +"@vue/compiler-ssr@3.2.38": + version "3.2.38" + resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.2.38.tgz#933b23bf99e667e5078eefc6ba94cb95fd765dfe" + integrity sha512-bm9jOeyv1H3UskNm4S6IfueKjUNFmi2kRweFIGnqaGkkRePjwEcfCVqyS3roe7HvF4ugsEkhf4+kIvDhip6XzQ== dependencies: - "@vue/compiler-dom" "3.2.36" - "@vue/shared" "3.2.36" + "@vue/compiler-dom" "3.2.38" + "@vue/shared" "3.2.38" -"@vue/devtools-api@^6.0.0": - version "6.1.4" - resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-6.1.4.tgz#b4aec2f4b4599e11ba774a50c67fa378c9824e53" - integrity sha512-IiA0SvDrJEgXvVxjNkHPFfDx6SXw0b/TUkqMcDZWNg9fnCAHbTpoo59YfJ9QLFkwa3raau5vSlRVzMSLDnfdtQ== +"@vue/devtools-api@^6.1.4": + version "6.2.1" + resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-6.2.1.tgz#6f2948ff002ec46df01420dfeff91de16c5b4092" + integrity sha512-OEgAMeQXvCoJ+1x8WyQuVZzFo0wcyCmUR3baRVLmKBo1LmYZWMlRiXlux5jd0fqVJu6PfDbOrZItVqUEzLobeQ== -"@vue/reactivity-transform@3.2.36": - version "3.2.36" - resolved "https://registry.yarnpkg.com/@vue/reactivity-transform/-/reactivity-transform-3.2.36.tgz#8426a941b0b09d1b94fc162d4642758183b5d133" - integrity sha512-Jk5o2BhpODC9XTA7o4EL8hSJ4JyrFWErLtClG3NH8wDS7ri9jBDWxI7/549T7JY9uilKsaNM+4pJASLj5dtRwA== +"@vue/reactivity-transform@3.2.38": + version "3.2.38" + resolved "https://registry.yarnpkg.com/@vue/reactivity-transform/-/reactivity-transform-3.2.38.tgz#a856c217b2ead99eefb6fddb1d61119b2cb67984" + integrity sha512-3SD3Jmi1yXrDwiNJqQ6fs1x61WsDLqVk4NyKVz78mkaIRh6d3IqtRnptgRfXn+Fzf+m6B1KxBYWq1APj6h4qeA== dependencies: "@babel/parser" "^7.16.4" - "@vue/compiler-core" "3.2.36" - "@vue/shared" "3.2.36" + "@vue/compiler-core" "3.2.38" + "@vue/shared" "3.2.38" estree-walker "^2.0.2" magic-string "^0.25.7" -"@vue/reactivity@3.2.36", "@vue/reactivity@^3.2.33": - version "3.2.36" - resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.2.36.tgz#026b14e716febffe80cd284fd8a2b33378968646" - integrity sha512-c2qvopo0crh9A4GXi2/2kfGYMxsJW4tVILrqRPydVGZHhq0fnzy6qmclWOhBFckEhmyxmpHpdJtIRYGeKcuhnA== +"@vue/reactivity@3.2.38", "@vue/reactivity@^3.2.38": + version "3.2.38" + resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.2.38.tgz#d576fdcea98eefb96a1f1ad456e289263e87292e" + integrity sha512-6L4myYcH9HG2M25co7/BSo0skKFHpAN8PhkNPM4xRVkyGl1K5M3Jx4rp5bsYhvYze2K4+l+pioN4e6ZwFLUVtw== dependencies: - "@vue/shared" "3.2.36" + "@vue/shared" "3.2.38" -"@vue/runtime-core@3.2.36": - version "3.2.36" - resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.2.36.tgz#be5115e665679c26bf3807d2326675dc1d847134" - integrity sha512-PTWBD+Lub+1U3/KhbCExrfxyS14hstLX+cBboxVHaz+kXoiDLNDEYAovPtxeTutbqtClIXtft+wcGdC+FUQ9qQ== +"@vue/runtime-core@3.2.38": + version "3.2.38" + resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.2.38.tgz#d19cf591c210713f80e6a94ffbfef307c27aea06" + integrity sha512-kk0qiSiXUU/IKxZw31824rxmFzrLr3TL6ZcbrxWTKivadoKupdlzbQM4SlGo4MU6Zzrqv4fzyUasTU1jDoEnzg== dependencies: - "@vue/reactivity" "3.2.36" - "@vue/shared" "3.2.36" + "@vue/reactivity" "3.2.38" + "@vue/shared" "3.2.38" -"@vue/runtime-dom@3.2.36": - version "3.2.36" - resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.2.36.tgz#cd5d403ea23c18ee7c17767103a1b2f8263c54bb" - integrity sha512-gYPYblm7QXHVuBohqNRRT7Wez0f2Mx2D40rb4fleehrJU9CnkjG0phhcGEZFfGwCmHZRqBCRgbFWE98bPULqkg== +"@vue/runtime-dom@3.2.38": + version "3.2.38" + resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.2.38.tgz#fec711f65c2485991289fd4798780aa506469b48" + integrity sha512-4PKAb/ck2TjxdMSzMsnHViOrrwpudk4/A56uZjhzvusoEU9xqa5dygksbzYepdZeB5NqtRw5fRhWIiQlRVK45A== dependencies: - "@vue/runtime-core" "3.2.36" - "@vue/shared" "3.2.36" + "@vue/runtime-core" "3.2.38" + "@vue/shared" "3.2.38" csstype "^2.6.8" -"@vue/server-renderer@3.2.36": - version "3.2.36" - resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.2.36.tgz#1e7c1cf63bd17df7828d04e8c780ee6ca7a9ed7c" - integrity sha512-uZE0+jfye6yYXWvAQYeHZv+f50sRryvy16uiqzk3jn8hEY8zTjI+rzlmZSGoE915k+W/Ol9XSw6vxOUD8dGkUg== +"@vue/server-renderer@3.2.38": + version "3.2.38" + resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.2.38.tgz#01a4c0f218e90b8ad1815074208a1974ded109aa" + integrity sha512-pg+JanpbOZ5kEfOZzO2bt02YHd+ELhYP8zPeLU1H0e7lg079NtuuSB8fjLdn58c4Ou8UQ6C1/P+528nXnLPAhA== dependencies: - "@vue/compiler-ssr" "3.2.36" - "@vue/shared" "3.2.36" + "@vue/compiler-ssr" "3.2.38" + "@vue/shared" "3.2.38" -"@vue/shared@3.2.36", "@vue/shared@^3.2.33": - version "3.2.36" - resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.2.36.tgz#35e11200542cf29068ba787dad57da9bdb82f644" - integrity sha512-JtB41wXl7Au3+Nl3gD16Cfpj7k/6aCroZ6BbOiCMFCMvrOpkg/qQUXTso2XowaNqBbnkuGHurLAqkLBxNGc1hQ== +"@vue/shared@3.2.38", "@vue/shared@^3.2.38": + version "3.2.38" + resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.2.38.tgz#e823f0cb2e85b6bf43430c0d6811b1441c300f3c" + integrity sha512-dTyhTIRmGXBjxJE+skC8tTWCGLCVc4wQgRRLt8+O9p5ewBAjoBwtCAkLPrtToSr1xltoe3st21Pv953aOZ7alg== -"@vueuse/core@8.5.0", "@vueuse/core@^8.0.1", "@vueuse/core@^8.5.0": - version "8.5.0" - resolved "https://registry.yarnpkg.com/@vueuse/core/-/core-8.5.0.tgz#2b7548e52165c88e1463756c36188e105d806543" - integrity sha512-VEJ6sGNsPlUp0o9BGda2YISvDZbhWJSOJu5zlp2TufRGVrLcYUKr31jyFEOj6RXzG3k/H4aCYeZyjpItfU8glw== +"@vueuse/core@9.2.0", "@vueuse/core@^9.1.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@vueuse/core/-/core-9.2.0.tgz#58e3588b9bc5a69010aa9104b00056ee9ebff738" + integrity sha512-/MZ6qpz6uSyaXrtoeBWQzAKRG3N7CvfVWvQxiM3ei3Xe5ydOjjtVbo7lGl9p8dECV93j7W8s63A8H0kFLpLyxg== dependencies: - "@vueuse/metadata" "8.5.0" - "@vueuse/shared" "8.5.0" + "@types/web-bluetooth" "^0.0.15" + "@vueuse/metadata" "9.2.0" + "@vueuse/shared" "9.2.0" vue-demi "*" -"@vueuse/head@^0.7.6": - version "0.7.6" - resolved "https://registry.yarnpkg.com/@vueuse/head/-/head-0.7.6.tgz#39eb2aa593db6f02d10ba469b33d8cfbce038183" - integrity sha512-cOWqCkT3WiF5oEpw+VVEWUJd9RLD5rc7DmnFp3cePsejp+t7686uKD9Z9ZU7Twb7R/BI8iexKTmXo9D/F3v6UA== - -"@vueuse/metadata@8.5.0": - version "8.5.0" - resolved "https://registry.yarnpkg.com/@vueuse/metadata/-/metadata-8.5.0.tgz#1aaa3787922cfda0f38243aaa7779366a669b4db" - integrity sha512-WxsD+Cd+bn+HcjpY6Dl9FJ8ywTRTT9pTwk3bCQpzEhXVYAyNczKDSahk50fCfIJKeWHhyI4B2+/ZEOxQAkUr0g== - -"@vueuse/motion@2.0.0-beta.12": - version "2.0.0-beta.12" - resolved "https://registry.yarnpkg.com/@vueuse/motion/-/motion-2.0.0-beta.12.tgz#5ce0afd04f1991a87370ce90907e3979b82f6380" - integrity sha512-cAZqXexLX6xo+H1N1Mv+wBSSqG4wB+BdjIuHQ50jwlelXCDxSi8gj0K/9nDS+aUZtWh6YMwS6UGCKg58jMVglA== - dependencies: - "@vueuse/core" "^8.0.1" - "@vueuse/shared" "^8.0.1" - framesync "^6.1.0" - popmotion "^11.0.3" - style-value-types "^5.1.0" +"@vueuse/head@^0.7.9": + version "0.7.9" + resolved "https://registry.yarnpkg.com/@vueuse/head/-/head-0.7.9.tgz#888ab87667ab6dbe6edba10d176fa91c1b0ec021" + integrity sha512-5wnRiH2XIUSLLXJDLDDTcpvAg5QXgTIVZl46AU7to/T91KHsdBLHSE4WhRO7kP0jbkAhlxnx64E29cQtwBrMjg== + +"@vueuse/metadata@9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@vueuse/metadata/-/metadata-9.2.0.tgz#6bf7c9c44b9f5ece405837226a0e04a997994458" + integrity sha512-exN4KE6iquxDCdt72BgEhb3tlOpECtD61AUdXnUqBTIUCl70x1Ar/QXo3bYcvxmdMS2/peQyfeTzBjRTpvL5xw== + +"@vueuse/nuxt@^9.1.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@vueuse/nuxt/-/nuxt-9.2.0.tgz#3c1f1c1d3b534541cd8585769de06b8aa13b8a59" + integrity sha512-SztYIO0R4paBsuR4N1q+XHiqj0J2Go0dvQ7sHX8IPXbSjwORPOmK6Oo7i4SEWrWwz3Q+B1mrnlP19lR00K9Sqw== + dependencies: + "@nuxt/kit" "^3.0.0-rc.9" + "@vueuse/core" "9.2.0" + "@vueuse/metadata" "9.2.0" + local-pkg "^0.4.2" vue-demi "*" -"@vueuse/nuxt@^8.5.0": - version "8.5.0" - resolved "https://registry.yarnpkg.com/@vueuse/nuxt/-/nuxt-8.5.0.tgz#392617df38d56f87b705f5feef4af27544371f6c" - integrity sha512-riGrDwlTQbjSDxyw46oc1catXpZwzzRrEk+PTy8NQZG6uevgJ8wNuAhPVx/5oG0jYG/t2orIFfc9xGEA6uytSg== - dependencies: - "@nuxt/kit" "^3.0.0-rc.2" - "@vueuse/core" "8.5.0" - "@vueuse/metadata" "8.5.0" - local-pkg "^0.4.1" - vue-demi "*" - -"@vueuse/shared@8.5.0", "@vueuse/shared@^8.0.1": - version "8.5.0" - resolved "https://registry.yarnpkg.com/@vueuse/shared/-/shared-8.5.0.tgz#fa01ecd3161933f521dd6428b9ef8015ded1bbd3" - integrity sha512-qKG+SZb44VvGD4dU5cQ63z4JE2Yk39hQUecR0a9sEdJA01cx+XrxAvFKJfPooxwoiqalAVw/ktWK6xbyc/jS3g== +"@vueuse/shared@9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@vueuse/shared/-/shared-9.2.0.tgz#7831051b2c1d01c3413c749468ee53a86024510e" + integrity sha512-NnRp/noSWuXW0dKhZK5D0YLrDi0nmZ18UeEgwXQq7Ul5TTP93lcNnKjrHtd68j2xFB/l59yPGFlCryL692bnrA== dependencies: vue-demi "*" @@ -1272,10 +1199,10 @@ acorn@^7.0.0: resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== -acorn@^8.5.0, acorn@^8.6.0, acorn@^8.7.0, acorn@^8.7.1: - version "8.7.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.1.tgz#0197122c843d1bf6d0a5e83220a788f278f63c30" - integrity sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A== +acorn@^8.5.0, acorn@^8.6.0, acorn@^8.7.1, acorn@^8.8.0: + version "8.8.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.0.tgz#88c0187620435c7f6015803f5539dae05a9dbea8" + integrity sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w== agent-base@6: version "6.0.2" @@ -1299,33 +1226,30 @@ ajv@^6.12.5: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ajv@^8.0.1: - version "8.11.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.11.0.tgz#977e91dd96ca669f54a11e23e378e33b884a565f" - integrity sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg== - dependencies: - fast-deep-equal "^3.1.1" - json-schema-traverse "^1.0.0" - require-from-string "^2.0.2" - uri-js "^4.2.2" - -ansi-escapes@^4.2.1, ansi-escapes@^4.3.0: +ansi-escapes@^4.3.0: version "4.3.2" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== dependencies: type-fest "^0.21.3" -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - integrity sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA== +ansi-escapes@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-5.0.0.tgz#b6a0caf0eef0c41af190e9a749e0c00ec04bb2a6" + integrity sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA== + dependencies: + type-fest "^1.0.2" ansi-regex@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== +ansi-regex@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" + integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== + ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" @@ -1340,6 +1264,11 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0: dependencies: color-convert "^2.0.1" +ansi-styles@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.1.0.tgz#87313c102b8118abd57371afab34618bf7350ed3" + integrity sha512-VbqNsoz55SYGczauuup0MFUyXNQviSpFTj1RQtFzmQLk18qbVSpTFFGMT293rmDaQuKCT6InmbuEyUne4mTuxQ== + anymatch@^3.1.2, anymatch@~3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" @@ -1348,11 +1277,6 @@ anymatch@^3.1.2, anymatch@~3.1.2: normalize-path "^3.0.0" picomatch "^2.0.4" -aproba@^1.0.3: - version "1.2.0" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" - integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== - "aproba@^1.0.3 || ^2.0.0": version "2.0.0" resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc" @@ -1400,30 +1324,34 @@ are-we-there-yet@^2.0.0: delegates "^1.0.0" readable-stream "^3.6.0" -are-we-there-yet@~1.1.2: - version "1.1.7" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz#b15474a932adab4ff8a50d9adfa7e4e926f21146" - integrity sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g== - dependencies: - delegates "^1.0.0" - readable-stream "^2.0.6" - -arg@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.1.tgz#eb0c9a8f77786cad2af8ff2b862899842d7b6adb" - integrity sha512-e0hDa9H2Z9AwFkk2qDlwhoMYE4eToKarchkQHovNdLTCYMHZHeRjI71crOh+dio4K6u1IcwubQqo79Ga4CyAQA== +arg@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.2.tgz#c81433cc427c92c4dcf4865142dbca6f15acd59c" + integrity sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg== argparse@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== -astral-regex@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" - integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== +ast-types@0.14.2: + version "0.14.2" + resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.14.2.tgz#600b882df8583e3cd4f2df5fa20fa83759d4bdfd" + integrity sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA== + dependencies: + tslib "^2.0.1" -async@^2.6.2: +ast-types@^0.7.2: + version "0.7.8" + resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.7.8.tgz#902d2e0d60d071bdcd46dc115e1809ed11c138a9" + integrity sha512-RIOpVnVlltB6PcBJ5BMLx+H+6JJ/zjDGU0t7f0L6c2M1dqcK92VQopLBlPQ9R80AVXelfqYgjcPLtHtDbNFg0Q== + +async-sema@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/async-sema/-/async-sema-3.1.1.tgz#e527c08758a0f8f6f9f15f799a173ff3c40ea808" + integrity sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg== + +async@^2.6.4: version "2.6.4" resolved "https://registry.yarnpkg.com/async/-/async-2.6.4.tgz#706b7ff6084664cd7eae713f6f965433b5504221" integrity sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA== @@ -1431,22 +1359,22 @@ async@^2.6.2: lodash "^4.17.14" async@^3.2.3: - version "3.2.3" - resolved "https://registry.yarnpkg.com/async/-/async-3.2.3.tgz#ac53dafd3f4720ee9e8a160628f18ea91df196c9" - integrity sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g== + version "3.2.4" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c" + integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ== at-least-node@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== -autoprefixer@^10.2.5, autoprefixer@^10.4.7: - version "10.4.7" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.7.tgz#1db8d195f41a52ca5069b7593be167618edbbedf" - integrity sha512-ypHju4Y2Oav95SipEcCcI5J7CGPuvz8oat7sUtYj3ClK44bldfvtvcxK6IEK++7rqB7YchDGzweZIBG+SD0ZAA== +autoprefixer@^10.2.5, autoprefixer@^10.4.7, autoprefixer@^10.4.8: + version "10.4.8" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.8.tgz#92c7a0199e1cfb2ad5d9427bd585a3d75895b9e5" + integrity sha512-75Jr6Q/XpTqEf6D2ltS5uMewJIx5irCU1oBYJrWjFenq/m12WRRrz6g15L1EIoYvPLXTbEry7rDOwrcYNj77xw== dependencies: - browserslist "^4.20.3" - caniuse-lite "^1.0.30001335" + browserslist "^4.21.3" + caniuse-lite "^1.0.30001373" fraction.js "^4.2.0" normalize-range "^0.1.2" picocolors "^1.0.0" @@ -1489,7 +1417,7 @@ bindings@^1.4.0: dependencies: file-uri-to-path "1.0.0" -bl@^4.0.3, bl@^4.1.0: +bl@^4.0.3: version "4.1.0" resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== @@ -1498,10 +1426,14 @@ bl@^4.0.3, bl@^4.1.0: inherits "^2.0.4" readable-stream "^3.4.0" -bluebird@^3.5.1: - version "3.7.2" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" - integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== +bl@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/bl/-/bl-5.0.0.tgz#6928804a41e9da9034868e1c50ca88f21f57aea2" + integrity sha512-8vxFNZ0pflFfi0WXA3WQXlj6CaMEwsmh63I1CNp0q+wWv8sD0ARx1KovSQd0l2GkwrMIOyedq0EF1FxI+RCZLQ== + dependencies: + buffer "^6.0.3" + inherits "^2.0.4" + readable-stream "^3.4.0" boolbase@^1.0.0: version "1.0.0" @@ -1516,6 +1448,13 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + braces@^3.0.2, braces@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" @@ -1523,16 +1462,30 @@ braces@^3.0.2, braces@~3.0.2: dependencies: fill-range "^7.0.1" -browserslist@^4.0.0, browserslist@^4.16.6, browserslist@^4.20.2, browserslist@^4.20.3: - version "4.20.3" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.20.3.tgz#eb7572f49ec430e054f56d52ff0ebe9be915f8bf" - integrity sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg== +browser-style-dictionary@^3.1.1-browser.1: + version "3.1.1-browser.1" + resolved "https://registry.yarnpkg.com/browser-style-dictionary/-/browser-style-dictionary-3.1.1-browser.1.tgz#7c73c9559f892b25df1b891f73730a7777e43784" + integrity sha512-Rm9qfZaQBmK0VUuA5DVwz/UGX+4x60BPI2c1EkaiRx6pwcMAJ4VFJIvA4IKnupieDWvm2HdCxDi2sGjeSZl0fw== dependencies: - caniuse-lite "^1.0.30001332" - electron-to-chromium "^1.4.118" - escalade "^3.1.1" - node-releases "^2.0.3" - picocolors "^1.0.0" + chalk "^4.0.0" + change-case "^4.1.2" + commander "^8.3.0" + fs-extra "^10.0.0" + glob "^7.2.0" + json5 "^2.2.0" + jsonc-parser "^3.0.0" + lodash "^4.17.15" + tinycolor2 "^1.4.1" + +browserslist@^4.0.0, browserslist@^4.16.6, browserslist@^4.20.2, browserslist@^4.20.3, browserslist@^4.21.3: + version "4.21.3" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.3.tgz#5df277694eb3c48bc5c4b05af3e8b7e09c5a6d1a" + integrity sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ== + dependencies: + caniuse-lite "^1.0.30001370" + electron-to-chromium "^1.4.202" + node-releases "^2.0.6" + update-browserslist-db "^1.0.5" buffer-crc32@^0.2.1, buffer-crc32@^0.2.13: version "0.2.13" @@ -1552,30 +1505,32 @@ buffer@^5.5.0: base64-js "^1.3.1" ieee754 "^1.1.13" -builtin-modules@^3.0.0: +buffer@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" + integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.2.1" + +builtin-modules@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.3.0.tgz#cae62812b89801e9656336e46223e030386be7b6" integrity sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw== -bundle-runner@^0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/bundle-runner/-/bundle-runner-0.0.1.tgz#d05ff2e3921e2ea3ec810d6b327eeb466ff4483b" - integrity sha512-xevhXw77nJ7wjCRTyo1JYumUNUiZmD0CJEummyLUJbdhub4bZWuplS+Y7nlMq5V9sKJQW+dV/LZR/SlxS5f4LQ== - dependencies: - source-map "^0.7.3" - -c12@^0.2.7: - version "0.2.7" - resolved "https://registry.yarnpkg.com/c12/-/c12-0.2.7.tgz#5eedf9f6bf91b1cf5b99f9b03425e6bd5af9b244" - integrity sha512-ih1nuHbZ6Ltf8Wss96JH6YvKIW5+9+uLAA08LUQAoDrFPGSyvPvQv/QBIRE+dCBWOK4PcwH0ylRkSa9huI1Acw== +c12@^0.2.10: + version "0.2.11" + resolved "https://registry.yarnpkg.com/c12/-/c12-0.2.11.tgz#ffb9048fd4241e948c1793097f2550248ecb1789" + integrity sha512-DOy85AO8HN66IgqCDUmMrLb+r4/z8f8Cu8oUIfERbzi/vxZ/GS99SU7lIMz0EQgJktZp6FtcisuiyCdQ6VaTTQ== dependencies: - defu "^6.0.0" - dotenv "^16.0.0" + defu "^6.1.0" + dotenv "^16.0.2" gittar "^0.1.1" - jiti "^1.12.14" - mlly "^0.5.1" - pathe "^0.2.0" - rc9 "^1.2.1" + jiti "^1.15.0" + mlly "^0.5.14" + pathe "^0.3.7" + pkg-types "^0.3.5" + rc9 "^1.2.2" cache-content-type@^1.0.0: version "1.0.1" @@ -1585,19 +1540,19 @@ cache-content-type@^1.0.0: mime-types "^2.1.18" ylru "^1.2.0" -call-bind@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== - dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" - callsites@^3.0.0, callsites@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== +camel-case@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-4.1.2.tgz#9728072a954f805228225a6deea6b38461e1bd5a" + integrity sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw== + dependencies: + pascal-case "^3.1.2" + tslib "^2.0.3" + camelcase-css@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5" @@ -1618,10 +1573,19 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001332, caniuse-lite@^1.0.30001335: - version "1.0.30001344" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001344.tgz#8a1e7fdc4db9c2ec79a05e9fd68eb93a761888bb" - integrity sha512-0ZFjnlCaXNOAYcV7i+TtdKBp0L/3XEU2MF/x6Du1lrh+SRX4IfzIVL4HNJg5pB2PmFb8rszIGyOvsZnqqRoc2g== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001370, caniuse-lite@^1.0.30001373: + version "1.0.30001390" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001390.tgz#158a43011e7068ef7fc73590e9fd91a7cece5e7f" + integrity sha512-sS4CaUM+/+vqQUlCvCJ2WtDlV81aWtHhqeEVkLokVJJa3ViN4zDxAGfq9R8i1m90uGHxo99cy10Od+lvn3hf0g== + +capital-case@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/capital-case/-/capital-case-1.0.4.tgz#9d130292353c9249f6b00fa5852bee38a717e669" + integrity sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + upper-case-first "^2.0.2" ccount@^2.0.0: version "2.0.1" @@ -1637,7 +1601,7 @@ chalk@^2.0.0: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^4.1.0, chalk@^4.1.1, chalk@^4.1.2: +chalk@^4.0.0, chalk@^4.1.1, chalk@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== @@ -1645,11 +1609,29 @@ chalk@^4.1.0, chalk@^4.1.1, chalk@^4.1.2: ansi-styles "^4.1.0" supports-color "^7.1.0" -chalk@^5.0.1: +chalk@^5.0.0, chalk@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.0.1.tgz#ca57d71e82bb534a296df63bbacc4a1c22b2a4b6" integrity sha512-Fo07WOYGqMfCWHOzSXOt2CxDbC6skS/jO9ynEcmpANMoPrD+W1r1K6Vx7iNm+AQmETU1Xr2t+n8nzkV9t6xh3w== +change-case@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/change-case/-/change-case-4.1.2.tgz#fedfc5f136045e2398c0410ee441f95704641e12" + integrity sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A== + dependencies: + camel-case "^4.1.2" + capital-case "^1.0.4" + constant-case "^3.0.4" + dot-case "^3.0.4" + header-case "^2.0.4" + no-case "^3.0.4" + param-case "^3.0.4" + pascal-case "^3.1.2" + path-case "^3.0.4" + sentence-case "^3.0.4" + snake-case "^3.0.4" + tslib "^2.0.3" + character-entities-html4@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/character-entities-html4/-/character-entities-html4-2.1.0.tgz#1f1adb940c971a4b22ba39ddca6b618dc6e56b2b" @@ -1661,9 +1643,9 @@ character-entities-legacy@^3.0.0: integrity sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ== character-entities@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-2.0.1.tgz#98724833e1e27990dee0bd0f2b8a859c3476aac7" - integrity sha512-OzmutCf2Kmc+6DrFrrPS8/tDh2+DpnrfzdICHWhcVC9eOd0N1PXmQEE1a8iM4IziIAG+8tmTq3K+oo0ubH6RRQ== + version "2.0.2" + resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-2.0.2.tgz#2d09c2e72cd9523076ccb21157dff66ad43fcc22" + integrity sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ== character-reference-invalid@^2.0.0: version "2.0.1" @@ -1700,10 +1682,20 @@ chownr@^2.0.0: resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== -ci-info@^3.3.0: - version "3.3.1" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.3.1.tgz#58331f6f472a25fe3a50a351ae3052936c2c7f32" - integrity sha512-SXgeMX9VwDe7iFFaEWkA5AstuER9YKqy4EhHqr4DVqkwmD9rpVimkMKWHdjn30Ja45txyjhSn63lVX69eVCckg== +chroma-js@^1.3.7: + version "1.4.1" + resolved "https://registry.yarnpkg.com/chroma-js/-/chroma-js-1.4.1.tgz#eb2d9c4d1ff24616be84b35119f4d26f8205f134" + integrity sha512-jTwQiT859RTFN/vIf7s+Vl/Z2LcMrvMv3WUFmd/4u76AdlFC0NTNgqEEFPcRiHmAswPsMiQEDZLM8vX8qXpZNQ== + +chroma-js@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chroma-js/-/chroma-js-2.4.2.tgz#dffc214ed0c11fa8eefca2c36651d8e57cbfb2b0" + integrity sha512-U9eDw6+wt7V8z5NncY2jJfZa+hUH8XEj8FQHgFJTrUFnJfXYf4Ml4adI2vXZOjqRDpFWtYVWypDfZwnJ+HIR4A== + +ci-info@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.3.2.tgz#6d2967ffa407466481c6c90b6e16b3098f080128" + integrity sha512-xmDt/QIAdeZ9+nfdPsaBCpMvHNLFiLdjj59qjqn+6iPe6YmHGQ35sBnQ8uslRBXFmXkiZQOJRjvQeoGppoTjjg== clear-module@^4.1.2: version "4.1.2" @@ -1713,22 +1705,22 @@ clear-module@^4.1.2: parent-module "^2.0.0" resolve-from "^5.0.0" -cli-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" - integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== +cli-cursor@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-4.0.0.tgz#3cecfe3734bf4fe02a8361cbdc0f6fe28c6a57ea" + integrity sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg== dependencies: - restore-cursor "^3.1.0" + restore-cursor "^4.0.0" -cli-spinners@^2.5.0: - version "2.6.1" - resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.6.1.tgz#adc954ebe281c37a6319bfa401e6dd2488ffb70d" - integrity sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g== +cli-spinners@^2.6.1: + version "2.7.0" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.7.0.tgz#f815fd30b5f9eaac02db604c7a231ed7cb2f797a" + integrity sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw== -cli-width@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" - integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== +cli-width@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-4.0.0.tgz#a5622f6a3b0a9e3e711a25f099bf2399f608caf6" + integrity sha512-ZksGS2xpa/bYkNzN3BAw1wEjsLV/ZKOf/CCrJ/QOBsxx6fOARIkwTutxp1XIOIohi6HKmOFjMoK/XaqDVUpEEw== clipboardy@^3.0.0: version "3.0.0" @@ -1763,11 +1755,6 @@ co@^4.6.0: resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ== -code-point-at@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" - integrity sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA== - color-convert@^1.9.0: version "1.9.3" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" @@ -1798,14 +1785,14 @@ color-support@^1.1.2: integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== colord@^2.9.1: - version "2.9.2" - resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.2.tgz#25e2bacbbaa65991422c07ea209e2089428effb1" - integrity sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ== + version "2.9.3" + resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.3.tgz#4f8ce919de456f1d5c1c368c307fe20f3e59fb43" + integrity sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw== -colorette@^2.0.16: - version "2.0.16" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.16.tgz#713b9af84fdb000139f04546bd4a93f62a5085da" - integrity sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g== +colorette@^2.0.19: + version "2.0.19" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.19.tgz#cdf044f47ad41a0f4b56b3a0d5b4e6e1a2d5a798" + integrity sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ== comma-separated-tokens@^2.0.0: version "2.0.2" @@ -1827,7 +1814,7 @@ commander@^7.2.0: resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== -commander@^8.0.0: +commander@^8.0.0, commander@^8.3.0: version "8.3.0" resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== @@ -1857,11 +1844,20 @@ consola@^2.15.3: resolved "https://registry.yarnpkg.com/consola/-/consola-2.15.3.tgz#2e11f98d6a4be71ff72e0bdf07bd23e12cb61550" integrity sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw== -console-control-strings@^1.0.0, console-control-strings@^1.1.0, console-control-strings@~1.1.0: +console-control-strings@^1.0.0, console-control-strings@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ== +constant-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/constant-case/-/constant-case-3.0.4.tgz#3b84a9aeaf4cf31ec45e6bf5de91bdfb0589faf1" + integrity sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + upper-case "^2.0.2" + content-disposition@~0.5.2: version "0.5.4" resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" @@ -1937,10 +1933,10 @@ cross-spawn@^7.0.3: shebang-command "^2.0.0" which "^2.0.1" -css-declaration-sorter@^6.2.2: - version "6.2.2" - resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-6.2.2.tgz#bfd2f6f50002d6a3ae779a87d3a0c5d5b10e0f02" - integrity sha512-Ufadglr88ZLsrvS11gjeu/40Lw74D9Am/Jpr3LlYm5Q4ZP5KdlUhG+6u2EjyXeZcxmZ2h1ebCKngDjolpeLHpg== +css-declaration-sorter@^6.3.0: + version "6.3.1" + resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-6.3.1.tgz#be5e1d71b7a992433fb1c542c7a1b835e45682ec" + integrity sha512-fBffmak0bPAnyqc/HO8C3n2sHrp9wcqQz6ES9koRF2/mLOVAx9zIQ3Y7R29sYCteTPqMCwns4WYQoCX91Xl3+w== css-loader@^5.0.0: version "5.2.7" @@ -1987,12 +1983,12 @@ cssesc@^3.0.0: resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== -cssnano-preset-default@^5.2.10: - version "5.2.10" - resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-5.2.10.tgz#6dfffe6cc3b13f3bb356a42c49a334a98700ef45" - integrity sha512-H8TJRhTjBKVOPltp9vr9El9I+IfYsOMhmXdK0LwdvwJcxYX9oWkY7ctacWusgPWAgQq1vt/WO8v+uqpfLnM7QA== +cssnano-preset-default@^5.2.12: + version "5.2.12" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-5.2.12.tgz#ebe6596ec7030e62c3eb2b3c09f533c0644a9a97" + integrity sha512-OyCBTZi+PXgylz9HAA5kHyoYhfGcYdwFmyaJzWnzxuGRtnMw/kR6ilW9XzlzlRAtB6PLT/r+prYgkef7hngFew== dependencies: - css-declaration-sorter "^6.2.2" + css-declaration-sorter "^6.3.0" cssnano-utils "^3.1.0" postcss-calc "^8.2.3" postcss-colormin "^5.3.0" @@ -2001,7 +1997,7 @@ cssnano-preset-default@^5.2.10: postcss-discard-duplicates "^5.1.0" postcss-discard-empty "^5.1.1" postcss-discard-overridden "^5.1.0" - postcss-merge-longhand "^5.1.5" + postcss-merge-longhand "^5.1.6" postcss-merge-rules "^5.1.2" postcss-minify-font-values "^5.1.0" postcss-minify-gradients "^5.1.1" @@ -2009,14 +2005,14 @@ cssnano-preset-default@^5.2.10: postcss-minify-selectors "^5.2.1" postcss-normalize-charset "^5.1.0" postcss-normalize-display-values "^5.1.0" - postcss-normalize-positions "^5.1.0" - postcss-normalize-repeat-style "^5.1.0" + postcss-normalize-positions "^5.1.1" + postcss-normalize-repeat-style "^5.1.1" postcss-normalize-string "^5.1.0" postcss-normalize-timing-functions "^5.1.0" postcss-normalize-unicode "^5.1.0" postcss-normalize-url "^5.1.0" postcss-normalize-whitespace "^5.1.1" - postcss-ordered-values "^5.1.1" + postcss-ordered-values "^5.1.3" postcss-reduce-initial "^5.1.0" postcss-reduce-transforms "^5.1.0" postcss-svgo "^5.1.0" @@ -2027,12 +2023,12 @@ cssnano-utils@^3.1.0: resolved "https://registry.yarnpkg.com/cssnano-utils/-/cssnano-utils-3.1.0.tgz#95684d08c91511edfc70d2636338ca37ef3a6861" integrity sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA== -cssnano@^5.1.7: - version "5.1.10" - resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.1.10.tgz#fc6ddd9a4d7d238f320634326ed814cf0abf6e1c" - integrity sha512-ACpnRgDg4m6CZD/+8SgnLcGCgy6DDGdkMbOawwdvVxNietTNLe/MtWcenp6qT0PRt5wzhGl6/cjMWCdhKXC9QA== +cssnano@^5.1.13: + version "5.1.13" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.1.13.tgz#83d0926e72955332dc4802a7070296e6258efc0a" + integrity sha512-S2SL2ekdEz6w6a2epXn4CmMKU4K3KpcyXLKfAYc9UQQqJRkD/2eLUG0vJ3Db/9OvO5GuAdgXw3pFbR6abqghDQ== dependencies: - cssnano-preset-default "^5.2.10" + cssnano-preset-default "^5.2.12" lilconfig "^2.0.3" yaml "^1.10.2" @@ -2048,14 +2044,10 @@ csstype@^2.6.8: resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.20.tgz#9229c65ea0b260cf4d3d997cb06288e36a8d6dda" integrity sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA== -csvtojson@^2.0.10: - version "2.0.10" - resolved "https://registry.yarnpkg.com/csvtojson/-/csvtojson-2.0.10.tgz#11e7242cc630da54efce7958a45f443210357574" - integrity sha512-lUWFxGKyhraKCW8Qghz6Z0f2l/PqB1W3AO0HKJzGIQ5JRSlR651ekJDiGJbBT4sRNNv5ddnSGVEnsxP9XRCVpQ== - dependencies: - bluebird "^3.5.1" - lodash "^4.17.3" - strip-bom "^2.0.0" +csstype@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.0.tgz#4ddcac3718d787cf9df0d1b7d15033925c8f29f2" + integrity sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA== cuint@^0.2.2: version "0.2.2" @@ -2074,14 +2066,14 @@ debug@2.6.9: dependencies: ms "2.0.0" -debug@4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4, debug@~4.3.1, debug@~4.3.2: +debug@4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== dependencies: ms "2.1.2" -debug@^3.1.0, debug@^3.1.1, debug@^3.2.6: +debug@^3.1.0, debug@^3.2.7: version "3.2.7" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== @@ -2089,27 +2081,17 @@ debug@^3.1.0, debug@^3.1.1, debug@^3.2.6: ms "^2.1.1" decode-named-character-reference@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/decode-named-character-reference/-/decode-named-character-reference-1.0.1.tgz#57b2bd9112659cacbc449d3577d7dadb8e1f3d1b" - integrity sha512-YV/0HQHreRwKb7uBopyIkLG17jG6Sv2qUchk9qSoVJ2f+flwRsPNBO0hAnjt6mTNYUT+vw9Gy2ihXg4sUWPi2w== + version "1.0.2" + resolved "https://registry.yarnpkg.com/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz#daabac9690874c394c81e4162a0304b35d824f0e" + integrity sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg== dependencies: character-entities "^2.0.0" -decode-uri-component@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" - integrity sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og== - deep-equal@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" integrity sha512-bHtC0iYvWhyaTzvV3CZgPeZQqCOBGyGsVV7v4eevpdkLHfiSrXUdBG+qAuSz4RI70sszvjQ1QSZ98An1yNwpSw== -deep-extend@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" - integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== - deepmerge@^4.2.2: version "4.2.2" resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" @@ -2137,15 +2119,10 @@ defu@^3.2.2: resolved "https://registry.yarnpkg.com/defu/-/defu-3.2.2.tgz#be20f4cc49b9805d54ee6b610658d53894942e97" integrity sha512-8UWj5lNv7HD+kB0e9w77Z7TdQlbUYDVWqITLHNqFIn6khrNHv5WQo38Dcm1f6HeNyZf0U7UbPf6WeZDSdCzGDQ== -defu@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/defu/-/defu-5.0.1.tgz#a034278f9b032bf0845d261aa75e9ad98da878ac" - integrity sha512-EPS1carKg+dkEVy3qNTqIdp2qV7mUP08nIsupfwQpz++slCVRw7qbQyWvSTig+kFPwz2XXp5/kIIkH+CwrJKkQ== - -defu@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/defu/-/defu-6.0.0.tgz#b397a6709a2f3202747a3d9daf9446e41ad0c5fc" - integrity sha512-t2MZGLf1V2rV4VBZbWIaXKdX/mUcYW0n2znQZoADBkGGxYL8EWqCuCZBmJPJ/Yy9fofJkyuuSuo5GSwo0XdEgw== +defu@^6.0.0, defu@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/defu/-/defu-6.1.0.tgz#7a5411655da73335c7d933256911f17c74443e2d" + integrity sha512-pOFYRTIhoKujrmbTRhcW5lYQLBXw/dlTwfI8IguF1QCDJOcJzNH1w+YFjxqy6BAuJrClTy6MUE8q+oKJ2FLsIw== delegates@^1.0.0: version "1.0.0" @@ -2153,9 +2130,9 @@ delegates@^1.0.0: integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ== denque@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/denque/-/denque-2.0.1.tgz#bcef4c1b80dc32efe97515744f21a4229ab8934a" - integrity sha512-tfiWc6BQLXNLpNiR5iGd0Ocu3P3VpxfzFiqubLgMfhfOw9WyvgJBd46CClNn9k3qfbjvT//0cf7AlYRX/OslMQ== + version "2.1.0" + resolved "https://registry.yarnpkg.com/denque/-/denque-2.1.0.tgz#e93e1a6569fb5e66f16a3c2a2964617d349d6ab1" + integrity sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw== depd@2.0.0, depd@^2.0.0, depd@~2.0.0: version "2.0.0" @@ -2173,9 +2150,9 @@ deprecation@^2.0.0, deprecation@^2.3.1: integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ== dequal@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.2.tgz#85ca22025e3a87e65ef75a7a437b35284a7e319d" - integrity sha512-q9K8BlJVxK7hQYqa6XISGmBZbtQQWVXSrRrWreHC94rMt1QL/Impruc+7p2CYSYuVIUr+YCt6hjrs1kkdJRTug== + version "2.0.3" + resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" + integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== destr@^1.1.1: version "1.1.1" @@ -2192,17 +2169,12 @@ detab@^3.0.1: resolved "https://registry.yarnpkg.com/detab/-/detab-3.0.1.tgz#2f1874ccee75b96858cb5efa30d41212a8657baf" integrity sha512-T8gDOoz58xXMsXKLJkKxkyUTRkEpwOBL9w5nFFDJsD/XiFkajkBc2Yz99a/0kW7DGIYq/B1+oqqqru+fZetSvg== -detect-libc@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" - integrity sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg== - detect-libc@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.1.tgz#e1897aa88fa6ad197862937fbc0441ef352ee0cd" integrity sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w== -detective@^5.2.0: +detective@^5.2.1: version "5.2.1" resolved "https://registry.yarnpkg.com/detective/-/detective-5.2.1.tgz#6af01eeda11015acb0e73f933242b70f24f91034" integrity sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw== @@ -2263,6 +2235,14 @@ domutils@^2.8.0: domelementtype "^2.2.0" domhandler "^4.2.0" +dot-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" + integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + dot-prop@^7.2.0: version "7.2.0" resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-7.2.0.tgz#468172a3529779814d21a779c1ba2f6d76609809" @@ -2270,30 +2250,40 @@ dot-prop@^7.2.0: dependencies: type-fest "^2.11.2" -dotenv@^16.0.0: - version "16.0.1" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.0.1.tgz#8f8f9d94876c35dac989876a5d3a82a267fdce1d" - integrity sha512-1K6hR6wtk2FviQ4kEiSjFiH5rpzEVi8WW0x96aztHVMhEspNpc4DVOUTEHtEva5VThQ8IaBX1Pe4gSzpVVUsKQ== +dotenv@^16.0.2: + version "16.0.2" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.0.2.tgz#0b0f8652c016a3858ef795024508cddc4bffc5bf" + integrity sha512-JvpYKUmzQhYoIFgK2MOnF3bciIZoItIIoryihy0rIA+H4Jy0FmgyKYAHCTN98P5ybGSJcIFbh6QKeJdtZd1qhA== duplexer@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== +easing-coordinates@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/easing-coordinates/-/easing-coordinates-2.0.2.tgz#54e5a7f02762b18a0de33460495f6c90a4d0a6b8" + integrity sha512-uQpJaLQX2CKVnN27YvN4sL4pXyEFGAv00y4zgrC46H0EBHrDhJc/8OsT2CQ5/6yz6+d+u8ACGd9bo4v83FNVlg== + +eastasianwidth@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" + integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== + ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== -electron-to-chromium@^1.4.118: - version "1.4.142" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.142.tgz#70cc8871f7c0122b29256089989e67cee637b40d" - integrity sha512-ea8Q1YX0JRp4GylOmX4gFHIizi0j9GfRW4EkaHnkZp0agRCBB4ZGeCv17IEzIvBkiYVwfoKVhKZJbTfqCRdQdg== +electron-to-chromium@^1.4.202: + version "1.4.243" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.243.tgz#9d5f1b10eafd6e434b687a88f1e7b0441dee168a" + integrity sha512-BgLD2gBX43OSXwlT01oYRRD5NIB4n3okTRxkzEAC6G0SZG4TTlyrWMjbOo0fajCwqwpRtMHXQNMjtRN6qpNtfw== -emmet-monaco-es@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/emmet-monaco-es/-/emmet-monaco-es-5.1.0.tgz#f25ffdd9c22a92d3b9f716e15405299fb296f6b6" - integrity sha512-muRcP2MsDLoHkjs9xEfE3qClyACpFanZT+UGDLgkS/dDGg6p1wndm1W7zGvx/NWUgPjeUxG4XNN6wRpV6O31TA== +emmet-monaco-es@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/emmet-monaco-es/-/emmet-monaco-es-5.1.2.tgz#25c58c02349637e4f117932496ebf3ca3a5b0031" + integrity sha512-P+GwbRfzCAN9socNCLj7hdlmjV1J535wYZX9uoXERRGbbfkzcmfz4i43ClDecqCVt6IsbP0RK8AgX370ClMcJA== dependencies: emmet "^2.3.6" @@ -2310,6 +2300,11 @@ emoji-regex@^8.0.0: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== +emoji-regex@^9.2.2: + version "9.2.2" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" + integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== + emojis-list@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" @@ -2332,22 +2327,6 @@ end-of-stream@^1.4.1: dependencies: once "^1.4.0" -engine.io-client@~6.2.1: - version "6.2.2" - resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-6.2.2.tgz#c6c5243167f5943dcd9c4abee1bfc634aa2cbdd0" - integrity sha512-8ZQmx0LQGRTYkHuogVZuGSpDqYZtCM/nv8zQ68VZ+JkOpazJ7ICdsSpaO6iXwvaU30oFg5QJOJWj8zWqhbKjkQ== - dependencies: - "@socket.io/component-emitter" "~3.1.0" - debug "~4.3.1" - engine.io-parser "~5.0.3" - ws "~8.2.3" - xmlhttprequest-ssl "~2.0.0" - -engine.io-parser@~5.0.3: - version "5.0.4" - resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.0.4.tgz#0b13f704fa9271b3ec4f33112410d8f3f41d0fc0" - integrity sha512-+nVFp+5z1E3HcToEnO7ZIj3g+3k9389DvWtvJZz0T6/eOCPIyyxehFcedoYrZQrp0LgQbD9pPXhpMBKMd5QURg== - enhanced-resolve@^4.1.1: version "4.5.0" resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz#2f3cfd84dbe3b487f18f2db2ef1e064a571ca5ec" @@ -2358,9 +2337,9 @@ enhanced-resolve@^4.1.1: tapable "^1.0.0" enhanced-resolve@^5.9.3: - version "5.9.3" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.9.3.tgz#44a342c012cbc473254af5cc6ae20ebd0aae5d88" - integrity sha512-Bq9VSor+kjvW3f9/MiiR4eE3XYgOl7/rS8lnSxbRbF3kS0B2r+Y9w5krBWxZgDxASVZbdYrn5wT4j/Wb0J9qow== + version "5.10.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz#0dc579c3bb2a1032e357ac45b8f3a6f3ad4fb1e6" + integrity sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ== dependencies: graceful-fs "^4.2.4" tapable "^2.2.0" @@ -2384,131 +2363,259 @@ error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -esbuild-android-64@0.14.42: - version "0.14.42" - resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.14.42.tgz#d7ab3d44d3671218d22bce52f65642b12908d954" - integrity sha512-P4Y36VUtRhK/zivqGVMqhptSrFILAGlYp0Z8r9UQqHJ3iWztRCNWnlBzD9HRx0DbueXikzOiwyOri+ojAFfW6A== - -esbuild-android-arm64@0.14.42: - version "0.14.42" - resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.42.tgz#45336d8bec49abddb3a022996a23373f45a57c27" - integrity sha512-0cOqCubq+RWScPqvtQdjXG3Czb3AWI2CaKw3HeXry2eoA2rrPr85HF7IpdU26UWdBXgPYtlTN1LUiuXbboROhg== - -esbuild-darwin-64@0.14.42: - version "0.14.42" - resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.42.tgz#6dff5e44cd70a88c33323e2f5fb598e40c68a9e0" - integrity sha512-ipiBdCA3ZjYgRfRLdQwP82rTiv/YVMtW36hTvAN5ZKAIfxBOyPXY7Cejp3bMXWgzKD8B6O+zoMzh01GZsCuEIA== - -esbuild-darwin-arm64@0.14.42: - version "0.14.42" - resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.42.tgz#2c7313e1b12d2fa5b889c03213d682fb92ca8c4f" - integrity sha512-bU2tHRqTPOaoH/4m0zYHbFWpiYDmaA0gt90/3BMEFaM0PqVK/a6MA2V/ypV5PO0v8QxN6gH5hBPY4YJ2lopXgA== - -esbuild-freebsd-64@0.14.42: - version "0.14.42" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.42.tgz#ad1c5a564a7e473b8ce95ee7f76618d05d6daffc" - integrity sha512-75h1+22Ivy07+QvxHyhVqOdekupiTZVLN1PMwCDonAqyXd8TVNJfIRFrdL8QmSJrOJJ5h8H1I9ETyl2L8LQDaw== - -esbuild-freebsd-arm64@0.14.42: - version "0.14.42" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.42.tgz#4bdb480234144f944f1930829bace7561135ddc7" - integrity sha512-W6Jebeu5TTDQMJUJVarEzRU9LlKpNkPBbjqSu+GUPTHDCly5zZEQq9uHkmHHl7OKm+mQ2zFySN83nmfCeZCyNA== - -esbuild-linux-32@0.14.42: - version "0.14.42" - resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.14.42.tgz#ef18fd19f067e9d2b5f677d6b82fa81519f5a8c2" - integrity sha512-Ooy/Bj+mJ1z4jlWcK5Dl6SlPlCgQB9zg1UrTCeY8XagvuWZ4qGPyYEWGkT94HUsRi2hKsXvcs6ThTOjBaJSMfg== - -esbuild-linux-64@0.14.42: - version "0.14.42" - resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.14.42.tgz#d84e7333b1c1b22cf8b5b9dbb5dd9b2ecb34b79f" - integrity sha512-2L0HbzQfbTuemUWfVqNIjOfaTRt9zsvjnme6lnr7/MO9toz/MJ5tZhjqrG6uDWDxhsaHI2/nsDgrv8uEEN2eoA== - -esbuild-linux-arm64@0.14.42: - version "0.14.42" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.42.tgz#dc19e282f8c4ffbaa470c02a4d171e4ae0180cca" - integrity sha512-c3Ug3e9JpVr8jAcfbhirtpBauLxzYPpycjWulD71CF6ZSY26tvzmXMJYooQ2YKqDY4e/fPu5K8bm7MiXMnyxuA== - -esbuild-linux-arm@0.14.42: - version "0.14.42" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.42.tgz#d49870e63e2242b8156bf473f2ee5154226be328" - integrity sha512-STq69yzCMhdRaWnh29UYrLSr/qaWMm/KqwaRF1pMEK7kDiagaXhSL1zQGXbYv94GuGY/zAwzK98+6idCMUOOCg== - -esbuild-linux-mips64le@0.14.42: - version "0.14.42" - resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.42.tgz#f4e6ff9bf8a6f175470498826f48d093b054fc22" - integrity sha512-QuvpHGbYlkyXWf2cGm51LBCHx6eUakjaSrRpUqhPwjh/uvNUYvLmz2LgPTTPwCqaKt0iwL+OGVL0tXA5aDbAbg== - -esbuild-linux-ppc64le@0.14.42: - version "0.14.42" - resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.42.tgz#ac9c66fc80ba9f8fda15a4cc08f4e55f6c0aed63" - integrity sha512-8ohIVIWDbDT+i7lCx44YCyIRrOW1MYlks9fxTo0ME2LS/fxxdoJBwHWzaDYhjvf8kNpA+MInZvyOEAGoVDrMHg== - -esbuild-linux-riscv64@0.14.42: - version "0.14.42" - resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.42.tgz#21e0ae492a3a9bf4eecbfc916339a66e204256d0" - integrity sha512-DzDqK3TuoXktPyG1Lwx7vhaF49Onv3eR61KwQyxYo4y5UKTpL3NmuarHSIaSVlTFDDpcIajCDwz5/uwKLLgKiQ== - -esbuild-linux-s390x@0.14.42: - version "0.14.42" - resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.42.tgz#06d40b957250ffd9a2183bfdfc9a03d6fd21b3e8" - integrity sha512-YFRhPCxl8nb//Wn6SiS5pmtplBi4z9yC2gLrYoYI/tvwuB1jldir9r7JwAGy1Ck4D7sE7wBN9GFtUUX/DLdcEQ== - -esbuild-netbsd-64@0.14.42: - version "0.14.42" - resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.42.tgz#185664f05f10914f14ed43bd9e22b7de584267f7" - integrity sha512-QYSD2k+oT9dqB/4eEM9c+7KyNYsIPgzYOSrmfNGDIyJrbT1d+CFVKvnKahDKNJLfOYj8N4MgyFaU9/Ytc6w5Vw== - -esbuild-openbsd-64@0.14.42: - version "0.14.42" - resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.42.tgz#c29006f659eb4e55283044bbbd4eb4054fae8839" - integrity sha512-M2meNVIKWsm2HMY7+TU9AxM7ZVwI9havdsw6m/6EzdXysyCFFSoaTQ/Jg03izjCsK17FsVRHqRe26Llj6x0MNA== - -esbuild-sunos-64@0.14.42: - version "0.14.42" - resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.42.tgz#aa9eec112cd1e7105e7bb37000eca7d460083f8f" - integrity sha512-uXV8TAZEw36DkgW8Ak3MpSJs1ofBb3Smkc/6pZ29sCAN1KzCAQzsje4sUwugf+FVicrHvlamCOlFZIXgct+iqQ== - -esbuild-windows-32@0.14.42: - version "0.14.42" - resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.14.42.tgz#c3fc450853c61a74dacc5679de301db23b73e61e" - integrity sha512-4iw/8qWmRICWi9ZOnJJf9sYt6wmtp3hsN4TdI5NqgjfOkBVMxNdM9Vt3626G1Rda9ya2Q0hjQRD9W1o+m6Lz6g== - -esbuild-windows-64@0.14.42: - version "0.14.42" - resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.14.42.tgz#b877aa37ff47d9fcf0ccb1ca6a24b31475a5e555" - integrity sha512-j3cdK+Y3+a5H0wHKmLGTJcq0+/2mMBHPWkItR3vytp/aUGD/ua/t2BLdfBIzbNN9nLCRL9sywCRpOpFMx3CxzA== - -esbuild-windows-arm64@0.14.42: - version "0.14.42" - resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.42.tgz#79da8744626f24bc016dc40d016950b5a4a2bac5" - integrity sha512-+lRAARnF+hf8J0mN27ujO+VbhPbDqJ8rCcJKye4y7YZLV6C4n3pTRThAb388k/zqF5uM0lS5O201u0OqoWSicw== - -esbuild@^0.14.27, esbuild@^0.14.38: - version "0.14.42" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.14.42.tgz#98587df0b024d5f6341b12a1d735a2bff55e1836" - integrity sha512-V0uPZotCEHokJdNqyozH6qsaQXqmZEOiZWrXnds/zaH/0SyrIayRXWRB98CENO73MIZ9T3HBIOsmds5twWtmgw== +esbuild-android-64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.14.54.tgz#505f41832884313bbaffb27704b8bcaa2d8616be" + integrity sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ== + +esbuild-android-64@0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.15.7.tgz#a521604d8c4c6befc7affedc897df8ccde189bea" + integrity sha512-p7rCvdsldhxQr3YHxptf1Jcd86dlhvc3EQmQJaZzzuAxefO9PvcI0GLOa5nCWem1AJ8iMRu9w0r5TG8pHmbi9w== + +esbuild-android-arm64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.54.tgz#8ce69d7caba49646e009968fe5754a21a9871771" + integrity sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg== + +esbuild-android-arm64@0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.15.7.tgz#307b81f1088bf1e81dfe5f3d1d63a2d2a2e3e68e" + integrity sha512-L775l9ynJT7rVqRM5vo+9w5g2ysbOCfsdLV4CWanTZ1k/9Jb3IYlQ06VCI1edhcosTYJRECQFJa3eAvkx72eyQ== + +esbuild-darwin-64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.54.tgz#24ba67b9a8cb890a3c08d9018f887cc221cdda25" + integrity sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug== + +esbuild-darwin-64@0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.15.7.tgz#270117b0c4ec6bcbc5cf3a297a7d11954f007e11" + integrity sha512-KGPt3r1c9ww009t2xLB6Vk0YyNOXh7hbjZ3EecHoVDxgtbUlYstMPDaReimKe6eOEfyY4hBEEeTvKwPsiH5WZg== + +esbuild-darwin-arm64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.54.tgz#3f7cdb78888ee05e488d250a2bdaab1fa671bf73" + integrity sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw== + +esbuild-darwin-arm64@0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.7.tgz#97851eacd11dacb7719713602e3319e16202fc77" + integrity sha512-kBIHvtVqbSGajN88lYMnR3aIleH3ABZLLFLxwL2stiuIGAjGlQW741NxVTpUHQXUmPzxi6POqc9npkXa8AcSZQ== + +esbuild-freebsd-64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.54.tgz#09250f997a56ed4650f3e1979c905ffc40bbe94d" + integrity sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg== + +esbuild-freebsd-64@0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.7.tgz#1de15ffaf5ae916aa925800aa6d02579960dd8c4" + integrity sha512-hESZB91qDLV5MEwNxzMxPfbjAhOmtfsr9Wnuci7pY6TtEh4UDuevmGmkUIjX/b+e/k4tcNBMf7SRQ2mdNuK/HQ== + +esbuild-freebsd-arm64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.54.tgz#bafb46ed04fc5f97cbdb016d86947a79579f8e48" + integrity sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q== + +esbuild-freebsd-arm64@0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.7.tgz#0f160dbf5c9a31a1d8dd87acbbcb1a04b7031594" + integrity sha512-dLFR0ChH5t+b3J8w0fVKGvtwSLWCv7GYT2Y2jFGulF1L5HftQLzVGN+6pi1SivuiVSmTh28FwUhi9PwQicXI6Q== + +esbuild-linux-32@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.14.54.tgz#e2a8c4a8efdc355405325033fcebeb941f781fe5" + integrity sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw== + +esbuild-linux-32@0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.15.7.tgz#422eb853370a5e40bdce8b39525380de11ccadec" + integrity sha512-v3gT/LsONGUZcjbt2swrMjwxo32NJzk+7sAgtxhGx1+ZmOFaTRXBAi1PPfgpeo/J//Un2jIKm/I+qqeo4caJvg== + +esbuild-linux-64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.14.54.tgz#de5fdba1c95666cf72369f52b40b03be71226652" + integrity sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg== + +esbuild-linux-64@0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.15.7.tgz#f89c468453bb3194b14f19dc32e0b99612e81d2b" + integrity sha512-LxXEfLAKwOVmm1yecpMmWERBshl+Kv5YJ/1KnyAr6HRHFW8cxOEsEfisD3sVl/RvHyW//lhYUVSuy9jGEfIRAQ== + +esbuild-linux-arm64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.54.tgz#dae4cd42ae9787468b6a5c158da4c84e83b0ce8b" + integrity sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig== + +esbuild-linux-arm64@0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.7.tgz#68a79d6eb5e032efb9168a0f340ccfd33d6350a1" + integrity sha512-P3cfhudpzWDkglutWgXcT2S7Ft7o2e3YDMrP1n0z2dlbUZghUkKCyaWw0zhp4KxEEzt/E7lmrtRu/pGWnwb9vw== + +esbuild-linux-arm@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.54.tgz#a2c1dff6d0f21dbe8fc6998a122675533ddfcd59" + integrity sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw== + +esbuild-linux-arm@0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.15.7.tgz#2b7c784d0b3339878013dfa82bf5eaf82c7ce7d3" + integrity sha512-JKgAHtMR5f75wJTeuNQbyznZZa+pjiUHV7sRZp42UNdyXC6TiUYMW/8z8yIBAr2Fpad8hM1royZKQisqPABPvQ== + +esbuild-linux-mips64le@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.54.tgz#d9918e9e4cb972f8d6dae8e8655bf9ee131eda34" + integrity sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw== + +esbuild-linux-mips64le@0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.7.tgz#bb8330a50b14aa84673816cb63cc6c8b9beb62cc" + integrity sha512-T7XKuxl0VpeFLCJXub6U+iybiqh0kM/bWOTb4qcPyDDwNVhLUiPcGdG2/0S7F93czUZOKP57YiLV8YQewgLHKw== + +esbuild-linux-ppc64le@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.54.tgz#3f9a0f6d41073fb1a640680845c7de52995f137e" + integrity sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ== + +esbuild-linux-ppc64le@0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.7.tgz#52544e7fa992811eb996674090d0bc41f067a14b" + integrity sha512-6mGuC19WpFN7NYbecMIJjeQgvDb5aMuvyk0PDYBJrqAEMkTwg3Z98kEKuCm6THHRnrgsdr7bp4SruSAxEM4eJw== + +esbuild-linux-riscv64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.54.tgz#618853c028178a61837bc799d2013d4695e451c8" + integrity sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg== + +esbuild-linux-riscv64@0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.7.tgz#a43ae60697992b957e454cbb622f7ee5297e8159" + integrity sha512-uUJsezbswAYo/X7OU/P+PuL/EI9WzxsEQXDekfwpQ23uGiooxqoLFAPmXPcRAt941vjlY9jtITEEikWMBr+F/g== + +esbuild-linux-s390x@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.54.tgz#d1885c4c5a76bbb5a0fe182e2c8c60eb9e29f2a6" + integrity sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA== + +esbuild-linux-s390x@0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.7.tgz#8c76a125dd10a84c166294d77416caaf5e1c7b64" + integrity sha512-+tO+xOyTNMc34rXlSxK7aCwJgvQyffqEM5MMdNDEeMU3ss0S6wKvbBOQfgd5jRPblfwJ6b+bKiz0g5nABpY0QQ== + +esbuild-netbsd-64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.54.tgz#69ae917a2ff241b7df1dbf22baf04bd330349e81" + integrity sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w== + +esbuild-netbsd-64@0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.7.tgz#19b2e75449d7d9c32b5d8a222bac2f1e0c3b08fd" + integrity sha512-yVc4Wz+Pu3cP5hzm5kIygNPrjar/v5WCSoRmIjCPWfBVJkZNb5brEGKUlf+0Y759D48BCWa0WHrWXaNy0DULTQ== + +esbuild-openbsd-64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.54.tgz#db4c8495287a350a6790de22edea247a57c5d47b" + integrity sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw== + +esbuild-openbsd-64@0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.7.tgz#1357b2bf72fd037d9150e751420a1fe4c8618ad7" + integrity sha512-GsimbwC4FSR4lN3wf8XmTQ+r8/0YSQo21rWDL0XFFhLHKlzEA4SsT1Tl8bPYu00IU6UWSJ+b3fG/8SB69rcuEQ== + +esbuild-sunos-64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.54.tgz#54287ee3da73d3844b721c21bc80c1dc7e1bf7da" + integrity sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw== + +esbuild-sunos-64@0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.15.7.tgz#87ab2c604592a9c3c763e72969da0d72bcde91d2" + integrity sha512-8CDI1aL/ts0mDGbWzjEOGKXnU7p3rDzggHSBtVryQzkSOsjCHRVe0iFYUuhczlxU1R3LN/E7HgUO4NXzGGP/Ag== + +esbuild-windows-32@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.14.54.tgz#f8aaf9a5667630b40f0fb3aa37bf01bbd340ce31" + integrity sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w== + +esbuild-windows-32@0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.15.7.tgz#c81e688c0457665a8d463a669e5bf60870323e99" + integrity sha512-cOnKXUEPS8EGCzRSFa1x6NQjGhGsFlVgjhqGEbLTPsA7x4RRYiy2RKoArNUU4iR2vHmzqS5Gr84MEumO/wxYKA== + +esbuild-windows-64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.14.54.tgz#bf54b51bd3e9b0f1886ffdb224a4176031ea0af4" + integrity sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ== + +esbuild-windows-64@0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.15.7.tgz#2421d1ae34b0561a9d6767346b381961266c4eff" + integrity sha512-7MI08Ec2sTIDv+zH6StNBKO+2hGUYIT42GmFyW6MBBWWtJhTcQLinKS6ldIN1d52MXIbiJ6nXyCJ+LpL4jBm3Q== + +esbuild-windows-arm64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.54.tgz#937d15675a15e4b0e4fafdbaa3a01a776a2be982" + integrity sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg== + +esbuild-windows-arm64@0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.7.tgz#7d5e9e060a7b454cb2f57f84a3f3c23c8f30b7d2" + integrity sha512-R06nmqBlWjKHddhRJYlqDd3Fabx9LFdKcjoOy08YLimwmsswlFBJV4rXzZCxz/b7ZJXvrZgj8DDv1ewE9+StMw== + +esbuild@^0.14.47: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.14.54.tgz#8b44dcf2b0f1a66fc22459943dccf477535e9aa2" + integrity sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA== + optionalDependencies: + "@esbuild/linux-loong64" "0.14.54" + esbuild-android-64 "0.14.54" + esbuild-android-arm64 "0.14.54" + esbuild-darwin-64 "0.14.54" + esbuild-darwin-arm64 "0.14.54" + esbuild-freebsd-64 "0.14.54" + esbuild-freebsd-arm64 "0.14.54" + esbuild-linux-32 "0.14.54" + esbuild-linux-64 "0.14.54" + esbuild-linux-arm "0.14.54" + esbuild-linux-arm64 "0.14.54" + esbuild-linux-mips64le "0.14.54" + esbuild-linux-ppc64le "0.14.54" + esbuild-linux-riscv64 "0.14.54" + esbuild-linux-s390x "0.14.54" + esbuild-netbsd-64 "0.14.54" + esbuild-openbsd-64 "0.14.54" + esbuild-sunos-64 "0.14.54" + esbuild-windows-32 "0.14.54" + esbuild-windows-64 "0.14.54" + esbuild-windows-arm64 "0.14.54" + +esbuild@^0.15.6, esbuild@^0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.15.7.tgz#8a1f1aff58671a3199dd24df95314122fc1ddee8" + integrity sha512-7V8tzllIbAQV1M4QoE52ImKu8hT/NLGlGXkiDsbEU5PS6K8Mn09ZnYoS+dcmHxOS9CRsV4IRAMdT3I67IyUNXw== optionalDependencies: - esbuild-android-64 "0.14.42" - esbuild-android-arm64 "0.14.42" - esbuild-darwin-64 "0.14.42" - esbuild-darwin-arm64 "0.14.42" - esbuild-freebsd-64 "0.14.42" - esbuild-freebsd-arm64 "0.14.42" - esbuild-linux-32 "0.14.42" - esbuild-linux-64 "0.14.42" - esbuild-linux-arm "0.14.42" - esbuild-linux-arm64 "0.14.42" - esbuild-linux-mips64le "0.14.42" - esbuild-linux-ppc64le "0.14.42" - esbuild-linux-riscv64 "0.14.42" - esbuild-linux-s390x "0.14.42" - esbuild-netbsd-64 "0.14.42" - esbuild-openbsd-64 "0.14.42" - esbuild-sunos-64 "0.14.42" - esbuild-windows-32 "0.14.42" - esbuild-windows-64 "0.14.42" - esbuild-windows-arm64 "0.14.42" + "@esbuild/linux-loong64" "0.15.7" + esbuild-android-64 "0.15.7" + esbuild-android-arm64 "0.15.7" + esbuild-darwin-64 "0.15.7" + esbuild-darwin-arm64 "0.15.7" + esbuild-freebsd-64 "0.15.7" + esbuild-freebsd-arm64 "0.15.7" + esbuild-linux-32 "0.15.7" + esbuild-linux-64 "0.15.7" + esbuild-linux-arm "0.15.7" + esbuild-linux-arm64 "0.15.7" + esbuild-linux-mips64le "0.15.7" + esbuild-linux-ppc64le "0.15.7" + esbuild-linux-riscv64 "0.15.7" + esbuild-linux-s390x "0.15.7" + esbuild-netbsd-64 "0.15.7" + esbuild-openbsd-64 "0.15.7" + esbuild-sunos-64 "0.15.7" + esbuild-windows-32 "0.15.7" + esbuild-windows-64 "0.15.7" + esbuild-windows-arm64 "0.15.7" escalade@^3.1.1: version "3.1.1" @@ -2530,6 +2637,16 @@ escape-string-regexp@^5.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz#4683126b500b61762f2dbebace1806e8be31b1c8" integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw== +esprima@^2.1.0: + version "2.7.3" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" + integrity sha512-OarPfz0lFCiW4/AV2Oy1Rp9qu0iusTKqykwTspGCZtPxmF81JR4MmIebvF1F9+UOKth2ZubLQ4XGGaU+hSn99A== + +esprima@~4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + estree-walker@2.0.2, estree-walker@^2.0.1, estree-walker@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" @@ -2545,6 +2662,11 @@ estree-walker@^1.0.1: resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700" integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg== +estree-walker@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-3.0.1.tgz#c2a9fb4a30232f5039b7c030b37ead691932debd" + integrity sha512-woY0RUD87WzMBUiZLx8NsYr23N5BKsOMZHhu2hoNRVh6NXGfoiT1KOL8G3UHlJAnEDGmfa5ubNA/AacfG+Kb0g== + etag@^1.8.1, etag@~1.8.1: version "1.8.1" resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" @@ -2584,7 +2706,7 @@ external-editor@^3.0.3: iconv-lite "^0.4.24" tmp "^0.0.33" -externality@^0.2.1: +externality@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/externality/-/externality-0.2.2.tgz#a0592150366ae714f212fe9da20fc9a22c882efa" integrity sha512-seYffJRrRVI3qrCC0asf2mWAvQ/U0jZA+eECylqIxCDHzBs/W+ZeEv3D0bsjNeEewIYZKfELyY96mRactx8C4w== @@ -2623,19 +2745,20 @@ fastq@^1.6.0: reusify "^1.0.4" fetch-blob@^3.1.2, fetch-blob@^3.1.4: - version "3.1.5" - resolved "https://registry.yarnpkg.com/fetch-blob/-/fetch-blob-3.1.5.tgz#0077bf5f3fcdbd9d75a0b5362f77dbb743489863" - integrity sha512-N64ZpKqoLejlrwkIAnb9iLSA3Vx/kjgzpcDhygcqJ2KKjky8nCgUQ+dzXtbrLaWZGZNmNfQTsiQ0weZ1svglHg== + version "3.2.0" + resolved "https://registry.yarnpkg.com/fetch-blob/-/fetch-blob-3.2.0.tgz#f09b8d4bbd45adc6f0c20b7e787e793e309dcce9" + integrity sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ== dependencies: node-domexception "^1.0.0" web-streams-polyfill "^3.0.3" -figures@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" - integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== +figures@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-5.0.0.tgz#126cd055052dea699f8a54e8c9450e6ecfc44d5f" + integrity sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg== dependencies: - escape-string-regexp "^1.0.5" + escape-string-regexp "^5.0.0" + is-unicode-supported "^1.2.0" file-uri-to-path@1.0.0: version "1.0.0" @@ -2649,11 +2772,6 @@ fill-range@^7.0.1: dependencies: to-regex-range "^5.0.1" -filter-obj@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/filter-obj/-/filter-obj-1.1.0.tgz#9b311112bc6c6127a16e016c6c5d7f19e0805c5b" - integrity sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ== - flat@^5.0.0, flat@^5.0.2: version "5.0.2" resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" @@ -2676,20 +2794,6 @@ fraction.js@^4.2.0: resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.2.0.tgz#448e5109a313a3527f5a3ab2119ec4cf0e0e2950" integrity sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA== -framesync@6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/framesync/-/framesync-6.0.1.tgz#5e32fc01f1c42b39c654c35b16440e07a25d6f20" - integrity sha512-fUY88kXvGiIItgNC7wcTOl0SNRCVXMKSWW2Yzfmn7EKNc+MpCzcz9DhdHcdjbrtN3c6R4H5dTY2jiCpPdysEjA== - dependencies: - tslib "^2.1.0" - -framesync@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/framesync/-/framesync-6.1.0.tgz#b22cf9afba52a9a895668b09e033b6a61e901c41" - integrity sha512-aBX+hdWAvwiJYeQlFLY2533VxeL6OEu71CAgV4GGKksrj6+dE6i7K86WSSiRBEARCoJn5bFqffhg4l07eA27tg== - dependencies: - tslib "^2.3.1" - fresh@0.5.2, fresh@~0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" @@ -2700,7 +2804,7 @@ fs-constants@^1.0.0: resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== -fs-extra@^10.1.0: +fs-extra@^10.0.0, fs-extra@^10.1.0: version "10.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf" integrity sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ== @@ -2768,20 +2872,6 @@ gauge@^3.0.0: strip-ansi "^6.0.1" wide-align "^1.1.2" -gauge@~2.7.3: - version "2.7.4" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" - integrity sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg== - dependencies: - aproba "^1.0.3" - console-control-strings "^1.0.0" - has-unicode "^2.0.0" - object-assign "^4.1.0" - signal-exit "^3.0.0" - string-width "^1.0.1" - strip-ansi "^3.0.1" - wide-align "^1.1.0" - gensync@^1.0.0-beta.2: version "1.0.0-beta.2" resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" @@ -2792,19 +2882,10 @@ get-caller-file@^2.0.5: resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-intrinsic@^1.0.2: - version "1.1.1" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" - integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== - dependencies: - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.1" - -get-port-please@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/get-port-please/-/get-port-please-2.5.0.tgz#1e2d40a6f55c02a1caed99991c64ed84afe50c72" - integrity sha512-NblPebBznYARC1R2r1qmusbJAAgBr954gWhEZgwTerzR8r3ud6U5PI1SG4Lue43r87aikPPjObs85VieIDK99A== +get-port-please@^2.6.1: + version "2.6.1" + resolved "https://registry.yarnpkg.com/get-port-please/-/get-port-please-2.6.1.tgz#80143de24fcaab39b01df977f66ad967e06b17d1" + integrity sha512-4PDSrL6+cuMM1xs6w36ZIkaKzzE0xzfVBCfebHIJ3FE8iB9oic/ECwPw3iNiD4h1AoJ5XLLBhEviFAVrZsDC5A== dependencies: fs-memo "^1.2.0" @@ -2818,20 +2899,20 @@ git-config-path@^2.0.0: resolved "https://registry.yarnpkg.com/git-config-path/-/git-config-path-2.0.0.tgz#62633d61af63af4405a5024efd325762f58a181b" integrity sha512-qc8h1KIQbJpp+241id3GuAtkdyJ+IK+LIVtkiFTRKRrmddDzs3SI9CvP1QYmWBFvm1I/PWRwj//of8bgAc0ltA== -git-up@^4.0.0: - version "4.0.5" - resolved "https://registry.yarnpkg.com/git-up/-/git-up-4.0.5.tgz#e7bb70981a37ea2fb8fe049669800a1f9a01d759" - integrity sha512-YUvVDg/vX3d0syBsk/CKUTib0srcQME0JyHkL5BaYdwLsiCslPWmDSi8PUMo9pXYjrryMcmsCoCgsTpSCJEQaA== +git-up@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/git-up/-/git-up-7.0.0.tgz#bace30786e36f56ea341b6f69adfd83286337467" + integrity sha512-ONdIrbBCFusq1Oy0sC71F5azx8bVkvtZtMJAsv+a6lz5YAmbNnLD6HAB4gptHZVLPR8S2/kVN6Gab7lryq5+lQ== dependencies: - is-ssh "^1.3.0" - parse-url "^6.0.0" + is-ssh "^1.4.0" + parse-url "^8.1.0" -git-url-parse@^11.6.0: - version "11.6.0" - resolved "https://registry.yarnpkg.com/git-url-parse/-/git-url-parse-11.6.0.tgz#c634b8de7faa66498a2b88932df31702c67df605" - integrity sha512-WWUxvJs5HsyHL6L08wOusa/IXYtMuCAhrMmnTjQPpBU0TTHyDhnOATNH3xNQz7YOQUsqIIPTGr4xiVti1Hsk5g== +git-url-parse@^13.0.0: + version "13.0.0" + resolved "https://registry.yarnpkg.com/git-url-parse/-/git-url-parse-13.0.0.tgz#9a18d0eaec579fb6379c368aecb09f00b544669c" + integrity sha512-X1kozCqKL82dMrCLi4vie9SHDC+QugKskAMs4VUbIkhURKg5yDwxDmf6Ixg73J+/xVgK5TXKhzn8a94nHJHpnA== dependencies: - git-up "^4.0.0" + git-up "^7.0.0" github-slugger@^1.1.1: version "1.4.0" @@ -2877,10 +2958,10 @@ globals@^11.1.0: resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== -globby@^13.1.1: - version "13.1.1" - resolved "https://registry.yarnpkg.com/globby/-/globby-13.1.1.tgz#7c44a93869b0b7612e38f22ed532bfe37b25ea6f" - integrity sha512-XMzoDZbGZ37tufiv7g0N4F/zp3zkwdFtVbV3EHsVl1KQr4RPLfNoT068/97RPshz2J5xYNEjLKKBKaGHifBd3Q== +globby@^13.1.2: + version "13.1.2" + resolved "https://registry.yarnpkg.com/globby/-/globby-13.1.2.tgz#29047105582427ab6eca4f905200667b056da515" + integrity sha512-LKSDZXToac40u8Q1PQtZihbNdTYSNMuWe+K5l+oa6KgDzSvVrHXlJy40hUP522RjAIoNLJYBJi7ow+rbFpIhHQ== dependencies: dir-glob "^3.0.1" fast-glob "^3.2.11" @@ -2900,15 +2981,15 @@ gzip-size@^7.0.0: dependencies: duplexer "^0.1.2" -h3@^0.7.6, h3@^0.7.8: - version "0.7.8" - resolved "https://registry.yarnpkg.com/h3/-/h3-0.7.8.tgz#98aab2b1128e0f4edf4515d1477e6389230d1388" - integrity sha512-E5hqrzQvQEYVE4h579pLb9gipHagQVZIMP2v83vSKxa40b7ctG1zNylXtW57BT3BGNVeQTccl6vIwyVK1L6lLw== +h3@^0.7.12, h3@^0.7.19, h3@^0.7.21: + version "0.7.21" + resolved "https://registry.yarnpkg.com/h3/-/h3-0.7.21.tgz#2ca1125c6731cf39b0871b3d8cc9c9d27a616f08" + integrity sha512-F/qdr3JKh8zBLiZyiprH5kuzG6vjoTK3nFnIYFUIQPLsw755GI5JezAFc3HJxbgYlzawcGeJlmsw4xu2t/0n/Q== dependencies: cookie-es "^0.5.0" destr "^1.1.1" radix3 "^0.1.2" - ufo "^0.8.3" + ufo "^0.8.5" has-flag@^3.0.0: version "3.0.0" @@ -2920,7 +3001,7 @@ has-flag@^4.0.0: resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has-symbols@^1.0.1, has-symbols@^1.0.2: +has-symbols@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== @@ -2932,7 +3013,7 @@ has-tostringtag@^1.0.0: dependencies: has-symbols "^1.0.2" -has-unicode@^2.0.0, has-unicode@^2.0.1: +has-unicode@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ== @@ -3004,9 +3085,9 @@ hast-util-parse-selector@^3.0.0: "@types/hast" "^2.0.0" hast-util-raw@^7.2.0: - version "7.2.1" - resolved "https://registry.yarnpkg.com/hast-util-raw/-/hast-util-raw-7.2.1.tgz#6e964cee098dbdd93d1b77cf180b5827d48048ab" - integrity sha512-wgtppqXVdXzkDXDFclLLdAyVUJSKMYYi6LWIAbA8oFqEdwksYIcPGM3RkKV1Dfn5GElvxhaOCs0jmCOMayxd3A== + version "7.2.2" + resolved "https://registry.yarnpkg.com/hast-util-raw/-/hast-util-raw-7.2.2.tgz#1974360b2d7f15b5ce26c2a4bac892d5d8185a18" + integrity sha512-0x3BhhdlBcqRIKyc095lBSDvmQNMY3Eulj2PLsT5XCyKYrxssI5yr3P4Kv/PBo1s/DMkZy2voGkMXECnFCZRLQ== dependencies: "@types/hast" "^2.0.0" "@types/parse5" "^6.0.0" @@ -3050,15 +3131,18 @@ hastscript@^7.0.0: property-information "^6.0.0" space-separated-tokens "^2.0.0" -hey-listen@^1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/hey-listen/-/hey-listen-1.0.8.tgz#8e59561ff724908de1aa924ed6ecc84a56a9aa68" - integrity sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q== +header-case@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/header-case/-/header-case-2.0.4.tgz#5a42e63b55177349cf405beb8d775acabb92c063" + integrity sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q== + dependencies: + capital-case "^1.0.4" + tslib "^2.0.3" -hookable@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/hookable/-/hookable-5.1.1.tgz#8e4cf052da4382ee232138cd9425369b9d5b280e" - integrity sha512-7qam9XBFb+DijNBthaL1k/7lHU2TEMZkWSyuqmU3sCQze1wFm5w9AlEx30PD7a+QVAjOy6Ec2goFwe1YVyk2uA== +hookable@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/hookable/-/hookable-5.3.0.tgz#eabdd7bef9e04cb3505c49153b669d5d53974e7d" + integrity sha512-4gTA2q08HT8G32uIW7Jpro3rSXgT2ZTM8R6+r7H7joq90eZlqFPPTvHD6w8WZUohIrbXbDperL96ilb6dkNxNw== html-tags@^3.1.0, html-tags@^3.2.0: version "3.2.0" @@ -3137,7 +3221,7 @@ human-signals@^2.1.0: resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== -iconv-lite@^0.4.24, iconv-lite@^0.4.4: +iconv-lite@^0.4.24: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== @@ -3149,18 +3233,11 @@ icss-utils@^5.0.0, icss-utils@^5.1.0: resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae" integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA== -ieee754@^1.1.13: +ieee754@^1.1.13, ieee754@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== -ignore-walk@^3.0.1: - version "3.0.4" - resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.4.tgz#c9a09f69b7c7b479a5d74ac1a3c0d4236d2a6335" - integrity sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ== - dependencies: - minimatch "^3.0.4" - ignore@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" @@ -3192,7 +3269,7 @@ inherits@2.0.3: resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== -ini@^1.3.5, ini@~1.3.0: +ini@^1.3.5: version "1.3.8" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== @@ -3202,31 +3279,31 @@ inline-style-parser@0.1.1: resolved "https://registry.yarnpkg.com/inline-style-parser/-/inline-style-parser-0.1.1.tgz#ec8a3b429274e9c0a1f1c4ffa9453a7fef72cea1" integrity sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q== -inquirer@^8.2.2: - version "8.2.4" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-8.2.4.tgz#ddbfe86ca2f67649a67daa6f1051c128f684f0b4" - integrity sha512-nn4F01dxU8VeKfq192IjLsxu0/OmMZ4Lg3xKAns148rCaXP6ntAoEkVYZThWjwON8AlzdZZi6oqnhNbxUG9hVg== +inquirer@^9.1.1: + version "9.1.1" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-9.1.1.tgz#e15a12723f4f607d1b4489b56a0ecc7a6965e17d" + integrity sha512-hfS9EJ1pVkGNbYKqzdGwMj0Dqosd36Qvxd5pFy4657QT23gmtFTSqoYBisZR75DReeSMWPNa8J0Lf6TQCz8PvA== dependencies: - ansi-escapes "^4.2.1" - chalk "^4.1.1" - cli-cursor "^3.1.0" - cli-width "^3.0.0" + ansi-escapes "^5.0.0" + chalk "^5.0.1" + cli-cursor "^4.0.0" + cli-width "^4.0.0" external-editor "^3.0.3" - figures "^3.0.0" + figures "^5.0.0" lodash "^4.17.21" mute-stream "0.0.8" - ora "^5.4.1" + ora "^6.1.2" run-async "^2.4.0" - rxjs "^7.5.5" - string-width "^4.1.0" - strip-ansi "^6.0.0" + rxjs "^7.5.6" + string-width "^5.1.2" + strip-ansi "^7.0.1" through "^2.3.6" - wrap-ansi "^7.0.0" + wrap-ansi "^8.0.1" -ioredis@^5.0.4: - version "5.0.5" - resolved "https://registry.yarnpkg.com/ioredis/-/ioredis-5.0.5.tgz#94e51284631b30e15b359cd17de59c48945230fb" - integrity sha512-H+u9YB/cBckDO5lt5+S34gGN1EuIBjjaXk31LivQWfX3G1cqZPYCiwF9qCOkqK2NsKVk+saoUN+fLBz5tc2gFw== +ioredis@^5.2.2: + version "5.2.3" + resolved "https://registry.yarnpkg.com/ioredis/-/ioredis-5.2.3.tgz#d5b37eb13e643241660d6cee4eeb41a026cda8c0" + integrity sha512-gQNcMF23/NpvjCaa1b5YycUyQJ9rBNH2xP94LWinNpodMWVUPP5Ai/xXANn/SM7gfIvI62B5CCvZxhg5pOgyMw== dependencies: "@ioredis/commands" "^1.1.1" cluster-key-slot "^1.1.0" @@ -3274,16 +3351,16 @@ is-buffer@^2.0.0: integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== is-builtin-module@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-3.1.0.tgz#6fdb24313b1c03b75f8b9711c0feb8c30b903b00" - integrity sha512-OV7JjAgOTfAFJmHZLvpSTb4qi0nIILDV1gWPYDnDJUTNFM5aGlRAhk4QcT8i7TuAleeEV5Fdkqn3t4mS+Q11fg== + version "3.2.0" + resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-3.2.0.tgz#bb0310dfe881f144ca83f30100ceb10cf58835e0" + integrity sha512-phDA4oSGt7vl1n5tJvTWooWWAsXLY+2xCnxNqvKhGEzujg+A43wPlPOyDg3C8XQHN+6k/JTQWJ/j0dQh/qr+Hw== dependencies: - builtin-modules "^3.0.0" + builtin-modules "^3.3.0" -is-core-module@^2.8.1: - version "2.9.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.9.0.tgz#e1c34429cd51c6dd9e09e0799e396e27b19a9c69" - integrity sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A== +is-core-module@^2.9.0: + version "2.10.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.10.0.tgz#9012ede0a91c69587e647514e1d5277019e728ed" + integrity sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg== dependencies: has "^1.0.3" @@ -3307,13 +3384,6 @@ is-extglob@^2.1.1: resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== -is-fullwidth-code-point@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" - integrity sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw== - dependencies: - number-is-nan "^1.0.0" - is-fullwidth-code-point@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" @@ -3338,10 +3408,10 @@ is-hexadecimal@^2.0.0: resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz#86b5bf668fca307498d319dfc03289d781a90027" integrity sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg== -is-interactive@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" - integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== +is-interactive@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-2.0.0.tgz#40c57614593826da1100ade6059778d597f16e90" + integrity sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ== is-module@^1.0.0: version "1.0.0" @@ -3354,9 +3424,9 @@ is-number@^7.0.0: integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== is-plain-obj@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-4.0.0.tgz#06c0999fd7574edf5a906ba5644ad0feb3a84d22" - integrity sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw== + version "4.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-4.1.0.tgz#d65025edec3657ce032fd7db63c97883eaed71f0" + integrity sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg== is-plain-object@^5.0.0: version "5.0.0" @@ -3380,27 +3450,22 @@ is-reference@^1.2.1: dependencies: "@types/estree" "*" -is-ssh@^1.3.0: - version "1.3.3" - resolved "https://registry.yarnpkg.com/is-ssh/-/is-ssh-1.3.3.tgz#7f133285ccd7f2c2c7fc897b771b53d95a2b2c7e" - integrity sha512-NKzJmQzJfEEma3w5cJNcUMxoXfDjz0Zj0eyCalHn2E6VOwlzjZo0yuO2fcBSf8zhFuVCL/82/r5gRcoi6aEPVQ== +is-ssh@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/is-ssh/-/is-ssh-1.4.0.tgz#4f8220601d2839d8fa624b3106f8e8884f01b8b2" + integrity sha512-x7+VxdxOdlV3CYpjvRLBv5Lo9OJerlYanjwFrPR9fuGPjCiNiCzFgAWpiLAohSbsnH4ZAys3SBh+hq5rJosxUQ== dependencies: - protocols "^1.1.0" + protocols "^2.0.1" is-stream@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== -is-unicode-supported@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" - integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== - -is-utf8@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" - integrity sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q== +is-unicode-supported@^1.1.0, is-unicode-supported@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-1.2.0.tgz#f4f54f34d8ebc84a46b93559a036763b6d3e1014" + integrity sha512-wH+U77omcRzevfIG8dDhTS0V9zZyweakfD01FULl97+0EHiJTTZtJqxPSkIIo/SDPv/i07k/C9jAPY+jwLLeUQ== is-wsl@^2.1.1, is-wsl@^2.2.0: version "2.2.0" @@ -3428,10 +3493,10 @@ jest-worker@^26.2.1: merge-stream "^2.0.0" supports-color "^7.0.0" -jiti@^1.12.14, jiti@^1.13.0: - version "1.13.0" - resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.13.0.tgz#3cdfc4e651ca0cca4c62ed5e47747b5841d41a8e" - integrity sha512-/n9mNxZj/HDSrincJ6RP+L+yXbpnB8FybySBa+IjIaoH9FIxBbrbRT5XUbe8R7zuVM2AQqNMNDDqz0bzx3znOQ== +jiti@^1.14.0, jiti@^1.15.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.15.0.tgz#cfa7ebfe4a60d77cf3bd4f8630cd99225b638417" + integrity sha512-cClBkETOCVIpPMjX3ULlivuBvmt8l2Xtz+SHrULO06OqdtV0QFR2cuhc4FJnXByjUUX4CY0pl1nph0aFh9D3yA== js-tokens@^4.0.0: version "4.0.0" @@ -3460,20 +3525,15 @@ json-schema-traverse@^0.4.1: resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== -json-schema-traverse@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" - integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== - -json5@^2.1.2, json5@^2.2.1: +json5@^2.1.2, json5@^2.2.0, json5@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c" integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA== -jsonc-parser@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.0.0.tgz#abdd785701c7e7eaca8a9ec8cf070ca51a745a22" - integrity sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA== +jsonc-parser@^3.0.0, jsonc-parser@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.2.0.tgz#31ff3f4c2b9793f89c67212627c51c6394f88e76" + integrity sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w== jsonfile@^6.0.1: version "6.1.0" @@ -3492,19 +3552,19 @@ keygrip@~1.1.0: tsscmp "1.0.6" kleur@^4.0.3: - version "4.1.4" - resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.4.tgz#8c202987d7e577766d039a8cd461934c01cda04d" - integrity sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA== + version "4.1.5" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.5.tgz#95106101795f7050c6c650f350c683febddb1780" + integrity sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ== klona@^2.0.4, klona@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.5.tgz#d166574d90076395d9963aa7a928fabb8d76afbc" integrity sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ== -knitwork@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/knitwork/-/knitwork-0.1.1.tgz#8f3d3a14fd5e81b68149c4b69ae4d5e551cfdb72" - integrity sha512-DxjuhTzCDeXjAcsQuqoZhTFF/wqvaVH2YA7QRhBRpsSeaL44S93hDxyvoluApwk3wjMdia7dc9J0Sj9MHD8rxg== +knitwork@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/knitwork/-/knitwork-0.1.2.tgz#5447a81d8eaede57d236f864ec29b8dc2bc192bf" + integrity sha512-2ekmY2S/VB3YGVhrIFadyJQpkjMFSf48tsXCnA+kjs4FEQIT+5FLyOF0No/X58z/2E/VaMyeJfukRoVT4gMsfQ== koa-compose@^4.1.0: version "4.1.0" @@ -3565,11 +3625,6 @@ koa@^2.12.0: type-is "^1.6.16" vary "^1.1.2" -kolorist@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/kolorist/-/kolorist-1.5.1.tgz#c3d66dc4fabde4f6b7faa6efda84c00491f9e52b" - integrity sha512-lxpCM3HTvquGxKGzHeknB/sUjuVoUElLlfYnXZT73K8geR9jQbroGlSCFBax9/0mpGoD3kzcMLnOlGQPJJNyqQ== - lazystream@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.1.tgz#494c831062f1f9408251ec44db1cba29242a2638" @@ -3577,27 +3632,28 @@ lazystream@^1.0.0: dependencies: readable-stream "^2.0.5" -lilconfig@^2.0.3, lilconfig@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.5.tgz#19e57fd06ccc3848fd1891655b5a447092225b25" - integrity sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg== +lilconfig@^2.0.3, lilconfig@^2.0.5, lilconfig@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.6.tgz#32a384558bd58af3d4c6e077dd1ad1d397bc69d4" + integrity sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg== lines-and-columns@^1.1.6: version "1.2.4" resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== -listhen@^0.2.11: - version "0.2.11" - resolved "https://registry.yarnpkg.com/listhen/-/listhen-0.2.11.tgz#86822ba2990828d95d54d2970d1bd52d6431f7c8" - integrity sha512-AJPi6PByg78TEvmB9XWB15Cgv00MXDT0BWF+8LVFozbF9qLbOPjXXfwxkYIAmGjPOAAsPzBMEYytj7RSBhkaeg== +listhen@^0.2.13, listhen@^0.2.15: + version "0.2.15" + resolved "https://registry.yarnpkg.com/listhen/-/listhen-0.2.15.tgz#1af0f47f94a09d5f3ba4efa5a4b07df65198bb59" + integrity sha512-F/IWj/aJLeokHAIVY+l3JoWRUnbRaf2F0cr+Ybc1YyozMA/yP0C2nf3c0Oi7vAbFvtfiwfWWfP7bIrQc/u5L1A== dependencies: clipboardy "^3.0.0" - colorette "^2.0.16" + colorette "^2.0.19" defu "^6.0.0" - get-port-please "^2.5.0" + get-port-please "^2.6.1" http-shutdown "^1.2.2" selfsigned "^2.0.1" + ufo "^0.8.5" loader-utils@^2.0.0: version "2.0.2" @@ -3608,10 +3664,10 @@ loader-utils@^2.0.0: emojis-list "^3.0.0" json5 "^2.1.2" -local-pkg@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/local-pkg/-/local-pkg-0.4.1.tgz#e7b0d7aa0b9c498a1110a5ac5b00ba66ef38cfff" - integrity sha512-lL87ytIGP2FU5PWwNDo0w3WhIo2gopIAxPg9RxDYF7m4rr5ahuZxP22xnJHIvaLTe4Z9P6uKKY2UHiwyB4pcrw== +local-pkg@^0.4.2: + version "0.4.2" + resolved "https://registry.yarnpkg.com/local-pkg/-/local-pkg-0.4.2.tgz#13107310b77e74a0e513147a131a2ba288176c2f" + integrity sha512-mlERgSPrbxU3BP4qBqAvvwlgW4MTg78iwJdGGnv7kibKjWcJksrG3t6LB5lXI93wXRDvG4NpUgJFmTG4T6rdrg== lodash._reinterpolate@^3.0.0: version "3.0.0" @@ -3683,11 +3739,6 @@ lodash.templatesettings@^4.0.0: dependencies: lodash._reinterpolate "^3.0.0" -lodash.truncate@^4.4.2: - version "4.4.2" - resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" - integrity sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw== - lodash.union@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/lodash.union/-/lodash.union-4.6.0.tgz#48bb5088409f16f1821666641c44dd1aaae3cd88" @@ -3698,24 +3749,31 @@ lodash.uniq@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== -lodash@^4.17.14, lodash@^4.17.21, lodash@^4.17.3: +lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.21: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== -log-symbols@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" - integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== +log-symbols@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-5.1.0.tgz#a20e3b9a5f53fac6aeb8e2bb22c07cf2c8f16d93" + integrity sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA== dependencies: - chalk "^4.1.0" - is-unicode-supported "^0.1.0" + chalk "^5.0.0" + is-unicode-supported "^1.1.0" longest-streak@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-3.0.1.tgz#c97315b7afa0e7d9525db9a5a2953651432bdc5d" integrity sha512-cHlYSUpL2s7Fb3394mYxwTYj8niTaNHUCLr0qdiCXQfSjfuA7CKofpX2uSwEfFDQ0EB7JcnMnm+GjbqqoinYYg== +lower-case@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" + integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== + dependencies: + tslib "^2.0.3" + lru-cache@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" @@ -3730,10 +3788,10 @@ magic-string@^0.25.7: dependencies: sourcemap-codec "^1.4.8" -magic-string@^0.26.1, magic-string@^0.26.2: - version "0.26.2" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.26.2.tgz#5331700e4158cd6befda738bb6b0c7b93c0d4432" - integrity sha512-NzzlXpclt5zAbmo6h6jNc8zl2gNRGHvmsZW4IvZhTC4W7k4OlLP+S5YLussa/r3ixNT66KOQfNORlXHSOy/X4A== +magic-string@^0.26.2, magic-string@^0.26.3: + version "0.26.3" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.26.3.tgz#25840b875140f7b4785ab06bddc384270b7dd452" + integrity sha512-u1Po0NDyFcwdg2nzHT88wSK0+Rih0N1M+Ph1Sp08k8yvFFU3KR72wryS7e1qMPJypt99WB7fIFVCA92mQrMjrg== dependencies: sourcemap-codec "^1.4.8" @@ -3758,18 +3816,18 @@ mdast-squeeze-paragraphs@^5.0.0: unist-util-remove "^3.0.0" mdast-util-definitions@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/mdast-util-definitions/-/mdast-util-definitions-5.1.0.tgz#b6d10ef00a3c4cf191e8d9a5fa58d7f4a366f817" - integrity sha512-5hcR7FL2EuZ4q6lLMUK5w4lHT2H3vqL9quPvYZ/Ku5iifrirfMHiGdhxdXMUbUkDmz5I+TYMd7nbaxUhbQkfpQ== + version "5.1.1" + resolved "https://registry.yarnpkg.com/mdast-util-definitions/-/mdast-util-definitions-5.1.1.tgz#2c1d684b28e53f84938bb06317944bee8efa79db" + integrity sha512-rQ+Gv7mHttxHOBx2dkF4HWTg+EE+UR78ptQWDylzPKaQuVGdG4HIoY3SrS/pCp80nZ04greFvXbVFHT+uf0JVQ== dependencies: "@types/mdast" "^3.0.0" "@types/unist" "^2.0.0" - unist-util-visit "^3.0.0" + unist-util-visit "^4.0.0" mdast-util-find-and-replace@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/mdast-util-find-and-replace/-/mdast-util-find-and-replace-2.2.0.tgz#6167edf16c2fd79e7213024544575f304151953f" - integrity sha512-bz8hUWkMX7UcasORORcyBEsTKJ+dBiFwRPrm43hHC9NMRylIMLbfO5rwfeCN+UtY4AAi7s8WqXftb9eX6ZsqCg== + version "2.2.1" + resolved "https://registry.yarnpkg.com/mdast-util-find-and-replace/-/mdast-util-find-and-replace-2.2.1.tgz#249901ef43c5f41d6e8a8d446b3b63b17e592d7c" + integrity sha512-SobxkQXFAdd4b5WmEakmkVoh18icjQRxGy5OWTCzgsLRm1Fu/KCtwD1HIQSsmq5ZRjVH0Ehwg6/Fn3xIUk+nKw== dependencies: escape-string-regexp "^5.0.0" unist-util-is "^5.0.0" @@ -3850,10 +3908,10 @@ mdast-util-gfm@^2.0.0: mdast-util-gfm-task-list-item "^1.0.0" mdast-util-to-markdown "^1.0.0" -mdast-util-to-hast@^12.1.0, mdast-util-to-hast@^12.1.1: - version "12.1.1" - resolved "https://registry.yarnpkg.com/mdast-util-to-hast/-/mdast-util-to-hast-12.1.1.tgz#89a2bb405eaf3b05eb8bf45157678f35eef5dbca" - integrity sha512-qE09zD6ylVP14jV4mjLIhDBOrpFdShHZcEsYvvKGABlr9mGbV7mTlRWdoFxL/EYSTNDiC9GZXy7y8Shgb9Dtzw== +mdast-util-to-hast@^12.1.0, mdast-util-to-hast@^12.2.1: + version "12.2.1" + resolved "https://registry.yarnpkg.com/mdast-util-to-hast/-/mdast-util-to-hast-12.2.1.tgz#5bba5e8234abcf66ae474cace5d0372c0dc4bfd7" + integrity sha512-dyindR2P7qOqXO1hQirZeGtVbiX7xlNQbw7gGaAwN4A1dh4+X8xU/JyYmRoyB8Fu1uPXzp7mlL5QwW7k+knvgA== dependencies: "@types/hast" "^2.0.0" "@types/mdast" "^3.0.0" @@ -3861,6 +3919,7 @@ mdast-util-to-hast@^12.1.0, mdast-util-to-hast@^12.1.1: mdast-util-definitions "^5.0.0" mdurl "^1.0.0" micromark-util-sanitize-uri "^1.0.0" + trim-lines "^3.0.0" unist-builder "^3.0.0" unist-util-generated "^2.0.0" unist-util-position "^4.0.0" @@ -4249,6 +4308,13 @@ minimatch@^3.0.4, minimatch@^3.1.1: dependencies: brace-expansion "^1.1.7" +minimatch@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.0.tgz#1717b464f4971b144f6aabe8f2d0b8e4511e09c7" + integrity sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg== + dependencies: + brace-expansion "^2.0.1" + minimatch@~3.0.4: version "3.0.8" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.8.tgz#5e6a59bd11e2ab0de1cfb843eb2d82e546c321c1" @@ -4256,7 +4322,7 @@ minimatch@~3.0.4: dependencies: brace-expansion "^1.1.7" -minimist@^1.2.0, minimist@^1.2.6: +minimist@^1.2.6: version "1.2.6" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== @@ -4270,9 +4336,9 @@ minipass@^2.6.0, minipass@^2.9.0: yallist "^3.0.0" minipass@^3.0.0: - version "3.1.6" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.6.tgz#3b8150aa688a711a1521af5e8779c1d3bb4f45ee" - integrity sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ== + version "3.3.4" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.4.tgz#ca99f95dd77c43c7a76bf51e6d200025eee0ffae" + integrity sha512-I9WPbWHCGu8W+6k1ZiGpPu0GkoKBeorkfKNuAFBNS1HNFJvke82sxvI5bzcCNpWPorkOO5QQ+zomzzwRxejXiw== dependencies: yallist "^4.0.0" @@ -4291,7 +4357,7 @@ minizlib@^2.1.1: minipass "^3.0.0" yallist "^4.0.0" -mkdirp@^0.5.1, mkdirp@^0.5.5: +mkdirp@^0.5.1, mkdirp@^0.5.5, mkdirp@^0.5.6: version "0.5.6" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== @@ -4303,23 +4369,20 @@ mkdirp@^1.0.3: resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== -mlly@^0.3.6: - version "0.3.19" - resolved "https://registry.yarnpkg.com/mlly/-/mlly-0.3.19.tgz#a4aac171d2142eafc9c9d4c1937dac5a11f70565" - integrity sha512-zMq5n3cOf4fOzA4WoeulxagbAgMChdev3MgP6K51k7M0u2whTXxupfIY4VVzws4vxkiWhwH1rVQcsw7zDGfRhA== - -mlly@^0.5.1, mlly@^0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/mlly/-/mlly-0.5.2.tgz#67b908e967cfcaee27e90bef8a84aaede599bd21" - integrity sha512-4GTELSSErv6ZZJYU98fZNuIBJcXSz+ktHdRrCYEqU1m6ZlebOCG0jwZ+IEd9vOrbpYsVBBMC5OTrEyLnKRcauQ== +mlly@^0.5.12, mlly@^0.5.14, mlly@^0.5.2, mlly@^0.5.7: + version "0.5.14" + resolved "https://registry.yarnpkg.com/mlly/-/mlly-0.5.14.tgz#1aead555f8ffafd29f192676f4697805e25112c3" + integrity sha512-DgRgNUSX9NIxxCxygX4Xeg9C7GX7OUx1wuQ8cXx9o9LE0e9wrH+OZ9fcnrlEedsC/rtqry3ZhUddC759XD/L0w== dependencies: - pathe "^0.2.0" - pkg-types "^0.3.2" + acorn "^8.8.0" + pathe "^0.3.5" + pkg-types "^0.3.4" + ufo "^0.8.5" -monaco-editor-core@^0.33.0: - version "0.33.0" - resolved "https://registry.yarnpkg.com/monaco-editor-core/-/monaco-editor-core-0.33.0.tgz#1a6631932f5239c9ccdb26b437d333cf9bb85d31" - integrity sha512-Kzxak8jnMS8vI08DcseBuOfeQlcVPpGXO210D8M+QnaNR92s4IYzgUeiow/Hld9Gi5pGvjDbPsdUXkPewoTA5g== +monaco-editor-core@^0.34.0: + version "0.34.0" + resolved "https://registry.yarnpkg.com/monaco-editor-core/-/monaco-editor-core-0.34.0.tgz#7c1727d88c3fb70f48cea0e13aac8c05c0b44700" + integrity sha512-vyKwADMPe0oNGg+NgxWQCj00IvweeyEGeu0ZiJ14L8HUc5hNvkPAzc8RcSf9lRSpgy4Nc/S63AeqAvARsofObg== mri@^1.1.0, mri@^1.2.0: version "1.2.0" @@ -4346,88 +4409,92 @@ mute-stream@0.0.8: resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== -nanoid@^3.1.32, nanoid@^3.3.3, nanoid@^3.3.4: +nanoid@^3.3.4: version "3.3.4" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab" integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw== -needle@^2.2.1: - version "2.9.1" - resolved "https://registry.yarnpkg.com/needle/-/needle-2.9.1.tgz#22d1dffbe3490c2b83e301f7709b6736cd8f2684" - integrity sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ== - dependencies: - debug "^3.2.6" - iconv-lite "^0.4.4" - sax "^1.2.4" +nanoid@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-4.0.0.tgz#6e144dee117609232c3f415c34b0e550e64999a5" + integrity sha512-IgBP8piMxe/gf73RTQx7hmnhwz0aaEXYakvqZyE302IXW3HyVNhdNGC+O2MwMAVhLEnvXlvKtGbtJf6wvHihCg== negotiator@0.6.3: version "0.6.3" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== -nitropack@^0.4.2: - version "0.4.4" - resolved "https://registry.yarnpkg.com/nitropack/-/nitropack-0.4.4.tgz#9bec71273595613dfecef7554a109ab03e79e39b" - integrity sha512-nK6UkSvAHvtx9sSLntirQgU5wJB49BIwJXf+kNbkHrA7cxFNZG11GH1v+vzkMSDKfBPWvVMewEkOGfIGXDpH9g== +nitropack@^0.5.0: + version "0.5.1" + resolved "https://registry.yarnpkg.com/nitropack/-/nitropack-0.5.1.tgz#7d0c8ff79af2d7be0e3dd15422b77355240e5588" + integrity sha512-mPDcj1lmbjZLtXJjE4EXkXsq2S+DnbBNHYOs1SNBeFiBIlOYqhyHipJR5zx/m/SuR9ELd9DyBIVm/ulQDipUhg== dependencies: "@cloudflare/kv-asset-handler" "^0.2.0" - "@netlify/functions" "^1.0.0" + "@netlify/functions" "^1.2.0" "@rollup/plugin-alias" "^3.1.9" - "@rollup/plugin-commonjs" "^22.0.0" + "@rollup/plugin-commonjs" "^22.0.2" "@rollup/plugin-inject" "^4.0.4" "@rollup/plugin-json" "^4.1.0" "@rollup/plugin-node-resolve" "^13.3.0" "@rollup/plugin-replace" "^4.0.0" "@rollup/plugin-wasm" "^5.2.0" "@rollup/pluginutils" "^4.2.1" - "@types/jsdom" "^16.2.14" - "@vercel/nft" "^0.18.2" + "@vercel/nft" "^0.22.1" archiver "^5.3.1" - c12 "^0.2.7" + c12 "^0.2.10" chalk "^5.0.1" chokidar "^3.5.3" consola "^2.15.3" cookie-es "^0.5.0" - defu "^6.0.0" + defu "^6.1.0" destr "^1.1.1" dot-prop "^7.2.0" - esbuild "^0.14.38" + esbuild "^0.15.7" + escape-string-regexp "^5.0.0" etag "^1.8.1" fs-extra "^10.1.0" - globby "^13.1.1" + globby "^13.1.2" gzip-size "^7.0.0" - h3 "^0.7.8" - hookable "^5.1.1" + h3 "^0.7.21" + hookable "^5.3.0" http-proxy "^1.18.1" is-primitive "^3.0.1" - jiti "^1.13.0" + jiti "^1.14.0" klona "^2.0.5" - listhen "^0.2.11" + knitwork "^0.1.2" + listhen "^0.2.15" mime "^3.0.0" - mlly "^0.5.2" + mlly "^0.5.14" mri "^1.2.0" - node-fetch-native "^0.1.2" - ohash "^0.1.0" - ohmyfetch "^0.4.16" - pathe "^0.3.0" + node-fetch-native "^0.1.4" + ohash "^0.1.5" + ohmyfetch "^0.4.18" + pathe "^0.3.5" perfect-debounce "^0.1.3" - pkg-types "^0.3.2" + pkg-types "^0.3.4" pretty-bytes "^6.0.0" radix3 "^0.1.2" - rollup "^2.72.1" + rollup "^2.79.0" rollup-plugin-terser "^7.0.2" - rollup-plugin-visualizer "^5.6.0" - scule "^0.2.1" + rollup-plugin-visualizer "^5.8.1" + scule "^0.3.2" semver "^7.3.7" serve-placeholder "^2.0.1" serve-static "^1.15.0" source-map-support "^0.5.21" - std-env "^3.1.1" - table "^6.8.0" - ufo "^0.8.4" - unenv "^0.5.2" - unimport "^0.2.1" - unstorage "^0.4.1" + std-env "^3.2.1" + ufo "^0.8.5" + unenv "^0.6.2" + unimport "^0.6.7" + unstorage "^0.5.6" + +no-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d" + integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== + dependencies: + lower-case "^2.0.2" + tslib "^2.0.3" node-domexception@^1.0.0: version "1.0.0" @@ -4441,10 +4508,10 @@ node-emoji@^1.11.0: dependencies: lodash "^4.17.21" -node-fetch-native@^0.1.2, node-fetch-native@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/node-fetch-native/-/node-fetch-native-0.1.3.tgz#61a4e4250d7aa6e272cacdbaa979ea916bff321a" - integrity sha512-Jf1IQZdovUIv9E+5avmN6Sf+bND+rnMlODnBQhdE2VRyuWP9WgqZb/KEgPekh19DAN1X2C4vbS1VCOaz2OH19g== +node-fetch-native@^0.1.3, node-fetch-native@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/node-fetch-native/-/node-fetch-native-0.1.4.tgz#09b06754f9e298bac23848050da2352125634f89" + integrity sha512-10EKpOCQPXwZVFh3U1ptOMWBgKTbsN7Vvo6WVKt5pw4hp8zbv6ZVBZPlXw+5M6Tyi1oc1iD4/sNPd71KYA16tQ== node-fetch@^2.6.7: version "2.6.7" @@ -4453,10 +4520,10 @@ node-fetch@^2.6.7: dependencies: whatwg-url "^5.0.0" -node-fetch@^3.2.3: - version "3.2.4" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-3.2.4.tgz#3fbca2d8838111048232de54cb532bd3cf134947" - integrity sha512-WvYJRN7mMyOLurFR2YpysQGuwYrJN+qrrpHjJDuKMcSPdfFccRUla/kng2mz6HWSBxJcqPbvatS6Gb4RhOzCJw== +node-fetch@^3.2.10: + version "3.2.10" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-3.2.10.tgz#e8347f94b54ae18b57c9c049ef641cef398a85c8" + integrity sha512-MhuzNwdURnZ1Cp4XTazr69K0BTizsBroX7Zx3UgDSVcZYKF/6p0CBe4EUb/hLqmzVhl0UpYfgRljQ4yxE+iCxA== dependencies: data-uri-to-buffer "^4.0.0" fetch-blob "^3.1.4" @@ -4468,38 +4535,14 @@ node-forge@^1: integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== node-gyp-build@^4.2.2: - version "4.4.0" - resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.4.0.tgz#42e99687ce87ddeaf3a10b99dc06abc11021f3f4" - integrity sha512-amJnQCcgtRVw9SvoebO3BKGESClrfXGCUTX9hSn1OuGQTQBOZmVd0Z0OlecpuRksKvbsUqALE8jls/ErClAPuQ== - -node-pre-gyp@^0.13.0: - version "0.13.0" - resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.13.0.tgz#df9ab7b68dd6498137717838e4f92a33fc9daa42" - integrity sha512-Md1D3xnEne8b/HGVQkZZwV27WUi1ZRuZBij24TNaZwUPU3ZAFtvT6xxJGaUVillfmMKnn5oD1HoGsp2Ftik7SQ== - dependencies: - detect-libc "^1.0.2" - mkdirp "^0.5.1" - needle "^2.2.1" - nopt "^4.0.1" - npm-packlist "^1.1.6" - npmlog "^4.0.2" - rc "^1.2.7" - rimraf "^2.6.1" - semver "^5.3.0" - tar "^4" - -node-releases@^2.0.3: - version "2.0.5" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.5.tgz#280ed5bc3eba0d96ce44897d8aee478bfb3d9666" - integrity sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q== + version "4.5.0" + resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.5.0.tgz#7a64eefa0b21112f89f58379da128ac177f20e40" + integrity sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg== -nopt@^4.0.1: - version "4.0.3" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.3.tgz#a375cad9d02fd921278d954c2254d5aa57e15e48" - integrity sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg== - dependencies: - abbrev "1" - osenv "^0.1.4" +node-releases@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.6.tgz#8a7088c63a55e493845683ebf3c828d8c51c5503" + integrity sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg== nopt@^5.0.0: version "5.0.0" @@ -4516,34 +4559,13 @@ normalize-path@^3.0.0, normalize-path@~3.0.0: normalize-range@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" - integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= + integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== -normalize-url@^6.0.1, normalize-url@^6.1.0: +normalize-url@^6.0.1: version "6.1.0" resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== -npm-bundled@^1.0.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.2.tgz#944c78789bd739035b70baa2ca5cc32b8d860bc1" - integrity sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ== - dependencies: - npm-normalize-package-bin "^1.0.1" - -npm-normalize-package-bin@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2" - integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA== - -npm-packlist@^1.1.6: - version "1.4.8" - resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.8.tgz#56ee6cc135b9f98ad3d51c1c95da22bbb9b2ef3e" - integrity sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A== - dependencies: - ignore-walk "^3.0.1" - npm-bundled "^1.0.1" - npm-normalize-package-bin "^1.0.1" - npm-run-path@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" @@ -4551,16 +4573,6 @@ npm-run-path@^4.0.1: dependencies: path-key "^3.0.0" -npmlog@^4.0.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" - integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== - dependencies: - are-we-there-yet "~1.1.2" - console-control-strings "~1.1.0" - gauge "~2.7.3" - set-blocking "~2.0.0" - npmlog@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-5.0.1.tgz#f06678e80e29419ad67ab964e0fa69959c1eb8b0" @@ -4578,92 +4590,75 @@ nth-check@^2.0.1: dependencies: boolbase "^1.0.0" -number-is-nan@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" - integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= - -nuxi@^3.0.0-rc.3: - version "3.0.0-rc.3" - resolved "https://registry.yarnpkg.com/nuxi/-/nuxi-3.0.0-rc.3.tgz#2326687eff412bf770d1c20c28147dd65cbf06d4" - integrity sha512-WXeW3k2DOaVgkIcPJ9XHxgHWUzvAKV+R3I0c+gXjvzNc5bfRW9ks7Hr2jb83frH+r6i4aALlRTaBHIrJhYHh6w== +nuxi@3.0.0-rc.9: + version "3.0.0-rc.9" + resolved "https://registry.yarnpkg.com/nuxi/-/nuxi-3.0.0-rc.9.tgz#4c4a198484022c6c8a1d872f02f7294eb56e2f66" + integrity sha512-MsjGzFngDIQzouz96KV2LjSqfvXGrNAoKfGTHFiUc1dqtTZmGftY0rsVfsyrDh3I2hofPRN3hKMH7ieFo2PUZA== optionalDependencies: fsevents "~2.3.2" -nuxt-component-meta@^0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/nuxt-component-meta/-/nuxt-component-meta-0.1.5.tgz#d17f1072268faa933b1123bf8148bd9843b022c4" - integrity sha512-kcTnYMC4IflXEDSp3r/s9ZhoPuHi2lAu9ngCGm5CNxHKUmc0AjmjjiSeqTrNlH9NWojy+zk34NC7nTRN6fVCDQ== - dependencies: - "@nuxt/kit" "^3.0.0-rc.3" - "@vue/compiler-sfc" "^3.2.33" - scule "^0.2.1" - -nuxt@^3.0.0-rc.3: - version "3.0.0-rc.3" - resolved "https://registry.yarnpkg.com/nuxt/-/nuxt-3.0.0-rc.3.tgz#ab1a36a19f91f86d5fa42a7d6bb2dec4ae7cf824" - integrity sha512-Ch68sD9Npt3BN0ZphvtRurVhFqtm1sAu4VDoXghmsRoVAwpT2ZDeDWaQJ9PSmXHYwyEaXPIZ9B2EDXPKETh0cQ== +nuxt@^3.0.0-rc.9: + version "3.0.0-rc.9" + resolved "https://registry.yarnpkg.com/nuxt/-/nuxt-3.0.0-rc.9.tgz#a3bcceaffcab917b09238e3db45e73b646516ed4" + integrity sha512-fXaqm+Vha/p+MztueluJdEc9hqj6gwjFeuCgOBwIYnV+3nFbHu3EAro8QbPcoYZaj5oot+qY7YuyGczBvlNZuQ== dependencies: "@nuxt/devalue" "^2.0.0" - "@nuxt/kit" "^3.0.0-rc.3" - "@nuxt/schema" "^3.0.0-rc.3" - "@nuxt/telemetry" "^2.1.3" - "@nuxt/ui-templates" "^0.1.1" - "@nuxt/vite-builder" "^3.0.0-rc.3" - "@vue/reactivity" "^3.2.33" - "@vue/shared" "^3.2.33" - "@vueuse/head" "^0.7.6" + "@nuxt/kit" "3.0.0-rc.9" + "@nuxt/schema" "3.0.0-rc.9" + "@nuxt/telemetry" "^2.1.4" + "@nuxt/ui-templates" "^0.3.2" + "@nuxt/vite-builder" "3.0.0-rc.9" + "@vue/reactivity" "^3.2.38" + "@vue/shared" "^3.2.38" + "@vueuse/head" "^0.7.9" chokidar "^3.5.3" cookie-es "^0.5.0" - defu "^6.0.0" + defu "^6.1.0" destr "^1.1.1" escape-string-regexp "^5.0.0" fs-extra "^10.1.0" - globby "^13.1.1" - h3 "^0.7.8" + globby "^13.1.2" + h3 "^0.7.19" hash-sum "^2.0.0" - hookable "^5.1.1" - knitwork "^0.1.1" - magic-string "^0.26.1" - mlly "^0.5.2" - nitropack "^0.4.2" - nuxi "^3.0.0-rc.3" - ohash "^0.1.0" - ohmyfetch "^0.4.16" - pathe "^0.3.0" + hookable "^5.3.0" + knitwork "^0.1.2" + magic-string "^0.26.3" + mlly "^0.5.14" + nitropack "^0.5.0" + nuxi "3.0.0-rc.9" + ohash "^0.1.5" + ohmyfetch "^0.4.18" + pathe "^0.3.5" perfect-debounce "^0.1.3" - scule "^0.2.1" - ufo "^0.8.4" - unctx "^1.1.4" - unenv "^0.5.1" - unimport "^0.1.9" - unplugin "^0.6.3" - untyped "^0.4.4" - vue "^3.2.33" - vue-bundle-renderer "^0.3.8" - vue-router "^4.0.15" - -object-assign@^4.1.0, object-assign@^4.1.1: + scule "^0.3.2" + strip-literal "^0.4.0" + ufo "^0.8.5" + unctx "^2.0.2" + unenv "^0.6.2" + unimport "^0.6.7" + unplugin "^0.9.2" + untyped "^0.4.7" + vue "^3.2.38" + vue-bundle-renderer "^0.4.2" + vue-devtools-stub "^0.1.0" + vue-router "^4.1.5" + +object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== object-hash@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-3.0.0.tgz#73f97f753e7baffc0e2cc9d6e079079744ac82e9" integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw== -object-inspect@^1.9.0: - version "1.12.2" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" - integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== - -ohash@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/ohash/-/ohash-0.1.0.tgz#cde74db91cfb7259477a93e0959221c4e20a5881" - integrity sha512-KvclyhWseX6F2UTEEp9Qzybb0LTGorTSVufAToV5tR2B6Q64rVhKhkcU/o+mBaiqGa5+PdobtfSVelp8VOCR6A== +ohash@^0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/ohash/-/ohash-0.1.5.tgz#7ba53b68c41fc72612ed75942b8f6da3b5d5bbda" + integrity sha512-qynly1AFIpGWEAW88p6DhMNqok/Swb52/KsiU+Toi7er058Ptvno3tkfTML6wYcEgFgp2GsUziW4Nqn62ciuyw== -ohmyfetch@^0.4.15, ohmyfetch@^0.4.16: +ohmyfetch@^0.4.18: version "0.4.18" resolved "https://registry.yarnpkg.com/ohmyfetch/-/ohmyfetch-0.4.18.tgz#2952e04bd52662d0618d3d2f344db0250c3eeac2" integrity sha512-MslzNrQzBLtZHmiZBI8QMOcMpdNFlK61OJ34nFNFynZ4v+4BonfCQ7VIN4EGXvGGq5zhDzgdJoY3o9S1l2T7KQ== @@ -4683,7 +4678,7 @@ on-finished@2.4.1, on-finished@^2.3.0: once@^1.3.0, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== dependencies: wrappy "1" @@ -4697,7 +4692,7 @@ onetime@^5.1.0, onetime@^5.1.2: only@~0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/only/-/only-0.0.2.tgz#2afde84d03e50b9a8edc444e30610a70295edfb4" - integrity sha1-Kv3oTQPlC5qO3EROMGEKcCle37Q= + integrity sha512-Fvw+Jemq5fjjyWz6CpKx6w9s7xxqo3+JCyM0WXWeCSOboZ8ABkyvP8ID4CZuChA/wxSx+XSJmdOm8rGVyJ1hdQ== open@^7.0.4: version "7.4.2" @@ -4716,38 +4711,40 @@ open@^8.4.0: is-docker "^2.1.1" is-wsl "^2.2.0" -ora@^5.4.1: - version "5.4.1" - resolved "https://registry.yarnpkg.com/ora/-/ora-5.4.1.tgz#1b2678426af4ac4a509008e5e4ac9e9959db9e18" - integrity sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ== - dependencies: - bl "^4.1.0" - chalk "^4.1.0" - cli-cursor "^3.1.0" - cli-spinners "^2.5.0" - is-interactive "^1.0.0" - is-unicode-supported "^0.1.0" - log-symbols "^4.1.0" - strip-ansi "^6.0.0" +ora@^6.1.2: + version "6.1.2" + resolved "https://registry.yarnpkg.com/ora/-/ora-6.1.2.tgz#7b3c1356b42fd90fb1dad043d5dbe649388a0bf5" + integrity sha512-EJQ3NiP5Xo94wJXIzAyOtSb0QEIAUu7m8t6UZ9krbz0vAJqr92JpcK/lEXg91q6B9pEGqrykkd2EQplnifDSBw== + dependencies: + bl "^5.0.0" + chalk "^5.0.0" + cli-cursor "^4.0.0" + cli-spinners "^2.6.1" + is-interactive "^2.0.0" + is-unicode-supported "^1.1.0" + log-symbols "^5.1.0" + strip-ansi "^7.0.1" wcwidth "^1.0.1" -os-homedir@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" - integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= - -os-tmpdir@^1.0.0, os-tmpdir@~1.0.2: +os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= + integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== -osenv@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" - integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== +paneer@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/paneer/-/paneer-0.0.1.tgz#559f143416f40e3e322fcd8c1fbf264a628230c8" + integrity sha512-rT0koOL1kQ0CqxIS12FYrEuj6BTfQUn3QMj9led4QVBNw7s1MoF6owTGqwYF2FVPXMqVOxe+i6Ye8FGI7SXQCQ== + dependencies: + recast "^0.20.4" + +param-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5" + integrity sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A== dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.0" + dot-case "^3.0.4" + tslib "^2.0.3" parent-module@^1.0.0: version "1.0.1" @@ -4795,25 +4792,19 @@ parse-json@^5.0.0: json-parse-even-better-errors "^2.3.0" lines-and-columns "^1.1.6" -parse-path@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/parse-path/-/parse-path-4.0.3.tgz#82d81ec3e071dcc4ab49aa9f2c9c0b8966bb22bf" - integrity sha512-9Cepbp2asKnWTJ9x2kpw6Fe8y9JDbqwahGCTvklzd/cEq5C5JC59x2Xb0Kx+x0QZ8bvNquGO8/BWP0cwBHzSAA== +parse-path@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/parse-path/-/parse-path-7.0.0.tgz#605a2d58d0a749c8594405d8cc3a2bf76d16099b" + integrity sha512-Euf9GG8WT9CdqwuWJGdf3RkUcTBArppHABkO7Lm8IzRQp0e2r/kkFnmhu4TSK30Wcu5rVAZLmfPKSBBi9tWFog== dependencies: - is-ssh "^1.3.0" - protocols "^1.4.0" - qs "^6.9.4" - query-string "^6.13.8" + protocols "^2.0.0" -parse-url@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/parse-url/-/parse-url-6.0.0.tgz#f5dd262a7de9ec00914939220410b66cff09107d" - integrity sha512-cYyojeX7yIIwuJzledIHeLUBVJ6COVLeT4eF+2P6aKVzwvgKQPndCBv3+yQ7pcWjqToYwaligxzSYNNmGoMAvw== +parse-url@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/parse-url/-/parse-url-8.1.0.tgz#972e0827ed4b57fc85f0ea6b0d839f0d8a57a57d" + integrity sha512-xDvOoLU5XRrcOZvnI6b8zA6n9O9ejNk/GExuz1yBuWUGn9KA97GI6HTs6u02wKara1CeVmZhH+0TZFdWScR89w== dependencies: - is-ssh "^1.3.0" - normalize-url "^6.1.0" - parse-path "^4.0.0" - protocols "^1.4.0" + parse-path "^7.0.0" parse5@^6.0.0: version "6.0.1" @@ -4825,10 +4816,26 @@ parseurl@^1.3.2, parseurl@~1.3.3: resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== +pascal-case@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.2.tgz#b48e0ef2b98e205e7c1dae747d0b1508237660eb" + integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + +path-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/path-case/-/path-case-3.0.4.tgz#9168645334eb942658375c56f80b4c0cb5f82c6f" + integrity sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg== + dependencies: + dot-case "^3.0.4" + tslib "^2.0.3" + path-is-absolute@1.0.1, path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== path-key@^3.0.0, path-key@^3.1.0: version "3.1.1" @@ -4855,16 +4862,21 @@ pathe@^0.2.0: resolved "https://registry.yarnpkg.com/pathe/-/pathe-0.2.0.tgz#30fd7bbe0a0d91f0e60bae621f5d19e9e225c339" integrity sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw== -pathe@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/pathe/-/pathe-0.3.0.tgz#fd95bc16208263fa6dc1c78c07b3907a528de6eb" - integrity sha512-3vUjp552BJzCw9vqKsO5sttHkbYqqsZtH0x1PNtItgqx8BXEXzoY1SYRKcL6BTyVh4lGJGLj0tM42elUDMvcYA== +pathe@^0.3.0, pathe@^0.3.3, pathe@^0.3.5, pathe@^0.3.7: + version "0.3.7" + resolved "https://registry.yarnpkg.com/pathe/-/pathe-0.3.7.tgz#83860c096cb11d9614c17e0d70d91622931676ce" + integrity sha512-yz7GK+kSsS27x727jtXpd5VT4dDfP/JDIQmaowfxyWCnFjOWtE1VIh7i6TzcSfzW0n4+bRQztj1VdKnITNq/MA== perfect-debounce@^0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/perfect-debounce/-/perfect-debounce-0.1.3.tgz#ff6798ea543a3ba1f0efeeaf97c0340f5c8871ce" integrity sha512-NOT9AcKiDGpnV/HBhI22Str++XWcErO/bALvHCuhv33owZW/CjH8KAFLZDCmu3727sihe0wTxpDhyGc6M8qacQ== +picocolors@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-0.2.1.tgz#570670f793646851d1ba135996962abad587859f" + integrity sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA== + picocolors@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" @@ -4878,40 +4890,30 @@ picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.3.1: pify@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" - integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= + integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== -pkg-types@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/pkg-types/-/pkg-types-0.3.2.tgz#1b3244b561745591035517475bc8af9c5e089e47" - integrity sha512-eBYzX/7NYsQEOR2alWY4rnQB49G62oHzFpoi9Som56aUr8vB8UGcmcIia9v8fpBeuhH3Ltentuk2OGpp4IQV3Q== +pkg-types@^0.3.4, pkg-types@^0.3.5: + version "0.3.5" + resolved "https://registry.yarnpkg.com/pkg-types/-/pkg-types-0.3.5.tgz#ea01c7cf28da9e4c5b85de9b250de4b3dc2e9abc" + integrity sha512-VkxCBFVgQhNHYk9subx+HOhZ4jzynH11ah63LZsprTKwPCWG9pfWBlkElWFbvkP9BVR0dP1jS9xPdhaHQNK74Q== dependencies: - jsonc-parser "^3.0.0" - mlly "^0.3.6" - pathe "^0.2.0" + jsonc-parser "^3.2.0" + mlly "^0.5.14" + pathe "^0.3.7" plausible-tracker@^0.3.4: - version "0.3.5" - resolved "https://registry.yarnpkg.com/plausible-tracker/-/plausible-tracker-0.3.5.tgz#49c09a7eb727f1d5c859c3fc8072837b13ee9b85" - integrity sha512-6c6VPdPtI9KmIsfr8zLBViIDMt369eeaNA1J8JrAmAtrpSkeJWvjwcJ+cLn7gVJn5AtQWC8NgSEee2d/5RNytA== - -popmotion@^11.0.3: - version "11.0.3" - resolved "https://registry.yarnpkg.com/popmotion/-/popmotion-11.0.3.tgz#565c5f6590bbcddab7a33a074bb2ba97e24b0cc9" - integrity sha512-Y55FLdj3UxkR7Vl3s7Qr4e9m0onSnP8W7d/xQLsoJM40vs6UKHFdygs6SWryasTZYqugMjm3BepCF4CWXDiHgA== - dependencies: - framesync "6.0.1" - hey-listen "^1.0.8" - style-value-types "5.0.0" - tslib "^2.1.0" + version "0.3.8" + resolved "https://registry.yarnpkg.com/plausible-tracker/-/plausible-tracker-0.3.8.tgz#9b8b322cc41e0e1d6473869ef234deea365a5a40" + integrity sha512-lmOWYQ7s9KOUJ1R+YTOR3HrjdbxIS2Z4de0P/Jx2dQPteznJl2eX3tXxKClpvbfyGP59B5bbhW8ftN59HbbFSg== portfinder@^1.0.26: - version "1.0.28" - resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.28.tgz#67c4622852bd5374dd1dd900f779f53462fac778" - integrity sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA== + version "1.0.32" + resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.32.tgz#2fe1b9e58389712429dc2bea5beb2146146c7f81" + integrity sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg== dependencies: - async "^2.6.2" - debug "^3.1.1" - mkdirp "^0.5.5" + async "^2.6.4" + debug "^3.2.7" + mkdirp "^0.5.6" postcss-calc@^8.2.3: version "8.2.4" @@ -4939,10 +4941,10 @@ postcss-convert-values@^5.1.2: browserslist "^4.20.3" postcss-value-parser "^4.2.0" -postcss-custom-properties@^12.1.7: - version "12.1.7" - resolved "https://registry.yarnpkg.com/postcss-custom-properties/-/postcss-custom-properties-12.1.7.tgz#ca470fd4bbac5a87fd868636dafc084bc2a78b41" - integrity sha512-N/hYP5gSoFhaqxi2DPCmvto/ZcRDVjE3T1LiAMzc/bg53hvhcHOLpXOHb526LzBBp5ZlAUhkuot/bfpmpgStJg== +postcss-custom-properties@^12.1.8: + version "12.1.8" + resolved "https://registry.yarnpkg.com/postcss-custom-properties/-/postcss-custom-properties-12.1.8.tgz#aa003e1885c5bd28e2e32496cd597e389ca889e4" + integrity sha512-8rbj8kVu00RQh2fQF81oBqtduiANu4MIxhyf0HbbStgPtnFlWn0yiaYTpLHrPnJbffVY1s9apWsIoVZcc68FxA== dependencies: postcss-value-parser "^4.2.0" @@ -4966,6 +4968,16 @@ postcss-discard-overridden@^5.1.0: resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz#7e8c5b53325747e9d90131bb88635282fb4a276e" integrity sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw== +postcss-easing-gradients@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/postcss-easing-gradients/-/postcss-easing-gradients-3.0.1.tgz#6718b4090e79e0abd291e5ecbc2fcef632921319" + integrity sha512-UrOKb4cenjGmMmrheETw7Cjnn/IKn3xgTvHs92b0sSwMhKgeZKxJpduGRjYZ8wgpu3zOzzgQpRwOLhhtMofayA== + dependencies: + chroma-js "^1.3.7" + easing-coordinates "^2.0.0" + postcss "^7.0.2" + postcss-value-parser "^3.3.0" + postcss-import-resolver@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/postcss-import-resolver/-/postcss-import-resolver-2.0.0.tgz#95c61ac5489047bd93ff42a9cd405cfe9041e2c0" @@ -4991,6 +5003,15 @@ postcss-import@^14.1.0: read-cache "^1.0.0" resolve "^1.1.7" +postcss-import@^15.0.0: + version "15.0.0" + resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-15.0.0.tgz#0b66c25fdd9c0d19576e63c803cf39e4bad08822" + integrity sha512-Y20shPQ07RitgBGv2zvkEAu9bqvrD77C9axhj/aA1BQj4czape2MdClCExvB27EwYEJdGgKZBpKanb0t1rK2Kg== + dependencies: + postcss-value-parser "^4.0.0" + read-cache "^1.0.0" + resolve "^1.1.7" + postcss-js@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/postcss-js/-/postcss-js-4.0.0.tgz#31db79889531b80dc7bc9b0ad283e418dce0ac00" @@ -5017,10 +5038,10 @@ postcss-loader@^4.1.0: schema-utils "^3.0.0" semver "^7.3.4" -postcss-merge-longhand@^5.1.5: - version "5.1.5" - resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-5.1.5.tgz#b0e03bee3b964336f5f33c4fc8eacae608e91c05" - integrity sha512-NOG1grw9wIO+60arKa2YYsrbgvP6tp+jqc7+ZD5/MalIw234ooH2C6KlR6FEn4yle7GqZoBxSK1mLBE9KPur6w== +postcss-merge-longhand@^5.1.6: + version "5.1.6" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-5.1.6.tgz#f378a8a7e55766b7b644f48e5d8c789ed7ed51ce" + integrity sha512-6C/UGF/3T5OE2CEbOuX7iNO63dnvqhGZeUnKkDeifebY0XqkkvrctYSZurpNE902LDf2yKwwPFgotnfSoPhQiw== dependencies: postcss-value-parser "^4.2.0" stylehacks "^5.1.0" @@ -5095,19 +5116,19 @@ postcss-modules-values@^4.0.0: dependencies: icss-utils "^5.0.0" -postcss-nested@5.0.6: +postcss-nested@5.0.6, postcss-nested@^5.0.6: version "5.0.6" resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-5.0.6.tgz#466343f7fc8d3d46af3e7dba3fcd47d052a945bc" integrity sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA== dependencies: postcss-selector-parser "^6.0.6" -postcss-nesting@^10.1.7: - version "10.1.7" - resolved "https://registry.yarnpkg.com/postcss-nesting/-/postcss-nesting-10.1.7.tgz#0101bd6c7d386e7ad8e2e86ebcc0e0109833b86e" - integrity sha512-Btho5XzDTpl117SmB3tvUHP8txg5n7Ayv7vQ5m4b1zXkfs1Y52C67uZjZ746h7QvOJ+rLRg50OlhhjFW+IQY6A== +postcss-nesting@^10.1.10: + version "10.1.10" + resolved "https://registry.yarnpkg.com/postcss-nesting/-/postcss-nesting-10.1.10.tgz#9c396df3d8232cbedfa95baaac6b765b8fd2a817" + integrity sha512-lqd7LXCq0gWc0wKXtoKDru5wEUNjm3OryLVNRZ8OnW8km6fSNUuFrjEhU3nklxXE2jvd4qrox566acgh+xQt8w== dependencies: - "@csstools/selector-specificity" "1.0.0" + "@csstools/selector-specificity" "^2.0.0" postcss-selector-parser "^6.0.10" postcss-normalize-charset@^5.1.0: @@ -5122,17 +5143,17 @@ postcss-normalize-display-values@^5.1.0: dependencies: postcss-value-parser "^4.2.0" -postcss-normalize-positions@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-5.1.0.tgz#902a7cb97cf0b9e8b1b654d4a43d451e48966458" - integrity sha512-8gmItgA4H5xiUxgN/3TVvXRoJxkAWLW6f/KKhdsH03atg0cB8ilXnrB5PpSshwVu/dD2ZsRFQcR1OEmSBDAgcQ== +postcss-normalize-positions@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz#ef97279d894087b59325b45c47f1e863daefbb92" + integrity sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg== dependencies: postcss-value-parser "^4.2.0" -postcss-normalize-repeat-style@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.0.tgz#f6d6fd5a54f51a741cc84a37f7459e60ef7a6398" - integrity sha512-IR3uBjc+7mcWGL6CtniKNQ4Rr5fTxwkaDHwMBDGGs1x9IVRkYIT/M4NelZWkAOBdV6v3Z9S46zqaKGlyzHSchw== +postcss-normalize-repeat-style@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz#e9eb96805204f4766df66fd09ed2e13545420fb2" + integrity sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g== dependencies: postcss-value-parser "^4.2.0" @@ -5173,10 +5194,10 @@ postcss-normalize-whitespace@^5.1.1: dependencies: postcss-value-parser "^4.2.0" -postcss-ordered-values@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-5.1.1.tgz#0b41b610ba02906a3341e92cab01ff8ebc598adb" - integrity sha512-7lxgXF0NaoMIgyihL/2boNAEZKiW0+HkMhdKMTD93CjW8TdCy2hSdj8lsAo+uwm7EDG16Da2Jdmtqpedl0cMfw== +postcss-ordered-values@^5.1.3: + version "5.1.3" + resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz#b6fd2bd10f937b23d86bc829c69e7732ce76ea38" + integrity sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ== dependencies: cssnano-utils "^3.1.0" postcss-value-parser "^4.2.0" @@ -5196,7 +5217,7 @@ postcss-reduce-transforms@^5.1.0: dependencies: postcss-value-parser "^4.2.0" -postcss-selector-parser@^6.0.10, postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.5, postcss-selector-parser@^6.0.6, postcss-selector-parser@^6.0.9: +postcss-selector-parser@6.0.10, postcss-selector-parser@^6.0.10, postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.5, postcss-selector-parser@^6.0.6, postcss-selector-parser@^6.0.9: version "6.0.10" resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz#79b61e2c0d1bfc2602d549e11d0876256f8df88d" integrity sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w== @@ -5229,15 +5250,28 @@ postcss-url@^10.1.1, postcss-url@^10.1.3: minimatch "~3.0.4" xxhashjs "~0.2.2" +postcss-value-parser@^3.3.0: + version "3.3.1" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" + integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== + postcss-value-parser@^4.0.0, postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== -postcss@^8.1.10, postcss@^8.2.15, postcss@^8.4.12, postcss@^8.4.13, postcss@^8.4.14: - version "8.4.14" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.14.tgz#ee9274d5622b4858c1007a74d76e42e56fd21caf" - integrity sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig== +postcss@^7.0.2: + version "7.0.39" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.39.tgz#9624375d965630e2e1f2c02a935c82a59cb48309" + integrity sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA== + dependencies: + picocolors "^0.2.1" + source-map "^0.6.1" + +postcss@^8.1.10, postcss@^8.2.15, postcss@^8.4.14, postcss@^8.4.16: + version "8.4.16" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.16.tgz#33a1d675fac39941f5f445db0de4db2b6e01d43c" + integrity sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ== dependencies: nanoid "^3.3.4" picocolors "^1.0.0" @@ -5258,38 +5292,21 @@ property-information@^6.0.0, property-information@^6.1.1: resolved "https://registry.yarnpkg.com/property-information/-/property-information-6.1.1.tgz#5ca85510a3019726cb9afed4197b7b8ac5926a22" integrity sha512-hrzC564QIl0r0vy4l6MvRLhafmUowhO/O3KgVSoXIbbA2Sz4j8HGpJc6T2cubRVwMwpdiG/vKGfhT4IixmKN9w== -protocols@^1.1.0, protocols@^1.4.0: - version "1.4.8" - resolved "https://registry.yarnpkg.com/protocols/-/protocols-1.4.8.tgz#48eea2d8f58d9644a4a32caae5d5db290a075ce8" - integrity sha512-IgjKyaUSjsROSO8/D49Ab7hP8mJgTYcqApOqdPhLoPxAplXmkp+zRvsrSQjFn5by0rhm4VH0GAUELIPpx7B1yg== +protocols@^2.0.0, protocols@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/protocols/-/protocols-2.0.1.tgz#8f155da3fc0f32644e83c5782c8e8212ccf70a86" + integrity sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q== prr@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" - integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= + integrity sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw== punycode@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== -qs@^6.9.4: - version "6.10.3" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.3.tgz#d6cde1b2ffca87b5aa57889816c5f81535e22e8e" - integrity sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ== - dependencies: - side-channel "^1.0.4" - -query-string@^6.13.8: - version "6.14.1" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-6.14.1.tgz#7ac2dca46da7f309449ba0f86b1fd28255b0c86a" - integrity sha512-XDxAeVmpfu1/6IjyT/gXHOl+S0vQ9owggJ30hhWKdHAsNPOcasn5o9BW0eejZqL2e4vMjhAxoW3jVHcD6mbcYw== - dependencies: - decode-uri-component "^0.2.0" - filter-obj "^1.1.0" - split-on-first "^1.0.0" - strict-uri-encode "^2.0.0" - queue-microtask@^1.2.2: version "1.2.3" resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" @@ -5317,7 +5334,7 @@ range-parser@~1.2.1: resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== -rc9@^1.2.1, rc9@^1.2.2: +rc9@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/rc9/-/rc9-1.2.2.tgz#0d79202e088dd80e2e0f77ac36f520247d2d3964" integrity sha512-zbe8+HR2X28eZepAwohuKkebbEsA67h0DO9I7g12QrHa2CQopR9gztOLPIPXXGTvcxeUjAN4wZ+b29t3m/u05g== @@ -5326,24 +5343,14 @@ rc9@^1.2.1, rc9@^1.2.2: destr "^1.1.1" flat "^5.0.0" -rc@^1.2.7: - version "1.2.8" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" - integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== - dependencies: - deep-extend "^0.6.0" - ini "~1.3.0" - minimist "^1.2.0" - strip-json-comments "~2.0.1" - read-cache@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774" - integrity sha1-5mTvMRYRZsl1HNvo28+GtftY93Q= + integrity sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA== dependencies: pify "^2.3.0" -readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.5, readable-stream@^2.0.6: +readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.5: version "2.3.7" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== @@ -5366,11 +5373,11 @@ readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: util-deprecate "^1.0.1" readdir-glob@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/readdir-glob/-/readdir-glob-1.1.1.tgz#f0e10bb7bf7bfa7e0add8baffdc54c3f7dbee6c4" - integrity sha512-91/k1EzZwDx6HbERR+zucygRFfiPl2zkIYZtv3Jjr6Mn7SkKcVct8aVO+sSRiGMc6fLf72du3d92/uY63YPdEA== + version "1.1.2" + resolved "https://registry.yarnpkg.com/readdir-glob/-/readdir-glob-1.1.2.tgz#b185789b8e6a43491635b6953295c5c5e3fd224c" + integrity sha512-6RLVvwJtVwEDfPdn6X6Ille4/lxGl0ATOY4FN/B9nxQcgOazvvI0nodiD19ScKq0PvA/29VpaOQML36o5IzZWA== dependencies: - minimatch "^3.0.4" + minimatch "^5.1.0" readdirp@~3.6.0: version "3.6.0" @@ -5379,22 +5386,32 @@ readdirp@~3.6.0: dependencies: picomatch "^2.2.1" +recast@^0.20.4: + version "0.20.5" + resolved "https://registry.yarnpkg.com/recast/-/recast-0.20.5.tgz#8e2c6c96827a1b339c634dd232957d230553ceae" + integrity sha512-E5qICoPoNL4yU0H0NoBDntNB0Q5oMSNh9usFctYniLBluTthi3RsQVBXIJNbApOlvSwW/RGxIuokPcAc59J5fQ== + dependencies: + ast-types "0.14.2" + esprima "~4.0.0" + source-map "~0.6.1" + tslib "^2.0.1" + redis-errors@^1.0.0, redis-errors@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/redis-errors/-/redis-errors-1.2.0.tgz#eb62d2adb15e4eaf4610c04afe1529384250abad" - integrity sha1-62LSrbFeTq9GEMBK/hUpOEJQq60= + integrity sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w== redis-parser@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/redis-parser/-/redis-parser-3.0.0.tgz#b66d828cdcafe6b4b8a428a7def4c6bcac31c8b4" - integrity sha1-tm2CjNyv5rS4pCin3vTGvKwxyLQ= + integrity sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A== dependencies: redis-errors "^1.0.0" -rehype-external-links@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/rehype-external-links/-/rehype-external-links-1.0.1.tgz#9e5d21c606b04d8098012e2d3c811919762d0ba2" - integrity sha512-SrMMtIO2tPLWDfvibhECAn9cuEMW6Fi40ZVK2UQSPTnDEv3LraLzGVyKGb/vrDlUy4RCYTcmm0rq/ss9nPqrsw== +rehype-external-links@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/rehype-external-links/-/rehype-external-links-2.0.1.tgz#fe54f9f227a1a2f8f6afe442ac4c9ee748f08756" + integrity sha512-u2dNypma+ps12SJWlS23zvbqwNx0Hl24t0YHXSM/6FCZj/pqWETCO3WyyrvALv4JYvRtuPjhiv2Lpen15ESqbA== dependencies: "@types/hast" "^2.0.0" extend "^3.0.0" @@ -5463,10 +5480,10 @@ remark-gfm@^3.0.1: micromark-extension-gfm "^2.0.0" unified "^10.0.0" -remark-github@^11.2.3: - version "11.2.3" - resolved "https://registry.yarnpkg.com/remark-github/-/remark-github-11.2.3.tgz#5898c5f37b70bc1efd69a4833a391d74c0850574" - integrity sha512-3V/EnKy3Z2Ukmxt11M6pP8QHuSbsQO1yNujfr+hyRVAZT9RlTSYLmwOe23um0ynqWbG37fYhkbUMWsFDxlXAhw== +remark-github@^11.2.4: + version "11.2.4" + resolved "https://registry.yarnpkg.com/remark-github/-/remark-github-11.2.4.tgz#146d13600b8b13acf4d117e7a01d00bce6bad577" + integrity sha512-GJjWFpwqdrHHhPWqMbb8+lqFLiHQ9pCzUmXmRrhMFXGpYov5n2ljsZzuWgXlfzArfQYkiKIZczA2I8IHYMHqCA== dependencies: "@types/mdast" "^3.0.0" mdast-util-find-and-replace "^2.0.0" @@ -5474,6 +5491,26 @@ remark-github@^11.2.3: unified "^10.0.0" unist-util-visit "^4.0.0" +remark-mdc@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/remark-mdc/-/remark-mdc-1.0.7.tgz#eca877a6e1e7320df7bfe367b157254cb9e5127e" + integrity sha512-qKIvlYQz7mCZlzAf30sgLfZAxw9mQfVq4CoL1K3X4DK5V/ABYyFc6i4S3gbZjQJTv+DF1OMNJ0Zct+yGdGI0Xw== + dependencies: + flat "^5.0.2" + js-yaml "^4.1.0" + mdast-util-from-markdown "^1.2.0" + mdast-util-to-markdown "^1.3.0" + micromark "^3.0.10" + micromark-core-commonmark "^1.0.6" + micromark-factory-space "^1.0.0" + micromark-factory-whitespace "^1.0.0" + micromark-util-character "^1.1.0" + parse-entities "^4.0.0" + scule "^0.2.1" + stringify-entities "^4.0.2" + unist-util-visit "^4.1.0" + unist-util-visit-parents "^5.1.0" + remark-parse@^10.0.1: version "10.0.1" resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-10.0.1.tgz#6f60ae53edbf0cf38ea223fe643db64d112e0775" @@ -5514,17 +5551,12 @@ replace-in-file@^6.1.0: require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= - -require-from-string@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" - integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== requires-port@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" - integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= + integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== resolve-from@^4.0.0: version "4.0.0" @@ -5539,24 +5571,24 @@ resolve-from@^5.0.0: resolve-path@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/resolve-path/-/resolve-path-1.4.0.tgz#c4bda9f5efb2fce65247873ab36bb4d834fe16f7" - integrity sha1-xL2p9e+y/OZSR4c6s2u02DT+Fvc= + integrity sha512-i1xevIst/Qa+nA9olDxLWnLk8YZbi8R/7JPbCMcgyWaFR6bKWaexgJgEB5oc2PKMjYdrHynyz0NY+if+H98t1w== dependencies: http-errors "~1.6.2" path-is-absolute "1.0.1" -resolve@^1.1.7, resolve@^1.17.0, resolve@^1.19.0, resolve@^1.22.0: - version "1.22.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198" - integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw== +resolve@^1.1.7, resolve@^1.17.0, resolve@^1.19.0, resolve@^1.22.1: + version "1.22.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" + integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== dependencies: - is-core-module "^2.8.1" + is-core-module "^2.9.0" path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" -restore-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" - integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== +restore-cursor@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-4.0.0.tgz#519560a4318975096def6e609d44100edaa4ccb9" + integrity sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg== dependencies: onetime "^5.1.0" signal-exit "^3.0.2" @@ -5566,13 +5598,6 @@ reusify@^1.0.4: resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== -rimraf@^2.6.1: - version "2.7.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" - integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== - dependencies: - glob "^7.1.3" - rimraf@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" @@ -5590,15 +5615,15 @@ rollup-plugin-terser@^7.0.2: serialize-javascript "^4.0.0" terser "^5.0.0" -rollup-plugin-visualizer@^5.6.0: - version "5.6.0" - resolved "https://registry.yarnpkg.com/rollup-plugin-visualizer/-/rollup-plugin-visualizer-5.6.0.tgz#06aa7cf3fd504a29d404335700f2a3f28ebb33f3" - integrity sha512-CKcc8GTUZjC+LsMytU8ocRr/cGZIfMR7+mdy4YnlyetlmIl/dM8BMnOEpD4JPIGt+ZVW7Db9ZtSsbgyeBH3uTA== +rollup-plugin-visualizer@^5.8.0, rollup-plugin-visualizer@^5.8.1: + version "5.8.1" + resolved "https://registry.yarnpkg.com/rollup-plugin-visualizer/-/rollup-plugin-visualizer-5.8.1.tgz#deb207017fcf584f3dce088a67eac0d49e4e2a86" + integrity sha512-NBT/xN/LWCwDM2/j5vYmjzpEAKHyclo/8Cv8AfTCwgADAG+tLJDy1vzxMw6NO0dSDjmTeRELD9UU3FwknLv0GQ== dependencies: - nanoid "^3.1.32" + nanoid "^3.3.4" open "^8.4.0" source-map "^0.7.3" - yargs "^17.3.1" + yargs "^17.5.1" rollup-pluginutils@^2.8.2: version "2.8.2" @@ -5607,10 +5632,24 @@ rollup-pluginutils@^2.8.2: dependencies: estree-walker "^0.6.1" -rollup@^2.59.0, rollup@^2.72.1: - version "2.75.3" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.75.3.tgz#11bd3e8ace526911feea8af17f2a286fbfdb4cf8" - integrity sha512-YA29fLU6MAYSaDxIQYrGGOcbXlDmG96h0krGGYObroezcQ0KgEPM3+7MtKD/qeuUbFuAJXvKZee5dA1dpwq1PQ== +"rollup@>=2.75.6 <2.77.0 || ~2.77.0": + version "2.77.3" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.77.3.tgz#8f00418d3a2740036e15deb653bed1a90ee0cc12" + integrity sha512-/qxNTG7FbmefJWoeeYJFbHehJ2HNWnjkAFRKzWN/45eNBBF/r8lo992CwcJXEzyVxs5FmfId+vTSTQDb+bxA+g== + optionalDependencies: + fsevents "~2.3.2" + +rollup@^2.79.0: + version "2.79.0" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.79.0.tgz#9177992c9f09eb58c5e56cbfa641607a12b57ce2" + integrity sha512-x4KsrCgwQ7ZJPcFA/SUu6QVcYlO7uRLfLAy0DSA4NS2eG8japdbpM50ToH7z4iObodRYOJ0soneF0iaQRJ6zhA== + optionalDependencies: + fsevents "~2.3.2" + +rollup@~2.78.0: + version "2.78.1" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.78.1.tgz#52fe3934d9c83cb4f7c4cb5fb75d88591be8648f" + integrity sha512-VeeCgtGi4P+o9hIg+xz4qQpRl6R401LWEXBmxYKOV4zlF82lyhgh2hTZnheFUbANE8l2A41F458iwj2vEYaXJg== optionalDependencies: fsevents "~2.3.2" @@ -5626,10 +5665,10 @@ run-parallel@^1.1.9: dependencies: queue-microtask "^1.2.2" -rxjs@^7.5.5: - version "7.5.5" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.5.tgz#2ebad89af0f560f460ad5cc4213219e1f7dd4e9f" - integrity sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw== +rxjs@^7.5.6: + version "7.5.6" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.6.tgz#0446577557862afd6903517ce7cae79ecb9662bc" + integrity sha512-dnyv2/YsXhnm461G+R/Pe5bWP41Nm6LBXEYWI6eiFP4fiwx6WRI/CD0zbdVAudd9xwLEF2IDcKXLHit0FYjUzw== dependencies: tslib "^2.1.0" @@ -5655,11 +5694,6 @@ safe-buffer@~5.1.0, safe-buffer@~5.1.1: resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -sax@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" - integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== - schema-utils@^3.0.0: version "3.1.1" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.1.tgz#bc74c4b6b6995c1d88f76a8b77bea7219e0c8281" @@ -5674,18 +5708,18 @@ scule@^0.2.1: resolved "https://registry.yarnpkg.com/scule/-/scule-0.2.1.tgz#0c1dc847b18e07219ae9a3832f2f83224e2079dc" integrity sha512-M9gnWtn3J0W+UhJOHmBxBTwv8mZCan5i1Himp60t6vvZcor0wr+IM0URKmIglsWJ7bRujNAVVN77fp+uZaWoKg== +scule@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/scule/-/scule-0.3.2.tgz#472445cecd8357165a94a067f78cee40e700b596" + integrity sha512-zIvPdjOH8fv8CgrPT5eqtxHQXmPNnV/vHJYffZhE43KZkvULvpCTvOt1HPlFaCZx287INL9qaqrZg34e8NgI4g== + selfsigned@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-2.0.1.tgz#8b2df7fa56bf014d19b6007655fff209c0ef0a56" - integrity sha512-LmME957M1zOsUhG+67rAjKfiWFox3SBxE/yymatMZsAx+oMrJ0YQ8AToOnyCm7xbeg2ep37IHLxdu0o2MavQOQ== + version "2.1.1" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-2.1.1.tgz#18a7613d714c0cd3385c48af0075abf3f266af61" + integrity sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ== dependencies: node-forge "^1" -semver@^5.3.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== - semver@^6.0.0, semver@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" @@ -5717,6 +5751,15 @@ send@0.18.0: range-parser "~1.2.1" statuses "2.0.1" +sentence-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/sentence-case/-/sentence-case-3.0.4.tgz#3645a7b8c117c787fde8702056225bb62a45131f" + integrity sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + upper-case-first "^2.0.2" + serialize-javascript@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa" @@ -5741,10 +5784,10 @@ serve-static@^1.15.0: parseurl "~1.3.3" send "0.18.0" -set-blocking@^2.0.0, set-blocking@~2.0.0: +set-blocking@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= + integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== setprototypeof@1.1.0: version "1.1.0" @@ -5773,15 +5816,6 @@ shiki-es@^0.1.2: resolved "https://registry.yarnpkg.com/shiki-es/-/shiki-es-0.1.2.tgz#37176c6ff8d734f95e27560b62e1230c9a90c0cb" integrity sha512-eqtfk8idlYlSLAn0gp0Ly2+FbKc2d78IddigHSS4iHAnpXoY2kdRzyFGZOdi6TvemYMnRhZBi1HsSqZc5eNKqg== -side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== - dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" - signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3: version "3.0.7" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" @@ -5797,37 +5831,18 @@ slash@^4.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-4.0.0.tgz#2422372176c4c6c5addb5e2ada885af984b396a7" integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew== -slice-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" - integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== - dependencies: - ansi-styles "^4.0.0" - astral-regex "^2.0.0" - is-fullwidth-code-point "^3.0.0" - slugify@^1.6.5: version "1.6.5" resolved "https://registry.yarnpkg.com/slugify/-/slugify-1.6.5.tgz#c8f5c072bf2135b80703589b39a3d41451fbe8c8" integrity sha512-8mo9bslnBO3tr5PEVFzMPIWwWnipGS0xVbYf65zxDqfNwmzYn1LpiKNrR6DlClusuvo+hDHd1zKpmfAe83NQSQ== -socket.io-client@^4.5.1: - version "4.5.1" - resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-4.5.1.tgz#cab8da71976a300d3090414e28c2203a47884d84" - integrity sha512-e6nLVgiRYatS+AHXnOnGi4ocOpubvOUCGhyWw8v+/FxW8saHkinG6Dfhi9TU0Kt/8mwJIAASxvw6eujQmjdZVA== - dependencies: - "@socket.io/component-emitter" "~3.1.0" - debug "~4.3.2" - engine.io-client "~6.2.1" - socket.io-parser "~4.2.0" - -socket.io-parser@~4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-4.2.0.tgz#3f01e5bc525d94aa52a97ed5cbc12e229bbc4d6b" - integrity sha512-tLfmEwcEwnlQTxFB7jibL/q2+q8dlVQzj4JdRLJ/W/G1+Fu9VSxCx1Lo+n1HvXxKnM//dUuD0xgiA7tQf57Vng== +snake-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/snake-case/-/snake-case-3.0.4.tgz#4f2bbd568e9935abdfd593f34c691dadb49c452c" + integrity sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg== dependencies: - "@socket.io/component-emitter" "~3.1.0" - debug "~4.3.1" + dot-case "^3.0.4" + tslib "^2.0.3" source-map-js@^1.0.2: version "1.0.2" @@ -5842,15 +5857,15 @@ source-map-support@^0.5.21, source-map-support@~0.5.20: buffer-from "^1.0.0" source-map "^0.6.0" -source-map@^0.6.0, source-map@^0.6.1: +source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== source-map@^0.7.3: - version "0.7.3" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" - integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== + version "0.7.4" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656" + integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== sourcemap-codec@^1.4.8: version "1.4.8" @@ -5862,11 +5877,6 @@ space-separated-tokens@^2.0.0: resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-2.0.1.tgz#43193cec4fb858a2ce934b7f98b7f2c18107098b" integrity sha512-ekwEbFp5aqSPKaqeY1PGrlGQxPNaq+Cnx4+bE2D8sciBQrHpbwoBbawqTN2+6jPs9IdWxxiUcN0K2pkczD3zmw== -split-on-first@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/split-on-first/-/split-on-first-1.1.0.tgz#f610afeee3b12bce1d0c30425e76398b78249a5f" - integrity sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw== - stable@^0.1.8: version "0.1.8" resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" @@ -5885,26 +5895,12 @@ statuses@2.0.1: "statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@^1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" - integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= + integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== -std-env@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.1.1.tgz#1f19c4d3f6278c52efd08a94574a2a8d32b7d092" - integrity sha512-/c645XdExBypL01TpFKiG/3RAa/Qmu+zRi0MwAmrdEkwHNuN0ebo8ccAXBBDa5Z0QOJgBskUIbuCK91x0sCVEw== - -strict-uri-encode@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546" - integrity sha1-ucczDHBChi9rFC3CdLvMWGbONUY= - -string-width@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" - integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= - dependencies: - code-point-at "^1.0.0" - is-fullwidth-code-point "^1.0.0" - strip-ansi "^3.0.0" +std-env@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.2.1.tgz#00e260ec3901333537125f81282b9296b00d7304" + integrity sha512-D/uYFWkI/31OrnKmXZqGAGK5GbQRPp/BWA1nuITcc6ICblhhuQUPHS5E2GSCVS7Hwhf4ciq8qsATwBUxv+lI6w== "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" @@ -5915,6 +5911,15 @@ string-width@^1.0.1: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" +string-width@^5.0.1, string-width@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" + integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== + dependencies: + eastasianwidth "^0.2.0" + emoji-regex "^9.2.2" + strip-ansi "^7.0.1" + string_decoder@^1.1.1: version "1.3.0" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" @@ -5930,20 +5935,13 @@ string_decoder@~1.1.1: safe-buffer "~5.1.0" stringify-entities@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/stringify-entities/-/stringify-entities-4.0.2.tgz#13d113dc7449dc8ae4cb22c28883ee3fff8753e3" - integrity sha512-MTxTVcEkorNtBbNpoFJPEh0kKdM6+QbMjLbaxmvaPMmayOXdr/AIVIIJX7FReUVweRBFJfZepK4A4AKgwuFpMQ== + version "4.0.3" + resolved "https://registry.yarnpkg.com/stringify-entities/-/stringify-entities-4.0.3.tgz#cfabd7039d22ad30f3cc435b0ca2c1574fc88ef8" + integrity sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g== dependencies: character-entities-html4 "^2.0.0" character-entities-legacy "^3.0.0" -strip-ansi@^3.0.0, strip-ansi@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= - dependencies: - ansi-regex "^2.0.0" - strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" @@ -5951,27 +5949,22 @@ strip-ansi@^6.0.0, strip-ansi@^6.0.1: dependencies: ansi-regex "^5.0.1" -strip-bom@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" - integrity sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4= +strip-ansi@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.0.1.tgz#61740a08ce36b61e50e65653f07060d000975fb2" + integrity sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw== dependencies: - is-utf8 "^0.2.0" + ansi-regex "^6.0.1" strip-final-newline@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== -strip-json-comments@~2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= - -strip-literal@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/strip-literal/-/strip-literal-0.3.0.tgz#922502f1befeb08f2f79025d1be713e252ba3bd6" - integrity sha512-J+lfm3Pw5nzURj2B8acyvUSBqs3JbjM8WAfrmeH3qcn32+ew6kFwbZFV9+X8k9UOIAkQw9WPSzFZy3083c7l5Q== +strip-literal@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/strip-literal/-/strip-literal-0.4.0.tgz#0f90e86daecc1eb23c61c62d25238ffad4524634" + integrity sha512-ql/sBDoJOybTKSIOWrrh8kgUEMjXMwRAkZTD0EwiwxQH/6tTPkZvMIEjp0CRlpi6V5FMiJyvxeRkEi1KrGISoA== dependencies: acorn "^8.7.1" @@ -5982,22 +5975,6 @@ style-to-object@^0.3.0: dependencies: inline-style-parser "0.1.1" -style-value-types@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/style-value-types/-/style-value-types-5.0.0.tgz#76c35f0e579843d523187989da866729411fc8ad" - integrity sha512-08yq36Ikn4kx4YU6RD7jWEv27v4V+PUsOGa4n/as8Et3CuODMJQ00ENeAVXAeydX4Z2j1XHZF1K2sX4mGl18fA== - dependencies: - hey-listen "^1.0.8" - tslib "^2.1.0" - -style-value-types@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/style-value-types/-/style-value-types-5.1.0.tgz#228b02bd9418c57db46c1f450b85577e634a877f" - integrity sha512-DRIfBtjxQ4ztBZpexkFcI+UR7pODC5qLMf2Syt+bH98PAHHRH2tQnzxBuDQlqcAoYar6GzWnj8iAfqfwnEzCiQ== - dependencies: - hey-listen "^1.0.8" - tslib "^2.3.1" - stylehacks@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-5.1.0.tgz#a40066490ca0caca04e96c6b02153ddc39913520" @@ -6028,7 +6005,7 @@ supports-preserve-symlinks-flag@^1.0.0: svg-tags@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/svg-tags/-/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764" - integrity sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q= + integrity sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA== svgo@^2.7.0: version "2.8.0" @@ -6043,21 +6020,10 @@ svgo@^2.7.0: picocolors "^1.0.0" stable "^0.1.8" -table@^6.8.0: - version "6.8.0" - resolved "https://registry.yarnpkg.com/table/-/table-6.8.0.tgz#87e28f14fa4321c3377ba286f07b79b281a3b3ca" - integrity sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA== - dependencies: - ajv "^8.0.1" - lodash.truncate "^4.4.2" - slice-ansi "^4.0.0" - string-width "^4.2.3" - strip-ansi "^6.0.1" - -tailwind-config-viewer@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/tailwind-config-viewer/-/tailwind-config-viewer-1.7.0.tgz#71d10c6ce31875fd4db742a90599ceeb2a385b63" - integrity sha512-wCc8CxkG3+E+XTt0ahZqGb7lNmqGE0sw6ErXY0t2i//qKp9QVZbynS6SW6UnL9no3g9hf1b1Nk8fixZTlqA9Jg== +tailwind-config-viewer@^1.7.1: + version "1.7.1" + resolved "https://registry.yarnpkg.com/tailwind-config-viewer/-/tailwind-config-viewer-1.7.1.tgz#02beca5064d799908865907bbe085f368a4174d0" + integrity sha512-EtDwFzgQEMJ6dFmp/6K+QJSP7NWANrGDsbwkn/BEq7MVJd/dEIZ5BBZTxo5jx+opa3HNJu/CHtWanKSCrgNwpA== dependencies: "@koa/router" "^9.0.1" commander "^6.0.0" @@ -6068,32 +6034,33 @@ tailwind-config-viewer@^1.7.0: portfinder "^1.0.26" replace-in-file "^6.1.0" -tailwindcss@^3.0.24: - version "3.0.24" - resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.0.24.tgz#22e31e801a44a78a1d9a81ecc52e13b69d85704d" - integrity sha512-H3uMmZNWzG6aqmg9q07ZIRNIawoiEcNFKDfL+YzOPuPsXuDXxJxB9icqzLgdzKNwjG3SAro2h9SYav8ewXNgig== +tailwindcss@^3.1.6: + version "3.1.8" + resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.1.8.tgz#4f8520550d67a835d32f2f4021580f9fddb7b741" + integrity sha512-YSneUCZSFDYMwk+TGq8qYFdCA3yfBRdBlS7txSq0LUmzyeqRe3a8fBQzbz9M3WS/iFT4BNf/nmw9mEzrnSaC0g== dependencies: - arg "^5.0.1" + arg "^5.0.2" chokidar "^3.5.3" color-name "^1.1.4" - detective "^5.2.0" + detective "^5.2.1" didyoumean "^1.2.2" dlv "^1.1.3" fast-glob "^3.2.11" glob-parent "^6.0.2" is-glob "^4.0.3" - lilconfig "^2.0.5" + lilconfig "^2.0.6" normalize-path "^3.0.0" object-hash "^3.0.0" picocolors "^1.0.0" - postcss "^8.4.12" + postcss "^8.4.14" + postcss-import "^14.1.0" postcss-js "^4.0.0" postcss-load-config "^3.1.4" postcss-nested "5.0.6" postcss-selector-parser "^6.0.10" postcss-value-parser "^4.2.0" quick-lru "^5.1.1" - resolve "^1.22.0" + resolve "^1.22.1" tapable@^1.0.0: version "1.1.3" @@ -6116,7 +6083,7 @@ tar-stream@^2.2.0: inherits "^2.0.3" readable-stream "^3.1.1" -tar@^4, tar@^4.4.1: +tar@^4.4.1: version "4.4.19" resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.19.tgz#2e4d7263df26f2b914dee10c825ab132123742f3" integrity sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA== @@ -6142,9 +6109,9 @@ tar@^6.1.11: yallist "^4.0.0" terser@^5.0.0: - version "5.14.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.14.0.tgz#eefeec9af5153f55798180ee2617f390bdd285e2" - integrity sha512-JC6qfIEkPBd9j1SMO3Pfn+A6w2kQV54tv+ABQLgZr7dA3k/DL/OBoYSWxzVpZev3J+bUHXfr55L8Mox7AaNo6g== + version "5.15.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.15.0.tgz#e16967894eeba6e1091509ec83f0c60e179f2425" + integrity sha512-L1BJiXVmheAQQy+as0oF3Pwtlo4s3Wi1X2zNZ2NxOB4wx9bdS9Vk67XQENLFdLYGCK/Z2di53mTj/hBafR+dTA== dependencies: "@jridgewell/source-map" "^0.3.2" acorn "^8.5.0" @@ -6154,13 +6121,18 @@ terser@^5.0.0: through@^2.3.6: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= + integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== tiny-invariant@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.2.0.tgz#a1141f86b672a9148c72e978a19a73b9b94a15a9" integrity sha512-1Uhn/aqw5C6RI4KejVeTg6mIS7IqxnLJ8Mv2tV5rTc0qWobay7pDUz6Wi392Cnc8ak1H0F2cjoRzb2/AW4+Fvg== +tinycolor2@^1.4.1: + version "1.4.2" + resolved "https://registry.yarnpkg.com/tinycolor2/-/tinycolor2-1.4.2.tgz#3f6a4d1071ad07676d7fa472e1fac40a719d8803" + integrity sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA== + tmp@^0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" @@ -6168,10 +6140,18 @@ tmp@^0.0.33: dependencies: os-tmpdir "~1.0.2" +to-ast@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/to-ast/-/to-ast-1.0.0.tgz#0c4a31c8c98edfde9aaf0192c794b4c8b11ee287" + integrity sha512-FZpqARevv2F9BQZAeOx4b8F1tp07qqITCevw5spzKMC7ewcsP4y42kQosjctkAoROtzMNGbmD5n9ZN+vWmSN/Q== + dependencies: + ast-types "^0.7.2" + esprima "^2.1.0" + to-fast-properties@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= + integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== to-regex-range@^5.0.1: version "5.0.1" @@ -6188,14 +6168,19 @@ toidentifier@1.0.1: tr46@~0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== + +trim-lines@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/trim-lines/-/trim-lines-3.0.1.tgz#d802e332a07df861c48802c04321017b1bd87338" + integrity sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg== trough@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/trough/-/trough-2.1.0.tgz#0f7b511a4fde65a46f18477ab38849b22c554876" integrity sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g== -tslib@^2.1.0, tslib@^2.3.1: +tslib@^2.0.1, tslib@^2.0.3, tslib@^2.1.0: version "2.4.0" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== @@ -6210,10 +6195,15 @@ type-fest@^0.21.3: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== +type-fest@^1.0.2: + version "1.4.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-1.4.0.tgz#e9fb813fe3bf1744ec359d55d1affefa76f14be1" + integrity sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA== + type-fest@^2.11.2: - version "2.13.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.13.0.tgz#d1ecee38af29eb2e863b22299a3d68ef30d2abfb" - integrity sha512-lPfAm42MxE4/456+QyIaaVBAwgpJb6xZ8PRu09utnhPdWwcyj9vgy6Sq0Z5yNbJ21EdxB5dRU/Qg8bsyAMtlcw== + version "2.19.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.19.0.tgz#88068015bb33036a598b952e55e9311a60fd3a9b" + integrity sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA== type-is@^1.6.16: version "1.6.18" @@ -6223,35 +6213,35 @@ type-is@^1.6.16: media-typer "0.3.0" mime-types "~2.1.24" -ufo@^0.8.3, ufo@^0.8.4: - version "0.8.4" - resolved "https://registry.yarnpkg.com/ufo/-/ufo-0.8.4.tgz#23e9ed82398d2116dcb378e8fba5ced8eca2ee40" - integrity sha512-/+BmBDe8GvlB2nIflWasLLAInjYG0bC9HRnfEpNi4sw77J2AJNnEVnTDReVrehoh825+Q/evF3THXTAweyam2g== +ufo@^0.8.3, ufo@^0.8.4, ufo@^0.8.5: + version "0.8.5" + resolved "https://registry.yarnpkg.com/ufo/-/ufo-0.8.5.tgz#e367b4205ece9d9723f2fa54f887d43ed1bce5d0" + integrity sha512-e4+UtA5IRO+ha6hYklwj6r7BjiGMxS0O+UaSg9HbaTefg4kMkzj4tXzEBajRR+wkxf+golgAWKzLbytCUDMJAA== -unctx@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/unctx/-/unctx-1.1.4.tgz#18d5c0a81d9ce0a790e89b81715f286ac0fa29bb" - integrity sha512-fQMML+GjUpIjQa0HBrrJezo2dFpTAbQbU0/KFKw4T5wpc9deGjLHSYthdfNAo2xSWM34csI6arzedezQkqtfGw== +unctx@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/unctx/-/unctx-2.0.2.tgz#7d14d9290e0879aa7be697b7f35066cffec4ffc4" + integrity sha512-3lcXTlDoOaguRVC1GqG3mrawy17yoycSAQDDnUayQYZ17v9to+Gn6Zyssroc/GD2ppJ0wF5V8adOcKkrNKVWow== dependencies: - acorn "^8.7.0" - estree-walker "^2.0.2" - magic-string "^0.26.1" - unplugin "^0.6.1" + acorn "^8.8.0" + estree-walker "^3.0.1" + magic-string "^0.26.2" + unplugin "^0.9.5" undici@^5.2.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/undici/-/undici-5.3.0.tgz#869d47bafa7f72ccaf8738258f0283bf3dd179ca" - integrity sha512-8LxC/xmR2GCE4q1heE1sJxVnnf5S6yQ2dObvMFBBWkB8aQlaqNuWovgRFWRMB7KUdLPGZfOTTmUeeLEJYX56iQ== + version "5.10.0" + resolved "https://registry.yarnpkg.com/undici/-/undici-5.10.0.tgz#dd9391087a90ccfbd007568db458674232ebf014" + integrity sha512-c8HsD3IbwmjjbLvoZuRI26TZic+TSEe8FPMLLOkN1AfYRhdjnKBU6yL+IwcSCbdZiX4e5t0lfMDLDCqj4Sq70g== -unenv@^0.5.1, unenv@^0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/unenv/-/unenv-0.5.2.tgz#98ab27dfbe5432b4ce79e1a4b42491e9bf1449cd" - integrity sha512-dojYcCqOFEWZosvqWs/AEaEfM/tLJexMKBW0ebkn6JKfEnYR5fKxbYJB8QV9kAPXV/ENseeWQkv6uJ3KCXz+1g== +unenv@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/unenv/-/unenv-0.6.2.tgz#bae287932759a8d3956885c88fc76e4fe10cc18a" + integrity sha512-IdQfYsHsGKDkiBdeOmtU4MjWvPYfMDOC63cvFqZPodAc5aVezvfD9Bwr7FL/G78cAMMCaDm5Jux3vYo+Z8c/Dg== dependencies: - defu "^6.0.0" + defu "^6.1.0" mime "^3.0.0" - node-fetch-native "^0.1.2" - pathe "^0.3.0" + node-fetch-native "^0.1.4" + pathe "^0.3.5" unified@^10.0.0, unified@^10.1.2: version "10.1.2" @@ -6266,36 +6256,21 @@ unified@^10.0.0, unified@^10.1.2: trough "^2.0.0" vfile "^5.0.0" -unimport@^0.1.6, unimport@^0.1.9: - version "0.1.9" - resolved "https://registry.yarnpkg.com/unimport/-/unimport-0.1.9.tgz#a8688f37df179eb1768f04d365c62cc74c7b35c5" - integrity sha512-ap7MnS7zuA4A8eAyA8CHN3YFw1tMpWQK3rSrh6jvrB3tWkT4EKvslg9sNoax5WuL8TnMaXSydRxwOgUUXrnovg== - dependencies: - "@rollup/pluginutils" "^4.2.1" - escape-string-regexp "^5.0.0" - globby "^13.1.1" - local-pkg "^0.4.1" - magic-string "^0.26.1" - mlly "^0.5.2" - pathe "^0.3.0" - scule "^0.2.1" - unplugin "^0.6.3" - -unimport@^0.2.1: - version "0.2.6" - resolved "https://registry.yarnpkg.com/unimport/-/unimport-0.2.6.tgz#f9951aea19fe019ee4fa711c9a27265e47179d93" - integrity sha512-4cOokUIEvaXAfVCHH87vR+wdKI1KDzxQREW9oi0r6J68TPFEeGLHHc2pdyL0uNDUMd2aLxUikhWARNfoQKqC4Q== +unimport@^0.6.7: + version "0.6.7" + resolved "https://registry.yarnpkg.com/unimport/-/unimport-0.6.7.tgz#7b2e2063b88ee8ea363d2d751f7c82a6960beac3" + integrity sha512-EMoVqDjswHkU+nD098QYHXH7Mkw7KwGDQAyeRF2lgairJnuO+wpkhIcmCqrD1OPJmsjkTbJ2tW6Ap8St0PuWZA== dependencies: "@rollup/pluginutils" "^4.2.1" escape-string-regexp "^5.0.0" fast-glob "^3.2.11" - local-pkg "^0.4.1" + local-pkg "^0.4.2" magic-string "^0.26.2" - mlly "^0.5.2" - pathe "^0.3.0" - scule "^0.2.1" - strip-literal "^0.3.0" - unplugin "^0.6.3" + mlly "^0.5.7" + pathe "^0.3.3" + scule "^0.3.2" + strip-literal "^0.4.0" + unplugin "^0.9.0" unist-builder@^3.0.0: version "3.0.0" @@ -6337,39 +6312,22 @@ unist-util-stringify-position@^3.0.0: dependencies: "@types/unist" "^2.0.0" -unist-util-visit-parents@^4.0.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-4.1.1.tgz#e83559a4ad7e6048a46b1bdb22614f2f3f4724f2" - integrity sha512-1xAFJXAKpnnJl8G7K5KgU7FY55y3GcLIXqkzUj5QF/QVP7biUm0K0O2oqVkYsdjzJKifYeWn9+o6piAK2hGSHw== - dependencies: - "@types/unist" "^2.0.0" - unist-util-is "^5.0.0" - -unist-util-visit-parents@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-5.1.0.tgz#44bbc5d25f2411e7dfc5cecff12de43296aa8521" - integrity sha512-y+QVLcY5eR/YVpqDsLf/xh9R3Q2Y4HxkZTp7ViLDU6WtJCEcPmRzW1gpdWDCDIqIlhuPDXOgttqPlykrHYDekg== - dependencies: - "@types/unist" "^2.0.0" - unist-util-is "^5.0.0" - -unist-util-visit@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-3.1.0.tgz#9420d285e1aee938c7d9acbafc8e160186dbaf7b" - integrity sha512-Szoh+R/Ll68QWAyQyZZpQzZQm2UPbxibDvaY8Xc9SUtYgPsDzx5AWSk++UUt2hJuow8mvwR+rG+LQLw+KsuAKA== +unist-util-visit-parents@^5.0.0, unist-util-visit-parents@^5.1.0, unist-util-visit-parents@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-5.1.1.tgz#868f353e6fce6bf8fa875b251b0f4fec3be709bb" + integrity sha512-gks4baapT/kNRaWxuGkl5BIhoanZo7sC/cUT/JToSRNL1dYoXRFl75d++NkjYk4TAu2uv2Px+l8guMajogeuiw== dependencies: "@types/unist" "^2.0.0" unist-util-is "^5.0.0" - unist-util-visit-parents "^4.0.0" -unist-util-visit@^4.0.0, unist-util-visit@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-4.1.0.tgz#f41e407a9e94da31594e6b1c9811c51ab0b3d8f5" - integrity sha512-n7lyhFKJfVZ9MnKtqbsqkQEk5P1KShj0+//V7mAcoI6bpbUjh3C/OG8HVD+pBihfh6Ovl01m8dkcv9HNqYajmQ== +unist-util-visit@^4.0.0, unist-util-visit@^4.1.0, unist-util-visit@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-4.1.1.tgz#1c4842d70bd3df6cc545276f5164f933390a9aad" + integrity sha512-n9KN3WV9k4h1DxYR1LoajgN93wpEi/7ZplVe02IoB4gH5ctI1AaF2670BLHQYbwj+pY83gFtyeySFiyMHJklrg== dependencies: "@types/unist" "^2.0.0" unist-util-is "^5.0.0" - unist-util-visit-parents "^5.0.0" + unist-util-visit-parents "^5.1.1" universal-user-agent@^6.0.0: version "6.0.0" @@ -6381,40 +6339,74 @@ universalify@^2.0.0: resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== -unplugin@^0.6.1, unplugin@^0.6.3: - version "0.6.3" - resolved "https://registry.yarnpkg.com/unplugin/-/unplugin-0.6.3.tgz#b8721e2b163a410a7efed726e6a0fc6fbadf975a" - integrity sha512-CoW88FQfCW/yabVc4bLrjikN9HC8dEvMU4O7B6K2jsYMPK0l6iAnd9dpJwqGcmXJKRCU9vwSsy653qg+RK0G6A== +unplugin-ast@^0.5.5: + version "0.5.5" + resolved "https://registry.yarnpkg.com/unplugin-ast/-/unplugin-ast-0.5.5.tgz#5c3da1d4d8d96d247394f30b16e9305cc92d2a47" + integrity sha512-L2HnV2xNWjnkOm8bAja2yLIQPZCla3PVN0mTGdYdSTj4sl9KwAVaRheYbCZpHuBNqvpHJPhxw7KR0/y6hs2YVQ== + dependencies: + "@antfu/utils" "^0.5.2" + "@babel/parser" "^7.18.13" + "@rollup/pluginutils" "^4.2.1" + magic-string "^0.26.2" + unplugin "^0.9.4" + +unplugin@^0.9.0, unplugin@^0.9.2, unplugin@^0.9.4, unplugin@^0.9.5: + version "0.9.5" + resolved "https://registry.yarnpkg.com/unplugin/-/unplugin-0.9.5.tgz#2e546c044e0631e699ebd6fb521eeb7bbcb8899f" + integrity sha512-luraheyfxwtvkvHpsOvMNv7IjLdORTWKZp0gWYNHGLi2ImON3iIZOj464qEyyEwLA/EMt12fC415HW9zRpOfTg== dependencies: + acorn "^8.8.0" chokidar "^3.5.3" webpack-sources "^3.2.3" - webpack-virtual-modules "^0.4.3" + webpack-virtual-modules "^0.4.4" -unstorage@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/unstorage/-/unstorage-0.4.1.tgz#66d174886f017a5ceef567b8f007c5966b4690f4" - integrity sha512-nK2XsRV2lfB6aNCuoatsQUhRVMnDDP5pm3D4UrgRMxP3D57Rn5+dx3aNaLCi5rcq6QAdOmhjyBvKcW8d3PY+Sw== +unstorage@^0.5.6: + version "0.5.6" + resolved "https://registry.yarnpkg.com/unstorage/-/unstorage-0.5.6.tgz#61a4f4510a5c8703e59ff3f41fc82979ce84564b" + integrity sha512-TUm1ZyLkVamRfM+uWmWtavlzri3XS0ajYXKhlrAZ8aCChMwH29lufOfAP0bsMaBHuciIVfycaGgNhHeyLONpdA== dependencies: anymatch "^3.1.2" chokidar "^3.5.3" destr "^1.1.1" - h3 "^0.7.6" - ioredis "^5.0.4" - listhen "^0.2.11" + h3 "^0.7.12" + ioredis "^5.2.2" + listhen "^0.2.13" mri "^1.2.0" - ohmyfetch "^0.4.16" - ufo "^0.8.3" - ws "^8.6.0" + ohmyfetch "^0.4.18" + ufo "^0.8.5" + ws "^8.8.1" -untyped@^0.4.4: - version "0.4.4" - resolved "https://registry.yarnpkg.com/untyped/-/untyped-0.4.4.tgz#a3043588892266c9176e7049799a65aaa9e4db4b" - integrity sha512-sY6u8RedwfLfBis0copfU/fzROieyAndqPs8Kn2PfyzTjtA88vCk81J1b5z+8/VJc+cwfGy23/AqOCpvAbkNVw== +untyped@^0.4.7: + version "0.4.7" + resolved "https://registry.yarnpkg.com/untyped/-/untyped-0.4.7.tgz#1c6386eb941935199f2ab57981a0308546243141" + integrity sha512-hBgCv7fnqIRzAagn2cUZxxVmhTE7NcMAgI8CfQelFVacG4O55VrurigpK0G504ph4sQSqVsGEo52O5EKFCnJ9g== dependencies: - "@babel/core" "^7.17.7" - "@babel/standalone" "^7.17.7" - "@babel/types" "^7.17.0" - scule "^0.2.1" + "@babel/core" "^7.18.13" + "@babel/standalone" "^7.18.13" + "@babel/types" "^7.18.13" + scule "^0.3.2" + +update-browserslist-db@^1.0.5: + version "1.0.7" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.7.tgz#16279639cff1d0f800b14792de43d97df2d11b7d" + integrity sha512-iN/XYesmZ2RmmWAiI4Z5rq0YqSiv0brj9Ce9CfhNE4xIW2h+MFxcgkxIzZ+ShkFPUkjU3gQ+3oypadD3RAMtrg== + dependencies: + escalade "^3.1.1" + picocolors "^1.0.0" + +upper-case-first@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/upper-case-first/-/upper-case-first-2.0.2.tgz#992c3273f882abd19d1e02894cc147117f844324" + integrity sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg== + dependencies: + tslib "^2.0.3" + +upper-case@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-2.0.2.tgz#d89810823faab1df1549b7d97a76f8662bae6f7a" + integrity sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg== + dependencies: + tslib "^2.0.3" uri-js@^4.2.2: version "4.4.1" @@ -6426,12 +6418,12 @@ uri-js@^4.2.2: util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== uvu@^0.5.0: - version "0.5.3" - resolved "https://registry.yarnpkg.com/uvu/-/uvu-0.5.3.tgz#3d83c5bc1230f153451877bfc7f4aea2392219ae" - integrity sha512-brFwqA3FXzilmtnIyJ+CxdkInkY/i4ErvP7uV0DnUVxQcQ55reuHphorpF+tZoVHK2MniZ/VJzI7zJQoc9T9Yw== + version "0.5.6" + resolved "https://registry.yarnpkg.com/uvu/-/uvu-0.5.6.tgz#2754ca20bcb0bb59b64e9985e84d2e81058502df" + integrity sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA== dependencies: dequal "^2.0.0" diff "^5.0.0" @@ -6441,7 +6433,7 @@ uvu@^0.5.0: vary@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" - integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= + integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== vfile-location@^4.0.0: version "4.0.1" @@ -6460,30 +6452,29 @@ vfile-message@^3.0.0: unist-util-stringify-position "^3.0.0" vfile@^5.0.0: - version "5.3.2" - resolved "https://registry.yarnpkg.com/vfile/-/vfile-5.3.2.tgz#b499fbc50197ea50ad3749e9b60beb16ca5b7c54" - integrity sha512-w0PLIugRY3Crkgw89TeMvHCzqCs/zpreR31hl4D92y6SOE07+bfJe+dK5Q2akwS+i/c801kzjoOr9gMcTe6IAA== + version "5.3.4" + resolved "https://registry.yarnpkg.com/vfile/-/vfile-5.3.4.tgz#bbb8c96b956693bbf70b2c67fdb5781dff769b93" + integrity sha512-KI+7cnst03KbEyN1+JE504zF5bJBZa+J+CrevLeyIMq0aPU681I2rQ5p4PlnQ6exFtWiUrg26QUdFMnAKR6PIw== dependencies: "@types/unist" "^2.0.0" is-buffer "^2.0.0" unist-util-stringify-position "^3.0.0" vfile-message "^3.0.0" -vite-node@^0.12.1: - version "0.12.10" - resolved "https://registry.yarnpkg.com/vite-node/-/vite-node-0.12.10.tgz#a0f1cd3c0753a59bf1c8f583e1b2fc93de2f436a" - integrity sha512-vKJsl0gdGzG4rDGl6G6r4DQqxJzcqPmtyi64oh7GZyIKEUEcPm4yODvp9VxHycZ5uCmAhvgMVoJsHmrXdY4AUg== +vite-node@^0.22.1: + version "0.22.1" + resolved "https://registry.yarnpkg.com/vite-node/-/vite-node-0.22.1.tgz#a187e3d73094e29ab82310bb7f5a63da1038a882" + integrity sha512-odNMaOD4N62qESLvFSqoNf2t60ftIFHKgHNupa2cojbF2u2yB1ssluOfq5X0lZcTPx2HBzFbwa6h9m78ujEbUw== dependencies: debug "^4.3.4" - kolorist "^1.5.1" - mlly "^0.5.2" + mlly "^0.5.12" pathe "^0.2.0" - vite "^2.9.9" + vite "^2.9.12 || ^3.0.0-0" -vite-plugin-checker@^0.4.6: - version "0.4.6" - resolved "https://registry.yarnpkg.com/vite-plugin-checker/-/vite-plugin-checker-0.4.6.tgz#c954a3c9be4a7751b9f6b3f18cea7120732b8448" - integrity sha512-oFel33hlsc8aUspfq0ThQRpWsfrG772fmZ5qPHKUhmew6ieejd2viITlwXHIRBY6hE3U0kirXoTWwft3DdbK+g== +vite-plugin-checker@^0.5.0: + version "0.5.1" + resolved "https://registry.yarnpkg.com/vite-plugin-checker/-/vite-plugin-checker-0.5.1.tgz#b8e085f456d37be7f89020cf081102daff52812e" + integrity sha512-NFiO1PyK9yGuaeSnJ7Whw9fnxLc1AlELnZoyFURnauBYhbIkx9n+PmIXxSFUuC9iFyACtbJQUAEuQi6yHs2Adg== dependencies: "@babel/code-frame" "^7.12.13" ansi-escapes "^4.3.0" @@ -6501,15 +6492,27 @@ vite-plugin-checker@^0.4.6: vscode-languageserver-textdocument "^1.0.1" vscode-uri "^3.0.2" -vite@^2.9.8, vite@^2.9.9: - version "2.9.9" - resolved "https://registry.yarnpkg.com/vite/-/vite-2.9.9.tgz#8b558987db5e60fedec2f4b003b73164cb081c5e" - integrity sha512-ffaam+NgHfbEmfw/Vuh6BHKKlI/XIAhxE5QSS7gFLIngxg171mg1P3a4LSRME0z2ZU1ScxoKzphkipcYwSD5Ew== +"vite@^2.9.12 || ^3.0.0-0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/vite/-/vite-3.1.0.tgz#3138b279072941d57e76bcf7f66f272fc6a17fe2" + integrity sha512-YBg3dUicDpDWFCGttmvMbVyS9ydjntwEjwXRj2KBFwSB8SxmGcudo1yb8FW5+M/G86aS8x828ujnzUVdsLjs9g== + dependencies: + esbuild "^0.15.6" + postcss "^8.4.16" + resolve "^1.22.1" + rollup "~2.78.0" + optionalDependencies: + fsevents "~2.3.2" + +vite@~3.0.9: + version "3.0.9" + resolved "https://registry.yarnpkg.com/vite/-/vite-3.0.9.tgz#45fac22c2a5290a970f23d66c1aef56a04be8a30" + integrity sha512-waYABTM+G6DBTCpYAxvevpG50UOlZuynR0ckTK5PawNVt7ebX6X7wNXHaGIO6wYYFXSM7/WcuFuO2QzhBB6aMw== dependencies: - esbuild "^0.14.27" - postcss "^8.4.13" - resolve "^1.22.0" - rollup "^2.59.0" + esbuild "^0.14.47" + postcss "^8.4.16" + resolve "^1.22.1" + rollup ">=2.75.6 <2.77.0 || ~2.77.0" optionalDependencies: fsevents "~2.3.2" @@ -6536,9 +6539,9 @@ vscode-languageserver-protocol@3.16.0: vscode-languageserver-types "3.16.0" vscode-languageserver-textdocument@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.4.tgz#3cd56dd14cec1d09e86c4bb04b09a246cb3df157" - integrity sha512-/xhqXP/2A2RSs+J8JNXpiiNVvvNM0oTosNVmQnunlKvq9o4mupHOBAnnzH0lwIPKazXKvAKsVp1kr+H/K4lgoQ== + version "1.0.7" + resolved "https://registry.yarnpkg.com/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.7.tgz#16df468d5c2606103c90554ae05f9f3d335b771b" + integrity sha512-bFJH7UQxlXT8kKeyiyu41r22jCZXG8kuuVVA33OEJn1diWOZK5n8zBSPZFHVBOu8kXZ6h0LIRhf5UnCo61J4Hg== vscode-languageserver-types@3.16.0: version "3.16.0" @@ -6557,47 +6560,52 @@ vscode-uri@^3.0.2: resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-3.0.3.tgz#a95c1ce2e6f41b7549f86279d19f47951e4f4d84" integrity sha512-EcswR2S8bpR7fD0YPeS7r2xXExrScVMxg4MedACaWHEtx9ftCF/qHG1xGkolzTPcEmjTavCQgbVzHUIdTMzFGA== -vue-bundle-renderer@^0.3.8: - version "0.3.8" - resolved "https://registry.yarnpkg.com/vue-bundle-renderer/-/vue-bundle-renderer-0.3.8.tgz#9908c9746815f65e5d38f23fa56af7ed987f28e9" - integrity sha512-1F4P4Aw92PW9XUX0ojC18Ye1P0/kvwq6Jx6kaeokQ+/FoVrfBsKtuJPib1TqGRvGYKCiTCweefun6DidoEvECg== +vue-bundle-renderer@^0.4.2: + version "0.4.2" + resolved "https://registry.yarnpkg.com/vue-bundle-renderer/-/vue-bundle-renderer-0.4.2.tgz#0c84dd673fb0affad5f89fdfe6b1480ecdae5d43" + integrity sha512-HwWd/qw3QBQvZXlK7xQbOViCoDzSaodSueao0Yt3VUxReLDt90FAaufXjv2hfpHQKvYCo5Rez8z1zHOEo3fhAg== dependencies: - bundle-runner "^0.0.1" + ufo "^0.8.3" vue-demi@*: - version "0.12.5" - resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.12.5.tgz#8eeed566a7d86eb090209a11723f887d28aeb2d1" - integrity sha512-BREuTgTYlUr0zw0EZn3hnhC3I6gPWv+Kwh4MCih6QcAeaTlaIX0DwOVN0wHej7hSvDPecz4jygy/idsgKfW58Q== + version "0.13.11" + resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.13.11.tgz#7d90369bdae8974d87b1973564ad390182410d99" + integrity sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A== -vue-plausible@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/vue-plausible/-/vue-plausible-1.3.1.tgz#c8d5906566433c7f5a0a27878745f355eccf9172" - integrity sha512-OqZiScz/7glitE4XSJTwGUHO31VEbba2efmLki0+rIGDx3NysSOBJMyFz6yBFPWKms4jb1lDmx1wCsbAl7mrtA== +vue-devtools-stub@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/vue-devtools-stub/-/vue-devtools-stub-0.1.0.tgz#a65b9485edecd4273cedcb8102c739b83add2c81" + integrity sha512-RutnB7X8c5hjq39NceArgXg28WZtZpGc3+J16ljMiYnFhKvd8hITxSWQSQ5bvldxMDU6gG5mkxl1MTQLXckVSQ== + +vue-plausible@^1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/vue-plausible/-/vue-plausible-1.3.2.tgz#c797ee03a7c8849dc847e706c5250aa10908dd0f" + integrity sha512-7hdLrDjw0+qjdM9hxowOirQSHPCljWwd8scW0tRFHyXAQSE/yBWrJ3EPuEiZlJUoth9ac0KLbHM+wSSkWHttiA== dependencies: plausible-tracker "^0.3.4" -vue-router@^4.0.15: - version "4.0.15" - resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-4.0.15.tgz#b4a0661efe197f8c724e0f233308f8776e2c3667" - integrity sha512-xa+pIN9ZqORdIW1MkN2+d9Ui2pCM1b/UMgwYUCZOiFYHAvz/slKKBDha8DLrh5aCG/RibtrpyhKjKOZ85tYyWg== +vue-router@^4.1.5: + version "4.1.5" + resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-4.1.5.tgz#256f597e3f5a281a23352a6193aa6e342c8d9f9a" + integrity sha512-IsvoF5D2GQ/EGTs/Th4NQms9gd2NSqV+yylxIyp/OYp8xOwxmU8Kj/74E9DTSYAyH5LX7idVUngN3JSj1X4xcQ== dependencies: - "@vue/devtools-api" "^6.0.0" + "@vue/devtools-api" "^6.1.4" -vue@^3.2.33: - version "3.2.36" - resolved "https://registry.yarnpkg.com/vue/-/vue-3.2.36.tgz#8daa996e2ced521708de97d066c7c998e8bc3378" - integrity sha512-5yTXmrE6gW8IQgttzHW5bfBiFA6mx35ZXHjGLDmKYzW6MMmYvCwuKybANRepwkMYeXw2v1buGg3/lPICY5YlZw== +vue@^3.2.38: + version "3.2.38" + resolved "https://registry.yarnpkg.com/vue/-/vue-3.2.38.tgz#cda3a414631745b194971219318a792dbbccdec0" + integrity sha512-hHrScEFSmDAWL0cwO4B6WO7D3sALZPbfuThDsGBebthrNlDxdJZpGR3WB87VbjpPh96mep1+KzukYEhpHDFa8Q== dependencies: - "@vue/compiler-dom" "3.2.36" - "@vue/compiler-sfc" "3.2.36" - "@vue/runtime-dom" "3.2.36" - "@vue/server-renderer" "3.2.36" - "@vue/shared" "3.2.36" + "@vue/compiler-dom" "3.2.38" + "@vue/compiler-sfc" "3.2.38" + "@vue/runtime-dom" "3.2.38" + "@vue/server-renderer" "3.2.38" + "@vue/shared" "3.2.38" wcwidth@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" - integrity sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g= + integrity sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg== dependencies: defaults "^1.0.3" @@ -6614,22 +6622,22 @@ web-streams-polyfill@^3.0.3: webidl-conversions@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" - integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE= + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== webpack-sources@^3.2.3: version "3.2.3" resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== -webpack-virtual-modules@^0.4.3: - version "0.4.3" - resolved "https://registry.yarnpkg.com/webpack-virtual-modules/-/webpack-virtual-modules-0.4.3.tgz#cd597c6d51d5a5ecb473eea1983a58fa8a17ded9" - integrity sha512-5NUqC2JquIL2pBAAo/VfBP6KuGkHIZQXW/lNKupLPfhViwh8wNsu0BObtl09yuKZszeEUfbXz8xhrHvSG16Nqw== +webpack-virtual-modules@^0.4.4: + version "0.4.4" + resolved "https://registry.yarnpkg.com/webpack-virtual-modules/-/webpack-virtual-modules-0.4.4.tgz#a19fcf371923c59c4712d63d7d194b1e4d8262cc" + integrity sha512-h9atBP/bsZohWpHnr+2sic8Iecb60GxftXsWNLLLSqewgIsGzByd2gcIID4nXcG+3tNe4GQG3dLcff3kXupdRA== whatwg-url@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" - integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0= + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== dependencies: tr46 "~0.0.3" webidl-conversions "^3.0.0" @@ -6641,7 +6649,7 @@ which@^2.0.1: dependencies: isexe "^2.0.0" -wide-align@^1.1.0, wide-align@^1.1.2: +wide-align@^1.1.2: version "1.1.5" resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3" integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== @@ -6657,35 +6665,34 @@ wrap-ansi@^7.0.0: string-width "^4.1.0" strip-ansi "^6.0.0" +wrap-ansi@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.0.1.tgz#2101e861777fec527d0ea90c57c6b03aac56a5b3" + integrity sha512-QFF+ufAqhoYHvoHdajT/Po7KoXVBPXS2bgjIam5isfWJPfIOnQZ50JtUiVvCv/sjgacf3yRrt2ZKUZ/V4itN4g== + dependencies: + ansi-styles "^6.1.0" + string-width "^5.0.1" + strip-ansi "^7.0.1" + wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= - -ws@^8.6.0, ws@^8.7.0: - version "8.7.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.7.0.tgz#eaf9d874b433aa00c0e0d8752532444875db3957" - integrity sha512-c2gsP0PRwcLFzUiA8Mkr37/MI7ilIlHQxaEAtd0uNMbVMoy8puJyafRlm0bV9MbGSabUPeLrRRaqIBcFcA2Pqg== + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== -ws@~8.2.3: - version "8.2.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.2.3.tgz#63a56456db1b04367d0b721a0b80cae6d8becbba" - integrity sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA== - -xmlhttprequest-ssl@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz#91360c86b914e67f44dce769180027c0da618c67" - integrity sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A== +ws@^8.8.1: + version "8.8.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.8.1.tgz#5dbad0feb7ade8ecc99b830c1d77c913d4955ff0" + integrity sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA== xtend@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== -xterm@^4.18.0: - version "4.18.0" - resolved "https://registry.yarnpkg.com/xterm/-/xterm-4.18.0.tgz#a1f6ab2c330c3918fb094ae5f4c2562987398ea1" - integrity sha512-JQoc1S0dti6SQfI0bK1AZvGnAxH4MVw45ZPFSO6FHTInAiau3Ix77fSxNx3mX4eh9OL4AYa8+4C8f5UvnSfppQ== +xterm@^4.19.0: + version "4.19.0" + resolved "https://registry.yarnpkg.com/xterm/-/xterm-4.19.0.tgz#c0f9d09cd61de1d658f43ca75f992197add9ef6d" + integrity sha512-c3Cp4eOVsYY5Q839dR5IejghRPpxciGmLWWaP9g+ppfMeBChMeLa1DCA+pmX/jyDZ+zxFOmlJL/82qVdayVoGQ== xxhashjs@~0.2.2: version "0.2.2" @@ -6715,11 +6722,11 @@ yaml@^1.10.0, yaml@^1.10.2: integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== yargs-parser@^21.0.0: - version "21.0.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.0.1.tgz#0267f286c877a4f0f728fceb6f8a3e4cb95c6e35" - integrity sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg== + version "21.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" + integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== -yargs@^17.2.1, yargs@^17.3.1: +yargs@^17.2.1, yargs@^17.5.1: version "17.5.1" resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.5.1.tgz#e109900cab6fcb7fd44b1d8249166feb0b36e58e" integrity sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA== diff --git a/examples/advanced/transformer/content/1.index.names b/examples/advanced/transformer/content/1.index.names new file mode 100644 index 000000000..0b1f1c911 --- /dev/null +++ b/examples/advanced/transformer/content/1.index.names @@ -0,0 +1,4 @@ +John +Joes +Jessi +Jason \ No newline at end of file diff --git a/examples/advanced/transformer/my-module/my-module.ts b/examples/advanced/transformer/my-module/my-module.ts new file mode 100644 index 000000000..ef5733b78 --- /dev/null +++ b/examples/advanced/transformer/my-module/my-module.ts @@ -0,0 +1,14 @@ +import { resolve } from 'path' +import { defineNuxtModule } from '@nuxt/kit' + +export default defineNuxtModule({ + setup (_options, nuxt) { + nuxt.options.nitro.externals = nuxt.options.nitro.externals || {} + nuxt.options.nitro.externals.inline = nuxt.options.nitro.externals.inline || [] + nuxt.options.nitro.externals.inline.push(resolve('./my-module')) + // @ts-ignore + nuxt.hook('content:context', (contentContext) => { + contentContext.transformers.push(resolve('./my-module/my-transformer.ts')) + }) + } +}) diff --git a/examples/advanced/transformer/my-module/my-transformer.ts b/examples/advanced/transformer/my-module/my-transformer.ts new file mode 100644 index 000000000..7e777ce17 --- /dev/null +++ b/examples/advanced/transformer/my-module/my-transformer.ts @@ -0,0 +1,12 @@ +import { defineTransformer } from '@nuxt/content/transformers' + +export default defineTransformer({ + name: 'my-transformer', + extensions: ['.names'], + parse (_id, rawContent) { + return { + _id, + body: rawContent.trim().split('\n').map(line => line.trim()).sort() + } + } +}) diff --git a/examples/advanced/transformer/nuxt.config.ts b/examples/advanced/transformer/nuxt.config.ts new file mode 100644 index 000000000..5795550d6 --- /dev/null +++ b/examples/advanced/transformer/nuxt.config.ts @@ -0,0 +1,9 @@ +import { defineNuxtConfig } from 'nuxt' +import MyModule from './my-module/my-module' + +export default defineNuxtConfig({ + modules: [ + MyModule, + '@nuxt/content' + ] +}) diff --git a/examples/advanced/transformer/package.json b/examples/advanced/transformer/package.json new file mode 100644 index 000000000..3ef862d24 --- /dev/null +++ b/examples/advanced/transformer/package.json @@ -0,0 +1,14 @@ +{ + "name": "example-hello-world", + "private": true, + "scripts": { + "build": "nuxt build", + "dev": "nuxt dev", + "generate": "nuxt generate", + "preview": "nuxt preview" + }, + "devDependencies": { + "@nuxt/content": "npm:@nuxt/content-edge@latest", + "nuxt": "npm:nuxt3@latest" + } +} diff --git a/examples/advanced/transformer/pages/[...slug].vue b/examples/advanced/transformer/pages/[...slug].vue new file mode 100644 index 000000000..2aa84efb3 --- /dev/null +++ b/examples/advanced/transformer/pages/[...slug].vue @@ -0,0 +1,25 @@ +<template> + <div class="content-page"> + <ContentDoc v-slot="{ doc }"> + <div> + {{ doc }} + </div> + </ContentDoc> + </div> +</template> + +<script setup lang="ts"> +definePageMeta({ + layout: 'default', + layoutTransition: false +}) +</script> + +<style> +.content-page { + height: calc(100vh - 60px); + max-height: calc(100vh - 60px); + padding: 1rem; + margin: 0; +} +</style> diff --git a/examples/essentials/document-driven/app.vue b/examples/essentials/document-driven/app.vue new file mode 100644 index 000000000..bfe73bc25 --- /dev/null +++ b/examples/essentials/document-driven/app.vue @@ -0,0 +1,7 @@ +<template> + <NuxtExampleLayout example="document-driven" repo="nuxt/content"> + <NuxtLayout> + <NuxtPage class="prose text-left" /> + </NuxtLayout> + </NuxtExampleLayout> +</template> diff --git a/examples/essentials/document-driven/content/1.index.md b/examples/essentials/document-driven/content/1.index.md new file mode 100644 index 000000000..f896feced --- /dev/null +++ b/examples/essentials/document-driven/content/1.index.md @@ -0,0 +1,6 @@ +# Hello Nuxt Content + +Welcome to Nuxt Content Hello World example. + +Checkout the [about page](/about). + diff --git a/examples/essentials/document-driven/content/2.about.md b/examples/essentials/document-driven/content/2.about.md new file mode 100644 index 000000000..8de37cb81 --- /dev/null +++ b/examples/essentials/document-driven/content/2.about.md @@ -0,0 +1,7 @@ +--- +layout: article +--- + +# About page + +You can go back to the [home page](/). diff --git a/examples/essentials/document-driven/layouts/article.vue b/examples/essentials/document-driven/layouts/article.vue new file mode 100644 index 000000000..43516664f --- /dev/null +++ b/examples/essentials/document-driven/layouts/article.vue @@ -0,0 +1,8 @@ +<template> + <div> + <div class="pb-4 border-b border-gray-500"> + Article layout + </div> + <slot /> + </div> +</template> diff --git a/examples/essentials/document-driven/nuxt.config.ts b/examples/essentials/document-driven/nuxt.config.ts new file mode 100644 index 000000000..d896bcd50 --- /dev/null +++ b/examples/essentials/document-driven/nuxt.config.ts @@ -0,0 +1,11 @@ +import { defineNuxtConfig } from 'nuxt' + +export default defineNuxtConfig({ + modules: [ + '@nuxt/content', + '@nuxt/ui' + ], + content: { + documentDriven: true + } +}) diff --git a/examples/essentials/document-driven/package.json b/examples/essentials/document-driven/package.json new file mode 100644 index 000000000..42722a700 --- /dev/null +++ b/examples/essentials/document-driven/package.json @@ -0,0 +1,15 @@ +{ + "name": "example-hello-world", + "private": true, + "scripts": { + "build": "nuxt build", + "dev": "nuxt dev", + "generate": "nuxt generate", + "preview": "nuxt preview" + }, + "devDependencies": { + "@nuxt/content": "npm:@nuxt/content-edge@latest", + "@nuxt/ui": "npm:@nuxt/ui-edge@latest", + "nuxt": "npm:nuxt3@latest" + } +} diff --git a/examples/essentials/hello-world/app.vue b/examples/essentials/hello-world/app.vue index 1ce57a6de..d20fda197 100644 --- a/examples/essentials/hello-world/app.vue +++ b/examples/essentials/hello-world/app.vue @@ -1,5 +1,5 @@ <template> <NuxtExampleLayout example="essentials/hello-world" repo="nuxt/content"> - <NuxtPage /> + <NuxtPage class="prose text-left" /> </NuxtExampleLayout> </template> diff --git a/examples/essentials/hello-world/yarn.lock b/examples/essentials/hello-world/yarn.lock index 543114a99..3985dee58 100644 --- a/examples/essentials/hello-world/yarn.lock +++ b/examples/essentials/hello-world/yarn.lock @@ -23,197 +23,195 @@ resolved "https://registry.yarnpkg.com/@antfu/utils/-/utils-0.5.2.tgz#8c2d931ff927be0ebe740169874a3d4004ab414b" integrity sha512-CQkeV+oJxUazwjlHD0/3ZD08QWKuGQkhnrKo3e6ly5pd48VUpXbb77q0xMU4+vc2CkJnDS02Eq/M9ugyX20XZA== -"@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.7.tgz#44416b6bd7624b998f5b1af5d470856c40138789" - integrity sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg== +"@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" + integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== dependencies: - "@babel/highlight" "^7.16.7" + "@babel/highlight" "^7.18.6" -"@babel/compat-data@^7.17.10": - version "7.17.10" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.17.10.tgz#711dc726a492dfc8be8220028b1b92482362baab" - integrity sha512-GZt/TCsG70Ms19gfZO1tM4CVnXsPgEPBCpJu+Qz3L0LUDsY5nZqFZglIoPC1kIYOtNBZlrnFT+klg12vFGZXrw== +"@babel/compat-data@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.18.6.tgz#8b37d24e88e8e21c499d4328db80577d8882fa53" + integrity sha512-tzulrgDT0QD6U7BJ4TKVk2SDDg7wlP39P9yAx1RfLy7vP/7rsDRlWVfbWxElslu56+r7QOhB2NSDsabYYruoZQ== "@babel/core@^7.17.7", "@babel/core@^7.17.9": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.18.0.tgz#c58d04d7c6fbfb58ea7681e2b9145cfb62726756" - integrity sha512-Xyw74OlJwDijToNi0+6BBI5mLLR5+5R3bcSH80LXzjzEGEUlvNzujEE71BaD/ApEZHAvFI/Mlmp4M5lIkdeeWw== + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.18.6.tgz#54a107a3c298aee3fe5e1947a6464b9b6faca03d" + integrity sha512-cQbWBpxcbbs/IUredIPkHiAGULLV8iwgNRMFzvbhEXISp4f3rUUXE5+TIw6KwUWUR3DwyI6gmBRnmAtYaWehwQ== dependencies: "@ampproject/remapping" "^2.1.0" - "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.18.0" - "@babel/helper-compilation-targets" "^7.17.10" - "@babel/helper-module-transforms" "^7.18.0" - "@babel/helpers" "^7.18.0" - "@babel/parser" "^7.18.0" - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.18.0" - "@babel/types" "^7.18.0" + "@babel/code-frame" "^7.18.6" + "@babel/generator" "^7.18.6" + "@babel/helper-compilation-targets" "^7.18.6" + "@babel/helper-module-transforms" "^7.18.6" + "@babel/helpers" "^7.18.6" + "@babel/parser" "^7.18.6" + "@babel/template" "^7.18.6" + "@babel/traverse" "^7.18.6" + "@babel/types" "^7.18.6" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" json5 "^2.2.1" semver "^6.3.0" -"@babel/generator@^7.18.0": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.18.0.tgz#46d28e8a18fc737b028efb25ab105d74473af43f" - integrity sha512-81YO9gGx6voPXlvYdZBliFXAZU8vZ9AZ6z+CjlmcnaeOcYSFbMTpdeDUO9xD9dh/68Vq03I8ZspfUTPfitcDHg== +"@babel/generator@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.18.6.tgz#9ab2d46d3cbf631f0e80f72e72874a04c3fc12a9" + integrity sha512-AIwwoOS8axIC5MZbhNHRLKi3D+DMpvDf9XUcu3pIVAfOHFT45f4AoDAltRbHIQomCipkCZxrNkfpOEHhJz/VKw== dependencies: - "@babel/types" "^7.18.0" + "@babel/types" "^7.18.6" "@jridgewell/gen-mapping" "^0.3.0" jsesc "^2.5.1" -"@babel/helper-annotate-as-pure@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz#bb2339a7534a9c128e3102024c60760a3a7f3862" - integrity sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw== +"@babel/helper-annotate-as-pure@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz#eaa49f6f80d5a33f9a5dd2276e6d6e451be0a6bb" + integrity sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA== dependencies: - "@babel/types" "^7.16.7" + "@babel/types" "^7.18.6" -"@babel/helper-compilation-targets@^7.17.10": - version "7.17.10" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.10.tgz#09c63106d47af93cf31803db6bc49fef354e2ebe" - integrity sha512-gh3RxjWbauw/dFiU/7whjd0qN9K6nPJMqe6+Er7rOavFh0CQUSwhAE3IcTho2rywPJFxej6TUUHDkWcYI6gGqQ== +"@babel/helper-compilation-targets@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.6.tgz#18d35bfb9f83b1293c22c55b3d576c1315b6ed96" + integrity sha512-vFjbfhNCzqdeAtZflUFrG5YIFqGTqsctrtkZ1D/NB0mDW9TwW3GmmUepYY4G9wCET5rY5ugz4OGTcLd614IzQg== dependencies: - "@babel/compat-data" "^7.17.10" - "@babel/helper-validator-option" "^7.16.7" + "@babel/compat-data" "^7.18.6" + "@babel/helper-validator-option" "^7.18.6" browserslist "^4.20.2" semver "^6.3.0" -"@babel/helper-create-class-features-plugin@^7.18.0": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.0.tgz#fac430912606331cb075ea8d82f9a4c145a4da19" - integrity sha512-Kh8zTGR9de3J63e5nS0rQUdRs/kbtwoeQQ0sriS0lItjC96u8XXZN6lKpuyWd2coKSU13py/y+LTmThLuVX0Pg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.16.7" - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-function-name" "^7.17.9" - "@babel/helper-member-expression-to-functions" "^7.17.7" - "@babel/helper-optimise-call-expression" "^7.16.7" - "@babel/helper-replace-supers" "^7.16.7" - "@babel/helper-split-export-declaration" "^7.16.7" - -"@babel/helper-environment-visitor@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz#ff484094a839bde9d89cd63cba017d7aae80ecd7" - integrity sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-function-name@^7.17.9": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz#136fcd54bc1da82fcb47565cf16fd8e444b1ff12" - integrity sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg== - dependencies: - "@babel/template" "^7.16.7" - "@babel/types" "^7.17.0" - -"@babel/helper-hoist-variables@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz#86bcb19a77a509c7b77d0e22323ef588fa58c246" - integrity sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-member-expression-to-functions@^7.16.7", "@babel/helper-member-expression-to-functions@^7.17.7": - version "7.17.7" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.17.7.tgz#a34013b57d8542a8c4ff8ba3f747c02452a4d8c4" - integrity sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw== - dependencies: - "@babel/types" "^7.17.0" - -"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz#25612a8091a999704461c8a222d0efec5d091437" - integrity sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-module-transforms@^7.18.0": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.18.0.tgz#baf05dec7a5875fb9235bd34ca18bad4e21221cd" - integrity sha512-kclUYSUBIjlvnzN2++K9f2qzYKFgjmnmjwL4zlmU5f8ZtzgWe8s0rUPSTGy2HmK4P8T52MQsS+HTQAgZd3dMEA== - dependencies: - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-module-imports" "^7.16.7" - "@babel/helper-simple-access" "^7.17.7" - "@babel/helper-split-export-declaration" "^7.16.7" - "@babel/helper-validator-identifier" "^7.16.7" - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.18.0" - "@babel/types" "^7.18.0" - -"@babel/helper-optimise-call-expression@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz#a34e3560605abbd31a18546bd2aad3e6d9a174f2" - integrity sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.17.12": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz#86c2347da5acbf5583ba0a10aed4c9bf9da9cf96" - integrity sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA== - -"@babel/helper-replace-supers@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz#e9f5f5f32ac90429c1a4bdec0f231ef0c2838ab1" - integrity sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw== - dependencies: - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-member-expression-to-functions" "^7.16.7" - "@babel/helper-optimise-call-expression" "^7.16.7" - "@babel/traverse" "^7.16.7" - "@babel/types" "^7.16.7" - -"@babel/helper-simple-access@^7.17.7": - version "7.17.7" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz#aaa473de92b7987c6dfa7ce9a7d9674724823367" - integrity sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA== - dependencies: - "@babel/types" "^7.17.0" - -"@babel/helper-split-export-declaration@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz#0b648c0c42da9d3920d85ad585f2778620b8726b" - integrity sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-validator-identifier@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz#e8c602438c4a8195751243da9031d1607d247cad" - integrity sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw== - -"@babel/helper-validator-option@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz#b203ce62ce5fe153899b617c08957de860de4d23" - integrity sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ== - -"@babel/helpers@^7.18.0": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.18.0.tgz#aff37c3590de42102b54842446146d0205946370" - integrity sha512-AE+HMYhmlMIbho9nbvicHyxFwhrO+xhKB6AhRxzl8w46Yj0VXTZjEsAoBVC7rB2I0jzX+yWyVybnO08qkfx6kg== - dependencies: - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.18.0" - "@babel/types" "^7.18.0" - -"@babel/highlight@^7.16.7": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.17.12.tgz#257de56ee5afbd20451ac0a75686b6b404257351" - integrity sha512-7yykMVF3hfZY2jsHZEEgLc+3x4o1O+fYyULu11GynEUQNwB6lua+IIQn1FiJxNucd5UlyJryrwsOh8PL9Sn8Qg== - dependencies: - "@babel/helper-validator-identifier" "^7.16.7" +"@babel/helper-create-class-features-plugin@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.6.tgz#6f15f8459f3b523b39e00a99982e2c040871ed72" + integrity sha512-YfDzdnoxHGV8CzqHGyCbFvXg5QESPFkXlHtvdCkesLjjVMT2Adxe4FGUR5ChIb3DxSaXO12iIOCWoXdsUVwnqw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-environment-visitor" "^7.18.6" + "@babel/helper-function-name" "^7.18.6" + "@babel/helper-member-expression-to-functions" "^7.18.6" + "@babel/helper-optimise-call-expression" "^7.18.6" + "@babel/helper-replace-supers" "^7.18.6" + "@babel/helper-split-export-declaration" "^7.18.6" + +"@babel/helper-environment-visitor@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.6.tgz#b7eee2b5b9d70602e59d1a6cad7dd24de7ca6cd7" + integrity sha512-8n6gSfn2baOY+qlp+VSzsosjCVGFqWKmDF0cCWOybh52Dw3SEyoWR1KrhMJASjLwIEkkAufZ0xvr+SxLHSpy2Q== + +"@babel/helper-function-name@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.18.6.tgz#8334fecb0afba66e6d87a7e8c6bb7fed79926b83" + integrity sha512-0mWMxV1aC97dhjCah5U5Ua7668r5ZmSC2DLfH2EZnf9c3/dHZKiFa5pRLMH5tjSl471tY6496ZWk/kjNONBxhw== + dependencies: + "@babel/template" "^7.18.6" + "@babel/types" "^7.18.6" + +"@babel/helper-hoist-variables@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678" + integrity sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-member-expression-to-functions@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.6.tgz#44802d7d602c285e1692db0bad9396d007be2afc" + integrity sha512-CeHxqwwipekotzPDUuJOfIMtcIHBuc7WAzLmTYWctVigqS5RktNMQ5bEwQSuGewzYnCtTWa3BARXeiLxDTv+Ng== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz#1e3ebdbbd08aad1437b428c50204db13c5a3ca6e" + integrity sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-module-transforms@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.18.6.tgz#57e3ca669e273d55c3cda55e6ebf552f37f483c8" + integrity sha512-L//phhB4al5uucwzlimruukHB3jRd5JGClwRMD/ROrVjXfLqovYnvQrK/JK36WYyVwGGO7OD3kMyVTjx+WVPhw== + dependencies: + "@babel/helper-environment-visitor" "^7.18.6" + "@babel/helper-module-imports" "^7.18.6" + "@babel/helper-simple-access" "^7.18.6" + "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/helper-validator-identifier" "^7.18.6" + "@babel/template" "^7.18.6" + "@babel/traverse" "^7.18.6" + "@babel/types" "^7.18.6" + +"@babel/helper-optimise-call-expression@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz#9369aa943ee7da47edab2cb4e838acf09d290ffe" + integrity sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.6.tgz#9448974dd4fb1d80fefe72e8a0af37809cd30d6d" + integrity sha512-gvZnm1YAAxh13eJdkb9EWHBnF3eAub3XTLCZEehHT2kWxiKVRL64+ae5Y6Ivne0mVHmMYKT+xWgZO+gQhuLUBg== + +"@babel/helper-replace-supers@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.18.6.tgz#efedf51cfccea7b7b8c0f00002ab317e7abfe420" + integrity sha512-fTf7zoXnUGl9gF25fXCWE26t7Tvtyn6H4hkLSYhATwJvw2uYxd3aoXplMSe0g9XbwK7bmxNes7+FGO0rB/xC0g== + dependencies: + "@babel/helper-environment-visitor" "^7.18.6" + "@babel/helper-member-expression-to-functions" "^7.18.6" + "@babel/helper-optimise-call-expression" "^7.18.6" + "@babel/traverse" "^7.18.6" + "@babel/types" "^7.18.6" + +"@babel/helper-simple-access@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz#d6d8f51f4ac2978068df934b569f08f29788c7ea" + integrity sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-split-export-declaration@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz#7367949bc75b20c6d5a5d4a97bba2824ae8ef075" + integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-validator-identifier@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz#9c97e30d31b2b8c72a1d08984f2ca9b574d7a076" + integrity sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g== + +"@babel/helper-validator-option@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz#bf0d2b5a509b1f336099e4ff36e1a63aa5db4db8" + integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw== + +"@babel/helpers@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.18.6.tgz#4c966140eaa1fcaa3d5a8c09d7db61077d4debfd" + integrity sha512-vzSiiqbQOghPngUYt/zWGvK3LAsPhz55vc9XNN0xAl2gV4ieShI2OQli5duxWHD+72PZPTKAcfcZDE1Cwc5zsQ== + dependencies: + "@babel/template" "^7.18.6" + "@babel/traverse" "^7.18.6" + "@babel/types" "^7.18.6" + +"@babel/highlight@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" + integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== + dependencies: + "@babel/helper-validator-identifier" "^7.18.6" chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.16.4", "@babel/parser@^7.16.7", "@babel/parser@^7.18.0": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.0.tgz#10a8d4e656bc01128d299a787aa006ce1a91e112" - integrity sha512-AqDccGC+m5O/iUStSJy3DGRIUFu7WbY/CppZYwrEUB4N0tZlnI8CSTsgL7v5fHVFmUbRv2sd+yy27o8Ydt4MGg== +"@babel/parser@^7.16.4", "@babel/parser@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.6.tgz#845338edecad65ebffef058d3be851f1d28a63bc" + integrity sha512-uQVSa9jJUe/G/304lXspfWVpKpK4euFLgGiMQFOCpM/bgcAdeoHwi/OQz23O9GK2osz26ZiXRRV9aV+Yl1O8tw== "@babel/plugin-syntax-import-meta@^7.10.4": version "7.10.4" @@ -223,64 +221,64 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-jsx@^7.0.0": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.17.12.tgz#834035b45061983a491f60096f61a2e7c5674a47" - integrity sha512-spyY3E3AURfxh/RHtjx5j6hs8am5NbUBGfcZ2vB3uShSpZdQyXSf5rR5Mk76vbtlAZOelyVQ71Fg0x9SG4fsog== + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz#a8feef63b010150abd97f1649ec296e849943ca0" + integrity sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q== dependencies: - "@babel/helper-plugin-utils" "^7.17.12" + "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-syntax-typescript@^7.17.12": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.17.12.tgz#b54fc3be6de734a56b87508f99d6428b5b605a7b" - integrity sha512-TYY0SXFiO31YXtNg3HtFwNJHjLsAyIIhAhNWkQ5whPPS7HWUFlg9z0Ta4qAQNjQbP1wsSt/oKkmZ/4/WWdMUpw== +"@babel/plugin-syntax-typescript@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.18.6.tgz#1c09cd25795c7c2b8a4ba9ae49394576d4133285" + integrity sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA== dependencies: - "@babel/helper-plugin-utils" "^7.17.12" + "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-transform-typescript@^7.16.8": - version "7.18.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.18.1.tgz#5fd8b86130bad95c4a24377b41ab989a9ccad22d" - integrity sha512-F+RJmL479HJmC0KeqqwEGZMg1P7kWArLGbAKfEi9yPthJyMNjF+DjxFF/halfQvq1Q9GFM4TUbYDNV8xe4Ctqg== + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.18.6.tgz#8f4ade1a9cf253e5cf7c7c20173082c2c08a50a7" + integrity sha512-ijHNhzIrLj5lQCnI6aaNVRtGVuUZhOXFLRVFs7lLrkXTHip4FKty5oAuQdk4tywG0/WjXmjTfQCWmuzrvFer1w== dependencies: - "@babel/helper-create-class-features-plugin" "^7.18.0" - "@babel/helper-plugin-utils" "^7.17.12" - "@babel/plugin-syntax-typescript" "^7.17.12" + "@babel/helper-create-class-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-syntax-typescript" "^7.18.6" "@babel/standalone@^7.17.7": - version "7.18.1" - resolved "https://registry.yarnpkg.com/@babel/standalone/-/standalone-7.18.1.tgz#9641af95830626b3ee9583d52404420be5b4381b" - integrity sha512-RPTw2fR7FlvRqOa4/UCVgFz7RrL+gka8imIaswu6a8DOLDZ0bP+/ttHNw3W4vvabvScjDWNVtR0RG/C13KQBtw== - -"@babel/template@^7.0.0", "@babel/template@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.16.7.tgz#8d126c8701fde4d66b264b3eba3d96f07666d155" - integrity sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w== - dependencies: - "@babel/code-frame" "^7.16.7" - "@babel/parser" "^7.16.7" - "@babel/types" "^7.16.7" - -"@babel/traverse@^7.0.0", "@babel/traverse@^7.16.7", "@babel/traverse@^7.18.0": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.18.0.tgz#0e5ec6db098660b2372dd63d096bf484e32d27ba" - integrity sha512-oNOO4vaoIQoGjDQ84LgtF/IAlxlyqL4TUuoQ7xLkQETFaHkY1F7yazhB4Kt3VcZGL0ZF/jhrEpnXqUb0M7V3sw== - dependencies: - "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.18.0" - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-function-name" "^7.17.9" - "@babel/helper-hoist-variables" "^7.16.7" - "@babel/helper-split-export-declaration" "^7.16.7" - "@babel/parser" "^7.18.0" - "@babel/types" "^7.18.0" + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/standalone/-/standalone-7.18.6.tgz#e10d26df0230cdf5ad32587f337c02227c05ada4" + integrity sha512-lnmCNeuIl2OMWbIWojTIw66rL3n66h9+guiMYk2kfW3s9QlP2F3WoICFJnKP/0+WTFXzlMyonv6W0UZzJAklDA== + +"@babel/template@^7.0.0", "@babel/template@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.18.6.tgz#1283f4993e00b929d6e2d3c72fdc9168a2977a31" + integrity sha512-JoDWzPe+wgBsTTgdnIma3iHNFC7YVJoPssVBDjiHfNlyt4YcunDtcDOUmfVDfCK5MfdsaIoX9PkijPhjH3nYUw== + dependencies: + "@babel/code-frame" "^7.18.6" + "@babel/parser" "^7.18.6" + "@babel/types" "^7.18.6" + +"@babel/traverse@^7.0.0", "@babel/traverse@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.18.6.tgz#a228562d2f46e89258efa4ddd0416942e2fd671d" + integrity sha512-zS/OKyqmD7lslOtFqbscH6gMLFYOfG1YPqCKfAW5KrTeolKqvB8UelR49Fpr6y93kYkW2Ik00mT1LOGiAGvizw== + dependencies: + "@babel/code-frame" "^7.18.6" + "@babel/generator" "^7.18.6" + "@babel/helper-environment-visitor" "^7.18.6" + "@babel/helper-function-name" "^7.18.6" + "@babel/helper-hoist-variables" "^7.18.6" + "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/parser" "^7.18.6" + "@babel/types" "^7.18.6" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.16.7", "@babel/types@^7.17.0", "@babel/types@^7.18.0": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.18.0.tgz#ef523ea349722849cb4bf806e9342ede4d071553" - integrity sha512-vhAmLPAiC8j9K2GnsnLPCIH5wCrPpYIVBCWRBFDCB7Y/BXLqi/O+1RSTTM2bsmg6U/551+FCf9PNPxjABmxHTw== +"@babel/types@^7.0.0", "@babel/types@^7.17.0", "@babel/types@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.18.6.tgz#5d781dd10a3f0c9f1f931bd19de5eb26ec31acf0" + integrity sha512-NdBNzPDwed30fZdDQtVR7ZgaO4UKjuaQFH9VArS+HMnurlOY0JWN+4ROlu/iapMFwjRQU4pOG4StZfDmulEwGA== dependencies: - "@babel/helper-validator-identifier" "^7.16.7" + "@babel/helper-validator-identifier" "^7.18.6" to-fast-properties "^2.0.0" "@cloudflare/kv-asset-handler@^0.2.0": @@ -290,22 +288,22 @@ dependencies: mime "^3.0.0" -"@iconify-json/carbon@^1.1.5": - version "1.1.5" - resolved "https://registry.yarnpkg.com/@iconify-json/carbon/-/carbon-1.1.5.tgz#7eb4848f2372750426938497ddce2e457635f278" - integrity sha512-ENl8CIEo+7JcRzpJ/58i+dDc3fkNOO7gyNGg4S4JN5cAiVpvltYTVO86Oei7rpl8bKypJ0vk3B0BbzzTw7DclA== +"@iconify-json/carbon@^1.1.6": + version "1.1.6" + resolved "https://registry.yarnpkg.com/@iconify-json/carbon/-/carbon-1.1.6.tgz#333ad5bbe30c852b7a8f7680dc600ed780cc481a" + integrity sha512-3a/D7qzqBO6hsDmp6/k2eFfJzL1sw1yCQOq2yr86el2CzgMmQdKYROOyCCDNBxGn+dkkc/Rx1/8OEciakAJcFg== dependencies: - "@iconify/types" "^1.1.0" + "@iconify/types" "*" -"@iconify/types@^1.1.0": +"@iconify/types@*", "@iconify/types@^1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@iconify/types/-/types-1.1.0.tgz#dc15fc988b1b3fd558dd140a24ede7e0aac11280" integrity sha512-Jh0llaK2LRXQoYsorIH8maClebsnzTcve+7U3rQUSnC11X4jtPnFuyatqFLvMxZ8MLG8dB4zfHsbPfuvxluONw== -"@iconify/utils@^1.0.32": - version "1.0.32" - resolved "https://registry.yarnpkg.com/@iconify/utils/-/utils-1.0.32.tgz#ad6262478a27a4ff59f610a0c930710f3d7d970a" - integrity sha512-m+rnw7qKHq/XF7DAi4BcFoEAcXBfqqMgQJh8brGEHeqE/RUvgDMjmxsHgWnVpFsG+VmjGyAiI7nwXdliCwEU0Q== +"@iconify/utils@^1.0.33": + version "1.0.33" + resolved "https://registry.yarnpkg.com/@iconify/utils/-/utils-1.0.33.tgz#9952ecae79e3b1685b83c58159c1d48959f6105a" + integrity sha512-vGeAqo7aGPxOQmGdVoXFUOuyN+0V7Lcrx2EvaiRjxUD1x6Om0Tvq2bdm7E24l2Pz++4S0mWMCVFXe/17EtKImQ== dependencies: "@antfu/install-pkg" "^0.1.0" "@antfu/utils" "^0.5.0" @@ -315,9 +313,9 @@ local-pkg "^0.4.1" "@ioredis/commands@^1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@ioredis/commands/-/commands-1.1.1.tgz#2ba4299ea624a6bfac15b35f6df90b0015691ec3" - integrity sha512-fsR4P/ROllzf/7lXYyElUJCheWdTJVJvOTps8v9IWKFATxR61ANOlnoPqhH099xYLrJGpc2ZQ28B3rMeUt5VQg== + version "1.2.0" + resolved "https://registry.yarnpkg.com/@ioredis/commands/-/commands-1.2.0.tgz#6d61b3097470af1fdbbe622795b8921d42018e11" + integrity sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg== "@jridgewell/gen-mapping@^0.1.0": version "0.1.1" @@ -328,33 +326,41 @@ "@jridgewell/sourcemap-codec" "^1.4.10" "@jridgewell/gen-mapping@^0.3.0": - version "0.3.1" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz#cf92a983c83466b8c0ce9124fadeaf09f7c66ea9" - integrity sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg== + version "0.3.2" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9" + integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A== dependencies: - "@jridgewell/set-array" "^1.0.0" + "@jridgewell/set-array" "^1.0.1" "@jridgewell/sourcemap-codec" "^1.4.10" "@jridgewell/trace-mapping" "^0.3.9" "@jridgewell/resolve-uri@^3.0.3": - version "3.0.7" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz#30cd49820a962aff48c8fffc5cd760151fca61fe" - integrity sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA== + version "3.0.8" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.8.tgz#687cc2bbf243f4e9a868ecf2262318e2658873a1" + integrity sha512-YK5G9LaddzGbcucK4c8h5tWFmMPBvRZ/uyWmN1/SbBdIvqGUdWGkJ5BAaccgs6XbzVLsqbPJrBSFwKv3kT9i7w== -"@jridgewell/set-array@^1.0.0": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.1.tgz#36a6acc93987adcf0ba50c66908bd0b70de8afea" - integrity sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ== +"@jridgewell/set-array@^1.0.0", "@jridgewell/set-array@^1.0.1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" + integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== + +"@jridgewell/source-map@^0.3.2": + version "0.3.2" + resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.2.tgz#f45351aaed4527a298512ec72f81040c998580fb" + integrity sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw== + dependencies: + "@jridgewell/gen-mapping" "^0.3.0" + "@jridgewell/trace-mapping" "^0.3.9" "@jridgewell/sourcemap-codec@^1.4.10": - version "1.4.13" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz#b6461fb0c2964356c469e115f504c95ad97ab88c" - integrity sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w== + version "1.4.14" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" + integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== "@jridgewell/trace-mapping@^0.3.9": - version "0.3.13" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz#dcfe3e95f224c8fe97a87a5235defec999aa92ea" - integrity sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w== + version "0.3.14" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz#b231a081d8f66796e475ad588a1ef473112701ed" + integrity sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ== dependencies: "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" @@ -403,11 +409,11 @@ fastq "^1.6.0" "@nuxt/content@npm:@nuxt/content-edge@latest": - version "2.0.0-27555126.58f2d50" - resolved "https://registry.yarnpkg.com/@nuxt/content-edge/-/content-edge-2.0.0-27555126.58f2d50.tgz#e965c90c0ef4d70b57bafb79805dff8401bbc3b2" - integrity sha512-lsfz24qzsaO9VUDcMVvCNm3NTPoeYdiIa+av3RnNnK05QSQUxhnEgjNDeVWW7WvS91/KRDxBhjpcrqKCBl8/Yg== + version "2.1.0-27606957.6426160" + resolved "https://registry.yarnpkg.com/@nuxt/content-edge/-/content-edge-2.1.0-27606957.6426160.tgz#a5f3dcab23bb32c3c13105865f69670bd910f8df" + integrity sha512-4lYMqbF3POOf2Mtdndj3vsn0PmVpwJ7M3FE8rRInBEr9HIGrng4pVVz+iwJIjb9WPJRvdfHF63p8KwHihMr6Rw== dependencies: - "@nuxt/kit" "^3.0.0-rc.3" + "@nuxt/kit" "^3.0.0-rc.4" csvtojson "^2.0.10" defu "^6.0.0" destr "^1.1.1" @@ -416,7 +422,7 @@ html-tags "^3.2.0" js-yaml "^4.1.0" json5 "^2.2.1" - listhen "^0.2.11" + listhen "^0.2.13" mdast-util-from-markdown "^1.2.0" mdast-util-to-hast "^12.1.1" mdast-util-to-markdown "^1.3.0" @@ -443,15 +449,15 @@ scule "^0.2.1" shiki-es "^0.1.2" slugify "^1.6.5" - stringify-entities "^4.0.2" + stringify-entities "^4.0.3" ufo "^0.8.4" unctx "^1.1.4" unified "^10.1.2" unist-builder "^3.0.0" unist-util-position "^4.0.3" unist-util-visit "^4.1.0" - unstorage "^0.4.1" - ws "^8.6.0" + unstorage "^0.5.2" + ws "^8.8.0" "@nuxt/devalue@^2.0.0": version "2.0.0" @@ -482,20 +488,20 @@ unimport "^0.1.6" untyped "^0.4.4" -"@nuxt/kit@^3.0.0-rc.2", "@nuxt/kit@^3.0.0-rc.3": - version "3.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@nuxt/kit/-/kit-3.0.0-rc.3.tgz#9bbedf5be268578d4002766be8eb59b976892cc6" - integrity sha512-aD993HKXZ76cwxkM2LCwWRQaOI3RjLCg/kj+8ZS6qN4VrpwrZp4xM59YYIYs3/Vze4OG3D4+0gr0u5zdgf8v8g== +"@nuxt/kit@^3.0.0-rc.3", "@nuxt/kit@^3.0.0-rc.4": + version "3.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@nuxt/kit/-/kit-3.0.0-rc.4.tgz#8aa3c26f1bb9f3e7bb78ad2cec33473e32ffccd0" + integrity sha512-ZBSeHFy3fPUx0equCtyP6eVUAZQWwRqTp2YnHSFqM5+yhN5aTGo8gBlfwttVBr4yhFBpGFRHhQj/iNPqrCeTnQ== dependencies: - "@nuxt/schema" "^3.0.0-rc.3" + "@nuxt/schema" "^3.0.0-rc.4" c12 "^0.2.7" consola "^2.15.3" defu "^6.0.0" - globby "^13.1.1" + globby "^13.1.2" hash-sum "^2.0.0" ignore "^5.2.0" jiti "^1.13.0" - knitwork "^0.1.1" + knitwork "^0.1.2" lodash.template "^4.5.0" mlly "^0.5.2" pathe "^0.3.0" @@ -503,37 +509,37 @@ scule "^0.2.1" semver "^7.3.7" unctx "^1.1.4" - unimport "^0.1.9" + unimport "^0.2.7" untyped "^0.4.4" -"@nuxt/kit@npm:@nuxt/kit-edge@3.0.0-rc.3-27550969.a4a3cff", "@nuxt/kit@npm:@nuxt/kit-edge@latest": - version "3.0.0-rc.3-27550969.a4a3cff" - resolved "https://registry.yarnpkg.com/@nuxt/kit-edge/-/kit-edge-3.0.0-rc.3-27550969.a4a3cff.tgz#a43721d514d674b251b198f5b1b2659edd00c44d" - integrity sha512-2+ki7Vp4geHFVHI8DAkRphR5jnXq420JuPSITsgxnPXEkg2Fz1/LrbI4cO6j4UyKQyjUK7TaF+lEqsEj/Lms8w== +"@nuxt/kit@npm:@nuxt/kit-edge@3.0.0-rc.4-27605536.8c2c80e": + version "3.0.0-rc.4-27605536.8c2c80e" + resolved "https://registry.yarnpkg.com/@nuxt/kit-edge/-/kit-edge-3.0.0-rc.4-27605536.8c2c80e.tgz#dde4865cbf4b33f3566a19bbf0284ec11854b1b9" + integrity sha512-Fu9ygT3Gi5zbthzZC5PVzaDhVUxLunF1mgfF9b7RoHaO+UoQSWI7AptRwx2jxkUHpftLZjELtDV6MW96xZiWqg== dependencies: - "@nuxt/schema" "npm:@nuxt/schema-edge@3.0.0-rc.3-27550969.a4a3cff" + "@nuxt/schema" "npm:@nuxt/schema-edge@3.0.0-rc.4-27605536.8c2c80e" c12 "^0.2.7" consola "^2.15.3" defu "^6.0.0" - globby "^13.1.1" + globby "^13.1.2" hash-sum "^2.0.0" ignore "^5.2.0" - jiti "^1.13.0" - knitwork "^0.1.1" + jiti "^1.14.0" + knitwork "^0.1.2" lodash.template "^4.5.0" - mlly "^0.5.2" + mlly "^0.5.3" pathe "^0.3.0" - pkg-types "^0.3.2" + pkg-types "^0.3.3" scule "^0.2.1" semver "^7.3.7" unctx "^1.1.4" - unimport "^0.2.1" + unimport "^0.3.0" untyped "^0.4.4" -"@nuxt/schema@^3.0.0-rc.1", "@nuxt/schema@^3.0.0-rc.3": - version "3.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@nuxt/schema/-/schema-3.0.0-rc.3.tgz#8664535a91e0923a12e19e69f3e396a74c9e4ed9" - integrity sha512-vICmOpIk8SjVVUN+MadAMMF/MEXqPgY3jquSjSkmWdydtMOBoxrBpl+5nkpJCtsCq5KJAK8WI+9SCNIkEASCgw== +"@nuxt/schema@^3.0.0-rc.1", "@nuxt/schema@^3.0.0-rc.4": + version "3.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@nuxt/schema/-/schema-3.0.0-rc.4.tgz#d94005e1aca00349f1256cb827ee7478d50a1802" + integrity sha512-5yjfKvPJ/NboevQYZLyO1SS9nJW6KHtdd7Ei61D19gYGtnN+aOpxOnUX08A1rZMb3G2Cw5JRxVeF9+AfBYefJg== dependencies: c12 "^0.2.7" create-require "^1.1.1" @@ -544,23 +550,23 @@ scule "^0.2.1" std-env "^3.1.1" ufo "^0.8.4" - unimport "^0.1.9" + unimport "^0.2.7" -"@nuxt/schema@npm:@nuxt/schema-edge@3.0.0-rc.3-27550969.a4a3cff": - version "3.0.0-rc.3-27550969.a4a3cff" - resolved "https://registry.yarnpkg.com/@nuxt/schema-edge/-/schema-edge-3.0.0-rc.3-27550969.a4a3cff.tgz#76b8858dbe68abd18bcc06d8cd71440696c6cdb1" - integrity sha512-Udh2DDfTHpMzCXPBvI0YR1zby59FkGGFFmaIficMu0xyEI5M8fJVrNMDtu+Shj0iHuKC7qlgkUZ1FLpKlJzEEQ== +"@nuxt/schema@npm:@nuxt/schema-edge@3.0.0-rc.4-27605536.8c2c80e": + version "3.0.0-rc.4-27605536.8c2c80e" + resolved "https://registry.yarnpkg.com/@nuxt/schema-edge/-/schema-edge-3.0.0-rc.4-27605536.8c2c80e.tgz#132614dc45d109e0461d40386bb947d5a32866c7" + integrity sha512-KOFpjN2efx9lXj84kSHhJV/XWJ8n0zztnJjjmEY3RhgBTd7mYtdI7BsYPtZ30Tz5vJGMlHrIGkLZW6c+IYAKzw== dependencies: c12 "^0.2.7" create-require "^1.1.1" defu "^6.0.0" - jiti "^1.13.0" + jiti "^1.14.0" pathe "^0.3.0" postcss-import-resolver "^2.0.0" scule "^0.2.1" std-env "^3.1.1" ufo "^0.8.4" - unimport "^0.2.1" + unimport "^0.3.0" "@nuxt/telemetry@^2.1.3": version "2.1.3" @@ -594,70 +600,69 @@ integrity sha512-ejiWi7RJfUp71K5IRpfrhoiZcvxhn1K+YH5mWdwwCT7jeQyE+Ok6WdFMpSg4LYy8YsVw6XHr5I+g23OCebc24w== "@nuxt/ui@npm:@nuxt/ui-edge@latest": - version "0.1.1-27555426.2ead323" - resolved "https://registry.yarnpkg.com/@nuxt/ui-edge/-/ui-edge-0.1.1-27555426.2ead323.tgz#4260f266b9d417f5c273920a8058f9824a6c30bc" - integrity sha512-BhMb5OPi8QsHNRObuAd8z9t0feMxdN8bGxywK3haZ/7aI5Z4FjIBVcz/eSk/Jglo28oFr7ElRJ+FSdPfHc5NSA== - dependencies: - "@iconify-json/carbon" "^1.1.5" - "@nuxt/kit" "^3.0.0-rc.3" - "@nuxtjs/color-mode" "^3.0.3" - "@unocss/core" "^0.34.0" - "@unocss/nuxt" "^0.34.0" - "@unocss/preset-attributify" "^0.34.0" - "@unocss/preset-icons" "^0.34.0" - "@unocss/preset-mini" "^0.34.0" - "@unocss/reset" "^0.34.0" - "@vueuse/core" "^8.5.0" - "@vueuse/integrations" "^8.5.0" - "@vueuse/nuxt" "^8.5.0" + version "0.1.1-27607019.0595ad8" + resolved "https://registry.yarnpkg.com/@nuxt/ui-edge/-/ui-edge-0.1.1-27607019.0595ad8.tgz#d7d25621cc5b850e833269dc009ef7194f4d0080" + integrity sha512-mck8vZNLycw7Zw5pZZR66IhEBIg4OGFjfq827XTMX1ToeI/C/VRXHogeSd7850fVimYeP25CSFNF2I8AnWUawg== + dependencies: + "@iconify-json/carbon" "^1.1.6" + "@nuxt/kit" "^3.0.0-rc.4" + "@nuxtjs/color-mode" "^3.1.4" + "@unocss/core" "^0.41.0" + "@unocss/nuxt" "^0.41.0" + "@unocss/preset-attributify" "^0.41.0" + "@unocss/preset-icons" "^0.41.0" + "@unocss/preset-mini" "^0.41.0" + "@unocss/reset" "^0.41.0" + "@vueuse/core" "^8.7.5" + "@vueuse/integrations" "^8.7.5" + "@vueuse/nuxt" "^8.7.5" defu "^6.0.0" - focus-trap "^6.9.2" - unocss "^0.34.0" + focus-trap "^6.9.4" + unocss "^0.41.0" -"@nuxt/vite-builder@npm:@nuxt/vite-builder-edge@3.0.0-rc.3-27550969.a4a3cff": - version "3.0.0-rc.3-27550969.a4a3cff" - resolved "https://registry.yarnpkg.com/@nuxt/vite-builder-edge/-/vite-builder-edge-3.0.0-rc.3-27550969.a4a3cff.tgz#bb0beadd313cbf6c42baa3632d53b5a82a0c1754" - integrity sha512-iehKSMCdvIFfH3O1nAbKpBfMWMz8U+kRUJp3j3Ir7i2t8tOIcKMF/JmKBlZDVjsfRy4qK/DuZtEU7rO55lckGw== +"@nuxt/vite-builder@npm:@nuxt/vite-builder-edge@3.0.0-rc.4-27605536.8c2c80e": + version "3.0.0-rc.4-27605536.8c2c80e" + resolved "https://registry.yarnpkg.com/@nuxt/vite-builder-edge/-/vite-builder-edge-3.0.0-rc.4-27605536.8c2c80e.tgz#65104fd1c8beabd5b1a93286df60668ded5191e0" + integrity sha512-iQkb9iz+X5QdSpQwawaf2vCXFSvY+VwNXxh5irAiJ91eWh4hwq1QlkB4F4aXEL20oOy72tYP/Pyd76j/ZDfZGQ== dependencies: - "@nuxt/kit" "npm:@nuxt/kit-edge@3.0.0-rc.3-27550969.a4a3cff" + "@nuxt/kit" "npm:@nuxt/kit-edge@3.0.0-rc.4-27605536.8c2c80e" "@rollup/plugin-replace" "^4.0.0" "@vitejs/plugin-vue" "^2.3.3" "@vitejs/plugin-vue-jsx" "^1.3.10" autoprefixer "^10.4.7" chokidar "^3.5.3" - cssnano "^5.1.8" + cssnano "^5.1.12" defu "^6.0.0" - esbuild "^0.14.39" + esbuild "^0.14.47" escape-string-regexp "^5.0.0" externality "^0.2.2" fs-extra "^10.1.0" get-port-please "^2.5.0" - h3 "^0.7.8" - knitwork "^0.1.1" + h3 "^0.7.10" + knitwork "^0.1.2" magic-string "^0.26.2" - mlly "^0.5.2" + mlly "^0.5.3" pathe "^0.3.0" perfect-debounce "^0.1.3" postcss "^8.4.14" postcss-import "^14.1.0" postcss-url "^10.1.3" - rollup "^2.74.1" + rollup "^2.75.7" rollup-plugin-visualizer "^5.6.0" ufo "^0.8.4" - unplugin "^0.6.3" - vite "^2.9.9" - vite-node "^0.12.7" + unplugin "^0.7.0" + vite "^2.9.12" + vite-node "^0.15.2" vite-plugin-checker "^0.4.6" -"@nuxtjs/color-mode@^3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@nuxtjs/color-mode/-/color-mode-3.0.3.tgz#f5b332f4383f169759ccb31e60fad1537d67adc8" - integrity sha512-FQVyLgRQ4C4C5NmTBrFRNm+LNjgT4cPFqyqfoRxD6hfVZhLxWJfKPGUaT8H/BCeBzkZZ29583MG9GqyDX7rnNg== +"@nuxtjs/color-mode@^3.1.4": + version "3.1.4" + resolved "https://registry.yarnpkg.com/@nuxtjs/color-mode/-/color-mode-3.1.4.tgz#7b54af2b3a21d07acac158ded8b2e8f45b4d4a24" + integrity sha512-3pxZNbZCFCzBgkyJLU/YvC2L2l1yRvITuD91zfJoIGm52PTx66y/Q1/UW8i9YFDVhJvvRd67s6eWvgaKQtTPlw== dependencies: - "@nuxt/kit" "npm:@nuxt/kit-edge@latest" - defu "^5.0.0" + "@nuxt/kit" "^3.0.0-rc.3" lodash.template "^4.5.0" - pathe "^0.2.0" + pathe "^0.3.0" "@polka/url@^1.0.0-next.20": version "1.0.0-next.21" @@ -672,9 +677,9 @@ slash "^3.0.0" "@rollup/plugin-commonjs@^22.0.0": - version "22.0.0" - resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-22.0.0.tgz#f4d87016e2fbf187a593ab9f46626fe05b59e8bd" - integrity sha512-Ktvf2j+bAO+30awhbYoCaXpBcyPmJbaEUYClQns/+6SNCYFURbvBiNbWgHITEsIgDDWCDUclWRKEuf8cwZCFoQ== + version "22.0.1" + resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-22.0.1.tgz#f7cb777d20de3eeeaf994f39080115c336bef810" + integrity sha512-dGfEZvdjDHObBiP5IvwTKMVeq/tBZGMBHZFMdIV1ClMM/YoWS34xrHFGfag9SN2ZtMgNZRFruqvxZQEa70O6nQ== dependencies: "@rollup/pluginutils" "^3.1.0" commondir "^1.0.1" @@ -755,9 +760,9 @@ "@types/ms" "*" "@types/estree@*": - version "0.0.51" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.51.tgz#cfd70924a25a3fd32b218e5e420e6897e1ac4f40" - integrity sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ== + version "0.0.52" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.52.tgz#7f1f57ad5b741f3d5b210d3b1f145640d89bf8fe" + integrity sha512-BZWrtCU0bMVAIliIV+HJO1f1PR41M7NKjfxrFJwwhKI1KwhwOxYw1SXg9ao+CIMt774nFuGiG6eU+udtbEI9oQ== "@types/estree@0.0.39": version "0.0.39" @@ -798,9 +803,9 @@ integrity sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA== "@types/node@*": - version "17.0.35" - resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.35.tgz#635b7586086d51fb40de0a2ec9d1014a5283ba4a" - integrity sha512-vu1SrqBjbbZ3J6vwY17jBs8Sr/BKA+/a/WtjRG+whKg1iuLFOosq872EXS0eXWILdO36DHQQeku/ZcL6hz2fpg== + version "18.0.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.0.0.tgz#67c7b724e1bcdd7a8821ce0d5ee184d3b4dd525a" + integrity sha512-cHlGmko4gWLVI27cGJntjs/Sj8th9aYwplmZFwmmgYQQvL5NUsgVJG7OddLvNfLqYS31KFN0s3qlaD9qCaxACA== "@types/parse5@*", "@types/parse5@^6.0.0": version "6.0.3" @@ -824,176 +829,189 @@ resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.6.tgz#250a7b16c3b91f672a24552ec64678eeb1d3a08d" integrity sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ== -"@unocss/cli@0.34.1": - version "0.34.1" - resolved "https://registry.yarnpkg.com/@unocss/cli/-/cli-0.34.1.tgz#a930e31e15aa7d8c6c45b86fc46afc4b80929e32" - integrity sha512-RHZyo70xOO/Loq17wVQoL+9Hs0QY0RbfAVfap6vk1uQMcDoZ3FVPjOvaDmpfqwwFeA6rExBplEF0jKlmsPfbuQ== +"@types/web-bluetooth@^0.0.14": + version "0.0.14" + resolved "https://registry.yarnpkg.com/@types/web-bluetooth/-/web-bluetooth-0.0.14.tgz#94e175b53623384bff1f354cdb3197a8d63cdbe5" + integrity sha512-5d2RhCard1nQUC3aHcq/gHzWYO6K0WJmAbjO7mQJgCQKtZpgXxv1rOM6O/dBDhDYYVutk1sciOgNSe+5YyfM8A== + +"@unocss/cli@0.41.1": + version "0.41.1" + resolved "https://registry.yarnpkg.com/@unocss/cli/-/cli-0.41.1.tgz#01dde78614cfd8a0a20ff68a91a9d74dded62e4d" + integrity sha512-vspN34NFWCkb91s9Zv2mMH926siYftrNWoX4BvCPzoVGTJCYnAAGSYl/xwf3wZvObftWylTP1w3mcwpdkgYRRg== dependencies: - "@unocss/config" "0.34.1" - "@unocss/core" "0.34.1" - "@unocss/preset-uno" "0.34.1" + "@unocss/config" "0.41.1" + "@unocss/core" "0.41.1" + "@unocss/preset-uno" "0.41.1" cac "^6.7.12" chokidar "^3.5.3" - colorette "^2.0.16" + colorette "^2.0.19" consola "^2.15.3" fast-glob "^3.2.11" pathe "^0.3.0" perfect-debounce "^0.1.3" -"@unocss/config@0.34.1": - version "0.34.1" - resolved "https://registry.yarnpkg.com/@unocss/config/-/config-0.34.1.tgz#2dc55fb83a5f8d8561964a4c3bfd04332051c54d" - integrity sha512-aB8AEIxo2C8Dvev4NFu8e/ClCy+1jY6TgKfYxVpDpITqwiNGGnFvFsj563JGGI9oD+cPAIXwHv0Kb79NBJTpyg== +"@unocss/config@0.41.1": + version "0.41.1" + resolved "https://registry.yarnpkg.com/@unocss/config/-/config-0.41.1.tgz#f32547546cf69271b51c392585099ca07bbd4bae" + integrity sha512-CEMcxw5VkazTbkKMRxZ73FjO84OwMggIV9ehuSk/kGMXnyv12Kqs3wB4DzdpZJqxgEC3VYS7VZQQy49ijuYniw== dependencies: - "@unocss/core" "0.34.1" + "@unocss/core" "0.41.1" unconfig "^0.3.4" -"@unocss/core@0.34.1", "@unocss/core@^0.34.0": - version "0.34.1" - resolved "https://registry.yarnpkg.com/@unocss/core/-/core-0.34.1.tgz#90a019d152f0d6e94df0ea52f5992c5188c48df0" - integrity sha512-h2AeTLAiBWu6IZzR1tN2H/ypuCbc9CK7t8H/o2ncG22Jfoh6FO09jQPoiRZr72PcpDf2/0snN94iZLnjvPGZOg== +"@unocss/core@0.41.1", "@unocss/core@^0.41.0": + version "0.41.1" + resolved "https://registry.yarnpkg.com/@unocss/core/-/core-0.41.1.tgz#458a7578a4aebed18392be01a735449565cb39e0" + integrity sha512-Y+ZpUZ1hED0Xz86Y2nuBRtd3G0Oij9iAqQm3XNMBW6h+cMUznR8VKFvDGqE2r0ag9fv5soAZb8/RjMlTeHwrDQ== -"@unocss/inspector@0.34.1": - version "0.34.1" - resolved "https://registry.yarnpkg.com/@unocss/inspector/-/inspector-0.34.1.tgz#0a910f49c4cf77c5ca520f85ef07220d1e2a5307" - integrity sha512-4V4gUy1bykm/oOtEAXT5Lc98Bxp6k+vp141O/Yp+AMgX4wK0+dB9ELrQx7gzVLQauQv209xuMZ9tscKf0VEZaA== +"@unocss/inspector@0.41.1": + version "0.41.1" + resolved "https://registry.yarnpkg.com/@unocss/inspector/-/inspector-0.41.1.tgz#4e6480c60b8ce80a45e86ab93cfc928fb7f6f07c" + integrity sha512-SC4RItSY4iGWR2gqOcpmdpjSds1AQxsFKPWg7qGOlz0UIELrcu7lg8HEpFmwsYdg+N0XdWTqpLWutrBNVqLkfA== dependencies: gzip-size "^6.0.0" sirv "^2.0.2" -"@unocss/nuxt@^0.34.0": - version "0.34.1" - resolved "https://registry.yarnpkg.com/@unocss/nuxt/-/nuxt-0.34.1.tgz#8f49dd72379d782a618298f284b43bb8e10c0f40" - integrity sha512-N8sKFm0Yr544EJ3RuCBhjDsd3eXaKvtEGjs3MlPjGjLolG0h6/Xez6bgBsGmgEcIeza+SXkk11xka2LjfLc6OQ== +"@unocss/nuxt@^0.41.0": + version "0.41.1" + resolved "https://registry.yarnpkg.com/@unocss/nuxt/-/nuxt-0.41.1.tgz#f077c1fac3eb6ea0bdd6c91090f1e3acc57c367c" + integrity sha512-7RRDe8yBB7qrfTQ1B8NqgswmtaVsd9Ms1UO3vQuZg1fh2HtSFZsacG1/Uc/ArORBdU6zmk3krzM1leekvOZWKg== + dependencies: + "@nuxt/kit" "^3.0.0-rc.4" + "@unocss/core" "0.41.1" + "@unocss/preset-attributify" "0.41.1" + "@unocss/preset-icons" "0.41.1" + "@unocss/preset-tagify" "0.41.1" + "@unocss/preset-typography" "0.41.1" + "@unocss/preset-uno" "0.41.1" + "@unocss/preset-web-fonts" "0.41.1" + "@unocss/preset-wind" "0.41.1" + "@unocss/reset" "0.41.1" + "@unocss/vite" "0.41.1" + "@unocss/webpack" "0.41.1" + unocss "0.41.1" + +"@unocss/preset-attributify@0.41.1", "@unocss/preset-attributify@^0.41.0": + version "0.41.1" + resolved "https://registry.yarnpkg.com/@unocss/preset-attributify/-/preset-attributify-0.41.1.tgz#46052b9519ec1b48750a8d62401f6df8171ab678" + integrity sha512-fC5cdJEXHAk1vxC/L0Ub3LR0X/6PZu860UOdfWbSFhB6e53B71JYhbXzPgv3wLVrDeHH1sxGwErXiCeLKOqyUA== + dependencies: + "@unocss/core" "0.41.1" + +"@unocss/preset-icons@0.41.1", "@unocss/preset-icons@^0.41.0": + version "0.41.1" + resolved "https://registry.yarnpkg.com/@unocss/preset-icons/-/preset-icons-0.41.1.tgz#2ab1395f59cb467acd7239caa17a0e7456bf0550" + integrity sha512-7S4Xe4hOpgHMP2FPR/hecBTFf9rNImTRS1yp70ApJtDKYdmZWlJkO+tBNWyZc5OfV+czmKOmNMar0Fei0HH8eQ== + dependencies: + "@iconify/utils" "^1.0.33" + "@unocss/core" "0.41.1" + ohmyfetch "^0.4.18" + +"@unocss/preset-mini@0.41.1", "@unocss/preset-mini@^0.41.0": + version "0.41.1" + resolved "https://registry.yarnpkg.com/@unocss/preset-mini/-/preset-mini-0.41.1.tgz#e7ee12183e237106ca7b6b22bfe2f4641af8925b" + integrity sha512-UybylcC4AHPcFNF2BfXh7ThdUK/cQcVqR+0oilaiTqCnqTbeV6hdtabY6c6B2Ye0+MbYPr8r9TJeTo2P1i/oHw== dependencies: - "@nuxt/kit" "^3.0.0-rc.3" - "@unocss/core" "0.34.1" - "@unocss/preset-attributify" "0.34.1" - "@unocss/preset-icons" "0.34.1" - "@unocss/preset-typography" "0.34.1" - "@unocss/preset-uno" "0.34.1" - "@unocss/preset-web-fonts" "0.34.1" - "@unocss/preset-wind" "0.34.1" - "@unocss/reset" "0.34.1" - "@unocss/vite" "0.34.1" - "@unocss/webpack" "0.34.1" - unocss "0.34.1" - -"@unocss/preset-attributify@0.34.1", "@unocss/preset-attributify@^0.34.0": - version "0.34.1" - resolved "https://registry.yarnpkg.com/@unocss/preset-attributify/-/preset-attributify-0.34.1.tgz#5401526bb873a99f6e839cd40e5e3fdc11bd6ac1" - integrity sha512-ik4Dh0CEFa3yZuSY7C8ct4X1wRb50RHjZvp8exyDmWoUpMq/nKB6op9MRnPASAcMFeXs2pMnFYlNwg5rPiw3xQ== - dependencies: - "@unocss/core" "0.34.1" - -"@unocss/preset-icons@0.34.1", "@unocss/preset-icons@^0.34.0": - version "0.34.1" - resolved "https://registry.yarnpkg.com/@unocss/preset-icons/-/preset-icons-0.34.1.tgz#cd7b1e5331b7dd6f24d05ec2a1ed8416f10814d4" - integrity sha512-fGfchdyf5qFm3wX6cLJWFIqfnfsWKPwipNGJDdPgnk0kFiV9sPBE7GD0ctwdZg6v+dpHImOAMRqfhpx5ocJUKw== - dependencies: - "@iconify/utils" "^1.0.32" - "@unocss/core" "0.34.1" - ohmyfetch "^0.4.17" - -"@unocss/preset-mini@0.34.1", "@unocss/preset-mini@^0.34.0": - version "0.34.1" - resolved "https://registry.yarnpkg.com/@unocss/preset-mini/-/preset-mini-0.34.1.tgz#0a4058a6cd0646cd8beb083d0f6fa8910e9cf504" - integrity sha512-pEL+/55RfRTfpUplCVzC1l0gLy5cGR1lRSduNz91+FqHmxmyw/rzEoZl0+KhlcNTKWGJY6pM/UYQ3AcbNu5n9w== - dependencies: - "@unocss/core" "0.34.1" - -"@unocss/preset-typography@0.34.1": - version "0.34.1" - resolved "https://registry.yarnpkg.com/@unocss/preset-typography/-/preset-typography-0.34.1.tgz#266b1190be21daf1cf6db95ad9e77769050e184c" - integrity sha512-plNmH6LqJx6Zp7R42PvMlRJ60r+9zjL4gRmHP2V/kUWlAelrHDtBrCT4V8ndrNUXCIK9cE0rLKk6acafDbgsHg== - dependencies: - "@unocss/core" "0.34.1" - -"@unocss/preset-uno@0.34.1": - version "0.34.1" - resolved "https://registry.yarnpkg.com/@unocss/preset-uno/-/preset-uno-0.34.1.tgz#2a0ac5b909e43ce2636c59a8964c7492bf568526" - integrity sha512-QQxSyZRBzgVwH+m6c6vdJt0ZMa4EHSj4DHpZ68r35FRbs7Wk8cJ7mK40FW+d4FbuFKaMN8EmH6zQTeN9+vtbUg== - dependencies: - "@unocss/core" "0.34.1" - "@unocss/preset-mini" "0.34.1" - "@unocss/preset-wind" "0.34.1" - -"@unocss/preset-web-fonts@0.34.1": - version "0.34.1" - resolved "https://registry.yarnpkg.com/@unocss/preset-web-fonts/-/preset-web-fonts-0.34.1.tgz#1ea0016287428e57b69d5e2229a91848bb757aa0" - integrity sha512-xLQT9ERot5pANELA9nXrzHlMOxOQkdNBkcaoeSwD/Lup4mpHKPXDAqWIry+GYfQvcF9k7BYD/40CSx44RAhOpw== - dependencies: - "@unocss/core" "0.34.1" - ohmyfetch "^0.4.17" - -"@unocss/preset-wind@0.34.1": - version "0.34.1" - resolved "https://registry.yarnpkg.com/@unocss/preset-wind/-/preset-wind-0.34.1.tgz#660af90416f93cd3294fe78209d278e0061f55de" - integrity sha512-NDDIdtPv6tX0scNx4o9oF6GPz2U6ufI9uhbqacWhZX43aolJaNM0W5WsEOnw8GrO7RXOlgtChn0r79Uc91Ip0g== - dependencies: - "@unocss/core" "0.34.1" - "@unocss/preset-mini" "0.34.1" - -"@unocss/reset@0.34.1", "@unocss/reset@^0.34.0": - version "0.34.1" - resolved "https://registry.yarnpkg.com/@unocss/reset/-/reset-0.34.1.tgz#0a8532acfab3ef2a532777d9f4689fc70d7ae102" - integrity sha512-KbDzfB+CLcyNPOjm5g/sNhIvZn5LVlGTYvsxkCj3kzNKsNcuwK0QttDiR2Eo4/Zwtm8VJi0nWH6Oeg5lKyvV6w== - -"@unocss/scope@0.34.1": - version "0.34.1" - resolved "https://registry.yarnpkg.com/@unocss/scope/-/scope-0.34.1.tgz#bc11cf5a6cf77c340d6b2552d4a26d0aa7cfe468" - integrity sha512-uWCbjdKzSqiGvaTsvOFvQlWYErlUQ2TKfer90dJid5mdak2XHnH1X/XqSYqqHLT5pmyVk7c2OGALxgUQV+IzjQ== - -"@unocss/transformer-compile-class@0.34.1": - version "0.34.1" - resolved "https://registry.yarnpkg.com/@unocss/transformer-compile-class/-/transformer-compile-class-0.34.1.tgz#5c8b7908b4ac76058ef88e8071a9951237f60041" - integrity sha512-NjjNOa4l5BWWJKW87BKiAOmudVaxyuKPRd8B80fz7lAQn/5VGEgQ0/1A6NmqAyHwKprUi4Gu4thsJezBiIAuNA== - dependencies: - "@unocss/core" "0.34.1" - -"@unocss/transformer-directives@0.34.1": - version "0.34.1" - resolved "https://registry.yarnpkg.com/@unocss/transformer-directives/-/transformer-directives-0.34.1.tgz#522ad259cf6fbd2b938b9cc5ec52a3919fadbc92" - integrity sha512-aLNa3uQ1WP+GYgLB2xyhfn6yXAuSquNlKgS/muGpc8oCSOMtAtaxjkdsAFzK8CRgZUYGMB3TBynJSBQhizTlDQ== - dependencies: - "@unocss/core" "0.34.1" + "@unocss/core" "0.41.1" + +"@unocss/preset-tagify@0.41.1": + version "0.41.1" + resolved "https://registry.yarnpkg.com/@unocss/preset-tagify/-/preset-tagify-0.41.1.tgz#39e7f50c1d34b7ab81970b3f8822396ea5faea8a" + integrity sha512-OaplasrC1vn9BQZfvluls7LicfGaoaDdDRzpnLBYLzlhin/Vq4rKzYRjl4bbVcDLo9nwA3V7/SzXjkWxZPj0LQ== + dependencies: + "@unocss/core" "0.41.1" + +"@unocss/preset-typography@0.41.1": + version "0.41.1" + resolved "https://registry.yarnpkg.com/@unocss/preset-typography/-/preset-typography-0.41.1.tgz#5f0652770dc2213691533041c54bf8431c7453b4" + integrity sha512-7E6atDSIQTtlRHZPoO+z+YdQYgZwHo8gWtkMc5EdTA1CZBkPhabziEOmtwDsS8rh4f2C9Vb07MCXjQtAi87GFQ== + dependencies: + "@unocss/core" "0.41.1" + +"@unocss/preset-uno@0.41.1": + version "0.41.1" + resolved "https://registry.yarnpkg.com/@unocss/preset-uno/-/preset-uno-0.41.1.tgz#556ea6eec8d4a44d500b2913c0676bc6ae6975a5" + integrity sha512-itc2V5QUT/9hXusJNqYcZF0u73iXE/U9Kosjabh/e5w1Vv3KGZSEYy2XRZ31koBKNiYM0opDDFuwJKeInm2cGA== + dependencies: + "@unocss/core" "0.41.1" + "@unocss/preset-mini" "0.41.1" + "@unocss/preset-wind" "0.41.1" + +"@unocss/preset-web-fonts@0.41.1": + version "0.41.1" + resolved "https://registry.yarnpkg.com/@unocss/preset-web-fonts/-/preset-web-fonts-0.41.1.tgz#b60bd49ab8627d41215e50475f6fa13872ead130" + integrity sha512-8uXoRskEgZI2TxfT7fNeZ8tgBYQoDjUDP/LX3YItjY1ggk14CfuJjvEjbEhFJ/Xh05MfljzuolqCHvjPGJQyig== + dependencies: + "@unocss/core" "0.41.1" + ohmyfetch "^0.4.18" + +"@unocss/preset-wind@0.41.1": + version "0.41.1" + resolved "https://registry.yarnpkg.com/@unocss/preset-wind/-/preset-wind-0.41.1.tgz#d3cbfd8ee6aa76c33c64cf566570e25d7be70cdf" + integrity sha512-4rtN42BohpuaxL++XsnoGozk3rIeUTZ5c3OVFNSadwKGajluvr/2l4IN8ITtu1+WzvXDe6ARC3IQzdrXNWtJ2Q== + dependencies: + "@unocss/core" "0.41.1" + "@unocss/preset-mini" "0.41.1" + +"@unocss/reset@0.41.1", "@unocss/reset@^0.41.0": + version "0.41.1" + resolved "https://registry.yarnpkg.com/@unocss/reset/-/reset-0.41.1.tgz#ff77bdabc6d0c2d6dc100e859a5b998e62701693" + integrity sha512-LuexPyQ/xOQdlE6Q3PfcSTisA1r3C26mTulunzN/N3vBheTqG+FlyHaGQUqJst/NFq4SD+lPiNVz3Y3/6/pvww== + +"@unocss/scope@0.41.1": + version "0.41.1" + resolved "https://registry.yarnpkg.com/@unocss/scope/-/scope-0.41.1.tgz#41a78239dd82f683b109a6cdfbcd552f8e308289" + integrity sha512-b3BlydTqI96Fr2WBwjsXM2g1CmrMUwNzrsq3mvIDZ4n/7/WzbAIQzGWZEytmWv9TKOR+KM2v92IVR9GKslvvSw== + +"@unocss/transformer-compile-class@0.41.1": + version "0.41.1" + resolved "https://registry.yarnpkg.com/@unocss/transformer-compile-class/-/transformer-compile-class-0.41.1.tgz#38a82b9da3b33d0345766ef5d7268c5ac3f103ac" + integrity sha512-YEV5ZsKpHJLDKDh4trP5eKDBMpiiqW9z99gIkAznYz+0kdkkCOMiTDHNdAf2fcwyGRqfcShGs69uttbO7MX+WQ== + dependencies: + "@unocss/core" "0.41.1" + +"@unocss/transformer-directives@0.41.1": + version "0.41.1" + resolved "https://registry.yarnpkg.com/@unocss/transformer-directives/-/transformer-directives-0.41.1.tgz#4e710e9250563e64f35027532d4bf32a3a02c95c" + integrity sha512-w6/L648uGB3RgXcahGtEd7XokoZHcnCTNMukQpjVjfoeEfpscTQ2pN7P0afwB/GWjb0BHoU+rL6zT1SsErye5A== + dependencies: + "@unocss/core" "0.41.1" css-tree "^2.1.0" -"@unocss/transformer-variant-group@0.34.1": - version "0.34.1" - resolved "https://registry.yarnpkg.com/@unocss/transformer-variant-group/-/transformer-variant-group-0.34.1.tgz#63710a8c230ad79a7c681adf539fc99abaafcc8d" - integrity sha512-Dgk5uszraWgcVmerW1q/+AKKf/VpkyJFPOvc0EeJTl2H8kMdITrwHh5vVuQoM70rsaw3hGPWX++fThvIB48cWQ== +"@unocss/transformer-variant-group@0.41.1": + version "0.41.1" + resolved "https://registry.yarnpkg.com/@unocss/transformer-variant-group/-/transformer-variant-group-0.41.1.tgz#42967852dd1bd041c020a3ee3d1ed45e5c7c97f4" + integrity sha512-1jrv1OqK/XY00ZH1XrED4cGe0VobtBfic/E+GNi4HGCgpXNiVOlYjUv6fBOlVPv6h8rSyGZNyUHxsdoyiWCcgw== dependencies: - "@unocss/core" "0.34.1" + "@unocss/core" "0.41.1" -"@unocss/vite@0.34.1": - version "0.34.1" - resolved "https://registry.yarnpkg.com/@unocss/vite/-/vite-0.34.1.tgz#a54155c0696a7996709ff7d0bbbb36010d5b03e6" - integrity sha512-XQB4Y4hdg0Zof1obmzN1pR+/pyDOLGhvu13J6lw67nUwvLdy0t9IpBufh8yHpoka6E3j25yaGfLPqO0c5VYgkw== +"@unocss/vite@0.41.1": + version "0.41.1" + resolved "https://registry.yarnpkg.com/@unocss/vite/-/vite-0.41.1.tgz#2e7bec0d4b5aabc5d2067274d61d5b25c0417b49" + integrity sha512-/vOOM0nN4u2B8myqYjaicCOSyZxFm03kOETQQG8vz5J/ZOBHKewystMRGocMzLZ3ZSgPL7KFa7VZnpRAu9KUpQ== dependencies: "@rollup/pluginutils" "^4.2.1" - "@unocss/config" "0.34.1" - "@unocss/core" "0.34.1" - "@unocss/inspector" "0.34.1" - "@unocss/scope" "0.34.1" - "@unocss/transformer-directives" "0.34.1" + "@unocss/config" "0.41.1" + "@unocss/core" "0.41.1" + "@unocss/inspector" "0.41.1" + "@unocss/scope" "0.41.1" + "@unocss/transformer-directives" "0.41.1" magic-string "^0.26.2" -"@unocss/webpack@0.34.1": - version "0.34.1" - resolved "https://registry.yarnpkg.com/@unocss/webpack/-/webpack-0.34.1.tgz#090a922fc82795e0fc76d94969e0826a79e70dae" - integrity sha512-CwULCplpmbOhAZ1zz6t1zdOEOVQOhbD9eSmfpfzlg7Jxhi1pCR9opNuIsAMLajn6YltPk7egBa8fqpZZ6fycYA== +"@unocss/webpack@0.41.1": + version "0.41.1" + resolved "https://registry.yarnpkg.com/@unocss/webpack/-/webpack-0.41.1.tgz#752d4268d43347cf60a7363c0ed0e340d201331b" + integrity sha512-9Tvn04OhfzLWzd9aPnFHASSJWX1gxcEkut7BoVoM6tpptz/bFhwOrKZWrh82cqampk6ptAHKQ8qW4lI5xc88BA== dependencies: "@rollup/pluginutils" "^4.2.1" - "@unocss/config" "0.34.1" - "@unocss/core" "0.34.1" - unplugin "^0.6.3" + "@unocss/config" "0.41.1" + "@unocss/core" "0.41.1" + unplugin "^0.7.0" webpack-sources "^3.2.3" -"@vercel/nft@^0.18.2": - version "0.18.2" - resolved "https://registry.yarnpkg.com/@vercel/nft/-/nft-0.18.2.tgz#46ab17e1d631220bfc21c8fe299d10e36514e897" - integrity sha512-Oxy4y5JDh7CMbaxEGjKKzHcnQ1gRQqtfp+x3xvOmZYixXHwaD2RMJDTzaPz0b2B3pgVbbPOHY87wffJPFDaoFg== +"@vercel/nft@^0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@vercel/nft/-/nft-0.20.0.tgz#43b1027599f9041b27b9f6ed132f632c53bc7ea1" + integrity sha512-+lxsJP/sG4E8UkhfrJC6evkLLfUpZrjXxqEdunr3Q9kiECi8JYBGz6B5EpU1+MmeNnRoSphLcLh/1tI998ye4w== dependencies: "@mapbox/node-pre-gyp" "^1.0.5" acorn "^8.6.0" @@ -1044,108 +1062,109 @@ html-tags "^3.1.0" svg-tags "^1.0.0" -"@vue/compiler-core@3.2.36": - version "3.2.36" - resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.2.36.tgz#2fa44595308c95610602df54dcb69063ba2c8383" - integrity sha512-bbyZM5hvBicv0PW3KUfVi+x3ylHnfKG7DOn5wM+f2OztTzTjLEyBb/5yrarIYpmnGitVGbjZqDbODyW4iK8hqw== +"@vue/compiler-core@3.2.37": + version "3.2.37" + resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.2.37.tgz#b3c42e04c0e0f2c496ff1784e543fbefe91e215a" + integrity sha512-81KhEjo7YAOh0vQJoSmAD68wLfYqJvoiD4ulyedzF+OEk/bk6/hx3fTNVfuzugIIaTrOx4PGx6pAiBRe5e9Zmg== dependencies: "@babel/parser" "^7.16.4" - "@vue/shared" "3.2.36" + "@vue/shared" "3.2.37" estree-walker "^2.0.2" source-map "^0.6.1" -"@vue/compiler-dom@3.2.36": - version "3.2.36" - resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.2.36.tgz#16d911ff163ed5fc8087a01645bf14bb7f325401" - integrity sha512-tcOTAOiW4s24QLnq+ON6J+GRONXJ+A/mqKCORi0LSlIh8XQlNnlm24y8xIL8la+ZDgkdbjarQ9ZqYSvEja6gVA== +"@vue/compiler-dom@3.2.37": + version "3.2.37" + resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.2.37.tgz#10d2427a789e7c707c872da9d678c82a0c6582b5" + integrity sha512-yxJLH167fucHKxaqXpYk7x8z7mMEnXOw3G2q62FTkmsvNxu4FQSu5+3UMb+L7fjKa26DEzhrmCxAgFLLIzVfqQ== dependencies: - "@vue/compiler-core" "3.2.36" - "@vue/shared" "3.2.36" + "@vue/compiler-core" "3.2.37" + "@vue/shared" "3.2.37" -"@vue/compiler-sfc@3.2.36": - version "3.2.36" - resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.2.36.tgz#e5065e7c0e5170ffa750e3c3dd93a29db109d0f2" - integrity sha512-AvGb4bTj4W8uQ4BqaSxo7UwTEqX5utdRSMyHy58OragWlt8nEACQ9mIeQh3K4di4/SX+41+pJrLIY01lHAOFOA== +"@vue/compiler-sfc@3.2.37": + version "3.2.37" + resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.2.37.tgz#3103af3da2f40286edcd85ea495dcb35bc7f5ff4" + integrity sha512-+7i/2+9LYlpqDv+KTtWhOZH+pa8/HnX/905MdVmAcI/mPQOBwkHHIzrsEsucyOIZQYMkXUiTkmZq5am/NyXKkg== dependencies: "@babel/parser" "^7.16.4" - "@vue/compiler-core" "3.2.36" - "@vue/compiler-dom" "3.2.36" - "@vue/compiler-ssr" "3.2.36" - "@vue/reactivity-transform" "3.2.36" - "@vue/shared" "3.2.36" + "@vue/compiler-core" "3.2.37" + "@vue/compiler-dom" "3.2.37" + "@vue/compiler-ssr" "3.2.37" + "@vue/reactivity-transform" "3.2.37" + "@vue/shared" "3.2.37" estree-walker "^2.0.2" magic-string "^0.25.7" postcss "^8.1.10" source-map "^0.6.1" -"@vue/compiler-ssr@3.2.36": - version "3.2.36" - resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.2.36.tgz#314f3a9424db58142c3608f48cbda7aa05fc66cb" - integrity sha512-+KugInUFRvOxEdLkZwE+W43BqHyhBh0jpYXhmqw1xGq2dmE6J9eZ8UUSOKNhdHtQ/iNLWWeK/wPZkVLUf3YGaw== +"@vue/compiler-ssr@3.2.37": + version "3.2.37" + resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.2.37.tgz#4899d19f3a5fafd61524a9d1aee8eb0505313cff" + integrity sha512-7mQJD7HdXxQjktmsWp/J67lThEIcxLemz1Vb5I6rYJHR5vI+lON3nPGOH3ubmbvYGt8xEUaAr1j7/tIFWiEOqw== dependencies: - "@vue/compiler-dom" "3.2.36" - "@vue/shared" "3.2.36" + "@vue/compiler-dom" "3.2.37" + "@vue/shared" "3.2.37" "@vue/devtools-api@^6.0.0": version "6.1.4" resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-6.1.4.tgz#b4aec2f4b4599e11ba774a50c67fa378c9824e53" integrity sha512-IiA0SvDrJEgXvVxjNkHPFfDx6SXw0b/TUkqMcDZWNg9fnCAHbTpoo59YfJ9QLFkwa3raau5vSlRVzMSLDnfdtQ== -"@vue/reactivity-transform@3.2.36": - version "3.2.36" - resolved "https://registry.yarnpkg.com/@vue/reactivity-transform/-/reactivity-transform-3.2.36.tgz#8426a941b0b09d1b94fc162d4642758183b5d133" - integrity sha512-Jk5o2BhpODC9XTA7o4EL8hSJ4JyrFWErLtClG3NH8wDS7ri9jBDWxI7/549T7JY9uilKsaNM+4pJASLj5dtRwA== +"@vue/reactivity-transform@3.2.37": + version "3.2.37" + resolved "https://registry.yarnpkg.com/@vue/reactivity-transform/-/reactivity-transform-3.2.37.tgz#0caa47c4344df4ae59f5a05dde2a8758829f8eca" + integrity sha512-IWopkKEb+8qpu/1eMKVeXrK0NLw9HicGviJzhJDEyfxTR9e1WtpnnbYkJWurX6WwoFP0sz10xQg8yL8lgskAZg== dependencies: "@babel/parser" "^7.16.4" - "@vue/compiler-core" "3.2.36" - "@vue/shared" "3.2.36" + "@vue/compiler-core" "3.2.37" + "@vue/shared" "3.2.37" estree-walker "^2.0.2" magic-string "^0.25.7" -"@vue/reactivity@3.2.36", "@vue/reactivity@^3.2.34": - version "3.2.36" - resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.2.36.tgz#026b14e716febffe80cd284fd8a2b33378968646" - integrity sha512-c2qvopo0crh9A4GXi2/2kfGYMxsJW4tVILrqRPydVGZHhq0fnzy6qmclWOhBFckEhmyxmpHpdJtIRYGeKcuhnA== +"@vue/reactivity@3.2.37", "@vue/reactivity@^3.2.37": + version "3.2.37" + resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.2.37.tgz#5bc3847ac58828e2b78526e08219e0a1089f8848" + integrity sha512-/7WRafBOshOc6m3F7plwzPeCu/RCVv9uMpOwa/5PiY1Zz+WLVRWiy0MYKwmg19KBdGtFWsmZ4cD+LOdVPcs52A== dependencies: - "@vue/shared" "3.2.36" + "@vue/shared" "3.2.37" -"@vue/runtime-core@3.2.36": - version "3.2.36" - resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.2.36.tgz#be5115e665679c26bf3807d2326675dc1d847134" - integrity sha512-PTWBD+Lub+1U3/KhbCExrfxyS14hstLX+cBboxVHaz+kXoiDLNDEYAovPtxeTutbqtClIXtft+wcGdC+FUQ9qQ== +"@vue/runtime-core@3.2.37": + version "3.2.37" + resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.2.37.tgz#7ba7c54bb56e5d70edfc2f05766e1ca8519966e3" + integrity sha512-JPcd9kFyEdXLl/i0ClS7lwgcs0QpUAWj+SKX2ZC3ANKi1U4DOtiEr6cRqFXsPwY5u1L9fAjkinIdB8Rz3FoYNQ== dependencies: - "@vue/reactivity" "3.2.36" - "@vue/shared" "3.2.36" + "@vue/reactivity" "3.2.37" + "@vue/shared" "3.2.37" -"@vue/runtime-dom@3.2.36": - version "3.2.36" - resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.2.36.tgz#cd5d403ea23c18ee7c17767103a1b2f8263c54bb" - integrity sha512-gYPYblm7QXHVuBohqNRRT7Wez0f2Mx2D40rb4fleehrJU9CnkjG0phhcGEZFfGwCmHZRqBCRgbFWE98bPULqkg== +"@vue/runtime-dom@3.2.37": + version "3.2.37" + resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.2.37.tgz#002bdc8228fa63949317756fb1e92cdd3f9f4bbd" + integrity sha512-HimKdh9BepShW6YozwRKAYjYQWg9mQn63RGEiSswMbW+ssIht1MILYlVGkAGGQbkhSh31PCdoUcfiu4apXJoPw== dependencies: - "@vue/runtime-core" "3.2.36" - "@vue/shared" "3.2.36" + "@vue/runtime-core" "3.2.37" + "@vue/shared" "3.2.37" csstype "^2.6.8" -"@vue/server-renderer@3.2.36": - version "3.2.36" - resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.2.36.tgz#1e7c1cf63bd17df7828d04e8c780ee6ca7a9ed7c" - integrity sha512-uZE0+jfye6yYXWvAQYeHZv+f50sRryvy16uiqzk3jn8hEY8zTjI+rzlmZSGoE915k+W/Ol9XSw6vxOUD8dGkUg== +"@vue/server-renderer@3.2.37": + version "3.2.37" + resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.2.37.tgz#840a29c8dcc29bddd9b5f5ffa22b95c0e72afdfc" + integrity sha512-kLITEJvaYgZQ2h47hIzPh2K3jG8c1zCVbp/o/bzQOyvzaKiCquKS7AaioPI28GNxIsE/zSx+EwWYsNxDCX95MA== dependencies: - "@vue/compiler-ssr" "3.2.36" - "@vue/shared" "3.2.36" + "@vue/compiler-ssr" "3.2.37" + "@vue/shared" "3.2.37" -"@vue/shared@3.2.36", "@vue/shared@^3.2.34": - version "3.2.36" - resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.2.36.tgz#35e11200542cf29068ba787dad57da9bdb82f644" - integrity sha512-JtB41wXl7Au3+Nl3gD16Cfpj7k/6aCroZ6BbOiCMFCMvrOpkg/qQUXTso2XowaNqBbnkuGHurLAqkLBxNGc1hQ== +"@vue/shared@3.2.37", "@vue/shared@^3.2.37": + version "3.2.37" + resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.2.37.tgz#8e6adc3f2759af52f0e85863dfb0b711ecc5c702" + integrity sha512-4rSJemR2NQIo9Klm1vabqWjD8rs/ZaJSzMxkMNeJS6lHiUjjUeYFbooN19NgFjztubEKh3WlZUeOLVdbbUWHsw== -"@vueuse/core@8.5.0", "@vueuse/core@^8.5.0": - version "8.5.0" - resolved "https://registry.yarnpkg.com/@vueuse/core/-/core-8.5.0.tgz#2b7548e52165c88e1463756c36188e105d806543" - integrity sha512-VEJ6sGNsPlUp0o9BGda2YISvDZbhWJSOJu5zlp2TufRGVrLcYUKr31jyFEOj6RXzG3k/H4aCYeZyjpItfU8glw== +"@vueuse/core@8.7.5", "@vueuse/core@^8.7.5": + version "8.7.5" + resolved "https://registry.yarnpkg.com/@vueuse/core/-/core-8.7.5.tgz#e74a888251ea11a9d432068ce18cbdfc4f810251" + integrity sha512-tqgzeZGoZcXzoit4kOGLWJibDMLp0vdm6ZO41SSUQhkhtrPhAg6dbIEPiahhUu6sZAmSYvVrZgEr5aKD51nrLA== dependencies: - "@vueuse/metadata" "8.5.0" - "@vueuse/shared" "8.5.0" + "@types/web-bluetooth" "^0.0.14" + "@vueuse/metadata" "8.7.5" + "@vueuse/shared" "8.7.5" vue-demi "*" "@vueuse/head@^0.7.6": @@ -1153,35 +1172,35 @@ resolved "https://registry.yarnpkg.com/@vueuse/head/-/head-0.7.6.tgz#39eb2aa593db6f02d10ba469b33d8cfbce038183" integrity sha512-cOWqCkT3WiF5oEpw+VVEWUJd9RLD5rc7DmnFp3cePsejp+t7686uKD9Z9ZU7Twb7R/BI8iexKTmXo9D/F3v6UA== -"@vueuse/integrations@^8.5.0": - version "8.5.0" - resolved "https://registry.yarnpkg.com/@vueuse/integrations/-/integrations-8.5.0.tgz#14af94371631b82ff4dc48c23b214f03fc7b2a53" - integrity sha512-tZNYg5T07OacF1x4evGoRZK1BMU0ge7MqF4tzR3eJLD0EPiq4jd6+HUzCloPtMZ14wNPwaP1B8xYUyYxucPJ3w== +"@vueuse/integrations@^8.7.5": + version "8.7.5" + resolved "https://registry.yarnpkg.com/@vueuse/integrations/-/integrations-8.7.5.tgz#a47f78d964939c3ac4070088e67883fb3c8ca77a" + integrity sha512-1vCOriEXhthpU9zczTqtG4a+YJFgkyUbK/Cc91Ey0VOdL6saMNjLsrGX7cae6troFyDCbF61eL6Y8epsNc3TXw== dependencies: - "@vueuse/core" "8.5.0" - "@vueuse/shared" "8.5.0" + "@vueuse/core" "8.7.5" + "@vueuse/shared" "8.7.5" vue-demi "*" -"@vueuse/metadata@8.5.0": - version "8.5.0" - resolved "https://registry.yarnpkg.com/@vueuse/metadata/-/metadata-8.5.0.tgz#1aaa3787922cfda0f38243aaa7779366a669b4db" - integrity sha512-WxsD+Cd+bn+HcjpY6Dl9FJ8ywTRTT9pTwk3bCQpzEhXVYAyNczKDSahk50fCfIJKeWHhyI4B2+/ZEOxQAkUr0g== +"@vueuse/metadata@8.7.5": + version "8.7.5" + resolved "https://registry.yarnpkg.com/@vueuse/metadata/-/metadata-8.7.5.tgz#c7f2b21d873d1604a8860ed9c5728d8f3295f00a" + integrity sha512-emJZKRQSaEnVqmlu39NpNp8iaW+bPC2kWykWoWOZMSlO/0QVEmO/rt8A5VhOEJTKLX3vwTevqbiRy9WJRwVOQg== -"@vueuse/nuxt@^8.5.0": - version "8.5.0" - resolved "https://registry.yarnpkg.com/@vueuse/nuxt/-/nuxt-8.5.0.tgz#392617df38d56f87b705f5feef4af27544371f6c" - integrity sha512-riGrDwlTQbjSDxyw46oc1catXpZwzzRrEk+PTy8NQZG6uevgJ8wNuAhPVx/5oG0jYG/t2orIFfc9xGEA6uytSg== +"@vueuse/nuxt@^8.7.5": + version "8.7.5" + resolved "https://registry.yarnpkg.com/@vueuse/nuxt/-/nuxt-8.7.5.tgz#8c9efb6a689a327ffc990465951ac052e094b455" + integrity sha512-e+JSiNCdWaKyTiBtM856uNJaXeCw8Ka423AGsuvq+D+GXXQe0RhHzqqLS6pQutjWuftNRBRCOiITOzhtjMP+gA== dependencies: - "@nuxt/kit" "^3.0.0-rc.2" - "@vueuse/core" "8.5.0" - "@vueuse/metadata" "8.5.0" + "@nuxt/kit" "^3.0.0-rc.4" + "@vueuse/core" "8.7.5" + "@vueuse/metadata" "8.7.5" local-pkg "^0.4.1" vue-demi "*" -"@vueuse/shared@8.5.0": - version "8.5.0" - resolved "https://registry.yarnpkg.com/@vueuse/shared/-/shared-8.5.0.tgz#fa01ecd3161933f521dd6428b9ef8015ded1bbd3" - integrity sha512-qKG+SZb44VvGD4dU5cQ63z4JE2Yk39hQUecR0a9sEdJA01cx+XrxAvFKJfPooxwoiqalAVw/ktWK6xbyc/jS3g== +"@vueuse/shared@8.7.5": + version "8.7.5" + resolved "https://registry.yarnpkg.com/@vueuse/shared/-/shared-8.7.5.tgz#06fb08f6f8fc9e90be9d1e033fa443de927172b0" + integrity sha512-THXPvMBFmg6Gf6AwRn/EdTh2mhqwjGsB2Yfp374LNQSQVKRHtnJ0I42bsZTn7nuEliBxqUrGQm/lN6qUHmhJLw== dependencies: vue-demi "*" @@ -1190,7 +1209,7 @@ abbrev@1: resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== -acorn@^8.5.0, acorn@^8.6.0, acorn@^8.7.0: +acorn@^8.5.0, acorn@^8.6.0, acorn@^8.7.0, acorn@^8.7.1: version "8.7.1" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.1.tgz#0197122c843d1bf6d0a5e83220a788f278f63c30" integrity sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A== @@ -1322,9 +1341,9 @@ astral-regex@^2.0.0: integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== async@^3.2.3: - version "3.2.3" - resolved "https://registry.yarnpkg.com/async/-/async-3.2.3.tgz#ac53dafd3f4720ee9e8a160628f18ea91df196c9" - integrity sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g== + version "3.2.4" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c" + integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ== autoprefixer@^10.4.7: version "10.4.7" @@ -1400,15 +1419,14 @@ braces@^3.0.2, braces@~3.0.2: fill-range "^7.0.1" browserslist@^4.0.0, browserslist@^4.16.6, browserslist@^4.20.2, browserslist@^4.20.3: - version "4.20.3" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.20.3.tgz#eb7572f49ec430e054f56d52ff0ebe9be915f8bf" - integrity sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg== + version "4.21.0" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.0.tgz#7ab19572361a140ecd1e023e2c1ed95edda0cefe" + integrity sha512-UQxE0DIhRB5z/zDz9iA03BOfxaN2+GQdBYH/2WrSIWEUrnpzTPJbhqt+umq6r3acaPRTW1FNTkrcp0PXgtFkvA== dependencies: - caniuse-lite "^1.0.30001332" - electron-to-chromium "^1.4.118" - escalade "^3.1.1" - node-releases "^2.0.3" - picocolors "^1.0.0" + caniuse-lite "^1.0.30001358" + electron-to-chromium "^1.4.164" + node-releases "^2.0.5" + update-browserslist-db "^1.0.0" buffer-crc32@^0.2.1, buffer-crc32@^0.2.13: version "0.2.13" @@ -1481,10 +1499,10 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001332, caniuse-lite@^1.0.30001335: - version "1.0.30001342" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001342.tgz#87152b1e3b950d1fbf0093e23f00b6c8e8f1da96" - integrity sha512-bn6sOCu7L7jcbBbyNhLg0qzXdJ/PMbybZTH/BA6Roet9wxYRm6Tr9D0s0uhLkOZ6MSG+QU6txUgdpr3MXIVqjA== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001335, caniuse-lite@^1.0.30001358: + version "1.0.30001359" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001359.tgz#a1c1cbe1c2da9e689638813618b4219acbd4925e" + integrity sha512-Xln/BAsPzEuiVLgJ2/45IaqD9jShtk3Y33anKb4+yLwQzws3+v6odKfpgES/cDEaZMLzSChpIGdbOYtH9MyuHw== ccount@^2.0.0: version "2.0.1" @@ -1524,9 +1542,9 @@ character-entities-legacy@^3.0.0: integrity sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ== character-entities@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-2.0.1.tgz#98724833e1e27990dee0bd0f2b8a859c3476aac7" - integrity sha512-OzmutCf2Kmc+6DrFrrPS8/tDh2+DpnrfzdICHWhcVC9eOd0N1PXmQEE1a8iM4IziIAG+8tmTq3K+oo0ubH6RRQ== + version "2.0.2" + resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-2.0.2.tgz#2d09c2e72cd9523076ccb21157dff66ad43fcc22" + integrity sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ== character-reference-invalid@^2.0.0: version "2.0.1" @@ -1564,9 +1582,9 @@ chownr@^2.0.0: integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== ci-info@^3.3.0: - version "3.3.1" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.3.1.tgz#58331f6f472a25fe3a50a351ae3052936c2c7f32" - integrity sha512-SXgeMX9VwDe7iFFaEWkA5AstuER9YKqy4EhHqr4DVqkwmD9rpVimkMKWHdjn30Ja45txyjhSn63lVX69eVCckg== + version "3.3.2" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.3.2.tgz#6d2967ffa407466481c6c90b6e16b3098f080128" + integrity sha512-xmDt/QIAdeZ9+nfdPsaBCpMvHNLFiLdjj59qjqn+6iPe6YmHGQ35sBnQ8uslRBXFmXkiZQOJRjvQeoGppoTjjg== cli-cursor@^3.1.0: version "3.1.0" @@ -1606,7 +1624,7 @@ cliui@^7.0.2: clone@^1.0.2: version "1.0.4" resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" - integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= + integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== cluster-key-slot@^1.1.0: version "1.1.0" @@ -1616,7 +1634,7 @@ cluster-key-slot@^1.1.0: code-point-at@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" - integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= + integrity sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA== color-convert@^1.9.0: version "1.9.3" @@ -1635,7 +1653,7 @@ color-convert@^2.0.1: color-name@1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== color-name@~1.1.4: version "1.1.4" @@ -1652,10 +1670,10 @@ colord@^2.9.1: resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.2.tgz#25e2bacbbaa65991422c07ea209e2089428effb1" integrity sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ== -colorette@^2.0.16: - version "2.0.16" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.16.tgz#713b9af84fdb000139f04546bd4a93f62a5085da" - integrity sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g== +colorette@^2.0.16, colorette@^2.0.19: + version "2.0.19" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.19.tgz#cdf044f47ad41a0f4b56b3a0d5b4e6e1a2d5a798" + integrity sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ== comma-separated-tokens@^2.0.0: version "2.0.2" @@ -1680,7 +1698,7 @@ commander@^8.0.0: commondir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= + integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== compress-commons@^4.1.0: version "4.1.1" @@ -1695,7 +1713,7 @@ compress-commons@^4.1.0: concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== consola@^2.15.3: version "2.15.3" @@ -1705,7 +1723,7 @@ consola@^2.15.3: console-control-strings@^1.0.0, console-control-strings@^1.1.0, console-control-strings@~1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" - integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= + integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ== convert-source-map@^1.7.0: version "1.8.0" @@ -1751,10 +1769,10 @@ cross-spawn@^7.0.3: shebang-command "^2.0.0" which "^2.0.1" -css-declaration-sorter@^6.2.2: - version "6.2.2" - resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-6.2.2.tgz#bfd2f6f50002d6a3ae779a87d3a0c5d5b10e0f02" - integrity sha512-Ufadglr88ZLsrvS11gjeu/40Lw74D9Am/Jpr3LlYm5Q4ZP5KdlUhG+6u2EjyXeZcxmZ2h1ebCKngDjolpeLHpg== +css-declaration-sorter@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-6.3.0.tgz#72ebd995c8f4532ff0036631f7365cce9759df14" + integrity sha512-OGT677UGHJTAVMRhPO+HJ4oKln3wkBTwtDFH0ojbqm+MJm6xuDMHp2nkhh/ThaBqq20IbraBQSWKfSLNHQO9Og== css-select@^4.1.3: version "4.3.0" @@ -1793,36 +1811,36 @@ cssesc@^3.0.0: resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== -cssnano-preset-default@^5.2.9: - version "5.2.9" - resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-5.2.9.tgz#63f6aa9a9f0b21d9a526371dd308253b656a9784" - integrity sha512-/4qcQcAfFEg+gnXE5NxKmYJ9JcT+8S5SDuJCLYMDN8sM/ymZ+lgLXq5+ohx/7V2brUCkgW2OaoCzOdAN0zvhGw== +cssnano-preset-default@^5.2.12: + version "5.2.12" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-5.2.12.tgz#ebe6596ec7030e62c3eb2b3c09f533c0644a9a97" + integrity sha512-OyCBTZi+PXgylz9HAA5kHyoYhfGcYdwFmyaJzWnzxuGRtnMw/kR6ilW9XzlzlRAtB6PLT/r+prYgkef7hngFew== dependencies: - css-declaration-sorter "^6.2.2" + css-declaration-sorter "^6.3.0" cssnano-utils "^3.1.0" postcss-calc "^8.2.3" postcss-colormin "^5.3.0" - postcss-convert-values "^5.1.1" - postcss-discard-comments "^5.1.1" + postcss-convert-values "^5.1.2" + postcss-discard-comments "^5.1.2" postcss-discard-duplicates "^5.1.0" postcss-discard-empty "^5.1.1" postcss-discard-overridden "^5.1.0" - postcss-merge-longhand "^5.1.5" - postcss-merge-rules "^5.1.1" + postcss-merge-longhand "^5.1.6" + postcss-merge-rules "^5.1.2" postcss-minify-font-values "^5.1.0" postcss-minify-gradients "^5.1.1" postcss-minify-params "^5.1.3" - postcss-minify-selectors "^5.2.0" + postcss-minify-selectors "^5.2.1" postcss-normalize-charset "^5.1.0" postcss-normalize-display-values "^5.1.0" - postcss-normalize-positions "^5.1.0" - postcss-normalize-repeat-style "^5.1.0" + postcss-normalize-positions "^5.1.1" + postcss-normalize-repeat-style "^5.1.1" postcss-normalize-string "^5.1.0" postcss-normalize-timing-functions "^5.1.0" postcss-normalize-unicode "^5.1.0" postcss-normalize-url "^5.1.0" postcss-normalize-whitespace "^5.1.1" - postcss-ordered-values "^5.1.1" + postcss-ordered-values "^5.1.3" postcss-reduce-initial "^5.1.0" postcss-reduce-transforms "^5.1.0" postcss-svgo "^5.1.0" @@ -1833,12 +1851,12 @@ cssnano-utils@^3.1.0: resolved "https://registry.yarnpkg.com/cssnano-utils/-/cssnano-utils-3.1.0.tgz#95684d08c91511edfc70d2636338ca37ef3a6861" integrity sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA== -cssnano@^5.1.8: - version "5.1.9" - resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.1.9.tgz#e6cb286c4907cbd55678eb315837a21008be21be" - integrity sha512-hctQHIIeDrfMjq0bQhoVmRVaSeNNOGxkvkKVOcKpJzLr09wlRrZWH4GaYudp0aszpW8wJeaO5/yBmID9n7DNCg== +cssnano@^5.1.12: + version "5.1.12" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.1.12.tgz#bcd0b64d6be8692de79332c501daa7ece969816c" + integrity sha512-TgvArbEZu0lk/dvg2ja+B7kYoD7BBCmn3+k58xD0qjrGHsFzXY/wKTo9M5egcUCabPol05e/PVoIu79s2JN4WQ== dependencies: - cssnano-preset-default "^5.2.9" + cssnano-preset-default "^5.2.12" lilconfig "^2.0.3" yaml "^1.10.2" @@ -1866,7 +1884,7 @@ csvtojson@^2.0.10: cuint@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/cuint/-/cuint-0.2.2.tgz#408086d409550c2631155619e9fa7bcadc3b991b" - integrity sha1-QICG1AlVDCYxFVYZ6fp7ytw7mRs= + integrity sha512-d4ZVpCW31eWwCMe1YT3ur7mUDnTXbgwyzaL320DrcRT45rfjYxkt5QWLrmOJ+/UEAI2+fQgKe/fCjR8l4TpRgw== data-uri-to-buffer@^4.0.0: version "4.0.0" @@ -1895,16 +1913,16 @@ debug@^3.2.6: ms "^2.1.1" decode-named-character-reference@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/decode-named-character-reference/-/decode-named-character-reference-1.0.1.tgz#57b2bd9112659cacbc449d3577d7dadb8e1f3d1b" - integrity sha512-YV/0HQHreRwKb7uBopyIkLG17jG6Sv2qUchk9qSoVJ2f+flwRsPNBO0hAnjt6mTNYUT+vw9Gy2ihXg4sUWPi2w== + version "1.0.2" + resolved "https://registry.yarnpkg.com/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz#daabac9690874c394c81e4162a0304b35d824f0e" + integrity sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg== dependencies: character-entities "^2.0.0" decode-uri-component@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" - integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= + integrity sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og== deep-extend@^0.6.0: version "0.6.0" @@ -1919,7 +1937,7 @@ deepmerge@^4.2.2: defaults@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" - integrity sha1-xlYFHpgX2f8I7YgUd/P+QBnz730= + integrity sha512-s82itHOnYrN0Ib8r+z7laQz3sdE+4FP3d9Q7VLO7U+KRT+CR0GsWuyHxzdAY82I7cXv0G/twrqomTJLOssO5HA== dependencies: clone "^1.0.2" @@ -1928,11 +1946,6 @@ define-lazy-prop@^2.0.0: resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== -defu@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/defu/-/defu-5.0.1.tgz#a034278f9b032bf0845d261aa75e9ad98da878ac" - integrity sha512-EPS1carKg+dkEVy3qNTqIdp2qV7mUP08nIsupfwQpz++slCVRw7qbQyWvSTig+kFPwz2XXp5/kIIkH+CwrJKkQ== - defu@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/defu/-/defu-6.0.0.tgz#b397a6709a2f3202747a3d9daf9446e41ad0c5fc" @@ -1941,7 +1954,7 @@ defu@^6.0.0: delegates@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" - integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= + integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ== denque@^2.0.1: version "2.0.1" @@ -1976,7 +1989,7 @@ detab@^3.0.1: detect-libc@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" - integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= + integrity sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg== detect-libc@^2.0.0: version "2.0.1" @@ -2045,12 +2058,12 @@ duplexer@^0.1.2: ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= + integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== -electron-to-chromium@^1.4.118: - version "1.4.137" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.137.tgz#186180a45617283f1c012284458510cd99d6787f" - integrity sha512-0Rcpald12O11BUogJagX3HsCN3FE83DSqWjgXoHo5a72KUKMSfI39XBgJpgNNxS9fuGzytaFjE06kZkiVFy2qA== +electron-to-chromium@^1.4.164: + version "1.4.172" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.172.tgz#87335795a3dc19e7b6dd5af291038477d81dc6b1" + integrity sha512-yDoFfTJnqBAB6hSiPvzmsBJSrjOXJtHSJoqJdI/zSIh7DYupYnIOHt/bbPw/WE31BJjNTybDdNAs21gCMnTh0Q== emoji-regex@^8.0.0: version "8.0.0" @@ -2065,7 +2078,7 @@ emoticon@^4.0.0: encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= + integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== end-of-stream@^1.4.1: version "1.4.4" @@ -2084,9 +2097,9 @@ enhanced-resolve@^4.1.1: tapable "^1.0.0" enhanced-resolve@^5.9.3: - version "5.9.3" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.9.3.tgz#44a342c012cbc473254af5cc6ae20ebd0aae5d88" - integrity sha512-Bq9VSor+kjvW3f9/MiiR4eE3XYgOl7/rS8lnSxbRbF3kS0B2r+Y9w5krBWxZgDxASVZbdYrn5wT4j/Wb0J9qow== + version "5.10.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz#0dc579c3bb2a1032e357ac45b8f3a6f3ad4fb1e6" + integrity sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ== dependencies: graceful-fs "^4.2.4" tapable "^2.2.0" @@ -2103,131 +2116,131 @@ errno@^0.1.3: dependencies: prr "~1.0.1" -esbuild-android-64@0.14.39: - version "0.14.39" - resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.14.39.tgz#09f12a372eed9743fd77ff6d889ac14f7b340c21" - integrity sha512-EJOu04p9WgZk0UoKTqLId9VnIsotmI/Z98EXrKURGb3LPNunkeffqQIkjS2cAvidh+OK5uVrXaIP229zK6GvhQ== - -esbuild-android-arm64@0.14.39: - version "0.14.39" - resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.39.tgz#f608d00ea03fe26f3b1ab92a30f99220390f3071" - integrity sha512-+twajJqO7n3MrCz9e+2lVOnFplRsaGRwsq1KL/uOy7xK7QdRSprRQcObGDeDZUZsacD5gUkk6OiHiYp6RzU3CA== - -esbuild-darwin-64@0.14.39: - version "0.14.39" - resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.39.tgz#31528daa75b4c9317721ede344195163fae3e041" - integrity sha512-ImT6eUw3kcGcHoUxEcdBpi6LfTRWaV6+qf32iYYAfwOeV+XaQ/Xp5XQIBiijLeo+LpGci9M0FVec09nUw41a5g== - -esbuild-darwin-arm64@0.14.39: - version "0.14.39" - resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.39.tgz#247f770d86d90a215fa194f24f90e30a0bd97245" - integrity sha512-/fcQ5UhE05OiT+bW5v7/up1bDsnvaRZPJxXwzXsMRrr7rZqPa85vayrD723oWMT64dhrgWeA3FIneF8yER0XTw== - -esbuild-freebsd-64@0.14.39: - version "0.14.39" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.39.tgz#479414d294905055eb396ebe455ed42213284ee0" - integrity sha512-oMNH8lJI4wtgN5oxuFP7BQ22vgB/e3Tl5Woehcd6i2r6F3TszpCnNl8wo2d/KvyQ4zvLvCWAlRciumhQg88+kQ== - -esbuild-freebsd-arm64@0.14.39: - version "0.14.39" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.39.tgz#cedeb10357c88533615921ae767a67dc870a474c" - integrity sha512-1GHK7kwk57ukY2yI4ILWKJXaxfr+8HcM/r/JKCGCPziIVlL+Wi7RbJ2OzMcTKZ1HpvEqCTBT/J6cO4ZEwW4Ypg== - -esbuild-linux-32@0.14.39: - version "0.14.39" - resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.14.39.tgz#d9f008c4322d771f3958f59c1eee5a05cdf92485" - integrity sha512-g97Sbb6g4zfRLIxHgW2pc393DjnkTRMeq3N1rmjDUABxpx8SjocK4jLen+/mq55G46eE2TA0MkJ4R3SpKMu7dg== - -esbuild-linux-64@0.14.39: - version "0.14.39" - resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.14.39.tgz#ba58d7f66858913aeb1ab5c6bde1bbd824731795" - integrity sha512-4tcgFDYWdI+UbNMGlua9u1Zhu0N5R6u9tl5WOM8aVnNX143JZoBZLpCuUr5lCKhnD0SCO+5gUyMfupGrHtfggQ== - -esbuild-linux-arm64@0.14.39: - version "0.14.39" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.39.tgz#708785a30072702b5b1c16b65cf9c25c51202529" - integrity sha512-23pc8MlD2D6Px1mV8GMglZlKgwgNKAO8gsgsLLcXWSs9lQsCYkIlMo/2Ycfo5JrDIbLdwgP8D2vpfH2KcBqrDQ== - -esbuild-linux-arm@0.14.39: - version "0.14.39" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.39.tgz#4e8b5deaa7ab60d0d28fab131244ef82b40684f4" - integrity sha512-t0Hn1kWVx5UpCzAJkKRfHeYOLyFnXwYynIkK54/h3tbMweGI7dj400D1k0Vvtj2u1P+JTRT9tx3AjtLEMmfVBQ== - -esbuild-linux-mips64le@0.14.39: - version "0.14.39" - resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.39.tgz#6f3bf3023f711084e5a1e8190487d2020f39f0f7" - integrity sha512-epwlYgVdbmkuRr5n4es3B+yDI0I2e/nxhKejT9H0OLxFAlMkeQZxSpxATpDc9m8NqRci6Kwyb/SfmD1koG2Zuw== - -esbuild-linux-ppc64le@0.14.39: - version "0.14.39" - resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.39.tgz#900e718a4ea3f6aedde8424828eeefdd4b48d4b9" - integrity sha512-W/5ezaq+rQiQBThIjLMNjsuhPHg+ApVAdTz2LvcuesZFMsJoQAW2hutoyg47XxpWi7aEjJGrkS26qCJKhRn3QQ== - -esbuild-linux-riscv64@0.14.39: - version "0.14.39" - resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.39.tgz#dcbff622fa37047a75d2ff7a1d8d2949d80277e4" - integrity sha512-IS48xeokcCTKeQIOke2O0t9t14HPvwnZcy+5baG13Z1wxs9ZrC5ig5ypEQQh4QMKxURD5TpCLHw2W42CLuVZaA== - -esbuild-linux-s390x@0.14.39: - version "0.14.39" - resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.39.tgz#3f725a7945b419406c99d93744b28552561dcdfd" - integrity sha512-zEfunpqR8sMomqXhNTFEKDs+ik7HC01m3M60MsEjZOqaywHu5e5682fMsqOlZbesEAAaO9aAtRBsU7CHnSZWyA== - -esbuild-netbsd-64@0.14.39: - version "0.14.39" - resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.39.tgz#e10e40b6a765798b90d4eb85901cc85c8b7ff85e" - integrity sha512-Uo2suJBSIlrZCe4E0k75VDIFJWfZy+bOV6ih3T4MVMRJh1lHJ2UyGoaX4bOxomYN3t+IakHPyEoln1+qJ1qYaA== - -esbuild-openbsd-64@0.14.39: - version "0.14.39" - resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.39.tgz#935ec143f75ce10bd9cdb1c87fee00287eb0edbc" - integrity sha512-secQU+EpgUPpYjJe3OecoeGKVvRMLeKUxSMGHnK+aK5uQM3n1FPXNJzyz1LHFOo0WOyw+uoCxBYdM4O10oaCAA== - -esbuild-sunos-64@0.14.39: - version "0.14.39" - resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.39.tgz#0e7aa82b022a2e6d55b0646738b2582c2d72c3c0" - integrity sha512-qHq0t5gePEDm2nqZLb+35p/qkaXVS7oIe32R0ECh2HOdiXXkj/1uQI9IRogGqKkK+QjDG+DhwiUw7QoHur/Rwg== - -esbuild-windows-32@0.14.39: - version "0.14.39" - resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.14.39.tgz#3f1538241f31b538545f4b5841b248cac260fa35" - integrity sha512-XPjwp2OgtEX0JnOlTgT6E5txbRp6Uw54Isorm3CwOtloJazeIWXuiwK0ONJBVb/CGbiCpS7iP2UahGgd2p1x+Q== - -esbuild-windows-64@0.14.39: - version "0.14.39" - resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.14.39.tgz#b100c59f96d3c2da2e796e42fee4900d755d3e03" - integrity sha512-E2wm+5FwCcLpKsBHRw28bSYQw0Ikxb7zIMxw3OPAkiaQhLVr3dnVO8DofmbWhhf6b97bWzg37iSZ45ZDpLw7Ow== - -esbuild-windows-arm64@0.14.39: - version "0.14.39" - resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.39.tgz#00268517e665b33c89778d61f144e4256b39f631" - integrity sha512-sBZQz5D+Gd0EQ09tZRnz/PpVdLwvp/ufMtJ1iDFYddDaPpZXKqPyaxfYBLs3ueiaksQ26GGa7sci0OqFzNs7KA== - -esbuild@^0.14.27, esbuild@^0.14.38, esbuild@^0.14.39: - version "0.14.39" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.14.39.tgz#c926b2259fe6f6d3a94f528fb42e103c5a6d909a" - integrity sha512-2kKujuzvRWYtwvNjYDY444LQIA3TyJhJIX3Yo4+qkFlDDtGlSicWgeHVJqMUP/2sSfH10PGwfsj+O2ro1m10xQ== +esbuild-android-64@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.14.47.tgz#ef95b42c67bcf4268c869153fa3ad1466c4cea6b" + integrity sha512-R13Bd9+tqLVFndncMHssZrPWe6/0Kpv2/dt4aA69soX4PRxlzsVpCvoJeFE8sOEoeVEiBkI0myjlkDodXlHa0g== + +esbuild-android-arm64@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.47.tgz#4ebd7ce9fb250b4695faa3ee46fd3b0754ecd9e6" + integrity sha512-OkwOjj7ts4lBp/TL6hdd8HftIzOy/pdtbrNA4+0oVWgGG64HrdVzAF5gxtJufAPOsEjkyh1oIYvKAUinKKQRSQ== + +esbuild-darwin-64@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.47.tgz#e0da6c244f497192f951807f003f6a423ed23188" + integrity sha512-R6oaW0y5/u6Eccti/TS6c/2c1xYTb1izwK3gajJwi4vIfNs1s8B1dQzI1UiC9T61YovOQVuePDcfqHLT3mUZJA== + +esbuild-darwin-arm64@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.47.tgz#cd40fd49a672fca581ed202834239dfe540a9028" + integrity sha512-seCmearlQyvdvM/noz1L9+qblC5vcBrhUaOoLEDDoLInF/VQ9IkobGiLlyTPYP5dW1YD4LXhtBgOyevoIHGGnw== + +esbuild-freebsd-64@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.47.tgz#8da6a14c095b29c01fc8087a16cb7906debc2d67" + integrity sha512-ZH8K2Q8/Ux5kXXvQMDsJcxvkIwut69KVrYQhza/ptkW50DC089bCVrJZZ3sKzIoOx+YPTrmsZvqeZERjyYrlvQ== + +esbuild-freebsd-arm64@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.47.tgz#ad31f9c92817ff8f33fd253af7ab5122dc1b83f6" + integrity sha512-ZJMQAJQsIOhn3XTm7MPQfCzEu5b9STNC+s90zMWe2afy9EwnHV7Ov7ohEMv2lyWlc2pjqLW8QJnz2r0KZmeAEQ== + +esbuild-linux-32@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.14.47.tgz#de085e4db2e692ea30c71208ccc23fdcf5196c58" + integrity sha512-FxZOCKoEDPRYvq300lsWCTv1kcHgiiZfNrPtEhFAiqD7QZaXrad8LxyJ8fXGcWzIFzRiYZVtB3ttvITBvAFhKw== + +esbuild-linux-64@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.14.47.tgz#2a9321bbccb01f01b04cebfcfccbabeba3658ba1" + integrity sha512-nFNOk9vWVfvWYF9YNYksZptgQAdstnDCMtR6m42l5Wfugbzu11VpMCY9XrD4yFxvPo9zmzcoUL/88y0lfJZJJw== + +esbuild-linux-arm64@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.47.tgz#b9da7b6fc4b0ca7a13363a0c5b7bb927e4bc535a" + integrity sha512-ywfme6HVrhWcevzmsufjd4iT3PxTfCX9HOdxA7Hd+/ZM23Y9nXeb+vG6AyA6jgq/JovkcqRHcL9XwRNpWG6XRw== + +esbuild-linux-arm@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.47.tgz#56fec2a09b9561c337059d4af53625142aded853" + integrity sha512-ZGE1Bqg/gPRXrBpgpvH81tQHpiaGxa8c9Rx/XOylkIl2ypLuOcawXEAo8ls+5DFCcRGt/o3sV+PzpAFZobOsmA== + +esbuild-linux-mips64le@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.47.tgz#9db21561f8f22ed79ef2aedb7bbef082b46cf823" + integrity sha512-mg3D8YndZ1LvUiEdDYR3OsmeyAew4MA/dvaEJxvyygahWmpv1SlEEnhEZlhPokjsUMfRagzsEF/d/2XF+kTQGg== + +esbuild-linux-ppc64le@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.47.tgz#dc3a3da321222b11e96e50efafec9d2de408198b" + integrity sha512-WER+f3+szmnZiWoK6AsrTKGoJoErG2LlauSmk73LEZFQ/iWC+KhhDsOkn1xBUpzXWsxN9THmQFltLoaFEH8F8w== + +esbuild-linux-riscv64@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.47.tgz#9bd6dcd3dca6c0357084ecd06e1d2d4bf105335f" + integrity sha512-1fI6bP3A3rvI9BsaaXbMoaOjLE3lVkJtLxsgLHqlBhLlBVY7UqffWBvkrX/9zfPhhVMd9ZRFiaqXnB1T7BsL2g== + +esbuild-linux-s390x@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.47.tgz#a458af939b52f2cd32fc561410d441a51f69d41f" + integrity sha512-eZrWzy0xFAhki1CWRGnhsHVz7IlSKX6yT2tj2Eg8lhAwlRE5E96Hsb0M1mPSE1dHGpt1QVwwVivXIAacF/G6mw== + +esbuild-netbsd-64@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.47.tgz#6388e785d7e7e4420cb01348d7483ab511b16aa8" + integrity sha512-Qjdjr+KQQVH5Q2Q1r6HBYswFTToPpss3gqCiSw2Fpq/ua8+eXSQyAMG+UvULPqXceOwpnPo4smyZyHdlkcPppQ== + +esbuild-openbsd-64@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.47.tgz#309af806db561aa886c445344d1aacab850dbdc5" + integrity sha512-QpgN8ofL7B9z8g5zZqJE+eFvD1LehRlxr25PBkjyyasakm4599iroUpaj96rdqRlO2ShuyqwJdr+oNqWwTUmQw== + +esbuild-sunos-64@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.47.tgz#3f19612dcdb89ba6c65283a7ff6e16f8afbf8aaa" + integrity sha512-uOeSgLUwukLioAJOiGYm3kNl+1wJjgJA8R671GYgcPgCx7QR73zfvYqXFFcIO93/nBdIbt5hd8RItqbbf3HtAQ== + +esbuild-windows-32@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.14.47.tgz#a92d279c8458d5dc319abcfeb30aa49e8f2e6f7f" + integrity sha512-H0fWsLTp2WBfKLBgwYT4OTfFly4Im/8B5f3ojDv1Kx//kiubVY0IQunP2Koc/fr/0wI7hj3IiBDbSrmKlrNgLQ== + +esbuild-windows-64@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.14.47.tgz#2564c3fcf0c23d701edb71af8c52d3be4cec5f8a" + integrity sha512-/Pk5jIEH34T68r8PweKRi77W49KwanZ8X6lr3vDAtOlH5EumPE4pBHqkCUdELanvsT14yMXLQ/C/8XPi1pAtkQ== + +esbuild-windows-arm64@0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.47.tgz#86d9db1a22d83360f726ac5fba41c2f625db6878" + integrity sha512-HFSW2lnp62fl86/qPQlqw6asIwCnEsEoNIL1h2uVMgakddf+vUuMcCbtUY1i8sst7KkgHrVKCJQB33YhhOweCQ== + +esbuild@^0.14.27, esbuild@^0.14.43, esbuild@^0.14.47: + version "0.14.47" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.14.47.tgz#0d6415f6bd8eb9e73a58f7f9ae04c5276cda0e4d" + integrity sha512-wI4ZiIfFxpkuxB8ju4MHrGwGLyp1+awEHAHVpx6w7a+1pmYIq8T9FGEVVwFo0iFierDoMj++Xq69GXWYn2EiwA== optionalDependencies: - esbuild-android-64 "0.14.39" - esbuild-android-arm64 "0.14.39" - esbuild-darwin-64 "0.14.39" - esbuild-darwin-arm64 "0.14.39" - esbuild-freebsd-64 "0.14.39" - esbuild-freebsd-arm64 "0.14.39" - esbuild-linux-32 "0.14.39" - esbuild-linux-64 "0.14.39" - esbuild-linux-arm "0.14.39" - esbuild-linux-arm64 "0.14.39" - esbuild-linux-mips64le "0.14.39" - esbuild-linux-ppc64le "0.14.39" - esbuild-linux-riscv64 "0.14.39" - esbuild-linux-s390x "0.14.39" - esbuild-netbsd-64 "0.14.39" - esbuild-openbsd-64 "0.14.39" - esbuild-sunos-64 "0.14.39" - esbuild-windows-32 "0.14.39" - esbuild-windows-64 "0.14.39" - esbuild-windows-arm64 "0.14.39" + esbuild-android-64 "0.14.47" + esbuild-android-arm64 "0.14.47" + esbuild-darwin-64 "0.14.47" + esbuild-darwin-arm64 "0.14.47" + esbuild-freebsd-64 "0.14.47" + esbuild-freebsd-arm64 "0.14.47" + esbuild-linux-32 "0.14.47" + esbuild-linux-64 "0.14.47" + esbuild-linux-arm "0.14.47" + esbuild-linux-arm64 "0.14.47" + esbuild-linux-mips64le "0.14.47" + esbuild-linux-ppc64le "0.14.47" + esbuild-linux-riscv64 "0.14.47" + esbuild-linux-s390x "0.14.47" + esbuild-netbsd-64 "0.14.47" + esbuild-openbsd-64 "0.14.47" + esbuild-sunos-64 "0.14.47" + esbuild-windows-32 "0.14.47" + esbuild-windows-64 "0.14.47" + esbuild-windows-arm64 "0.14.47" escalade@^3.1.1: version "3.1.1" @@ -2237,12 +2250,12 @@ escalade@^3.1.1: escape-html@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= + integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== escape-string-regexp@^5.0.0: version "5.0.0" @@ -2267,7 +2280,7 @@ estree-walker@^1.0.1: etag@^1.8.1, etag@~1.8.1: version "1.8.1" resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" - integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= + integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== eventemitter3@^4.0.0: version "4.0.7" @@ -2366,7 +2379,7 @@ fill-range@^7.0.1: filter-obj@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/filter-obj/-/filter-obj-1.1.0.tgz#9b311112bc6c6127a16e016c6c5d7f19e0805c5b" - integrity sha1-mzERErxsYSehbgFsbF1/GeCAXFs= + integrity sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ== find-up@^5.0.0: version "5.0.0" @@ -2381,17 +2394,17 @@ flat@^5.0.0, flat@^5.0.2: resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== -focus-trap@^6.9.2: - version "6.9.2" - resolved "https://registry.yarnpkg.com/focus-trap/-/focus-trap-6.9.2.tgz#a9ef72847869bd2cbf62cb930aaf8e138fef1ca9" - integrity sha512-gBEuXOPNOKPrLdZpMFUSTyIo1eT2NSZRrwZ9r/0Jqw5tmT3Yvxfmu8KBHw8xW2XQkw6E/JoG+OlEq7UDtSUNgw== +focus-trap@^6.9.4: + version "6.9.4" + resolved "https://registry.yarnpkg.com/focus-trap/-/focus-trap-6.9.4.tgz#436da1a1d935c48b97da63cd8f361c6f3aa16444" + integrity sha512-v2NTsZe2FF59Y+sDykKY+XjqZ0cPfhq/hikWVL88BqLivnNiEffAsac6rP6H45ff9wG9LL5ToiDqrLEP9GX9mw== dependencies: - tabbable "^5.3.2" + tabbable "^5.3.3" follow-redirects@^1.0.0: - version "1.15.0" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.0.tgz#06441868281c86d0dda4ad8bdaead2d02dca89d4" - integrity sha512-aExlJShTV4qOUOL7yF1U5tvLCB0xQuudbf6toyYA0E/acBNw71mvjFTnLaRp50aQaYocMR0a/RMMBIHeZnGyjQ== + version "1.15.1" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.1.tgz#0ca6a452306c9b276e4d3127483e29575e207ad5" + integrity sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA== formdata-polyfill@^4.0.10: version "4.0.10" @@ -2408,7 +2421,7 @@ fraction.js@^4.2.0: fresh@0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= + integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== fs-constants@^1.0.0: version "1.0.0" @@ -2446,7 +2459,7 @@ fs-minipass@^2.0.0: fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== fsevents@~2.3.2: version "2.3.2" @@ -2476,7 +2489,7 @@ gauge@^3.0.0: gauge@~2.7.3: version "2.7.4" resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" - integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= + integrity sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg== dependencies: aproba "^1.0.3" console-control-strings "^1.0.0" @@ -2498,13 +2511,13 @@ get-caller-file@^2.0.5: integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== get-intrinsic@^1.0.2: - version "1.1.1" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" - integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== + version "1.1.2" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.2.tgz#336975123e05ad0b7ba41f152ee4aadbea6cf598" + integrity sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA== dependencies: function-bind "^1.1.1" has "^1.0.3" - has-symbols "^1.0.1" + has-symbols "^1.0.3" get-port-please@^2.5.0: version "2.5.0" @@ -2546,7 +2559,7 @@ github-slugger@^1.1.1: gittar@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/gittar/-/gittar-0.1.1.tgz#d6993ea6160a86c8b7f3de722a61f73bc99e14b4" - integrity sha1-1pk+phYKhsi3895yKmH3O8meFLQ= + integrity sha512-p+XuqWJpW9ahUuNTptqeFjudFq31o6Jd+maMBarkMAR5U3K9c7zJB4sQ4BV8mIqrTOV29TtqikDhnZfCD4XNfQ== dependencies: mkdirp "^0.5.1" tar "^4.4.1" @@ -2575,10 +2588,10 @@ globals@^11.1.0: resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== -globby@^13.1.1: - version "13.1.1" - resolved "https://registry.yarnpkg.com/globby/-/globby-13.1.1.tgz#7c44a93869b0b7612e38f22ed532bfe37b25ea6f" - integrity sha512-XMzoDZbGZ37tufiv7g0N4F/zp3zkwdFtVbV3EHsVl1KQr4RPLfNoT068/97RPshz2J5xYNEjLKKBKaGHifBd3Q== +globby@^13.1.1, globby@^13.1.2: + version "13.1.2" + resolved "https://registry.yarnpkg.com/globby/-/globby-13.1.2.tgz#29047105582427ab6eca4f905200667b056da515" + integrity sha512-LKSDZXToac40u8Q1PQtZihbNdTYSNMuWe+K5l+oa6KgDzSvVrHXlJy40hUP522RjAIoNLJYBJi7ow+rbFpIhHQ== dependencies: dir-glob "^3.0.1" fast-glob "^3.2.11" @@ -2605,27 +2618,27 @@ gzip-size@^7.0.0: dependencies: duplexer "^0.1.2" -h3@^0.7.6, h3@^0.7.8: - version "0.7.8" - resolved "https://registry.yarnpkg.com/h3/-/h3-0.7.8.tgz#98aab2b1128e0f4edf4515d1477e6389230d1388" - integrity sha512-E5hqrzQvQEYVE4h579pLb9gipHagQVZIMP2v83vSKxa40b7ctG1zNylXtW57BT3BGNVeQTccl6vIwyVK1L6lLw== +h3@^0.7.10, h3@^0.7.9: + version "0.7.10" + resolved "https://registry.yarnpkg.com/h3/-/h3-0.7.10.tgz#3847534e441d5d59c8ae3678a5faf1a332b0ba77" + integrity sha512-HcUQxlOocG2uf6PQLu3Bxk0KSXcTuxSF6kRclFBDO7y74Ml0wCwTvmoN5zmrzoxbNHecDNUrcGr8qSNGcOqAHQ== dependencies: cookie-es "^0.5.0" destr "^1.1.1" radix3 "^0.1.2" - ufo "^0.8.3" + ufo "^0.8.4" has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== has-flag@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has-symbols@^1.0.1: +has-symbols@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== @@ -2633,7 +2646,7 @@ has-symbols@^1.0.1: has-unicode@^2.0.0, has-unicode@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" - integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= + integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ== has@^1.0.3: version "1.0.3" @@ -2828,7 +2841,7 @@ ignore@^5.2.0: inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== dependencies: once "^1.3.0" wrappy "1" @@ -2869,10 +2882,10 @@ inquirer@^8.2.2: through "^2.3.6" wrap-ansi "^7.0.0" -ioredis@^5.0.4: - version "5.0.5" - resolved "https://registry.yarnpkg.com/ioredis/-/ioredis-5.0.5.tgz#94e51284631b30e15b359cd17de59c48945230fb" - integrity sha512-H+u9YB/cBckDO5lt5+S34gGN1EuIBjjaXk31LivQWfX3G1cqZPYCiwF9qCOkqK2NsKVk+saoUN+fLBz5tc2gFw== +ioredis@^5.0.6: + version "5.1.0" + resolved "https://registry.yarnpkg.com/ioredis/-/ioredis-5.1.0.tgz#17bc0bc40f164ef26910ca6e56981c2a9bfdf57e" + integrity sha512-HYHnvwxFwefeUBj0hZFejLvd8Q/YNAfnZlZG/hSRxkRhXMs1H8soMEVccHd1WlLrKkynorXBsAtqDGskOdAfVQ== dependencies: "@ioredis/commands" "^1.1.1" cluster-key-slot "^1.1.0" @@ -2921,7 +2934,7 @@ is-builtin-module@^3.1.0: dependencies: builtin-modules "^3.0.0" -is-core-module@^2.8.1: +is-core-module@^2.9.0: version "2.9.0" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.9.0.tgz#e1c34429cd51c6dd9e09e0799e396e27b19a9c69" integrity sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A== @@ -2946,12 +2959,12 @@ is-docker@^3.0.0: is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== is-fullwidth-code-point@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" - integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= + integrity sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw== dependencies: number-is-nan "^1.0.0" @@ -2980,7 +2993,7 @@ is-interactive@^1.0.0: is-module@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" - integrity sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE= + integrity sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g== is-number@^7.0.0: version "7.0.0" @@ -2988,9 +3001,9 @@ is-number@^7.0.0: integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== is-plain-obj@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-4.0.0.tgz#06c0999fd7574edf5a906ba5644ad0feb3a84d22" - integrity sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw== + version "4.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-4.1.0.tgz#d65025edec3657ce032fd7db63c97883eaed71f0" + integrity sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg== is-primitive@^3.0.1: version "3.0.1" @@ -3010,11 +3023,11 @@ is-reference@^1.2.1: "@types/estree" "*" is-ssh@^1.3.0: - version "1.3.3" - resolved "https://registry.yarnpkg.com/is-ssh/-/is-ssh-1.3.3.tgz#7f133285ccd7f2c2c7fc897b771b53d95a2b2c7e" - integrity sha512-NKzJmQzJfEEma3w5cJNcUMxoXfDjz0Zj0eyCalHn2E6VOwlzjZo0yuO2fcBSf8zhFuVCL/82/r5gRcoi6aEPVQ== + version "1.4.0" + resolved "https://registry.yarnpkg.com/is-ssh/-/is-ssh-1.4.0.tgz#4f8220601d2839d8fa624b3106f8e8884f01b8b2" + integrity sha512-x7+VxdxOdlV3CYpjvRLBv5Lo9OJerlYanjwFrPR9fuGPjCiNiCzFgAWpiLAohSbsnH4ZAys3SBh+hq5rJosxUQ== dependencies: - protocols "^1.1.0" + protocols "^2.0.1" is-stream@^2.0.0: version "2.0.1" @@ -3029,7 +3042,7 @@ is-unicode-supported@^0.1.0: is-utf8@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" - integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= + integrity sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q== is-wsl@^2.2.0: version "2.2.0" @@ -3041,12 +3054,12 @@ is-wsl@^2.2.0: isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== jest-worker@^26.2.1: version "26.6.2" @@ -3057,10 +3070,10 @@ jest-worker@^26.2.1: merge-stream "^2.0.0" supports-color "^7.0.0" -jiti@^1.12.14, jiti@^1.13.0: - version "1.13.0" - resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.13.0.tgz#3cdfc4e651ca0cca4c62ed5e47747b5841d41a8e" - integrity sha512-/n9mNxZj/HDSrincJ6RP+L+yXbpnB8FybySBa+IjIaoH9FIxBbrbRT5XUbe8R7zuVM2AQqNMNDDqz0bzx3znOQ== +jiti@^1.12.14, jiti@^1.13.0, jiti@^1.14.0: + version "1.14.0" + resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.14.0.tgz#5350fff532a4d891ca4bcd700c47c1f40e6ee326" + integrity sha512-4IwstlaKQc9vCTC+qUXLM1hajy2ImiL9KnLvVYiaHOtS/v3wRjhLlGl121AmgDgx/O43uKmxownJghS5XMya2A== js-tokens@^4.0.0: version "4.0.0" @@ -3104,19 +3117,19 @@ jsonfile@^6.0.1: graceful-fs "^4.1.6" kleur@^4.0.3: - version "4.1.4" - resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.4.tgz#8c202987d7e577766d039a8cd461934c01cda04d" - integrity sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA== + version "4.1.5" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.5.tgz#95106101795f7050c6c650f350c683febddb1780" + integrity sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ== klona@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.5.tgz#d166574d90076395d9963aa7a928fabb8d76afbc" integrity sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ== -knitwork@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/knitwork/-/knitwork-0.1.1.tgz#8f3d3a14fd5e81b68149c4b69ae4d5e551cfdb72" - integrity sha512-DxjuhTzCDeXjAcsQuqoZhTFF/wqvaVH2YA7QRhBRpsSeaL44S93hDxyvoluApwk3wjMdia7dc9J0Sj9MHD8rxg== +knitwork@^0.1.1, knitwork@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/knitwork/-/knitwork-0.1.2.tgz#5447a81d8eaede57d236f864ec29b8dc2bc192bf" + integrity sha512-2ekmY2S/VB3YGVhrIFadyJQpkjMFSf48tsXCnA+kjs4FEQIT+5FLyOF0No/X58z/2E/VaMyeJfukRoVT4gMsfQ== kolorist@^1.5.1: version "1.5.1" @@ -3135,10 +3148,10 @@ lilconfig@^2.0.3: resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.5.tgz#19e57fd06ccc3848fd1891655b5a447092225b25" integrity sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg== -listhen@^0.2.11: - version "0.2.11" - resolved "https://registry.yarnpkg.com/listhen/-/listhen-0.2.11.tgz#86822ba2990828d95d54d2970d1bd52d6431f7c8" - integrity sha512-AJPi6PByg78TEvmB9XWB15Cgv00MXDT0BWF+8LVFozbF9qLbOPjXXfwxkYIAmGjPOAAsPzBMEYytj7RSBhkaeg== +listhen@^0.2.12, listhen@^0.2.13: + version "0.2.13" + resolved "https://registry.yarnpkg.com/listhen/-/listhen-0.2.13.tgz#bd34338fe04ff9f3f08e4f83a46eefc9104b2482" + integrity sha512-axfyPgsrypKohOglPjzMVj+6nSQuDfdDzq92tYEg4HO+YkvvMGz0bGeoGA+pdEC7a8gbIgLduf/62Pkk1a9jMQ== dependencies: clipboardy "^3.0.0" colorette "^2.0.16" @@ -3146,6 +3159,7 @@ listhen@^0.2.11: get-port-please "^2.5.0" http-shutdown "^1.2.2" selfsigned "^2.0.1" + ufo "^0.8.4" local-pkg@^0.4.1: version "0.4.1" @@ -3162,52 +3176,47 @@ locate-path@^6.0.0: lodash._reinterpolate@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" - integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0= + integrity sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA== lodash.debounce@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" - integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= + integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== lodash.defaults@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" - integrity sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw= + integrity sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ== lodash.difference@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.difference/-/lodash.difference-4.5.0.tgz#9ccb4e505d486b91651345772885a2df27fd017c" - integrity sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw= + integrity sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA== lodash.flatten@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" - integrity sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8= + integrity sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g== lodash.isarguments@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" - integrity sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo= + integrity sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg== lodash.isplainobject@^4.0.6: version "4.0.6" resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" - integrity sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs= + integrity sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA== lodash.memoize@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" - integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= + integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== lodash.pick@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" - integrity sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM= - -lodash.sortby@^4.7.0: - version "4.7.0" - resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" - integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= + integrity sha512-hXt6Ul/5yWjfklSGvLQl8vM//l3FtyHZeuelpzK6mm99pNvN9yTDruNZPEJZD1oWrqo+izBmB7oUfWgcCX7s4Q== lodash.template@^4.5.0: version "4.5.0" @@ -3227,17 +3236,17 @@ lodash.templatesettings@^4.0.0: lodash.truncate@^4.4.2: version "4.4.2" resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" - integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM= + integrity sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw== lodash.union@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/lodash.union/-/lodash.union-4.6.0.tgz#48bb5088409f16f1821666641c44dd1aaae3cd88" - integrity sha1-SLtQiECfFvGCFmZkHETdGqrjzYg= + integrity sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw== lodash.uniq@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" - integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= + integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== lodash@^4.17.21, lodash@^4.17.3: version "4.17.21" @@ -3299,13 +3308,13 @@ mdast-squeeze-paragraphs@^5.0.0: unist-util-remove "^3.0.0" mdast-util-definitions@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/mdast-util-definitions/-/mdast-util-definitions-5.1.0.tgz#b6d10ef00a3c4cf191e8d9a5fa58d7f4a366f817" - integrity sha512-5hcR7FL2EuZ4q6lLMUK5w4lHT2H3vqL9quPvYZ/Ku5iifrirfMHiGdhxdXMUbUkDmz5I+TYMd7nbaxUhbQkfpQ== + version "5.1.1" + resolved "https://registry.yarnpkg.com/mdast-util-definitions/-/mdast-util-definitions-5.1.1.tgz#2c1d684b28e53f84938bb06317944bee8efa79db" + integrity sha512-rQ+Gv7mHttxHOBx2dkF4HWTg+EE+UR78ptQWDylzPKaQuVGdG4HIoY3SrS/pCp80nZ04greFvXbVFHT+uf0JVQ== dependencies: "@types/mdast" "^3.0.0" "@types/unist" "^2.0.0" - unist-util-visit "^3.0.0" + unist-util-visit "^4.0.0" mdast-util-find-and-replace@^2.0.0: version "2.2.0" @@ -3438,7 +3447,7 @@ mdn-data@2.0.27: mdurl@^1.0.0, mdurl@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" - integrity sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4= + integrity sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g== memory-fs@^0.5.0: version "0.5.0" @@ -3663,9 +3672,9 @@ micromark-util-encode@^1.0.0: integrity sha512-U2s5YdnAYexjKDel31SVMPbfi+eF8y1U4pfiRW/Y8EFVCy/vgxk/2wWTxzcqE71LHtCuCzlBDRU2a5CQ5j+mQA== micromark-util-html-tag-name@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.0.0.tgz#75737e92fef50af0c6212bd309bc5cb8dbd489ed" - integrity sha512-NenEKIshW2ZI/ERv9HtFNsrn3llSPZtY337LID/24WeLqMzeZhBEE6BQ0vS2ZBjshm5n40chKtJ3qjAbVV8S0g== + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.1.0.tgz#eb227118befd51f48858e879b7a419fc0df20497" + integrity sha512-BKlClMmYROy9UiV03SwNmckkjn8QHVaWkqoAqzivabvdGcwNGMMMH/5szAnywmsTBUzDsU57/mFi0sp4BQO6dA== micromark-util-normalize-identifier@^1.0.0: version "1.0.0" @@ -3789,9 +3798,9 @@ minipass@^2.6.0, minipass@^2.9.0: yallist "^3.0.0" minipass@^3.0.0: - version "3.1.6" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.6.tgz#3b8150aa688a711a1521af5e8779c1d3bb4f45ee" - integrity sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ== + version "3.3.3" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.3.tgz#fd1f0e6c06449c10dadda72618b59c00f3d6378d" + integrity sha512-N0BOsdFAlNRfmwMhjAsLVWOk7Ljmeb39iqFlsV1At+jqRhSUP9yeof8FyJu4imaJiSUp8vQebWD/guZwGQC8iA== dependencies: yallist "^4.0.0" @@ -3822,15 +3831,10 @@ mkdirp@^1.0.3: resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== -mlly@^0.3.6: - version "0.3.19" - resolved "https://registry.yarnpkg.com/mlly/-/mlly-0.3.19.tgz#a4aac171d2142eafc9c9d4c1937dac5a11f70565" - integrity sha512-zMq5n3cOf4fOzA4WoeulxagbAgMChdev3MgP6K51k7M0u2whTXxupfIY4VVzws4vxkiWhwH1rVQcsw7zDGfRhA== - -mlly@^0.5.1, mlly@^0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/mlly/-/mlly-0.5.2.tgz#67b908e967cfcaee27e90bef8a84aaede599bd21" - integrity sha512-4GTELSSErv6ZZJYU98fZNuIBJcXSz+ktHdRrCYEqU1m6ZlebOCG0jwZ+IEd9vOrbpYsVBBMC5OTrEyLnKRcauQ== +mlly@^0.5.1, mlly@^0.5.2, mlly@^0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/mlly/-/mlly-0.5.3.tgz#8a613b6273886490a5f462ce18fa486492cf053b" + integrity sha512-im69tuLD9EJh9fc9TZRpJEFvsBcGMez7glUCWDcHWWCKzhvPmNvyaYjp/+h0qJJN/Xovrs//GzGjOOKmFw4Gog== dependencies: pathe "^0.2.0" pkg-types "^0.3.2" @@ -3841,14 +3845,14 @@ mri@^1.1.0, mri@^1.2.0: integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA== mrmime@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/mrmime/-/mrmime-1.0.0.tgz#14d387f0585a5233d291baba339b063752a2398b" - integrity sha512-a70zx7zFfVO7XpnQ2IX1Myh9yY4UYvfld/dikWRnsXxbyvMcfz+u6UfgNAtH+k2QqtJuzVpv6eLTx1G2+WKZbQ== + version "1.0.1" + resolved "https://registry.yarnpkg.com/mrmime/-/mrmime-1.0.1.tgz#5f90c825fad4bdd41dc914eff5d1a8cfdaf24f27" + integrity sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw== ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== ms@2.1.2: version "2.1.2" @@ -3879,10 +3883,10 @@ needle@^2.2.1: iconv-lite "^0.4.4" sax "^1.2.4" -nitropack@^0.4.4: - version "0.4.4" - resolved "https://registry.yarnpkg.com/nitropack/-/nitropack-0.4.4.tgz#9bec71273595613dfecef7554a109ab03e79e39b" - integrity sha512-nK6UkSvAHvtx9sSLntirQgU5wJB49BIwJXf+kNbkHrA7cxFNZG11GH1v+vzkMSDKfBPWvVMewEkOGfIGXDpH9g== +nitropack@^0.4.8: + version "0.4.8" + resolved "https://registry.yarnpkg.com/nitropack/-/nitropack-0.4.8.tgz#39640ae1c9730816393ce769f4448fcf9a22cb10" + integrity sha512-vqNfPrk5YCR5+d3+4jWONChmlhlfxOM2J0K/VqogsGdJd6YCcs+2rp/1+348SherX9XZZePb2yAljgwNTfgiNQ== dependencies: "@cloudflare/kv-asset-handler" "^0.2.0" "@netlify/functions" "^1.0.0" @@ -3895,7 +3899,7 @@ nitropack@^0.4.4: "@rollup/plugin-wasm" "^5.2.0" "@rollup/pluginutils" "^4.2.1" "@types/jsdom" "^16.2.14" - "@vercel/nft" "^0.18.2" + "@vercel/nft" "^0.20.0" archiver "^5.3.1" c12 "^0.2.7" chalk "^5.0.1" @@ -3905,30 +3909,31 @@ nitropack@^0.4.4: defu "^6.0.0" destr "^1.1.1" dot-prop "^7.2.0" - esbuild "^0.14.38" + esbuild "^0.14.43" + escape-string-regexp "^5.0.0" etag "^1.8.1" fs-extra "^10.1.0" - globby "^13.1.1" + globby "^13.1.2" gzip-size "^7.0.0" - h3 "^0.7.8" + h3 "^0.7.9" hookable "^5.1.1" http-proxy "^1.18.1" is-primitive "^3.0.1" jiti "^1.13.0" klona "^2.0.5" - listhen "^0.2.11" + listhen "^0.2.12" mime "^3.0.0" mlly "^0.5.2" mri "^1.2.0" - node-fetch-native "^0.1.2" + node-fetch-native "^0.1.3" ohash "^0.1.0" - ohmyfetch "^0.4.16" + ohmyfetch "^0.4.18" pathe "^0.3.0" perfect-debounce "^0.1.3" pkg-types "^0.3.2" pretty-bytes "^6.0.0" radix3 "^0.1.2" - rollup "^2.72.1" + rollup "^2.75.6" rollup-plugin-terser "^7.0.2" rollup-plugin-visualizer "^5.6.0" scule "^0.2.1" @@ -3940,8 +3945,8 @@ nitropack@^0.4.4: table "^6.8.0" ufo "^0.8.4" unenv "^0.5.2" - unimport "^0.2.1" - unstorage "^0.4.1" + unimport "^0.2.8" + unstorage "^0.5.0" node-domexception@^1.0.0: version "1.0.0" @@ -3956,9 +3961,9 @@ node-emoji@^1.11.0: lodash "^4.17.21" node-fetch-native@^0.1.2, node-fetch-native@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/node-fetch-native/-/node-fetch-native-0.1.3.tgz#61a4e4250d7aa6e272cacdbaa979ea916bff321a" - integrity sha512-Jf1IQZdovUIv9E+5avmN6Sf+bND+rnMlODnBQhdE2VRyuWP9WgqZb/KEgPekh19DAN1X2C4vbS1VCOaz2OH19g== + version "0.1.4" + resolved "https://registry.yarnpkg.com/node-fetch-native/-/node-fetch-native-0.1.4.tgz#09b06754f9e298bac23848050da2352125634f89" + integrity sha512-10EKpOCQPXwZVFh3U1ptOMWBgKTbsN7Vvo6WVKt5pw4hp8zbv6ZVBZPlXw+5M6Tyi1oc1iD4/sNPd71KYA16tQ== node-fetch@^2.6.7: version "2.6.7" @@ -3968,9 +3973,9 @@ node-fetch@^2.6.7: whatwg-url "^5.0.0" node-fetch@^3.2.3: - version "3.2.4" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-3.2.4.tgz#3fbca2d8838111048232de54cb532bd3cf134947" - integrity sha512-WvYJRN7mMyOLurFR2YpysQGuwYrJN+qrrpHjJDuKMcSPdfFccRUla/kng2mz6HWSBxJcqPbvatS6Gb4RhOzCJw== + version "3.2.6" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-3.2.6.tgz#6d4627181697a9d9674aae0d61548e0d629b31b9" + integrity sha512-LAy/HZnLADOVkVPubaxHDft29booGglPFDr2Hw0J1AercRh01UiVFm++KMDnJeH9sHgNB4hsXPii7Sgym/sTbw== dependencies: data-uri-to-buffer "^4.0.0" fetch-blob "^3.1.4" @@ -4002,10 +4007,10 @@ node-pre-gyp@^0.13.0: semver "^5.3.0" tar "^4" -node-releases@^2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.4.tgz#f38252370c43854dc48aa431c766c6c398f40476" - integrity sha512-gbMzqQtTtDz/00jQzZ21PQzdI9PyLYqUSvD0p3naOhX4odFji0ZxYdnVwPTxmSwkmxhcFImpozceidSG+AgoPQ== +node-releases@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.5.tgz#280ed5bc3eba0d96ce44897d8aee478bfb3d9666" + integrity sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q== nopt@^4.0.1: version "4.0.3" @@ -4030,7 +4035,7 @@ normalize-path@^3.0.0, normalize-path@~3.0.0: normalize-range@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" - integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= + integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== normalize-url@^6.0.1, normalize-url@^6.1.0: version "6.1.0" @@ -4095,28 +4100,28 @@ nth-check@^2.0.1: number-is-nan@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" - integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= + integrity sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ== -"nuxi@npm:nuxi-edge@3.0.0-rc.3-27550969.a4a3cff": - version "3.0.0-rc.3-27550969.a4a3cff" - resolved "https://registry.yarnpkg.com/nuxi-edge/-/nuxi-edge-3.0.0-rc.3-27550969.a4a3cff.tgz#be8a19f6412fdd5495167e23913ec0e1ca6347a7" - integrity sha512-1KPUqgoqnZTY2agFTn5rUtjalWb/ClBUBNXRg78qcU8QbowMy+bgV2oW/INILsbkUJogahCvUN2ayVUayvPPlQ== +"nuxi@npm:nuxi-edge@3.0.0-rc.4-27605536.8c2c80e": + version "3.0.0-rc.4-27605536.8c2c80e" + resolved "https://registry.yarnpkg.com/nuxi-edge/-/nuxi-edge-3.0.0-rc.4-27605536.8c2c80e.tgz#fae17636d76df2a3f4d72bad4a909b3293909e41" + integrity sha512-z2+uUI5DeG3/OT+MN14kLIty+XMBYe2vj+33pMBC7dtv04akN7eYD9LEclqg5BdDc+SgOMZ+g3KKEvl9mQdT1Q== optionalDependencies: fsevents "~2.3.2" "nuxt@npm:nuxt3@latest": - version "3.0.0-rc.3-27550969.a4a3cff" - resolved "https://registry.yarnpkg.com/nuxt3/-/nuxt3-3.0.0-rc.3-27550969.a4a3cff.tgz#9faa32efdd9e24a30b602d3f2be44b544ff6ab7f" - integrity sha512-sxwtqIaKthjiipOyUuDrUYN0x5ac+9w2ItyH8VScZcX48ocIoQ2c9PxjD6yMgq/obBw0/3GZ0KIw+bUKn+2PUg== + version "3.0.0-rc.4-27605536.8c2c80e" + resolved "https://registry.yarnpkg.com/nuxt3/-/nuxt3-3.0.0-rc.4-27605536.8c2c80e.tgz#e6a5cdddcead46099862776354f8d15babd710dc" + integrity sha512-/flVMCyPraeozADNbPsOlJfjOUGlUXdPO4eycCyw6uQHz/RQBDfKDS2RGHa6g51Ef5h7bJWhnNc/o1zCgWzedQ== dependencies: "@nuxt/devalue" "^2.0.0" - "@nuxt/kit" "npm:@nuxt/kit-edge@3.0.0-rc.3-27550969.a4a3cff" - "@nuxt/schema" "npm:@nuxt/schema-edge@3.0.0-rc.3-27550969.a4a3cff" + "@nuxt/kit" "npm:@nuxt/kit-edge@3.0.0-rc.4-27605536.8c2c80e" + "@nuxt/schema" "npm:@nuxt/schema-edge@3.0.0-rc.4-27605536.8c2c80e" "@nuxt/telemetry" "^2.1.3" "@nuxt/ui-templates" "^0.1.1" - "@nuxt/vite-builder" "npm:@nuxt/vite-builder-edge@3.0.0-rc.3-27550969.a4a3cff" - "@vue/reactivity" "^3.2.34" - "@vue/shared" "^3.2.34" + "@nuxt/vite-builder" "npm:@nuxt/vite-builder-edge@3.0.0-rc.4-27605536.8c2c80e" + "@vue/reactivity" "^3.2.37" + "@vue/shared" "^3.2.37" "@vueuse/head" "^0.7.6" chokidar "^3.5.3" cookie-es "^0.5.0" @@ -4124,15 +4129,15 @@ number-is-nan@^1.0.0: destr "^1.1.1" escape-string-regexp "^5.0.0" fs-extra "^10.1.0" - globby "^13.1.1" - h3 "^0.7.8" + globby "^13.1.2" + h3 "^0.7.10" hash-sum "^2.0.0" hookable "^5.1.1" - knitwork "^0.1.1" + knitwork "^0.1.2" magic-string "^0.26.2" - mlly "^0.5.2" - nitropack "^0.4.4" - nuxi "npm:nuxi-edge@3.0.0-rc.3-27550969.a4a3cff" + mlly "^0.5.3" + nitropack "^0.4.8" + nuxi "npm:nuxi-edge@3.0.0-rc.4-27605536.8c2c80e" ohash "^0.1.0" ohmyfetch "^0.4.18" pathe "^0.3.0" @@ -4141,29 +4146,29 @@ number-is-nan@^1.0.0: ufo "^0.8.4" unctx "^1.1.4" unenv "^0.5.2" - unimport "^0.2.1" - unplugin "^0.6.3" + unimport "^0.3.0" + unplugin "^0.7.0" untyped "^0.4.4" - vue "^3.2.34" - vue-bundle-renderer "^0.3.8" - vue-router "^4.0.15" + vue "^3.2.37" + vue-bundle-renderer "^0.3.9" + vue-router "^4.0.16" object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== object-inspect@^1.9.0: - version "1.12.1" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.1.tgz#28a661153bad7e470e4b01479ef1cb91ce511191" - integrity sha512-Y/jF6vnvEtOPGiKD1+q+X0CiUYRQtEHp89MLLUJ7TUivtH8Ugn2+3A7Rynqk7BRsAoqeOQWnFnjpDrKSxDgIGA== + version "1.12.2" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" + integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== ohash@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/ohash/-/ohash-0.1.0.tgz#cde74db91cfb7259477a93e0959221c4e20a5881" integrity sha512-KvclyhWseX6F2UTEEp9Qzybb0LTGorTSVufAToV5tR2B6Q64rVhKhkcU/o+mBaiqGa5+PdobtfSVelp8VOCR6A== -ohmyfetch@^0.4.15, ohmyfetch@^0.4.16, ohmyfetch@^0.4.17, ohmyfetch@^0.4.18: +ohmyfetch@^0.4.15, ohmyfetch@^0.4.18: version "0.4.18" resolved "https://registry.yarnpkg.com/ohmyfetch/-/ohmyfetch-0.4.18.tgz#2952e04bd52662d0618d3d2f344db0250c3eeac2" integrity sha512-MslzNrQzBLtZHmiZBI8QMOcMpdNFlK61OJ34nFNFynZ4v+4BonfCQ7VIN4EGXvGGq5zhDzgdJoY3o9S1l2T7KQ== @@ -4183,7 +4188,7 @@ on-finished@2.4.1: once@^1.3.0, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== dependencies: wrappy "1" @@ -4221,12 +4226,12 @@ ora@^5.4.1: os-homedir@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" - integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= + integrity sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ== os-tmpdir@^1.0.0, os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= + integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== osenv@^0.1.4: version "0.1.5" @@ -4272,10 +4277,10 @@ parse-git-config@^3.0.0: git-config-path "^2.0.0" ini "^1.3.5" -parse-path@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/parse-path/-/parse-path-4.0.3.tgz#82d81ec3e071dcc4ab49aa9f2c9c0b8966bb22bf" - integrity sha512-9Cepbp2asKnWTJ9x2kpw6Fe8y9JDbqwahGCTvklzd/cEq5C5JC59x2Xb0Kx+x0QZ8bvNquGO8/BWP0cwBHzSAA== +parse-path@^4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/parse-path/-/parse-path-4.0.4.tgz#4bf424e6b743fb080831f03b536af9fc43f0ffea" + integrity sha512-Z2lWUis7jlmXC1jeOG9giRO2+FsuyNipeQ43HAjqAZjwSe3SEf+q/84FGPHoso3kyntbxa4c4i77t3m6fGf8cw== dependencies: is-ssh "^1.3.0" protocols "^1.4.0" @@ -4283,13 +4288,13 @@ parse-path@^4.0.0: query-string "^6.13.8" parse-url@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/parse-url/-/parse-url-6.0.0.tgz#f5dd262a7de9ec00914939220410b66cff09107d" - integrity sha512-cYyojeX7yIIwuJzledIHeLUBVJ6COVLeT4eF+2P6aKVzwvgKQPndCBv3+yQ7pcWjqToYwaligxzSYNNmGoMAvw== + version "6.0.2" + resolved "https://registry.yarnpkg.com/parse-url/-/parse-url-6.0.2.tgz#4a30b057bfc452af64512dfb1a7755c103db3ea1" + integrity sha512-uCSjOvD3T+6B/sPWhR+QowAZcU/o4bjPrVBQBGFxcDF6J6FraCGIaDBsdoQawiaaAVdHvtqBe3w3vKlfBKySOQ== dependencies: is-ssh "^1.3.0" normalize-url "^6.1.0" - parse-path "^4.0.0" + parse-path "^4.0.4" protocols "^1.4.0" parse5@^6.0.0: @@ -4310,7 +4315,7 @@ path-exists@^4.0.0: path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== path-key@^3.0.0, path-key@^3.1.0: version "3.1.1" @@ -4333,9 +4338,9 @@ pathe@^0.2.0: integrity sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw== pathe@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/pathe/-/pathe-0.3.0.tgz#fd95bc16208263fa6dc1c78c07b3907a528de6eb" - integrity sha512-3vUjp552BJzCw9vqKsO5sttHkbYqqsZtH0x1PNtItgqx8BXEXzoY1SYRKcL6BTyVh4lGJGLj0tM42elUDMvcYA== + version "0.3.1" + resolved "https://registry.yarnpkg.com/pathe/-/pathe-0.3.1.tgz#e0e47bc0e8a1775fd001e2fdbf67d7f649a4a4f4" + integrity sha512-cKMVe/pikPpreoODbjoliSk0cIT66JjEOWN30akc9WTo8kUjxFPYqmXvMBVPMSAJGJlx6v/nYzqSSHkp1cfezQ== perfect-debounce@^0.1.3: version "0.1.3" @@ -4355,16 +4360,16 @@ picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.3.1: pify@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" - integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= + integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== -pkg-types@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/pkg-types/-/pkg-types-0.3.2.tgz#1b3244b561745591035517475bc8af9c5e089e47" - integrity sha512-eBYzX/7NYsQEOR2alWY4rnQB49G62oHzFpoi9Som56aUr8vB8UGcmcIia9v8fpBeuhH3Ltentuk2OGpp4IQV3Q== +pkg-types@^0.3.2, pkg-types@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/pkg-types/-/pkg-types-0.3.3.tgz#3c25e45274e1c586ec7811dcc3449afde846e463" + integrity sha512-6AJcCMnjUQPQv/Wk960w0TOmjhdjbeaQJoSKWRQv9N3rgkessCu6J0Ydsog/nw1MbpnxHuPzYbfOn2KmlZO1FA== dependencies: jsonc-parser "^3.0.0" - mlly "^0.3.6" - pathe "^0.2.0" + mlly "^0.5.3" + pathe "^0.3.0" postcss-calc@^8.2.3: version "8.2.4" @@ -4384,18 +4389,18 @@ postcss-colormin@^5.3.0: colord "^2.9.1" postcss-value-parser "^4.2.0" -postcss-convert-values@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-5.1.1.tgz#31c8ffba650e86dc750631cafcf1db022c5bb6f1" - integrity sha512-UjcYfl3wJJdcabGKk8lgetPvhi1Et7VDc3sYr9EyhNBeB00YD4vHgPBp+oMVoG/dDWCc6ASbmzPNV6jADTwh8Q== +postcss-convert-values@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-5.1.2.tgz#31586df4e184c2e8890e8b34a0b9355313f503ab" + integrity sha512-c6Hzc4GAv95B7suy4udszX9Zy4ETyMCgFPUDtWjdFTKH1SE9eFY/jEpHSwTH1QPuwxHpWslhckUQWbNRM4ho5g== dependencies: browserslist "^4.20.3" postcss-value-parser "^4.2.0" -postcss-discard-comments@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-5.1.1.tgz#e90019e1a0e5b99de05f63516ce640bd0df3d369" - integrity sha512-5JscyFmvkUxz/5/+TB3QTTT9Gi9jHkcn8dcmmuN68JQcv3aQg4y88yEHHhwFB52l/NkaJ43O0dbksGMAo49nfQ== +postcss-discard-comments@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz#8df5e81d2925af2780075840c1526f0660e53696" + integrity sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ== postcss-discard-duplicates@^5.1.0: version "5.1.0" @@ -4428,18 +4433,18 @@ postcss-import@^14.1.0: read-cache "^1.0.0" resolve "^1.1.7" -postcss-merge-longhand@^5.1.5: - version "5.1.5" - resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-5.1.5.tgz#b0e03bee3b964336f5f33c4fc8eacae608e91c05" - integrity sha512-NOG1grw9wIO+60arKa2YYsrbgvP6tp+jqc7+ZD5/MalIw234ooH2C6KlR6FEn4yle7GqZoBxSK1mLBE9KPur6w== +postcss-merge-longhand@^5.1.6: + version "5.1.6" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-5.1.6.tgz#f378a8a7e55766b7b644f48e5d8c789ed7ed51ce" + integrity sha512-6C/UGF/3T5OE2CEbOuX7iNO63dnvqhGZeUnKkDeifebY0XqkkvrctYSZurpNE902LDf2yKwwPFgotnfSoPhQiw== dependencies: postcss-value-parser "^4.2.0" stylehacks "^5.1.0" -postcss-merge-rules@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-5.1.1.tgz#d327b221cd07540bcc8d9ff84446d8b404d00162" - integrity sha512-8wv8q2cXjEuCcgpIB1Xx1pIy8/rhMPIQqYKNzEdyx37m6gpq83mQQdCxgIkFgliyEnKvdwJf/C61vN4tQDq4Ww== +postcss-merge-rules@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-5.1.2.tgz#7049a14d4211045412116d79b751def4484473a5" + integrity sha512-zKMUlnw+zYCWoPN6yhPjtcEdlJaMUZ0WyVcxTAmw3lkkN/NDMRkOkiuctQEoWAOvH7twaxUUdvBWl0d4+hifRQ== dependencies: browserslist "^4.16.6" caniuse-api "^3.0.0" @@ -4471,10 +4476,10 @@ postcss-minify-params@^5.1.3: cssnano-utils "^3.1.0" postcss-value-parser "^4.2.0" -postcss-minify-selectors@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-5.2.0.tgz#17c2be233e12b28ffa8a421a02fc8b839825536c" - integrity sha512-vYxvHkW+iULstA+ctVNx0VoRAR4THQQRkG77o0oa4/mBS0OzGvvzLIvHDv/nNEM0crzN2WIyFU5X7wZhaUK3RA== +postcss-minify-selectors@^5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz#d4e7e6b46147b8117ea9325a915a801d5fe656c6" + integrity sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg== dependencies: postcss-selector-parser "^6.0.5" @@ -4490,17 +4495,17 @@ postcss-normalize-display-values@^5.1.0: dependencies: postcss-value-parser "^4.2.0" -postcss-normalize-positions@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-5.1.0.tgz#902a7cb97cf0b9e8b1b654d4a43d451e48966458" - integrity sha512-8gmItgA4H5xiUxgN/3TVvXRoJxkAWLW6f/KKhdsH03atg0cB8ilXnrB5PpSshwVu/dD2ZsRFQcR1OEmSBDAgcQ== +postcss-normalize-positions@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz#ef97279d894087b59325b45c47f1e863daefbb92" + integrity sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg== dependencies: postcss-value-parser "^4.2.0" -postcss-normalize-repeat-style@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.0.tgz#f6d6fd5a54f51a741cc84a37f7459e60ef7a6398" - integrity sha512-IR3uBjc+7mcWGL6CtniKNQ4Rr5fTxwkaDHwMBDGGs1x9IVRkYIT/M4NelZWkAOBdV6v3Z9S46zqaKGlyzHSchw== +postcss-normalize-repeat-style@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz#e9eb96805204f4766df66fd09ed2e13545420fb2" + integrity sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g== dependencies: postcss-value-parser "^4.2.0" @@ -4541,10 +4546,10 @@ postcss-normalize-whitespace@^5.1.1: dependencies: postcss-value-parser "^4.2.0" -postcss-ordered-values@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-5.1.1.tgz#0b41b610ba02906a3341e92cab01ff8ebc598adb" - integrity sha512-7lxgXF0NaoMIgyihL/2boNAEZKiW0+HkMhdKMTD93CjW8TdCy2hSdj8lsAo+uwm7EDG16Da2Jdmtqpedl0cMfw== +postcss-ordered-values@^5.1.3: + version "5.1.3" + resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz#b6fd2bd10f937b23d86bc829c69e7732ce76ea38" + integrity sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ== dependencies: cssnano-utils "^3.1.0" postcss-value-parser "^4.2.0" @@ -4626,15 +4631,20 @@ property-information@^6.0.0, property-information@^6.1.1: resolved "https://registry.yarnpkg.com/property-information/-/property-information-6.1.1.tgz#5ca85510a3019726cb9afed4197b7b8ac5926a22" integrity sha512-hrzC564QIl0r0vy4l6MvRLhafmUowhO/O3KgVSoXIbbA2Sz4j8HGpJc6T2cubRVwMwpdiG/vKGfhT4IixmKN9w== -protocols@^1.1.0, protocols@^1.4.0: +protocols@^1.4.0: version "1.4.8" resolved "https://registry.yarnpkg.com/protocols/-/protocols-1.4.8.tgz#48eea2d8f58d9644a4a32caae5d5db290a075ce8" integrity sha512-IgjKyaUSjsROSO8/D49Ab7hP8mJgTYcqApOqdPhLoPxAplXmkp+zRvsrSQjFn5by0rhm4VH0GAUELIPpx7B1yg== +protocols@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/protocols/-/protocols-2.0.1.tgz#8f155da3fc0f32644e83c5782c8e8212ccf70a86" + integrity sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q== + prr@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" - integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= + integrity sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw== punycode@^2.1.0: version "2.1.1" @@ -4642,9 +4652,9 @@ punycode@^2.1.0: integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== qs@^6.9.4: - version "6.10.3" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.3.tgz#d6cde1b2ffca87b5aa57889816c5f81535e22e8e" - integrity sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ== + version "6.11.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" + integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== dependencies: side-channel "^1.0.4" @@ -4702,7 +4712,7 @@ rc@^1.2.7: read-cache@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774" - integrity sha1-5mTvMRYRZsl1HNvo28+GtftY93Q= + integrity sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA== dependencies: pify "^2.3.0" @@ -4745,12 +4755,12 @@ readdirp@~3.6.0: redis-errors@^1.0.0, redis-errors@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/redis-errors/-/redis-errors-1.2.0.tgz#eb62d2adb15e4eaf4610c04afe1529384250abad" - integrity sha1-62LSrbFeTq9GEMBK/hUpOEJQq60= + integrity sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w== redis-parser@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/redis-parser/-/redis-parser-3.0.0.tgz#b66d828cdcafe6b4b8a428a7def4c6bcac31c8b4" - integrity sha1-tm2CjNyv5rS4pCin3vTGvKwxyLQ= + integrity sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A== dependencies: redis-errors "^1.0.0" @@ -4857,7 +4867,7 @@ remark-squeeze-paragraphs@^5.0.1: require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== require-from-string@^2.0.2: version "2.0.2" @@ -4867,7 +4877,7 @@ require-from-string@^2.0.2: requires-port@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" - integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= + integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== resolve-from@^5.0.0: version "5.0.0" @@ -4875,11 +4885,11 @@ resolve-from@^5.0.0: integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== resolve@^1.1.7, resolve@^1.17.0, resolve@^1.19.0, resolve@^1.22.0: - version "1.22.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198" - integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw== + version "1.22.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" + integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== dependencies: - is-core-module "^2.8.1" + is-core-module "^2.9.0" path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" @@ -4937,10 +4947,10 @@ rollup-pluginutils@^2.8.2: dependencies: estree-walker "^0.6.1" -rollup@^2.59.0, rollup@^2.72.1, rollup@^2.74.1: - version "2.74.1" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.74.1.tgz#4fba0ff1c312cc4ee82691b154eee69a0d01929f" - integrity sha512-K2zW7kV8Voua5eGkbnBtWYfMIhYhT9Pel2uhBk2WO5eMee161nPze/XRfvEQPFYz7KgrCCnmh2Wy0AMFLGGmMA== +rollup@^2.59.0, rollup@^2.75.6, rollup@^2.75.7: + version "2.75.7" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.75.7.tgz#221ff11887ae271e37dcc649ba32ce1590aaa0b9" + integrity sha512-VSE1iy0eaAYNCxEXaleThdFXqZJ42qDBatAwrfnPlENEZ8erQ+0LYX4JXOLPceWfZpV1VtZwZ3dFCuOZiSyFtQ== optionalDependencies: fsevents "~2.3.2" @@ -5065,7 +5075,7 @@ serve-static@^1.15.0: set-blocking@^2.0.0, set-blocking@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= + integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== setprototypeof@1.2.0: version "1.2.0" @@ -5155,16 +5165,9 @@ source-map@^0.6.0, source-map@^0.6.1: integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== source-map@^0.7.3: - version "0.7.3" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" - integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== - -source-map@~0.8.0-beta.0: - version "0.8.0-beta.0" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.8.0-beta.0.tgz#d4c1bb42c3f7ee925f005927ba10709e0d1d1f11" - integrity sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA== - dependencies: - whatwg-url "^7.0.0" + version "0.7.4" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656" + integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== sourcemap-codec@^1.4.8: version "1.4.8" @@ -5204,12 +5207,12 @@ std-env@^3.1.1: strict-uri-encode@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546" - integrity sha1-ucczDHBChi9rFC3CdLvMWGbONUY= + integrity sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ== string-width@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" - integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= + integrity sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw== dependencies: code-point-at "^1.0.0" is-fullwidth-code-point "^1.0.0" @@ -5238,10 +5241,10 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" -stringify-entities@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/stringify-entities/-/stringify-entities-4.0.2.tgz#13d113dc7449dc8ae4cb22c28883ee3fff8753e3" - integrity sha512-MTxTVcEkorNtBbNpoFJPEh0kKdM6+QbMjLbaxmvaPMmayOXdr/AIVIIJX7FReUVweRBFJfZepK4A4AKgwuFpMQ== +stringify-entities@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/stringify-entities/-/stringify-entities-4.0.3.tgz#cfabd7039d22ad30f3cc435b0ca2c1574fc88ef8" + integrity sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g== dependencies: character-entities-html4 "^2.0.0" character-entities-legacy "^3.0.0" @@ -5249,7 +5252,7 @@ stringify-entities@^4.0.2: strip-ansi@^3.0.0, strip-ansi@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= + integrity sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg== dependencies: ansi-regex "^2.0.0" @@ -5263,7 +5266,7 @@ strip-ansi@^6.0.0, strip-ansi@^6.0.1: strip-bom@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" - integrity sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4= + integrity sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g== dependencies: is-utf8 "^0.2.0" @@ -5275,7 +5278,14 @@ strip-final-newline@^2.0.0: strip-json-comments@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= + integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== + +strip-literal@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/strip-literal/-/strip-literal-0.4.0.tgz#0f90e86daecc1eb23c61c62d25238ffad4524634" + integrity sha512-ql/sBDoJOybTKSIOWrrh8kgUEMjXMwRAkZTD0EwiwxQH/6tTPkZvMIEjp0CRlpi6V5FMiJyvxeRkEi1KrGISoA== + dependencies: + acorn "^8.7.1" style-to-object@^0.3.0: version "0.3.0" @@ -5314,7 +5324,7 @@ supports-preserve-symlinks-flag@^1.0.0: svg-tags@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/svg-tags/-/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764" - integrity sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q= + integrity sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA== svgo@^2.7.0: version "2.8.0" @@ -5329,10 +5339,10 @@ svgo@^2.7.0: picocolors "^1.0.0" stable "^0.1.8" -tabbable@^5.3.2: - version "5.3.2" - resolved "https://registry.yarnpkg.com/tabbable/-/tabbable-5.3.2.tgz#66d6119ee8a533634c3f17deb0caa1c379e36ac7" - integrity sha512-6G/8EWRFx8CiSe2++/xHhXkmCRq2rHtDtZbQFHx34cvDfZzIBfvwG9zGUNTWMXWLCYvDj3aQqOzdl3oCxKuBkQ== +tabbable@^5.3.3: + version "5.3.3" + resolved "https://registry.yarnpkg.com/tabbable/-/tabbable-5.3.3.tgz#aac0ff88c73b22d6c3c5a50b1586310006b47fbf" + integrity sha512-QD9qKY3StfbZqWOPLp0++pOrAVb/HbUi5xCc8cUo4XjP19808oaMiDzn0leBY5mCespIBM0CIZePzZjgzR83kA== table@^6.8.0: version "6.8.0" @@ -5392,19 +5402,19 @@ tar@^6.1.11: yallist "^4.0.0" terser@^5.0.0: - version "5.13.1" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.13.1.tgz#66332cdc5a01b04a224c9fad449fc1a18eaa1799" - integrity sha512-hn4WKOfwnwbYfe48NgrQjqNOH9jzLqRcIfbYytOXCOv46LBfWr9bDS17MQqOi+BWGD0sJK3Sj5NC/gJjiojaoA== + version "5.14.1" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.14.1.tgz#7c95eec36436cb11cf1902cc79ac564741d19eca" + integrity sha512-+ahUAE+iheqBTDxXhTisdA8hgvbEG1hHOQ9xmNjeUJSoi6DU/gMrKNcfZjHkyY6Alnuyc+ikYJaxxfHkT3+WuQ== dependencies: + "@jridgewell/source-map" "^0.3.2" acorn "^8.5.0" commander "^2.20.0" - source-map "~0.8.0-beta.0" source-map-support "~0.5.20" through@^2.3.6: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= + integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== tiny-invariant@^1.1.0: version "1.2.0" @@ -5421,7 +5431,7 @@ tmp@^0.0.33: to-fast-properties@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= + integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== to-regex-range@^5.0.1: version "5.0.1" @@ -5440,17 +5450,10 @@ totalist@^3.0.0: resolved "https://registry.yarnpkg.com/totalist/-/totalist-3.0.0.tgz#4ef9c58c5f095255cdc3ff2a0a55091c57a3a1bd" integrity sha512-eM+pCBxXO/njtF7vdFsHuqb+ElbxqtI4r5EAvk6grfAFyJ6IvWlSkfZ5T9ozC6xWw3Fj1fGoSmrl0gUs46JVIw== -tr46@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" - integrity sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk= - dependencies: - punycode "^2.1.0" - tr46@~0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== trough@^2.0.0: version "2.1.0" @@ -5468,9 +5471,9 @@ type-fest@^0.21.3: integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== type-fest@^2.11.2: - version "2.12.2" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.12.2.tgz#80a53614e6b9b475eb9077472fb7498dc7aa51d0" - integrity sha512-qt6ylCGpLjZ7AaODxbpyBZSs9fCI9SkL3Z9q2oxMBQhs/uyY+VD8jHA8ULCGmWQJlBgqvO3EJeAngOHD8zQCrQ== + version "2.14.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.14.0.tgz#f990e19169517d689c98e16d128b231022b27e12" + integrity sha512-hQnTQkFjL5ik6HF2fTAM8ycbr94UbQXK364wF930VHb0dfBJ5JBP8qwrR8TaK9zwUEk7meruo2JAUDMwvuxd/w== ufo@^0.8.3, ufo@^0.8.4: version "0.8.4" @@ -5497,9 +5500,9 @@ unctx@^1.1.4: unplugin "^0.6.1" undici@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/undici/-/undici-5.2.0.tgz#18c5bd59f8f1b1ed8dcc9dca2f754c44ec994059" - integrity sha512-XY6+NS3WH9b3TKOHeNz2CjR+qrVz/k4fO9g3etPpLozRvULoQmZ1+dk9JbIz40ehn27xzFk4jYVU2MU3Nle62A== + version "5.5.1" + resolved "https://registry.yarnpkg.com/undici/-/undici-5.5.1.tgz#baaf25844a99eaa0b22e1ef8d205bffe587c8f43" + integrity sha512-MEvryPLf18HvlCbLSzCW0U00IMftKGI5udnjrQbC5D4P0Hodwffhv+iGfWuJwg16Y/TK11ZFK8i+BPVW2z/eAw== unenv@^0.5.2: version "0.5.2" @@ -5524,7 +5527,7 @@ unified@^10.0.0, unified@^10.1.2: trough "^2.0.0" vfile "^5.0.0" -unimport@^0.1.6, unimport@^0.1.9: +unimport@^0.1.6: version "0.1.9" resolved "https://registry.yarnpkg.com/unimport/-/unimport-0.1.9.tgz#a8688f37df179eb1768f04d365c62cc74c7b35c5" integrity sha512-ap7MnS7zuA4A8eAyA8CHN3YFw1tMpWQK3rSrh6jvrB3tWkT4EKvslg9sNoax5WuL8TnMaXSydRxwOgUUXrnovg== @@ -5539,20 +5542,37 @@ unimport@^0.1.6, unimport@^0.1.9: scule "^0.2.1" unplugin "^0.6.3" -unimport@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/unimport/-/unimport-0.2.1.tgz#dd7cc65fcd9d945186aee1eceb1bdc06ecfdf49f" - integrity sha512-6u1uY6GFIi9WslI7fPun0I0ZrIGJ0yAn92n/9rQv4MAEEnxg8zMO+Tj7q/6Z/7XxTn8qFCJIqEM/3Io81Zwmmw== +unimport@^0.2.7, unimport@^0.2.8: + version "0.2.10" + resolved "https://registry.yarnpkg.com/unimport/-/unimport-0.2.10.tgz#9ac0d003db40c750a8ecc0fd4317dc5e0500795e" + integrity sha512-HoQ0ZDzHJboRYJ4/YxtMAATxiya/s5C2UE6jLFNj1e0D6Qfq6Pw2P40L+ALCkjLwLhR8l2VROE7kba/AaFtdQg== dependencies: "@rollup/pluginutils" "^4.2.1" escape-string-regexp "^5.0.0" - globby "^13.1.1" + fast-glob "^3.2.11" local-pkg "^0.4.1" - magic-string "^0.26.1" - mlly "^0.5.2" + magic-string "^0.26.2" + mlly "^0.5.3" pathe "^0.3.0" scule "^0.2.1" - unplugin "^0.6.3" + strip-literal "^0.4.0" + unplugin "^0.7.0" + +unimport@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/unimport/-/unimport-0.3.0.tgz#52496f04e7ce18a50f4a111af0e6722f8ee1e75d" + integrity sha512-RxvfvKBY+CyBmIuYSuBeosSiudgcVakdhVofy5mO5sJ3purQRc5yjLw0Lir7MKHnqe6XT1++8flgAvpxu1UkqQ== + dependencies: + "@rollup/pluginutils" "^4.2.1" + escape-string-regexp "^5.0.0" + fast-glob "^3.2.11" + local-pkg "^0.4.1" + magic-string "^0.26.2" + mlly "^0.5.3" + pathe "^0.3.0" + scule "^0.2.1" + strip-literal "^0.4.0" + unplugin "^0.7.0" unist-builder@^3.0.0: version "3.0.0" @@ -5594,14 +5614,6 @@ unist-util-stringify-position@^3.0.0: dependencies: "@types/unist" "^2.0.0" -unist-util-visit-parents@^4.0.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-4.1.1.tgz#e83559a4ad7e6048a46b1bdb22614f2f3f4724f2" - integrity sha512-1xAFJXAKpnnJl8G7K5KgU7FY55y3GcLIXqkzUj5QF/QVP7biUm0K0O2oqVkYsdjzJKifYeWn9+o6piAK2hGSHw== - dependencies: - "@types/unist" "^2.0.0" - unist-util-is "^5.0.0" - unist-util-visit-parents@^5.0.0: version "5.1.0" resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-5.1.0.tgz#44bbc5d25f2411e7dfc5cecff12de43296aa8521" @@ -5610,15 +5622,6 @@ unist-util-visit-parents@^5.0.0: "@types/unist" "^2.0.0" unist-util-is "^5.0.0" -unist-util-visit@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-3.1.0.tgz#9420d285e1aee938c7d9acbafc8e160186dbaf7b" - integrity sha512-Szoh+R/Ll68QWAyQyZZpQzZQm2UPbxibDvaY8Xc9SUtYgPsDzx5AWSk++UUt2hJuow8mvwR+rG+LQLw+KsuAKA== - dependencies: - "@types/unist" "^2.0.0" - unist-util-is "^5.0.0" - unist-util-visit-parents "^4.0.0" - unist-util-visit@^4.0.0, unist-util-visit@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-4.1.0.tgz#f41e407a9e94da31594e6b1c9811c51ab0b3d8f5" @@ -5633,25 +5636,26 @@ universalify@^2.0.0: resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== -unocss@0.34.1, unocss@^0.34.0: - version "0.34.1" - resolved "https://registry.yarnpkg.com/unocss/-/unocss-0.34.1.tgz#3fa938c24e6bbb79b850c0092b5ab64f1d7d7692" - integrity sha512-rk1xKh+ROUHxcFq56Wa0vuOqPFhqvomp3pQW+XEhPHSwOasiHXHtuNgPUgrbE2dhS2OAY9zz1dNhjkbOXnjS8w== - dependencies: - "@unocss/cli" "0.34.1" - "@unocss/core" "0.34.1" - "@unocss/preset-attributify" "0.34.1" - "@unocss/preset-icons" "0.34.1" - "@unocss/preset-mini" "0.34.1" - "@unocss/preset-typography" "0.34.1" - "@unocss/preset-uno" "0.34.1" - "@unocss/preset-web-fonts" "0.34.1" - "@unocss/preset-wind" "0.34.1" - "@unocss/reset" "0.34.1" - "@unocss/transformer-compile-class" "0.34.1" - "@unocss/transformer-directives" "0.34.1" - "@unocss/transformer-variant-group" "0.34.1" - "@unocss/vite" "0.34.1" +unocss@0.41.1, unocss@^0.41.0: + version "0.41.1" + resolved "https://registry.yarnpkg.com/unocss/-/unocss-0.41.1.tgz#fee029fcf358ff4006316113d96d68526af12a9c" + integrity sha512-tsc/4Xw3Z6t4pda0KmEK2+XayZYgLhPypZHWfPjQofTWzkm43c+k3PO5vS72jEVorE8rK0VDcoRSvhKGvC5lww== + dependencies: + "@unocss/cli" "0.41.1" + "@unocss/core" "0.41.1" + "@unocss/preset-attributify" "0.41.1" + "@unocss/preset-icons" "0.41.1" + "@unocss/preset-mini" "0.41.1" + "@unocss/preset-tagify" "0.41.1" + "@unocss/preset-typography" "0.41.1" + "@unocss/preset-uno" "0.41.1" + "@unocss/preset-web-fonts" "0.41.1" + "@unocss/preset-wind" "0.41.1" + "@unocss/reset" "0.41.1" + "@unocss/transformer-compile-class" "0.41.1" + "@unocss/transformer-directives" "0.41.1" + "@unocss/transformer-variant-group" "0.41.1" + "@unocss/vite" "0.41.1" unplugin@^0.6.1, unplugin@^0.6.3: version "0.6.3" @@ -5662,21 +5666,31 @@ unplugin@^0.6.1, unplugin@^0.6.3: webpack-sources "^3.2.3" webpack-virtual-modules "^0.4.3" -unstorage@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/unstorage/-/unstorage-0.4.1.tgz#66d174886f017a5ceef567b8f007c5966b4690f4" - integrity sha512-nK2XsRV2lfB6aNCuoatsQUhRVMnDDP5pm3D4UrgRMxP3D57Rn5+dx3aNaLCi5rcq6QAdOmhjyBvKcW8d3PY+Sw== +unplugin@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/unplugin/-/unplugin-0.7.0.tgz#8c8e28a7ca454a13313483ddd4c1f9cc1809d966" + integrity sha512-OsiFrgybmqm5bGuaodvbLYhqUrvGuRHRMZDhddKEXTDbuQ1x+hR7M1WpQguXj03whVYjEYChhFo738cZH5RNig== + dependencies: + acorn "^8.7.1" + chokidar "^3.5.3" + webpack-sources "^3.2.3" + webpack-virtual-modules "^0.4.3" + +unstorage@^0.5.0, unstorage@^0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/unstorage/-/unstorage-0.5.2.tgz#b7d0dc39a73bf1ccb1a7d39caf96e5c437f2988f" + integrity sha512-TgSkgTsHNWkXfFHA6zKmjSqHPn8uvpTj0SOgpLKyR15SWakCqnMUo3Yl3lQ5NBP61chJtCKAHwTB/27YvsZCjw== dependencies: anymatch "^3.1.2" chokidar "^3.5.3" destr "^1.1.1" - h3 "^0.7.6" - ioredis "^5.0.4" - listhen "^0.2.11" + h3 "^0.7.10" + ioredis "^5.0.6" + listhen "^0.2.13" mri "^1.2.0" - ohmyfetch "^0.4.16" - ufo "^0.8.3" - ws "^8.6.0" + ohmyfetch "^0.4.18" + ufo "^0.8.4" + ws "^8.8.0" untyped@^0.4.4: version "0.4.4" @@ -5688,6 +5702,14 @@ untyped@^0.4.4: "@babel/types" "^7.17.0" scule "^0.2.1" +update-browserslist-db@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.4.tgz#dbfc5a789caa26b1db8990796c2c8ebbce304824" + integrity sha512-jnmO2BEGUjsMOe/Fg9u0oczOe/ppIDZPebzccl1yDWGLFP16Pa1/RM5wEoKYPG2zstNcDuAStejyxsOuKINdGA== + dependencies: + escalade "^3.1.1" + picocolors "^1.0.0" + uri-js@^4.2.2: version "4.4.1" resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" @@ -5698,12 +5720,12 @@ uri-js@^4.2.2: util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== uvu@^0.5.0: - version "0.5.3" - resolved "https://registry.yarnpkg.com/uvu/-/uvu-0.5.3.tgz#3d83c5bc1230f153451877bfc7f4aea2392219ae" - integrity sha512-brFwqA3FXzilmtnIyJ+CxdkInkY/i4ErvP7uV0DnUVxQcQ55reuHphorpF+tZoVHK2MniZ/VJzI7zJQoc9T9Yw== + version "0.5.4" + resolved "https://registry.yarnpkg.com/uvu/-/uvu-0.5.4.tgz#5a37482ade580b7d817569e0b2c013712857293c" + integrity sha512-x1CyUjcP9VKaNPhjeB3FIc/jqgLsz2Q9LFhRzUTu/jnaaHILEGNuE0XckQonl8ISLcwyk9I2EZvWlYsQnwxqvQ== dependencies: dequal "^2.0.0" diff "^5.0.0" @@ -5727,25 +5749,25 @@ vfile-message@^3.0.0: unist-util-stringify-position "^3.0.0" vfile@^5.0.0: - version "5.3.2" - resolved "https://registry.yarnpkg.com/vfile/-/vfile-5.3.2.tgz#b499fbc50197ea50ad3749e9b60beb16ca5b7c54" - integrity sha512-w0PLIugRY3Crkgw89TeMvHCzqCs/zpreR31hl4D92y6SOE07+bfJe+dK5Q2akwS+i/c801kzjoOr9gMcTe6IAA== + version "5.3.4" + resolved "https://registry.yarnpkg.com/vfile/-/vfile-5.3.4.tgz#bbb8c96b956693bbf70b2c67fdb5781dff769b93" + integrity sha512-KI+7cnst03KbEyN1+JE504zF5bJBZa+J+CrevLeyIMq0aPU681I2rQ5p4PlnQ6exFtWiUrg26QUdFMnAKR6PIw== dependencies: "@types/unist" "^2.0.0" is-buffer "^2.0.0" unist-util-stringify-position "^3.0.0" vfile-message "^3.0.0" -vite-node@^0.12.7: - version "0.12.9" - resolved "https://registry.yarnpkg.com/vite-node/-/vite-node-0.12.9.tgz#81e36535b2e63701dc3f96a6034d5f93b76eb61b" - integrity sha512-TghOBHI2sZ+vIXF3YqgNnvhKmiQkW2xcuAXI65d4O5Wr414fRPFaSd+skdvmXzM7StoJt2A5qJ5u1WYDA6eGMQ== +vite-node@^0.15.2: + version "0.15.2" + resolved "https://registry.yarnpkg.com/vite-node/-/vite-node-0.15.2.tgz#a9f67b6678424b5eae69d9e9656dd1d128d13250" + integrity sha512-ET7GH9lc9CrWtaMi8bGkvLKA5l1EJSZw1AolX+uldGC0pkZnC2k1Q34C6f86znHbpVOFvdJ22F8bT1gPhI16Ww== dependencies: debug "^4.3.4" kolorist "^1.5.1" - mlly "^0.5.2" + mlly "^0.5.3" pathe "^0.2.0" - vite "^2.9.8" + vite "^2.9.12" vite-plugin-checker@^0.4.6: version "0.4.6" @@ -5768,10 +5790,10 @@ vite-plugin-checker@^0.4.6: vscode-languageserver-textdocument "^1.0.1" vscode-uri "^3.0.2" -vite@^2.9.8, vite@^2.9.9: - version "2.9.9" - resolved "https://registry.yarnpkg.com/vite/-/vite-2.9.9.tgz#8b558987db5e60fedec2f4b003b73164cb081c5e" - integrity sha512-ffaam+NgHfbEmfw/Vuh6BHKKlI/XIAhxE5QSS7gFLIngxg171mg1P3a4LSRME0z2ZU1ScxoKzphkipcYwSD5Ew== +vite@^2.9.12: + version "2.9.13" + resolved "https://registry.yarnpkg.com/vite/-/vite-2.9.13.tgz#859cb5d4c316c0d8c6ec9866045c0f7858ca6abc" + integrity sha512-AsOBAaT0AD7Mhe8DuK+/kE4aWYFMx/i0ZNi98hJclxb4e0OhQcZYUrvLjIaQ8e59Ui7txcvKMiJC1yftqpQoDw== dependencies: esbuild "^0.14.27" postcss "^8.4.13" @@ -5803,9 +5825,9 @@ vscode-languageserver-protocol@3.16.0: vscode-languageserver-types "3.16.0" vscode-languageserver-textdocument@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.4.tgz#3cd56dd14cec1d09e86c4bb04b09a246cb3df157" - integrity sha512-/xhqXP/2A2RSs+J8JNXpiiNVvvNM0oTosNVmQnunlKvq9o4mupHOBAnnzH0lwIPKazXKvAKsVp1kr+H/K4lgoQ== + version "1.0.5" + resolved "https://registry.yarnpkg.com/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.5.tgz#838769940ece626176ec5d5a2aa2d0aa69f5095c" + integrity sha512-1ah7zyQjKBudnMiHbZmxz5bYNM9KKZYz+5VQLj+yr8l+9w3g+WAhCkUkWbhMEdC5u0ub4Ndiye/fDyS8ghIKQg== vscode-languageserver-types@3.16.0: version "3.16.0" @@ -5824,40 +5846,40 @@ vscode-uri@^3.0.2: resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-3.0.3.tgz#a95c1ce2e6f41b7549f86279d19f47951e4f4d84" integrity sha512-EcswR2S8bpR7fD0YPeS7r2xXExrScVMxg4MedACaWHEtx9ftCF/qHG1xGkolzTPcEmjTavCQgbVzHUIdTMzFGA== -vue-bundle-renderer@^0.3.8: - version "0.3.8" - resolved "https://registry.yarnpkg.com/vue-bundle-renderer/-/vue-bundle-renderer-0.3.8.tgz#9908c9746815f65e5d38f23fa56af7ed987f28e9" - integrity sha512-1F4P4Aw92PW9XUX0ojC18Ye1P0/kvwq6Jx6kaeokQ+/FoVrfBsKtuJPib1TqGRvGYKCiTCweefun6DidoEvECg== +vue-bundle-renderer@^0.3.9: + version "0.3.9" + resolved "https://registry.yarnpkg.com/vue-bundle-renderer/-/vue-bundle-renderer-0.3.9.tgz#56e3b0ba7493e1a40a9e33ef236d37e60795493a" + integrity sha512-jhkyS2Zaey9OAp2xVyGnN0//lLfNtT2elFq1NevaY4JwQEw27DFS970rQbNYPds2WXeq2H/O2HM+qCPcsimJGg== dependencies: bundle-runner "^0.0.1" vue-demi@*: - version "0.12.5" - resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.12.5.tgz#8eeed566a7d86eb090209a11723f887d28aeb2d1" - integrity sha512-BREuTgTYlUr0zw0EZn3hnhC3I6gPWv+Kwh4MCih6QcAeaTlaIX0DwOVN0wHej7hSvDPecz4jygy/idsgKfW58Q== + version "0.13.1" + resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.13.1.tgz#7604904c88be338418a10abbc94d5b8caa14cb8c" + integrity sha512-xmkJ56koG3ptpLnpgmIzk9/4nFf4CqduSJbUM0OdPoU87NwRuZ6x49OLhjSa/fC15fV+5CbEnrxU4oyE022svg== -vue-router@^4.0.15: - version "4.0.15" - resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-4.0.15.tgz#b4a0661efe197f8c724e0f233308f8776e2c3667" - integrity sha512-xa+pIN9ZqORdIW1MkN2+d9Ui2pCM1b/UMgwYUCZOiFYHAvz/slKKBDha8DLrh5aCG/RibtrpyhKjKOZ85tYyWg== +vue-router@^4.0.16: + version "4.0.16" + resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-4.0.16.tgz#9477beeeef36e80e04d041a1738801a55e6e862e" + integrity sha512-JcO7cb8QJLBWE+DfxGUL3xUDOae/8nhM1KVdnudadTAORbuxIC/xAydC5Zr/VLHUDQi1ppuTF5/rjBGzgzrJNA== dependencies: "@vue/devtools-api" "^6.0.0" -vue@^3.2.34: - version "3.2.36" - resolved "https://registry.yarnpkg.com/vue/-/vue-3.2.36.tgz#8daa996e2ced521708de97d066c7c998e8bc3378" - integrity sha512-5yTXmrE6gW8IQgttzHW5bfBiFA6mx35ZXHjGLDmKYzW6MMmYvCwuKybANRepwkMYeXw2v1buGg3/lPICY5YlZw== +vue@^3.2.37: + version "3.2.37" + resolved "https://registry.yarnpkg.com/vue/-/vue-3.2.37.tgz#da220ccb618d78579d25b06c7c21498ca4e5452e" + integrity sha512-bOKEZxrm8Eh+fveCqS1/NkG/n6aMidsI6hahas7pa0w/l7jkbssJVsRhVDs07IdDq7h9KHswZOgItnwJAgtVtQ== dependencies: - "@vue/compiler-dom" "3.2.36" - "@vue/compiler-sfc" "3.2.36" - "@vue/runtime-dom" "3.2.36" - "@vue/server-renderer" "3.2.36" - "@vue/shared" "3.2.36" + "@vue/compiler-dom" "3.2.37" + "@vue/compiler-sfc" "3.2.37" + "@vue/runtime-dom" "3.2.37" + "@vue/server-renderer" "3.2.37" + "@vue/shared" "3.2.37" wcwidth@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" - integrity sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g= + integrity sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg== dependencies: defaults "^1.0.3" @@ -5874,12 +5896,7 @@ web-streams-polyfill@^3.0.3: webidl-conversions@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" - integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE= - -webidl-conversions@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" - integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== webpack-sources@^3.2.3: version "3.2.3" @@ -5887,27 +5904,18 @@ webpack-sources@^3.2.3: integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== webpack-virtual-modules@^0.4.3: - version "0.4.3" - resolved "https://registry.yarnpkg.com/webpack-virtual-modules/-/webpack-virtual-modules-0.4.3.tgz#cd597c6d51d5a5ecb473eea1983a58fa8a17ded9" - integrity sha512-5NUqC2JquIL2pBAAo/VfBP6KuGkHIZQXW/lNKupLPfhViwh8wNsu0BObtl09yuKZszeEUfbXz8xhrHvSG16Nqw== + version "0.4.4" + resolved "https://registry.yarnpkg.com/webpack-virtual-modules/-/webpack-virtual-modules-0.4.4.tgz#a19fcf371923c59c4712d63d7d194b1e4d8262cc" + integrity sha512-h9atBP/bsZohWpHnr+2sic8Iecb60GxftXsWNLLLSqewgIsGzByd2gcIID4nXcG+3tNe4GQG3dLcff3kXupdRA== whatwg-url@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" - integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0= + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== dependencies: tr46 "~0.0.3" webidl-conversions "^3.0.0" -whatwg-url@^7.0.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06" - integrity sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg== - dependencies: - lodash.sortby "^4.7.0" - tr46 "^1.0.1" - webidl-conversions "^4.0.2" - which@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" @@ -5934,12 +5942,12 @@ wrap-ansi@^7.0.0: wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== -ws@^8.6.0: - version "8.6.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.6.0.tgz#e5e9f1d9e7ff88083d0c0dd8281ea662a42c9c23" - integrity sha512-AzmM3aH3gk0aX7/rZLYvjdvZooofDu3fFOzGqcSnQ1tOcTWwhM/o+q++E8mAyVVIyUdajrkzWUGftaVSDLn1bw== +ws@^8.8.0: + version "8.8.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.8.0.tgz#8e71c75e2f6348dbf8d78005107297056cb77769" + integrity sha512-JDAgSYQ1ksuwqfChJusw1LSJ8BizJ2e/vVu5Lxjq3YvNJNlROv1ui4i+c/kUUrPheBvQl4c5UbERhTwKa6QBJQ== xxhashjs@~0.2.2: version "0.2.2" diff --git a/examples/mdc/inline-component/app.vue b/examples/mdc/inline-component/app.vue index b68bd7486..8ad366a7b 100644 --- a/examples/mdc/inline-component/app.vue +++ b/examples/mdc/inline-component/app.vue @@ -1,5 +1,5 @@ <template> <NuxtExampleLayout example="mdc/inline-component" repo="nuxt/content"> - <ContentDoc path="/" /> + <ContentDoc path="/" class="prose text-left" /> </Nuxtexamplelayout> </template> diff --git a/examples/mdc/inline-component/components/AppInline.vue b/examples/mdc/inline-component/components/AppInline.vue deleted file mode 100644 index cf1628233..000000000 --- a/examples/mdc/inline-component/components/AppInline.vue +++ /dev/null @@ -1,5 +0,0 @@ -<template> - <p> - This <code>AppInline</code> component is rendered from markdown using mdc syntax: <code>:app-inline.</code> - </p> -</template> diff --git a/examples/mdc/inline-component/components/content/GithubButton.vue b/examples/mdc/inline-component/components/content/GithubButton.vue new file mode 100644 index 000000000..d8e6c8dcf --- /dev/null +++ b/examples/mdc/inline-component/components/content/GithubButton.vue @@ -0,0 +1,10 @@ +<template> + <NButton + n="sm" + to="https://github.com/nuxt/content" + target="_blank" + icon="carbon-logo-github" + > + GitHub + </NButton> +</template> diff --git a/examples/mdc/inline-component/content/index.md b/examples/mdc/inline-component/content/index.md index d32f17d06..2066cb237 100644 --- a/examples/mdc/inline-component/content/index.md +++ b/examples/mdc/inline-component/content/index.md @@ -1,3 +1,7 @@ # Inline Components usage in MDC -:app-inline +```md +I am using a :github-button in the middle of a paragraph. +``` + +I am using a :github-button in the middle of a paragraph. diff --git a/examples/mdc/inline-component/nuxt.config.ts b/examples/mdc/inline-component/nuxt.config.ts index f61d4bb40..ffba82a61 100644 --- a/examples/mdc/inline-component/nuxt.config.ts +++ b/examples/mdc/inline-component/nuxt.config.ts @@ -5,8 +5,9 @@ export default defineNuxtConfig({ '@nuxt/content', '@nuxt/ui' ], - components: [{ - path: '~/components', - global: true - }] + content: { + highlight: { + theme: 'one-dark-pro' + } + } }) diff --git a/examples/mdc/nested-components/app.vue b/examples/mdc/nested-components/app.vue index c00ef8041..e1a8f096e 100644 --- a/examples/mdc/nested-components/app.vue +++ b/examples/mdc/nested-components/app.vue @@ -1,6 +1,6 @@ <template> <NuxtExampleLayout example="mdc/nested-components" repo="nuxt/content"> - <ContentDoc path="/" /> + <ContentDoc path="/" class="prose text-left" /> </NuxtExampleLayout> </template> diff --git a/examples/mdc/nested-components/components/AppNested.vue b/examples/mdc/nested-components/components/AppNested.vue index 61e9e0360..ed1f1cd9a 100644 --- a/examples/mdc/nested-components/components/AppNested.vue +++ b/examples/mdc/nested-components/components/AppNested.vue @@ -1,6 +1,6 @@ <template> <aside> <h2>Nested component</h2> - <Markdown unwrap="p" /> + <ContentSlot unwrap="p" /> </aside> </template> diff --git a/examples/mdc/props/app.vue b/examples/mdc/props/app.vue index 9bb3d917e..1520da92c 100644 --- a/examples/mdc/props/app.vue +++ b/examples/mdc/props/app.vue @@ -1,5 +1,5 @@ <template> <NuxtExampleLayout example="mdc/props" repo="nuxt/content"> - <ContentDoc path="/" /> + <ContentDoc path="/" class="prose text-left" /> </NuxtExampleLayout> </template> diff --git a/examples/mdc/slots/app.vue b/examples/mdc/slots/app.vue index b3c79c440..36ffb8357 100644 --- a/examples/mdc/slots/app.vue +++ b/examples/mdc/slots/app.vue @@ -1,5 +1,5 @@ <template> <NuxtExampleLayout example="mdc/slot" repo="nuxt/content"> - <ContentDoc path="/" /> + <ContentDoc path="/" class="prose text-left" /> </NuxtExampleLayout> </template> diff --git a/examples/navigation/use-route/pages/[...slug].vue b/examples/navigation/use-route/pages/[...slug].vue index 8def1920c..86ca2497b 100644 --- a/examples/navigation/use-route/pages/[...slug].vue +++ b/examples/navigation/use-route/pages/[...slug].vue @@ -7,7 +7,7 @@ const { data } = await useAsyncData(`content-${path}`, () => { </script> <template> - <main> + <main class="prose text-left"> <ContentRenderer v-if="data" :value="data" /> </main> </template> diff --git a/package.json b/package.json index 3118b13f2..a4896c3cf 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@nuxt/content", - "version": "2.0.1", + "version": "2.1.0", "description": "Write your content inside your Nuxt app", "keywords": [ "nuxt", @@ -14,90 +14,88 @@ ".": { "import": "./dist/module.mjs", "require": "./dist/module.cjs" - } + }, + "./transformers": "./dist/runtime/transformers/index.mjs", + "./transformers/*": "./dist/runtime/transformers/*.mjs" }, "main": "./dist/module.cjs", "module": "./dist/module.mjs", "types": "./dist/types.d.ts", + "web-types": "./dist/web-types.json", "files": [ "dist" ], "scripts": { - "build": "nuxt-module-build", - "dev": "nuxi dev playground", - "dev:build": "nuxi build playground", - "dev:prepare": "nuxt-module-build --stub && nuxi prepare playground", - "dev:docs": "(cd docs && nuxi dev)", + "dev": "./scripts/playground.sh", + "dev:build": "nuxi build playground/basic", + "dev:prepare": "nuxt-module-build --stub && nuxi prepare playground/basic", + "dev:fixtures": "./scripts/fixture.sh", + "build": "nuxt-module-build && yarn build:web-types", "build:docs": "(cd docs && nuxi build)", + "build:web-types": "vue-docgen-web-types src/runtime/components/ ./dist/web-types.json", "example": "./scripts/example.sh", "lint": "eslint --ext .js,.ts,.vue .", "prepack": "yarn build", "test:coverage": "vitest --coverage", "test:types": "tsc --build tsconfig.json", - "test:unit": "nuxi prepare test/fixtures/basic && vitest run" + "test": "./scripts/test.sh", + "test:unit": "nuxi prepare test/fixtures/basic && nuxi prepare test/fixtures/document-driven && vitest run" }, "dependencies": { - "@nuxt/kit": "^3.0.0-rc.3", - "csvtojson": "^2.0.10", - "defu": "^6.0.0", + "@nuxt/kit": "^3.0.0-rc.9", + "consola": "^2.15.3", + "defu": "^6.1.0", "destr": "^1.1.1", "detab": "^3.0.1", - "flat": "^5.0.2", "html-tags": "^3.2.0", - "js-yaml": "^4.1.0", "json5": "^2.2.1", - "listhen": "^0.2.11", - "mdast-util-from-markdown": "^1.2.0", - "mdast-util-to-hast": "^12.1.1", - "mdast-util-to-markdown": "^1.3.0", + "knitwork": "^0.1.2", + "listhen": "^0.2.15", + "mdast-util-to-hast": "^12.2.1", "mdurl": "^1.0.1", - "micromark": "^3.0.10", - "micromark-core-commonmark": "^1.0.6", - "micromark-factory-space": "^1.0.0", - "micromark-factory-whitespace": "^1.0.0", - "micromark-util-character": "^1.1.0", - "ohash": "^0.1.0", - "parse-entities": "^4.0.0", - "pathe": "^0.3.0", + "ohash": "^0.1.5", + "pathe": "^0.3.7", "property-information": "^6.1.1", - "rehype-external-links": "^1.0.1", + "rehype-external-links": "^2.0.1", "rehype-raw": "^6.1.1", "rehype-slug": "^5.0.1", "rehype-sort-attribute-values": "^4.0.0", "rehype-sort-attributes": "^4.0.0", "remark-emoji": "^3.0.2", "remark-gfm": "^3.0.1", + "remark-mdc": "^1.0.7", "remark-parse": "^10.0.1", "remark-rehype": "^10.1.0", "remark-squeeze-paragraphs": "^5.0.1", - "scule": "^0.2.1", + "scule": "^0.3.2", "shiki-es": "^0.1.2", "slugify": "^1.6.5", - "stringify-entities": "^4.0.2", - "ufo": "^0.8.4", - "unctx": "^1.1.4", + "ufo": "^0.8.5", "unified": "^10.1.2", "unist-builder": "^3.0.0", "unist-util-position": "^4.0.3", - "unist-util-visit": "^4.1.0", - "unstorage": "^0.4.1", - "ws": "^8.7.0" + "unist-util-visit": "^4.1.1", + "unstorage": "^0.5.6", + "ws": "^8.8.1" }, "devDependencies": { "@nuxt/module-builder": "^0.1.7", - "@nuxt/schema": "^3.0.0-rc.3", - "@nuxt/test-utils": "npm:@nuxt/test-utils-edge@latest", + "@nuxt/schema": "^3.0.0-rc.9", + "@nuxt/test-utils": "^3.0.0-rc.9", "@nuxthq/admin": "npm:@nuxthq/admin-edge@latest", "@nuxtjs/eslint-config-typescript": "latest", - "@types/flat": "^5.0.2", "@types/ws": "^8.5.3", - "c8": "^7.11.3", - "eslint": "^8.16.0", - "globby": "^13.1.1", + "c8": "^7.12.0", + "csvtojson": "^2.0.10", + "eslint": "^8.23.0", + "globby": "^13.1.2", "husky": "^8.0.1", - "jiti": "^1.13.0", - "lint-staged": "^12.5.0", - "nuxt": "^3.0.0-rc.3", - "vitest": "^0.13.0" + "jiti": "^1.15.0", + "lint-staged": "^13.0.3", + "nuxt": "^3.0.0-rc.9", + "rehype-figure": "^1.0.1", + "remark-oembed": "^1.2.2", + "vitest": "^0.23.1", + "vue-docgen-web-types": "^0.1.8" } } diff --git a/playground/content-fa/_dir.yml b/playground/basic/content-fa/_dir.yml similarity index 100% rename from playground/content-fa/_dir.yml rename to playground/basic/content-fa/_dir.yml diff --git a/playground/content-fa/hello.md b/playground/basic/content-fa/hello.md similarity index 100% rename from playground/content-fa/hello.md rename to playground/basic/content-fa/hello.md diff --git a/playground/basic/content/0.index.md b/playground/basic/content/0.index.md new file mode 100644 index 000000000..0d0526857 --- /dev/null +++ b/playground/basic/content/0.index.md @@ -0,0 +1,9 @@ +--- +title: Index +--- + +# 🎨 Playground + +- [Playground](/playground) +- [Query Builder](/query-playground) +- [Not found](/404) diff --git a/playground/content/real-content/content.md b/playground/basic/content/1.real-content/content.md similarity index 96% rename from playground/content/real-content/content.md rename to playground/basic/content/1.real-content/content.md index 5b90d6a4b..46bc883d6 100644 --- a/playground/content/real-content/content.md +++ b/playground/basic/content/1.real-content/content.md @@ -46,7 +46,7 @@ const { data } = await useAsyncData(`doc-${route.path}`, () => queryContent(rout </template> ``` -### `<MarkdownRenderer>` +### `<ContentRendererMarkdown>` > This component is used by `<ContentRenderer>` under the hood. @@ -54,7 +54,7 @@ Render a markdown content. ```vue <template> - <MarkdownRenderer :value="data" /> + <ContentRendererMarkdown :value="data" /> </template> ``` @@ -89,7 +89,7 @@ Parsers and Transformers can be defined using `defineContentPlugin`: ```ts export default defineContentPlugin({ name: 'plugin-name', - extentions: ['.md'], + extensions: ['.md'], parse: async (id, content) => {}, transform: async content => {} }) diff --git a/playground/content/real-content/query.md b/playground/basic/content/1.real-content/query.md similarity index 100% rename from playground/content/real-content/query.md rename to playground/basic/content/1.real-content/query.md diff --git a/playground/content/features/1.unwrap.md b/playground/basic/content/2.features/1.unwrap.md similarity index 100% rename from playground/content/features/1.unwrap.md rename to playground/basic/content/2.features/1.unwrap.md diff --git a/playground/content/features/2.excerpt.md b/playground/basic/content/2.features/2.excerpt.md similarity index 100% rename from playground/content/features/2.excerpt.md rename to playground/basic/content/2.features/2.excerpt.md diff --git a/playground/content/features/3.mdc-highlighter.md b/playground/basic/content/2.features/3.mdc-highlighter.md similarity index 100% rename from playground/content/features/3.mdc-highlighter.md rename to playground/basic/content/2.features/3.mdc-highlighter.md diff --git a/playground/basic/content/2.features/4.path-overwrite.md b/playground/basic/content/2.features/4.path-overwrite.md new file mode 100644 index 000000000..356e73cba --- /dev/null +++ b/playground/basic/content/2.features/4.path-overwrite.md @@ -0,0 +1,6 @@ +--- +title: 'Path overwriting' +_path: '/features/overwrited-path' +--- + +# Path overwriting diff --git a/playground/content/empty.md b/playground/basic/content/2.features/5.empty-document.md similarity index 100% rename from playground/content/empty.md rename to playground/basic/content/2.features/5.empty-document.md diff --git a/playground/basic/content/2.features/6.variables.md b/playground/basic/content/2.features/6.variables.md new file mode 100644 index 000000000..ce80f444f --- /dev/null +++ b/playground/basic/content/2.features/6.variables.md @@ -0,0 +1,32 @@ +--- +title: Variables +cover: https://nuxtjs.org/design-kit/colored-logo.svg +--- + +:img{:src="cover"} + +# {{ $doc.title }} + +MDC stands for _**M**ark**D**own **C**omponents_. + +This syntax supercharges regular Markdown to write documents interacting deeply with any Vue component from your \`components/content/\` directory or provided by a module. + +## Next steps +- [Install Nuxt Content](/get-started) +- [Explore the MDC syntax](/guide/writing/mdc) + + +You are visiting document: {{ $doc._id }} + +Current route is: {{ $route.path }} + +::alert +--- +type: success +--- +This is an alert for {{ type }} +:: + +::alert{type="danger"} +This is an alert for {{ type }} +:: diff --git a/playground/content/file-formats/csv.csv b/playground/basic/content/3.file-formats/csv.csv similarity index 100% rename from playground/content/file-formats/csv.csv rename to playground/basic/content/3.file-formats/csv.csv diff --git a/playground/content/file-formats/json.json b/playground/basic/content/3.file-formats/json.json similarity index 100% rename from playground/content/file-formats/json.json rename to playground/basic/content/3.file-formats/json.json diff --git a/playground/content/file-formats/json5.json5 b/playground/basic/content/3.file-formats/json5.json5 similarity index 100% rename from playground/content/file-formats/json5.json5 rename to playground/basic/content/3.file-formats/json5.json5 diff --git a/playground/content/file-formats/yaml.yml b/playground/basic/content/3.file-formats/yaml.yml similarity index 100% rename from playground/content/file-formats/yaml.yml rename to playground/basic/content/3.file-formats/yaml.yml diff --git a/playground/basic/content/98.playground.md b/playground/basic/content/98.playground.md new file mode 100644 index 000000000..a916681c8 --- /dev/null +++ b/playground/basic/content/98.playground.md @@ -0,0 +1,6 @@ +--- +title: Playground +--- + +::playground +:: diff --git a/playground/basic/content/99.query-playground.md b/playground/basic/content/99.query-playground.md new file mode 100644 index 000000000..7d1d54de9 --- /dev/null +++ b/playground/basic/content/99.query-playground.md @@ -0,0 +1,6 @@ +--- +title: Query Playground +--- + +::query-playground +:: diff --git a/playground/content/_partials/cards.yml b/playground/basic/content/_partials/cards.yml similarity index 100% rename from playground/content/_partials/cards.yml rename to playground/basic/content/_partials/cards.yml diff --git a/playground/content/_partials/hello-world.md b/playground/basic/content/_partials/hello-world.md similarity index 100% rename from playground/content/_partials/hello-world.md rename to playground/basic/content/_partials/hello-world.md diff --git a/playground/basic/nuxt.config.ts b/playground/basic/nuxt.config.ts new file mode 100644 index 000000000..664e5d46c --- /dev/null +++ b/playground/basic/nuxt.config.ts @@ -0,0 +1,15 @@ +import { defineNuxtConfig } from 'nuxt' +import { resolve } from 'pathe' + +export default defineNuxtConfig({ + extends: ['../shared'], + content: { + sources: { + 'translation-fa': { + prefix: '/fa', + driver: 'fs', + base: resolve(__dirname, 'content-fa') + } + } + } +}) diff --git a/playground/basic/pages/[...slug].vue b/playground/basic/pages/[...slug].vue new file mode 100644 index 000000000..7abf428fc --- /dev/null +++ b/playground/basic/pages/[...slug].vue @@ -0,0 +1,21 @@ +<template> + <div class="content-page"> + <ContentDoc /> + </div> +</template> + +<script setup lang="ts"> +definePageMeta({ + layout: 'default', + layoutTransition: false +}) +</script> + +<style> +.content-page { + height: calc(100vh - 60px); + max-height: calc(100vh - 60px); + padding: 1rem; + margin: 0; +} +</style> diff --git a/playground/basic/pages/playground.vue b/playground/basic/pages/playground.vue new file mode 100644 index 000000000..5eaf15fbb --- /dev/null +++ b/playground/basic/pages/playground.vue @@ -0,0 +1,21 @@ +<template> + <div class="page"> + <ContentDoc /> + </div> +</template> + +<script setup lang="ts"> +definePageMeta({ + layout: 'default', + layoutTransition: false +}) +</script> + +<style> +.page { + height: calc(100vh - 60px); + max-height: calc(100vh - 60px); + padding: 0; + margin: 0; +} +</style> diff --git a/playground/basic/pages/query-playground.vue b/playground/basic/pages/query-playground.vue new file mode 100644 index 000000000..5eaf15fbb --- /dev/null +++ b/playground/basic/pages/query-playground.vue @@ -0,0 +1,21 @@ +<template> + <div class="page"> + <ContentDoc /> + </div> +</template> + +<script setup lang="ts"> +definePageMeta({ + layout: 'default', + layoutTransition: false +}) +</script> + +<style> +.page { + height: calc(100vh - 60px); + max-height: calc(100vh - 60px); + padding: 0; + margin: 0; +} +</style> diff --git a/playground/public/favicon.ico b/playground/basic/public/favicon.ico similarity index 100% rename from playground/public/favicon.ico rename to playground/basic/public/favicon.ico diff --git a/playground/content/1.index.md b/playground/content/1.index.md deleted file mode 100644 index 93a521733..000000000 --- a/playground/content/1.index.md +++ /dev/null @@ -1,9 +0,0 @@ -# Hello World! - -Index page. - -- [Playground](/playground) -- [Query Builder](/query) -- [Sandbox](/sandbox) -- [Empty](/empty) -- [Not found](/not-found) diff --git a/playground/content/_test.md b/playground/content/_test.md deleted file mode 100644 index 66ef82ff4..000000000 --- a/playground/content/_test.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -navigation: false ---- - -# Hello World! - -This is a test page! diff --git a/playground/content/features/4.navigation.md b/playground/content/features/4.navigation.md deleted file mode 100644 index cc0be1e56..000000000 --- a/playground/content/features/4.navigation.md +++ /dev/null @@ -1 +0,0 @@ -# Hello World! diff --git a/playground/content/toto.md b/playground/content/toto.md deleted file mode 100644 index 9693fa796..000000000 --- a/playground/content/toto.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -_path: '/titi' ---- - -# Toto 2 diff --git a/playground/document-driven/app.vue b/playground/document-driven/app.vue new file mode 100644 index 000000000..7b5d3519f --- /dev/null +++ b/playground/document-driven/app.vue @@ -0,0 +1,6 @@ +<template> + <div> + <NuxtLoadingBar /> + <NuxtPage /> + </div> +</template> diff --git a/playground/document-driven/components/content/Alert.vue b/playground/document-driven/components/content/Alert.vue new file mode 100644 index 000000000..68ed37208 --- /dev/null +++ b/playground/document-driven/components/content/Alert.vue @@ -0,0 +1,17 @@ +<template> + <div> + <div style="display: flex; align-items: center"> + <div style="font-size: 64px;"> + ❕ + </div> + <div> + <h3 style="margin: 0"> + <ContentSlot :use="$slots.title" unwrap="p" /> + </h3> + <div> + <ContentSlot :use="$slots.default" unwrap="p" /> + </div> + </div> + </div> + </div> +</template> diff --git a/playground/document-driven/components/content/Debug.vue b/playground/document-driven/components/content/Debug.vue new file mode 100644 index 000000000..e3ff624d4 --- /dev/null +++ b/playground/document-driven/components/content/Debug.vue @@ -0,0 +1,36 @@ +<template> + <div> + <h3 style="margin: 0 !important;"> + useContent().navigation + </h3> + <pre style="padding: 1rem; border-radius: 16px;">{{ navigation }}</pre> + + <h3 style="margin: 0 !important;"> + useContent().page + </h3> + <pre style="padding: 1rem; border-radius: 16px;">{{ page }}</pre> + + <h3 style="margin: 0 !important;"> + useContent().surround + </h3> + <pre style="padding: 1rem; border-radius: 16px;">{{ surround }}</pre> + + <h3 style="margin: 0 !important;"> + useContent().globals + </h3> + <pre style="padding: 1rem; border-radius: 16px;">{{ globals }}</pre> + + <h3 style="margin: 0 !important;"> + useTheme() + </h3> + <pre style="padding: 1rem; border-radius: 16px;">{{ theme }}</pre> + </div> +</template> + +<script setup lang="ts"> +import { useContent, useTheme } from '#imports' + +const { globals, surround, page, navigation } = useContent() + +const theme = useTheme() +</script> diff --git a/playground/document-driven/components/content/Hello.vue b/playground/document-driven/components/content/Hello.vue new file mode 100644 index 000000000..8d362f52c --- /dev/null +++ b/playground/document-driven/components/content/Hello.vue @@ -0,0 +1,6 @@ +<template> + <div> + <h1>Hello</h1> + <slot /> + </div> +</template> diff --git a/playground/document-driven/components/content/List.vue b/playground/document-driven/components/content/List.vue new file mode 100644 index 000000000..0115bdfd5 --- /dev/null +++ b/playground/document-driven/components/content/List.vue @@ -0,0 +1,14 @@ +<script setup lang="ts"> +// Utils from Nuxt Content +const { flatUnwrap } = useUnwrap() + +</script> + +<template> + <ul> + <li v-for="(item, index) of flatUnwrap($slots.default(), ['ul'])" :key="index"> + ☑︎ + <span><ContentSlot :use="() => item" unwrap="li" /></span> + </li> + </ul> +</template> diff --git a/playground/document-driven/composables/useTheme.ts b/playground/document-driven/composables/useTheme.ts new file mode 100644 index 000000000..9a707d114 --- /dev/null +++ b/playground/document-driven/composables/useTheme.ts @@ -0,0 +1,9 @@ +import { useContent } from '#imports' + +export const useTheme = () => { + const { globals } = useContent() + + const theme = computed(() => globals.value?.theme) + + return theme +} diff --git a/playground/document-driven/content/0.index.md b/playground/document-driven/content/0.index.md new file mode 100644 index 000000000..44f53e268 --- /dev/null +++ b/playground/document-driven/content/0.index.md @@ -0,0 +1,12 @@ +--- +head.titleTemplate: '%s | TEST' +title: Hello World +description: Hello, here is a description +image: 'https://picsum.photos/400/200' +--- + +# Home + +Hello World! + +[404](/404) diff --git a/playground/document-driven/content/1.debug.md b/playground/document-driven/content/1.debug.md new file mode 100644 index 000000000..c594ec203 --- /dev/null +++ b/playground/document-driven/content/1.debug.md @@ -0,0 +1,6 @@ +# Debug + +::debug +:: + +`useTheme()` is built on top of `globals` key. diff --git a/playground/document-driven/content/10.alert.md b/playground/document-driven/content/10.alert.md new file mode 100644 index 000000000..0368020c9 --- /dev/null +++ b/playground/document-driven/content/10.alert.md @@ -0,0 +1,10 @@ +--- +layout: blog +--- + +::alert{icon="ph:circle-wavy-warning-duotone"} +#title +This is an alert +#default +This is the default content of my alert! +:: diff --git a/playground/document-driven/content/2.layout.md b/playground/document-driven/content/2.layout.md new file mode 100644 index 000000000..cb2e7fc50 --- /dev/null +++ b/playground/document-driven/content/2.layout.md @@ -0,0 +1,9 @@ +--- +layout: reversed +--- + +# Layout + +This page uses `reversed` layout. + +Navigation should be on bottom. diff --git a/playground/document-driven/content/4.redirect.md b/playground/document-driven/content/4.redirect.md new file mode 100644 index 000000000..ab2cf733c --- /dev/null +++ b/playground/document-driven/content/4.redirect.md @@ -0,0 +1,5 @@ +--- +redirect: /redirect-target +--- + +This page should redirect to `/redirect-target`. diff --git a/playground/document-driven/content/5.redirect-target.md b/playground/document-driven/content/5.redirect-target.md new file mode 100644 index 000000000..d6cb603bc --- /dev/null +++ b/playground/document-driven/content/5.redirect-target.md @@ -0,0 +1,13 @@ +--- +navigation: false +--- + +You have been redirect to this page from `/redirect`. + +It uses: + +```md +--- +redirect: /redirect-target +--- +``` diff --git a/playground/document-driven/content/6.empty-file.md b/playground/document-driven/content/6.empty-file.md new file mode 100644 index 000000000..e69de29bb diff --git a/playground/document-driven/content/7.vue-file.md b/playground/document-driven/content/7.vue-file.md new file mode 100644 index 000000000..3f043f421 --- /dev/null +++ b/playground/document-driven/content/7.vue-file.md @@ -0,0 +1 @@ +Will use the layout defined in `.vue` file if not defined here. diff --git a/playground/document-driven/content/8.component.md b/playground/document-driven/content/8.component.md new file mode 100644 index 000000000..6727693a4 --- /dev/null +++ b/playground/document-driven/content/8.component.md @@ -0,0 +1,5 @@ +--- +component: Hello +--- + +Will use the `<Hello>` component as wrapper. diff --git a/playground/document-driven/content/9.list.md b/playground/document-driven/content/9.list.md new file mode 100644 index 000000000..b7b5a5974 --- /dev/null +++ b/playground/document-driven/content/9.list.md @@ -0,0 +1,8 @@ +::list +- Item 1 + ::list{icon="ph:check-circle-light"} + - Item 1.1 + - Item 1.2 + :: +- Item 2 +:: diff --git a/playground/document-driven/content/_theme.yml b/playground/document-driven/content/_theme.yml new file mode 100644 index 000000000..4cdafb27e --- /dev/null +++ b/playground/document-driven/content/_theme.yml @@ -0,0 +1 @@ +test: 'Hello World' diff --git a/playground/document-driven/layouts/reversed.vue b/playground/document-driven/layouts/reversed.vue new file mode 100644 index 000000000..96d55c497 --- /dev/null +++ b/playground/document-driven/layouts/reversed.vue @@ -0,0 +1,15 @@ +<template> + <div> + <slot /> + <PageNav /> + </div> +</template> + +<style> +body, html { + margin: 0; + padding: 0; + min-height: 100vh; + min-width: 100vw; +} +</style> diff --git a/playground/document-driven/nuxt.config.ts b/playground/document-driven/nuxt.config.ts new file mode 100644 index 000000000..88146fabc --- /dev/null +++ b/playground/document-driven/nuxt.config.ts @@ -0,0 +1,17 @@ +import { defineNuxtConfig } from 'nuxt' + +export default defineNuxtConfig({ + extends: ['../shared'], + content: { + documentDriven: { + globals: { + theme: { + where: { + _id: 'content:_theme.yml' + }, + without: ['_'] + } + } + } + } +}) diff --git a/playground/document-driven/pages/home.vue b/playground/document-driven/pages/home.vue new file mode 100644 index 000000000..ed3980f0d --- /dev/null +++ b/playground/document-driven/pages/home.vue @@ -0,0 +1,16 @@ +<script setup> +definePageMeta({ + documentDriven: { + page: '/' + } +}) + +const { page } = useContent() +useContentHead(page) +</script> + +<template> + <NuxtLayout name="reversed"> + <ContentRenderer :value="page" /> + </NuxtLayout> +</template> diff --git a/playground/document-driven/pages/vue-file.vue b/playground/document-driven/pages/vue-file.vue new file mode 100644 index 000000000..dd8c14b3b --- /dev/null +++ b/playground/document-driven/pages/vue-file.vue @@ -0,0 +1,16 @@ +<script setup> +definePageMeta({ + documentDriven: { + surround: false + } +}) + +const { page } = useContent() +useContentHead(page) +</script> + +<template> + <NuxtLayout name="reversed"> + <ContentRenderer :value="page" /> + </NuxtLayout> +</template> diff --git a/playground/navigation/app.vue b/playground/navigation/app.vue new file mode 100644 index 000000000..31b7fbe95 --- /dev/null +++ b/playground/navigation/app.vue @@ -0,0 +1,6 @@ +<template> + <div> + <ContentNavigation class="navigation" /> + <NuxtPage /> + </div> +</template> diff --git a/playground/navigation/content/about.md b/playground/navigation/content/about.md new file mode 100644 index 000000000..449429d43 --- /dev/null +++ b/playground/navigation/content/about.md @@ -0,0 +1 @@ +# About diff --git a/playground/navigation/content/index.md b/playground/navigation/content/index.md new file mode 100644 index 000000000..1a7557e04 --- /dev/null +++ b/playground/navigation/content/index.md @@ -0,0 +1,5 @@ +--- +title: Home +--- + +# Hello World diff --git a/playground/navigation/content/resources/_dir.yml b/playground/navigation/content/resources/_dir.yml new file mode 100644 index 000000000..9e65ca286 --- /dev/null +++ b/playground/navigation/content/resources/_dir.yml @@ -0,0 +1,2 @@ +navigation: + hello: true diff --git a/playground/navigation/content/resources/case-studies.md b/playground/navigation/content/resources/case-studies.md new file mode 100644 index 000000000..6deb35c71 --- /dev/null +++ b/playground/navigation/content/resources/case-studies.md @@ -0,0 +1,2 @@ +# Case studies + diff --git a/playground/navigation/content/resources/index.md b/playground/navigation/content/resources/index.md new file mode 100644 index 000000000..f1804eaee --- /dev/null +++ b/playground/navigation/content/resources/index.md @@ -0,0 +1,5 @@ +--- +navigation: false +--- + +# Resources diff --git a/playground/navigation/nuxt.config.ts b/playground/navigation/nuxt.config.ts new file mode 100644 index 000000000..06c5155d3 --- /dev/null +++ b/playground/navigation/nuxt.config.ts @@ -0,0 +1,9 @@ +import { defineNuxtConfig } from 'nuxt' +import contentModule from '../../src/module' // eslint-disable-line + +export default defineNuxtConfig({ + modules: [contentModule], + content: { + documentDriven: true + } +}) diff --git a/playground/pages/[...slug].vue b/playground/pages/[...slug].vue deleted file mode 100644 index 693f07c87..000000000 --- a/playground/pages/[...slug].vue +++ /dev/null @@ -1,5 +0,0 @@ -<template> - <div style="padding: 1rem;"> - <ContentDoc /> - </div> -</template> diff --git a/playground/pages/sandbox.vue b/playground/pages/sandbox.vue deleted file mode 100644 index e06fd2925..000000000 --- a/playground/pages/sandbox.vue +++ /dev/null @@ -1,28 +0,0 @@ -<template> - <div> - <!-- This showcases renderless usage of <ContentDoc /> component--> - <ContentDoc tag="div" path="/_test"> - <template #default="{ doc }"> - <pre>{{ doc }}</pre> - - <h1>Using ContentRenderer:</h1> - - <ContentRenderer :value="doc" /> - </template> - - <template #empty> - <div> - Hello empty - </div> - </template> - - <template #not-found> - <div> - Hello not found - </div> - </template> - </ContentDoc> - - <ContentList /> - </div> -</template> diff --git a/playground/components/NavItem.vue b/playground/shared/components/NavItem.vue similarity index 84% rename from playground/components/NavItem.vue rename to playground/shared/components/NavItem.vue index af9bc8a49..716c51d19 100644 --- a/playground/components/NavItem.vue +++ b/playground/shared/components/NavItem.vue @@ -1,10 +1,10 @@ <script setup lang="ts"> -const { navItem } = defineProps<{ +const props = defineProps<{ navItem: any }>() const icon = computed(() => { - if (navItem.icon) { return navItem.icon } - if (navItem.children && navItem.children.length) { return '📁' } + if (props.navItem.icon) { return props.navItem.icon } + if (props.navItem.children && props.navItem.children.length) { return '📁' } return '📄' }) </script> diff --git a/playground/components/NuxtLoadingBar.vue b/playground/shared/components/NuxtLoadingBar.vue similarity index 100% rename from playground/components/NuxtLoadingBar.vue rename to playground/shared/components/NuxtLoadingBar.vue diff --git a/playground/components/PageNav.vue b/playground/shared/components/PageNav.vue similarity index 52% rename from playground/components/PageNav.vue rename to playground/shared/components/PageNav.vue index 503cb29ab..c412fde55 100644 --- a/playground/components/PageNav.vue +++ b/playground/shared/components/PageNav.vue @@ -15,18 +15,18 @@ watch( <template> <ContentNavigation v-slot="{ navigation }"> - <details ref="navEl" style="padding: 1rem; margin-bottom: 0 !important;"> - <summary> - <NuxtLink to="/"> + <details ref="navEl" style="margin: 0 !important; padding: 0 !important; user-select: none;"> + <summary style="height: 59px !important; display: flex; align-items: center; margin-bottom 0 !important;"> + <NuxtLink style="margin-left: 1rem;" to="/"> Navigation </NuxtLink> </summary> - <span>📌 Current page: <b>{{ $route.path }}</b></span> - <ul> - <NavItem :nav-item="{ path: '/playground', title: 'Playground', icon: '📝' }" /> - <NavItem v-for="item of navigation" :key="item._path" :nav-item="item" /> - </ul> + <div style="padding: 0 1rem; margin-top: -1rem;"> + <ul> + <NavItem v-for="item of navigation" :key="item._path" :nav-item="item" /> + </ul> + </div> </details> </ContentNavigation> </template> diff --git a/playground/components/PagePrevNext.vue b/playground/shared/components/PagePrevNext.vue similarity index 100% rename from playground/components/PagePrevNext.vue rename to playground/shared/components/PagePrevNext.vue diff --git a/playground/pages/playground.vue b/playground/shared/components/Playground.vue similarity index 75% rename from playground/pages/playground.vue rename to playground/shared/components/Playground.vue index 7071bca27..d34277f20 100644 --- a/playground/pages/playground.vue +++ b/playground/shared/components/Playground.vue @@ -1,7 +1,14 @@ <script setup> -const PARSE_SERVER = 'https://mdc.nuxt.dev/api/parse' +import { ref, useAsyncData } from '#imports' +const PARSE_SERVER = 'http://localhost:3000/api/parse' -const INITIAL_CODE = `# MDC +const INITIAL_CODE = `--- +title: MDC +cover: https://nuxtjs.org/design-kit/colored-logo.svg +--- +:img{:src="cover"} + +# {{ $doc.title }} MDC stands for _**M**ark**D**own **C**omponents_. @@ -10,6 +17,23 @@ This syntax supercharges regular Markdown to write documents interacting deeply ## Next steps - [Install Nuxt Content](/get-started) - [Explore the MDC syntax](/guide/writing/mdc) + + +You are visiting document: **{{ $doc._id }}**. +Current route is: **{{ $route.path }}** + + +::alert +--- +type: success +--- +This is an alert for _**{{ type }}**_ +:: + +::alert{type="danger"} +This is an alert for _**{{ type }}**_ +:: + ` const content = ref(INITIAL_CODE) @@ -48,6 +72,7 @@ const tabs = ref(['Preview', 'AST']) {{ name }} </button> </div> + <ContentRenderer v-if="tab === 'Preview'" :value="doc"> <template #empty> <div>Content is empty.</div> @@ -58,23 +83,26 @@ const tabs = ref(['Preview', 'AST']) </div> </template> -<style lang="postcss" scoped> +<style scoped> .playground { display: flex; align-items: stretch; + flex: 1; + height: calc(100vh - 60px); + max-height: calc(100vh - 60px); } .playground textarea { flex: 1; - min-height: 100vh; - width: 50%; + width: 100%; + height: 100%; border-radius: 0; } .playground .content { flex: 1; width: 50%; - min-height: 100vh; + overflow-y: auto; padding: 1rem; } diff --git a/playground/pages/query.vue b/playground/shared/components/QueryPlayground.vue similarity index 73% rename from playground/pages/query.vue rename to playground/shared/components/QueryPlayground.vue index cbf372bb1..3f7c9c5d4 100644 --- a/playground/pages/query.vue +++ b/playground/shared/components/QueryPlayground.vue @@ -1,4 +1,6 @@ <script setup lang="ts"> +import { ref, useAsyncData, queryContent } from '#imports' + const query = ref({ where: { _partial: false @@ -11,6 +13,7 @@ const query = ref({ skip: 0, limit: 10 }) + const qs = ref(JSON.stringify(query.value, null, 2, '')) const parseError = ref(null) const textarea = ref(null) @@ -38,6 +41,7 @@ const tabber = (event) => { event.target.selectionEnd = event.target.selectionStart = originalSelectionStart + 2 }) } + const enterer = (event) => { const originalSelectionStart = event.target.selectionStart const startText = qs.value.slice(0, event.target.selectionStart) @@ -61,17 +65,21 @@ const enterer = (event) => { </script> <template> - <div> - <div style="padding: 5px 20px;"> - <span v-if="parseError" style="color: orange;"> - {{ parseError }} - </span> - <span v-else style="color: green;"> - JSON valid. - </span> - </div> + <div + class="query-playground" + style="height: calc(100vh - 60px); max-height: calc(100vh - 60px); display: flex; flex-direction: column;" + > <div class="query-builder"> - <textarea ref="textarea" v-model="qs" @keydown.enter.prevent="enterer($event)" @keydown.tab.prevent="tabber($event)" /> + <div class="editor"> + <span v-if="parseError" style="color: orange; margin-left: 1rem;"> + {{ parseError }} + </span> + <span v-else style="color: green; margin-left: 1rem;"> + JSON valid. + </span> + <textarea ref="textarea" v-model="qs" @keydown.enter.prevent="enterer($event)" @keydown.tab.prevent="tabber($event)" /> + </div> + <pre>{{ docs }}</pre> </div> </div> @@ -81,19 +89,27 @@ const enterer = (event) => { .query-builder { display: flex; align-items: stretch; + height: 100%; + flex: 1; } -.query-builder textarea { +.query-builder .editor { + display: flex; + flex-direction: column; flex: 1; - min-height: 100vh; width: 50%; border-radius: 0; } +.query-builder .editor textarea { + flex: 1; + margin-bottom: 0; +} + .query-builder pre { flex: 1; width: 50%; - min-height: 100vh; padding: 1rem; + margin-bottom: 0; } </style> diff --git a/playground/components/content/Alert.vue b/playground/shared/components/content/Alert.vue similarity index 75% rename from playground/components/content/Alert.vue rename to playground/shared/components/content/Alert.vue index 8a45c3207..2d2b1332d 100644 --- a/playground/components/content/Alert.vue +++ b/playground/shared/components/content/Alert.vue @@ -1,6 +1,6 @@ <template> <div class="alert"> - <Markdown :use="$slots.default" unwrap="p" /> + <ContentSlot :use="$slots.default" unwrap="p" /> </div> </template> diff --git a/playground/components/content/MarkdownBetween.vue b/playground/shared/components/content/MarkdownBetween.vue similarity index 51% rename from playground/components/content/MarkdownBetween.vue rename to playground/shared/components/content/MarkdownBetween.vue index c6a7d685e..b0ddca65e 100644 --- a/playground/components/content/MarkdownBetween.vue +++ b/playground/shared/components/content/MarkdownBetween.vue @@ -1,7 +1,7 @@ <template> - <Markdown unwrap="ul li"> + <ContentSlot :use="$slots.default" unwrap="ul li"> <template #between> <br> </template> - </Markdown> + </ContentSlot> </template> diff --git a/playground/components/content/PageList.vue b/playground/shared/components/content/PageList.vue similarity index 100% rename from playground/components/content/PageList.vue rename to playground/shared/components/content/PageList.vue diff --git a/playground/components/content/YamlList.vue b/playground/shared/components/content/YamlList.vue similarity index 100% rename from playground/components/content/YamlList.vue rename to playground/shared/components/content/YamlList.vue diff --git a/playground/shared/layouts/blog.vue b/playground/shared/layouts/blog.vue new file mode 100644 index 000000000..2c834a893 --- /dev/null +++ b/playground/shared/layouts/blog.vue @@ -0,0 +1,18 @@ +<template> + <div style="max-width: 680px; margin: 0 auto"> + <NuxtLoadingBar /> + + <PageNav /> + + <slot /> + </div> +</template> + +<style> +body, html { + margin: 0; + padding: 0; + min-height: 100vh; + min-width: 100vw; +} +</style> diff --git a/playground/shared/layouts/default.vue b/playground/shared/layouts/default.vue new file mode 100644 index 000000000..a14b00bcb --- /dev/null +++ b/playground/shared/layouts/default.vue @@ -0,0 +1,15 @@ +<template> + <div> + <PageNav /> + <slot /> + </div> +</template> + +<style> +body, html { + margin: 0; + padding: 0; + min-height: 100vh; + min-width: 100vw; +} +</style> diff --git a/playground/nuxt.config.ts b/playground/shared/nuxt.config.ts similarity index 51% rename from playground/nuxt.config.ts rename to playground/shared/nuxt.config.ts index 160ca9795..80e55a202 100644 --- a/playground/nuxt.config.ts +++ b/playground/shared/nuxt.config.ts @@ -1,6 +1,10 @@ +import { fileURLToPath } from 'url' import { defineNuxtConfig } from 'nuxt' import { resolve } from 'pathe' -import contentModule from '../src/module' // eslint-disable-line +import contentModule from '../../src/module' // eslint-disable-line + +const themeDir = fileURLToPath(new URL('./', import.meta.url)) +const resolveThemeDir = (path: string) => resolve(themeDir, path) export default defineNuxtConfig({ app: { @@ -13,20 +17,21 @@ export default defineNuxtConfig({ ] } }, - rootDir: __dirname, - modules: [contentModule, '@nuxthq/admin'], + components: [ + { + global: true, + path: resolveThemeDir('./components') + }, + { + global: true, + path: resolveThemeDir('./components/content') + } + ], + modules: [contentModule], content: { navigation: { fields: ['icon'] }, - sources: [ - { - name: 'translation-fa', - prefix: '/fa', - driver: 'fs', - base: resolve(__dirname, 'content-fa') - } - ], highlight: { theme: 'one-dark-pro', preload: ['json', 'js', 'ts', 'html', 'css', 'vue'] diff --git a/playground/shared/pages/404/index.vue b/playground/shared/pages/404/index.vue new file mode 100644 index 000000000..8b6497af4 --- /dev/null +++ b/playground/shared/pages/404/index.vue @@ -0,0 +1,6 @@ +<template> + <div class="container"> + <h1>404</h1> + <p>Page not found</p> + </div> +</template> diff --git a/playground/server/api/parse.ts b/playground/shared/server/api/parse.ts similarity index 100% rename from playground/server/api/parse.ts rename to playground/shared/server/api/parse.ts diff --git a/scripts/fixture.sh b/scripts/fixture.sh new file mode 100755 index 000000000..a46462b1b --- /dev/null +++ b/scripts/fixture.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +CWD=$(pwd) +ARG1=${1:-basic} +FIXTURE_PATH=$CWD/test/fixtures/$ARG1 + +(cd $FIXTURE_PATH && npx nuxi dev) diff --git a/scripts/playground.sh b/scripts/playground.sh new file mode 100755 index 000000000..084404345 --- /dev/null +++ b/scripts/playground.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +CWD=$(pwd) +ARG1=${1:-basic} +PLAYGROUND_PATH=$CWD/playground/$ARG1 + +if [[ $ARG1 == docs ]] +then +PLAYGROUND_PATH=$CWD/docs +(cd $PLAYGROUND_PATH && npx nuxi dev) +else +(cd $PLAYGROUND_PATH && npx nuxi dev) +fi diff --git a/scripts/test.sh b/scripts/test.sh new file mode 100755 index 000000000..633fb44f6 --- /dev/null +++ b/scripts/test.sh @@ -0,0 +1,21 @@ +#!/bin/bash + +CWD=$(pwd) +ARG1=${1} + +# Remove all .nuxt directories in the test/fixtures directory +for d in $(find $CWD/test/fixtures -maxdepth 1 -mindepth 1 -type d); do + cd $d + rm -rf .nuxt + npx nuxi prepare + cd $CWD +done + +if [[ $ARG1 ]] +then + echo "npx vitest run $ARG1" + (npx vitest run $ARG1.test) +else + echo "npx vitest run" + (npx vitest run) +fi diff --git a/src/module.ts b/src/module.ts index 687f6421f..db3476c54 100644 --- a/src/module.ts +++ b/src/module.ts @@ -4,33 +4,38 @@ import { defineNuxtModule, resolveModule, createResolver, - addAutoImport, + addImports, addComponentsDir, - templateUtils, - useLogger, addTemplate } from '@nuxt/kit' +import { genImport, genSafeVariableName } from 'knitwork' +import type { ListenOptions } from 'listhen' // eslint-disable-next-line import/no-named-as-default import defu from 'defu' import { hash } from 'ohash' -import { join } from 'pathe' +import { join, relative } from 'pathe' import type { Lang as ShikiLang, Theme as ShikiTheme } from 'shiki-es' import { listen } from 'listhen' import type { WatchEvent } from 'unstorage' +import { createStorage } from 'unstorage' +import { withTrailingSlash } from 'ufo' import { name, version } from '../package.json' import { CACHE_VERSION, createWebSocket, + getMountDriver, + logger, MOUNT_PREFIX, processMarkdownOptions, PROSE_TAGS, useContentMounts } from './utils' +import type { MarkdownPlugin, QueryBuilderParams } from './runtime/types' export type MountOptions = { - name: string - prefix?: string driver: 'fs' | 'http' | string + name?: string + prefix?: string [options: string]: any } @@ -47,14 +52,16 @@ export interface ModuleOptions { * * @default true */ - watch: boolean + watch: false | { + ws: Partial<ListenOptions> + } /** * Contents can located in multiple places, in multiple directories or even in remote git repositories. * Using sources option you can tell Content module where to look for contents. * * @default ['content'] */ - sources: Array<string | MountOptions> + sources: Record<string, MountOptions> | Array<string | MountOptions> /** * List of ignore pattern that will be used for excluding content from parsing and rendering. * @@ -101,14 +108,14 @@ export interface ModuleOptions { * * @default [] */ - remarkPlugins?: Array<string | [string, any]> + remarkPlugins?: Array<string | [string, MarkdownPlugin]> | Record<string, false | MarkdownPlugin> /** * Register custom remark plugin to provide new feature into your markdown contents. * Checkout: https://github.com/rehypejs/rehype/blob/main/doc/plugins.md * * @default [] */ - rehypePlugins?: Array<string | [string, any]> + rehypePlugins?: Array<string | [string, MarkdownPlugin]> | Record<string, false | MarkdownPlugin> } /** * Content module uses `shiki` to highlight code blocks. @@ -118,7 +125,10 @@ export interface ModuleOptions { /** * Default theme that will be used for highlighting code blocks. */ - theme?: ShikiTheme, + theme?: ShikiTheme | { + default: ShikiTheme + [theme: string]: ShikiTheme + }, /** * Preloaded languages that will be available for highlighting code blocks. */ @@ -135,7 +145,10 @@ export interface ModuleOptions { * * @default {} */ - csv: false | Record<string, any> + csv: false | { + json?: boolean + delimeter?: string + } /** * Enable/Disable navigation. * @@ -156,7 +169,20 @@ export interface ModuleOptions { * * @default undefined */ - defaultLocale: string + defaultLocale?: string + /** + * Document-driven mode config + */ + documentDriven: boolean | { + page: boolean + navigation: boolean + surround: boolean + globals: { + [key: string]: QueryBuilderParams + } + layoutFallbacks: string[] + injectPage: boolean + } } interface ContentContext extends ModuleOptions { @@ -179,8 +205,13 @@ export default defineNuxtModule<ModuleOptions>({ }, defaults: { base: '_content', - watch: true, - sources: ['content'], + watch: { + ws: { + port: 4000, + showURL: false + } + }, + sources: {}, ignores: ['\\.', '-'], locales: [], defaultLocale: undefined, @@ -189,26 +220,20 @@ export default defineNuxtModule<ModuleOptions>({ tags: Object.fromEntries(PROSE_TAGS.map(t => [t, `prose-${t}`])) }, yaml: {}, - csv: {}, + csv: { + delimeter: ',', + json: true + }, navigation: { fields: [] - } + }, + documentDriven: false }, async setup (options, nuxt) { const { resolve } = createResolver(import.meta.url) const resolveRuntimeModule = (path: string) => resolveModule(path, { paths: resolve('./runtime') }) - - const logger = useLogger('@nuxt/content') - const contentContext: ContentContext = { - transformers: [ - // Register internal content plugins - resolveRuntimeModule('./server/transformers/markdown'), - resolveRuntimeModule('./server/transformers/yaml'), - resolveRuntimeModule('./server/transformers/json'), - resolveRuntimeModule('./server/transformers/csv'), - resolveRuntimeModule('./server/transformers/path-meta') - ], + transformers: [], ...options } @@ -223,48 +248,63 @@ export default defineNuxtModule<ModuleOptions>({ } ) } - // Tell Nuxt to ignore content dir for app build - options.sources.forEach((source) => { - if (typeof source === 'string') { - nuxt.options.ignore.push(join('content', '**')) - } - // TODO: handle object format and make sure to ignore urls - }) // Add Content plugin - addPlugin(resolveRuntimeModule('./plugin')) + addPlugin(resolveRuntimeModule('./plugins/ws')) nuxt.hook('nitro:config', (nitroConfig) => { - // Add server handlers + // Init Nitro context + nitroConfig.prerender = nitroConfig.prerender || {} + nitroConfig.prerender.routes = nitroConfig.prerender.routes || [] nitroConfig.handlers = nitroConfig.handlers || [] - nitroConfig.handlers.push({ - method: 'get', - route: `/api/${options.base}/query/:qid`, - handler: resolveRuntimeModule('./server/api/query') - }) - nitroConfig.handlers.push({ - method: 'get', - route: `/api/${options.base}/query`, - handler: resolveRuntimeModule('./server/api/query') - }) - nitroConfig.handlers.push({ - method: 'get', - route: `/api/${options.base}/cache`, - handler: resolveRuntimeModule('./server/api/cache') - }) + + // Add server handlers + nitroConfig.handlers.push( + { + method: 'get', + route: `/api/${options.base}/query/:qid`, + handler: resolveRuntimeModule('./server/api/query') + }, + { + method: 'get', + route: `/api/${options.base}/query`, + handler: resolveRuntimeModule('./server/api/query') + }, + { + method: 'get', + route: `/api/${options.base}/cache`, + handler: resolveRuntimeModule('./server/api/cache') + } + ) if (!nuxt.options.dev) { nitroConfig.prerender.routes.push('/api/_content/cache') } + // Register source storages - const sources = useContentMounts(nuxt, contentContext.sources || []) - nitroConfig.devStorage = Object.assign( - nitroConfig.devStorage || {}, - sources - ) + const sources = useContentMounts(nuxt, contentContext.sources) + nitroConfig.devStorage = Object.assign(nitroConfig.devStorage || {}, sources) + nitroConfig.devStorage['cache:content'] = { + driver: 'fs', + base: resolve(nuxt.options.buildDir, 'content-cache') + } + + // Tell Nuxt to ignore content dir for app build + for (const source of Object.values(sources)) { + // Only targets directories inside the srcDir + if (source.driver === 'fs' && source.base.includes(nuxt.options.srcDir)) { + const wildcard = join(source.base, '**/*').replace(withTrailingSlash(nuxt.options.srcDir), '') + nuxt.options.ignore.push( + // Remove `srcDir` from the path + wildcard, + `!${wildcard}.vue` + ) + } + } nitroConfig.bundledStorage = nitroConfig.bundledStorage || [] nitroConfig.bundledStorage.push('/cache/content') + // @ts-ignore nitroConfig.externals = defu(typeof nitroConfig.externals === 'object' ? nitroConfig.externals : {}, { inline: [ // Inline module runtime in Nitro bundle @@ -272,22 +312,29 @@ export default defineNuxtModule<ModuleOptions>({ ] }) + nitroConfig.alias = nitroConfig.alias || {} nitroConfig.alias['#content/server'] = resolveRuntimeModule('./server') + const transformers = contentContext.transformers.map((t) => { + const name = genSafeVariableName(relative(nuxt.options.rootDir, t)).replace(/_(45|46|47)/g, '_') + '_' + hash(t) + return { name, import: genImport(t, name) } + }) + nitroConfig.virtual = nitroConfig.virtual || {} nitroConfig.virtual['#content/virtual/transformers'] = [ - // TODO: remove kit usage - templateUtils.importSources(contentContext.transformers), - `const transformers = [${contentContext.transformers.map(templateUtils.importName).join(', ')}]`, - 'export const getParser = (ext) => transformers.find(p => ext.match(new RegExp(p.extentions.join("|"), "i")) && p.parse)', - 'export const getTransformers = (ext) => transformers.filter(p => ext.match(new RegExp(p.extentions.join("|"), "i")) && p.transform)', + ...transformers.map(t => t.import), + `export const transformers = [${transformers.map(t => t.name).join(', ')}]`, + 'export const getParser = (ext) => transformers.find(p => ext.match(new RegExp(p.extensions.join("|"), "i")) && p.parse)', + 'export const getTransformers = (ext) => transformers.filter(p => ext.match(new RegExp(p.extensions.join("|"), "i")) && p.transform)', 'export default () => {}' ].join('\n') }) // Register composables - addAutoImport([ + addImports([ { name: 'queryContent', as: 'queryContent', from: resolveRuntimeModule('./composables/query') }, + { name: 'useContentHelpers', as: 'useContentHelpers', from: resolveRuntimeModule('./composables/helpers') }, + { name: 'useContentHead', as: 'useContentHead', from: resolveRuntimeModule('./composables/head') }, { name: 'withContentBase', as: 'withContentBase', from: resolveRuntimeModule('./composables/utils') }, { name: 'useUnwrap', as: 'useUnwrap', from: resolveRuntimeModule('./composables/utils') } ]) @@ -301,7 +348,7 @@ export default defineNuxtModule<ModuleOptions>({ global: true }) - addTemplate({ + const typesPath = addTemplate({ filename: 'types/content.d.ts', getContents: () => [ 'declare module \'#content/server\' {', @@ -309,42 +356,47 @@ export default defineNuxtModule<ModuleOptions>({ ` const parseContent: typeof import('${resolve('./runtime/server')}').parseContent`, '}' ].join('\n') - }) + }).dst nuxt.hook('prepare:types', (options) => { - options.references.push({ path: resolve(nuxt.options.buildDir, 'types/content.d.ts') }) + options.references.push({ path: typesPath }) }) // Register user global components - const globalComponents = resolve(nuxt.options.srcDir, 'components/content') - const dirStat = await fs.promises.stat(globalComponents).catch(() => null) - if (dirStat && dirStat.isDirectory()) { - logger.success('Using `~/components/content` for components in Markdown') - nuxt.hook('components:dirs', (dirs) => { - // Unshift to make it before ~/components - dirs.unshift({ - path: globalComponents, - global: true, - pathPrefix: false, - prefix: '' + const _layers = [...nuxt.options._layers].reverse() + for (const layer of _layers) { + const srcDir = layer.config.srcDir + const globalComponents = resolve(srcDir, 'components/content') + const dirStat = await fs.promises.stat(globalComponents).catch(() => null) + if (dirStat && dirStat.isDirectory()) { + if (nuxt.options._layers.length === 1) { + logger.success('Using `~/components/content` for components in Markdown') + } + nuxt.hook('components:dirs', (dirs) => { + dirs.unshift({ + path: globalComponents, + global: true, + pathPrefix: false, + prefix: '' + }) }) - }) - } else { - const componentsDir = resolve(nuxt.options.srcDir, 'components/') - const componentsDirStat = await fs.promises.stat(componentsDir).catch(() => null) - - if (componentsDirStat && componentsDirStat.isDirectory()) { - // TODO: watch for file creation and tell Nuxt to restart - // Not possible for now since directories are hard-coded: https://github.com/nuxt/framework/blob/5b63ae8ad54eeb3cb49479da8f32eacc1a743ca0/packages/nuxi/src/commands/dev.ts#L94 - logger.info('Please create `~/components/content` and restart the Nuxt server to use components in Markdown') + } else if (nuxt.options._layers.length === 1) { + const componentsDir = resolve(srcDir, 'components/') + const componentsDirStat = await fs.promises.stat(componentsDir).catch(() => null) + if (componentsDirStat && componentsDirStat.isDirectory()) { + // TODO: watch for file creation and tell Nuxt to restart + // Not possible for now since directories are hard-coded: https://github.com/nuxt/framework/blob/5b63ae8ad54eeb3cb49479da8f32eacc1a743ca0/packages/nuxi/src/commands/dev.ts#L94 + logger.info('Please create `~/components/content` and restart the Nuxt server to use components in Markdown') + } } } // Register navigation if (options.navigation) { - addAutoImport({ name: 'fetchContentNavigation', as: 'fetchContentNavigation', from: resolveRuntimeModule('./composables/navigation') }) + addImports({ name: 'fetchContentNavigation', as: 'fetchContentNavigation', from: resolveRuntimeModule('./composables/navigation') }) nuxt.hook('nitro:config', (nitroConfig) => { + nitroConfig.handlers = nitroConfig.handlers || [] nitroConfig.handlers.push({ method: 'get', route: `/api/${options.base}/navigation/:qid`, @@ -360,9 +412,12 @@ export default defineNuxtModule<ModuleOptions>({ // Register highlighter if (options.highlight) { - contentContext.transformers.push(resolveRuntimeModule('./server/transformers/shiki')) + contentContext.transformers.push(resolveRuntimeModule('./transformers/shiki')) + // @ts-ignore + contentContext.highlight.apiURL = `/api/${options.base}/highlight` nuxt.hook('nitro:config', (nitroConfig) => { + nitroConfig.handlers = nitroConfig.handlers || [] nitroConfig.handlers.push({ method: 'post', route: `/api/${options.base}/highlight`, @@ -371,13 +426,83 @@ export default defineNuxtModule<ModuleOptions>({ }) } + // Register document-driven + if (options.documentDriven) { + // Enable every feature by default + const defaultDocumentDrivenConfig = { + page: true, + navigation: true, + surround: true, + globals: {}, + layoutFallbacks: ['theme'], + injectPage: true + } + + // If set to true, use defaults else merge defaults with user config + if (options.documentDriven === true) { + options.documentDriven = defaultDocumentDrivenConfig + } else { + options.documentDriven = { + ...defaultDocumentDrivenConfig, + ...options.documentDriven + } + } + + // Support layout field by default + if (options.navigation) { + options.navigation.fields.push('layout') + } + + addImports([ + { name: 'useContentState', as: 'useContentState', from: resolveRuntimeModule('./composables/content') }, + { name: 'useContent', as: 'useContent', from: resolveRuntimeModule('./composables/content') } + ]) + + addPlugin(resolveRuntimeModule('./plugins/documentDriven')) + + if (options.documentDriven.injectPage) { + nuxt.options.pages = true + + nuxt.hook('pages:extend', (pages) => { + // Respect user's custom catch-all page + if (!pages.find(page => page.path === '/:slug(.*)*')) { + pages.unshift({ + name: 'slug', + path: '/:slug(.*)*', + file: resolveRuntimeModule('./pages/document-driven.vue'), + children: [] + }) + } + }) + nuxt.hook('app:resolve', async (app) => { + if (app.mainComponent?.includes('@nuxt/ui-templates')) { + app.mainComponent = resolveRuntimeModule('./app.vue') + } else { + const appContent = await fs.promises.readFile(app.mainComponent!, { encoding: 'utf-8' }) + if (appContent.includes('<NuxtLayout') || appContent.includes('<nuxt-layout')) { + logger.warn([ + 'Using `<NuxtLayout>` inside `app.vue` will cause unwanted layout shifting in your application.', + 'Consider removing `<NuxtLayout>` from `app.vue` and using it in your pages.' + ].join('')) + } + } + }) + } + } else { + // Noop useContent + addImports([ + { name: 'useContentDisabled', as: 'useContentState', from: resolveRuntimeModule('./composables/utils') }, + { name: 'useContentDisabled', as: 'useContent', from: resolveRuntimeModule('./composables/utils') } + ]) + } + // @ts-ignore await nuxt.callHook('content:context', contentContext) contentContext.defaultLocale = contentContext.defaultLocale || contentContext.locales[0] // Generate cache integerity based on content context - const cacheIntegerity = hash({ + const cacheIntegrity = hash({ locales: options.locales, options: options.defaultLocale, markdown: options.markdown, @@ -392,21 +517,66 @@ export default defineNuxtModule<ModuleOptions>({ // Tags will use in markdown renderer for component replacement tags: contentContext.markdown.tags as any, highlight: options.highlight as any, - wsUrl: '' + wsUrl: '', + // Document-driven configuration + documentDriven: options.documentDriven as ModuleOptions['documentDriven'] }) + // Context will use in server nuxt.options.runtimeConfig.content = { cacheVersion: CACHE_VERSION, - cacheIntegerity, + cacheIntegrity, ...contentContext as any } + // @nuxtjs/tailwindcss support + // @ts-ignore - Module might not exist + nuxt.hook('tailwindcss:config', (tailwindConfig) => { + tailwindConfig.content = tailwindConfig.content ?? [] + tailwindConfig.content.push(resolve(nuxt.options.buildDir, 'content-cache', 'parsed/**/*.md')) + }) + // Setup content dev module - if (!nuxt.options.dev || !options.watch) { + if (!nuxt.options.dev) { + nuxt.hook('build:before', async () => { + const storage = createStorage() + const sources = useContentMounts(nuxt, contentContext.sources) + sources['cache:content'] = { + driver: 'fs', + base: resolve(nuxt.options.buildDir, 'content-cache') + } + for (const [key, source] of Object.entries(sources)) { + storage.mount(key, getMountDriver(source)) + } + let keys = await storage.getKeys('content:source') + + // Filter invalid characters & ignore patterns + const invalidKeyCharacters = "'\"?#/".split('') + const contentIgnores: Array<RegExp> = contentContext.ignores.map((p: any) => + typeof p === 'string' ? new RegExp(`^${p}|:${p}`) : p + ) + keys = keys.filter((key) => { + if (key.startsWith('preview:') || contentIgnores.some(prefix => prefix.test(key))) { + return false + } + if (invalidKeyCharacters.some(ik => key.includes(ik))) { + return false + } + return true + }) + await Promise.all( + keys.map(async key => await storage.setItem( + `cache:content:parsed:${key.substring(15)}`, + await storage.getItem(key) + )) + ) + }) return } nuxt.hook('nitro:init', async (nitro) => { + if (!options.watch || !options.watch.ws) { return } + const ws = createWebSocket() // Dispose storage on nuxt close @@ -415,19 +585,24 @@ export default defineNuxtModule<ModuleOptions>({ }) // Listen dev server - const { server, url } = await listen(() => 'Nuxt Content', { port: 4000, showURL: false }) + const { server, url } = await listen(() => 'Nuxt Content', options.watch.ws) + server.on('upgrade', ws.serve) // Register ws url nitro.options.runtimeConfig.public.content.wsUrl = url.replace('http', 'ws') // Watch contents - await nitro.storage.watch((event: WatchEvent, key: string) => { + await nitro.storage.watch(async (event: WatchEvent, key: string) => { // Ignore events that are not related to content if (!key.startsWith(MOUNT_PREFIX)) { return } key = key.substring(MOUNT_PREFIX.length) + + // Remove content Index + await nitro.storage.removeItem('cache:content:content-index.json') + // Broadcast a message to the server to refresh the page ws.broadcast({ event, key }) }) @@ -453,7 +628,7 @@ interface ModulePrivateRuntimeConfig { * This is used to invalidate cache when the format changes. */ cacheVersion: string; - cacheIntegerity: string; + cacheIntegrity: string; } declare module '@nuxt/schema' { diff --git a/src/runtime/app.vue b/src/runtime/app.vue new file mode 100644 index 000000000..8f62b8bf9 --- /dev/null +++ b/src/runtime/app.vue @@ -0,0 +1,3 @@ +<template> + <NuxtPage /> +</template> diff --git a/src/runtime/components/ContentDoc.ts b/src/runtime/components/ContentDoc.vue similarity index 66% rename from src/runtime/components/ContentDoc.ts rename to src/runtime/components/ContentDoc.vue index 5ee670203..2436395c7 100644 --- a/src/runtime/components/ContentDoc.ts +++ b/src/runtime/components/ContentDoc.vue @@ -1,11 +1,12 @@ - -import { PropType, defineComponent, h, useSlots, nextTick } from 'vue' +<script lang="ts"> +import { PropType, defineComponent, h, useSlots } from 'vue' import type { QueryBuilderParams } from '../types' import ContentRenderer from './ContentRenderer' import ContentQuery from './ContentQuery' -import { useRoute, useHead } from '#imports' +import { useRoute, useContentHead } from '#imports' export default defineComponent({ + name: 'ContentDoc', props: { /** * Renderer props @@ -51,41 +52,36 @@ export default defineComponent({ type: Object as PropType<QueryBuilderParams>, required: false, default: undefined + }, + + /** + * Whether or not to map the document data to the `head` property. + */ + head: { + type: Boolean, + required: false, + default: true } }, + + /** + * Document empty fallback + * @slot empty + */ + /** + * Document not found fallback + * @slot not-found + */ render (ctx) { const slots = useSlots() - const { tag, excerpt, path, query } = ctx + const { tag, excerpt, path, query, head } = ctx // Merge local `path` props and apply `findOne` query default. const contentQueryProps = Object.assign(query || {}, { path, find: 'one' }) const emptyNode = (slot: string, data: any) => h('pre', null, JSON.stringify({ message: 'You should use slots with <ContentDoc>', slot, data }, null, 2)) - const addHead = (doc: any) => { - if (path !== useRoute().path) { return } - const head = Object.assign({}, doc.head) - head.title = head.title || doc.title - head.meta = head.meta || [] - const description = head.description || doc.description - // Shortcut for head.description - if (description && head.meta.filter(m => m.name === 'description').length === 0) { - head.meta.push({ - name: 'description', - content: description - }) - } - // Shortcut for head.image to og:image in meta - if (head.image && head.meta.filter(m => m.property === 'og:image').length === 0) { - head.meta.push({ - property: 'og:image', - content: head.image - }) - } - if (process.client) { nextTick(() => useHead(head)) } else { useHead(head) } - } - return h( ContentQuery, contentQueryProps, @@ -93,11 +89,13 @@ export default defineComponent({ // Default slot default: slots?.default ? ({ data, refresh, isPartial }) => { - addHead(data) - return slots.default({ doc: data, refresh, isPartial, excerpt, ...this.$attrs }) + if (head) { useContentHead(data) } + + return slots.default?.({ doc: data, refresh, isPartial, excerpt, ...this.$attrs }) } : ({ data }) => { - addHead(data) + if (head) { useContentHead(data) } + return h( ContentRenderer, { value: data, excerpt, tag, ...this.$attrs }, @@ -113,3 +111,4 @@ export default defineComponent({ ) } }) +</script> diff --git a/src/runtime/components/ContentList.ts b/src/runtime/components/ContentList.vue similarity index 90% rename from src/runtime/components/ContentList.ts rename to src/runtime/components/ContentList.vue index dd26ac3c2..7f6cd6f5f 100644 --- a/src/runtime/components/ContentList.ts +++ b/src/runtime/components/ContentList.vue @@ -1,9 +1,10 @@ - +<script lang="ts"> import { PropType, defineComponent, h, useSlots } from 'vue' import type { QueryBuilderParams } from '../types' import ContentQuery from './ContentQuery' export default defineComponent({ + name: 'ContentList', props: { /** * Query props @@ -28,6 +29,15 @@ export default defineComponent({ default: undefined } }, + + /** + * Content empty fallback + * @slot empty + */ + /** + * Content not found fallback + * @slot not-found + */ render (ctx) { const slots = useSlots() @@ -54,3 +64,4 @@ export default defineComponent({ ) } }) +</script> diff --git a/src/runtime/components/ContentNavigation.ts b/src/runtime/components/ContentNavigation.ts deleted file mode 100644 index aa7b44a66..000000000 --- a/src/runtime/components/ContentNavigation.ts +++ /dev/null @@ -1,53 +0,0 @@ -import { PropType, toRefs, defineComponent, h, useSlots } from 'vue' -import { hash } from 'ohash' -import type { NavItem, QueryBuilderParams } from '../types' -import { useAsyncData, fetchContentNavigation } from '#imports' - -export default defineComponent({ - props: { - /** - * A query to be passed to `fetchContentNavigation()`. - */ - query: { - type: Object as PropType<QueryBuilderParams>, - required: false, - default: undefined - } - }, - async setup (props) { - const { - query - } = toRefs(props) - - const { data, refresh } = await useAsyncData<NavItem[]>( - `content-navigation-${hash(query.value)}`, - () => fetchContentNavigation(query.value) - ) - - return { - data, - refresh - } - }, - render (ctx) { - const slots = useSlots() - - const { - query, - data, - refresh - } = ctx - - const emptyNode = (slot: string, data: any) => h('pre', null, JSON.stringify({ message: 'You should use slots with <ContentNavigation>', slot, data }, null, 2)) - - // Render empty data object - if (slots?.empty && (!data || !data?.length)) { - return slots?.empty?.({ query, ...this.$attrs }) || emptyNode('empty', { query, data }) - } - - // Render default slot with navigation as `data` - return slots?.default - ? slots.default({ navigation: data, refresh, ...this.$attrs }) - : emptyNode('default', data) - } -}) diff --git a/src/runtime/components/ContentNavigation.vue b/src/runtime/components/ContentNavigation.vue new file mode 100644 index 000000000..164097623 --- /dev/null +++ b/src/runtime/components/ContentNavigation.vue @@ -0,0 +1,79 @@ +<script lang="ts"> +import { PropType, toRefs, defineComponent, h, useSlots, computed } from 'vue' +import { hash } from 'ohash' +import type { NavItem, QueryBuilderParams } from '../types' +import { QueryBuilder } from '../types' +import { useAsyncData, fetchContentNavigation, useState, useContent } from '#imports' +import { NuxtLink } from '#components' + +export default defineComponent({ + name: 'ContentNavigation', + props: { + /** + * A query to be passed to `fetchContentNavigation()`. + */ + query: { + type: Object as PropType<QueryBuilderParams | QueryBuilder>, + required: false, + default: undefined + } + }, + async setup (props) { + const { + query + } = toRefs(props) + + const queryBuilder = computed(() => { + /* + * We need to extract params from a possible QueryBuilder beforehand + * so we don't end up with a duplicate useAsyncData key. + */ + if (typeof query.value?.params === 'function') { + return query.value.params() + } + + return query.value + }) + + // If doc driven mode and no query given, re-use the fetched navigation + if (!queryBuilder.value && useState('dd-navigation').value) { + const { navigation } = useContent() + + return { navigation } + } + const { data: navigation } = await useAsyncData<NavItem[]>( + `content-navigation-${hash(queryBuilder.value)}`, + () => fetchContentNavigation(queryBuilder.value) + ) + return { navigation } + }, + + /** + * Navigation empty fallback + * @slot empty + */ + render (ctx) { + const slots = useSlots() + + const { navigation } = ctx + const renderLink = (link: NavItem) => h(NuxtLink, { to: link._path }, () => link.title) + const renderLinks = (data: NavItem[], level: number) => + h( + 'ul', + level ? { 'data-level': level } : null, + data.map((link) => { + if (link.children) { + return h('li', null, [renderLink(link), renderLinks(link.children, level + 1)]) + } + return h('li', null, renderLink(link)) + }) + ) + const defaultNode = (data: NavItem[]) => renderLinks(data, 0) + + // Render default slot with navigation as `data` + return slots?.default + ? slots.default({ navigation, ...this.$attrs }) + : defaultNode(navigation) + } +}) +</script> diff --git a/src/runtime/components/ContentQuery.ts b/src/runtime/components/ContentQuery.vue similarity index 94% rename from src/runtime/components/ContentQuery.ts rename to src/runtime/components/ContentQuery.vue index 67031e504..11c0a0303 100644 --- a/src/runtime/components/ContentQuery.ts +++ b/src/runtime/components/ContentQuery.vue @@ -1,9 +1,11 @@ +<script lang="ts"> import { hash } from 'ohash' import { PropType, toRefs, defineComponent, h, useSlots } from 'vue' import type { ParsedContent, QueryBuilder, SortParams } from '../types' import { computed, useAsyncData, queryContent } from '#imports' export default defineComponent({ + name: 'ContentQuery', props: { /** * The path of the content to load from content source. @@ -96,7 +98,7 @@ export default defineComponent({ * * Might be skipping `partial: true` marked in Markdown contents front-matter. */ - const isPartial = computed(() => path.value.includes('/_')) + const isPartial = computed(() => path.value?.includes('/_')) const { data, refresh } = await useAsyncData<ParsedContent | ParsedContent[]>( `content-query-${hash(props)}`, @@ -147,6 +149,11 @@ export default defineComponent({ refresh } }, + + /** + * Content not found fallback + * @slot not-found + */ render (ctx) { const slots = useSlots() @@ -187,7 +194,7 @@ export default defineComponent({ if (!data && slots?.['not-found']) { return slots['not-found']({ props, ...this.$attrs }) } // Empty slots for `one` if type is "markdown" refers to an empty `body.children` key. - if (data._type && data._type === 'markdown' && !data?.body?.children.length) { return slots.empty({ props, ...this.$attrs }) } + if (data?._type === 'markdown' && !data?.body?.children.length) { return slots.empty({ props, ...this.$attrs }) } } else if (!data || !data.length) { // Handle `find()` and `findSurround()` @@ -204,3 +211,4 @@ export default defineComponent({ return emptyNode('default', { data, props, isPartial }) } }) +</script> diff --git a/src/runtime/components/ContentRenderer.ts b/src/runtime/components/ContentRenderer.vue similarity index 83% rename from src/runtime/components/ContentRenderer.ts rename to src/runtime/components/ContentRenderer.vue index 9cbe002aa..07699f53e 100644 --- a/src/runtime/components/ContentRenderer.ts +++ b/src/runtime/components/ContentRenderer.vue @@ -1,7 +1,9 @@ +<script lang="ts"> import { defineComponent, watch, h, useSlots } from 'vue' -import MarkdownRenderer from './MarkdownRenderer' +import ContentRendererMarkdown from './ContentRendererMarkdown' export default defineComponent({ + name: 'ContentRenderer', props: { /** * The document to render. @@ -49,15 +51,28 @@ export default defineComponent({ } ) }, + /** + * Content empty fallback + * @slot empty + */ render (ctx) { const slots = useSlots() const { value, excerpt, tag } = ctx - // Use built-in MarkdownRenderer + if (!value && slots?.empty) { + // Fallback on `empty` slot. + return slots.empty({ value, excerpt, tag, ...this.$attrs }) + } + + if (slots?.default) { + return slots.default({ value, excerpt, tag, ...this.$attrs }) + } + + // Use built-in ContentRendererMarkdown if (value && value?._type === 'markdown' && value?.body?.children?.length) { return h( - MarkdownRenderer, + ContentRendererMarkdown, { value, excerpt, @@ -67,16 +82,6 @@ export default defineComponent({ ) } - if (value && slots?.default) { - return slots.default({ value, excerpt, tag, ...this.$attrs }) - } else if (slots?.empty) { - // Fallback on `empty` slot. - return slots.empty({ value, excerpt, tag, ...this.$attrs }) - } else if (slots?.default) { - // Fallback on `default` slot with undefined `value` if no `empty` slot. - return slots.default({ value, excerpt, tag, ...this.$attrs }) - } - // Fallback on JSON.stringify if no slot at all. return h( 'pre', @@ -85,3 +90,4 @@ export default defineComponent({ ) } }) +</script> diff --git a/src/runtime/components/MarkdownRenderer.ts b/src/runtime/components/ContentRendererMarkdown.vue similarity index 66% rename from src/runtime/components/MarkdownRenderer.ts rename to src/runtime/components/ContentRendererMarkdown.vue index aa268ab8d..34a997470 100644 --- a/src/runtime/components/MarkdownRenderer.ts +++ b/src/runtime/components/ContentRendererMarkdown.vue @@ -1,11 +1,12 @@ -import { h, resolveComponent, Text, defineComponent, toRefs } from 'vue' +<script lang="ts"> +import { h, resolveComponent, Text, defineComponent } from 'vue' import destr from 'destr' import { pascalCase } from 'scule' import { find, html } from 'property-information' // eslint-disable-next-line import/no-named-as-default import htmlTags from 'html-tags' import type { VNode, ConcreteComponent } from 'vue' -import { useRuntimeConfig } from '#app' +import { useRuntimeConfig, useRoute } from '#app' import type { MarkdownNode, ParsedContentMeta } from '../types' type CreateElement = typeof h @@ -44,21 +45,30 @@ export default defineComponent({ tag: { type: String, default: 'div' + }, + /** + * The map of custom components to use for rendering. + */ + components: { + type: Object, + default: () => ({}) } }, - setup (props) { + async setup (props) { const { content: { tags = {} } } = useRuntimeConfig().public - // eslint-disable-next-line @typescript-eslint/no-unused-vars - const { tag: _t, value: _d, ...contentProps } = toRefs(props) + await resolveContentComponents(props.value.body, { + tags: { + ...tags, + ...props.value?._components || {}, + ...props.components + } + }) - return { - tags, - contentProps - } + return { tags } }, render (ctx) { - const { tags, tag, value, contentProps } = ctx + const { tags, tag, value, components } = ctx if (!value) { return null @@ -66,14 +76,15 @@ export default defineComponent({ // Get body from value let body = (value.body || value) as MarkdownNode - if (this.excerpt && value.excerpt) { + if (ctx.excerpt && value.excerpt) { body = value.excerpt } const meta: ParsedContentMeta = { ...(value as ParsedContentMeta), tags: { ...tags, - ...value?.tags || {} + ...value?._components || {}, + ...components } } @@ -92,7 +103,6 @@ export default defineComponent({ return h( component as any, { - ...contentProps, ...meta.component?.props, ...this.$attrs }, @@ -106,11 +116,7 @@ export default defineComponent({ /** * Render a markdown node */ -function renderNode (node: MarkdownNode, h: CreateElement, documentMeta: ParsedContentMeta): ContentVNode { - const originalTag = node.tag - // `_ignoreMap` is an special prop to disables tag-mapper - const renderTag: string = (typeof node.props?.__ignoreMap === 'undefined' && documentMeta.tags[node.tag]) || node.tag - +function renderNode (node: MarkdownNode, h: CreateElement, documentMeta: ParsedContentMeta, parentScope: any = {}): ContentVNode { /** * Render Text node */ @@ -118,46 +124,78 @@ function renderNode (node: MarkdownNode, h: CreateElement, documentMeta: ParsedC return h(Text, node.value) } + const originalTag = node.tag! + // `_ignoreMap` is an special prop to disables tag-mapper + const renderTag: string = (typeof node.props?.__ignoreMap === 'undefined' && documentMeta.tags[originalTag]) || originalTag + + if (node.tag === 'binding') { + return renderBinding(node, h, documentMeta, parentScope) + } + const component = resolveVueComponent(renderTag) if (typeof component === 'object') { component.tag = originalTag } + const props = propsToData(node, documentMeta) return h( component as any, - propsToData(node, documentMeta), - renderSlots(node, h, documentMeta) + props, + renderSlots(node, h, documentMeta, { ...parentScope, ...props }) ) } +function renderBinding (node: MarkdownNode, h: CreateElement, documentMeta: ParsedContentMeta, parentScope: any = {}): ContentVNode { + const data = { + ...parentScope, + $route: () => useRoute(), + $document: documentMeta, + $doc: documentMeta + } + const splitter = /\.|\[(\d+)\]/ + const keys = node.props?.value.trim().split(splitter).filter(Boolean) + const value = keys.reduce((data, key) => { + if (key in data) { + if (typeof data[key] === 'function') { + return data[key]() + } else { + return data[key] + } + } + return {} + }, data) + + return h(Text, value) +} + /** * Create slots from `node` template children. */ -function renderSlots (node: MarkdownNode, h: CreateElement, documentMeta: ParsedContentMeta) { +function renderSlots (node: MarkdownNode, h: CreateElement, documentMeta: ParsedContentMeta, parentProps: any): ContentVNode[] { const children: MarkdownNode[] = node.children || [] const slots: Record<string, Array<VNode | string>> = children.reduce((data, node) => { if (!isTemplate(node)) { - data[DEFAULT_SLOT].push(renderNode(node, h, documentMeta)) + data[DEFAULT_SLOT].push(renderNode(node, h, documentMeta, parentProps)) return data } if (isDefaultTemplate(node)) { - data[DEFAULT_SLOT].push(...node.children.map(child => renderNode(child, h, documentMeta))) + data[DEFAULT_SLOT].push(...(node.children || []).map(child => renderNode(child, h, documentMeta, parentProps))) return data } const slotName = getSlotName(node) - data[slotName] = node.children.map(child => renderNode(child, h, documentMeta)) + data[slotName] = (node.children || []).map(child => renderNode(child, h, documentMeta, parentProps)) return data }, { - [DEFAULT_SLOT]: [] + [DEFAULT_SLOT]: [] as any[] }) - return Object.fromEntries( - Object.entries(slots).map(([name, vDom]) => ([name, createSlotFunction(vDom)])) - ) + const slotEntries = Object.entries(slots).map(([name, vDom]) => ([name, createSlotFunction(vDom)])) + + return Object.fromEntries(slotEntries) } /** @@ -310,7 +348,7 @@ function getSlotName (node: MarkdownNode) { * Create a factory function if there is a node in the list */ function createSlotFunction (nodes: Array<VNode | string>) { - return (nodes.length ? () => nodes : undefined) + return (nodes.length ? () => mergeTextNodes(nodes as VNode[]) : undefined) } /** @@ -326,3 +364,45 @@ function isDefaultTemplate (node: MarkdownNode) { function isTemplate (node: MarkdownNode) { return node.tag === 'template' } + +/** + * Merge consequent Text nodes into single node + */ +function mergeTextNodes (nodes: Array<VNode>) { + const mergedNodes: Array<VNode> = [] + for (const node of nodes) { + const previousNode = mergedNodes[mergedNodes.length - 1] + if (node.type === Text && previousNode?.type === Text) { + previousNode.children = (previousNode.children as string) + node.children + } else { + mergedNodes.push(node) + } + } + return mergedNodes +} + +async function resolveContentComponents (body, meta) { + const components = Array.from(new Set(loadComponents(body, meta))) + await Promise.all(components.map(async (c) => { + const resolvedComponent = resolveComponent(c) as any + if (resolvedComponent?.__asyncLoader && !resolvedComponent.__asyncResolved) { + await resolvedComponent.__asyncLoader() + } + })) + + function loadComponents (node, documentMeta) { + if (node.type === 'text' || node.tag === 'binding') { + return [] + } + const renderTag: string = (typeof node.props?.__ignoreMap === 'undefined' && documentMeta.tags[node.tag!]) || node.tag! + const components: string[] = [] + if (node.type !== 'root' && !htmlTags.includes(renderTag as any)) { + components.push(renderTag) + } + for (const child of (node.children || [])) { + components.push(...loadComponents(child, documentMeta)) + } + return components + } +} +</script> diff --git a/src/runtime/components/Markdown.ts b/src/runtime/components/ContentSlot.vue similarity index 69% rename from src/runtime/components/Markdown.ts rename to src/runtime/components/ContentSlot.vue index 20da93bca..d558bd6de 100644 --- a/src/runtime/components/Markdown.ts +++ b/src/runtime/components/ContentSlot.vue @@ -1,20 +1,20 @@ +<script lang="ts"> import type { Slot } from 'vue' import { defineComponent, getCurrentInstance, useSlots, computed, useUnwrap, h } from '#imports' /** - * Markdown component + * ContentSlot component */ export default defineComponent({ - // eslint-disable-next-line vue/multi-word-component-names - name: 'Markdown', + name: 'ContentSlot', functional: true, props: { /** * A slot name or function */ use: { - type: [String, Function], - default: 'default' + type: Function, + default: undefined }, /** * Tags to unwrap separated by spaces @@ -27,7 +27,7 @@ export default defineComponent({ }, setup (props) { const { parent } = getCurrentInstance() - const { between } = useSlots() + const { between, default: fallbackSlot } = useSlots() const tags = computed(() => { if (typeof props.unwrap === 'string') { return props.unwrap.split(' ') } @@ -35,16 +35,22 @@ export default defineComponent({ }) return { + fallbackSlot, tags, between, parent } }, - render ({ use, unwrap, between, tags, parent }) { + render ({ use, unwrap, fallbackSlot, between, tags, parent }) { try { - const slot: Slot = typeof use === 'string' ? parent?.slots[use] || parent?.parent?.slots[use] : use + let slot: Slot = use + if (typeof use === 'string') { + slot = parent?.slots[use] || parent?.parent?.slots[use] + // eslint-disable-next-line no-console + console.warn(`Please set :use="$slots.${use}" in <ContentSlot> component to enable reactivity`) + } - if (!slot) { return h('div') } + if (!slot) { return fallbackSlot ? fallbackSlot() : h('div') } if (!unwrap) { return [slot()] } @@ -76,3 +82,4 @@ export default defineComponent({ } } }) +</script> diff --git a/src/runtime/components/DocumentDrivenEmpty.vue b/src/runtime/components/DocumentDrivenEmpty.vue new file mode 100644 index 000000000..8eacd8aab --- /dev/null +++ b/src/runtime/components/DocumentDrivenEmpty.vue @@ -0,0 +1,24 @@ +<script lang="ts"> +import { defineComponent, h } from 'vue' +import type { PropType } from 'vue' +import { ParsedContent } from '../types' + +/** + * Used in `src/runtime/pages/document-driven.vue` + */ +export default defineComponent({ + name: 'DocumentDrivenEmpty', + props: { + value: { + type: Object as PropType<ParsedContent>, + required: true + } + }, + render ({ value }) { + return h('div', undefined, [ + h('p', 'Document is empty'), + h('p', `Add content to it by opening ${value._source}/${value._file} file.`) + ]) + } +}) +</script> diff --git a/src/runtime/components/DocumentDrivenNotFound.vue b/src/runtime/components/DocumentDrivenNotFound.vue new file mode 100644 index 000000000..97af52154 --- /dev/null +++ b/src/runtime/components/DocumentDrivenNotFound.vue @@ -0,0 +1,13 @@ +<script lang="ts"> +import { defineComponent, h } from 'vue' + +/** + * Used in `src/runtime/pages/document-driven.vue` + */ +export default defineComponent({ + name: 'DocumentDrivenNotFound', + render () { + return h('div', 'Document not found') + } +}) +</script> diff --git a/src/runtime/components/Markdown.vue b/src/runtime/components/Markdown.vue new file mode 100644 index 000000000..8c87046fb --- /dev/null +++ b/src/runtime/components/Markdown.vue @@ -0,0 +1,36 @@ +<script lang="ts"> +import ContentSlot from './ContentSlot' +import { defineComponent, getCurrentInstance, useSlots, computed } from '#imports' + +let showDeprecatedMessage = true + +/** + * Markdown component + */ +export default defineComponent({ + // eslint-disable-next-line vue/multi-word-component-names + name: 'Markdown', + extends: ContentSlot, + setup (props) { + if (process.dev && showDeprecatedMessage) { + // eslint-disable-next-line no-console + console.warn('[deprecation] <Markdown> component is deprecated. Please use <ContentSlot> instead.') + showDeprecatedMessage = false + } + const { parent } = getCurrentInstance() + const { between, default: fallbackSlot } = useSlots() + + const tags = computed(() => { + if (typeof props.unwrap === 'string') { return props.unwrap.split(' ') } + return ['*'] + }) + + return { + fallbackSlot, + tags, + between, + parent + } + } +}) +</script> diff --git a/src/runtime/components/Prose/ProseH2.vue b/src/runtime/components/Prose/ProseH2.vue index ebe841e8a..98e06f34b 100644 --- a/src/runtime/components/Prose/ProseH2.vue +++ b/src/runtime/components/Prose/ProseH2.vue @@ -1,8 +1,8 @@ <template> <h2 :id="id"> - <NuxtLink :href="`#${id}`"> + <a :href="`#${id}`"> <slot /> - </NuxtLink> + </a> </h2> </template> diff --git a/src/runtime/components/Prose/ProseH3.vue b/src/runtime/components/Prose/ProseH3.vue index a49839c8a..6e9ad0a56 100644 --- a/src/runtime/components/Prose/ProseH3.vue +++ b/src/runtime/components/Prose/ProseH3.vue @@ -1,8 +1,8 @@ <template> <h3 :id="id"> - <NuxtLink :href="`#${id}`"> + <a :href="`#${id}`"> <slot /> - </NuxtLink> + </a> </h3> </template> diff --git a/src/runtime/components/Prose/ProseH4.vue b/src/runtime/components/Prose/ProseH4.vue index 880806418..920b39178 100644 --- a/src/runtime/components/Prose/ProseH4.vue +++ b/src/runtime/components/Prose/ProseH4.vue @@ -1,8 +1,8 @@ <template> <h4 :id="id"> - <NuxtLink :href="`#${id}`"> + <a :href="`#${id}`"> <slot /> - </NuxtLink> + </a> </h4> </template> diff --git a/src/runtime/composables/content.ts b/src/runtime/composables/content.ts new file mode 100644 index 000000000..d49a5f730 --- /dev/null +++ b/src/runtime/composables/content.ts @@ -0,0 +1,104 @@ +import { withoutTrailingSlash } from 'ufo' +import type { NavItem, ParsedContent } from '../types' +import { computed, useState, useRoute } from '#imports' + +export const useContentState = () => { + /** + * Map of loaded pages. + */ + const pages = useState<Record<string, ParsedContent>>('dd-pages', () => ({})) + + /** + * Previous and next page data. + * Format: [prev, next] + */ + const surrounds = useState<Record<string, Omit<ParsedContent, 'body'>>>('dd-surrounds', () => ({})) + + /** + * Navigation tree from root of app. + */ + const navigation = useState<NavItem[]>('dd-navigation') + + /** + * Globally loaded content files. + * Format: { [key: string]: ParsedContent } + */ + const globals = useState<Record<string, ParsedContent>>('dd-globals', () => ({})) + + return { + pages, + surrounds, + navigation, + globals + } +} + +export const useContent = () => { + const { navigation, pages, surrounds, globals } = useContentState() + + const _path = computed(() => withoutTrailingSlash(useRoute().path)) + + /** + * Current `page` key, computed from path and content state. + */ + const page = computed( + () => { + return pages.value[_path.value] + } + ) + + /** + * Current `surround` key, computed from path and content state. + */ + const surround = computed( + () => { + return surrounds.value[_path.value] + } + ) + + /** + * Table of contents from `page`. + */ + const toc = computed(() => page?.value?.body?.toc) + + /** + * Content type from `page`. + */ + const type = computed(() => page.value?.meta?.type) + + /** + * Excerpt from `page`. + */ + const excerpt = computed(() => page.value?.excerpt) + + /** + * Layout type from `page`. + */ + const layout = computed(() => page.value?.meta?.layout) + + /** + * Next page from `surround`. + */ + const next = computed(() => surround.value?.[1]) + + /** + * Previous page from `surround`. + */ + const prev = computed(() => surround.value?.[0]) + + return { + // Refs + globals, + navigation, + surround, + page, + // From page + excerpt, + toc, + type, + layout, + // From surround + next, + prev + } +} diff --git a/src/runtime/composables/head.ts b/src/runtime/composables/head.ts new file mode 100644 index 000000000..1a7996c28 --- /dev/null +++ b/src/runtime/composables/head.ts @@ -0,0 +1,89 @@ +import { RouteLocationNormalized, RouteLocationNormalizedLoaded } from 'vue-router' +import type { HeadObjectPlain } from '@vueuse/head' +import type { Ref } from 'vue' +import { ParsedContent } from '../types' +import { useRoute, nextTick, useHead, unref, watch } from '#imports' + +export const useContentHead = ( + _content: ParsedContent | Ref<ParsedContent>, + to: RouteLocationNormalized | RouteLocationNormalizedLoaded = useRoute() +) => { + const content = unref(_content) + + const refreshHead = (data: ParsedContent = content) => { + // Don't call this function if no route is yet available + if (!to.path || !data) { return } + + // Default head to `data?.head` + const head: HeadObjectPlain = Object.assign({}, data?.head || {}) + + // Great basic informations from the data + const title = head.title || data?.title + if (title) { + head.title = title + } + head.meta = [...(head.meta || [])] + + // Grab description from `head.description` or fallback to `data.description` + // @ts-ignore - We expect `head.description` from Nuxt configurations... + const description = head?.description || data?.description + + // Shortcut for head.description + if (description && head.meta.filter(m => m.name === 'description').length === 0) { + head.meta.push({ + name: 'description', + content: description + }) + } + + // Grab description from `head` or fallback to `data.description` + // @ts-ignore - We expect `head.image` from Nuxt configurations... + const image = head?.image || data?.image + + // Shortcut for head.image to og:image in meta + if (image && head.meta.filter(m => m.property === 'og:image').length === 0) { + // Handles `image: '/image/src.jpg'` + if (typeof image === 'string') { + head.meta.push({ + property: 'og:image', + // @ts-ignore - We expect `head.image` from Nuxt configurations... + content: image + }) + } + + // Handles: `image.src: '/image/src.jpg'` & `image.alt: 200`... + if (typeof image === 'object') { + // https://ogp.me/#structured + const imageKeys = [ + 'src', + 'secure_url', + 'type', + 'width', + 'height', + 'alt' + ] + + // Look on available keys + for (const key of imageKeys) { + // `src` is a shorthand for the URL. + if (key === 'src' && image.src) { + head.meta.push({ + property: 'og:image', + content: image[key] + }) + } else if (image[key]) { + head.meta.push({ + property: `og:image:${key}`, + content: image[key] + }) + } + } + } + } + + // @ts-ignore + if (process.client) { nextTick(() => useHead(head)) } else { useHead(head) } + } + + watch(() => unref(_content), refreshHead, { immediate: true }) +} diff --git a/src/runtime/composables/helpers.ts b/src/runtime/composables/helpers.ts new file mode 100644 index 000000000..fc3624f5e --- /dev/null +++ b/src/runtime/composables/helpers.ts @@ -0,0 +1,71 @@ +import type { NavItem } from '../types' + +/** + * Find first child link from a navigation node. + */ +const navBottomLink = (link: NavItem) => { + if (!link.children) { return link._path } + + for (const child of link?.children || []) { + const result = navBottomLink(child) + if (result) { return result } + } +} + +/** + * Find current navigation directory node from a path. + */ +const navDirFromPath = (path: string, tree: NavItem[]) => { + for (const file of tree) { + if (file._path === path && !file._id) { return file.children } + + if (file.children) { + const result = navDirFromPath(path, file.children) + if (result) { return result } + } + } +} + +/** + * Find a navigation page node from a path. + */ +const navPageFromPath = (path: string, tree: NavItem[]) => { + for (const file of tree) { + if (file._path === path) { return file } + + if (file.children) { + const result = navPageFromPath(path, file.children) + if (result) { return result } + } + } +} + +/** + * Find a nav field node from a path. + */ +const navKeyFromPath = (path: string, key: string, tree: NavItem[]) => { + let value: any + + const goDeep = (path: string, tree: NavItem[]) => { + for (const file of tree) { + if (path.startsWith(file._path) && file[key]) { value = file[key] } + + if (file._path === path) { return } + + if (file.children) { goDeep(path, file.children) } + } + } + + goDeep(path, tree) + + return value +} + +export const useContentHelpers = () => { + return { + navBottomLink, + navDirFromPath, + navPageFromPath, + navKeyFromPath + } +} diff --git a/src/runtime/composables/navigation.ts b/src/runtime/composables/navigation.ts index 933c715d7..deb3b56c0 100644 --- a/src/runtime/composables/navigation.ts +++ b/src/runtime/composables/navigation.ts @@ -1,21 +1,23 @@ import { hash } from 'ohash' -import { useHead, useCookie } from '#app' -import type { NavItem, QueryBuilder } from '../types' +import { useCookie } from '#app' +import type { NavItem, QueryBuilder, QueryBuilderParams } from '../types' import { jsonStringify } from '../utils/json' -import { withContentBase } from './utils' +import { addPrerenderPath, withContentBase } from './utils' -export const fetchContentNavigation = (queryBuilder?: QueryBuilder) => { - const params = queryBuilder?.params() - const apiPath = withContentBase(params ? `/navigation/${hash(params)}` : '/navigation') +export const fetchContentNavigation = (queryBuilder?: QueryBuilder | QueryBuilderParams): Promise<Array<NavItem>> => { + let params = queryBuilder + // When params is an instance of QueryBuilder then we need to pick the params explicitly + if (typeof params?.params === 'function') { params = params.params() } + + const apiPath = withContentBase(params ? `/navigation/${hash(params)}.json` : '/navigation') + + // Add `prefetch` to `<head>` in production if (!process.dev && process.server) { - useHead({ - link: [ - { rel: 'prefetch', href: apiPath } - ] - }) + addPrerenderPath(apiPath) } - return $fetch<Array<NavItem>>(apiPath, { + + return $fetch(apiPath, { method: 'GET', responseType: 'json', params: { diff --git a/src/runtime/composables/query.ts b/src/runtime/composables/query.ts index 75a2a2009..c00624232 100644 --- a/src/runtime/composables/query.ts +++ b/src/runtime/composables/query.ts @@ -1,27 +1,37 @@ import { joinURL, withLeadingSlash, withoutTrailingSlash } from 'ufo' import { hash } from 'ohash' -import { useHead, useCookie } from '#app' +import { useCookie } from '#app' import { createQuery } from '../query/query' import type { ParsedContent, QueryBuilder, QueryBuilderParams } from '../types' import { jsonStringify } from '../utils/json' -import { withContentBase } from './utils' +import { addPrerenderPath, withContentBase } from './utils' /** * Query fetcher */ -export const queryFetch = <T = ParsedContent>(params: Partial<QueryBuilderParams>) => { - const apiPath = withContentBase(process.dev ? '/query' : `/query/${hash(params)}`) +export const createQueryFetch = <T = ParsedContent>(path?: string) => (query: QueryBuilder<T>) => { + if (path) { + if (query.params().first) { + query.where({ _path: withoutTrailingSlash(path) }) + } else { + query.where({ _path: new RegExp(`^${path.replace(/[-[\]{}()*+.,^$\s/]/g, '\\$&')}`) }) + } + } + // Provide default sort order + if (!query.params().sort?.length) { + query.sort({ _file: 1, $numeric: true }) + } + + const params = query.params() + + const apiPath = withContentBase(process.dev ? '/query' : `/query/${hash(params)}.json`) // Prefetch the query if (!process.dev && process.server) { - useHead({ - link: [ - { rel: 'prefetch', href: apiPath } - ] - }) + addPrerenderPath(apiPath) } - return $fetch<T | T[]>(apiPath as any, { + return $fetch(apiPath as any, { method: 'GET', responseType: 'json', params: { @@ -39,12 +49,8 @@ export function queryContent<T = ParsedContent>(query: string, ...pathParts: str export function queryContent<T = ParsedContent> (query: QueryBuilderParams): QueryBuilder<T>; export function queryContent<T = ParsedContent> (query?: string | QueryBuilderParams, ...pathParts: string[]) { if (typeof query === 'string') { - let path = withLeadingSlash(withoutTrailingSlash(joinURL(query, ...pathParts))) - // escape regex special chars - path = path.replace(/[-[\]{}()*+.,^$\s]/g, '\\$&') - - return createQuery<T>(queryFetch).where({ _path: new RegExp(`^${path}`) }) + return createQuery<T>(createQueryFetch(withLeadingSlash(joinURL(query, ...pathParts)))) } - return createQuery<T>(queryFetch, query) + return createQuery<T>(createQueryFetch(), query) } diff --git a/src/runtime/composables/utils.ts b/src/runtime/composables/utils.ts index 62aa7061d..31d273889 100644 --- a/src/runtime/composables/utils.ts +++ b/src/runtime/composables/utils.ts @@ -1,5 +1,5 @@ import { withBase } from 'ufo' -import { useRuntimeConfig } from '#app' +import { useRuntimeConfig, useRequestEvent } from '#app' import { unwrap, flatUnwrap } from '../markdown-parser/utils/node' export const withContentBase = (url: string) => withBase(url, '/api/' + useRuntimeConfig().public.content.base) @@ -8,3 +8,25 @@ export const useUnwrap = () => ({ unwrap, flatUnwrap }) + +export const useContentDisabled = () => { + // Console warnings + // eslint-disable-next-line no-console + console.warn('useContent is only accessible when you are using `documentDriven` mode.') + // eslint-disable-next-line no-console + console.warn('Learn more by visiting: https://content.nuxtjs.org/guide/writing/document-driven') + + // Break app + throw new Error('useContent is only accessible when you are using `documentDriven` mode.') +} + +export const addPrerenderPath = (path: string) => { + const event = useRequestEvent() + event.res.setHeader( + 'x-nitro-prerender', + [ + event.res.getHeader('x-nitro-prerender'), + path + ].filter(Boolean).join(',') + ) +} diff --git a/src/runtime/index.ts b/src/runtime/index.ts deleted file mode 100644 index 861b4b809..000000000 --- a/src/runtime/index.ts +++ /dev/null @@ -1,8 +0,0 @@ -import type { ContentTransformer } from './types' - -/** - * Define new transformenr for content parsing. - */ -export function defineContentTransformer (transformer: ContentTransformer): ContentTransformer { - return transformer -} diff --git a/src/runtime/markdown-parser/content.ts b/src/runtime/markdown-parser/content.ts index 6ad8c149c..28549a2a9 100644 --- a/src/runtime/markdown-parser/content.ts +++ b/src/runtime/markdown-parser/content.ts @@ -2,15 +2,21 @@ import type { Processor } from 'unified' import { unified } from 'unified' import remarkParse from 'remark-parse' import remark2rehype from 'remark-rehype' -import { MarkdownOptions, MarkdownRoot } from '../types' -import remarkMDC from './remark-mdc' +import remarkMDC from 'remark-mdc' +import { MarkdownOptions, MarkdownPlugin, MarkdownRoot } from '../types' import handlers from './handler' import compiler from './compiler' import { flattenNodeText } from './utils/ast' import { nodeTextContent } from './utils/node' -const usePlugins = (plugins: any[], stream: Processor) => - plugins.reduce((stream, plugin) => stream.use(plugin[0] || plugin, plugin[1] || undefined), stream) +const usePlugins = (plugins: Record<string, false | MarkdownPlugin>, stream: Processor) => { + for (const plugin of Object.values(plugins)) { + if (plugin) { + const { instance, ...options } = plugin + stream.use(instance, options) + } + } +} /** * Generate text excerpt summary @@ -66,8 +72,8 @@ export function contentHeading (body: MarkdownRoot) { let title = '' let description = '' const children = body.children - // top level `text` can be ignored - .filter(node => node.type !== 'text') + // top level `text` and `hr` can be ignored + .filter(node => node.type !== 'text' && node.tag !== 'hr') if (children.length && children[0].tag === 'h1') { /** diff --git a/src/runtime/markdown-parser/handler/html.ts b/src/runtime/markdown-parser/handler/html.ts index ba4eff9cf..036aef31b 100644 --- a/src/runtime/markdown-parser/handler/html.ts +++ b/src/runtime/markdown-parser/handler/html.ts @@ -6,7 +6,7 @@ import { getTagName } from './utils' export default function html (h: H, node: any) { const tagName = getTagName(node.value) - if (tagName) { + if (tagName && /[A-Z]/.test(tagName)) { node.value = node.value.replace(tagName, kebabCase(tagName)) } diff --git a/src/runtime/markdown-parser/handler/list.ts b/src/runtime/markdown-parser/handler/list.ts index 22e680972..2221b3528 100644 --- a/src/runtime/markdown-parser/handler/list.ts +++ b/src/runtime/markdown-parser/handler/list.ts @@ -5,7 +5,9 @@ import { wrap } from './utils' type Node = MdastNode & { ordered?: boolean - start?: number + start?: number, + checked?: boolean + children: Node[] } export default function list (h: H, node: Node) { @@ -16,5 +18,10 @@ export default function list (h: H, node: Node) { props.start = node.start } + // Add class for task list. See: https://github.com/remarkjs/remark-gfm#use + if ((node.children || []).some(child => typeof child.checked === 'boolean')) { + props.className = ['contains-task-list'] + } + return h(node, name, props, wrap(all(h, node), true)) } diff --git a/src/runtime/markdown-parser/index.ts b/src/runtime/markdown-parser/index.ts index b310efb70..5bc41cd25 100644 --- a/src/runtime/markdown-parser/index.ts +++ b/src/runtime/markdown-parser/index.ts @@ -8,8 +8,8 @@ import remarkGfm from 'remark-gfm' import rehypeSortAttributeValues from 'rehype-sort-attribute-values' import rehypeSortAttributes from 'rehype-sort-attributes' import rehypeRaw from 'rehype-raw' -import { MarkdownOptions, Toc } from '../types' -import { parseFrontMatter } from './remark-mdc/frontmatter' +import { parseFrontMatter } from 'remark-mdc' +import { MarkdownOptions, MarkdownParsedContent, Toc } from '../types' import { generateToc } from './toc' import { contentHeading, generateBody } from './content' @@ -20,18 +20,35 @@ export const useDefaultOptions = (): MarkdownOptions => ({ searchDepth: 2 }, tags: {}, - remarkPlugins: [ - remarkEmoji, - remarkSqueezeParagraphs, - remarkGfm - ], - rehypePlugins: [ - rehypeSlug, - rehypeExternalLinks, - rehypeSortAttributeValues, - rehypeSortAttributes, - [rehypeRaw, { passThrough: ['element'] }] - ] + remarkPlugins: { + 'remark-emoji': { + instance: remarkEmoji + }, + 'remark-squeeze-paragraphs': { + instance: remarkSqueezeParagraphs + }, + 'remark-gfm': { + instance: remarkGfm + } + }, + rehypePlugins: { + 'rehype-slug': { + instance: rehypeSlug + }, + 'rehype-external-links': { + instance: rehypeExternalLinks + }, + 'rehype-sort-attribute-values': { + instance: rehypeSortAttributeValues + }, + 'rehype-sort-attributes': { + instance: rehypeSortAttributes + }, + 'rehype-raw': { + instance: rehypeRaw, + passThrough: ['element'] + } + } }) export async function parse (file: string, userOptions: Partial<MarkdownOptions> = {}) { @@ -61,7 +78,7 @@ export async function parse (file: string, userOptions: Partial<MarkdownOptions> */ const heading = contentHeading(body) - return { + return <{ meta: Partial<MarkdownParsedContent>, body: MarkdownParsedContent['body'] }> { body: { ...body, toc @@ -91,5 +108,3 @@ function useExcerpt (content: string, delimiter = /<!--\s*?more\s*?-->/i) { } return content } - -export * from './remark-mdc/frontmatter' diff --git a/src/runtime/markdown-parser/remark-mdc/from-markdown.ts b/src/runtime/markdown-parser/remark-mdc/from-markdown.ts deleted file mode 100644 index 86ed884ac..000000000 --- a/src/runtime/markdown-parser/remark-mdc/from-markdown.ts +++ /dev/null @@ -1,234 +0,0 @@ -// @ts-nocheck -/** - * Based on: https://github.com/syntax-tree/mdast-util-directive - * Version: 2.1.0 - * License: MIT (https://github.com/syntax-tree/mdast-util-directive/blob/main/license) - */ -import type { Token } from 'micromark-util-types' -import { parseEntities } from 'parse-entities' -import { kebabCase } from 'scule' - -const canContainEols = ['textComponent'] -const enter = { - componentContainer: enterContainer, - componentContainerSection: enterContainerSection, - componentContainerDataSection: enterContainerDataSection, - componentContainerAttributes: enterAttributes, - componentContainerLabel: enterContainerLabel, - - componentLeaf: enterLeaf, - componentLeafAttributes: enterAttributes, - - componentText: enterText, - textSpan: enterTextSpan, - componentTextAttributes: enterAttributes -} -const exit = { - componentContainerSectionTitle: exitContainerSectionTitle, - listUnordered: conditionalExit, - listOrdered: conditionalExit, - listItem: conditionalExit, - componentContainerSection: exitContainerSection, - componentContainerDataSection: exitContainerDataSection, - componentContainer: exitContainer, - componentContainerAttributeClassValue: exitAttributeClassValue, - componentContainerAttributeIdValue: exitAttributeIdValue, - componentContainerAttributeName: exitAttributeName, - componentContainerAttributeValue: exitAttributeValue, - componentContainerAttributes: exitAttributes, - componentContainerLabel: exitContainerLabel, - componentContainerName: exitName, - - componentContainerAttributeInitializerMarker () { - // If an attribute name follows by `=` it should be treat as string - const attributes = this.getData('componentAttributes') - attributes[attributes.length - 1][1] = '' - }, - - componentLeaf: exitToken, - componentLeafAttributeClassValue: exitAttributeClassValue, - componentLeafAttributeIdValue: exitAttributeIdValue, - componentLeafAttributeName: exitAttributeName, - componentLeafAttributeValue: exitAttributeValue, - componentLeafAttributes: exitAttributes, - componentLeafName: exitName, - - componentText: exitToken, - textSpan: exitToken, - componentTextAttributeClassValue: exitAttributeClassValue, - componentTextAttributeIdValue: exitAttributeIdValue, - componentTextAttributeName: exitAttributeName, - componentTextAttributeValue: exitAttributeValue, - componentTextAttributes: exitAttributes, - componentTextName: exitName -} - -function enterContainer (token: Token) { - enterToken.call(this, 'containerComponent', token) -} - -function exitContainer (token: Token) { - const container = this.stack[this.stack.length - 1] - if (container.children.length > 1) { - const dataSection = container.children.find((child: any) => child.rawData) - container.rawData = dataSection?.rawData - } - - container.children = container.children.flatMap((child: any) => { - if (child.rawData) { - return [] - } - if (child.name === 'default' || !child.name) { - return child.children - } - child.data = { - hName: 'component-slot', - hProperties: { - ...child.attributes, - [`v-slot:${child.name}`]: '' - } - } - return child - }) - - this.exit(token) -} - -function enterContainerSection (token: Token) { - enterToken.call(this, 'componentContainerSection', token) -} - -function enterContainerDataSection (token: Token) { - enterToken.call(this, 'componentContainerDataSection', token) -} - -function exitContainerSection (token: Token) { - this.exit(token) -} - -function exitContainerDataSection (token: Token) { - let section = this.stack[this.stack.length - 1] - /** - * Ensure lists and list-items are closed before closing section - * This issue occurs because `---` separtors ar conflict with markdown lists - */ - while (section.type === 'listItem' || section.type === 'list') { - // As of mdast-util-from-markdown@1.1.0 tokenStach items is an array containing the token and a handler - // https://github.com/syntax-tree/mdast-util-from-markdown/blob/752dc22acfc517d280612e8d499d5ce0cd5a4495/dev/lib/index.js#L548 - const [stackToken] = this.tokenStack[this.tokenStack.length - 1] - this.exit(stackToken) - section = this.stack[this.stack.length - 1] - } - - if (section.type === 'componentContainerDataSection') { - section.rawData = this.sliceSerialize(token) - this.exit(token) - } -} - -function exitContainerSectionTitle (token: Token) { - this.stack[this.stack.length - 1].name = this.sliceSerialize(token) -} - -function enterLeaf (token: Token) { - enterToken.call(this, 'leafComponent', token) -} - -function enterTextSpan (token: Token) { - this.enter({ type: 'textComponent', name: 'span', attributes: {}, children: [] }, token) -} - -function enterText (token: Token) { - enterToken.call(this, 'textComponent', token) -} - -function enterToken (type: string, token: Token) { - this.enter({ type, name: '', attributes: {}, children: [] }, token) -} - -function exitName (token: Token) { - this.stack[this.stack.length - 1].name = this.sliceSerialize(token) -} - -function enterContainerLabel (token: Token) { - this.enter({ type: 'paragraph', data: { componentLabel: true }, children: [] }, token) -} - -function exitContainerLabel (token: Token) { - this.exit(token) -} - -function enterAttributes () { - this.setData('componentAttributes', []) - this.buffer() // Capture EOLs -} - -function exitAttributeIdValue (token: Token) { - this.getData('componentAttributes').push(['id', parseEntities(this.sliceSerialize(token))]) -} - -function exitAttributeClassValue (token: Token) { - this.getData('componentAttributes').push(['class', parseEntities(this.sliceSerialize(token))]) -} - -function exitAttributeValue (token: Token) { - const attributes = this.getData('componentAttributes') - attributes[attributes.length - 1][1] = parseEntities(this.sliceSerialize(token)) -} - -function exitAttributeName (token: Token) { - // Attribute names in CommonMark are significantly limited, so character - // references can’t exist. - - // Use `true` as attribute default value to solve issue of attributes without value (example `:block{attr1 attr2}`) - this.getData('componentAttributes').push([this.sliceSerialize(token), true]) -} - -function exitAttributes () { - const attributes = this.getData('componentAttributes') - const cleaned: Record<string, any> = {} - let index = -1 - let attribute - - while (++index < attributes.length) { - attribute = attributes[index] - // Convert attribute names to kebab-case - const name = kebabCase(attribute[0]) - - if (name === 'class' && cleaned.class) { - cleaned.class += ' ' + attribute[1] - } else { - cleaned[name] = attribute[1] - } - } - - this.setData('componentAttributes') - this.resume() // Drop EOLs - - let stackTop = this.stack[this.stack.length - 1] - if (stackTop.type === 'paragraph') { - // select last inline component - stackTop = stackTop.children[stackTop.children.length - 1] - } - - stackTop.attributes = cleaned -} - -function exitToken (token: Token) { - this.exit(token) -} - -function conditionalExit (token: Token) { - // As of mdast-util-from-markdown@1.1.0 tokenStach items is an array containing the token and a handler - // https://github.com/syntax-tree/mdast-util-from-markdown/blob/752dc22acfc517d280612e8d499d5ce0cd5a4495/dev/lib/index.js#L548 - const [section] = this.tokenStack[this.tokenStack.length - 1] - if ((section as Token).type === token.type) { - this.exit(token) - } -} - -export default { - canContainEols, - enter, - exit -} diff --git a/src/runtime/markdown-parser/remark-mdc/frontmatter.ts b/src/runtime/markdown-parser/remark-mdc/frontmatter.ts deleted file mode 100644 index 59d63b91f..000000000 --- a/src/runtime/markdown-parser/remark-mdc/frontmatter.ts +++ /dev/null @@ -1,41 +0,0 @@ -import yaml from 'js-yaml' -import flat from 'flat' - -const FRONTMATTER_DELIMITER = '---' - -export function stringifyFrontMatter (data: any, content: string = '') { - // flatten frontmatter data - // convert `parent: { child: ... }` into flat keys `parent.child` - data = flat.flatten(data, { - // preserve arrays and their contents as is and do not waltk through arrays - // flatten array will be like `parent.0.child` and `parent.1.child` with is not readable - safe: true - }) - - return [ - FRONTMATTER_DELIMITER, - yaml.dump(data, { lineWidth: -1 }), - FRONTMATTER_DELIMITER, - content - ].join('\n') -} - -export function parseFrontMatter (content: string) { - let data = {} - if (content.startsWith(FRONTMATTER_DELIMITER)) { - const idx = content.indexOf('\n' + FRONTMATTER_DELIMITER) - if (idx !== -1) { - const frontmatter = content.slice(4, idx) - if (frontmatter) { - data = yaml.load(frontmatter) - content = content.slice(idx + 4) - } - } - } - - return { - content, - // unflatten frontmatter data. convert `parent.child` keys into `parent: { child: ... }` - data: flat.unflatten(data || {}, {}) as Record<string, any> - } -} diff --git a/src/runtime/markdown-parser/remark-mdc/index.ts b/src/runtime/markdown-parser/remark-mdc/index.ts deleted file mode 100644 index e8b45f014..000000000 --- a/src/runtime/markdown-parser/remark-mdc/index.ts +++ /dev/null @@ -1,107 +0,0 @@ -import type { Plugin } from 'unified' -import type { Node } from 'unist' -import type { Root } from 'mdast' -import { kebabCase } from 'scule' -import { visit } from 'unist-util-visit' -import { parseFrontMatter } from './frontmatter' -import toMarkdown from './to-markdown' -import fromMarkdown from './from-markdown' -import syntax from './micromark-extension' - -const toFrontMatter = (yamlString: string) => `---\n${yamlString}\n---` - -interface ComponentHanlder { - name: string - instance: any - options?: any -} - -interface ComponentNode extends Node { - name?: string - attributes?: Record<string, any> - fmAttributes?: Record<string, any> - rawData?: string -} - -interface RemarkMDCOptions { - components?: ComponentHanlder[] -} - -export default <Plugin<Array<RemarkMDCOptions>, Root, Root>> function ({ components = [] }: RemarkMDCOptions = {}) { - // @ts-ignore - const data = this.data() - - add('micromarkExtensions', syntax()) - add('fromMarkdownExtensions', fromMarkdown) - add('toMarkdownExtensions', toMarkdown) - - function add (field: string, value: any) { - /* istanbul ignore if - other extensions. */ - if (!data[field]) { - data[field] = [] - } - - ;(data[field] as any[]).push(value) - } - - if (components.length) { - return async (tree: ComponentNode, { data }: { data: Record<string, any> }) => { - const jobs: Promise<unknown>[] = [] - visit<ComponentNode, string[]>(tree, ['textComponent', 'leafComponent', 'containerComponent'], (node) => { - bindNode(node, data) - const { instance: handler, options } = components.find(c => c.name === node.name) || {} - if (handler) { - jobs.push(handler(options)(node, data)) - } - }) - - await Promise.all(jobs) - return tree - } - } - - return (tree: ComponentNode) => { - visit<ComponentNode, string[]>(tree, ['textComponent', 'leafComponent', 'containerComponent'], (node) => { - bindNode(node) - }) - } -} - -function bindNode (node: ComponentNode) { - const nodeData = node.data || (node.data = {}) - - node.fmAttributes = getNodeData(node) - - nodeData.hName = kebabCase(node.name) - nodeData.hProperties = bindData( - { - ...node.attributes, - // Parse data slots and retrieve data - ...node.fmAttributes - } - ) -} - -function getNodeData (node: ComponentNode) { - if (!node.rawData) { - return {} - } - - const yaml = node.rawData.replace(/\s-+$/, '') - const { data } = parseFrontMatter(toFrontMatter(yaml)) - - return data -} - -function bindData (data: Record<string, any>) { - const entries = Object.entries(data).map(([key, value]) => { - if (key.startsWith(':')) { - return [key, value] - } - if (typeof value === 'string') { - return [key, value] - } - return [`:${key}`, JSON.stringify(value)] - }) - return Object.fromEntries(entries) -} diff --git a/src/runtime/markdown-parser/remark-mdc/mdast-util-to-markdown.ts b/src/runtime/markdown-parser/remark-mdc/mdast-util-to-markdown.ts deleted file mode 100644 index 7170c5d65..000000000 --- a/src/runtime/markdown-parser/remark-mdc/mdast-util-to-markdown.ts +++ /dev/null @@ -1,217 +0,0 @@ -/** - * Functions to track output positions. - * This info isn’t used yet but suchs functionality allows line wrapping, - * and theoretically source maps (though, is there practical use in that?). - * - * @param {TrackFields} options_ - */ -function track (options_) { - // Defaults are used to prevent crashes when older utilities somehow activate - // this code. - /* c8 ignore next 5 */ - const options = options_ || {} - const now = options.now || {} - let lineShift = options.lineShift || 0 - let line = now.line || 1 - let column = now.column || 1 - - return { move, current, shift } - - /** - * Get the current tracked info. - * - * @returns {{now: Point, lineShift: number}} - */ - function current () { - return { now: { line, column }, lineShift } - } - - /** - * Define an increased line shift (the typical indent for lines). - * - * @param {number} value - */ - function shift (value) { - lineShift += value - } - - /** - * Move past a string. - * - * @param {string} value - * @returns {string} - */ - function move (value = '') { - const chunks = value.split(/\r?\n|\r/g) - const tail = chunks[chunks.length - 1] - line += chunks.length - 1 - column = - chunks.length === 1 ? column + tail.length : 1 + tail.length + lineShift - return value - } -} - -// import { containerFlow } from 'mdast-util-to-markdown/lib/util/container-flow.js' -/** - * @param {Parent} parent - * @param {Context} context - * @param {TrackFields} safeOptions - * @returns {string} - */ -export function containerFlow (parent, context, safeOptions = {}) { - const indexStack = context.indexStack - const children = parent.children || [] - const tracker = track(safeOptions) - /** @type {Array<string>} */ - const results = [] - let index = -1 - - indexStack.push(-1) - - while (++index < children.length) { - const child = children[index] - - indexStack[indexStack.length - 1] = index - - results.push( - tracker.move( - context.handle(child, parent, context, { - before: '\n', - after: '\n', - ...tracker.current() - }) - ) - ) - - if (child.type !== 'list') { - context.bulletLastUsed = undefined - } - - if (index < children.length - 1) { - results.push(tracker.move(between(child, children[index + 1]))) - } - } - - indexStack.pop() - - return results.join('') - - /** - * @param {Node} left - * @param {Node} right - * @returns {string} - */ - function between (left, right) { - let index = context.join.length - - while (index--) { - const result = context.join[index](left, right, parent, context) - - if (result === true || result === 1) { - break - } - - if (typeof result === 'number') { - return '\n'.repeat(1 + result) - } - - if (result === false) { - return '\n\n<!---->\n\n' - } - } - - return '\n\n' - } -} - -// import { containerPhrasing } from 'mdast-util-to-markdown/lib/util/container-phrasing.js' -export function containerPhrasing (parent, context, safeOptions) { - const indexStack = context.indexStack - const children = parent.children || [] - /** @type {Array<string>} */ - const results = [] - let index = -1 - let before = safeOptions.before - - indexStack.push(-1) - let tracker = track(safeOptions) - - while (++index < children.length) { - const child = children[index] - /** @type {string} */ - let after - - indexStack[indexStack.length - 1] = index - - if (index + 1 < children.length) { - let handle = context.handle.handlers[children[index + 1].type] - if (handle && handle.peek) { handle = handle.peek } - after = handle - ? handle(children[index + 1], parent, context, { - before: '', - after: '', - ...tracker.current() - }).charAt(0) - : '' - } else { - after = safeOptions.after - } - - // In some cases, html (text) can be found in phrasing right after an eol. - // When we’d serialize that, in most cases that would be seen as html - // (flow). - // As we can’t escape or so to prevent it from happening, we take a somewhat - // reasonable approach: replace that eol with a space. - // See: <https://github.com/syntax-tree/mdast-util-to-markdown/issues/15> - if ( - results.length > 0 && - (before === '\r' || before === '\n') && - child.type === 'html' - ) { - results[results.length - 1] = results[results.length - 1].replace( - /(\r?\n|\r)$/, - ' ' - ) - before = ' ' - - // To do: does this work to reset tracker? - tracker = track(safeOptions) - tracker.move(results.join('')) - } - - results.push( - tracker.move( - context.handle(child, parent, context, { - ...tracker.current(), - before, - after - }) - ) - ) - - before = results[results.length - 1].slice(-1) - } - - indexStack.pop() - - return results.join('') -} - -// import { checkQuote } from 'mdast-util-to-markdown/lib/util/check-quote.js' -/** - * @param {Context} context - * @returns {Exclude<Options['quote'], undefined>} - */ -export function checkQuote (context) { - const marker = context.options.quote || '"' - - if (marker !== '"' && marker !== "'") { - throw new Error( - 'Cannot serialize title with `' + - marker + - '` for `options.quote`, expected `"`, or `\'`' - ) - } - - return marker -} diff --git a/src/runtime/markdown-parser/remark-mdc/micromark-extension/constants.ts b/src/runtime/markdown-parser/remark-mdc/micromark-extension/constants.ts deleted file mode 100644 index fe8d8e898..000000000 --- a/src/runtime/markdown-parser/remark-mdc/micromark-extension/constants.ts +++ /dev/null @@ -1,98 +0,0 @@ -export const ContainerSequenceSize = 2 - -export const SectionSequenceSize = 3 - -export const slotSeparatorCode = 35 // '#' - -export const slotSeparatorLength = 1 - -export const Codes = { - /** - * null - */ - EOF: null, - /** - * '"' - */ - quotationMark: 34, - /** - * '#' - */ - hash: 35, - /** - * ' ' ' - */ - apostrophe: 39, - /** - * '`' - */ - backTick: 96, - /** - * '\' - */ - backSlash: 92, - /** - * ':' - */ - colon: 58, - /** - * '<' - */ - LessThan: 60, - /** - * '=' - */ - equals: 61, - /** - * '>' - */ - greaterThan: 62, - /** - * '-' - */ - dash: 45, - /** - * '.' - */ - dot: 46, - /** - * ' ' - */ - space: 32, - /** - * '[' - */ - openingSquareBracket: 91, - /** - * ']' - */ - closingSquareBracket: 93, - /** - * '{' - */ - openingCurlyBracket: 123, - /** - * '}' - */ - closingCurlyBracket: 125, - /** - * '(' - */ - openingParentheses: 40, - /** - * ')' - */ - closingParentheses: 41, - /** - * '_' - */ - underscore: 95, - /** - * 'X' - */ - uppercaseX: 88, - /** - * 'x' - */ - lowercaseX: 120 -} diff --git a/src/runtime/markdown-parser/remark-mdc/micromark-extension/factory-attributes.ts b/src/runtime/markdown-parser/remark-mdc/micromark-extension/factory-attributes.ts deleted file mode 100644 index e3c9c9e12..000000000 --- a/src/runtime/markdown-parser/remark-mdc/micromark-extension/factory-attributes.ts +++ /dev/null @@ -1,323 +0,0 @@ -import type { Effects, State } from 'micromark-util-types' -import { factorySpace } from 'micromark-factory-space' -import { factoryWhitespace } from 'micromark-factory-whitespace' - -import { - markdownLineEnding, - markdownLineEndingOrSpace, - asciiAlpha, - asciiAlphanumeric, - markdownSpace -} from 'micromark-util-character' -import { Codes } from './constants' - -export default function createAttributes ( - effects: Effects, - ok: State, - nok: State, - attributesType: string, - attributesMarkerType: string, - attributeType: string, - attributeIdType: string, - attributeClassType: string, - attributeNameType: string, - attributeInitializerType: string, - attributeValueLiteralType: string, - attributeValueType: string, - attributeValueMarker: string, - attributeValueData: string, - disallowEol?: boolean -) { - let type: string - let marker: number | undefined - - return start - - function start (code: number) { - // Always a `{` - effects.enter(attributesType) - effects.enter(attributesMarkerType) - effects.consume(code) - effects.exit(attributesMarkerType) - return between - } - - function between (code: number): void | State { - if (code === Codes.hash) { - type = attributeIdType - return shortcutStart(code) as State - } - - if (code === Codes.dot) { - type = attributeClassType - return shortcutStart(code) as State - } - - if (code === Codes.colon || code === Codes.underscore || asciiAlpha(code)) { - effects.enter(attributeType) - effects.enter(attributeNameType) - effects.consume(code) - return (code === Codes.colon ? bindAttributeName : name) as State - } - - if (disallowEol && markdownSpace(code)) { - return factorySpace(effects, between as State, 'whitespace')(code) - } - - if (!disallowEol && markdownLineEndingOrSpace(code)) { - return factoryWhitespace(effects, between as State)(code) - } - - return end(code) - } - - function shortcutStart (code: number) { - effects.enter(attributeType) - effects.enter(type) - effects.enter(type + 'Marker') - effects.consume(code) - effects.exit(type + 'Marker') - return shortcutStartAfter - } - - function shortcutStartAfter (code: number) { - if ( - code === Codes.EOF || - code === Codes.quotationMark || - code === Codes.hash || - code === Codes.apostrophe || - code === Codes.dot || - code === Codes.LessThan || - code === Codes.equals || - code === Codes.greaterThan || - code === Codes.backTick || - code === Codes.closingCurlyBracket || - markdownLineEndingOrSpace(code) - ) { - return nok(code) - } - - effects.enter(type + 'Value') - effects.consume(code) - return shortcut - } - - function shortcut (code: number) { - if ( - code === Codes.EOF || - code === Codes.quotationMark || - code === Codes.apostrophe || - code === Codes.LessThan || - code === Codes.equals || - code === Codes.greaterThan || - code === Codes.backTick - ) { - return nok(code) - } - - if (code === Codes.hash || code === Codes.dot || code === Codes.closingCurlyBracket || markdownLineEndingOrSpace(code)) { - effects.exit(type + 'Value') - effects.exit(type) - effects.exit(attributeType) - return between(code) - } - - effects.consume(code) - return shortcut - } - - /* - Vue bind shorthand `:` - */ - - function bindAttributeName (code: number) { - if (code === Codes.dash || asciiAlphanumeric(code)) { - effects.consume(code) - return bindAttributeName - } - - effects.exit(attributeNameType) - - if (disallowEol && markdownSpace(code)) { - return factorySpace(effects, bindAttributeNameAfter as State, 'whitespace')(code) - } - - if (!disallowEol && markdownLineEndingOrSpace(code)) { - return factoryWhitespace(effects, bindAttributeNameAfter as State)(code) - } - - return bindAttributeNameAfter(code) - } - - function bindAttributeNameAfter (code: number) { - if (code === Codes.equals) { - effects.enter(attributeInitializerType) - effects.consume(code) - effects.exit(attributeInitializerType) - return valueBefore - } - - // Attribute w/o value. - effects.exit(attributeType) - return nok(code) - } - - function name (code: number) { - if ( - code === Codes.dash || - code === Codes.dot || - code === Codes.colon || - code === Codes.underscore || - asciiAlphanumeric(code) - ) { - effects.consume(code) - return name - } - - effects.exit(attributeNameType) - - if (disallowEol && markdownSpace(code)) { - return factorySpace(effects, nameAfter as State, 'whitespace')(code) - } - - if (!disallowEol && markdownLineEndingOrSpace(code)) { - return factoryWhitespace(effects, nameAfter as State)(code) - } - - return nameAfter(code) - } - - function nameAfter (code: number) { - if (code === Codes.equals) { - effects.enter(attributeInitializerType) - effects.consume(code) - effects.exit(attributeInitializerType) - return valueBefore - } - - // Attribute w/o value. - effects.exit(attributeType) - return between(code) - } - - function valueBefore (code: number): void | State { - if ( - code === Codes.EOF || - code === Codes.LessThan || - code === Codes.equals || - code === Codes.greaterThan || - code === Codes.backTick || - code === Codes.closingCurlyBracket || - (disallowEol && markdownLineEnding(code)) - ) { - return nok(code) - } - - if (code === Codes.quotationMark || code === Codes.apostrophe) { - effects.enter(attributeValueLiteralType) - effects.enter(attributeValueMarker) - effects.consume(code) - effects.exit(attributeValueMarker) - marker = code - return valueQuotedStart as State - } - - if (disallowEol && markdownSpace(code)) { - return factorySpace(effects, valueBefore as State, 'whitespace')(code) - } - - if (!disallowEol && markdownLineEndingOrSpace(code)) { - return factoryWhitespace(effects, valueBefore as State)(code) - } - - effects.enter(attributeValueType) - effects.enter(attributeValueData) - effects.consume(code) - marker = undefined - return valueUnquoted as State - } - - function valueUnquoted (code: number) { - if ( - code === Codes.EOF || - code === Codes.quotationMark || - code === Codes.apostrophe || - code === Codes.LessThan || - code === Codes.equals || - code === Codes.greaterThan || - code === Codes.backTick - ) { - return nok(code) - } - - if (code === Codes.closingCurlyBracket || markdownLineEndingOrSpace(code)) { - effects.exit(attributeValueData) - effects.exit(attributeValueType) - effects.exit(attributeType) - return between(code) - } - - effects.consume(code) - return valueUnquoted - } - - function valueQuotedStart (code: number) { - if (code === marker) { - effects.enter(attributeValueMarker) - effects.consume(code) - effects.exit(attributeValueMarker) - effects.exit(attributeValueLiteralType) - effects.exit(attributeType) - return valueQuotedAfter - } - - effects.enter(attributeValueType) - return valueQuotedBetween(code) - } - - function valueQuotedBetween (code: number): void | State { - if (code === marker) { - effects.exit(attributeValueType) - return valueQuotedStart(code) as State - } - - if (code === Codes.EOF) { - return nok(code) - } - - // Note: blank lines can’t exist in content. - if (markdownLineEnding(code)) { - return disallowEol ? nok(code) : factoryWhitespace(effects, valueQuotedBetween as State)(code) - } - - effects.enter(attributeValueData) - effects.consume(code) - return valueQuoted as State - } - - function valueQuoted (code: number) { - if (code === marker || code === Codes.EOF || markdownLineEnding(code)) { - effects.exit(attributeValueData) - return valueQuotedBetween(code) - } - - effects.consume(code) - return valueQuoted - } - - function valueQuotedAfter (code: number) { - return code === Codes.closingCurlyBracket || markdownLineEndingOrSpace(code) ? between(code) : end(code) - } - - function end (code: number) { - if (code === Codes.closingCurlyBracket) { - effects.enter(attributesMarkerType) - effects.consume(code) - effects.exit(attributesMarkerType) - effects.exit(attributesType) - return ok - } - - return nok(code) - } -} diff --git a/src/runtime/markdown-parser/remark-mdc/micromark-extension/factory-label.ts b/src/runtime/markdown-parser/remark-mdc/micromark-extension/factory-label.ts deleted file mode 100644 index 71948f7b6..000000000 --- a/src/runtime/markdown-parser/remark-mdc/micromark-extension/factory-label.ts +++ /dev/null @@ -1,119 +0,0 @@ -import type { Effects, State } from 'micromark-util-types' -import { markdownLineEnding } from 'micromark-util-character' -import { Codes } from './constants' - -// This is a fork of: -// <https://github.com/micromark/micromark/blob/bf53bf9/lib/tokenize/factory-label.js> -// to allow empty labels, balanced brackets (such as for nested components), -// text instead of strings, and optionally disallows EOLs. - -// eslint-disable-next-line max-params -export default function createLabel ( - effects: Effects, - ok: State, - nok: State, - type: string, - markerType: string, - stringType: string, - disallowEol?: boolean -) { - let size = 0 - let balance = 0 - - return start - - function start (code: number) { - /* istanbul ignore if - always `[` */ - if (code !== Codes.openingSquareBracket) { throw new Error('expected `[`') } - effects.enter(type) - effects.enter(markerType) - effects.consume(code) - effects.exit(markerType) - return afterStart - } - - function afterStart (code: number) { - if (code === Codes.closingSquareBracket) { - effects.enter(markerType) - effects.consume(code) - effects.exit(markerType) - effects.exit(type) - return ok - } - - effects.enter(stringType) - return atBreak(code) - } - - function atBreak (code: number) { - if ( - code === Codes.EOF || - /* <https://github.com/micromark/micromark/blob/bf53bf9/lib/constant/constants.js#L34> */ - size > 999 - ) { - return nok(code) - } - - if (code === Codes.closingSquareBracket && !balance--) { - return atClosingBrace(code) - } - - if (markdownLineEnding(code)) { - if (disallowEol) { - return nok(code) - } - - effects.enter('lineEnding') - effects.consume(code) - effects.exit('lineEnding') - return atBreak - } - - // @ts-ignore - effects.enter('chunkText', { contentType: 'text' }) - return label(code) - } - - function label (code: number): void | State { - if ( - code === Codes.EOF || - markdownLineEnding(code) || - /* <https://github.com/micromark/micromark/blob/bf53bf9/lib/constant/constants.js#L34> */ - size > 999 - ) { - effects.exit('chunkText') - return atBreak(code) as State - } - - if (code === Codes.openingSquareBracket && ++balance > 3) { - return nok(code) - } - - if (code === Codes.closingSquareBracket && !balance--) { - effects.exit('chunkText') - return atClosingBrace(code) - } - - effects.consume(code) - return (code === Codes.backSlash ? labelEscape : label) as State - } - - function atClosingBrace (code: number) { - effects.exit(stringType) - effects.enter(markerType) - effects.consume(code) - effects.exit(markerType) - effects.exit(type) - return ok - } - - function labelEscape (code: number): void | State { - if (code === Codes.openingSquareBracket || code === Codes.backSlash || code === Codes.closingSquareBracket) { - effects.consume(code) - size++ - return label as State - } - - return label(code) - } -} diff --git a/src/runtime/markdown-parser/remark-mdc/micromark-extension/factory-name.ts b/src/runtime/markdown-parser/remark-mdc/micromark-extension/factory-name.ts deleted file mode 100644 index d7d7d889b..000000000 --- a/src/runtime/markdown-parser/remark-mdc/micromark-extension/factory-name.ts +++ /dev/null @@ -1,31 +0,0 @@ -import type { Effects, State } from 'micromark-util-types' -import { asciiAlpha, asciiAlphanumeric } from 'micromark-util-character' -import { Codes } from './constants' - -export default function createName (effects: Effects, ok: State, nok: State, nameType: string) { - // @ts-ignore - const self = this - - return start - - function start (code: number) { - if (asciiAlpha(code)) { - effects.enter(nameType) - effects.consume(code) - return name - } - - return nok(code) - } - - function name (code: number) { - if (code === Codes.dash || code === Codes.underscore || asciiAlphanumeric(code)) { - effects.consume(code) - return name - } - - effects.exit(nameType) - // To do next major: disallow `-` at end of name too, for consistency. - return self.previous === Codes.underscore ? nok(code) : ok(code) - } -} diff --git a/src/runtime/markdown-parser/remark-mdc/micromark-extension/index.ts b/src/runtime/markdown-parser/remark-mdc/micromark-extension/index.ts deleted file mode 100644 index f51f07950..000000000 --- a/src/runtime/markdown-parser/remark-mdc/micromark-extension/index.ts +++ /dev/null @@ -1,30 +0,0 @@ -/** - * Based on: https://github.com/micromark/micromark-extension-directive - * Version: 2.1.0 - * License: MIT (https://github.com/micromark/micromark-extension-directive/blob/main/license) - **/ - -import tokenizeSpan from './tokenize-span' -import tokenizeAttribute from './tokenize-attribute' -import tokenizeInline from './tokenize-inline' -import tokenizeContainer from './tokenize-container' -import tokenizeContainerIndented from './tokenize-container-indented' -import { Codes } from './constants' - -export default function micromarkComponentsExtension () { - return { - text: { - [Codes.colon]: tokenizeInline, - [Codes.openingSquareBracket]: [tokenizeSpan], - [Codes.openingCurlyBracket]: tokenizeAttribute - }, - flow: { - [Codes.colon]: [tokenizeContainer] - }, - flowInitial: { - '-2': tokenizeContainerIndented, - '-1': tokenizeContainerIndented, - [Codes.space]: tokenizeContainerIndented - } - } -} diff --git a/src/runtime/markdown-parser/remark-mdc/micromark-extension/tokenize-attribute.ts b/src/runtime/markdown-parser/remark-mdc/micromark-extension/tokenize-attribute.ts deleted file mode 100644 index 66504bded..000000000 --- a/src/runtime/markdown-parser/remark-mdc/micromark-extension/tokenize-attribute.ts +++ /dev/null @@ -1,73 +0,0 @@ -import type { Effects, State, Code, TokenizeContext } from 'micromark-util-types' -import { markdownLineEnding } from 'micromark-util-character' -import { Codes } from './constants' -import createAttributes from './factory-attributes' - -const attributes: any = { tokenize: tokenizeAttributes, partial: true } - -const validEvents = [ - /** - * Span - */ - 'textSpan', - /** - * Bold & Italic - */ - 'attentionSequence', - /** - * Inline Code - */ - 'codeText', - /** - * Link - */ - 'link', - /** - * Image - */ - 'image' -] - -function tokenize (this: TokenizeContext, effects: Effects, ok: State, nok: State) { - const self = this - - return start - - function start (code: Code): void | State { - if (code !== Codes.openingCurlyBracket) { throw new Error('expected `{`') } - - /** - * Make sure sytax is used after valid tags - */ - const event = self.events[self.events.length - 1] - if (markdownLineEnding(self.previous) || !event || !validEvents.includes(event[1].type)) { - return nok - } - - return effects.attempt(attributes, ok, nok)(code) - } -} - -function tokenizeAttributes (effects: Effects, ok: State, nok: State) { - // Always a `{` - return createAttributes( - effects, - ok, - nok, - 'componentTextAttributes', - 'componentTextAttributesMarker', - 'componentTextAttribute', - 'componentTextAttributeId', - 'componentTextAttributeClass', - 'componentTextAttributeName', - 'componentTextAttributeInitializerMarker', - 'componentTextAttributeValueLiteral', - 'componentTextAttributeValue', - 'componentTextAttributeValueMarker', - 'componentTextAttributeValueData' - ) -} - -export default { - tokenize -} diff --git a/src/runtime/markdown-parser/remark-mdc/micromark-extension/tokenize-container-indented.ts b/src/runtime/markdown-parser/remark-mdc/micromark-extension/tokenize-container-indented.ts deleted file mode 100644 index f72fcc3d4..000000000 --- a/src/runtime/markdown-parser/remark-mdc/micromark-extension/tokenize-container-indented.ts +++ /dev/null @@ -1,30 +0,0 @@ -import type { Effects, State, TokenizeContext, Code } from 'micromark-util-types' -import { codeFenced } from 'micromark-core-commonmark' -import { factorySpace } from 'micromark-factory-space' -import { prefixSize } from './utils' -import componentContainer from './tokenize-container' -import { Codes } from './constants' - -function tokenize (this: TokenizeContext, effects: Effects, ok: State, nok: State) { - const self = this - return factorySpace(effects, lineStart as State, 'linePrefix') - - function lineStart (code: Code): void | State { - // skip if line prefix is smaller than markdown code indent - if (prefixSize(self.events, 'linePrefix') < 4) { - return nok(code) - } - switch (code) { - case Codes.backTick: - return codeFenced.tokenize.call(self, effects, ok, nok)(code) - case Codes.colon: - return componentContainer.tokenize.call(self, effects, ok, nok)(code) - default: - return nok(code) - } - } -} - -export default { - tokenize -} diff --git a/src/runtime/markdown-parser/remark-mdc/micromark-extension/tokenize-container.ts b/src/runtime/markdown-parser/remark-mdc/micromark-extension/tokenize-container.ts deleted file mode 100644 index fabb264bf..000000000 --- a/src/runtime/markdown-parser/remark-mdc/micromark-extension/tokenize-container.ts +++ /dev/null @@ -1,328 +0,0 @@ -import type { Effects, State, Code, TokenizeContext } from 'micromark-util-types' -import { factorySpace } from 'micromark-factory-space' -import { markdownLineEnding, asciiAlpha, markdownSpace } from 'micromark-util-character' -import { linePrefixSize, useTokenState } from './utils' -import { Codes, ContainerSequenceSize, slotSeparatorCode, slotSeparatorLength } from './constants' -import createName from './factory-name' -import createLabel from './factory-label' -import createAttributes from './factory-attributes' -import { tokenizeFrontMatter } from './tokenize-frontmatter' - -const label: any = { tokenize: tokenizeLabel, partial: true } -const attributes: any = { tokenize: tokenizeAttributes, partial: true } - -function tokenize (this: TokenizeContext, effects: Effects, ok: State, nok: State) { - const self = this - const initialPrefix = linePrefixSize(this.events) - let sizeOpen = 0 - let previous: any - const childContainersSequenceSize: number[] = [] - let containerFirstLine = true - - const section = useTokenState('componentContainerSection') - - /** - * data tokenizer - */ - return start - - function start (code: Code): State | void { - /* istanbul ignore if - handled by mm */ - if (code !== Codes.colon) { throw new Error('expected `:`') } - effects.enter('componentContainer') - effects.enter('componentContainerFence') - effects.enter('componentContainerSequence') - return sequenceOpen(code) - } - - function tokenizeSectionClosing (effects: Effects, ok: State, nok: State) { - let size = 0 - let sectionIndentSize = 0 - let revertSectionState: () => void - return closingPrefixAfter - - function closingPrefixAfter (code: Code): State | void { - sectionIndentSize = linePrefixSize(self.events) - - // Close section - revertSectionState = section.exit(effects) - - effects.enter('componentContainerSectionSequence') - return closingSectionSequence(code) - } - - function closingSectionSequence (code: Code): State | void { - if (code === slotSeparatorCode) { - effects.consume(code) - size++ - return closingSectionSequence - } - - if (size !== slotSeparatorLength) { - // Revert section state to inital value before failing - revertSectionState() - return nok(code) - } - if (sectionIndentSize !== initialPrefix) { - // Revert sect to inital value before failing - revertSectionState() - return nok(code) - } - - // non ascii chars are invalid - if (!asciiAlpha(code)) { - // Revert sect to inital value before failing - revertSectionState() - return nok(code) - } - - effects.exit('componentContainerSectionSequence') - return factorySpace(effects, ok, 'whitespace')(code) - } - } - - function sectionOpen (code: number): void | State { - // Open new Section - section.enter(effects) - - if (markdownLineEnding(code)) { - return factorySpace(effects, lineStart as State, 'whitespace')(code) - } - - effects.enter('componentContainerSectionTitle') - return sectionTitle(code) as State - } - - function sectionTitle (code: Code): State | void { - if (markdownLineEnding(code)) { - effects.exit('componentContainerSectionTitle') - return factorySpace(effects, lineStart as State, 'linePrefix', 4)(code) - } - effects.consume(code) - return sectionTitle - } - - function sequenceOpen (code: Code): State | void { - if (code === Codes.colon) { - effects.consume(code) - sizeOpen++ - return sequenceOpen - } - - if (sizeOpen < ContainerSequenceSize) { - return nok(code) - } - - effects.exit('componentContainerSequence') - return createName.call(self, effects, afterName as State, nok, 'componentContainerName')(code) - } - - function afterName (code: Code): State | void { - return code === Codes.openingSquareBracket - ? effects.attempt(label, afterLabel as State, afterLabel as State)(code) - : afterLabel(code) - } - - function afterLabel (code: Code): State | void { - return code === Codes.openingCurlyBracket - ? effects.attempt(attributes, afterAttributes as State, afterAttributes as State)(code) - : afterAttributes(code) - } - - function afterAttributes (code: Code): State | void { - return factorySpace(effects, openAfter as State, 'whitespace')(code) - } - - function openAfter (code: Code): State | void { - effects.exit('componentContainerFence') - - if (code === null) { - effects.exit('componentContainer') - return ok(code) - } - - if (markdownLineEnding(code)) { - effects.enter('lineEnding') - effects.consume(code) - effects.exit('lineEnding') - - return self.interrupt ? ok : contentStart - } - - return nok(code) - } - - function contentStart (code: Code): State | void { - if (code === null) { - effects.exit('componentContainer') - return ok(code) - } - if (containerFirstLine && (code === Codes.dash || markdownSpace(code))) { - containerFirstLine = false - return tokenizeFrontMatter(effects, ok, nok, contentStart, initialPrefix)(code) - } - - effects.enter('componentContainerContent') - return lineStart(code) - } - - function lineStartAfterPrefix (code: Code): State | void { - if (code === null) { - return after(code) - } - - // detect slots - if (!childContainersSequenceSize.length && (code === slotSeparatorCode || code === Codes.space)) { - return effects.attempt( - { tokenize: tokenizeSectionClosing, partial: true } as any, - sectionOpen as State, - chunkStart as State - )(code) - } - - /** - * disbale spliting inner sections - */ - if (code === Codes.colon) { - return effects.attempt( - { tokenize: tokenizeClosingFence, partial: true } as any, - after as State, - chunkStart as State - )(code) - } - - return chunkStart(code) - } - - function lineStart (code: Code): State | void { - if (code === null) { - return after(code) - } - - return initialPrefix - ? factorySpace(effects, lineStartAfterPrefix as State, 'linePrefix', initialPrefix + 1)(code) - : lineStartAfterPrefix(code) - } - - function chunkStart (code: Code): State | void { - if (code === null) { - return after(code) - } - - // Open new Section - section.enterOnce(effects) - - // @ts-ignore - const token = effects.enter('chunkDocument', { - contentType: 'document', - previous - }) - if (previous) { previous.next = token } - previous = token - return contentContinue(code) - } - - function contentContinue (code: Code): State | void { - if (code === null) { - effects.exit('chunkDocument') - return after(code) - } - - if (markdownLineEnding(code)) { - effects.consume(code) - effects.exit('chunkDocument') - return lineStart - } - - effects.consume(code) - return contentContinue - } - - function after (code: Code): State | void { - // Close section - section.exit(effects) - effects.exit('componentContainerContent') - effects.exit('componentContainer') - return ok(code) - } - - function tokenizeClosingFence (effects: Effects, ok: State, nok: State) { - let size = 0 - - return factorySpace(effects, closingPrefixAfter as State, 'linePrefix', 4) - - function closingPrefixAfter (code: Code): State | void { - effects.enter('componentContainerFence') - effects.enter('componentContainerSequence') - return closingSequence(code) - } - - function closingSequence (code: Code): State | void { - if (code === Codes.colon) { - effects.consume(code) - size++ - return closingSequence - } - - if (childContainersSequenceSize.length) { - if (size === childContainersSequenceSize[childContainersSequenceSize.length - 1]) { - childContainersSequenceSize.pop() - } - return nok(code) - } - - // it is important to match sequence - if (size !== sizeOpen) { return nok(code) } - effects.exit('componentContainerSequence') - return factorySpace(effects, closingSequenceEnd as State, 'whitespace')(code) - } - - function closingSequenceEnd (code: Code): State | void { - if (code === null || markdownLineEnding(code)) { - effects.exit('componentContainerFence') - return ok(code) - } - childContainersSequenceSize.push(size) - return nok(code) - } - } -} - -function tokenizeLabel (effects: Effects, ok: State, nok: State) { - // Always a `[` - return createLabel( - effects, - ok, - nok, - 'componentContainerLabel', - 'componentContainerLabelMarker', - 'componentContainerLabelString', - true - ) -} - -function tokenizeAttributes (effects: Effects, ok: State, nok: State) { - // Always a `{` - return createAttributes( - effects, - ok, - nok, - 'componentContainerAttributes', - 'componentContainerAttributesMarker', - 'componentContainerAttribute', - 'componentContainerAttributeId', - 'componentContainerAttributeClass', - 'componentContainerAttributeName', - 'componentContainerAttributeInitializerMarker', - 'componentContainerAttributeValueLiteral', - 'componentContainerAttributeValue', - 'componentContainerAttributeValueMarker', - 'componentContainerAttributeValueData', - true - ) -} - -export default { - tokenize, - concrete: true -} diff --git a/src/runtime/markdown-parser/remark-mdc/micromark-extension/tokenize-frontmatter.ts b/src/runtime/markdown-parser/remark-mdc/micromark-extension/tokenize-frontmatter.ts deleted file mode 100644 index 839006b04..000000000 --- a/src/runtime/markdown-parser/remark-mdc/micromark-extension/tokenize-frontmatter.ts +++ /dev/null @@ -1,130 +0,0 @@ -import type { Effects, State, TokenizeContext, Code } from 'micromark-util-types' -import { factorySpace } from 'micromark-factory-space' -import { markdownLineEnding, markdownSpace } from 'micromark-util-character' -import { Codes, SectionSequenceSize } from './constants' -import { linePrefixSize } from './utils' - -export function tokenizeFrontMatter ( - effects: Effects, - ok: State, - _nok: State, - next: State, - initialPrefix: number -) { - let previous: any - - return effects.attempt({ - tokenize: tokenizeDataSection as any, - partial: true - }, dataSectionOpen as State, next as State) as State - - // Look for data section - function tokenizeDataSection (this: TokenizeContext, effects: Effects, ok: State, nok: State) { - const self = this - let size = 0 - let sectionIndentSize = 0 - - return closingPrefixAfter - - function dataLineFirstSpaces (code: Code): State | void { - if (markdownSpace(code)) { - effects.consume(code) - sectionIndentSize += 1 - return dataLineFirstSpaces - } - effects.exit('space') - return closingPrefixAfter(code) - } - - function closingPrefixAfter (code: Code): State | void { - if (markdownSpace(code)) { - effects.enter('space') - return dataLineFirstSpaces(code) - } - if (sectionIndentSize === 0) { - sectionIndentSize = linePrefixSize(self.events) - } - effects.enter('componentContainerSectionSequence') - return closingSectionSequence(code) - } - - function closingSectionSequence (code: Code): State | void { - if (code === Codes.dash || markdownSpace(code)) { - effects.consume(code) - size++ - return closingSectionSequence - } - - if (size < SectionSequenceSize) { return nok(code) } - if (sectionIndentSize !== initialPrefix) { return nok(code) } - - if (!markdownLineEnding(code)) { return nok(code) } - - effects.exit('componentContainerSectionSequence') - return factorySpace(effects, ok, 'whitespace')(code) - } - } - - /** - * Enter data section - */ - function dataSectionOpen (code: Code): State | void { - effects.enter('componentContainerDataSection') - return effects.attempt({ - tokenize: tokenizeDataSection as any, - partial: true - }, dataSectionClose as State, dataChunkStart as State)(code) - } - - /** - * Data section line - */ - function dataChunkStart (code: Code): State | void { - if (code === null) { - effects.exit('componentContainerDataSection') - effects.exit('componentContainer') - return ok(code) - } - - // @ts-ignore - const token = effects.enter('chunkDocument', { - contentType: 'document', - previous - }) - if (previous) { previous.next = token } - previous = token - return dataContentContinue(code) - } - - /** - * Data section content - */ - function dataContentContinue (code: Code): State | void { - if (code === null) { - effects.exit('chunkDocument') - effects.exit('componentContainerDataSection') - effects.exit('componentContainer') - return ok(code) - } - - if (markdownLineEnding(code)) { - effects.consume(code) - effects.exit('chunkDocument') - return effects.attempt({ - tokenize: tokenizeDataSection as any, - partial: true - }, dataSectionClose as State, dataChunkStart as State) - } - - effects.consume(code) - return dataContentContinue - } - - /** - * Exit data section - */ - function dataSectionClose (code: Code): State | void { - effects.exit('componentContainerDataSection') - return factorySpace(effects, next, 'whitespace')(code) - } -} diff --git a/src/runtime/markdown-parser/remark-mdc/micromark-extension/tokenize-inline.ts b/src/runtime/markdown-parser/remark-mdc/micromark-extension/tokenize-inline.ts deleted file mode 100644 index 216c95bb0..000000000 --- a/src/runtime/markdown-parser/remark-mdc/micromark-extension/tokenize-inline.ts +++ /dev/null @@ -1,117 +0,0 @@ -import { markdownLineEndingOrSpace } from 'micromark-util-character' -import type { Effects, State, TokenizeContext, Code } from 'micromark-util-types' -import { Codes } from './constants' -import createAttributes from './factory-attributes' -import createLabel from './factory-label' -import createName from './factory-name' - -const label: any = { tokenize: tokenizeLabel, partial: true } -const attributes: any = { tokenize: tokenizeAttributes, partial: true } - -function previous (this: TokenizeContext, code: Code) { - // If there is a previous code, there will always be a tail. - return code !== Codes.colon /* `:` */ || this.events[this.events.length - 1][1].type === 'characterEscape' -} - -function tokenize (this: TokenizeContext, effects: Effects, ok: State, nok: State) { - const self = this - - return start - - function start (code: Code): void | State { - /* istanbul ignore if - handled by mm */ - if (code !== Codes.colon /* `:` */) { throw new Error('expected `:`') } - - if ( - self.previous !== null && - !markdownLineEndingOrSpace(self.previous) && - ![Codes.openingSquareBracket].includes(self.previous) - ) { - return nok(code) - } - - /* istanbul ignore if - handled by mm */ - if (!previous.call(self, self.previous)) { - throw new Error('expected correct previous') - } - - effects.enter('componentText') - effects.enter('componentTextMarker') - effects.consume(code) - effects.exit('componentTextMarker') - return createName.call(self, effects, afterName as State, nok, 'componentTextName') - } - - function afterName (code: Code): void | State { - if (code === Codes.colon /* `:` */) { - return nok(code) - } - - // Check for label - if (code === Codes.openingSquareBracket) { - return effects.attempt(label, afterLabel as State, afterLabel as State)(code) - } - - // Check for attributes - if (code === Codes.openingCurlyBracket) { - return effects.attempt(attributes, afterAttributes as State, afterAttributes as State)(code) - } - - return exit(code) - } - - function afterAttributes (code: Code): void | State { - // Check for label after attributes - if (code === Codes.openingSquareBracket) { - return effects.attempt(label, afterLabel as State, afterLabel as State)(code) - } - - return exit(code) - } - - function afterLabel (code: Code): void | State { - // Check for attributes after label - if (code === Codes.openingCurlyBracket) { - return effects.attempt(attributes, exit as State, exit as State)(code) - } - return exit(code) - } - - function exit (code: Code): void | State { - if (!markdownLineEndingOrSpace(code) && code !== null && ![Codes.closingSquareBracket].includes(code)) { - return nok(code) - } - effects.exit('componentText') - return ok(code) - } -} - -function tokenizeLabel (effects: Effects, ok: State, nok: State) { - // Always a `[` - return createLabel(effects, ok, nok, 'componentTextLabel', 'componentTextLabelMarker', 'componentTextLabelString') -} - -function tokenizeAttributes (effects: Effects, ok: State, nok: State) { - // Always a `{` - return createAttributes( - effects, - ok, - nok, - 'componentTextAttributes', - 'componentTextAttributesMarker', - 'componentTextAttribute', - 'componentTextAttributeId', - 'componentTextAttributeClass', - 'componentTextAttributeName', - 'componentTextAttributeInitializerMarker', - 'componentTextAttributeValueLiteral', - 'componentTextAttributeValue', - 'componentTextAttributeValueMarker', - 'componentTextAttributeValueData' - ) -} - -export default { - tokenize, - previous -} diff --git a/src/runtime/markdown-parser/remark-mdc/micromark-extension/tokenize-span.ts b/src/runtime/markdown-parser/remark-mdc/micromark-extension/tokenize-span.ts deleted file mode 100644 index b5097e07f..000000000 --- a/src/runtime/markdown-parser/remark-mdc/micromark-extension/tokenize-span.ts +++ /dev/null @@ -1,82 +0,0 @@ -import { markdownSpace } from 'micromark-util-character' -import type { Effects, State, Code, TokenizeContext } from 'micromark-util-types' -import { Codes } from './constants' -import createLabel from './factory-label' - -const label: any = { tokenize: tokenizeLabel, partial: true } -const gfmCheck: any = { tokenize: checkGfmTaskCheckbox, partial: true } - -function tokenize (this: TokenizeContext, effects: Effects, ok: State, nok: State) { - const self = this - return start - - function start (code: Code): void | State { - if (code !== Codes.openingSquareBracket) { - throw new Error('expected `[`') - } - - // When we are in the beggining of task list line, - // there is a good chance that we are dealing with a GFM task list - if ( - self.previous === Codes.EOF && - self._gfmTasklistFirstContentOfListItem - ) { - return effects.check(gfmCheck, nok, attemptLabel)(code) - } - - return attemptLabel(code) - } - - function attemptLabel (code: Code): void | State { - effects.enter('textSpan') - return effects.attempt(label, exit as State, nok)(code) - } - - function exit (code: Code): void | State { - // prevent conflict with link syntax - if (code === Codes.openingParentheses || code === Codes.openingSquareBracket) { - return nok(code) - } - effects.exit('textSpan') - return ok(code) - } -} - -/** - * Labels starts with `[` and ends with `]` - */ -function tokenizeLabel (effects: Effects, ok: State, nok: State) { - return createLabel(effects, ok, nok, 'componentTextLabel', 'componentTextLabelMarker', 'componentTextLabelString') -} - -export default { - tokenize -} - -function checkGfmTaskCheckbox (effects: Effects, ok: State, nok: State) { - return enter - - function enter (code: Code): void | State { - effects.enter('formGfmTaskCheckbox') - effects.consume(code) - return check - } - - function check (code: Code): void | State { - if (markdownSpace(code)) { - effects.consume(code) - return check - } - if (code === Codes.uppercaseX || code === Codes.lowercaseX) { - effects.consume(code) - return check - } - - if (code === Codes.closingSquareBracket) { - effects.exit('formGfmTaskCheckbox') - return ok(code) - } - - return nok(code) - } -} diff --git a/src/runtime/markdown-parser/remark-mdc/micromark-extension/utils.ts b/src/runtime/markdown-parser/remark-mdc/micromark-extension/utils.ts deleted file mode 100644 index 3c4ab33ab..000000000 --- a/src/runtime/markdown-parser/remark-mdc/micromark-extension/utils.ts +++ /dev/null @@ -1,93 +0,0 @@ -import type { Effects } from 'micromark-factory-space' - -// Measure the number of character codes in chunks. -// Counts tabs based on their expanded size, and CR+LF as one character. -export function sizeChunks (chunks: any[]) { - let index = -1 - let size = 0 - - while (++index < chunks.length) { - size += typeof chunks[index] === 'string' ? chunks[index].length : 1 - } - - return size -} - -export function prefixSize (events: any, type: string) { - const tail = events[events.length - 1] - if (!tail || tail[1].type !== type) { return 0 } - return sizeChunks(tail[2].sliceStream(tail[1])) -} - -/** - * Calculate line indention size, line indention could be consists of multiple `linePrefix` events - * @param events parser tokens - * @returns line indention size - */ -export function linePrefixSize (events: any[]) { - let size = 0 - let index = events.length - 1 - let tail = events[index] - while (index >= 0 && tail && tail[1].type === 'linePrefix' && tail[0] === 'exit') { - size += sizeChunks(tail[2].sliceStream(tail[1])) - index -= 1 - tail = events[index] - } - - return size -} - -/** - * Manage token state - */ -export const useTokenState = (tokenName: string) => { - const token = { - isOpen: false, - /** - * Enter into token, close previous open token if any - */ - enter: (effects: Effects) => { - const initialState = token.isOpen - token.exit(effects) - effects.enter(tokenName) - token.isOpen = true - - // Revert to initial state - return () => { - token.isOpen = initialState - } - }, - /** - * Enter into token only once, if token is already open, do nothing - */ - enterOnce: (effects: Effects) => { - const initialState = token.isOpen - - if (!token.isOpen) { - effects.enter(tokenName) - token.isOpen = true - } - - // Revert to initial state - return () => { - token.isOpen = initialState - } - }, - /** - * Exit from token if it is open - */ - exit: (effects: Effects) => { - const initialState = token.isOpen - if (token.isOpen) { - effects.exit(tokenName) - token.isOpen = false - } - - // Revert to initial state - return () => { - token.isOpen = initialState - } - } - } - return token -} diff --git a/src/runtime/markdown-parser/remark-mdc/to-markdown.ts b/src/runtime/markdown-parser/remark-mdc/to-markdown.ts deleted file mode 100644 index 7e5e4d259..000000000 --- a/src/runtime/markdown-parser/remark-mdc/to-markdown.ts +++ /dev/null @@ -1,173 +0,0 @@ -/** - * Based on: https://github.com/syntax-tree/mdast-util-directive - * Version: 2.1.0 - * License: MIT (https://github.com/syntax-tree/mdast-util-directive/blob/main/license) - */ -import { stringifyEntitiesLight } from 'stringify-entities' -import type { Parent } from 'mdast-util-to-markdown/lib/types' -import { containerFlow, containerPhrasing, checkQuote } from './mdast-util-to-markdown' -import { stringifyFrontMatter } from './frontmatter' - -const own = {}.hasOwnProperty - -const shortcut = /^[^\t\n\r "#'.<=>`}]+$/ -const baseFense = 2 - -export default { - unsafe: [ - { - character: '\r', - inConstruct: ['leafComponentLabel', 'containerComponentLabel'] - }, - { - character: '\n', - inConstruct: ['leafComponentLabel', 'containerComponentLabel'] - }, - { - before: '[^:]', - character: ':', - after: '[A-Za-z]', - inConstruct: ['phrasing'] - }, - { atBreak: true, character: ':', after: ':' } - ], - handlers: { - containerComponent, - textComponent, - componentContainerSection - } -} - -type NodeComponentContainerSection = Parent & { name: string } -function componentContainerSection (node: NodeComponentContainerSection, _: any, context: any) { - context.indexStack = context.stack - return `#${(node as any).name}\n\n${content(node, context)}` -} - -type NodeTextComponent = Parent & { name: string; rawData: string } -function textComponent (node: NodeTextComponent, _: any, context: any) { - context.indexStack = context.stack - const exit = context.enter(node.type) - let value = ':' + (node.name || '') + label(node, context) + attributes(node, context) - value += '\n' + content(node, context) - exit() - return value -} - -type NodeContainerComponent = Parent & { name: string; fmAttributes?: Record<string, any> } -let nest = 0 -function containerComponent (node: NodeContainerComponent, _: any, context: any) { - context.indexStack = context.stack - const prefix = ':'.repeat(baseFense + nest) - nest += 1 - const exit = context.enter(node.type) - let value = prefix + (node.name || '') + label(node, context) + attributes(node, context) - let subvalue - - // Convert attributes to YAML FrontMatter format - if (node.fmAttributes) { - value += '\n' + stringifyFrontMatter(node.fmAttributes).trim() - } - - if ((node.type as string) === 'containerComponent') { - subvalue = content(node, context) - if (subvalue) { value += '\n' + subvalue } - value += '\n' + prefix - - if (nest > 1) { - value = value - .split('\n') - .map(line => ' ' + line) - .join('\n') - } - } - nest -= 1 - exit() - return value -} - -containerComponent.peek = function peekComponent () { - return ':' -} - -function label (node: Parent, context: any) { - let label: any = node - - if ((node.type as string) === 'containerComponent') { - if (!inlineComponentLabel(node)) { return '' } - label = node.children[0] - } - - const exit = context.enter('label') - const subexit = context.enter(node.type + 'Label') - const value = containerPhrasing(label, context, { before: '[', after: ']' }) - subexit() - exit() - return value ? '[' + value + ']' : '' -} - -function attributes (node: Parent, context: any) { - const quote = checkQuote(context) - const subset = (node.type as string) === 'textComponent' ? [quote] : [quote, '\n', '\r'] - const attrs = (node as any).attributes || {} - const values = [] - let id - let classesFull: string | string[] = '' - let classes: string | string[] = '' - let value - let key - let index - - for (key in attrs) { - if (own.call(attrs, key) && attrs[key] != null) { - value = String(attrs[key]) - - if (key === 'id') { - id = shortcut.test(value) ? '#' + value : quoted('id', value) - } else if (key === 'class') { - value = value.split(/[\t\n\r ]+/g) - classesFull = [] - classes = [] - index = -1 - - while (++index < value.length) { - ;(shortcut.test(value[index]) ? classes : classesFull).push(value[index]) - } - - classesFull = classesFull.length ? quoted('class', classesFull.join(' ')) : '' - classes = classes.length ? '.' + classes.join('.') : '' - } else if (key.startsWith(':') && value === 'true') { - values.push(key.slice(1)) - } else { - values.push(quoted(key, value)) - } - } - } - - if (classesFull) { - values.unshift(classesFull) - } - - if (classes) { - values.unshift(classes) - } - - if (id) { - values.unshift(id) - } - - return values.length ? '{' + values.join(' ') + '}' : '' - - function quoted (key: string, value: string) { - return key + '=' + quote + stringifyEntitiesLight(value, { subset }) + quote - } -} - -function content (node: Parent, context: any) { - const content = inlineComponentLabel(node) ? Object.assign({}, node, { children: node.children.slice(1) }) : node - return containerFlow(content, context) -} - -function inlineComponentLabel (node: Parent) { - return node.children && node.children[0] && node.children[0].data && node.children[0].data.componentLabel -} diff --git a/src/runtime/markdown-parser/toc.ts b/src/runtime/markdown-parser/toc.ts index dd5aa08cc..4ef26a3ad 100644 --- a/src/runtime/markdown-parser/toc.ts +++ b/src/runtime/markdown-parser/toc.ts @@ -3,7 +3,7 @@ import { flattenNode, flattenNodeText } from './utils/ast' const TOC_TAGS = ['h2', 'h3', 'h4', 'h5', 'h6'] -const TOC_TAGS_DEPTH = ['h2', 'h3', 'h4'].reduce((tags: any, tag: string) => { +const TOC_TAGS_DEPTH = TOC_TAGS.reduce((tags: any, tag: string) => { tags[tag] = Number(tag.charAt(tag.length - 1)) return tags }, {}) diff --git a/src/runtime/markdown-parser/utils/node.ts b/src/runtime/markdown-parser/utils/node.ts index b11cec4a1..b6bcbb495 100644 --- a/src/runtime/markdown-parser/utils/node.ts +++ b/src/runtime/markdown-parser/utils/node.ts @@ -17,7 +17,7 @@ export function isTag (vnode: VNode | MarkdownNode, tag: string | symbol): boole if (vnode.type === tag) { return true } - // Vue 3 VNode `type` can be an object (tag is provided by MarkdownRenderer) + // Vue 3 VNode `type` can be an object (tag is provided by ContentRendererMarkdown) if (typeof vnode.type === 'object' && (vnode.type as any).tag === tag) { return true } diff --git a/src/runtime/pages/document-driven.vue b/src/runtime/pages/document-driven.vue new file mode 100644 index 000000000..f45d9e1a7 --- /dev/null +++ b/src/runtime/pages/document-driven.vue @@ -0,0 +1,26 @@ +<script setup lang="ts"> +import { useContent, useContentHead, useRequestEvent } from '#imports' + +const { page } = useContent() + +// Page not found, set correct status code on SSR +if (!page.value && process.server) { + const event = useRequestEvent() + event.res.statusCode = 404 +} + +useContentHead(page) +</script> + +<template> + <div class="document-driven-page"> + <NuxtLayout :name="page?.layout || 'default'"> + <ContentRenderer v-if="page" :key="page._id" :value="page"> + <template #empty="{ value }"> + <DocumentDrivenEmpty :value="value" /> + </template> + </ContentRenderer> + <DocumentDrivenNotFound v-else /> + </NuxtLayout> + </div> +</template> diff --git a/src/runtime/plugins/documentDriven.ts b/src/runtime/plugins/documentDriven.ts new file mode 100644 index 000000000..828902974 --- /dev/null +++ b/src/runtime/plugins/documentDriven.ts @@ -0,0 +1,265 @@ +import type { RouteLocationNormalized, RouteLocationNormalizedLoaded } from 'vue-router' +// @ts-ignore +import { useRuntimeConfig, addRouteMiddleware } from '#app' +import { withoutTrailingSlash } from 'ufo' +import { NavItem, ParsedContent } from '../types' +// @ts-ignore +import { defineNuxtPlugin, queryContent, useContentHelpers, useContentState, fetchContentNavigation, useRoute } from '#imports' +// @ts-ignore +import layouts from '#build/layouts' + +export default defineNuxtPlugin((nuxt) => { + const { documentDriven: moduleOptions } = useRuntimeConfig()?.public?.content + + /** + * Finds a layout value from a cascade of objects. + */ + const findLayout = (to: RouteLocationNormalized, page: ParsedContent, navigation: NavItem[], globals: Record<string, any>) => { + // Page `layout` key has priority + if (page && page?.layout) { return page.layout } + + // Resolve key from .vue page meta + if (to.matched.length && to.matched[0].meta?.layout) { return to.matched[0].meta.layout } + + // Resolve key from navigation + if (navigation && page) { + const { navKeyFromPath } = useContentHelpers() + const layoutFromNav = navKeyFromPath(page._path, 'layout', navigation) + if (layoutFromNav) { return layoutFromNav } + } + + // Resolve key from globals fallback + if (moduleOptions.layoutFallbacks && globals) { + let layoutFallback + for (const fallback of moduleOptions.layoutFallbacks) { + if (globals[fallback] && globals[fallback].layout) { + layoutFallback = globals[fallback].layout + break + } + } + if (layoutFallback) { return layoutFallback } + } + + return 'default' + } + + const refresh = async (to: RouteLocationNormalized | RouteLocationNormalizedLoaded, force: boolean = false) => { + const routeConfig = (to.meta.documentDriven || {}) as any + // Disabled document driven mode on next route + if (to.meta.documentDriven === false) { + return + } + + // Expose hook to be used for loading indicators + !force && nuxt.callHook('content:middleware:start') + + const { navigation, pages, globals, surrounds } = useContentState() + + // Normalize route path + const _path = withoutTrailingSlash(to.path) + + // Promises array to be executed all at once + const promises: (() => Promise<any> | any)[] = [] + + /** + * + * `navigation` + */ + if (moduleOptions.navigation && routeConfig.navigation !== false) { + const navigationQuery = () => { + const { navigation } = useContentState() + + if (navigation.value && !force) { return navigation.value } + + return fetchContentNavigation() + .then((_navigation) => { + navigation.value = _navigation + return _navigation + }) + .catch((_) => { + // eslint-disable-next-line no-console + // console.log('Could not fetch navigation!') + }) + } + + promises.push(navigationQuery) + } else { + promises.push(() => Promise.resolve(null)) + } + + /** + * `globals` + */ + if (moduleOptions.globals) { + const globalsQuery = () => { + const { globals } = useContentState() + + if ( + typeof moduleOptions.globals === 'object' && Array.isArray(moduleOptions.globals) + ) { + // eslint-disable-next-line no-console + console.log('Globals must be a list of keys with QueryBuilderParams as a value.') + return + } + + return Promise.all( + Object.entries(moduleOptions.globals).map( + ([key, query]: [string, any]) => { + // Avoid fetching same file twice + if (!force && globals.value[key]) { return globals.value[key] } + + // Supports `find` if passed as `query: 'find'` in the query definition. + let type = 'findOne' + if (query?.type) { type = query.type } + + return queryContent(query)[type]().catch(() => { + // eslint-disable-next-line no-console + // console.log(`Could not find globals key: ${key}`) + }) + } + ) + ).then( + (values) => { + return values.reduce( + (acc, value, index) => { + const key = Object.keys(moduleOptions.globals)[index] + + acc[key] = value + + return acc + }, {}) + } + ) + } + + promises.push(globalsQuery) + } else { + promises.push(() => Promise.resolve(null)) + } + + /** + * `page` + */ + if (moduleOptions.page && routeConfig.page !== false) { + let where = { _path } + if (typeof routeConfig.page === 'string') { + where = { _path: routeConfig.page } + } + if (typeof routeConfig.page === 'object') { + where = routeConfig.page + } + const pageQuery = () => { + const { pages } = useContentState() + + // Return same page as page is already loaded + if (!force && pages.value[_path] && pages.value[_path]._path === _path) { + return pages.value[_path] + } + + return queryContent() + .where(where) + .findOne() + .catch(() => { + // eslint-disable-next-line no-console + // console.log(`Could not find page: ${to.path}`) + }) + } + + promises.push(pageQuery) + } else { + promises.push(() => Promise.resolve(null)) + } + + /** + * `surround` + */ + if (moduleOptions.surround && routeConfig.surround !== false) { + let surround: any = _path + if (['string', 'object'].includes(typeof routeConfig.page)) { + surround = routeConfig.page + } + if (['string', 'object'].includes(typeof routeConfig.surround)) { + surround = routeConfig.surround + } + const surroundQuery = () => { + const { surrounds } = useContentState() + + // Return same surround as page is already loaded + if (!force && surrounds.value[_path]) { + return surrounds.value[_path] + } + + return queryContent() + .where({ + _partial: { $not: true }, + navigation: { $not: false } + }) + // Exclude `body` for `surround` + .without(['body']) + .findSurround(surround) + .catch(() => { + // eslint-disable-next-line no-console + // console.log(`Could not find surrounding pages for: ${to.path}`) + }) + } + + promises.push(surroundQuery) + } else { + promises.push(() => Promise.resolve(null)) + } + + return await Promise.all(promises.map(promise => promise())).then(async ([ + _navigation, + _globals, + _page, + _surround + ]) => { + if (_navigation) { + navigation.value = _navigation + } + + if (_globals) { + globals.value = _globals + } + + // Use `redirect` key to redirect to another page + if (_page?.redirect) { return _page?.redirect } + + if (_page) { + // Find used layout + const layoutName = findLayout(to, _page, _navigation, _globals) + + // Prefetch layout component + const layout = layouts[layoutName] + + if (layout && layout?.__asyncLoader && !layout.__asyncResolved) { + await layout.__asyncLoader() + } + // Apply layout + to.meta.layout = layoutName + + // Update values + pages.value[_path] = _page + } + + if (_surround) { + surrounds.value[_path] = _surround + } + }) + } + + // Route middleware + addRouteMiddleware(async (to, from) => { + // TODO: Remove this (https://github.com/nuxt/framework/pull/5274) + if (to.path.includes('favicon.ico')) { return } + // Avoid calling on hash change + if (process.client && to.path === from.path) { return } + + const redirect = await refresh(to, false) + + if (redirect) { return redirect } + }) + + // @ts-ignore - Refresh on client-side + nuxt.hook('app:data:refresh', async () => process.client && await refresh(useRoute(), true)) +}) diff --git a/src/runtime/plugin.ts b/src/runtime/plugins/ws.ts similarity index 71% rename from src/runtime/plugin.ts rename to src/runtime/plugins/ws.ts index d6c690f71..de9762203 100644 --- a/src/runtime/plugin.ts +++ b/src/runtime/plugins/ws.ts @@ -5,6 +5,6 @@ export default defineNuxtPlugin(() => { if (process.client && publicConfig.content.wsUrl) { // Connect to websocket - import('./composables/web-socket').then(({ useContentWebSocket }) => useContentWebSocket()) + import('../composables/web-socket').then(({ useContentWebSocket }) => useContentWebSocket()) } }) diff --git a/src/runtime/query/match/index.ts b/src/runtime/query/match/index.ts index e5cd50bf8..f82761f71 100644 --- a/src/runtime/query/match/index.ts +++ b/src/runtime/query/match/index.ts @@ -69,7 +69,9 @@ function createOperators (match: (...args: any[]) => boolean, operators: Record< /** * Match if item is in condition array **/ - $in: (item, condition) => ensureArray(condition).some(cond => match(item, cond)), + $in: (item, condition) => ensureArray(condition).some( + cond => Array.isArray(item) ? match(item, { $contains: cond }) : match(item, cond) + ), /** * Match if item contains every condition or math every rule in condition array diff --git a/src/runtime/query/match/pipeline.ts b/src/runtime/query/match/pipeline.ts index acab570ba..fc66fb96f 100644 --- a/src/runtime/query/match/pipeline.ts +++ b/src/runtime/query/match/pipeline.ts @@ -1,4 +1,4 @@ -import type { QueryBuilderParams, QueryPipe } from '../../types' +import type { QueryBuilder, QueryBuilderParams, QueryPipe } from '../../types' import { apply, ensureArray, sortList, withoutKeys, withKeys } from './utils' import { createMatch } from '.' @@ -40,9 +40,9 @@ export function createPipelineFetcher<T> (getContentsList: () => Promise<T[]>) { (data, params) => params.first ? data[0] : data ] - return async (params: QueryBuilderParams): Promise<T | T[]> => { + return async (query: QueryBuilder<T>): Promise<T | T[]> => { const data = await getContentsList() - return pipelines.reduce(($data: Array<T>, pipe: any) => pipe($data, params) || $data, data) + return pipelines.reduce(($data: Array<T>, pipe: any) => pipe($data, query.params()) || $data, data) } } diff --git a/src/runtime/query/match/utils.ts b/src/runtime/query/match/utils.ts index 6a0d12724..577b14baf 100644 --- a/src/runtime/query/match/utils.ts +++ b/src/runtime/query/match/utils.ts @@ -40,7 +40,7 @@ export const detectProperties = (keys: string[]) => { } export const withoutKeys = (keys: string[] = []) => (obj: any) => { - if (keys.length === 0) { + if (keys.length === 0 || !obj) { return obj } const { prefixes, properties } = detectProperties(keys) @@ -48,7 +48,7 @@ export const withoutKeys = (keys: string[] = []) => (obj: any) => { } export const withKeys = (keys: string[] = []) => (obj: any) => { - if (keys.length === 0) { + if (keys.length === 0 || !obj) { return obj } const { prefixes, properties } = detectProperties(keys) diff --git a/src/runtime/query/query.ts b/src/runtime/query/query.ts index 87e4d82fb..167b75685 100644 --- a/src/runtime/query/query.ts +++ b/src/runtime/query/query.ts @@ -1,19 +1,20 @@ import type { DatabaseFetcher, QueryBuilder, QueryBuilderParams, SortOptions } from '../types' +import { ParsedContent } from '../types' import { ensureArray } from './match/utils' const arrayParams = ['sort', 'where', 'only', 'without'] -export const createQuery = <T>( +export const createQuery = <T = ParsedContent>( fetcher: DatabaseFetcher<T>, - queryParams?: Partial<QueryBuilderParams> + intitialParams?: QueryBuilderParams ): QueryBuilder<T> => { - const params = { - ...queryParams + const queryParams = { + ...intitialParams } as QueryBuilderParams for (const key of arrayParams) { - if (params[key]) { - params[key] = ensureArray(params[key]) + if (queryParams[key]) { + queryParams[key] = ensureArray(queryParams[key]) } } @@ -22,23 +23,29 @@ export const createQuery = <T>( */ const $set = (key: string, fn: (...values: any[]) => any = v => v) => { return (...values: []) => { - params[key] = fn(...values) + queryParams[key] = fn(...values) return query } } const query: QueryBuilder<T> = { - params: () => Object.freeze(params), - only: $set('only', ensureArray), + params: () => queryParams, + only: $set('only', ensureArray) as () => ReturnType<QueryBuilder<T>['only']>, without: $set('without', ensureArray), - where: $set('where', (q: any) => [...ensureArray(params.where), q]), - sort: $set('sort', (sort: SortOptions) => [...ensureArray(params.sort), ...ensureArray(sort)]), + where: $set('where', (q: any) => [...ensureArray(queryParams.where), q]), + sort: $set('sort', (sort: SortOptions) => [...ensureArray(queryParams.sort), ...ensureArray(sort)]), limit: $set('limit', v => parseInt(String(v), 10)), skip: $set('skip', v => parseInt(String(v), 10)), // find - findOne: () => fetcher({ ...params, first: true }) as Promise<T>, - find: () => fetcher(params) as Promise<Array<T>>, - findSurround: (query, options) => fetcher({ ...params, surround: { query, ...options } }) as Promise<Array<T>>, + find: () => fetcher(query) as Promise<Array<T>>, + findOne: () => { + queryParams.first = true + return fetcher(query) as Promise<T> + }, + findSurround: (surroundQuery, options) => { + queryParams.surround = { query: surroundQuery, ...options } + return fetcher(query) as Promise<Array<T>> + }, // locale locale: (_locale: string) => query.where({ _locale }) } diff --git a/src/runtime/server/api/cache.ts b/src/runtime/server/api/cache.ts index 4e22ac63b..589c4dd08 100644 --- a/src/runtime/server/api/cache.ts +++ b/src/runtime/server/api/cache.ts @@ -1,5 +1,6 @@ import { defineEventHandler } from 'h3' -import { serverQueryContent } from '../storage' +import { getContentIndex } from '../content-index' +import { cacheStorage, serverQueryContent } from '../storage' // This route is used to cache all the parsed content export default defineEventHandler(async (event) => { @@ -7,6 +8,12 @@ export default defineEventHandler(async (event) => { // Fetch all content await serverQueryContent(event).find() + // Generate Index + await getContentIndex(event) + + const navigation = await $fetch('/api/_content/navigation') + await cacheStorage.setItem('content-navigation.json', navigation) + return { generatedAt: now, generateTime: Date.now() - now diff --git a/src/runtime/server/api/highlight.ts b/src/runtime/server/api/highlight.ts index 13ac077c6..154f3134b 100644 --- a/src/runtime/server/api/highlight.ts +++ b/src/runtime/server/api/highlight.ts @@ -1,9 +1,13 @@ -import { createError, defineLazyEventHandler, useBody } from 'h3' +import { /* createError, */defineLazyEventHandler, useBody } from 'h3' import { getHighlighter, BUNDLED_LANGUAGES, BUNDLED_THEMES, Lang, Theme } from 'shiki-es' +import consola from 'consola' import { HighlightParams, HighlightThemedToken } from '../../types' import mdcTMLanguage from '../../assets/mdc.tmLanguage.json' import { useRuntimeConfig } from '#imports' +// Re-create logger locally as utils cannot be imported from here +export const logger = consola.withScope('@nuxt/content') + /** * Resolve Shiki compatible lang from string. * @@ -15,22 +19,41 @@ const resolveLang = (lang: string): Lang | undefined => /** * Resolve Shiki compatible theme from string. */ -const resolveTheme = (theme: string): Theme | undefined => - BUNDLED_THEMES.find(t => t === theme) +const resolveTheme = (theme: string | Record<string, string>): Record<string, Theme> | undefined => { + if (!theme) { + return + } + if (typeof theme === 'string') { + theme = { + default: theme + } + } + + return Object.entries(theme).reduce((acc, [key, value]) => { + acc[key] = BUNDLED_THEMES.find(t => t === value) + return acc + }, {}) +} /** * Resolve Shiki highlighter compatible payload from request body. */ -const resolveBody = (body: Partial<HighlightParams>): { code: string, lang?: Lang, theme?: Theme } => { +const resolveBody = (body: Partial<HighlightParams>) => { // Assert body schema - if (typeof body.code !== 'string') { throw createError({ statusMessage: 'Bad Request', statusCode: 400, message: 'Missing code key.' }) } + if (typeof body.code !== 'string') { + // TODO: Maybe remove this hotfix? + // I could not reproduce the issue with local content, but it might happen when using `parseContent` or external content sources. + body.code = '' + + // throw createError({ statusMessage: 'Bad Request', statusCode: 400, message: 'Missing code key.' }) + } return { // Remove trailing carriage returns code: body.code.replace(/\n+$/, ''), // Resolve lang & theme (i.e check if shiki supports them) - lang: resolveLang(body.lang), - theme: resolveTheme(body.theme) + lang: resolveLang(body.lang || ''), + theme: resolveTheme(body.theme || '') } } @@ -40,9 +63,14 @@ export default defineLazyEventHandler(async () => { // Initialize highlighter with defaults const highlighter = await getHighlighter({ - theme: theme || 'dark-plus', + theme: theme?.default || theme || 'dark-plus', langs: [ - ...(preload || ['json', 'js', 'ts', 'css']), + ...(preload || []), + 'diff', + 'json', + 'js', + 'ts', + 'css', 'shell', 'html', 'md', @@ -60,7 +88,7 @@ export default defineLazyEventHandler(async () => { return async (event): Promise<HighlightThemedToken[][]> => { const params = await useBody<Partial<HighlightParams>>(event) - const { code, lang, theme } = resolveBody(params) + const { code, lang, theme = { default: highlighter.getTheme() } } = resolveBody(params) // Skip highlight if lang is not supported if (!lang) { @@ -69,25 +97,106 @@ export default defineLazyEventHandler(async () => { // Load supported language on-demand if (!highlighter.getLoadedLanguages().includes(lang)) { - await highlighter.loadLanguage(lang) + let message = 'Content Highlighter Error\n\n' + message = message + `Language "${lang}" is not loaded Shiki. Falling back to plain code.\n\n` + message = message + `Please make sure you add "${lang}" to the 'preload' list in your Nuxt config.\n\n` + message = message + 'See: https://content.nuxtjs.org/api/configuration#highlight' + logger.warn(message) + + // TODO: Enable autoloading of language when upstream Shiki supports it\ + // See: https://github.com/nuxt/content/issues/1225#issuecomment-1148786924 + // await highlighter.loadLanguage(lang) + return [[{ content: code }]] } // Load supported theme on-demand - if (theme && !highlighter.getLoadedThemes().includes(theme)) { - await highlighter.loadTheme(theme) - } + await Promise.all( + Object.values(theme).map(async (theme) => { + if (!highlighter.getLoadedThemes().includes(theme)) { + await highlighter.loadTheme(theme) + } + }) + ) // Highlight code - const highlightedCode = highlighter.codeToThemedTokens(code, lang, theme) - - // Clean up to shorten response payload - for (const line of highlightedCode) { - for (const token of line) { - delete token.fontStyle - delete token.explanation + const coloredTokens = Object.entries(theme).map(([key, theme]) => { + const tokens = highlighter.codeToThemedTokens(code, lang, theme) + return { + key, + theme, + tokens } + }) + + const highlightedCode: HighlightThemedToken[][] = [] + for (const line in coloredTokens[0].tokens) { + highlightedCode[line] = coloredTokens.reduce((acc, color) => { + return mergeLines({ + key: coloredTokens[0].key, + tokens: acc + }, { + key: color.key, + tokens: color.tokens[line] + }) + }, coloredTokens[0].tokens[line] as HighlightThemedToken[]) } return highlightedCode } }) + +interface HighlightThemedTokenLine { + key: string + tokens: HighlightThemedToken[] +} + +function mergeLines (line1: HighlightThemedTokenLine, line2: HighlightThemedTokenLine) { + const mergedTokens: HighlightThemedToken[] = [] + const getColors = (h, i) => typeof h.tokens[i].color === 'string' ? { [h.key]: h.tokens[i].color } : h.tokens[i].color + + const [big, small] = line1.tokens.length > line2.tokens.length ? [line1, line2] : [line2, line1] + let targetToken = 0 + let targetTokenCharIndex = 0 + big.tokens.forEach((t, i) => { + if (targetTokenCharIndex === 0) { + if (t.content === small.tokens[i]?.content) { + mergedTokens.push({ + content: t.content, + color: { + ...getColors(big, i), + ...getColors(small, i) + } + }) + targetToken = i + 1 + return + } + if (t.content === small.tokens[targetToken]?.content) { + mergedTokens.push({ + content: t.content, + color: { + ...getColors(big, i), + ...getColors(small, targetToken) + } + }) + targetToken += 1 + return + } + } + + if (small.tokens[targetToken]?.content?.substring(targetTokenCharIndex, targetTokenCharIndex + t.content.length) === t.content) { + targetTokenCharIndex += t.content.length + mergedTokens.push({ + content: t.content, + color: { + ...getColors(big, i), + ...getColors(small, targetToken) + } + }) + } + if (small.tokens[targetToken]?.content.length <= targetTokenCharIndex) { + targetToken += 1 + targetTokenCharIndex = 0 + } + }) + return mergedTokens +} diff --git a/src/runtime/server/api/navigation.ts b/src/runtime/server/api/navigation.ts index 4f11e3063..dcfd381f2 100644 --- a/src/runtime/server/api/navigation.ts +++ b/src/runtime/server/api/navigation.ts @@ -1,11 +1,20 @@ import { defineEventHandler } from 'h3' -import { serverQueryContent } from '../storage' +import { cacheStorage, serverQueryContent } from '../storage' import { createNav } from '../navigation' -import { ParsedContentMeta, QueryBuilderParams } from '../../types' +import { ParsedContentMeta } from '../../types' import { getContentQuery } from '../../utils/query' +import { isPreview } from '../preview' export default defineEventHandler(async (event) => { - const query: Partial<QueryBuilderParams> = getContentQuery(event) + const query = getContentQuery(event) + + // Read from cache if not preview and there is no query + if (!isPreview(event) && Object.keys(query).length === 0) { + const cache = await cacheStorage.getItem('content-navigation.json') + if (cache) { + return cache + } + } const contents = await serverQueryContent(event, query) .where({ @@ -13,11 +22,18 @@ export default defineEventHandler(async (event) => { * Partial contents are not included in the navigation * A partial content is a content that has `_` prefix in its path */ - _partial: false + _partial: false, + /** + * Exclude any pages which have opted out of navigation via frontmatter. + */ + navigation: { + $ne: false + } }) .find() const dirConfigs = await serverQueryContent(event).where({ _path: /\/_dir$/i, _partial: true }).find() + const configs = dirConfigs.reduce((configs, conf) => { if (conf.title.toLowerCase() === 'dir') { conf.title = undefined diff --git a/src/runtime/server/api/query.ts b/src/runtime/server/api/query.ts index 381eb3827..a8b9e33e5 100644 --- a/src/runtime/server/api/query.ts +++ b/src/runtime/server/api/query.ts @@ -1,10 +1,9 @@ import { createError, defineEventHandler } from 'h3' -import type { QueryBuilderParams } from '../../types' import { serverQueryContent } from '../storage' import { getContentQuery } from '../../utils/query' export default defineEventHandler(async (event) => { - const query: Partial<QueryBuilderParams> = getContentQuery(event) + const query = getContentQuery(event) const contents = await serverQueryContent(event, query).find() // If no documents matchs and using findOne() diff --git a/src/runtime/server/content-index.ts b/src/runtime/server/content-index.ts new file mode 100644 index 000000000..cf7331e3c --- /dev/null +++ b/src/runtime/server/content-index.ts @@ -0,0 +1,43 @@ +import type { CompatibilityEvent } from 'h3' +import type { ParsedContent, QueryBuilder } from '../types' +import { isPreview } from './preview' +import { cacheStorage, getContent, getContentsList, serverQueryContent } from './storage' + +export async function getContentIndex (event: CompatibilityEvent) { + let contentIndex = await cacheStorage.getItem('content-index.json') as Record<string, string> + if (!contentIndex) { + // Fetch all content + const data = await serverQueryContent(event).find() + + contentIndex = data.reduce((acc, item) => { + if (!acc[item._path!]) { + acc[item._path!] = item._id + } else if (item._id.startsWith('content:')) { + acc[item._path!] = item._id + } + return acc + }, {} as Record<string, string>) + + await cacheStorage.setItem('content-index.json', contentIndex) + } + + return contentIndex +} + +export async function getIndexedContentsList<T = ParsedContent> (event: CompatibilityEvent, query: QueryBuilder<T>): Promise<T[]> { + const params = query.params() + const path = params?.where?.find(wh => wh._path)?._path + + // Read from Index is not preview and path is string or RegExp + if (!isPreview(event) && (typeof path === 'string' || path instanceof RegExp)) { + const index = await getContentIndex(event) + const keys = Object.keys(index) + .filter(key => (path as any).test ? (path as any).test(key) : key === String(path)) + .map(key => index[key]) + + const contents = await Promise.all(keys.map(key => getContent(event, key))) + return contents as unknown as Promise<T[]> + } + + return getContentsList(event) as unknown as Promise<T[]> +} diff --git a/src/runtime/server/index.ts b/src/runtime/server/index.ts index bfc3d50b6..a5e0ad631 100644 --- a/src/runtime/server/index.ts +++ b/src/runtime/server/index.ts @@ -1,2 +1 @@ -export { serverQueryContent } from './storage' -export { parseContent } from './transformers' +export { serverQueryContent, parseContent } from './storage' diff --git a/src/runtime/server/navigation.ts b/src/runtime/server/navigation.ts index 1eaed2878..ee94da9aa 100644 --- a/src/runtime/server/navigation.ts +++ b/src/runtime/server/navigation.ts @@ -1,44 +1,65 @@ import { NavItem, ParsedContentMeta } from '../types' -import { generateTitle } from './transformers/path-meta' +import { generateTitle } from '../transformers/path-meta' import { useRuntimeConfig } from '#imports' type PrivateNavItem = NavItem & { path?: string } + /** * Create NavItem array to be consumed from runtime plugin. */ export function createNav (contents: ParsedContentMeta[], configs: Record<string, ParsedContentMeta>) { + // Get navigation config from runtimeConfig const { navigation } = useRuntimeConfig().content - const pickNavigationFields = pick(['title', ...navigation.fields]) + + // Navigation fields picker + const pickNavigationFields = (content: ParsedContentMeta) => ({ + ...pick(['title', ...navigation.fields])(content), + ...(isObject(content?.navigation) ? content.navigation : {}) + }) + + // Create navigation object const nav = contents .sort((a, b) => a._path.localeCompare(b._path)) .reduce((nav, content) => { + // Resolve path and id parts const parts = content._path.substring(1).split('/') const idParts = content._id.split(':').slice(1) + + // Check if node is `*:index.md` const isIndex = !!idParts[idParts.length - 1].match(/([1-9][0-9]*\.)?index.md/g) - const getNavItem = (content: ParsedContentMeta) => { - return { - title: content.title, - _path: content._path, - _file: content._file, - children: [], - ...pickNavigationFields(content), - ...(content._draft ? { _draft: true } : {}) - } - } + const getNavItem = (content: ParsedContentMeta) => ({ + title: content.title, + _path: content._path, + _file: content._file, + children: [], + ...pickNavigationFields(content), + ...(content._draft ? { _draft: true } : {}) + }) + // Create navigation item from ParsedContent const navItem: PrivateNavItem = getNavItem(content) // Push index if (isIndex) { + // Grab index directory config + const dirConfig = configs[navItem._path] + + // Drop item if current directory config has `navigation: false` + if (typeof dirConfig?.navigation !== 'undefined' && !dirConfig?.navigation) { + return nav + } + + // Skip root `index.md` as it has to be pushed as a page if (content._path !== '/') { const indexItem = getNavItem(content) navItem.children.push(indexItem) } + // Merge navigation fields with navItem Object.assign( navItem, - pickNavigationFields(configs[navItem._path]) + pickNavigationFields(dirConfig) ) } @@ -53,12 +74,19 @@ export function createNav (contents: ParsedContentMeta[], configs: Record<string // Part of current path const currentPathPart = '/' + parts.slice(0, i + 1).join('/') + // Get current node _dir.yml config + const conf = configs[currentPathPart] + + // Drop childrens if _dir.yml has `navigation: false` + if (typeof conf?.navigation !== 'undefined' && !conf.navigation) { + return [] + } + // Find parent node let parent: PrivateNavItem = nodes.find(n => n._path === currentPathPart) // Create dummy parent if not found if (!parent) { - const conf = configs[currentPathPart] parent = { title: generateTitle(part), _path: currentPathPart, @@ -71,6 +99,7 @@ export function createNav (contents: ParsedContentMeta[], configs: Record<string return parent.children }, nav) + siblings.push(navItem) return nav @@ -80,6 +109,7 @@ export function createNav (contents: ParsedContentMeta[], configs: Record<string } const collator = new Intl.Collator(undefined, { numeric: true, sensitivity: 'base' }) + /** * Sort items by path and clear empty children keys. */ @@ -115,3 +145,7 @@ function pick (keys?: string[]) { return obj } } + +function isObject (obj: any) { + return Object.prototype.toString.call(obj) === '[object Object]' +} diff --git a/src/runtime/server/storage.ts b/src/runtime/server/storage.ts index 22b138d58..24afbfd66 100644 --- a/src/runtime/server/storage.ts +++ b/src/runtime/server/storage.ts @@ -1,14 +1,35 @@ import { prefixStorage } from 'unstorage' -import { joinURL, withLeadingSlash } from 'ufo' +import { joinURL, withLeadingSlash, withoutTrailingSlash } from 'ufo' import { hash as ohash } from 'ohash' import type { CompatibilityEvent } from 'h3' -import type { QueryBuilderParams, ParsedContent, QueryBuilder } from '../types' +// eslint-disable-next-line import/no-named-as-default +import defu from 'defu' +import type { QueryBuilderParams, ParsedContent, QueryBuilder, ContentTransformer } from '../types' import { createQuery } from '../query/query' import { createPipelineFetcher } from '../query/match/pipeline' -import { parseContent } from './transformers' +import { transformContent } from '../transformers' +import type { ModuleOptions } from '../../module' import { getPreview, isPreview } from './preview' +import { getIndexedContentsList } from './content-index' // eslint-disable-next-line import/named -import { useRuntimeConfig, useStorage } from '#imports' +// @ts-ignore +import { useNitroApp, useRuntimeConfig, useStorage } from '#imports' +// @ts-ignore +import { transformers as customTransformers } from '#content/virtual/transformers' + +interface ParseContentOptions { + csv?: ModuleOptions['csv'] + yaml?: ModuleOptions['yaml'] + highlight?: ModuleOptions['highlight'] + markdown?: ModuleOptions['markdown'] + transformers?: ContentTransformer[] + pathMeta?: { + locales?: ModuleOptions['locales'] + defaultLocale?: ModuleOptions['defaultLocale'] + } + // Allow passing options for custom transformers + [key: string]: any +} export const sourceStorage = prefixStorage(useStorage(), 'content:source') export const cacheStorage = prefixStorage(useStorage(), 'cache:content') @@ -17,18 +38,34 @@ export const cacheParsedStorage = prefixStorage(useStorage(), 'cache:content:par const isProduction = process.env.NODE_ENV === 'production' const contentConfig = useRuntimeConfig().content + /** * Content ignore patterns */ -export const contentIgnores = contentConfig.ignores.map((p: any) => - typeof p === 'string' ? new RegExp(`^${p}`) : p +export const contentIgnores: Array<RegExp> = contentConfig.ignores.map((p: any) => + typeof p === 'string' ? new RegExp(`^${p}|:${p}`) : p ) +/** + * Invalid key characters + */ +const invalidKeyCharacters = "'\"?#/".split('') + /** * Filter predicate for ignore patterns */ -const contentIgnorePredicate = (key: string) => - !key.startsWith('preview:') && !contentIgnores.some((prefix: RegExp) => key.split(':').some(k => prefix.test(k))) +const contentIgnorePredicate = (key: string) => { + if (key.startsWith('preview:') || contentIgnores.some(prefix => prefix.test(key))) { + return false + } + if (invalidKeyCharacters.some(ik => key.includes(ik))) { + // eslint-disable-next-line no-console + console.warn(`Ignoring [${key}]. File name should not contain any of the following characters: ${invalidKeyCharacters.join(', ')}`) + return false + } + + return true +} export const getContentsIds = async (event: CompatibilityEvent, prefix?: string) => { let keys = [] @@ -99,7 +136,7 @@ export const getContent = async (event: CompatibilityEvent, id: string): Promise meta, // Add Content version to the hash, to revalidate the cache on content update version: contentConfig.cacheVersion, - integerity: contentConfig.cacheIntegrity + integrity: contentConfig.cacheIntegrity }) if (cached?.hash === hash) { return cached.parsed as ParsedContent @@ -111,7 +148,7 @@ export const getContent = async (event: CompatibilityEvent, id: string): Promise return { _id: contentId, body: null } } - const parsed = await parseContent(contentId, body as string) + const parsed = await parseContent(contentId, body as string) as ParsedContent await cacheParsedStorage.setItem(id, { parsed, hash }).catch(() => {}) @@ -119,30 +156,65 @@ export const getContent = async (event: CompatibilityEvent, id: string): Promise } /** - * Query contents + * Parse content file using registered plugins */ -export function serverQueryContent<T = ParsedContent>(event: CompatibilityEvent): QueryBuilder<T>; -export function serverQueryContent<T = ParsedContent>(event: CompatibilityEvent, params?: Partial<QueryBuilderParams>): QueryBuilder<T>; -export function serverQueryContent<T = ParsedContent>(event: CompatibilityEvent, path?: string, ...pathParts: string[]): QueryBuilder<T>; -export function serverQueryContent<T = ParsedContent> (event: CompatibilityEvent, path?: string | Partial<QueryBuilderParams>, ...pathParts: string[]) { - let params = (path || {}) as Partial<QueryBuilderParams> - if (typeof path === 'string') { - path = withLeadingSlash(joinURL(path, ...pathParts)) - // escape regex special chars - path = path.replace(/[-[\]{}()*+.,^$\s]/g, '\\$&') +export async function parseContent (id: string, content: string, opts: ParseContentOptions = {}) { + const nitroApp = useNitroApp() + const options = defu( + opts, + { + markdown: contentConfig.markdown, + csv: contentConfig.csv, + yaml: contentConfig.yaml, + highlight: contentConfig.highlight, + transformers: customTransformers, + pathMeta: { + defaultLocale: contentConfig.defaultLocale, + locales: contentConfig.locales + } + } + ) - params = { - where: [{ _path: new RegExp(`^${path}`) }] + // Call hook before parsing the file + const file = { _id: id, body: content } + await nitroApp.hooks.callHook('content:file:beforeParse', file) + + const result = await transformContent(id, file.body, options) + + // Call hook after parsing the file + await nitroApp.hooks.callHook('content:file:afterParse', result) + + return result +} + +export const createServerQueryFetch = <T = ParsedContent>(event: CompatibilityEvent, path?: string) => (query: QueryBuilder<T>) => { + if (path) { + if (query.params().first) { + query.where({ _path: withoutTrailingSlash(path) }) + } else { + query.where({ _path: new RegExp(`^${path.replace(/[-[\]{}()*+.,^$\s/]/g, '\\$&')}`) }) } } - const pipelineFetcher = createPipelineFetcher<T>( - () => getContentsList(event) as unknown as Promise<T[]> - ) // Provide default sort order - if (!params.sort?.length) { - params.sort = [{ _file: 1, $numeric: true }] + if (!query.params().sort?.length) { + query.sort({ _file: 1, $numeric: true }) + } + + return createPipelineFetcher<T>(() => getIndexedContentsList<T>(event, query))(query) +} + +/** + * Query contents + */ +export function serverQueryContent<T = ParsedContent>(event: CompatibilityEvent): QueryBuilder<T>; +export function serverQueryContent<T = ParsedContent>(event: CompatibilityEvent, params?: QueryBuilderParams): QueryBuilder<T>; +export function serverQueryContent<T = ParsedContent>(event: CompatibilityEvent, path?: string, ...pathParts: string[]): QueryBuilder<T>; +export function serverQueryContent<T = ParsedContent> (event: CompatibilityEvent, path?: string | QueryBuilderParams, ...pathParts: string[]) { + if (typeof path === 'string') { + path = withLeadingSlash(joinURL(path, ...pathParts)) + return createQuery<T>(createServerQueryFetch(event, path)) } - return createQuery<T>(pipelineFetcher, params) + return createQuery<T>(createServerQueryFetch(event), path || {}) } diff --git a/src/runtime/server/transformers/csv.ts b/src/runtime/server/transformers/csv.ts deleted file mode 100644 index 873d0df55..000000000 --- a/src/runtime/server/transformers/csv.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { useRuntimeConfig } from '#imports' - -export default { - name: 'csv', - extentions: ['.csv'], - parse: async (_id, content) => { - const config = { ...useRuntimeConfig().content?.csv || {} } - - const csvToJson: any = await import('csvtojson').then(m => m.default || m) - - const parsed = await csvToJson({ output: 'json', ...config }) - .fromString(content) - - return { - _id, - _type: 'csv', - body: parsed - } - } -} diff --git a/src/runtime/server/transformers/index.ts b/src/runtime/server/transformers/index.ts deleted file mode 100644 index c4fbbd2fc..000000000 --- a/src/runtime/server/transformers/index.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { extname } from 'pathe' -import type { ParsedContent, ContentTransformer } from '../../types' -import { getParser, getTransformers } from '#content/virtual/transformers' -// eslint-disable-next-line import/named -import { useNitroApp } from '#imports' -/** - * Parse content file using registered plugins - */ -export async function parseContent (id: string, content: string) { - const nitroApp = useNitroApp() - - // Call hook before parsing the file - const file = { _id: id, body: content } - await nitroApp.hooks.callHook('content:file:beforeParse', file) - - const ext = extname(id) - const plugin: ContentTransformer = getParser(ext) - if (!plugin) { - // eslint-disable-next-line no-console - console.warn(`${ext} files are not supported, "${id}" falling back to raw content`) - return file - } - - const parsed: ParsedContent = await plugin.parse!(file._id, file.body) - - const transformers = getTransformers(ext) - const result = await transformers.reduce(async (prev, cur) => { - const next = (await prev) || parsed - - return cur.transform!(next) - }, Promise.resolve(parsed)) - - // Call hook after parsing the file - await nitroApp.hooks.callHook('content:file:afterParse', result) - - return result -} diff --git a/src/runtime/server/transformers/markdown.ts b/src/runtime/server/transformers/markdown.ts deleted file mode 100644 index a36f3d5a8..000000000 --- a/src/runtime/server/transformers/markdown.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { parse } from '../../markdown-parser' -import type { MarkdownOptions } from '../../types' -import { useRuntimeConfig } from '#imports' - -const importPlugin = async (p: [string, any]) => ([ - await import(p[0]).then(res => res.default || res), - typeof p[1] === 'object' ? { ...p[1] } : p[1] -]) - -export default { - name: 'markdown', - extentions: ['.md'], - parse: async (_id, content) => { - const config: MarkdownOptions = { ...useRuntimeConfig().content?.markdown || {} } - config.rehypePlugins = await Promise.all((config.rehypePlugins || []).map(importPlugin)) - config.remarkPlugins = await Promise.all((config.remarkPlugins || []).map(importPlugin)) - - const parsed = await parse(content, config) - - return { - ...parsed.meta, - body: parsed.body, - _type: 'markdown', - _id - } - } -} diff --git a/src/runtime/server/transformers/shiki.ts b/src/runtime/server/transformers/shiki.ts deleted file mode 100644 index 4dbd20736..000000000 --- a/src/runtime/server/transformers/shiki.ts +++ /dev/null @@ -1,83 +0,0 @@ -import { visit } from 'unist-util-visit' -import { withBase } from 'ufo' -import { useRuntimeConfig } from '#imports' - -const withContentBase = (url: string) => { - return withBase(url, `/api/${useRuntimeConfig().public.content.base}`) -} - -export default { - name: 'markdown', - extentions: ['.md'], - transform: async (content) => { - const codeBlocks = [] - visit( - content.body, - (node: any) => node.tag === 'code' && node?.props.code, - (node) => { codeBlocks.push(node) } - ) - await Promise.all(codeBlocks.map(highlightBlock)) - - const inlineCodes = [] - visit( - content.body, - (node: any) => node.tag === 'code-inline' && (node.props?.lang || node.props?.language), - (node) => { inlineCodes.push(node) } - ) - - await Promise.all(inlineCodes.map(highlightInline)) - - return content - } -} - -const tokenSpan = ({ content, color }) => ({ - type: 'element', - tag: 'span', - props: { style: { color } }, - children: [{ type: 'text', value: content }] -}) - -const highlightInline = async (node) => { - const code = node.children[0].value - - // Fetch highlighted tokens - const lines = await $fetch(withContentBase('highlight'), { - method: 'POST', - body: { - code, - lang: node.props.lang || node.props.language - } - }) - - // Generate highlighted children - node.children = lines[0].map(tokenSpan) - - node.props = node.props || {} - node.props.class = 'colored' - - return node -} - -const highlightBlock = async (node) => { - const { code, language: lang, highlights = [] } = node.props - - // Fetch highlighted tokens - const lines = await $fetch(withContentBase('highlight'), { - method: 'POST', - body: { - code, - lang - } - }) - - // Generate highlighted children - const innerCodeNode = node.children[0].children[0] - innerCodeNode.children = lines.map((line, lineIndex) => ({ - type: 'element', - tag: 'span', - props: { class: ['line', highlights.includes(lineIndex + 1) ? 'highlight' : ''].join(' ').trim() }, - children: line.map(tokenSpan) - })) - return node -} diff --git a/src/runtime/transformers/csv/create-tokenizer.ts b/src/runtime/transformers/csv/create-tokenizer.ts new file mode 100644 index 000000000..aa5e5e85e --- /dev/null +++ b/src/runtime/transformers/csv/create-tokenizer.ts @@ -0,0 +1,600 @@ +// Do not edit this file. This is code generated by micromark. +// See: https://github.com/micromark/micromark/blob/ed234535990d3e968f3c108d03f3235d733c43ac/packages/micromark/dev/lib/create-tokenizer.js +// @ts-nocheck +/* eslint-disable */ +/** + * @typedef {import('micromark-util-types').Code} Code + * @typedef {import('micromark-util-types').Chunk} Chunk + * @typedef {import('micromark-util-types').Point} Point + * @typedef {import('micromark-util-types').Token} Token + * @typedef {import('micromark-util-types').Effects} Effects + * @typedef {import('micromark-util-types').State} State + * @typedef {import('micromark-util-types').Construct} Construct + * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct + * @typedef {import('micromark-util-types').ConstructRecord} ConstructRecord + * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext + * @typedef {import('micromark-util-types').ParseContext} ParseContext + */ + +/** + * @typedef Info + * @property {() => void} restore + * @property {number} from + * + * @callback ReturnHandle + * Handle a successful run. + * @param {Construct} construct + * @param {Info} info + * @returns {void} + */ + import {markdownLineEnding} from 'micromark-util-character' + import {push, splice} from 'micromark-util-chunked' + import {resolveAll} from 'micromark-util-resolve-all' + + /** + * Create a tokenizer. + * Tokenizers deal with one type of data (e.g., containers, flow, text). + * The parser is the object dealing with it all. + * `initialize` works like other constructs, except that only its `tokenize` + * function is used, in which case it doesn’t receive an `ok` or `nok`. + * `from` can be given to set the point before the first character, although + * when further lines are indented, they must be set with `defineSkip`. + * + * @param {ParseContext} parser + * @param {InitialConstruct} initialize + * @param {Omit<Point, '_index'|'_bufferIndex'>} [from] + * @returns {TokenizeContext} + */ + export function createTokenizer(parser, initialize, from) { + /** @type {Point} */ + let point = Object.assign( + from + ? Object.assign({}, from) + : { + line: 1, + column: 1, + offset: 0 + }, + { + _index: 0, + _bufferIndex: -1 + } + ) + /** @type {Record<string, number>} */ + + const columnStart = {} + /** @type {Construct[]} */ + + const resolveAllConstructs = [] + /** @type {Chunk[]} */ + + let chunks = [] + /** @type {Token[]} */ + + let stack = [] + /** @type {boolean|undefined} */ + + let consumed = true + /** + * Tools used for tokenizing. + * + * @type {Effects} + */ + + const effects = { + consume, + enter, + exit, + attempt: constructFactory(onsuccessfulconstruct), + check: constructFactory(onsuccessfulcheck), + interrupt: constructFactory(onsuccessfulcheck, { + interrupt: true + }) + } + /** + * State and tools for resolving and serializing. + * + * @type {TokenizeContext} + */ + + const context = { + previous: null, + code: null, + containerState: {}, + events: [], + parser, + sliceStream, + sliceSerialize, + now, + defineSkip, + write + } + /** + * The state function. + * + * @type {State|void} + */ + + let state = initialize.tokenize.call(context, effects) + /** + * Track which character we expect to be consumed, to catch bugs. + * + * @type {Code} + */ + + let expectedCode + + if (initialize.resolveAll) { + resolveAllConstructs.push(initialize) + } + + return context + /** @type {TokenizeContext['write']} */ + + function write(slice) { + chunks = push(chunks, slice) + main() // Exit if we’re not done, resolve might change stuff. + + if (chunks[chunks.length - 1] !== null) { + return [] + } + + addResult(initialize, 0) // Otherwise, resolve, and exit. + + context.events = resolveAll(resolveAllConstructs, context.events, context) + return context.events + } // + // Tools. + // + + /** @type {TokenizeContext['sliceSerialize']} */ + + function sliceSerialize(token, expandTabs) { + return serializeChunks(sliceStream(token), expandTabs) + } + /** @type {TokenizeContext['sliceStream']} */ + + function sliceStream(token) { + return sliceChunks(chunks, token) + } + /** @type {TokenizeContext['now']} */ + + function now() { + return Object.assign({}, point) + } + /** @type {TokenizeContext['defineSkip']} */ + + function defineSkip(value) { + columnStart[value.line] = value.column + accountForPotentialSkip() + } // + // State management. + // + + /** + * Main loop (note that `_index` and `_bufferIndex` in `point` are modified by + * `consume`). + * Here is where we walk through the chunks, which either include strings of + * several characters, or numerical character codes. + * The reason to do this in a loop instead of a call is so the stack can + * drain. + * + * @returns {void} + */ + + function main() { + /** @type {number} */ + let chunkIndex + + while (point._index < chunks.length) { + const chunk = chunks[point._index] // If we’re in a buffer chunk, loop through it. + + if (typeof chunk === 'string') { + chunkIndex = point._index + + if (point._bufferIndex < 0) { + point._bufferIndex = 0 + } + + while ( + point._index === chunkIndex && + point._bufferIndex < chunk.length + ) { + go(chunk.charCodeAt(point._bufferIndex)) + } + } else { + go(chunk) + } + } + } + /** + * Deal with one code. + * + * @param {Code} code + * @returns {void} + */ + + function go(code) { + consumed = undefined + expectedCode = code + state = state(code) + } + /** @type {Effects['consume']} */ + + function consume(code) { + if (markdownLineEnding(code)) { + point.line++ + point.column = 1 + point.offset += code === -3 ? 2 : 1 + accountForPotentialSkip() + } else if (code !== -1) { + point.column++ + point.offset++ + } // Not in a string chunk. + + if (point._bufferIndex < 0) { + point._index++ + } else { + point._bufferIndex++ // At end of string chunk. + // @ts-expect-error Points w/ non-negative `_bufferIndex` reference + // strings. + + if (point._bufferIndex === chunks[point._index].length) { + point._bufferIndex = -1 + point._index++ + } + } // Expose the previous character. + + context.previous = code // Mark as consumed. + + consumed = true + } + /** @type {Effects['enter']} */ + + function enter(type, fields) { + /** @type {Token} */ + // @ts-expect-error Patch instead of assign required fields to help GC. + const token = fields || {} + token.type = type + token.start = now() + context.events.push(['enter', token, context]) + stack.push(token) + return token + } + /** @type {Effects['exit']} */ + + function exit(type) { + const token = stack.pop() + token.end = now() + context.events.push(['exit', token, context]) + return token + } + /** + * Use results. + * + * @type {ReturnHandle} + */ + + function onsuccessfulconstruct(construct, info) { + addResult(construct, info.from) + } + /** + * Discard results. + * + * @type {ReturnHandle} + */ + + function onsuccessfulcheck(_, info) { + info.restore() + } + /** + * Factory to attempt/check/interrupt. + * + * @param {ReturnHandle} onreturn + * @param {Record<string, unknown>} [fields] + */ + + function constructFactory(onreturn, fields) { + return hook + /** + * Handle either an object mapping codes to constructs, a list of + * constructs, or a single construct. + * + * @param {Construct|Construct[]|ConstructRecord} constructs + * @param {State} returnState + * @param {State} [bogusState] + * @returns {State} + */ + + function hook(constructs, returnState, bogusState) { + /** @type {Construct[]} */ + let listOfConstructs + /** @type {number} */ + + let constructIndex + /** @type {Construct} */ + + let currentConstruct + /** @type {Info} */ + + let info + return Array.isArray(constructs) + ? /* c8 ignore next 1 */ + handleListOfConstructs(constructs) + : 'tokenize' in constructs // @ts-expect-error Looks like a construct. + ? handleListOfConstructs([constructs]) + : handleMapOfConstructs(constructs) + /** + * Handle a list of construct. + * + * @param {ConstructRecord} map + * @returns {State} + */ + + function handleMapOfConstructs(map) { + return start + /** @type {State} */ + + function start(code) { + const def = code !== null && map[code] + const all = code !== null && map.null + const list = [ + // To do: add more extension tests. + + /* c8 ignore next 2 */ + ...(Array.isArray(def) ? def : def ? [def] : []), + ...(Array.isArray(all) ? all : all ? [all] : []) + ] + return handleListOfConstructs(list)(code) + } + } + /** + * Handle a list of construct. + * + * @param {Construct[]} list + * @returns {State} + */ + + function handleListOfConstructs(list) { + listOfConstructs = list + constructIndex = 0 + + if (list.length === 0) { + return bogusState + } + + return handleConstruct(list[constructIndex]) + } + /** + * Handle a single construct. + * + * @param {Construct} construct + * @returns {State} + */ + + function handleConstruct(construct) { + return start + /** @type {State} */ + + function start(code) { + // To do: not needed to store if there is no bogus state, probably? + // Currently doesn’t work because `inspect` in document does a check + // w/o a bogus, which doesn’t make sense. But it does seem to help perf + // by not storing. + info = store() + currentConstruct = construct + + if (!construct.partial) { + context.currentConstruct = construct + } + + if ( + construct.name && + context.parser.constructs.disable.null.includes(construct.name) + ) { + return nok(code) + } + + return construct.tokenize.call( + // If we do have fields, create an object w/ `context` as its + // prototype. + // This allows a “live binding”, which is needed for `interrupt`. + fields ? Object.assign(Object.create(context), fields) : context, + effects, + ok, + nok + )(code) + } + } + /** @type {State} */ + + function ok(code) { + consumed = true + onreturn(currentConstruct, info) + return returnState + } + /** @type {State} */ + + function nok(code) { + consumed = true + info.restore() + + if (++constructIndex < listOfConstructs.length) { + return handleConstruct(listOfConstructs[constructIndex]) + } + + return bogusState + } + } + } + /** + * @param {Construct} construct + * @param {number} from + * @returns {void} + */ + + function addResult(construct, from) { + if (construct.resolveAll && !resolveAllConstructs.includes(construct)) { + resolveAllConstructs.push(construct) + } + + if (construct.resolve) { + splice( + context.events, + from, + context.events.length - from, + construct.resolve(context.events.slice(from), context) + ) + } + + if (construct.resolveTo) { + context.events = construct.resolveTo(context.events, context) + } + } + /** + * Store state. + * + * @returns {Info} + */ + + function store() { + const startPoint = now() + const startPrevious = context.previous + const startCurrentConstruct = context.currentConstruct + const startEventsIndex = context.events.length + const startStack = Array.from(stack) + return { + restore, + from: startEventsIndex + } + /** + * Restore state. + * + * @returns {void} + */ + + function restore() { + point = startPoint + context.previous = startPrevious + context.currentConstruct = startCurrentConstruct + context.events.length = startEventsIndex + stack = startStack + accountForPotentialSkip() + } + } + /** + * Move the current point a bit forward in the line when it’s on a column + * skip. + * + * @returns {void} + */ + + function accountForPotentialSkip() { + if (point.line in columnStart && point.column < 2) { + point.column = columnStart[point.line] + point.offset += columnStart[point.line] - 1 + } + } + } + /** + * Get the chunks from a slice of chunks in the range of a token. + * + * @param {Chunk[]} chunks + * @param {Pick<Token, 'start'|'end'>} token + * @returns {Chunk[]} + */ + + function sliceChunks(chunks, token) { + const startIndex = token.start._index + const startBufferIndex = token.start._bufferIndex + const endIndex = token.end._index + const endBufferIndex = token.end._bufferIndex + /** @type {Chunk[]} */ + + let view + + if (startIndex === endIndex) { + // @ts-expect-error `_bufferIndex` is used on string chunks. + view = [chunks[startIndex].slice(startBufferIndex, endBufferIndex)] + } else { + view = chunks.slice(startIndex, endIndex) + + if (startBufferIndex > -1) { + // @ts-expect-error `_bufferIndex` is used on string chunks. + view[0] = view[0].slice(startBufferIndex) + } + + if (endBufferIndex > 0) { + // @ts-expect-error `_bufferIndex` is used on string chunks. + view.push(chunks[endIndex].slice(0, endBufferIndex)) + } + } + + return view + } + /** + * Get the string value of a slice of chunks. + * + * @param {Chunk[]} chunks + * @param {boolean} [expandTabs=false] + * @returns {string} + */ + + function serializeChunks(chunks, expandTabs) { + let index = -1 + /** @type {string[]} */ + + const result = [] + /** @type {boolean|undefined} */ + + let atTab + + while (++index < chunks.length) { + const chunk = chunks[index] + /** @type {string} */ + + let value + + if (typeof chunk === 'string') { + value = chunk + } else + switch (chunk) { + case -5: { + value = '\r' + break + } + + case -4: { + value = '\n' + break + } + + case -3: { + value = '\r' + '\n' + break + } + + case -2: { + value = expandTabs ? ' ' : '\t' + break + } + + case -1: { + if (!expandTabs && atTab) continue + value = ' ' + break + } + + default: { + // Currently only replacement character. + value = String.fromCharCode(chunk) + } + } + + atTab = chunk === -2 + result.push(value) + } + + return result.join('') + } + \ No newline at end of file diff --git a/src/runtime/transformers/csv/from-csv.ts b/src/runtime/transformers/csv/from-csv.ts new file mode 100644 index 000000000..efb435c6d --- /dev/null +++ b/src/runtime/transformers/csv/from-csv.ts @@ -0,0 +1,266 @@ +// Based on mdast-util-from-markdown +// See: https://github.com/syntax-tree/mdast-util-from-markdown/blob/05875cde264253f0d6a725791f10f55eb8d8c267/dev/lib/index.js +import { toString } from 'mdast-util-to-string' +import { preprocess } from 'micromark/lib/preprocess.js' +import { postprocess } from 'micromark/lib/postprocess.js' +import { stringifyPosition } from 'unist-util-stringify-position' +import { Token, Event, Point as MPoint } from 'micromark-util-types' +import { parse } from './parser' + +type Point = Omit<MPoint, '_index' | '_bufferIndex'> +type Node = { + type: string + children: Array<Node> + position?: { + start?: Point + end?: Point + } + value?: string +} + +const own = {}.hasOwnProperty + +const initialPoint: Point = { + line: 1, + column: 1, + offset: 0 +} + +export const fromCSV = function (value, encoding?, options?) { + if (typeof encoding !== 'string') { + options = encoding + encoding = undefined + } + + return compiler()( + postprocess( + parse(options).write(preprocess()(value, encoding, true)) + ) + ) +} + +function compiler () { + const config = { + enter: { + column: opener(openColumn), + row: opener(openRow), + data: onenterdata, + quotedData: onenterdata + }, + exit: { + row: closer(), + column: closer(), + data: onexitdata, + quotedData: onexitQuotedData + } + } + + return compile + + function compile (events: Array<Event>) { + const tree: Node = { + type: 'root', + children: [] + } + + const stack = [tree] + + const tokenStack = [] + + const context = { + stack, + tokenStack, + config, + enter, + exit, + resume + } + + let index = -1 + + while (++index < events.length) { + const handler = config[events[index][0]] + + if (own.call(handler, events[index][1].type)) { + handler[events[index][1].type].call( + Object.assign( + { + sliceSerialize: events[index][2].sliceSerialize + }, + context + ), + events[index][1] + ) + } + } + + if (tokenStack.length > 0) { + const tail: Function = tokenStack[tokenStack.length - 1] + const handler = tail[1] || defaultOnError + handler.call(context, undefined, tail[0]) + } // Figure out `root` position. + + tree.position = { + start: point( + events.length > 0 ? events[0][1].start : initialPoint + ), + end: point( + events.length > 0 ? events[events.length - 2][1].end : initialPoint + ) + } + + return tree + } + + function point (d: Point): Point { + return { + line: d.line, + column: d.column, + offset: d.offset + } + } + + function opener (create, and?) { + return open + + function open (token: Token) { + enter.call(this, create(token), token) + if (and) { and.call(this, token) } + } + } + + function enter (node: Node, token: Token, errorHandler) { + const parent = this.stack[this.stack.length - 1] + parent.children.push(node) + this.stack.push(node) + this.tokenStack.push([token, errorHandler]) + + node.position = { + start: point(token.start) + } + return node + } + + function closer (and?) { + return close + + function close (token: Token) { + if (and) { and.call(this, token) } + exit.call(this, token) + } + } + + function exit (token: Token, onExitError) { + const node = this.stack.pop() + const open = this.tokenStack.pop() + + if (!open) { + throw new Error( + 'Cannot close `' + + token.type + + '` (' + + stringifyPosition({ + start: token.start, + end: token.end + }) + + '): it’s not open' + ) + } else if (open[0].type !== token.type) { + if (onExitError) { + onExitError.call(this, token, open[0]) + } else { + const handler = open[1] || defaultOnError + handler.call(this, token, open[0]) + } + } + node.position.end = point(token.end) + return node + } + + function resume () { + return toString(this.stack.pop()) + } + + function onenterdata (token: Token) { + const parent = this.stack[this.stack.length - 1] + + let tail = parent.children[parent.children.length - 1] + + if (!tail || tail.type !== 'text') { + // Add a new text node. + tail = text() + + tail.position = { + start: point(token.start) + } + + parent.children.push(tail) + } + this.stack.push(tail) + } + + function onexitdata (token: Token) { + const tail = this.stack.pop() + tail.value += this.sliceSerialize(token).trim().replace(/""/g, '"') + tail.position.end = point(token.end) + } + function onexitQuotedData (token: Token) { + const tail = this.stack.pop() + const value = this.sliceSerialize(token) + tail.value += this.sliceSerialize(token).trim().substring(1, value.length - 1).replace(/""/g, '"') + tail.position.end = point(token.end) + } + + function text () { + return { + type: 'text', + value: '' + } + } + + function openColumn () { + return { + type: 'column', + children: [] + } + } + function openRow () { + return { + type: 'row', + children: [] + } + } +} + +function defaultOnError (left, right) { + if (left) { + throw new Error( + 'Cannot close `' + + left.type + + '` (' + + stringifyPosition({ + start: left.start, + end: left.end + }) + + '): a different token (`' + + right.type + + '`, ' + + stringifyPosition({ + start: right.start, + end: right.end + }) + + ') is open' + ) + } else { + throw new Error( + 'Cannot close document, a token (`' + + right.type + + '`, ' + + stringifyPosition({ + start: right.start, + end: right.end + }) + + ') is still open' + ) + } +} diff --git a/src/runtime/transformers/csv/index.ts b/src/runtime/transformers/csv/index.ts new file mode 100644 index 000000000..2c2a2e383 --- /dev/null +++ b/src/runtime/transformers/csv/index.ts @@ -0,0 +1,60 @@ +import { unified } from 'unified' +import { ParsedContent } from '../../types' +import { defineTransformer } from '../utils' +import { fromCSV } from './from-csv' + +function csvParse (options) { + const parser = (doc) => { + return fromCSV(doc, options) + } + + Object.assign(this, { Parser: parser }) + + const toJsonObject = (tree) => { + const [header, ...rows] = tree.children + const columns = header.children.map(col => col.children[0].value) + + const data = rows.map((row) => { + return row.children.reduce((acc, col, i) => { + acc[String(columns[i])] = col.children[0]?.value + return acc + }, {}) + }) + return data + } + + const toJsonArray = (tree) => { + const data = tree.children.map((row) => { + return row.children.map(col => col.children[0]?.value) + }) + return data + } + + const compiler = (doc) => { + if (options.json) { + return toJsonObject(doc) + } + return toJsonArray(doc) + } + + Object.assign(this, { Compiler: compiler }) +} + +export default defineTransformer({ + name: 'csv', + extensions: ['.csv'], + parse: async (_id, content, options = {}) => { + const stream = unified().use(csvParse, { + delimiter: ',', + json: true, + ...options + }) + const { result } = await stream.process(content) + + return <ParsedContent> { + _id, + _type: 'csv', + body: result + } + } +}) diff --git a/src/runtime/transformers/csv/parser.ts b/src/runtime/transformers/csv/parser.ts new file mode 100644 index 000000000..0ed9f20da --- /dev/null +++ b/src/runtime/transformers/csv/parser.ts @@ -0,0 +1,178 @@ +import { markdownLineEnding, markdownSpace } from 'micromark-util-character' +import { createTokenizer } from './create-tokenizer' + +function initializeDocument (effects) { + const self = this + const delimiter = (this.parser.delimiter || ',').charCodeAt(0) + + return enterRow + + function enterRow (code) { + return effects.attempt( + { tokenize: attemptLastLine }, + (code) => { + effects.consume(code) + return enterRow + }, + (code) => { + effects.enter('row') + return enterColumn(code) + } + )(code) + } + + function enterColumn (code) { + effects.enter('column') + return content(code) + } + + function content (code) { + if (code === null) { + effects.exit('column') + effects.exit('row') + effects.consume(code) + return content + } + if (code === 34 /** " */) { + return quotedData(code) + } + if (code === delimiter) { + // Hanlde: + // - "1,,3,4" + // - ",2,3,4" + if (self.previous === delimiter || markdownLineEnding(self.previous) || self.previous === null) { + effects.enter('data') + effects.exit('data') + } + effects.exit('column') + effects.enter('columnSeparator') + effects.consume(code) + effects.exit('columnSeparator') + effects.enter('column') + return content + } + if (markdownLineEnding(code)) { + effects.exit('column') + effects.enter('newline') + effects.consume(code) + effects.exit('newline') + effects.exit('row') + + return enterRow + } + return data(code) + } + + // data + function data (code) { + effects.enter('data') + return dataChunk(code) + } + + function dataChunk (code) { + if (code === null || markdownLineEnding(code) || code === delimiter) { + effects.exit('data') + return content(code) + } + if (code === 92 /** \ */) { + return escapeCharacter(code) + } + effects.consume(code) + return dataChunk + } + + function escapeCharacter (code) { + effects.consume(code) + return function (code) { + effects.consume(code) + return content + } + } + + function quotedData (code) { + effects.enter('quotedData') + effects.enter('quotedDataChunk') + effects.consume(code) + + return quotedDataChunk + } + + function quotedDataChunk (code) { + if (code === 92 /** \ */) { + return escapeCharacter(code) + } + if (code === 34) { + return effects.attempt( + { tokenize: attemptDoubleQuote }, + (code) => { + effects.exit('quotedDataChunk') + effects.enter('quotedDataChunk') + return quotedDataChunk(code) + }, + (code) => { + effects.consume(code) + effects.exit('quotedDataChunk') + effects.exit('quotedData') + + return content + } + )(code) + } + effects.consume(code) + return quotedDataChunk + } +} + +function attemptDoubleQuote (effects, ok, nok) { + return startSequence + + function startSequence (code) { + if (code !== 34) { + return nok(code) + } + effects.enter('quoteFence') + effects.consume(code) + return sequence + } + + function sequence (code) { + if (code !== 34) { + return nok(code) + } + effects.consume(code) + effects.exit('quoteFence') + return code => ok(code) + } +} + +function attemptLastLine (effects, ok, nok) { + return enterLine + + function enterLine (code) { + if (!markdownSpace(code) && code !== null) { + return nok(code) + } + effects.enter('emptyLine') + return continueLine(code) + } + + function continueLine (code) { + if (markdownSpace(code)) { + effects.consume(code) + return continueLine + } + if (code === null) { + effects.exit('emptyLine') + return ok(code) + } + return nok(code) + } +} + +export const parse = (options) => { + return createTokenizer( + { ...options }, + { tokenize: initializeDocument }, + undefined + ) +} diff --git a/src/runtime/transformers/index.ts b/src/runtime/transformers/index.ts new file mode 100644 index 000000000..55e0fe0eb --- /dev/null +++ b/src/runtime/transformers/index.ts @@ -0,0 +1,64 @@ +import { extname } from 'pathe' +import { camelCase } from 'scule' +import type { ContentTransformer, TransformContentOptions } from '../types' +import csv from './csv' +import markdown from './markdown' +import yaml from './yaml' +import pathMeta from './path-meta' +import json from './json' + +const TRANSFORMERS = [ + csv, + markdown, + json, + yaml, + pathMeta +] + +function getParser (ext, additionalTransformers: ContentTransformer[] = []): ContentTransformer | undefined { + let parser = additionalTransformers.find(p => ext.match(new RegExp(p.extensions.join('|'), 'i')) && p.parse) + if (!parser) { + parser = TRANSFORMERS.find(p => ext.match(new RegExp(p.extensions.join('|'), 'i')) && p.parse) + } + + return parser +} + +function getTransformers (ext, additionalTransformers: ContentTransformer[] = []) { + return [ + ...additionalTransformers.filter(p => ext.match(new RegExp(p.extensions.join('|'), 'i')) && p.transform), + ...TRANSFORMERS.filter(p => ext.match(new RegExp(p.extensions.join('|'), 'i')) && p.transform) + ] +} + +/** + * Parse content file using registered plugins + */ +export async function transformContent (id, content, options: TransformContentOptions = {}) { + const { transformers = [] } = options + // Call hook before parsing the file + const file = { _id: id, body: content } + + const ext = extname(id) + const parser = getParser(ext, transformers) + if (!parser) { + // eslint-disable-next-line no-console + console.warn(`${ext} files are not supported, "${id}" falling back to raw content`) + return file + } + + const parserOptions = options[camelCase(parser.name)] || {} + const parsed = await parser.parse!(file._id, file.body, parserOptions) + + const matchedTransformers = getTransformers(ext, transformers) + const result = await matchedTransformers.reduce(async (prev, cur) => { + const next = (await prev) || parsed + + const transformOptions = options[camelCase(cur.name)] || {} + return cur.transform!(next, transformOptions) + }, Promise.resolve(parsed)) + + return result +} + +export { defineTransformer } from './utils' diff --git a/src/runtime/server/transformers/json.ts b/src/runtime/transformers/json.ts similarity index 73% rename from src/runtime/server/transformers/json.ts rename to src/runtime/transformers/json.ts index b8ca081b1..6932ada3d 100644 --- a/src/runtime/server/transformers/json.ts +++ b/src/runtime/transformers/json.ts @@ -1,10 +1,12 @@ import destr from 'destr' +import { ParsedContent } from '../types' +import { defineTransformer } from './utils' -export default { +export default defineTransformer({ name: 'Json', - extentions: ['.json', '.json5'], + extensions: ['.json', '.json5'], parse: async (_id, content) => { - let parsed = content + let parsed if (typeof content === 'string') { if (_id.endsWith('json5')) { @@ -13,6 +15,8 @@ export default { } else if (_id.endsWith('json')) { parsed = destr(content) } + } else { + parsed = content } // Keep array contents under `body` key @@ -24,10 +28,10 @@ export default { } } - return { + return <ParsedContent> { ...parsed, _id, _type: 'json' } } -} +}) diff --git a/src/runtime/transformers/markdown.ts b/src/runtime/transformers/markdown.ts new file mode 100644 index 000000000..d032db83f --- /dev/null +++ b/src/runtime/transformers/markdown.ts @@ -0,0 +1,38 @@ +import { parse } from '../markdown-parser' +import type { MarkdownOptions, MarkdownPlugin } from '../types' +import { MarkdownParsedContent } from '../types' +import { defineTransformer } from './utils' + +export default defineTransformer({ + name: 'markdown', + extensions: ['.md'], + parse: async (_id, content, options = {}) => { + const config = { ...options } as MarkdownOptions + config.rehypePlugins = await importPlugins(config.rehypePlugins) + config.remarkPlugins = await importPlugins(config.remarkPlugins) + + const parsed = await parse(content, config) + + return <MarkdownParsedContent> { + ...parsed.meta, + body: parsed.body, + _type: 'markdown', + _id + } + } +}) + +async function importPlugins (plugins: Record<string, false | MarkdownPlugin> = {}) { + const resolvedPlugins = {} + for (const [name, plugin] of Object.entries(plugins)) { + if (plugin) { + resolvedPlugins[name] = { + instance: plugin.instance || await import(/* @vite-ignore */ name).then(m => m.default || m), + ...plugin + } + } else { + resolvedPlugins[name] = false + } + } + return resolvedPlugins +} diff --git a/src/runtime/server/transformers/path-meta.ts b/src/runtime/transformers/path-meta.ts similarity index 87% rename from src/runtime/server/transformers/path-meta.ts rename to src/runtime/transformers/path-meta.ts index 53bc2a925..a01baa0dd 100644 --- a/src/runtime/server/transformers/path-meta.ts +++ b/src/runtime/transformers/path-meta.ts @@ -1,7 +1,8 @@ import { pascalCase } from 'scule' import slugify from 'slugify' import { withoutTrailingSlash, withLeadingSlash } from 'ufo' -import { useRuntimeConfig } from '#imports' +import { ParsedContent } from '../types' +import { defineTransformer } from './utils' const SEMVER_REGEX = /^(\d+)(\.\d+)*(\.x)?$/ @@ -20,11 +21,11 @@ const describeId = (_id: string) => { } } -export default { +export default defineTransformer({ name: 'path-meta', - extentions: ['.*'], - transform (content) { - const { locales, defaultLocale } = useRuntimeConfig().content || {} + extensions: ['.*'], + transform (content, options: any = {}) { + const { locales = [], defaultLocale = 'en' } = options const { _source, _file, _path, _extension } = describeId(content._id) const parts = _path.split('/') @@ -33,7 +34,7 @@ export default { const filePath = parts.join('/') - return { + return <ParsedContent> { _path: generatePath(filePath), _draft: isDraft(filePath), _partial: isPartial(filePath), @@ -46,7 +47,7 @@ export default { _extension } } -} +}) /** * When file name ends with `.draft` then it will mark as draft. @@ -81,6 +82,7 @@ export function refineUrlPart (name: string): string { if (SEMVER_REGEX.test(name)) { return name } + return ( name /** @@ -90,10 +92,10 @@ export function refineUrlPart (name: string): string { /** * Remove index keyword */ - .replace(/^index/, '') + .replace(/^index(\.draft)?$/, '') /** * Remove draft keyword */ - .replace(/\.draft/, '') + .replace(/\.draft$/, '') ) } diff --git a/src/runtime/transformers/shiki.ts b/src/runtime/transformers/shiki.ts new file mode 100644 index 000000000..cbb246679 --- /dev/null +++ b/src/runtime/transformers/shiki.ts @@ -0,0 +1,126 @@ +import { visit } from 'unist-util-visit' +import { defineTransformer } from './utils' + +export default defineTransformer({ + name: 'highlight', + extensions: ['.md'], + transform: async (content, options = {}) => { + const tokenColors: Record<string, {colors: any, className: string}> = {} + const codeBlocks: any[] = [] + const inlineCodes: any = [] + visit( + content.body, + (node: any) => (node.tag === 'code' && node?.props.code) || (node.tag === 'code-inline' && (node.props?.lang || node.props?.language)), + (node) => { + if (node.tag === 'code') { + codeBlocks.push(node) + } else if (node.tag === 'code-inline') { + inlineCodes.push(node) + } + } + ) + + await Promise.all(codeBlocks.map(highlightBlock)) + await Promise.all(inlineCodes.map(highlightInline)) + + // Inject token colors at the end of the document + if (Object.values(tokenColors).length) { + const colors: string[] = [] + for (const colorClass of Object.values(tokenColors)) { + Object.entries(colorClass.colors).forEach(([variant, color]) => { + if (variant === 'default') { + colors.unshift(`.${colorClass.className}{color:${color}}`) + } else { + colors.push(`.${variant} .${colorClass.className}{color:${color}}`) + } + }) + } + + content.body.children.push({ + type: 'element', + tag: 'style', + children: [{ type: 'text', value: colors.join('') }] + }) + } + + return content + + /** + * Highlight inline code + */ + async function highlightInline (node) { + const code = node.children[0].value + + // Fetch highlighted tokens + const lines = await $fetch<any[]>(options.apiURL, { + method: 'POST', + body: { + code, + lang: node.props.lang || node.props.language, + theme: options.theme + } + }) + + // Generate highlighted children + node.children = lines[0].map(tokenSpan) + + node.props = node.props || {} + node.props.class = 'colored' + + return node + } + + /** + * Highlight a code block + */ + async function highlightBlock (node) { + const { code, language: lang, highlights = [] } = node.props + + // Fetch highlighted tokens + const lines = await $fetch<any[]>(options.apiURL, { + method: 'POST', + body: { + code, + lang, + theme: options.theme + } + }) + + // Generate highlighted children + const innerCodeNode = node.children[0].children[0] + innerCodeNode.children = lines.map((line, lineIndex) => ({ + type: 'element', + tag: 'span', + props: { class: ['line', highlights.includes(lineIndex + 1) ? 'highlight' : ''].join(' ').trim() }, + children: line.map(tokenSpan) + })) + return node + } + + function getColorProps (token) { + if (!token.color) { + return {} + } + if (typeof token.color === 'string') { + return { style: { color: token.color } } + } + const key = Object.values(token.color).join('') + if (!tokenColors[key]) { + tokenColors[key] = { + colors: token.color, + className: 'ct-' + Math.random().toString(16).substring(2, 8) // hash(key) + } + } + return { class: tokenColors[key].className } + } + + function tokenSpan (token) { + return { + type: 'element', + tag: 'span', + props: getColorProps(token), + children: [{ type: 'text', value: token.content }] + } + } + } +}) diff --git a/src/runtime/transformers/utils.ts b/src/runtime/transformers/utils.ts new file mode 100644 index 000000000..169348a70 --- /dev/null +++ b/src/runtime/transformers/utils.ts @@ -0,0 +1,5 @@ +import { ContentTransformer } from '../types' + +export const defineTransformer = (transformer: ContentTransformer) => { + return transformer +} diff --git a/src/runtime/server/transformers/yaml.ts b/src/runtime/transformers/yaml.ts similarity index 66% rename from src/runtime/server/transformers/yaml.ts rename to src/runtime/transformers/yaml.ts index 94d3189f8..70af82bec 100644 --- a/src/runtime/server/transformers/yaml.ts +++ b/src/runtime/transformers/yaml.ts @@ -1,8 +1,10 @@ -import { parseFrontMatter } from '../../markdown-parser' +import { parseFrontMatter } from 'remark-mdc' +import { ParsedContent } from '../types' +import { defineTransformer } from './utils' -export default { +export default defineTransformer({ name: 'Yaml', - extentions: ['.yml', '.yaml'], + extensions: ['.yml', '.yaml'], parse: async (_id, content) => { const { data } = await parseFrontMatter(`---\n${content}\n---`) @@ -14,10 +16,10 @@ export default { parsed = { body: data } } - return { + return <ParsedContent> { ...parsed, _id, _type: 'yaml' } } -} +}) diff --git a/src/runtime/types.d.ts b/src/runtime/types.d.ts index f0df92b64..a4c62063e 100644 --- a/src/runtime/types.d.ts +++ b/src/runtime/types.d.ts @@ -1,6 +1,6 @@ import type { Theme } from 'shiki-es' -export interface ParsedContentMeta { +export interface ParsedContentInternalMeta { /** * Content id */ @@ -13,10 +13,6 @@ export interface ParsedContentMeta { * Content path, this path is source agnostic and it the content my live in any source */ _path?: string - /** - * Content slug - */ - _slug?: string /** * Content title */ @@ -33,11 +29,25 @@ export interface ParsedContentMeta { * Content locale */ _locale?: boolean + /** + * File type of the content, i.e `markdown` + */ + _type?: string + /** + * Path to the file relative to the content directory + */ + _file?: string + /** + * Extension of the file + */ + _extension?: string +} +export interface ParsedContentMeta extends ParsedContentInternalMeta { [key: string]: any } -export interface ParsedContent extends ParsedContentMeta{ +export interface ParsedContent extends ParsedContentMeta { /** * Excerpt */ @@ -72,6 +82,8 @@ export interface MarkdownRoot { props?: Record<string, any> } +export interface MarkdownPlugin extends Record<string, any> {} + export interface MarkdownOptions { /** * Enable/Disable MDC components. @@ -85,8 +97,8 @@ export interface MarkdownOptions { searchDepth: number } tags: Record<string, string> - remarkPlugins: Array<any | [any, any]> - rehypePlugins: Array<any | [any, any]> + remarkPlugins: Record<string, false | (MarkdownPlugin & { instance: any })> + rehypePlugins: Record<string, false | (MarkdownPlugin & { instance: any })> } export interface TocLink { @@ -103,11 +115,39 @@ export interface Toc { links: TocLink[] } +export interface MarkdownParsedContent extends ParsedContent { + _type: 'markdown', + /** + * Content is empty + */ + _empty: boolean + /** + * Content description + */ + description: string + /** + * Content excerpt, generated from content + */ + excerpt?: MarkdownRoot + /** + * Parsed Markdown body with included table of contents. + */ + body: MarkdownRoot & { + toc?: Toc + } +} + export interface ContentTransformer { name: string - extentions: string[] - parse?(id: string, content: string): Promise<ParsedContent> | ParsedContent - transform?: ((content: ParsedContent) => Promise<ParsedContent>) | ((content: ParsedContent) => ParsedContent) + extensions: string[] + parse?(id: string, content: string, options: any): Promise<ParsedContent> | ParsedContent + transform?(content: ParsedContent, options: any): Promise<ParsedContent> | ParsedContent +} + +export interface TransformContentOptions { + transformers?: ContentTransformer[] + + [key: string]: any } /** @@ -153,16 +193,231 @@ export interface SortFields { export type SortOptions = SortParams | SortFields +export interface QueryBuilderWhere extends Partial<Record<keyof ParsedContentInternalMeta, string | number | boolean | RegExp | QueryBuilderWhere>> { + /** + * Match only if all of nested conditions are true + * + * @example + ```ts + queryContent().where({ + $and: [ + { score: { $gte: 5 } }, + { score: { $lte: 10 } } + ] + }) + ``` + **/ + $and?: QueryBuilderWhere[] + /** + * Match if any of nested conditions is true + * + * @example + ```ts + queryContent().where({ + $or: [ + { score: { $gt: 5 } }, + { score: { $lt: 3 } } + ] + }) + ``` + **/ + $or?: QueryBuilderWhere[] + /** + * Match is condition is false + * + * @example + ```ts + queryContent().where({ + title: { + $not: 'Hello World' + } + }) + ``` + **/ + $not?: string | number | boolean | RegExp | QueryBuilderWhere + /** + * Match if item equals condition + * + * @example + ```ts + queryContent().where({ + title: { + $eq: 'Hello World' + } + }) + ``` + **/ + $eq?: string | number | boolean | RegExp + /** + * Match if item not equals condition + * + * @example + ```ts + queryContent().where({ + score: { + $ne: 100 + } + }) + ``` + **/ + $ne?: string | number | boolean | RegExp + /** + * Check if item is greater than condition + * + * @example + ```ts + queryContent().where({ + score: { + $gt: 99.5 + } + }) + ``` + */ + $gt?: number + /** + * Check if item is greater than or equal to condition + * + * @example + ```ts + queryContent().where({ + score: { + $gte: 99.5 + } + }) + ``` + */ + $gte?: number + /** + * Check if item is less than condition + * + * @example + ```ts + queryContent().where({ + score: { + $lt: 99.5 + } + }) + ``` + */ + $lt?: number + /** + * Check if item is less than or equal to condition + * + * @example + ```ts + queryContent().where({ + score: { + $lte: 99.5 + } + }) + ``` + */ + $lte?: number + /** + * Provides regular expression capabilities for pattern matching strings. + * + * @example + ```ts + queryContent().where({ + title: { + $regex: /^foo/ + } + }) + ``` + */ + $regex?: RegExp | string + /** + * Match if type of item equals condition + * + * @example + ```ts + queryContent().where({ + field: { + $type: 'boolean' + } + }) + ``` + */ + $type?: string + /** + * Check key existence + * + * @example + ```ts + queryContent().where({ + tag: { + $exists: false + } + }) + ``` + */ + $exists?: boolean + /** + * Match if item contains every condition or math every rule in condition array + * + * @example + ```ts + queryContent().where({ + title: { + $contains: ['Hello', 'World'] + } + }) + ``` + **/ + $contains?: Array<string | number | boolean> | string | number | boolean + /** + * Match if item contains at least one rule from condition array + * + * @example + ```ts + queryContent().where({ + title: { + $containsAny: ['Hello', 'World'] + } + }) + ``` + */ + $containsAny?: Array<string | number | boolean> + /** + * Ignore case contains + * + * @example + ```ts + queryContent().where({ + title: { + $icontains: 'hello world' + } + }) + ``` + **/ + $icontains?: string + /** + * Match if item is in condition array + * + * @example + ```ts + queryContent().where({ + category: { + $in: ['sport', 'nature', 'travel'] + } + }) + ``` + **/ + $in?: Array<string | number | boolean> + + [key: string]: string | number | boolean | RegExp | QueryBuilderWhere | Array<string | number | boolean | QueryBuilderWhere> +} + export interface QueryBuilderParams { - first: boolean - skip: number - limit: number - only: string[] - without: string[] - sort: SortOptions[] - where: object[] - surround: { - query: string | object + first?: boolean + skip?: number + limit?: number + only?: string[] + without?: string[] + sort?: SortOptions[] + where?: QueryBuilderWhere[] + surround?: { + query: string | QueryBuilderWhere before?: number after?: number } @@ -174,12 +429,14 @@ export interface QueryBuilder<T = ParsedContentMeta> { /** * Select a subset of fields */ - only(keys: string | string[]): QueryBuilder<T> + only<K extends keyof T | string>(keys: K): QueryBuilder<Pick<T, K>> + only<K extends (keyof T | string)[]>(keys: K): QueryBuilder<Pick<T, K[number]>> /** * Remove a subset of fields */ - without(keys: string | string[]): QueryBuilder<T> + without<K extends keyof T | string>(keys: K): QueryBuilder<Omit<T, K>> + without<K extends (keyof T | string)[]>(keys: K): QueryBuilder<Omit<T, K[number]>> /** * Sort results @@ -189,7 +446,7 @@ export interface QueryBuilder<T = ParsedContentMeta> { /** * Filter results */ - where(query: any): QueryBuilder<T> + where(query: QueryBuilderWhere): QueryBuilder<T> /** * Limit number of results @@ -214,7 +471,7 @@ export interface QueryBuilder<T = ParsedContentMeta> { /** * Fetch sorround contents */ - findSurround(query: string | object, options?: Partial<{ before: number; after: number }>): Promise<Array<T>> + findSurround(query: string | QueryBuilderWhere, options?: Partial<{ before: number; after: number }>): Promise<Array<T>> /** * Filter contents based on locale @@ -230,7 +487,7 @@ export interface QueryBuilder<T = ParsedContentMeta> { export type QueryPipe<T = any> = (data: Array<T>, param: QueryBuilderParams) => Array<T> | void -export type DatabaseFetcher<T> = (params: QueryBuilderParams) => Promise<Array<T> | T> +export type DatabaseFetcher<T> = (quey: QueryBuilder<T>) => Promise<Array<T> | T> export type QueryMatchOperator = (item: any, condition: any) => boolean @@ -249,10 +506,10 @@ export interface NavItem { export interface HighlightParams { code: string lang: string - theme: Theme + theme: Theme | Record<string, Theme> } export interface HighlightThemedToken { content: string - color?: string + color?: string | Record<string, string> } diff --git a/src/runtime/utils/query.ts b/src/runtime/utils/query.ts index c51db59ff..5550dce6d 100644 --- a/src/runtime/utils/query.ts +++ b/src/runtime/utils/query.ts @@ -1,4 +1,5 @@ -import { useQuery, CompatibilityEvent, createError } from 'h3' +import { getQuery, CompatibilityEvent, createError } from 'h3' +import { QueryBuilderParams } from '../types' import { jsonParse } from './json' const parseQueryParams = (body: string) => { @@ -10,9 +11,9 @@ const parseQueryParams = (body: string) => { } const memory = {} -export const getContentQuery = (event: CompatibilityEvent) => { - const { qid } = event.context.params - const query: any = useQuery(event) || {} +export const getContentQuery = (event: CompatibilityEvent): QueryBuilderParams => { + const qid = event.context.params.qid?.replace(/.json$/, '') + const query: any = getQuery(event) || {} // Using /api/_content/query/:qid?_params=.... if (qid && query._params) { @@ -39,15 +40,21 @@ export const getContentQuery = (event: CompatibilityEvent) => { query.without = query.without.split(',').map(s => s.trim()) } - query.where = query.where || {} + const where = query.where || {} // ?partial=true|false&draft=true|false&empty=true|false for (const key of ['draft', 'partial', 'empty']) { // ?partial=true|false if (query[key] && ['true', 'false'].includes(query[key])) { - query.where[key] = query[key] === 'true' + where[key] = query[key] === 'true' delete query[key] } } + if (Object.keys(where).length > 0) { + query.where = [where] + } else { + delete query.where + } + // ?sortyBy=size:1 if (query.sort) { query.sort = query.sort.split(',').map((s) => { @@ -59,7 +66,7 @@ export const getContentQuery = (event: CompatibilityEvent) => { const reservedKeys = ['partial', 'draft', 'only', 'without', 'where', 'sort', 'limit', 'skip'] for (const key of Object.keys(query)) { if (reservedKeys.includes(key)) { continue } - + query.where = query.where || {} query.where[key] = query[key] } diff --git a/src/utils.ts b/src/utils.ts index b97555eb2..f2ff80a76 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -3,9 +3,13 @@ import { resolve } from 'pathe' import type { Nuxt } from '@nuxt/schema' import fsDriver from 'unstorage/drivers/fs' import httpDriver from 'unstorage/drivers/http' +import githubDriver from 'unstorage/drivers/github' import { WebSocketServer } from 'ws' import { useLogger } from '@nuxt/kit' import type { ModuleOptions, MountOptions } from './module' +import type { MarkdownPlugin } from './runtime/types' + +export const logger = useLogger('@nuxt/content') /** * Internal version that represents cache format. @@ -42,16 +46,17 @@ export const PROSE_TAGS = [ 'tr' ] +const unstorageDrivers = { + fs: fsDriver, + http: httpDriver, + github: githubDriver +} /** * Resolve driver of a mount. */ export function getMountDriver (mount: MountOptions) { - if (mount.driver === 'fs') { - return fsDriver(mount as any) - } - - if (mount.driver === 'http') { - return httpDriver(mount as any) + if (unstorageDrivers[mount.driver]) { + return unstorageDrivers[mount.driver](mount as any) } try { @@ -65,25 +70,44 @@ export function getMountDriver (mount: MountOptions) { /** * Generate mounts for content storages */ -export function useContentMounts (nuxt: Nuxt, storages: Array<string | MountOptions>) { +export function useContentMounts (nuxt: Nuxt, storages: Array<string | MountOptions> | Record<string, MountOptions>) { const key = (path: string, prefix: string = '') => `${MOUNT_PREFIX}${path.replace(/[/:]/g, '_')}${prefix.replace(/\//g, ':')}` - return storages.reduce((mounts, storage) => { - if (typeof storage === 'string') { - mounts[key(storage)] = { - name: storage, - driver: 'fs', - prefix: '', - base: resolve(nuxt.options.srcDir, storage) + if (Array.isArray(storages)) { + logger.warn('Using array syntax to define sources is deprecated. Consider using object syntax.') + storages = storages.reduce((mounts, storage) => { + if (typeof storage === 'string') { + mounts[key(storage)] = { + name: storage, + driver: 'fs', + prefix: '', + base: resolve(nuxt.options.srcDir, storage) + } } - } - if (typeof storage === 'object') { - mounts[key(storage.name, storage.prefix)] = storage + if (typeof storage === 'object') { + mounts[key(storage.name, storage.prefix)] = storage + } + + return mounts + }, {} as Record<string, MountOptions>) + } else { + storages = Object.entries(storages).reduce((mounts, [name, storage]) => { + mounts[key(storage.name || name, storage.prefix)] = storage + return mounts + }, {}) + } + + const defaultStorage = key('content') + if (!storages[defaultStorage]) { + storages[defaultStorage] = { + name: defaultStorage, + driver: 'fs', + base: resolve(nuxt.options.srcDir, 'content') } + } - return mounts - }, {} as Record<string, MountOptions>) + return storages } /** * WebSocket server useful for live content reload. @@ -119,20 +143,20 @@ export function createWebSocket () { } export function processMarkdownOptions (options: ModuleOptions['markdown']) { - options.rehypePlugins = (options.rehypePlugins || []).map(resolveMarkdownPlugin).filter(Boolean) - options.remarkPlugins = (options.remarkPlugins || []).map(resolveMarkdownPlugin).filter(Boolean) - - return options - - function resolveMarkdownPlugin (plugin: string | [string, any]): [string, any] { - if (typeof plugin === 'string') { plugin = [plugin, {}] } - - if (!Array.isArray(plugin)) { - useLogger('@nuxt/content').warn('Plugin silently ignored:', (plugin as any).name || plugin) - return - } + return { + ...options, + remarkPlugins: resolveMarkdownPlugins(options.remarkPlugins), + rehypePlugins: resolveMarkdownPlugins(options.rehypePlugins) + } +} - // TODO: Add support for local custom plugins - return plugin +function resolveMarkdownPlugins (plugins): Record<string, false | MarkdownPlugin> { + if (Array.isArray(plugins)) { + return Object.values(plugins).reduce((plugins, plugin) => { + const [name, pluginOptions] = Array.isArray(plugin) ? plugin : [plugin, {}] + plugins[name] = pluginOptions + return plugins + }, {}) } + return plugins || {} } diff --git a/test/__snapshots__/basic.test.ts.snap b/test/__snapshots__/basic.test.ts.snap index 0d61f8971..e5e530c2d 100644 --- a/test/__snapshots__/basic.test.ts.snap +++ b/test/__snapshots__/basic.test.ts.snap @@ -1,5 +1,90 @@ // Vitest Snapshot v1 +exports[`Basic usage > Get contents index > basic-index-body 1`] = ` +{ + "children": [ + { + "children": [ + { + "type": "text", + "value": "Index", + }, + ], + "props": { + "id": "index", + }, + "tag": "h1", + "type": "element", + }, + { + "children": [ + { + "type": "text", + "value": "Hello World", + }, + ], + "props": {}, + "tag": "p", + "type": "element", + }, + ], + "toc": { + "depth": 2, + "links": [], + "searchDepth": 2, + "title": "", + }, + "type": "root", +} +`; + +exports[`Basic usage > Navigation > Get cats navigation > basic-navigation-cats 1`] = ` +[ + { + "_path": "/cats", + "children": [ + { + "_path": "/cats/bombay", + "title": "Bombay", + }, + { + "_path": "/cats", + "title": "Cats", + }, + { + "_path": "/cats/persian", + "title": "Persian", + }, + { + "_path": "/cats/ragdoll", + "title": "Ragdoll", + }, + ], + "title": "Cats list", + }, +] +`; + +exports[`Basic usage > Navigation > Get dogs navigation > basic-navigation-dogs 1`] = ` +[ + { + "_path": "/dogs", + "children": [ + { + "_path": "/dogs/bulldog", + "title": "Bulldog", + }, + { + "_path": "/dogs/german-shepherd", + "title": "German Shepherd", + }, + ], + "icon": "🐶", + "title": "Dogs List", + }, +] +`; + exports[`fixtures:basic > Get contents index > basic-index-body 1`] = ` { "children": [ @@ -27,6 +112,31 @@ exports[`fixtures:basic > Get contents index > basic-index-body 1`] = ` } `; +exports[`fixtures:basic > navigation > _dir.yml should be able to filter navigation tree > basic-navigation-dogs 1`] = ` +[ + { + "_path": "/navigation", + "children": [ + { + "_path": "/navigation/hidden-dir", + "children": [ + { + "_path": "/navigation/hidden-dir", + "title": "Hello World!", + }, + ], + "title": "Hello World!", + }, + { + "_path": "/navigation", + "title": "Hello World", + }, + ], + "title": "Hello World", + }, +] +`; + exports[`fixtures:basic > navigation > Get cats navigation > basic-navigation-cats 1`] = ` [ { diff --git a/test/basic.test.ts b/test/basic.test.ts index 3be5742f9..13ef606c2 100644 --- a/test/basic.test.ts +++ b/test/basic.test.ts @@ -1,5 +1,5 @@ import { fileURLToPath } from 'url' -import { assert, test, describe, expect } from 'vitest' +import { assert, test, describe, expect, vi } from 'vitest' import { setup, $fetch } from '@nuxt/test-utils' import { hash } from 'ohash' import { testMarkdownParser } from './features/parser-markdown' @@ -12,8 +12,16 @@ import { testCSVParser } from './features/parser-csv' import { testRegex } from './features/regex' import { testMarkdownParserExcerpt } from './features/parser-markdown-excerpt' import { testParserHooks } from './features/parser-hooks' +import { testModuleOptions } from './features/module-options' +import { testContentQuery } from './features/content-query' +import { testHighlighter } from './features/highlighter' +import { testMarkdownRenderer } from './features/renderer-markdown' +import { testParserOptions } from './features/parser-options' +import { testComponents } from './features/components' -describe('fixtures:basic', async () => { +const spyConsoleWarn = vi.spyOn(global.console, 'warn') + +describe('Basic usage', async () => { await setup({ rootDir: fileURLToPath(new URL('./fixtures/basic', import.meta.url)), server: true @@ -44,7 +52,7 @@ describe('fixtures:basic', async () => { assert(ids.includes('content:.dot-ignored.md') === false, 'Ignored files with `.` should not be listed') assert(ids.includes('content:-dash-ignored.md') === false, 'Ignored files with `-` should not be listed') - assert(ids.includes('fa-ir:fa:index.md') === true, 'Files with `fa-ir` prefix should be listed') + assert(ids.includes('fa-ir:fa:hello.md') === true, 'Files with `fa-ir` prefix should be listed') }) test('Get contents index', async () => { @@ -64,12 +72,12 @@ describe('fixtures:basic', async () => { test('Search contents using `locale` helper', async () => { const fa = await $fetch('/locale-fa') - expect(fa).toContain('fa-ir:fa:index.md') + expect(fa).toContain('fa-ir:fa:hello.md') expect(fa).not.toContain('content:index.md') const en = await $fetch('/locale-en') - expect(en).not.toContain('fa-ir:fa:index.md') + expect(en).not.toContain('fa-ir:fa:hello.md') expect(en).toContain('content:index.md') }) @@ -81,31 +89,51 @@ describe('fixtures:basic', async () => { }) }) - test('features:multi-part-path', async () => { + test('Multi part path', async () => { const html = await $fetch('/features/multi-part-path') expect(html).contains('Persian') }) - test('features:<ContentDoc> head management (if same path)', async () => { + test('<ContentDoc> head management (if same path)', async () => { const html = await $fetch('/head') expect(html).contains('<title>Head overwritten') expect(html).contains('') expect(html).contains('') }) - test('features: head management (not same path)', async () => { + + test(' head management (not same path)', async () => { const html = await $fetch('/bypass-head') expect(html).not.contains('Head overwritten') expect(html).not.contains('') expect(html).not.contains('') }) - test('partial:specials-chars', async () => { + test('Partials specials chars', async () => { const html = await $fetch('/_partial/content-(v2)') expect(html).contains('Content (v2)') }) + + test('Partials specials chars', async () => { + const html = await $fetch('/_partial/markdown') + expect(html).contains('> Default title

') + expect(html).contains('

p1

') + }) + + test('Warning for invalid file name', () => { + expect(spyConsoleWarn).toHaveBeenCalled() + expect(spyConsoleWarn).toHaveBeenCalledWith('Ignoring [content:with-\'invalid\'-char.md]. File name should not contain any of the following characters: \', ", ?, #, /') + }) + + testComponents() + + testContentQuery() + testNavigation() testMarkdownParser() + + testMarkdownRenderer() + testMarkdownParserExcerpt() testYamlParser() @@ -121,4 +149,10 @@ describe('fixtures:basic', async () => { testRegex() testParserHooks() + + testModuleOptions() + + testHighlighter() + + testParserOptions() }) diff --git a/test/document-driven.test.ts b/test/document-driven.test.ts new file mode 100644 index 000000000..c418631d1 --- /dev/null +++ b/test/document-driven.test.ts @@ -0,0 +1,72 @@ +import { fileURLToPath } from 'url' +import { test, describe, expect } from 'vitest' +import { setup, $fetch } from '@nuxt/test-utils' + +describe('fixtures:document-driven', async () => { + await setup({ + rootDir: fileURLToPath(new URL('./fixtures/document-driven', import.meta.url)), + server: true + }) + + test(' from front-matter', async () => { + const html = await $fetch('/') + + expect(html).contains('<title>Home') + }) + + test('disabled document driven', async () => { + const html = await $fetch('/disabled') + + expect(html).contains('
surround:
') + expect(html).contains('
page:
') + }) + + test('disabled surround', async () => { + const html = await $fetch('/no-surround') + + expect(html).contains('
surround:
') + expect(html).contains('
page: {') + }) + + test('custom content with path', async () => { + const html = await $fetch('/home') + + expect(html).contains('Home') + expect(html).contains('Hello World!') + + expect(html).contains('with previous link /') + expect(html).contains('with next link /layout') + }) + + test('custom content with condition', async () => { + const html = await $fetch('/custom-search') + + expect(html).contains('FM Data') + + expect(html).contains('with previous link /layout') + expect(html).contains('with next link /no-surround') + }) + + test('useContentHead(): og:image with string', async () => { + const html = await $fetch('/fm-data') + + expect(html).contains('') + }) + + test('useContentHead(): og:image with object', async () => { + const html = await $fetch('/og-image') + + expect(html).contains('') + expect(html).contains('') + expect(html).contains('') + }) + + test('404 page', async () => { + try { + await $fetch('/page-not-found') + } catch (e) { + expect(e.response.status).toBe(404) + expect(e.response.statusText).toBe('Not Found') + } + }) +}) diff --git a/test/features/components.ts b/test/features/components.ts new file mode 100644 index 000000000..82370bda9 --- /dev/null +++ b/test/features/components.ts @@ -0,0 +1,12 @@ +import { describe, test, expect } from 'vitest' +import { $fetch } from '@nuxt/test-utils' + +export const testComponents = () => { + describe('components', () => { + test('from content directory', async () => { + const index = await $fetch('/components/from-content') + + expect(index).toContain('Lorem ipsum dolor sit, amet consectetur adipisicing elit.') + }) + }) +} diff --git a/test/features/content-query.ts b/test/features/content-query.ts new file mode 100644 index 000000000..ef0d0dc3c --- /dev/null +++ b/test/features/content-query.ts @@ -0,0 +1,43 @@ +import { describe, expect, test } from 'vitest' +import { $fetch } from '@nuxt/test-utils' + +export const testContentQuery = () => { + describe('Content Queries', () => { + test('Find index', async () => { + const content = await $fetch('/') + + // Normal Prop + expect(content).includes('Index') + }) + + test('exact match foo not found', async () => { + const content = await $fetch('/features/query-content?path=/foo&findOne=1') + + // empty + expect(content).includes('$$$$') + }) + + test('exact match foo/bar found', async () => { + const content = await $fetch('/features/query-content?path=/foo/bar&findOne=1') + + // empty + expect(content).includes('prefix:foo:bar.md$$') + }) + + test('prefix queries', async () => { + const content = await $fetch('/features/query-content?path=/foo') + + expect(content).includes('prefix:foo:bar.md') + expect(content).includes('prefix:foo:baz.md') + expect(content).includes('prefix:foobarbaz.md') + }) + + test('directory listing', async () => { + const content = await $fetch('/features/query-content?path=/foo/') + + expect(content).includes('prefix:foo:bar.md') + expect(content).includes('prefix:foo:baz.md') + expect(content).not.includes('prefix:foobarbaz.md') + }) + }) +} diff --git a/test/features/highlighter.ts b/test/features/highlighter.ts new file mode 100644 index 000000000..065c01794 --- /dev/null +++ b/test/features/highlighter.ts @@ -0,0 +1,61 @@ +import { describe, test, expect, assert } from 'vitest' +import { $fetch } from '@nuxt/test-utils' + +const content = [ + '```ts', + 'const a: number = 1', + '```' +].join('\n') + +export const testHighlighter = () => { + describe('Highlighter', () => { + test('themed', async () => { + const parsed = await $fetch('/api/parse', { + method: 'POST', + body: { + id: 'content:index.md', + content + } + }) + + expect(parsed).toHaveProperty('_id') + assert(parsed._id === 'content:index.md') + + const styleElement = parsed.body.children.pop() + expect(styleElement.tag).toBe('style') + const style = styleElement.children[0].value + + const code = parsed.body.children[0].children[0].children[0].children[0].children + + expect(style).toContain(`.${code[0].props.class}{color:#CF222E}`) + expect(style).toContain(`.dark .${code[0].props.class}{color:#FF7B72}`) + + expect(style).toContain(`.${code[1].props.class}{color:#24292F}`) + expect(style).toContain(`.dark .${code[1].props.class}{color:#C9D1D9}`) + + expect(style).toContain(`.${code[2].props.class}{color:#0550AE}`) + expect(style).toContain(`.dark .${code[2].props.class}{color:#79C0FF}`) + + expect(style).toContain(`.${code[3].props.class}{color:#CF222E}`) + expect(style).toContain(`.dark .${code[3].props.class}{color:#FF7B72}`) + + expect(style).toContain(`.${code[4].props.class}{color:#24292F}`) + expect(style).toContain(`.dark .${code[4].props.class}{color:#C9D1D9}`) + + expect(style).toContain(`.${code[5].props.class}{color:#0550AE}`) + expect(style).toContain(`.dark .${code[5].props.class}{color:#79C0FF}`) + + expect(style).toContain(`.${code[6].props.class}{color:#24292F}`) + expect(style).toContain(`.dark .${code[6].props.class}{color:#C9D1D9}`) + + expect(style).toContain(`.${code[7].props.class}{color:#CF222E}`) + expect(style).toContain(`.dark .${code[7].props.class}{color:#FF7B72}`) + + expect(style).toContain(`.${code[8].props.class}{color:#24292F}`) + expect(style).toContain(`.dark .${code[8].props.class}{color:#C9D1D9}`) + + expect(style).toContain(`.${code[9].props.class}{color:#0550AE}`) + expect(style).toContain(`.dark .${code[9].props.class}{color:#79C0FF}`) + }) + }) +} diff --git a/test/features/mdc-component.ts b/test/features/mdc-component.ts index cd47685c1..4b6fd195b 100644 --- a/test/features/mdc-component.ts +++ b/test/features/mdc-component.ts @@ -2,8 +2,8 @@ import { describe, expect, test } from 'vitest' import { $fetch } from '@nuxt/test-utils' export const testMDCComponent = () => { - describe('mdc-component', () => { - test('normal/binded props', async () => { + describe('MDC Components', () => { + test('Normal or binded props', async () => { const content = await $fetch('/_partial/mdc-props') // Normal Prop @@ -17,7 +17,7 @@ export const testMDCComponent = () => { ].join('\n')) }) - test('normal/binded props (inline component)', async () => { + test('Normal or binded props (inline component)', async () => { const content = await $fetch('/_partial/mdc-props-inline') // Normal Prop diff --git a/test/features/module-options.ts b/test/features/module-options.ts new file mode 100644 index 000000000..b1b9bfcf7 --- /dev/null +++ b/test/features/module-options.ts @@ -0,0 +1,59 @@ +import { describe, test, expect } from 'vitest' +import { $fetch } from '@nuxt/test-utils' + +export const testModuleOptions = () => { + describe('Module Options', () => { + test('Overwrite `remark-emoji` options: enable emoticon', async () => { + const parsed = await $fetch('/api/parse', { + method: 'POST', + body: { + id: 'content:index.md', + content: [ + '# Hello :-)' + ].join('\n') + } + }) + expect(parsed.body.children[0].children[0].value).toContain('😃') + }) + + test('Disable `remark-gfm`', async () => { + const parsed = await $fetch('/api/parse', { + method: 'POST', + body: { + id: 'content:index.md', + content: [ + '~one~' + ].join('\n') + } + }) + expect(parsed.body.children[0].children[0].value).toBe('~one~') + }) + + test('Add `remark-oembed`', async () => { + const parsed = await $fetch('/api/parse', { + method: 'POST', + body: { + id: 'content:index.md', + content: [ + 'https://www.youtube.com/watch?v=aoLhACqJCUg' + ].join('\n') + } + }) + expect(parsed.body.children[0].props.className).toContain('remark-oembed-you-tube') + }) + + test('Add `rehype-figure`', async () => { + const parsed = await $fetch('/api/parse', { + method: 'POST', + body: { + id: 'content:index.md', + content: [ + '![Alt](https://nuxtjs.org/design-kit/colored-logo.svg)' + ].join('\n') + } + }) + expect(parsed.body.children[0].props.className).toContain('rehype-figure') + expect(parsed.body.children[0].tag).toContain('figure') + }) + }) +} diff --git a/test/features/navigation.ts b/test/features/navigation.ts index 3a72a9fc6..82efe7e98 100644 --- a/test/features/navigation.ts +++ b/test/features/navigation.ts @@ -4,7 +4,7 @@ import { hash } from 'ohash' import { jsonStringify } from '../../src/runtime/utils/json' export const testNavigation = () => { - describe('navigation', () => { + describe('Navigation', () => { test('Get navigation', async () => { const query = { where: [{ _locale: 'en' }] } const list = await $fetch(`/api/_content/navigation/${hash(query)}`, { @@ -12,8 +12,15 @@ export const testNavigation = () => { _params: jsonStringify(query) } }) + expect(list.find(item => item._path === '/')).toBeTruthy() expect(list.find(item => item._path === '/').children).toBeUndefined() + + // Check navigation data in front-matter + const testNavigation = list.find(item => item._path === '/test-navigation') + expect(testNavigation['custom-field']).toEqual('_dir file') + expect(testNavigation.children[0]['custom-field']).toEqual('index file') + expect(testNavigation.children[1]['custom-field']).toEqual('page file') }) test('Get cats navigation', async () => { @@ -38,6 +45,24 @@ export const testNavigation = () => { expect(list).toMatchSnapshot('basic-navigation-dogs') }) + test('_dir.yml should be able to filter navigation tree', async () => { + const query = { where: [{ _path: /^\/test-navigation/ }] } + const list = await $fetch(`/api/_content/navigation/${hash(query)}`, { + params: { + _params: jsonStringify(query) + } + }) + + // page.md, index.md, /not-hidden-dir + expect(list[0].children).toHaveLength(3) + + // /hidden-dir should not exist + expect(list[0].children.find(item => item._path.includes('/hidden-dir'))).toBe(undefined) + + // /not-hidden-dir should exist + expect(list[0].children.find(item => item._path.includes('/not-hidden-dir'))).toBeTruthy() + }) + test('Get numbers navigation', async () => { const query = { where: [{ _path: /^\/numbers/ }] } const list = await $fetch(`/api/_content/navigation/${hash(query)}`, { @@ -53,5 +78,50 @@ export const testNavigation = () => { expect(item.title).toEqual(String(fibo[index])) }) }) + + test('Should remove `navigation-disabled.md` content', async () => { + const list = await $fetch('/api/_content/navigation/') + const hidden = list.find(i => i._path === '/navigation-disabled') + expect(hidden).toBeUndefined() + }) + + test('ContentNavigation should work with both QueryBuilder and QueryBuilderParams', async () => { + /* These are local replicas of the queries made in `nav-with-query.vue` */ + const catsQuery = { + where: { + _path: /^\/cats/ + } + } + const numbersQuery = { + where: { + _path: /^\/numbers/ + } + } + const dogsQuery = { + where: { _path: /^\/dogs/ } + } + + const queryNav = async (query) => { + const list = await $fetch(`/api/_content/navigation/${hash(query)}`, { + params: { + _params: jsonStringify(query) + } + }) + + return list + } + + const [catsData, numbersData, dogsData] = await Promise.all([ + queryNav(catsQuery), + queryNav(numbersQuery), + queryNav(dogsQuery) + ]) + + const html = await $fetch('/nav-with-query') + + catsData[0].children.forEach(({ title }) => expect(html).contains(title)) + numbersData[0].children.forEach(({ title }) => expect(html).contains(title)) + dogsData[0].children.forEach(({ title }) => expect(html).contains(title)) + }) }) } diff --git a/test/features/parser-csv.ts b/test/features/parser-csv.ts index 0b4f44746..eb917c798 100644 --- a/test/features/parser-csv.ts +++ b/test/features/parser-csv.ts @@ -1,29 +1,88 @@ import { describe, test, expect, assert } from 'vitest' import { $fetch } from '@nuxt/test-utils' +import csvToJson from 'csvtojson' -const csv = `a,b,c +const csvs = ` +a,b,c 1,2,3 -4,5,6` +4,5,6 +--- +first,last,address,city,zip +John,Doe,120 any st.,"Anytown, WW",08123 +--- +a,b,c +1,"","" +2,3,4 +--- +a,b,c +1,"","" +2,3,4 +--- +a,b +1,"ha ""ha"" ha" +3,4 +--- +key,val +1,"{""type"": ""Point"", ""coordinates"": [102.0, 0.5]}" +--- +a,b,c +1,2,3 +"Once upon +a time",5,6 +7,8,9 +--- +a,b,c +1,2,3 +"Once upon +a time",5,6 +7,8,9 +--- +a,b +1,"ha +""ha"" +ha" +3,4 +--- +a,b,c +1,2,3 +--- +a,b,c +1,2,3 +--- +a,b,c +1,2,3 +4,5,ʤ +--- +John,Doe,120 jefferson st.,Riverside, NJ, 08075 +Jack,McGinnis,220 hobo Av.,Phila, PA,09119 +"John ""Da Man""",Repici,120 Jefferson St.,Riverside, NJ,08075 +Stephen,Tyler,"7452 Terrace ""At the Plaza"" road",SomeTown,SD, 91234 +,Blankman,,SomeTown, SD, 00298 +"Joan ""the bone"", Anne",Jet,"9th, at Terrace plc",Desert City,CO,00123 + +`.trim().split('\n---\n') export const testCSVParser = () => { - describe('parser:csv', () => { - test('simple', async () => { - const parsed = await $fetch('/api/parse', { - method: 'POST', - body: { - id: 'content:index.csv', - content: csv - } - }) + describe('Parser (.csv)', () => { + for (const csv of csvs) { + test(`${csv.replace(/\n/g, '-')}`, async () => { + const parsed = await $fetch('/api/parse', { + method: 'POST', + body: { + id: 'content:index.csv', + content: csv + } + }) - expect(parsed).toHaveProperty('_id') - assert(parsed._id === 'content:index.csv') + expect(parsed).toHaveProperty('_id') + assert(parsed._id === 'content:index.csv') - expect(parsed).toHaveProperty('body') - expect(Array.isArray(parsed.body)).toBeTruthy() + expect(parsed).toHaveProperty('body') + expect(Array.isArray(parsed.body)).toBeTruthy() + const truth = await csvToJson({ output: 'json' }).fromString(csv) - expect(parsed.body[0]).toMatchObject({ a: '1', b: '2', c: '3' }) - expect(parsed.body[1]).toMatchObject({ a: '4', b: '5', c: '6' }) - }) + expect(parsed.body).toMatchObject(truth) + }) + } }) } diff --git a/test/features/parser-hooks.ts b/test/features/parser-hooks.ts index ba7e63009..2e24e0a19 100644 --- a/test/features/parser-hooks.ts +++ b/test/features/parser-hooks.ts @@ -2,7 +2,7 @@ import { describe, test, expect, assert } from 'vitest' import { $fetch } from '@nuxt/test-utils' export const testParserHooks = () => { - describe('parser:hooks', () => { + describe('Parser (hooks)', () => { test('beforeParse', async () => { const parsed = await $fetch('/api/parse', { method: 'POST', diff --git a/test/features/parser-json.ts b/test/features/parser-json.ts index 613223851..50ac44444 100644 --- a/test/features/parser-json.ts +++ b/test/features/parser-json.ts @@ -23,7 +23,7 @@ No \\n's!", }` export const testJSONParser = () => { - describe('parser:json', () => { + describe('Parser (json)', () => { test('key:value', async () => { const parsed = await $fetch('/api/parse', { method: 'POST', @@ -37,6 +37,7 @@ export const testJSONParser = () => { assert(parsed._id === 'content:index.json') assert(parsed.key === 'value') }) + test('array', async () => { const parsed = await $fetch('/api/parse', { method: 'POST', @@ -54,6 +55,12 @@ export const testJSONParser = () => { expect(parsed.body).toHaveLength(2) expect(parsed.body).toMatchObject(['item 1', 'item 2']) }) + + test('unstorage json', async () => { + const parsed = await $fetch('/_partial/simple-json') + + expect(parsed).contains('"test": "test content"') + }) }) describe('parser:json5', () => { diff --git a/test/features/parser-markdown-excerpt.ts b/test/features/parser-markdown-excerpt.ts index 81a0552e3..d6ba176e3 100644 --- a/test/features/parser-markdown-excerpt.ts +++ b/test/features/parser-markdown-excerpt.ts @@ -2,7 +2,7 @@ import { describe, test, expect, assert } from 'vitest' import { $fetch } from '@nuxt/test-utils' export const testMarkdownParserExcerpt = () => { - describe('parser:markdown:excerpt', () => { + describe('Parser (.md excerpt)', () => { test('Index file', async () => { const parsed = await $fetch('/api/parse', { method: 'POST', diff --git a/test/features/parser-markdown.ts b/test/features/parser-markdown.ts index 39bd03e32..4857af068 100644 --- a/test/features/parser-markdown.ts +++ b/test/features/parser-markdown.ts @@ -1,8 +1,9 @@ import { describe, test, expect, assert } from 'vitest' import { $fetch } from '@nuxt/test-utils' +import { visit } from 'unist-util-visit' export const testMarkdownParser = () => { - describe('parser:markdown', () => { + describe('Parser (.md)', () => { test('Index file', async () => { const parsed = await $fetch('/api/parse', { method: 'POST', @@ -68,5 +69,76 @@ export const testMarkdownParser = () => { expect(parsed.body).toHaveProperty('children') expect(parsed.body.children.length).toEqual(0) }) + + test('inline component followed by non-space characters', async () => { + const parsed = await $fetch('/api/parse', { + method: 'POST', + body: { + id: 'content:index.md', + content: [ + ':hello', // valid + ':hello,', // valid + ':hello :hello', // valid + ':hello{}-world', // valid + ':hello:hello', // invalid + ':hello-world', // valid but with different name + ':hello:', // invalid + '`:hello`', // code + ':rocket:' // emoji + ].join('\n') + } + }) + + let compComponentCount = 0 + visit(parsed.body, node => (node as any).tag === 'hello', () => { + compComponentCount += 1 + }) + expect(compComponentCount).toEqual(5) + + const paragraph = parsed.body.children[0] + expect(paragraph.children[0].tag).toEqual('hello') + expect(paragraph.children[1].tag).toEqual('hello') + expect(paragraph.children[3].tag).toEqual('hello') + expect(paragraph.children[5].tag).toEqual('hello') + expect(paragraph.children[6].tag).toEqual('hello') + + // Check conflict between inline compoenent and emoji + expect(parsed.body.children[0].children.pop().value).toContain('🚀') + }) + + test('h1 tags', async () => { + const parsed = await $fetch('/api/parse', { + method: 'POST', + body: { + id: 'content:index.md', + content: '

Hello

' + } + }) + + expect(parsed.body).toHaveProperty('children') + expect(parsed.body.children.length).toEqual(1) + expect(parsed.body.children[0].tag).toEqual('h1') + }) + + test('span attributes', async () => { + const parsed = await $fetch('/api/parse', { + method: 'POST', + body: { + id: 'content:index.md', + content: [ + '# Hello [World]{.text-green}', + 'The answer to life the universe and everything: [42]{.font-bold .text-green}' + ].join('\n') + } + }) + + expect(parsed.body).toHaveProperty('children') + expect(parsed.body.children.length).toEqual(2) + expect(parsed.body.children[0].tag).toEqual('h1') + expect(parsed.body.children[0].children[1].props.class).toEqual('text-green') + + expect(parsed.body.children[1].tag).toEqual('p') + expect(parsed.body.children[1].children[1].props.class).toEqual('font-bold text-green') + }) }) } diff --git a/test/features/parser-options.ts b/test/features/parser-options.ts new file mode 100644 index 000000000..acf297433 --- /dev/null +++ b/test/features/parser-options.ts @@ -0,0 +1,42 @@ +import { describe, test, expect, assert } from 'vitest' +import { $fetch } from '@nuxt/test-utils' + +export const testParserOptions = () => { + describe('Parser Options', () => { + test('disable MDC syntax', async () => { + const parsed = await $fetch('/api/parse', { + method: 'POST', + body: { + id: 'content:index.md', + content: ':component', + options: { + markdown: { + mdc: false + } + } + } + }) + expect(parsed).toHaveProperty('_id') + assert(parsed.body.children[0].tag === 'p') + assert(parsed.body.children[0].children[0].type === 'text') + assert(parsed.body.children[0].children[0].value === ':component') + }) + + test('custom locale', async () => { + const parsed = await $fetch('/api/parse', { + method: 'POST', + body: { + id: 'content:index.md', + content: ':component', + options: { + pathMeta: { + defaultLocale: 'jp' + } + } + } + }) + expect(parsed).toHaveProperty('_id') + expect(parsed._locale).toBe('jp') + }) + }) +} diff --git a/test/features/parser-yaml.ts b/test/features/parser-yaml.ts index 5b26cd710..32ba9ddf5 100644 --- a/test/features/parser-yaml.ts +++ b/test/features/parser-yaml.ts @@ -2,7 +2,7 @@ import { describe, test, expect, assert } from 'vitest' import { $fetch } from '@nuxt/test-utils' export const testYamlParser = () => { - describe('parser:yaml', () => { + describe('Parser (.yml)', () => { test('key:value', async () => { const parsed = await $fetch('/api/parse', { method: 'POST', diff --git a/test/features/query/match.test.ts b/test/features/query/match.test.ts index 1ce61d43d..aabc69517 100644 --- a/test/features/query/match.test.ts +++ b/test/features/query/match.test.ts @@ -13,7 +13,7 @@ describe('Match', () => { nested: { users: ['Mahatma', 'Steve', 'Woodrow'] } } - describe('string contains', () => { + describe('String contains', () => { test('$contains string', () => { expect(match(item, { name: { $contains: 'a' } })).toBe(true) expect(match(item, { 'nested.users.0': { $contains: 'Maha' } })).toBe(true) @@ -74,17 +74,6 @@ describe('Match', () => { }) }) - test('$in', () => { - const item = { id: 1, name: 'a', to: 'a', category: 'c1', nested: { users: ['Mahatma', 'Steve', 'Woodrow'] } } - - expect(match(item, { name: { $in: ['a', 'b'] } })).toBe(true) - expect(match(item, { category: { $in: 'c1' } })).toBe(true) - expect(match(item, { category: { $in: ['c1', 'c2'] } })).toBe(true) - expect(match(item, { category: { $in: ['c2', 'c3'] } })).toBe(false) - - expect(match(item, { id: { $in: [1, 2] } })).toBe(true) - }) - test('$eq', () => { // string expect(match(item, { name: { $eq: 'a' } })).toBe(true) @@ -187,4 +176,42 @@ describe('Match', () => { expect(match(item, { id: { $lte: 0 } })).toBe(false) }) }) + + describe('$in ', () => { + test('string filed', () => { + const item = { id: 1, name: 'a', to: 'a', category: 'c1', nested: { users: ['Mahatma', 'Steve', 'Woodrow'] } } + + expect(match(item, { name: { $in: ['a', 'b'] } })).toBe(true) + expect(match(item, { category: { $in: 'c1' } })).toBe(true) + expect(match(item, { category: { $in: ['c1', 'c2'] } })).toBe(true) + expect(match(item, { category: { $in: ['c2', 'c3'] } })).toBe(false) + + expect(match(item, { id: { $in: [1, 2] } })).toBe(true) + }) + + test('array field', () => { + const data = [ + { + name: 'post1', + tags: ['school', 'office'] + }, + { + name: 'post2', + tags: ['school', 'home'] + }, + { + item: 'Maps', + tags: ['office', 'storage'] + } + ] + + const condition = { tags: { $in: ['school', 'home'] } } + data.forEach((item) => { + expect(match(item, condition)).toBe( + item.tags.includes(condition.tags.$in[0]) || + item.tags.includes(condition.tags.$in[1]) + ) + }) + }) + }) }) diff --git a/test/features/query/query.test.ts b/test/features/query/query.test.ts index 02476a902..6247c2338 100644 --- a/test/features/query/query.test.ts +++ b/test/features/query/query.test.ts @@ -205,6 +205,30 @@ describe('Database Provider', () => { assert(result[2] === null) }) + test('Surround and using only method', async () => { + const fetcher = createPipelineFetcher(() => Promise.resolve([{ id: 1, _path: '/a' }, { id: 2, _path: '/b' }, { id: 3, _path: '/c' }] as any[])) + const result = await createQuery(fetcher) + .only(['_path']) + .findSurround({ id: 3 }, { before: 2, after: 1 }) + + assert((result as Array).length === 3) + assert(result[0]._path === '/a') + assert(result[1]._path === '/b') + assert(result[2] === null) + }) + + test('Surround and using without method', async () => { + const fetcher = createPipelineFetcher(() => Promise.resolve([{ id: 1, _path: '/a' }, { id: 2, _path: '/b' }, { id: 3, _path: '/c' }] as any[])) + const result = await createQuery(fetcher) + .without('id') + .findSurround({ id: 3 }, { before: 2, after: 1 }) + + assert((result as Array).length === 3) + assert(result[0]._path === '/a') + assert(result[1]._path === '/b') + assert(result[2] === null) + }) + test('Chain multiple where conditions', async () => { const fetcher = createPipelineFetcher(() => Promise.resolve([{ id: 1, path: '/a' }, { id: 2, path: '/b' }, { id: 3, path: '/c' }] as any[])) const query = createQuery(fetcher).where({ id: { $in: [1, 2] } }) diff --git a/test/features/query/utils.test.ts b/test/features/query/utils.test.ts index dd3694576..225f8ff26 100644 --- a/test/features/query/utils.test.ts +++ b/test/features/query/utils.test.ts @@ -1,7 +1,7 @@ import { describe, expect, test } from 'vitest' import { apply, get, omit, pick, sortList } from '../../../src/runtime/query/match/utils' -describe('query utils', () => { +describe('Query utils', () => { test('Omit', () => { const obj = { a: 1, diff --git a/test/features/regex.ts b/test/features/regex.ts index 120f94528..b34c2a096 100644 --- a/test/features/regex.ts +++ b/test/features/regex.ts @@ -4,7 +4,7 @@ import { hash } from 'ohash' import { jsonStringify } from '../../src/runtime/utils/json' export const testRegex = () => { - describe('regex', () => { + describe('Regex queries', () => { test('Get cats with regex', async () => { const params = { where: { _path: /^\/cats/ } } const list = await $fetch(`/api/_content/query/${hash(params)}`, { diff --git a/test/features/renderer-markdown.ts b/test/features/renderer-markdown.ts new file mode 100644 index 000000000..ea711bbc0 --- /dev/null +++ b/test/features/renderer-markdown.ts @@ -0,0 +1,71 @@ +import { describe, test, expect } from 'vitest' +import { $fetch } from '@nuxt/test-utils' + +const content = `--- +title: MDC +cover: https://nuxtjs.org/design-kit/colored-logo.svg +--- +:img{:src="cover"} + +# {{ $doc.title }} + +MDC stands for _**M**ark**D**own **C**omponents_. + +This syntax supercharges regular Markdown to write documents interacting deeply with any Vue component from your \`components/content/\` directory or provided by a module. + +## Next steps +- [Install Nuxt Content](/get-started) +- [Explore the MDC syntax](/guide/writing/mdc) + + +You are visiting document: {{ $doc._id }}. +Current route is: {{ $route.path }} + + +::alert +--- +type: success +--- +This is an alert for {{ type }} +:: + +::alert{type="danger"} +This is an alert for {{ type }} +:: + +` + +export const testMarkdownRenderer = () => { + describe('renderer:markdown', () => { + test('bindings', async () => { + const rendered = await $fetch('/parse', { + params: { + content: encodeURIComponent(content) + } + }) + + expect(rendered).toContain('') + + expect(rendered).toContain('

MDC

') + expect(rendered).toContain('You are visiting document: content:index.md.') + expect(rendered).toContain('Current route is: /parse') + expect(rendered).toContain('This is an alert for success') + expect(rendered).toContain('This is an alert for danger') + }) + + test('per-page custom component', async () => { + const html = await $fetch('/_partial/custom-paragraph') + expect(html).contains('[Paragraph]') + }) + + test('renderer custom component', async () => { + const html = await $fetch('/features/custom-paragraph') + expect(html).contains('[Paragraph]') + }) + + test('override default slot', async () => { + const html = await $fetch('/features/slotted-content-renderer') + expect(html).contains('The default slot is overridden') + }) + }) +} diff --git a/test/features/transformer-path-meta.ts b/test/features/transformer-path-meta.ts index 2c7353940..bfbd8c099 100644 --- a/test/features/transformer-path-meta.ts +++ b/test/features/transformer-path-meta.ts @@ -53,11 +53,25 @@ const testCases = { _draft: false, _partial: false, _path: '/one/fileparamvaluehash' + }, + 'content:indexer.md': { + __description: 'non-index file with index substring', + title: 'Indexer', + _draft: false, + _partial: false, + _path: '/indexer' + }, + 'content:indexer.draft.md': { + __description: 'non-index file with index substring', + title: 'Indexer', + _draft: true, + _partial: false, + _path: '/indexer' } } export const testPathMetaTransformer = () => { - describe('transformer:path-meta', () => { + describe('Transformer (path-meta)', () => { Object.entries(testCases).forEach(([id, expected]) => { test(id, async () => { const transformed = await $fetch('/api/parse', { diff --git a/test/fixtures/basic/components/content/Alert.vue b/test/fixtures/basic/components/content/Alert.vue new file mode 100644 index 000000000..b282a4c1a --- /dev/null +++ b/test/fixtures/basic/components/content/Alert.vue @@ -0,0 +1,5 @@ + diff --git a/test/fixtures/basic/components/content/CustomProseP.vue b/test/fixtures/basic/components/content/CustomProseP.vue new file mode 100644 index 000000000..aa856bc9b --- /dev/null +++ b/test/fixtures/basic/components/content/CustomProseP.vue @@ -0,0 +1,5 @@ + diff --git a/test/fixtures/basic/components/content/TestMarkdown.vue b/test/fixtures/basic/components/content/TestMarkdown.vue new file mode 100644 index 000000000..594be336a --- /dev/null +++ b/test/fixtures/basic/components/content/TestMarkdown.vue @@ -0,0 +1,14 @@ + diff --git a/test/fixtures/basic/content-fa/index.md b/test/fixtures/basic/content-fa/hello.md similarity index 100% rename from test/fixtures/basic/content-fa/index.md rename to test/fixtures/basic/content-fa/hello.md diff --git a/test/fixtures/basic/content/LoremIpsum.vue b/test/fixtures/basic/content/LoremIpsum.vue new file mode 100644 index 000000000..113034a6b --- /dev/null +++ b/test/fixtures/basic/content/LoremIpsum.vue @@ -0,0 +1,5 @@ + diff --git a/test/fixtures/basic/content/_partial/custom-paragraph.md b/test/fixtures/basic/content/_partial/custom-paragraph.md new file mode 100644 index 000000000..e804acd77 --- /dev/null +++ b/test/fixtures/basic/content/_partial/custom-paragraph.md @@ -0,0 +1,6 @@ +--- +_components: + p : CustomProseP +--- + +This is a paragraph. \ No newline at end of file diff --git a/test/fixtures/basic/content/_partial/markdown.md b/test/fixtures/basic/content/_partial/markdown.md new file mode 100644 index 000000000..098bab047 --- /dev/null +++ b/test/fixtures/basic/content/_partial/markdown.md @@ -0,0 +1,3 @@ +::test-markdown +p1 +:: \ No newline at end of file diff --git a/test/fixtures/basic/content/_partial/prefix/foo/bar.md b/test/fixtures/basic/content/_partial/prefix/foo/bar.md new file mode 100644 index 000000000..e69de29bb diff --git a/test/fixtures/basic/content/_partial/prefix/foo/baz.md b/test/fixtures/basic/content/_partial/prefix/foo/baz.md new file mode 100644 index 000000000..e69de29bb diff --git a/test/fixtures/basic/content/_partial/prefix/foobarbaz.md b/test/fixtures/basic/content/_partial/prefix/foobarbaz.md new file mode 100644 index 000000000..e69de29bb diff --git a/test/fixtures/basic/content/_partial/simple-json.json b/test/fixtures/basic/content/_partial/simple-json.json new file mode 100644 index 000000000..e5c518d50 --- /dev/null +++ b/test/fixtures/basic/content/_partial/simple-json.json @@ -0,0 +1,3 @@ +{ + "test": "test content" +} \ No newline at end of file diff --git a/test/fixtures/basic/content/components/from-content.md b/test/fixtures/basic/content/components/from-content.md new file mode 100644 index 000000000..3402c87e6 --- /dev/null +++ b/test/fixtures/basic/content/components/from-content.md @@ -0,0 +1,4 @@ +# Components inside content + +::lorem-ipsum +:: diff --git a/test/fixtures/basic/content/index.md b/test/fixtures/basic/content/index.md index 1630f8971..e5a878696 100644 --- a/test/fixtures/basic/content/index.md +++ b/test/fixtures/basic/content/index.md @@ -1 +1,4 @@ -# Index \ No newline at end of file +# Index + + +Hello World \ No newline at end of file diff --git a/test/fixtures/basic/content/navigation-disabled.md b/test/fixtures/basic/content/navigation-disabled.md new file mode 100644 index 000000000..73a14154e --- /dev/null +++ b/test/fixtures/basic/content/navigation-disabled.md @@ -0,0 +1,7 @@ +--- +navigation: false +--- + +# Hidden from navigation + +Basic description diff --git a/test/fixtures/basic/content/test-navigation/1.index.md b/test/fixtures/basic/content/test-navigation/1.index.md new file mode 100644 index 000000000..a01752011 --- /dev/null +++ b/test/fixtures/basic/content/test-navigation/1.index.md @@ -0,0 +1,4 @@ +--- +navigation.custom-field: index file +--- +# /test-navigation diff --git a/test/fixtures/basic/content/test-navigation/2.page.md b/test/fixtures/basic/content/test-navigation/2.page.md new file mode 100644 index 000000000..aee5d0255 --- /dev/null +++ b/test/fixtures/basic/content/test-navigation/2.page.md @@ -0,0 +1,4 @@ +--- +navigation.custom-field: page file +--- +# /test-navigation/page diff --git a/test/fixtures/basic/content/test-navigation/99.not-hidden-dir/index.md b/test/fixtures/basic/content/test-navigation/99.not-hidden-dir/index.md new file mode 100644 index 000000000..b749326fe --- /dev/null +++ b/test/fixtures/basic/content/test-navigation/99.not-hidden-dir/index.md @@ -0,0 +1 @@ +# /test-navigation/not-hidden-dir diff --git a/test/fixtures/basic/content/test-navigation/99.not-hidden-dir/page.md b/test/fixtures/basic/content/test-navigation/99.not-hidden-dir/page.md new file mode 100644 index 000000000..8c497595a --- /dev/null +++ b/test/fixtures/basic/content/test-navigation/99.not-hidden-dir/page.md @@ -0,0 +1 @@ +# /test-navigation/not-hidden-dir/page diff --git a/test/fixtures/basic/content/test-navigation/_dir.yml b/test/fixtures/basic/content/test-navigation/_dir.yml new file mode 100644 index 000000000..b4ff2a77f --- /dev/null +++ b/test/fixtures/basic/content/test-navigation/_dir.yml @@ -0,0 +1,3 @@ +title: Test Navigation +navigation: + custom-field: _dir file diff --git a/test/fixtures/basic/content/test-navigation/hidden-dir/_dir.yml b/test/fixtures/basic/content/test-navigation/hidden-dir/_dir.yml new file mode 100644 index 000000000..d2df610e4 --- /dev/null +++ b/test/fixtures/basic/content/test-navigation/hidden-dir/_dir.yml @@ -0,0 +1,2 @@ +title: Hidden Dir +navigation: false diff --git a/test/fixtures/basic/content/test-navigation/hidden-dir/index.md b/test/fixtures/basic/content/test-navigation/hidden-dir/index.md new file mode 100644 index 000000000..43d4ed1eb --- /dev/null +++ b/test/fixtures/basic/content/test-navigation/hidden-dir/index.md @@ -0,0 +1 @@ +# /test-navigation/hidden-dir/ diff --git a/test/fixtures/basic/content/test-navigation/hidden-dir/page.md b/test/fixtures/basic/content/test-navigation/hidden-dir/page.md new file mode 100644 index 000000000..54e4050a1 --- /dev/null +++ b/test/fixtures/basic/content/test-navigation/hidden-dir/page.md @@ -0,0 +1 @@ +# /test-navigation/hidden-dir/page diff --git a/test/fixtures/basic/content/test-navigation/hidden-dir/sub-hidden-dir/page.md b/test/fixtures/basic/content/test-navigation/hidden-dir/sub-hidden-dir/page.md new file mode 100644 index 000000000..f8526cd75 --- /dev/null +++ b/test/fixtures/basic/content/test-navigation/hidden-dir/sub-hidden-dir/page.md @@ -0,0 +1 @@ +# /test-navigation/hidden-dir/sub-hidden-dir/page diff --git a/test/fixtures/basic/content/with-'invalid'-char.md b/test/fixtures/basic/content/with-'invalid'-char.md new file mode 100644 index 000000000..8f835da2a --- /dev/null +++ b/test/fixtures/basic/content/with-'invalid'-char.md @@ -0,0 +1 @@ +# This file's name is invalid diff --git a/test/fixtures/basic/nuxt.config.ts b/test/fixtures/basic/nuxt.config.ts index d06739c2c..44453437a 100644 --- a/test/fixtures/basic/nuxt.config.ts +++ b/test/fixtures/basic/nuxt.config.ts @@ -13,10 +13,16 @@ export default defineNuxtConfig({ { path: resolve(__dirname, './components'), global: true + }, + { + path: resolve(__dirname, './content'), + global: true, + pathPrefix: false, + prefix: '' } ] }, - buildModules: [contentModule], + modules: [contentModule], content: { locales: ['en', 'fa'], sources: [ @@ -27,8 +33,32 @@ export default defineNuxtConfig({ base: resolve(__dirname, 'content-fa') } ], + ignores: ['.*\\.vue'], navigation: { fields: ['icon'] + }, + highlight: { + theme: { + default: 'github-light', + dark: 'github-dark' + } + }, + markdown: { + // Object syntax can be used to override default options + remarkPlugins: { + // override remark-emoji options + 'remark-emoji': { + emoticon: true + }, + // disable remark-gfm + 'remark-gfm': false, + // add remark-oembed + 'remark-oembed': {} + }, + // Array syntax can be used to add plugins + rehypePlugins: [ + 'rehype-figure' + ] } } }) diff --git a/test/fixtures/basic/pages/bypass-head.vue b/test/fixtures/basic/pages/bypass-head.vue index 144a185bd..945891bfd 100644 --- a/test/fixtures/basic/pages/bypass-head.vue +++ b/test/fixtures/basic/pages/bypass-head.vue @@ -1,3 +1,3 @@ diff --git a/test/fixtures/basic/pages/features/custom-paragraph.vue b/test/fixtures/basic/pages/features/custom-paragraph.vue new file mode 100644 index 000000000..d3158cd01 --- /dev/null +++ b/test/fixtures/basic/pages/features/custom-paragraph.vue @@ -0,0 +1,3 @@ + diff --git a/test/fixtures/basic/pages/features/query-content.vue b/test/fixtures/basic/pages/features/query-content.vue new file mode 100644 index 000000000..3b937d13f --- /dev/null +++ b/test/fixtures/basic/pages/features/query-content.vue @@ -0,0 +1,20 @@ + + + diff --git a/test/fixtures/basic/pages/features/slotted-content-renderer.vue b/test/fixtures/basic/pages/features/slotted-content-renderer.vue new file mode 100644 index 000000000..6ae8cd125 --- /dev/null +++ b/test/fixtures/basic/pages/features/slotted-content-renderer.vue @@ -0,0 +1,18 @@ + + + diff --git a/test/fixtures/basic/pages/nav-with-query.vue b/test/fixtures/basic/pages/nav-with-query.vue new file mode 100644 index 000000000..70697a4ab --- /dev/null +++ b/test/fixtures/basic/pages/nav-with-query.vue @@ -0,0 +1,60 @@ + + + diff --git a/test/fixtures/basic/pages/parse.vue b/test/fixtures/basic/pages/parse.vue new file mode 100644 index 000000000..889702b54 --- /dev/null +++ b/test/fixtures/basic/pages/parse.vue @@ -0,0 +1,19 @@ + + + diff --git a/test/fixtures/basic/server/api/parse.ts b/test/fixtures/basic/server/api/parse.ts index 73d9c96de..4665378cb 100644 --- a/test/fixtures/basic/server/api/parse.ts +++ b/test/fixtures/basic/server/api/parse.ts @@ -2,10 +2,10 @@ import { defineEventHandler, useBody } from 'h3' import { parseContent } from '#content/server' export default defineEventHandler(async (event) => { - const { id, content } = await useBody(event) + const { id, content, options } = await useBody(event) // @ts-ignore - const parsedContent = await parseContent(id, content) + const parsedContent = await parseContent(id, content, options) return parsedContent }) diff --git a/test/fixtures/document-driven/components/content/Debug.vue b/test/fixtures/document-driven/components/content/Debug.vue new file mode 100644 index 000000000..e3ff624d4 --- /dev/null +++ b/test/fixtures/document-driven/components/content/Debug.vue @@ -0,0 +1,36 @@ + + + diff --git a/test/fixtures/document-driven/composables/useTheme.ts b/test/fixtures/document-driven/composables/useTheme.ts new file mode 100644 index 000000000..653958dd7 --- /dev/null +++ b/test/fixtures/document-driven/composables/useTheme.ts @@ -0,0 +1,9 @@ +import { useContent, computed } from '#imports' + +export const useTheme = () => { + const { globals } = useContent() + + const theme = computed(() => globals.value?.theme) + + return theme +} diff --git a/test/fixtures/document-driven/content/0.index.md b/test/fixtures/document-driven/content/0.index.md new file mode 100644 index 000000000..f3c858066 --- /dev/null +++ b/test/fixtures/document-driven/content/0.index.md @@ -0,0 +1,3 @@ +# Home + +Hello World! diff --git a/test/fixtures/document-driven/content/1.debug.md b/test/fixtures/document-driven/content/1.debug.md new file mode 100644 index 000000000..c594ec203 --- /dev/null +++ b/test/fixtures/document-driven/content/1.debug.md @@ -0,0 +1,6 @@ +# Debug + +::debug +:: + +`useTheme()` is built on top of `globals` key. diff --git a/test/fixtures/document-driven/content/2.layout.md b/test/fixtures/document-driven/content/2.layout.md new file mode 100644 index 000000000..cb2e7fc50 --- /dev/null +++ b/test/fixtures/document-driven/content/2.layout.md @@ -0,0 +1,9 @@ +--- +layout: reversed +--- + +# Layout + +This page uses `reversed` layout. + +Navigation should be on bottom. diff --git a/test/fixtures/document-driven/content/3.fm-data.md b/test/fixtures/document-driven/content/3.fm-data.md new file mode 100644 index 000000000..8026c40e4 --- /dev/null +++ b/test/fixtures/document-driven/content/3.fm-data.md @@ -0,0 +1,6 @@ +--- +score: 23.5 +image: 'https://picsum.photos/400/200' +--- + +# FM Data diff --git a/test/fixtures/document-driven/content/4.no-surround.md b/test/fixtures/document-driven/content/4.no-surround.md new file mode 100644 index 000000000..a764a3983 --- /dev/null +++ b/test/fixtures/document-driven/content/4.no-surround.md @@ -0,0 +1 @@ +# Surround disabled in document driven \ No newline at end of file diff --git a/test/fixtures/document-driven/content/5.og-image.md b/test/fixtures/document-driven/content/5.og-image.md new file mode 100644 index 000000000..808fb60d3 --- /dev/null +++ b/test/fixtures/document-driven/content/5.og-image.md @@ -0,0 +1,7 @@ +--- +image.src: 'https://picsum.photos/400/200' +image.width: 400 +image.height: 200 +--- + +# OG Image diff --git a/test/fixtures/document-driven/content/_theme.yml b/test/fixtures/document-driven/content/_theme.yml new file mode 100644 index 000000000..4cdafb27e --- /dev/null +++ b/test/fixtures/document-driven/content/_theme.yml @@ -0,0 +1 @@ +test: 'Hello World' diff --git a/playground/app.vue b/test/fixtures/document-driven/layouts/reversed.vue similarity index 78% rename from playground/app.vue rename to test/fixtures/document-driven/layouts/reversed.vue index 85c8d71e4..5a8dfd8c6 100644 --- a/playground/app.vue +++ b/test/fixtures/document-driven/layouts/reversed.vue @@ -1,8 +1,10 @@ @@ -10,5 +12,7 @@ body, html { margin: 0; padding: 0; + min-height: 100vh; + min-width: 100vw; } diff --git a/test/fixtures/document-driven/nuxt.config.ts b/test/fixtures/document-driven/nuxt.config.ts new file mode 100644 index 000000000..d3184cd66 --- /dev/null +++ b/test/fixtures/document-driven/nuxt.config.ts @@ -0,0 +1,19 @@ + +import { defineNuxtConfig } from 'nuxt' +import contentModule from '../../..' + +export default defineNuxtConfig({ + modules: [contentModule], + content: { + documentDriven: { + globals: { + theme: { + where: { + _id: 'content:_theme.yml' + }, + without: ['_'] + } + } + } + } +}) diff --git a/test/fixtures/document-driven/pages/custom-search.vue b/test/fixtures/document-driven/pages/custom-search.vue new file mode 100644 index 000000000..810651678 --- /dev/null +++ b/test/fixtures/document-driven/pages/custom-search.vue @@ -0,0 +1,34 @@ + + + diff --git a/test/fixtures/document-driven/pages/disabled.vue b/test/fixtures/document-driven/pages/disabled.vue new file mode 100644 index 000000000..7fcecd606 --- /dev/null +++ b/test/fixtures/document-driven/pages/disabled.vue @@ -0,0 +1,15 @@ + + + diff --git a/test/fixtures/document-driven/pages/home.vue b/test/fixtures/document-driven/pages/home.vue new file mode 100644 index 000000000..a14a994c7 --- /dev/null +++ b/test/fixtures/document-driven/pages/home.vue @@ -0,0 +1,31 @@ + + + diff --git a/test/fixtures/document-driven/pages/no-surround.vue b/test/fixtures/document-driven/pages/no-surround.vue new file mode 100644 index 000000000..14e96d8ea --- /dev/null +++ b/test/fixtures/document-driven/pages/no-surround.vue @@ -0,0 +1,17 @@ + + + diff --git a/test/module.test.ts b/test/module.test.ts index 0753cdc8d..bcbcb22b9 100644 --- a/test/module.test.ts +++ b/test/module.test.ts @@ -4,8 +4,8 @@ import { useContentMounts } from '../src/utils' const nuxtDummy = { options: { rootDir: '/test', srcDir: '/test' } } as Nuxt -describe('Content sources', () => { - test('Relative path', () => { +describe('module', () => { + test('[sources] [array] Relative path', () => { const mounts = useContentMounts(nuxtDummy, ['content']) const mount = mounts['content:source:content'] @@ -14,7 +14,7 @@ describe('Content sources', () => { assert(mount.base === '/test/content') }) - test('Absolute path', () => { + test('[sources] [array] Absolute path', () => { const mounts = useContentMounts(nuxtDummy, ['/content']) const mount = mounts['content:source:_content'] @@ -23,7 +23,7 @@ describe('Content sources', () => { assert(mount.base === '/content') }) - test('Custom driver', () => { + test('[sources] [array] Custom driver', () => { const mounts = useContentMounts(nuxtDummy, [ { name: 'repo1', @@ -32,14 +32,12 @@ describe('Content sources', () => { } ]) - assert(Object.keys(mounts).length === 1) - expect(mounts).toMatchObject({ 'content:source:repo1': { driver: 'http', base: 'https://cdn.com' } }) }) - test('Multiple storages', () => { + test('[sources] [array] Multiple storages', () => { const mounts = useContentMounts(nuxtDummy, [ 'content', '/repo1/docs', @@ -60,4 +58,45 @@ describe('Content sources', () => { 'content:source:repo1': { driver: 'http', base: 'https://cdn.com' } }) }) + test('[sources] [array] overwrite default source', () => { + const mounts = useContentMounts(nuxtDummy, [ + { + name: 'content', + driver: 'http', + base: 'https://cdn.com' + } + ]) + + assert(Object.keys(mounts).length === 1) + + expect(mounts).toMatchObject({ + 'content:source:content': { driver: 'http', base: 'https://cdn.com' } + }) + }) + + test('[sources] [object] overwrite default source', () => { + const mounts = useContentMounts(nuxtDummy, { + content: { + driver: 'http', + base: 'https://cdn.com' + } + }) + + expect(mounts).toMatchObject({ + 'content:source:content': { driver: 'http', base: 'https://cdn.com' } + }) + }) + + test('[sources] [object] secondary source', () => { + const mounts = useContentMounts(nuxtDummy, { + secondary: { + driver: 'http', + base: 'https://cdn.com' + } + }) + + expect(mounts).toMatchObject({ + 'content:source:secondary': { driver: 'http', base: 'https://cdn.com' } + }) + }) }) diff --git a/tsconfig.json b/tsconfig.json index 9dd826f99..54e1fe19a 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,3 +1,3 @@ { - "extends": "./playground/.nuxt/tsconfig.json" + "extends": "./playground/basic/.nuxt/tsconfig.json" } diff --git a/yarn.lock b/yarn.lock index 91f0c1d18..52c872db3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10,195 +10,200 @@ "@jridgewell/gen-mapping" "^0.1.0" "@jridgewell/trace-mapping" "^0.3.9" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.7.tgz#44416b6bd7624b998f5b1af5d470856c40138789" - integrity sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg== +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.7", "@babel/code-frame@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" + integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== dependencies: - "@babel/highlight" "^7.16.7" + "@babel/highlight" "^7.18.6" -"@babel/compat-data@^7.17.10": - version "7.17.10" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.17.10.tgz#711dc726a492dfc8be8220028b1b92482362baab" - integrity sha512-GZt/TCsG70Ms19gfZO1tM4CVnXsPgEPBCpJu+Qz3L0LUDsY5nZqFZglIoPC1kIYOtNBZlrnFT+klg12vFGZXrw== +"@babel/compat-data@^7.19.0": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.19.0.tgz#2a592fd89bacb1fcde68de31bee4f2f2dacb0e86" + integrity sha512-y5rqgTTPTmaF5e2nVhOxw+Ur9HDJLsWb6U/KpgUzRZEdPfE6VOubXBKLdbcUTijzRptednSBDQbYZBOSqJxpJw== -"@babel/core@^7.17.7", "@babel/core@^7.17.9": - version "7.18.2" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.18.2.tgz#87b2fcd7cce9becaa7f5acebdc4f09f3dd19d876" - integrity sha512-A8pri1YJiC5UnkdrWcmfZTJTV85b4UXTAfImGmCfYmax4TR9Cw8sDS0MOk++Gp2mE/BefVJ5nwy5yzqNJbP/DQ== +"@babel/core@^7.18.13": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.19.0.tgz#d2f5f4f2033c00de8096be3c9f45772563e150c3" + integrity sha512-reM4+U7B9ss148rh2n1Qs9ASS+w94irYXga7c2jaQv9RVzpS7Mv1a9rnYYwuDa45G+DkORt9g6An2k/V4d9LbQ== dependencies: "@ampproject/remapping" "^2.1.0" - "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.18.2" - "@babel/helper-compilation-targets" "^7.18.2" - "@babel/helper-module-transforms" "^7.18.0" - "@babel/helpers" "^7.18.2" - "@babel/parser" "^7.18.0" - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.18.2" - "@babel/types" "^7.18.2" + "@babel/code-frame" "^7.18.6" + "@babel/generator" "^7.19.0" + "@babel/helper-compilation-targets" "^7.19.0" + "@babel/helper-module-transforms" "^7.19.0" + "@babel/helpers" "^7.19.0" + "@babel/parser" "^7.19.0" + "@babel/template" "^7.18.10" + "@babel/traverse" "^7.19.0" + "@babel/types" "^7.19.0" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" json5 "^2.2.1" semver "^6.3.0" -"@babel/generator@^7.18.2": - version "7.18.2" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.18.2.tgz#33873d6f89b21efe2da63fe554460f3df1c5880d" - integrity sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw== +"@babel/generator@^7.19.0": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.19.0.tgz#785596c06425e59334df2ccee63ab166b738419a" + integrity sha512-S1ahxf1gZ2dpoiFgA+ohK9DIpz50bJ0CWs7Zlzb54Z4sG8qmdIrGrVqmy1sAtTVRb+9CU6U8VqT9L0Zj7hxHVg== dependencies: - "@babel/types" "^7.18.2" - "@jridgewell/gen-mapping" "^0.3.0" + "@babel/types" "^7.19.0" + "@jridgewell/gen-mapping" "^0.3.2" jsesc "^2.5.1" -"@babel/helper-annotate-as-pure@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz#bb2339a7534a9c128e3102024c60760a3a7f3862" - integrity sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw== +"@babel/helper-annotate-as-pure@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz#eaa49f6f80d5a33f9a5dd2276e6d6e451be0a6bb" + integrity sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA== dependencies: - "@babel/types" "^7.16.7" + "@babel/types" "^7.18.6" -"@babel/helper-compilation-targets@^7.18.2": - version "7.18.2" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.2.tgz#67a85a10cbd5fc7f1457fec2e7f45441dc6c754b" - integrity sha512-s1jnPotJS9uQnzFtiZVBUxe67CuBa679oWFHpxYYnTpRL/1ffhyX44R9uYiXoa/pLXcY9H2moJta0iaanlk/rQ== +"@babel/helper-compilation-targets@^7.19.0": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.0.tgz#537ec8339d53e806ed422f1e06c8f17d55b96bb0" + integrity sha512-Ai5bNWXIvwDvWM7njqsG3feMlL9hCVQsPYXodsZyLwshYkZVJt59Gftau4VrE8S9IT9asd2uSP1hG6wCNw+sXA== dependencies: - "@babel/compat-data" "^7.17.10" - "@babel/helper-validator-option" "^7.16.7" + "@babel/compat-data" "^7.19.0" + "@babel/helper-validator-option" "^7.18.6" browserslist "^4.20.2" semver "^6.3.0" -"@babel/helper-create-class-features-plugin@^7.18.0": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.0.tgz#fac430912606331cb075ea8d82f9a4c145a4da19" - integrity sha512-Kh8zTGR9de3J63e5nS0rQUdRs/kbtwoeQQ0sriS0lItjC96u8XXZN6lKpuyWd2coKSU13py/y+LTmThLuVX0Pg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.16.7" - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-function-name" "^7.17.9" - "@babel/helper-member-expression-to-functions" "^7.17.7" - "@babel/helper-optimise-call-expression" "^7.16.7" - "@babel/helper-replace-supers" "^7.16.7" - "@babel/helper-split-export-declaration" "^7.16.7" - -"@babel/helper-environment-visitor@^7.16.7", "@babel/helper-environment-visitor@^7.18.2": - version "7.18.2" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.2.tgz#8a6d2dedb53f6bf248e31b4baf38739ee4a637bd" - integrity sha512-14GQKWkX9oJzPiQQ7/J36FTXcD4kSp8egKjO9nINlSKiHITRA9q/R74qu8S9xlc/b/yjsJItQUeeh3xnGN0voQ== - -"@babel/helper-function-name@^7.17.9": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz#136fcd54bc1da82fcb47565cf16fd8e444b1ff12" - integrity sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg== - dependencies: - "@babel/template" "^7.16.7" - "@babel/types" "^7.17.0" - -"@babel/helper-hoist-variables@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz#86bcb19a77a509c7b77d0e22323ef588fa58c246" - integrity sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-member-expression-to-functions@^7.17.7": - version "7.17.7" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.17.7.tgz#a34013b57d8542a8c4ff8ba3f747c02452a4d8c4" - integrity sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw== - dependencies: - "@babel/types" "^7.17.0" - -"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz#25612a8091a999704461c8a222d0efec5d091437" - integrity sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-module-transforms@^7.18.0": - version "7.18.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.18.0.tgz#baf05dec7a5875fb9235bd34ca18bad4e21221cd" - integrity sha512-kclUYSUBIjlvnzN2++K9f2qzYKFgjmnmjwL4zlmU5f8ZtzgWe8s0rUPSTGy2HmK4P8T52MQsS+HTQAgZd3dMEA== - dependencies: - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-module-imports" "^7.16.7" - "@babel/helper-simple-access" "^7.17.7" - "@babel/helper-split-export-declaration" "^7.16.7" - "@babel/helper-validator-identifier" "^7.16.7" - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.18.0" - "@babel/types" "^7.18.0" - -"@babel/helper-optimise-call-expression@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz#a34e3560605abbd31a18546bd2aad3e6d9a174f2" - integrity sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.17.12": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz#86c2347da5acbf5583ba0a10aed4c9bf9da9cf96" - integrity sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA== - -"@babel/helper-replace-supers@^7.16.7": - version "7.18.2" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.18.2.tgz#41fdfcc9abaf900e18ba6e5931816d9062a7b2e0" - integrity sha512-XzAIyxx+vFnrOxiQrToSUOzUOn0e1J2Li40ntddek1Y69AXUTXoDJ40/D5RdjFu7s7qHiaeoTiempZcbuVXh2Q== - dependencies: - "@babel/helper-environment-visitor" "^7.18.2" - "@babel/helper-member-expression-to-functions" "^7.17.7" - "@babel/helper-optimise-call-expression" "^7.16.7" - "@babel/traverse" "^7.18.2" - "@babel/types" "^7.18.2" - -"@babel/helper-simple-access@^7.17.7": - version "7.18.2" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.18.2.tgz#4dc473c2169ac3a1c9f4a51cfcd091d1c36fcff9" - integrity sha512-7LIrjYzndorDY88MycupkpQLKS1AFfsVRm2k/9PtKScSy5tZq0McZTj+DiMRynboZfIqOKvo03pmhTaUgiD6fQ== - dependencies: - "@babel/types" "^7.18.2" - -"@babel/helper-split-export-declaration@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz#0b648c0c42da9d3920d85ad585f2778620b8726b" - integrity sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw== - dependencies: - "@babel/types" "^7.16.7" - -"@babel/helper-validator-identifier@^7.15.7", "@babel/helper-validator-identifier@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz#e8c602438c4a8195751243da9031d1607d247cad" - integrity sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw== - -"@babel/helper-validator-option@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz#b203ce62ce5fe153899b617c08957de860de4d23" - integrity sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ== - -"@babel/helpers@^7.18.2": - version "7.18.2" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.18.2.tgz#970d74f0deadc3f5a938bfa250738eb4ac889384" - integrity sha512-j+d+u5xT5utcQSzrh9p+PaJX94h++KN+ng9b9WEJq7pkUPAd61FGqhjuUEdfknb3E/uDBb7ruwEeKkIxNJPIrg== - dependencies: - "@babel/template" "^7.16.7" - "@babel/traverse" "^7.18.2" - "@babel/types" "^7.18.2" - -"@babel/highlight@^7.16.7": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.17.12.tgz#257de56ee5afbd20451ac0a75686b6b404257351" - integrity sha512-7yykMVF3hfZY2jsHZEEgLc+3x4o1O+fYyULu11GynEUQNwB6lua+IIQn1FiJxNucd5UlyJryrwsOh8PL9Sn8Qg== - dependencies: - "@babel/helper-validator-identifier" "^7.16.7" +"@babel/helper-create-class-features-plugin@^7.19.0": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.19.0.tgz#bfd6904620df4e46470bae4850d66be1054c404b" + integrity sha512-NRz8DwF4jT3UfrmUoZjd0Uph9HQnP30t7Ash+weACcyNkiYTywpIjDBgReJMKgr+n86sn2nPVVmJ28Dm053Kqw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-function-name" "^7.19.0" + "@babel/helper-member-expression-to-functions" "^7.18.9" + "@babel/helper-optimise-call-expression" "^7.18.6" + "@babel/helper-replace-supers" "^7.18.9" + "@babel/helper-split-export-declaration" "^7.18.6" + +"@babel/helper-environment-visitor@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be" + integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg== + +"@babel/helper-function-name@^7.19.0": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz#941574ed5390682e872e52d3f38ce9d1bef4648c" + integrity sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w== + dependencies: + "@babel/template" "^7.18.10" + "@babel/types" "^7.19.0" + +"@babel/helper-hoist-variables@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678" + integrity sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-member-expression-to-functions@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz#1531661e8375af843ad37ac692c132841e2fd815" + integrity sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg== + dependencies: + "@babel/types" "^7.18.9" + +"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz#1e3ebdbbd08aad1437b428c50204db13c5a3ca6e" + integrity sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-module-transforms@^7.19.0": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.19.0.tgz#309b230f04e22c58c6a2c0c0c7e50b216d350c30" + integrity sha512-3HBZ377Fe14RbLIA+ac3sY4PTgpxHVkFrESaWhoI5PuyXPBBX8+C34qblV9G89ZtycGJCmCI/Ut+VUDK4bltNQ== + dependencies: + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-module-imports" "^7.18.6" + "@babel/helper-simple-access" "^7.18.6" + "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/helper-validator-identifier" "^7.18.6" + "@babel/template" "^7.18.10" + "@babel/traverse" "^7.19.0" + "@babel/types" "^7.19.0" + +"@babel/helper-optimise-call-expression@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz#9369aa943ee7da47edab2cb4e838acf09d290ffe" + integrity sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.19.0": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.19.0.tgz#4796bb14961521f0f8715990bee2fb6e51ce21bf" + integrity sha512-40Ryx7I8mT+0gaNxm8JGTZFUITNqdLAgdg0hXzeVZxVD6nFsdhQvip6v8dqkRHzsz1VFpFAaOCHNn0vKBL7Czw== + +"@babel/helper-replace-supers@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.18.9.tgz#1092e002feca980fbbb0bd4d51b74a65c6a500e6" + integrity sha512-dNsWibVI4lNT6HiuOIBr1oyxo40HvIVmbwPUm3XZ7wMh4k2WxrxTqZwSqw/eEmXDS9np0ey5M2bz9tBmO9c+YQ== + dependencies: + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-member-expression-to-functions" "^7.18.9" + "@babel/helper-optimise-call-expression" "^7.18.6" + "@babel/traverse" "^7.18.9" + "@babel/types" "^7.18.9" + +"@babel/helper-simple-access@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz#d6d8f51f4ac2978068df934b569f08f29788c7ea" + integrity sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-split-export-declaration@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz#7367949bc75b20c6d5a5d4a97bba2824ae8ef075" + integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-string-parser@^7.18.10": + version "7.18.10" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz#181f22d28ebe1b3857fa575f5c290b1aaf659b56" + integrity sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw== + +"@babel/helper-validator-identifier@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz#9c97e30d31b2b8c72a1d08984f2ca9b574d7a076" + integrity sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g== + +"@babel/helper-validator-option@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz#bf0d2b5a509b1f336099e4ff36e1a63aa5db4db8" + integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw== + +"@babel/helpers@^7.19.0": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.19.0.tgz#f30534657faf246ae96551d88dd31e9d1fa1fc18" + integrity sha512-DRBCKGwIEdqY3+rPJgG/dKfQy9+08rHIAJx8q2p+HSWP87s2HCrQmaAMMyMll2kIXKCW0cO1RdQskx15Xakftg== + dependencies: + "@babel/template" "^7.18.10" + "@babel/traverse" "^7.19.0" + "@babel/types" "^7.19.0" + +"@babel/highlight@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" + integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== + dependencies: + "@babel/helper-validator-identifier" "^7.18.6" chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.16.4", "@babel/parser@^7.16.7", "@babel/parser@^7.18.0": - version "7.18.4" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.4.tgz#6774231779dd700e0af29f6ad8d479582d7ce5ef" - integrity sha512-FDge0dFazETFcxGw/EXzOkN8uJp0PC7Qbm+Pe9T+av2zlBpOgunFHkQPPn+eRuClU73JF+98D531UgayY89tow== +"@babel/parser@^7.13.12", "@babel/parser@^7.16.4", "@babel/parser@^7.18.10", "@babel/parser@^7.19.0", "@babel/parser@^7.6.0", "@babel/parser@^7.9.6": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.19.0.tgz#497fcafb1d5b61376959c1c338745ef0577aa02c" + integrity sha512-74bEXKX2h+8rrfQUfsBfuZZHzsEs6Eql4pqy/T4Nn6Y9wNPggQOqD6z6pn5Bl8ZfysKouFZT/UXEH94ummEeQw== "@babel/plugin-syntax-import-meta@^7.10.4": version "7.10.4" @@ -208,64 +213,65 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-jsx@^7.0.0": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.17.12.tgz#834035b45061983a491f60096f61a2e7c5674a47" - integrity sha512-spyY3E3AURfxh/RHtjx5j6hs8am5NbUBGfcZ2vB3uShSpZdQyXSf5rR5Mk76vbtlAZOelyVQ71Fg0x9SG4fsog== - dependencies: - "@babel/helper-plugin-utils" "^7.17.12" - -"@babel/plugin-syntax-typescript@^7.17.12": - version "7.17.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.17.12.tgz#b54fc3be6de734a56b87508f99d6428b5b605a7b" - integrity sha512-TYY0SXFiO31YXtNg3HtFwNJHjLsAyIIhAhNWkQ5whPPS7HWUFlg9z0Ta4qAQNjQbP1wsSt/oKkmZ/4/WWdMUpw== - dependencies: - "@babel/helper-plugin-utils" "^7.17.12" - -"@babel/plugin-transform-typescript@^7.16.8": - version "7.18.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.18.4.tgz#587eaf6a39edb8c06215e550dc939faeadd750bf" - integrity sha512-l4vHuSLUajptpHNEOUDEGsnpl9pfRLsN1XUoDQDD/YBuXTM+v37SHGS+c6n4jdcZy96QtuUuSvZYMLSSsjH8Mw== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.18.0" - "@babel/helper-plugin-utils" "^7.17.12" - "@babel/plugin-syntax-typescript" "^7.17.12" - -"@babel/standalone@^7.17.7": - version "7.18.4" - resolved "https://registry.yarnpkg.com/@babel/standalone/-/standalone-7.18.4.tgz#2a30c7e9a97227399929011dfe19f9f155c59e80" - integrity sha512-3dDouWyjdS8sJTm6hf8KkJq7fr9ORWMlWGNcMV/Uz2rNnoI6uu8wJGhZ7E65J+x6v8ta9yPbzkUT2YBFcWUbWg== - -"@babel/template@^7.0.0", "@babel/template@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.16.7.tgz#8d126c8701fde4d66b264b3eba3d96f07666d155" - integrity sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w== - dependencies: - "@babel/code-frame" "^7.16.7" - "@babel/parser" "^7.16.7" - "@babel/types" "^7.16.7" - -"@babel/traverse@^7.0.0", "@babel/traverse@^7.18.0", "@babel/traverse@^7.18.2": - version "7.18.2" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.18.2.tgz#b77a52604b5cc836a9e1e08dca01cba67a12d2e8" - integrity sha512-9eNwoeovJ6KH9zcCNnENY7DMFwTU9JdGCFtqNLfUAqtUHRCOsTOqWoffosP8vKmNYeSBUv3yVJXjfd8ucwOjUA== - dependencies: - "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.18.2" - "@babel/helper-environment-visitor" "^7.18.2" - "@babel/helper-function-name" "^7.17.9" - "@babel/helper-hoist-variables" "^7.16.7" - "@babel/helper-split-export-declaration" "^7.16.7" - "@babel/parser" "^7.18.0" - "@babel/types" "^7.18.2" + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz#a8feef63b010150abd97f1649ec296e849943ca0" + integrity sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-syntax-typescript@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.18.6.tgz#1c09cd25795c7c2b8a4ba9ae49394576d4133285" + integrity sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-typescript@^7.18.12": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.19.0.tgz#50c3a68ec8efd5e040bde2cd764e8e16bc0cbeaf" + integrity sha512-DOOIywxPpkQHXijXv+s9MDAyZcLp12oYRl3CMWZ6u7TjSoCBq/KqHR/nNFR3+i2xqheZxoF0H2XyL7B6xeSRuA== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.19.0" + "@babel/helper-plugin-utils" "^7.19.0" + "@babel/plugin-syntax-typescript" "^7.18.6" + +"@babel/standalone@^7.18.13": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/standalone/-/standalone-7.19.0.tgz#23cbe261557a72dcc58ba56c3a2125944a251c4f" + integrity sha512-P8lYynBl10MYpgkhGEV1fOsGDE/6lQSYp+e2YvqUPMWHT4JaQrOkM49FizjswrRzJ6KZTgG6ZY90/1GYvAR3/Q== + +"@babel/template@^7.0.0", "@babel/template@^7.18.10": + version "7.18.10" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.18.10.tgz#6f9134835970d1dbf0835c0d100c9f38de0c5e71" + integrity sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA== + dependencies: + "@babel/code-frame" "^7.18.6" + "@babel/parser" "^7.18.10" + "@babel/types" "^7.18.10" + +"@babel/traverse@^7.0.0", "@babel/traverse@^7.18.9", "@babel/traverse@^7.19.0": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.19.0.tgz#eb9c561c7360005c592cc645abafe0c3c4548eed" + integrity sha512-4pKpFRDh+utd2mbRC8JLnlsMUii3PMHjpL6a0SZ4NMZy7YFP9aXORxEhdMVOc9CpWtDF09IkciQLEhK7Ml7gRA== + dependencies: + "@babel/code-frame" "^7.18.6" + "@babel/generator" "^7.19.0" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-function-name" "^7.19.0" + "@babel/helper-hoist-variables" "^7.18.6" + "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/parser" "^7.19.0" + "@babel/types" "^7.19.0" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.16.7", "@babel/types@^7.17.0", "@babel/types@^7.18.0", "@babel/types@^7.18.2": - version "7.18.4" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.18.4.tgz#27eae9b9fd18e9dccc3f9d6ad051336f307be354" - integrity sha512-ThN1mBcMq5pG/Vm2IcBmPPfyPXbd8S02rS+OBIDENdufvqC7Z/jHPCv9IcP01277aKtDI8g/2XysBN4hA8niiw== +"@babel/types@^7.0.0", "@babel/types@^7.18.10", "@babel/types@^7.18.13", "@babel/types@^7.18.6", "@babel/types@^7.18.8", "@babel/types@^7.18.9", "@babel/types@^7.19.0", "@babel/types@^7.6.1", "@babel/types@^7.9.6": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.19.0.tgz#75f21d73d73dc0351f3368d28db73465f4814600" + integrity sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA== dependencies: - "@babel/helper-validator-identifier" "^7.16.7" + "@babel/helper-string-parser" "^7.18.10" + "@babel/helper-validator-identifier" "^7.18.6" to-fast-properties "^2.0.0" "@bcoe/v8-coverage@^0.2.3": @@ -280,14 +286,24 @@ dependencies: mime "^3.0.0" -"@eslint/eslintrc@^1.3.0": - version "1.3.0" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.3.0.tgz#29f92c30bb3e771e4a2048c95fa6855392dfac4f" - integrity sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw== +"@esbuild/linux-loong64@0.14.54": + version "0.14.54" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.14.54.tgz#de2a4be678bd4d0d1ffbb86e6de779cde5999028" + integrity sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw== + +"@esbuild/linux-loong64@0.15.7": + version "0.15.7" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.15.7.tgz#1ec4af4a16c554cbd402cc557ccdd874e3f7be53" + integrity sha512-IKznSJOsVUuyt7cDzzSZyqBEcZe+7WlBqTVXiF1OXP/4Nm387ToaXZ0fyLwI1iBlI/bzpxVq411QE2/Bt2XWWw== + +"@eslint/eslintrc@^1.3.1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.3.1.tgz#de0807bfeffc37b964a7d0400e0c348ce5a2543d" + integrity sha512-OhSY22oQQdw3zgPOOwdoj01l/Dzl1Z+xyUP33tkSN+aqyEhymJCcPHyXt+ylW8FSe0TfRC2VG+ROQOapD0aZSQ== dependencies: ajv "^6.12.4" debug "^4.3.2" - espree "^9.3.2" + espree "^9.4.0" globals "^13.15.0" ignore "^5.2.0" import-fresh "^3.2.1" @@ -295,24 +311,34 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@humanwhocodes/config-array@^0.9.2": - version "0.9.5" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.9.5.tgz#2cbaf9a89460da24b5ca6531b8bbfc23e1df50c7" - integrity sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw== +"@humanwhocodes/config-array@^0.10.4": + version "0.10.4" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.10.4.tgz#01e7366e57d2ad104feea63e72248f22015c520c" + integrity sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw== dependencies: "@humanwhocodes/object-schema" "^1.2.1" debug "^4.1.1" minimatch "^3.0.4" +"@humanwhocodes/gitignore-to-minimatch@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz#316b0a63b91c10e53f242efb4ace5c3b34e8728d" + integrity sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA== + +"@humanwhocodes/module-importer@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" + integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== + "@humanwhocodes/object-schema@^1.2.1": version "1.2.1" resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== "@ioredis/commands@^1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@ioredis/commands/-/commands-1.1.1.tgz#2ba4299ea624a6bfac15b35f6df90b0015691ec3" - integrity sha512-fsR4P/ROllzf/7lXYyElUJCheWdTJVJvOTps8v9IWKFATxR61ANOlnoPqhH099xYLrJGpc2ZQ28B3rMeUt5VQg== + version "1.2.0" + resolved "https://registry.yarnpkg.com/@ioredis/commands/-/commands-1.2.0.tgz#6d61b3097470af1fdbbe622795b8921d42018e11" + integrity sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg== "@istanbuljs/schema@^0.1.2", "@istanbuljs/schema@^0.1.3": version "0.1.3" @@ -327,24 +353,24 @@ "@jridgewell/set-array" "^1.0.0" "@jridgewell/sourcemap-codec" "^1.4.10" -"@jridgewell/gen-mapping@^0.3.0": - version "0.3.1" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz#cf92a983c83466b8c0ce9124fadeaf09f7c66ea9" - integrity sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg== +"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": + version "0.3.2" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9" + integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A== dependencies: - "@jridgewell/set-array" "^1.0.0" + "@jridgewell/set-array" "^1.0.1" "@jridgewell/sourcemap-codec" "^1.4.10" "@jridgewell/trace-mapping" "^0.3.9" "@jridgewell/resolve-uri@^3.0.3": - version "3.0.7" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz#30cd49820a962aff48c8fffc5cd760151fca61fe" - integrity sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA== + version "3.1.0" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" + integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== -"@jridgewell/set-array@^1.0.0": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.1.tgz#36a6acc93987adcf0ba50c66908bd0b70de8afea" - integrity sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ== +"@jridgewell/set-array@^1.0.0", "@jridgewell/set-array@^1.0.1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" + integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== "@jridgewell/source-map@^0.3.2": version "0.3.2" @@ -355,22 +381,22 @@ "@jridgewell/trace-mapping" "^0.3.9" "@jridgewell/sourcemap-codec@^1.4.10": - version "1.4.13" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz#b6461fb0c2964356c469e115f504c95ad97ab88c" - integrity sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w== + version "1.4.14" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" + integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== -"@jridgewell/trace-mapping@^0.3.7", "@jridgewell/trace-mapping@^0.3.9": - version "0.3.13" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz#dcfe3e95f224c8fe97a87a5235defec999aa92ea" - integrity sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w== +"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.9": + version "0.3.15" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz#aba35c48a38d3fd84b37e66c9c0423f9744f9774" + integrity sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g== dependencies: "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" "@mapbox/node-pre-gyp@^1.0.5": - version "1.0.9" - resolved "https://registry.yarnpkg.com/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.9.tgz#09a8781a3a036151cdebbe8719d6f8b25d4058bc" - integrity sha512-aDF3S3rK9Q2gey/WAttUlISduDItz5BU3306M9Eyv6/oS40aMprnopshtlKTykxRNIBEZuRMaZAnbrQ4QtKGyw== + version "1.0.10" + resolved "https://registry.yarnpkg.com/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.10.tgz#8e6735ccebbb1581e5a7e652244cadc8a844d03c" + integrity sha512-4ySo4CjzStuprMwk35H5pPbkymjv1SF3jGLj6rAHp/xT/RF7TL7bd9CTm1xDY49K2qF7jmR/g7k+SkLETP6opA== dependencies: detect-libc "^2.0.0" https-proxy-agent "^5.0.0" @@ -382,10 +408,10 @@ semver "^7.3.5" tar "^6.1.11" -"@netlify/functions@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@netlify/functions/-/functions-1.0.0.tgz#5b6c02fafc567033c93b15a080cc021e5f10f254" - integrity sha512-7fnJv3vr8uyyyOYPChwoec6MjzsCw1CoRUO2DhQ1BD6bOyJRlD4DUaOOGlMILB2LCT8P24p5LexEGx8AJb7xdA== +"@netlify/functions@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@netlify/functions/-/functions-1.2.0.tgz#0acce06db94113d2a42253930c45cb69ab97c530" + integrity sha512-zCOJPoZQLv4ISHjyBS7asqzR6Y9NU+Vb0VKYDD0xUwYmReMhLTDchjGMkt5x0Jk1EVnJwUvA29rGyQEj3tIgAA== dependencies: is-promise "^4.0.0" @@ -415,77 +441,29 @@ resolved "https://registry.yarnpkg.com/@nuxt/devalue/-/devalue-2.0.0.tgz#c7bd7e9a516514e612d5d2e511ffc399e0eac322" integrity sha512-YBI/6o2EBz02tdEJRBK8xkt3zvOFOWlLBf7WKYGBsSYSRtjjgrqPe2skp6VLLmKx5WbHHDNcW+6oACaurxGzeA== -"@nuxt/kit@3.0.0-rc.1": - version "3.0.0-rc.1" - resolved "https://registry.yarnpkg.com/@nuxt/kit/-/kit-3.0.0-rc.1.tgz#c6197351970d85eecb17d646667178ecefb2b955" - integrity sha512-S2x0zdLYLZ4/2lMnS6emSmFPJszPJf70Y4/8gpmkPb4TArEjPNaOTCIz7tKpj/Upo71fv7cfuwYw/X0F2UAntg== - dependencies: - "@nuxt/schema" "^3.0.0-rc.1" - c12 "^0.2.7" - consola "^2.15.3" - defu "^6.0.0" - globby "^13.1.1" - hash-sum "^2.0.0" - ignore "^5.2.0" - jiti "^1.13.0" - knitwork "^0.1.1" - lodash.template "^4.5.0" - mlly "^0.5.2" - pathe "^0.2.0" - pkg-types "^0.3.2" - scule "^0.2.1" - semver "^7.3.7" - unctx "^1.1.4" - unimport "^0.1.6" - untyped "^0.4.4" - -"@nuxt/kit@^3.0.0-rc.3": - version "3.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@nuxt/kit/-/kit-3.0.0-rc.3.tgz#9bbedf5be268578d4002766be8eb59b976892cc6" - integrity sha512-aD993HKXZ76cwxkM2LCwWRQaOI3RjLCg/kj+8ZS6qN4VrpwrZp4xM59YYIYs3/Vze4OG3D4+0gr0u5zdgf8v8g== - dependencies: - "@nuxt/schema" "^3.0.0-rc.3" - c12 "^0.2.7" - consola "^2.15.3" - defu "^6.0.0" - globby "^13.1.1" - hash-sum "^2.0.0" - ignore "^5.2.0" - jiti "^1.13.0" - knitwork "^0.1.1" - lodash.template "^4.5.0" - mlly "^0.5.2" - pathe "^0.3.0" - pkg-types "^0.3.2" - scule "^0.2.1" - semver "^7.3.7" - unctx "^1.1.4" - unimport "^0.1.9" - untyped "^0.4.4" - -"@nuxt/kit@npm:@nuxt/kit-edge@3.0.0-rc.3-27550969.a4a3cff": - version "3.0.0-rc.3-27550969.a4a3cff" - resolved "https://registry.yarnpkg.com/@nuxt/kit-edge/-/kit-edge-3.0.0-rc.3-27550969.a4a3cff.tgz#a43721d514d674b251b198f5b1b2659edd00c44d" - integrity sha512-2+ki7Vp4geHFVHI8DAkRphR5jnXq420JuPSITsgxnPXEkg2Fz1/LrbI4cO6j4UyKQyjUK7TaF+lEqsEj/Lms8w== +"@nuxt/kit@3.0.0-rc.9", "@nuxt/kit@^3.0.0-rc.3", "@nuxt/kit@^3.0.0-rc.9": + version "3.0.0-rc.9" + resolved "https://registry.yarnpkg.com/@nuxt/kit/-/kit-3.0.0-rc.9.tgz#05d9721a7b7bf8538cd6f501ed0692cf0171bc2f" + integrity sha512-Y+db0iw/1pKiLMEG7L/6HCq8O9xsbVJT/ksePY1Q8o3fV40Q9gCWI0YumCIzVdBiAFFEOCNASsxmGj7kPSdpCA== dependencies: - "@nuxt/schema" "npm:@nuxt/schema-edge@3.0.0-rc.3-27550969.a4a3cff" - c12 "^0.2.7" + "@nuxt/schema" "3.0.0-rc.9" + c12 "^0.2.10" consola "^2.15.3" - defu "^6.0.0" - globby "^13.1.1" + defu "^6.1.0" + globby "^13.1.2" hash-sum "^2.0.0" ignore "^5.2.0" - jiti "^1.13.0" - knitwork "^0.1.1" + jiti "^1.14.0" + knitwork "^0.1.2" lodash.template "^4.5.0" - mlly "^0.5.2" - pathe "^0.3.0" - pkg-types "^0.3.2" - scule "^0.2.1" + mlly "^0.5.14" + pathe "^0.3.5" + pkg-types "^0.3.4" + scule "^0.3.2" semver "^7.3.7" - unctx "^1.1.4" - unimport "^0.2.1" - untyped "^0.4.4" + unctx "^2.0.2" + unimport "^0.6.7" + untyped "^0.4.7" "@nuxt/module-builder@^0.1.7": version "0.1.7" @@ -498,120 +476,109 @@ pathe "^0.2.0" unbuild "^0.6.7" -"@nuxt/schema@^3.0.0-rc.1", "@nuxt/schema@^3.0.0-rc.3": - version "3.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@nuxt/schema/-/schema-3.0.0-rc.3.tgz#8664535a91e0923a12e19e69f3e396a74c9e4ed9" - integrity sha512-vICmOpIk8SjVVUN+MadAMMF/MEXqPgY3jquSjSkmWdydtMOBoxrBpl+5nkpJCtsCq5KJAK8WI+9SCNIkEASCgw== +"@nuxt/schema@3.0.0-rc.9", "@nuxt/schema@^3.0.0-rc.9": + version "3.0.0-rc.9" + resolved "https://registry.yarnpkg.com/@nuxt/schema/-/schema-3.0.0-rc.9.tgz#5f3f151c08d531e11583abd95c3822fe13385488" + integrity sha512-oxrsJE3v7WC8tqTPxutK4LFxR/6u00Zt2PfPm1XTWwx8fojDk4C5iCv5mxydHwXffsIp5JeP5hddd/oqnbDSpQ== dependencies: - c12 "^0.2.7" + c12 "^0.2.10" create-require "^1.1.1" - defu "^6.0.0" - jiti "^1.13.0" - pathe "^0.3.0" - postcss-import-resolver "^2.0.0" - scule "^0.2.1" - std-env "^3.1.1" - ufo "^0.8.4" - unimport "^0.1.9" - -"@nuxt/schema@npm:@nuxt/schema-edge@3.0.0-rc.3-27550969.a4a3cff": - version "3.0.0-rc.3-27550969.a4a3cff" - resolved "https://registry.yarnpkg.com/@nuxt/schema-edge/-/schema-edge-3.0.0-rc.3-27550969.a4a3cff.tgz#76b8858dbe68abd18bcc06d8cd71440696c6cdb1" - integrity sha512-Udh2DDfTHpMzCXPBvI0YR1zby59FkGGFFmaIficMu0xyEI5M8fJVrNMDtu+Shj0iHuKC7qlgkUZ1FLpKlJzEEQ== - dependencies: - c12 "^0.2.7" - create-require "^1.1.1" - defu "^6.0.0" - jiti "^1.13.0" - pathe "^0.3.0" + defu "^6.1.0" + jiti "^1.14.0" + pathe "^0.3.5" postcss-import-resolver "^2.0.0" - scule "^0.2.1" - std-env "^3.1.1" - ufo "^0.8.4" - unimport "^0.2.1" + scule "^0.3.2" + std-env "^3.2.1" + ufo "^0.8.5" + unimport "^0.6.7" -"@nuxt/telemetry@^2.1.3": - version "2.1.3" - resolved "https://registry.yarnpkg.com/@nuxt/telemetry/-/telemetry-2.1.3.tgz#0ecc8fed684db835bcf2f7e5a0bebef54e43d294" - integrity sha512-k8wP3D17di27/loe35GZEqXyabG/045tFD1CipmG9MOnZdwf6WeL+gFEXzIaDeDFVLmbI1bnddOk+RutxeIjVA== +"@nuxt/telemetry@^2.1.4": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@nuxt/telemetry/-/telemetry-2.1.5.tgz#987c16ab11a4406cbb4b3111359b7f197451fd71" + integrity sha512-Goi35DKG0Na7k/lPcaZkEvb+TWPdXKtyRixvcMMtvdbzjqGD/+gMy9BtHuS051LxdVZBNWBFyGVwT+DqlkVZKw== dependencies: - "@nuxt/kit" "3.0.0-rc.1" + "@nuxt/kit" "^3.0.0-rc.9" chalk "^5.0.1" - ci-info "^3.3.0" + ci-info "^3.3.2" consola "^2.15.3" create-require "^1.1.1" - defu "^6.0.0" + defu "^6.1.0" destr "^1.1.1" - dotenv "^16.0.0" + dotenv "^16.0.2" fs-extra "^10.1.0" - git-url-parse "^11.6.0" - inquirer "^8.2.2" + git-url-parse "^13.0.0" + inquirer "^9.1.1" is-docker "^3.0.0" - jiti "^1.13.0" + jiti "^1.14.0" mri "^1.2.0" - nanoid "^3.3.3" - node-fetch "^3.2.3" - ohmyfetch "^0.4.15" + nanoid "^4.0.0" + node-fetch "^3.2.10" + ohmyfetch "^0.4.18" parse-git-config "^3.0.0" rc9 "^1.2.2" - std-env "^3.1.1" + std-env "^3.2.1" -"@nuxt/test-utils@npm:@nuxt/test-utils-edge@latest": - version "3.0.0-rc.3-27550969.a4a3cff" - resolved "https://registry.yarnpkg.com/@nuxt/test-utils-edge/-/test-utils-edge-3.0.0-rc.3-27550969.a4a3cff.tgz#c39a89deb2157a4d8345f0bf5522f30a389a50f9" - integrity sha512-uP1cwfoyN+6HKaqdObL+Hw6Tt3n29b1OY1xLgpH+Zz0FOZHNgmeIHdTOsHsCKD0L3d3uDpZHy93CxcW+KBvBrg== +"@nuxt/test-utils@^3.0.0-rc.9": + version "3.0.0-rc.9" + resolved "https://registry.yarnpkg.com/@nuxt/test-utils/-/test-utils-3.0.0-rc.9.tgz#a460d7cc57164aa5445ec757f2bf2e1716652ebb" + integrity sha512-q7UTiP2td1GWTFSIFlO0XA49mNMMt7VGDWdpW8kzuVBrP2ty8J+YFBO554kosKMQQ9/wmXWSFbGbGneC3uyNXQ== dependencies: - "@nuxt/kit" "npm:@nuxt/kit-edge@3.0.0-rc.3-27550969.a4a3cff" - "@nuxt/schema" "npm:@nuxt/schema-edge@3.0.0-rc.3-27550969.a4a3cff" - defu "^6.0.0" + "@nuxt/kit" "3.0.0-rc.9" + "@nuxt/schema" "3.0.0-rc.9" + defu "^6.1.0" execa "^6.1.0" - get-port-please "^2.5.0" - jiti "^1.13.0" + get-port-please "^2.6.1" + jiti "^1.14.0" ohmyfetch "^0.4.18" -"@nuxt/ui-templates@^0.1.1": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@nuxt/ui-templates/-/ui-templates-0.1.1.tgz#78725509b078ff874ac8ea0aed82d4e0eee0662c" - integrity sha512-ejiWi7RJfUp71K5IRpfrhoiZcvxhn1K+YH5mWdwwCT7jeQyE+Ok6WdFMpSg4LYy8YsVw6XHr5I+g23OCebc24w== +"@nuxt/ui-templates@^0.3.2": + version "0.3.3" + resolved "https://registry.yarnpkg.com/@nuxt/ui-templates/-/ui-templates-0.3.3.tgz#036af24dc536f1bce3cd3a89d64d4ea087bc2a9e" + integrity sha512-EgxICRWv+VCkt3wjCuJUJqNOFACF3h6FX3Mj+hDXshf6ECvl/y8BWEVGC5T2N8tE/bFcNC6rEJxPsp4s+4+XOQ== -"@nuxt/vite-builder@^3.0.0-rc.3": - version "3.0.0-rc.3" - resolved "https://registry.yarnpkg.com/@nuxt/vite-builder/-/vite-builder-3.0.0-rc.3.tgz#f8b4f463f0aedbcdc17356579a34c8cda67b123e" - integrity sha512-C1IPoUADHYWvlNHJIJzj1gm+rqCVYqbJ+YeKANG118TtVa1mB2t9R+FgMO4AE/oOfmd4nUrbNDPreUoIBaL6kg== +"@nuxt/vite-builder@3.0.0-rc.9": + version "3.0.0-rc.9" + resolved "https://registry.yarnpkg.com/@nuxt/vite-builder/-/vite-builder-3.0.0-rc.9.tgz#efef58ae2093d522f0f94164ebfd69f0609ea735" + integrity sha512-6tHUNKiGQVxGypq5qfr4wqv81+Dt/X0dRceeMZOB1pGdz+KgWGqRbXDILeRXH+R7Ew8c5XuNXdA7g6E9vxmvow== dependencies: - "@nuxt/kit" "^3.0.0-rc.3" - "@vitejs/plugin-vue" "^2.3.2" - "@vitejs/plugin-vue-jsx" "^1.3.10" - autoprefixer "^10.4.7" + "@nuxt/kit" "3.0.0-rc.9" + "@rollup/plugin-replace" "^4.0.0" + "@vitejs/plugin-vue" "^3.0.3" + "@vitejs/plugin-vue-jsx" "^2.0.1" + autoprefixer "^10.4.8" chokidar "^3.5.3" - cssnano "^5.1.7" - defu "^6.0.0" - esbuild "^0.14.38" + cssnano "^5.1.13" + defu "^6.1.0" + esbuild "^0.15.6" escape-string-regexp "^5.0.0" - externality "^0.2.1" + estree-walker "^3.0.1" + externality "^0.2.2" fs-extra "^10.1.0" - get-port-please "^2.5.0" - h3 "^0.7.8" - knitwork "^0.1.1" - magic-string "^0.26.1" - mlly "^0.5.2" - pathe "^0.3.0" + get-port-please "^2.6.1" + h3 "^0.7.19" + knitwork "^0.1.2" + magic-string "^0.26.3" + mlly "^0.5.14" + ohash "^0.1.5" + pathe "^0.3.5" perfect-debounce "^0.1.3" - postcss "^8.4.13" - postcss-import "^14.1.0" + pkg-types "^0.3.4" + postcss "^8.4.16" + postcss-import "^15.0.0" postcss-url "^10.1.3" - rollup "^2.72.1" - rollup-plugin-visualizer "^5.6.0" - ufo "^0.8.4" - unplugin "^0.6.3" - vite "^2.9.8" - vite-node "^0.12.1" - vite-plugin-checker "^0.4.6" + rollup "^2.79.0" + rollup-plugin-visualizer "^5.8.0" + ufo "^0.8.5" + unplugin "^0.9.2" + vite "~3.0.9" + vite-node "^0.22.1" + vite-plugin-checker "^0.5.0" + vue-bundle-renderer "^0.4.2" "@nuxthq/admin@npm:@nuxthq/admin-edge@latest": - version "0.0.1-27556623.cee307a" - resolved "https://registry.yarnpkg.com/@nuxthq/admin-edge/-/admin-edge-0.0.1-27556623.cee307a.tgz#8beb83982308e451f16f30f0a000695fb11392d5" - integrity sha512-y8ivZ630z77J7N+muBV/K3Y80LA7qhWL1nQqw47tX7eYIlimEnc4Lc9mU3U6koqCn8uyxE+4eBNT+8M4xSoahA== + version "0.0.1-27627055.9933660" + resolved "https://registry.yarnpkg.com/@nuxthq/admin-edge/-/admin-edge-0.0.1-27627055.9933660.tgz#103850977a1b1cc9e5a0321d474446e1fec28616" + integrity sha512-H4kOUOk+4t3BUY2wSaFAzPS+I/REblNOTJT35kchHQGEMEB0ScVswctN4kMClZ0PS1XXIo380o0Zo84I4qVq0g== dependencies: "@nuxt/kit" "^3.0.0-rc.3" nuxt-component-meta "^0.1.5" @@ -619,28 +586,40 @@ unstorage "^0.4.1" "@nuxtjs/eslint-config-typescript@latest": - version "10.0.0" - resolved "https://registry.yarnpkg.com/@nuxtjs/eslint-config-typescript/-/eslint-config-typescript-10.0.0.tgz#08eab1c450b34d4da88b81ede81b549318e4b2d6" - integrity sha512-DaFjb0IPOq5MhdPs/5h0+kUmjQ6sVSMo3mrEuuAY3r2NUWmVSWEFrlUCqx0S0pHvjBXS4MfwBWS/oWPs41aQeA== - dependencies: - "@nuxtjs/eslint-config" "10.0.0" - "@typescript-eslint/eslint-plugin" "^5.21.0" - "@typescript-eslint/parser" "^5.21.0" - eslint-import-resolver-typescript "^2.7.1" + version "11.0.0" + resolved "https://registry.yarnpkg.com/@nuxtjs/eslint-config-typescript/-/eslint-config-typescript-11.0.0.tgz#748a0cc063a5cf93ec52dc2d5a2ed94309cacb5b" + integrity sha512-hmFjGtXT524ql8eTbK8BaRkamcXB6Z8YOW8nSQhosTP6oBw9WtOFUeWr7holyE278UhOmx+wDFG90BnyM9D+UA== + dependencies: + "@nuxtjs/eslint-config" "^11.0.0" + "@typescript-eslint/eslint-plugin" "^5.36.1" + "@typescript-eslint/parser" "^5.36.1" + eslint-import-resolver-typescript "^3.5.0" eslint-plugin-import "^2.26.0" -"@nuxtjs/eslint-config@10.0.0": - version "10.0.0" - resolved "https://registry.yarnpkg.com/@nuxtjs/eslint-config/-/eslint-config-10.0.0.tgz#6b4a9ad3bcdcc7d24314c86812ddb471e4879f53" - integrity sha512-5umb4Nyd/D9azWyFPGe3ru0E5v8SSVzgtZeJwTaCpqjsQDrr51P7QPtBTVdJXIbhdY1lws67x9Emkb7oKwh4zw== +"@nuxtjs/eslint-config@^11.0.0": + version "11.0.0" + resolved "https://registry.yarnpkg.com/@nuxtjs/eslint-config/-/eslint-config-11.0.0.tgz#92f5d927ef39099de4f52ab73e01bb28be3ff8c2" + integrity sha512-o4zFOpU8gJgwrC/gLE7c2E0XEjkv2fEixCGG1y+dZYzBPyzTorkQmfxskSF3WRXcZkpkS9uUYlRkeOSdYB7z0w== dependencies: eslint-config-standard "^17.0.0" eslint-plugin-import "^2.26.0" - eslint-plugin-n "^15.2.0" + eslint-plugin-n "^15.2.5" eslint-plugin-node "^11.1.0" - eslint-plugin-promise "^6.0.0" - eslint-plugin-unicorn "^42.0.0" - eslint-plugin-vue "^8.7.1" + eslint-plugin-promise "^6.0.1" + eslint-plugin-unicorn "^43.0.2" + eslint-plugin-vue "^9.4.0" + +"@pkgr/utils@^2.3.1": + version "2.3.1" + resolved "https://registry.yarnpkg.com/@pkgr/utils/-/utils-2.3.1.tgz#0a9b06ffddee364d6642b3cd562ca76f55b34a03" + integrity sha512-wfzX8kc1PMyUILA+1Z/EqoE4UCXGy0iRGMhPwdfae1+f0OXlLqCk+By+aMzgJBzR9AzS4CDizioG6Ss1gvAFJw== + dependencies: + cross-spawn "^7.0.3" + is-glob "^4.0.3" + open "^8.4.0" + picocolors "^1.0.0" + tiny-glob "^0.2.9" + tslib "^2.4.0" "@rollup/plugin-alias@^3.1.9": version "3.1.9" @@ -662,10 +641,10 @@ magic-string "^0.25.7" resolve "^1.17.0" -"@rollup/plugin-commonjs@^22.0.0": - version "22.0.0" - resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-22.0.0.tgz#f4d87016e2fbf187a593ab9f46626fe05b59e8bd" - integrity sha512-Ktvf2j+bAO+30awhbYoCaXpBcyPmJbaEUYClQns/+6SNCYFURbvBiNbWgHITEsIgDDWCDUclWRKEuf8cwZCFoQ== +"@rollup/plugin-commonjs@^22.0.2": + version "22.0.2" + resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-22.0.2.tgz#ee8ca8415cda30d383b4096aad5222435b4b69b6" + integrity sha512-//NdP6iIwPbMTcazYsiBMbJW7gfmpHom33u1beiIoHDEM0Q9clvtQB1T0efvMqHeKsGohiHo97BCPCkBXdscwg== dependencies: "@rollup/pluginutils" "^3.1.0" commondir "^1.0.1" @@ -733,7 +712,7 @@ estree-walker "^1.0.1" picomatch "^2.2.2" -"@rollup/pluginutils@^4.1.1", "@rollup/pluginutils@^4.1.2", "@rollup/pluginutils@^4.2.0", "@rollup/pluginutils@^4.2.1": +"@rollup/pluginutils@^4.1.1", "@rollup/pluginutils@^4.1.2", "@rollup/pluginutils@^4.2.1": version "4.2.1" resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-4.2.1.tgz#e6c6c3aba0744edce3fb2074922d3776c0af2a6d" integrity sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ== @@ -741,16 +720,38 @@ estree-walker "^2.0.1" picomatch "^2.2.2" +"@sindresorhus/is@^4.0.0": + version "4.6.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.6.0.tgz#3c7c9c46e678feefe7a2e5bb609d3dbd665ffb3f" + integrity sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw== + "@socket.io/component-emitter@~3.1.0": version "3.1.0" resolved "https://registry.yarnpkg.com/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz#96116f2a912e0c02817345b3c10751069920d553" integrity sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg== +"@szmarczak/http-timer@^4.0.5": + version "4.0.6" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.6.tgz#b4a914bb62e7c272d4e5989fe4440f812ab1d807" + integrity sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w== + dependencies: + defer-to-connect "^2.0.0" + "@trysound/sax@0.2.0": version "0.2.0" resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad" integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA== +"@types/cacheable-request@^6.0.1": + version "6.0.2" + resolved "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.2.tgz#c324da0197de0a98a2312156536ae262429ff6b9" + integrity sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA== + dependencies: + "@types/http-cache-semantics" "*" + "@types/keyv" "*" + "@types/node" "*" + "@types/responselike" "*" + "@types/chai-subset@^1.3.3": version "1.3.3" resolved "https://registry.yarnpkg.com/@types/chai-subset/-/chai-subset-1.3.3.tgz#97893814e92abd2c534de422cb377e0e0bdaac94" @@ -758,10 +759,10 @@ dependencies: "@types/chai" "*" -"@types/chai@*", "@types/chai@^4.3.1": - version "4.3.1" - resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.1.tgz#e2c6e73e0bdeb2521d00756d099218e9f5d90a04" - integrity sha512-/zPMqDkzSZ8t3VtxOa4KPq7uzzW978M9Tvh+j7GHKuo6k6GTLxPJ4J5gE5cjfJ26pnXst0N5Hax8Sr0T2Mi9zQ== +"@types/chai@*", "@types/chai@^4.3.3": + version "4.3.3" + resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.3.tgz#3c90752792660c4b562ad73b3fbd68bf3bc7ae07" + integrity sha512-hC7OMnszpxhZPduX+m+nrx+uFoLkWOMiR4oa/AZF3MuSETYTZmFfJAHqZEM8MVlvfG7BEUcgvtwoCTxBp6hm3g== "@types/debug@^4.0.0": version "4.1.7" @@ -771,20 +772,15 @@ "@types/ms" "*" "@types/estree@*": - version "0.0.51" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.51.tgz#cfd70924a25a3fd32b218e5e420e6897e1ac4f40" - integrity sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ== + version "1.0.0" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.0.tgz#5fb2e536c1ae9bf35366eed879e827fa59ca41c2" + integrity sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ== "@types/estree@0.0.39": version "0.0.39" resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== -"@types/flat@^5.0.2": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@types/flat/-/flat-5.0.2.tgz#642a51a037d1f52fda082312b0e4566dc09a9f8f" - integrity sha512-3zsplnP2djeps5P9OyarTxwRpMLoe5Ash8aL9iprw0JxB+FAHjY+ifn4yZUuW4/9hqtnmor6uvjSRzJhiVbrEQ== - "@types/hast@^2.0.0": version "2.3.4" resolved "https://registry.yarnpkg.com/@types/hast/-/hast-2.3.4.tgz#8aa5ef92c117d20d974a82bdfb6a648b08c0bafc" @@ -792,20 +788,16 @@ dependencies: "@types/unist" "*" +"@types/http-cache-semantics@*": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz#0ea7b61496902b95890dc4c3a116b60cb8dae812" + integrity sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ== + "@types/istanbul-lib-coverage@^2.0.1": version "2.0.4" resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz#8467d4b3c087805d63580480890791277ce35c44" integrity sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g== -"@types/jsdom@^16.2.14": - version "16.2.14" - resolved "https://registry.yarnpkg.com/@types/jsdom/-/jsdom-16.2.14.tgz#26fe9da6a8870715b154bb84cd3b2e53433d8720" - integrity sha512-6BAy1xXEmMuHeAJ4Fv4yXKwBDTGTOseExKE3OaHiNycdHdZw59KfYzrt0DkDluvwmik1HRt6QS7bImxUmpSy+w== - dependencies: - "@types/node" "*" - "@types/parse5" "*" - "@types/tough-cookie" "*" - "@types/json-schema@^7.0.9": version "7.0.11" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" @@ -816,6 +808,13 @@ resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== +"@types/keyv@*": + version "3.1.4" + resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.4.tgz#3ccdb1c6751b0c7e52300bcdacd5bcbf8faa75b6" + integrity sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg== + dependencies: + "@types/node" "*" + "@types/mdast@^3.0.0": version "3.0.10" resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-3.0.10.tgz#4724244a82a4598884cbbe9bcfd73dff927ee8af" @@ -834,16 +833,16 @@ integrity sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA== "@types/node@*": - version "17.0.36" - resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.36.tgz#c0d5f2fe76b47b63e0e0efc3d2049a9970d68794" - integrity sha512-V3orv+ggDsWVHP99K3JlwtH20R7J4IhI1Kksgc+64q5VxgfRkQG8Ws3MFm/FZOKDYGy9feGFlZ70/HpCNe9QaA== + version "18.7.15" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.7.15.tgz#20ae1ec80c57ee844b469f968a1cd511d4088b29" + integrity sha512-XnjpaI8Bgc3eBag2Aw4t2Uj/49lLBSStHWfqKvIuXD7FIrZyMLWp8KuAFHAqxMZYTF9l08N1ctUn9YNybZJVmQ== "@types/normalize-package-data@^2.4.0": version "2.4.1" resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301" integrity sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw== -"@types/parse5@*", "@types/parse5@^6.0.0": +"@types/parse5@^6.0.0": version "6.0.3" resolved "https://registry.yarnpkg.com/@types/parse5/-/parse5-6.0.3.tgz#705bb349e789efa06f43f128cef51240753424cb" integrity sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g== @@ -855,10 +854,19 @@ dependencies: "@types/node" "*" -"@types/tough-cookie@*": - version "4.0.2" - resolved "https://registry.yarnpkg.com/@types/tough-cookie/-/tough-cookie-4.0.2.tgz#6286b4c7228d58ab7866d19716f3696e03a09397" - integrity sha512-Q5vtl1W5ue16D+nIaW8JWebSSraJVlK+EthKn7e7UcD4KWsaSJ8BqGPXNaPghgtcn/fhvrN17Tv8ksUsQpiplw== +"@types/responselike@*": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-3.0.0.tgz#5ecc1fc88552e5ac03de648a7796f9e125d002dc" + integrity sha512-zfgGLWx5IQOTJgQPD4UfGEhapTKUPC1ra/QCG02y3GUJWrhX05bBf/EfTh3aFj2DKi7cLo+cipXLNclD27tQXQ== + dependencies: + responselike "*" + +"@types/responselike@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.0.tgz#251f4fe7d154d2bad125abe1b429b23afd262e29" + integrity sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA== + dependencies: + "@types/node" "*" "@types/unist@*", "@types/unist@^2.0.0": version "2.0.6" @@ -872,14 +880,14 @@ dependencies: "@types/node" "*" -"@typescript-eslint/eslint-plugin@^5.21.0": - version "5.27.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.27.0.tgz#23d82a4f21aaafd8f69dbab7e716323bb6695cc8" - integrity sha512-DDrIA7GXtmHXr1VCcx9HivA39eprYBIFxbQEHI6NyraRDxCGpxAFiYQAT/1Y0vh1C+o2vfBiy4IuPoXxtTZCAQ== +"@typescript-eslint/eslint-plugin@^5.36.1": + version "5.36.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.36.2.tgz#6df092a20e0f9ec748b27f293a12cb39d0c1fe4d" + integrity sha512-OwwR8LRwSnI98tdc2z7mJYgY60gf7I9ZfGjN5EjCwwns9bdTuQfAXcsjSB2wSQ/TVNYSGKf4kzVXbNGaZvwiXw== dependencies: - "@typescript-eslint/scope-manager" "5.27.0" - "@typescript-eslint/type-utils" "5.27.0" - "@typescript-eslint/utils" "5.27.0" + "@typescript-eslint/scope-manager" "5.36.2" + "@typescript-eslint/type-utils" "5.36.2" + "@typescript-eslint/utils" "5.36.2" debug "^4.3.4" functional-red-black-tree "^1.0.1" ignore "^5.2.0" @@ -887,104 +895,103 @@ semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/parser@^5.21.0": - version "5.27.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.27.0.tgz#62bb091ed5cf9c7e126e80021bb563dcf36b6b12" - integrity sha512-8oGjQF46c52l7fMiPPvX4It3u3V3JipssqDfHQ2hcR0AeR8Zge+OYyKUCm5b70X72N1qXt0qgHenwN6Gc2SXZA== +"@typescript-eslint/parser@^5.36.1": + version "5.36.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.36.2.tgz#3ddf323d3ac85a25295a55fcb9c7a49ab4680ddd" + integrity sha512-qS/Kb0yzy8sR0idFspI9Z6+t7mqk/oRjnAYfewG+VN73opAUvmYL3oPIMmgOX6CnQS6gmVIXGshlb5RY/R22pA== dependencies: - "@typescript-eslint/scope-manager" "5.27.0" - "@typescript-eslint/types" "5.27.0" - "@typescript-eslint/typescript-estree" "5.27.0" + "@typescript-eslint/scope-manager" "5.36.2" + "@typescript-eslint/types" "5.36.2" + "@typescript-eslint/typescript-estree" "5.36.2" debug "^4.3.4" -"@typescript-eslint/scope-manager@5.27.0": - version "5.27.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.27.0.tgz#a272178f613050ed62f51f69aae1e19e870a8bbb" - integrity sha512-VnykheBQ/sHd1Vt0LJ1JLrMH1GzHO+SzX6VTXuStISIsvRiurue/eRkTqSrG0CexHQgKG8shyJfR4o5VYioB9g== +"@typescript-eslint/scope-manager@5.36.2": + version "5.36.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.36.2.tgz#a75eb588a3879ae659514780831370642505d1cd" + integrity sha512-cNNP51L8SkIFSfce8B1NSUBTJTu2Ts4nWeWbFrdaqjmn9yKrAaJUBHkyTZc0cL06OFHpb+JZq5AUHROS398Orw== dependencies: - "@typescript-eslint/types" "5.27.0" - "@typescript-eslint/visitor-keys" "5.27.0" + "@typescript-eslint/types" "5.36.2" + "@typescript-eslint/visitor-keys" "5.36.2" -"@typescript-eslint/type-utils@5.27.0": - version "5.27.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.27.0.tgz#36fd95f6747412251d79c795b586ba766cf0974b" - integrity sha512-vpTvRRchaf628Hb/Xzfek+85o//zEUotr1SmexKvTfs7czXfYjXVT/a5yDbpzLBX1rhbqxjDdr1Gyo0x1Fc64g== +"@typescript-eslint/type-utils@5.36.2": + version "5.36.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.36.2.tgz#752373f4babf05e993adf2cd543a763632826391" + integrity sha512-rPQtS5rfijUWLouhy6UmyNquKDPhQjKsaKH0WnY6hl/07lasj8gPaH2UD8xWkePn6SC+jW2i9c2DZVDnL+Dokw== dependencies: - "@typescript-eslint/utils" "5.27.0" + "@typescript-eslint/typescript-estree" "5.36.2" + "@typescript-eslint/utils" "5.36.2" debug "^4.3.4" tsutils "^3.21.0" -"@typescript-eslint/types@5.27.0": - version "5.27.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.27.0.tgz#c3f44b9dda6177a9554f94a74745ca495ba9c001" - integrity sha512-lY6C7oGm9a/GWhmUDOs3xAVRz4ty/XKlQ2fOLr8GAIryGn0+UBOoJDWyHer3UgrHkenorwvBnphhP+zPmzmw0A== +"@typescript-eslint/types@5.36.2": + version "5.36.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.36.2.tgz#a5066e500ebcfcee36694186ccc57b955c05faf9" + integrity sha512-9OJSvvwuF1L5eS2EQgFUbECb99F0mwq501w0H0EkYULkhFa19Qq7WFbycdw1PexAc929asupbZcgjVIe6OK/XQ== -"@typescript-eslint/typescript-estree@5.27.0": - version "5.27.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.27.0.tgz#7965f5b553c634c5354a47dcce0b40b94611e995" - integrity sha512-QywPMFvgZ+MHSLRofLI7BDL+UczFFHyj0vF5ibeChDAJgdTV8k4xgEwF0geFhVlPc1p8r70eYewzpo6ps+9LJQ== +"@typescript-eslint/typescript-estree@5.36.2": + version "5.36.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.36.2.tgz#0c93418b36c53ba0bc34c61fe9405c4d1d8fe560" + integrity sha512-8fyH+RfbKc0mTspfuEjlfqA4YywcwQK2Amcf6TDOwaRLg7Vwdu4bZzyvBZp4bjt1RRjQ5MDnOZahxMrt2l5v9w== dependencies: - "@typescript-eslint/types" "5.27.0" - "@typescript-eslint/visitor-keys" "5.27.0" + "@typescript-eslint/types" "5.36.2" + "@typescript-eslint/visitor-keys" "5.36.2" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/utils@5.27.0": - version "5.27.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.27.0.tgz#d0021cbf686467a6a9499bd0589e19665f9f7e71" - integrity sha512-nZvCrkIJppym7cIbP3pOwIkAefXOmfGPnCM0LQfzNaKxJHI6VjI8NC662uoiPlaf5f6ymkTy9C3NQXev2mdXmA== +"@typescript-eslint/utils@5.36.2": + version "5.36.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.36.2.tgz#b01a76f0ab244404c7aefc340c5015d5ce6da74c" + integrity sha512-uNcopWonEITX96v9pefk9DC1bWMdkweeSsewJ6GeC7L6j2t0SJywisgkr9wUTtXk90fi2Eljj90HSHm3OGdGRg== dependencies: "@types/json-schema" "^7.0.9" - "@typescript-eslint/scope-manager" "5.27.0" - "@typescript-eslint/types" "5.27.0" - "@typescript-eslint/typescript-estree" "5.27.0" + "@typescript-eslint/scope-manager" "5.36.2" + "@typescript-eslint/types" "5.36.2" + "@typescript-eslint/typescript-estree" "5.36.2" eslint-scope "^5.1.1" eslint-utils "^3.0.0" -"@typescript-eslint/visitor-keys@5.27.0": - version "5.27.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.27.0.tgz#97aa9a5d2f3df8215e6d3b77f9d214a24db269bd" - integrity sha512-46cYrteA2MrIAjv9ai44OQDUoCZyHeGIc4lsjCUX2WT6r4C+kidz1bNiR4017wHOPUythYeH+Sc7/cFP97KEAA== +"@typescript-eslint/visitor-keys@5.36.2": + version "5.36.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.36.2.tgz#2f8f78da0a3bad3320d2ac24965791ac39dace5a" + integrity sha512-BtRvSR6dEdrNt7Net2/XDjbYKU5Ml6GqJgVfXT0CxTCJlnIqK7rAGreuWKMT2t8cFUT2Msv5oxw0GMRD7T5J7A== dependencies: - "@typescript-eslint/types" "5.27.0" + "@typescript-eslint/types" "5.36.2" eslint-visitor-keys "^3.3.0" -"@vercel/nft@^0.18.2": - version "0.18.2" - resolved "https://registry.yarnpkg.com/@vercel/nft/-/nft-0.18.2.tgz#46ab17e1d631220bfc21c8fe299d10e36514e897" - integrity sha512-Oxy4y5JDh7CMbaxEGjKKzHcnQ1gRQqtfp+x3xvOmZYixXHwaD2RMJDTzaPz0b2B3pgVbbPOHY87wffJPFDaoFg== +"@vercel/nft@^0.22.1": + version "0.22.1" + resolved "https://registry.yarnpkg.com/@vercel/nft/-/nft-0.22.1.tgz#0d91d2a21e3a7f0b23ce1550da9870eac4942828" + integrity sha512-lYYZIoxRurqDOSoVIdBicGnpUIpfyaS5qVjdPq+EfI285WqtZK3NK/dyCkiyBul+X2U2OEhRyeMdXPCHGJbohw== dependencies: "@mapbox/node-pre-gyp" "^1.0.5" acorn "^8.6.0" + async-sema "^3.1.1" bindings "^1.4.0" estree-walker "2.0.2" glob "^7.1.3" graceful-fs "^4.2.9" micromatch "^4.0.2" node-gyp-build "^4.2.2" - node-pre-gyp "^0.13.0" resolve-from "^5.0.0" rollup-pluginutils "^2.8.2" -"@vitejs/plugin-vue-jsx@^1.3.10": - version "1.3.10" - resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue-jsx/-/plugin-vue-jsx-1.3.10.tgz#5b61294ed4334fbc5f5679243fd3ccc448b26044" - integrity sha512-Cf5zznh4yNMiEMBfTOztaDVDmK1XXfgxClzOSUVUc8WAmHzogrCUeM8B05ABzuGtg0D1amfng+mUmSIOFGP3Pw== +"@vitejs/plugin-vue-jsx@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue-jsx/-/plugin-vue-jsx-2.0.1.tgz#563a844964f5b025c828b452d6a9882df7194f9a" + integrity sha512-lmiR1k9+lrF7LMczO0pxtQ8mOn6XeppJDHxnpxkJQpT5SiKz4SKhKdeNstXaTNuR8qZhUo5X0pJlcocn72Y4Jg== dependencies: - "@babel/core" "^7.17.9" + "@babel/core" "^7.18.13" "@babel/plugin-syntax-import-meta" "^7.10.4" - "@babel/plugin-transform-typescript" "^7.16.8" - "@rollup/pluginutils" "^4.2.0" + "@babel/plugin-transform-typescript" "^7.18.12" "@vue/babel-plugin-jsx" "^1.1.1" - hash-sum "^2.0.0" -"@vitejs/plugin-vue@^2.3.2": - version "2.3.3" - resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-2.3.3.tgz#fbf80cc039b82ac21a1acb0f0478de8f61fbf600" - integrity sha512-SmQLDyhz+6lGJhPELsBdzXGc+AcaT8stgkbiTFGpXPe8Tl1tJaBw1A6pxDqDuRsVkD8uscrkx3hA7QDOoKYtyw== +"@vitejs/plugin-vue@^3.0.3": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-3.1.0.tgz#3a423ea6943a450e806da412a911150e928598ed" + integrity sha512-fmxtHPjSOEIRg6vHYDaem+97iwCUg/uSIaTzp98lhELt2ISOQuDo2hbkBdXod0g15IhfPMQmAxh4heUks2zvDA== "@vue/babel-helper-vue-transform-on@^1.0.2": version "1.0.2" @@ -1006,105 +1013,105 @@ html-tags "^3.1.0" svg-tags "^1.0.0" -"@vue/compiler-core@3.2.36": - version "3.2.36" - resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.2.36.tgz#2fa44595308c95610602df54dcb69063ba2c8383" - integrity sha512-bbyZM5hvBicv0PW3KUfVi+x3ylHnfKG7DOn5wM+f2OztTzTjLEyBb/5yrarIYpmnGitVGbjZqDbODyW4iK8hqw== +"@vue/compiler-core@3.2.38": + version "3.2.38" + resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.2.38.tgz#0a2a7bffd2280ac19a96baf5301838a2cf1964d7" + integrity sha512-/FsvnSu7Z+lkd/8KXMa4yYNUiqQrI22135gfsQYVGuh5tqEgOB0XqrUdb/KnCLa5+TmQLPwvyUnKMyCpu+SX3Q== dependencies: "@babel/parser" "^7.16.4" - "@vue/shared" "3.2.36" + "@vue/shared" "3.2.38" estree-walker "^2.0.2" source-map "^0.6.1" -"@vue/compiler-dom@3.2.36": - version "3.2.36" - resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.2.36.tgz#16d911ff163ed5fc8087a01645bf14bb7f325401" - integrity sha512-tcOTAOiW4s24QLnq+ON6J+GRONXJ+A/mqKCORi0LSlIh8XQlNnlm24y8xIL8la+ZDgkdbjarQ9ZqYSvEja6gVA== +"@vue/compiler-dom@3.2.38", "@vue/compiler-dom@^3.2.0": + version "3.2.38" + resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.2.38.tgz#53d04ed0c0c62d1ef259bf82f9b28100a880b6fd" + integrity sha512-zqX4FgUbw56kzHlgYuEEJR8mefFiiyR3u96498+zWPsLeh1WKvgIReoNE+U7gG8bCUdvsrJ0JRmev0Ky6n2O0g== dependencies: - "@vue/compiler-core" "3.2.36" - "@vue/shared" "3.2.36" + "@vue/compiler-core" "3.2.38" + "@vue/shared" "3.2.38" -"@vue/compiler-sfc@3.2.36", "@vue/compiler-sfc@^3.2.33": - version "3.2.36" - resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.2.36.tgz#e5065e7c0e5170ffa750e3c3dd93a29db109d0f2" - integrity sha512-AvGb4bTj4W8uQ4BqaSxo7UwTEqX5utdRSMyHy58OragWlt8nEACQ9mIeQh3K4di4/SX+41+pJrLIY01lHAOFOA== +"@vue/compiler-sfc@3.2.38", "@vue/compiler-sfc@^3.2.0", "@vue/compiler-sfc@^3.2.33": + version "3.2.38" + resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.2.38.tgz#9e763019471a535eb1fceeaac9d4d18a83f0940f" + integrity sha512-KZjrW32KloMYtTcHAFuw3CqsyWc5X6seb8KbkANSWt3Cz9p2qA8c1GJpSkksFP9ABb6an0FLCFl46ZFXx3kKpg== dependencies: "@babel/parser" "^7.16.4" - "@vue/compiler-core" "3.2.36" - "@vue/compiler-dom" "3.2.36" - "@vue/compiler-ssr" "3.2.36" - "@vue/reactivity-transform" "3.2.36" - "@vue/shared" "3.2.36" + "@vue/compiler-core" "3.2.38" + "@vue/compiler-dom" "3.2.38" + "@vue/compiler-ssr" "3.2.38" + "@vue/reactivity-transform" "3.2.38" + "@vue/shared" "3.2.38" estree-walker "^2.0.2" magic-string "^0.25.7" postcss "^8.1.10" source-map "^0.6.1" -"@vue/compiler-ssr@3.2.36": - version "3.2.36" - resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.2.36.tgz#314f3a9424db58142c3608f48cbda7aa05fc66cb" - integrity sha512-+KugInUFRvOxEdLkZwE+W43BqHyhBh0jpYXhmqw1xGq2dmE6J9eZ8UUSOKNhdHtQ/iNLWWeK/wPZkVLUf3YGaw== +"@vue/compiler-ssr@3.2.38": + version "3.2.38" + resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.2.38.tgz#933b23bf99e667e5078eefc6ba94cb95fd765dfe" + integrity sha512-bm9jOeyv1H3UskNm4S6IfueKjUNFmi2kRweFIGnqaGkkRePjwEcfCVqyS3roe7HvF4ugsEkhf4+kIvDhip6XzQ== dependencies: - "@vue/compiler-dom" "3.2.36" - "@vue/shared" "3.2.36" + "@vue/compiler-dom" "3.2.38" + "@vue/shared" "3.2.38" -"@vue/devtools-api@^6.0.0": - version "6.1.4" - resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-6.1.4.tgz#b4aec2f4b4599e11ba774a50c67fa378c9824e53" - integrity sha512-IiA0SvDrJEgXvVxjNkHPFfDx6SXw0b/TUkqMcDZWNg9fnCAHbTpoo59YfJ9QLFkwa3raau5vSlRVzMSLDnfdtQ== +"@vue/devtools-api@^6.1.4": + version "6.2.1" + resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-6.2.1.tgz#6f2948ff002ec46df01420dfeff91de16c5b4092" + integrity sha512-OEgAMeQXvCoJ+1x8WyQuVZzFo0wcyCmUR3baRVLmKBo1LmYZWMlRiXlux5jd0fqVJu6PfDbOrZItVqUEzLobeQ== -"@vue/reactivity-transform@3.2.36": - version "3.2.36" - resolved "https://registry.yarnpkg.com/@vue/reactivity-transform/-/reactivity-transform-3.2.36.tgz#8426a941b0b09d1b94fc162d4642758183b5d133" - integrity sha512-Jk5o2BhpODC9XTA7o4EL8hSJ4JyrFWErLtClG3NH8wDS7ri9jBDWxI7/549T7JY9uilKsaNM+4pJASLj5dtRwA== +"@vue/reactivity-transform@3.2.38": + version "3.2.38" + resolved "https://registry.yarnpkg.com/@vue/reactivity-transform/-/reactivity-transform-3.2.38.tgz#a856c217b2ead99eefb6fddb1d61119b2cb67984" + integrity sha512-3SD3Jmi1yXrDwiNJqQ6fs1x61WsDLqVk4NyKVz78mkaIRh6d3IqtRnptgRfXn+Fzf+m6B1KxBYWq1APj6h4qeA== dependencies: "@babel/parser" "^7.16.4" - "@vue/compiler-core" "3.2.36" - "@vue/shared" "3.2.36" + "@vue/compiler-core" "3.2.38" + "@vue/shared" "3.2.38" estree-walker "^2.0.2" magic-string "^0.25.7" -"@vue/reactivity@3.2.36", "@vue/reactivity@^3.2.33": - version "3.2.36" - resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.2.36.tgz#026b14e716febffe80cd284fd8a2b33378968646" - integrity sha512-c2qvopo0crh9A4GXi2/2kfGYMxsJW4tVILrqRPydVGZHhq0fnzy6qmclWOhBFckEhmyxmpHpdJtIRYGeKcuhnA== +"@vue/reactivity@3.2.38", "@vue/reactivity@^3.2.38": + version "3.2.38" + resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.2.38.tgz#d576fdcea98eefb96a1f1ad456e289263e87292e" + integrity sha512-6L4myYcH9HG2M25co7/BSo0skKFHpAN8PhkNPM4xRVkyGl1K5M3Jx4rp5bsYhvYze2K4+l+pioN4e6ZwFLUVtw== dependencies: - "@vue/shared" "3.2.36" + "@vue/shared" "3.2.38" -"@vue/runtime-core@3.2.36": - version "3.2.36" - resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.2.36.tgz#be5115e665679c26bf3807d2326675dc1d847134" - integrity sha512-PTWBD+Lub+1U3/KhbCExrfxyS14hstLX+cBboxVHaz+kXoiDLNDEYAovPtxeTutbqtClIXtft+wcGdC+FUQ9qQ== +"@vue/runtime-core@3.2.38": + version "3.2.38" + resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.2.38.tgz#d19cf591c210713f80e6a94ffbfef307c27aea06" + integrity sha512-kk0qiSiXUU/IKxZw31824rxmFzrLr3TL6ZcbrxWTKivadoKupdlzbQM4SlGo4MU6Zzrqv4fzyUasTU1jDoEnzg== dependencies: - "@vue/reactivity" "3.2.36" - "@vue/shared" "3.2.36" + "@vue/reactivity" "3.2.38" + "@vue/shared" "3.2.38" -"@vue/runtime-dom@3.2.36": - version "3.2.36" - resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.2.36.tgz#cd5d403ea23c18ee7c17767103a1b2f8263c54bb" - integrity sha512-gYPYblm7QXHVuBohqNRRT7Wez0f2Mx2D40rb4fleehrJU9CnkjG0phhcGEZFfGwCmHZRqBCRgbFWE98bPULqkg== +"@vue/runtime-dom@3.2.38": + version "3.2.38" + resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.2.38.tgz#fec711f65c2485991289fd4798780aa506469b48" + integrity sha512-4PKAb/ck2TjxdMSzMsnHViOrrwpudk4/A56uZjhzvusoEU9xqa5dygksbzYepdZeB5NqtRw5fRhWIiQlRVK45A== dependencies: - "@vue/runtime-core" "3.2.36" - "@vue/shared" "3.2.36" + "@vue/runtime-core" "3.2.38" + "@vue/shared" "3.2.38" csstype "^2.6.8" -"@vue/server-renderer@3.2.36": - version "3.2.36" - resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.2.36.tgz#1e7c1cf63bd17df7828d04e8c780ee6ca7a9ed7c" - integrity sha512-uZE0+jfye6yYXWvAQYeHZv+f50sRryvy16uiqzk3jn8hEY8zTjI+rzlmZSGoE915k+W/Ol9XSw6vxOUD8dGkUg== +"@vue/server-renderer@3.2.38": + version "3.2.38" + resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.2.38.tgz#01a4c0f218e90b8ad1815074208a1974ded109aa" + integrity sha512-pg+JanpbOZ5kEfOZzO2bt02YHd+ELhYP8zPeLU1H0e7lg079NtuuSB8fjLdn58c4Ou8UQ6C1/P+528nXnLPAhA== dependencies: - "@vue/compiler-ssr" "3.2.36" - "@vue/shared" "3.2.36" + "@vue/compiler-ssr" "3.2.38" + "@vue/shared" "3.2.38" -"@vue/shared@3.2.36", "@vue/shared@^3.2.33": - version "3.2.36" - resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.2.36.tgz#35e11200542cf29068ba787dad57da9bdb82f644" - integrity sha512-JtB41wXl7Au3+Nl3gD16Cfpj7k/6aCroZ6BbOiCMFCMvrOpkg/qQUXTso2XowaNqBbnkuGHurLAqkLBxNGc1hQ== +"@vue/shared@3.2.38", "@vue/shared@^3.2.38": + version "3.2.38" + resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.2.38.tgz#e823f0cb2e85b6bf43430c0d6811b1441c300f3c" + integrity sha512-dTyhTIRmGXBjxJE+skC8tTWCGLCVc4wQgRRLt8+O9p5ewBAjoBwtCAkLPrtToSr1xltoe3st21Pv953aOZ7alg== -"@vueuse/head@^0.7.6": - version "0.7.6" - resolved "https://registry.yarnpkg.com/@vueuse/head/-/head-0.7.6.tgz#39eb2aa593db6f02d10ba469b33d8cfbce038183" - integrity sha512-cOWqCkT3WiF5oEpw+VVEWUJd9RLD5rc7DmnFp3cePsejp+t7686uKD9Z9ZU7Twb7R/BI8iexKTmXo9D/F3v6UA== +"@vueuse/head@^0.7.9": + version "0.7.9" + resolved "https://registry.yarnpkg.com/@vueuse/head/-/head-0.7.9.tgz#888ab87667ab6dbe6edba10d176fa91c1b0ec021" + integrity sha512-5wnRiH2XIUSLLXJDLDDTcpvAg5QXgTIVZl46AU7to/T91KHsdBLHSE4WhRO7kP0jbkAhlxnx64E29cQtwBrMjg== abbrev@1: version "1.1.1" @@ -1116,10 +1123,15 @@ acorn-jsx@^5.3.2: resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== -acorn@^8.5.0, acorn@^8.6.0, acorn@^8.7.0, acorn@^8.7.1: - version "8.7.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.1.tgz#0197122c843d1bf6d0a5e83220a788f278f63c30" - integrity sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A== +acorn@^7.1.1: + version "7.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" + integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== + +acorn@^8.5.0, acorn@^8.6.0, acorn@^8.7.1, acorn@^8.8.0: + version "8.8.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.0.tgz#88c0187620435c7f6015803f5539dae05a9dbea8" + integrity sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w== agent-base@6: version "6.0.2" @@ -1146,27 +1158,19 @@ ajv@^6.10.0, ajv@^6.12.4: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ajv@^8.0.1: - version "8.11.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.11.0.tgz#977e91dd96ca669f54a11e23e378e33b884a565f" - integrity sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg== - dependencies: - fast-deep-equal "^3.1.1" - json-schema-traverse "^1.0.0" - require-from-string "^2.0.2" - uri-js "^4.2.2" - -ansi-escapes@^4.2.1, ansi-escapes@^4.3.0: +ansi-escapes@^4.3.0: version "4.3.2" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== dependencies: type-fest "^0.21.3" -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - integrity sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA== +ansi-escapes@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-5.0.0.tgz#b6a0caf0eef0c41af190e9a749e0c00ec04bb2a6" + integrity sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA== + dependencies: + type-fest "^1.0.2" ansi-regex@^5.0.1: version "5.0.1" @@ -1192,7 +1196,7 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0: dependencies: color-convert "^2.0.1" -ansi-styles@^6.0.0: +ansi-styles@^6.0.0, ansi-styles@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.1.0.tgz#87313c102b8118abd57371afab34618bf7350ed3" integrity sha512-VbqNsoz55SYGczauuup0MFUyXNQviSpFTj1RQtFzmQLk18qbVSpTFFGMT293rmDaQuKCT6InmbuEyUne4mTuxQ== @@ -1205,10 +1209,10 @@ anymatch@^3.1.2, anymatch@~3.1.2: normalize-path "^3.0.0" picomatch "^2.0.4" -aproba@^1.0.3: - version "1.2.0" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" - integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== +apr-intercept@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/apr-intercept/-/apr-intercept-3.0.4.tgz#bf3ad45067e4b6b73ebbb06e230667d58100f7f4" + integrity sha512-rDtf8HhtJL2OBKqKwZ3ehlTx1ZaiO0h7UQdBzFcntNtSD5ow/8sC4JpbMRVBwBL27m9wQwxEhmaAfHoAPBkVcA== "aproba@^1.0.3 || ^2.0.0": version "2.0.0" @@ -1257,14 +1261,6 @@ are-we-there-yet@^2.0.0: delegates "^1.0.0" readable-stream "^3.6.0" -are-we-there-yet@~1.1.2: - version "1.1.7" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz#b15474a932adab4ff8a50d9adfa7e4e926f21146" - integrity sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g== - dependencies: - delegates "^1.0.0" - readable-stream "^2.0.6" - argparse@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" @@ -1296,33 +1292,69 @@ array.prototype.flat@^1.2.5: es-abstract "^1.19.2" es-shim-unscopables "^1.0.0" +asap@~2.0.3: + version "2.0.6" + resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" + integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== + +assert-never@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/assert-never/-/assert-never-1.2.1.tgz#11f0e363bf146205fb08193b5c7b90f4d1cf44fe" + integrity sha512-TaTivMB6pYI1kXwrFlEhLeGfOqoDNdTxjCdwRfFFkEA30Eu+k48W34nlok2EYWJfFFzqaEmichdNM7th6M5HNw== + assertion-error@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== +ast-types@0.14.2: + version "0.14.2" + resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.14.2.tgz#600b882df8583e3cd4f2df5fa20fa83759d4bdfd" + integrity sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA== + dependencies: + tslib "^2.0.1" + +ast-types@0.15.2: + version "0.15.2" + resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.15.2.tgz#39ae4809393c4b16df751ee563411423e85fb49d" + integrity sha512-c27loCv9QkZinsa5ProX751khO9DJl/AcB5c2KNtA6NRvHKS0PgLfcftz72KVq504vB0Gku5s2kUZzDBvQWvHg== + dependencies: + tslib "^2.0.1" + astral-regex@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== +async-sema@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/async-sema/-/async-sema-3.1.1.tgz#e527c08758a0f8f6f9f15f799a173ff3c40ea808" + integrity sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg== + async@^3.2.3: - version "3.2.3" - resolved "https://registry.yarnpkg.com/async/-/async-3.2.3.tgz#ac53dafd3f4720ee9e8a160628f18ea91df196c9" - integrity sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g== + version "3.2.4" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c" + integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ== -autoprefixer@^10.4.7: - version "10.4.7" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.7.tgz#1db8d195f41a52ca5069b7593be167618edbbedf" - integrity sha512-ypHju4Y2Oav95SipEcCcI5J7CGPuvz8oat7sUtYj3ClK44bldfvtvcxK6IEK++7rqB7YchDGzweZIBG+SD0ZAA== +autoprefixer@^10.4.8: + version "10.4.8" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.8.tgz#92c7a0199e1cfb2ad5d9427bd585a3d75895b9e5" + integrity sha512-75Jr6Q/XpTqEf6D2ltS5uMewJIx5irCU1oBYJrWjFenq/m12WRRrz6g15L1EIoYvPLXTbEry7rDOwrcYNj77xw== dependencies: - browserslist "^4.20.3" - caniuse-lite "^1.0.30001335" + browserslist "^4.21.3" + caniuse-lite "^1.0.30001373" fraction.js "^4.2.0" normalize-range "^0.1.2" picocolors "^1.0.0" postcss-value-parser "^4.2.0" +babel-walk@3.0.0-canary-5: + version "3.0.0-canary-5" + resolved "https://registry.yarnpkg.com/babel-walk/-/babel-walk-3.0.0-canary-5.tgz#f66ecd7298357aee44955f235a6ef54219104b11" + integrity sha512-GAwkz0AihzY5bkwIY5QDR+LvsRQgB/B+1foMPvi0FZPMl5fjD7ICiznUiBdLYMH1QYe6vqu4gWYytZOccLouFw== + dependencies: + "@babel/types" "^7.9.6" + bail@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/bail/-/bail-2.0.2.tgz#d26f5cd8fe5d6f832a31517b9f7c356040ba6d5d" @@ -1338,6 +1370,11 @@ base64-js@^1.3.1: resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== +bcp-47-match@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/bcp-47-match/-/bcp-47-match-1.0.3.tgz#cb8d03071389a10aff2062b862d6575ffd7cd7ef" + integrity sha512-LggQ4YTdjWQSKELZF5JwchnBa1u0pIQSZf5lSdOHEdbVP55h0qICA/FUp3+W99q0xqxYa1ZQizTUH87gecII5w== + binary-extensions@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" @@ -1350,7 +1387,7 @@ bindings@^1.4.0: dependencies: file-uri-to-path "1.0.0" -bl@^4.0.3, bl@^4.1.0: +bl@^4.0.3: version "4.1.0" resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== @@ -1359,6 +1396,15 @@ bl@^4.0.3, bl@^4.1.0: inherits "^2.0.4" readable-stream "^3.4.0" +bl@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/bl/-/bl-5.0.0.tgz#6928804a41e9da9034868e1c50ca88f21f57aea2" + integrity sha512-8vxFNZ0pflFfi0WXA3WQXlj6CaMEwsmh63I1CNp0q+wWv8sD0ARx1KovSQd0l2GkwrMIOyedq0EF1FxI+RCZLQ== + dependencies: + buffer "^6.0.3" + inherits "^2.0.4" + readable-stream "^3.4.0" + bluebird@^3.5.1: version "3.7.2" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" @@ -1377,6 +1423,13 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + braces@^3.0.2, braces@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" @@ -1384,16 +1437,15 @@ braces@^3.0.2, braces@~3.0.2: dependencies: fill-range "^7.0.1" -browserslist@^4.0.0, browserslist@^4.16.6, browserslist@^4.20.2, browserslist@^4.20.3: - version "4.20.3" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.20.3.tgz#eb7572f49ec430e054f56d52ff0ebe9be915f8bf" - integrity sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg== +browserslist@^4.0.0, browserslist@^4.16.6, browserslist@^4.20.2, browserslist@^4.20.3, browserslist@^4.21.3: + version "4.21.3" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.3.tgz#5df277694eb3c48bc5c4b05af3e8b7e09c5a6d1a" + integrity sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ== dependencies: - caniuse-lite "^1.0.30001332" - electron-to-chromium "^1.4.118" - escalade "^3.1.1" - node-releases "^2.0.3" - picocolors "^1.0.0" + caniuse-lite "^1.0.30001370" + electron-to-chromium "^1.4.202" + node-releases "^2.0.6" + update-browserslist-db "^1.0.5" buffer-crc32@^0.2.1, buffer-crc32@^0.2.13: version "0.2.13" @@ -1413,42 +1465,44 @@ buffer@^5.5.0: base64-js "^1.3.1" ieee754 "^1.1.13" -builtin-modules@^3.0.0: +buffer@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" + integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.2.1" + +builtin-modules@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.3.0.tgz#cae62812b89801e9656336e46223e030386be7b6" integrity sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw== -builtins@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/builtins/-/builtins-4.1.0.tgz#1edd016dd91ce771a1ed6fc3b2b71fb918953250" - integrity sha512-1bPRZQtmKaO6h7qV1YHXNtr6nCK28k0Zo95KM4dXfILcZZwoHJBN1m3lfLv9LPkcOZlrSr+J1bzMaZFO98Yq0w== +builtins@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/builtins/-/builtins-5.0.1.tgz#87f6db9ab0458be728564fa81d876d8d74552fa9" + integrity sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ== dependencies: semver "^7.0.0" -bundle-runner@^0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/bundle-runner/-/bundle-runner-0.0.1.tgz#d05ff2e3921e2ea3ec810d6b327eeb466ff4483b" - integrity sha512-xevhXw77nJ7wjCRTyo1JYumUNUiZmD0CJEummyLUJbdhub4bZWuplS+Y7nlMq5V9sKJQW+dV/LZR/SlxS5f4LQ== - dependencies: - source-map "^0.7.3" - -c12@^0.2.7: - version "0.2.7" - resolved "https://registry.yarnpkg.com/c12/-/c12-0.2.7.tgz#5eedf9f6bf91b1cf5b99f9b03425e6bd5af9b244" - integrity sha512-ih1nuHbZ6Ltf8Wss96JH6YvKIW5+9+uLAA08LUQAoDrFPGSyvPvQv/QBIRE+dCBWOK4PcwH0ylRkSa9huI1Acw== +c12@^0.2.10: + version "0.2.11" + resolved "https://registry.yarnpkg.com/c12/-/c12-0.2.11.tgz#ffb9048fd4241e948c1793097f2550248ecb1789" + integrity sha512-DOy85AO8HN66IgqCDUmMrLb+r4/z8f8Cu8oUIfERbzi/vxZ/GS99SU7lIMz0EQgJktZp6FtcisuiyCdQ6VaTTQ== dependencies: - defu "^6.0.0" - dotenv "^16.0.0" + defu "^6.1.0" + dotenv "^16.0.2" gittar "^0.1.1" - jiti "^1.12.14" - mlly "^0.5.1" - pathe "^0.2.0" - rc9 "^1.2.1" + jiti "^1.15.0" + mlly "^0.5.14" + pathe "^0.3.7" + pkg-types "^0.3.5" + rc9 "^1.2.2" -c8@^7.11.3: - version "7.11.3" - resolved "https://registry.yarnpkg.com/c8/-/c8-7.11.3.tgz#88c8459c1952ed4f701b619493c9ae732b057163" - integrity sha512-6YBmsaNmqRm9OS3ZbIiL2EZgi1+Xc4O24jL3vMYGE6idixYuGdy76rIfIdltSKDj9DpLNrcXSonUTR1miBD0wA== +c8@^7.12.0: + version "7.12.0" + resolved "https://registry.yarnpkg.com/c8/-/c8-7.12.0.tgz#402db1c1af4af5249153535d1c84ad70c5c96b14" + integrity sha512-CtgQrHOkyxr5koX1wEUmN/5cfDa2ckbHRA4Gy5LAL0zaCFtVWJS5++n+w4/sr2GWGerBxgTjpKeDclk/Qk6W/A== dependencies: "@bcoe/v8-coverage" "^0.2.3" "@istanbuljs/schema" "^0.1.3" @@ -1463,6 +1517,24 @@ c8@^7.11.3: yargs "^16.2.0" yargs-parser "^20.2.9" +cacheable-lookup@^5.0.3: + version "5.0.4" + resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz#5a6b865b2c44357be3d5ebc2a467b032719a7005" + integrity sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA== + +cacheable-request@^7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-7.0.2.tgz#ea0d0b889364a25854757301ca12b2da77f91d27" + integrity sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew== + dependencies: + clone-response "^1.0.2" + get-stream "^5.1.0" + http-cache-semantics "^4.0.0" + keyv "^4.0.0" + lowercase-keys "^2.0.0" + normalize-url "^6.0.1" + responselike "^2.0.0" + call-bind@^1.0.0, call-bind@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" @@ -1491,10 +1563,15 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001332, caniuse-lite@^1.0.30001335: - version "1.0.30001344" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001344.tgz#8a1e7fdc4db9c2ec79a05e9fd68eb93a761888bb" - integrity sha512-0ZFjnlCaXNOAYcV7i+TtdKBp0L/3XEU2MF/x6Du1lrh+SRX4IfzIVL4HNJg5pB2PmFb8rszIGyOvsZnqqRoc2g== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001370, caniuse-lite@^1.0.30001373: + version "1.0.30001390" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001390.tgz#158a43011e7068ef7fc73590e9fd91a7cece5e7f" + integrity sha512-sS4CaUM+/+vqQUlCvCJ2WtDlV81aWtHhqeEVkLokVJJa3ViN4zDxAGfq9R8i1m90uGHxo99cy10Od+lvn3hf0g== + +ccount@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/ccount/-/ccount-1.1.0.tgz#246687debb6014735131be8abab2d93898f8d043" + integrity sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg== ccount@^2.0.0: version "2.0.1" @@ -1523,7 +1600,7 @@ chalk@^2.0.0: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.1: +chalk@^4.0.0, chalk@^4.1.1: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== @@ -1536,20 +1613,37 @@ chalk@^5.0.0, chalk@^5.0.1: resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.0.1.tgz#ca57d71e82bb534a296df63bbacc4a1c22b2a4b6" integrity sha512-Fo07WOYGqMfCWHOzSXOt2CxDbC6skS/jO9ynEcmpANMoPrD+W1r1K6Vx7iNm+AQmETU1Xr2t+n8nzkV9t6xh3w== +character-entities-html4@^1.0.0: + version "1.1.4" + resolved "https://registry.yarnpkg.com/character-entities-html4/-/character-entities-html4-1.1.4.tgz#0e64b0a3753ddbf1fdc044c5fd01d0199a02e125" + integrity sha512-HRcDxZuZqMx3/a+qrzxdBKBPUpxWEq9xw2OPZ3a/174ihfrQKVsFhqtthBInFy1zZ9GgZyFXOatNujm8M+El3g== + character-entities-html4@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/character-entities-html4/-/character-entities-html4-2.1.0.tgz#1f1adb940c971a4b22ba39ddca6b618dc6e56b2b" integrity sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA== +character-entities-legacy@^1.0.0: + version "1.1.4" + resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz#94bc1845dce70a5bb9d2ecc748725661293d8fc1" + integrity sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA== + character-entities-legacy@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz#76bc83a90738901d7bc223a9e93759fdd560125b" integrity sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ== character-entities@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-2.0.1.tgz#98724833e1e27990dee0bd0f2b8a859c3476aac7" - integrity sha512-OzmutCf2Kmc+6DrFrrPS8/tDh2+DpnrfzdICHWhcVC9eOd0N1PXmQEE1a8iM4IziIAG+8tmTq3K+oo0ubH6RRQ== + version "2.0.2" + resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-2.0.2.tgz#2d09c2e72cd9523076ccb21157dff66ad43fcc22" + integrity sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ== + +character-parser@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/character-parser/-/character-parser-2.2.0.tgz#c7ce28f36d4bcd9744e5ffc2c5fcde1c73261fc0" + integrity sha512-+UqJQjFEFaTAs3bNsF2j2kEN1baG/zghZbdqoYEDxGZtJo9LBzl1A+m0D4n3qKx8N2FNv8/Xp6yV9mQmBuptaw== + dependencies: + is-regex "^1.0.3" character-reference-invalid@^2.0.0: version "2.0.1" @@ -1566,7 +1660,7 @@ check-error@^1.0.2: resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" integrity sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA== -chokidar@^3.5.1, chokidar@^3.5.3: +chokidar@^3.4.2, chokidar@^3.5.1, chokidar@^3.5.3: version "3.5.3" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== @@ -1591,10 +1685,10 @@ chownr@^2.0.0: resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== -ci-info@^3.3.0: - version "3.3.1" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.3.1.tgz#58331f6f472a25fe3a50a351ae3052936c2c7f32" - integrity sha512-SXgeMX9VwDe7iFFaEWkA5AstuER9YKqy4EhHqr4DVqkwmD9rpVimkMKWHdjn30Ja45txyjhSn63lVX69eVCckg== +ci-info@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.3.2.tgz#6d2967ffa407466481c6c90b6e16b3098f080128" + integrity sha512-xmDt/QIAdeZ9+nfdPsaBCpMvHNLFiLdjj59qjqn+6iPe6YmHGQ35sBnQ8uslRBXFmXkiZQOJRjvQeoGppoTjjg== clean-regexp@^1.0.0: version "1.0.0" @@ -1615,10 +1709,17 @@ cli-cursor@^3.1.0: dependencies: restore-cursor "^3.1.0" -cli-spinners@^2.5.0: - version "2.6.1" - resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.6.1.tgz#adc954ebe281c37a6319bfa401e6dd2488ffb70d" - integrity sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g== +cli-cursor@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-4.0.0.tgz#3cecfe3734bf4fe02a8361cbdc0f6fe28c6a57ea" + integrity sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg== + dependencies: + restore-cursor "^4.0.0" + +cli-spinners@^2.6.1: + version "2.7.0" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.7.0.tgz#f815fd30b5f9eaac02db604c7a231ed7cb2f797a" + integrity sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw== cli-truncate@^2.1.0: version "2.1.0" @@ -1636,10 +1737,10 @@ cli-truncate@^3.1.0: slice-ansi "^5.0.0" string-width "^5.0.0" -cli-width@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" - integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== +cli-width@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-4.0.0.tgz#a5622f6a3b0a9e3e711a25f099bf2399f608caf6" + integrity sha512-ZksGS2xpa/bYkNzN3BAw1wEjsLV/ZKOf/CCrJ/QOBsxx6fOARIkwTutxp1XIOIohi6HKmOFjMoK/XaqDVUpEEw== clipboardy@^3.0.0: version "3.0.0" @@ -1659,6 +1760,13 @@ cliui@^7.0.2: strip-ansi "^6.0.0" wrap-ansi "^7.0.0" +clone-response@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.3.tgz#af2032aa47816399cf5f0a1d0db902f517abb8c3" + integrity sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA== + dependencies: + mimic-response "^1.0.0" + clone@^1.0.2: version "1.0.4" resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" @@ -1669,11 +1777,6 @@ cluster-key-slot@^1.1.0: resolved "https://registry.yarnpkg.com/cluster-key-slot/-/cluster-key-slot-1.1.0.tgz#30474b2a981fb12172695833052bc0d01336d10d" integrity sha512-2Nii8p3RwAPiFwsnZvukotvow2rIHM+yQ6ZcBXGHdniadkYGZYiGmkHJIbZPIV9nfv7m/U1IPMVVcAhoWFeklw== -code-point-at@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" - integrity sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA== - color-convert@^1.9.0: version "1.9.3" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" @@ -1704,14 +1807,19 @@ color-support@^1.1.2: integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== colord@^2.9.1: - version "2.9.2" - resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.2.tgz#25e2bacbbaa65991422c07ea209e2089428effb1" - integrity sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ== + version "2.9.3" + resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.3.tgz#4f8ce919de456f1d5c1c368c307fe20f3e59fb43" + integrity sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw== + +colorette@^2.0.16, colorette@^2.0.17, colorette@^2.0.19: + version "2.0.19" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.19.tgz#cdf044f47ad41a0f4b56b3a0d5b4e6e1a2d5a798" + integrity sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ== -colorette@^2.0.16: - version "2.0.16" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.16.tgz#713b9af84fdb000139f04546bd4a93f62a5085da" - integrity sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g== +comma-separated-tokens@^1.0.0: + version "1.0.8" + resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz#632b80b6117867a158f1080ad498b2fbe7e3f5ea" + integrity sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw== comma-separated-tokens@^2.0.0: version "2.0.2" @@ -1734,9 +1842,9 @@ commander@^8.0.0: integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== commander@^9.3.0: - version "9.3.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-9.3.0.tgz#f619114a5a2d2054e0d9ff1b31d5ccf89255e26b" - integrity sha512-hv95iU5uXPbK83mjrJKuZyFM/LBAoCV/XhVGkS5Je6tl7sxr6A0ITMw5WoRV46/UaJ46Nllm3Xt7IaJhXTIkzw== + version "9.4.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-9.4.0.tgz#bc4a40918fefe52e22450c111ecd6b7acce6f11c" + integrity sha512-sRPT+umqkz90UA8M1yqYfnHlZA7fF6nSphDtxeywPZ49ysjxDQybzk13CL+mXekDRG92skbcqCLVovuCusNmFw== commondir@^1.0.1: version "1.0.1" @@ -1763,11 +1871,19 @@ consola@^2.15.3: resolved "https://registry.yarnpkg.com/consola/-/consola-2.15.3.tgz#2e11f98d6a4be71ff72e0bdf07bd23e12cb61550" integrity sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw== -console-control-strings@^1.0.0, console-control-strings@^1.1.0, console-control-strings@~1.1.0: +console-control-strings@^1.0.0, console-control-strings@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ== +constantinople@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/constantinople/-/constantinople-4.0.1.tgz#0def113fa0e4dc8de83331a5cf79c8b325213151" + integrity sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw== + dependencies: + "@babel/parser" "^7.6.0" + "@babel/types" "^7.6.1" + convert-source-map@^1.6.0, convert-source-map@^1.7.0: version "1.8.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369" @@ -1812,10 +1928,10 @@ cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: shebang-command "^2.0.0" which "^2.0.1" -css-declaration-sorter@^6.2.2: - version "6.2.2" - resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-6.2.2.tgz#bfd2f6f50002d6a3ae779a87d3a0c5d5b10e0f02" - integrity sha512-Ufadglr88ZLsrvS11gjeu/40Lw74D9Am/Jpr3LlYm5Q4ZP5KdlUhG+6u2EjyXeZcxmZ2h1ebCKngDjolpeLHpg== +css-declaration-sorter@^6.3.0: + version "6.3.1" + resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-6.3.1.tgz#be5e1d71b7a992433fb1c542c7a1b835e45682ec" + integrity sha512-fBffmak0bPAnyqc/HO8C3n2sHrp9wcqQz6ES9koRF2/mLOVAx9zIQ3Y7R29sYCteTPqMCwns4WYQoCX91Xl3+w== css-select@^4.1.3: version "4.3.0" @@ -1828,6 +1944,11 @@ css-select@^4.1.3: domutils "^2.8.0" nth-check "^2.0.1" +css-selector-parser@^1.0.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/css-selector-parser/-/css-selector-parser-1.4.1.tgz#03f9cb8a81c3e5ab2c51684557d5aaf6d2569759" + integrity sha512-HYPSb7y/Z7BNDCOrakL4raGO2zltZkbeXyAd6Tg9obzix6QhzxCotdBl6VT0Dv4vZfJGVz3WL/xaEI9Ly3ul0g== + css-tree@^1.1.2, css-tree@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d" @@ -1846,12 +1967,12 @@ cssesc@^3.0.0: resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== -cssnano-preset-default@^5.2.10: - version "5.2.10" - resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-5.2.10.tgz#6dfffe6cc3b13f3bb356a42c49a334a98700ef45" - integrity sha512-H8TJRhTjBKVOPltp9vr9El9I+IfYsOMhmXdK0LwdvwJcxYX9oWkY7ctacWusgPWAgQq1vt/WO8v+uqpfLnM7QA== +cssnano-preset-default@^5.2.12: + version "5.2.12" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-5.2.12.tgz#ebe6596ec7030e62c3eb2b3c09f533c0644a9a97" + integrity sha512-OyCBTZi+PXgylz9HAA5kHyoYhfGcYdwFmyaJzWnzxuGRtnMw/kR6ilW9XzlzlRAtB6PLT/r+prYgkef7hngFew== dependencies: - css-declaration-sorter "^6.2.2" + css-declaration-sorter "^6.3.0" cssnano-utils "^3.1.0" postcss-calc "^8.2.3" postcss-colormin "^5.3.0" @@ -1860,7 +1981,7 @@ cssnano-preset-default@^5.2.10: postcss-discard-duplicates "^5.1.0" postcss-discard-empty "^5.1.1" postcss-discard-overridden "^5.1.0" - postcss-merge-longhand "^5.1.5" + postcss-merge-longhand "^5.1.6" postcss-merge-rules "^5.1.2" postcss-minify-font-values "^5.1.0" postcss-minify-gradients "^5.1.1" @@ -1868,14 +1989,14 @@ cssnano-preset-default@^5.2.10: postcss-minify-selectors "^5.2.1" postcss-normalize-charset "^5.1.0" postcss-normalize-display-values "^5.1.0" - postcss-normalize-positions "^5.1.0" - postcss-normalize-repeat-style "^5.1.0" + postcss-normalize-positions "^5.1.1" + postcss-normalize-repeat-style "^5.1.1" postcss-normalize-string "^5.1.0" postcss-normalize-timing-functions "^5.1.0" postcss-normalize-unicode "^5.1.0" postcss-normalize-url "^5.1.0" postcss-normalize-whitespace "^5.1.1" - postcss-ordered-values "^5.1.1" + postcss-ordered-values "^5.1.3" postcss-reduce-initial "^5.1.0" postcss-reduce-transforms "^5.1.0" postcss-svgo "^5.1.0" @@ -1886,12 +2007,12 @@ cssnano-utils@^3.1.0: resolved "https://registry.yarnpkg.com/cssnano-utils/-/cssnano-utils-3.1.0.tgz#95684d08c91511edfc70d2636338ca37ef3a6861" integrity sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA== -cssnano@^5.1.7: - version "5.1.10" - resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.1.10.tgz#fc6ddd9a4d7d238f320634326ed814cf0abf6e1c" - integrity sha512-ACpnRgDg4m6CZD/+8SgnLcGCgy6DDGdkMbOawwdvVxNietTNLe/MtWcenp6qT0PRt5wzhGl6/cjMWCdhKXC9QA== +cssnano@^5.1.13: + version "5.1.13" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.1.13.tgz#83d0926e72955332dc4802a7070296e6258efc0a" + integrity sha512-S2SL2ekdEz6w6a2epXn4CmMKU4K3KpcyXLKfAYc9UQQqJRkD/2eLUG0vJ3Db/9OvO5GuAdgXw3pFbR6abqghDQ== dependencies: - cssnano-preset-default "^5.2.10" + cssnano-preset-default "^5.2.12" lilconfig "^2.0.3" yaml "^1.10.2" @@ -1940,7 +2061,7 @@ debug@4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.3, d dependencies: ms "2.1.2" -debug@^3.2.6, debug@^3.2.7: +debug@^3.2.7: version "3.2.7" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== @@ -1948,16 +2069,18 @@ debug@^3.2.6, debug@^3.2.7: ms "^2.1.1" decode-named-character-reference@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/decode-named-character-reference/-/decode-named-character-reference-1.0.1.tgz#57b2bd9112659cacbc449d3577d7dadb8e1f3d1b" - integrity sha512-YV/0HQHreRwKb7uBopyIkLG17jG6Sv2qUchk9qSoVJ2f+flwRsPNBO0hAnjt6mTNYUT+vw9Gy2ihXg4sUWPi2w== + version "1.0.2" + resolved "https://registry.yarnpkg.com/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz#daabac9690874c394c81e4162a0304b35d824f0e" + integrity sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg== dependencies: character-entities "^2.0.0" -decode-uri-component@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" - integrity sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og== +decompress-response@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" + integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== + dependencies: + mimic-response "^3.1.0" deep-eql@^3.0.1: version "3.0.1" @@ -1966,11 +2089,6 @@ deep-eql@^3.0.1: dependencies: type-detect "^4.0.0" -deep-extend@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" - integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== - deep-is@^0.1.3: version "0.1.4" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" @@ -1988,6 +2106,11 @@ defaults@^1.0.3: dependencies: clone "^1.0.2" +defer-to-connect@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" + integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== + define-lazy-prop@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" @@ -2001,15 +2124,15 @@ define-properties@^1.1.3, define-properties@^1.1.4: has-property-descriptors "^1.0.0" object-keys "^1.1.1" -defu@^5.0.0, defu@^5.0.1: +defu@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/defu/-/defu-5.0.1.tgz#a034278f9b032bf0845d261aa75e9ad98da878ac" integrity sha512-EPS1carKg+dkEVy3qNTqIdp2qV7mUP08nIsupfwQpz++slCVRw7qbQyWvSTig+kFPwz2XXp5/kIIkH+CwrJKkQ== -defu@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/defu/-/defu-6.0.0.tgz#b397a6709a2f3202747a3d9daf9446e41ad0c5fc" - integrity sha512-t2MZGLf1V2rV4VBZbWIaXKdX/mUcYW0n2znQZoADBkGGxYL8EWqCuCZBmJPJ/Yy9fofJkyuuSuo5GSwo0XdEgw== +defu@^6.0.0, defu@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/defu/-/defu-6.1.0.tgz#7a5411655da73335c7d933256911f17c74443e2d" + integrity sha512-pOFYRTIhoKujrmbTRhcW5lYQLBXw/dlTwfI8IguF1QCDJOcJzNH1w+YFjxqy6BAuJrClTy6MUE8q+oKJ2FLsIw== delegates@^1.0.0: version "1.0.0" @@ -2017,9 +2140,9 @@ delegates@^1.0.0: integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ== denque@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/denque/-/denque-2.0.1.tgz#bcef4c1b80dc32efe97515744f21a4229ab8934a" - integrity sha512-tfiWc6BQLXNLpNiR5iGd0Ocu3P3VpxfzFiqubLgMfhfOw9WyvgJBd46CClNn9k3qfbjvT//0cf7AlYRX/OslMQ== + version "2.1.0" + resolved "https://registry.yarnpkg.com/denque/-/denque-2.1.0.tgz#e93e1a6569fb5e66f16a3c2a2964617d349d6ab1" + integrity sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw== depd@2.0.0: version "2.0.0" @@ -2027,9 +2150,9 @@ depd@2.0.0: integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== dequal@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.2.tgz#85ca22025e3a87e65ef75a7a437b35284a7e319d" - integrity sha512-q9K8BlJVxK7hQYqa6XISGmBZbtQQWVXSrRrWreHC94rMt1QL/Impruc+7p2CYSYuVIUr+YCt6hjrs1kkdJRTug== + version "2.0.3" + resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" + integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== destr@^1.1.1: version "1.1.1" @@ -2046,11 +2169,6 @@ detab@^3.0.1: resolved "https://registry.yarnpkg.com/detab/-/detab-3.0.1.tgz#2f1874ccee75b96858cb5efa30d41212a8657baf" integrity sha512-T8gDOoz58xXMsXKLJkKxkyUTRkEpwOBL9w5nFFDJsD/XiFkajkBc2Yz99a/0kW7DGIYq/B1+oqqqru+fZetSvg== -detect-libc@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" - integrity sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg== - detect-libc@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.1.tgz#e1897aa88fa6ad197862937fbc0441ef352ee0cd" @@ -2068,6 +2186,11 @@ dir-glob@^3.0.1: dependencies: path-type "^4.0.0" +direction@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/direction/-/direction-1.0.4.tgz#2b86fb686967e987088caf8b89059370d4837442" + integrity sha512-GYqKi1aH7PJXxdhTeZBFrg8vUBeKXi+cNprXsC1kpJcbcVnV9wBsrOu1cQEdG0WeQwlfHiy3XvnKfIrJ2R0NzQ== + doctrine@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" @@ -2082,6 +2205,11 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" +doctypes@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/doctypes/-/doctypes-1.1.0.tgz#ea80b106a87538774e8a3a4a5afe293de489e0a9" + integrity sha512-LLBi6pEqS6Do3EKQ3J0NqHWV5hhb78Pi8vvESYwyOy2c31ZEZVdtitdzsQsKb7878PEERhzUk0ftqGhG6Mz+pQ== + dom-serializer@^1.0.1: version "1.4.1" resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.4.1.tgz#de5d41b1aea290215dc45a6dae8adcf1d32e2d30" @@ -2112,6 +2240,14 @@ domutils@^2.8.0: domelementtype "^2.2.0" domhandler "^4.2.0" +dot-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" + integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + dot-prop@^7.2.0: version "7.2.0" resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-7.2.0.tgz#468172a3529779814d21a779c1ba2f6d76609809" @@ -2119,10 +2255,10 @@ dot-prop@^7.2.0: dependencies: type-fest "^2.11.2" -dotenv@^16.0.0: - version "16.0.1" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.0.1.tgz#8f8f9d94876c35dac989876a5d3a82a267fdce1d" - integrity sha512-1K6hR6wtk2FviQ4kEiSjFiH5rpzEVi8WW0x96aztHVMhEspNpc4DVOUTEHtEva5VThQ8IaBX1Pe4gSzpVVUsKQ== +dotenv@^16.0.2: + version "16.0.2" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.0.2.tgz#0b0f8652c016a3858ef795024508cddc4bffc5bf" + integrity sha512-JvpYKUmzQhYoIFgK2MOnF3bciIZoItIIoryihy0rIA+H4Jy0FmgyKYAHCTN98P5ybGSJcIFbh6QKeJdtZd1qhA== duplexer@^0.1.2: version "0.1.2" @@ -2139,10 +2275,10 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== -electron-to-chromium@^1.4.118: - version "1.4.142" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.142.tgz#70cc8871f7c0122b29256089989e67cee637b40d" - integrity sha512-ea8Q1YX0JRp4GylOmX4gFHIizi0j9GfRW4EkaHnkZp0agRCBB4ZGeCv17IEzIvBkiYVwfoKVhKZJbTfqCRdQdg== +electron-to-chromium@^1.4.202: + version "1.4.243" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.243.tgz#9d5f1b10eafd6e434b687a88f1e7b0441dee168a" + integrity sha512-BgLD2gBX43OSXwlT01oYRRD5NIB4n3okTRxkzEAC6G0SZG4TTlyrWMjbOo0fajCwqwpRtMHXQNMjtRN6qpNtfw== emoji-regex@^8.0.0: version "8.0.0" @@ -2164,7 +2300,7 @@ encodeurl@~1.0.2: resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== -end-of-stream@^1.4.1: +end-of-stream@^1.1.0, end-of-stream@^1.4.1: version "1.4.4" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== @@ -2196,10 +2332,10 @@ enhanced-resolve@^4.1.1: memory-fs "^0.5.0" tapable "^1.0.0" -enhanced-resolve@^5.9.3: - version "5.9.3" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.9.3.tgz#44a342c012cbc473254af5cc6ae20ebd0aae5d88" - integrity sha512-Bq9VSor+kjvW3f9/MiiR4eE3XYgOl7/rS8lnSxbRbF3kS0B2r+Y9w5krBWxZgDxASVZbdYrn5wT4j/Wb0J9qow== +enhanced-resolve@^5.10.0, enhanced-resolve@^5.9.3: + version "5.10.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz#0dc579c3bb2a1032e357ac45b8f3a6f3ad4fb1e6" + integrity sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ== dependencies: graceful-fs "^4.2.4" tapable "^2.2.0" @@ -2224,15 +2360,15 @@ error-ex@^1.3.1: is-arrayish "^0.2.1" es-abstract@^1.19.0, es-abstract@^1.19.1, es-abstract@^1.19.2, es-abstract@^1.19.5: - version "1.20.1" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.1.tgz#027292cd6ef44bd12b1913b828116f54787d1814" - integrity sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA== + version "1.20.2" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.2.tgz#8495a07bc56d342a3b8ea3ab01bd986700c2ccb3" + integrity sha512-XxXQuVNrySBNlEkTYJoDNFe5+s2yIOpzq80sUHEdPdQr0S5nTLz4ZPPPswNIpKseDDUS5yghX1gfLIHQZ1iNuQ== dependencies: call-bind "^1.0.2" es-to-primitive "^1.2.1" function-bind "^1.1.1" function.prototype.name "^1.1.5" - get-intrinsic "^1.1.1" + get-intrinsic "^1.1.2" get-symbol-description "^1.0.0" has "^1.0.3" has-property-descriptors "^1.0.0" @@ -2244,9 +2380,9 @@ es-abstract@^1.19.0, es-abstract@^1.19.1, es-abstract@^1.19.2, es-abstract@^1.19 is-shared-array-buffer "^1.0.2" is-string "^1.0.7" is-weakref "^1.0.2" - object-inspect "^1.12.0" + object-inspect "^1.12.2" object-keys "^1.1.1" - object.assign "^4.1.2" + object.assign "^4.1.4" regexp.prototype.flags "^1.4.3" string.prototype.trimend "^1.0.5" string.prototype.trimstart "^1.0.5" @@ -2273,239 +2409,259 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" -esbuild-android-64@0.14.42: - version "0.14.42" - resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.14.42.tgz#d7ab3d44d3671218d22bce52f65642b12908d954" - integrity sha512-P4Y36VUtRhK/zivqGVMqhptSrFILAGlYp0Z8r9UQqHJ3iWztRCNWnlBzD9HRx0DbueXikzOiwyOri+ojAFfW6A== - -esbuild-android-arm64@0.13.15: - version "0.13.15" - resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.13.15.tgz#3fc3ff0bab76fe35dd237476b5d2b32bb20a3d44" - integrity sha512-m602nft/XXeO8YQPUDVoHfjyRVPdPgjyyXOxZ44MK/agewFFkPa8tUo6lAzSWh5Ui5PB4KR9UIFTSBKh/RrCmg== - -esbuild-android-arm64@0.14.42: - version "0.14.42" - resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.42.tgz#45336d8bec49abddb3a022996a23373f45a57c27" - integrity sha512-0cOqCubq+RWScPqvtQdjXG3Czb3AWI2CaKw3HeXry2eoA2rrPr85HF7IpdU26UWdBXgPYtlTN1LUiuXbboROhg== - -esbuild-darwin-64@0.13.15: - version "0.13.15" - resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.13.15.tgz#8e9169c16baf444eacec60d09b24d11b255a8e72" - integrity sha512-ihOQRGs2yyp7t5bArCwnvn2Atr6X4axqPpEdCFPVp7iUj4cVSdisgvEKdNR7yH3JDjW6aQDw40iQFoTqejqxvQ== - -esbuild-darwin-64@0.14.42: - version "0.14.42" - resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.42.tgz#6dff5e44cd70a88c33323e2f5fb598e40c68a9e0" - integrity sha512-ipiBdCA3ZjYgRfRLdQwP82rTiv/YVMtW36hTvAN5ZKAIfxBOyPXY7Cejp3bMXWgzKD8B6O+zoMzh01GZsCuEIA== - -esbuild-darwin-arm64@0.13.15: - version "0.13.15" - resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.13.15.tgz#1b07f893b632114f805e188ddfca41b2b778229a" - integrity sha512-i1FZssTVxUqNlJ6cBTj5YQj4imWy3m49RZRnHhLpefFIh0To05ow9DTrXROTE1urGTQCloFUXTX8QfGJy1P8dQ== - -esbuild-darwin-arm64@0.14.42: - version "0.14.42" - resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.42.tgz#2c7313e1b12d2fa5b889c03213d682fb92ca8c4f" - integrity sha512-bU2tHRqTPOaoH/4m0zYHbFWpiYDmaA0gt90/3BMEFaM0PqVK/a6MA2V/ypV5PO0v8QxN6gH5hBPY4YJ2lopXgA== - -esbuild-freebsd-64@0.13.15: - version "0.13.15" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.13.15.tgz#0b8b7eca1690c8ec94c75680c38c07269c1f4a85" - integrity sha512-G3dLBXUI6lC6Z09/x+WtXBXbOYQZ0E8TDBqvn7aMaOCzryJs8LyVXKY4CPnHFXZAbSwkCbqiPuSQ1+HhrNk7EA== - -esbuild-freebsd-64@0.14.42: - version "0.14.42" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.42.tgz#ad1c5a564a7e473b8ce95ee7f76618d05d6daffc" - integrity sha512-75h1+22Ivy07+QvxHyhVqOdekupiTZVLN1PMwCDonAqyXd8TVNJfIRFrdL8QmSJrOJJ5h8H1I9ETyl2L8LQDaw== - -esbuild-freebsd-arm64@0.13.15: - version "0.13.15" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.13.15.tgz#2e1a6c696bfdcd20a99578b76350b41db1934e52" - integrity sha512-KJx0fzEDf1uhNOZQStV4ujg30WlnwqUASaGSFPhznLM/bbheu9HhqZ6mJJZM32lkyfGJikw0jg7v3S0oAvtvQQ== - -esbuild-freebsd-arm64@0.14.42: - version "0.14.42" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.42.tgz#4bdb480234144f944f1930829bace7561135ddc7" - integrity sha512-W6Jebeu5TTDQMJUJVarEzRU9LlKpNkPBbjqSu+GUPTHDCly5zZEQq9uHkmHHl7OKm+mQ2zFySN83nmfCeZCyNA== - -esbuild-linux-32@0.13.15: - version "0.13.15" - resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.13.15.tgz#6fd39f36fc66dd45b6b5f515728c7bbebc342a69" - integrity sha512-ZvTBPk0YWCLMCXiFmD5EUtB30zIPvC5Itxz0mdTu/xZBbbHJftQgLWY49wEPSn2T/TxahYCRDWun5smRa0Tu+g== - -esbuild-linux-32@0.14.42: - version "0.14.42" - resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.14.42.tgz#ef18fd19f067e9d2b5f677d6b82fa81519f5a8c2" - integrity sha512-Ooy/Bj+mJ1z4jlWcK5Dl6SlPlCgQB9zg1UrTCeY8XagvuWZ4qGPyYEWGkT94HUsRi2hKsXvcs6ThTOjBaJSMfg== - -esbuild-linux-64@0.13.15: - version "0.13.15" - resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.13.15.tgz#9cb8e4bcd7574e67946e4ee5f1f1e12386bb6dd3" - integrity sha512-eCKzkNSLywNeQTRBxJRQ0jxRCl2YWdMB3+PkWFo2BBQYC5mISLIVIjThNtn6HUNqua1pnvgP5xX0nHbZbPj5oA== - -esbuild-linux-64@0.14.42: - version "0.14.42" - resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.14.42.tgz#d84e7333b1c1b22cf8b5b9dbb5dd9b2ecb34b79f" - integrity sha512-2L0HbzQfbTuemUWfVqNIjOfaTRt9zsvjnme6lnr7/MO9toz/MJ5tZhjqrG6uDWDxhsaHI2/nsDgrv8uEEN2eoA== - -esbuild-linux-arm64@0.13.15: - version "0.13.15" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.13.15.tgz#3891aa3704ec579a1b92d2a586122e5b6a2bfba1" - integrity sha512-bYpuUlN6qYU9slzr/ltyLTR9YTBS7qUDymO8SV7kjeNext61OdmqFAzuVZom+OLW1HPHseBfJ/JfdSlx8oTUoA== - -esbuild-linux-arm64@0.14.42: - version "0.14.42" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.42.tgz#dc19e282f8c4ffbaa470c02a4d171e4ae0180cca" - integrity sha512-c3Ug3e9JpVr8jAcfbhirtpBauLxzYPpycjWulD71CF6ZSY26tvzmXMJYooQ2YKqDY4e/fPu5K8bm7MiXMnyxuA== - -esbuild-linux-arm@0.13.15: - version "0.13.15" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.13.15.tgz#8a00e99e6a0c6c9a6b7f334841364d8a2b4aecfe" - integrity sha512-wUHttDi/ol0tD8ZgUMDH8Ef7IbDX+/UsWJOXaAyTdkT7Yy9ZBqPg8bgB/Dn3CZ9SBpNieozrPRHm0BGww7W/jA== - -esbuild-linux-arm@0.14.42: - version "0.14.42" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.42.tgz#d49870e63e2242b8156bf473f2ee5154226be328" - integrity sha512-STq69yzCMhdRaWnh29UYrLSr/qaWMm/KqwaRF1pMEK7kDiagaXhSL1zQGXbYv94GuGY/zAwzK98+6idCMUOOCg== - -esbuild-linux-mips64le@0.13.15: - version "0.13.15" - resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.13.15.tgz#36b07cc47c3d21e48db3bb1f4d9ef8f46aead4f7" - integrity sha512-KlVjIG828uFPyJkO/8gKwy9RbXhCEUeFsCGOJBepUlpa7G8/SeZgncUEz/tOOUJTcWMTmFMtdd3GElGyAtbSWg== - -esbuild-linux-mips64le@0.14.42: - version "0.14.42" - resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.42.tgz#f4e6ff9bf8a6f175470498826f48d093b054fc22" - integrity sha512-QuvpHGbYlkyXWf2cGm51LBCHx6eUakjaSrRpUqhPwjh/uvNUYvLmz2LgPTTPwCqaKt0iwL+OGVL0tXA5aDbAbg== - -esbuild-linux-ppc64le@0.13.15: - version "0.13.15" - resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.13.15.tgz#f7e6bba40b9a11eb9dcae5b01550ea04670edad2" - integrity sha512-h6gYF+OsaqEuBjeesTBtUPw0bmiDu7eAeuc2OEH9S6mV9/jPhPdhOWzdeshb0BskRZxPhxPOjqZ+/OqLcxQwEQ== - -esbuild-linux-ppc64le@0.14.42: - version "0.14.42" - resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.42.tgz#ac9c66fc80ba9f8fda15a4cc08f4e55f6c0aed63" - integrity sha512-8ohIVIWDbDT+i7lCx44YCyIRrOW1MYlks9fxTo0ME2LS/fxxdoJBwHWzaDYhjvf8kNpA+MInZvyOEAGoVDrMHg== - -esbuild-linux-riscv64@0.14.42: - version "0.14.42" - resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.42.tgz#21e0ae492a3a9bf4eecbfc916339a66e204256d0" - integrity sha512-DzDqK3TuoXktPyG1Lwx7vhaF49Onv3eR61KwQyxYo4y5UKTpL3NmuarHSIaSVlTFDDpcIajCDwz5/uwKLLgKiQ== - -esbuild-linux-s390x@0.14.42: - version "0.14.42" - resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.42.tgz#06d40b957250ffd9a2183bfdfc9a03d6fd21b3e8" - integrity sha512-YFRhPCxl8nb//Wn6SiS5pmtplBi4z9yC2gLrYoYI/tvwuB1jldir9r7JwAGy1Ck4D7sE7wBN9GFtUUX/DLdcEQ== - -esbuild-netbsd-64@0.13.15: - version "0.13.15" - resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.13.15.tgz#a2fedc549c2b629d580a732d840712b08d440038" - integrity sha512-3+yE9emwoevLMyvu+iR3rsa+Xwhie7ZEHMGDQ6dkqP/ndFzRHkobHUKTe+NCApSqG5ce2z4rFu+NX/UHnxlh3w== - -esbuild-netbsd-64@0.14.42: - version "0.14.42" - resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.42.tgz#185664f05f10914f14ed43bd9e22b7de584267f7" - integrity sha512-QYSD2k+oT9dqB/4eEM9c+7KyNYsIPgzYOSrmfNGDIyJrbT1d+CFVKvnKahDKNJLfOYj8N4MgyFaU9/Ytc6w5Vw== - -esbuild-openbsd-64@0.13.15: - version "0.13.15" - resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.13.15.tgz#b22c0e5806d3a1fbf0325872037f885306b05cd7" - integrity sha512-wTfvtwYJYAFL1fSs8yHIdf5GEE4NkbtbXtjLWjM3Cw8mmQKqsg8kTiqJ9NJQe5NX/5Qlo7Xd9r1yKMMkHllp5g== - -esbuild-openbsd-64@0.14.42: - version "0.14.42" - resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.42.tgz#c29006f659eb4e55283044bbbd4eb4054fae8839" - integrity sha512-M2meNVIKWsm2HMY7+TU9AxM7ZVwI9havdsw6m/6EzdXysyCFFSoaTQ/Jg03izjCsK17FsVRHqRe26Llj6x0MNA== - -esbuild-sunos-64@0.13.15: - version "0.13.15" - resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.13.15.tgz#d0b6454a88375ee8d3964daeff55c85c91c7cef4" - integrity sha512-lbivT9Bx3t1iWWrSnGyBP9ODriEvWDRiweAs69vI+miJoeKwHWOComSRukttbuzjZ8r1q0mQJ8Z7yUsDJ3hKdw== - -esbuild-sunos-64@0.14.42: - version "0.14.42" - resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.42.tgz#aa9eec112cd1e7105e7bb37000eca7d460083f8f" - integrity sha512-uXV8TAZEw36DkgW8Ak3MpSJs1ofBb3Smkc/6pZ29sCAN1KzCAQzsje4sUwugf+FVicrHvlamCOlFZIXgct+iqQ== - -esbuild-windows-32@0.13.15: - version "0.13.15" - resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.13.15.tgz#c96d0b9bbb52f3303322582ef8e4847c5ad375a7" - integrity sha512-fDMEf2g3SsJ599MBr50cY5ve5lP1wyVwTe6aLJsM01KtxyKkB4UT+fc5MXQFn3RLrAIAZOG+tHC+yXObpSn7Nw== - -esbuild-windows-32@0.14.42: - version "0.14.42" - resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.14.42.tgz#c3fc450853c61a74dacc5679de301db23b73e61e" - integrity sha512-4iw/8qWmRICWi9ZOnJJf9sYt6wmtp3hsN4TdI5NqgjfOkBVMxNdM9Vt3626G1Rda9ya2Q0hjQRD9W1o+m6Lz6g== - -esbuild-windows-64@0.13.15: - version "0.13.15" - resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.13.15.tgz#1f79cb9b1e1bb02fb25cd414cb90d4ea2892c294" - integrity sha512-9aMsPRGDWCd3bGjUIKG/ZOJPKsiztlxl/Q3C1XDswO6eNX/Jtwu4M+jb6YDH9hRSUflQWX0XKAfWzgy5Wk54JQ== - -esbuild-windows-64@0.14.42: - version "0.14.42" - resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.14.42.tgz#b877aa37ff47d9fcf0ccb1ca6a24b31475a5e555" - integrity sha512-j3cdK+Y3+a5H0wHKmLGTJcq0+/2mMBHPWkItR3vytp/aUGD/ua/t2BLdfBIzbNN9nLCRL9sywCRpOpFMx3CxzA== - -esbuild-windows-arm64@0.13.15: - version "0.13.15" - resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.13.15.tgz#482173070810df22a752c686509c370c3be3b3c3" - integrity sha512-zzvyCVVpbwQQATaf3IG8mu1IwGEiDxKkYUdA4FpoCHi1KtPa13jeScYDjlW0Qh+ebWzpKfR2ZwvqAQkSWNcKjA== - -esbuild-windows-arm64@0.14.42: - version "0.14.42" - resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.42.tgz#79da8744626f24bc016dc40d016950b5a4a2bac5" - integrity sha512-+lRAARnF+hf8J0mN27ujO+VbhPbDqJ8rCcJKye4y7YZLV6C4n3pTRThAb388k/zqF5uM0lS5O201u0OqoWSicw== - -esbuild@^0.13.8: - version "0.13.15" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.13.15.tgz#db56a88166ee373f87dbb2d8798ff449e0450cdf" - integrity sha512-raCxt02HBKv8RJxE8vkTSCXGIyKHdEdGfUmiYb8wnabnaEmHzyW7DCHb5tEN0xU8ryqg5xw54mcwnYkC4x3AIw== +esbuild-android-64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.14.54.tgz#505f41832884313bbaffb27704b8bcaa2d8616be" + integrity sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ== + +esbuild-android-64@0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.15.7.tgz#a521604d8c4c6befc7affedc897df8ccde189bea" + integrity sha512-p7rCvdsldhxQr3YHxptf1Jcd86dlhvc3EQmQJaZzzuAxefO9PvcI0GLOa5nCWem1AJ8iMRu9w0r5TG8pHmbi9w== + +esbuild-android-arm64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.54.tgz#8ce69d7caba49646e009968fe5754a21a9871771" + integrity sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg== + +esbuild-android-arm64@0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.15.7.tgz#307b81f1088bf1e81dfe5f3d1d63a2d2a2e3e68e" + integrity sha512-L775l9ynJT7rVqRM5vo+9w5g2ysbOCfsdLV4CWanTZ1k/9Jb3IYlQ06VCI1edhcosTYJRECQFJa3eAvkx72eyQ== + +esbuild-darwin-64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.54.tgz#24ba67b9a8cb890a3c08d9018f887cc221cdda25" + integrity sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug== + +esbuild-darwin-64@0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.15.7.tgz#270117b0c4ec6bcbc5cf3a297a7d11954f007e11" + integrity sha512-KGPt3r1c9ww009t2xLB6Vk0YyNOXh7hbjZ3EecHoVDxgtbUlYstMPDaReimKe6eOEfyY4hBEEeTvKwPsiH5WZg== + +esbuild-darwin-arm64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.54.tgz#3f7cdb78888ee05e488d250a2bdaab1fa671bf73" + integrity sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw== + +esbuild-darwin-arm64@0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.7.tgz#97851eacd11dacb7719713602e3319e16202fc77" + integrity sha512-kBIHvtVqbSGajN88lYMnR3aIleH3ABZLLFLxwL2stiuIGAjGlQW741NxVTpUHQXUmPzxi6POqc9npkXa8AcSZQ== + +esbuild-freebsd-64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.54.tgz#09250f997a56ed4650f3e1979c905ffc40bbe94d" + integrity sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg== + +esbuild-freebsd-64@0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.7.tgz#1de15ffaf5ae916aa925800aa6d02579960dd8c4" + integrity sha512-hESZB91qDLV5MEwNxzMxPfbjAhOmtfsr9Wnuci7pY6TtEh4UDuevmGmkUIjX/b+e/k4tcNBMf7SRQ2mdNuK/HQ== + +esbuild-freebsd-arm64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.54.tgz#bafb46ed04fc5f97cbdb016d86947a79579f8e48" + integrity sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q== + +esbuild-freebsd-arm64@0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.7.tgz#0f160dbf5c9a31a1d8dd87acbbcb1a04b7031594" + integrity sha512-dLFR0ChH5t+b3J8w0fVKGvtwSLWCv7GYT2Y2jFGulF1L5HftQLzVGN+6pi1SivuiVSmTh28FwUhi9PwQicXI6Q== + +esbuild-linux-32@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.14.54.tgz#e2a8c4a8efdc355405325033fcebeb941f781fe5" + integrity sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw== + +esbuild-linux-32@0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.15.7.tgz#422eb853370a5e40bdce8b39525380de11ccadec" + integrity sha512-v3gT/LsONGUZcjbt2swrMjwxo32NJzk+7sAgtxhGx1+ZmOFaTRXBAi1PPfgpeo/J//Un2jIKm/I+qqeo4caJvg== + +esbuild-linux-64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.14.54.tgz#de5fdba1c95666cf72369f52b40b03be71226652" + integrity sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg== + +esbuild-linux-64@0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.15.7.tgz#f89c468453bb3194b14f19dc32e0b99612e81d2b" + integrity sha512-LxXEfLAKwOVmm1yecpMmWERBshl+Kv5YJ/1KnyAr6HRHFW8cxOEsEfisD3sVl/RvHyW//lhYUVSuy9jGEfIRAQ== + +esbuild-linux-arm64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.54.tgz#dae4cd42ae9787468b6a5c158da4c84e83b0ce8b" + integrity sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig== + +esbuild-linux-arm64@0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.7.tgz#68a79d6eb5e032efb9168a0f340ccfd33d6350a1" + integrity sha512-P3cfhudpzWDkglutWgXcT2S7Ft7o2e3YDMrP1n0z2dlbUZghUkKCyaWw0zhp4KxEEzt/E7lmrtRu/pGWnwb9vw== + +esbuild-linux-arm@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.54.tgz#a2c1dff6d0f21dbe8fc6998a122675533ddfcd59" + integrity sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw== + +esbuild-linux-arm@0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.15.7.tgz#2b7c784d0b3339878013dfa82bf5eaf82c7ce7d3" + integrity sha512-JKgAHtMR5f75wJTeuNQbyznZZa+pjiUHV7sRZp42UNdyXC6TiUYMW/8z8yIBAr2Fpad8hM1royZKQisqPABPvQ== + +esbuild-linux-mips64le@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.54.tgz#d9918e9e4cb972f8d6dae8e8655bf9ee131eda34" + integrity sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw== + +esbuild-linux-mips64le@0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.7.tgz#bb8330a50b14aa84673816cb63cc6c8b9beb62cc" + integrity sha512-T7XKuxl0VpeFLCJXub6U+iybiqh0kM/bWOTb4qcPyDDwNVhLUiPcGdG2/0S7F93czUZOKP57YiLV8YQewgLHKw== + +esbuild-linux-ppc64le@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.54.tgz#3f9a0f6d41073fb1a640680845c7de52995f137e" + integrity sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ== + +esbuild-linux-ppc64le@0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.7.tgz#52544e7fa992811eb996674090d0bc41f067a14b" + integrity sha512-6mGuC19WpFN7NYbecMIJjeQgvDb5aMuvyk0PDYBJrqAEMkTwg3Z98kEKuCm6THHRnrgsdr7bp4SruSAxEM4eJw== + +esbuild-linux-riscv64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.54.tgz#618853c028178a61837bc799d2013d4695e451c8" + integrity sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg== + +esbuild-linux-riscv64@0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.7.tgz#a43ae60697992b957e454cbb622f7ee5297e8159" + integrity sha512-uUJsezbswAYo/X7OU/P+PuL/EI9WzxsEQXDekfwpQ23uGiooxqoLFAPmXPcRAt941vjlY9jtITEEikWMBr+F/g== + +esbuild-linux-s390x@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.54.tgz#d1885c4c5a76bbb5a0fe182e2c8c60eb9e29f2a6" + integrity sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA== + +esbuild-linux-s390x@0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.7.tgz#8c76a125dd10a84c166294d77416caaf5e1c7b64" + integrity sha512-+tO+xOyTNMc34rXlSxK7aCwJgvQyffqEM5MMdNDEeMU3ss0S6wKvbBOQfgd5jRPblfwJ6b+bKiz0g5nABpY0QQ== + +esbuild-netbsd-64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.54.tgz#69ae917a2ff241b7df1dbf22baf04bd330349e81" + integrity sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w== + +esbuild-netbsd-64@0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.7.tgz#19b2e75449d7d9c32b5d8a222bac2f1e0c3b08fd" + integrity sha512-yVc4Wz+Pu3cP5hzm5kIygNPrjar/v5WCSoRmIjCPWfBVJkZNb5brEGKUlf+0Y759D48BCWa0WHrWXaNy0DULTQ== + +esbuild-openbsd-64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.54.tgz#db4c8495287a350a6790de22edea247a57c5d47b" + integrity sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw== + +esbuild-openbsd-64@0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.7.tgz#1357b2bf72fd037d9150e751420a1fe4c8618ad7" + integrity sha512-GsimbwC4FSR4lN3wf8XmTQ+r8/0YSQo21rWDL0XFFhLHKlzEA4SsT1Tl8bPYu00IU6UWSJ+b3fG/8SB69rcuEQ== + +esbuild-sunos-64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.54.tgz#54287ee3da73d3844b721c21bc80c1dc7e1bf7da" + integrity sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw== + +esbuild-sunos-64@0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.15.7.tgz#87ab2c604592a9c3c763e72969da0d72bcde91d2" + integrity sha512-8CDI1aL/ts0mDGbWzjEOGKXnU7p3rDzggHSBtVryQzkSOsjCHRVe0iFYUuhczlxU1R3LN/E7HgUO4NXzGGP/Ag== + +esbuild-windows-32@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.14.54.tgz#f8aaf9a5667630b40f0fb3aa37bf01bbd340ce31" + integrity sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w== + +esbuild-windows-32@0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.15.7.tgz#c81e688c0457665a8d463a669e5bf60870323e99" + integrity sha512-cOnKXUEPS8EGCzRSFa1x6NQjGhGsFlVgjhqGEbLTPsA7x4RRYiy2RKoArNUU4iR2vHmzqS5Gr84MEumO/wxYKA== + +esbuild-windows-64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.14.54.tgz#bf54b51bd3e9b0f1886ffdb224a4176031ea0af4" + integrity sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ== + +esbuild-windows-64@0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.15.7.tgz#2421d1ae34b0561a9d6767346b381961266c4eff" + integrity sha512-7MI08Ec2sTIDv+zH6StNBKO+2hGUYIT42GmFyW6MBBWWtJhTcQLinKS6ldIN1d52MXIbiJ6nXyCJ+LpL4jBm3Q== + +esbuild-windows-arm64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.54.tgz#937d15675a15e4b0e4fafdbaa3a01a776a2be982" + integrity sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg== + +esbuild-windows-arm64@0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.7.tgz#7d5e9e060a7b454cb2f57f84a3f3c23c8f30b7d2" + integrity sha512-R06nmqBlWjKHddhRJYlqDd3Fabx9LFdKcjoOy08YLimwmsswlFBJV4rXzZCxz/b7ZJXvrZgj8DDv1ewE9+StMw== + +esbuild@^0.14.14, esbuild@^0.14.47: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.14.54.tgz#8b44dcf2b0f1a66fc22459943dccf477535e9aa2" + integrity sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA== optionalDependencies: - esbuild-android-arm64 "0.13.15" - esbuild-darwin-64 "0.13.15" - esbuild-darwin-arm64 "0.13.15" - esbuild-freebsd-64 "0.13.15" - esbuild-freebsd-arm64 "0.13.15" - esbuild-linux-32 "0.13.15" - esbuild-linux-64 "0.13.15" - esbuild-linux-arm "0.13.15" - esbuild-linux-arm64 "0.13.15" - esbuild-linux-mips64le "0.13.15" - esbuild-linux-ppc64le "0.13.15" - esbuild-netbsd-64 "0.13.15" - esbuild-openbsd-64 "0.13.15" - esbuild-sunos-64 "0.13.15" - esbuild-windows-32 "0.13.15" - esbuild-windows-64 "0.13.15" - esbuild-windows-arm64 "0.13.15" - -esbuild@^0.14.14, esbuild@^0.14.27, esbuild@^0.14.38: - version "0.14.42" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.14.42.tgz#98587df0b024d5f6341b12a1d735a2bff55e1836" - integrity sha512-V0uPZotCEHokJdNqyozH6qsaQXqmZEOiZWrXnds/zaH/0SyrIayRXWRB98CENO73MIZ9T3HBIOsmds5twWtmgw== + "@esbuild/linux-loong64" "0.14.54" + esbuild-android-64 "0.14.54" + esbuild-android-arm64 "0.14.54" + esbuild-darwin-64 "0.14.54" + esbuild-darwin-arm64 "0.14.54" + esbuild-freebsd-64 "0.14.54" + esbuild-freebsd-arm64 "0.14.54" + esbuild-linux-32 "0.14.54" + esbuild-linux-64 "0.14.54" + esbuild-linux-arm "0.14.54" + esbuild-linux-arm64 "0.14.54" + esbuild-linux-mips64le "0.14.54" + esbuild-linux-ppc64le "0.14.54" + esbuild-linux-riscv64 "0.14.54" + esbuild-linux-s390x "0.14.54" + esbuild-netbsd-64 "0.14.54" + esbuild-openbsd-64 "0.14.54" + esbuild-sunos-64 "0.14.54" + esbuild-windows-32 "0.14.54" + esbuild-windows-64 "0.14.54" + esbuild-windows-arm64 "0.14.54" + +esbuild@^0.15.6, esbuild@^0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.15.7.tgz#8a1f1aff58671a3199dd24df95314122fc1ddee8" + integrity sha512-7V8tzllIbAQV1M4QoE52ImKu8hT/NLGlGXkiDsbEU5PS6K8Mn09ZnYoS+dcmHxOS9CRsV4IRAMdT3I67IyUNXw== optionalDependencies: - esbuild-android-64 "0.14.42" - esbuild-android-arm64 "0.14.42" - esbuild-darwin-64 "0.14.42" - esbuild-darwin-arm64 "0.14.42" - esbuild-freebsd-64 "0.14.42" - esbuild-freebsd-arm64 "0.14.42" - esbuild-linux-32 "0.14.42" - esbuild-linux-64 "0.14.42" - esbuild-linux-arm "0.14.42" - esbuild-linux-arm64 "0.14.42" - esbuild-linux-mips64le "0.14.42" - esbuild-linux-ppc64le "0.14.42" - esbuild-linux-riscv64 "0.14.42" - esbuild-linux-s390x "0.14.42" - esbuild-netbsd-64 "0.14.42" - esbuild-openbsd-64 "0.14.42" - esbuild-sunos-64 "0.14.42" - esbuild-windows-32 "0.14.42" - esbuild-windows-64 "0.14.42" - esbuild-windows-arm64 "0.14.42" + "@esbuild/linux-loong64" "0.15.7" + esbuild-android-64 "0.15.7" + esbuild-android-arm64 "0.15.7" + esbuild-darwin-64 "0.15.7" + esbuild-darwin-arm64 "0.15.7" + esbuild-freebsd-64 "0.15.7" + esbuild-freebsd-arm64 "0.15.7" + esbuild-linux-32 "0.15.7" + esbuild-linux-64 "0.15.7" + esbuild-linux-arm "0.15.7" + esbuild-linux-arm64 "0.15.7" + esbuild-linux-mips64le "0.15.7" + esbuild-linux-ppc64le "0.15.7" + esbuild-linux-riscv64 "0.15.7" + esbuild-linux-s390x "0.15.7" + esbuild-netbsd-64 "0.15.7" + esbuild-openbsd-64 "0.15.7" + esbuild-sunos-64 "0.15.7" + esbuild-windows-32 "0.15.7" + esbuild-windows-64 "0.15.7" + esbuild-windows-arm64 "0.15.7" escalade@^3.1.1: version "3.1.1" @@ -2545,24 +2701,25 @@ eslint-import-resolver-node@^0.3.6: debug "^3.2.7" resolve "^1.20.0" -eslint-import-resolver-typescript@^2.7.1: - version "2.7.1" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-2.7.1.tgz#a90a4a1c80da8d632df25994c4c5fdcdd02b8751" - integrity sha512-00UbgGwV8bSgUv34igBDbTOtKhqoRMy9bFjNehT40bXg6585PNIct8HhXZ0SybqB9rWtXj9crcku8ndDn/gIqQ== +eslint-import-resolver-typescript@^3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.5.0.tgz#490ba48cafc5a2fb209bbc7e360defb4c292ed59" + integrity sha512-DEfpfuk+O/T5e9HBZOxocmwMuUGkvQQd5WRiMJF9kKNT9amByqOyGlWoAZAQiv0SZSy4GMtG1clmnvQA/RzA0A== dependencies: debug "^4.3.4" - glob "^7.2.0" + enhanced-resolve "^5.10.0" + get-tsconfig "^4.2.0" + globby "^13.1.2" + is-core-module "^2.10.0" is-glob "^4.0.3" - resolve "^1.22.0" - tsconfig-paths "^3.14.1" + synckit "^0.8.3" eslint-module-utils@^2.7.3: - version "2.7.3" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz#ad7e3a10552fdd0642e1e55292781bd6e34876ee" - integrity sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ== + version "2.7.4" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz#4f3e41116aaf13a20792261e61d3a2e7e0583974" + integrity sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA== dependencies: debug "^3.2.7" - find-up "^2.1.0" eslint-plugin-es@^3.0.0: version "3.0.1" @@ -2599,19 +2756,19 @@ eslint-plugin-import@^2.26.0: resolve "^1.22.0" tsconfig-paths "^3.14.1" -eslint-plugin-n@^15.2.0: - version "15.2.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-n/-/eslint-plugin-n-15.2.0.tgz#fd378274bdf1c3ca11af84e7a4b5cb524b63ae1c" - integrity sha512-lWLg++jGwC88GDGGBX3CMkk0GIWq0y41aH51lavWApOKcMQcYoL3Ayd0lEdtD3SnQtR+3qBvWQS3qGbR2BxRWg== +eslint-plugin-n@^15.2.5: + version "15.2.5" + resolved "https://registry.yarnpkg.com/eslint-plugin-n/-/eslint-plugin-n-15.2.5.tgz#aa7ff8d45bb8bf2df8ea3b7d3774ae570cb794b8" + integrity sha512-8+BYsqiyZfpu6NXmdLOXVUfk8IocpCjpd8nMRRH0A9ulrcemhb2VI9RSJMEy5udx++A/YcVPD11zT8hpFq368g== dependencies: - builtins "^4.0.0" + builtins "^5.0.1" eslint-plugin-es "^4.1.0" eslint-utils "^3.0.0" ignore "^5.1.1" - is-core-module "^2.3.0" - minimatch "^3.0.4" - resolve "^1.10.1" - semver "^6.3.0" + is-core-module "^2.10.0" + minimatch "^3.1.2" + resolve "^1.22.1" + semver "^7.3.7" eslint-plugin-node@^11.1.0: version "11.1.0" @@ -2625,18 +2782,18 @@ eslint-plugin-node@^11.1.0: resolve "^1.10.1" semver "^6.1.0" -eslint-plugin-promise@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-6.0.0.tgz#017652c07c9816413a41e11c30adc42c3d55ff18" - integrity sha512-7GPezalm5Bfi/E22PnQxDWH2iW9GTvAlUNTztemeHb6c1BniSyoeTrM87JkC0wYdi6aQrZX9p2qEiAno8aTcbw== +eslint-plugin-promise@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-6.0.1.tgz#a8cddf96a67c4059bdabf4d724a29572188ae423" + integrity sha512-uM4Tgo5u3UWQiroOyDEsYcVMOo7re3zmno0IZmB5auxoaQNIceAbXEkSt8RNrKtaYehARHG06pYK6K1JhtP0Zw== -eslint-plugin-unicorn@^42.0.0: - version "42.0.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-unicorn/-/eslint-plugin-unicorn-42.0.0.tgz#47d60c00c263ad743403b052db689e39acbacff1" - integrity sha512-ixBsbhgWuxVaNlPTT8AyfJMlhyC5flCJFjyK3oKE8TRrwBnaHvUbuIkCM1lqg8ryYrFStL/T557zfKzX4GKSlg== +eslint-plugin-unicorn@^43.0.2: + version "43.0.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-unicorn/-/eslint-plugin-unicorn-43.0.2.tgz#b189d58494c8a0985a4b89dba5dbfde3ad7575a5" + integrity sha512-DtqZ5mf/GMlfWoz1abIjq5jZfaFuHzGBZYIeuJfEoKKGWRHr2JiJR+ea+BF7Wx2N1PPRoT/2fwgiK1NnmNE3Hg== dependencies: - "@babel/helper-validator-identifier" "^7.15.7" - ci-info "^3.3.0" + "@babel/helper-validator-identifier" "^7.18.6" + ci-info "^3.3.2" clean-regexp "^1.0.0" eslint-utils "^3.0.0" esquery "^1.4.0" @@ -2647,20 +2804,21 @@ eslint-plugin-unicorn@^42.0.0: read-pkg-up "^7.0.1" regexp-tree "^0.1.24" safe-regex "^2.1.1" - semver "^7.3.5" + semver "^7.3.7" strip-indent "^3.0.0" -eslint-plugin-vue@^8.7.1: - version "8.7.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-8.7.1.tgz#f13c53547a0c9d64588a675cc5ecc6ccaf63703f" - integrity sha512-28sbtm4l4cOzoO1LtzQPxfxhQABararUb1JtqusQqObJpWX2e/gmVyeYVfepizPFne0Q5cILkYGiBoV36L12Wg== +eslint-plugin-vue@^9.4.0: + version "9.4.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-9.4.0.tgz#31c2d9002b5bb437b351a5feffdf37c4397e5cb9" + integrity sha512-Nzz2QIJ8FG+rtJaqT/7/ru5ie2XgT9KCudkbN0y3uFYhQ41nuHEaboLAiqwMcK006hZPQv/rVMRhUIwEGhIvfQ== dependencies: eslint-utils "^3.0.0" natural-compare "^1.4.0" nth-check "^2.0.1" postcss-selector-parser "^6.0.9" semver "^7.3.5" - vue-eslint-parser "^8.0.1" + vue-eslint-parser "^9.0.1" + xml-name-validator "^4.0.0" eslint-scope@^5.1.1: version "5.1.1" @@ -2670,7 +2828,7 @@ eslint-scope@^5.1.1: esrecurse "^4.3.0" estraverse "^4.1.1" -eslint-scope@^7.0.0, eslint-scope@^7.1.1: +eslint-scope@^7.1.1: version "7.1.1" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.1.1.tgz#fff34894c2f65e5226d3041ac480b4513a163642" integrity sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw== @@ -2702,18 +2860,20 @@ eslint-visitor-keys@^2.0.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== -eslint-visitor-keys@^3.1.0, eslint-visitor-keys@^3.3.0: +eslint-visitor-keys@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== -eslint@^8.16.0: - version "8.16.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.16.0.tgz#6d936e2d524599f2a86c708483b4c372c5d3bbae" - integrity sha512-MBndsoXY/PeVTDJeWsYj7kLZ5hQpJOfMYLsF6LicLHQWbRDG19lK5jOix4DPl8yY4SUFcE3txy86OzFLWT+yoA== +eslint@^8.23.0: + version "8.23.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.23.0.tgz#a184918d288820179c6041bb3ddcc99ce6eea040" + integrity sha512-pBG/XOn0MsJcKcTRLr27S5HpzQo4kLr+HjLQIyK4EiCsijDl/TB+h5uEuJU6bQ8Edvwz1XWOjpaP2qgnXGpTcA== dependencies: - "@eslint/eslintrc" "^1.3.0" - "@humanwhocodes/config-array" "^0.9.2" + "@eslint/eslintrc" "^1.3.1" + "@humanwhocodes/config-array" "^0.10.4" + "@humanwhocodes/gitignore-to-minimatch" "^1.0.2" + "@humanwhocodes/module-importer" "^1.0.1" ajv "^6.10.0" chalk "^4.0.0" cross-spawn "^7.0.2" @@ -2723,14 +2883,17 @@ eslint@^8.16.0: eslint-scope "^7.1.1" eslint-utils "^3.0.0" eslint-visitor-keys "^3.3.0" - espree "^9.3.2" + espree "^9.4.0" esquery "^1.4.0" esutils "^2.0.2" fast-deep-equal "^3.1.3" file-entry-cache "^6.0.1" + find-up "^5.0.0" functional-red-black-tree "^1.0.1" glob-parent "^6.0.1" globals "^13.15.0" + globby "^11.1.0" + grapheme-splitter "^1.0.4" ignore "^5.2.0" import-fresh "^3.0.0" imurmurhash "^0.1.4" @@ -2746,17 +2909,21 @@ eslint@^8.16.0: strip-ansi "^6.0.1" strip-json-comments "^3.1.0" text-table "^0.2.0" - v8-compile-cache "^2.0.3" -espree@^9.0.0, espree@^9.3.2: - version "9.3.2" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.3.2.tgz#f58f77bd334731182801ced3380a8cc859091596" - integrity sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA== +espree@^9.3.1, espree@^9.4.0: + version "9.4.0" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.4.0.tgz#cd4bc3d6e9336c433265fc0aa016fc1aaf182f8a" + integrity sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw== dependencies: - acorn "^8.7.1" + acorn "^8.8.0" acorn-jsx "^5.3.2" eslint-visitor-keys "^3.3.0" +esprima@~4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + esquery@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" @@ -2796,6 +2963,11 @@ estree-walker@^1.0.1: resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700" integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg== +estree-walker@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-3.0.1.tgz#c2a9fb4a30232f5039b7c030b37ead691932debd" + integrity sha512-woY0RUD87WzMBUiZLx8NsYr23N5BKsOMZHhu2hoNRVh6NXGfoiT1KOL8G3UHlJAnEDGmfa5ubNA/AacfG+Kb0g== + esutils@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" @@ -2855,7 +3027,7 @@ external-editor@^3.0.3: iconv-lite "^0.4.24" tmp "^0.0.33" -externality@^0.2.1: +externality@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/externality/-/externality-0.2.2.tgz#a0592150366ae714f212fe9da20fc9a22c882efa" integrity sha512-seYffJRrRVI3qrCC0asf2mWAvQ/U0jZA+eECylqIxCDHzBs/W+ZeEv3D0bsjNeEewIYZKfELyY96mRactx8C4w== @@ -2899,19 +3071,20 @@ fastq@^1.6.0: reusify "^1.0.4" fetch-blob@^3.1.2, fetch-blob@^3.1.4: - version "3.1.5" - resolved "https://registry.yarnpkg.com/fetch-blob/-/fetch-blob-3.1.5.tgz#0077bf5f3fcdbd9d75a0b5362f77dbb743489863" - integrity sha512-N64ZpKqoLejlrwkIAnb9iLSA3Vx/kjgzpcDhygcqJ2KKjky8nCgUQ+dzXtbrLaWZGZNmNfQTsiQ0weZ1svglHg== + version "3.2.0" + resolved "https://registry.yarnpkg.com/fetch-blob/-/fetch-blob-3.2.0.tgz#f09b8d4bbd45adc6f0c20b7e787e793e309dcce9" + integrity sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ== dependencies: node-domexception "^1.0.0" web-streams-polyfill "^3.0.3" -figures@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" - integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== +figures@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-5.0.0.tgz#126cd055052dea699f8a54e8c9450e6ecfc44d5f" + integrity sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg== dependencies: - escape-string-regexp "^1.0.5" + escape-string-regexp "^5.0.0" + is-unicode-supported "^1.2.0" file-entry-cache@^6.0.1: version "6.0.1" @@ -2932,18 +3105,6 @@ fill-range@^7.0.1: dependencies: to-regex-range "^5.0.1" -filter-obj@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/filter-obj/-/filter-obj-1.1.0.tgz#9b311112bc6c6127a16e016c6c5d7f19e0805c5b" - integrity sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ== - -find-up@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" - integrity sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ== - dependencies: - locate-path "^2.0.0" - find-up@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" @@ -2974,9 +3135,9 @@ flat@^5.0.0, flat@^5.0.2: integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== flatted@^3.1.0: - version "3.2.5" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.5.tgz#76c8584f4fc843db64702a6bd04ab7a8bd666da3" - integrity sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg== + version "3.2.7" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" + integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== follow-redirects@^1.0.0: version "1.15.1" @@ -3091,20 +3252,6 @@ gauge@^3.0.0: strip-ansi "^6.0.1" wide-align "^1.1.2" -gauge@~2.7.3: - version "2.7.4" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" - integrity sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg== - dependencies: - aproba "^1.0.3" - console-control-strings "^1.0.0" - has-unicode "^2.0.0" - object-assign "^4.1.0" - signal-exit "^3.0.0" - string-width "^1.0.1" - strip-ansi "^3.0.1" - wide-align "^1.1.0" - gensync@^1.0.0-beta.2: version "1.0.0-beta.2" resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" @@ -3120,22 +3267,29 @@ get-func-name@^2.0.0: resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" integrity sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig== -get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" - integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== +get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1, get-intrinsic@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.2.tgz#336975123e05ad0b7ba41f152ee4aadbea6cf598" + integrity sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA== dependencies: function-bind "^1.1.1" has "^1.0.3" - has-symbols "^1.0.1" + has-symbols "^1.0.3" -get-port-please@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/get-port-please/-/get-port-please-2.5.0.tgz#1e2d40a6f55c02a1caed99991c64ed84afe50c72" - integrity sha512-NblPebBznYARC1R2r1qmusbJAAgBr954gWhEZgwTerzR8r3ud6U5PI1SG4Lue43r87aikPPjObs85VieIDK99A== +get-port-please@^2.6.1: + version "2.6.1" + resolved "https://registry.yarnpkg.com/get-port-please/-/get-port-please-2.6.1.tgz#80143de24fcaab39b01df977f66ad967e06b17d1" + integrity sha512-4PDSrL6+cuMM1xs6w36ZIkaKzzE0xzfVBCfebHIJ3FE8iB9oic/ECwPw3iNiD4h1AoJ5XLLBhEviFAVrZsDC5A== dependencies: fs-memo "^1.2.0" +get-stream@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" + integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== + dependencies: + pump "^3.0.0" + get-stream@^6.0.0, get-stream@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" @@ -3149,25 +3303,30 @@ get-symbol-description@^1.0.0: call-bind "^1.0.2" get-intrinsic "^1.1.1" +get-tsconfig@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.2.0.tgz#ff368dd7104dab47bf923404eb93838245c66543" + integrity sha512-X8u8fREiYOE6S8hLbq99PeykTDoLVnxvF4DjWKJmz9xy2nNRdUcV8ZN9tniJFeKyTU3qnC9lL8n4Chd6LmVKHg== + git-config-path@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/git-config-path/-/git-config-path-2.0.0.tgz#62633d61af63af4405a5024efd325762f58a181b" integrity sha512-qc8h1KIQbJpp+241id3GuAtkdyJ+IK+LIVtkiFTRKRrmddDzs3SI9CvP1QYmWBFvm1I/PWRwj//of8bgAc0ltA== -git-up@^4.0.0: - version "4.0.5" - resolved "https://registry.yarnpkg.com/git-up/-/git-up-4.0.5.tgz#e7bb70981a37ea2fb8fe049669800a1f9a01d759" - integrity sha512-YUvVDg/vX3d0syBsk/CKUTib0srcQME0JyHkL5BaYdwLsiCslPWmDSi8PUMo9pXYjrryMcmsCoCgsTpSCJEQaA== +git-up@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/git-up/-/git-up-7.0.0.tgz#bace30786e36f56ea341b6f69adfd83286337467" + integrity sha512-ONdIrbBCFusq1Oy0sC71F5azx8bVkvtZtMJAsv+a6lz5YAmbNnLD6HAB4gptHZVLPR8S2/kVN6Gab7lryq5+lQ== dependencies: - is-ssh "^1.3.0" - parse-url "^6.0.0" + is-ssh "^1.4.0" + parse-url "^8.1.0" -git-url-parse@^11.6.0: - version "11.6.0" - resolved "https://registry.yarnpkg.com/git-url-parse/-/git-url-parse-11.6.0.tgz#c634b8de7faa66498a2b88932df31702c67df605" - integrity sha512-WWUxvJs5HsyHL6L08wOusa/IXYtMuCAhrMmnTjQPpBU0TTHyDhnOATNH3xNQz7YOQUsqIIPTGr4xiVti1Hsk5g== +git-url-parse@^13.0.0: + version "13.0.0" + resolved "https://registry.yarnpkg.com/git-url-parse/-/git-url-parse-13.0.0.tgz#9a18d0eaec579fb6379c368aecb09f00b544669c" + integrity sha512-X1kozCqKL82dMrCLi4vie9SHDC+QugKskAMs4VUbIkhURKg5yDwxDmf6Ixg73J+/xVgK5TXKhzn8a94nHJHpnA== dependencies: - git-up "^4.0.0" + git-up "^7.0.0" github-slugger@^1.1.1: version "1.4.0" @@ -3196,7 +3355,7 @@ glob-parent@^6.0.1: dependencies: is-glob "^4.0.3" -glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.2.0: +glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: version "7.2.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== @@ -3214,13 +3373,18 @@ globals@^11.1.0: integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== globals@^13.15.0: - version "13.15.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.15.0.tgz#38113218c907d2f7e98658af246cef8b77e90bac" - integrity sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog== + version "13.17.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.17.0.tgz#902eb1e680a41da93945adbdcb5a9f361ba69bd4" + integrity sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw== dependencies: type-fest "^0.20.2" -globby@^11.0.3, globby@^11.1.0: +globalyzer@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/globalyzer/-/globalyzer-0.1.0.tgz#cb76da79555669a1519d5a8edf093afaa0bf1465" + integrity sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q== + +globby@^11.0.1, globby@^11.0.3, globby@^11.1.0: version "11.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== @@ -3232,10 +3396,10 @@ globby@^11.0.3, globby@^11.1.0: merge2 "^1.4.1" slash "^3.0.0" -globby@^13.1.1: - version "13.1.1" - resolved "https://registry.yarnpkg.com/globby/-/globby-13.1.1.tgz#7c44a93869b0b7612e38f22ed532bfe37b25ea6f" - integrity sha512-XMzoDZbGZ37tufiv7g0N4F/zp3zkwdFtVbV3EHsVl1KQr4RPLfNoT068/97RPshz2J5xYNEjLKKBKaGHifBd3Q== +globby@^13.1.2: + version "13.1.2" + resolved "https://registry.yarnpkg.com/globby/-/globby-13.1.2.tgz#29047105582427ab6eca4f905200667b056da515" + integrity sha512-LKSDZXToac40u8Q1PQtZihbNdTYSNMuWe+K5l+oa6KgDzSvVrHXlJy40hUP522RjAIoNLJYBJi7ow+rbFpIhHQ== dependencies: dir-glob "^3.0.1" fast-glob "^3.2.11" @@ -3243,11 +3407,38 @@ globby@^13.1.1: merge2 "^1.4.1" slash "^4.0.0" +globrex@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/globrex/-/globrex-0.1.2.tgz#dd5d9ec826232730cd6793a5e33a9302985e6098" + integrity sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg== + +got@^11.8.2: + version "11.8.5" + resolved "https://registry.yarnpkg.com/got/-/got-11.8.5.tgz#ce77d045136de56e8f024bebb82ea349bc730046" + integrity sha512-o0Je4NvQObAuZPHLFoRSkdG2lTgtcynqymzg2Vupdx6PorhaT5MCbIyXG6d4D94kk8ZG57QeosgdiqfJWhEhlQ== + dependencies: + "@sindresorhus/is" "^4.0.0" + "@szmarczak/http-timer" "^4.0.5" + "@types/cacheable-request" "^6.0.1" + "@types/responselike" "^1.0.0" + cacheable-lookup "^5.0.3" + cacheable-request "^7.0.2" + decompress-response "^6.0.0" + http2-wrapper "^1.0.0-beta.5.2" + lowercase-keys "^2.0.0" + p-cancelable "^2.0.0" + responselike "^2.0.0" + graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4, graceful-fs@^4.2.9: version "4.2.10" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== +grapheme-splitter@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e" + integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== + gzip-size@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-7.0.0.tgz#9f9644251f15bc78460fccef4055ae5a5562ac60" @@ -3255,15 +3446,15 @@ gzip-size@^7.0.0: dependencies: duplexer "^0.1.2" -h3@^0.7.6, h3@^0.7.8: - version "0.7.8" - resolved "https://registry.yarnpkg.com/h3/-/h3-0.7.8.tgz#98aab2b1128e0f4edf4515d1477e6389230d1388" - integrity sha512-E5hqrzQvQEYVE4h579pLb9gipHagQVZIMP2v83vSKxa40b7ctG1zNylXtW57BT3BGNVeQTccl6vIwyVK1L6lLw== +h3@^0.7.12, h3@^0.7.19, h3@^0.7.21, h3@^0.7.6: + version "0.7.21" + resolved "https://registry.yarnpkg.com/h3/-/h3-0.7.21.tgz#2ca1125c6731cf39b0871b3d8cc9c9d27a616f08" + integrity sha512-F/qdr3JKh8zBLiZyiprH5kuzG6vjoTK3nFnIYFUIQPLsw755GI5JezAFc3HJxbgYlzawcGeJlmsw4xu2t/0n/Q== dependencies: cookie-es "^0.5.0" destr "^1.1.1" radix3 "^0.1.2" - ufo "^0.8.3" + ufo "^0.8.5" has-bigints@^1.0.1, has-bigints@^1.0.2: version "1.0.2" @@ -3287,7 +3478,7 @@ has-property-descriptors@^1.0.0: dependencies: get-intrinsic "^1.1.1" -has-symbols@^1.0.1, has-symbols@^1.0.2, has-symbols@^1.0.3: +has-symbols@^1.0.2, has-symbols@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== @@ -3299,7 +3490,7 @@ has-tostringtag@^1.0.0: dependencies: has-symbols "^1.0.2" -has-unicode@^2.0.0, has-unicode@^2.0.1: +has-unicode@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ== @@ -3311,6 +3502,11 @@ has@^1.0.3: dependencies: function-bind "^1.1.1" +hash-sum@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/hash-sum/-/hash-sum-1.0.2.tgz#33b40777754c6432573c120cc3808bbd10d47f04" + integrity sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA== + hash-sum@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/hash-sum/-/hash-sum-2.0.0.tgz#81d01bb5de8ea4a214ad5d6ead1b523460b0b45a" @@ -3343,6 +3539,11 @@ hast-util-from-parse5@^7.0.0: vfile-location "^4.0.0" web-namespaces "^2.0.0" +hast-util-has-property@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/hast-util-has-property/-/hast-util-has-property-1.0.4.tgz#9f137565fad6082524b382c1e7d7d33ca5059f36" + integrity sha512-ghHup2voGfgFoHMGnaLHOjbYFACKrRh9KFttdCzMCbFoBMJXiNi2+XTrPP8+q6cDJM/RSqlCfVWrjp1H201rZg== + hast-util-has-property@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/hast-util-has-property/-/hast-util-has-property-2.0.0.tgz#c15cd6180f3e535540739fcc9787bcffb5708cae" @@ -3355,6 +3556,11 @@ hast-util-heading-rank@^2.0.0: dependencies: "@types/hast" "^2.0.0" +hast-util-is-element@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/hast-util-is-element/-/hast-util-is-element-1.1.0.tgz#3b3ed5159a2707c6137b48637fbfe068e175a425" + integrity sha512-oUmNua0bFbdrD/ELDSSEadRVtWZOf3iF6Lbv81naqsIV99RnSCieTbWuWCY8BAeEfKJTKl0gRdokv+dELutHGQ== + hast-util-is-element@^2.0.0: version "2.1.2" resolved "https://registry.yarnpkg.com/hast-util-is-element/-/hast-util-is-element-2.1.2.tgz#fc0b0dc7cef3895e839b8d66979d57b0338c68f3" @@ -3363,6 +3569,11 @@ hast-util-is-element@^2.0.0: "@types/hast" "^2.0.0" "@types/unist" "^2.0.0" +hast-util-parse-selector@^2.0.0: + version "2.2.5" + resolved "https://registry.yarnpkg.com/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz#d57c23f4da16ae3c63b3b6ca4616683313499c3a" + integrity sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ== + hast-util-parse-selector@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/hast-util-parse-selector/-/hast-util-parse-selector-3.1.0.tgz#a519e27e8b61bd5a98fad494ed06131ce68d9c3f" @@ -3371,9 +3582,9 @@ hast-util-parse-selector@^3.0.0: "@types/hast" "^2.0.0" hast-util-raw@^7.2.0: - version "7.2.1" - resolved "https://registry.yarnpkg.com/hast-util-raw/-/hast-util-raw-7.2.1.tgz#6e964cee098dbdd93d1b77cf180b5827d48048ab" - integrity sha512-wgtppqXVdXzkDXDFclLLdAyVUJSKMYYi6LWIAbA8oFqEdwksYIcPGM3RkKV1Dfn5GElvxhaOCs0jmCOMayxd3A== + version "7.2.2" + resolved "https://registry.yarnpkg.com/hast-util-raw/-/hast-util-raw-7.2.2.tgz#1974360b2d7f15b5ce26c2a4bac892d5d8185a18" + integrity sha512-0x3BhhdlBcqRIKyc095lBSDvmQNMY3Eulj2PLsT5XCyKYrxssI5yr3P4Kv/PBo1s/DMkZy2voGkMXECnFCZRLQ== dependencies: "@types/hast" "^2.0.0" "@types/parse5" "^6.0.0" @@ -3387,6 +3598,42 @@ hast-util-raw@^7.2.0: web-namespaces "^2.0.0" zwitch "^2.0.0" +hast-util-select@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/hast-util-select/-/hast-util-select-4.0.2.tgz#ae3ef2860e02cda2ad3a2e72b47c1f5e8f44e9e7" + integrity sha512-8EEG2//bN5rrzboPWD2HdS3ugLijNioS1pqOTIolXNf67xxShYw4SQEmVXd3imiBG+U2bC2nVTySr/iRAA7Cjg== + dependencies: + bcp-47-match "^1.0.0" + comma-separated-tokens "^1.0.0" + css-selector-parser "^1.0.0" + direction "^1.0.0" + hast-util-has-property "^1.0.0" + hast-util-is-element "^1.0.0" + hast-util-to-string "^1.0.0" + hast-util-whitespace "^1.0.0" + not "^0.1.0" + nth-check "^2.0.0" + property-information "^5.0.0" + space-separated-tokens "^1.0.0" + unist-util-visit "^2.0.0" + zwitch "^1.0.0" + +hast-util-to-html@^7.1.2: + version "7.1.3" + resolved "https://registry.yarnpkg.com/hast-util-to-html/-/hast-util-to-html-7.1.3.tgz#9f339ca9bea71246e565fc79ff7dbfe98bb50f5e" + integrity sha512-yk2+1p3EJTEE9ZEUkgHsUSVhIpCsL/bvT8E5GzmWc+N1Po5gBw+0F8bo7dpxXR0nu0bQVxVZGX2lBGF21CmeDw== + dependencies: + ccount "^1.0.0" + comma-separated-tokens "^1.0.0" + hast-util-is-element "^1.0.0" + hast-util-whitespace "^1.0.0" + html-void-elements "^1.0.0" + property-information "^5.0.0" + space-separated-tokens "^1.0.0" + stringify-entities "^3.0.1" + unist-util-is "^4.0.0" + xtend "^4.0.0" + hast-util-to-parse5@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/hast-util-to-parse5/-/hast-util-to-parse5-7.0.0.tgz#a39808e69005d10afeed1866029a1fb137df3f7c" @@ -3399,6 +3646,11 @@ hast-util-to-parse5@^7.0.0: web-namespaces "^2.0.0" zwitch "^2.0.0" +hast-util-to-string@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/hast-util-to-string/-/hast-util-to-string-1.0.4.tgz#9b24c114866bdb9478927d7e9c36a485ac728378" + integrity sha512-eK0MxRX47AV2eZ+Lyr18DCpQgodvaS3fAQO2+b9Two9F5HEoRPhiUMNzoXArMJfZi2yieFzUBMRl3HNJ3Jus3w== + hast-util-to-string@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/hast-util-to-string/-/hast-util-to-string-2.0.0.tgz#b008b0a4ea472bf34dd390b7eea1018726ae152a" @@ -3406,6 +3658,22 @@ hast-util-to-string@^2.0.0: dependencies: "@types/hast" "^2.0.0" +hast-util-whitespace@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/hast-util-whitespace/-/hast-util-whitespace-1.0.4.tgz#e4fe77c4a9ae1cb2e6c25e02df0043d0164f6e41" + integrity sha512-I5GTdSfhYfAPNztx2xJRQpG8cuDSNt599/7YUn7Gx/WxNMsG+a835k97TDkFgk123cwjfwINaZknkKkphx/f2A== + +hastscript@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/hastscript/-/hastscript-6.0.0.tgz#e8768d7eac56c3fdeac8a92830d58e811e5bf640" + integrity sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w== + dependencies: + "@types/hast" "^2.0.0" + comma-separated-tokens "^1.0.0" + hast-util-parse-selector "^2.0.0" + property-information "^5.0.0" + space-separated-tokens "^1.0.0" + hastscript@^7.0.0: version "7.0.2" resolved "https://registry.yarnpkg.com/hastscript/-/hastscript-7.0.2.tgz#d811fc040817d91923448a28156463b2e40d590a" @@ -3417,10 +3685,10 @@ hastscript@^7.0.0: property-information "^6.0.0" space-separated-tokens "^2.0.0" -hookable@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/hookable/-/hookable-5.1.1.tgz#8e4cf052da4382ee232138cd9425369b9d5b280e" - integrity sha512-7qam9XBFb+DijNBthaL1k/7lHU2TEMZkWSyuqmU3sCQze1wFm5w9AlEx30PD7a+QVAjOy6Ec2goFwe1YVyk2uA== +hookable@^5.1.1, hookable@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/hookable/-/hookable-5.3.0.tgz#eabdd7bef9e04cb3505c49153b669d5d53974e7d" + integrity sha512-4gTA2q08HT8G32uIW7Jpro3rSXgT2ZTM8R6+r7H7joq90eZlqFPPTvHD6w8WZUohIrbXbDperL96ilb6dkNxNw== hosted-git-info@^2.1.4: version "2.8.9" @@ -3437,11 +3705,21 @@ html-tags@^3.1.0, html-tags@^3.2.0: resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-3.2.0.tgz#dbb3518d20b726524e4dd43de397eb0a95726961" integrity sha512-vy7ClnArOZwCnqZgvv+ddgHgJiAFXe3Ge9ML5/mBctVJoUoYPCdxVucOywjDARn6CVoh3dRSFdPHy2sX80L0Wg== +html-void-elements@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/html-void-elements/-/html-void-elements-1.0.5.tgz#ce9159494e86d95e45795b166c2021c2cfca4483" + integrity sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w== + html-void-elements@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/html-void-elements/-/html-void-elements-2.0.1.tgz#29459b8b05c200b6c5ee98743c41b979d577549f" integrity sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A== +http-cache-semantics@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" + integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== + http-errors@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" @@ -3467,6 +3745,14 @@ http-shutdown@^1.2.2: resolved "https://registry.yarnpkg.com/http-shutdown/-/http-shutdown-1.2.2.tgz#41bc78fc767637c4c95179bc492f312c0ae64c5f" integrity sha512-S9wWkJ/VSY9/k4qcjG318bqJNruzE4HySUhFYknwmu6LBP97KLLfwNf+n4V1BHurvFNkSKLFnK/RsuUnRTf9Vw== +http2-wrapper@^1.0.0-beta.5.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-1.0.3.tgz#b8f55e0c1f25d4ebd08b3b0c2c079f9590800b3d" + integrity sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg== + dependencies: + quick-lru "^5.1.1" + resolve-alpn "^1.0.0" + https-proxy-agent@^5.0.0: version "5.0.1" resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" @@ -3490,25 +3776,18 @@ husky@^8.0.1: resolved "https://registry.yarnpkg.com/husky/-/husky-8.0.1.tgz#511cb3e57de3e3190514ae49ed50f6bc3f50b3e9" integrity sha512-xs7/chUH/CKdOCs7Zy0Aev9e/dKOMZf3K1Az1nar3tzlv0jfqnYtu235bstsWTmXOR0EfINrPa97yy4Lz6RiKw== -iconv-lite@^0.4.24, iconv-lite@^0.4.4: +iconv-lite@^0.4.24: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== dependencies: safer-buffer ">= 2.1.2 < 3" -ieee754@^1.1.13: +ieee754@^1.1.13, ieee754@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== -ignore-walk@^3.0.1: - version "3.0.4" - resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.4.tgz#c9a09f69b7c7b479a5d74ac1a3c0d4236d2a6335" - integrity sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ== - dependencies: - minimatch "^3.0.4" - ignore@^5.1.1, ignore@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" @@ -3545,7 +3824,7 @@ inherits@2, inherits@2.0.4, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== -ini@^1.3.5, ini@~1.3.0: +ini@^1.3.5: version "1.3.8" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== @@ -3555,26 +3834,26 @@ inline-style-parser@0.1.1: resolved "https://registry.yarnpkg.com/inline-style-parser/-/inline-style-parser-0.1.1.tgz#ec8a3b429274e9c0a1f1c4ffa9453a7fef72cea1" integrity sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q== -inquirer@^8.2.2: - version "8.2.4" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-8.2.4.tgz#ddbfe86ca2f67649a67daa6f1051c128f684f0b4" - integrity sha512-nn4F01dxU8VeKfq192IjLsxu0/OmMZ4Lg3xKAns148rCaXP6ntAoEkVYZThWjwON8AlzdZZi6oqnhNbxUG9hVg== +inquirer@^9.1.1: + version "9.1.1" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-9.1.1.tgz#e15a12723f4f607d1b4489b56a0ecc7a6965e17d" + integrity sha512-hfS9EJ1pVkGNbYKqzdGwMj0Dqosd36Qvxd5pFy4657QT23gmtFTSqoYBisZR75DReeSMWPNa8J0Lf6TQCz8PvA== dependencies: - ansi-escapes "^4.2.1" - chalk "^4.1.1" - cli-cursor "^3.1.0" - cli-width "^3.0.0" + ansi-escapes "^5.0.0" + chalk "^5.0.1" + cli-cursor "^4.0.0" + cli-width "^4.0.0" external-editor "^3.0.3" - figures "^3.0.0" + figures "^5.0.0" lodash "^4.17.21" mute-stream "0.0.8" - ora "^5.4.1" + ora "^6.1.2" run-async "^2.4.0" - rxjs "^7.5.5" - string-width "^4.1.0" - strip-ansi "^6.0.0" + rxjs "^7.5.6" + string-width "^5.1.2" + strip-ansi "^7.0.1" through "^2.3.6" - wrap-ansi "^7.0.0" + wrap-ansi "^8.0.1" internal-slot@^1.0.3: version "1.0.3" @@ -3585,10 +3864,10 @@ internal-slot@^1.0.3: has "^1.0.3" side-channel "^1.0.4" -ioredis@^5.0.4: - version "5.0.5" - resolved "https://registry.yarnpkg.com/ioredis/-/ioredis-5.0.5.tgz#94e51284631b30e15b359cd17de59c48945230fb" - integrity sha512-H+u9YB/cBckDO5lt5+S34gGN1EuIBjjaXk31LivQWfX3G1cqZPYCiwF9qCOkqK2NsKVk+saoUN+fLBz5tc2gFw== +ioredis@^5.0.4, ioredis@^5.2.2: + version "5.2.3" + resolved "https://registry.yarnpkg.com/ioredis/-/ioredis-5.2.3.tgz#d5b37eb13e643241660d6cee4eeb41a026cda8c0" + integrity sha512-gQNcMF23/NpvjCaa1b5YycUyQJ9rBNH2xP94LWinNpodMWVUPP5Ai/xXANn/SM7gfIvI62B5CCvZxhg5pOgyMw== dependencies: "@ioredis/commands" "^1.1.1" cluster-key-slot "^1.1.0" @@ -3651,21 +3930,21 @@ is-buffer@^2.0.0: integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== is-builtin-module@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-3.1.0.tgz#6fdb24313b1c03b75f8b9711c0feb8c30b903b00" - integrity sha512-OV7JjAgOTfAFJmHZLvpSTb4qi0nIILDV1gWPYDnDJUTNFM5aGlRAhk4QcT8i7TuAleeEV5Fdkqn3t4mS+Q11fg== + version "3.2.0" + resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-3.2.0.tgz#bb0310dfe881f144ca83f30100ceb10cf58835e0" + integrity sha512-phDA4oSGt7vl1n5tJvTWooWWAsXLY+2xCnxNqvKhGEzujg+A43wPlPOyDg3C8XQHN+6k/JTQWJ/j0dQh/qr+Hw== dependencies: - builtin-modules "^3.0.0" + builtin-modules "^3.3.0" is-callable@^1.1.4, is-callable@^1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== -is-core-module@^2.3.0, is-core-module@^2.8.1: - version "2.9.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.9.0.tgz#e1c34429cd51c6dd9e09e0799e396e27b19a9c69" - integrity sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A== +is-core-module@^2.10.0, is-core-module@^2.8.1, is-core-module@^2.9.0: + version "2.10.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.10.0.tgz#9012ede0a91c69587e647514e1d5277019e728ed" + integrity sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg== dependencies: has "^1.0.3" @@ -3691,18 +3970,19 @@ is-docker@^3.0.0: resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-3.0.0.tgz#90093aa3106277d8a77a5910dbae71747e15a200" integrity sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ== +is-expression@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-expression/-/is-expression-4.0.0.tgz#c33155962abf21d0afd2552514d67d2ec16fd2ab" + integrity sha512-zMIXX63sxzG3XrkHkrAPvm/OVZVSCPNkwMHU8oTX7/U3AL78I0QXCEICXUM13BIa8TYGZ68PiTKfQz3yaTNr4A== + dependencies: + acorn "^7.1.1" + object-assign "^4.1.1" + is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== -is-fullwidth-code-point@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" - integrity sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw== - dependencies: - number-is-nan "^1.0.0" - is-fullwidth-code-point@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" @@ -3725,10 +4005,10 @@ is-hexadecimal@^2.0.0: resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz#86b5bf668fca307498d319dfc03289d781a90027" integrity sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg== -is-interactive@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" - integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== +is-interactive@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-2.0.0.tgz#40c57614593826da1100ade6059778d597f16e90" + integrity sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ== is-module@^1.0.0: version "1.0.0" @@ -3753,15 +4033,20 @@ is-number@^7.0.0: integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== is-plain-obj@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-4.0.0.tgz#06c0999fd7574edf5a906ba5644ad0feb3a84d22" - integrity sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw== + version "4.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-4.1.0.tgz#d65025edec3657ce032fd7db63c97883eaed71f0" + integrity sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg== is-primitive@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-3.0.1.tgz#98c4db1abff185485a657fc2905052b940524d05" integrity sha512-GljRxhWvlCNRfZyORiH77FwdFwGcMO620o37EOYC0ORWdq+WYNVqW0w2Juzew4M+L81l6/QS3t5gkkihyRqv9w== +is-promise@^2.0.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1" + integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ== + is-promise@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-4.0.0.tgz#42ff9f84206c1991d26debf520dd5c01042dd2f3" @@ -3774,7 +4059,7 @@ is-reference@^1.2.1: dependencies: "@types/estree" "*" -is-regex@^1.1.4: +is-regex@^1.0.3, is-regex@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== @@ -3789,12 +4074,12 @@ is-shared-array-buffer@^1.0.2: dependencies: call-bind "^1.0.2" -is-ssh@^1.3.0: - version "1.3.3" - resolved "https://registry.yarnpkg.com/is-ssh/-/is-ssh-1.3.3.tgz#7f133285ccd7f2c2c7fc897b771b53d95a2b2c7e" - integrity sha512-NKzJmQzJfEEma3w5cJNcUMxoXfDjz0Zj0eyCalHn2E6VOwlzjZo0yuO2fcBSf8zhFuVCL/82/r5gRcoi6aEPVQ== +is-ssh@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/is-ssh/-/is-ssh-1.4.0.tgz#4f8220601d2839d8fa624b3106f8e8884f01b8b2" + integrity sha512-x7+VxdxOdlV3CYpjvRLBv5Lo9OJerlYanjwFrPR9fuGPjCiNiCzFgAWpiLAohSbsnH4ZAys3SBh+hq5rJosxUQ== dependencies: - protocols "^1.1.0" + protocols "^2.0.1" is-stream@^2.0.0: version "2.0.1" @@ -3820,10 +4105,15 @@ is-symbol@^1.0.2, is-symbol@^1.0.3: dependencies: has-symbols "^1.0.2" -is-unicode-supported@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" - integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== +is-unicode-supported@^1.1.0, is-unicode-supported@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-1.2.0.tgz#f4f54f34d8ebc84a46b93559a036763b6d3e1014" + integrity sha512-wH+U77omcRzevfIG8dDhTS0V9zZyweakfD01FULl97+0EHiJTTZtJqxPSkIIo/SDPv/i07k/C9jAPY+jwLLeUQ== + +is-url@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/is-url/-/is-url-1.2.4.tgz#04a4df46d28c4cff3d73d01ff06abeb318a1aa52" + integrity sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww== is-utf8@^0.2.0: version "0.2.1" @@ -3869,9 +4159,9 @@ istanbul-lib-report@^3.0.0: supports-color "^7.1.0" istanbul-reports@^3.1.4: - version "3.1.4" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.4.tgz#1b6f068ecbc6c331040aab5741991273e609e40c" - integrity sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw== + version "3.1.5" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.5.tgz#cc9a6ab25cb25659810e4785ed9d9fb742578bae" + integrity sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w== dependencies: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" @@ -3885,16 +4175,21 @@ jest-worker@^26.2.1: merge-stream "^2.0.0" supports-color "^7.0.0" -jiti@^1.12.14, jiti@^1.12.9, jiti@^1.13.0: - version "1.13.0" - resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.13.0.tgz#3cdfc4e651ca0cca4c62ed5e47747b5841d41a8e" - integrity sha512-/n9mNxZj/HDSrincJ6RP+L+yXbpnB8FybySBa+IjIaoH9FIxBbrbRT5XUbe8R7zuVM2AQqNMNDDqz0bzx3znOQ== +jiti@^1.12.14, jiti@^1.12.9, jiti@^1.14.0, jiti@^1.15.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.15.0.tgz#cfa7ebfe4a60d77cf3bd4f8630cd99225b638417" + integrity sha512-cClBkETOCVIpPMjX3ULlivuBvmt8l2Xtz+SHrULO06OqdtV0QFR2cuhc4FJnXByjUUX4CY0pl1nph0aFh9D3yA== joycon@^3.0.1: version "3.1.1" resolved "https://registry.yarnpkg.com/joycon/-/joycon-3.1.1.tgz#bce8596d6ae808f8b68168f5fc69280996894f03" integrity sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw== +js-stringify@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/js-stringify/-/js-stringify-1.0.2.tgz#1736fddfd9724f28a3682adc6230ae7e4e9679db" + integrity sha512-rtS5ATOo2Q5k1G+DADISilDA6lv79zIiwFd6CcjuIxGKLFm5C+RLImRscVap9k55i+MOZwgliw+NejvkLuGD5g== + js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" @@ -3912,6 +4207,11 @@ jsesc@^2.5.1: resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== +json-buffer@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== + json-parse-even-better-errors@^2.3.0: version "2.3.1" resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" @@ -3922,11 +4222,6 @@ json-schema-traverse@^0.4.1: resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== -json-schema-traverse@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" - integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== - json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" @@ -3944,10 +4239,10 @@ json5@^2.2.1: resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c" integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA== -jsonc-parser@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.0.0.tgz#abdd785701c7e7eaca8a9ec8cf070ca51a745a22" - integrity sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA== +jsonc-parser@^3.0.0, jsonc-parser@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.2.0.tgz#31ff3f4c2b9793f89c67212627c51c6394f88e76" + integrity sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w== jsonfile@^6.0.1: version "6.1.0" @@ -3958,25 +4253,35 @@ jsonfile@^6.0.1: optionalDependencies: graceful-fs "^4.1.6" +jstransformer@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/jstransformer/-/jstransformer-1.0.0.tgz#ed8bf0921e2f3f1ed4d5c1a44f68709ed24722c3" + integrity sha512-C9YK3Rf8q6VAPDCCU9fnqo3mAfOH6vUGnMcP4AQAYIEpWtfGLpwOTmZ+igtdK5y+VvI2n3CyYSzy4Qh34eq24A== + dependencies: + is-promise "^2.0.0" + promise "^7.0.1" + +keyv@^4.0.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.0.tgz#dbce9ade79610b6e641a9a65f2f6499ba06b9bc6" + integrity sha512-2YvuMsA+jnFGtBareKqgANOEKe1mk3HKiXu2fRmAfyxG0MJAywNhi5ttWA3PMjl4NmpyjZNbFifR2vNjW1znfA== + dependencies: + json-buffer "3.0.1" + kleur@^4.0.3: - version "4.1.4" - resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.4.tgz#8c202987d7e577766d039a8cd461934c01cda04d" - integrity sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA== + version "4.1.5" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.5.tgz#95106101795f7050c6c650f350c683febddb1780" + integrity sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ== klona@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.5.tgz#d166574d90076395d9963aa7a928fabb8d76afbc" integrity sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ== -knitwork@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/knitwork/-/knitwork-0.1.1.tgz#8f3d3a14fd5e81b68149c4b69ae4d5e551cfdb72" - integrity sha512-DxjuhTzCDeXjAcsQuqoZhTFF/wqvaVH2YA7QRhBRpsSeaL44S93hDxyvoluApwk3wjMdia7dc9J0Sj9MHD8rxg== - -kolorist@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/kolorist/-/kolorist-1.5.1.tgz#c3d66dc4fabde4f6b7faa6efda84c00491f9e52b" - integrity sha512-lxpCM3HTvquGxKGzHeknB/sUjuVoUElLlfYnXZT73K8geR9jQbroGlSCFBax9/0mpGoD3kzcMLnOlGQPJJNyqQ== +knitwork@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/knitwork/-/knitwork-0.1.2.tgz#5447a81d8eaede57d236f864ec29b8dc2bc192bf" + integrity sha512-2ekmY2S/VB3YGVhrIFadyJQpkjMFSf48tsXCnA+kjs4FEQIT+5FLyOF0No/X58z/2E/VaMyeJfukRoVT4gMsfQ== lazystream@^1.0.0: version "1.0.1" @@ -3993,47 +4298,52 @@ levn@^0.4.1: prelude-ls "^1.2.1" type-check "~0.4.0" -lilconfig@2.0.5, lilconfig@^2.0.3: +lilconfig@2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.5.tgz#19e57fd06ccc3848fd1891655b5a447092225b25" integrity sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg== +lilconfig@^2.0.3: + version "2.0.6" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.6.tgz#32a384558bd58af3d4c6e077dd1ad1d397bc69d4" + integrity sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg== + lines-and-columns@^1.1.6: version "1.2.4" resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== -lint-staged@^12.5.0: - version "12.5.0" - resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-12.5.0.tgz#d6925747480ae0e380d13988522f9dd8ef9126e3" - integrity sha512-BKLUjWDsKquV/JuIcoQW4MSAI3ggwEImF1+sB4zaKvyVx1wBk3FsG7UK9bpnmBTN1pm7EH2BBcMwINJzCRv12g== +lint-staged@^13.0.3: + version "13.0.3" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-13.0.3.tgz#d7cdf03a3830b327a2b63c6aec953d71d9dc48c6" + integrity sha512-9hmrwSCFroTSYLjflGI8Uk+GWAwMB4OlpU4bMJEAT5d/llQwtYKoim4bLOyLCuWFAhWEupE0vkIFqtw/WIsPug== dependencies: cli-truncate "^3.1.0" - colorette "^2.0.16" + colorette "^2.0.17" commander "^9.3.0" debug "^4.3.4" - execa "^5.1.1" + execa "^6.1.0" lilconfig "2.0.5" listr2 "^4.0.5" micromatch "^4.0.5" normalize-path "^3.0.0" object-inspect "^1.12.2" - pidtree "^0.5.0" + pidtree "^0.6.0" string-argv "^0.3.1" - supports-color "^9.2.2" - yaml "^1.10.2" + yaml "^2.1.1" -listhen@^0.2.11: - version "0.2.11" - resolved "https://registry.yarnpkg.com/listhen/-/listhen-0.2.11.tgz#86822ba2990828d95d54d2970d1bd52d6431f7c8" - integrity sha512-AJPi6PByg78TEvmB9XWB15Cgv00MXDT0BWF+8LVFozbF9qLbOPjXXfwxkYIAmGjPOAAsPzBMEYytj7RSBhkaeg== +listhen@^0.2.11, listhen@^0.2.13, listhen@^0.2.15: + version "0.2.15" + resolved "https://registry.yarnpkg.com/listhen/-/listhen-0.2.15.tgz#1af0f47f94a09d5f3ba4efa5a4b07df65198bb59" + integrity sha512-F/IWj/aJLeokHAIVY+l3JoWRUnbRaf2F0cr+Ybc1YyozMA/yP0C2nf3c0Oi7vAbFvtfiwfWWfP7bIrQc/u5L1A== dependencies: clipboardy "^3.0.0" - colorette "^2.0.16" + colorette "^2.0.19" defu "^6.0.0" - get-port-please "^2.5.0" + get-port-please "^2.6.1" http-shutdown "^1.2.2" selfsigned "^2.0.1" + ufo "^0.8.5" listr2@^4.0.5: version "4.0.5" @@ -4049,18 +4359,10 @@ listr2@^4.0.5: through "^2.3.8" wrap-ansi "^7.0.0" -local-pkg@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/local-pkg/-/local-pkg-0.4.1.tgz#e7b0d7aa0b9c498a1110a5ac5b00ba66ef38cfff" - integrity sha512-lL87ytIGP2FU5PWwNDo0w3WhIo2gopIAxPg9RxDYF7m4rr5ahuZxP22xnJHIvaLTe4Z9P6uKKY2UHiwyB4pcrw== - -locate-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" - integrity sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA== - dependencies: - p-locate "^2.0.0" - path-exists "^3.0.0" +local-pkg@^0.4.2: + version "0.4.2" + resolved "https://registry.yarnpkg.com/local-pkg/-/local-pkg-0.4.2.tgz#13107310b77e74a0e513147a131a2ba288176c2f" + integrity sha512-mlERgSPrbxU3BP4qBqAvvwlgW4MTg78iwJdGGnv7kibKjWcJksrG3t6LB5lXI93wXRDvG4NpUgJFmTG4T6rdrg== locate-path@^5.0.0: version "5.0.0" @@ -4141,11 +4443,6 @@ lodash.templatesettings@^4.0.0: dependencies: lodash._reinterpolate "^3.0.0" -lodash.truncate@^4.4.2: - version "4.4.2" - resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" - integrity sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw== - lodash.union@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/lodash.union/-/lodash.union-4.6.0.tgz#48bb5088409f16f1821666641c44dd1aaae3cd88" @@ -4156,18 +4453,18 @@ lodash.uniq@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== -lodash@^4.17.21, lodash@^4.17.3: +lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.3: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== -log-symbols@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" - integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== +log-symbols@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-5.1.0.tgz#a20e3b9a5f53fac6aeb8e2bb22c07cf2c8f16d93" + integrity sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA== dependencies: - chalk "^4.1.0" - is-unicode-supported "^0.1.0" + chalk "^5.0.0" + is-unicode-supported "^1.1.0" log-update@^4.0.0: version "4.0.0" @@ -4191,6 +4488,31 @@ loupe@^2.3.1: dependencies: get-func-name "^2.0.0" +lower-case@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" + integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== + dependencies: + tslib "^2.0.3" + +lowercase-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" + integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== + +lowercase-keys@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-3.0.0.tgz#c5e7d442e37ead247ae9db117a9d0a467c89d4f2" + integrity sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ== + +lru-cache@^4.1.5: + version "4.1.5" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" + integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + lru-cache@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" @@ -4205,10 +4527,10 @@ magic-string@^0.25.7: dependencies: sourcemap-codec "^1.4.8" -magic-string@^0.26.1, magic-string@^0.26.2: - version "0.26.2" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.26.2.tgz#5331700e4158cd6befda738bb6b0c7b93c0d4432" - integrity sha512-NzzlXpclt5zAbmo6h6jNc8zl2gNRGHvmsZW4IvZhTC4W7k4OlLP+S5YLussa/r3ixNT66KOQfNORlXHSOy/X4A== +magic-string@^0.26.1, magic-string@^0.26.2, magic-string@^0.26.3: + version "0.26.3" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.26.3.tgz#25840b875140f7b4785ab06bddc384270b7dd452" + integrity sha512-u1Po0NDyFcwdg2nzHT88wSK0+Rih0N1M+Ph1Sp08k8yvFFU3KR72wryS7e1qMPJypt99WB7fIFVCA92mQrMjrg== dependencies: sourcemap-codec "^1.4.8" @@ -4233,18 +4555,18 @@ mdast-squeeze-paragraphs@^5.0.0: unist-util-remove "^3.0.0" mdast-util-definitions@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/mdast-util-definitions/-/mdast-util-definitions-5.1.0.tgz#b6d10ef00a3c4cf191e8d9a5fa58d7f4a366f817" - integrity sha512-5hcR7FL2EuZ4q6lLMUK5w4lHT2H3vqL9quPvYZ/Ku5iifrirfMHiGdhxdXMUbUkDmz5I+TYMd7nbaxUhbQkfpQ== + version "5.1.1" + resolved "https://registry.yarnpkg.com/mdast-util-definitions/-/mdast-util-definitions-5.1.1.tgz#2c1d684b28e53f84938bb06317944bee8efa79db" + integrity sha512-rQ+Gv7mHttxHOBx2dkF4HWTg+EE+UR78ptQWDylzPKaQuVGdG4HIoY3SrS/pCp80nZ04greFvXbVFHT+uf0JVQ== dependencies: "@types/mdast" "^3.0.0" "@types/unist" "^2.0.0" - unist-util-visit "^3.0.0" + unist-util-visit "^4.0.0" mdast-util-find-and-replace@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/mdast-util-find-and-replace/-/mdast-util-find-and-replace-2.2.0.tgz#6167edf16c2fd79e7213024544575f304151953f" - integrity sha512-bz8hUWkMX7UcasORORcyBEsTKJ+dBiFwRPrm43hHC9NMRylIMLbfO5rwfeCN+UtY4AAi7s8WqXftb9eX6ZsqCg== + version "2.2.1" + resolved "https://registry.yarnpkg.com/mdast-util-find-and-replace/-/mdast-util-find-and-replace-2.2.1.tgz#249901ef43c5f41d6e8a8d446b3b63b17e592d7c" + integrity sha512-SobxkQXFAdd4b5WmEakmkVoh18icjQRxGy5OWTCzgsLRm1Fu/KCtwD1HIQSsmq5ZRjVH0Ehwg6/Fn3xIUk+nKw== dependencies: escape-string-regexp "^5.0.0" unist-util-is "^5.0.0" @@ -4325,10 +4647,10 @@ mdast-util-gfm@^2.0.0: mdast-util-gfm-task-list-item "^1.0.0" mdast-util-to-markdown "^1.0.0" -mdast-util-to-hast@^12.1.0, mdast-util-to-hast@^12.1.1: - version "12.1.1" - resolved "https://registry.yarnpkg.com/mdast-util-to-hast/-/mdast-util-to-hast-12.1.1.tgz#89a2bb405eaf3b05eb8bf45157678f35eef5dbca" - integrity sha512-qE09zD6ylVP14jV4mjLIhDBOrpFdShHZcEsYvvKGABlr9mGbV7mTlRWdoFxL/EYSTNDiC9GZXy7y8Shgb9Dtzw== +mdast-util-to-hast@^12.1.0, mdast-util-to-hast@^12.2.1: + version "12.2.1" + resolved "https://registry.yarnpkg.com/mdast-util-to-hast/-/mdast-util-to-hast-12.2.1.tgz#5bba5e8234abcf66ae474cace5d0372c0dc4bfd7" + integrity sha512-dyindR2P7qOqXO1hQirZeGtVbiX7xlNQbw7gGaAwN4A1dh4+X8xU/JyYmRoyB8Fu1uPXzp7mlL5QwW7k+knvgA== dependencies: "@types/hast" "^2.0.0" "@types/mdast" "^3.0.0" @@ -4336,6 +4658,7 @@ mdast-util-to-hast@^12.1.0, mdast-util-to-hast@^12.1.1: mdast-util-definitions "^5.0.0" mdurl "^1.0.0" micromark-util-sanitize-uri "^1.0.0" + trim-lines "^3.0.0" unist-builder "^3.0.0" unist-util-generated "^2.0.0" unist-util-position "^4.0.0" @@ -4675,6 +4998,11 @@ mime@1.6.0: resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== +mime@^2.5.2: + version "2.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367" + integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== + mime@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/mime/-/mime-3.0.0.tgz#b374550dca3a0c18443b0c950a6a58f1931cf7a7" @@ -4695,6 +5023,16 @@ mimic-fn@^4.0.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== +mimic-response@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" + integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== + +mimic-response@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" + integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== + min-indent@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" @@ -4707,6 +5045,13 @@ minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2: dependencies: brace-expansion "^1.1.7" +minimatch@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.0.tgz#1717b464f4971b144f6aabe8f2d0b8e4511e09c7" + integrity sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg== + dependencies: + brace-expansion "^2.0.1" + minimatch@~3.0.4: version "3.0.8" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.8.tgz#5e6a59bd11e2ab0de1cfb843eb2d82e546c321c1" @@ -4728,9 +5073,9 @@ minipass@^2.6.0, minipass@^2.9.0: yallist "^3.0.0" minipass@^3.0.0: - version "3.1.6" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.6.tgz#3b8150aa688a711a1521af5e8779c1d3bb4f45ee" - integrity sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ== + version "3.3.4" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.4.tgz#ca99f95dd77c43c7a76bf51e6d200025eee0ffae" + integrity sha512-I9WPbWHCGu8W+6k1ZiGpPu0GkoKBeorkfKNuAFBNS1HNFJvke82sxvI5bzcCNpWPorkOO5QQ+zomzzwRxejXiw== dependencies: yallist "^4.0.0" @@ -4762,19 +5107,19 @@ mkdirp@^1.0.3, mkdirp@^1.0.4: integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== mkdist@^0.3.9: - version "0.3.10" - resolved "https://registry.yarnpkg.com/mkdist/-/mkdist-0.3.10.tgz#44154c4ced16706763dfa8f79cdf84b396bc6b9d" - integrity sha512-Aoc6hjILr2JPUJU2OUvBiD5sZ/CG1FeiXwk6KKPqE0iSTjBCrjrVK/fP5ig+TB3AKHvh2aA2QXXGeXVCJBdSwg== + version "0.3.13" + resolved "https://registry.yarnpkg.com/mkdist/-/mkdist-0.3.13.tgz#1f0494a1017cdfd1e5c8175c815f5b51cb8aebc0" + integrity sha512-+eCPpkr8l2X630y5PIlkts2tzYEsb+aGIgXdrQv9ZGtWE2bLlD6kVIFfI6FJwFpjjw4dPPyorxQc6Uhm/oXlvg== dependencies: - defu "^5.0.0" - esbuild "^0.13.8" + defu "^6.0.0" + esbuild "^0.14.47" fs-extra "^10.0.0" globby "^11.0.3" jiti "^1.12.9" mri "^1.2.0" pathe "^0.2.0" -mlly@^0.3.19, mlly@^0.3.6: +mlly@^0.3.19: version "0.3.19" resolved "https://registry.yarnpkg.com/mlly/-/mlly-0.3.19.tgz#a4aac171d2142eafc9c9d4c1937dac5a11f70565" integrity sha512-zMq5n3cOf4fOzA4WoeulxagbAgMChdev3MgP6K51k7M0u2whTXxupfIY4VVzws4vxkiWhwH1rVQcsw7zDGfRhA== @@ -4784,13 +5129,15 @@ mlly@^0.4.1: resolved "https://registry.yarnpkg.com/mlly/-/mlly-0.4.3.tgz#a5c51b073601cc4cc49bda971f24d903a25adc29" integrity sha512-xezyv7hnfFPuiDS3AiJuWs0OxlvooS++3L2lURvmh/1n7UG4O2Ehz9UkwWgg3wyLEPKGVfJLlr2DjjTCl9UJTg== -mlly@^0.5.1, mlly@^0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/mlly/-/mlly-0.5.2.tgz#67b908e967cfcaee27e90bef8a84aaede599bd21" - integrity sha512-4GTELSSErv6ZZJYU98fZNuIBJcXSz+ktHdRrCYEqU1m6ZlebOCG0jwZ+IEd9vOrbpYsVBBMC5OTrEyLnKRcauQ== +mlly@^0.5.12, mlly@^0.5.14, mlly@^0.5.2, mlly@^0.5.7: + version "0.5.14" + resolved "https://registry.yarnpkg.com/mlly/-/mlly-0.5.14.tgz#1aead555f8ffafd29f192676f4697805e25112c3" + integrity sha512-DgRgNUSX9NIxxCxygX4Xeg9C7GX7OUx1wuQ8cXx9o9LE0e9wrH+OZ9fcnrlEedsC/rtqry3ZhUddC759XD/L0w== dependencies: - pathe "^0.2.0" - pkg-types "^0.3.2" + acorn "^8.8.0" + pathe "^0.3.5" + pkg-types "^0.3.4" + ufo "^0.8.5" mri@^1.1.0, mri@^1.2.0: version "1.2.0" @@ -4817,88 +5164,92 @@ mute-stream@0.0.8: resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== -nanoid@^3.1.32, nanoid@^3.3.3, nanoid@^3.3.4: +nanoid@^3.3.4: version "3.3.4" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab" integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw== +nanoid@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-4.0.0.tgz#6e144dee117609232c3f415c34b0e550e64999a5" + integrity sha512-IgBP8piMxe/gf73RTQx7hmnhwz0aaEXYakvqZyE302IXW3HyVNhdNGC+O2MwMAVhLEnvXlvKtGbtJf6wvHihCg== + natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== -needle@^2.2.1: - version "2.9.1" - resolved "https://registry.yarnpkg.com/needle/-/needle-2.9.1.tgz#22d1dffbe3490c2b83e301f7709b6736cd8f2684" - integrity sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ== - dependencies: - debug "^3.2.6" - iconv-lite "^0.4.4" - sax "^1.2.4" - -nitropack@^0.4.2: - version "0.4.4" - resolved "https://registry.yarnpkg.com/nitropack/-/nitropack-0.4.4.tgz#9bec71273595613dfecef7554a109ab03e79e39b" - integrity sha512-nK6UkSvAHvtx9sSLntirQgU5wJB49BIwJXf+kNbkHrA7cxFNZG11GH1v+vzkMSDKfBPWvVMewEkOGfIGXDpH9g== +nitropack@^0.5.0: + version "0.5.1" + resolved "https://registry.yarnpkg.com/nitropack/-/nitropack-0.5.1.tgz#7d0c8ff79af2d7be0e3dd15422b77355240e5588" + integrity sha512-mPDcj1lmbjZLtXJjE4EXkXsq2S+DnbBNHYOs1SNBeFiBIlOYqhyHipJR5zx/m/SuR9ELd9DyBIVm/ulQDipUhg== dependencies: "@cloudflare/kv-asset-handler" "^0.2.0" - "@netlify/functions" "^1.0.0" + "@netlify/functions" "^1.2.0" "@rollup/plugin-alias" "^3.1.9" - "@rollup/plugin-commonjs" "^22.0.0" + "@rollup/plugin-commonjs" "^22.0.2" "@rollup/plugin-inject" "^4.0.4" "@rollup/plugin-json" "^4.1.0" "@rollup/plugin-node-resolve" "^13.3.0" "@rollup/plugin-replace" "^4.0.0" "@rollup/plugin-wasm" "^5.2.0" "@rollup/pluginutils" "^4.2.1" - "@types/jsdom" "^16.2.14" - "@vercel/nft" "^0.18.2" + "@vercel/nft" "^0.22.1" archiver "^5.3.1" - c12 "^0.2.7" + c12 "^0.2.10" chalk "^5.0.1" chokidar "^3.5.3" consola "^2.15.3" cookie-es "^0.5.0" - defu "^6.0.0" + defu "^6.1.0" destr "^1.1.1" dot-prop "^7.2.0" - esbuild "^0.14.38" + esbuild "^0.15.7" + escape-string-regexp "^5.0.0" etag "^1.8.1" fs-extra "^10.1.0" - globby "^13.1.1" + globby "^13.1.2" gzip-size "^7.0.0" - h3 "^0.7.8" - hookable "^5.1.1" + h3 "^0.7.21" + hookable "^5.3.0" http-proxy "^1.18.1" is-primitive "^3.0.1" - jiti "^1.13.0" + jiti "^1.14.0" klona "^2.0.5" - listhen "^0.2.11" + knitwork "^0.1.2" + listhen "^0.2.15" mime "^3.0.0" - mlly "^0.5.2" + mlly "^0.5.14" mri "^1.2.0" - node-fetch-native "^0.1.2" - ohash "^0.1.0" - ohmyfetch "^0.4.16" - pathe "^0.3.0" + node-fetch-native "^0.1.4" + ohash "^0.1.5" + ohmyfetch "^0.4.18" + pathe "^0.3.5" perfect-debounce "^0.1.3" - pkg-types "^0.3.2" + pkg-types "^0.3.4" pretty-bytes "^6.0.0" radix3 "^0.1.2" - rollup "^2.72.1" + rollup "^2.79.0" rollup-plugin-terser "^7.0.2" - rollup-plugin-visualizer "^5.6.0" - scule "^0.2.1" + rollup-plugin-visualizer "^5.8.1" + scule "^0.3.2" semver "^7.3.7" serve-placeholder "^2.0.1" serve-static "^1.15.0" source-map-support "^0.5.21" - std-env "^3.1.1" - table "^6.8.0" - ufo "^0.8.4" - unenv "^0.5.2" - unimport "^0.2.1" - unstorage "^0.4.1" + std-env "^3.2.1" + ufo "^0.8.5" + unenv "^0.6.2" + unimport "^0.6.7" + unstorage "^0.5.6" + +no-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d" + integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== + dependencies: + lower-case "^2.0.2" + tslib "^2.0.3" node-domexception@^1.0.0: version "1.0.0" @@ -4912,10 +5263,10 @@ node-emoji@^1.11.0: dependencies: lodash "^4.17.21" -node-fetch-native@^0.1.2, node-fetch-native@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/node-fetch-native/-/node-fetch-native-0.1.3.tgz#61a4e4250d7aa6e272cacdbaa979ea916bff321a" - integrity sha512-Jf1IQZdovUIv9E+5avmN6Sf+bND+rnMlODnBQhdE2VRyuWP9WgqZb/KEgPekh19DAN1X2C4vbS1VCOaz2OH19g== +node-fetch-native@^0.1.3, node-fetch-native@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/node-fetch-native/-/node-fetch-native-0.1.4.tgz#09b06754f9e298bac23848050da2352125634f89" + integrity sha512-10EKpOCQPXwZVFh3U1ptOMWBgKTbsN7Vvo6WVKt5pw4hp8zbv6ZVBZPlXw+5M6Tyi1oc1iD4/sNPd71KYA16tQ== node-fetch@^2.6.7: version "2.6.7" @@ -4924,10 +5275,10 @@ node-fetch@^2.6.7: dependencies: whatwg-url "^5.0.0" -node-fetch@^3.2.3: - version "3.2.4" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-3.2.4.tgz#3fbca2d8838111048232de54cb532bd3cf134947" - integrity sha512-WvYJRN7mMyOLurFR2YpysQGuwYrJN+qrrpHjJDuKMcSPdfFccRUla/kng2mz6HWSBxJcqPbvatS6Gb4RhOzCJw== +node-fetch@^3.2.10: + version "3.2.10" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-3.2.10.tgz#e8347f94b54ae18b57c9c049ef641cef398a85c8" + integrity sha512-MhuzNwdURnZ1Cp4XTazr69K0BTizsBroX7Zx3UgDSVcZYKF/6p0CBe4EUb/hLqmzVhl0UpYfgRljQ4yxE+iCxA== dependencies: data-uri-to-buffer "^4.0.0" fetch-blob "^3.1.4" @@ -4939,38 +5290,14 @@ node-forge@^1: integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== node-gyp-build@^4.2.2: - version "4.4.0" - resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.4.0.tgz#42e99687ce87ddeaf3a10b99dc06abc11021f3f4" - integrity sha512-amJnQCcgtRVw9SvoebO3BKGESClrfXGCUTX9hSn1OuGQTQBOZmVd0Z0OlecpuRksKvbsUqALE8jls/ErClAPuQ== - -node-pre-gyp@^0.13.0: - version "0.13.0" - resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.13.0.tgz#df9ab7b68dd6498137717838e4f92a33fc9daa42" - integrity sha512-Md1D3xnEne8b/HGVQkZZwV27WUi1ZRuZBij24TNaZwUPU3ZAFtvT6xxJGaUVillfmMKnn5oD1HoGsp2Ftik7SQ== - dependencies: - detect-libc "^1.0.2" - mkdirp "^0.5.1" - needle "^2.2.1" - nopt "^4.0.1" - npm-packlist "^1.1.6" - npmlog "^4.0.2" - rc "^1.2.7" - rimraf "^2.6.1" - semver "^5.3.0" - tar "^4" - -node-releases@^2.0.3: - version "2.0.5" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.5.tgz#280ed5bc3eba0d96ce44897d8aee478bfb3d9666" - integrity sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q== + version "4.5.0" + resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.5.0.tgz#7a64eefa0b21112f89f58379da128ac177f20e40" + integrity sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg== -nopt@^4.0.1: - version "4.0.3" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.3.tgz#a375cad9d02fd921278d954c2254d5aa57e15e48" - integrity sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg== - dependencies: - abbrev "1" - osenv "^0.1.4" +node-releases@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.6.tgz#8a7088c63a55e493845683ebf3c828d8c51c5503" + integrity sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg== nopt@^5.0.0: version "5.0.0" @@ -4997,33 +5324,17 @@ normalize-path@^3.0.0, normalize-path@~3.0.0: normalize-range@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" - integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= + integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== -normalize-url@^6.0.1, normalize-url@^6.1.0: +normalize-url@^6.0.1: version "6.1.0" resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== -npm-bundled@^1.0.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.2.tgz#944c78789bd739035b70baa2ca5cc32b8d860bc1" - integrity sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ== - dependencies: - npm-normalize-package-bin "^1.0.1" - -npm-normalize-package-bin@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2" - integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA== - -npm-packlist@^1.1.6: - version "1.4.8" - resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.8.tgz#56ee6cc135b9f98ad3d51c1c95da22bbb9b2ef3e" - integrity sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A== - dependencies: - ignore-walk "^3.0.1" - npm-bundled "^1.0.1" - npm-normalize-package-bin "^1.0.1" +not@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/not/-/not-0.1.0.tgz#c9691c1746c55dcfbe54cbd8bd4ff041bc2b519d" + integrity sha512-5PDmaAsVfnWUgTUbJ3ERwn7u79Z0dYxN9ErxCpVJJqe2RK0PJ3z+iFUxuqjwtlDDegXvtWoxD/3Fzxox7tFGWA== npm-run-path@^4.0.1: version "4.0.1" @@ -5039,16 +5350,6 @@ npm-run-path@^5.1.0: dependencies: path-key "^4.0.0" -npmlog@^4.0.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" - integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== - dependencies: - are-we-there-yet "~1.1.2" - console-control-strings "~1.1.0" - gauge "~2.7.3" - set-blocking "~2.0.0" - npmlog@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-5.0.1.tgz#f06678e80e29419ad67ab964e0fa69959c1eb8b0" @@ -5059,84 +5360,81 @@ npmlog@^5.0.1: gauge "^3.0.0" set-blocking "^2.0.0" -nth-check@^2.0.1: +nth-check@^2.0.0, nth-check@^2.0.1: version "2.1.1" resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== dependencies: boolbase "^1.0.0" -number-is-nan@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" - integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= - -nuxi@^3.0.0-rc.3: - version "3.0.0-rc.3" - resolved "https://registry.yarnpkg.com/nuxi/-/nuxi-3.0.0-rc.3.tgz#2326687eff412bf770d1c20c28147dd65cbf06d4" - integrity sha512-WXeW3k2DOaVgkIcPJ9XHxgHWUzvAKV+R3I0c+gXjvzNc5bfRW9ks7Hr2jb83frH+r6i4aALlRTaBHIrJhYHh6w== +nuxi@3.0.0-rc.9: + version "3.0.0-rc.9" + resolved "https://registry.yarnpkg.com/nuxi/-/nuxi-3.0.0-rc.9.tgz#4c4a198484022c6c8a1d872f02f7294eb56e2f66" + integrity sha512-MsjGzFngDIQzouz96KV2LjSqfvXGrNAoKfGTHFiUc1dqtTZmGftY0rsVfsyrDh3I2hofPRN3hKMH7ieFo2PUZA== optionalDependencies: fsevents "~2.3.2" nuxt-component-meta@^0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/nuxt-component-meta/-/nuxt-component-meta-0.1.5.tgz#d17f1072268faa933b1123bf8148bd9843b022c4" - integrity sha512-kcTnYMC4IflXEDSp3r/s9ZhoPuHi2lAu9ngCGm5CNxHKUmc0AjmjjiSeqTrNlH9NWojy+zk34NC7nTRN6fVCDQ== + version "0.1.9" + resolved "https://registry.yarnpkg.com/nuxt-component-meta/-/nuxt-component-meta-0.1.9.tgz#8453fecc3bc67e772843b6ea9be8602e106dc0b0" + integrity sha512-543hMpP4GYwBDkaI2+tHQ3JSPf8gwkj0ivw1h+N6LDCGHS0Pm1bDgrWwOnqw+sL2jOYxxRDJfpVcx2/lPMH1zw== dependencies: "@nuxt/kit" "^3.0.0-rc.3" "@vue/compiler-sfc" "^3.2.33" scule "^0.2.1" -nuxt@^3.0.0-rc.3: - version "3.0.0-rc.3" - resolved "https://registry.yarnpkg.com/nuxt/-/nuxt-3.0.0-rc.3.tgz#ab1a36a19f91f86d5fa42a7d6bb2dec4ae7cf824" - integrity sha512-Ch68sD9Npt3BN0ZphvtRurVhFqtm1sAu4VDoXghmsRoVAwpT2ZDeDWaQJ9PSmXHYwyEaXPIZ9B2EDXPKETh0cQ== +nuxt@^3.0.0-rc.9: + version "3.0.0-rc.9" + resolved "https://registry.yarnpkg.com/nuxt/-/nuxt-3.0.0-rc.9.tgz#a3bcceaffcab917b09238e3db45e73b646516ed4" + integrity sha512-fXaqm+Vha/p+MztueluJdEc9hqj6gwjFeuCgOBwIYnV+3nFbHu3EAro8QbPcoYZaj5oot+qY7YuyGczBvlNZuQ== dependencies: "@nuxt/devalue" "^2.0.0" - "@nuxt/kit" "^3.0.0-rc.3" - "@nuxt/schema" "^3.0.0-rc.3" - "@nuxt/telemetry" "^2.1.3" - "@nuxt/ui-templates" "^0.1.1" - "@nuxt/vite-builder" "^3.0.0-rc.3" - "@vue/reactivity" "^3.2.33" - "@vue/shared" "^3.2.33" - "@vueuse/head" "^0.7.6" + "@nuxt/kit" "3.0.0-rc.9" + "@nuxt/schema" "3.0.0-rc.9" + "@nuxt/telemetry" "^2.1.4" + "@nuxt/ui-templates" "^0.3.2" + "@nuxt/vite-builder" "3.0.0-rc.9" + "@vue/reactivity" "^3.2.38" + "@vue/shared" "^3.2.38" + "@vueuse/head" "^0.7.9" chokidar "^3.5.3" cookie-es "^0.5.0" - defu "^6.0.0" + defu "^6.1.0" destr "^1.1.1" escape-string-regexp "^5.0.0" fs-extra "^10.1.0" - globby "^13.1.1" - h3 "^0.7.8" + globby "^13.1.2" + h3 "^0.7.19" hash-sum "^2.0.0" - hookable "^5.1.1" - knitwork "^0.1.1" - magic-string "^0.26.1" - mlly "^0.5.2" - nitropack "^0.4.2" - nuxi "^3.0.0-rc.3" - ohash "^0.1.0" - ohmyfetch "^0.4.16" - pathe "^0.3.0" + hookable "^5.3.0" + knitwork "^0.1.2" + magic-string "^0.26.3" + mlly "^0.5.14" + nitropack "^0.5.0" + nuxi "3.0.0-rc.9" + ohash "^0.1.5" + ohmyfetch "^0.4.18" + pathe "^0.3.5" perfect-debounce "^0.1.3" - scule "^0.2.1" - ufo "^0.8.4" - unctx "^1.1.4" - unenv "^0.5.1" - unimport "^0.1.9" - unplugin "^0.6.3" - untyped "^0.4.4" - vue "^3.2.33" - vue-bundle-renderer "^0.3.8" - vue-router "^4.0.15" - -object-assign@^4.1.0, object-assign@^4.1.1: + scule "^0.3.2" + strip-literal "^0.4.0" + ufo "^0.8.5" + unctx "^2.0.2" + unenv "^0.6.2" + unimport "^0.6.7" + unplugin "^0.9.2" + untyped "^0.4.7" + vue "^3.2.38" + vue-bundle-renderer "^0.4.2" + vue-devtools-stub "^0.1.0" + vue-router "^4.1.5" + +object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== -object-inspect@^1.12.0, object-inspect@^1.12.2, object-inspect@^1.9.0: +object-inspect@^1.12.2, object-inspect@^1.9.0: version "1.12.2" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== @@ -5146,14 +5444,14 @@ object-keys@^1.1.1: resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== -object.assign@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" - integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== +object.assign@^4.1.4: + version "4.1.4" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" + integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - has-symbols "^1.0.1" + call-bind "^1.0.2" + define-properties "^1.1.4" + has-symbols "^1.0.3" object-keys "^1.1.1" object.values@^1.1.5: @@ -5165,12 +5463,12 @@ object.values@^1.1.5: define-properties "^1.1.3" es-abstract "^1.19.1" -ohash@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/ohash/-/ohash-0.1.0.tgz#cde74db91cfb7259477a93e0959221c4e20a5881" - integrity sha512-KvclyhWseX6F2UTEEp9Qzybb0LTGorTSVufAToV5tR2B6Q64rVhKhkcU/o+mBaiqGa5+PdobtfSVelp8VOCR6A== +ohash@^0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/ohash/-/ohash-0.1.5.tgz#7ba53b68c41fc72612ed75942b8f6da3b5d5bbda" + integrity sha512-qynly1AFIpGWEAW88p6DhMNqok/Swb52/KsiU+Toi7er058Ptvno3tkfTML6wYcEgFgp2GsUziW4Nqn62ciuyw== -ohmyfetch@^0.4.15, ohmyfetch@^0.4.16, ohmyfetch@^0.4.18: +ohmyfetch@^0.4.16, ohmyfetch@^0.4.18: version "0.4.18" resolved "https://registry.yarnpkg.com/ohmyfetch/-/ohmyfetch-0.4.18.tgz#2952e04bd52662d0618d3d2f344db0250c3eeac2" integrity sha512-MslzNrQzBLtZHmiZBI8QMOcMpdNFlK61OJ34nFNFynZ4v+4BonfCQ7VIN4EGXvGGq5zhDzgdJoY3o9S1l2T7KQ== @@ -5187,10 +5485,10 @@ on-finished@2.4.1: dependencies: ee-first "1.1.1" -once@^1.3.0, once@^1.4.0: +once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== dependencies: wrappy "1" @@ -5229,45 +5527,30 @@ optionator@^0.9.1: type-check "^0.4.0" word-wrap "^1.2.3" -ora@^5.4.1: - version "5.4.1" - resolved "https://registry.yarnpkg.com/ora/-/ora-5.4.1.tgz#1b2678426af4ac4a509008e5e4ac9e9959db9e18" - integrity sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ== +ora@^6.1.2: + version "6.1.2" + resolved "https://registry.yarnpkg.com/ora/-/ora-6.1.2.tgz#7b3c1356b42fd90fb1dad043d5dbe649388a0bf5" + integrity sha512-EJQ3NiP5Xo94wJXIzAyOtSb0QEIAUu7m8t6UZ9krbz0vAJqr92JpcK/lEXg91q6B9pEGqrykkd2EQplnifDSBw== dependencies: - bl "^4.1.0" - chalk "^4.1.0" - cli-cursor "^3.1.0" - cli-spinners "^2.5.0" - is-interactive "^1.0.0" - is-unicode-supported "^0.1.0" - log-symbols "^4.1.0" - strip-ansi "^6.0.0" + bl "^5.0.0" + chalk "^5.0.0" + cli-cursor "^4.0.0" + cli-spinners "^2.6.1" + is-interactive "^2.0.0" + is-unicode-supported "^1.1.0" + log-symbols "^5.1.0" + strip-ansi "^7.0.1" wcwidth "^1.0.1" -os-homedir@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" - integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= - -os-tmpdir@^1.0.0, os-tmpdir@~1.0.2: +os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= - -osenv@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" - integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.0" + integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== -p-limit@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" - integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== - dependencies: - p-try "^1.0.0" +p-cancelable@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.1.1.tgz#aab7fbd416582fa32a3db49859c122487c5ed2cf" + integrity sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg== p-limit@^2.2.0: version "2.3.0" @@ -5283,13 +5566,6 @@ p-limit@^3.0.2: dependencies: yocto-queue "^0.1.0" -p-locate@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" - integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= - dependencies: - p-limit "^1.1.0" - p-locate@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" @@ -5311,18 +5587,21 @@ p-map@^4.0.0: dependencies: aggregate-error "^3.0.0" -p-try@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" - integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= - p-try@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== -parent-module@^1.0.0: - version "1.0.1" +param-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5" + integrity sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A== + dependencies: + dot-case "^3.0.4" + tslib "^2.0.3" + +parent-module@^1.0.0: + version "1.0.1" resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== dependencies: @@ -5360,25 +5639,19 @@ parse-json@^5.0.0: json-parse-even-better-errors "^2.3.0" lines-and-columns "^1.1.6" -parse-path@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/parse-path/-/parse-path-4.0.3.tgz#82d81ec3e071dcc4ab49aa9f2c9c0b8966bb22bf" - integrity sha512-9Cepbp2asKnWTJ9x2kpw6Fe8y9JDbqwahGCTvklzd/cEq5C5JC59x2Xb0Kx+x0QZ8bvNquGO8/BWP0cwBHzSAA== +parse-path@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/parse-path/-/parse-path-7.0.0.tgz#605a2d58d0a749c8594405d8cc3a2bf76d16099b" + integrity sha512-Euf9GG8WT9CdqwuWJGdf3RkUcTBArppHABkO7Lm8IzRQp0e2r/kkFnmhu4TSK30Wcu5rVAZLmfPKSBBi9tWFog== dependencies: - is-ssh "^1.3.0" - protocols "^1.4.0" - qs "^6.9.4" - query-string "^6.13.8" + protocols "^2.0.0" -parse-url@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/parse-url/-/parse-url-6.0.0.tgz#f5dd262a7de9ec00914939220410b66cff09107d" - integrity sha512-cYyojeX7yIIwuJzledIHeLUBVJ6COVLeT4eF+2P6aKVzwvgKQPndCBv3+yQ7pcWjqToYwaligxzSYNNmGoMAvw== +parse-url@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/parse-url/-/parse-url-8.1.0.tgz#972e0827ed4b57fc85f0ea6b0d839f0d8a57a57d" + integrity sha512-xDvOoLU5XRrcOZvnI6b8zA6n9O9ejNk/GExuz1yBuWUGn9KA97GI6HTs6u02wKara1CeVmZhH+0TZFdWScR89w== dependencies: - is-ssh "^1.3.0" - normalize-url "^6.1.0" - parse-path "^4.0.0" - protocols "^1.4.0" + parse-path "^7.0.0" parse5@^6.0.0: version "6.0.1" @@ -5390,11 +5663,6 @@ parseurl@~1.3.3: resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== -path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= - path-exists@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" @@ -5403,7 +5671,7 @@ path-exists@^4.0.0: path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== path-key@^3.0.0, path-key@^3.1.0: version "3.1.1" @@ -5430,10 +5698,10 @@ pathe@^0.2.0: resolved "https://registry.yarnpkg.com/pathe/-/pathe-0.2.0.tgz#30fd7bbe0a0d91f0e60bae621f5d19e9e225c339" integrity sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw== -pathe@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/pathe/-/pathe-0.3.0.tgz#fd95bc16208263fa6dc1c78c07b3907a528de6eb" - integrity sha512-3vUjp552BJzCw9vqKsO5sttHkbYqqsZtH0x1PNtItgqx8BXEXzoY1SYRKcL6BTyVh4lGJGLj0tM42elUDMvcYA== +pathe@^0.3.0, pathe@^0.3.3, pathe@^0.3.5, pathe@^0.3.7: + version "0.3.7" + resolved "https://registry.yarnpkg.com/pathe/-/pathe-0.3.7.tgz#83860c096cb11d9614c17e0d70d91622931676ce" + integrity sha512-yz7GK+kSsS27x727jtXpd5VT4dDfP/JDIQmaowfxyWCnFjOWtE1VIh7i6TzcSfzW0n4+bRQztj1VdKnITNq/MA== pathval@^1.1.1: version "1.1.1" @@ -5455,24 +5723,24 @@ picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.3.1: resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== -pidtree@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.5.0.tgz#ad5fbc1de78b8a5f99d6fbdd4f6e4eee21d1aca1" - integrity sha512-9nxspIM7OpZuhBxPg73Zvyq7j1QMPMPsGKTqRc2XOaFQauDvoNz9fM1Wdkjmeo7l9GXOZiRs97sPkuayl39wjA== +pidtree@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.6.0.tgz#90ad7b6d42d5841e69e0a2419ef38f8883aa057c" + integrity sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g== pify@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" - integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= + integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== -pkg-types@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/pkg-types/-/pkg-types-0.3.2.tgz#1b3244b561745591035517475bc8af9c5e089e47" - integrity sha512-eBYzX/7NYsQEOR2alWY4rnQB49G62oHzFpoi9Som56aUr8vB8UGcmcIia9v8fpBeuhH3Ltentuk2OGpp4IQV3Q== +pkg-types@^0.3.2, pkg-types@^0.3.4, pkg-types@^0.3.5: + version "0.3.5" + resolved "https://registry.yarnpkg.com/pkg-types/-/pkg-types-0.3.5.tgz#ea01c7cf28da9e4c5b85de9b250de4b3dc2e9abc" + integrity sha512-VkxCBFVgQhNHYk9subx+HOhZ4jzynH11ah63LZsprTKwPCWG9pfWBlkElWFbvkP9BVR0dP1jS9xPdhaHQNK74Q== dependencies: - jsonc-parser "^3.0.0" - mlly "^0.3.6" - pathe "^0.2.0" + jsonc-parser "^3.2.0" + mlly "^0.5.14" + pathe "^0.3.7" pluralize@^8.0.0: version "8.0.0" @@ -5532,19 +5800,19 @@ postcss-import-resolver@^2.0.0: dependencies: enhanced-resolve "^4.1.1" -postcss-import@^14.1.0: - version "14.1.0" - resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-14.1.0.tgz#a7333ffe32f0b8795303ee9e40215dac922781f0" - integrity sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw== +postcss-import@^15.0.0: + version "15.0.0" + resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-15.0.0.tgz#0b66c25fdd9c0d19576e63c803cf39e4bad08822" + integrity sha512-Y20shPQ07RitgBGv2zvkEAu9bqvrD77C9axhj/aA1BQj4czape2MdClCExvB27EwYEJdGgKZBpKanb0t1rK2Kg== dependencies: postcss-value-parser "^4.0.0" read-cache "^1.0.0" resolve "^1.1.7" -postcss-merge-longhand@^5.1.5: - version "5.1.5" - resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-5.1.5.tgz#b0e03bee3b964336f5f33c4fc8eacae608e91c05" - integrity sha512-NOG1grw9wIO+60arKa2YYsrbgvP6tp+jqc7+ZD5/MalIw234ooH2C6KlR6FEn4yle7GqZoBxSK1mLBE9KPur6w== +postcss-merge-longhand@^5.1.6: + version "5.1.6" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-5.1.6.tgz#f378a8a7e55766b7b644f48e5d8c789ed7ed51ce" + integrity sha512-6C/UGF/3T5OE2CEbOuX7iNO63dnvqhGZeUnKkDeifebY0XqkkvrctYSZurpNE902LDf2yKwwPFgotnfSoPhQiw== dependencies: postcss-value-parser "^4.2.0" stylehacks "^5.1.0" @@ -5603,17 +5871,17 @@ postcss-normalize-display-values@^5.1.0: dependencies: postcss-value-parser "^4.2.0" -postcss-normalize-positions@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-5.1.0.tgz#902a7cb97cf0b9e8b1b654d4a43d451e48966458" - integrity sha512-8gmItgA4H5xiUxgN/3TVvXRoJxkAWLW6f/KKhdsH03atg0cB8ilXnrB5PpSshwVu/dD2ZsRFQcR1OEmSBDAgcQ== +postcss-normalize-positions@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz#ef97279d894087b59325b45c47f1e863daefbb92" + integrity sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg== dependencies: postcss-value-parser "^4.2.0" -postcss-normalize-repeat-style@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.0.tgz#f6d6fd5a54f51a741cc84a37f7459e60ef7a6398" - integrity sha512-IR3uBjc+7mcWGL6CtniKNQ4Rr5fTxwkaDHwMBDGGs1x9IVRkYIT/M4NelZWkAOBdV6v3Z9S46zqaKGlyzHSchw== +postcss-normalize-repeat-style@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz#e9eb96805204f4766df66fd09ed2e13545420fb2" + integrity sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g== dependencies: postcss-value-parser "^4.2.0" @@ -5654,10 +5922,10 @@ postcss-normalize-whitespace@^5.1.1: dependencies: postcss-value-parser "^4.2.0" -postcss-ordered-values@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-5.1.1.tgz#0b41b610ba02906a3341e92cab01ff8ebc598adb" - integrity sha512-7lxgXF0NaoMIgyihL/2boNAEZKiW0+HkMhdKMTD93CjW8TdCy2hSdj8lsAo+uwm7EDG16Da2Jdmtqpedl0cMfw== +postcss-ordered-values@^5.1.3: + version "5.1.3" + resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz#b6fd2bd10f937b23d86bc829c69e7732ce76ea38" + integrity sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ== dependencies: cssnano-utils "^3.1.0" postcss-value-parser "^4.2.0" @@ -5715,10 +5983,10 @@ postcss-value-parser@^4.0.0, postcss-value-parser@^4.2.0: resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== -postcss@^8.1.10, postcss@^8.4.13: - version "8.4.14" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.14.tgz#ee9274d5622b4858c1007a74d76e42e56fd21caf" - integrity sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig== +postcss@^8.1.10, postcss@^8.4.16: + version "8.4.16" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.16.tgz#33a1d675fac39941f5f445db0de4db2b6e01d43c" + integrity sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ== dependencies: nanoid "^3.3.4" picocolors "^1.0.0" @@ -5744,48 +6012,166 @@ process-nextick-args@~2.0.0: resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== +promise@^7.0.1: + version "7.3.1" + resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" + integrity sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg== + dependencies: + asap "~2.0.3" + +property-information@^5.0.0: + version "5.6.0" + resolved "https://registry.yarnpkg.com/property-information/-/property-information-5.6.0.tgz#61675545fb23002f245c6540ec46077d4da3ed69" + integrity sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA== + dependencies: + xtend "^4.0.0" + property-information@^6.0.0, property-information@^6.1.1: version "6.1.1" resolved "https://registry.yarnpkg.com/property-information/-/property-information-6.1.1.tgz#5ca85510a3019726cb9afed4197b7b8ac5926a22" integrity sha512-hrzC564QIl0r0vy4l6MvRLhafmUowhO/O3KgVSoXIbbA2Sz4j8HGpJc6T2cubRVwMwpdiG/vKGfhT4IixmKN9w== -protocols@^1.1.0, protocols@^1.4.0: - version "1.4.8" - resolved "https://registry.yarnpkg.com/protocols/-/protocols-1.4.8.tgz#48eea2d8f58d9644a4a32caae5d5db290a075ce8" - integrity sha512-IgjKyaUSjsROSO8/D49Ab7hP8mJgTYcqApOqdPhLoPxAplXmkp+zRvsrSQjFn5by0rhm4VH0GAUELIPpx7B1yg== +protocols@^2.0.0, protocols@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/protocols/-/protocols-2.0.1.tgz#8f155da3fc0f32644e83c5782c8e8212ccf70a86" + integrity sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q== prr@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" - integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= + integrity sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw== -punycode@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== +pseudomap@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + integrity sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ== -qs@^6.9.4: - version "6.10.3" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.3.tgz#d6cde1b2ffca87b5aa57889816c5f81535e22e8e" - integrity sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ== +pug-attrs@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pug-attrs/-/pug-attrs-3.0.0.tgz#b10451e0348165e31fad1cc23ebddd9dc7347c41" + integrity sha512-azINV9dUtzPMFQktvTXciNAfAuVh/L/JCl0vtPCwvOA21uZrC08K/UnmrL+SXGEVc1FwzjW62+xw5S/uaLj6cA== dependencies: - side-channel "^1.0.4" + constantinople "^4.0.1" + js-stringify "^1.0.2" + pug-runtime "^3.0.0" + +pug-code-gen@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/pug-code-gen/-/pug-code-gen-3.0.2.tgz#ad190f4943133bf186b60b80de483100e132e2ce" + integrity sha512-nJMhW16MbiGRiyR4miDTQMRWDgKplnHyeLvioEJYbk1RsPI3FuA3saEP8uwnTb2nTJEKBU90NFVWJBk4OU5qyg== + dependencies: + constantinople "^4.0.1" + doctypes "^1.1.0" + js-stringify "^1.0.2" + pug-attrs "^3.0.0" + pug-error "^2.0.0" + pug-runtime "^3.0.0" + void-elements "^3.1.0" + with "^7.0.0" + +pug-error@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pug-error/-/pug-error-2.0.0.tgz#5c62173cb09c34de2a2ce04f17b8adfec74d8ca5" + integrity sha512-sjiUsi9M4RAGHktC1drQfCr5C5eriu24Lfbt4s+7SykztEOwVZtbFk1RRq0tzLxcMxMYTBR+zMQaG07J/btayQ== + +pug-filters@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/pug-filters/-/pug-filters-4.0.0.tgz#d3e49af5ba8472e9b7a66d980e707ce9d2cc9b5e" + integrity sha512-yeNFtq5Yxmfz0f9z2rMXGw/8/4i1cCFecw/Q7+D0V2DdtII5UvqE12VaZ2AY7ri6o5RNXiweGH79OCq+2RQU4A== + dependencies: + constantinople "^4.0.1" + jstransformer "1.0.0" + pug-error "^2.0.0" + pug-walk "^2.0.0" + resolve "^1.15.1" + +pug-lexer@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/pug-lexer/-/pug-lexer-5.0.1.tgz#ae44628c5bef9b190b665683b288ca9024b8b0d5" + integrity sha512-0I6C62+keXlZPZkOJeVam9aBLVP2EnbeDw3An+k0/QlqdwH6rv8284nko14Na7c0TtqtogfWXcRoFE4O4Ff20w== + dependencies: + character-parser "^2.2.0" + is-expression "^4.0.0" + pug-error "^2.0.0" + +pug-linker@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/pug-linker/-/pug-linker-4.0.0.tgz#12cbc0594fc5a3e06b9fc59e6f93c146962a7708" + integrity sha512-gjD1yzp0yxbQqnzBAdlhbgoJL5qIFJw78juN1NpTLt/mfPJ5VgC4BvkoD3G23qKzJtIIXBbcCt6FioLSFLOHdw== + dependencies: + pug-error "^2.0.0" + pug-walk "^2.0.0" + +pug-load@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pug-load/-/pug-load-3.0.0.tgz#9fd9cda52202b08adb11d25681fb9f34bd41b662" + integrity sha512-OCjTEnhLWZBvS4zni/WUMjH2YSUosnsmjGBB1An7CsKQarYSWQ0GCVyd4eQPMFJqZ8w9xgs01QdiZXKVjk92EQ== + dependencies: + object-assign "^4.1.1" + pug-walk "^2.0.0" -query-string@^6.13.8: - version "6.14.1" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-6.14.1.tgz#7ac2dca46da7f309449ba0f86b1fd28255b0c86a" - integrity sha512-XDxAeVmpfu1/6IjyT/gXHOl+S0vQ9owggJ30hhWKdHAsNPOcasn5o9BW0eejZqL2e4vMjhAxoW3jVHcD6mbcYw== +pug-parser@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/pug-parser/-/pug-parser-6.0.0.tgz#a8fdc035863a95b2c1dc5ebf4ecf80b4e76a1260" + integrity sha512-ukiYM/9cH6Cml+AOl5kETtM9NR3WulyVP2y4HOU45DyMim1IeP/OOiyEWRr6qk5I5klpsBnbuHpwKmTx6WURnw== dependencies: - decode-uri-component "^0.2.0" - filter-obj "^1.1.0" - split-on-first "^1.0.0" - strict-uri-encode "^2.0.0" + pug-error "^2.0.0" + token-stream "1.0.0" + +pug-runtime@^3.0.0, pug-runtime@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/pug-runtime/-/pug-runtime-3.0.1.tgz#f636976204723f35a8c5f6fad6acda2a191b83d7" + integrity sha512-L50zbvrQ35TkpHwv0G6aLSuueDRwc/97XdY8kL3tOT0FmhgG7UypU3VztfV/LATAvmUfYi4wNxSajhSAeNN+Kg== + +pug-strip-comments@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pug-strip-comments/-/pug-strip-comments-2.0.0.tgz#f94b07fd6b495523330f490a7f554b4ff876303e" + integrity sha512-zo8DsDpH7eTkPHCXFeAk1xZXJbyoTfdPlNR0bK7rpOMuhBYb0f5qUVCO1xlsitYd3w5FQTK7zpNVKb3rZoUrrQ== + dependencies: + pug-error "^2.0.0" + +pug-walk@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pug-walk/-/pug-walk-2.0.0.tgz#417aabc29232bb4499b5b5069a2b2d2a24d5f5fe" + integrity sha512-yYELe9Q5q9IQhuvqsZNwA5hfPkMJ8u92bQLIMcsMxf/VADjNtEYptU+inlufAFYcWdHlwNfZOEnOOQrZrcyJCQ== + +pug@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/pug/-/pug-3.0.2.tgz#f35c7107343454e43bc27ae0ff76c731b78ea535" + integrity sha512-bp0I/hiK1D1vChHh6EfDxtndHji55XP/ZJKwsRqrz6lRia6ZC2OZbdAymlxdVFwd1L70ebrVJw4/eZ79skrIaw== + dependencies: + pug-code-gen "^3.0.2" + pug-filters "^4.0.0" + pug-lexer "^5.0.1" + pug-linker "^4.0.0" + pug-load "^3.0.0" + pug-parser "^6.0.0" + pug-runtime "^3.0.1" + pug-strip-comments "^2.0.0" + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +punycode@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== queue-microtask@^1.2.2: version "1.2.3" resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== +quick-lru@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" + integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== + radix3@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/radix3/-/radix3-0.1.2.tgz#5f7351af7fc5e4b1d9a1b14a7266b6a4a8cac0ba" @@ -5803,7 +6189,7 @@ range-parser@~1.2.1: resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== -rc9@^1.2.1, rc9@^1.2.2: +rc9@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/rc9/-/rc9-1.2.2.tgz#0d79202e088dd80e2e0f77ac36f520247d2d3964" integrity sha512-zbe8+HR2X28eZepAwohuKkebbEsA67h0DO9I7g12QrHa2CQopR9gztOLPIPXXGTvcxeUjAN4wZ+b29t3m/u05g== @@ -5812,20 +6198,10 @@ rc9@^1.2.1, rc9@^1.2.2: destr "^1.1.1" flat "^5.0.0" -rc@^1.2.7: - version "1.2.8" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" - integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== - dependencies: - deep-extend "^0.6.0" - ini "~1.3.0" - minimist "^1.2.0" - strip-json-comments "~2.0.1" - read-cache@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774" - integrity sha1-5mTvMRYRZsl1HNvo28+GtftY93Q= + integrity sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA== dependencies: pify "^2.3.0" @@ -5848,7 +6224,7 @@ read-pkg@^5.2.0: parse-json "^5.0.0" type-fest "^0.6.0" -readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.5, readable-stream@^2.0.6: +readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.5: version "2.3.7" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== @@ -5871,11 +6247,11 @@ readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: util-deprecate "^1.0.1" readdir-glob@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/readdir-glob/-/readdir-glob-1.1.1.tgz#f0e10bb7bf7bfa7e0add8baffdc54c3f7dbee6c4" - integrity sha512-91/k1EzZwDx6HbERR+zucygRFfiPl2zkIYZtv3Jjr6Mn7SkKcVct8aVO+sSRiGMc6fLf72du3d92/uY63YPdEA== + version "1.1.2" + resolved "https://registry.yarnpkg.com/readdir-glob/-/readdir-glob-1.1.2.tgz#b185789b8e6a43491635b6953295c5c5e3fd224c" + integrity sha512-6RLVvwJtVwEDfPdn6X6Ille4/lxGl0ATOY4FN/B9nxQcgOazvvI0nodiD19ScKq0PvA/29VpaOQML36o5IzZWA== dependencies: - minimatch "^3.0.4" + minimatch "^5.1.0" readdirp@~3.6.0: version "3.6.0" @@ -5884,15 +6260,25 @@ readdirp@~3.6.0: dependencies: picomatch "^2.2.1" +recast@0.21.1: + version "0.21.1" + resolved "https://registry.yarnpkg.com/recast/-/recast-0.21.1.tgz#9b3f4f68c1fe9c1513a1c02ff572fdef02231de2" + integrity sha512-PF61BHLaOGF5oIKTpSrDM6Qfy2d7DIx5qblgqG+wjqHuFH97OgAqBYFIJwEuHTrM6pQGT17IJ8D0C/jVu/0tig== + dependencies: + ast-types "0.15.2" + esprima "~4.0.0" + source-map "~0.6.1" + tslib "^2.0.1" + redis-errors@^1.0.0, redis-errors@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/redis-errors/-/redis-errors-1.2.0.tgz#eb62d2adb15e4eaf4610c04afe1529384250abad" - integrity sha1-62LSrbFeTq9GEMBK/hUpOEJQq60= + integrity sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w== redis-parser@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/redis-parser/-/redis-parser-3.0.0.tgz#b66d828cdcafe6b4b8a428a7def4c6bcac31c8b4" - integrity sha1-tm2CjNyv5rS4pCin3vTGvKwxyLQ= + integrity sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A== dependencies: redis-errors "^1.0.0" @@ -5915,10 +6301,10 @@ regexpp@^3.0.0, regexpp@^3.2.0: resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== -rehype-external-links@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/rehype-external-links/-/rehype-external-links-1.0.1.tgz#9e5d21c606b04d8098012e2d3c811919762d0ba2" - integrity sha512-SrMMtIO2tPLWDfvibhECAn9cuEMW6Fi40ZVK2UQSPTnDEv3LraLzGVyKGb/vrDlUy4RCYTcmm0rq/ss9nPqrsw== +rehype-external-links@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/rehype-external-links/-/rehype-external-links-2.0.1.tgz#fe54f9f227a1a2f8f6afe442ac4c9ee748f08756" + integrity sha512-u2dNypma+ps12SJWlS23zvbqwNx0Hl24t0YHXSM/6FCZj/pqWETCO3WyyrvALv4JYvRtuPjhiv2Lpen15ESqbA== dependencies: "@types/hast" "^2.0.0" extend "^3.0.0" @@ -5927,6 +6313,14 @@ rehype-external-links@^1.0.1: unified "^10.0.0" unist-util-visit "^4.0.0" +rehype-figure@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/rehype-figure/-/rehype-figure-1.0.1.tgz#6fac89f0ec6042ce8b99163b4cc796a934267be0" + integrity sha512-g7DJuK8R8xHIaPI3QJ6/OoWiKepn92RF2CV3z4dO7lRO6ZHo48Tu9X3KgnZUKK035srFHqWQx93AybBy12XqmQ== + dependencies: + hastscript "^6.0.0" + unist-util-visit "^2.0.3" + rehype-raw@^6.1.1: version "6.1.1" resolved "https://registry.yarnpkg.com/rehype-raw/-/rehype-raw-6.1.1.tgz#81bbef3793bd7abacc6bf8335879d1b6c868c9d4" @@ -5987,6 +6381,40 @@ remark-gfm@^3.0.1: micromark-extension-gfm "^2.0.0" unified "^10.0.0" +remark-mdc@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/remark-mdc/-/remark-mdc-1.0.7.tgz#eca877a6e1e7320df7bfe367b157254cb9e5127e" + integrity sha512-qKIvlYQz7mCZlzAf30sgLfZAxw9mQfVq4CoL1K3X4DK5V/ABYyFc6i4S3gbZjQJTv+DF1OMNJ0Zct+yGdGI0Xw== + dependencies: + flat "^5.0.2" + js-yaml "^4.1.0" + mdast-util-from-markdown "^1.2.0" + mdast-util-to-markdown "^1.3.0" + micromark "^3.0.10" + micromark-core-commonmark "^1.0.6" + micromark-factory-space "^1.0.0" + micromark-factory-whitespace "^1.0.0" + micromark-util-character "^1.1.0" + parse-entities "^4.0.0" + scule "^0.2.1" + stringify-entities "^4.0.2" + unist-util-visit "^4.1.0" + unist-util-visit-parents "^5.1.0" + +remark-oembed@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/remark-oembed/-/remark-oembed-1.2.2.tgz#d5870ca06a1c3af0d7fc9c26809151c4d6e1958d" + integrity sha512-zTHfSCgBIJV7D2UHanWlUT1sDqulOuAv9eVGl3XhV2o2tGDUgyVjMz5Ctx560IysJ+Qni4p0C3vkR1n3EubNRQ== + dependencies: + apr-intercept "^3.0.4" + got "^11.8.2" + hast-util-select "^4.0.2" + hast-util-to-html "^7.1.2" + hastscript "^6.0.0" + is-url "^1.2.4" + mime "^2.5.2" + param-case "^3.0.4" + remark-parse@^10.0.1: version "10.0.1" resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-10.0.1.tgz#6f60ae53edbf0cf38ea223fe643db64d112e0775" @@ -6018,17 +6446,17 @@ remark-squeeze-paragraphs@^5.0.1: require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= - -require-from-string@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" - integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== requires-port@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" - integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= + integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== + +resolve-alpn@^1.0.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9" + integrity sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g== resolve-from@^4.0.0: version "4.0.0" @@ -6040,15 +6468,29 @@ resolve-from@^5.0.0: resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== -resolve@^1.1.7, resolve@^1.10.0, resolve@^1.10.1, resolve@^1.17.0, resolve@^1.19.0, resolve@^1.20.0, resolve@^1.22.0: - version "1.22.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198" - integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw== +resolve@^1.1.7, resolve@^1.10.0, resolve@^1.10.1, resolve@^1.15.1, resolve@^1.17.0, resolve@^1.19.0, resolve@^1.20.0, resolve@^1.22.0, resolve@^1.22.1: + version "1.22.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" + integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== dependencies: - is-core-module "^2.8.1" + is-core-module "^2.9.0" path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" +responselike@*: + version "3.0.0" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-3.0.0.tgz#20decb6c298aff0dbee1c355ca95461d42823626" + integrity sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg== + dependencies: + lowercase-keys "^3.0.0" + +responselike@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.1.tgz#9a0bc8fdc252f3fb1cca68b016591059ba1422bc" + integrity sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw== + dependencies: + lowercase-keys "^2.0.0" + restore-cursor@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" @@ -6057,6 +6499,14 @@ restore-cursor@^3.1.0: onetime "^5.1.0" signal-exit "^3.0.2" +restore-cursor@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-4.0.0.tgz#519560a4318975096def6e609d44100edaa4ccb9" + integrity sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg== + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + reusify@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" @@ -6067,13 +6517,6 @@ rfdc@^1.3.0: resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b" integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== -rimraf@^2.6.1: - version "2.7.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" - integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== - dependencies: - glob "^7.1.3" - rimraf@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" @@ -6091,9 +6534,9 @@ rollup-plugin-dts@^4.1.0: "@babel/code-frame" "^7.16.7" rollup-plugin-esbuild@^4.8.2: - version "4.9.1" - resolved "https://registry.yarnpkg.com/rollup-plugin-esbuild/-/rollup-plugin-esbuild-4.9.1.tgz#369d137e2b1542c8ee459495fd4f10de812666aa" - integrity sha512-qn/x7Wz9p3Xnva99qcb+nopH0d2VJwVnsxJTGEg+Sh2Z3tqQl33MhOwzekVo1YTKgv+yAmosjcBRJygMfGrtLw== + version "4.10.1" + resolved "https://registry.yarnpkg.com/rollup-plugin-esbuild/-/rollup-plugin-esbuild-4.10.1.tgz#84a32419b56680149a0456442a71456e49f122c0" + integrity sha512-/ymcRB283zjFp1JTBXO8ekxv0c9vRc2L6OTljghsLthQ4vqeDSDWa9BVz1tHiVrx6SbUnUpDPLC0K/MXK7j5TA== dependencies: "@rollup/pluginutils" "^4.1.1" debug "^4.3.3" @@ -6111,15 +6554,15 @@ rollup-plugin-terser@^7.0.2: serialize-javascript "^4.0.0" terser "^5.0.0" -rollup-plugin-visualizer@^5.6.0: - version "5.6.0" - resolved "https://registry.yarnpkg.com/rollup-plugin-visualizer/-/rollup-plugin-visualizer-5.6.0.tgz#06aa7cf3fd504a29d404335700f2a3f28ebb33f3" - integrity sha512-CKcc8GTUZjC+LsMytU8ocRr/cGZIfMR7+mdy4YnlyetlmIl/dM8BMnOEpD4JPIGt+ZVW7Db9ZtSsbgyeBH3uTA== +rollup-plugin-visualizer@^5.8.0, rollup-plugin-visualizer@^5.8.1: + version "5.8.1" + resolved "https://registry.yarnpkg.com/rollup-plugin-visualizer/-/rollup-plugin-visualizer-5.8.1.tgz#deb207017fcf584f3dce088a67eac0d49e4e2a86" + integrity sha512-NBT/xN/LWCwDM2/j5vYmjzpEAKHyclo/8Cv8AfTCwgADAG+tLJDy1vzxMw6NO0dSDjmTeRELD9UU3FwknLv0GQ== dependencies: - nanoid "^3.1.32" + nanoid "^3.3.4" open "^8.4.0" source-map "^0.7.3" - yargs "^17.3.1" + yargs "^17.5.1" rollup-pluginutils@^2.8.2: version "2.8.2" @@ -6128,10 +6571,24 @@ rollup-pluginutils@^2.8.2: dependencies: estree-walker "^0.6.1" -rollup@^2.59.0, rollup@^2.66.1, rollup@^2.72.1: - version "2.75.3" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.75.3.tgz#11bd3e8ace526911feea8af17f2a286fbfdb4cf8" - integrity sha512-YA29fLU6MAYSaDxIQYrGGOcbXlDmG96h0krGGYObroezcQ0KgEPM3+7MtKD/qeuUbFuAJXvKZee5dA1dpwq1PQ== +"rollup@>=2.75.6 <2.77.0 || ~2.77.0": + version "2.77.3" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.77.3.tgz#8f00418d3a2740036e15deb653bed1a90ee0cc12" + integrity sha512-/qxNTG7FbmefJWoeeYJFbHehJ2HNWnjkAFRKzWN/45eNBBF/r8lo992CwcJXEzyVxs5FmfId+vTSTQDb+bxA+g== + optionalDependencies: + fsevents "~2.3.2" + +rollup@^2.66.1, rollup@^2.79.0: + version "2.79.0" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.79.0.tgz#9177992c9f09eb58c5e56cbfa641607a12b57ce2" + integrity sha512-x4KsrCgwQ7ZJPcFA/SUu6QVcYlO7uRLfLAy0DSA4NS2eG8japdbpM50ToH7z4iObodRYOJ0soneF0iaQRJ6zhA== + optionalDependencies: + fsevents "~2.3.2" + +rollup@~2.78.0: + version "2.78.1" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.78.1.tgz#52fe3934d9c83cb4f7c4cb5fb75d88591be8648f" + integrity sha512-VeeCgtGi4P+o9hIg+xz4qQpRl6R401LWEXBmxYKOV4zlF82lyhgh2hTZnheFUbANE8l2A41F458iwj2vEYaXJg== optionalDependencies: fsevents "~2.3.2" @@ -6147,10 +6604,10 @@ run-parallel@^1.1.9: dependencies: queue-microtask "^1.2.2" -rxjs@^7.5.5: - version "7.5.5" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.5.tgz#2ebad89af0f560f460ad5cc4213219e1f7dd4e9f" - integrity sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw== +rxjs@^7.5.5, rxjs@^7.5.6: + version "7.5.6" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.6.tgz#0446577557862afd6903517ce7cae79ecb9662bc" + integrity sha512-dnyv2/YsXhnm461G+R/Pe5bWP41Nm6LBXEYWI6eiFP4fiwx6WRI/CD0zbdVAudd9xwLEF2IDcKXLHit0FYjUzw== dependencies: tslib "^2.1.0" @@ -6183,24 +6640,24 @@ safe-regex@^2.1.1: resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -sax@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" - integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== - scule@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/scule/-/scule-0.2.1.tgz#0c1dc847b18e07219ae9a3832f2f83224e2079dc" integrity sha512-M9gnWtn3J0W+UhJOHmBxBTwv8mZCan5i1Himp60t6vvZcor0wr+IM0URKmIglsWJ7bRujNAVVN77fp+uZaWoKg== +scule@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/scule/-/scule-0.3.2.tgz#472445cecd8357165a94a067f78cee40e700b596" + integrity sha512-zIvPdjOH8fv8CgrPT5eqtxHQXmPNnV/vHJYffZhE43KZkvULvpCTvOt1HPlFaCZx287INL9qaqrZg34e8NgI4g== + selfsigned@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-2.0.1.tgz#8b2df7fa56bf014d19b6007655fff209c0ef0a56" - integrity sha512-LmME957M1zOsUhG+67rAjKfiWFox3SBxE/yymatMZsAx+oMrJ0YQ8AToOnyCm7xbeg2ep37IHLxdu0o2MavQOQ== + version "2.1.1" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-2.1.1.tgz#18a7613d714c0cd3385c48af0075abf3f266af61" + integrity sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ== dependencies: node-forge "^1" -"semver@2 || 3 || 4 || 5", semver@^5.3.0: +"semver@2 || 3 || 4 || 5": version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== @@ -6210,7 +6667,7 @@ semver@^6.0.0, semver@^6.1.0, semver@^6.3.0: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@^7.0.0, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7: +semver@^7.0.0, semver@^7.3.4, semver@^7.3.5, semver@^7.3.6, semver@^7.3.7: version "7.3.7" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f" integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== @@ -6260,10 +6717,10 @@ serve-static@^1.15.0: parseurl "~1.3.3" send "0.18.0" -set-blocking@^2.0.0, set-blocking@~2.0.0: +set-blocking@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= + integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== setprototypeof@1.2.0: version "1.2.0" @@ -6343,9 +6800,9 @@ slugify@^1.6.5: integrity sha512-8mo9bslnBO3tr5PEVFzMPIWwWnipGS0xVbYf65zxDqfNwmzYn1LpiKNrR6DlClusuvo+hDHd1zKpmfAe83NQSQ== socket.io-client@^4.5.1: - version "4.5.1" - resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-4.5.1.tgz#cab8da71976a300d3090414e28c2203a47884d84" - integrity sha512-e6nLVgiRYatS+AHXnOnGi4ocOpubvOUCGhyWw8v+/FxW8saHkinG6Dfhi9TU0Kt/8mwJIAASxvw6eujQmjdZVA== + version "4.5.2" + resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-4.5.2.tgz#9481518c560388c980c88b01e3cf62f367f04c96" + integrity sha512-naqYfFu7CLDiQ1B7AlLhRXKX3gdeaIMfgigwavDzgJoIUYulc1qHH5+2XflTsXTPY7BlPH5rppJyUjhjrKQKLg== dependencies: "@socket.io/component-emitter" "~3.1.0" debug "~4.3.2" @@ -6353,9 +6810,9 @@ socket.io-client@^4.5.1: socket.io-parser "~4.2.0" socket.io-parser@~4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-4.2.0.tgz#3f01e5bc525d94aa52a97ed5cbc12e229bbc4d6b" - integrity sha512-tLfmEwcEwnlQTxFB7jibL/q2+q8dlVQzj4JdRLJ/W/G1+Fu9VSxCx1Lo+n1HvXxKnM//dUuD0xgiA7tQf57Vng== + version "4.2.1" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-4.2.1.tgz#01c96efa11ded938dcb21cbe590c26af5eff65e5" + integrity sha512-V4GrkLy+HeF1F/en3SpUaM+7XxYXpuMUWLGde1kSSh5nQMN4hLrbPIkD+otwh6q9R6NOQBN4AMaOZ2zVjui82g== dependencies: "@socket.io/component-emitter" "~3.1.0" debug "~4.3.1" @@ -6373,21 +6830,26 @@ source-map-support@^0.5.21, source-map-support@~0.5.20: buffer-from "^1.0.0" source-map "^0.6.0" -source-map@^0.6.0, source-map@^0.6.1: +source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== source-map@^0.7.3: - version "0.7.3" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" - integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== + version "0.7.4" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656" + integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== sourcemap-codec@^1.4.8: version "1.4.8" resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== +space-separated-tokens@^1.0.0: + version "1.1.5" + resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz#85f32c3d10d9682007e917414ddc5c26d1aa6899" + integrity sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA== + space-separated-tokens@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-2.0.1.tgz#43193cec4fb858a2ce934b7f98b7f2c18107098b" @@ -6415,14 +6877,9 @@ spdx-expression-parse@^3.0.0: spdx-license-ids "^3.0.0" spdx-license-ids@^3.0.0: - version "3.0.11" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz#50c0d8c40a14ec1bf449bae69a0ea4685a9d9f95" - integrity sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g== - -split-on-first@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/split-on-first/-/split-on-first-1.1.0.tgz#f610afeee3b12bce1d0c30425e76398b78249a5f" - integrity sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw== + version "3.0.12" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz#69077835abe2710b65f03969898b6637b505a779" + integrity sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA== stable@^0.1.8: version "0.1.8" @@ -6439,30 +6896,16 @@ statuses@2.0.1: resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== -std-env@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.1.1.tgz#1f19c4d3f6278c52efd08a94574a2a8d32b7d092" - integrity sha512-/c645XdExBypL01TpFKiG/3RAa/Qmu+zRi0MwAmrdEkwHNuN0ebo8ccAXBBDa5Z0QOJgBskUIbuCK91x0sCVEw== - -strict-uri-encode@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546" - integrity sha1-ucczDHBChi9rFC3CdLvMWGbONUY= +std-env@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.2.1.tgz#00e260ec3901333537125f81282b9296b00d7304" + integrity sha512-D/uYFWkI/31OrnKmXZqGAGK5GbQRPp/BWA1nuITcc6ICblhhuQUPHS5E2GSCVS7Hwhf4ciq8qsATwBUxv+lI6w== string-argv@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.1.tgz#95e2fbec0427ae19184935f816d74aaa4c5c19da" integrity sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg== -string-width@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" - integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= - dependencies: - code-point-at "^1.0.0" - is-fullwidth-code-point "^1.0.0" - strip-ansi "^3.0.0" - "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" @@ -6472,7 +6915,7 @@ string-width@^1.0.1: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" -string-width@^5.0.0: +string-width@^5.0.0, string-width@^5.0.1, string-width@^5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== @@ -6513,21 +6956,23 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" +stringify-entities@^3.0.1: + version "3.1.0" + resolved "https://registry.yarnpkg.com/stringify-entities/-/stringify-entities-3.1.0.tgz#b8d3feac256d9ffcc9fa1fefdcf3ca70576ee903" + integrity sha512-3FP+jGMmMV/ffZs86MoghGqAoqXAdxLrJP4GUdrDN1aIScYih5tuIO3eF4To5AJZ79KDZ8Fpdy7QJnK8SsL1Vg== + dependencies: + character-entities-html4 "^1.0.0" + character-entities-legacy "^1.0.0" + xtend "^4.0.0" + stringify-entities@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/stringify-entities/-/stringify-entities-4.0.2.tgz#13d113dc7449dc8ae4cb22c28883ee3fff8753e3" - integrity sha512-MTxTVcEkorNtBbNpoFJPEh0kKdM6+QbMjLbaxmvaPMmayOXdr/AIVIIJX7FReUVweRBFJfZepK4A4AKgwuFpMQ== + version "4.0.3" + resolved "https://registry.yarnpkg.com/stringify-entities/-/stringify-entities-4.0.3.tgz#cfabd7039d22ad30f3cc435b0ca2c1574fc88ef8" + integrity sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g== dependencies: character-entities-html4 "^2.0.0" character-entities-legacy "^3.0.0" -strip-ansi@^3.0.0, strip-ansi@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= - dependencies: - ansi-regex "^2.0.0" - strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" @@ -6545,14 +6990,14 @@ strip-ansi@^7.0.1: strip-bom@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" - integrity sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4= + integrity sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g== dependencies: is-utf8 "^0.2.0" strip-bom@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= + integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== strip-final-newline@^2.0.0: version "2.0.0" @@ -6576,15 +7021,10 @@ strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== -strip-json-comments@~2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= - -strip-literal@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/strip-literal/-/strip-literal-0.3.0.tgz#922502f1befeb08f2f79025d1be713e252ba3bd6" - integrity sha512-J+lfm3Pw5nzURj2B8acyvUSBqs3JbjM8WAfrmeH3qcn32+ew6kFwbZFV9+X8k9UOIAkQw9WPSzFZy3083c7l5Q== +strip-literal@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/strip-literal/-/strip-literal-0.4.0.tgz#0f90e86daecc1eb23c61c62d25238ffad4524634" + integrity sha512-ql/sBDoJOybTKSIOWrrh8kgUEMjXMwRAkZTD0EwiwxQH/6tTPkZvMIEjp0CRlpi6V5FMiJyvxeRkEi1KrGISoA== dependencies: acorn "^8.7.1" @@ -6617,11 +7057,6 @@ supports-color@^7.0.0, supports-color@^7.1.0: dependencies: has-flag "^4.0.0" -supports-color@^9.2.2: - version "9.2.2" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-9.2.2.tgz#502acaf82f2b7ee78eb7c83dcac0f89694e5a7bb" - integrity sha512-XC6g/Kgux+rJXmwokjm9ECpD6k/smUoS5LKlUCcsYr4IY3rW0XyAympon2RmxGrlnZURMpg5T18gWDP9CsHXFA== - supports-preserve-symlinks-flag@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" @@ -6630,7 +7065,7 @@ supports-preserve-symlinks-flag@^1.0.0: svg-tags@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/svg-tags/-/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764" - integrity sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q= + integrity sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA== svgo@^2.7.0: version "2.8.0" @@ -6645,16 +7080,13 @@ svgo@^2.7.0: picocolors "^1.0.0" stable "^0.1.8" -table@^6.8.0: - version "6.8.0" - resolved "https://registry.yarnpkg.com/table/-/table-6.8.0.tgz#87e28f14fa4321c3377ba286f07b79b281a3b3ca" - integrity sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA== +synckit@^0.8.3: + version "0.8.4" + resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.8.4.tgz#0e6b392b73fafdafcde56692e3352500261d64ec" + integrity sha512-Dn2ZkzMdSX827QbowGbU/4yjWuvNaCoScLLoMo/yKbu+P4GBR6cRGKZH27k6a9bRzdqcyd1DE96pQtQ6uNkmyw== dependencies: - ajv "^8.0.1" - lodash.truncate "^4.4.2" - slice-ansi "^4.0.0" - string-width "^4.2.3" - strip-ansi "^6.0.1" + "@pkgr/utils" "^2.3.1" + tslib "^2.4.0" tapable@^1.0.0: version "1.1.3" @@ -6677,7 +7109,7 @@ tar-stream@^2.2.0: inherits "^2.0.3" readable-stream "^3.1.1" -tar@^4, tar@^4.4.1: +tar@^4.4.1: version "4.4.19" resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.19.tgz#2e4d7263df26f2b914dee10c825ab132123742f3" integrity sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA== @@ -6703,9 +7135,9 @@ tar@^6.1.11: yallist "^4.0.0" terser@^5.0.0: - version "5.14.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.14.0.tgz#eefeec9af5153f55798180ee2617f390bdd285e2" - integrity sha512-JC6qfIEkPBd9j1SMO3Pfn+A6w2kQV54tv+ABQLgZr7dA3k/DL/OBoYSWxzVpZev3J+bUHXfr55L8Mox7AaNo6g== + version "5.15.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.15.0.tgz#e16967894eeba6e1091509ec83f0c60e179f2425" + integrity sha512-L1BJiXVmheAQQy+as0oF3Pwtlo4s3Wi1X2zNZ2NxOB4wx9bdS9Vk67XQENLFdLYGCK/Z2di53mTj/hBafR+dTA== dependencies: "@jridgewell/source-map" "^0.3.2" acorn "^8.5.0" @@ -6724,27 +7156,40 @@ test-exclude@^6.0.0: text-table@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= + integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== through@^2.3.6, through@^2.3.8: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= + integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== + +tiny-glob@^0.2.9: + version "0.2.9" + resolved "https://registry.yarnpkg.com/tiny-glob/-/tiny-glob-0.2.9.tgz#2212d441ac17928033b110f8b3640683129d31e2" + integrity sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg== + dependencies: + globalyzer "0.1.0" + globrex "^0.1.2" tiny-invariant@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.2.0.tgz#a1141f86b672a9148c72e978a19a73b9b94a15a9" integrity sha512-1Uhn/aqw5C6RI4KejVeTg6mIS7IqxnLJ8Mv2tV5rTc0qWobay7pDUz6Wi392Cnc8ak1H0F2cjoRzb2/AW4+Fvg== -tinypool@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/tinypool/-/tinypool-0.1.3.tgz#b5570b364a1775fd403de5e7660b325308fee26b" - integrity sha512-2IfcQh7CP46XGWGGbdyO4pjcKqsmVqFAPcXfPxcPXmOWt9cYkTP9HcDmGgsfijYoAEc4z9qcpM/BaBz46Y9/CQ== +tinybench@^2.1.3: + version "2.1.5" + resolved "https://registry.yarnpkg.com/tinybench/-/tinybench-2.1.5.tgz#6864341415ff0f912ed160cfd90b7f833ece674c" + integrity sha512-ak+PZZEuH3mw6CCFOgf5S90YH0MARnZNhxjhjguAmoJimEMAJuNip/rJRd6/wyylHItomVpKTzZk9zrhTrQCoQ== -tinyspy@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/tinyspy/-/tinyspy-0.3.2.tgz#2f95cb14c38089ca690385f339781cd35faae566" - integrity sha512-2+40EP4D3sFYy42UkgkFFB+kiX2Tg3URG/lVvAZFfLxgGpnWl5qQJuBw1gaLttq8UOS+2p3C0WrhJnQigLTT2Q== +tinypool@^0.2.4: + version "0.2.4" + resolved "https://registry.yarnpkg.com/tinypool/-/tinypool-0.2.4.tgz#4d2598c4689d1a2ce267ddf3360a9c6b3925a20c" + integrity sha512-Vs3rhkUH6Qq1t5bqtb816oT+HeJTXfwt2cbPH17sWHIYKTotQIFPk3tf2fgqRrVyMDVOc1EnPgzIxfIulXVzwQ== + +tinyspy@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/tinyspy/-/tinyspy-1.0.2.tgz#6da0b3918bfd56170fb3cd3a2b5ef832ee1dff0d" + integrity sha512-bSGlgwLBYf7PnUsQ6WOc6SJ3pGOcd+d8AA6EUnLDDM0kWEstC1JIlSZA3UNliDXhd9ABoS7hiRBDCu+XP/sf1Q== tmp@^0.0.33: version "0.0.33" @@ -6756,7 +7201,7 @@ tmp@^0.0.33: to-fast-properties@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= + integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== to-regex-range@^5.0.1: version "5.0.1" @@ -6770,16 +7215,31 @@ toidentifier@1.0.1: resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== +token-stream@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/token-stream/-/token-stream-1.0.0.tgz#cc200eab2613f4166d27ff9afc7ca56d49df6eb4" + integrity sha512-VSsyNPPW74RpHwR8Fc21uubwHY7wMDeJLys2IX5zJNih+OnAnaifKHo+1LHT7DAdloQ7apeaaWg8l7qnf/TnEg== + tr46@~0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== + +trim-lines@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/trim-lines/-/trim-lines-3.0.1.tgz#d802e332a07df861c48802c04321017b1bd87338" + integrity sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg== trough@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/trough/-/trough-2.1.0.tgz#0f7b511a4fde65a46f18477ab38849b22c554876" integrity sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g== +ts-map@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/ts-map/-/ts-map-1.0.3.tgz#1c4d218dec813d2103b7e04e4bcf348e1471c1ff" + integrity sha512-vDWbsl26LIcPGmDpoVzjEP6+hvHZkBkLW7JpvwbCv/5IYPJlsbzCVXY3wsCeAxAUeTclNOUZxnLdGh3VBD/J6w== + tsconfig-paths@^3.14.1: version "3.14.1" resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz#ba0734599e8ea36c862798e920bcf163277b137a" @@ -6795,7 +7255,7 @@ tslib@^1.8.1: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.1.0: +tslib@^2.0.1, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== @@ -6839,20 +7299,25 @@ type-fest@^0.8.1: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== +type-fest@^1.0.2: + version "1.4.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-1.4.0.tgz#e9fb813fe3bf1744ec359d55d1affefa76f14be1" + integrity sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA== + type-fest@^2.11.2: - version "2.13.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.13.0.tgz#d1ecee38af29eb2e863b22299a3d68ef30d2abfb" - integrity sha512-lPfAm42MxE4/456+QyIaaVBAwgpJb6xZ8PRu09utnhPdWwcyj9vgy6Sq0Z5yNbJ21EdxB5dRU/Qg8bsyAMtlcw== + version "2.19.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.19.0.tgz#88068015bb33036a598b952e55e9311a60fd3a9b" + integrity sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA== typescript@^4.5.5: - version "4.7.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.7.2.tgz#1f9aa2ceb9af87cca227813b4310fff0b51593c4" - integrity sha512-Mamb1iX2FDUpcTRzltPxgWMKy3fhg0TN378ylbktPGPK/99KbDtMQ4W1hwgsbPAsG3a0xKa1vmw4VKZQbkvz5A== + version "4.8.2" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.8.2.tgz#e3b33d5ccfb5914e4eeab6699cf208adee3fd790" + integrity sha512-C0I1UsrrDHo2fYI5oaCGbSejwX4ch+9Y5jTQELvovfmFkK3HHSZJB8MSJcWLmCUBzQBchCrZ9rMRV6GuNrvGtw== -ufo@^0.8.3, ufo@^0.8.4: - version "0.8.4" - resolved "https://registry.yarnpkg.com/ufo/-/ufo-0.8.4.tgz#23e9ed82398d2116dcb378e8fba5ced8eca2ee40" - integrity sha512-/+BmBDe8GvlB2nIflWasLLAInjYG0bC9HRnfEpNi4sw77J2AJNnEVnTDReVrehoh825+Q/evF3THXTAweyam2g== +ufo@^0.8.3, ufo@^0.8.4, ufo@^0.8.5: + version "0.8.5" + resolved "https://registry.yarnpkg.com/ufo/-/ufo-0.8.5.tgz#e367b4205ece9d9723f2fa54f887d43ed1bce5d0" + integrity sha512-e4+UtA5IRO+ha6hYklwj6r7BjiGMxS0O+UaSg9HbaTefg4kMkzj4tXzEBajRR+wkxf+golgAWKzLbytCUDMJAA== unbox-primitive@^1.0.2: version "1.0.2" @@ -6897,30 +7362,30 @@ unbuild@^0.6.7: typescript "^4.5.5" untyped "^0.3.0" -unctx@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/unctx/-/unctx-1.1.4.tgz#18d5c0a81d9ce0a790e89b81715f286ac0fa29bb" - integrity sha512-fQMML+GjUpIjQa0HBrrJezo2dFpTAbQbU0/KFKw4T5wpc9deGjLHSYthdfNAo2xSWM34csI6arzedezQkqtfGw== +unctx@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/unctx/-/unctx-2.0.2.tgz#7d14d9290e0879aa7be697b7f35066cffec4ffc4" + integrity sha512-3lcXTlDoOaguRVC1GqG3mrawy17yoycSAQDDnUayQYZ17v9to+Gn6Zyssroc/GD2ppJ0wF5V8adOcKkrNKVWow== dependencies: - acorn "^8.7.0" - estree-walker "^2.0.2" - magic-string "^0.26.1" - unplugin "^0.6.1" + acorn "^8.8.0" + estree-walker "^3.0.1" + magic-string "^0.26.2" + unplugin "^0.9.5" undici@^5.2.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/undici/-/undici-5.3.0.tgz#869d47bafa7f72ccaf8738258f0283bf3dd179ca" - integrity sha512-8LxC/xmR2GCE4q1heE1sJxVnnf5S6yQ2dObvMFBBWkB8aQlaqNuWovgRFWRMB7KUdLPGZfOTTmUeeLEJYX56iQ== + version "5.10.0" + resolved "https://registry.yarnpkg.com/undici/-/undici-5.10.0.tgz#dd9391087a90ccfbd007568db458674232ebf014" + integrity sha512-c8HsD3IbwmjjbLvoZuRI26TZic+TSEe8FPMLLOkN1AfYRhdjnKBU6yL+IwcSCbdZiX4e5t0lfMDLDCqj4Sq70g== -unenv@^0.5.1, unenv@^0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/unenv/-/unenv-0.5.2.tgz#98ab27dfbe5432b4ce79e1a4b42491e9bf1449cd" - integrity sha512-dojYcCqOFEWZosvqWs/AEaEfM/tLJexMKBW0ebkn6JKfEnYR5fKxbYJB8QV9kAPXV/ENseeWQkv6uJ3KCXz+1g== +unenv@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/unenv/-/unenv-0.6.2.tgz#bae287932759a8d3956885c88fc76e4fe10cc18a" + integrity sha512-IdQfYsHsGKDkiBdeOmtU4MjWvPYfMDOC63cvFqZPodAc5aVezvfD9Bwr7FL/G78cAMMCaDm5Jux3vYo+Z8c/Dg== dependencies: - defu "^6.0.0" + defu "^6.1.0" mime "^3.0.0" - node-fetch-native "^0.1.2" - pathe "^0.3.0" + node-fetch-native "^0.1.4" + pathe "^0.3.5" unified@^10.0.0, unified@^10.1.2: version "10.1.2" @@ -6935,36 +7400,21 @@ unified@^10.0.0, unified@^10.1.2: trough "^2.0.0" vfile "^5.0.0" -unimport@^0.1.6, unimport@^0.1.9: - version "0.1.9" - resolved "https://registry.yarnpkg.com/unimport/-/unimport-0.1.9.tgz#a8688f37df179eb1768f04d365c62cc74c7b35c5" - integrity sha512-ap7MnS7zuA4A8eAyA8CHN3YFw1tMpWQK3rSrh6jvrB3tWkT4EKvslg9sNoax5WuL8TnMaXSydRxwOgUUXrnovg== - dependencies: - "@rollup/pluginutils" "^4.2.1" - escape-string-regexp "^5.0.0" - globby "^13.1.1" - local-pkg "^0.4.1" - magic-string "^0.26.1" - mlly "^0.5.2" - pathe "^0.3.0" - scule "^0.2.1" - unplugin "^0.6.3" - -unimport@^0.2.1: - version "0.2.6" - resolved "https://registry.yarnpkg.com/unimport/-/unimport-0.2.6.tgz#f9951aea19fe019ee4fa711c9a27265e47179d93" - integrity sha512-4cOokUIEvaXAfVCHH87vR+wdKI1KDzxQREW9oi0r6J68TPFEeGLHHc2pdyL0uNDUMd2aLxUikhWARNfoQKqC4Q== +unimport@^0.6.7: + version "0.6.7" + resolved "https://registry.yarnpkg.com/unimport/-/unimport-0.6.7.tgz#7b2e2063b88ee8ea363d2d751f7c82a6960beac3" + integrity sha512-EMoVqDjswHkU+nD098QYHXH7Mkw7KwGDQAyeRF2lgairJnuO+wpkhIcmCqrD1OPJmsjkTbJ2tW6Ap8St0PuWZA== dependencies: "@rollup/pluginutils" "^4.2.1" escape-string-regexp "^5.0.0" fast-glob "^3.2.11" - local-pkg "^0.4.1" + local-pkg "^0.4.2" magic-string "^0.26.2" - mlly "^0.5.2" - pathe "^0.3.0" - scule "^0.2.1" - strip-literal "^0.3.0" - unplugin "^0.6.3" + mlly "^0.5.7" + pathe "^0.3.3" + scule "^0.3.2" + strip-literal "^0.4.0" + unplugin "^0.9.0" unist-builder@^3.0.0: version "3.0.0" @@ -6978,6 +7428,11 @@ unist-util-generated@^2.0.0: resolved "https://registry.yarnpkg.com/unist-util-generated/-/unist-util-generated-2.0.0.tgz#86fafb77eb6ce9bfa6b663c3f5ad4f8e56a60113" integrity sha512-TiWE6DVtVe7Ye2QxOVW9kqybs6cZexNwTwSMVgkfjEReqy/xwGpAXb99OxktoWwmL+Z+Epb0Dn8/GNDYP1wnUw== +unist-util-is@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-4.1.0.tgz#976e5f462a7a5de73d94b706bac1b90671b57797" + integrity sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg== + unist-util-is@^5.0.0: version "5.1.1" resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-5.1.1.tgz#e8aece0b102fa9bc097b0fef8f870c496d4a6236" @@ -7006,58 +7461,59 @@ unist-util-stringify-position@^3.0.0: dependencies: "@types/unist" "^2.0.0" -unist-util-visit-parents@^4.0.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-4.1.1.tgz#e83559a4ad7e6048a46b1bdb22614f2f3f4724f2" - integrity sha512-1xAFJXAKpnnJl8G7K5KgU7FY55y3GcLIXqkzUj5QF/QVP7biUm0K0O2oqVkYsdjzJKifYeWn9+o6piAK2hGSHw== +unist-util-visit-parents@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz#65a6ce698f78a6b0f56aa0e88f13801886cdaef6" + integrity sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg== dependencies: "@types/unist" "^2.0.0" - unist-util-is "^5.0.0" + unist-util-is "^4.0.0" -unist-util-visit-parents@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-5.1.0.tgz#44bbc5d25f2411e7dfc5cecff12de43296aa8521" - integrity sha512-y+QVLcY5eR/YVpqDsLf/xh9R3Q2Y4HxkZTp7ViLDU6WtJCEcPmRzW1gpdWDCDIqIlhuPDXOgttqPlykrHYDekg== +unist-util-visit-parents@^5.0.0, unist-util-visit-parents@^5.1.0, unist-util-visit-parents@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-5.1.1.tgz#868f353e6fce6bf8fa875b251b0f4fec3be709bb" + integrity sha512-gks4baapT/kNRaWxuGkl5BIhoanZo7sC/cUT/JToSRNL1dYoXRFl75d++NkjYk4TAu2uv2Px+l8guMajogeuiw== dependencies: "@types/unist" "^2.0.0" unist-util-is "^5.0.0" -unist-util-visit@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-3.1.0.tgz#9420d285e1aee938c7d9acbafc8e160186dbaf7b" - integrity sha512-Szoh+R/Ll68QWAyQyZZpQzZQm2UPbxibDvaY8Xc9SUtYgPsDzx5AWSk++UUt2hJuow8mvwR+rG+LQLw+KsuAKA== +unist-util-visit@^2.0.0, unist-util-visit@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-2.0.3.tgz#c3703893146df47203bb8a9795af47d7b971208c" + integrity sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q== dependencies: "@types/unist" "^2.0.0" - unist-util-is "^5.0.0" - unist-util-visit-parents "^4.0.0" + unist-util-is "^4.0.0" + unist-util-visit-parents "^3.0.0" -unist-util-visit@^4.0.0, unist-util-visit@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-4.1.0.tgz#f41e407a9e94da31594e6b1c9811c51ab0b3d8f5" - integrity sha512-n7lyhFKJfVZ9MnKtqbsqkQEk5P1KShj0+//V7mAcoI6bpbUjh3C/OG8HVD+pBihfh6Ovl01m8dkcv9HNqYajmQ== +unist-util-visit@^4.0.0, unist-util-visit@^4.1.0, unist-util-visit@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-4.1.1.tgz#1c4842d70bd3df6cc545276f5164f933390a9aad" + integrity sha512-n9KN3WV9k4h1DxYR1LoajgN93wpEi/7ZplVe02IoB4gH5ctI1AaF2670BLHQYbwj+pY83gFtyeySFiyMHJklrg== dependencies: "@types/unist" "^2.0.0" unist-util-is "^5.0.0" - unist-util-visit-parents "^5.0.0" + unist-util-visit-parents "^5.1.1" universalify@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== -unplugin@^0.6.1, unplugin@^0.6.3: - version "0.6.3" - resolved "https://registry.yarnpkg.com/unplugin/-/unplugin-0.6.3.tgz#b8721e2b163a410a7efed726e6a0fc6fbadf975a" - integrity sha512-CoW88FQfCW/yabVc4bLrjikN9HC8dEvMU4O7B6K2jsYMPK0l6iAnd9dpJwqGcmXJKRCU9vwSsy653qg+RK0G6A== +unplugin@^0.9.0, unplugin@^0.9.2, unplugin@^0.9.5: + version "0.9.5" + resolved "https://registry.yarnpkg.com/unplugin/-/unplugin-0.9.5.tgz#2e546c044e0631e699ebd6fb521eeb7bbcb8899f" + integrity sha512-luraheyfxwtvkvHpsOvMNv7IjLdORTWKZp0gWYNHGLi2ImON3iIZOj464qEyyEwLA/EMt12fC415HW9zRpOfTg== dependencies: + acorn "^8.8.0" chokidar "^3.5.3" webpack-sources "^3.2.3" - webpack-virtual-modules "^0.4.3" + webpack-virtual-modules "^0.4.4" unstorage@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/unstorage/-/unstorage-0.4.1.tgz#66d174886f017a5ceef567b8f007c5966b4690f4" - integrity sha512-nK2XsRV2lfB6aNCuoatsQUhRVMnDDP5pm3D4UrgRMxP3D57Rn5+dx3aNaLCi5rcq6QAdOmhjyBvKcW8d3PY+Sw== + version "0.4.2" + resolved "https://registry.yarnpkg.com/unstorage/-/unstorage-0.4.2.tgz#69c7cb60f82af42ffaab0d2c9736ce5ea4ea20e5" + integrity sha512-7peWx5g0fuR0cDbUEelNfv0EC9rWLrdlbhv9jdgAScOLBI132Cnah4QOKMt59rEUy91UzKT00p+L4yaNBRgtuQ== dependencies: anymatch "^3.1.2" chokidar "^3.5.3" @@ -7070,20 +7526,44 @@ unstorage@^0.4.1: ufo "^0.8.3" ws "^8.6.0" +unstorage@^0.5.6: + version "0.5.6" + resolved "https://registry.yarnpkg.com/unstorage/-/unstorage-0.5.6.tgz#61a4f4510a5c8703e59ff3f41fc82979ce84564b" + integrity sha512-TUm1ZyLkVamRfM+uWmWtavlzri3XS0ajYXKhlrAZ8aCChMwH29lufOfAP0bsMaBHuciIVfycaGgNhHeyLONpdA== + dependencies: + anymatch "^3.1.2" + chokidar "^3.5.3" + destr "^1.1.1" + h3 "^0.7.12" + ioredis "^5.2.2" + listhen "^0.2.13" + mri "^1.2.0" + ohmyfetch "^0.4.18" + ufo "^0.8.5" + ws "^8.8.1" + untyped@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/untyped/-/untyped-0.3.0.tgz#854df4dec055cc6a0a2217aa2d20152277b6ada9" integrity sha512-n4M5/T1wWlHFmohk0EhS+yM7W/h5dOtQldOV3MVEbZY1fTy5A47UL8+d8GLW1iwmaAwNrM5ERy3qe1k0T/Yc7A== -untyped@^0.4.4: - version "0.4.4" - resolved "https://registry.yarnpkg.com/untyped/-/untyped-0.4.4.tgz#a3043588892266c9176e7049799a65aaa9e4db4b" - integrity sha512-sY6u8RedwfLfBis0copfU/fzROieyAndqPs8Kn2PfyzTjtA88vCk81J1b5z+8/VJc+cwfGy23/AqOCpvAbkNVw== +untyped@^0.4.7: + version "0.4.7" + resolved "https://registry.yarnpkg.com/untyped/-/untyped-0.4.7.tgz#1c6386eb941935199f2ab57981a0308546243141" + integrity sha512-hBgCv7fnqIRzAagn2cUZxxVmhTE7NcMAgI8CfQelFVacG4O55VrurigpK0G504ph4sQSqVsGEo52O5EKFCnJ9g== dependencies: - "@babel/core" "^7.17.7" - "@babel/standalone" "^7.17.7" - "@babel/types" "^7.17.0" - scule "^0.2.1" + "@babel/core" "^7.18.13" + "@babel/standalone" "^7.18.13" + "@babel/types" "^7.18.13" + scule "^0.3.2" + +update-browserslist-db@^1.0.5: + version "1.0.7" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.7.tgz#16279639cff1d0f800b14792de43d97df2d11b7d" + integrity sha512-iN/XYesmZ2RmmWAiI4Z5rq0YqSiv0brj9Ce9CfhNE4xIW2h+MFxcgkxIzZ+ShkFPUkjU3gQ+3oypadD3RAMtrg== + dependencies: + escalade "^3.1.1" + picocolors "^1.0.0" uri-js@^4.2.2: version "4.4.1" @@ -7095,29 +7575,24 @@ uri-js@^4.2.2: util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== uvu@^0.5.0: - version "0.5.3" - resolved "https://registry.yarnpkg.com/uvu/-/uvu-0.5.3.tgz#3d83c5bc1230f153451877bfc7f4aea2392219ae" - integrity sha512-brFwqA3FXzilmtnIyJ+CxdkInkY/i4ErvP7uV0DnUVxQcQ55reuHphorpF+tZoVHK2MniZ/VJzI7zJQoc9T9Yw== + version "0.5.6" + resolved "https://registry.yarnpkg.com/uvu/-/uvu-0.5.6.tgz#2754ca20bcb0bb59b64e9985e84d2e81058502df" + integrity sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA== dependencies: dequal "^2.0.0" diff "^5.0.0" kleur "^4.0.3" sade "^1.7.3" -v8-compile-cache@^2.0.3: - version "2.3.0" - resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" - integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== - v8-to-istanbul@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.0.0.tgz#be0dae58719fc53cb97e5c7ac1d7e6d4f5b19511" - integrity sha512-HcvgY/xaRm7isYmyx+lFKA4uQmfUbN0J4M0nNItvzTvH/iQ9kW5j/t4YSR+Ge323/lrgDAWJoF46tzGQHwBHFw== + version "9.0.1" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz#b6f994b0b5d4ef255e17a0d17dc444a9f5132fa4" + integrity sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w== dependencies: - "@jridgewell/trace-mapping" "^0.3.7" + "@jridgewell/trace-mapping" "^0.3.12" "@types/istanbul-lib-coverage" "^2.0.1" convert-source-map "^1.6.0" @@ -7146,30 +7621,29 @@ vfile-message@^3.0.0: unist-util-stringify-position "^3.0.0" vfile@^5.0.0: - version "5.3.2" - resolved "https://registry.yarnpkg.com/vfile/-/vfile-5.3.2.tgz#b499fbc50197ea50ad3749e9b60beb16ca5b7c54" - integrity sha512-w0PLIugRY3Crkgw89TeMvHCzqCs/zpreR31hl4D92y6SOE07+bfJe+dK5Q2akwS+i/c801kzjoOr9gMcTe6IAA== + version "5.3.4" + resolved "https://registry.yarnpkg.com/vfile/-/vfile-5.3.4.tgz#bbb8c96b956693bbf70b2c67fdb5781dff769b93" + integrity sha512-KI+7cnst03KbEyN1+JE504zF5bJBZa+J+CrevLeyIMq0aPU681I2rQ5p4PlnQ6exFtWiUrg26QUdFMnAKR6PIw== dependencies: "@types/unist" "^2.0.0" is-buffer "^2.0.0" unist-util-stringify-position "^3.0.0" vfile-message "^3.0.0" -vite-node@^0.12.1: - version "0.12.10" - resolved "https://registry.yarnpkg.com/vite-node/-/vite-node-0.12.10.tgz#a0f1cd3c0753a59bf1c8f583e1b2fc93de2f436a" - integrity sha512-vKJsl0gdGzG4rDGl6G6r4DQqxJzcqPmtyi64oh7GZyIKEUEcPm4yODvp9VxHycZ5uCmAhvgMVoJsHmrXdY4AUg== +vite-node@^0.22.1: + version "0.22.1" + resolved "https://registry.yarnpkg.com/vite-node/-/vite-node-0.22.1.tgz#a187e3d73094e29ab82310bb7f5a63da1038a882" + integrity sha512-odNMaOD4N62qESLvFSqoNf2t60ftIFHKgHNupa2cojbF2u2yB1ssluOfq5X0lZcTPx2HBzFbwa6h9m78ujEbUw== dependencies: debug "^4.3.4" - kolorist "^1.5.1" - mlly "^0.5.2" + mlly "^0.5.12" pathe "^0.2.0" - vite "^2.9.9" + vite "^2.9.12 || ^3.0.0-0" -vite-plugin-checker@^0.4.6: - version "0.4.6" - resolved "https://registry.yarnpkg.com/vite-plugin-checker/-/vite-plugin-checker-0.4.6.tgz#c954a3c9be4a7751b9f6b3f18cea7120732b8448" - integrity sha512-oFel33hlsc8aUspfq0ThQRpWsfrG772fmZ5qPHKUhmew6ieejd2viITlwXHIRBY6hE3U0kirXoTWwft3DdbK+g== +vite-plugin-checker@^0.5.0: + version "0.5.1" + resolved "https://registry.yarnpkg.com/vite-plugin-checker/-/vite-plugin-checker-0.5.1.tgz#b8e085f456d37be7f89020cf081102daff52812e" + integrity sha512-NFiO1PyK9yGuaeSnJ7Whw9fnxLc1AlELnZoyFURnauBYhbIkx9n+PmIXxSFUuC9iFyACtbJQUAEuQi6yHs2Adg== dependencies: "@babel/code-frame" "^7.12.13" ansi-escapes "^4.3.0" @@ -7187,31 +7661,51 @@ vite-plugin-checker@^0.4.6: vscode-languageserver-textdocument "^1.0.1" vscode-uri "^3.0.2" -vite@^2.9.8, vite@^2.9.9: - version "2.9.9" - resolved "https://registry.yarnpkg.com/vite/-/vite-2.9.9.tgz#8b558987db5e60fedec2f4b003b73164cb081c5e" - integrity sha512-ffaam+NgHfbEmfw/Vuh6BHKKlI/XIAhxE5QSS7gFLIngxg171mg1P3a4LSRME0z2ZU1ScxoKzphkipcYwSD5Ew== +"vite@^2.9.12 || ^3.0.0-0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/vite/-/vite-3.1.0.tgz#3138b279072941d57e76bcf7f66f272fc6a17fe2" + integrity sha512-YBg3dUicDpDWFCGttmvMbVyS9ydjntwEjwXRj2KBFwSB8SxmGcudo1yb8FW5+M/G86aS8x828ujnzUVdsLjs9g== dependencies: - esbuild "^0.14.27" - postcss "^8.4.13" - resolve "^1.22.0" - rollup "^2.59.0" + esbuild "^0.15.6" + postcss "^8.4.16" + resolve "^1.22.1" + rollup "~2.78.0" + optionalDependencies: + fsevents "~2.3.2" + +vite@~3.0.9: + version "3.0.9" + resolved "https://registry.yarnpkg.com/vite/-/vite-3.0.9.tgz#45fac22c2a5290a970f23d66c1aef56a04be8a30" + integrity sha512-waYABTM+G6DBTCpYAxvevpG50UOlZuynR0ckTK5PawNVt7ebX6X7wNXHaGIO6wYYFXSM7/WcuFuO2QzhBB6aMw== + dependencies: + esbuild "^0.14.47" + postcss "^8.4.16" + resolve "^1.22.1" + rollup ">=2.75.6 <2.77.0 || ~2.77.0" optionalDependencies: fsevents "~2.3.2" -vitest@^0.13.0: - version "0.13.0" - resolved "https://registry.yarnpkg.com/vitest/-/vitest-0.13.0.tgz#8c2e8a555bb6d7ac016408ffdc41d270bf69f37c" - integrity sha512-vuYt3+G25MMnANgyMHHG3VK86C9K/VFi/8uH5myQ2v660W4WArv99ElakPlVFxxSXXM1jqQPiPj2ht35Bod9LQ== +vitest@^0.23.1: + version "0.23.1" + resolved "https://registry.yarnpkg.com/vitest/-/vitest-0.23.1.tgz#da3f79a88a6570e4d8c1fe8cf5e2d997be2dc3bd" + integrity sha512-kn9pG+h6VA3yj/xRvwgLKEd33rOlzMqJEg3tl5HSm3WUPlkY1Lr1FK8RN1uIqVKvFxmz6HGU3EQW+xW2kazRkQ== dependencies: - "@types/chai" "^4.3.1" + "@types/chai" "^4.3.3" "@types/chai-subset" "^1.3.3" + "@types/node" "*" chai "^4.3.6" debug "^4.3.4" - local-pkg "^0.4.1" - tinypool "^0.1.3" - tinyspy "^0.3.2" - vite "^2.9.9" + local-pkg "^0.4.2" + strip-literal "^0.4.0" + tinybench "^2.1.3" + tinypool "^0.2.4" + tinyspy "^1.0.2" + vite "^2.9.12 || ^3.0.0-0" + +void-elements@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-3.1.0.tgz#614f7fbf8d801f0bb5f0661f5b2f5785750e4f09" + integrity sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w== vscode-jsonrpc@6.0.0: version "6.0.0" @@ -7236,9 +7730,9 @@ vscode-languageserver-protocol@3.16.0: vscode-languageserver-types "3.16.0" vscode-languageserver-textdocument@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.4.tgz#3cd56dd14cec1d09e86c4bb04b09a246cb3df157" - integrity sha512-/xhqXP/2A2RSs+J8JNXpiiNVvvNM0oTosNVmQnunlKvq9o4mupHOBAnnzH0lwIPKazXKvAKsVp1kr+H/K4lgoQ== + version "1.0.7" + resolved "https://registry.yarnpkg.com/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.7.tgz#16df468d5c2606103c90554ae05f9f3d335b771b" + integrity sha512-bFJH7UQxlXT8kKeyiyu41r22jCZXG8kuuVVA33OEJn1diWOZK5n8zBSPZFHVBOu8kXZ6h0LIRhf5UnCo61J4Hg== vscode-languageserver-types@3.16.0: version "3.16.0" @@ -7257,48 +7751,86 @@ vscode-uri@^3.0.2: resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-3.0.3.tgz#a95c1ce2e6f41b7549f86279d19f47951e4f4d84" integrity sha512-EcswR2S8bpR7fD0YPeS7r2xXExrScVMxg4MedACaWHEtx9ftCF/qHG1xGkolzTPcEmjTavCQgbVzHUIdTMzFGA== -vue-bundle-renderer@^0.3.8: - version "0.3.8" - resolved "https://registry.yarnpkg.com/vue-bundle-renderer/-/vue-bundle-renderer-0.3.8.tgz#9908c9746815f65e5d38f23fa56af7ed987f28e9" - integrity sha512-1F4P4Aw92PW9XUX0ojC18Ye1P0/kvwq6Jx6kaeokQ+/FoVrfBsKtuJPib1TqGRvGYKCiTCweefun6DidoEvECg== +vue-bundle-renderer@^0.4.2: + version "0.4.2" + resolved "https://registry.yarnpkg.com/vue-bundle-renderer/-/vue-bundle-renderer-0.4.2.tgz#0c84dd673fb0affad5f89fdfe6b1480ecdae5d43" + integrity sha512-HwWd/qw3QBQvZXlK7xQbOViCoDzSaodSueao0Yt3VUxReLDt90FAaufXjv2hfpHQKvYCo5Rez8z1zHOEo3fhAg== dependencies: - bundle-runner "^0.0.1" + ufo "^0.8.3" -vue-eslint-parser@^8.0.1: - version "8.3.0" - resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-8.3.0.tgz#5d31129a1b3dd89c0069ca0a1c88f970c360bd0d" - integrity sha512-dzHGG3+sYwSf6zFBa0Gi9ZDshD7+ad14DGOdTLjruRVgZXe2J+DcZ9iUhyR48z5g1PqRa20yt3Njna/veLJL/g== +vue-devtools-stub@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/vue-devtools-stub/-/vue-devtools-stub-0.1.0.tgz#a65b9485edecd4273cedcb8102c739b83add2c81" + integrity sha512-RutnB7X8c5hjq39NceArgXg28WZtZpGc3+J16ljMiYnFhKvd8hITxSWQSQ5bvldxMDU6gG5mkxl1MTQLXckVSQ== + +vue-docgen-api@^4.30.0: + version "4.52.0" + resolved "https://registry.yarnpkg.com/vue-docgen-api/-/vue-docgen-api-4.52.0.tgz#83d38e23f640913ec4fd2107c2a9dff1b5af5d0f" + integrity sha512-2HSt9KLQ/ehJiwV4+6LgOjRqzh37vtUv6sKhSIp3CAPlwSd4/Bq2uvbs0+GJxdfrMnVquwY5DOavgNSEHsPA2w== + dependencies: + "@babel/parser" "^7.13.12" + "@babel/types" "^7.18.8" + "@vue/compiler-dom" "^3.2.0" + "@vue/compiler-sfc" "^3.2.0" + ast-types "0.14.2" + hash-sum "^1.0.2" + lru-cache "^4.1.5" + pug "^3.0.2" + recast "0.21.1" + ts-map "^1.0.3" + vue-inbrowser-compiler-independent-utils "^4.52.0" + +vue-docgen-web-types@^0.1.8: + version "0.1.8" + resolved "https://registry.yarnpkg.com/vue-docgen-web-types/-/vue-docgen-web-types-0.1.8.tgz#5d560d85ffea7e9a4f5cb1afb02001ea9fbc3e4c" + integrity sha512-8EE2bkZP3OtzUWBrGY44wp5AqbDzjYViHwvKk2w7IDocbLT1O8vCubF7fqTgaxXrBFgQ/jcr/063WH8q+U3Tww== dependencies: - debug "^4.3.2" - eslint-scope "^7.0.0" - eslint-visitor-keys "^3.1.0" - espree "^9.0.0" + chokidar "^3.4.2" + globby "^11.0.1" + lodash "^4.17.20" + mkdirp "^1.0.4" + vue-docgen-api "^4.30.0" + +vue-eslint-parser@^9.0.1: + version "9.0.3" + resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-9.0.3.tgz#0c17a89e0932cc94fa6a79f0726697e13bfe3c96" + integrity sha512-yL+ZDb+9T0ELG4VIFo/2anAOz8SvBdlqEnQnvJ3M7Scq56DvtjY0VY88bByRZB0D4J0u8olBcfrXTVONXsh4og== + dependencies: + debug "^4.3.4" + eslint-scope "^7.1.1" + eslint-visitor-keys "^3.3.0" + espree "^9.3.1" esquery "^1.4.0" lodash "^4.17.21" - semver "^7.3.5" + semver "^7.3.6" + +vue-inbrowser-compiler-independent-utils@^4.52.0: + version "4.54.1" + resolved "https://registry.yarnpkg.com/vue-inbrowser-compiler-independent-utils/-/vue-inbrowser-compiler-independent-utils-4.54.1.tgz#2628fe92c99a06672d1b91b0f838e0272551ed02" + integrity sha512-hQN3mzLmWM33Ua2Oua5OgF8/BJjP6+T1Wzea5xHDRYCwVvJo2pxSJLhVqluaeBe3PB5vquMddceaKC4mhLe25A== -vue-router@^4.0.15: - version "4.0.15" - resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-4.0.15.tgz#b4a0661efe197f8c724e0f233308f8776e2c3667" - integrity sha512-xa+pIN9ZqORdIW1MkN2+d9Ui2pCM1b/UMgwYUCZOiFYHAvz/slKKBDha8DLrh5aCG/RibtrpyhKjKOZ85tYyWg== +vue-router@^4.1.5: + version "4.1.5" + resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-4.1.5.tgz#256f597e3f5a281a23352a6193aa6e342c8d9f9a" + integrity sha512-IsvoF5D2GQ/EGTs/Th4NQms9gd2NSqV+yylxIyp/OYp8xOwxmU8Kj/74E9DTSYAyH5LX7idVUngN3JSj1X4xcQ== dependencies: - "@vue/devtools-api" "^6.0.0" + "@vue/devtools-api" "^6.1.4" -vue@^3.2.33: - version "3.2.36" - resolved "https://registry.yarnpkg.com/vue/-/vue-3.2.36.tgz#8daa996e2ced521708de97d066c7c998e8bc3378" - integrity sha512-5yTXmrE6gW8IQgttzHW5bfBiFA6mx35ZXHjGLDmKYzW6MMmYvCwuKybANRepwkMYeXw2v1buGg3/lPICY5YlZw== +vue@^3.2.38: + version "3.2.38" + resolved "https://registry.yarnpkg.com/vue/-/vue-3.2.38.tgz#cda3a414631745b194971219318a792dbbccdec0" + integrity sha512-hHrScEFSmDAWL0cwO4B6WO7D3sALZPbfuThDsGBebthrNlDxdJZpGR3WB87VbjpPh96mep1+KzukYEhpHDFa8Q== dependencies: - "@vue/compiler-dom" "3.2.36" - "@vue/compiler-sfc" "3.2.36" - "@vue/runtime-dom" "3.2.36" - "@vue/server-renderer" "3.2.36" - "@vue/shared" "3.2.36" + "@vue/compiler-dom" "3.2.38" + "@vue/compiler-sfc" "3.2.38" + "@vue/runtime-dom" "3.2.38" + "@vue/server-renderer" "3.2.38" + "@vue/shared" "3.2.38" wcwidth@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" - integrity sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g= + integrity sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg== dependencies: defaults "^1.0.3" @@ -7315,22 +7847,22 @@ web-streams-polyfill@^3.0.3: webidl-conversions@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" - integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE= + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== webpack-sources@^3.2.3: version "3.2.3" resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== -webpack-virtual-modules@^0.4.3: - version "0.4.3" - resolved "https://registry.yarnpkg.com/webpack-virtual-modules/-/webpack-virtual-modules-0.4.3.tgz#cd597c6d51d5a5ecb473eea1983a58fa8a17ded9" - integrity sha512-5NUqC2JquIL2pBAAo/VfBP6KuGkHIZQXW/lNKupLPfhViwh8wNsu0BObtl09yuKZszeEUfbXz8xhrHvSG16Nqw== +webpack-virtual-modules@^0.4.4: + version "0.4.4" + resolved "https://registry.yarnpkg.com/webpack-virtual-modules/-/webpack-virtual-modules-0.4.4.tgz#a19fcf371923c59c4712d63d7d194b1e4d8262cc" + integrity sha512-h9atBP/bsZohWpHnr+2sic8Iecb60GxftXsWNLLLSqewgIsGzByd2gcIID4nXcG+3tNe4GQG3dLcff3kXupdRA== whatwg-url@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" - integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0= + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== dependencies: tr46 "~0.0.3" webidl-conversions "^3.0.0" @@ -7353,13 +7885,23 @@ which@^2.0.1: dependencies: isexe "^2.0.0" -wide-align@^1.1.0, wide-align@^1.1.2: +wide-align@^1.1.2: version "1.1.5" resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3" integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== dependencies: string-width "^1.0.2 || 2 || 3 || 4" +with@^7.0.0: + version "7.0.2" + resolved "https://registry.yarnpkg.com/with/-/with-7.0.2.tgz#ccee3ad542d25538a7a7a80aad212b9828495bac" + integrity sha512-RNGKj82nUPg3g5ygxkQl0R937xLyho1J24ItRCBTr/m1YnZkzJy1hUiHUJrc/VlsDQzsCnInEGSg3bci0Lmd4w== + dependencies: + "@babel/parser" "^7.9.6" + "@babel/types" "^7.9.6" + assert-never "^1.2.1" + babel-walk "3.0.0-canary-5" + word-wrap@^1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" @@ -7383,26 +7925,45 @@ wrap-ansi@^7.0.0: string-width "^4.1.0" strip-ansi "^6.0.0" +wrap-ansi@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.0.1.tgz#2101e861777fec527d0ea90c57c6b03aac56a5b3" + integrity sha512-QFF+ufAqhoYHvoHdajT/Po7KoXVBPXS2bgjIam5isfWJPfIOnQZ50JtUiVvCv/sjgacf3yRrt2ZKUZ/V4itN4g== + dependencies: + ansi-styles "^6.1.0" + string-width "^5.0.1" + strip-ansi "^7.0.1" + wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== -ws@^8.6.0, ws@^8.7.0: - version "8.7.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.7.0.tgz#eaf9d874b433aa00c0e0d8752532444875db3957" - integrity sha512-c2gsP0PRwcLFzUiA8Mkr37/MI7ilIlHQxaEAtd0uNMbVMoy8puJyafRlm0bV9MbGSabUPeLrRRaqIBcFcA2Pqg== +ws@^8.6.0, ws@^8.8.1: + version "8.8.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.8.1.tgz#5dbad0feb7ade8ecc99b830c1d77c913d4955ff0" + integrity sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA== ws@~8.2.3: version "8.2.3" resolved "https://registry.yarnpkg.com/ws/-/ws-8.2.3.tgz#63a56456db1b04367d0b721a0b80cae6d8becbba" integrity sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA== +xml-name-validator@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-4.0.0.tgz#79a006e2e63149a8600f15430f0a4725d1524835" + integrity sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw== + xmlhttprequest-ssl@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz#91360c86b914e67f44dce769180027c0da618c67" integrity sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A== +xtend@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + xxhashjs@~0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/xxhashjs/-/xxhashjs-0.2.2.tgz#8a6251567621a1c46a5ae204da0249c7f8caa9d8" @@ -7415,6 +7976,11 @@ y18n@^5.0.5: resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== +yallist@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + integrity sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A== + yallist@^3.0.0, yallist@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" @@ -7430,15 +7996,20 @@ yaml@^1.10.2: resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== +yaml@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.1.1.tgz#1e06fb4ca46e60d9da07e4f786ea370ed3c3cfec" + integrity sha512-o96x3OPo8GjWeSLF+wOAbrPfhFOGY0W00GNaxCDv+9hkcDJEnev1yh8S7pgHF0ik6zc8sQLuL8hjHjJULZp8bw== + yargs-parser@^20.2.2, yargs-parser@^20.2.9: version "20.2.9" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== yargs-parser@^21.0.0: - version "21.0.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.0.1.tgz#0267f286c877a4f0f728fceb6f8a3e4cb95c6e35" - integrity sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg== + version "21.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" + integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== yargs@^16.2.0: version "16.2.0" @@ -7453,7 +8024,7 @@ yargs@^16.2.0: y18n "^5.0.5" yargs-parser "^20.2.2" -yargs@^17.3.1: +yargs@^17.5.1: version "17.5.1" resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.5.1.tgz#e109900cab6fcb7fd44b1d8249166feb0b36e58e" integrity sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA== @@ -7480,6 +8051,11 @@ zip-stream@^4.1.0: compress-commons "^4.1.0" readable-stream "^3.6.0" +zwitch@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/zwitch/-/zwitch-1.0.5.tgz#d11d7381ffed16b742f6af7b3f223d5cd9fe9920" + integrity sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw== + zwitch@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/zwitch/-/zwitch-2.0.2.tgz#91f8d0e901ffa3d66599756dde7f57b17c95dce1"