-
+
-### `.eslintrc.cjs`
+### `eslint.config.js`
-يٌستخدم ملف `.eslintrc.cjs` لإعداد ESLint، اقرأ المزيد هنا [ESLint Docs](https://eslint.org/docs/latest/user-guide/configuring/configuration-files).
+يٌستخدم ملف `eslint.config.js` لإعداد ESLint، اقرأ المزيد هنا [ESLint Docs](https://eslint.org/docs/latest/user-guide/configuring/configuration-files).
diff --git a/www/src/pages/en/folder-structure-app.mdx b/www/src/pages/en/folder-structure-app.mdx
index 3005ddb419..666bccef32 100644
--- a/www/src/pages/en/folder-structure-app.mdx
+++ b/www/src/pages/en/folder-structure-app.mdx
@@ -191,9 +191,9 @@ The `.env.example` file shows example environment variables based on the chosen
-### `.eslintrc.cjs`
+### `eslint.config.js`
-The `.eslintrc.cjs` file is used to configure ESLint. See [ESLint Docs](https://eslint.org/docs/latest/user-guide/configuring/configuration-files) for more information.
+The `eslint.config.js` file is used to configure ESLint. See [ESLint Docs](https://eslint.org/docs/latest/user-guide/configuring/configuration-files) for more information.
@@ -233,9 +233,9 @@ The `postcss.config.js` file is used for Tailwind PostCSS usage. See [Tailwind P
-### `prettier.config.mjs`
+### `prettier.config.js`
-The `prettier.config.mjs` file is used to configure Prettier to include the prettier-plugin-tailwindcss for formatting Tailwind CSS classes. See the [Tailwind CSS blog post](https://tailwindcss.com/blog/automatic-class-sorting-with-prettier) for more information.
+The `prettier.config.js` file is used to configure Prettier to include the prettier-plugin-tailwindcss for formatting Tailwind CSS classes. See the [Tailwind CSS blog post](https://tailwindcss.com/blog/automatic-class-sorting-with-prettier) for more information.
diff --git a/www/src/pages/en/folder-structure-pages.mdx b/www/src/pages/en/folder-structure-pages.mdx
index 47d7c35a6f..ae560629eb 100644
--- a/www/src/pages/en/folder-structure-pages.mdx
+++ b/www/src/pages/en/folder-structure-pages.mdx
@@ -184,9 +184,9 @@ The `.env.example` file shows example environment variables based on the chosen
-### `.eslintrc.cjs`
+### `eslint.config.js`
-The `.eslintrc.cjs` file is used to configure ESLint. See [ESLint Docs](https://eslint.org/docs/latest/user-guide/configuring/configuration-files) for more information.
+The `eslint.config.js` file is used to configure ESLint. See [ESLint Docs](https://eslint.org/docs/latest/user-guide/configuring/configuration-files) for more information.
@@ -226,9 +226,9 @@ The `postcss.config.js` file is used for Tailwind PostCSS usage. See [Tailwind P
-### `prettier.config.mjs`
+### `prettier.config.js`
-The `prettier.config.mjs` file is used to configure Prettier to include the prettier-plugin-tailwindcss for formatting Tailwind CSS classes. See the [Tailwind CSS blog post](https://tailwindcss.com/blog/automatic-class-sorting-with-prettier) for more information.
+The `prettier.config.js` file is used to configure Prettier to include the prettier-plugin-tailwindcss for formatting Tailwind CSS classes. See the [Tailwind CSS blog post](https://tailwindcss.com/blog/automatic-class-sorting-with-prettier) for more information.
diff --git a/www/src/pages/es/folder-structure-pages.mdx b/www/src/pages/es/folder-structure-pages.mdx
index 38017f3cc3..4fbb25446c 100644
--- a/www/src/pages/es/folder-structure-pages.mdx
+++ b/www/src/pages/es/folder-structure-pages.mdx
@@ -182,9 +182,9 @@ El archivo `.env.example` muestra las variables de entorno de ejemplo basadas en
-### `.eslintrc.cjs`
+### `eslint.config.js`
-El archivo `.eslintrc.cjs` se usa para configurar ESLint. Consulta [la documentación de ESLint](https://eslint.org/docs/latest/user-guide/configuring/configuration-files) para obtener más información.
+El archivo `eslint.config.js` se usa para configurar ESLint. Consulta [la documentación de ESLint](https://eslint.org/docs/latest/user-guide/configuring/configuration-files) para obtener más información.
@@ -214,9 +214,9 @@ El archivo `postcss.config.js` se usa para la configuración de Tailwind PostCSS
-### `prettier.config.mjs`
+### `prettier.config.js`
-El archivo `prettier.config.mjs` se usa para configurar Prettier para incluir el prettier-plugin-tailwindcss para formatear las clases de Tailwind CSS. Consulta [el artículo del blog de Tailwind CSS](https://tailwindcss.com/blog/automatic-class-sorting-with-prettier) para obtener más información.
+El archivo `prettier.config.js` se usa para configurar Prettier para incluir el prettier-plugin-tailwindcss para formatear las clases de Tailwind CSS. Consulta [el artículo del blog de Tailwind CSS](https://tailwindcss.com/blog/automatic-class-sorting-with-prettier) para obtener más información.
diff --git a/www/src/pages/fr/folder-structure-pages.mdx b/www/src/pages/fr/folder-structure-pages.mdx
index bf54572dd2..ffa0458d77 100644
--- a/www/src/pages/fr/folder-structure-pages.mdx
+++ b/www/src/pages/fr/folder-structure-pages.mdx
@@ -176,9 +176,9 @@ Le fichier `.env.example` montre des exemples de variables d'environnement basé
-### `.eslintrc.cjs`
+### `eslint.config.js`
-Le fichier `.eslintrc.cjs` est utilisé pour configurer ESLint. Voir la [documentation de ESLint](https://eslint.org/docs/latest/user-guide/configuring/configuration-files) pour plus d'informations.
+Le fichier `eslint.config.js` est utilisé pour configurer ESLint. Voir la [documentation de ESLint](https://eslint.org/docs/latest/user-guide/configuring/configuration-files) pour plus d'informations.
@@ -204,9 +204,9 @@ Le fichier `postcss.config.js` est utilisé pour l'utilisation de Tailwind PostC
-### `prettier.config.mjs`
+### `prettier.config.js`
-Le fichier `prettier.config.mjs` est utilisé pour configurer Prettier afin d'inclure le prettier-plugin-tailwindcss pour le formatage des classes CSS Tailwind. Consultez l'[article de blog Tailwind CSS](https://tailwindcss.com/blog/automatic-class-sorting-with-prettier) pour plus d'informations.
+Le fichier `prettier.config.js` est utilisé pour configurer Prettier afin d'inclure le prettier-plugin-tailwindcss pour le formatage des classes CSS Tailwind. Consultez l'[article de blog Tailwind CSS](https://tailwindcss.com/blog/automatic-class-sorting-with-prettier) pour plus d'informations.
diff --git a/www/src/pages/ja/folder-structure-pages.mdx b/www/src/pages/ja/folder-structure-pages.mdx
index 57482b1024..e5ef8206f8 100644
--- a/www/src/pages/ja/folder-structure-pages.mdx
+++ b/www/src/pages/ja/folder-structure-pages.mdx
@@ -166,9 +166,9 @@ import Form from "../../components/docs/folderStructureForm.astro";
-### `.eslintrc.cjs`
+### `eslint.config.js`
-`.eslintrc.cjs`ファイルは、ESLint の設定に使用されます。詳しくは[ESLint Docs](https://eslint.org/docs/latest/user-guide/configuring/configuration-files)を参照してください。
+`eslint.config.js`ファイルは、ESLint の設定に使用されます。詳しくは[ESLint Docs](https://eslint.org/docs/latest/user-guide/configuring/configuration-files)を参照してください。
@@ -194,9 +194,9 @@ Tailwind の PostCSS の利用には、`postcss.config.js`ファイルが使用
-### `prettier.config.mjs`
+### `prettier.config.js`
-`prettier.config.mjs`ファイルは、Tailwind CSS クラスをフォーマットするために prettier-plugin-tailwindcss を含めるように Prettier を設定するために使用します。詳しくは [Tailwind CSS ブログポスト](https://tailwindcss.com/blog/automatic-class-sorting-with-prettier) を参照してください。
+`prettier.config.js`ファイルは、Tailwind CSS クラスをフォーマットするために prettier-plugin-tailwindcss を含めるように Prettier を設定するために使用します。詳しくは [Tailwind CSS ブログポスト](https://tailwindcss.com/blog/automatic-class-sorting-with-prettier) を参照してください。
diff --git a/www/src/pages/no/folder-structure-pages.mdx b/www/src/pages/no/folder-structure-pages.mdx
index b77fd3820c..904ec2863d 100644
--- a/www/src/pages/no/folder-structure-pages.mdx
+++ b/www/src/pages/no/folder-structure-pages.mdx
@@ -190,9 +190,9 @@ Basert på dine valgte pakker inneholder denne ruteren flere eller færre ruter
-### `prettier.config.mjs`
+### `prettier.config.js`
-`prettier.config.mjs`-filen brukes til å konfigurere Prettier slik at prettier-plugin-tailwindcss inkluderes for formatering av Tailwind CSS-klasser. Se [Tailwind CSS-blogginnlegget](https://tailwindcss.com/blog/automatic-class-sorting-with-prettier) for mer informasjon.
+`prettier.config.js`-filen brukes til å konfigurere Prettier slik at prettier-plugin-tailwindcss inkluderes for formatering av Tailwind CSS-klasser. Se [Tailwind CSS-blogginnlegget](https://tailwindcss.com/blog/automatic-class-sorting-with-prettier) for mer informasjon.
diff --git a/www/src/pages/pl/folder-structure-pages.mdx b/www/src/pages/pl/folder-structure-pages.mdx
index 0d935b79c6..b8b501844f 100644
--- a/www/src/pages/pl/folder-structure-pages.mdx
+++ b/www/src/pages/pl/folder-structure-pages.mdx
@@ -163,9 +163,9 @@ Plik `.env.example` pokazuje przykładowe zmienne środowiskowe bazując na wybr
-### `.eslintrc.cjs`
+### `eslint.config.js`
-Plik `.eslintrc.cjs` jest używany do konfigurowania ESLinta. Po więcej informacji, zobacz [dokumentację ESLinta](https://eslint.org/docs/latest/user-guide/configuring/configuration-files).
+Plik `eslint.config.js` jest używany do konfigurowania ESLinta. Po więcej informacji, zobacz [dokumentację ESLinta](https://eslint.org/docs/latest/user-guide/configuring/configuration-files).
@@ -191,9 +191,9 @@ Plik `postcss.config.js` jest używany przez Tailwind PostCSS. Po więcej inform
-### `prettier.config.mjs`
+### `prettier.config.js`
-Plik `prettier.config.mjs` jest używany do konfigurowania Prettiera. Dołącza on plugin `prettier-plugin-tailwindcss` formatujący klasy CSS Tailwinda. Po więcej informacji, zobacz [post na blogu Tailwind CSS](https://tailwindcss.com/blog/automatic-class-sorting-with-prettier).
+Plik `prettier.config.js` jest używany do konfigurowania Prettiera. Dołącza on plugin `prettier-plugin-tailwindcss` formatujący klasy CSS Tailwinda. Po więcej informacji, zobacz [post na blogu Tailwind CSS](https://tailwindcss.com/blog/automatic-class-sorting-with-prettier).
diff --git a/www/src/pages/pt/folder-structure-pages.mdx b/www/src/pages/pt/folder-structure-pages.mdx
index 0dad871dfe..931751c040 100644
--- a/www/src/pages/pt/folder-structure-pages.mdx
+++ b/www/src/pages/pt/folder-structure-pages.mdx
@@ -177,9 +177,9 @@ O arquivo `.env.example` mostra um exemplo de de variáveis ambiente baseado nas
-### `.eslintrc.cjs`
+### `eslint.config.js`
-O arquivo `.eslintrc.cjs` é usado para configurar o ESLint. Veja [Documentação do ESLint](https://eslint.org/docs/latest/user-guide/configuring/configuration-files) para mais informações.
+O arquivo `eslint.config.js` é usado para configurar o ESLint. Veja [Documentação do ESLint](https://eslint.org/docs/latest/user-guide/configuring/configuration-files) para mais informações.
@@ -205,9 +205,9 @@ O arquivo `postcss.config.js` é usado para o uso do Tailwind PostCSS. Veja [Doc
-### `prettier.config.mjs`
+### `prettier.config.js`
-O arquivo `prettier.config.mjs` é usado para configura o Prettier e incluir o prettier-plugin-tailwindcss para a formatação das classes CSS. Veja o post no [Blog do Tailwind CSS](https://tailwindcss.com/blog/automatic-class-sorting-with-prettier) para mais informações.
+O arquivo `prettier.config.js` é usado para configura o Prettier e incluir o prettier-plugin-tailwindcss para a formatação das classes CSS. Veja o post no [Blog do Tailwind CSS](https://tailwindcss.com/blog/automatic-class-sorting-with-prettier) para mais informações.
diff --git a/www/src/pages/ru/folder-structure-pages.mdx b/www/src/pages/ru/folder-structure-pages.mdx
index 4ecfa05442..bcf5371e43 100644
--- a/www/src/pages/ru/folder-structure-pages.mdx
+++ b/www/src/pages/ru/folder-structure-pages.mdx
@@ -177,9 +177,9 @@ import Form from "../../components/docs/folderStructureForm.astro";
-### `.eslintrc.cjs`
+### `eslint.config.js`
-Файл `.eslintrc.cjs` используется для настройки ESLint. Смотрите [документацию ESLint](https://eslint.org/docs/latest/user-guide/configuring/configuration-files) для получения дополнительной информации.
+Файл `eslint.config.js` используется для настройки ESLint. Смотрите [документацию ESLint](https://eslint.org/docs/latest/user-guide/configuring/configuration-files) для получения дополнительной информации.
@@ -205,9 +205,9 @@ import Form from "../../components/docs/folderStructureForm.astro";
-### `prettier.config.mjs`
+### `prettier.config.js`
-Файл `prettier.config.mjs` используется для настройки Prettier для включения prettier-plugin-tailwindcss для форматирования классов Tailwind CSS. Смотрите [пост блога Tailwind CSS](https://tailwindcss.com/blog/automatic-class-sorting-with-prettier) для получения дополнительной информации.
+Файл `prettier.config.js` используется для настройки Prettier для включения prettier-plugin-tailwindcss для форматирования классов Tailwind CSS. Смотрите [пост блога Tailwind CSS](https://tailwindcss.com/blog/automatic-class-sorting-with-prettier) для получения дополнительной информации.
diff --git a/www/src/pages/uk/folder-structure-pages.mdx b/www/src/pages/uk/folder-structure-pages.mdx
index bb1662d4bf..aa1d225ec5 100644
--- a/www/src/pages/uk/folder-structure-pages.mdx
+++ b/www/src/pages/uk/folder-structure-pages.mdx
@@ -177,9 +177,9 @@ import Form from "../../components/docs/folderStructureForm.astro";
-### `.eslintrc.cjs`
+### `eslint.config.js`
-Файл `.eslintrc.cjs` використовується для налаштування ESLint. Дивіться [документацію ESLint](https://eslint.org/docs/latest/user-guide/configuring/configuration-files) для отримання додаткової інформації.
+Файл `eslint.config.js` використовується для налаштування ESLint. Дивіться [документацію ESLint](https://eslint.org/docs/latest/user-guide/configuring/configuration-files) для отримання додаткової інформації.
@@ -205,9 +205,9 @@ import Form from "../../components/docs/folderStructureForm.astro";
-### `prettier.config.mjs`
+### `prettier.config.js`
-Файл `prettier.config.mjs` використовується для налаштування Prettier для ввімкнення prettier-plugin-tailwindcss для форматування класів Tailwind CSS. Дивіться [пост блогу Tailwind CSS](https://tailwindcss.com/blog/automatic-class-sorting-with-prettier) для отримання додаткової інформації.
+Файл `prettier.config.js` використовується для налаштування Prettier для ввімкнення prettier-plugin-tailwindcss для форматування класів Tailwind CSS. Дивіться [пост блогу Tailwind CSS](https://tailwindcss.com/blog/automatic-class-sorting-with-prettier) для отримання додаткової інформації.
diff --git a/www/src/pages/zh-hans/folder-structure-pages.mdx b/www/src/pages/zh-hans/folder-structure-pages.mdx
index ce2fb44ad8..21b551716c 100644
--- a/www/src/pages/zh-hans/folder-structure-pages.mdx
+++ b/www/src/pages/zh-hans/folder-structure-pages.mdx
@@ -164,9 +164,9 @@ root.ts 文件用于合并 tRPC 子路由并将它们导出为一个单一的路
-### `.eslintrc.cjs`
+### `eslint.config.js`
-文件 `.eslintrc.cjs` 被用于配置 ESLint。参看 [ESLint 文档](https://eslint.org/docs/latest/user-guide/configuring/configuration-files) 来了解更多。
+文件 `eslint.config.js` 被用于配置 ESLint。参看 [ESLint 文档](https://eslint.org/docs/latest/user-guide/configuring/configuration-files) 来了解更多。
@@ -192,9 +192,9 @@ root.ts 文件用于合并 tRPC 子路由并将它们导出为一个单一的路
-### `prettier.config.mjs`
+### `prettier.config.js`
-文件 `prettier.config.mjs` 被用于配置 Prettier,以使用插件 prettier-plugin-tailwindcss 来格式化 Tailwind CSS 的类名。参看 [Tailwind CSS 博客](https://tailwindcss.com/blog/automatic-class-sorting-with-prettier) 来了解更多。
+文件 `prettier.config.js` 被用于配置 Prettier,以使用插件 prettier-plugin-tailwindcss 来格式化 Tailwind CSS 的类名。参看 [Tailwind CSS 博客](https://tailwindcss.com/blog/automatic-class-sorting-with-prettier) 来了解更多。
From d0a5674168c1351fc7bf24f71079303d6c0dd8ec Mon Sep 17 00:00:00 2001
From: "Amir H. Khanjani" <72540492+ahkhanjani@users.noreply.github.com>
Date: Mon, 28 Oct 2024 02:54:20 +0330
Subject: [PATCH 14/14] new eslint config installer for flat config
---
cli/src/installers/eslint.ts | 58 +++++++++---
cli/template/base/package.json | 2 +-
cli/template/extras/config/_eslint.js | 18 ++--
pnpm-lock.yaml | 123 +++++++++-----------------
4 files changed, 96 insertions(+), 105 deletions(-)
diff --git a/cli/src/installers/eslint.ts b/cli/src/installers/eslint.ts
index 6600168271..f60c3a2e1a 100644
--- a/cli/src/installers/eslint.ts
+++ b/cli/src/installers/eslint.ts
@@ -1,5 +1,6 @@
import path from "path";
import fs from "fs-extra";
+import { format } from "prettier";
import { _initialConfig } from "~/../template/extras/config/_eslint.js";
import { type Installer } from "~/installers/index.js";
@@ -7,27 +8,55 @@ import { type Installer } from "~/installers/index.js";
export const dynamicEslintInstaller: Installer = ({ projectDir, packages }) => {
const usingDrizzle = !!packages?.drizzle?.inUse;
- const eslintConfig = getEslintConfig({ usingDrizzle });
+ const imports = getImports(usingDrizzle);
- // Convert config from _eslint.config.json to .eslintrc.cjs
- const eslintrcFileContents = [
- '/** @type {import("eslint").Linter.Config} */',
- `const config = ${JSON.stringify(eslintConfig, null, 2)}`,
- "module.exports = config;",
+ const eslintConfig = getEslintConfig(usingDrizzle);
+ const stringifiedConfig = JSON.stringify(eslintConfig, null, 2).replace(
+ /"%%|%%"/g,
+ ""
+ );
+
+ // Convert config from _eslint.js to eslint.config.js
+ const eslintConfigFileContents = [
+ ...imports,
+ "",
+ "export default tseslint.config(",
+ stringifiedConfig,
+ ");",
].join("\n");
- const eslintConfigDest = path.join(projectDir, ".eslintrc.cjs");
- fs.writeFileSync(eslintConfigDest, eslintrcFileContents, "utf-8");
+ format(eslintConfigFileContents, { parser: "typescript" })
+ .then((content) => {
+ const eslintConfigDest = path.join(projectDir, "eslint.config.js");
+ fs.writeFileSync(eslintConfigDest, content, "utf-8");
+ })
+ .catch((error) => {
+ console.error("Invalid 'eslint.config.js'.", error);
+ });
};
-const getEslintConfig = ({ usingDrizzle }: { usingDrizzle: boolean }) => {
+function getImports(usingDrizzle: boolean) {
+ const imports = [
+ 'import nextPlugin from "@next/eslint-plugin-next"',
+ 'import tseslint from "typescript-eslint"',
+ ];
+
+ if (usingDrizzle) {
+ imports.unshift('import drizzlePlugin from "eslint-plugin-drizzle"');
+ }
+
+ return imports;
+}
+
+function getEslintConfig(usingDrizzle: boolean) {
const eslintConfig = _initialConfig;
if (usingDrizzle) {
- eslintConfig.plugins = [...(eslintConfig.plugins ?? []), "drizzle"];
+ Object.assign(eslintConfig.plugins, {
+ drizzle: "%%drizzlePlugin%%",
+ });
- eslintConfig.rules = {
- ...eslintConfig.rules,
+ Object.assign(eslintConfig.rules, {
"drizzle/enforce-delete-with-where": [
"error",
{ drizzleObjectName: ["db", "ctx.db"] },
@@ -36,7 +65,8 @@ const getEslintConfig = ({ usingDrizzle }: { usingDrizzle: boolean }) => {
"error",
{ drizzleObjectName: ["db", "ctx.db"] },
],
- };
+ });
}
+
return eslintConfig;
-};
+}
diff --git a/cli/template/base/package.json b/cli/template/base/package.json
index 017246f44f..53985400cb 100644
--- a/cli/template/base/package.json
+++ b/cli/template/base/package.json
@@ -22,11 +22,11 @@
"zod": "^3.23.3"
},
"devDependencies": {
+ "@next/eslint-plugin-next": "^15.0.1",
"@types/node": "^20.17.1",
"@types/react": "npm:types-react@rc",
"@types/react-dom": "npm:types-react-dom@rc",
"eslint": "^9.13.0",
- "eslint-config-next": "^15.0.1",
"typescript": "^5.6.3",
"typescript-eslint": "^8.11.0"
},
diff --git a/cli/template/extras/config/_eslint.js b/cli/template/extras/config/_eslint.js
index 3b9dbb4b9c..717117b8f8 100644
--- a/cli/template/extras/config/_eslint.js
+++ b/cli/template/extras/config/_eslint.js
@@ -1,13 +1,17 @@
-/** @type {import("eslint").Linter.Config} */
export const _initialConfig = {
- parser: "@typescript-eslint/parser",
- parserOptions: { project: true },
- plugins: ["@typescript-eslint"],
+ plugins: {
+ "@next/next": "%%nextPlugin%%",
+ "@typescript-eslint": "%%tseslint.plugin%%",
+ },
extends: [
- "next/core-web-vitals",
- "plugin:@typescript-eslint/recommended-type-checked",
- "plugin:@typescript-eslint/stylistic-type-checked",
+ "%%...nextPlugin.configs['core-web-vitals'].rules%%",
+ "%%...tseslint.configs.recommendedTypeChecked%%",
+ "%%...tseslint.configs.stylisticTypeChecked%%",
],
+ languageOptions: {
+ parser: "%%tseslint.parser%%",
+ parserOptions: { project: true },
+ },
rules: {
"@typescript-eslint/array-type": "off",
"@typescript-eslint/consistent-type-definitions": "off",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index cc1db99f57..3ec6b1d9d5 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -429,17 +429,17 @@ importers:
specifier: ^2.0.5
version: 2.0.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
rehype-autolink-headings:
- specifier: ^6.1.1
- version: 6.1.1
+ specifier: ^7.1.0
+ version: 7.1.0
rehype-external-links:
- specifier: ^2.1.0
- version: 2.1.0
+ specifier: ^3.0.0
+ version: 3.0.0
rehype-slug:
- specifier: ^5.1.0
- version: 5.1.0
- remark-code-titles:
- specifier: ^0.1.2
- version: 0.1.2
+ specifier: ^6.0.0
+ version: 6.0.0
+ remark-code-title:
+ specifier: ^0.2.5
+ version: 0.2.5
tailwindcss:
specifier: ^3.4.14
version: 3.4.14
@@ -4309,14 +4309,8 @@ packages:
hast-util-from-parse5@8.0.1:
resolution: {integrity: sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==}
- hast-util-has-property@2.0.1:
- resolution: {integrity: sha512-X2+RwZIMTMKpXUzlotatPzWj8bspCymtXH3cfG3iQKV+wPF53Vgaqxi/eLqGck0wKq1kS9nvoB1wchbCPEL8sg==}
-
- hast-util-heading-rank@2.1.1:
- resolution: {integrity: sha512-iAuRp+ESgJoRFJbSyaqsfvJDY6zzmFoEnL1gtz1+U8gKtGGj1p0CVlysuUAUjq95qlZESHINLThwJzNGmgGZxA==}
-
- hast-util-is-element@2.1.3:
- resolution: {integrity: sha512-O1bKah6mhgEq2WtVMk+Ta5K7pPMqsBBlmzysLdcwKVrqzZQ0CHqUPiIVspNhAG1rvxpvJjtGee17XfauZYKqVA==}
+ hast-util-heading-rank@3.0.0:
+ resolution: {integrity: sha512-EJKb8oMUXVHcWZTDepnr+WNbfnXKFNf9duMesmr4S8SXTJBJ9M4Yok08pu9vxdJwdlGRhVumk9mEhkEvKGifwA==}
hast-util-is-element@3.0.0:
resolution: {integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==}
@@ -4345,9 +4339,6 @@ packages:
hast-util-to-parse5@8.0.0:
resolution: {integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==}
- hast-util-to-string@2.0.0:
- resolution: {integrity: sha512-02AQ3vLhuH3FisaMM+i/9sm4OXGSq1UhOOCpTLLQtHdL3tZt7qil69r8M8iDkZYyC0HCFylcYoP+8IO7ddta1A==}
-
hast-util-to-string@3.0.1:
resolution: {integrity: sha512-XelQVTDWvqcl3axRfI0xSeoVKzyIFPwsAGSLIsKdJKQMXDYJS4WYrBNF/8J7RdhIcFI2BOHgAifggsvsxp/3+A==}
@@ -5937,11 +5928,11 @@ packages:
resolution: {integrity: sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==}
engines: {node: '>=8'}
- rehype-autolink-headings@6.1.1:
- resolution: {integrity: sha512-NMYzZIsHM3sA14nC5rAFuUPIOfg+DFmf9EY1YMhaNlB7+3kK/ZlE6kqPfuxr1tsJ1XWkTrMtMoyHosU70d35mA==}
+ rehype-autolink-headings@7.1.0:
+ resolution: {integrity: sha512-rItO/pSdvnvsP4QRB1pmPiNHUskikqtPojZKJPPPAVx9Hj8i8TwMBhofrrAYRhYOOBZH9tgmG5lPqDLuIWPWmw==}
- rehype-external-links@2.1.0:
- resolution: {integrity: sha512-2YMJZVM1hxZnwl9IPkbN5Pjn78kXkAX7lq9VEtlaGA29qIls25vZN+ucNIJdbQUe+9NNFck17BiOhGmsD6oLIg==}
+ rehype-external-links@3.0.0:
+ resolution: {integrity: sha512-yp+e5N9V3C6bwBeAC4n796kc86M4gJCdlVhiMTxIrJG5UHDMh+PJANf9heqORJbt1nrCbDwIlAZKjANIaVBbvw==}
rehype-parse@9.0.1:
resolution: {integrity: sha512-ksCzCD0Fgfh7trPDxr2rSylbwq9iYDkSn8TCDmEJ49ljEUBxDVCzCHv7QNzZOfODanX4+bWQ4WZqLCRWYLfhag==}
@@ -5958,8 +5949,8 @@ packages:
rehype-recma@1.0.0:
resolution: {integrity: sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw==}
- rehype-slug@5.1.0:
- resolution: {integrity: sha512-Gf91dJoXneiorNEnn+Phx97CO7oRMrpi+6r155tTxzGuLtm+QrI4cTwCa9e1rtePdL4i9tSO58PeSS6HWfgsiw==}
+ rehype-slug@6.0.0:
+ resolution: {integrity: sha512-lWyvf/jwu+oS5+hL5eClVd3hNdmwM1kAC0BUvEGD19pajQMIzcNUd/k9GsfQ+FfECvX+JE+e9/btsKH0EjJT6A==}
rehype-stringify@10.0.1:
resolution: {integrity: sha512-k9ecfXHmIPuFVI61B9DeLPN0qFHfawM6RsuX48hoqlaKSF61RskNjSm1lI8PhBEM0MRdLxVVm4WmTqJQccH9mA==}
@@ -5967,8 +5958,8 @@ packages:
rehype@13.0.2:
resolution: {integrity: sha512-j31mdaRFrwFRUIlxGeuPXXKWQxet52RBQRvCmzl5eCefn/KGbomK5GMHNMsOJf55fgo3qw5tST5neDuarDYR2A==}
- remark-code-titles@0.1.2:
- resolution: {integrity: sha512-KsHQbaI4FX8Ozxqk7YErxwmBiveUqloKuVqyPG2YPLHojpgomodWgRfG4B+bOtmn/5bfJ8khw4rR0lvgVFl2Uw==}
+ remark-code-title@0.2.5:
+ resolution: {integrity: sha512-6tIhdZdECMM0EQk3eDFxUQn/97VKKmo7JkCwfg/mkJaZZBwH+cbP0UDRslOqqzLcueakPZ8q7Gtj5KtGB/jufw==}
remark-gfm@4.0.0:
resolution: {integrity: sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==}
@@ -6657,9 +6648,6 @@ packages:
unist-util-generated@2.0.1:
resolution: {integrity: sha512-qF72kLmPxAw0oN2fwpWIqbXAVyEqUzDHMsbtPvOudIlUzXYFIeQIuxXQCRCFh22B7cixvU0MG7m3MW8FTq/S+A==}
- unist-util-is@3.0.0:
- resolution: {integrity: sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==}
-
unist-util-is@5.2.1:
resolution: {integrity: sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==}
@@ -6696,18 +6684,12 @@ packages:
unist-util-visit-children@3.0.0:
resolution: {integrity: sha512-RgmdTfSBOg04sdPcpTSD1jzoNBjt9a80/ZCzp5cI9n1qPzLZWF9YdvWGN2zmTumP1HWhXKdUWexjy/Wy/lJ7tA==}
- unist-util-visit-parents@2.1.2:
- resolution: {integrity: sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==}
-
unist-util-visit-parents@5.1.3:
resolution: {integrity: sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==}
unist-util-visit-parents@6.0.1:
resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==}
- unist-util-visit@1.4.1:
- resolution: {integrity: sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==}
-
unist-util-visit@4.1.2:
resolution: {integrity: sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==}
@@ -11196,16 +11178,9 @@ snapshots:
vfile-location: 5.0.3
web-namespaces: 2.0.1
- hast-util-has-property@2.0.1: {}
-
- hast-util-heading-rank@2.1.1:
- dependencies:
- '@types/hast': 2.3.10
-
- hast-util-is-element@2.1.3:
+ hast-util-heading-rank@3.0.0:
dependencies:
- '@types/hast': 2.3.10
- '@types/unist': 2.0.11
+ '@types/hast': 3.0.4
hast-util-is-element@3.0.0:
dependencies:
@@ -11320,10 +11295,6 @@ snapshots:
web-namespaces: 2.0.1
zwitch: 2.0.4
- hast-util-to-string@2.0.0:
- dependencies:
- '@types/hast': 2.3.10
-
hast-util-to-string@3.0.1:
dependencies:
'@types/hast': 3.0.4
@@ -13345,25 +13316,23 @@ snapshots:
dependencies:
rc: 1.2.8
- rehype-autolink-headings@6.1.1:
+ rehype-autolink-headings@7.1.0:
dependencies:
- '@types/hast': 2.3.10
- extend: 3.0.2
- hast-util-has-property: 2.0.1
- hast-util-heading-rank: 2.1.1
- hast-util-is-element: 2.1.3
- unified: 10.1.2
- unist-util-visit: 4.1.2
+ '@types/hast': 3.0.4
+ '@ungap/structured-clone': 1.2.0
+ hast-util-heading-rank: 3.0.0
+ hast-util-is-element: 3.0.0
+ unified: 11.0.5
+ unist-util-visit: 5.0.0
- rehype-external-links@2.1.0:
+ rehype-external-links@3.0.0:
dependencies:
- '@types/hast': 2.3.10
- extend: 3.0.2
- hast-util-is-element: 2.1.3
+ '@types/hast': 3.0.4
+ '@ungap/structured-clone': 1.2.0
+ hast-util-is-element: 3.0.0
is-absolute-url: 4.0.1
space-separated-tokens: 2.0.2
- unified: 10.1.2
- unist-util-visit: 4.1.2
+ unist-util-visit: 5.0.0
rehype-parse@9.0.1:
dependencies:
@@ -13395,15 +13364,13 @@ snapshots:
transitivePeerDependencies:
- supports-color
- rehype-slug@5.1.0:
+ rehype-slug@6.0.0:
dependencies:
- '@types/hast': 2.3.10
+ '@types/hast': 3.0.4
github-slugger: 2.0.0
- hast-util-has-property: 2.0.1
- hast-util-heading-rank: 2.1.1
- hast-util-to-string: 2.0.0
- unified: 10.1.2
- unist-util-visit: 4.1.2
+ hast-util-heading-rank: 3.0.0
+ hast-util-to-string: 3.0.1
+ unist-util-visit: 5.0.0
rehype-stringify@10.0.1:
dependencies:
@@ -13418,9 +13385,9 @@ snapshots:
rehype-stringify: 10.0.1
unified: 11.0.5
- remark-code-titles@0.1.2:
+ remark-code-title@0.2.5:
dependencies:
- unist-util-visit: 1.4.1
+ unist-util-visit: 4.1.2
remark-gfm@4.0.0:
dependencies:
@@ -14305,8 +14272,6 @@ snapshots:
unist-util-generated@2.0.1: {}
- unist-util-is@3.0.0: {}
-
unist-util-is@5.2.1:
dependencies:
'@types/unist': 2.0.11
@@ -14358,10 +14323,6 @@ snapshots:
dependencies:
'@types/unist': 3.0.3
- unist-util-visit-parents@2.1.2:
- dependencies:
- unist-util-is: 3.0.0
-
unist-util-visit-parents@5.1.3:
dependencies:
'@types/unist': 2.0.11
@@ -14372,10 +14333,6 @@ snapshots:
'@types/unist': 3.0.3
unist-util-is: 6.0.0
- unist-util-visit@1.4.1:
- dependencies:
- unist-util-visit-parents: 2.1.2
-
unist-util-visit@4.1.2:
dependencies:
'@types/unist': 2.0.11