diff --git a/.github/actions/spelling/allow.txt b/.github/actions/spelling/allow.txt
new file mode 100644
index 0000000000..9716fc35bf
--- /dev/null
+++ b/.github/actions/spelling/allow.txt
@@ -0,0 +1,6 @@
+github
+https
+solidjs
+jsx
+zeropsio
+zerops
diff --git a/.github/actions/spelling/forbidden.txt b/.github/actions/spelling/forbidden.txt
new file mode 100644
index 0000000000..e025048374
--- /dev/null
+++ b/.github/actions/spelling/forbidden.txt
@@ -0,0 +1,2 @@
+\b(\w{3,})\s\g{-1}\b
+\bJavascript\b
diff --git a/.github/actions/spelling/patterns.txt b/.github/actions/spelling/patterns.txt
new file mode 100644
index 0000000000..9dd3461e7d
--- /dev/null
+++ b/.github/actions/spelling/patterns.txt
@@ -0,0 +1,8 @@
+\(data:.*?\)
+(['"])data:.*?\g{-1}
+data:[-a-zA-Z=;:/0-9+]*,\S*
+mailto:[-a-zA-Z=;:/?%&0-9+]*
+https?://\S+
+www\.\S+
+^```[\s\S]*?^```
+
diff --git a/.github/dependabot.yml b/.github/dependabot.yml
index dee71201c7..35b5a9c307 100644
--- a/.github/dependabot.yml
+++ b/.github/dependabot.yml
@@ -1,9 +1,18 @@
version: 2
updates:
- - package-ecosystem: "pnpm"
+ - package-ecosystem: "npm"
directory: "/"
schedule:
interval: "weekly"
day: "monday"
assignees:
- "ladybluenotes"
+ group:
+ minor-patch:
+ applies-to:
+ -
+ patterns:
+ - "*"
+ update-types:
+ - "minor"
+ - "patch"
diff --git a/.github/workflows/orama_sync.yml b/.github/workflows/orama_sync.yml
index 1da8d02f4a..30d83ee15e 100644
--- a/.github/workflows/orama_sync.yml
+++ b/.github/workflows/orama_sync.yml
@@ -8,6 +8,10 @@ on:
paths:
- "**.mdx"
+permissions:
+ contents: read
+ pull-requests: read
+
jobs:
build:
runs-on: ubuntu-latest
diff --git a/.github/workflows/spelling.yml b/.github/workflows/spelling.yml
new file mode 100644
index 0000000000..e69f4577d6
--- /dev/null
+++ b/.github/workflows/spelling.yml
@@ -0,0 +1,97 @@
+name: Check Spelling
+
+on:
+ push:
+ branches:
+ - "**"
+ paths:
+ - "**/routes/**"
+ - "**.mdx"
+ pull_request_target:
+ branches:
+ - "**"
+ paths:
+ - "**/routes/**"
+ - "**.mdx"
+ types:
+ - "opened"
+ - "reopened"
+ - "synchronize"
+ issue_comment:
+ types:
+ - "created"
+ schedule:
+ - cron: "0 12 * * *"
+
+jobs:
+ spelling:
+ - name: Check Spelling
+ runs-on: ubuntu-latest
+ permissions:
+ contents: read
+ pull-requests: read
+ actions: read
+ security-events: write
+ outputs:
+ followup: ${{ steps.spelling.outputs.followup }}
+ if: ${{ github.event_name == 'pull_request' || github.event_name == 'push'}}
+ concurrency:
+ group: spelling-${{ github.event.pull_request.number || github.ref }}
+ steps:
+ - name: check-spelling
+ id: spelling
+ uses: check-spelling/check-spelling@main
+ with:
+ suppress_push_for_open_pull_request: ${{ github.actor != 'dependabot[bot]' && 1 }}
+ checkout: true
+ check_file_names: 0
+ spell_check_this: check-spelling/spell-check-this@main
+ use_magic_file: 1
+ report-timing: 1
+ warnings: bad-regex,deprecated-feature,large-file,limited-references,noisy-file,non-alpha-in-dictionary,token-is-substring,whitespace-in-dictionary,unsupported-configuration,no-files-to-check
+ output: sarif
+ use_sarif: ${{ (!github.event.pull_request || (github.event.pull_request.head.repo.full_name == github.repository)) && 1 }}
+ extra_dictionary_limit: 20
+ extra_dictionaries: cspell:software-terms/dict/softwareTerms.txt
+ sarif_file: results.sarif
+ - name: Upload SARIF to GitHub Code Scanning
+ uses: github/codeql-action/upload-sarif@v3
+ with:
+ sarif_file: results.sarif
+
+ comment-push:
+ name: Report (Push)
+ runs-on: ubuntu-latest
+ needs: spelling
+ permissions:
+ contents: write
+ if: (success() || failure()) && needs.spelling.outputs.followup && github.event_name == 'push'
+ steps:
+ - name: comment
+ uses: check-spelling/check-spelling@main
+ with:
+ checkout: true
+ spell_check_this: check-spelling/spell-check-this@main
+ task: ${{ needs.spelling.outputs.followup }}
+
+ update:
+ name: Update PR
+ permissions:
+ contents: write
+ pull-requests: write
+ runs-on: ubuntu-latest
+ if: ${{
+ github.event_name == 'issue_comment' &&
+ github.event.issue.pull_request &&
+ contains(github.event.comment.body, '@check-spelling-bot apply')
+ }}
+ concurrency:
+ group: spelling-update-${{ github.event.issue.number }}
+ cancel-in-progress: false
+ steps:
+ - name: apply spelling updates
+ uses: check-spelling/check-spelling@main
+ with:
+ checkout: true
+ spell_check_this: check-spelling/spell-check-this@main
+ task: ${{ needs.spelling.outputs.followup }}
diff --git a/.github/workflows/static_checks.yml b/.github/workflows/static_checks.yml
index ed34e8af59..c71be85632 100644
--- a/.github/workflows/static_checks.yml
+++ b/.github/workflows/static_checks.yml
@@ -4,11 +4,15 @@ on:
push:
branches:
- main
-
pull_request:
branches:
- main
+permissions:
+ contents: read
+ actions: read
+ security-events: read
+
jobs:
typecheck:
runs-on: ubuntu-latest
diff --git a/README.md b/README.md
index 3c48337e62..04cb6e1eb1 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,7 @@
-# Solid Docs
+
+
+
+
Welcome to Solid's documentation!
diff --git a/app.config.ts b/app.config.ts
index 24f7049e4e..946d992085 100644
--- a/app.config.ts
+++ b/app.config.ts
@@ -11,6 +11,16 @@ import solidrouterTree from "./.solid/solid-router-tree";
import solidStartTree from "./.solid/solid-start-tree";
import solidMetaTree from "./.solid/solid-meta-tree";
+const allEntries = [
+ entries.learn, entries.reference,
+ solidstartEntries.learn, solidstartEntries.reference,
+ solidrouterEntries.learn, solidrouterEntries.reference,
+ solidMetaEntries.learn, solidMetaEntries.reference,
+].flat(Infinity).map(x =>
+ // @ts-expect-error `flat` mess up the type and I have no idea how to fix this
+ x.path.replace(/\\/g, "/")
+);
+
function docsData() {
const virtualModuleId = "solid:collection";
const resolveVirtualModuleId = "\0" + virtualModuleId;
@@ -53,6 +63,7 @@ export default defineConfig(
crawlLinks: true,
autoSubfolderIndex: false,
failOnError: true,
+ routes: allEntries,
// eslint-disable-next-line no-useless-escape
ignore: [/\{\getPath}/, /.*?emojiSvg\(.*/],
},
diff --git a/eslint.config.ts b/eslint.config.ts
index 5cb595e0c1..6497c04d0e 100644
--- a/eslint.config.ts
+++ b/eslint.config.ts
@@ -4,7 +4,9 @@ import * as globals from "globals";
import tseslint from "typescript-eslint";
import tsParser from "@typescript-eslint/parser";
-export default [
+export default tseslint.config(
+ eslint.configs.recommended,
+ tseslint.configs.recommended,
{
name: "global-ignores",
ignores: [
@@ -18,8 +20,6 @@ export default [
"scripts/",
],
},
- eslint.configs.recommended,
- ...tseslint.configs.recommended,
{
files: ["**/*.{ts,tsx}"],
languageOptions: {
@@ -53,5 +53,5 @@ export default [
},
],
},
- },
-];
+ }
+);
diff --git a/lunaria.config.json b/lunaria.config.json
deleted file mode 100644
index 63fd45cd1f..0000000000
--- a/lunaria.config.json
+++ /dev/null
@@ -1,57 +0,0 @@
-{
- "$schema": "./node_modules/@lunariajs/core/config.schema.json",
- "repository": {
- "name": "solidjs/solid-docs-next",
- "branch": "main",
- "hosting": "github"
- },
- "defaultLocale": {
- "label": "English",
- "lang": "en"
- },
- "files": [
- {
- "type": "universal",
- "location": "src/routes/**/*.{mdx,md}",
- "pattern": "src/routes/@lang/@path"
- },
- {
- "location": "src/i18n/dictionaries/**/ui.ts",
- "pattern": "src/i18n/dictionaries/@lang/@path",
- "type": "dictionary"
- }
- ],
- "locales": [
- {
- "label": "Português do Brasil",
- "lang": "pt-br"
- }
- ],
- "outDir": "./public/i18n-status",
- "dashboard": {
- "site": "https://docs.solidjs.com/i18n-status",
- "title": "Solid Docs Translation Status",
- "description": "Translation progress tracker for the Solid Docs site",
- "basesToHide": ["src/routes/", "src/i18n/dictionaries/"],
- "favicon": {
- "external": [
- {
- "link": "https://docs.solidjs.com/favicon.ico",
- "type": "image/x-icon"
- },
- {
- "link": "https://docs.solidjs.com/favicon.svg",
- "type": "image/svg+xml"
- }
- ]
- },
- "customCss": ["./lunaria/styles.css"],
- "ui": {
- "statusByLocale.heading": "Translation progress by locale",
- "statusByLocale.incompleteLocalizationLink": "incomplete translation",
- "statusByLocale.outdatedLocalizationLink": "outdated translation",
- "statusByLocale.completeLocalization": "This translation is complete, amazing job! 🎉",
- "statusByFile.heading": "Translation status by file"
- }
- }
-}
diff --git a/lunaria/styles.css b/lunaria/styles.css
deleted file mode 100644
index cd92464a82..0000000000
--- a/lunaria/styles.css
+++ /dev/null
@@ -1,4 +0,0 @@
-:root {
- --tw-bg-opacity: 1;
- background-color: rgb(15 23 42 / var(--tw-bg-opacity));
-}
diff --git a/package.json b/package.json
index 238a4b94d8..d15157c0f4 100644
--- a/package.json
+++ b/package.json
@@ -8,19 +8,17 @@
"sync": "node scripts/collections/index.mjs",
"sync:orama": "pnpm build && node scripts/sync-orama.mjs",
"dev": "pnpm sync && vinxi dev",
- "build": "pnpm sync && pnpm build:sitemap && pnpm build:lunaria && NODE_OPTIONS=\"--max-old-space-size=8192\" vinxi build",
+ "build": "pnpm sync && pnpm build:sitemap && pnpm build:llms && NODE_OPTIONS=\"--max-old-space-size=8192\" vinxi build",
+ "build:llms": "node scripts/llms-gen.js",
"build:sitemap": "node scripts/generateSitemap.js",
"start": "vinxi start",
"e2e": "npx playwright test",
- "build:lunaria": "lunaria build",
- "preview:lunaria": "lunaria preview",
"check:lint": "eslint .",
"check:types": "tsc --noEmit"
},
"dependencies": {
"@kobalte/core": "^0.13.11",
- "@kobalte/solidbase": "^0.2.17",
- "@lunariajs/core": "^0.1.1",
+ "@kobalte/solidbase": "^0.2.19",
"@oramacloud/client": "^2.1.4",
"@solid-primitives/event-listener": "^2.4.3",
"@solid-primitives/marker": "^0.2.2",
@@ -28,36 +26,36 @@
"@solid-primitives/platform": "^0.2.1",
"@solidjs/meta": "^0.29.4",
"@solidjs/router": "^0.15.3",
- "@solidjs/start": "^1.1.7",
- "dotenv": "^16.6.1",
- "glob": "^11.0.2",
+ "@solidjs/start": "^1.2.0",
+ "dotenv": "^17.2.3",
+ "glob": "^11.0.3",
"gray-matter": "^4.0.3",
"postcss": "^8.5.6",
- "shiki": "^3.11.0",
+ "shiki": "^3.14.0",
"sitemap": "^8.0.0",
"solid-heroicons": "^3.2.4",
"solid-js": "^1.9.9",
"solid-list": "^0.3.0",
"vinxi": "^0.5.7",
- "zod": "^3.25.76"
+ "zod": "^4.1.12"
},
"devDependencies": {
- "@eslint/js": "^9.33.0",
+ "@eslint/js": "^9.39.1",
"@kobalte/tailwindcss": "^0.9.0",
"@orama/crawly": "^0.0.6",
- "@tailwindcss/typography": "^0.5.16",
- "@types/node": "^24.3.0",
- "@typescript-eslint/eslint-plugin": "^8.40.0",
- "@typescript-eslint/parser": "^8.40.0",
+ "@tailwindcss/typography": "^0.5.19",
+ "@types/node": "^24.10.0",
+ "@typescript-eslint/eslint-plugin": "^8.46.1",
+ "@typescript-eslint/parser": "^8.46.2",
"autoprefixer": "^10.4.21",
- "eslint": "^9.33.0",
+ "eslint": "^9.39.1",
"eslint-plugin-solid": "^0.14.5",
- "globals": "^16.3.0",
- "prettier": "3.5.3",
- "prettier-plugin-tailwindcss": "^0.6.13",
+ "globals": "^16.4.0",
+ "prettier": "3.6.2",
+ "prettier-plugin-tailwindcss": "^0.7.1",
"tailwindcss": "^3.4.17",
- "typescript": "^5.9.2",
- "typescript-eslint": "^8.40.0",
+ "typescript": "^5.9.3",
+ "typescript-eslint": "^8.46.2",
"vite": "^6.3.5"
},
"engines": {
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 50a47384f1..caae5ff788 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -12,11 +12,8 @@ importers:
specifier: ^0.13.11
version: 0.13.11(solid-js@1.9.9)
'@kobalte/solidbase':
- specifier: ^0.2.17
- version: 0.2.17(@algolia/client-search@5.14.2)(@solidjs/start@1.1.7(solid-js@1.9.9)(vinxi@0.5.7(@types/node@24.3.0)(db0@0.3.2)(ioredis@5.6.1)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.0))(vite@6.3.5(@types/node@24.3.0)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.0)))(@vue/compiler-sfc@3.5.16)(acorn@8.15.0)(expressive-code@0.40.2)(react@18.3.1)(search-insights@2.17.3)(solid-js@1.9.9)(vinxi@0.5.7(@types/node@24.3.0)(db0@0.3.2)(ioredis@5.6.1)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.0))(vite@6.3.5(@types/node@24.3.0)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.0))
- '@lunariajs/core':
- specifier: ^0.1.1
- version: 0.1.1
+ specifier: ^0.2.19
+ version: 0.2.19(@solidjs/start@1.2.0(solid-js@1.9.9)(vinxi@0.5.7(@types/node@24.10.0)(db0@0.3.2)(ioredis@5.6.1)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.1))(vite@6.3.5(@types/node@24.10.0)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.1)))(@vue/compiler-sfc@3.5.16)(solid-js@1.9.9)(vinxi@0.5.7(@types/node@24.10.0)(db0@0.3.2)(ioredis@5.6.1)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.1))(vite@6.3.5(@types/node@24.10.0)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.1))
'@oramacloud/client':
specifier: ^2.1.4
version: 2.1.4
@@ -39,14 +36,14 @@ importers:
specifier: ^0.15.3
version: 0.15.3(solid-js@1.9.9)
'@solidjs/start':
- specifier: ^1.1.7
- version: 1.1.7(solid-js@1.9.9)(vinxi@0.5.7(@types/node@24.3.0)(db0@0.3.2)(ioredis@5.6.1)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.0))(vite@6.3.5(@types/node@24.3.0)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.0))
+ specifier: ^1.2.0
+ version: 1.2.0(solid-js@1.9.9)(vinxi@0.5.7(@types/node@24.10.0)(db0@0.3.2)(ioredis@5.6.1)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.1))(vite@6.3.5(@types/node@24.10.0)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.1))
dotenv:
- specifier: ^16.6.1
- version: 16.6.1
+ specifier: ^17.2.3
+ version: 17.2.3
glob:
- specifier: ^11.0.2
- version: 11.0.2
+ specifier: ^11.0.3
+ version: 11.0.3
gray-matter:
specifier: ^4.0.3
version: 4.0.3
@@ -54,8 +51,8 @@ importers:
specifier: ^8.5.6
version: 8.5.6
shiki:
- specifier: ^3.11.0
- version: 3.11.0
+ specifier: ^3.14.0
+ version: 3.14.0
sitemap:
specifier: ^8.0.0
version: 8.0.0
@@ -70,14 +67,14 @@ importers:
version: 0.3.0(solid-js@1.9.9)
vinxi:
specifier: ^0.5.7
- version: 0.5.7(@types/node@24.3.0)(db0@0.3.2)(ioredis@5.6.1)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.0)
+ version: 0.5.7(@types/node@24.10.0)(db0@0.3.2)(ioredis@5.6.1)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.1)
zod:
- specifier: ^3.25.76
- version: 3.25.76
+ specifier: ^4.1.12
+ version: 4.1.12
devDependencies:
'@eslint/js':
- specifier: ^9.33.0
- version: 9.33.0
+ specifier: ^9.39.1
+ version: 9.39.1
'@kobalte/tailwindcss':
specifier: ^0.9.0
version: 0.9.0(tailwindcss@3.4.17)
@@ -85,122 +82,50 @@ importers:
specifier: ^0.0.6
version: 0.0.6
'@tailwindcss/typography':
- specifier: ^0.5.16
- version: 0.5.16(tailwindcss@3.4.17)
+ specifier: ^0.5.19
+ version: 0.5.19(tailwindcss@3.4.17)
'@types/node':
- specifier: ^24.3.0
- version: 24.3.0
+ specifier: ^24.10.0
+ version: 24.10.0
'@typescript-eslint/eslint-plugin':
- specifier: ^8.40.0
- version: 8.40.0(@typescript-eslint/parser@8.40.0(eslint@9.33.0(jiti@2.4.2))(typescript@5.9.2))(eslint@9.33.0(jiti@2.4.2))(typescript@5.9.2)
+ specifier: ^8.46.1
+ version: 8.46.1(@typescript-eslint/parser@8.46.2(eslint@9.39.1(jiti@2.4.2))(typescript@5.9.3))(eslint@9.39.1(jiti@2.4.2))(typescript@5.9.3)
'@typescript-eslint/parser':
- specifier: ^8.40.0
- version: 8.40.0(eslint@9.33.0(jiti@2.4.2))(typescript@5.9.2)
+ specifier: ^8.46.2
+ version: 8.46.2(eslint@9.39.1(jiti@2.4.2))(typescript@5.9.3)
autoprefixer:
specifier: ^10.4.21
version: 10.4.21(postcss@8.5.6)
eslint:
- specifier: ^9.33.0
- version: 9.33.0(jiti@2.4.2)
+ specifier: ^9.39.1
+ version: 9.39.1(jiti@2.4.2)
eslint-plugin-solid:
specifier: ^0.14.5
- version: 0.14.5(eslint@9.33.0(jiti@2.4.2))(typescript@5.9.2)
+ version: 0.14.5(eslint@9.39.1(jiti@2.4.2))(typescript@5.9.3)
globals:
- specifier: ^16.3.0
- version: 16.3.0
+ specifier: ^16.4.0
+ version: 16.4.0
prettier:
- specifier: 3.5.3
- version: 3.5.3
+ specifier: 3.6.2
+ version: 3.6.2
prettier-plugin-tailwindcss:
- specifier: ^0.6.13
- version: 0.6.13(prettier@3.5.3)
+ specifier: ^0.7.1
+ version: 0.7.1(prettier@3.6.2)
tailwindcss:
specifier: ^3.4.17
version: 3.4.17
typescript:
- specifier: ^5.9.2
- version: 5.9.2
+ specifier: ^5.9.3
+ version: 5.9.3
typescript-eslint:
- specifier: ^8.40.0
- version: 8.40.0(eslint@9.33.0(jiti@2.4.2))(typescript@5.9.2)
+ specifier: ^8.46.2
+ version: 8.46.2(eslint@9.39.1(jiti@2.4.2))(typescript@5.9.3)
vite:
specifier: ^6.3.5
- version: 6.3.5(@types/node@24.3.0)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.0)
+ version: 6.3.5(@types/node@24.10.0)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.1)
packages:
- '@algolia/autocomplete-core@1.17.7':
- resolution: {integrity: sha512-BjiPOW6ks90UKl7TwMv7oNQMnzU+t/wk9mgIDi6b1tXpUek7MW0lbNOUHpvam9pe3lVCf4xPFT+lK7s+e+fs7Q==}
-
- '@algolia/autocomplete-plugin-algolia-insights@1.17.7':
- resolution: {integrity: sha512-Jca5Ude6yUOuyzjnz57og7Et3aXjbwCSDf/8onLHSQgw1qW3ALl9mrMWaXb5FmPVkV3EtkD2F/+NkT6VHyPu9A==}
- peerDependencies:
- search-insights: '>= 1 < 3'
-
- '@algolia/autocomplete-preset-algolia@1.17.7':
- resolution: {integrity: sha512-ggOQ950+nwbWROq2MOCIL71RE0DdQZsceqrg32UqnhDz8FlO9rL8ONHNsI2R1MH0tkgVIDKI/D0sMiUchsFdWA==}
- peerDependencies:
- '@algolia/client-search': '>= 4.9.1 < 6'
- algoliasearch: '>= 4.9.1 < 6'
-
- '@algolia/autocomplete-shared@1.17.7':
- resolution: {integrity: sha512-o/1Vurr42U/qskRSuhBH+VKxMvkkUVTLU6WZQr+L5lGZZLYWyhdzWjW0iGXY7EkwRTjBqvN2EsR81yCTGV/kmg==}
- peerDependencies:
- '@algolia/client-search': '>= 4.9.1 < 6'
- algoliasearch: '>= 4.9.1 < 6'
-
- '@algolia/client-abtesting@5.14.2':
- resolution: {integrity: sha512-7fq1tWIy1aNJEaNHxWy3EwDkuo4k22+NBnxq9QlYVSLLXtr6HqmAm6bQgNNzGT3vm21iKqWO9efk+HIhEM1SzQ==}
- engines: {node: '>= 14.0.0'}
-
- '@algolia/client-analytics@5.14.2':
- resolution: {integrity: sha512-5Nm5cOOyAGcY+hKNJVmR2jgoGn1nvoANS8W5EfB8yAaUqUxL3lFNUHSkFafAMTCOcVKNDkZQYjUDbOOfdYJLqw==}
- engines: {node: '>= 14.0.0'}
-
- '@algolia/client-common@5.14.2':
- resolution: {integrity: sha512-BW1Qzhh9tMKEsWSQQsiOEcHAd6g7zxq9RpPVmyxbDO/O4eA4vyN+Qz5Jzo686kuYdIQKqIPCEtob/JM89tk57g==}
- engines: {node: '>= 14.0.0'}
-
- '@algolia/client-insights@5.14.2':
- resolution: {integrity: sha512-17zg6pqifKORvvrMIqW6HhwUry9RKRXLgADrgFjZ6PZvGB4oVs12dwRG2/HMrIlpxd9cjeQfdlEgHj6lbAf6QA==}
- engines: {node: '>= 14.0.0'}
-
- '@algolia/client-personalization@5.14.2':
- resolution: {integrity: sha512-5IYt8vbmTA52xyuaZKFwiRoDPeh7hiOC9aBZqqp9fVs6BU01djI/T8pGJXawvwczltCPYzNsdbllV3rqiDbxmQ==}
- engines: {node: '>= 14.0.0'}
-
- '@algolia/client-query-suggestions@5.14.2':
- resolution: {integrity: sha512-gvCX/cczU76Bu1sGcxxTdoIwxe+FnuC1IlW9SF/gzxd3ZzsgzBpzD2puIJqt9fHQsjLxVGkJqKev2FtExnJYZg==}
- engines: {node: '>= 14.0.0'}
-
- '@algolia/client-search@5.14.2':
- resolution: {integrity: sha512-0imdBZDjqxrshw0+eyJUgnkRAbS2W93UQ3BVj8VjN4xQylIMf0fWs72W7MZFdHlH78JJYydevgzqvGMcV0Z1CA==}
- engines: {node: '>= 14.0.0'}
-
- '@algolia/ingestion@1.14.2':
- resolution: {integrity: sha512-/p4rBNkW0fgCpCwrwre+jHfzlFQsLemgaAQqyui8NPxw95Wgf3p+DKxYzcmh8dygT7ub7FwztTW+uURLX1uqIQ==}
- engines: {node: '>= 14.0.0'}
-
- '@algolia/monitoring@1.14.2':
- resolution: {integrity: sha512-81R57Y/mS0uNhWpu6cNEfkbkADLW4bP0BNjuPpxAypobv7WzYycUnbMvv1YkN6OsociB4+3M7HfsVzj4Nc09vA==}
- engines: {node: '>= 14.0.0'}
-
- '@algolia/recommend@5.14.2':
- resolution: {integrity: sha512-OwELnAZxCUyfjYjqsrFmC7Vfa12kqwbDdLUV0oi4j+4pxDsfPgkiZ6iCH2uPw6X8VK88Hl3InPt+RPaZvcrCWg==}
- engines: {node: '>= 14.0.0'}
-
- '@algolia/requester-browser-xhr@5.14.2':
- resolution: {integrity: sha512-irUvkK+TGBhyivtNCIIbVgNUgbUoHOSk8m/kFX4ddto/PUPmLFRRNNnMHtJ1+OzrJ/uD3Am4FUK2Yt+xgQr05w==}
- engines: {node: '>= 14.0.0'}
-
- '@algolia/requester-fetch@5.14.2':
- resolution: {integrity: sha512-UNBg5mM4MIYdxPuVjyDL22BC6P87g7WuM91Z1Ky0J19aEGvCSF+oR+9autthROFXdRnAa1rACOjuqn95iBbKpw==}
- engines: {node: '>= 14.0.0'}
-
- '@algolia/requester-node-http@5.14.2':
- resolution: {integrity: sha512-CTFA03YiLcnpP+JoLRqjHt5pqDHuKWJpLsIBY/60Gmw8pjALZ3TwvbAquRX4Vy+yrin178NxMuU+ilZ54f2IrQ==}
- engines: {node: '>= 14.0.0'}
-
'@alloc/quick-lru@5.2.0':
resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==}
engines: {node: '>=10'}
@@ -209,11 +134,11 @@ packages:
resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==}
engines: {node: '>=6.0.0'}
- '@antfu/install-pkg@1.0.0':
- resolution: {integrity: sha512-xvX6P/lo1B3ej0OsaErAjqgFYzYVcJpamjLAFLYh9vRJngBrMoUG7aVnrGTeqM7yxbyTD5p3F2+0/QUEh8Vzhw==}
+ '@antfu/install-pkg@1.1.0':
+ resolution: {integrity: sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==}
- '@antfu/utils@8.1.1':
- resolution: {integrity: sha512-Mex9nXf9vR6AhcXmMrlz/HVgYYZpVGJ6YlPgwl7UnaFpnshXs6EK/oa5Gpf3CzENMjkvEx2tQtntGnb7UtSTOQ==}
+ '@antfu/utils@9.3.0':
+ resolution: {integrity: sha512-9hFT4RauhcUzqOE4f1+frMKLZrgNog5b06I7VmZQV1BkvwvqrbC8EBZf3L1eEL2AKb6rNKjER0sEvJiSP1FXEA==}
'@babel/code-frame@7.25.7':
resolution: {integrity: sha512-0xZJFNE5XMpENsgfHYTw8FbX4kv53mFLn2i3XPoq69LyhYSCBJtitaHx9QnsVTrsogI4Z3+HtEfZ2/GFPOtf5g==}
@@ -231,16 +156,16 @@ packages:
resolution: {integrity: sha512-ZsysZyXY4Tlx+Q53XdnOFmqwfB9QDTHYxaZYajWRoBLuLEAwI2UIbtxOjWh/cFaa9IKUlcB+DDuoskLuKu56JA==}
engines: {node: '>=6.9.0'}
- '@babel/compat-data@7.28.0':
- resolution: {integrity: sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==}
+ '@babel/compat-data@7.28.4':
+ resolution: {integrity: sha512-YsmSKC29MJwf0gF8Rjjrg5LQCmyh+j/nD8/eP7f+BeoQTKYqs9RoWbjGOdy0+1Ekr68RJZMUOPVQaQisnIo4Rw==}
engines: {node: '>=6.9.0'}
'@babel/core@7.25.8':
resolution: {integrity: sha512-Oixnb+DzmRT30qu9d3tJSQkxuygWm32DFykT4bRoORPa9hZ/L4KhVB/XiRm6KG+roIEM7DBQlmg27kw2HZkdZg==}
engines: {node: '>=6.9.0'}
- '@babel/core@7.28.3':
- resolution: {integrity: sha512-yDBHV9kQNcr2/sUr9jghVyz9C3Y5G2zUM2H2lo+9mKv4sFgbA8s8Z9t8D1jiTkGoO/NoIfKMyKWr4s6CN23ZwQ==}
+ '@babel/core@7.28.4':
+ resolution: {integrity: sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA==}
engines: {node: '>=6.9.0'}
'@babel/generator@7.25.7':
@@ -331,10 +256,6 @@ packages:
resolution: {integrity: sha512-CbkjYdsJNHFk8uqpEkpCvRs3YRp9tY6FmFY7wLMSYuGYkrdUi7r2lc4/wqsvlHoMznX3WJ9IP8giGPq68T/Y6g==}
engines: {node: '>=6.9.0'}
- '@babel/helper-string-parser@7.25.9':
- resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==}
- engines: {node: '>=6.9.0'}
-
'@babel/helper-string-parser@7.27.1':
resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==}
engines: {node: '>=6.9.0'}
@@ -343,10 +264,6 @@ packages:
resolution: {integrity: sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg==}
engines: {node: '>=6.9.0'}
- '@babel/helper-validator-identifier@7.25.9':
- resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==}
- engines: {node: '>=6.9.0'}
-
'@babel/helper-validator-identifier@7.27.1':
resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==}
engines: {node: '>=6.9.0'}
@@ -363,8 +280,8 @@ packages:
resolution: {integrity: sha512-Sv6pASx7Esm38KQpF/U/OXLwPPrdGHNKoeblRxgZRLXnAtnkEe4ptJPDtAZM7fBLadbc1Q07kQpSiGQ0Jg6tRA==}
engines: {node: '>=6.9.0'}
- '@babel/helpers@7.28.3':
- resolution: {integrity: sha512-PTNtvUQihsAsDHMOP5pfobP8C6CM4JWXmP8DrEIt46c3r2bf87Ua1zoqevsMo9g+tWDwgWrFP5EIxuBx5RudAw==}
+ '@babel/helpers@7.28.4':
+ resolution: {integrity: sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==}
engines: {node: '>=6.9.0'}
'@babel/highlight@7.25.7':
@@ -376,13 +293,8 @@ packages:
engines: {node: '>=6.0.0'}
hasBin: true
- '@babel/parser@7.27.5':
- resolution: {integrity: sha512-OsQd175SxWkGlzbny8J3K8TnnDD0N3lrIUtB92xwyRpzaenGZhxDvxN/JgU00U3CDZNj9tPuDJ5H0WS4Nt3vKg==}
- engines: {node: '>=6.0.0'}
- hasBin: true
-
- '@babel/parser@7.28.3':
- resolution: {integrity: sha512-7+Ey1mAgYqFAx2h0RuoxcQT5+MlG3GTV0TQrgr7/ZliKsm/MNDxVVutlWaziMq7wJNAz8MTqz55XLpWvva6StA==}
+ '@babel/parser@7.28.4':
+ resolution: {integrity: sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg==}
engines: {node: '>=6.0.0'}
hasBin: true
@@ -440,31 +352,24 @@ packages:
resolution: {integrity: sha512-jatJPT1Zjqvh/1FyJs6qAHL+Dzb7sTb+xr7Q+gM1b+1oBsMsQQ4FkVKb6dFlJvLlVssqkRzV05Jzervt9yhnzg==}
engines: {node: '>=6.9.0'}
- '@babel/traverse@7.28.3':
- resolution: {integrity: sha512-7w4kZYHneL3A6NP2nxzHvT3HCZ7puDZZjFMqDpBPECub79sTtSO5CGXDkKrTQq8ksAwfD/XI2MRFX23njdDaIQ==}
+ '@babel/traverse@7.28.4':
+ resolution: {integrity: sha512-YEzuboP2qvQavAcjgQNVgsvHIDv6ZpwXvcvjmyySP2DIMuByS/6ioU5G9pYrWHM6T2YDfc7xga9iNzYOs12CFQ==}
engines: {node: '>=6.9.0'}
'@babel/types@7.25.8':
resolution: {integrity: sha512-JWtuCu8VQsMladxVz/P4HzHUGCAwpuqacmowgXFs5XjxIgKuNjnLokQzuVjlTvIzODaDmpjT3oxcC48vyk9EWg==}
engines: {node: '>=6.9.0'}
- '@babel/types@7.26.9':
- resolution: {integrity: sha512-Y3IR1cRnOxOCDvMmNiym7XpXQ93iGDDPHx+Zj+NM+rg0fBaShfQLkg+hKPaZCEvg5N/LeCo4+Rj/i3FuJsIQaw==}
- engines: {node: '>=6.9.0'}
-
'@babel/types@7.27.6':
resolution: {integrity: sha512-ETyHEk2VHHvl9b9jZP5IHPavHYk57EhanlRRuae9XCpb/j5bDCbPPMOBfCWhnl/7EDJz0jEMCi/RhccCE8r1+Q==}
engines: {node: '>=6.9.0'}
- '@babel/types@7.28.2':
- resolution: {integrity: sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==}
+ '@babel/types@7.28.4':
+ resolution: {integrity: sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==}
engines: {node: '>=6.9.0'}
- '@bprogress/core@1.1.18':
- resolution: {integrity: sha512-+khsDSJ7jv1L9LU34jnEsNqY6tXViSZDOeoxd09Ws8zVXzFjatRzWwBpiDQqTqyVZc0nlOxkkumFDtAgDJwY2A==}
-
- '@clack/core@0.3.4':
- resolution: {integrity: sha512-H4hxZDXgHtWTwV3RAVenqcC4VbJZNegbBjlPvzOzCouXtS2y3sDvlO3IsbrPNWuLWPPlYVYPghQdSF64683Ldw==}
+ '@bprogress/core@1.3.4':
+ resolution: {integrity: sha512-q/AqpurI/1uJzOrQROuZWixn/+ARekh+uvJGwLCP6HQ/EqAX4SkvNf618tSBxL4NysC0MwqAppb/mRw6Tzi61w==}
'@cloudflare/kv-asset-handler@0.4.0':
resolution: {integrity: sha512-+tv3z+SPp+gqTIcImN9o0hqE9xyfQjI1XD9pL6NuKjua9B1y7mNYv0S9cP+QEbA4ppVgGZEmKOvHX5G5Ei1CVA==}
@@ -479,8 +384,8 @@ packages:
peerDependencies:
solid-js: ^1.8
- '@ctrl/tinycolor@4.1.0':
- resolution: {integrity: sha512-WyOx8cJQ+FQus4Mm4uPIZA64gbk3Wxh0so5Lcii0aJifqwoVOlfFtorjLE0Hen4OYyHZMXDWqMmaQemBhgxFRQ==}
+ '@ctrl/tinycolor@4.2.0':
+ resolution: {integrity: sha512-kzyuwOAQnXJNLS9PSyrk0CWk35nWJW/zl/6KvnTBMFK65gm7U1/Z5BqjxeapjZCIhQcM/DsrEmcbRwDyXyXK4A==}
engines: {node: '>=14'}
'@dabh/diagnostics@2.0.3':
@@ -496,28 +401,8 @@ packages:
resolution: {integrity: sha512-Y6+WUMsTFWE5jb20IFP4YGa5IrGY/+a/FbOSjDF/wz9gepU2hwCYSXRHP/vPwBvwcY3SVMASt4yXxbXNXigmZQ==}
engines: {node: '>=18'}
- '@docsearch/css@3.8.0':
- resolution: {integrity: sha512-pieeipSOW4sQ0+bE5UFC51AOZp9NGxg89wAlZ1BAQFaiRAGK1IKUaPQ0UGZeNctJXyqZ1UvBtOQh2HH+U5GtmA==}
-
- '@docsearch/js@3.8.0':
- resolution: {integrity: sha512-PVuV629f5UcYRtBWqK7ID6vNL5647+2ADJypwTjfeBIrJfwPuHtzLy39hMGMfFK+0xgRyhTR0FZ83EkdEraBlg==}
-
- '@docsearch/react@3.8.0':
- resolution: {integrity: sha512-WnFK720+iwTVt94CxY3u+FgX6exb3BfN5kE9xUY6uuAH/9W/UFboBZFLlrw/zxFRHoHZCOXRtOylsXF+6LHI+Q==}
- peerDependencies:
- '@types/react': '>= 16.8.0 < 19.0.0'
- react: '>= 16.8.0 < 19.0.0'
- react-dom: '>= 16.8.0 < 19.0.0'
- search-insights: '>= 1 < 3'
- peerDependenciesMeta:
- '@types/react':
- optional: true
- react:
- optional: true
- react-dom:
- optional: true
- search-insights:
- optional: true
+ '@docsearch/css@3.9.0':
+ resolution: {integrity: sha512-cQbnVbq0rrBwNAKegIac/t6a8nWoUAn8frnkLFW6YARaRmAQr5/Eoe6Ln2fqkUCZ40KpdrKbpSAmgrkviOxuWA==}
'@esbuild/aix-ppc64@0.25.5':
resolution: {integrity: sha512-9o3TMmpmftaCMepOdA5k/yDw8SfInyzWWTjYTFCX3kPSDJMROQTb8jg+h9Cnwnmm1vOzvxN7gIfB5V2ewpjtGA==}
@@ -669,66 +554,78 @@ packages:
cpu: [x64]
os: [win32]
- '@eslint-community/eslint-utils@4.7.0':
- resolution: {integrity: sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==}
+ '@eslint-community/eslint-utils@4.9.0':
+ resolution: {integrity: sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
- '@eslint-community/regexpp@4.11.1':
- resolution: {integrity: sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==}
- engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
-
'@eslint-community/regexpp@4.12.1':
resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==}
engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
- '@eslint/config-array@0.21.0':
- resolution: {integrity: sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ==}
+ '@eslint-community/regexpp@4.12.2':
+ resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==}
+ engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
+
+ '@eslint/config-array@0.21.1':
+ resolution: {integrity: sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@eslint/config-helpers@0.3.1':
- resolution: {integrity: sha512-xR93k9WhrDYpXHORXpxVL5oHj3Era7wo6k/Wd8/IsQNnZUTzkGS29lyn3nAT05v6ltUuTFVCCYDEGfy2Or/sPA==}
+ '@eslint/config-helpers@0.4.2':
+ resolution: {integrity: sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@eslint/core@0.15.2':
- resolution: {integrity: sha512-78Md3/Rrxh83gCxoUc0EiciuOHsIITzLy53m3d9UyiW8y9Dj2D29FeETqyKA+BRK76tnTp6RXWb3pCay8Oyomg==}
+ '@eslint/core@0.17.0':
+ resolution: {integrity: sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@eslint/eslintrc@3.3.1':
resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@eslint/js@9.33.0':
- resolution: {integrity: sha512-5K1/mKhWaMfreBGJTwval43JJmkip0RmM+3+IuqupeSKNC/Th2Kc7ucaq5ovTSra/OOKB9c58CGSz3QMVbWt0A==}
+ '@eslint/js@9.39.1':
+ resolution: {integrity: sha512-S26Stp4zCy88tH94QbBv3XCuzRQiZ9yXofEILmglYTh/Ug/a9/umqvgFtYBAo3Lp0nsI/5/qH1CCrbdK3AP1Tw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@eslint/object-schema@2.1.6':
- resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==}
+ '@eslint/object-schema@2.1.7':
+ resolution: {integrity: sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@eslint/plugin-kit@0.3.5':
- resolution: {integrity: sha512-Z5kJ+wU3oA7MMIqVR9tyZRtjYPr4OC004Q4Rw7pgOKUOKkJfZ3O24nz3WYfGRpMDNmcOi3TwQOmgm7B7Tpii0w==}
+ '@eslint/plugin-kit@0.4.1':
+ resolution: {integrity: sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@expressive-code/core@0.40.2':
resolution: {integrity: sha512-gXY3v7jbgz6nWKvRpoDxK4AHUPkZRuJsM79vHX/5uhV9/qX6Qnctp/U/dMHog/LCVXcuOps+5nRmf1uxQVPb3w==}
+ '@expressive-code/core@0.41.3':
+ resolution: {integrity: sha512-9qzohqU7O0+JwMEEgQhnBPOw5DtsQRBXhW++5fvEywsuX44vCGGof1SL5OvPElvNgaWZ4pFZAFSlkNOkGyLwSQ==}
+
'@expressive-code/plugin-collapsible-sections@0.40.2':
resolution: {integrity: sha512-EtfuluXKk3CdFMAeCJoDsUJo/s+Yh9b+kX0hNHeFlZ/W2/H8FmdZ9Pu+Qel41vw4yP6AyiQpsamquO7bzlakug==}
'@expressive-code/plugin-frames@0.40.2':
resolution: {integrity: sha512-aLw5IlDlZWb10Jo/TTDCVsmJhKfZ7FJI83Zo9VDrV0OBlmHAg7klZqw68VDz7FlftIBVAmMby53/MNXPnMjTSQ==}
+ '@expressive-code/plugin-frames@0.41.3':
+ resolution: {integrity: sha512-rFQtmf/3N2CK3Cq/uERweMTYZnBu+CwxBdHuOftEmfA9iBE7gTVvwpbh82P9ZxkPLvc40UMhYt7uNuAZexycRQ==}
+
'@expressive-code/plugin-line-numbers@0.40.2':
resolution: {integrity: sha512-YMLkn68n9a9DI/4fQW/f6QJ33uQUzHmGdV3pDl+f6fVTxv7rvhRja+UtPksm0ZJpft6vrrACV8wS2TaH77SBzw==}
'@expressive-code/plugin-shiki@0.40.2':
resolution: {integrity: sha512-t2HMR5BO6GdDW1c1ISBTk66xO503e/Z8ecZdNcr6E4NpUfvY+MRje+LtrcvbBqMwWBBO8RpVKcam/Uy+1GxwKQ==}
+ '@expressive-code/plugin-shiki@0.41.3':
+ resolution: {integrity: sha512-RlTARoopzhFJIOVHLGvuXJ8DCEme/hjV+ZnRJBIxzxsKVpGPW4Oshqg9xGhWTYdHstTsxO663s0cdBLzZj9TQA==}
+
'@expressive-code/plugin-text-markers@0.40.2':
resolution: {integrity: sha512-/XoLjD67K9nfM4TgDlXAExzMJp6ewFKxNpfUw4F7q5Ecy+IU3/9zQQG/O70Zy+RxYTwKGw2MA9kd7yelsxnSmw==}
+ '@expressive-code/plugin-text-markers@0.41.3':
+ resolution: {integrity: sha512-SN8tkIzDpA0HLAscEYD2IVrfLiid6qEdE9QLlGVSxO1KEw7qYvjpbNBQjUjMr5/jvTJ7ys6zysU2vLPHE0sb2g==}
+
'@fastify/busboy@3.1.1':
resolution: {integrity: sha512-5DGmA8FTdB2XbDeEwc/5ZXBl6UbBAyBOOLlPuBnZ/N1SwdH9Ii+cOX3tBROlDgcTXxjOYnLMVoKk9+FXAw0CJw==}
@@ -741,40 +638,39 @@ packages:
'@floating-ui/utils@0.2.8':
resolution: {integrity: sha512-kym7SodPp8/wloecOpcmSnWJsK7M0E5Wg8UcFA+uO4B9s5d0ywXOEro/8HM9x0rW+TljRzul/14UYz3TleT3ig==}
- '@fontsource-variable/inter@5.1.1':
- resolution: {integrity: sha512-OpXFTmiH6tHkYijMvQTycFKBLK4X+SRV6tet1m4YOUH7SzIIlMqDja+ocDtiCA72UthBH/vF+3ZtlMr2rN/wIw==}
+ '@fontsource-variable/inter@5.2.8':
+ resolution: {integrity: sha512-kOfP2D+ykbcX/P3IFnokOhVRNoTozo5/JxhAIVYLpea/UBmCQ/YWPBfWIDuBImXX/15KH+eKh4xpEUyS2sQQGQ==}
- '@fontsource-variable/jetbrains-mono@5.1.2':
- resolution: {integrity: sha512-syGEJ/N4FFisAXegxtbe1etYpo2T630dqCbYufPf7Dli/hMKSoSUIm3wK4q5RsGFRxWno1WecfnsgZA1jRK0EQ==}
+ '@fontsource-variable/jetbrains-mono@5.2.8':
+ resolution: {integrity: sha512-WBA9elru6Jdp5df2mES55wuOO0WIrn3kpXnI4+W2ek5u3ZgLS9XS4gmIlcQhiZOWEKl95meYdvK7xI+ETLCq/Q==}
- '@fontsource-variable/lexend@5.1.2':
- resolution: {integrity: sha512-5gY4aYZXvhCNrpqa7f/JmRnUyRMAPqGdE0IXicbqvusj+jEwuj1JuiLPl61hTbGntQP+sMZsDHECBhlrEY/8iQ==}
+ '@fontsource-variable/lexend@5.2.11':
+ resolution: {integrity: sha512-0hgEQ4O7Nh8fxL/WWmspJf0BErbocRkZwtLRGey/V4mUUqxfF7QUwqhcdzwpjom3NYCniY4uzQ5wYD7r9/92tQ==}
'@humanfs/core@0.19.1':
resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==}
engines: {node: '>=18.18.0'}
- '@humanfs/node@0.16.6':
- resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==}
+ '@humanfs/node@0.16.7':
+ resolution: {integrity: sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==}
engines: {node: '>=18.18.0'}
'@humanwhocodes/module-importer@1.0.1':
resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
engines: {node: '>=12.22'}
- '@humanwhocodes/retry@0.3.1':
- resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==}
- engines: {node: '>=18.18'}
-
'@humanwhocodes/retry@0.4.3':
resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==}
engines: {node: '>=18.18'}
+ '@iarna/toml@2.2.5':
+ resolution: {integrity: sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==}
+
'@iconify/types@2.0.0':
resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==}
- '@iconify/utils@2.3.0':
- resolution: {integrity: sha512-GmQ78prtwYW6EtzXRU1rY+KwOKfz32PD7iJh6Iyqw68GiKuoZ2A6pRtzWONz5VQJbp50mEjXh/7NkumtrAgRKA==}
+ '@iconify/utils@3.0.2':
+ resolution: {integrity: sha512-EfJS0rLfVuRuJRn4psJHtK2A9TqVnkxPpHY6lYHiB9+8eSuudsxbwMiavocG45ujOo6FJ+CIRlRnlOGinzkaGQ==}
'@internationalized/date@3.5.6':
resolution: {integrity: sha512-jLxQjefH9VI5P9UQuqB6qNKnvFt1Ky1TPIzHGsIlCi7sZZoMR8SdYbBGRvM0y+Jtb+ez4ieBzmiAUcpmPYpyOw==}
@@ -785,6 +681,14 @@ packages:
'@ioredis/commands@1.2.0':
resolution: {integrity: sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==}
+ '@isaacs/balanced-match@4.0.1':
+ resolution: {integrity: sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==}
+ engines: {node: 20 || >=22}
+
+ '@isaacs/brace-expansion@5.0.0':
+ resolution: {integrity: sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==}
+ engines: {node: 20 || >=22}
+
'@isaacs/cliui@8.0.2':
resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
engines: {node: '>=12'}
@@ -793,10 +697,6 @@ packages:
resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==}
engines: {node: '>=18.0.0'}
- '@jest/schemas@29.6.3':
- resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==}
- engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-
'@jridgewell/gen-mapping@0.3.13':
resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==}
@@ -804,9 +704,8 @@ packages:
resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==}
engines: {node: '>=6.0.0'}
- '@jridgewell/gen-mapping@0.3.8':
- resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==}
- engines: {node: '>=6.0.0'}
+ '@jridgewell/remapping@2.3.5':
+ resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==}
'@jridgewell/resolve-uri@3.1.2':
resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
@@ -819,25 +718,22 @@ packages:
'@jridgewell/source-map@0.3.6':
resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==}
- '@jridgewell/sourcemap-codec@1.5.0':
- resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==}
-
'@jridgewell/sourcemap-codec@1.5.5':
resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==}
'@jridgewell/trace-mapping@0.3.25':
resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==}
- '@jridgewell/trace-mapping@0.3.30':
- resolution: {integrity: sha512-GQ7Nw5G2lTu/BtHTKfXhKHok2WGetd4XYcVKGx00SjAk8GMwgJM3zr6zORiPGuOE+/vkc90KtTosSSvaCjKb2Q==}
+ '@jridgewell/trace-mapping@0.3.31':
+ resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==}
'@kobalte/core@0.13.11':
resolution: {integrity: sha512-hK7TYpdib/XDb/r/4XDBFaO9O+3ZHz4ZWryV4/3BfES+tSQVgg2IJupDnztKXB0BqbSRy/aWlHKw1SPtNPYCFQ==}
peerDependencies:
solid-js: ^1.8.15
- '@kobalte/solidbase@0.2.17':
- resolution: {integrity: sha512-OVFVpK2IUdREx/QNfI7QarUWlo/L+xAPJB9HkkjPVtdeJfXwOo26wPLh/w3FMTVtsOB6oN00KUdGnGXEWB34/A==}
+ '@kobalte/solidbase@0.2.19':
+ resolution: {integrity: sha512-beNqy2SvCJxhwZ7rAvHsOMGDr0i4/VoVGNBqrbFkCmeEatNuJ5M6D0BSMLBms78RmGa27iqTwBY+XO0vscZjCg==}
engines: {node: '>=22'}
peerDependencies:
'@solidjs/start': ^1.0.8
@@ -855,24 +751,13 @@ packages:
peerDependencies:
solid-js: ^1.8.8
- '@kwsites/file-exists@1.1.1':
- resolution: {integrity: sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==}
-
- '@kwsites/promise-deferred@1.1.1':
- resolution: {integrity: sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==}
-
- '@lunariajs/core@0.1.1':
- resolution: {integrity: sha512-sAqM9+DVsLe3xHM9wu2pEnKGYMs/bWS9qpR+CGHol3RihOELnOQTzHddXbdB1MtgesbI8dnQuG64Ocd8KkWsng==}
- engines: {node: '>=18.17.0'}
- hasBin: true
-
'@mapbox/node-pre-gyp@2.0.0':
resolution: {integrity: sha512-llMXd39jtP0HpQLVI37Bf1m2ADlEb35GYSh1SDSLsBhR+5iCxiNGlT31yqbNtVHygHAtMy6dWFERpU2JgufhPg==}
engines: {node: '>=18'}
hasBin: true
- '@mdx-js/mdx@3.1.0':
- resolution: {integrity: sha512-/QxEhPAvGwbQmy1Px8F899L5Uc2KZ6JtXwlCgJmjSTBedwOZkByYcBG4GceIGPXRDsmfxhHazuS+hlOShRLeDw==}
+ '@mdx-js/mdx@3.1.1':
+ resolution: {integrity: sha512-f6ZO2ifpwAQIpzGWaBQT2TXxPv6z3RBzQKpVftEWN78Vl/YweF1uwussDx8ECAXVtr3Rs89fKyG9YlzUs9DyGQ==}
'@netlify/binary-info@1.0.0':
resolution: {integrity: sha512-4wMPu9iN3/HL97QblBsBay3E1etIciR84izI3U+4iALY+JHCrI+a2jO0qbAZ/nxKoegypYEaiiqWXylm+/zfrw==}
@@ -1124,6 +1009,12 @@ packages:
resolution: {integrity: sha512-aQypoot0HPSJa6gDPEPTntc1GT6QINrSbgRlRhadGW2WaYqUK3tK4Bw9SBMZXhmxd3GeAlZjVcODHgiu+THY7A==}
engines: {node: '>=18'}
+ '@prettier/cli@0.6.0':
+ resolution: {integrity: sha512-kPQDTB+FPjvj23SmBH4T9uGCxMVS1cyJSY9dbOHGOC29nL9gR5gwZ4b4uMj4QRB0uE5K9c7avbAo+gvUbcZb4Q==}
+ hasBin: true
+ peerDependencies:
+ prettier: ^3.1.0 || ^4.0.0
+
'@rollup/plugin-alias@5.1.1':
resolution: {integrity: sha512-PR9zDb+rOzkRb2VD+EuKB7UC41vU5DIwZ5qqCpk0KJudcWAyi8rvYOhS7+L5aZCspw1stTViLgN5v6FF1p5cgQ==}
engines: {node: '>=14.0.0'}
@@ -1299,45 +1190,42 @@ packages:
'@shikijs/core@1.29.2':
resolution: {integrity: sha512-vju0lY9r27jJfOY4Z7+Rt/nIOjzJpZ3y+nYpqtUZInVoXQ/TJZcfGnNOGnKjFdVZb8qexiCuSlZRKcGfhhTTZQ==}
- '@shikijs/core@3.11.0':
- resolution: {integrity: sha512-oJwU+DxGqp6lUZpvtQgVOXNZcVsirN76tihOLBmwILkKuRuwHteApP8oTXmL4tF5vS5FbOY0+8seXmiCoslk4g==}
+ '@shikijs/core@3.14.0':
+ resolution: {integrity: sha512-qRSeuP5vlYHCNUIrpEBQFO7vSkR7jn7Kv+5X3FO/zBKVDGQbcnlScD3XhkrHi/R8Ltz0kEjvFR9Szp/XMRbFMw==}
'@shikijs/engine-javascript@1.29.2':
resolution: {integrity: sha512-iNEZv4IrLYPv64Q6k7EPpOCE/nuvGiKl7zxdq0WFuRPF5PAE9PRo2JGq/d8crLusM59BRemJ4eOqrFrC4wiQ+A==}
- '@shikijs/engine-javascript@3.11.0':
- resolution: {integrity: sha512-6/ov6pxrSvew13k9ztIOnSBOytXeKs5kfIR7vbhdtVRg+KPzvp2HctYGeWkqv7V6YIoLicnig/QF3iajqyElZA==}
+ '@shikijs/engine-javascript@3.14.0':
+ resolution: {integrity: sha512-3v1kAXI2TsWQuwv86cREH/+FK9Pjw3dorVEykzQDhwrZj0lwsHYlfyARaKmn6vr5Gasf8aeVpb8JkzeWspxOLQ==}
'@shikijs/engine-oniguruma@1.29.2':
resolution: {integrity: sha512-7iiOx3SG8+g1MnlzZVDYiaeHe7Ez2Kf2HrJzdmGwkRisT7r4rak0e655AcM/tF9JG/kg5fMNYlLLKglbN7gBqA==}
- '@shikijs/engine-oniguruma@3.11.0':
- resolution: {integrity: sha512-4DwIjIgETK04VneKbfOE4WNm4Q7WC1wo95wv82PoHKdqX4/9qLRUwrfKlmhf0gAuvT6GHy0uc7t9cailk6Tbhw==}
+ '@shikijs/engine-oniguruma@3.14.0':
+ resolution: {integrity: sha512-TNcYTYMbJyy+ZjzWtt0bG5y4YyMIWC2nyePz+CFMWqm+HnZZyy9SWMgo8Z6KBJVIZnx8XUXS8U2afO6Y0g1Oug==}
'@shikijs/langs@1.29.2':
resolution: {integrity: sha512-FIBA7N3LZ+223U7cJDUYd5shmciFQlYkFXlkKVaHsCPgfVLiO+e12FmQE6Tf9vuyEsFe3dIl8qGWKXgEHL9wmQ==}
- '@shikijs/langs@3.11.0':
- resolution: {integrity: sha512-Njg/nFL4HDcf/ObxcK2VeyidIq61EeLmocrwTHGGpOQx0BzrPWM1j55XtKQ1LvvDWH15cjQy7rg96aJ1/l63uw==}
+ '@shikijs/langs@3.14.0':
+ resolution: {integrity: sha512-DIB2EQY7yPX1/ZH7lMcwrK5pl+ZkP/xoSpUzg9YC8R+evRCCiSQ7yyrvEyBsMnfZq4eBzLzBlugMyTAf13+pzg==}
'@shikijs/themes@1.29.2':
resolution: {integrity: sha512-i9TNZlsq4uoyqSbluIcZkmPL9Bfi3djVxRnofUHwvx/h6SRW3cwgBC5SML7vsDcWyukY0eCzVN980rqP6qNl9g==}
- '@shikijs/themes@3.11.0':
- resolution: {integrity: sha512-BhhWRzCTEk2CtWt4S4bgsOqPJRkapvxdsifAwqP+6mk5uxboAQchc0etiJ0iIasxnMsb764qGD24DK9albcU9Q==}
+ '@shikijs/themes@3.14.0':
+ resolution: {integrity: sha512-fAo/OnfWckNmv4uBoUu6dSlkcBc+SA1xzj5oUSaz5z3KqHtEbUypg/9xxgJARtM6+7RVm0Q6Xnty41xA1ma1IA==}
'@shikijs/types@1.29.2':
resolution: {integrity: sha512-VJjK0eIijTZf0QSTODEXCqinjBn0joAHQ+aPSBzrv4O2d/QSbsMw+ZeSRx03kV34Hy7NzUvV/7NqfYGRLrASmw==}
- '@shikijs/types@3.11.0':
- resolution: {integrity: sha512-RB7IMo2E7NZHyfkqAuaf4CofyY8bPzjWPjJRzn6SEak3b46fIQyG6Vx5fG/obqkfppQ+g8vEsiD7Uc6lqQt32Q==}
+ '@shikijs/types@3.14.0':
+ resolution: {integrity: sha512-bQGgC6vrY8U/9ObG1Z/vTro+uclbjjD/uG58RvfxKZVD5p9Yc1ka3tVyEFy7BNJLzxuWyHH5NWynP9zZZS59eQ==}
'@shikijs/vscode-textmate@10.0.2':
resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==}
- '@sinclair/typebox@0.27.8':
- resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==}
-
'@sindresorhus/is@7.0.2':
resolution: {integrity: sha512-d9xRovfKNz1SKieM0qJdO+PQonjnnIfSNWfHYnBSJ9hkjm0ZPw6HlxscDXYstp3z+7V2GOFHc+J0CYrYTjqCJw==}
engines: {node: '>=18'}
@@ -1346,8 +1234,8 @@ packages:
resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==}
engines: {node: '>=18'}
- '@solid-primitives/clipboard@1.5.10':
- resolution: {integrity: sha512-ohwlrBP4j+Qjksg01CFWaP/USpzX78dBNVA1DPRZkf/vJgytX0T6KMc2YxF6o8fs6ePIYSI8Nt3sKxF0sh1q+Q==}
+ '@solid-primitives/clipboard@1.6.2':
+ resolution: {integrity: sha512-lJHjyjjOFNcPFmLanY9+dShS1OwJUVuaJneSQNEm4yDrJ1t6eY8JKEslSVcTQDoNzVvNPDLHHm3/q4uGXsB14A==}
peerDependencies:
solid-js: ^1.6.12
@@ -1361,8 +1249,8 @@ packages:
peerDependencies:
solid-js: ^1.6.12
- '@solid-primitives/keyboard@1.2.8':
- resolution: {integrity: sha512-pJtcbkjozS6L1xvTht9rPpyPpX55nAkfBzbFWdf3y0Suwh6qClTibvvObzKOf7uzQ+8aZRDH4LsoGmbTKXtJjQ==}
+ '@solid-primitives/keyboard@1.3.3':
+ resolution: {integrity: sha512-9dQHTTgLBqyAI7aavtO+HnpTVJgWQA1ghBSrmLtMu1SMxLPDuLfuNr+Tk5udb4AL4Ojg7h9JrKOGEEDqsJXWJA==}
peerDependencies:
solid-js: ^1.6.12
@@ -1416,18 +1304,13 @@ packages:
peerDependencies:
solid-js: ^1.6.12
- '@solid-primitives/rootless@1.5.1':
- resolution: {integrity: sha512-G4eNC6F3ufRT2Mjbodl7rSOH7uq/Emqs3S7/BIBWgh+V/IFUtvu6WELeqSrk4FJX3T/kKKvC+T8gXhepExSWyg==}
- peerDependencies:
- solid-js: ^1.6.12
-
'@solid-primitives/rootless@1.5.2':
resolution: {integrity: sha512-9HULb0QAzL2r47CCad0M+NKFtQ+LrGGNHZfteX/ThdGvKIg2o2GYhBooZubTCd/RTu2l2+Nw4s+dEfiDGvdrrQ==}
peerDependencies:
solid-js: ^1.6.12
- '@solid-primitives/scroll@2.0.23':
- resolution: {integrity: sha512-kO0YpXKEUHaAnHp3zIsHYmxxuKXO3/LxVhZQHHmhqsmUY6A5IBObkSkoQ/ChIPl/WMKE7ynxEq40OgRmhvyUSw==}
+ '@solid-primitives/scroll@2.1.3':
+ resolution: {integrity: sha512-Ejq/Z7zKo/6eIEFr1bFLzXFxiGBCMLuqCM8QB8urr3YdPzjSETFLzYRWUyRiDWaBQN0F7k0SY6S7ig5nWOP7vg==}
peerDependencies:
solid-js: ^1.6.12
@@ -1441,8 +1324,8 @@ packages:
peerDependencies:
solid-js: ^1.6.12
- '@solid-primitives/storage@4.3.1':
- resolution: {integrity: sha512-xAJsY2pvXrAaCai4N2grmWY3xh5om9suTDVzGkRF5JBpDzs3Apk+xIovdTErbW0iCzXIEefENXb9xmSzdjuLYA==}
+ '@solid-primitives/storage@4.3.3':
+ resolution: {integrity: sha512-ACbNwMZ1s8VAvld6EUXkDkX/US3IhtlPLxg6+B2s9MwNUugwdd51I98LPEaHrdLpqPmyzqgoJe0TxEFlf3Dqrw==}
peerDependencies:
'@tauri-apps/plugin-store': '*'
solid-js: ^1.6.12
@@ -1463,11 +1346,6 @@ packages:
peerDependencies:
solid-js: ^1.6.12
- '@solid-primitives/utils@6.3.1':
- resolution: {integrity: sha512-4/Z59nnwu4MPR//zWZmZm2yftx24jMqQ8CSd/JobL26TPfbn4Ph8GKNVJfGJWShg1QB98qObJSskqizbTvcLLA==}
- peerDependencies:
- solid-js: ^1.6.12
-
'@solid-primitives/utils@6.3.2':
resolution: {integrity: sha512-hZ/M/qr25QOCcwDPOHtGjxTD8w2mNyVAYvcfgwzBHq2RwNqHNdDNsMZYap20+ruRwW4A3Cdkczyoz0TSxLCAPQ==}
peerDependencies:
@@ -1483,8 +1361,8 @@ packages:
peerDependencies:
solid-js: ^1.8.6
- '@solidjs/start@1.1.7':
- resolution: {integrity: sha512-30nUFzCpCVH7ORtHlO4ZE+VLG3g3EP+x+ceLLJBFRXIVuFQ1p203xZvVCXWqUPydtK78O5w3nIkWA/tLtF0Ybg==}
+ '@solidjs/start@1.2.0':
+ resolution: {integrity: sha512-SRv1g3R+4sxZnxCBPK1IedtLKsPhPJ7W/Yv4xEHjM4jJGPWi3ed35/yd0D5zhRK0C7zJIkZKbhnR/S3g8JUD5w==}
peerDependencies:
vinxi: ^0.5.7
@@ -1494,8 +1372,8 @@ packages:
'@swc/helpers@0.5.13':
resolution: {integrity: sha512-UoKGxQ3r5kYI9dALKJapMmuK+1zWM/H17Z1+iwnNmzcJRnfFuevZs375TA5rW31pu4BS4NoSy1fRsexDXfWn5w==}
- '@tailwindcss/typography@0.5.16':
- resolution: {integrity: sha512-0wDLwCVF5V3x3b1SGXPCDcdsbDHMBe+lkFzBRaHeLvNi+nrrnZ1lA18u+OTWO8iSWU2GxUOCvlXtDuqftc1oiA==}
+ '@tailwindcss/typography@0.5.19':
+ resolution: {integrity: sha512-w31dd8HOx3k9vPtcQh5QHP9GwKcgbMp87j58qi6xgiBnFFtKEAgCWnDw4qUT8aHwkCp8bKvb/KGKWWHedP0AAg==}
peerDependencies:
tailwindcss: '>=3.0.0 || insiders || >=4.0.0-alpha.20 || >=4.0.0-beta.1'
@@ -1513,20 +1391,17 @@ packages:
resolution: {integrity: sha512-a05fzK+jBGacsSAc1vE8an7lpBh4H0PyIEcivtEyHLomgSeElAJxm9E2It/0nYRZ5Lh23m0okbhzJNaYWZpAOg==}
engines: {node: '>=12'}
- '@types/acorn@4.0.6':
- resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==}
-
'@types/babel__core@7.20.5':
resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==}
- '@types/babel__generator@7.6.8':
- resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==}
+ '@types/babel__generator@7.27.0':
+ resolution: {integrity: sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==}
'@types/babel__template@7.4.4':
resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==}
- '@types/babel__traverse@7.20.6':
- resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==}
+ '@types/babel__traverse@7.28.0':
+ resolution: {integrity: sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==}
'@types/braces@3.0.4':
resolution: {integrity: sha512-0WR3b8eaISjEW7RpZnclONaLFDf7buaowRHdqLp4vLj54AsSAYWfh3DRbfiYJY9XDxMgx1B4sE1Afw2PGpuHOA==}
@@ -1537,9 +1412,6 @@ packages:
'@types/estree-jsx@1.0.5':
resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==}
- '@types/estree@1.0.6':
- resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==}
-
'@types/estree@1.0.7':
resolution: {integrity: sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==}
@@ -1561,14 +1433,14 @@ packages:
'@types/micromatch@4.0.9':
resolution: {integrity: sha512-7V+8ncr22h4UoYRLnLXSpTxjQrNUXtWHGeMPRJt1nULXI57G9bIcpyrHlmrQ7QK24EyyuXvYcSSWAM8GA9nqCg==}
- '@types/ms@0.7.34':
- resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==}
+ '@types/ms@2.1.0':
+ resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==}
'@types/node@17.0.45':
resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==}
- '@types/node@24.3.0':
- resolution: {integrity: sha512-aPTXCrfwnDLj4VvXrm+UUCQjNEvJgNA8s5F1cvwQU+3KNltTOkBm1j30uNLyqqPNe7gE3KFzImYoZEfLhp4Yow==}
+ '@types/node@24.10.0':
+ resolution: {integrity: sha512-qzQZRBqkFsYyaSWXuEHc2WR9c0a0CXwiE5FWUvn7ZM+vdy1uZLfCunD38UzhuB7YN/J11ndbDBcTmOdxJo9Q7A==}
'@types/normalize-package-data@2.4.4':
resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==}
@@ -1594,16 +1466,24 @@ packages:
'@types/yauzl@2.10.3':
resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==}
- '@typescript-eslint/eslint-plugin@8.40.0':
- resolution: {integrity: sha512-w/EboPlBwnmOBtRbiOvzjD+wdiZdgFeo17lkltrtn7X37vagKKWJABvyfsJXTlHe6XBzugmYgd4A4nW+k8Mixw==}
+ '@typescript-eslint/eslint-plugin@8.46.1':
+ resolution: {integrity: sha512-rUsLh8PXmBjdiPY+Emjz9NX2yHvhS11v0SR6xNJkm5GM1MO9ea/1GoDKlHHZGrOJclL/cZ2i/vRUYVtjRhrHVQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ '@typescript-eslint/parser': ^8.46.1
+ eslint: ^8.57.0 || ^9.0.0
+ typescript: '>=4.8.4 <6.0.0'
+
+ '@typescript-eslint/eslint-plugin@8.46.2':
+ resolution: {integrity: sha512-ZGBMToy857/NIPaaCucIUQgqueOiq7HeAKkhlvqVV4lm089zUFW6ikRySx2v+cAhKeUCPuWVHeimyk6Dw1iY3w==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
- '@typescript-eslint/parser': ^8.40.0
+ '@typescript-eslint/parser': ^8.46.2
eslint: ^8.57.0 || ^9.0.0
typescript: '>=4.8.4 <6.0.0'
- '@typescript-eslint/parser@8.40.0':
- resolution: {integrity: sha512-jCNyAuXx8dr5KJMkecGmZ8KI61KBUhkCob+SD+C+I5+Y1FWI2Y3QmY4/cxMCC5WAsZqoEtEETVhUiUMIGCf6Bw==}
+ '@typescript-eslint/parser@8.46.2':
+ resolution: {integrity: sha512-BnOroVl1SgrPLywqxyqdJ4l3S2MsKVLDVxZvjI1Eoe8ev2r3kGDo+PcMihNmDE+6/KjkTubSJnmqGZZjQSBq/g==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0
@@ -1615,8 +1495,14 @@ packages:
peerDependencies:
typescript: '>=4.8.4 <5.9.0'
- '@typescript-eslint/project-service@8.40.0':
- resolution: {integrity: sha512-/A89vz7Wf5DEXsGVvcGdYKbVM9F7DyFXj52lNYUDS1L9yJfqjW/fIp5PgMuEJL/KeqVTe2QSbXAGUZljDUpArw==}
+ '@typescript-eslint/project-service@8.46.1':
+ resolution: {integrity: sha512-FOIaFVMHzRskXr5J4Jp8lFVV0gz5ngv3RHmn+E4HYxSJ3DgDzU7fVI1/M7Ijh1zf6S7HIoaIOtln1H5y8V+9Zg==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ typescript: '>=4.8.4 <6.0.0'
+
+ '@typescript-eslint/project-service@8.46.2':
+ resolution: {integrity: sha512-PULOLZ9iqwI7hXcmL4fVfIsBi6AN9YxRc0frbvmg8f+4hQAjQ5GYNKK0DIArNo+rOKmR/iBYwkpBmnIwin4wBg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
typescript: '>=4.8.4 <6.0.0'
@@ -1625,8 +1511,12 @@ packages:
resolution: {integrity: sha512-9Ac0X8WiLykl0aj1oYQNcLZjHgBojT6cW68yAgZ19letYu+Hxd0rE0veI1XznSSst1X5lwnxhPbVdwjDRIomRw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@typescript-eslint/scope-manager@8.40.0':
- resolution: {integrity: sha512-y9ObStCcdCiZKzwqsE8CcpyuVMwRouJbbSrNuThDpv16dFAj429IkM6LNb1dZ2m7hK5fHyzNcErZf7CEeKXR4w==}
+ '@typescript-eslint/scope-manager@8.46.1':
+ resolution: {integrity: sha512-weL9Gg3/5F0pVQKiF8eOXFZp8emqWzZsOJuWRUNtHT+UNV2xSJegmpCNQHy37aEQIbToTq7RHKhWvOsmbM680A==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@typescript-eslint/scope-manager@8.46.2':
+ resolution: {integrity: sha512-LF4b/NmGvdWEHD2H4MsHD8ny6JpiVNDzrSZr3CsckEgCbAGZbYM4Cqxvi9L+WqDMT+51Ozy7lt2M+d0JLEuBqA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@typescript-eslint/tsconfig-utils@8.34.0':
@@ -1635,14 +1525,27 @@ packages:
peerDependencies:
typescript: '>=4.8.4 <5.9.0'
- '@typescript-eslint/tsconfig-utils@8.40.0':
- resolution: {integrity: sha512-jtMytmUaG9d/9kqSl/W3E3xaWESo4hFDxAIHGVW/WKKtQhesnRIJSAJO6XckluuJ6KDB5woD1EiqknriCtAmcw==}
+ '@typescript-eslint/tsconfig-utils@8.46.1':
+ resolution: {integrity: sha512-X88+J/CwFvlJB+mK09VFqx5FE4H5cXD+H/Bdza2aEWkSb8hnWIQorNcscRl4IEo1Cz9VI/+/r/jnGWkbWPx54g==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
typescript: '>=4.8.4 <6.0.0'
- '@typescript-eslint/type-utils@8.40.0':
- resolution: {integrity: sha512-eE60cK4KzAc6ZrzlJnflXdrMqOBaugeukWICO2rB0KNvwdIMaEaYiywwHMzA1qFpTxrLhN9Lp4E/00EgWcD3Ow==}
+ '@typescript-eslint/tsconfig-utils@8.46.2':
+ resolution: {integrity: sha512-a7QH6fw4S57+F5y2FIxxSDyi5M4UfGF+Jl1bCGd7+L4KsaUY80GsiF/t0UoRFDHAguKlBaACWJRmdrc6Xfkkag==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ typescript: '>=4.8.4 <6.0.0'
+
+ '@typescript-eslint/type-utils@8.46.1':
+ resolution: {integrity: sha512-+BlmiHIiqufBxkVnOtFwjah/vrkF4MtKKvpXrKSPLCkCtAp8H01/VV43sfqA98Od7nJpDcFnkwgyfQbOG0AMvw==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ eslint: ^8.57.0 || ^9.0.0
+ typescript: '>=4.8.4 <6.0.0'
+
+ '@typescript-eslint/type-utils@8.46.2':
+ resolution: {integrity: sha512-HbPM4LbaAAt/DjxXaG9yiS9brOOz6fabal4uvUmaUYe6l3K1phQDMQKBRUrr06BQkxkvIZVVHttqiybM9nJsLA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0
@@ -1652,8 +1555,12 @@ packages:
resolution: {integrity: sha512-9V24k/paICYPniajHfJ4cuAWETnt7Ssy+R0Rbcqo5sSFr3QEZ/8TSoUi9XeXVBGXCaLtwTOKSLGcInCAvyZeMA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@typescript-eslint/types@8.40.0':
- resolution: {integrity: sha512-ETdbFlgbAmXHyFPwqUIYrfc12ArvpBhEVgGAxVYSwli26dn8Ko+lIo4Su9vI9ykTZdJn+vJprs/0eZU0YMAEQg==}
+ '@typescript-eslint/types@8.46.1':
+ resolution: {integrity: sha512-C+soprGBHwWBdkDpbaRC4paGBrkIXxVlNohadL5o0kfhsXqOC6GYH2S/Obmig+I0HTDl8wMaRySwrfrXVP8/pQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@typescript-eslint/types@8.46.2':
+ resolution: {integrity: sha512-lNCWCbq7rpg7qDsQrd3D6NyWYu+gkTENkG5IKYhUIcxSb59SQC/hEQ+MrG4sTgBVghTonNWq42bA/d4yYumldQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@typescript-eslint/typescript-estree@8.34.0':
@@ -1662,8 +1569,14 @@ packages:
peerDependencies:
typescript: '>=4.8.4 <5.9.0'
- '@typescript-eslint/typescript-estree@8.40.0':
- resolution: {integrity: sha512-k1z9+GJReVVOkc1WfVKs1vBrR5MIKKbdAjDTPvIK3L8De6KbFfPFt6BKpdkdk7rZS2GtC/m6yI5MYX+UsuvVYQ==}
+ '@typescript-eslint/typescript-estree@8.46.1':
+ resolution: {integrity: sha512-uIifjT4s8cQKFQ8ZBXXyoUODtRoAd7F7+G8MKmtzj17+1UbdzFl52AzRyZRyKqPHhgzvXunnSckVu36flGy8cg==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ typescript: '>=4.8.4 <6.0.0'
+
+ '@typescript-eslint/typescript-estree@8.46.2':
+ resolution: {integrity: sha512-f7rW7LJ2b7Uh2EiQ+7sza6RDZnajbNbemn54Ob6fRwQbgcIn+GWfyuHDHRYgRoZu1P4AayVScrRW+YfbTvPQoQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
typescript: '>=4.8.4 <6.0.0'
@@ -1675,8 +1588,15 @@ packages:
eslint: ^8.57.0 || ^9.0.0
typescript: '>=4.8.4 <5.9.0'
- '@typescript-eslint/utils@8.40.0':
- resolution: {integrity: sha512-Cgzi2MXSZyAUOY+BFwGs17s7ad/7L+gKt6Y8rAVVWS+7o6wrjeFN4nVfTpbE25MNcxyJ+iYUXflbs2xR9h4UBg==}
+ '@typescript-eslint/utils@8.46.1':
+ resolution: {integrity: sha512-vkYUy6LdZS7q1v/Gxb2Zs7zziuXN0wxqsetJdeZdRe/f5dwJFglmuvZBfTUivCtjH725C1jWCDfpadadD95EDQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ eslint: ^8.57.0 || ^9.0.0
+ typescript: '>=4.8.4 <6.0.0'
+
+ '@typescript-eslint/utils@8.46.2':
+ resolution: {integrity: sha512-sExxzucx0Tud5tE0XqR0lT0psBQvEpnpiul9XbGUB1QwpWJJAps1O/Z7hJxLGiZLBKMCutjTzDgmd1muEhBnVg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0
@@ -1686,8 +1606,12 @@ packages:
resolution: {integrity: sha512-qHV7pW7E85A0x6qyrFn+O+q1k1p3tQCsqIZ1KZ5ESLXY57aTvUd3/a4rdPTeXisvhXn2VQG0VSKUqs8KHF2zcA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@typescript-eslint/visitor-keys@8.40.0':
- resolution: {integrity: sha512-8CZ47QwalyRjsypfwnbI3hKy5gJDPmrkLjkgMxhi0+DZZ2QNx2naS6/hWoVYUHU7LU2zleF68V9miaVZvhFfTA==}
+ '@typescript-eslint/visitor-keys@8.46.1':
+ resolution: {integrity: sha512-ptkmIf2iDkNUjdeu2bQqhFPV1m6qTnFFjg7PPDjxKWaMaP0Z6I9l30Jr3g5QqbZGdw8YdYvLp+XnqnWWZOg/NA==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@typescript-eslint/visitor-keys@8.46.2':
+ resolution: {integrity: sha512-tUFMXI4gxzzMXt4xpGJEsBsTox0XbNQ1y94EwlD/CuZwFcQP79xfQqMhau9HsRc/J0cAPA/HZt1dZPtGn9V/7w==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@typescript/vfs@1.6.1':
@@ -1695,8 +1619,8 @@ packages:
peerDependencies:
typescript: '*'
- '@ungap/structured-clone@1.2.0':
- resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==}
+ '@ungap/structured-clone@1.3.0':
+ resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==}
'@vercel/nft@0.29.4':
resolution: {integrity: sha512-6lLqMNX3TuycBPABycx7A9F1bHQR7kiQln6abjFbPrf5C/05qHM9M5E4PeTE59c7z8g6vHnx1Ioihb2AQl7BTA==}
@@ -1707,15 +1631,15 @@ packages:
resolution: {integrity: sha512-WSN1z931BtasZJlgPp704zJFnQFRg7yzSjkm3MzAWQYe4uXFXlFr1hc5Ac2zae5/HDOz5x1/zDM5Cb54vTCnWw==}
hasBin: true
- '@vinxi/plugin-directives@0.5.0':
- resolution: {integrity: sha512-zpgPWoul5vKbNH5GASHtHa7InwQWElmVdOexvyO4Nfvz7CeYfAAQ5/BAV01sVJPks4dfsLnBCegAgRPRykdUeA==}
+ '@vinxi/plugin-directives@0.5.1':
+ resolution: {integrity: sha512-pH/KIVBvBt7z7cXrUH/9uaqcdxjegFC7+zvkZkdOyWzs+kQD5KPf3cl8kC+5ayzXHT+OMlhGhyitytqN3cGmHg==}
peerDependencies:
- vinxi: ^0.5.0
+ vinxi: ^0.5.5
- '@vinxi/server-components@0.5.0':
- resolution: {integrity: sha512-2p6ZYzoqF7ZAriU0rC9KJWSX/n5qHhUBs7x04SLYzmy9lFxQNw3YHsmsA4b3aHDU+Mxw26wyFwvIbrL6eU3Gyw==}
+ '@vinxi/server-components@0.5.1':
+ resolution: {integrity: sha512-0BsG95qac3dkhfdRZxqzqYWJE4NvPL7ILlV43B6K6ho1etXWB2e5b0IxsUAUbyqpqiXM7mSRivojuXjb2G4OsQ==}
peerDependencies:
- vinxi: ^0.5.0
+ vinxi: ^0.5.5
'@vue/compiler-core@3.5.16':
resolution: {integrity: sha512-AOQS2eaQOaaZQoL1u+2rCJIKDruNXVBZSiUD3chnUrsoX5ZTQMaCvXlWNIfxBJuU15r1o7+mpo5223KVtIhAgQ==}
@@ -1770,8 +1694,8 @@ packages:
peerDependencies:
acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
- acorn-loose@8.4.0:
- resolution: {integrity: sha512-M0EUka6rb+QC4l9Z3T0nJEzNOO7JcoJlYMrBlyBCiFSXRyxjLKayd4TbQs2FDRWQU1h9FR7QVNHt+PEaoNL5rQ==}
+ acorn-loose@8.5.2:
+ resolution: {integrity: sha512-PPvV6g8UGMGgjrMu+n/f9E/tCSkNQ2Y97eFvuVdJfG11+xdIeDcLyNdC8SHcrHbRqkfwLASdplyR6B6sKM1U4A==}
engines: {node: '>=0.4.0'}
acorn-typescript@1.4.13:
@@ -1779,16 +1703,6 @@ packages:
peerDependencies:
acorn: '>=8.9.0'
- acorn@8.12.1:
- resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==}
- engines: {node: '>=0.4.0'}
- hasBin: true
-
- acorn@8.14.0:
- resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==}
- engines: {node: '>=0.4.0'}
- hasBin: true
-
acorn@8.15.0:
resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==}
engines: {node: '>=0.4.0'}
@@ -1801,19 +1715,18 @@ packages:
ajv@6.12.6:
resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
- algoliasearch@5.14.2:
- resolution: {integrity: sha512-aYjI4WLamMxbhdJ2QAA99VbDCJOGzMOdT2agh57bi40n86ufkhZSIAf6mkocr7NmtBLtwCnSHvD5NJ+Ky5elWw==}
- engines: {node: '>= 14.0.0'}
-
ansi-align@3.0.1:
resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==}
+ ansi-purge@1.1.0:
+ resolution: {integrity: sha512-sa1KWMANfZurQkYemaVNNJh8gRF0iUJvcVNxvjPlYM9pPPTB0v+VKH/mFRz4s6gXA8plimQXorJSqJgutxUs8g==}
+
ansi-regex@5.0.1:
resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
engines: {node: '>=8'}
- ansi-regex@6.1.0:
- resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==}
+ ansi-regex@6.2.0:
+ resolution: {integrity: sha512-TKY5pyBkHyADOPYlRT9Lx6F544mPl0vS5Ew7BJ45hA08Q+t3GjbueLliBWN3sMICk6+y7HdyxSzC4bWS8baBdg==}
engines: {node: '>=12'}
ansi-styles@3.2.1:
@@ -1824,14 +1737,13 @@ packages:
resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
engines: {node: '>=8'}
- ansi-styles@5.2.0:
- resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==}
- engines: {node: '>=10'}
-
- ansi-styles@6.2.1:
- resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
+ ansi-styles@6.2.3:
+ resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==}
engines: {node: '>=12'}
+ ansi-truncate@1.4.0:
+ resolution: {integrity: sha512-p6d2MrNs/mbpdXFT08fGabIg4pbgnUbbhrsoFfxWV5L3zFKw7tUkYUxGY3xCGJUPohENM80Q4sWkl/VDEN3pZg==}
+
ansis@4.1.0:
resolution: {integrity: sha512-BGcItUBWSMRgOCe+SVZJ+S7yTRG0eGt9cXAHev72yuGcY23hnLA7Bky5L/xLyPINoSN95geovfBkqoTlNZYa7w==}
engines: {node: '>=14'}
@@ -1878,6 +1790,9 @@ packages:
async@3.2.6:
resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==}
+ atomically@2.0.3:
+ resolution: {integrity: sha512-kU6FmrwZ3Lx7/7y3hPS5QnbJfaohcIul5fGqf7ok+4KklIEk9tJ0C2IQPdacSbVUWv6zVHXEBWoWd6NrVMT7Cw==}
+
autoprefixer@10.4.21:
resolution: {integrity: sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==}
engines: {node: ^10 || ^12 || >=14}
@@ -1891,15 +1806,19 @@ packages:
babel-dead-code-elimination@1.0.10:
resolution: {integrity: sha512-DV5bdJZTzZ0zn0DC24v3jD7Mnidh6xhKa4GfKCbq3sfW8kaWhDdZjP3i81geA8T33tdYqWKw4D3fVv0CwEgKVA==}
- babel-plugin-jsx-dom-expressions@0.39.2:
- resolution: {integrity: sha512-rCkSYFuLl5/XD+BXjZk1XxFAsIBgNe9WZ7xBHjQV1dBliI64kO+EWktAD3b6Bj/SXk+LpVXFyMVydhnI35svWQ==}
+ babel-plugin-jsx-dom-expressions@0.40.1:
+ resolution: {integrity: sha512-b4iHuirqK7RgaMzB2Lsl7MqrlDgQtVRSSazyrmx7wB3T759ggGjod5Rkok5MfHjQXhR7tRPmdwoeGPqBnW2KfA==}
peerDependencies:
'@babel/core': ^7.20.12
- babel-preset-solid@1.9.2:
- resolution: {integrity: sha512-rWx968GIDghgFStRDQaoqelGspEm9rgPci/yNzNPFlkzMqHaL2yob+t7BbzyqZw5b9/llkzjqUNIOybT9Z9mcg==}
+ babel-preset-solid@1.9.9:
+ resolution: {integrity: sha512-pCnxWrciluXCeli/dj5PIEHgbNzim3evtTn12snjqqg8QZWJNMjH1AWIp4iG/tbVjqQ72aBEymMSagvmgxubXw==}
peerDependencies:
'@babel/core': ^7.0.0
+ solid-js: ^1.9.8
+ peerDependenciesMeta:
+ solid-js:
+ optional: true
bail@2.0.2:
resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==}
@@ -1907,16 +1826,16 @@ packages:
balanced-match@1.0.2:
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
- balanced-match@3.0.1:
- resolution: {integrity: sha512-vjtV3hiLqYDNRoiAv0zC4QaGAMPomEoq83PRmYIofPswwZurCeWR5LByXm7SyoL0Zh5+2z0+HC7jG8gSZJUh0w==}
- engines: {node: '>= 16'}
-
bare-events@2.5.4:
resolution: {integrity: sha512-+gFfDkR8pj4/TrWCGUGWmJIkBwuxPS5F+a5yWjOHQt2hHvNZd5YLzadjmDUtFmMM4y429bnKLa8bYBMHcYdnQA==}
base64-js@1.5.1:
resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
+ baseline-browser-mapping@2.8.4:
+ resolution: {integrity: sha512-L+YvJwGAgwJBV1p6ffpSTa2KRc69EeeYGYjRVWKs0GKrK+LON0GC0gV+rKSNtALEDvMDqkvCFq9r1r94/Gjwxw==}
+ hasBin: true
+
bcp-47-match@2.0.3:
resolution: {integrity: sha512-JtTezzbAibu8G0R9op9zb3vcWZd9JF6M0xOYGPn0fNCd7wOpRB1mU2mH9T8gaBGbAAyIIVgB2G7xG0GP98zMAQ==}
@@ -1934,19 +1853,12 @@ packages:
resolution: {integrity: sha512-F3PH5k5juxom4xktynS7MoFY+NUWH5LC4CnH11YB8NPew+HLpmBLCybSAEyb2F+4pRXhuhWqFesoQd6DAyc2hw==}
engines: {node: '>=18'}
- brace-expansion@1.1.11:
- resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
-
- brace-expansion@2.0.1:
- resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
+ brace-expansion@1.1.12:
+ resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==}
brace-expansion@2.0.2:
resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==}
- brace-expansion@4.0.1:
- resolution: {integrity: sha512-YClrbvTCXGe70pU2JiEiPLYXO9gQkyxYeKpJIQHVS/gOs6EWMQP2RYBwjFLNT322Ji8TOC3IMPfsYCedNpzKfA==}
- engines: {node: '>= 18'}
-
braces@3.0.3:
resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
engines: {node: '>=8'}
@@ -1956,8 +1868,8 @@ packages:
engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
hasBin: true
- browserslist@4.25.3:
- resolution: {integrity: sha512-cDGv1kkDI4/0e5yON9yM5G/0A5u8sf5TnmdX5C9qHzI9PPu++sQ9zjm1k9NiOrf3riY4OkK0zSGqfvJyJsgCBQ==}
+ browserslist@4.26.0:
+ resolution: {integrity: sha512-P9go2WrP9FiPwLv3zqRD/Uoxo0RSHjzFCiQz7d4vbmwNqQFo9T9WCeP/Qn5EbcKQY6DBbkxEXNcpJOmncNrb7A==}
engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
hasBin: true
@@ -2012,8 +1924,8 @@ packages:
caniuse-lite@1.0.30001722:
resolution: {integrity: sha512-DCQHBBZtiK6JVkAGw7drvAMK0Q0POD/xZvEmDp6baiMMP6QXXk9HpD6mNYBZWhOPG6LvIDb82ITqtWjhDckHCA==}
- caniuse-lite@1.0.30001735:
- resolution: {integrity: sha512-EV/laoX7Wq2J9TQlyIXRxTJqIw4sxfXS4OYgudGxBYRuTv0q7AM6yMEpU/Vo1I94thg9U6EZ2NfZx9GJq83u7w==}
+ caniuse-lite@1.0.30001741:
+ resolution: {integrity: sha512-QGUGitqsc8ARjLdgAfxETDhRbJ0REsP6O3I96TAth/mVjh2cYzN2u+3AzPP3aVSm2FehEItaJw1xd+IGBXWeSw==}
ccount@2.0.1:
resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==}
@@ -2026,8 +1938,8 @@ packages:
resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
engines: {node: '>=10'}
- chalk@5.4.1:
- resolution: {integrity: sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==}
+ chalk@5.6.2:
+ resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==}
engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
character-entities-html4@2.1.0:
@@ -2186,10 +2098,6 @@ packages:
resolution: {integrity: sha512-onMB0OkDjkXunhdW9htFjEhqrD54+M94i6ackoUkjHKbRnXdyEyKRelp4nJ1kAz32+s27jP1FsebpJCVl0BsvA==}
engines: {node: '>=18.0'}
- cross-spawn@7.0.3:
- resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
- engines: {node: '>= 8'}
-
cross-spawn@7.0.6:
resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==}
engines: {node: '>= 8'}
@@ -2203,8 +2111,8 @@ packages:
css-select@5.1.0:
resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==}
- css-selector-parser@3.0.5:
- resolution: {integrity: sha512-3itoDFbKUNx1eKmVpYMFyqKX04Ww9osZ+dLgrk6GEv6KMVeXUhUnp4I5X+evw+u3ZxVU6RFXSSRxlTeMh8bA+g==}
+ css-selector-parser@3.1.3:
+ resolution: {integrity: sha512-gJMigczVZqYAk0hPVzx/M4Hm1D9QOtqkdQk9005TNzDIUGzo5cnHEDiKUT7jGPximL/oYb+LIitcHFQ4aKupxg==}
css-what@6.1.0:
resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==}
@@ -2256,17 +2164,8 @@ packages:
supports-color:
optional: true
- debug@4.3.7:
- resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==}
- engines: {node: '>=6.0'}
- peerDependencies:
- supports-color: '*'
- peerDependenciesMeta:
- supports-color:
- optional: true
-
- debug@4.4.1:
- resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==}
+ debug@4.4.3:
+ resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==}
engines: {node: '>=6.0'}
peerDependencies:
supports-color: '*'
@@ -2277,8 +2176,8 @@ packages:
decache@4.6.2:
resolution: {integrity: sha512-2LPqkLeu8XWHU8qNCS3kcF6sCcb5zIzvWaAHYSvPfwhdd7mHuah29NssMzrTYyHN4F5oFy2ko9OBYxegtU0FEw==}
- decode-named-character-reference@1.0.2:
- resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==}
+ decode-named-character-reference@1.2.0:
+ resolution: {integrity: sha512-c6fcElNV6ShtZXmsgNgFFV5tVX2PaV4g+MOAkb8eXHvn6sryJBrZa9r0zV6+dtTyoCKxtDy5tyQ5ZwQuidtd+Q==}
deep-is@0.1.4:
resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
@@ -2365,16 +2264,15 @@ packages:
peerDependencies:
typescript: ^5.4.4
+ dettle@1.0.5:
+ resolution: {integrity: sha512-ZVyjhAJ7sCe1PNXEGveObOH9AC8QvMga3HJIghHawtG7mE4K5pW9nz/vDGAr/U7a3LWgdOzEE7ac9MURnyfaTA==}
+
devlop@1.1.0:
resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==}
didyoumean@1.2.2:
resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==}
- diff-sequences@29.6.3:
- resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==}
- engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-
diff@8.0.2:
resolution: {integrity: sha512-sSuxWU5j5SR9QQji/o2qMvqRNYRDOcBTgsJ/DeCf4iSN4gW+gNMXM7wFIP+fdXZxoNiAnHUTGjCr+TSWXdRDKg==}
engines: {node: '>=0.3.1'}
@@ -2407,6 +2305,10 @@ packages:
resolution: {integrity: sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==}
engines: {node: '>=12'}
+ dotenv@17.2.3:
+ resolution: {integrity: sha512-JVUnt+DUIzu87TABbhPmNfVdBDt18BLOWjMUFJMSi/Qqg7NTYtabbvSNJGOJ7afbRuv9D/lngizHtP7QyLQ+9w==}
+ engines: {node: '>=12'}
+
dunder-proto@1.0.1:
resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==}
engines: {node: '>= 0.4'}
@@ -2423,8 +2325,8 @@ packages:
electron-to-chromium@1.5.166:
resolution: {integrity: sha512-QPWqHL0BglzPYyJJ1zSSmwFFL6MFXhbACOCcsCdUMCkzPdS9/OIBVxg516X/Ado2qwAq8k0nJJ7phQPCqiaFAw==}
- electron-to-chromium@1.5.207:
- resolution: {integrity: sha512-mryFrrL/GXDTmAtIVMVf+eIXM09BBPlO5IQ7lUyKmK8d+A4VpRGG+M3ofoVef6qyF8s60rJei8ymlJxjUA8Faw==}
+ electron-to-chromium@1.5.218:
+ resolution: {integrity: sha512-uwwdN0TUHs8u6iRgN8vKeWZMRll4gBkz+QMqdS7DDe49uiK68/UX92lFb61oiFPrpYZNeZIqa4bA7O6Aiasnzg==}
emoji-regex-xs@1.0.0:
resolution: {integrity: sha512-LRlerrMYoIDrT6jgpeZ2YYl/L8EulRTt5hQcYjy5AInh7HWXKimpqx68aknBFpGL2+/IcogTcaydJEgaTmOpDg==}
@@ -2456,6 +2358,10 @@ packages:
resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
engines: {node: '>=0.12'}
+ entities@6.0.1:
+ resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==}
+ engines: {node: '>=0.12'}
+
env-paths@3.0.0:
resolution: {integrity: sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
@@ -2535,8 +2441,8 @@ packages:
resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- eslint@9.33.0:
- resolution: {integrity: sha512-TS9bTNIryDzStCpJN93aC5VRSW3uTx9sClUn4B87pwiCaJh220otoI0X8mJKr+VcPtniMdN8GKjlwgWGUv5ZKA==}
+ eslint@9.39.1:
+ resolution: {integrity: sha512-BhHmn2yNOFA9H9JmmIVKJmd288g9hrVRDkdoIgRCRuSySRUHH7r/DI6aAXW9T1WwUuY3DFgrcaqB+deURBLR5g==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
hasBin: true
peerDependencies:
@@ -2581,8 +2487,8 @@ packages:
estree-util-to-js@2.0.0:
resolution: {integrity: sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==}
- estree-util-value-to-estree@3.2.1:
- resolution: {integrity: sha512-Vt2UOjyPbNQQgT5eJh+K5aATti0OjCIAGc9SgMdOFYbohuifsWclR74l0iZTJwePMgWYdX1hlVS+dedH9XV8kw==}
+ estree-util-value-to-estree@3.4.1:
+ resolution: {integrity: sha512-E4fEc8KLhDXnbyDa5XrbdT9PbgSMt0AGZPFUsGFok8N2Q7DTO+F6xAFJjIdw71EkidRg186I1mQCKzZ1ZbEsCw==}
estree-util-visit@2.0.0:
resolution: {integrity: sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==}
@@ -2626,9 +2532,15 @@ packages:
expressive-code@0.40.2:
resolution: {integrity: sha512-1zIda2rB0qiDZACawzw2rbdBQiWHBT56uBctS+ezFe5XMAaFaHLnnSYND/Kd+dVzO9HfCXRDpzH3d+3fvOWRcw==}
+ expressive-code@0.41.3:
+ resolution: {integrity: sha512-YLnD62jfgBZYrXIPQcJ0a51Afv9h8VlWqEGK9uU2T5nL/5rb8SnA86+7+mgCZe5D34Tff5RNEA5hjNVJYHzrFg==}
+
exsolve@1.0.5:
resolution: {integrity: sha512-pz5dvkYYKQ1AHVrgOzBKWeP4u4FRb3a6DNK2ucr0OoNwYIU4QWsJ+NM36LLzORT+z845MzKHHhpXiUF5nvQoJg==}
+ exsolve@1.0.7:
+ resolution: {integrity: sha512-VO5fQUzZtI6C+vx4w/4BWJpg3s/5l+6pRQEHzFRM8WFi4XffSP1Z+4qi7GbjWbvRQEbdIco5mIMq+zX4rPuLrw==}
+
extend-shallow@2.0.1:
resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==}
engines: {node: '>=0.10.0'}
@@ -2655,12 +2567,21 @@ packages:
resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==}
engines: {node: '>=8.6.0'}
+ fast-ignore@1.1.3:
+ resolution: {integrity: sha512-xTo4UbrOKfEQgOFlPaqFScodTV/Wf3KATEqCZZSMh6OP4bcez0lTsqww3n3/Fve1q9u0jmfDP0q0nOhH4POZEg==}
+
fast-json-stable-stringify@2.1.0:
resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
fast-levenshtein@2.0.6:
resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
+ fast-string-truncated-width@3.0.3:
+ resolution: {integrity: sha512-0jjjIEL6+0jag3l2XWWizO64/aZVtpiGE3t0Zgqxv0DPuxiMjvB3M24fCyhZUO4KomJQPj3LTSUnDP3GpdwC0g==}
+
+ fast-string-width@3.0.2:
+ resolution: {integrity: sha512-gX8LrtNEI5hq8DVUfRQMbr5lpaS4nMIWV+7XEbXk2b8kiQIizgnlr12B4dA3ZEx3308ze0O4Q1R+cHts8kyUJg==}
+
fastq@1.17.1:
resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==}
@@ -2670,16 +2591,17 @@ packages:
fd-slicer@1.1.0:
resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==}
- fdir@6.4.3:
- resolution: {integrity: sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==}
+ fdir@6.4.6:
+ resolution: {integrity: sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==}
peerDependencies:
picomatch: ^3 || ^4
peerDependenciesMeta:
picomatch:
optional: true
- fdir@6.4.6:
- resolution: {integrity: sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==}
+ fdir@6.5.0:
+ resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==}
+ engines: {node: '>=12.0.0'}
peerDependencies:
picomatch: ^3 || ^4
peerDependenciesMeta:
@@ -2708,6 +2630,12 @@ packages:
resolution: {integrity: sha512-xdMtCAODmPloU9qtmPcdBV9Kd27NtMse+4ayThxqIHUES5Z2S6bGpap5PpdmNM56ub7y3i1eyr+vJJIIgWGKmA==}
engines: {node: '>=18'}
+ find-up-json@2.0.5:
+ resolution: {integrity: sha512-1zZZUfD1GOOEEd1AqwbRmCkCCv1O9t0vOpCYgmzfJqKty8WKaKlDyxWej8Aew+vI5lvDiTviaQuaVuu6GzlHzQ==}
+
+ find-up-path@1.0.1:
+ resolution: {integrity: sha512-cl4Sfxufq9WK848L887b4r+NVZoBjMeB4QydPZ+pXbp6Jt2nUVspTo2svNOm48stIIeSxtuCsULa9+e+LMTzwA==}
+
find-up-simple@1.0.1:
resolution: {integrity: sha512-afd4O7zpqHeRyg4PfDQsXmlDe2PfdHtJt6Akt8jOWaApLOZk5JXs6VMR29lz03pRe9mpykrRCYIYxaJYcfpncQ==}
engines: {node: '>=18'}
@@ -2724,8 +2652,8 @@ packages:
resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==}
engines: {node: '>=16'}
- flatted@3.3.1:
- resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==}
+ flatted@3.3.3:
+ resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==}
fn.name@1.1.0:
resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==}
@@ -2739,8 +2667,8 @@ packages:
debug:
optional: true
- foreground-child@3.3.0:
- resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==}
+ foreground-child@3.3.1:
+ resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==}
engines: {node: '>=14'}
format@0.2.2:
@@ -2770,6 +2698,9 @@ packages:
function-bind@1.1.2:
resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
+ function-once@3.0.1:
+ resolution: {integrity: sha512-bE3E8REk4jANDot3l0sLFkXgywBwzFKsmbwdnVHLJUnt/3kV6dNG0oJJqoRBuS1Z9Lr4ZoQgwV0ZNLDgWDbv7Q==}
+
gensync@1.0.0-beta.2:
resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
engines: {node: '>=6.9.0'}
@@ -2782,6 +2713,9 @@ packages:
resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
engines: {node: 6.* || 8.* || >= 10.*}
+ get-current-package@1.0.1:
+ resolution: {integrity: sha512-c/Rw5ByDQ+zg+Lh/emBWv0bDpugEFdmXPR6/srIemVtIvol0XbT0JAr8Db0cX+Jj/xY9wj1wdjeq2qNB35Tayg==}
+
get-east-asian-width@1.3.0:
resolution: {integrity: sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==}
engines: {node: '>=18'}
@@ -2793,10 +2727,6 @@ packages:
get-port-please@3.1.2:
resolution: {integrity: sha512-Gxc29eLs1fbn6LQ4jSU4vXjlwyZhF5HsGuMAa7gqBP4Rw4yxxltyDUuF5MBclFzDTXO+ACchGQoeela4DSfzdQ==}
- get-port@7.1.0:
- resolution: {integrity: sha512-QB9NKEeDg3xxVwCCwJQ9+xycaz6pBB6iQ76wiWMl1927n0Kir6alPiP+yuiICLLU4jpMe08dXfpebuQppFA2zw==}
- engines: {node: '>=16'}
-
get-proto@1.0.1:
resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==}
engines: {node: '>= 0.4'}
@@ -2828,8 +2758,8 @@ packages:
resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==}
hasBin: true
- glob@11.0.2:
- resolution: {integrity: sha512-YT7U7Vye+t5fZ/QMkBFrTJ7ZQxInIUjwyAjVj84CYXqgBdv30MFUPGnBR6sQaVq6Is15wYJUsnzTuWaGRBhBAQ==}
+ glob@11.0.3:
+ resolution: {integrity: sha512-2Nim7dha1KVkaiF4q6Dj+ngPPMdfvLJEOpZk/jKiUAkqKebpGAWQXAq9z1xu9HKu5lWfqw/FASuccEjyznjPaA==}
engines: {node: 20 || >=22}
hasBin: true
@@ -2845,8 +2775,8 @@ packages:
resolution: {integrity: sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==}
engines: {node: '>=18'}
- globals@16.3.0:
- resolution: {integrity: sha512-bqWEnJ1Nt3neqx2q5SFfGS8r/ahumIakg3HcwtNlrVlwXIeNumWn/c7Pn/wKzGhf6SaW6H6uWXLqC30STCMchQ==}
+ globals@16.4.0:
+ resolution: {integrity: sha512-ob/2LcVVaVGCYN+r14cnwnoDPUufjiYgSqRhiFD0Q1iI4Odora5RE8Iv1D24hAz5oMophRGkGz+yuvQmmUMnMw==}
engines: {node: '>=18'}
globby@14.1.0:
@@ -2865,9 +2795,15 @@ packages:
graceful-fs@4.2.11:
resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
+ grammex@3.1.11:
+ resolution: {integrity: sha512-HNwLkgRg9SqTAd1N3Uh/MnKwTBTzwBxTOPbXQ8pb0tpwydjk90k4zRE8JUn9fMUiRwKtXFZ1TWFmms3dZHN+Fg==}
+
graphemer@1.4.0:
resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
+ graphmatch@1.1.0:
+ resolution: {integrity: sha512-0E62MaTW5rPZVRLyIJZG/YejmdA/Xr1QydHEw3Vt+qOKkMIOE8WDLc9ZX2bmAjtJFZcId4lEdrdmASsEy7D1QA==}
+
gray-matter@4.0.3:
resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==}
engines: {node: '>=6.0'}
@@ -2895,8 +2831,8 @@ packages:
resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
engines: {node: '>= 0.4'}
- hast-util-from-parse5@8.0.1:
- resolution: {integrity: sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==}
+ hast-util-from-parse5@8.0.3:
+ resolution: {integrity: sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg==}
hast-util-has-property@3.0.0:
resolution: {integrity: sha512-MNilsvEKLFpV604hwfhVStK0usFY/QmM5zX16bo7EjnAEGofr5YyI37kzopBlZJkHD4t887i+q/C8/tr5Q94cA==}
@@ -2910,20 +2846,20 @@ packages:
hast-util-parse-selector@4.0.0:
resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==}
- hast-util-raw@9.0.4:
- resolution: {integrity: sha512-LHE65TD2YiNsHD3YuXcKPHXPLuYh/gjp12mOfU8jxSrm1f/yJpsb0F/KKljS6U9LJoP0Ux+tCe8iJ2AsPzTdgA==}
+ hast-util-raw@9.1.0:
+ resolution: {integrity: sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw==}
- hast-util-select@6.0.3:
- resolution: {integrity: sha512-OVRQlQ1XuuLP8aFVLYmC2atrfWHS5UD3shonxpnyrjcCkwtvmt/+N6kYJdcY4mkMJhxp4kj2EFIxQ9kvkkt/eQ==}
+ hast-util-select@6.0.4:
+ resolution: {integrity: sha512-RqGS1ZgI0MwxLaKLDxjprynNzINEkRHY2i8ln4DDjgv9ZhcYVIHN9rlpiYsqtFwrgpYU361SyWDQcGNIBVu3lw==}
- hast-util-to-estree@3.1.0:
- resolution: {integrity: sha512-lfX5g6hqVh9kjS/B9E2gSkvHH4SZNiQFiqWS0x9fENzEl+8W12RqdRxX6d/Cwxi30tPQs3bIO+aolQJNp1bIyw==}
+ hast-util-to-estree@3.1.3:
+ resolution: {integrity: sha512-48+B/rJWAp0jamNbAAf9M7Uf//UVqAoMmgXhBdxTDJLGKY+LRnZ99qcG+Qjl5HfMpYNzS5v4EAwVEF34LeAj7w==}
hast-util-to-html@9.0.5:
resolution: {integrity: sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==}
- hast-util-to-jsx-runtime@2.3.2:
- resolution: {integrity: sha512-1ngXYb+V9UT5h+PxNRa1O1FYguZK/XL+gkeqvp7EdHlB9oHUG0eYRo/vY5inBdcqo3RkPMC58/H94HvkbfGdyg==}
+ hast-util-to-jsx-runtime@2.3.6:
+ resolution: {integrity: sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==}
hast-util-to-parse5@8.0.0:
resolution: {integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==}
@@ -2937,11 +2873,8 @@ packages:
hast-util-whitespace@3.0.0:
resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==}
- hastscript@8.0.0:
- resolution: {integrity: sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==}
-
- hastscript@9.0.0:
- resolution: {integrity: sha512-jzaLBGavEDKHrc5EfFImKN7nZKKBdSLIdGvCwDZ9TfzbF2ffXiov8CKE445L2Z1Ek2t/m4SKQ2j6Ipv7NyUolw==}
+ hastscript@9.0.1:
+ resolution: {integrity: sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==}
hookable@5.5.3:
resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==}
@@ -2957,8 +2890,8 @@ packages:
resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==}
engines: {node: '>=8'}
- html-to-image@1.11.11:
- resolution: {integrity: sha512-9gux8QhvjRO/erSnDPv28noDZcPZmYE7e1vFsBLKLlRlKDSqNJYebj6Qz1TGd5lsRV+X+xYyjCKjuZdABinWjA==}
+ html-to-image@1.11.13:
+ resolution: {integrity: sha512-cuOPoI7WApyhBElTTb9oqsawRvZ0rHhaHwghRLlTuffoD1B2aDemlCruLeZrUIIdvG7gs9xeELEPm6PhuASqrg==}
html-void-elements@3.0.0:
resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==}
@@ -3000,10 +2933,13 @@ packages:
resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==}
engines: {node: '>= 4'}
- import-fresh@3.3.0:
- resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
+ import-fresh@3.3.1:
+ resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==}
engines: {node: '>=6'}
+ import-meta-resolve@4.2.0:
+ resolution: {integrity: sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==}
+
imurmurhash@0.1.4:
resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
engines: {node: '>=0.8.19'}
@@ -3015,12 +2951,15 @@ packages:
inherits@2.0.4:
resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
- inline-style-parser@0.1.1:
- resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==}
+ ini-simple-parser@1.0.1:
+ resolution: {integrity: sha512-myU5nhF2miBQP3tO/giUi+8BI9QhfM/XRZd0RD7G0p+40K6KPAwxMDtH3UEtJ2XJZbd+ZiQOoGh432DTYfzNVQ==}
inline-style-parser@0.2.4:
resolution: {integrity: sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==}
+ ionstore@1.0.1:
+ resolution: {integrity: sha512-g+99vyka3EiNFJCnbq3NxegjV211RzGtkDUMbZGB01Con8ZqUmMx/FpWMeqgDXOqgM7QoVeDhe+CfYCWznaDVA==}
+
ioredis@5.6.1:
resolution: {integrity: sha512-UxC0Yv1Y4WRJiGQxQkP0hfdL0/5/6YvdfOOClRgJ0qppSarkhneSa6UvkMkms0AkdGimSH3Ikqm+6mkMmX7vGA==}
engines: {node: '>=12.22.0'}
@@ -3168,14 +3107,6 @@ packages:
resolution: {integrity: sha512-zptv57P3GpL+O0I7VdMJNBZCu+BPHVQUk55Ft8/QCJjTVxrnJHuVuX/0Bl2A6/+2oyR/ZMEuFKwmzqqZ/U5nPQ==}
engines: {node: 20 || >=22}
- jest-diff@29.7.0:
- resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==}
- engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-
- jest-get-type@29.6.3:
- resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==}
- engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-
jiti@1.21.6:
resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==}
hasBin: true
@@ -3214,6 +3145,9 @@ packages:
json-schema-traverse@0.4.1:
resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
+ json-sorted-stringify@1.0.2:
+ resolution: {integrity: sha512-6UiiM9hRn9P+nfznAif3TsmulMJTvlmfNDN8mAmDUvDW/JbSyczdgT0w7NVJvWQwMS83iLnYkH2IXNRZUB4iFg==}
+
json-stable-stringify-without-jsonify@1.0.1:
resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
@@ -3230,6 +3164,9 @@ packages:
resolution: {integrity: sha512-+KJGIyHgkGuIq3IEBNftfhW/LfWhXUIY6OmyVWjliu5KH1y0fw7VQ8YndE2O4qZdMSd9SqbnC8GOcZEy0Om7sA==}
engines: {node: '>=18'}
+ kasi@1.1.1:
+ resolution: {integrity: sha512-pzBwGWFIjf84T/8aD0XzMli1T3Ckr/jVLh6v0Jskwiv5ehmcgDM+vpYFSk8WzGn4ed4HqgaifTgQUHzzZHa+Qw==}
+
kebab-case@1.0.2:
resolution: {integrity: sha512-7n6wXq4gNgBELfDCpzKc+mRrZFs7D+wgfF5WRFLNAr4DA/qtr9Js8uOAVAfHhuLMfAcQ0pRKqbpjx+TcJVdE1Q==}
@@ -3284,8 +3221,8 @@ packages:
resolution: {integrity: sha512-I8oW2+QL5KJo8zXNWX046M134WchxsXC7SawLPvRQpogCbkyQIaFxPE89A2HiwR7vAK2Dm2ERBAmyjTYGYEpBg==}
hasBin: true
- local-pkg@1.1.1:
- resolution: {integrity: sha512-WunYko2W1NcdfAFpuLUoucsgULmgDBRkdxHxWQ7mK0cQqwPiy8E1enjuRBrhLtZkB5iScJ1XIPdhVEFK8aOLSg==}
+ local-pkg@1.1.2:
+ resolution: {integrity: sha512-arhlxbFRmoQHl33a0Zkle/YWlmNwoyt6QNZEIJcqNbdrsix5Lvc4HyyI3EnwxTYlZYc32EbYrQ8SzEZ7dqgg9A==}
engines: {node: '>=14'}
locate-path@6.0.0:
@@ -3299,9 +3236,6 @@ packages:
lodash-es@4.17.21:
resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==}
- lodash.castarray@4.4.0:
- resolution: {integrity: sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==}
-
lodash.debounce@4.0.8:
resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==}
@@ -3311,9 +3245,6 @@ packages:
lodash.isarguments@3.1.0:
resolution: {integrity: sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==}
- lodash.isplainobject@4.0.6:
- resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==}
-
lodash.merge@4.6.2:
resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
@@ -3324,13 +3255,12 @@ packages:
resolution: {integrity: sha512-TFYA4jnP7PVbmlBIfhlSe+WKxs9dklXMTEGcBCIvLhE/Tn3H6Gk1norupVW7m5Cnd4bLcr08AytbyV/xj7f/kQ==}
engines: {node: '>= 12.0.0'}
+ lomemo@1.0.1:
+ resolution: {integrity: sha512-g8CnVp7UYypeQKpXpMzyrJoDzhOoqVQYSJApoq/cFI3vGxXoHQ+6lH5cApW9XwzVy5SL9/Owil7/JxbKckw0Lg==}
+
longest-streak@3.1.0:
resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==}
- loose-envify@1.4.0:
- resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
- hasBin: true
-
lru-cache@10.4.3:
resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==}
@@ -3345,8 +3275,8 @@ packages:
resolution: {integrity: sha512-tJLxrKJhO2ukZ5z0gyjY1zPh3Rh88Ej9P7jNrZiHMUXHae1yvI2imgOZtL1TO8TW6biMMKfTtAOoEJANgtWBMQ==}
engines: {node: '>=12'}
- magic-string@0.30.17:
- resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==}
+ magic-string@0.30.19:
+ resolution: {integrity: sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==}
magicast@0.2.11:
resolution: {integrity: sha512-6saXbRDA1HMkqbsvHOU6HBjCVgZT460qheRkLhJQHWAbhXoWESI3Kn/dGGXyKs15FFKR85jsUqFx2sMK0wy/5g==}
@@ -3358,18 +3288,18 @@ packages:
resolution: {integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==}
engines: {node: '>=16'}
- markdown-table@3.0.3:
- resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==}
+ markdown-table@3.0.4:
+ resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==}
math-intrinsics@1.1.0:
resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==}
engines: {node: '>= 0.4'}
- mdast-util-directive@3.0.0:
- resolution: {integrity: sha512-JUpYOqKI4mM3sZcNxmF/ox04XYFFkNwr0CFlrQIkCwbvH0xzMCqkMqAde9wRd80VAhaUrwFwKm2nxretdT1h7Q==}
+ mdast-util-directive@3.1.0:
+ resolution: {integrity: sha512-I3fNFt+DHmpWCYAT7quoM6lHf9wuqtI+oCOfvILnoicNIqjh5E3dEJWiXuYME2gNe8vl1iMQwyUHa7bgFmak6Q==}
- mdast-util-find-and-replace@3.0.1:
- resolution: {integrity: sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==}
+ mdast-util-find-and-replace@3.0.2:
+ resolution: {integrity: sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==}
mdast-util-from-markdown@2.0.2:
resolution: {integrity: sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==}
@@ -3380,8 +3310,8 @@ packages:
mdast-util-gfm-autolink-literal@2.0.1:
resolution: {integrity: sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==}
- mdast-util-gfm-footnote@2.0.0:
- resolution: {integrity: sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==}
+ mdast-util-gfm-footnote@2.1.0:
+ resolution: {integrity: sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==}
mdast-util-gfm-strikethrough@2.0.0:
resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==}
@@ -3413,8 +3343,8 @@ packages:
mdast-util-to-hast@13.2.0:
resolution: {integrity: sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==}
- mdast-util-to-markdown@2.1.0:
- resolution: {integrity: sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==}
+ mdast-util-to-markdown@2.1.2:
+ resolution: {integrity: sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==}
mdast-util-to-string@4.0.0:
resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==}
@@ -3440,8 +3370,8 @@ packages:
micro-api-client@3.3.0:
resolution: {integrity: sha512-y0y6CUB9RLVsy3kfgayU28746QrNMpSm9O/AYGNsBgOkJr/X/Jk0VLGoO8Ude7Bpa8adywzF+MzXNZRFRsNPhg==}
- micromark-core-commonmark@2.0.1:
- resolution: {integrity: sha512-CUQyKr1e///ZODyD1U3xit6zXwy1a8q2a1S1HKtIlmgvurrEpaw/Y9y6KSIbF8P59cn/NjzHyO+Q2fAyYLQrAA==}
+ micromark-core-commonmark@2.0.3:
+ resolution: {integrity: sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==}
micromark-extension-directive@3.0.2:
resolution: {integrity: sha512-wjcXHgk+PPdmvR58Le9d7zQYWy+vKEU9Se44p2CrCDPiLr2FMyiT4Fyb5UFKFC66wGB3kPlgD7q3TnoqPS7SZA==}
@@ -3458,8 +3388,8 @@ packages:
micromark-extension-gfm-strikethrough@2.1.0:
resolution: {integrity: sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==}
- micromark-extension-gfm-table@2.1.0:
- resolution: {integrity: sha512-Ub2ncQv+fwD70/l4ou27b4YzfNaCJOvyX4HxXU15m7mpYY+rjuWzsLIPZHJL253Z643RpbcP1oeIJlQ/SKW67g==}
+ micromark-extension-gfm-table@2.1.1:
+ resolution: {integrity: sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==}
micromark-extension-gfm-tagfilter@2.0.0:
resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==}
@@ -3470,11 +3400,11 @@ packages:
micromark-extension-gfm@3.0.0:
resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==}
- micromark-extension-mdx-expression@3.0.0:
- resolution: {integrity: sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ==}
+ micromark-extension-mdx-expression@3.0.1:
+ resolution: {integrity: sha512-dD/ADLJ1AeMvSAKBwO22zG22N4ybhe7kFIZ3LsDI0GlsNr2A3KYxb0LdC1u5rj4Nw+CHKY0RVdnHX8vj8ejm4Q==}
- micromark-extension-mdx-jsx@3.0.1:
- resolution: {integrity: sha512-vNuFb9czP8QCtAQcEJn0UJQJZA8Dk6DXKBqx+bg/w0WGuSxDxNr7hErW89tHUY31dUW4NqEOWwmEUNhjTFmHkg==}
+ micromark-extension-mdx-jsx@3.0.2:
+ resolution: {integrity: sha512-e5+q1DjMh62LZAJOnDraSSbDMvGJ8x3cbjygy2qFEi7HCeUT4BDKCvMozPozcD6WmOt6sVvYDNBKhFSz3kjOVQ==}
micromark-extension-mdx-md@2.0.0:
resolution: {integrity: sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==}
@@ -3485,71 +3415,71 @@ packages:
micromark-extension-mdxjs@3.0.0:
resolution: {integrity: sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==}
- micromark-factory-destination@2.0.0:
- resolution: {integrity: sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==}
+ micromark-factory-destination@2.0.1:
+ resolution: {integrity: sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==}
- micromark-factory-label@2.0.0:
- resolution: {integrity: sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==}
+ micromark-factory-label@2.0.1:
+ resolution: {integrity: sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==}
- micromark-factory-mdx-expression@2.0.2:
- resolution: {integrity: sha512-5E5I2pFzJyg2CtemqAbcyCktpHXuJbABnsb32wX2U8IQKhhVFBqkcZR5LRm1WVoFqa4kTueZK4abep7wdo9nrw==}
+ micromark-factory-mdx-expression@2.0.3:
+ resolution: {integrity: sha512-kQnEtA3vzucU2BkrIa8/VaSAsP+EJ3CKOvhMuJgOEGg9KDC6OAY6nSnNDVRiVNRqj7Y4SlSzcStaH/5jge8JdQ==}
- micromark-factory-space@2.0.0:
- resolution: {integrity: sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==}
+ micromark-factory-space@2.0.1:
+ resolution: {integrity: sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==}
- micromark-factory-title@2.0.0:
- resolution: {integrity: sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==}
+ micromark-factory-title@2.0.1:
+ resolution: {integrity: sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==}
- micromark-factory-whitespace@2.0.0:
- resolution: {integrity: sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==}
+ micromark-factory-whitespace@2.0.1:
+ resolution: {integrity: sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==}
- micromark-util-character@2.1.0:
- resolution: {integrity: sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==}
+ micromark-util-character@2.1.1:
+ resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==}
- micromark-util-chunked@2.0.0:
- resolution: {integrity: sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==}
+ micromark-util-chunked@2.0.1:
+ resolution: {integrity: sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==}
- micromark-util-classify-character@2.0.0:
- resolution: {integrity: sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==}
+ micromark-util-classify-character@2.0.1:
+ resolution: {integrity: sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==}
- micromark-util-combine-extensions@2.0.0:
- resolution: {integrity: sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==}
+ micromark-util-combine-extensions@2.0.1:
+ resolution: {integrity: sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==}
- micromark-util-decode-numeric-character-reference@2.0.1:
- resolution: {integrity: sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==}
+ micromark-util-decode-numeric-character-reference@2.0.2:
+ resolution: {integrity: sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==}
- micromark-util-decode-string@2.0.0:
- resolution: {integrity: sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==}
+ micromark-util-decode-string@2.0.1:
+ resolution: {integrity: sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==}
- micromark-util-encode@2.0.0:
- resolution: {integrity: sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==}
+ micromark-util-encode@2.0.1:
+ resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==}
- micromark-util-events-to-acorn@2.0.2:
- resolution: {integrity: sha512-Fk+xmBrOv9QZnEDguL9OI9/NQQp6Hz4FuQ4YmCb/5V7+9eAh1s6AYSvL20kHkD67YIg7EpE54TiSlcsf3vyZgA==}
+ micromark-util-events-to-acorn@2.0.3:
+ resolution: {integrity: sha512-jmsiEIiZ1n7X1Rr5k8wVExBQCg5jy4UXVADItHmNk1zkwEVhBuIUKRu3fqv+hs4nxLISi2DQGlqIOGiFxgbfHg==}
- micromark-util-html-tag-name@2.0.0:
- resolution: {integrity: sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==}
+ micromark-util-html-tag-name@2.0.1:
+ resolution: {integrity: sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==}
- micromark-util-normalize-identifier@2.0.0:
- resolution: {integrity: sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==}
+ micromark-util-normalize-identifier@2.0.1:
+ resolution: {integrity: sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==}
- micromark-util-resolve-all@2.0.0:
- resolution: {integrity: sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==}
+ micromark-util-resolve-all@2.0.1:
+ resolution: {integrity: sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==}
- micromark-util-sanitize-uri@2.0.0:
- resolution: {integrity: sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==}
+ micromark-util-sanitize-uri@2.0.1:
+ resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==}
- micromark-util-subtokenize@2.0.1:
- resolution: {integrity: sha512-jZNtiFl/1aY73yS3UGQkutD0UbhTt68qnRpw2Pifmz5wV9h8gOVsN70v+Lq/f1rKaU/W8pxRe8y8Q9FX1AOe1Q==}
+ micromark-util-subtokenize@2.1.0:
+ resolution: {integrity: sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==}
- micromark-util-symbol@2.0.0:
- resolution: {integrity: sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==}
+ micromark-util-symbol@2.0.1:
+ resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==}
- micromark-util-types@2.0.0:
- resolution: {integrity: sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==}
+ micromark-util-types@2.0.2:
+ resolution: {integrity: sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==}
- micromark@4.0.0:
- resolution: {integrity: sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==}
+ micromark@4.0.2:
+ resolution: {integrity: sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==}
micromatch@4.0.8:
resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==}
@@ -3582,8 +3512,8 @@ packages:
resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==}
engines: {node: '>=12'}
- minimatch@10.0.2:
- resolution: {integrity: sha512-+9TJCIYXgZ2Dm5LxVCFsa8jOm+evMwXHFI0JM1XROmkfkpz8/iLLDh+TwSmyIBrs6C6Xu9294/fq8cBA+P6AqA==}
+ minimatch@10.0.3:
+ resolution: {integrity: sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==}
engines: {node: 20 || >=22}
minimatch@3.1.2:
@@ -3619,6 +3549,9 @@ packages:
mlly@1.7.4:
resolution: {integrity: sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==}
+ mlly@1.8.0:
+ resolution: {integrity: sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g==}
+
module-definition@6.0.1:
resolution: {integrity: sha512-FeVc50FTfVVQnolk/WQT8MX+2WVcDnTGiq6Wo+/+lJ2ET1bRVi3HG3YlJUfqagNMc/kUlFSoR96AJkxGpKz13g==}
engines: {node: '>=18'}
@@ -3661,6 +3594,7 @@ packages:
node-domexception@1.0.0:
resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==}
engines: {node: '>=10.5.0'}
+ deprecated: Use your platform's native DOMException instead
node-fetch-native@1.6.6:
resolution: {integrity: sha512-8Mc2HhqPdlIfedsuZoc3yioPuzp6b+L5jRCRY1QzuWZh2EGJVQrGppC6V6cF0bLdbW0+O2YpqCA25aF/1lvipQ==}
@@ -3692,6 +3626,9 @@ packages:
node-releases@2.0.19:
resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==}
+ node-releases@2.0.21:
+ resolution: {integrity: sha512-5b0pgg78U3hwXkCM8Z9b2FJdPZlr9Psr9V2gQPESdGHqbntyFJKFW4r5TeWGFzafGY3hzs1JC62VEQMbl1JFkw==}
+
node-source-walk@7.0.1:
resolution: {integrity: sha512-3VW/8JpPqPvnJvseXowjZcirPisssnBuDikk6JIZ8jQzF7KJQX52iPFX4RYYxLycYH7IbMRSPUOga/esVjy5Yg==}
engines: {node: '>=18'}
@@ -3813,15 +3750,15 @@ packages:
package-json-from-dist@1.0.1:
resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==}
- package-manager-detector@0.2.10:
- resolution: {integrity: sha512-1wlNZK7HW+UE3eGCcMv3hDaYokhspuIeH6enXSnCL1eEZSVDsy/dYwo/4CczhUsrKLA1SSXB+qce8Glw5DEVtw==}
+ package-manager-detector@1.5.0:
+ resolution: {integrity: sha512-uBj69dVlYe/+wxj8JOpr97XfsxH/eumMt6HqjNTmJDf/6NO9s+0uxeOneIz3AsPt2m6y9PqzDzd3ATcU17MNfw==}
parent-module@1.0.1:
resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
engines: {node: '>=6'}
- parse-entities@4.0.1:
- resolution: {integrity: sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==}
+ parse-entities@4.0.2:
+ resolution: {integrity: sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==}
parse-gitignore@2.0.0:
resolution: {integrity: sha512-RmVuCHWsfu0QPNW+mraxh/xjQVw/lhUCUru8Zni3Ctq3AoMhpDTq0OVdKS6iesd6Kqb7viCV3isAL43dciOSog==}
@@ -3831,12 +3768,18 @@ packages:
resolution: {integrity: sha512-ybiGyvspI+fAoRQbIPRddCcSTV9/LsJbf0e/S85VLowVGzRmokfneg2kwVW/KU5rOXrPSbF1qAKPMgNTqqROQQ==}
engines: {node: '>=18'}
+ parse-numeric-range@1.3.0:
+ resolution: {integrity: sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==}
+
parse5-htmlparser2-tree-adapter@7.1.0:
resolution: {integrity: sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==}
parse5@7.2.0:
resolution: {integrity: sha512-ZkDsAOcxsUMZ4Lz5fVciOehNcJ+Gb8gTzcA4yl3wnc273BAybYWrQ+Ks/OjCjSEpjvQkDSeZbybK9qj2VHHdGA==}
+ parse5@7.3.0:
+ resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==}
+
parseurl@1.3.3:
resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==}
engines: {node: '>= 0.8'}
@@ -3898,10 +3841,17 @@ packages:
resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==}
engines: {node: '>=12'}
+ picomatch@4.0.3:
+ resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==}
+ engines: {node: '>=12'}
+
pify@2.3.0:
resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==}
engines: {node: '>=0.10.0'}
+ pioppo@1.2.1:
+ resolution: {integrity: sha512-1oErGVWD6wFDPmrJWEY1Cj2p829UGT6Fw9OItYFxLkWtBjCvQSMC8wA5IcAR5ms/6gqiY8pnJvIV/+/Imyobew==}
+
pirates@4.0.6:
resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==}
engines: {node: '>= 6'}
@@ -3915,6 +3865,9 @@ packages:
pkg-types@2.1.0:
resolution: {integrity: sha512-wmJwA+8ihJixSoHKxZJRBQG1oY8Yr9pGLzRmSsNms0iNWyHHAlZCa7mmKiFR10YPZuz/2k169JiS/inOjBCZ2A==}
+ pkg-types@2.3.0:
+ resolution: {integrity: sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig==}
+
postcss-import@15.1.0:
resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==}
engines: {node: '>=14.0.0'}
@@ -3966,9 +3919,6 @@ packages:
resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==}
engines: {node: ^10 || ^12 || >=14}
- preact@10.24.3:
- resolution: {integrity: sha512-Z2dPnBnMUfyQfSQ+GBdsGa16hz35YmLmtTLhM169uW944hYL6xzTYkJjC07j+Wosz733pMWx0fgON3JNw1jJQA==}
-
precinct@12.2.0:
resolution: {integrity: sha512-NFBMuwIfaJ4SocE9YXPU/n4AcNSoFMVFjP72nvl3cx69j/ke61/hPOWFREVxLkFhhEGnA8ZuVfTqJBa+PK3b5w==}
engines: {node: '>=18'}
@@ -3978,11 +3928,13 @@ packages:
resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
engines: {node: '>= 0.8.0'}
- prettier-plugin-tailwindcss@0.6.13:
- resolution: {integrity: sha512-uQ0asli1+ic8xrrSmIOaElDu0FacR4x69GynTh2oZjFY10JUt6EEumTQl5tB4fMeD6I1naKd+4rXQQ7esT2i1g==}
- engines: {node: '>=14.21.3'}
+ prettier-plugin-tailwindcss@0.7.1:
+ resolution: {integrity: sha512-Bzv1LZcuiR1Sk02iJTS1QzlFNp/o5l2p3xkopwOrbPmtMeh3fK9rVW5M3neBQzHq+kGKj/4LGQMTNcTH4NGPtQ==}
+ engines: {node: '>=20.19'}
peerDependencies:
'@ianvs/prettier-plugin-sort-imports': '*'
+ '@prettier/plugin-hermes': '*'
+ '@prettier/plugin-oxc': '*'
'@prettier/plugin-pug': '*'
'@shopify/prettier-plugin-liquid': '*'
'@trivago/prettier-plugin-sort-imports': '*'
@@ -3990,18 +3942,20 @@ packages:
prettier: ^3.0
prettier-plugin-astro: '*'
prettier-plugin-css-order: '*'
- prettier-plugin-import-sort: '*'
prettier-plugin-jsdoc: '*'
prettier-plugin-marko: '*'
prettier-plugin-multiline-arrays: '*'
prettier-plugin-organize-attributes: '*'
prettier-plugin-organize-imports: '*'
prettier-plugin-sort-imports: '*'
- prettier-plugin-style-order: '*'
prettier-plugin-svelte: '*'
peerDependenciesMeta:
'@ianvs/prettier-plugin-sort-imports':
optional: true
+ '@prettier/plugin-hermes':
+ optional: true
+ '@prettier/plugin-oxc':
+ optional: true
'@prettier/plugin-pug':
optional: true
'@shopify/prettier-plugin-liquid':
@@ -4014,8 +3968,6 @@ packages:
optional: true
prettier-plugin-css-order:
optional: true
- prettier-plugin-import-sort:
- optional: true
prettier-plugin-jsdoc:
optional: true
prettier-plugin-marko:
@@ -4028,13 +3980,16 @@ packages:
optional: true
prettier-plugin-sort-imports:
optional: true
- prettier-plugin-style-order:
- optional: true
prettier-plugin-svelte:
optional: true
- prettier@3.5.3:
- resolution: {integrity: sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==}
+ prettier@3.6.2:
+ resolution: {integrity: sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==}
+ engines: {node: '>=14'}
+ hasBin: true
+
+ prettier@4.0.0-alpha.10:
+ resolution: {integrity: sha512-auyI68pnS9LmLRQCRuRBQaoqWU3Jnrifbhc+patuIGd1gzB/5h2CW1fa3Lub45R03ah+wzxbB2DNV1S1wzz9QQ==}
engines: {node: '>=14'}
hasBin: true
@@ -4042,10 +3997,6 @@ packages:
resolution: {integrity: sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ==}
engines: {node: ^14.13.1 || >=16.0.0}
- pretty-format@29.7.0:
- resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==}
- engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-
process-nextick-args@2.0.1:
resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==}
@@ -4053,11 +4004,23 @@ packages:
resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==}
engines: {node: '>= 0.6.0'}
+ promise-make-counter@1.0.2:
+ resolution: {integrity: sha512-FJAxTBWQuQoAs4ZOYuKX1FHXxEgKLEzBxUvwr4RoOglkTpOjWuM+RXsK3M9q5lMa8kjqctUrhwYeZFT4ygsnag==}
+
+ promise-make-naked@2.1.2:
+ resolution: {integrity: sha512-y7s8ZuHIG56JYspB24be9GFkXA1zXL85Ur9u1DKrW/tvyUoPxWgBjnalK6Nc6l7wHBcAW0c3PO07+XOsWTRuhg==}
+
+ promise-make-naked@3.0.2:
+ resolution: {integrity: sha512-B+b+kQ1YrYS7zO7P7bQcoqqMUizP06BOyNSBEnB5VJKDSWo8fsVuDkfSmwdjF0JsRtaNh83so5MMFJ95soH5jg==}
+
+ promise-resolve-timeout@2.0.1:
+ resolution: {integrity: sha512-90Qzzu5SmR+ksmTPsc79121NZGtEiPvKACQLCl6yofknRx5xJI9kNj3oDVSX6dVTneF8Ju6+xpVFdDSzb7cNcg==}
+
property-information@6.5.0:
resolution: {integrity: sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==}
- property-information@7.0.0:
- resolution: {integrity: sha512-7D/qOz/+Y4X/rzSB6jKxKUsQnphO046ei8qxG59mtM3RG3DHgTK81HrxrmoDVINJb8NKT5ZsRbwHvQ6B68Iyhg==}
+ property-information@7.1.0:
+ resolution: {integrity: sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==}
pump@3.0.2:
resolution: {integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==}
@@ -4070,8 +4033,8 @@ packages:
resolution: {integrity: sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==}
engines: {node: '>=0.6'}
- quansync@0.2.10:
- resolution: {integrity: sha512-t41VRkMYbkHyCYmOvx/6URnN80H7k4X0lLdBMGsz+maAwrJQYB1djpV6vHrQIBE0WBSGqhtEHrK9U3DWWH8v7A==}
+ quansync@0.2.11:
+ resolution: {integrity: sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==}
queue-microtask@1.2.3:
resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
@@ -4092,13 +4055,6 @@ packages:
rc9@2.1.2:
resolution: {integrity: sha512-btXCnMmRIBINM2LDZoEmOogIZU7Qe7zn4BpomSKZ/ykbLObuBdvG+mFq11DL6fjH1DRwHhrlgtYWG96bJiC7Cg==}
- react-is@18.3.1:
- resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==}
-
- react@18.3.1:
- resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==}
- engines: {node: '>=0.10.0'}
-
read-cache@1.0.0:
resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==}
@@ -4132,15 +4088,17 @@ packages:
resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==}
engines: {node: '>= 14.18.0'}
- recast@0.23.9:
- resolution: {integrity: sha512-Hx/BGIbwj+Des3+xy5uAtAbdCyqK9y9wbBcDFDYanLS9JnMqf7OeF87HQwUimE87OEc72mr6tkKUKMBBL+hF9Q==}
+ recast@0.23.11:
+ resolution: {integrity: sha512-YTUo+Flmw4ZXiWfQKGcwwc11KnoRAYgzAE2E7mXKCjSviTKShtxBsN6YUUBB2gtaBzKzeKunxhUwNHQuRryhWA==}
engines: {node: '>= 4'}
recma-build-jsx@1.0.0:
resolution: {integrity: sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew==}
- recma-jsx@1.0.0:
- resolution: {integrity: sha512-5vwkv65qWwYxg+Atz95acp8DMu1JDSqdGkA2Of1j6rCreyFUE/gp15fC8MnGEuG1W68UKjM6x6+YTWIh7hZM/Q==}
+ recma-jsx@1.0.1:
+ resolution: {integrity: sha512-huSIy7VU2Z5OLv6oFLosQGGDqPqdO1iq6bWNAdhzMxSJP7RAso4fCZ1cKu8j9YHCZf3TPrq4dw3okhrylgcd7w==}
+ peerDependencies:
+ acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
recma-parse@1.0.0:
resolution: {integrity: sha512-OYLsIGBB5Y5wjnSnQW6t3Xg7q3fQ7FWbw/vcXtORTnyaSFscOtABg+7Pnz6YZ6c27fG1/aN8CjfwoUEUIdwqWQ==}
@@ -4186,23 +4144,23 @@ packages:
rehype-slug@6.0.0:
resolution: {integrity: sha512-lWyvf/jwu+oS5+hL5eClVd3hNdmwM1kAC0BUvEGD19pajQMIzcNUd/k9GsfQ+FfECvX+JE+e9/btsKH0EjJT6A==}
- remark-directive@3.0.0:
- resolution: {integrity: sha512-l1UyWJ6Eg1VPU7Hm/9tt0zKtReJQNOA4+iDMAxTyZNWnJnFlbS/7zhiel/rogTLQ2vMYwDzSJa4BiVNqGlqIMA==}
+ remark-directive@3.0.1:
+ resolution: {integrity: sha512-gwglrEQEZcZYgVyG1tQuA+h58EZfq5CSULw7J90AFuCTyib1thgHPoqQ+h9iFvU6R+vnZ5oNFQR5QKgGpk741A==}
remark-frontmatter@5.0.0:
resolution: {integrity: sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==}
- remark-gfm@4.0.0:
- resolution: {integrity: sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==}
+ remark-gfm@4.0.1:
+ resolution: {integrity: sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==}
- remark-mdx@3.1.0:
- resolution: {integrity: sha512-Ngl/H3YXyBV9RcRNdlYsZujAmhsxwzxpDzpDEhFBVAGthS4GDgnctpDjgFl/ULx5UEDzqtW1cyBSNKqYYrqLBA==}
+ remark-mdx@3.1.1:
+ resolution: {integrity: sha512-Pjj2IYlUY3+D8x00UJsIOg5BEvfMyeI+2uLPn9VO9Wg4MEtN/VTIq2NEJQfde9PnX15KgtHyl9S0BcTnWrIuWg==}
remark-parse@11.0.0:
resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==}
- remark-rehype@11.1.1:
- resolution: {integrity: sha512-g/osARvjkBXb6Wo0XvAeXQohVta8i84ACbenPpoSsxTOQH/Ae0/RGP4WZgnMH5pMLpsj4FG7OHmcIcXxpza8eQ==}
+ remark-rehype@11.1.2:
+ resolution: {integrity: sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==}
remark-stringify@11.0.0:
resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==}
@@ -4282,9 +4240,6 @@ packages:
scule@1.3.0:
resolution: {integrity: sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==}
- search-insights@2.17.3:
- resolution: {integrity: sha512-RQPdCYTa8A68uM2jwxoY842xDhvx3E5LFL1LxvxCNMev4o5mLuokczhzjAgGwUZBAmOKZknArSxLKmXtIi2AxQ==}
-
section-matter@1.0.0:
resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==}
engines: {node: '>=4'}
@@ -4298,6 +4253,11 @@ packages:
engines: {node: '>=10'}
hasBin: true
+ semver@7.7.3:
+ resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==}
+ engines: {node: '>=10'}
+ hasBin: true
+
send@0.19.0:
resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==}
engines: {node: '>= 0.8.0'}
@@ -4309,21 +4269,17 @@ packages:
serialize-javascript@6.0.2:
resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==}
- seroval-plugins@1.1.1:
- resolution: {integrity: sha512-qNSy1+nUj7hsCOon7AO4wdAIo9P0jrzAMp18XhiOzA6/uO5TKtP7ScozVJ8T293oRIvi5wyCHSM4TrJo/c/GJA==}
- engines: {node: '>=10'}
- peerDependencies:
- seroval: ^1.0
-
seroval-plugins@1.3.2:
resolution: {integrity: sha512-0QvCV2lM3aj/U3YozDiVwx9zpH0q8A60CTWIv4Jszj/givcudPb48B+rkU5D51NJ0pTpweGMttHjboPa9/zoIQ==}
engines: {node: '>=10'}
peerDependencies:
seroval: ^1.0
- seroval@1.1.1:
- resolution: {integrity: sha512-rqEO6FZk8mv7Hyv4UCj3FD3b6Waqft605TLfsCe/BiaylRpyyMC0b+uA5TJKawX3KzMrdi3wsLbCaLplrQmBvQ==}
+ seroval-plugins@1.3.3:
+ resolution: {integrity: sha512-16OL3NnUBw8JG1jBLUoZJsLnQq0n5Ua6aHalhJK4fMQkz1lqR7Osz1sA30trBtd9VUDc2NgkuRCn8+/pBwqZ+w==}
engines: {node: '>=10'}
+ peerDependencies:
+ seroval: ^1.0
seroval@1.3.2:
resolution: {integrity: sha512-RbcPH1n5cfwKrru7v7+zrZvjLurgHhGyso3HTyGtRivGWgYjbOmGuivCQaORNELjNONoK35nj28EoWul9sb1zQ==}
@@ -4354,8 +4310,8 @@ packages:
shiki@1.29.2:
resolution: {integrity: sha512-njXuliz/cP+67jU2hukkxCNuH1yUi4QfdZZY+sMr5PPrIyXSu5iTb/qYC4BiWWB0vZ+7TbdvYUCeL23zpwCfbg==}
- shiki@3.11.0:
- resolution: {integrity: sha512-VgKumh/ib38I1i3QkMn6mAQA6XjjQubqaAYhfge71glAll0/4xnt8L2oSuC45Qcr/G5Kbskj4RliMQddGmy/Og==}
+ shiki@3.14.0:
+ resolution: {integrity: sha512-J0yvpLI7LSig3Z3acIuDLouV5UCKQqu8qOArwMx+/yPVC3WRMgrP67beaG8F+j4xfEWE0eVC4GeBCIXeOPra1g==}
side-channel-list@1.0.0:
resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==}
@@ -4377,18 +4333,13 @@ packages:
resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
engines: {node: '>=14'}
- simple-git@3.27.0:
- resolution: {integrity: sha512-ivHoFS9Yi9GY49ogc6/YAi3Fl9ROnF4VyubNylgCkA+RVqLaKWnDSzXOVzya8csELIaWaYNutsEuAhZrtOjozA==}
-
simple-swizzle@0.2.2:
resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==}
- sisteransi@1.0.5:
- resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==}
-
sitemap@8.0.0:
resolution: {integrity: sha512-+AbdxhM9kJsHtruUF39bwS/B0Fytw6Fr1o4ZAIAEqA6cke2xcoO2GleBw9Zw7nRzILVEgz7zBM5GiTJjie1G9A==}
engines: {node: '>=14.0.0', npm: '>=6.0.0'}
+ deprecated: 'SECURITY: Multiple vulnerabilities fixed in 8.0.1 (XML injection, path traversal, command injection, protocol injection). Upgrade immediately: npm install sitemap@8.0.1'
hasBin: true
slash@5.1.0:
@@ -4436,8 +4387,8 @@ packages:
peerDependencies:
solid-js: ^1.3
- solid-use@0.9.0:
- resolution: {integrity: sha512-8TGwB4m3qQ7qKo8Lg0pi/ZyyGVmQIjC4sPyxRCH7VPds0BzSsT734PhP3jhR6zMJxoYHM+uoivjq0XdpzXeOJg==}
+ solid-use@0.9.1:
+ resolution: {integrity: sha512-UwvXDVPlrrbj/9ewG9ys5uL2IO4jSiwys2KPzK4zsnAcmEl7iDafZWW1Mo4BSEWOmQCGK6IvpmGHo1aou8iOFw==}
engines: {node: '>=10'}
peerDependencies:
solid-js: ^1.7
@@ -4453,9 +4404,9 @@ packages:
resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
engines: {node: '>=0.10.0'}
- source-map@0.7.4:
- resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==}
- engines: {node: '>= 8'}
+ source-map@0.7.6:
+ resolution: {integrity: sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==}
+ engines: {node: '>= 12'}
space-separated-tokens@2.0.2:
resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==}
@@ -4472,6 +4423,9 @@ packages:
spdx-license-ids@3.0.21:
resolution: {integrity: sha512-Bvg/8F5XephndSK3JffaRqdT+gyhfqIPwDHpX80tJrF8QQRYMo8sNMeaZ2Dp5+jhwKnUmIOyFFQfHRkjJm5nXg==}
+ specialist@1.4.5:
+ resolution: {integrity: sha512-4mPQEREzBUW2hzlXX/dWFbQdUWzpkqvMFVpUAdRlo1lUlhKMObDHiAo09oZ94x4cS3uWMJebPOTn+GaQYLfv3Q==}
+
sprintf-js@1.0.3:
resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
@@ -4498,9 +4452,15 @@ packages:
std-env@3.9.0:
resolution: {integrity: sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==}
+ stdin-blocker@2.0.1:
+ resolution: {integrity: sha512-NEcAEpag+gE/Iivx1prq1AFPwnmgmcyHNvGZLUqGBoOE/7DZtmhtP9iYqJt8ymueFL+kknhfEebAMWbrWp3FJw==}
+
streamx@2.22.1:
resolution: {integrity: sha512-znKXEBxfatz2GBNK02kRnCXjV+AA4kjZIUxeWSr3UGirZMJfTE9uiwKHobnbgxWyL/JWro8tTq+vOqAK1/qbSA==}
+ string-escape-regex@1.0.1:
+ resolution: {integrity: sha512-cdSXOHSJ32K/T2dbj9t7rJwonujaOkaINpa1zsXT+PNFIv1zuPjtr0tXanCvUhN2bIu2IB0z/C7ksl+Qsy44nA==}
+
string-width@4.2.3:
resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
engines: {node: '>=8'}
@@ -4545,8 +4505,17 @@ packages:
strip-literal@3.0.0:
resolution: {integrity: sha512-TcccoMhJOM3OebGhSBEmp3UZ2SfDMZUEBdRA/9ynfLi8yYajyWX3JiXArcJt4Umh4vISpspkQIY8ZZoCqjbviA==}
- style-to-object@0.4.4:
- resolution: {integrity: sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==}
+ strip-literal@3.1.0:
+ resolution: {integrity: sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg==}
+
+ stubborn-fs@1.2.5:
+ resolution: {integrity: sha512-H2N9c26eXjzL/S/K+i/RHHcFanE74dptvvjM8iwzwbVcWY/zjBbgRqF3K0DY4+OD+uTTASTBvDoxPDaPN02D7g==}
+
+ style-to-js@1.1.18:
+ resolution: {integrity: sha512-JFPn62D4kJaPTnhFUI244MThx+FEGbi+9dw1b9yBBQ+1CZpV7QAT8kUtJ7b7EUNdHajjF/0x8fT+16oLJoojLg==}
+
+ style-to-object@1.0.11:
+ resolution: {integrity: sha512-5A560JmXr7wDyGLK12Nq/EYS38VkGlglVzkis1JEdbGWSnbQIEhZzTJhzURXN5/8WwwFCs/f/VVcmkTppbXLow==}
style-to-object@1.0.8:
resolution: {integrity: sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==}
@@ -4556,8 +4525,8 @@ packages:
engines: {node: '>=16 || 14 >=14.17'}
hasBin: true
- supports-color@10.0.0:
- resolution: {integrity: sha512-HRVVSbCCMbj7/kdWF9Q+bbckjBHLtHMEoJWlkmYzzdwhYMkjkOwubLM6t7NbWKjgKamGDrWL1++KrjUO1t9oAQ==}
+ supports-color@10.2.2:
+ resolution: {integrity: sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g==}
engines: {node: '>=18'}
supports-color@5.5.0:
@@ -4612,20 +4581,59 @@ packages:
thenify@3.3.1:
resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==}
+ tiny-bin@1.11.3:
+ resolution: {integrity: sha512-CrBbiKsvJN4bHSDA0cPau4t5KWdGUUAcTXQ8bB14XNqNY+68UZF4Zo7WRVdHLq0j0GYZjIRbNDg+zJbJXDEXeg==}
+
+ tiny-colors@2.2.2:
+ resolution: {integrity: sha512-Elmv7JL+dX0c78caKEelH1nHHBskHzJkaqBRgVvQuxsvVA/Z9Fa2R3ZZtfmkkajcd18e96RLMwJvtFqC8jsZWA==}
+
+ tiny-cursor@2.0.1:
+ resolution: {integrity: sha512-28ytGEfb7m/8Gdflv+wSo5qRM01fROo2CjJVYon6yYbzPsc3ap3Ps5CZXuS19pIROwswSvZMGbEQ7kWnokdUGA==}
+
+ tiny-editorconfig@1.0.1:
+ resolution: {integrity: sha512-V6AW3vnBrhhtYBPdTFTMaPNlziyNdyReG5wTbfYnKSy6nHScI/vfmtFuDx9sjpgOCutK+QpW+LVAl4QigdLssw==}
+
tiny-invariant@1.3.3:
resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==}
+ tiny-jsonc@1.0.2:
+ resolution: {integrity: sha512-f5QDAfLq6zIVSyCZQZhhyl0QS6MvAyTxgz4X4x3+EoCktNWEYJ6PeoEA97fyb98njpBNNi88ybpD7m+BDFXaCw==}
+
+ tiny-levenshtein@1.1.0:
+ resolution: {integrity: sha512-sU4wduNrjb2e51rgPOTy6nx3ag8pQPFA9XQCQQsFmECWEDS23LEoYsZv3fhVuJNIcxzBNMvCDDb7e/PPOP+vxw==}
+
+ tiny-parse-argv@2.8.2:
+ resolution: {integrity: sha512-RnIDHQ+r9zMuslQWVoRxfKVOumteeheQqbwNYJyQxzM2vzx/vdN5xAeL64F3rQOpfbVdxFkhM4zPDyfq7SxsBQ==}
+
+ tiny-readdir-glob@1.23.2:
+ resolution: {integrity: sha512-+47FIdgzEtZj03mOyq9iAljlZZNleqSEwe3i6Uzkzec5axbMg32Vp78U2fLo4TiCMv9gzjnno7yJn34z5pXECw==}
+
+ tiny-readdir@2.7.4:
+ resolution: {integrity: sha512-721U+zsYwDirjr8IM6jqpesD/McpZooeFi3Zc6mcjy1pse2C+v19eHPFRqz4chGXZFw7C3KITDjAtHETc2wj7Q==}
+
+ tiny-spinner@2.0.5:
+ resolution: {integrity: sha512-OIGogtfEbA2IQdCBgF0zI3EjpFyiUEd6Uj5j0q5jhIPPq8pgNR83D0t9WIckbD2FzPann8lH/uLf1vX0YIu04w==}
+
+ tiny-truncate@1.0.5:
+ resolution: {integrity: sha512-v69A1bjP624gxzBEvvshTMcwU2tkMcuAOIXAjJj0AG7aR+/YFmBYSw3rEKo0Ma2SCX7coeq9MNnUHQo1wZmMHw==}
+
+ tiny-updater@3.5.3:
+ resolution: {integrity: sha512-wEUssfOOkVLg2raSaRbyZDHpVCDj6fnp7UjynpNE4XGuF+Gkj8GRRMoHdfk73VzLQs/AHKsbY8fCxXNz8Hx4Qg==}
+
tinyexec@0.3.2:
resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==}
- tinyglobby@0.2.12:
- resolution: {integrity: sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==}
- engines: {node: '>=12.0.0'}
+ tinyexec@1.0.1:
+ resolution: {integrity: sha512-5uC6DDlmeqiOwCPmK9jMSdOuZTh8bU39Ys6yidB+UTt5hfZUPGAypSgFRiEp+jbi9qH40BLDvy85jIU88wKSqw==}
tinyglobby@0.2.14:
resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==}
engines: {node: '>=12.0.0'}
+ tinyglobby@0.2.15:
+ resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==}
+ engines: {node: '>=12.0.0'}
+
tmp-promise@3.0.3:
resolution: {integrity: sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==}
@@ -4670,9 +4678,6 @@ packages:
ts-interface-checker@0.1.13:
resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
- tslib@2.8.0:
- resolution: {integrity: sha512-jWVzBLplnCmoaTr13V9dYbiQ99wvZRd0vNWaDRg+aVYRcjDF3nDksxFDE/+fkXnKhpnUUkmx5pK/v8mCtLVqZA==}
-
tslib@2.8.1:
resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
@@ -4692,15 +4697,15 @@ packages:
resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==}
engines: {node: '>=16'}
- typescript-eslint@8.40.0:
- resolution: {integrity: sha512-Xvd2l+ZmFDPEt4oj1QEXzA4A2uUK6opvKu3eGN9aGjB8au02lIVcLyi375w94hHyejTOmzIU77L8ol2sRg9n7Q==}
+ typescript-eslint@8.46.2:
+ resolution: {integrity: sha512-vbw8bOmiuYNdzzV3lsiWv6sRwjyuKJMQqWulBOU7M0RrxedXledX8G8kBbQeiOYDnTfiXz0Y4081E1QMNB6iQg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0
typescript: '>=4.8.4 <6.0.0'
- typescript@5.9.2:
- resolution: {integrity: sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==}
+ typescript@5.9.3:
+ resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==}
engines: {node: '>=14.17'}
hasBin: true
@@ -4713,9 +4718,6 @@ packages:
ultrahtml@1.6.0:
resolution: {integrity: sha512-R9fBn90VTJrqqLDwyMph+HGne8eqY1iPfYhPzZrvKpIfwkWZbcYlfpsb8B9dTvBfpy1/hqAD7Wi8EKfP9e8zdw==}
- ultramatter@0.0.4:
- resolution: {integrity: sha512-1f/hO3mR+/Hgue4eInOF/Qm/wzDqwhYha4DxM0hre9YIUyso3fE2XtrAU6B4njLqTC8CM49EZaYgsVSa+dXHGw==}
-
uncrypto@0.1.3:
resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==}
@@ -4725,8 +4727,8 @@ packages:
undici-types@5.28.4:
resolution: {integrity: sha512-3OeMF5Lyowe8VW0skf5qaIE7Or3yS9LS7fvMUI0gg4YxpIBVg0L8BxCmROw2CcYhSkpR68Epz7CGc8MPj94Uww==}
- undici-types@7.10.0:
- resolution: {integrity: sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag==}
+ undici-types@7.16.0:
+ resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==}
unenv@1.10.0:
resolution: {integrity: sha512-wY5bskBQFL9n3Eca5XnhH6KbUo/tfvkwm9OpcdCvLaeA7piBNbavbOKJySEwQ1V0RH6HvNlSAFRTpvTqgKRQXQ==}
@@ -4745,8 +4747,8 @@ packages:
unified@11.0.5:
resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==}
- unimport@4.1.2:
- resolution: {integrity: sha512-oVUL7PSlyVV3QRhsdcyYEMaDX8HJyS/CnUonEJTYA3//bWO+o/4gG8F7auGWWWkrrxBQBYOO8DKe+C53ktpRXw==}
+ unimport@4.2.0:
+ resolution: {integrity: sha512-mYVtA0nmzrysnYnyb3ALMbByJ+Maosee2+WyE0puXl+Xm2bUwPorPaaeZt0ETfuroPOtG8jj1g/qeFZ6buFnag==}
engines: {node: '>=18.12.0'}
unimport@5.0.1:
@@ -4759,8 +4761,8 @@ packages:
unist-util-find-after@5.0.0:
resolution: {integrity: sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==}
- unist-util-is@6.0.0:
- resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==}
+ unist-util-is@6.0.1:
+ resolution: {integrity: sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==}
unist-util-mdx-define@1.1.2:
resolution: {integrity: sha512-9ncH7i7TN5Xn7/tzX5bE3rXgz1X/u877gYVAUB3mLeTKYJmQHmqKTDBi6BTGXV7AeolBCI9ErcVsOt2qryoD0g==}
@@ -4774,8 +4776,8 @@ packages:
unist-util-stringify-position@4.0.0:
resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==}
- unist-util-visit-parents@6.0.1:
- resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==}
+ unist-util-visit-parents@6.0.2:
+ resolution: {integrity: sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==}
unist-util-visit@5.0.0:
resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==}
@@ -4788,8 +4790,8 @@ packages:
resolution: {integrity: sha512-6bc58dPYhCMHHuwxldQxO3RRNZ4eCogZ/st++0+fcC1nr0jiGUtAdBJ2qzmLQWSxbtz42pWt4QQMiZ9HvZf5cg==}
engines: {node: '>=0.10.0'}
- unplugin-auto-import@19.1.1:
- resolution: {integrity: sha512-sCGZZrSR1Bc8RfN8Q0RUDxXtC20rdAt7UB4lDyq8MNtKVHiXXh+5af6Nz4JRp9Q+7HjnbgQfQox0TkEymjdUAQ==}
+ unplugin-auto-import@19.3.0:
+ resolution: {integrity: sha512-iIi0u4Gq2uGkAOGqlPJOAMI8vocvjh1clGTfSK4SOrJKrt+tirrixo/FjgBwXQNNdS7ofcr7OxzmOb/RjWxeEQ==}
engines: {node: '>=14'}
peerDependencies:
'@nuxt/kit': ^3.2.2
@@ -4800,8 +4802,8 @@ packages:
'@vueuse/core':
optional: true
- unplugin-icons@22.1.0:
- resolution: {integrity: sha512-ect2ZNtk1Zgwb0NVHd0C1IDW/MV+Jk/xaq4t8o6rYdVS3+L660ZdD5kTSQZvsgdwCvquRw+/wYn75hsweRjoIA==}
+ unplugin-icons@22.5.0:
+ resolution: {integrity: sha512-MBlMtT5RuMYZy4TZgqUL2OTtOdTUVsS1Mhj6G1pEzMlFJlEnq6mhUfoIt45gBWxHcsOdXJDWLg3pRZ+YmvAVWQ==}
peerDependencies:
'@svgr/core': '>=7.0.0'
'@svgx/core': ^1.0.1
@@ -4827,10 +4829,18 @@ packages:
resolution: {integrity: sha512-8U/MtpkPkkk3Atewj1+RcKIjb5WBimZ/WSLhhR3w6SsIj8XJuKTacSP8g+2JhfSGw0Cb125Y+2zA/IzJZDVbhA==}
engines: {node: '>=18.12.0'}
+ unplugin-utils@0.2.5:
+ resolution: {integrity: sha512-gwXJnPRewT4rT7sBi/IvxKTjsms7jX7QIDLOClApuZwR49SXbrB1z2NLUZ+vDHyqCj/n58OzRRqaW+B8OZi8vg==}
+ engines: {node: '>=18.12.0'}
+
unplugin@1.16.1:
resolution: {integrity: sha512-4/u/j4FrCKdi17jaxuJA0jClGxB1AvU2hw/IuayPc4ay1XGaJs/rbb4v5WKwAjNifjmXK9PIFyuPiaK8azyR9w==}
engines: {node: '>=14.0.0'}
+ unplugin@2.3.10:
+ resolution: {integrity: sha512-6NCPkv1ClwH+/BGE9QeoTIl09nuiAt0gS28nn1PvYXsGKRwM2TCbFA2QiilmehPDTXIe684k4rZI1yl3A1PCUw==}
+ engines: {node: '>=18.12.0'}
+
unplugin@2.3.5:
resolution: {integrity: sha512-RyWSb5AHmGtjjNQ6gIlA67sHOsWpsbWpwDokLwTcejVdOjEkJZh7QKu14J00gDDVSh8kGH4KYC/TNBceXFZhtw==}
engines: {node: '>=18.12.0'}
@@ -4930,8 +4940,8 @@ packages:
resolution: {integrity: sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==}
hasBin: true
- validate-html-nesting@1.2.2:
- resolution: {integrity: sha512-hGdgQozCsQJMyfK5urgFcWEqsSSrK63Awe0t/IMR0bZ0QMtnuaiHzThW81guu3qx9abLi99NEuiaN6P9gVYsNg==}
+ validate-html-nesting@1.2.3:
+ resolution: {integrity: sha512-kdkWdCl6eCeLlRShJKbjVOU2kFKxMF8Ghu50n+crEoyx+VKm3FxAxF9z4DCy6+bbTOqNW0+jcIYRnjoIRzigRw==}
validate-npm-package-license@3.0.4:
resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==}
@@ -4939,8 +4949,8 @@ packages:
vfile-location@5.0.3:
resolution: {integrity: sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==}
- vfile-message@4.0.2:
- resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==}
+ vfile-message@4.0.3:
+ resolution: {integrity: sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==}
vfile@6.0.3:
resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==}
@@ -4949,12 +4959,12 @@ packages:
resolution: {integrity: sha512-8+xsAx/+J+QENGV2igI29u1/gvlFKeXYBAsIk1OOzt9USmLxyaqBHf+GvkiZ8QgPTFP9OyA2w+TuPynyushr7g==}
hasBin: true
- vite-plugin-solid@2.11.2:
- resolution: {integrity: sha512-/OXVasW5OIRSFXnqzMgm8X3hPvf+JTbGecjQhmk7QnbDFq4hqdLssuYAWw9GsJGfzUPiMHM3ME2Y2XHPsTWmkw==}
+ vite-plugin-solid@2.11.8:
+ resolution: {integrity: sha512-hFrCxBfv3B1BmFqnJF4JOCYpjrmi/zwyeKjcomQ0khh8HFyQ8SbuBWQ7zGojfrz6HUOBFrJBNySDi/JgAHytWg==}
peerDependencies:
'@testing-library/jest-dom': ^5.16.6 || ^5.17.0 || ^6.*
solid-js: ^1.7.2
- vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0
+ vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0
peerDependenciesMeta:
'@testing-library/jest-dom':
optional: true
@@ -4999,10 +5009,10 @@ packages:
yaml:
optional: true
- vitefu@1.0.5:
- resolution: {integrity: sha512-h4Vflt9gxODPFNGPwp4zAMZRpZR7eslzwH2c5hn5kNZ5rhnKyRJ50U+yGCdc2IRaBs8O4haIgLNGrV5CrpMsCA==}
+ vitefu@1.1.1:
+ resolution: {integrity: sha512-B/Fegf3i8zh0yFbpzZ21amWzHmuNlLlmJT6n7bu5e+pCHUKQIfXSYokrqOBGEMMe9UG2sostKQF9mml/vYaWJQ==}
peerDependencies:
- vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0
+ vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0
peerDependenciesMeta:
vite:
optional: true
@@ -5020,9 +5030,15 @@ packages:
webpack-virtual-modules@0.6.2:
resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==}
+ webworker-shim@1.1.4:
+ resolution: {integrity: sha512-W/40L5W6ZQyGhYr3hJ7N/2SjdK5OdFtnYm94j6xlRyjckegXnIGwz0EdxdkQx6VGTglJjK8mqBhMz3fd3AY4bg==}
+
whatwg-url@5.0.0:
resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==}
+ when-exit@2.1.4:
+ resolution: {integrity: sha512-4rnvd3A1t16PWzrBUcSDZqcAmsUIy4minDXT/CZ8F2mVDgd65i4Aalimgz1aQkRGU0iH5eT5+6Rx2TK8o443Pg==}
+
which@2.0.2:
resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
engines: {node: '>= 8'}
@@ -5049,6 +5065,9 @@ packages:
resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==}
engines: {node: '>=0.10.0'}
+ worktank@2.7.3:
+ resolution: {integrity: sha512-M0fesnpttBPdvNYBdzRvLDsacN0na9RYWFxwmM/x1+/6mufjduv9/9vBObK8EXDqxRMX/SOYJabpo0UCYYBUdQ==}
+
wrap-ansi@7.0.0:
resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
engines: {node: '>=10'}
@@ -5079,13 +5098,8 @@ packages:
resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==}
engines: {node: '>=18'}
- yaml@2.6.0:
- resolution: {integrity: sha512-a6ae//JvKDEra2kdi1qzCyrJW/WZCgFi8ydDV+eXExl95t+5R+ijnqHJbz9tmMh8FUjx3iv2fCQ4dclAQlO2UQ==}
- engines: {node: '>= 14'}
- hasBin: true
-
- yaml@2.8.0:
- resolution: {integrity: sha512-4lLa/EcQCB0cJkyts+FpIRx5G/llPxfP6VQU5KByHEhLxY3IJCH0f0Hy1MHI8sClTvsIb8qwRJ6R/ZdlDJ/leQ==}
+ yaml@2.8.1:
+ resolution: {integrity: sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==}
engines: {node: '>= 14.6'}
hasBin: true
@@ -5116,6 +5130,21 @@ packages:
resolution: {integrity: sha512-rY2A2lSF7zC+l7HH9Mq+83D1dLlsPnEvy8jTouzaptDZM6geqZ3aJe/b7ULCwRURPtWV3vbDjA2DDMdoBol0HQ==}
engines: {node: '>=18'}
+ zeptomatch-escape@1.0.1:
+ resolution: {integrity: sha512-kAc5HzvnF66djCYDqpsS46Y/FKi+4pe/KJRmTmm/hwmoaNYzmm6bBY07cdkxmJCdY018S5UeQn4yP+9X2x1MbQ==}
+
+ zeptomatch-explode@1.0.1:
+ resolution: {integrity: sha512-7cUQASLLRGZ20+zEQcEgQ9z/gH1+jSfrNg4KfRJSxF1QU2fpymAwWvnAxl69GD5pr3IV0V9vo3ke2np//Nh4tQ==}
+
+ zeptomatch-is-static@1.0.1:
+ resolution: {integrity: sha512-bN9q7H/UdXhkub01WE7b7Grg07jLldNnIWG2T1IpBq5NtvcQ4DwFbNiGGapnbKHUdWiCNjg/bIvixV88nj9gog==}
+
+ zeptomatch-unescape@1.0.1:
+ resolution: {integrity: sha512-xhSFkKV0aQ03e/eiN4VhOTwJhcqfH7SMiGHrWKw9gXi+0EVJAxJ8Gt4ehozYsYLhUXL1JFbP1g3EE6ZmkStB0g==}
+
+ zeptomatch@2.1.0:
+ resolution: {integrity: sha512-KiGErG2J0G82LSpniV0CtIzjlJ10E04j02VOudJsPyPwNZgGnRKQy7I1R7GMyg/QswnE4l7ohSGrQbQbjXPPDA==}
+
zip-stream@6.0.1:
resolution: {integrity: sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==}
engines: {node: '>= 14'}
@@ -5123,116 +5152,14 @@ packages:
zod@3.25.76:
resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==}
+ zod@4.1.12:
+ resolution: {integrity: sha512-JInaHOamG8pt5+Ey8kGmdcAcg3OL9reK8ltczgHTAwNhMys/6ThXHityHxVV2p3fkw/c+MAvBHFVYHFZDmjMCQ==}
+
zwitch@2.0.4:
resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==}
snapshots:
- '@algolia/autocomplete-core@1.17.7(@algolia/client-search@5.14.2)(algoliasearch@5.14.2)(search-insights@2.17.3)':
- dependencies:
- '@algolia/autocomplete-plugin-algolia-insights': 1.17.7(@algolia/client-search@5.14.2)(algoliasearch@5.14.2)(search-insights@2.17.3)
- '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.14.2)(algoliasearch@5.14.2)
- transitivePeerDependencies:
- - '@algolia/client-search'
- - algoliasearch
- - search-insights
-
- '@algolia/autocomplete-plugin-algolia-insights@1.17.7(@algolia/client-search@5.14.2)(algoliasearch@5.14.2)(search-insights@2.17.3)':
- dependencies:
- '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.14.2)(algoliasearch@5.14.2)
- search-insights: 2.17.3
- transitivePeerDependencies:
- - '@algolia/client-search'
- - algoliasearch
-
- '@algolia/autocomplete-preset-algolia@1.17.7(@algolia/client-search@5.14.2)(algoliasearch@5.14.2)':
- dependencies:
- '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.14.2)(algoliasearch@5.14.2)
- '@algolia/client-search': 5.14.2
- algoliasearch: 5.14.2
-
- '@algolia/autocomplete-shared@1.17.7(@algolia/client-search@5.14.2)(algoliasearch@5.14.2)':
- dependencies:
- '@algolia/client-search': 5.14.2
- algoliasearch: 5.14.2
-
- '@algolia/client-abtesting@5.14.2':
- dependencies:
- '@algolia/client-common': 5.14.2
- '@algolia/requester-browser-xhr': 5.14.2
- '@algolia/requester-fetch': 5.14.2
- '@algolia/requester-node-http': 5.14.2
-
- '@algolia/client-analytics@5.14.2':
- dependencies:
- '@algolia/client-common': 5.14.2
- '@algolia/requester-browser-xhr': 5.14.2
- '@algolia/requester-fetch': 5.14.2
- '@algolia/requester-node-http': 5.14.2
-
- '@algolia/client-common@5.14.2': {}
-
- '@algolia/client-insights@5.14.2':
- dependencies:
- '@algolia/client-common': 5.14.2
- '@algolia/requester-browser-xhr': 5.14.2
- '@algolia/requester-fetch': 5.14.2
- '@algolia/requester-node-http': 5.14.2
-
- '@algolia/client-personalization@5.14.2':
- dependencies:
- '@algolia/client-common': 5.14.2
- '@algolia/requester-browser-xhr': 5.14.2
- '@algolia/requester-fetch': 5.14.2
- '@algolia/requester-node-http': 5.14.2
-
- '@algolia/client-query-suggestions@5.14.2':
- dependencies:
- '@algolia/client-common': 5.14.2
- '@algolia/requester-browser-xhr': 5.14.2
- '@algolia/requester-fetch': 5.14.2
- '@algolia/requester-node-http': 5.14.2
-
- '@algolia/client-search@5.14.2':
- dependencies:
- '@algolia/client-common': 5.14.2
- '@algolia/requester-browser-xhr': 5.14.2
- '@algolia/requester-fetch': 5.14.2
- '@algolia/requester-node-http': 5.14.2
-
- '@algolia/ingestion@1.14.2':
- dependencies:
- '@algolia/client-common': 5.14.2
- '@algolia/requester-browser-xhr': 5.14.2
- '@algolia/requester-fetch': 5.14.2
- '@algolia/requester-node-http': 5.14.2
-
- '@algolia/monitoring@1.14.2':
- dependencies:
- '@algolia/client-common': 5.14.2
- '@algolia/requester-browser-xhr': 5.14.2
- '@algolia/requester-fetch': 5.14.2
- '@algolia/requester-node-http': 5.14.2
-
- '@algolia/recommend@5.14.2':
- dependencies:
- '@algolia/client-common': 5.14.2
- '@algolia/requester-browser-xhr': 5.14.2
- '@algolia/requester-fetch': 5.14.2
- '@algolia/requester-node-http': 5.14.2
-
- '@algolia/requester-browser-xhr@5.14.2':
- dependencies:
- '@algolia/client-common': 5.14.2
-
- '@algolia/requester-fetch@5.14.2':
- dependencies:
- '@algolia/client-common': 5.14.2
-
- '@algolia/requester-node-http@5.14.2':
- dependencies:
- '@algolia/client-common': 5.14.2
-
'@alloc/quick-lru@5.2.0': {}
'@ampproject/remapping@2.3.0':
@@ -5240,12 +5167,12 @@ snapshots:
'@jridgewell/gen-mapping': 0.3.5
'@jridgewell/trace-mapping': 0.3.25
- '@antfu/install-pkg@1.0.0':
+ '@antfu/install-pkg@1.1.0':
dependencies:
- package-manager-detector: 0.2.10
- tinyexec: 0.3.2
+ package-manager-detector: 1.5.0
+ tinyexec: 1.0.1
- '@antfu/utils@8.1.1': {}
+ '@antfu/utils@9.3.0': {}
'@babel/code-frame@7.25.7':
dependencies:
@@ -5266,7 +5193,7 @@ snapshots:
'@babel/compat-data@7.25.8': {}
- '@babel/compat-data@7.28.0': {}
+ '@babel/compat-data@7.28.4': {}
'@babel/core@7.25.8':
dependencies:
@@ -5281,27 +5208,27 @@ snapshots:
'@babel/traverse': 7.25.7
'@babel/types': 7.25.8
convert-source-map: 2.0.0
- debug: 4.3.7
+ debug: 4.4.3
gensync: 1.0.0-beta.2
json5: 2.2.3
semver: 6.3.1
transitivePeerDependencies:
- supports-color
- '@babel/core@7.28.3':
+ '@babel/core@7.28.4':
dependencies:
- '@ampproject/remapping': 2.3.0
'@babel/code-frame': 7.27.1
'@babel/generator': 7.28.3
'@babel/helper-compilation-targets': 7.27.2
- '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.3)
- '@babel/helpers': 7.28.3
- '@babel/parser': 7.28.3
+ '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.4)
+ '@babel/helpers': 7.28.4
+ '@babel/parser': 7.28.4
'@babel/template': 7.27.2
- '@babel/traverse': 7.28.3
- '@babel/types': 7.28.2
+ '@babel/traverse': 7.28.4
+ '@babel/types': 7.28.4
+ '@jridgewell/remapping': 2.3.5
convert-source-map: 2.0.0
- debug: 4.4.1
+ debug: 4.4.3
gensync: 1.0.0-beta.2
json5: 2.2.3
semver: 6.3.1
@@ -5310,22 +5237,22 @@ snapshots:
'@babel/generator@7.25.7':
dependencies:
- '@babel/types': 7.25.8
+ '@babel/types': 7.28.4
'@jridgewell/gen-mapping': 0.3.5
'@jridgewell/trace-mapping': 0.3.25
jsesc: 3.0.2
'@babel/generator@7.28.3':
dependencies:
- '@babel/parser': 7.28.3
- '@babel/types': 7.28.2
+ '@babel/parser': 7.28.4
+ '@babel/types': 7.28.4
'@jridgewell/gen-mapping': 0.3.13
- '@jridgewell/trace-mapping': 0.3.30
+ '@jridgewell/trace-mapping': 0.3.31
jsesc: 3.1.0
'@babel/helper-annotate-as-pure@7.27.3':
dependencies:
- '@babel/types': 7.28.2
+ '@babel/types': 7.28.4
'@babel/helper-compilation-targets@7.25.7':
dependencies:
@@ -5337,21 +5264,21 @@ snapshots:
'@babel/helper-compilation-targets@7.27.2':
dependencies:
- '@babel/compat-data': 7.28.0
+ '@babel/compat-data': 7.28.4
'@babel/helper-validator-option': 7.27.1
- browserslist: 4.25.3
+ browserslist: 4.26.0
lru-cache: 5.1.1
semver: 6.3.1
- '@babel/helper-create-class-features-plugin@7.28.3(@babel/core@7.28.3)':
+ '@babel/helper-create-class-features-plugin@7.28.3(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.3
+ '@babel/core': 7.28.4
'@babel/helper-annotate-as-pure': 7.27.3
'@babel/helper-member-expression-to-functions': 7.27.1
'@babel/helper-optimise-call-expression': 7.27.1
- '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.3)
+ '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.4)
'@babel/helper-skip-transparent-expression-wrappers': 7.27.1
- '@babel/traverse': 7.28.3
+ '@babel/traverse': 7.28.4
semver: 6.3.1
transitivePeerDependencies:
- supports-color
@@ -5360,26 +5287,26 @@ snapshots:
'@babel/helper-member-expression-to-functions@7.27.1':
dependencies:
- '@babel/traverse': 7.28.3
- '@babel/types': 7.28.2
+ '@babel/traverse': 7.28.4
+ '@babel/types': 7.28.4
transitivePeerDependencies:
- supports-color
'@babel/helper-module-imports@7.18.6':
dependencies:
- '@babel/types': 7.25.8
+ '@babel/types': 7.28.4
'@babel/helper-module-imports@7.25.7':
dependencies:
- '@babel/traverse': 7.25.7
- '@babel/types': 7.25.8
+ '@babel/traverse': 7.28.4
+ '@babel/types': 7.28.4
transitivePeerDependencies:
- supports-color
'@babel/helper-module-imports@7.27.1':
dependencies:
- '@babel/traverse': 7.28.3
- '@babel/types': 7.28.2
+ '@babel/traverse': 7.28.4
+ '@babel/types': 7.28.4
transitivePeerDependencies:
- supports-color
@@ -5389,60 +5316,56 @@ snapshots:
'@babel/helper-module-imports': 7.25.7
'@babel/helper-simple-access': 7.25.7
'@babel/helper-validator-identifier': 7.25.7
- '@babel/traverse': 7.25.7
+ '@babel/traverse': 7.28.4
transitivePeerDependencies:
- supports-color
- '@babel/helper-module-transforms@7.28.3(@babel/core@7.28.3)':
+ '@babel/helper-module-transforms@7.28.3(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.3
+ '@babel/core': 7.28.4
'@babel/helper-module-imports': 7.27.1
'@babel/helper-validator-identifier': 7.27.1
- '@babel/traverse': 7.28.3
+ '@babel/traverse': 7.28.4
transitivePeerDependencies:
- supports-color
'@babel/helper-optimise-call-expression@7.27.1':
dependencies:
- '@babel/types': 7.28.2
+ '@babel/types': 7.28.4
'@babel/helper-plugin-utils@7.25.7': {}
'@babel/helper-plugin-utils@7.27.1': {}
- '@babel/helper-replace-supers@7.27.1(@babel/core@7.28.3)':
+ '@babel/helper-replace-supers@7.27.1(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.3
+ '@babel/core': 7.28.4
'@babel/helper-member-expression-to-functions': 7.27.1
'@babel/helper-optimise-call-expression': 7.27.1
- '@babel/traverse': 7.28.3
+ '@babel/traverse': 7.28.4
transitivePeerDependencies:
- supports-color
'@babel/helper-simple-access@7.25.7':
dependencies:
- '@babel/traverse': 7.25.7
- '@babel/types': 7.25.8
+ '@babel/traverse': 7.28.4
+ '@babel/types': 7.28.4
transitivePeerDependencies:
- supports-color
'@babel/helper-skip-transparent-expression-wrappers@7.27.1':
dependencies:
- '@babel/traverse': 7.28.3
- '@babel/types': 7.28.2
+ '@babel/traverse': 7.28.4
+ '@babel/types': 7.28.4
transitivePeerDependencies:
- supports-color
'@babel/helper-string-parser@7.25.7': {}
- '@babel/helper-string-parser@7.25.9': {}
-
'@babel/helper-string-parser@7.27.1': {}
'@babel/helper-validator-identifier@7.25.7': {}
- '@babel/helper-validator-identifier@7.25.9': {}
-
'@babel/helper-validator-identifier@7.27.1': {}
'@babel/helper-validator-option@7.25.7': {}
@@ -5451,41 +5374,37 @@ snapshots:
'@babel/helpers@7.25.7':
dependencies:
- '@babel/template': 7.25.7
- '@babel/types': 7.25.8
+ '@babel/template': 7.27.2
+ '@babel/types': 7.28.4
- '@babel/helpers@7.28.3':
+ '@babel/helpers@7.28.4':
dependencies:
'@babel/template': 7.27.2
- '@babel/types': 7.28.2
+ '@babel/types': 7.28.4
'@babel/highlight@7.25.7':
dependencies:
- '@babel/helper-validator-identifier': 7.25.7
+ '@babel/helper-validator-identifier': 7.27.1
chalk: 2.4.2
js-tokens: 4.0.0
picocolors: 1.1.1
'@babel/parser@7.25.8':
dependencies:
- '@babel/types': 7.25.8
+ '@babel/types': 7.28.4
- '@babel/parser@7.27.5':
+ '@babel/parser@7.28.4':
dependencies:
- '@babel/types': 7.27.6
-
- '@babel/parser@7.28.3':
- dependencies:
- '@babel/types': 7.28.2
+ '@babel/types': 7.28.4
'@babel/plugin-syntax-jsx@7.25.7(@babel/core@7.25.8)':
dependencies:
'@babel/core': 7.25.8
'@babel/helper-plugin-utils': 7.25.7
- '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.28.3)':
+ '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.3
+ '@babel/core': 7.28.4
'@babel/helper-plugin-utils': 7.27.1
'@babel/plugin-syntax-typescript@7.25.7(@babel/core@7.25.8)':
@@ -5493,74 +5412,74 @@ snapshots:
'@babel/core': 7.25.8
'@babel/helper-plugin-utils': 7.25.7
- '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.28.3)':
+ '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.3
+ '@babel/core': 7.28.4
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-modules-commonjs@7.27.1(@babel/core@7.28.3)':
+ '@babel/plugin-transform-modules-commonjs@7.27.1(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.3
- '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.3)
+ '@babel/core': 7.28.4
+ '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.4)
'@babel/helper-plugin-utils': 7.27.1
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-typescript@7.28.0(@babel/core@7.28.3)':
+ '@babel/plugin-transform-typescript@7.28.0(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.3
+ '@babel/core': 7.28.4
'@babel/helper-annotate-as-pure': 7.27.3
- '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.28.3)
+ '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.28.4)
'@babel/helper-plugin-utils': 7.27.1
'@babel/helper-skip-transparent-expression-wrappers': 7.27.1
- '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.3)
+ '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.4)
transitivePeerDependencies:
- supports-color
- '@babel/preset-typescript@7.27.1(@babel/core@7.28.3)':
+ '@babel/preset-typescript@7.27.1(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.3
+ '@babel/core': 7.28.4
'@babel/helper-plugin-utils': 7.27.1
'@babel/helper-validator-option': 7.27.1
- '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.3)
- '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.28.3)
- '@babel/plugin-transform-typescript': 7.28.0(@babel/core@7.28.3)
+ '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.4)
+ '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.28.4)
+ '@babel/plugin-transform-typescript': 7.28.0(@babel/core@7.28.4)
transitivePeerDependencies:
- supports-color
'@babel/template@7.25.7':
dependencies:
- '@babel/code-frame': 7.25.7
- '@babel/parser': 7.25.8
- '@babel/types': 7.25.8
+ '@babel/code-frame': 7.27.1
+ '@babel/parser': 7.28.4
+ '@babel/types': 7.28.4
'@babel/template@7.27.2':
dependencies:
'@babel/code-frame': 7.27.1
- '@babel/parser': 7.28.3
- '@babel/types': 7.28.2
+ '@babel/parser': 7.28.4
+ '@babel/types': 7.28.4
'@babel/traverse@7.25.7':
dependencies:
- '@babel/code-frame': 7.25.7
+ '@babel/code-frame': 7.27.1
'@babel/generator': 7.25.7
- '@babel/parser': 7.25.8
- '@babel/template': 7.25.7
- '@babel/types': 7.25.8
- debug: 4.3.7
+ '@babel/parser': 7.28.4
+ '@babel/template': 7.27.2
+ '@babel/types': 7.28.4
+ debug: 4.4.3
globals: 11.12.0
transitivePeerDependencies:
- supports-color
- '@babel/traverse@7.28.3':
+ '@babel/traverse@7.28.4':
dependencies:
'@babel/code-frame': 7.27.1
'@babel/generator': 7.28.3
'@babel/helper-globals': 7.28.0
- '@babel/parser': 7.28.3
+ '@babel/parser': 7.28.4
'@babel/template': 7.27.2
- '@babel/types': 7.28.2
- debug: 4.4.1
+ '@babel/types': 7.28.4
+ debug: 4.4.3
transitivePeerDependencies:
- supports-color
@@ -5570,27 +5489,17 @@ snapshots:
'@babel/helper-validator-identifier': 7.25.7
to-fast-properties: 2.0.0
- '@babel/types@7.26.9':
- dependencies:
- '@babel/helper-string-parser': 7.25.9
- '@babel/helper-validator-identifier': 7.25.9
-
'@babel/types@7.27.6':
dependencies:
'@babel/helper-string-parser': 7.27.1
'@babel/helper-validator-identifier': 7.27.1
- '@babel/types@7.28.2':
+ '@babel/types@7.28.4':
dependencies:
'@babel/helper-string-parser': 7.27.1
'@babel/helper-validator-identifier': 7.27.1
- '@bprogress/core@1.1.18': {}
-
- '@clack/core@0.3.4':
- dependencies:
- picocolors: 1.1.1
- sisteransi: 1.0.5
+ '@bprogress/core@1.3.4': {}
'@cloudflare/kv-asset-handler@0.4.0':
dependencies:
@@ -5603,7 +5512,7 @@ snapshots:
'@floating-ui/dom': 1.6.11
solid-js: 1.9.9
- '@ctrl/tinycolor@4.1.0': {}
+ '@ctrl/tinycolor@4.2.0': {}
'@dabh/diagnostics@2.0.3':
dependencies:
@@ -5623,30 +5532,7 @@ snapshots:
gonzales-pe: 4.3.0
node-source-walk: 7.0.1
- '@docsearch/css@3.8.0': {}
-
- '@docsearch/js@3.8.0(@algolia/client-search@5.14.2)(react@18.3.1)(search-insights@2.17.3)':
- dependencies:
- '@docsearch/react': 3.8.0(@algolia/client-search@5.14.2)(react@18.3.1)(search-insights@2.17.3)
- preact: 10.24.3
- transitivePeerDependencies:
- - '@algolia/client-search'
- - '@types/react'
- - react
- - react-dom
- - search-insights
-
- '@docsearch/react@3.8.0(@algolia/client-search@5.14.2)(react@18.3.1)(search-insights@2.17.3)':
- dependencies:
- '@algolia/autocomplete-core': 1.17.7(@algolia/client-search@5.14.2)(algoliasearch@5.14.2)(search-insights@2.17.3)
- '@algolia/autocomplete-preset-algolia': 1.17.7(@algolia/client-search@5.14.2)(algoliasearch@5.14.2)
- '@docsearch/css': 3.8.0
- algoliasearch: 5.14.2
- optionalDependencies:
- react: 18.3.1
- search-insights: 2.17.3
- transitivePeerDependencies:
- - '@algolia/client-search'
+ '@docsearch/css@3.9.0': {}
'@esbuild/aix-ppc64@0.25.5':
optional: true
@@ -5723,63 +5609,77 @@ snapshots:
'@esbuild/win32-x64@0.25.5':
optional: true
- '@eslint-community/eslint-utils@4.7.0(eslint@9.33.0(jiti@2.4.2))':
+ '@eslint-community/eslint-utils@4.9.0(eslint@9.39.1(jiti@2.4.2))':
dependencies:
- eslint: 9.33.0(jiti@2.4.2)
+ eslint: 9.39.1(jiti@2.4.2)
eslint-visitor-keys: 3.4.3
- '@eslint-community/regexpp@4.11.1': {}
-
'@eslint-community/regexpp@4.12.1': {}
- '@eslint/config-array@0.21.0':
+ '@eslint-community/regexpp@4.12.2': {}
+
+ '@eslint/config-array@0.21.1':
dependencies:
- '@eslint/object-schema': 2.1.6
- debug: 4.4.1
+ '@eslint/object-schema': 2.1.7
+ debug: 4.4.3
minimatch: 3.1.2
transitivePeerDependencies:
- supports-color
- '@eslint/config-helpers@0.3.1': {}
+ '@eslint/config-helpers@0.4.2':
+ dependencies:
+ '@eslint/core': 0.17.0
- '@eslint/core@0.15.2':
+ '@eslint/core@0.17.0':
dependencies:
'@types/json-schema': 7.0.15
'@eslint/eslintrc@3.3.1':
dependencies:
ajv: 6.12.6
- debug: 4.4.1
+ debug: 4.4.3
espree: 10.4.0
globals: 14.0.0
ignore: 5.3.2
- import-fresh: 3.3.0
+ import-fresh: 3.3.1
js-yaml: 4.1.0
minimatch: 3.1.2
strip-json-comments: 3.1.1
transitivePeerDependencies:
- supports-color
- '@eslint/js@9.33.0': {}
+ '@eslint/js@9.39.1': {}
- '@eslint/object-schema@2.1.6': {}
+ '@eslint/object-schema@2.1.7': {}
- '@eslint/plugin-kit@0.3.5':
+ '@eslint/plugin-kit@0.4.1':
dependencies:
- '@eslint/core': 0.15.2
+ '@eslint/core': 0.17.0
levn: 0.4.1
'@expressive-code/core@0.40.2':
dependencies:
- '@ctrl/tinycolor': 4.1.0
- hast-util-select: 6.0.3
+ '@ctrl/tinycolor': 4.2.0
+ hast-util-select: 6.0.4
+ hast-util-to-html: 9.0.5
+ hast-util-to-text: 4.0.2
+ hastscript: 9.0.1
+ postcss: 8.5.6
+ postcss-nested: 6.2.0(postcss@8.5.6)
+ unist-util-visit: 5.0.0
+ unist-util-visit-parents: 6.0.2
+
+ '@expressive-code/core@0.41.3':
+ dependencies:
+ '@ctrl/tinycolor': 4.2.0
+ hast-util-select: 6.0.4
hast-util-to-html: 9.0.5
hast-util-to-text: 4.0.2
- hastscript: 9.0.0
+ hastscript: 9.0.1
postcss: 8.5.6
postcss-nested: 6.2.0(postcss@8.5.6)
unist-util-visit: 5.0.0
- unist-util-visit-parents: 6.0.1
+ unist-util-visit-parents: 6.0.2
'@expressive-code/plugin-collapsible-sections@0.40.2':
dependencies:
@@ -5789,6 +5689,10 @@ snapshots:
dependencies:
'@expressive-code/core': 0.40.2
+ '@expressive-code/plugin-frames@0.41.3':
+ dependencies:
+ '@expressive-code/core': 0.41.3
+
'@expressive-code/plugin-line-numbers@0.40.2':
dependencies:
'@expressive-code/core': 0.40.2
@@ -5798,10 +5702,19 @@ snapshots:
'@expressive-code/core': 0.40.2
shiki: 1.29.2
+ '@expressive-code/plugin-shiki@0.41.3':
+ dependencies:
+ '@expressive-code/core': 0.41.3
+ shiki: 3.14.0
+
'@expressive-code/plugin-text-markers@0.40.2':
dependencies:
'@expressive-code/core': 0.40.2
+ '@expressive-code/plugin-text-markers@0.41.3':
+ dependencies:
+ '@expressive-code/core': 0.41.3
+
'@fastify/busboy@3.1.1': {}
'@floating-ui/core@1.6.8':
@@ -5815,37 +5728,37 @@ snapshots:
'@floating-ui/utils@0.2.8': {}
- '@fontsource-variable/inter@5.1.1': {}
+ '@fontsource-variable/inter@5.2.8': {}
- '@fontsource-variable/jetbrains-mono@5.1.2': {}
+ '@fontsource-variable/jetbrains-mono@5.2.8': {}
- '@fontsource-variable/lexend@5.1.2': {}
+ '@fontsource-variable/lexend@5.2.11': {}
'@humanfs/core@0.19.1': {}
- '@humanfs/node@0.16.6':
+ '@humanfs/node@0.16.7':
dependencies:
'@humanfs/core': 0.19.1
- '@humanwhocodes/retry': 0.3.1
+ '@humanwhocodes/retry': 0.4.3
'@humanwhocodes/module-importer@1.0.1': {}
- '@humanwhocodes/retry@0.3.1': {}
-
'@humanwhocodes/retry@0.4.3': {}
+ '@iarna/toml@2.2.5': {}
+
'@iconify/types@2.0.0': {}
- '@iconify/utils@2.3.0':
+ '@iconify/utils@3.0.2':
dependencies:
- '@antfu/install-pkg': 1.0.0
- '@antfu/utils': 8.1.1
+ '@antfu/install-pkg': 1.1.0
+ '@antfu/utils': 9.3.0
'@iconify/types': 2.0.0
- debug: 4.4.1
+ debug: 4.4.3
globals: 15.15.0
kolorist: 1.8.0
- local-pkg: 1.1.1
- mlly: 1.7.4
+ local-pkg: 1.1.2
+ mlly: 1.8.0
transitivePeerDependencies:
- supports-color
@@ -5859,6 +5772,12 @@ snapshots:
'@ioredis/commands@1.2.0': {}
+ '@isaacs/balanced-match@4.0.1': {}
+
+ '@isaacs/brace-expansion@5.0.0':
+ dependencies:
+ '@isaacs/balanced-match': 4.0.1
+
'@isaacs/cliui@8.0.2':
dependencies:
string-width: 5.1.2
@@ -5872,26 +5791,21 @@ snapshots:
dependencies:
minipass: 7.1.2
- '@jest/schemas@29.6.3':
- dependencies:
- '@sinclair/typebox': 0.27.8
-
'@jridgewell/gen-mapping@0.3.13':
dependencies:
'@jridgewell/sourcemap-codec': 1.5.5
- '@jridgewell/trace-mapping': 0.3.30
+ '@jridgewell/trace-mapping': 0.3.31
'@jridgewell/gen-mapping@0.3.5':
dependencies:
'@jridgewell/set-array': 1.2.1
- '@jridgewell/sourcemap-codec': 1.5.0
+ '@jridgewell/sourcemap-codec': 1.5.5
'@jridgewell/trace-mapping': 0.3.25
- '@jridgewell/gen-mapping@0.3.8':
+ '@jridgewell/remapping@2.3.5':
dependencies:
- '@jridgewell/set-array': 1.2.1
- '@jridgewell/sourcemap-codec': 1.5.0
- '@jridgewell/trace-mapping': 0.3.25
+ '@jridgewell/gen-mapping': 0.3.13
+ '@jridgewell/trace-mapping': 0.3.31
'@jridgewell/resolve-uri@3.1.2': {}
@@ -5899,19 +5813,17 @@ snapshots:
'@jridgewell/source-map@0.3.6':
dependencies:
- '@jridgewell/gen-mapping': 0.3.8
- '@jridgewell/trace-mapping': 0.3.25
-
- '@jridgewell/sourcemap-codec@1.5.0': {}
+ '@jridgewell/gen-mapping': 0.3.13
+ '@jridgewell/trace-mapping': 0.3.31
'@jridgewell/sourcemap-codec@1.5.5': {}
'@jridgewell/trace-mapping@0.3.25':
dependencies:
'@jridgewell/resolve-uri': 3.1.2
- '@jridgewell/sourcemap-codec': 1.5.0
+ '@jridgewell/sourcemap-codec': 1.5.5
- '@jridgewell/trace-mapping@0.3.30':
+ '@jridgewell/trace-mapping@0.3.31':
dependencies:
'@jridgewell/resolve-uri': 3.1.2
'@jridgewell/sourcemap-codec': 1.5.5
@@ -5928,77 +5840,75 @@ snapshots:
solid-presence: 0.1.8(solid-js@1.9.9)
solid-prevent-scroll: 0.1.10(solid-js@1.9.9)
- '@kobalte/solidbase@0.2.17(@algolia/client-search@5.14.2)(@solidjs/start@1.1.7(solid-js@1.9.9)(vinxi@0.5.7(@types/node@24.3.0)(db0@0.3.2)(ioredis@5.6.1)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.0))(vite@6.3.5(@types/node@24.3.0)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.0)))(@vue/compiler-sfc@3.5.16)(acorn@8.15.0)(expressive-code@0.40.2)(react@18.3.1)(search-insights@2.17.3)(solid-js@1.9.9)(vinxi@0.5.7(@types/node@24.3.0)(db0@0.3.2)(ioredis@5.6.1)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.0))(vite@6.3.5(@types/node@24.3.0)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.0))':
+ '@kobalte/solidbase@0.2.19(@solidjs/start@1.2.0(solid-js@1.9.9)(vinxi@0.5.7(@types/node@24.10.0)(db0@0.3.2)(ioredis@5.6.1)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.1))(vite@6.3.5(@types/node@24.10.0)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.1)))(@vue/compiler-sfc@3.5.16)(solid-js@1.9.9)(vinxi@0.5.7(@types/node@24.10.0)(db0@0.3.2)(ioredis@5.6.1)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.1))(vite@6.3.5(@types/node@24.10.0)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.1))':
dependencies:
'@alloc/quick-lru': 5.2.0
- '@bprogress/core': 1.1.18
- '@docsearch/css': 3.8.0
- '@docsearch/js': 3.8.0(@algolia/client-search@5.14.2)(react@18.3.1)(search-insights@2.17.3)
+ '@bprogress/core': 1.3.4
+ '@docsearch/css': 3.9.0
'@expressive-code/core': 0.40.2
'@expressive-code/plugin-collapsible-sections': 0.40.2
'@expressive-code/plugin-frames': 0.40.2
'@expressive-code/plugin-line-numbers': 0.40.2
- '@fontsource-variable/inter': 5.1.1
- '@fontsource-variable/jetbrains-mono': 5.1.2
- '@fontsource-variable/lexend': 5.1.2
+ '@fontsource-variable/inter': 5.2.8
+ '@fontsource-variable/jetbrains-mono': 5.2.8
+ '@fontsource-variable/lexend': 5.2.11
'@kobalte/core': 0.13.11(solid-js@1.9.9)
- '@mdx-js/mdx': 3.1.0(acorn@8.15.0)
- '@solid-primitives/clipboard': 1.5.10(solid-js@1.9.9)
+ '@mdx-js/mdx': 3.1.1
+ '@solid-primitives/clipboard': 1.6.2(solid-js@1.9.9)
'@solid-primitives/context': 0.2.3(solid-js@1.9.9)
'@solid-primitives/event-listener': 2.4.3(solid-js@1.9.9)
- '@solid-primitives/keyboard': 1.2.8(solid-js@1.9.9)
+ '@solid-primitives/keyboard': 1.3.3(solid-js@1.9.9)
'@solid-primitives/media': 2.3.3(solid-js@1.9.9)
'@solid-primitives/platform': 0.1.2(solid-js@1.9.9)
- '@solid-primitives/scroll': 2.0.23(solid-js@1.9.9)
- '@solid-primitives/storage': 4.3.1(solid-js@1.9.9)
+ '@solid-primitives/scroll': 2.1.3(solid-js@1.9.9)
+ '@solid-primitives/storage': 4.3.3(solid-js@1.9.9)
'@solidjs/meta': 0.29.4(solid-js@1.9.9)
'@solidjs/router': 0.15.3(solid-js@1.9.9)
- '@solidjs/start': 1.1.7(solid-js@1.9.9)(vinxi@0.5.7(@types/node@24.3.0)(db0@0.3.2)(ioredis@5.6.1)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.0))(vite@6.3.5(@types/node@24.3.0)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.0))
- cross-spawn: 7.0.3
+ '@solidjs/start': 1.2.0(solid-js@1.9.9)(vinxi@0.5.7(@types/node@24.10.0)(db0@0.3.2)(ioredis@5.6.1)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.1))(vite@6.3.5(@types/node@24.10.0)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.1))
+ cross-spawn: 7.0.6
+ diff: 8.0.2
esast-util-from-js: 2.0.1
- estree-util-value-to-estree: 3.2.1
- expressive-code-twoslash: 0.4.0(@expressive-code/core@0.40.2)(expressive-code@0.40.2)(typescript@5.9.2)
+ estree-util-value-to-estree: 3.4.1
+ expressive-code: 0.41.3
+ expressive-code-twoslash: 0.4.0(@expressive-code/core@0.40.2)(expressive-code@0.41.3)(typescript@5.9.3)
gray-matter: 4.0.3
- hastscript: 9.0.0
- mdast-util-find-and-replace: 3.0.1
+ hastscript: 9.0.1
+ magic-string: 0.30.19
+ mdast-util-find-and-replace: 3.0.2
mdast-util-mdx-jsx: 3.2.0
mdast-util-to-string: 4.0.0
mdast-util-toc: 7.1.0
+ parse-numeric-range: 1.3.0
+ prettier: 4.0.0-alpha.10
rehype-autolink-headings: 7.1.0
rehype-expressive-code: 0.40.2
rehype-raw: 7.0.0
rehype-slug: 6.0.0
- remark-directive: 3.0.0
+ remark-directive: 3.0.1
remark-frontmatter: 5.0.0
- remark-gfm: 4.0.0
+ remark-gfm: 4.0.1
solid-js: 1.9.9
- solid-mdx: 0.0.7(solid-js@1.9.9)(vite@6.3.5(@types/node@24.3.0)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.0))
+ solid-mdx: 0.0.7(solid-js@1.9.9)(vite@6.3.5(@types/node@24.10.0)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.1))
+ source-map: 0.7.6
toml: 3.0.0
- typescript: 5.9.2
+ typescript: 5.9.3
unified: 11.0.5
unist: 0.0.1
unist-builder: 4.0.0
unist-util-mdx-define: 1.1.2
unist-util-visit: 5.0.0
- unplugin-auto-import: 19.1.1
- unplugin-icons: 22.1.0(@vue/compiler-sfc@3.5.16)
- vinxi: 0.5.7(@types/node@24.3.0)(db0@0.3.2)(ioredis@5.6.1)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.0)
- vite: 6.3.5(@types/node@24.3.0)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.0)
- yaml: 2.8.0
+ unplugin-auto-import: 19.3.0
+ unplugin-icons: 22.5.0(@vue/compiler-sfc@3.5.16)
+ vinxi: 0.5.7(@types/node@24.10.0)(db0@0.3.2)(ioredis@5.6.1)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.1)
+ vite: 6.3.5(@types/node@24.10.0)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.1)
+ yaml: 2.8.1
transitivePeerDependencies:
- - '@algolia/client-search'
- '@nuxt/kit'
- '@svgr/core'
- '@svgx/core'
- '@tauri-apps/plugin-store'
- - '@types/react'
- '@vue/compiler-sfc'
- '@vueuse/core'
- - acorn
- - expressive-code
- - react
- - react-dom
- - search-insights
- solid-start
- supports-color
- svelte
@@ -6020,29 +5930,6 @@ snapshots:
'@solid-primitives/utils': 6.2.3(solid-js@1.9.9)
solid-js: 1.9.9
- '@kwsites/file-exists@1.1.1':
- dependencies:
- debug: 4.4.1
- transitivePeerDependencies:
- - supports-color
-
- '@kwsites/promise-deferred@1.1.1': {}
-
- '@lunariajs/core@0.1.1':
- dependencies:
- '@clack/core': 0.3.4
- fast-glob: 3.3.3
- get-port: 7.1.0
- jiti: 1.21.6
- micromatch: 4.0.8
- path-to-regexp: 6.3.0
- picocolors: 1.1.1
- simple-git: 3.27.0
- ultramatter: 0.0.4
- zod: 3.25.76
- transitivePeerDependencies:
- - supports-color
-
'@mapbox/node-pre-gyp@2.0.0':
dependencies:
consola: 3.4.2
@@ -6050,40 +5937,40 @@ snapshots:
https-proxy-agent: 7.0.6
node-fetch: 2.7.0
nopt: 8.1.0
- semver: 7.7.2
+ semver: 7.7.3
tar: 7.4.3
transitivePeerDependencies:
- encoding
- supports-color
- '@mdx-js/mdx@3.1.0(acorn@8.15.0)':
+ '@mdx-js/mdx@3.1.1':
dependencies:
'@types/estree': 1.0.8
'@types/estree-jsx': 1.0.5
'@types/hast': 3.0.4
'@types/mdx': 2.0.13
+ acorn: 8.15.0
collapse-white-space: 2.1.0
devlop: 1.1.0
estree-util-is-identifier-name: 3.0.0
estree-util-scope: 1.0.0
estree-walker: 3.0.3
- hast-util-to-jsx-runtime: 2.3.2
+ hast-util-to-jsx-runtime: 2.3.6
markdown-extensions: 2.0.0
recma-build-jsx: 1.0.0
- recma-jsx: 1.0.0(acorn@8.15.0)
+ recma-jsx: 1.0.1(acorn@8.15.0)
recma-stringify: 1.0.0
rehype-recma: 1.0.0
- remark-mdx: 3.1.0
+ remark-mdx: 3.1.1
remark-parse: 11.0.0
- remark-rehype: 11.1.1
- source-map: 0.7.4
+ remark-rehype: 11.1.2
+ source-map: 0.7.6
unified: 11.0.5
unist-util-position-from-estree: 2.0.0
unist-util-stringify-position: 4.0.0
unist-util-visit: 5.0.0
vfile: 6.0.3
transitivePeerDependencies:
- - acorn
- supports-color
'@netlify/binary-info@1.0.0': {}
@@ -6136,7 +6023,7 @@ snapshots:
'@netlify/zip-it-and-ship-it@12.1.4(rollup@4.43.0)':
dependencies:
- '@babel/parser': 7.27.5
+ '@babel/parser': 7.28.4
'@babel/types': 7.27.6
'@netlify/binary-info': 1.0.0
'@netlify/serverless-functions-api': 2.1.1
@@ -6162,7 +6049,7 @@ snapshots:
precinct: 12.2.0
require-package-name: 2.0.1
resolve: 2.0.0-next.5
- semver: 7.7.2
+ semver: 7.7.3
tmp-promise: 3.0.3
toml: 3.0.0
unixify: 1.0.0
@@ -6342,10 +6229,37 @@ snapshots:
dependencies:
'@poppinss/colors': 4.1.4
'@sindresorhus/is': 7.0.2
- supports-color: 10.0.0
+ supports-color: 10.2.2
'@poppinss/exception@1.2.1': {}
+ '@prettier/cli@0.6.0(prettier@4.0.0-alpha.10)':
+ dependencies:
+ '@iarna/toml': 2.2.5
+ atomically: 2.0.3
+ fast-ignore: 1.1.3
+ find-up-json: 2.0.5
+ function-once: 3.0.1
+ import-meta-resolve: 4.2.0
+ is-binary-path: 2.1.0
+ js-yaml: 4.1.0
+ json-sorted-stringify: 1.0.2
+ json5: 2.2.3
+ kasi: 1.1.1
+ lomemo: 1.0.1
+ pioppo: 1.2.1
+ prettier: 4.0.0-alpha.10
+ promise-resolve-timeout: 2.0.1
+ specialist: 1.4.5
+ tiny-editorconfig: 1.0.1
+ tiny-jsonc: 1.0.2
+ tiny-readdir-glob: 1.23.2
+ tiny-spinner: 2.0.5
+ worktank: 2.7.3
+ zeptomatch: 2.1.0
+ zeptomatch-escape: 1.0.1
+ zeptomatch-is-static: 1.0.1
+
'@rollup/plugin-alias@5.1.1(rollup@4.43.0)':
optionalDependencies:
rollup: 4.43.0
@@ -6355,10 +6269,10 @@ snapshots:
'@rollup/pluginutils': 5.1.4(rollup@4.43.0)
commondir: 1.0.1
estree-walker: 2.0.2
- fdir: 6.4.6(picomatch@4.0.2)
+ fdir: 6.5.0(picomatch@4.0.3)
is-reference: 1.2.1
- magic-string: 0.30.17
- picomatch: 4.0.2
+ magic-string: 0.30.19
+ picomatch: 4.0.3
optionalDependencies:
rollup: 4.43.0
@@ -6366,7 +6280,7 @@ snapshots:
dependencies:
'@rollup/pluginutils': 5.1.4(rollup@4.43.0)
estree-walker: 2.0.2
- magic-string: 0.30.17
+ magic-string: 0.30.19
optionalDependencies:
rollup: 4.43.0
@@ -6389,7 +6303,7 @@ snapshots:
'@rollup/plugin-replace@6.0.2(rollup@4.43.0)':
dependencies:
'@rollup/pluginutils': 5.1.4(rollup@4.43.0)
- magic-string: 0.30.17
+ magic-string: 0.30.19
optionalDependencies:
rollup: 4.43.0
@@ -6405,7 +6319,7 @@ snapshots:
dependencies:
'@types/estree': 1.0.8
estree-walker: 2.0.2
- picomatch: 4.0.2
+ picomatch: 4.0.3
optionalDependencies:
rollup: 4.43.0
@@ -6478,9 +6392,9 @@ snapshots:
'@types/hast': 3.0.4
hast-util-to-html: 9.0.5
- '@shikijs/core@3.11.0':
+ '@shikijs/core@3.14.0':
dependencies:
- '@shikijs/types': 3.11.0
+ '@shikijs/types': 3.14.0
'@shikijs/vscode-textmate': 10.0.2
'@types/hast': 3.0.4
hast-util-to-html: 9.0.5
@@ -6491,9 +6405,9 @@ snapshots:
'@shikijs/vscode-textmate': 10.0.2
oniguruma-to-es: 2.3.0
- '@shikijs/engine-javascript@3.11.0':
+ '@shikijs/engine-javascript@3.14.0':
dependencies:
- '@shikijs/types': 3.11.0
+ '@shikijs/types': 3.14.0
'@shikijs/vscode-textmate': 10.0.2
oniguruma-to-es: 4.3.3
@@ -6502,48 +6416,46 @@ snapshots:
'@shikijs/types': 1.29.2
'@shikijs/vscode-textmate': 10.0.2
- '@shikijs/engine-oniguruma@3.11.0':
+ '@shikijs/engine-oniguruma@3.14.0':
dependencies:
- '@shikijs/types': 3.11.0
+ '@shikijs/types': 3.14.0
'@shikijs/vscode-textmate': 10.0.2
'@shikijs/langs@1.29.2':
dependencies:
'@shikijs/types': 1.29.2
- '@shikijs/langs@3.11.0':
+ '@shikijs/langs@3.14.0':
dependencies:
- '@shikijs/types': 3.11.0
+ '@shikijs/types': 3.14.0
'@shikijs/themes@1.29.2':
dependencies:
'@shikijs/types': 1.29.2
- '@shikijs/themes@3.11.0':
+ '@shikijs/themes@3.14.0':
dependencies:
- '@shikijs/types': 3.11.0
+ '@shikijs/types': 3.14.0
'@shikijs/types@1.29.2':
dependencies:
'@shikijs/vscode-textmate': 10.0.2
'@types/hast': 3.0.4
- '@shikijs/types@3.11.0':
+ '@shikijs/types@3.14.0':
dependencies:
'@shikijs/vscode-textmate': 10.0.2
'@types/hast': 3.0.4
'@shikijs/vscode-textmate@10.0.2': {}
- '@sinclair/typebox@0.27.8': {}
-
'@sindresorhus/is@7.0.2': {}
'@sindresorhus/merge-streams@2.3.0': {}
- '@solid-primitives/clipboard@1.5.10(solid-js@1.9.9)':
+ '@solid-primitives/clipboard@1.6.2(solid-js@1.9.9)':
dependencies:
- '@solid-primitives/utils': 6.3.1(solid-js@1.9.9)
+ '@solid-primitives/utils': 6.3.2(solid-js@1.9.9)
solid-js: 1.9.9
'@solid-primitives/context@0.2.3(solid-js@1.9.9)':
@@ -6555,11 +6467,11 @@ snapshots:
'@solid-primitives/utils': 6.3.2(solid-js@1.9.9)
solid-js: 1.9.9
- '@solid-primitives/keyboard@1.2.8(solid-js@1.9.9)':
+ '@solid-primitives/keyboard@1.3.3(solid-js@1.9.9)':
dependencies:
'@solid-primitives/event-listener': 2.4.3(solid-js@1.9.9)
- '@solid-primitives/rootless': 1.5.1(solid-js@1.9.9)
- '@solid-primitives/utils': 6.3.1(solid-js@1.9.9)
+ '@solid-primitives/rootless': 1.5.2(solid-js@1.9.9)
+ '@solid-primitives/utils': 6.3.2(solid-js@1.9.9)
solid-js: 1.9.9
'@solid-primitives/keyed@1.2.2(solid-js@1.9.9)':
@@ -6614,21 +6526,16 @@ snapshots:
'@solid-primitives/utils': 6.2.3(solid-js@1.9.9)
solid-js: 1.9.9
- '@solid-primitives/rootless@1.5.1(solid-js@1.9.9)':
- dependencies:
- '@solid-primitives/utils': 6.3.1(solid-js@1.9.9)
- solid-js: 1.9.9
-
'@solid-primitives/rootless@1.5.2(solid-js@1.9.9)':
dependencies:
'@solid-primitives/utils': 6.3.2(solid-js@1.9.9)
solid-js: 1.9.9
- '@solid-primitives/scroll@2.0.23(solid-js@1.9.9)':
+ '@solid-primitives/scroll@2.1.3(solid-js@1.9.9)':
dependencies:
'@solid-primitives/event-listener': 2.4.3(solid-js@1.9.9)
- '@solid-primitives/rootless': 1.5.1(solid-js@1.9.9)
- '@solid-primitives/static-store': 0.0.8(solid-js@1.9.9)
+ '@solid-primitives/rootless': 1.5.2(solid-js@1.9.9)
+ '@solid-primitives/static-store': 0.1.2(solid-js@1.9.9)
solid-js: 1.9.9
'@solid-primitives/static-store@0.0.8(solid-js@1.9.9)':
@@ -6641,24 +6548,20 @@ snapshots:
'@solid-primitives/utils': 6.3.2(solid-js@1.9.9)
solid-js: 1.9.9
- '@solid-primitives/storage@4.3.1(solid-js@1.9.9)':
+ '@solid-primitives/storage@4.3.3(solid-js@1.9.9)':
dependencies:
- '@solid-primitives/utils': 6.3.1(solid-js@1.9.9)
+ '@solid-primitives/utils': 6.3.2(solid-js@1.9.9)
solid-js: 1.9.9
'@solid-primitives/trigger@1.1.0(solid-js@1.9.9)':
dependencies:
- '@solid-primitives/utils': 6.2.3(solid-js@1.9.9)
+ '@solid-primitives/utils': 6.3.2(solid-js@1.9.9)
solid-js: 1.9.9
'@solid-primitives/utils@6.2.3(solid-js@1.9.9)':
dependencies:
solid-js: 1.9.9
- '@solid-primitives/utils@6.3.1(solid-js@1.9.9)':
- dependencies:
- solid-js: 1.9.9
-
'@solid-primitives/utils@6.3.2(solid-js@1.9.9)':
dependencies:
solid-js: 1.9.9
@@ -6671,23 +6574,24 @@ snapshots:
dependencies:
solid-js: 1.9.9
- '@solidjs/start@1.1.7(solid-js@1.9.9)(vinxi@0.5.7(@types/node@24.3.0)(db0@0.3.2)(ioredis@5.6.1)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.0))(vite@6.3.5(@types/node@24.3.0)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.0))':
+ '@solidjs/start@1.2.0(solid-js@1.9.9)(vinxi@0.5.7(@types/node@24.10.0)(db0@0.3.2)(ioredis@5.6.1)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.1))(vite@6.3.5(@types/node@24.10.0)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.1))':
dependencies:
- '@tanstack/server-functions-plugin': 1.121.21(vite@6.3.5(@types/node@24.3.0)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.0))
- '@vinxi/plugin-directives': 0.5.0(vinxi@0.5.7(@types/node@24.3.0)(db0@0.3.2)(ioredis@5.6.1)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.0))
- '@vinxi/server-components': 0.5.0(vinxi@0.5.7(@types/node@24.3.0)(db0@0.3.2)(ioredis@5.6.1)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.0))
+ '@tanstack/server-functions-plugin': 1.121.21(vite@6.3.5(@types/node@24.10.0)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.1))
+ '@vinxi/plugin-directives': 0.5.1(vinxi@0.5.7(@types/node@24.10.0)(db0@0.3.2)(ioredis@5.6.1)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.1))
+ '@vinxi/server-components': 0.5.1(vinxi@0.5.7(@types/node@24.10.0)(db0@0.3.2)(ioredis@5.6.1)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.1))
+ cookie-es: 2.0.0
defu: 6.1.4
error-stack-parser: 2.1.4
- html-to-image: 1.11.11
+ html-to-image: 1.11.13
radix3: 1.1.2
- seroval: 1.1.1
- seroval-plugins: 1.1.1(seroval@1.1.1)
+ seroval: 1.3.2
+ seroval-plugins: 1.3.3(seroval@1.3.2)
shiki: 1.29.2
source-map-js: 1.2.1
terracotta: 1.0.6(solid-js@1.9.9)
- tinyglobby: 0.2.12
- vinxi: 0.5.7(@types/node@24.3.0)(db0@0.3.2)(ioredis@5.6.1)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.0)
- vite-plugin-solid: 2.11.2(solid-js@1.9.9)(vite@6.3.5(@types/node@24.3.0)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.0))
+ tinyglobby: 0.2.15
+ vinxi: 0.5.7(@types/node@24.10.0)(db0@0.3.2)(ioredis@5.6.1)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.1)
+ vite-plugin-solid: 2.11.8(solid-js@1.9.9)(vite@6.3.5(@types/node@24.10.0)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.1))
transitivePeerDependencies:
- '@testing-library/jest-dom'
- solid-js
@@ -6698,93 +6602,84 @@ snapshots:
'@swc/helpers@0.5.13':
dependencies:
- tslib: 2.8.0
+ tslib: 2.8.1
- '@tailwindcss/typography@0.5.16(tailwindcss@3.4.17)':
+ '@tailwindcss/typography@0.5.19(tailwindcss@3.4.17)':
dependencies:
- lodash.castarray: 4.4.0
- lodash.isplainobject: 4.0.6
- lodash.merge: 4.6.2
postcss-selector-parser: 6.0.10
tailwindcss: 3.4.17
- '@tanstack/directive-functions-plugin@1.121.21(vite@6.3.5(@types/node@24.3.0)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.0))':
+ '@tanstack/directive-functions-plugin@1.121.21(vite@6.3.5(@types/node@24.10.0)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.1))':
dependencies:
'@babel/code-frame': 7.26.2
- '@babel/core': 7.28.3
- '@babel/traverse': 7.28.3
- '@babel/types': 7.28.2
+ '@babel/core': 7.28.4
+ '@babel/traverse': 7.28.4
+ '@babel/types': 7.28.4
'@tanstack/router-utils': 1.131.2
babel-dead-code-elimination: 1.0.10
tiny-invariant: 1.3.3
- vite: 6.3.5(@types/node@24.3.0)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.0)
+ vite: 6.3.5(@types/node@24.10.0)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.1)
transitivePeerDependencies:
- supports-color
'@tanstack/router-utils@1.131.2':
dependencies:
- '@babel/core': 7.28.3
+ '@babel/core': 7.28.4
'@babel/generator': 7.28.3
- '@babel/parser': 7.28.3
- '@babel/preset-typescript': 7.27.1(@babel/core@7.28.3)
+ '@babel/parser': 7.28.4
+ '@babel/preset-typescript': 7.27.1(@babel/core@7.28.4)
ansis: 4.1.0
diff: 8.0.2
transitivePeerDependencies:
- supports-color
- '@tanstack/server-functions-plugin@1.121.21(vite@6.3.5(@types/node@24.3.0)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.0))':
+ '@tanstack/server-functions-plugin@1.121.21(vite@6.3.5(@types/node@24.10.0)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.1))':
dependencies:
'@babel/code-frame': 7.26.2
- '@babel/core': 7.28.3
- '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.3)
- '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.3)
+ '@babel/core': 7.28.4
+ '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.4)
+ '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.4)
'@babel/template': 7.27.2
- '@babel/traverse': 7.28.3
- '@babel/types': 7.28.2
- '@tanstack/directive-functions-plugin': 1.121.21(vite@6.3.5(@types/node@24.3.0)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.0))
+ '@babel/traverse': 7.28.4
+ '@babel/types': 7.28.4
+ '@tanstack/directive-functions-plugin': 1.121.21(vite@6.3.5(@types/node@24.10.0)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.1))
babel-dead-code-elimination: 1.0.10
tiny-invariant: 1.3.3
transitivePeerDependencies:
- supports-color
- vite
- '@types/acorn@4.0.6':
- dependencies:
- '@types/estree': 1.0.8
-
'@types/babel__core@7.20.5':
dependencies:
- '@babel/parser': 7.25.8
- '@babel/types': 7.25.8
- '@types/babel__generator': 7.6.8
+ '@babel/parser': 7.28.4
+ '@babel/types': 7.28.4
+ '@types/babel__generator': 7.27.0
'@types/babel__template': 7.4.4
- '@types/babel__traverse': 7.20.6
+ '@types/babel__traverse': 7.28.0
- '@types/babel__generator@7.6.8':
+ '@types/babel__generator@7.27.0':
dependencies:
- '@babel/types': 7.25.8
+ '@babel/types': 7.28.4
'@types/babel__template@7.4.4':
dependencies:
- '@babel/parser': 7.25.8
- '@babel/types': 7.26.9
+ '@babel/parser': 7.28.4
+ '@babel/types': 7.28.4
- '@types/babel__traverse@7.20.6':
+ '@types/babel__traverse@7.28.0':
dependencies:
- '@babel/types': 7.26.9
+ '@babel/types': 7.28.4
'@types/braces@3.0.4': {}
'@types/debug@4.1.12':
dependencies:
- '@types/ms': 0.7.34
+ '@types/ms': 2.1.0
'@types/estree-jsx@1.0.5':
dependencies:
'@types/estree': 1.0.8
- '@types/estree@1.0.6': {}
-
'@types/estree@1.0.7': {}
'@types/estree@1.0.8': {}
@@ -6805,13 +6700,13 @@ snapshots:
dependencies:
'@types/braces': 3.0.4
- '@types/ms@0.7.34': {}
+ '@types/ms@2.1.0': {}
'@types/node@17.0.45': {}
- '@types/node@24.3.0':
+ '@types/node@24.10.0':
dependencies:
- undici-types: 7.10.0
+ undici-types: 7.16.0
'@types/normalize-package-data@2.4.4': {}
@@ -6819,7 +6714,7 @@ snapshots:
'@types/sax@1.2.7':
dependencies:
- '@types/node': 24.3.0
+ '@types/node': 24.10.0
'@types/triple-beam@1.3.5': {}
@@ -6831,53 +6726,79 @@ snapshots:
'@types/yauzl@2.10.3':
dependencies:
- '@types/node': 24.3.0
+ '@types/node': 24.10.0
optional: true
- '@typescript-eslint/eslint-plugin@8.40.0(@typescript-eslint/parser@8.40.0(eslint@9.33.0(jiti@2.4.2))(typescript@5.9.2))(eslint@9.33.0(jiti@2.4.2))(typescript@5.9.2)':
+ '@typescript-eslint/eslint-plugin@8.46.1(@typescript-eslint/parser@8.46.2(eslint@9.39.1(jiti@2.4.2))(typescript@5.9.3))(eslint@9.39.1(jiti@2.4.2))(typescript@5.9.3)':
dependencies:
- '@eslint-community/regexpp': 4.11.1
- '@typescript-eslint/parser': 8.40.0(eslint@9.33.0(jiti@2.4.2))(typescript@5.9.2)
- '@typescript-eslint/scope-manager': 8.40.0
- '@typescript-eslint/type-utils': 8.40.0(eslint@9.33.0(jiti@2.4.2))(typescript@5.9.2)
- '@typescript-eslint/utils': 8.40.0(eslint@9.33.0(jiti@2.4.2))(typescript@5.9.2)
- '@typescript-eslint/visitor-keys': 8.40.0
- eslint: 9.33.0(jiti@2.4.2)
+ '@eslint-community/regexpp': 4.12.1
+ '@typescript-eslint/parser': 8.46.2(eslint@9.39.1(jiti@2.4.2))(typescript@5.9.3)
+ '@typescript-eslint/scope-manager': 8.46.1
+ '@typescript-eslint/type-utils': 8.46.1(eslint@9.39.1(jiti@2.4.2))(typescript@5.9.3)
+ '@typescript-eslint/utils': 8.46.1(eslint@9.39.1(jiti@2.4.2))(typescript@5.9.3)
+ '@typescript-eslint/visitor-keys': 8.46.1
+ eslint: 9.39.1(jiti@2.4.2)
graphemer: 1.4.0
ignore: 7.0.5
natural-compare: 1.4.0
- ts-api-utils: 2.1.0(typescript@5.9.2)
- typescript: 5.9.2
+ ts-api-utils: 2.1.0(typescript@5.9.3)
+ typescript: 5.9.3
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/parser@8.40.0(eslint@9.33.0(jiti@2.4.2))(typescript@5.9.2)':
+ '@typescript-eslint/eslint-plugin@8.46.2(@typescript-eslint/parser@8.46.2(eslint@9.39.1(jiti@2.4.2))(typescript@5.9.3))(eslint@9.39.1(jiti@2.4.2))(typescript@5.9.3)':
dependencies:
- '@typescript-eslint/scope-manager': 8.40.0
- '@typescript-eslint/types': 8.40.0
- '@typescript-eslint/typescript-estree': 8.40.0(typescript@5.9.2)
- '@typescript-eslint/visitor-keys': 8.40.0
- debug: 4.3.7
- eslint: 9.33.0(jiti@2.4.2)
- typescript: 5.9.2
+ '@eslint-community/regexpp': 4.12.2
+ '@typescript-eslint/parser': 8.46.2(eslint@9.39.1(jiti@2.4.2))(typescript@5.9.3)
+ '@typescript-eslint/scope-manager': 8.46.2
+ '@typescript-eslint/type-utils': 8.46.2(eslint@9.39.1(jiti@2.4.2))(typescript@5.9.3)
+ '@typescript-eslint/utils': 8.46.2(eslint@9.39.1(jiti@2.4.2))(typescript@5.9.3)
+ '@typescript-eslint/visitor-keys': 8.46.2
+ eslint: 9.39.1(jiti@2.4.2)
+ graphemer: 1.4.0
+ ignore: 7.0.5
+ natural-compare: 1.4.0
+ ts-api-utils: 2.1.0(typescript@5.9.3)
+ typescript: 5.9.3
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/project-service@8.34.0(typescript@5.9.2)':
+ '@typescript-eslint/parser@8.46.2(eslint@9.39.1(jiti@2.4.2))(typescript@5.9.3)':
dependencies:
- '@typescript-eslint/tsconfig-utils': 8.34.0(typescript@5.9.2)
- '@typescript-eslint/types': 8.34.0
- debug: 4.3.7
- typescript: 5.9.2
+ '@typescript-eslint/scope-manager': 8.46.2
+ '@typescript-eslint/types': 8.46.2
+ '@typescript-eslint/typescript-estree': 8.46.2(typescript@5.9.3)
+ '@typescript-eslint/visitor-keys': 8.46.2
+ debug: 4.4.3
+ eslint: 9.39.1(jiti@2.4.2)
+ typescript: 5.9.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@typescript-eslint/project-service@8.34.0(typescript@5.9.3)':
+ dependencies:
+ '@typescript-eslint/tsconfig-utils': 8.46.2(typescript@5.9.3)
+ '@typescript-eslint/types': 8.46.2
+ debug: 4.4.3
+ typescript: 5.9.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@typescript-eslint/project-service@8.46.1(typescript@5.9.3)':
+ dependencies:
+ '@typescript-eslint/tsconfig-utils': 8.46.2(typescript@5.9.3)
+ '@typescript-eslint/types': 8.46.2
+ debug: 4.4.3
+ typescript: 5.9.3
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/project-service@8.40.0(typescript@5.9.2)':
+ '@typescript-eslint/project-service@8.46.2(typescript@5.9.3)':
dependencies:
- '@typescript-eslint/tsconfig-utils': 8.40.0(typescript@5.9.2)
- '@typescript-eslint/types': 8.40.0
- debug: 4.3.7
- typescript: 5.9.2
+ '@typescript-eslint/tsconfig-utils': 8.46.2(typescript@5.9.3)
+ '@typescript-eslint/types': 8.46.2
+ debug: 4.4.3
+ typescript: 5.9.3
transitivePeerDependencies:
- supports-color
@@ -6886,86 +6807,136 @@ snapshots:
'@typescript-eslint/types': 8.34.0
'@typescript-eslint/visitor-keys': 8.34.0
- '@typescript-eslint/scope-manager@8.40.0':
+ '@typescript-eslint/scope-manager@8.46.1':
+ dependencies:
+ '@typescript-eslint/types': 8.46.1
+ '@typescript-eslint/visitor-keys': 8.46.1
+
+ '@typescript-eslint/scope-manager@8.46.2':
+ dependencies:
+ '@typescript-eslint/types': 8.46.2
+ '@typescript-eslint/visitor-keys': 8.46.2
+
+ '@typescript-eslint/tsconfig-utils@8.34.0(typescript@5.9.3)':
+ dependencies:
+ typescript: 5.9.3
+
+ '@typescript-eslint/tsconfig-utils@8.46.1(typescript@5.9.3)':
dependencies:
- '@typescript-eslint/types': 8.40.0
- '@typescript-eslint/visitor-keys': 8.40.0
+ typescript: 5.9.3
- '@typescript-eslint/tsconfig-utils@8.34.0(typescript@5.9.2)':
+ '@typescript-eslint/tsconfig-utils@8.46.2(typescript@5.9.3)':
dependencies:
- typescript: 5.9.2
+ typescript: 5.9.3
- '@typescript-eslint/tsconfig-utils@8.40.0(typescript@5.9.2)':
+ '@typescript-eslint/type-utils@8.46.1(eslint@9.39.1(jiti@2.4.2))(typescript@5.9.3)':
dependencies:
- typescript: 5.9.2
+ '@typescript-eslint/types': 8.46.1
+ '@typescript-eslint/typescript-estree': 8.46.1(typescript@5.9.3)
+ '@typescript-eslint/utils': 8.46.1(eslint@9.39.1(jiti@2.4.2))(typescript@5.9.3)
+ debug: 4.4.3
+ eslint: 9.39.1(jiti@2.4.2)
+ ts-api-utils: 2.1.0(typescript@5.9.3)
+ typescript: 5.9.3
+ transitivePeerDependencies:
+ - supports-color
- '@typescript-eslint/type-utils@8.40.0(eslint@9.33.0(jiti@2.4.2))(typescript@5.9.2)':
+ '@typescript-eslint/type-utils@8.46.2(eslint@9.39.1(jiti@2.4.2))(typescript@5.9.3)':
dependencies:
- '@typescript-eslint/types': 8.40.0
- '@typescript-eslint/typescript-estree': 8.40.0(typescript@5.9.2)
- '@typescript-eslint/utils': 8.40.0(eslint@9.33.0(jiti@2.4.2))(typescript@5.9.2)
- debug: 4.4.1
- eslint: 9.33.0(jiti@2.4.2)
- ts-api-utils: 2.1.0(typescript@5.9.2)
- typescript: 5.9.2
+ '@typescript-eslint/types': 8.46.2
+ '@typescript-eslint/typescript-estree': 8.46.2(typescript@5.9.3)
+ '@typescript-eslint/utils': 8.46.2(eslint@9.39.1(jiti@2.4.2))(typescript@5.9.3)
+ debug: 4.4.3
+ eslint: 9.39.1(jiti@2.4.2)
+ ts-api-utils: 2.1.0(typescript@5.9.3)
+ typescript: 5.9.3
transitivePeerDependencies:
- supports-color
'@typescript-eslint/types@8.34.0': {}
- '@typescript-eslint/types@8.40.0': {}
+ '@typescript-eslint/types@8.46.1': {}
- '@typescript-eslint/typescript-estree@8.34.0(typescript@5.9.2)':
+ '@typescript-eslint/types@8.46.2': {}
+
+ '@typescript-eslint/typescript-estree@8.34.0(typescript@5.9.3)':
dependencies:
- '@typescript-eslint/project-service': 8.34.0(typescript@5.9.2)
- '@typescript-eslint/tsconfig-utils': 8.34.0(typescript@5.9.2)
+ '@typescript-eslint/project-service': 8.34.0(typescript@5.9.3)
+ '@typescript-eslint/tsconfig-utils': 8.34.0(typescript@5.9.3)
'@typescript-eslint/types': 8.34.0
'@typescript-eslint/visitor-keys': 8.34.0
- debug: 4.3.7
+ debug: 4.4.3
fast-glob: 3.3.3
is-glob: 4.0.3
minimatch: 9.0.5
- semver: 7.7.2
- ts-api-utils: 2.1.0(typescript@5.9.2)
- typescript: 5.9.2
+ semver: 7.7.3
+ ts-api-utils: 2.1.0(typescript@5.9.3)
+ typescript: 5.9.3
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/typescript-estree@8.40.0(typescript@5.9.2)':
+ '@typescript-eslint/typescript-estree@8.46.1(typescript@5.9.3)':
dependencies:
- '@typescript-eslint/project-service': 8.40.0(typescript@5.9.2)
- '@typescript-eslint/tsconfig-utils': 8.40.0(typescript@5.9.2)
- '@typescript-eslint/types': 8.40.0
- '@typescript-eslint/visitor-keys': 8.40.0
- debug: 4.3.7
+ '@typescript-eslint/project-service': 8.46.1(typescript@5.9.3)
+ '@typescript-eslint/tsconfig-utils': 8.46.1(typescript@5.9.3)
+ '@typescript-eslint/types': 8.46.1
+ '@typescript-eslint/visitor-keys': 8.46.1
+ debug: 4.4.3
fast-glob: 3.3.3
is-glob: 4.0.3
minimatch: 9.0.5
- semver: 7.7.2
- ts-api-utils: 2.1.0(typescript@5.9.2)
- typescript: 5.9.2
+ semver: 7.7.3
+ ts-api-utils: 2.1.0(typescript@5.9.3)
+ typescript: 5.9.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@typescript-eslint/typescript-estree@8.46.2(typescript@5.9.3)':
+ dependencies:
+ '@typescript-eslint/project-service': 8.46.2(typescript@5.9.3)
+ '@typescript-eslint/tsconfig-utils': 8.46.2(typescript@5.9.3)
+ '@typescript-eslint/types': 8.46.2
+ '@typescript-eslint/visitor-keys': 8.46.2
+ debug: 4.4.3
+ fast-glob: 3.3.3
+ is-glob: 4.0.3
+ minimatch: 9.0.5
+ semver: 7.7.3
+ ts-api-utils: 2.1.0(typescript@5.9.3)
+ typescript: 5.9.3
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/utils@8.34.0(eslint@9.33.0(jiti@2.4.2))(typescript@5.9.2)':
+ '@typescript-eslint/utils@8.34.0(eslint@9.39.1(jiti@2.4.2))(typescript@5.9.3)':
dependencies:
- '@eslint-community/eslint-utils': 4.7.0(eslint@9.33.0(jiti@2.4.2))
+ '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.1(jiti@2.4.2))
'@typescript-eslint/scope-manager': 8.34.0
'@typescript-eslint/types': 8.34.0
- '@typescript-eslint/typescript-estree': 8.34.0(typescript@5.9.2)
- eslint: 9.33.0(jiti@2.4.2)
- typescript: 5.9.2
+ '@typescript-eslint/typescript-estree': 8.34.0(typescript@5.9.3)
+ eslint: 9.39.1(jiti@2.4.2)
+ typescript: 5.9.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@typescript-eslint/utils@8.46.1(eslint@9.39.1(jiti@2.4.2))(typescript@5.9.3)':
+ dependencies:
+ '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.1(jiti@2.4.2))
+ '@typescript-eslint/scope-manager': 8.46.1
+ '@typescript-eslint/types': 8.46.1
+ '@typescript-eslint/typescript-estree': 8.46.1(typescript@5.9.3)
+ eslint: 9.39.1(jiti@2.4.2)
+ typescript: 5.9.3
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/utils@8.40.0(eslint@9.33.0(jiti@2.4.2))(typescript@5.9.2)':
+ '@typescript-eslint/utils@8.46.2(eslint@9.39.1(jiti@2.4.2))(typescript@5.9.3)':
dependencies:
- '@eslint-community/eslint-utils': 4.7.0(eslint@9.33.0(jiti@2.4.2))
- '@typescript-eslint/scope-manager': 8.40.0
- '@typescript-eslint/types': 8.40.0
- '@typescript-eslint/typescript-estree': 8.40.0(typescript@5.9.2)
- eslint: 9.33.0(jiti@2.4.2)
- typescript: 5.9.2
+ '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.1(jiti@2.4.2))
+ '@typescript-eslint/scope-manager': 8.46.2
+ '@typescript-eslint/types': 8.46.2
+ '@typescript-eslint/typescript-estree': 8.46.2(typescript@5.9.3)
+ eslint: 9.39.1(jiti@2.4.2)
+ typescript: 5.9.3
transitivePeerDependencies:
- supports-color
@@ -6974,19 +6945,24 @@ snapshots:
'@typescript-eslint/types': 8.34.0
eslint-visitor-keys: 4.2.1
- '@typescript-eslint/visitor-keys@8.40.0':
+ '@typescript-eslint/visitor-keys@8.46.1':
dependencies:
- '@typescript-eslint/types': 8.40.0
+ '@typescript-eslint/types': 8.46.1
eslint-visitor-keys: 4.2.1
- '@typescript/vfs@1.6.1(typescript@5.9.2)':
+ '@typescript-eslint/visitor-keys@8.46.2':
dependencies:
- debug: 4.4.1
- typescript: 5.9.2
+ '@typescript-eslint/types': 8.46.2
+ eslint-visitor-keys: 4.2.1
+
+ '@typescript/vfs@1.6.1(typescript@5.9.3)':
+ dependencies:
+ debug: 4.4.3
+ typescript: 5.9.3
transitivePeerDependencies:
- supports-color
- '@ungap/structured-clone@1.2.0': {}
+ '@ungap/structured-clone@1.3.0': {}
'@vercel/nft@0.29.4(rollup@4.43.0)':
dependencies:
@@ -7000,7 +6976,7 @@ snapshots:
glob: 10.4.5
graceful-fs: 4.2.11
node-gyp-build: 4.8.4
- picomatch: 4.0.2
+ picomatch: 4.0.3
resolve-from: 5.0.0
transitivePeerDependencies:
- encoding
@@ -7027,33 +7003,33 @@ snapshots:
untun: 0.1.3
uqr: 0.1.2
- '@vinxi/plugin-directives@0.5.0(vinxi@0.5.7(@types/node@24.3.0)(db0@0.3.2)(ioredis@5.6.1)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.0))':
+ '@vinxi/plugin-directives@0.5.1(vinxi@0.5.7(@types/node@24.10.0)(db0@0.3.2)(ioredis@5.6.1)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.1))':
dependencies:
- '@babel/parser': 7.25.8
- acorn: 8.12.1
- acorn-jsx: 5.3.2(acorn@8.12.1)
- acorn-loose: 8.4.0
- acorn-typescript: 1.4.13(acorn@8.12.1)
+ '@babel/parser': 7.28.4
+ acorn: 8.15.0
+ acorn-jsx: 5.3.2(acorn@8.15.0)
+ acorn-loose: 8.5.2
+ acorn-typescript: 1.4.13(acorn@8.15.0)
astring: 1.9.0
magicast: 0.2.11
- recast: 0.23.9
- tslib: 2.8.0
- vinxi: 0.5.7(@types/node@24.3.0)(db0@0.3.2)(ioredis@5.6.1)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.0)
+ recast: 0.23.11
+ tslib: 2.8.1
+ vinxi: 0.5.7(@types/node@24.10.0)(db0@0.3.2)(ioredis@5.6.1)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.1)
- '@vinxi/server-components@0.5.0(vinxi@0.5.7(@types/node@24.3.0)(db0@0.3.2)(ioredis@5.6.1)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.0))':
+ '@vinxi/server-components@0.5.1(vinxi@0.5.7(@types/node@24.10.0)(db0@0.3.2)(ioredis@5.6.1)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.1))':
dependencies:
- '@vinxi/plugin-directives': 0.5.0(vinxi@0.5.7(@types/node@24.3.0)(db0@0.3.2)(ioredis@5.6.1)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.0))
- acorn: 8.12.1
- acorn-loose: 8.4.0
- acorn-typescript: 1.4.13(acorn@8.12.1)
+ '@vinxi/plugin-directives': 0.5.1(vinxi@0.5.7(@types/node@24.10.0)(db0@0.3.2)(ioredis@5.6.1)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.1))
+ acorn: 8.15.0
+ acorn-loose: 8.5.2
+ acorn-typescript: 1.4.13(acorn@8.15.0)
astring: 1.9.0
magicast: 0.2.11
- recast: 0.23.9
- vinxi: 0.5.7(@types/node@24.3.0)(db0@0.3.2)(ioredis@5.6.1)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.0)
+ recast: 0.23.11
+ vinxi: 0.5.7(@types/node@24.10.0)(db0@0.3.2)(ioredis@5.6.1)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.1)
'@vue/compiler-core@3.5.16':
dependencies:
- '@babel/parser': 7.27.5
+ '@babel/parser': 7.28.4
'@vue/shared': 3.5.16
entities: 4.5.0
estree-walker: 2.0.2
@@ -7066,13 +7042,13 @@ snapshots:
'@vue/compiler-sfc@3.5.16':
dependencies:
- '@babel/parser': 7.27.5
+ '@babel/parser': 7.28.4
'@vue/compiler-core': 3.5.16
'@vue/compiler-dom': 3.5.16
'@vue/compiler-ssr': 3.5.16
'@vue/shared': 3.5.16
estree-walker: 2.0.2
- magic-string: 0.30.17
+ magic-string: 0.30.19
postcss: 8.5.6
source-map-js: 1.2.1
@@ -7121,25 +7097,17 @@ snapshots:
dependencies:
acorn: 8.15.0
- acorn-jsx@5.3.2(acorn@8.12.1):
- dependencies:
- acorn: 8.12.1
-
acorn-jsx@5.3.2(acorn@8.15.0):
dependencies:
acorn: 8.15.0
- acorn-loose@8.4.0:
+ acorn-loose@8.5.2:
dependencies:
- acorn: 8.12.1
+ acorn: 8.15.0
- acorn-typescript@1.4.13(acorn@8.12.1):
+ acorn-typescript@1.4.13(acorn@8.15.0):
dependencies:
- acorn: 8.12.1
-
- acorn@8.12.1: {}
-
- acorn@8.14.0: {}
+ acorn: 8.15.0
acorn@8.15.0: {}
@@ -7152,29 +7120,15 @@ snapshots:
json-schema-traverse: 0.4.1
uri-js: 4.4.1
- algoliasearch@5.14.2:
- dependencies:
- '@algolia/client-abtesting': 5.14.2
- '@algolia/client-analytics': 5.14.2
- '@algolia/client-common': 5.14.2
- '@algolia/client-insights': 5.14.2
- '@algolia/client-personalization': 5.14.2
- '@algolia/client-query-suggestions': 5.14.2
- '@algolia/client-search': 5.14.2
- '@algolia/ingestion': 1.14.2
- '@algolia/monitoring': 1.14.2
- '@algolia/recommend': 5.14.2
- '@algolia/requester-browser-xhr': 5.14.2
- '@algolia/requester-fetch': 5.14.2
- '@algolia/requester-node-http': 5.14.2
-
ansi-align@3.0.1:
dependencies:
string-width: 4.2.3
+ ansi-purge@1.1.0: {}
+
ansi-regex@5.0.1: {}
- ansi-regex@6.1.0: {}
+ ansi-regex@6.2.0: {}
ansi-styles@3.2.1:
dependencies:
@@ -7184,9 +7138,11 @@ snapshots:
dependencies:
color-convert: 2.0.1
- ansi-styles@5.2.0: {}
+ ansi-styles@6.2.3: {}
- ansi-styles@6.2.1: {}
+ ansi-truncate@1.4.0:
+ dependencies:
+ fast-string-truncated-width: 3.0.3
ansis@4.1.0: {}
@@ -7229,7 +7185,7 @@ snapshots:
ast-types@0.16.1:
dependencies:
- tslib: 2.8.0
+ tslib: 2.8.1
astring@1.9.0: {}
@@ -7237,6 +7193,11 @@ snapshots:
async@3.2.6: {}
+ atomically@2.0.3:
+ dependencies:
+ stubborn-fs: 1.2.5
+ when-exit: 2.1.4
+
autoprefixer@10.4.21(postcss@8.5.6):
dependencies:
browserslist: 4.25.0
@@ -7251,40 +7212,41 @@ snapshots:
babel-dead-code-elimination@1.0.10:
dependencies:
- '@babel/core': 7.28.3
- '@babel/parser': 7.28.3
- '@babel/traverse': 7.28.3
- '@babel/types': 7.28.2
+ '@babel/core': 7.28.4
+ '@babel/parser': 7.28.4
+ '@babel/traverse': 7.28.4
+ '@babel/types': 7.28.4
transitivePeerDependencies:
- supports-color
- babel-plugin-jsx-dom-expressions@0.39.2(@babel/core@7.25.8):
+ babel-plugin-jsx-dom-expressions@0.40.1(@babel/core@7.28.4):
dependencies:
- '@babel/core': 7.25.8
+ '@babel/core': 7.28.4
'@babel/helper-module-imports': 7.18.6
- '@babel/plugin-syntax-jsx': 7.25.7(@babel/core@7.25.8)
- '@babel/types': 7.25.8
+ '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.4)
+ '@babel/types': 7.28.4
html-entities: 2.3.3
- jest-diff: 29.7.0
- parse5: 7.2.0
- validate-html-nesting: 1.2.2
+ parse5: 7.3.0
+ validate-html-nesting: 1.2.3
- babel-preset-solid@1.9.2(@babel/core@7.25.8):
+ babel-preset-solid@1.9.9(@babel/core@7.28.4)(solid-js@1.9.9):
dependencies:
- '@babel/core': 7.25.8
- babel-plugin-jsx-dom-expressions: 0.39.2(@babel/core@7.25.8)
+ '@babel/core': 7.28.4
+ babel-plugin-jsx-dom-expressions: 0.40.1(@babel/core@7.28.4)
+ optionalDependencies:
+ solid-js: 1.9.9
bail@2.0.2: {}
balanced-match@1.0.2: {}
- balanced-match@3.0.1: {}
-
bare-events@2.5.4:
optional: true
base64-js@1.5.1: {}
+ baseline-browser-mapping@2.8.4: {}
+
bcp-47-match@2.0.3: {}
binary-extensions@2.3.0: {}
@@ -7299,30 +7261,22 @@ snapshots:
dependencies:
ansi-align: 3.0.1
camelcase: 8.0.0
- chalk: 5.4.1
+ chalk: 5.6.2
cli-boxes: 3.0.0
string-width: 7.2.0
type-fest: 4.41.0
widest-line: 5.0.0
wrap-ansi: 9.0.0
- brace-expansion@1.1.11:
+ brace-expansion@1.1.12:
dependencies:
balanced-match: 1.0.2
concat-map: 0.0.1
- brace-expansion@2.0.1:
- dependencies:
- balanced-match: 1.0.2
-
brace-expansion@2.0.2:
dependencies:
balanced-match: 1.0.2
- brace-expansion@4.0.1:
- dependencies:
- balanced-match: 3.0.1
-
braces@3.0.3:
dependencies:
fill-range: 7.1.1
@@ -7334,12 +7288,13 @@ snapshots:
node-releases: 2.0.19
update-browserslist-db: 1.1.3(browserslist@4.25.0)
- browserslist@4.25.3:
+ browserslist@4.26.0:
dependencies:
- caniuse-lite: 1.0.30001735
- electron-to-chromium: 1.5.207
- node-releases: 2.0.19
- update-browserslist-db: 1.1.3(browserslist@4.25.3)
+ baseline-browser-mapping: 2.8.4
+ caniuse-lite: 1.0.30001741
+ electron-to-chromium: 1.5.218
+ node-releases: 2.0.21
+ update-browserslist-db: 1.1.3(browserslist@4.26.0)
buffer-crc32@0.2.13: {}
@@ -7391,7 +7346,7 @@ snapshots:
caniuse-lite@1.0.30001722: {}
- caniuse-lite@1.0.30001735: {}
+ caniuse-lite@1.0.30001741: {}
ccount@2.0.1: {}
@@ -7406,7 +7361,7 @@ snapshots:
ansi-styles: 4.3.0
supports-color: 7.2.0
- chalk@5.4.1: {}
+ chalk@5.6.2: {}
character-entities-html4@2.1.0: {}
@@ -7562,12 +7517,6 @@ snapshots:
croner@9.0.0: {}
- cross-spawn@7.0.3:
- dependencies:
- path-key: 3.1.1
- shebang-command: 2.0.0
- which: 2.0.2
-
cross-spawn@7.0.6:
dependencies:
path-key: 3.1.1
@@ -7590,7 +7539,7 @@ snapshots:
domutils: 3.1.0
nth-check: 2.1.1
- css-selector-parser@3.0.5: {}
+ css-selector-parser@3.1.3: {}
css-what@6.1.0: {}
@@ -7611,11 +7560,7 @@ snapshots:
dependencies:
ms: 2.0.0
- debug@4.3.7:
- dependencies:
- ms: 2.1.3
-
- debug@4.4.1:
+ debug@4.4.3:
dependencies:
ms: 2.1.3
@@ -7623,7 +7568,7 @@ snapshots:
dependencies:
callsite: 1.0.0
- decode-named-character-reference@1.0.2:
+ decode-named-character-reference@1.2.0:
dependencies:
character-entities: 2.0.2
@@ -7683,16 +7628,16 @@ snapshots:
detective-stylus@5.0.1: {}
- detective-typescript@14.0.0(typescript@5.9.2):
+ detective-typescript@14.0.0(typescript@5.9.3):
dependencies:
- '@typescript-eslint/typescript-estree': 8.40.0(typescript@5.9.2)
+ '@typescript-eslint/typescript-estree': 8.46.2(typescript@5.9.3)
ast-module-types: 6.0.1
node-source-walk: 7.0.1
- typescript: 5.9.2
+ typescript: 5.9.3
transitivePeerDependencies:
- supports-color
- detective-vue2@2.2.0(typescript@5.9.2):
+ detective-vue2@2.2.0(typescript@5.9.3):
dependencies:
'@dependents/detective-less': 5.0.1
'@vue/compiler-sfc': 3.5.16
@@ -7700,19 +7645,19 @@ snapshots:
detective-sass: 6.0.1
detective-scss: 5.0.1
detective-stylus: 5.0.1
- detective-typescript: 14.0.0(typescript@5.9.2)
- typescript: 5.9.2
+ detective-typescript: 14.0.0(typescript@5.9.3)
+ typescript: 5.9.3
transitivePeerDependencies:
- supports-color
+ dettle@1.0.5: {}
+
devlop@1.1.0:
dependencies:
dequal: 2.0.3
didyoumean@1.2.2: {}
- diff-sequences@29.6.3: {}
-
diff@8.0.2: {}
direction@2.0.1: {}
@@ -7743,6 +7688,8 @@ snapshots:
dotenv@16.6.1: {}
+ dotenv@17.2.3: {}
+
dunder-proto@1.0.1:
dependencies:
call-bind-apply-helpers: 1.0.2
@@ -7757,7 +7704,7 @@ snapshots:
electron-to-chromium@1.5.166: {}
- electron-to-chromium@1.5.207: {}
+ electron-to-chromium@1.5.218: {}
emoji-regex-xs@1.0.0: {}
@@ -7779,6 +7726,8 @@ snapshots:
entities@4.5.0: {}
+ entities@6.0.1: {}
+
env-paths@3.0.0: {}
error-stack-parser-es@1.0.5: {}
@@ -7809,7 +7758,7 @@ snapshots:
'@types/estree-jsx': 1.0.5
acorn: 8.15.0
esast-util-from-estree: 2.0.0
- vfile-message: 4.0.2
+ vfile-message: 4.0.3
esbuild@0.25.5:
optionalDependencies:
@@ -7857,16 +7806,16 @@ snapshots:
optionalDependencies:
source-map: 0.6.1
- eslint-plugin-solid@0.14.5(eslint@9.33.0(jiti@2.4.2))(typescript@5.9.2):
+ eslint-plugin-solid@0.14.5(eslint@9.39.1(jiti@2.4.2))(typescript@5.9.3):
dependencies:
- '@typescript-eslint/utils': 8.34.0(eslint@9.33.0(jiti@2.4.2))(typescript@5.9.2)
- eslint: 9.33.0(jiti@2.4.2)
+ '@typescript-eslint/utils': 8.34.0(eslint@9.39.1(jiti@2.4.2))(typescript@5.9.3)
+ eslint: 9.39.1(jiti@2.4.2)
estraverse: 5.3.0
is-html: 2.0.0
kebab-case: 1.0.2
known-css-properties: 0.30.0
style-to-object: 1.0.8
- typescript: 5.9.2
+ typescript: 5.9.3
transitivePeerDependencies:
- supports-color
@@ -7879,25 +7828,24 @@ snapshots:
eslint-visitor-keys@4.2.1: {}
- eslint@9.33.0(jiti@2.4.2):
+ eslint@9.39.1(jiti@2.4.2):
dependencies:
- '@eslint-community/eslint-utils': 4.7.0(eslint@9.33.0(jiti@2.4.2))
- '@eslint-community/regexpp': 4.12.1
- '@eslint/config-array': 0.21.0
- '@eslint/config-helpers': 0.3.1
- '@eslint/core': 0.15.2
+ '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.1(jiti@2.4.2))
+ '@eslint-community/regexpp': 4.12.2
+ '@eslint/config-array': 0.21.1
+ '@eslint/config-helpers': 0.4.2
+ '@eslint/core': 0.17.0
'@eslint/eslintrc': 3.3.1
- '@eslint/js': 9.33.0
- '@eslint/plugin-kit': 0.3.5
- '@humanfs/node': 0.16.6
+ '@eslint/js': 9.39.1
+ '@eslint/plugin-kit': 0.4.1
+ '@humanfs/node': 0.16.7
'@humanwhocodes/module-importer': 1.0.1
'@humanwhocodes/retry': 0.4.3
'@types/estree': 1.0.8
- '@types/json-schema': 7.0.15
ajv: 6.12.6
chalk: 4.1.2
cross-spawn: 7.0.6
- debug: 4.4.1
+ debug: 4.4.3
escape-string-regexp: 4.0.0
eslint-scope: 8.4.0
eslint-visitor-keys: 4.2.1
@@ -7961,9 +7909,9 @@ snapshots:
dependencies:
'@types/estree-jsx': 1.0.5
astring: 1.9.0
- source-map: 0.7.4
+ source-map: 0.7.6
- estree-util-value-to-estree@3.2.1:
+ estree-util-value-to-estree@3.4.1:
dependencies:
'@types/estree': 1.0.8
@@ -7976,7 +7924,7 @@ snapshots:
estree-walker@3.0.3:
dependencies:
- '@types/estree': 1.0.6
+ '@types/estree': 1.0.8
esutils@2.0.3: {}
@@ -7990,7 +7938,7 @@ snapshots:
execa@8.0.1:
dependencies:
- cross-spawn: 7.0.3
+ cross-spawn: 7.0.6
get-stream: 8.0.1
human-signals: 5.0.0
is-stream: 3.0.0
@@ -8000,15 +7948,15 @@ snapshots:
signal-exit: 4.1.0
strip-final-newline: 3.0.0
- expressive-code-twoslash@0.4.0(@expressive-code/core@0.40.2)(expressive-code@0.40.2)(typescript@5.9.2):
+ expressive-code-twoslash@0.4.0(@expressive-code/core@0.40.2)(expressive-code@0.41.3)(typescript@5.9.3):
dependencies:
'@expressive-code/core': 0.40.2
- expressive-code: 0.40.2
+ expressive-code: 0.41.3
mdast-util-from-markdown: 2.0.2
mdast-util-gfm: 3.1.0
mdast-util-to-hast: 13.2.0
- twoslash: 0.2.12(typescript@5.9.2)
- typescript: 5.9.2
+ twoslash: 0.2.12(typescript@5.9.3)
+ typescript: 5.9.3
transitivePeerDependencies:
- supports-color
@@ -8019,8 +7967,17 @@ snapshots:
'@expressive-code/plugin-shiki': 0.40.2
'@expressive-code/plugin-text-markers': 0.40.2
+ expressive-code@0.41.3:
+ dependencies:
+ '@expressive-code/core': 0.41.3
+ '@expressive-code/plugin-frames': 0.41.3
+ '@expressive-code/plugin-shiki': 0.41.3
+ '@expressive-code/plugin-text-markers': 0.41.3
+
exsolve@1.0.5: {}
+ exsolve@1.0.7: {}
+
extend-shallow@2.0.1:
dependencies:
is-extendable: 0.1.1
@@ -8029,7 +7986,7 @@ snapshots:
extract-zip@2.0.1:
dependencies:
- debug: 4.4.1
+ debug: 4.4.3
get-stream: 5.2.0
yauzl: 2.10.0
optionalDependencies:
@@ -8057,10 +8014,21 @@ snapshots:
merge2: 1.4.1
micromatch: 4.0.8
+ fast-ignore@1.1.3:
+ dependencies:
+ grammex: 3.1.11
+ string-escape-regex: 1.0.1
+
fast-json-stable-stringify@2.1.0: {}
fast-levenshtein@2.0.6: {}
+ fast-string-truncated-width@3.0.3: {}
+
+ fast-string-width@3.0.2:
+ dependencies:
+ fast-string-truncated-width: 3.0.3
+
fastq@1.17.1:
dependencies:
reusify: 1.0.4
@@ -8073,13 +8041,13 @@ snapshots:
dependencies:
pend: 1.2.0
- fdir@6.4.3(picomatch@4.0.2):
+ fdir@6.4.6(picomatch@4.0.2):
optionalDependencies:
picomatch: 4.0.2
- fdir@6.4.6(picomatch@4.0.2):
+ fdir@6.5.0(picomatch@4.0.3):
optionalDependencies:
- picomatch: 4.0.2
+ picomatch: 4.0.3
fecha@4.2.3: {}
@@ -8100,6 +8068,12 @@ snapshots:
filter-obj@6.1.0: {}
+ find-up-json@2.0.5:
+ dependencies:
+ find-up-path: 1.0.1
+
+ find-up-path@1.0.1: {}
+
find-up-simple@1.0.1: {}
find-up@5.0.0:
@@ -8115,18 +8089,18 @@ snapshots:
flat-cache@4.0.1:
dependencies:
- flatted: 3.3.1
+ flatted: 3.3.3
keyv: 4.5.4
- flatted@3.3.1: {}
+ flatted@3.3.3: {}
fn.name@1.1.0: {}
follow-redirects@1.15.9: {}
- foreground-child@3.3.0:
+ foreground-child@3.3.1:
dependencies:
- cross-spawn: 7.0.3
+ cross-spawn: 7.0.6
signal-exit: 4.1.0
format@0.2.2: {}
@@ -8146,6 +8120,8 @@ snapshots:
function-bind@1.1.2: {}
+ function-once@3.0.1: {}
+
gensync@1.0.0-beta.2: {}
get-amd-module-type@6.0.1:
@@ -8155,6 +8131,10 @@ snapshots:
get-caller-file@2.0.5: {}
+ get-current-package@1.0.1:
+ dependencies:
+ find-up-json: 2.0.5
+
get-east-asian-width@1.3.0: {}
get-intrinsic@1.3.0:
@@ -8172,8 +8152,6 @@ snapshots:
get-port-please@3.1.2: {}
- get-port@7.1.0: {}
-
get-proto@1.0.1:
dependencies:
dunder-proto: 1.0.1
@@ -8206,18 +8184,18 @@ snapshots:
glob@10.4.5:
dependencies:
- foreground-child: 3.3.0
+ foreground-child: 3.3.1
jackspeak: 3.4.3
minimatch: 9.0.5
minipass: 7.1.2
package-json-from-dist: 1.0.1
path-scurry: 1.11.1
- glob@11.0.2:
+ glob@11.0.3:
dependencies:
- foreground-child: 3.3.0
+ foreground-child: 3.3.1
jackspeak: 4.1.1
- minimatch: 10.0.2
+ minimatch: 10.0.3
minipass: 7.1.2
package-json-from-dist: 1.0.1
path-scurry: 2.0.0
@@ -8228,7 +8206,7 @@ snapshots:
globals@15.15.0: {}
- globals@16.3.0: {}
+ globals@16.4.0: {}
globby@14.1.0:
dependencies:
@@ -8247,8 +8225,12 @@ snapshots:
graceful-fs@4.2.11: {}
+ grammex@3.1.11: {}
+
graphemer@1.4.0: {}
+ graphmatch@1.1.0: {}
+
gray-matter@4.0.3:
dependencies:
js-yaml: 3.14.1
@@ -8282,13 +8264,13 @@ snapshots:
dependencies:
function-bind: 1.1.2
- hast-util-from-parse5@8.0.1:
+ hast-util-from-parse5@8.0.3:
dependencies:
'@types/hast': 3.0.4
'@types/unist': 3.0.3
devlop: 1.1.0
- hastscript: 8.0.0
- property-information: 6.5.0
+ hastscript: 9.0.1
+ property-information: 7.1.0
vfile: 6.0.3
vfile-location: 5.0.3
web-namespaces: 2.0.1
@@ -8309,41 +8291,41 @@ snapshots:
dependencies:
'@types/hast': 3.0.4
- hast-util-raw@9.0.4:
+ hast-util-raw@9.1.0:
dependencies:
'@types/hast': 3.0.4
'@types/unist': 3.0.3
- '@ungap/structured-clone': 1.2.0
- hast-util-from-parse5: 8.0.1
+ '@ungap/structured-clone': 1.3.0
+ hast-util-from-parse5: 8.0.3
hast-util-to-parse5: 8.0.0
html-void-elements: 3.0.0
mdast-util-to-hast: 13.2.0
- parse5: 7.2.0
+ parse5: 7.3.0
unist-util-position: 5.0.0
unist-util-visit: 5.0.0
vfile: 6.0.3
web-namespaces: 2.0.1
zwitch: 2.0.4
- hast-util-select@6.0.3:
+ hast-util-select@6.0.4:
dependencies:
'@types/hast': 3.0.4
'@types/unist': 3.0.3
bcp-47-match: 2.0.3
comma-separated-tokens: 2.0.3
- css-selector-parser: 3.0.5
+ css-selector-parser: 3.1.3
devlop: 1.1.0
direction: 2.0.1
hast-util-has-property: 3.0.0
hast-util-to-string: 3.0.1
hast-util-whitespace: 3.0.0
nth-check: 2.1.1
- property-information: 6.5.0
+ property-information: 7.1.0
space-separated-tokens: 2.0.2
unist-util-visit: 5.0.0
zwitch: 2.0.4
- hast-util-to-estree@3.1.0:
+ hast-util-to-estree@3.1.3:
dependencies:
'@types/estree': 1.0.8
'@types/estree-jsx': 1.0.5
@@ -8356,9 +8338,9 @@ snapshots:
mdast-util-mdx-expression: 2.0.1
mdast-util-mdx-jsx: 3.2.0
mdast-util-mdxjs-esm: 2.0.1
- property-information: 6.5.0
+ property-information: 7.1.0
space-separated-tokens: 2.0.2
- style-to-object: 0.4.4
+ style-to-js: 1.1.18
unist-util-position: 5.0.0
zwitch: 2.0.4
transitivePeerDependencies:
@@ -8373,12 +8355,12 @@ snapshots:
hast-util-whitespace: 3.0.0
html-void-elements: 3.0.0
mdast-util-to-hast: 13.2.0
- property-information: 7.0.0
+ property-information: 7.1.0
space-separated-tokens: 2.0.2
stringify-entities: 4.0.4
zwitch: 2.0.4
- hast-util-to-jsx-runtime@2.3.2:
+ hast-util-to-jsx-runtime@2.3.6:
dependencies:
'@types/estree': 1.0.8
'@types/hast': 3.0.4
@@ -8390,11 +8372,11 @@ snapshots:
mdast-util-mdx-expression: 2.0.1
mdast-util-mdx-jsx: 3.2.0
mdast-util-mdxjs-esm: 2.0.1
- property-information: 6.5.0
+ property-information: 7.1.0
space-separated-tokens: 2.0.2
- style-to-object: 1.0.8
+ style-to-js: 1.1.18
unist-util-position: 5.0.0
- vfile-message: 4.0.2
+ vfile-message: 4.0.3
transitivePeerDependencies:
- supports-color
@@ -8423,20 +8405,12 @@ snapshots:
dependencies:
'@types/hast': 3.0.4
- hastscript@8.0.0:
- dependencies:
- '@types/hast': 3.0.4
- comma-separated-tokens: 2.0.3
- hast-util-parse-selector: 4.0.0
- property-information: 6.5.0
- space-separated-tokens: 2.0.2
-
- hastscript@9.0.0:
+ hastscript@9.0.1:
dependencies:
'@types/hast': 3.0.4
comma-separated-tokens: 2.0.3
hast-util-parse-selector: 4.0.0
- property-information: 6.5.0
+ property-information: 7.1.0
space-separated-tokens: 2.0.2
hookable@5.5.3: {}
@@ -8449,7 +8423,7 @@ snapshots:
html-tags@3.3.1: {}
- html-to-image@1.11.11: {}
+ html-to-image@1.11.13: {}
html-void-elements@3.0.0: {}
@@ -8481,7 +8455,7 @@ snapshots:
https-proxy-agent@7.0.6:
dependencies:
agent-base: 7.1.3
- debug: 4.4.1
+ debug: 4.4.3
transitivePeerDependencies:
- supports-color
@@ -8495,26 +8469,30 @@ snapshots:
ignore@7.0.5: {}
- import-fresh@3.3.0:
+ import-fresh@3.3.1:
dependencies:
parent-module: 1.0.1
resolve-from: 4.0.0
+ import-meta-resolve@4.2.0: {}
+
imurmurhash@0.1.4: {}
index-to-position@1.1.0: {}
inherits@2.0.4: {}
- inline-style-parser@0.1.1: {}
+ ini-simple-parser@1.0.1: {}
inline-style-parser@0.2.4: {}
+ ionstore@1.0.1: {}
+
ioredis@5.6.1:
dependencies:
'@ioredis/commands': 1.2.0
cluster-key-slot: 1.1.2
- debug: 4.4.1
+ debug: 4.4.3
denque: 2.1.0
lodash.defaults: 4.2.0
lodash.isarguments: 3.1.0
@@ -8631,15 +8609,6 @@ snapshots:
dependencies:
'@isaacs/cliui': 8.0.2
- jest-diff@29.7.0:
- dependencies:
- chalk: 4.1.2
- diff-sequences: 29.6.3
- jest-get-type: 29.6.3
- pretty-format: 29.7.0
-
- jest-get-type@29.6.3: {}
-
jiti@1.21.6: {}
jiti@2.4.2: {}
@@ -8665,6 +8634,8 @@ snapshots:
json-schema-traverse@0.4.1: {}
+ json-sorted-stringify@1.0.2: {}
+
json-stable-stringify-without-jsonify@1.0.1: {}
json5@2.2.3: {}
@@ -8673,6 +8644,8 @@ snapshots:
jwt-decode@4.0.0: {}
+ kasi@1.1.1: {}
+
kebab-case@1.0.2: {}
keyv@4.5.4:
@@ -8733,11 +8706,11 @@ snapshots:
untun: 0.1.3
uqr: 0.1.2
- local-pkg@1.1.1:
+ local-pkg@1.1.2:
dependencies:
- mlly: 1.7.4
- pkg-types: 2.1.0
- quansync: 0.2.10
+ mlly: 1.8.0
+ pkg-types: 2.3.0
+ quansync: 0.2.11
locate-path@6.0.0:
dependencies:
@@ -8749,16 +8722,12 @@ snapshots:
lodash-es@4.17.21: {}
- lodash.castarray@4.4.0: {}
-
lodash.debounce@4.0.8: {}
lodash.defaults@4.2.0: {}
lodash.isarguments@3.1.0: {}
- lodash.isplainobject@4.0.6: {}
-
lodash.merge@4.6.2: {}
lodash@4.17.21: {}
@@ -8772,12 +8741,9 @@ snapshots:
safe-stable-stringify: 2.5.0
triple-beam: 1.4.1
- longest-streak@3.1.0: {}
+ lomemo@1.0.1: {}
- loose-envify@1.4.0:
- dependencies:
- js-tokens: 4.0.0
- optional: true
+ longest-streak@3.1.0: {}
lru-cache@10.4.3: {}
@@ -8789,61 +8755,62 @@ snapshots:
luxon@3.6.1: {}
- magic-string@0.30.17:
+ magic-string@0.30.19:
dependencies:
- '@jridgewell/sourcemap-codec': 1.5.0
+ '@jridgewell/sourcemap-codec': 1.5.5
magicast@0.2.11:
dependencies:
- '@babel/parser': 7.25.8
- '@babel/types': 7.25.8
- recast: 0.23.9
+ '@babel/parser': 7.28.4
+ '@babel/types': 7.28.4
+ recast: 0.23.11
magicast@0.3.5:
dependencies:
- '@babel/parser': 7.27.5
- '@babel/types': 7.27.6
+ '@babel/parser': 7.28.4
+ '@babel/types': 7.28.4
source-map-js: 1.2.1
markdown-extensions@2.0.0: {}
- markdown-table@3.0.3: {}
+ markdown-table@3.0.4: {}
math-intrinsics@1.1.0: {}
- mdast-util-directive@3.0.0:
+ mdast-util-directive@3.1.0:
dependencies:
'@types/mdast': 4.0.4
'@types/unist': 3.0.3
+ ccount: 2.0.1
devlop: 1.1.0
mdast-util-from-markdown: 2.0.2
- mdast-util-to-markdown: 2.1.0
- parse-entities: 4.0.1
+ mdast-util-to-markdown: 2.1.2
+ parse-entities: 4.0.2
stringify-entities: 4.0.4
- unist-util-visit-parents: 6.0.1
+ unist-util-visit-parents: 6.0.2
transitivePeerDependencies:
- supports-color
- mdast-util-find-and-replace@3.0.1:
+ mdast-util-find-and-replace@3.0.2:
dependencies:
'@types/mdast': 4.0.4
escape-string-regexp: 5.0.0
- unist-util-is: 6.0.0
- unist-util-visit-parents: 6.0.1
+ unist-util-is: 6.0.1
+ unist-util-visit-parents: 6.0.2
mdast-util-from-markdown@2.0.2:
dependencies:
'@types/mdast': 4.0.4
'@types/unist': 3.0.3
- decode-named-character-reference: 1.0.2
+ decode-named-character-reference: 1.2.0
devlop: 1.1.0
mdast-util-to-string: 4.0.0
- micromark: 4.0.0
- micromark-util-decode-numeric-character-reference: 2.0.1
- micromark-util-decode-string: 2.0.0
- micromark-util-normalize-identifier: 2.0.0
- micromark-util-symbol: 2.0.0
- micromark-util-types: 2.0.0
+ micromark: 4.0.2
+ micromark-util-decode-numeric-character-reference: 2.0.2
+ micromark-util-decode-string: 2.0.1
+ micromark-util-normalize-identifier: 2.0.1
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
unist-util-stringify-position: 4.0.0
transitivePeerDependencies:
- supports-color
@@ -8854,7 +8821,7 @@ snapshots:
devlop: 1.1.0
escape-string-regexp: 5.0.0
mdast-util-from-markdown: 2.0.2
- mdast-util-to-markdown: 2.1.0
+ mdast-util-to-markdown: 2.1.2
micromark-extension-frontmatter: 2.0.0
transitivePeerDependencies:
- supports-color
@@ -8864,16 +8831,16 @@ snapshots:
'@types/mdast': 4.0.4
ccount: 2.0.1
devlop: 1.1.0
- mdast-util-find-and-replace: 3.0.1
- micromark-util-character: 2.1.0
+ mdast-util-find-and-replace: 3.0.2
+ micromark-util-character: 2.1.1
- mdast-util-gfm-footnote@2.0.0:
+ mdast-util-gfm-footnote@2.1.0:
dependencies:
'@types/mdast': 4.0.4
devlop: 1.1.0
mdast-util-from-markdown: 2.0.2
- mdast-util-to-markdown: 2.1.0
- micromark-util-normalize-identifier: 2.0.0
+ mdast-util-to-markdown: 2.1.2
+ micromark-util-normalize-identifier: 2.0.1
transitivePeerDependencies:
- supports-color
@@ -8881,7 +8848,7 @@ snapshots:
dependencies:
'@types/mdast': 4.0.4
mdast-util-from-markdown: 2.0.2
- mdast-util-to-markdown: 2.1.0
+ mdast-util-to-markdown: 2.1.2
transitivePeerDependencies:
- supports-color
@@ -8889,9 +8856,9 @@ snapshots:
dependencies:
'@types/mdast': 4.0.4
devlop: 1.1.0
- markdown-table: 3.0.3
+ markdown-table: 3.0.4
mdast-util-from-markdown: 2.0.2
- mdast-util-to-markdown: 2.1.0
+ mdast-util-to-markdown: 2.1.2
transitivePeerDependencies:
- supports-color
@@ -8900,7 +8867,7 @@ snapshots:
'@types/mdast': 4.0.4
devlop: 1.1.0
mdast-util-from-markdown: 2.0.2
- mdast-util-to-markdown: 2.1.0
+ mdast-util-to-markdown: 2.1.2
transitivePeerDependencies:
- supports-color
@@ -8908,11 +8875,11 @@ snapshots:
dependencies:
mdast-util-from-markdown: 2.0.2
mdast-util-gfm-autolink-literal: 2.0.1
- mdast-util-gfm-footnote: 2.0.0
+ mdast-util-gfm-footnote: 2.1.0
mdast-util-gfm-strikethrough: 2.0.0
mdast-util-gfm-table: 2.0.0
mdast-util-gfm-task-list-item: 2.0.0
- mdast-util-to-markdown: 2.1.0
+ mdast-util-to-markdown: 2.1.2
transitivePeerDependencies:
- supports-color
@@ -8923,7 +8890,7 @@ snapshots:
'@types/mdast': 4.0.4
devlop: 1.1.0
mdast-util-from-markdown: 2.0.2
- mdast-util-to-markdown: 2.1.0
+ mdast-util-to-markdown: 2.1.2
transitivePeerDependencies:
- supports-color
@@ -8936,11 +8903,11 @@ snapshots:
ccount: 2.0.1
devlop: 1.1.0
mdast-util-from-markdown: 2.0.2
- mdast-util-to-markdown: 2.1.0
- parse-entities: 4.0.1
+ mdast-util-to-markdown: 2.1.2
+ parse-entities: 4.0.2
stringify-entities: 4.0.4
unist-util-stringify-position: 4.0.0
- vfile-message: 4.0.2
+ vfile-message: 4.0.3
transitivePeerDependencies:
- supports-color
@@ -8950,7 +8917,7 @@ snapshots:
mdast-util-mdx-expression: 2.0.1
mdast-util-mdx-jsx: 3.2.0
mdast-util-mdxjs-esm: 2.0.1
- mdast-util-to-markdown: 2.1.0
+ mdast-util-to-markdown: 2.1.2
transitivePeerDependencies:
- supports-color
@@ -8961,35 +8928,36 @@ snapshots:
'@types/mdast': 4.0.4
devlop: 1.1.0
mdast-util-from-markdown: 2.0.2
- mdast-util-to-markdown: 2.1.0
+ mdast-util-to-markdown: 2.1.2
transitivePeerDependencies:
- supports-color
mdast-util-phrasing@4.1.0:
dependencies:
'@types/mdast': 4.0.4
- unist-util-is: 6.0.0
+ unist-util-is: 6.0.1
mdast-util-to-hast@13.2.0:
dependencies:
'@types/hast': 3.0.4
'@types/mdast': 4.0.4
- '@ungap/structured-clone': 1.2.0
+ '@ungap/structured-clone': 1.3.0
devlop: 1.1.0
- micromark-util-sanitize-uri: 2.0.0
+ micromark-util-sanitize-uri: 2.0.1
trim-lines: 3.0.1
unist-util-position: 5.0.0
unist-util-visit: 5.0.0
vfile: 6.0.3
- mdast-util-to-markdown@2.1.0:
+ mdast-util-to-markdown@2.1.2:
dependencies:
'@types/mdast': 4.0.4
'@types/unist': 3.0.3
longest-streak: 3.1.0
mdast-util-phrasing: 4.1.0
mdast-util-to-string: 4.0.0
- micromark-util-decode-string: 2.0.0
+ micromark-util-classify-character: 2.0.1
+ micromark-util-decode-string: 2.0.1
unist-util-visit: 5.0.0
zwitch: 2.0.4
@@ -9001,10 +8969,10 @@ snapshots:
dependencies:
'@types/mdast': 4.0.4
'@types/ungap__structured-clone': 1.2.0
- '@ungap/structured-clone': 1.2.0
+ '@ungap/structured-clone': 1.3.0
github-slugger: 2.0.0
mdast-util-to-string: 4.0.0
- unist-util-is: 6.0.0
+ unist-util-is: 6.0.1
unist-util-visit: 5.0.0
merge-anything@5.1.7:
@@ -9021,286 +8989,284 @@ snapshots:
micro-api-client@3.3.0: {}
- micromark-core-commonmark@2.0.1:
+ micromark-core-commonmark@2.0.3:
dependencies:
- decode-named-character-reference: 1.0.2
+ decode-named-character-reference: 1.2.0
devlop: 1.1.0
- micromark-factory-destination: 2.0.0
- micromark-factory-label: 2.0.0
- micromark-factory-space: 2.0.0
- micromark-factory-title: 2.0.0
- micromark-factory-whitespace: 2.0.0
- micromark-util-character: 2.1.0
- micromark-util-chunked: 2.0.0
- micromark-util-classify-character: 2.0.0
- micromark-util-html-tag-name: 2.0.0
- micromark-util-normalize-identifier: 2.0.0
- micromark-util-resolve-all: 2.0.0
- micromark-util-subtokenize: 2.0.1
- micromark-util-symbol: 2.0.0
- micromark-util-types: 2.0.0
+ micromark-factory-destination: 2.0.1
+ micromark-factory-label: 2.0.1
+ micromark-factory-space: 2.0.1
+ micromark-factory-title: 2.0.1
+ micromark-factory-whitespace: 2.0.1
+ micromark-util-character: 2.1.1
+ micromark-util-chunked: 2.0.1
+ micromark-util-classify-character: 2.0.1
+ micromark-util-html-tag-name: 2.0.1
+ micromark-util-normalize-identifier: 2.0.1
+ micromark-util-resolve-all: 2.0.1
+ micromark-util-subtokenize: 2.1.0
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
micromark-extension-directive@3.0.2:
dependencies:
devlop: 1.1.0
- micromark-factory-space: 2.0.0
- micromark-factory-whitespace: 2.0.0
- micromark-util-character: 2.1.0
- micromark-util-symbol: 2.0.0
- micromark-util-types: 2.0.0
- parse-entities: 4.0.1
+ micromark-factory-space: 2.0.1
+ micromark-factory-whitespace: 2.0.1
+ micromark-util-character: 2.1.1
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
+ parse-entities: 4.0.2
micromark-extension-frontmatter@2.0.0:
dependencies:
fault: 2.0.1
- micromark-util-character: 2.1.0
- micromark-util-symbol: 2.0.0
- micromark-util-types: 2.0.0
+ micromark-util-character: 2.1.1
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
micromark-extension-gfm-autolink-literal@2.1.0:
dependencies:
- micromark-util-character: 2.1.0
- micromark-util-sanitize-uri: 2.0.0
- micromark-util-symbol: 2.0.0
- micromark-util-types: 2.0.0
+ micromark-util-character: 2.1.1
+ micromark-util-sanitize-uri: 2.0.1
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
micromark-extension-gfm-footnote@2.1.0:
dependencies:
devlop: 1.1.0
- micromark-core-commonmark: 2.0.1
- micromark-factory-space: 2.0.0
- micromark-util-character: 2.1.0
- micromark-util-normalize-identifier: 2.0.0
- micromark-util-sanitize-uri: 2.0.0
- micromark-util-symbol: 2.0.0
- micromark-util-types: 2.0.0
+ micromark-core-commonmark: 2.0.3
+ micromark-factory-space: 2.0.1
+ micromark-util-character: 2.1.1
+ micromark-util-normalize-identifier: 2.0.1
+ micromark-util-sanitize-uri: 2.0.1
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
micromark-extension-gfm-strikethrough@2.1.0:
dependencies:
devlop: 1.1.0
- micromark-util-chunked: 2.0.0
- micromark-util-classify-character: 2.0.0
- micromark-util-resolve-all: 2.0.0
- micromark-util-symbol: 2.0.0
- micromark-util-types: 2.0.0
+ micromark-util-chunked: 2.0.1
+ micromark-util-classify-character: 2.0.1
+ micromark-util-resolve-all: 2.0.1
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
- micromark-extension-gfm-table@2.1.0:
+ micromark-extension-gfm-table@2.1.1:
dependencies:
devlop: 1.1.0
- micromark-factory-space: 2.0.0
- micromark-util-character: 2.1.0
- micromark-util-symbol: 2.0.0
- micromark-util-types: 2.0.0
+ micromark-factory-space: 2.0.1
+ micromark-util-character: 2.1.1
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
micromark-extension-gfm-tagfilter@2.0.0:
dependencies:
- micromark-util-types: 2.0.0
+ micromark-util-types: 2.0.2
micromark-extension-gfm-task-list-item@2.1.0:
dependencies:
devlop: 1.1.0
- micromark-factory-space: 2.0.0
- micromark-util-character: 2.1.0
- micromark-util-symbol: 2.0.0
- micromark-util-types: 2.0.0
+ micromark-factory-space: 2.0.1
+ micromark-util-character: 2.1.1
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
micromark-extension-gfm@3.0.0:
dependencies:
micromark-extension-gfm-autolink-literal: 2.1.0
micromark-extension-gfm-footnote: 2.1.0
micromark-extension-gfm-strikethrough: 2.1.0
- micromark-extension-gfm-table: 2.1.0
+ micromark-extension-gfm-table: 2.1.1
micromark-extension-gfm-tagfilter: 2.0.0
micromark-extension-gfm-task-list-item: 2.1.0
- micromark-util-combine-extensions: 2.0.0
- micromark-util-types: 2.0.0
+ micromark-util-combine-extensions: 2.0.1
+ micromark-util-types: 2.0.2
- micromark-extension-mdx-expression@3.0.0:
+ micromark-extension-mdx-expression@3.0.1:
dependencies:
'@types/estree': 1.0.8
devlop: 1.1.0
- micromark-factory-mdx-expression: 2.0.2
- micromark-factory-space: 2.0.0
- micromark-util-character: 2.1.0
- micromark-util-events-to-acorn: 2.0.2
- micromark-util-symbol: 2.0.0
- micromark-util-types: 2.0.0
+ micromark-factory-mdx-expression: 2.0.3
+ micromark-factory-space: 2.0.1
+ micromark-util-character: 2.1.1
+ micromark-util-events-to-acorn: 2.0.3
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
- micromark-extension-mdx-jsx@3.0.1:
+ micromark-extension-mdx-jsx@3.0.2:
dependencies:
- '@types/acorn': 4.0.6
'@types/estree': 1.0.8
devlop: 1.1.0
estree-util-is-identifier-name: 3.0.0
- micromark-factory-mdx-expression: 2.0.2
- micromark-factory-space: 2.0.0
- micromark-util-character: 2.1.0
- micromark-util-events-to-acorn: 2.0.2
- micromark-util-symbol: 2.0.0
- micromark-util-types: 2.0.0
- vfile-message: 4.0.2
+ micromark-factory-mdx-expression: 2.0.3
+ micromark-factory-space: 2.0.1
+ micromark-util-character: 2.1.1
+ micromark-util-events-to-acorn: 2.0.3
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
+ vfile-message: 4.0.3
micromark-extension-mdx-md@2.0.0:
dependencies:
- micromark-util-types: 2.0.0
+ micromark-util-types: 2.0.2
micromark-extension-mdxjs-esm@3.0.0:
dependencies:
'@types/estree': 1.0.8
devlop: 1.1.0
- micromark-core-commonmark: 2.0.1
- micromark-util-character: 2.1.0
- micromark-util-events-to-acorn: 2.0.2
- micromark-util-symbol: 2.0.0
- micromark-util-types: 2.0.0
+ micromark-core-commonmark: 2.0.3
+ micromark-util-character: 2.1.1
+ micromark-util-events-to-acorn: 2.0.3
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
unist-util-position-from-estree: 2.0.0
- vfile-message: 4.0.2
+ vfile-message: 4.0.3
micromark-extension-mdxjs@3.0.0:
dependencies:
acorn: 8.15.0
acorn-jsx: 5.3.2(acorn@8.15.0)
- micromark-extension-mdx-expression: 3.0.0
- micromark-extension-mdx-jsx: 3.0.1
+ micromark-extension-mdx-expression: 3.0.1
+ micromark-extension-mdx-jsx: 3.0.2
micromark-extension-mdx-md: 2.0.0
micromark-extension-mdxjs-esm: 3.0.0
- micromark-util-combine-extensions: 2.0.0
- micromark-util-types: 2.0.0
+ micromark-util-combine-extensions: 2.0.1
+ micromark-util-types: 2.0.2
- micromark-factory-destination@2.0.0:
+ micromark-factory-destination@2.0.1:
dependencies:
- micromark-util-character: 2.1.0
- micromark-util-symbol: 2.0.0
- micromark-util-types: 2.0.0
+ micromark-util-character: 2.1.1
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
- micromark-factory-label@2.0.0:
+ micromark-factory-label@2.0.1:
dependencies:
devlop: 1.1.0
- micromark-util-character: 2.1.0
- micromark-util-symbol: 2.0.0
- micromark-util-types: 2.0.0
+ micromark-util-character: 2.1.1
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
- micromark-factory-mdx-expression@2.0.2:
+ micromark-factory-mdx-expression@2.0.3:
dependencies:
'@types/estree': 1.0.8
devlop: 1.1.0
- micromark-factory-space: 2.0.0
- micromark-util-character: 2.1.0
- micromark-util-events-to-acorn: 2.0.2
- micromark-util-symbol: 2.0.0
- micromark-util-types: 2.0.0
+ micromark-factory-space: 2.0.1
+ micromark-util-character: 2.1.1
+ micromark-util-events-to-acorn: 2.0.3
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
unist-util-position-from-estree: 2.0.0
- vfile-message: 4.0.2
+ vfile-message: 4.0.3
- micromark-factory-space@2.0.0:
+ micromark-factory-space@2.0.1:
dependencies:
- micromark-util-character: 2.1.0
- micromark-util-types: 2.0.0
+ micromark-util-character: 2.1.1
+ micromark-util-types: 2.0.2
- micromark-factory-title@2.0.0:
+ micromark-factory-title@2.0.1:
dependencies:
- micromark-factory-space: 2.0.0
- micromark-util-character: 2.1.0
- micromark-util-symbol: 2.0.0
- micromark-util-types: 2.0.0
+ micromark-factory-space: 2.0.1
+ micromark-util-character: 2.1.1
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
- micromark-factory-whitespace@2.0.0:
+ micromark-factory-whitespace@2.0.1:
dependencies:
- micromark-factory-space: 2.0.0
- micromark-util-character: 2.1.0
- micromark-util-symbol: 2.0.0
- micromark-util-types: 2.0.0
+ micromark-factory-space: 2.0.1
+ micromark-util-character: 2.1.1
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
- micromark-util-character@2.1.0:
+ micromark-util-character@2.1.1:
dependencies:
- micromark-util-symbol: 2.0.0
- micromark-util-types: 2.0.0
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
- micromark-util-chunked@2.0.0:
+ micromark-util-chunked@2.0.1:
dependencies:
- micromark-util-symbol: 2.0.0
+ micromark-util-symbol: 2.0.1
- micromark-util-classify-character@2.0.0:
+ micromark-util-classify-character@2.0.1:
dependencies:
- micromark-util-character: 2.1.0
- micromark-util-symbol: 2.0.0
- micromark-util-types: 2.0.0
+ micromark-util-character: 2.1.1
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
- micromark-util-combine-extensions@2.0.0:
+ micromark-util-combine-extensions@2.0.1:
dependencies:
- micromark-util-chunked: 2.0.0
- micromark-util-types: 2.0.0
+ micromark-util-chunked: 2.0.1
+ micromark-util-types: 2.0.2
- micromark-util-decode-numeric-character-reference@2.0.1:
+ micromark-util-decode-numeric-character-reference@2.0.2:
dependencies:
- micromark-util-symbol: 2.0.0
+ micromark-util-symbol: 2.0.1
- micromark-util-decode-string@2.0.0:
+ micromark-util-decode-string@2.0.1:
dependencies:
- decode-named-character-reference: 1.0.2
- micromark-util-character: 2.1.0
- micromark-util-decode-numeric-character-reference: 2.0.1
- micromark-util-symbol: 2.0.0
+ decode-named-character-reference: 1.2.0
+ micromark-util-character: 2.1.1
+ micromark-util-decode-numeric-character-reference: 2.0.2
+ micromark-util-symbol: 2.0.1
- micromark-util-encode@2.0.0: {}
+ micromark-util-encode@2.0.1: {}
- micromark-util-events-to-acorn@2.0.2:
+ micromark-util-events-to-acorn@2.0.3:
dependencies:
- '@types/acorn': 4.0.6
'@types/estree': 1.0.8
'@types/unist': 3.0.3
devlop: 1.1.0
estree-util-visit: 2.0.0
- micromark-util-symbol: 2.0.0
- micromark-util-types: 2.0.0
- vfile-message: 4.0.2
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
+ vfile-message: 4.0.3
- micromark-util-html-tag-name@2.0.0: {}
+ micromark-util-html-tag-name@2.0.1: {}
- micromark-util-normalize-identifier@2.0.0:
+ micromark-util-normalize-identifier@2.0.1:
dependencies:
- micromark-util-symbol: 2.0.0
+ micromark-util-symbol: 2.0.1
- micromark-util-resolve-all@2.0.0:
+ micromark-util-resolve-all@2.0.1:
dependencies:
- micromark-util-types: 2.0.0
+ micromark-util-types: 2.0.2
- micromark-util-sanitize-uri@2.0.0:
+ micromark-util-sanitize-uri@2.0.1:
dependencies:
- micromark-util-character: 2.1.0
- micromark-util-encode: 2.0.0
- micromark-util-symbol: 2.0.0
+ micromark-util-character: 2.1.1
+ micromark-util-encode: 2.0.1
+ micromark-util-symbol: 2.0.1
- micromark-util-subtokenize@2.0.1:
+ micromark-util-subtokenize@2.1.0:
dependencies:
devlop: 1.1.0
- micromark-util-chunked: 2.0.0
- micromark-util-symbol: 2.0.0
- micromark-util-types: 2.0.0
+ micromark-util-chunked: 2.0.1
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
- micromark-util-symbol@2.0.0: {}
+ micromark-util-symbol@2.0.1: {}
- micromark-util-types@2.0.0: {}
+ micromark-util-types@2.0.2: {}
- micromark@4.0.0:
+ micromark@4.0.2:
dependencies:
'@types/debug': 4.1.12
- debug: 4.4.1
- decode-named-character-reference: 1.0.2
+ debug: 4.4.3
+ decode-named-character-reference: 1.2.0
devlop: 1.1.0
- micromark-core-commonmark: 2.0.1
- micromark-factory-space: 2.0.0
- micromark-util-character: 2.1.0
- micromark-util-chunked: 2.0.0
- micromark-util-combine-extensions: 2.0.0
- micromark-util-decode-numeric-character-reference: 2.0.1
- micromark-util-encode: 2.0.0
- micromark-util-normalize-identifier: 2.0.0
- micromark-util-resolve-all: 2.0.0
- micromark-util-sanitize-uri: 2.0.0
- micromark-util-subtokenize: 2.0.1
- micromark-util-symbol: 2.0.0
- micromark-util-types: 2.0.0
+ micromark-core-commonmark: 2.0.3
+ micromark-factory-space: 2.0.1
+ micromark-util-character: 2.1.1
+ micromark-util-chunked: 2.0.1
+ micromark-util-combine-extensions: 2.0.1
+ micromark-util-decode-numeric-character-reference: 2.0.2
+ micromark-util-encode: 2.0.1
+ micromark-util-normalize-identifier: 2.0.1
+ micromark-util-resolve-all: 2.0.1
+ micromark-util-sanitize-uri: 2.0.1
+ micromark-util-subtokenize: 2.1.0
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
transitivePeerDependencies:
- supports-color
@@ -9323,13 +9289,13 @@ snapshots:
mimic-fn@4.0.0: {}
- minimatch@10.0.2:
+ minimatch@10.0.3:
dependencies:
- brace-expansion: 4.0.1
+ '@isaacs/brace-expansion': 5.0.0
minimatch@3.1.2:
dependencies:
- brace-expansion: 1.1.11
+ brace-expansion: 1.1.12
minimatch@5.1.6:
dependencies:
@@ -9337,7 +9303,7 @@ snapshots:
minimatch@9.0.5:
dependencies:
- brace-expansion: 2.0.1
+ brace-expansion: 2.0.2
minimist@1.2.8: {}
@@ -9351,18 +9317,25 @@ snapshots:
mlly@1.7.2:
dependencies:
- acorn: 8.14.0
+ acorn: 8.15.0
pathe: 1.1.2
pkg-types: 1.2.1
ufo: 1.6.1
mlly@1.7.4:
dependencies:
- acorn: 8.14.0
+ acorn: 8.15.0
pathe: 2.0.3
pkg-types: 1.3.1
ufo: 1.5.4
+ mlly@1.8.0:
+ dependencies:
+ acorn: 8.15.0
+ pathe: 2.0.3
+ pkg-types: 1.3.1
+ ufo: 1.6.1
+
module-definition@6.0.1:
dependencies:
ast-module-types: 6.0.1
@@ -9431,7 +9404,7 @@ snapshots:
klona: 2.0.6
knitwork: 1.2.0
listhen: 1.9.0
- magic-string: 0.30.17
+ magic-string: 0.30.19
magicast: 0.3.5
mime: 4.0.7
mlly: 1.7.4
@@ -9450,7 +9423,7 @@ snapshots:
semver: 7.7.2
serve-placeholder: 2.0.2
serve-static: 2.2.0
- source-map: 0.7.4
+ source-map: 0.7.6
std-env: 3.9.0
ufo: 1.6.1
ultrahtml: 1.6.0
@@ -9515,9 +9488,11 @@ snapshots:
node-releases@2.0.19: {}
+ node-releases@2.0.21: {}
+
node-source-walk@7.0.1:
dependencies:
- '@babel/parser': 7.27.5
+ '@babel/parser': 7.28.4
nopt@8.1.0:
dependencies:
@@ -9526,7 +9501,7 @@ snapshots:
normalize-package-data@6.0.2:
dependencies:
hosted-git-info: 7.0.2
- semver: 7.7.2
+ semver: 7.7.3
validate-npm-package-license: 3.0.4
normalize-path@2.1.1:
@@ -9550,7 +9525,7 @@ snapshots:
citty: 0.1.6
consola: 3.4.2
pathe: 2.0.3
- pkg-types: 2.1.0
+ pkg-types: 2.3.0
tinyexec: 0.3.2
object-assign@4.1.1: {}
@@ -9642,21 +9617,18 @@ snapshots:
package-json-from-dist@1.0.1: {}
- package-manager-detector@0.2.10:
- dependencies:
- quansync: 0.2.10
+ package-manager-detector@1.5.0: {}
parent-module@1.0.1:
dependencies:
callsites: 3.1.0
- parse-entities@4.0.1:
+ parse-entities@4.0.2:
dependencies:
'@types/unist': 2.0.11
- character-entities: 2.0.2
character-entities-legacy: 3.0.0
character-reference-invalid: 2.0.1
- decode-named-character-reference: 1.0.2
+ decode-named-character-reference: 1.2.0
is-alphanumerical: 2.0.1
is-decimal: 2.0.1
is-hexadecimal: 2.0.1
@@ -9669,6 +9641,8 @@ snapshots:
index-to-position: 1.1.0
type-fest: 4.41.0
+ parse-numeric-range@1.3.0: {}
+
parse5-htmlparser2-tree-adapter@7.1.0:
dependencies:
domhandler: 5.0.3
@@ -9678,6 +9652,10 @@ snapshots:
dependencies:
entities: 4.5.0
+ parse5@7.3.0:
+ dependencies:
+ entities: 6.0.1
+
parseurl@1.3.3: {}
path-exists@4.0.0: {}
@@ -9718,20 +9696,27 @@ snapshots:
picomatch@4.0.2: {}
+ picomatch@4.0.3: {}
+
pify@2.3.0: {}
+ pioppo@1.2.1:
+ dependencies:
+ dettle: 1.0.5
+ when-exit: 2.1.4
+
pirates@4.0.6: {}
pkg-types@1.2.1:
dependencies:
confbox: 0.1.8
- mlly: 1.7.2
+ mlly: 1.8.0
pathe: 1.1.2
pkg-types@1.3.1:
dependencies:
confbox: 0.1.8
- mlly: 1.7.4
+ mlly: 1.8.0
pathe: 2.0.3
pkg-types@2.1.0:
@@ -9740,6 +9725,12 @@ snapshots:
exsolve: 1.0.5
pathe: 2.0.3
+ pkg-types@2.3.0:
+ dependencies:
+ confbox: 0.2.2
+ exsolve: 1.0.7
+ pathe: 2.0.3
+
postcss-import@15.1.0(postcss@8.5.6):
dependencies:
postcss: 8.5.6
@@ -9755,7 +9746,7 @@ snapshots:
postcss-load-config@4.0.2(postcss@8.5.6):
dependencies:
lilconfig: 3.1.3
- yaml: 2.6.0
+ yaml: 2.8.1
optionalDependencies:
postcss: 8.5.6
@@ -9789,8 +9780,6 @@ snapshots:
picocolors: 1.1.1
source-map-js: 1.2.1
- preact@10.24.3: {}
-
precinct@12.2.0:
dependencies:
'@dependents/detective-less': 5.0.1
@@ -9802,38 +9791,46 @@ snapshots:
detective-sass: 6.0.1
detective-scss: 5.0.1
detective-stylus: 5.0.1
- detective-typescript: 14.0.0(typescript@5.9.2)
- detective-vue2: 2.2.0(typescript@5.9.2)
+ detective-typescript: 14.0.0(typescript@5.9.3)
+ detective-vue2: 2.2.0(typescript@5.9.3)
module-definition: 6.0.1
node-source-walk: 7.0.1
postcss: 8.5.6
- typescript: 5.9.2
+ typescript: 5.9.3
transitivePeerDependencies:
- supports-color
prelude-ls@1.2.1: {}
- prettier-plugin-tailwindcss@0.6.13(prettier@3.5.3):
+ prettier-plugin-tailwindcss@0.7.1(prettier@3.6.2):
dependencies:
- prettier: 3.5.3
-
- prettier@3.5.3: {}
+ prettier: 3.6.2
- pretty-bytes@6.1.1: {}
+ prettier@3.6.2: {}
- pretty-format@29.7.0:
+ prettier@4.0.0-alpha.10:
dependencies:
- '@jest/schemas': 29.6.3
- ansi-styles: 5.2.0
- react-is: 18.3.1
+ '@prettier/cli': 0.6.0(prettier@4.0.0-alpha.10)
+
+ pretty-bytes@6.1.1: {}
process-nextick-args@2.0.1: {}
process@0.11.10: {}
+ promise-make-counter@1.0.2:
+ dependencies:
+ promise-make-naked: 3.0.2
+
+ promise-make-naked@2.1.2: {}
+
+ promise-make-naked@3.0.2: {}
+
+ promise-resolve-timeout@2.0.1: {}
+
property-information@6.5.0: {}
- property-information@7.0.0: {}
+ property-information@7.1.0: {}
pump@3.0.2:
dependencies:
@@ -9846,7 +9843,7 @@ snapshots:
dependencies:
side-channel: 1.1.0
- quansync@0.2.10: {}
+ quansync@0.2.11: {}
queue-microtask@1.2.3: {}
@@ -9865,13 +9862,6 @@ snapshots:
defu: 6.1.4
destr: 2.0.5
- react-is@18.3.1: {}
-
- react@18.3.1:
- dependencies:
- loose-envify: 1.4.0
- optional: true
-
read-cache@1.0.0:
dependencies:
pify: 2.3.0
@@ -9924,13 +9914,13 @@ snapshots:
readdirp@4.1.2: {}
- recast@0.23.9:
+ recast@0.23.11:
dependencies:
ast-types: 0.16.1
esprima: 4.0.1
source-map: 0.6.1
tiny-invariant: 1.3.3
- tslib: 2.8.0
+ tslib: 2.8.1
recma-build-jsx@1.0.0:
dependencies:
@@ -9938,15 +9928,14 @@ snapshots:
estree-util-build-jsx: 3.0.1
vfile: 6.0.3
- recma-jsx@1.0.0(acorn@8.15.0):
+ recma-jsx@1.0.1(acorn@8.15.0):
dependencies:
+ acorn: 8.15.0
acorn-jsx: 5.3.2(acorn@8.15.0)
estree-util-to-js: 2.0.0
recma-parse: 1.0.0
recma-stringify: 1.0.0
unified: 11.0.5
- transitivePeerDependencies:
- - acorn
recma-parse@1.0.0:
dependencies:
@@ -9990,7 +9979,7 @@ snapshots:
rehype-autolink-headings@7.1.0:
dependencies:
'@types/hast': 3.0.4
- '@ungap/structured-clone': 1.2.0
+ '@ungap/structured-clone': 1.3.0
hast-util-heading-rank: 3.0.0
hast-util-is-element: 3.0.0
unified: 11.0.5
@@ -10003,14 +9992,14 @@ snapshots:
rehype-raw@7.0.0:
dependencies:
'@types/hast': 3.0.4
- hast-util-raw: 9.0.4
+ hast-util-raw: 9.1.0
vfile: 6.0.3
rehype-recma@1.0.0:
dependencies:
'@types/estree': 1.0.8
'@types/hast': 3.0.4
- hast-util-to-estree: 3.1.0
+ hast-util-to-estree: 3.1.3
transitivePeerDependencies:
- supports-color
@@ -10022,10 +10011,10 @@ snapshots:
hast-util-to-string: 3.0.1
unist-util-visit: 5.0.0
- remark-directive@3.0.0:
+ remark-directive@3.0.1:
dependencies:
'@types/mdast': 4.0.4
- mdast-util-directive: 3.0.0
+ mdast-util-directive: 3.1.0
micromark-extension-directive: 3.0.2
unified: 11.0.5
transitivePeerDependencies:
@@ -10040,7 +10029,7 @@ snapshots:
transitivePeerDependencies:
- supports-color
- remark-gfm@4.0.0:
+ remark-gfm@4.0.1:
dependencies:
'@types/mdast': 4.0.4
mdast-util-gfm: 3.1.0
@@ -10051,7 +10040,7 @@ snapshots:
transitivePeerDependencies:
- supports-color
- remark-mdx@3.1.0:
+ remark-mdx@3.1.1:
dependencies:
mdast-util-mdx: 3.0.0
micromark-extension-mdxjs: 3.0.0
@@ -10062,12 +10051,12 @@ snapshots:
dependencies:
'@types/mdast': 4.0.4
mdast-util-from-markdown: 2.0.2
- micromark-util-types: 2.0.0
+ micromark-util-types: 2.0.2
unified: 11.0.5
transitivePeerDependencies:
- supports-color
- remark-rehype@11.1.1:
+ remark-rehype@11.1.2:
dependencies:
'@types/hast': 3.0.4
'@types/mdast': 4.0.4
@@ -10078,7 +10067,7 @@ snapshots:
remark-stringify@11.0.0:
dependencies:
'@types/mdast': 4.0.4
- mdast-util-to-markdown: 2.1.0
+ mdast-util-to-markdown: 2.1.2
unified: 11.0.5
remove-trailing-separator@1.1.0: {}
@@ -10116,8 +10105,8 @@ snapshots:
rollup-plugin-visualizer@5.14.0(rollup@4.43.0):
dependencies:
open: 8.4.2
- picomatch: 4.0.2
- source-map: 0.7.4
+ picomatch: 4.0.3
+ source-map: 0.7.6
yargs: 17.7.2
optionalDependencies:
rollup: 4.43.0
@@ -10162,8 +10151,6 @@ snapshots:
scule@1.3.0: {}
- search-insights@2.17.3: {}
-
section-matter@1.0.0:
dependencies:
extend-shallow: 2.0.1
@@ -10173,6 +10160,8 @@ snapshots:
semver@7.7.2: {}
+ semver@7.7.3: {}
+
send@0.19.0:
dependencies:
debug: 2.6.9
@@ -10193,7 +10182,7 @@ snapshots:
send@1.2.0:
dependencies:
- debug: 4.4.1
+ debug: 4.4.3
encodeurl: 2.0.0
escape-html: 1.0.3
etag: 1.8.1
@@ -10211,15 +10200,13 @@ snapshots:
dependencies:
randombytes: 2.1.0
- seroval-plugins@1.1.1(seroval@1.1.1):
- dependencies:
- seroval: 1.1.1
-
seroval-plugins@1.3.2(seroval@1.3.2):
dependencies:
seroval: 1.3.2
- seroval@1.1.1: {}
+ seroval-plugins@1.3.3(seroval@1.3.2):
+ dependencies:
+ seroval: 1.3.2
seroval@1.3.2: {}
@@ -10264,14 +10251,14 @@ snapshots:
'@shikijs/vscode-textmate': 10.0.2
'@types/hast': 3.0.4
- shiki@3.11.0:
+ shiki@3.14.0:
dependencies:
- '@shikijs/core': 3.11.0
- '@shikijs/engine-javascript': 3.11.0
- '@shikijs/engine-oniguruma': 3.11.0
- '@shikijs/langs': 3.11.0
- '@shikijs/themes': 3.11.0
- '@shikijs/types': 3.11.0
+ '@shikijs/core': 3.14.0
+ '@shikijs/engine-javascript': 3.14.0
+ '@shikijs/engine-oniguruma': 3.14.0
+ '@shikijs/langs': 3.14.0
+ '@shikijs/themes': 3.14.0
+ '@shikijs/types': 3.14.0
'@shikijs/vscode-textmate': 10.0.2
'@types/hast': 3.0.4
@@ -10305,20 +10292,10 @@ snapshots:
signal-exit@4.1.0: {}
- simple-git@3.27.0:
- dependencies:
- '@kwsites/file-exists': 1.1.1
- '@kwsites/promise-deferred': 1.1.1
- debug: 4.4.1
- transitivePeerDependencies:
- - supports-color
-
simple-swizzle@0.2.2:
dependencies:
is-arrayish: 0.3.2
- sisteransi@1.0.5: {}
-
sitemap@8.0.0:
dependencies:
'@types/node': 17.0.45
@@ -10347,10 +10324,10 @@ snapshots:
'@corvu/utils': 0.4.2(solid-js@1.9.9)
solid-js: 1.9.9
- solid-mdx@0.0.7(solid-js@1.9.9)(vite@6.3.5(@types/node@24.3.0)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.0)):
+ solid-mdx@0.0.7(solid-js@1.9.9)(vite@6.3.5(@types/node@24.10.0)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.1)):
dependencies:
solid-js: 1.9.9
- vite: 6.3.5(@types/node@24.3.0)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.0)
+ vite: 6.3.5(@types/node@24.10.0)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.1)
solid-presence@0.1.8(solid-js@1.9.9):
dependencies:
@@ -10364,14 +10341,14 @@ snapshots:
solid-refresh@0.6.3(solid-js@1.9.9):
dependencies:
- '@babel/generator': 7.25.7
- '@babel/helper-module-imports': 7.25.7
- '@babel/types': 7.25.8
+ '@babel/generator': 7.28.3
+ '@babel/helper-module-imports': 7.27.1
+ '@babel/types': 7.28.4
solid-js: 1.9.9
transitivePeerDependencies:
- supports-color
- solid-use@0.9.0(solid-js@1.9.9):
+ solid-use@0.9.1(solid-js@1.9.9):
dependencies:
solid-js: 1.9.9
@@ -10384,7 +10361,7 @@ snapshots:
source-map@0.6.1: {}
- source-map@0.7.4: {}
+ source-map@0.7.6: {}
space-separated-tokens@2.0.2: {}
@@ -10402,6 +10379,13 @@ snapshots:
spdx-license-ids@3.0.21: {}
+ specialist@1.4.5:
+ dependencies:
+ tiny-bin: 1.11.3
+ tiny-colors: 2.2.2
+ tiny-parse-argv: 2.8.2
+ tiny-updater: 3.5.3
+
sprintf-js@1.0.3: {}
stack-trace@0.0.10: {}
@@ -10418,6 +10402,8 @@ snapshots:
std-env@3.9.0: {}
+ stdin-blocker@2.0.1: {}
+
streamx@2.22.1:
dependencies:
fast-fifo: 1.3.2
@@ -10425,6 +10411,8 @@ snapshots:
optionalDependencies:
bare-events: 2.5.4
+ string-escape-regex@1.0.1: {}
+
string-width@4.2.3:
dependencies:
emoji-regex: 8.0.0
@@ -10462,7 +10450,7 @@ snapshots:
strip-ansi@7.1.0:
dependencies:
- ansi-regex: 6.1.0
+ ansi-regex: 6.2.0
strip-bom-string@1.0.0: {}
@@ -10474,9 +10462,19 @@ snapshots:
dependencies:
js-tokens: 9.0.1
- style-to-object@0.4.4:
+ strip-literal@3.1.0:
dependencies:
- inline-style-parser: 0.1.1
+ js-tokens: 9.0.1
+
+ stubborn-fs@1.2.5: {}
+
+ style-to-js@1.1.18:
+ dependencies:
+ style-to-object: 1.0.11
+
+ style-to-object@1.0.11:
+ dependencies:
+ inline-style-parser: 0.2.4
style-to-object@1.0.8:
dependencies:
@@ -10492,7 +10490,7 @@ snapshots:
pirates: 4.0.6
ts-interface-checker: 0.1.13
- supports-color@10.0.0: {}
+ supports-color@10.2.2: {}
supports-color@5.5.0:
dependencies:
@@ -10551,7 +10549,7 @@ snapshots:
terracotta@1.0.6(solid-js@1.9.9):
dependencies:
solid-js: 1.9.9
- solid-use: 0.9.0(solid-js@1.9.9)
+ solid-use: 0.9.1(solid-js@1.9.9)
terser@5.42.0:
dependencies:
@@ -10574,20 +10572,78 @@ snapshots:
dependencies:
any-promise: 1.3.0
+ tiny-bin@1.11.3:
+ dependencies:
+ ansi-purge: 1.1.0
+ fast-string-width: 3.0.2
+ get-current-package: 1.0.1
+ tiny-colors: 2.2.2
+ tiny-levenshtein: 1.1.0
+ tiny-parse-argv: 2.8.2
+ tiny-updater: 3.5.3
+
+ tiny-colors@2.2.2: {}
+
+ tiny-cursor@2.0.1:
+ dependencies:
+ when-exit: 2.1.4
+
+ tiny-editorconfig@1.0.1:
+ dependencies:
+ ini-simple-parser: 1.0.1
+ zeptomatch: 2.1.0
+
tiny-invariant@1.3.3: {}
- tinyexec@0.3.2: {}
+ tiny-jsonc@1.0.2: {}
+
+ tiny-levenshtein@1.1.0: {}
- tinyglobby@0.2.12:
+ tiny-parse-argv@2.8.2: {}
+
+ tiny-readdir-glob@1.23.2:
dependencies:
- fdir: 6.4.3(picomatch@4.0.2)
- picomatch: 4.0.2
+ tiny-readdir: 2.7.4
+ zeptomatch: 2.1.0
+ zeptomatch-explode: 1.0.1
+ zeptomatch-is-static: 1.0.1
+ zeptomatch-unescape: 1.0.1
+
+ tiny-readdir@2.7.4:
+ dependencies:
+ promise-make-counter: 1.0.2
+
+ tiny-spinner@2.0.5:
+ dependencies:
+ stdin-blocker: 2.0.1
+ tiny-colors: 2.2.2
+ tiny-cursor: 2.0.1
+ tiny-truncate: 1.0.5
+
+ tiny-truncate@1.0.5:
+ dependencies:
+ ansi-truncate: 1.4.0
+
+ tiny-updater@3.5.3:
+ dependencies:
+ ionstore: 1.0.1
+ tiny-colors: 2.2.2
+ when-exit: 2.1.4
+
+ tinyexec@0.3.2: {}
+
+ tinyexec@1.0.1: {}
tinyglobby@0.2.14:
dependencies:
fdir: 6.4.6(picomatch@4.0.2)
picomatch: 4.0.2
+ tinyglobby@0.2.15:
+ dependencies:
+ fdir: 6.5.0(picomatch@4.0.3)
+ picomatch: 4.0.3
+
tmp-promise@3.0.3:
dependencies:
tmp: 0.2.3
@@ -10612,23 +10668,21 @@ snapshots:
trough@2.2.0: {}
- ts-api-utils@2.1.0(typescript@5.9.2):
+ ts-api-utils@2.1.0(typescript@5.9.3):
dependencies:
- typescript: 5.9.2
+ typescript: 5.9.3
ts-interface-checker@0.1.13: {}
- tslib@2.8.0: {}
-
tslib@2.8.1: {}
twoslash-protocol@0.2.12: {}
- twoslash@0.2.12(typescript@5.9.2):
+ twoslash@0.2.12(typescript@5.9.3):
dependencies:
- '@typescript/vfs': 1.6.1(typescript@5.9.2)
+ '@typescript/vfs': 1.6.1(typescript@5.9.3)
twoslash-protocol: 0.2.12
- typescript: 5.9.2
+ typescript: 5.9.3
transitivePeerDependencies:
- supports-color
@@ -10638,18 +10692,18 @@ snapshots:
type-fest@4.41.0: {}
- typescript-eslint@8.40.0(eslint@9.33.0(jiti@2.4.2))(typescript@5.9.2):
+ typescript-eslint@8.46.2(eslint@9.39.1(jiti@2.4.2))(typescript@5.9.3):
dependencies:
- '@typescript-eslint/eslint-plugin': 8.40.0(@typescript-eslint/parser@8.40.0(eslint@9.33.0(jiti@2.4.2))(typescript@5.9.2))(eslint@9.33.0(jiti@2.4.2))(typescript@5.9.2)
- '@typescript-eslint/parser': 8.40.0(eslint@9.33.0(jiti@2.4.2))(typescript@5.9.2)
- '@typescript-eslint/typescript-estree': 8.40.0(typescript@5.9.2)
- '@typescript-eslint/utils': 8.40.0(eslint@9.33.0(jiti@2.4.2))(typescript@5.9.2)
- eslint: 9.33.0(jiti@2.4.2)
- typescript: 5.9.2
+ '@typescript-eslint/eslint-plugin': 8.46.2(@typescript-eslint/parser@8.46.2(eslint@9.39.1(jiti@2.4.2))(typescript@5.9.3))(eslint@9.39.1(jiti@2.4.2))(typescript@5.9.3)
+ '@typescript-eslint/parser': 8.46.2(eslint@9.39.1(jiti@2.4.2))(typescript@5.9.3)
+ '@typescript-eslint/typescript-estree': 8.46.2(typescript@5.9.3)
+ '@typescript-eslint/utils': 8.46.2(eslint@9.39.1(jiti@2.4.2))(typescript@5.9.3)
+ eslint: 9.39.1(jiti@2.4.2)
+ typescript: 5.9.3
transitivePeerDependencies:
- supports-color
- typescript@5.9.2: {}
+ typescript@5.9.3: {}
ufo@1.5.4: {}
@@ -10657,20 +10711,18 @@ snapshots:
ultrahtml@1.6.0: {}
- ultramatter@0.0.4: {}
-
uncrypto@0.1.3: {}
unctx@2.4.1:
dependencies:
acorn: 8.15.0
estree-walker: 3.0.3
- magic-string: 0.30.17
+ magic-string: 0.30.19
unplugin: 2.3.5
undici-types@5.28.4: {}
- undici-types@7.10.0: {}
+ undici-types@7.16.0: {}
unenv@1.10.0:
dependencies:
@@ -10702,39 +10754,39 @@ snapshots:
trough: 2.2.0
vfile: 6.0.3
- unimport@4.1.2:
+ unimport@4.2.0:
dependencies:
acorn: 8.15.0
escape-string-regexp: 5.0.0
estree-walker: 3.0.3
- local-pkg: 1.1.1
- magic-string: 0.30.17
- mlly: 1.7.4
+ local-pkg: 1.1.2
+ magic-string: 0.30.19
+ mlly: 1.8.0
pathe: 2.0.3
- picomatch: 4.0.2
- pkg-types: 1.3.1
+ picomatch: 4.0.3
+ pkg-types: 2.3.0
scule: 1.3.0
- strip-literal: 3.0.0
- tinyglobby: 0.2.14
- unplugin: 2.3.5
- unplugin-utils: 0.2.4
+ strip-literal: 3.1.0
+ tinyglobby: 0.2.15
+ unplugin: 2.3.10
+ unplugin-utils: 0.2.5
unimport@5.0.1:
dependencies:
acorn: 8.15.0
escape-string-regexp: 5.0.0
estree-walker: 3.0.3
- local-pkg: 1.1.1
- magic-string: 0.30.17
+ local-pkg: 1.1.2
+ magic-string: 0.30.19
mlly: 1.7.4
pathe: 2.0.3
- picomatch: 4.0.2
+ picomatch: 4.0.3
pkg-types: 2.1.0
scule: 1.3.0
strip-literal: 3.0.0
- tinyglobby: 0.2.14
- unplugin: 2.3.5
- unplugin-utils: 0.2.4
+ tinyglobby: 0.2.15
+ unplugin: 2.3.10
+ unplugin-utils: 0.2.5
unist-builder@4.0.0:
dependencies:
@@ -10743,9 +10795,9 @@ snapshots:
unist-util-find-after@5.0.0:
dependencies:
'@types/unist': 3.0.3
- unist-util-is: 6.0.0
+ unist-util-is: 6.0.1
- unist-util-is@6.0.0:
+ unist-util-is@6.0.1:
dependencies:
'@types/unist': 3.0.3
@@ -10771,16 +10823,16 @@ snapshots:
dependencies:
'@types/unist': 3.0.3
- unist-util-visit-parents@6.0.1:
+ unist-util-visit-parents@6.0.2:
dependencies:
'@types/unist': 3.0.3
- unist-util-is: 6.0.0
+ unist-util-is: 6.0.1
unist-util-visit@5.0.0:
dependencies:
'@types/unist': 3.0.3
- unist-util-is: 6.0.0
- unist-util-visit-parents: 6.0.1
+ unist-util-is: 6.0.1
+ unist-util-visit-parents: 6.0.2
unist@0.0.1: {}
@@ -10788,22 +10840,22 @@ snapshots:
dependencies:
normalize-path: 2.1.1
- unplugin-auto-import@19.1.1:
+ unplugin-auto-import@19.3.0:
dependencies:
- local-pkg: 1.1.1
- magic-string: 0.30.17
- picomatch: 4.0.2
- unimport: 4.1.2
- unplugin: 2.3.5
- unplugin-utils: 0.2.4
+ local-pkg: 1.1.2
+ magic-string: 0.30.19
+ picomatch: 4.0.3
+ unimport: 4.2.0
+ unplugin: 2.3.10
+ unplugin-utils: 0.2.5
- unplugin-icons@22.1.0(@vue/compiler-sfc@3.5.16):
+ unplugin-icons@22.5.0(@vue/compiler-sfc@3.5.16):
dependencies:
- '@antfu/install-pkg': 1.0.0
- '@iconify/utils': 2.3.0
- debug: 4.4.1
- local-pkg: 1.1.1
- unplugin: 2.3.5
+ '@antfu/install-pkg': 1.1.0
+ '@iconify/utils': 3.0.2
+ debug: 4.4.3
+ local-pkg: 1.1.2
+ unplugin: 2.3.10
optionalDependencies:
'@vue/compiler-sfc': 3.5.16
transitivePeerDependencies:
@@ -10812,17 +10864,29 @@ snapshots:
unplugin-utils@0.2.4:
dependencies:
pathe: 2.0.3
- picomatch: 4.0.2
+ picomatch: 4.0.3
+
+ unplugin-utils@0.2.5:
+ dependencies:
+ pathe: 2.0.3
+ picomatch: 4.0.3
unplugin@1.16.1:
dependencies:
acorn: 8.15.0
webpack-virtual-modules: 0.6.2
+ unplugin@2.3.10:
+ dependencies:
+ '@jridgewell/remapping': 2.3.5
+ acorn: 8.15.0
+ picomatch: 4.0.3
+ webpack-virtual-modules: 0.6.2
+
unplugin@2.3.5:
dependencies:
acorn: 8.15.0
- picomatch: 4.0.2
+ picomatch: 4.0.3
webpack-virtual-modules: 0.6.2
unstorage@1.16.0(db0@0.3.2)(ioredis@5.6.1):
@@ -10856,7 +10920,7 @@ snapshots:
unwasm@0.3.9:
dependencies:
knitwork: 1.2.0
- magic-string: 0.30.17
+ magic-string: 0.30.19
mlly: 1.7.4
pathe: 1.1.2
pkg-types: 1.3.1
@@ -10868,9 +10932,9 @@ snapshots:
escalade: 3.2.0
picocolors: 1.1.1
- update-browserslist-db@1.1.3(browserslist@4.25.3):
+ update-browserslist-db@1.1.3(browserslist@4.26.0):
dependencies:
- browserslist: 4.25.3
+ browserslist: 4.26.0
escalade: 3.2.0
picocolors: 1.1.1
@@ -10888,7 +10952,7 @@ snapshots:
uuid@11.1.0: {}
- validate-html-nesting@1.2.2: {}
+ validate-html-nesting@1.2.3: {}
validate-npm-package-license@3.0.4:
dependencies:
@@ -10900,7 +10964,7 @@ snapshots:
'@types/unist': 3.0.3
vfile: 6.0.3
- vfile-message@4.0.2:
+ vfile-message@4.0.3:
dependencies:
'@types/unist': 3.0.3
unist-util-stringify-position: 4.0.0
@@ -10908,9 +10972,9 @@ snapshots:
vfile@6.0.3:
dependencies:
'@types/unist': 3.0.3
- vfile-message: 4.0.2
+ vfile-message: 4.0.3
- vinxi@0.5.7(@types/node@24.3.0)(db0@0.3.2)(ioredis@5.6.1)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.0):
+ vinxi@0.5.7(@types/node@24.10.0)(db0@0.3.2)(ioredis@5.6.1)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.1):
dependencies:
'@babel/core': 7.25.8
'@babel/plugin-syntax-jsx': 7.25.7(@babel/core@7.25.8)
@@ -10944,7 +11008,7 @@ snapshots:
unctx: 2.4.1
unenv: 1.10.0
unstorage: 1.16.0(db0@0.3.2)(ioredis@5.6.1)
- vite: 6.3.5(@types/node@24.3.0)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.0)
+ vite: 6.3.5(@types/node@24.10.0)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.1)
zod: 3.25.76
transitivePeerDependencies:
- '@azure/app-configuration'
@@ -10988,20 +11052,20 @@ snapshots:
- xml2js
- yaml
- vite-plugin-solid@2.11.2(solid-js@1.9.9)(vite@6.3.5(@types/node@24.3.0)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.0)):
+ vite-plugin-solid@2.11.8(solid-js@1.9.9)(vite@6.3.5(@types/node@24.10.0)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.1)):
dependencies:
- '@babel/core': 7.25.8
+ '@babel/core': 7.28.4
'@types/babel__core': 7.20.5
- babel-preset-solid: 1.9.2(@babel/core@7.25.8)
+ babel-preset-solid: 1.9.9(@babel/core@7.28.4)(solid-js@1.9.9)
merge-anything: 5.1.7
solid-js: 1.9.9
solid-refresh: 0.6.3(solid-js@1.9.9)
- vite: 6.3.5(@types/node@24.3.0)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.0)
- vitefu: 1.0.5(vite@6.3.5(@types/node@24.3.0)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.0))
+ vite: 6.3.5(@types/node@24.10.0)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.1)
+ vitefu: 1.1.1(vite@6.3.5(@types/node@24.10.0)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.1))
transitivePeerDependencies:
- supports-color
- vite@6.3.5(@types/node@24.3.0)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.0):
+ vite@6.3.5(@types/node@24.10.0)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.1):
dependencies:
esbuild: 0.25.5
fdir: 6.4.6(picomatch@4.0.2)
@@ -11010,15 +11074,15 @@ snapshots:
rollup: 4.43.0
tinyglobby: 0.2.14
optionalDependencies:
- '@types/node': 24.3.0
+ '@types/node': 24.10.0
fsevents: 2.3.3
jiti: 2.4.2
terser: 5.42.0
- yaml: 2.8.0
+ yaml: 2.8.1
- vitefu@1.0.5(vite@6.3.5(@types/node@24.3.0)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.0)):
+ vitefu@1.1.1(vite@6.3.5(@types/node@24.10.0)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.1)):
optionalDependencies:
- vite: 6.3.5(@types/node@24.3.0)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.0)
+ vite: 6.3.5(@types/node@24.10.0)(jiti@2.4.2)(terser@5.42.0)(yaml@2.8.1)
web-namespaces@2.0.1: {}
@@ -11028,11 +11092,15 @@ snapshots:
webpack-virtual-modules@0.6.2: {}
+ webworker-shim@1.1.4: {}
+
whatwg-url@5.0.0:
dependencies:
tr46: 0.0.3
webidl-conversions: 3.0.1
+ when-exit@2.1.4: {}
+
which@2.0.2:
dependencies:
isexe: 2.0.0
@@ -11067,6 +11135,11 @@ snapshots:
word-wrap@1.2.5: {}
+ worktank@2.7.3:
+ dependencies:
+ promise-make-naked: 2.1.2
+ webworker-shim: 1.1.4
+
wrap-ansi@7.0.0:
dependencies:
ansi-styles: 4.3.0
@@ -11075,13 +11148,13 @@ snapshots:
wrap-ansi@8.1.0:
dependencies:
- ansi-styles: 6.2.1
+ ansi-styles: 6.2.3
string-width: 5.1.2
strip-ansi: 7.1.0
wrap-ansi@9.0.0:
dependencies:
- ansi-styles: 6.2.1
+ ansi-styles: 6.2.3
string-width: 7.2.0
strip-ansi: 7.1.0
@@ -11098,9 +11171,7 @@ snapshots:
yallist@5.0.0: {}
- yaml@2.6.0: {}
-
- yaml@2.8.0: {}
+ yaml@2.8.1: {}
yargs-parser@21.1.1: {}
@@ -11136,6 +11207,19 @@ snapshots:
cookie: 1.0.2
youch-core: 0.3.2
+ zeptomatch-escape@1.0.1: {}
+
+ zeptomatch-explode@1.0.1: {}
+
+ zeptomatch-is-static@1.0.1: {}
+
+ zeptomatch-unescape@1.0.1: {}
+
+ zeptomatch@2.1.0:
+ dependencies:
+ grammex: 3.1.11
+ graphmatch: 1.1.0
+
zip-stream@6.0.1:
dependencies:
archiver-utils: 5.0.2
@@ -11144,4 +11228,6 @@ snapshots:
zod@3.25.76: {}
+ zod@4.1.12: {}
+
zwitch@2.0.4: {}
diff --git a/public/fonts/Geist-Bold.woff2 b/public/fonts/Geist-Bold.woff2
index d0562e48ec..46f524f4ff 100644
Binary files a/public/fonts/Geist-Bold.woff2 and b/public/fonts/Geist-Bold.woff2 differ
diff --git a/public/fonts/Geist-Light.woff2 b/public/fonts/Geist-Light.woff2
index 56611204f7..91896380e0 100644
Binary files a/public/fonts/Geist-Light.woff2 and b/public/fonts/Geist-Light.woff2 differ
diff --git a/public/fonts/Geist-Medium.woff2 b/public/fonts/Geist-Medium.woff2
index 76edd10515..ef6dbb2115 100644
Binary files a/public/fonts/Geist-Medium.woff2 and b/public/fonts/Geist-Medium.woff2 differ
diff --git a/public/fonts/Geist-Regular.woff2 b/public/fonts/Geist-Regular.woff2
index 2ebd0097e7..0db0f1943d 100644
Binary files a/public/fonts/Geist-Regular.woff2 and b/public/fonts/Geist-Regular.woff2 differ
diff --git a/public/fonts/Geist-SemiBold.woff2 b/public/fonts/Geist-SemiBold.woff2
index a6c53e8b06..8384523039 100644
Binary files a/public/fonts/Geist-SemiBold.woff2 and b/public/fonts/Geist-SemiBold.woff2 differ
diff --git a/public/fonts/GeistMono-Bold.woff2 b/public/fonts/GeistMono-Bold.woff2
index 854b75ae2e..aa9768d27b 100644
Binary files a/public/fonts/GeistMono-Bold.woff2 and b/public/fonts/GeistMono-Bold.woff2 differ
diff --git a/public/fonts/GeistMono-Medium.woff2 b/public/fonts/GeistMono-Medium.woff2
index aaf10d7ad1..bb58342017 100644
Binary files a/public/fonts/GeistMono-Medium.woff2 and b/public/fonts/GeistMono-Medium.woff2 differ
diff --git a/public/fonts/GeistMono-Regular.woff2 b/public/fonts/GeistMono-Regular.woff2
index 1603e0eb79..c27eb886c1 100644
Binary files a/public/fonts/GeistMono-Regular.woff2 and b/public/fonts/GeistMono-Regular.woff2 differ
diff --git a/public/fonts/GeistMono-SemiBold.woff2 b/public/fonts/GeistMono-SemiBold.woff2
index d973a8758b..6bf41ef479 100644
Binary files a/public/fonts/GeistMono-SemiBold.woff2 and b/public/fonts/GeistMono-SemiBold.woff2 differ
diff --git a/public/llms.txt b/public/llms.txt
new file mode 100644
index 0000000000..59c510b3f7
--- /dev/null
+++ b/public/llms.txt
@@ -0,0 +1,221 @@
+# SolidJS Documentation
+> Solid is a JavaScript library built around signals. It prioritizes a simple and predictable development experience, making it a great choice for developers of all skill levels. These are the documention for the main official projects.
+> - SolidJS: The core library for building reactive user interfaces.
+> - SolidStart: A full-stack framework for building web applications.
+> - Solid Router: A routing library for building web applications.
+> - Solid Meta: A library for managing the HTML head and meta tags.
+
+## SolidJS
+
+- [Overview](https://docs.solidjs.com/)
+- [Quick start](https://docs.solidjs.com/quick-start)
+- [Intro to reactivity](https://docs.solidjs.com/concepts/intro-to-reactivity)
+- [Understanding JSX](https://docs.solidjs.com/concepts/understanding-jsx)
+- [Basics](https://docs.solidjs.com/concepts/components/basics)
+- [Class and style](https://docs.solidjs.com/concepts/components/class-style)
+- [Event handlers](https://docs.solidjs.com/concepts/components/event-handlers)
+- [Props](https://docs.solidjs.com/concepts/components/props)
+- [Signals](https://docs.solidjs.com/concepts/signals)
+- [Conditional rendering](https://docs.solidjs.com/concepts/control-flow/conditional-rendering)
+- [Dynamic](https://docs.solidjs.com/concepts/control-flow/dynamic)
+- [List rendering](https://docs.solidjs.com/concepts/control-flow/list-rendering)
+- [Portal](https://docs.solidjs.com/concepts/control-flow/portal)
+- [Error boundary](https://docs.solidjs.com/concepts/control-flow/error-boundary)
+- [Effects](https://docs.solidjs.com/concepts/effects)
+- [Derived signals](https://docs.solidjs.com/concepts/derived-values/derived-signals)
+- [Memos](https://docs.solidjs.com/concepts/derived-values/memos)
+- [Context](https://docs.solidjs.com/concepts/context)
+- [Stores](https://docs.solidjs.com/concepts/stores)
+- [Refs](https://docs.solidjs.com/concepts/refs)
+- [Fine-grained reactivity](https://docs.solidjs.com/advanced-concepts/fine-grained-reactivity)
+- [Styling your components](https://docs.solidjs.com/guides/styling-your-components)
+- [SASS](https://docs.solidjs.com/guides/styling-components/sass)
+- [LESS](https://docs.solidjs.com/guides/styling-components/less)
+- [CSS modules](https://docs.solidjs.com/guides/styling-components/css-modules)
+- [Macaron](https://docs.solidjs.com/guides/styling-components/macaron)
+- [Tailwind CSS](https://docs.solidjs.com/guides/styling-components/tailwind)
+- [UnoCSS](https://docs.solidjs.com/guides/styling-components/uno)
+- [State management](https://docs.solidjs.com/guides/state-management)
+- [Routing & navigation](https://docs.solidjs.com/guides/routing-and-navigation)
+- [Complex state management](https://docs.solidjs.com/guides/complex-state-management)
+- [Fetching data](https://docs.solidjs.com/guides/fetching-data)
+- [Testing](https://docs.solidjs.com/guides/testing)
+- [Deploy your app](https://docs.solidjs.com/guides/deploying-your-app)
+- [AWS via Flightcontrol](https://docs.solidjs.com/guides/deployment-options/aws-via-flightcontrol)
+- [AWS via SST](https://docs.solidjs.com/guides/deployment-options/aws-via-sst)
+- [Cloudflare](https://docs.solidjs.com/guides/deployment-options/cloudflare)
+- [Firebase](https://docs.solidjs.com/guides/deployment-options/firebase)
+- [Netlify](https://docs.solidjs.com/guides/deployment-options/netlify)
+- [Railway](https://docs.solidjs.com/guides/deployment-options/railway)
+- [Vercel](https://docs.solidjs.com/guides/deployment-options/vercel)
+- [Stormkit](https://docs.solidjs.com/guides/deployment-options/stormkit)
+- [Zerops](https://docs.solidjs.com/guides/deployment-options/zerops)
+- [Environment variables](https://docs.solidjs.com/configuration/environment-variables)
+- [TypeScript](https://docs.solidjs.com/configuration/typescript)
+- [createEffect](https://docs.solidjs.com/reference/basic-reactivity/create-effect)
+- [createMemo](https://docs.solidjs.com/reference/basic-reactivity/create-memo)
+- [createResource](https://docs.solidjs.com/reference/basic-reactivity/create-resource)
+- [createSignal](https://docs.solidjs.com/reference/basic-reactivity/create-signal)
+- [children](https://docs.solidjs.com/reference/component-apis/children)
+- [createContext](https://docs.solidjs.com/reference/component-apis/create-context)
+- [createUniqueId](https://docs.solidjs.com/reference/component-apis/create-unique-id)
+- [lazy](https://docs.solidjs.com/reference/component-apis/lazy)
+- [useContext](https://docs.solidjs.com/reference/component-apis/use-context)
+- [](https://docs.solidjs.com/reference/components/dynamic)
+- [](https://docs.solidjs.com/reference/components/error-boundary)
+- [](https://docs.solidjs.com/reference/components/for)
+- [](https://docs.solidjs.com/reference/components/index-component)
+- [](https://docs.solidjs.com/reference/components/no-hydration)
+- [](https://docs.solidjs.com/reference/components/portal)
+- [](https://docs.solidjs.com/reference/components/show)
+- [](https://docs.solidjs.com/reference/components/suspense)
+- [](https://docs.solidjs.com/reference/components/suspense-list)
+- [ / ](https://docs.solidjs.com/reference/components/switch-and-match)
+- [@once](https://docs.solidjs.com/reference/jsx-attributes/once)
+- [attr:*](https://docs.solidjs.com/reference/jsx-attributes/attr)
+- [bool:*](https://docs.solidjs.com/reference/jsx-attributes/bool)
+- [classList](https://docs.solidjs.com/reference/jsx-attributes/classlist)
+- [innerHTML](https://docs.solidjs.com/reference/jsx-attributes/innerhtml)
+- [on:*](https://docs.solidjs.com/reference/jsx-attributes/on)
+- [on*](https://docs.solidjs.com/reference/jsx-attributes/on_)
+- [prop:*](https://docs.solidjs.com/reference/jsx-attributes/prop)
+- [ref](https://docs.solidjs.com/reference/jsx-attributes/ref)
+- [style](https://docs.solidjs.com/reference/jsx-attributes/style)
+- [textContent](https://docs.solidjs.com/reference/jsx-attributes/textcontent)
+- [use:*](https://docs.solidjs.com/reference/jsx-attributes/use)
+- [onCleanup](https://docs.solidjs.com/reference/lifecycle/on-cleanup)
+- [onMount](https://docs.solidjs.com/reference/lifecycle/on-mount)
+- [batch](https://docs.solidjs.com/reference/reactive-utilities/batch)
+- [catchError](https://docs.solidjs.com/reference/reactive-utilities/catch-error)
+- [createRoot](https://docs.solidjs.com/reference/reactive-utilities/create-root)
+- [from](https://docs.solidjs.com/reference/reactive-utilities/from)
+- [getOwner](https://docs.solidjs.com/reference/reactive-utilities/get-owner)
+- [indexArray](https://docs.solidjs.com/reference/reactive-utilities/index-array)
+- [mapArray](https://docs.solidjs.com/reference/reactive-utilities/map-array)
+- [mergeProps](https://docs.solidjs.com/reference/reactive-utilities/merge-props)
+- [observable](https://docs.solidjs.com/reference/reactive-utilities/observable)
+- [on](https://docs.solidjs.com/reference/reactive-utilities/on-util)
+- [runWithOwner](https://docs.solidjs.com/reference/reactive-utilities/run-with-owner)
+- [splitProps](https://docs.solidjs.com/reference/reactive-utilities/split-props)
+- [startTransition](https://docs.solidjs.com/reference/reactive-utilities/start-transition)
+- [untrack](https://docs.solidjs.com/reference/reactive-utilities/untrack)
+- [useTransition](https://docs.solidjs.com/reference/reactive-utilities/use-transition)
+- [DEV](https://docs.solidjs.com/reference/rendering/dev)
+- [hydrate](https://docs.solidjs.com/reference/rendering/hydrate)
+- [hydrationScript](https://docs.solidjs.com/reference/rendering/hydration-script)
+- [isServer](https://docs.solidjs.com/reference/rendering/is-server)
+- [render](https://docs.solidjs.com/reference/rendering/render)
+- [renderToStream](https://docs.solidjs.com/reference/rendering/render-to-stream)
+- [renderToString](https://docs.solidjs.com/reference/rendering/render-to-string)
+- [renderToStringAsync](https://docs.solidjs.com/reference/rendering/render-to-string-async)
+- [createComputed](https://docs.solidjs.com/reference/secondary-primitives/create-computed)
+- [createDeferred](https://docs.solidjs.com/reference/secondary-primitives/create-deferred)
+- [createReaction](https://docs.solidjs.com/reference/secondary-primitives/create-reaction)
+- [createRenderEffect](https://docs.solidjs.com/reference/secondary-primitives/create-render-effect)
+- [createSelector](https://docs.solidjs.com/reference/secondary-primitives/create-selector)
+- [createMutable](https://docs.solidjs.com/reference/store-utilities/create-mutable)
+- [createStore](https://docs.solidjs.com/reference/store-utilities/create-store)
+- [modifyMutable](https://docs.solidjs.com/reference/store-utilities/modify-mutable)
+- [produce](https://docs.solidjs.com/reference/store-utilities/produce)
+- [reconcile](https://docs.solidjs.com/reference/store-utilities/reconcile)
+- [unwrap](https://docs.solidjs.com/reference/store-utilities/unwrap)
+- [getRequestEvent](https://docs.solidjs.com/reference/server-utilities/get-request-event)
+
+## SolidStart
+
+- [Overview](https://docs.solidjs.com/solid-start/)
+- [Getting started](https://docs.solidjs.com/solid-start/getting-started)
+- [Routing](https://docs.solidjs.com/solid-start/building-your-application/routing)
+- [API routes](https://docs.solidjs.com/solid-start/building-your-application/api-routes)
+- [CSS and styling](https://docs.solidjs.com/solid-start/building-your-application/css-and-styling)
+- [Data loading](https://docs.solidjs.com/solid-start/building-your-application/data-loading)
+- [Head and metadata](https://docs.solidjs.com/solid-start/building-your-application/head-and-metadata)
+- [Route Pre-rendering](https://docs.solidjs.com/solid-start/building-your-application/route-prerendering)
+- [Static assets](https://docs.solidjs.com/solid-start/building-your-application/static-assets)
+- [Middleware](https://docs.solidjs.com/solid-start/advanced/middleware)
+- [Sessions](https://docs.solidjs.com/solid-start/advanced/session)
+- [Request events](https://docs.solidjs.com/solid-start/advanced/request-events)
+- [Returning responses](https://docs.solidjs.com/solid-start/advanced/return-responses)
+- [Auth](https://docs.solidjs.com/solid-start/advanced/auth)
+- [WebSocket endpoint](https://docs.solidjs.com/solid-start/advanced/websocket)
+- [Security](https://docs.solidjs.com/solid-start/guides/security)
+- [Data fetching](https://docs.solidjs.com/solid-start/guides/data-fetching)
+- [Data mutation](https://docs.solidjs.com/solid-start/guides/data-mutation)
+- [Service workers](https://docs.solidjs.com/solid-start/guides/service-workers)
+- [app.config.ts](https://docs.solidjs.com/solid-start/reference/entrypoints/app-config)
+- [app.tsx](https://docs.solidjs.com/solid-start/reference/entrypoints/app)
+- [entry-client.tsx](https://docs.solidjs.com/solid-start/reference/entrypoints/entry-client)
+- [entry-server.tsx](https://docs.solidjs.com/solid-start/reference/entrypoints/entry-server)
+- [defineConfig](https://docs.solidjs.com/solid-start/reference/config/define-config)
+- [FileRoutes](https://docs.solidjs.com/solid-start/reference/routing/file-routes)
+- [clientOnly](https://docs.solidjs.com/solid-start/reference/client/client-only)
+- [mount](https://docs.solidjs.com/solid-start/reference/client/mount)
+- [StartClient](https://docs.solidjs.com/solid-start/reference/client/start-client)
+- ["use server"](https://docs.solidjs.com/solid-start/reference/server/use-server)
+- [createHandler](https://docs.solidjs.com/solid-start/reference/server/create-handler)
+- [createMiddleware](https://docs.solidjs.com/solid-start/reference/server/create-middleware)
+- [GET](https://docs.solidjs.com/solid-start/reference/server/get)
+- [getServerFunctionMeta](https://docs.solidjs.com/solid-start/reference/server/get-server-function-meta)
+- [HttpHeader](https://docs.solidjs.com/solid-start/reference/server/http-header)
+- [HttpStatusCode](https://docs.solidjs.com/solid-start/reference/server/http-status-code)
+- [StartServer](https://docs.solidjs.com/solid-start/reference/server/start-server)
+
+## Solid Router
+
+- [Overview](https://docs.solidjs.com/solid-router/)
+- [Installation and setup](https://docs.solidjs.com/solid-router/getting-started/installation-and-setup)
+- [Component routing](https://docs.solidjs.com/solid-router/getting-started/component)
+- [Config-based routing](https://docs.solidjs.com/solid-router/getting-started/config)
+- [Navigation](https://docs.solidjs.com/solid-router/concepts/navigation)
+- [Path parameters](https://docs.solidjs.com/solid-router/concepts/path-parameters)
+- [Search parameters](https://docs.solidjs.com/solid-router/concepts/search-parameters)
+- [Catch-all routes](https://docs.solidjs.com/solid-router/concepts/catch-all)
+- [Nesting routes](https://docs.solidjs.com/solid-router/concepts/nesting)
+- [Layouts](https://docs.solidjs.com/solid-router/concepts/layouts)
+- [Alternative routers](https://docs.solidjs.com/solid-router/concepts/alternative-routers)
+- [Actions](https://docs.solidjs.com/solid-router/concepts/actions)
+- [Single page applications](https://docs.solidjs.com/solid-router/rendering-modes/spa)
+- [Server side rendering](https://docs.solidjs.com/solid-router/rendering-modes/ssr)
+- [Lazy loading](https://docs.solidjs.com/solid-router/advanced-concepts/lazy-loading)
+- [Migration from v0.9.x](https://docs.solidjs.com/solid-router/guides/migration)
+- [A](https://docs.solidjs.com/solid-router/reference/components/a)
+- [HashRouter](https://docs.solidjs.com/solid-router/reference/components/hash-router)
+- [MemoryRouter](https://docs.solidjs.com/solid-router/reference/components/memory-router)
+- [Navigate](https://docs.solidjs.com/solid-router/reference/components/navigate)
+- [Route](https://docs.solidjs.com/solid-router/reference/components/route)
+- [Router](https://docs.solidjs.com/solid-router/reference/components/router)
+- [action](https://docs.solidjs.com/solid-router/reference/data-apis/action)
+- [cache](https://docs.solidjs.com/solid-router/reference/data-apis/cache)
+- [createAsync](https://docs.solidjs.com/solid-router/reference/data-apis/create-async)
+- [createAsyncStore](https://docs.solidjs.com/solid-router/reference/data-apis/create-async-store)
+- [query](https://docs.solidjs.com/solid-router/reference/data-apis/query)
+- [revalidate](https://docs.solidjs.com/solid-router/reference/data-apis/revalidate)
+- [useAction](https://docs.solidjs.com/solid-router/reference/data-apis/use-action)
+- [useSubmission](https://docs.solidjs.com/solid-router/reference/data-apis/use-submission)
+- [useSubmissions](https://docs.solidjs.com/solid-router/reference/data-apis/use-submissions)
+- [Preload](https://docs.solidjs.com/solid-router/reference/preload-functions/preload)
+- [useBeforeLeave](https://docs.solidjs.com/solid-router/reference/primitives/use-before-leave)
+- [useCurrentMatches](https://docs.solidjs.com/solid-router/reference/primitives/use-current-matches)
+- [useIsRouting](https://docs.solidjs.com/solid-router/reference/primitives/use-is-routing)
+- [useLocation](https://docs.solidjs.com/solid-router/reference/primitives/use-location)
+- [useMatch](https://docs.solidjs.com/solid-router/reference/primitives/use-match)
+- [useNavigate](https://docs.solidjs.com/solid-router/reference/primitives/use-navigate)
+- [useParams](https://docs.solidjs.com/solid-router/reference/primitives/use-params)
+- [usePreloadRoute](https://docs.solidjs.com/solid-router/reference/primitives/use-preload-route)
+- [useSearchParams](https://docs.solidjs.com/solid-router/reference/primitives/use-search-params)
+- [json](https://docs.solidjs.com/solid-router/reference/response-helpers/json)
+- [redirect](https://docs.solidjs.com/solid-router/reference/response-helpers/redirect)
+- [reload](https://docs.solidjs.com/solid-router/reference/response-helpers/reload)
+
+## Solid Meta
+
+- [Overview](https://docs.solidjs.com/solid-meta/)
+- [Install and configure](https://docs.solidjs.com/solid-meta/getting-started/installation-and-setup)
+- [Client setup](https://docs.solidjs.com/solid-meta/getting-started/client-setup)
+- [Server setup](https://docs.solidjs.com/solid-meta/getting-started/server-setup)
+- [Base](https://docs.solidjs.com/solid-meta/reference/meta/base)
+- [Link](https://docs.solidjs.com/solid-meta/reference/meta/link)
+- [Meta](https://docs.solidjs.com/solid-meta/reference/meta/meta)
+- [MetaProvider](https://docs.solidjs.com/solid-meta/reference/meta/metaprovider)
+- [Style](https://docs.solidjs.com/solid-meta/reference/meta/style)
+- [Title](https://docs.solidjs.com/solid-meta/reference/meta/title)
diff --git a/scripts/collections/index.mjs b/scripts/collections/index.mjs
index 9edb962985..3ce8189f6b 100644
--- a/scripts/collections/index.mjs
+++ b/scripts/collections/index.mjs
@@ -72,5 +72,8 @@ export const COLLECTIONS_ROOT = "src/routes";
Object.keys(projectTrees).forEach((project) =>
writeFile(`${project}-entries.ts`, projectTrees[project])
),
+ Object.keys(projectFlatEntries).forEach((project) =>
+ writeFile(`${project}-flat-entries.js`, projectFlatEntries[project], true)
+ ),
]);
})();
diff --git a/scripts/llms-gen.js b/scripts/llms-gen.js
new file mode 100644
index 0000000000..7002ae76d9
--- /dev/null
+++ b/scripts/llms-gen.js
@@ -0,0 +1,63 @@
+import entries from "../.solid/entriesList.js";
+import startEntries from "../.solid/solid-start-flat-entries.js";
+import routerEntries from "../.solid/solid-router-flat-entries.js";
+import metaEntries from "../.solid/solid-meta-flat-entries.js";
+import fs from "fs";
+
+const generateLinkArray = (routes) => {
+ return routes.map((route) => ({
+ title: route.title,
+ url: `https://docs.solidjs.com${route.path}`,
+ }));
+};
+
+const formatSection = (title, links) => {
+ const formattedLinks = links
+ .map((link) => `- [${link.title}](${link.url})`)
+ .join("\n");
+ return `## ${title}\n\n${formattedLinks}`;
+};
+
+(async () => {
+ // SolidJS Core
+ const coreLinks = [
+ ...generateLinkArray(entries.learn),
+ ...generateLinkArray(entries.reference),
+ ];
+
+ // SolidStart
+ const startLinks = [
+ ...generateLinkArray(startEntries.learn),
+ ...generateLinkArray(startEntries.reference),
+ ];
+
+ // Solid Router
+ const routerLinks = [
+ ...generateLinkArray(routerEntries.learn),
+ ...generateLinkArray(routerEntries.reference),
+ ];
+
+ // Solid Meta
+ const metaLinks = [
+ ...generateLinkArray(metaEntries.learn),
+ ...generateLinkArray(metaEntries.reference),
+ ];
+
+ const output = `# SolidJS Documentation
+> Solid is a JavaScript library built around signals. It prioritizes a simple and predictable development experience, making it a great choice for developers of all skill levels. These are the documention for the main official projects.
+> - SolidJS: The core library for building reactive user interfaces.
+> - SolidStart: A full-stack framework for building web applications.
+> - Solid Router: A routing library for building web applications.
+> - Solid Meta: A library for managing the HTML head and meta tags.
+
+${formatSection("SolidJS", coreLinks)}
+
+${formatSection("SolidStart", startLinks)}
+
+${formatSection("Solid Router", routerLinks)}
+
+${formatSection("Solid Meta", metaLinks)}
+`;
+
+ fs.writeFileSync("public/llms.txt", output, { encoding: "utf-8" });
+})();
diff --git a/src/middleware/legacy-routes-redirect.ts b/src/middleware/legacy-routes-redirect.ts
index fdf371f9b0..647d1b38b8 100644
--- a/src/middleware/legacy-routes-redirect.ts
+++ b/src/middleware/legacy-routes-redirect.ts
@@ -180,6 +180,8 @@ const LEGACY_ROUTES = {
"/solid-router/reference/response-helpers/revalidate":
"/solid-router/reference/data-apis/revalidate",
+
+ "/solid-start/guides/data-loading": "/solid-start/guides/data-fetching",
} as const;
function isLegacyRoute(path: string): path is keyof typeof LEGACY_ROUTES {
diff --git a/src/routes/advanced-concepts/fine-grained-reactivity.mdx b/src/routes/advanced-concepts/fine-grained-reactivity.mdx
index 7907f064c8..873d2255b4 100644
--- a/src/routes/advanced-concepts/fine-grained-reactivity.mdx
+++ b/src/routes/advanced-concepts/fine-grained-reactivity.mdx
@@ -1,5 +1,19 @@
---
title: Fine-grained reactivity
+use_cases: >-
+ optimizing performance, reducing re-renders, understanding solid fundamentals,
+ building efficient apps, custom reactive systems
+tags:
+ - reactivity
+ - performance
+ - signals
+ - effects
+ - optimization
+ - fundamentals
+version: '1.0'
+description: >-
+ Master Solid's fine-grained reactivity system for targeted UI updates, optimal
+ performance, and efficient state management patterns.
---
Reactivity ensures automatic responses to data changes, eliminating the need for manual updates to the user interface (UI).
diff --git a/src/routes/concepts/components/basics.mdx b/src/routes/concepts/components/basics.mdx
index 570f481082..2466012ce4 100644
--- a/src/routes/concepts/components/basics.mdx
+++ b/src/routes/concepts/components/basics.mdx
@@ -1,6 +1,20 @@
---
title: Basics
order: 4
+use_cases: >-
+ starting new projects, creating components, understanding component structure,
+ building ui blocks, component organization
+tags:
+ - components
+ - basics
+ - jsx
+ - lifecycle
+ - imports
+ - structure
+version: '1.0'
+description: >-
+ Learn Solid component fundamentals: creating reusable UI blocks, component
+ trees, lifecycles, and proper import/export patterns.
---
Components are the building blocks of Solid applications.
diff --git a/src/routes/concepts/components/class-style.mdx b/src/routes/concepts/components/class-style.mdx
index a334d1e72a..487bd9ec4d 100644
--- a/src/routes/concepts/components/class-style.mdx
+++ b/src/routes/concepts/components/class-style.mdx
@@ -1,6 +1,20 @@
---
title: Class and style
order: 2
+use_cases: >-
+ styling components, dynamic theming, conditional styling, css integration,
+ responsive design, ui customization
+tags:
+ - styling
+ - css
+ - classes
+ - themes
+ - dynamic
+ - ui
+version: '1.0'
+description: >-
+ Style Solid components with CSS classes and inline styles. Learn dynamic
+ styling, classList usage, and theme implementation.
---
Similar to HTML, Solid uses `class` and `style` attributes to style elements via [CSS (Cascading Style Sheets)](https://developer.mozilla.org/en-US/docs/Glossary/CSS).
@@ -37,9 +51,8 @@ This is because they are not reusable, and they can be difficult to maintain ove
The `class` attribute allows you to style one or more elements through CSS rules.
This provides a more structured approach to styling, as it allows you to reuse styles across multiple elements.
-Classes are defined in CSS files, which are then imported into the component files that use them.
-You can import these files using the `import` statement at the top of your component file.
-Once imported into a component, the classes are scoped to that component and any of its children.
+Classes are defined in CSS files. You can import these files using the `import` statement at the top of your component file.
+The CSS file's contents will be inserted into a style tag in the document head.
```jsx
import "./Card.css";
diff --git a/src/routes/concepts/components/event-handlers.mdx b/src/routes/concepts/components/event-handlers.mdx
index 7173101047..14d881cf37 100644
--- a/src/routes/concepts/components/event-handlers.mdx
+++ b/src/routes/concepts/components/event-handlers.mdx
@@ -1,6 +1,20 @@
---
title: Event handlers
order: 3
+use_cases: >-
+ user interactions, click handling, form inputs, keyboard events, custom
+ events, touch gestures, event optimization
+tags:
+ - events
+ - interactions
+ - handlers
+ - delegation
+ - performance
+ - dom
+version: '1.0'
+description: >-
+ Handle user interactions in Solid with event delegation and native events for
+ optimal performance and resource management.
---
Event handlers are functions that are called in response to specific events occurring in the browser, such as when a user clicks or taps on an element.
diff --git a/src/routes/concepts/components/props.mdx b/src/routes/concepts/components/props.mdx
index 12e13afcce..981f987c87 100644
--- a/src/routes/concepts/components/props.mdx
+++ b/src/routes/concepts/components/props.mdx
@@ -1,5 +1,19 @@
---
title: Props
+use_cases: >-
+ passing data between components, parent-child communication, component
+ configuration, default values, prop management
+tags:
+ - props
+ - components
+ - data
+ - communication
+ - mergeprops
+ - splitprops
+version: '1.0'
+description: >-
+ Pass and manage component props in Solid while maintaining reactivity. Learn
+ mergeProps, splitProps, and best practices.
---
Props are a way to pass state from a parent component to a child component.
diff --git a/src/routes/concepts/context.mdx b/src/routes/concepts/context.mdx
index 714ae7c266..2e5121985b 100644
--- a/src/routes/concepts/context.mdx
+++ b/src/routes/concepts/context.mdx
@@ -1,6 +1,20 @@
---
-title: "Context"
+title: Context
order: 5
+use_cases: >-
+ global state management, avoiding prop drilling, theme providers,
+ authentication state, shared data across components
+tags:
+ - context
+ - state
+ - global
+ - providers
+ - sharing
+ - management
+version: '1.0'
+description: >-
+ Share data across component trees with Solid's Context API. Avoid prop
+ drilling and manage global application state effectively.
---
Context provides a way to pass data through the component tree without having to pass props down manually at every level.
diff --git a/src/routes/concepts/control-flow/conditional-rendering.mdx b/src/routes/concepts/control-flow/conditional-rendering.mdx
index eecbdfe141..a3e1e906b6 100644
--- a/src/routes/concepts/control-flow/conditional-rendering.mdx
+++ b/src/routes/concepts/control-flow/conditional-rendering.mdx
@@ -1,6 +1,20 @@
---
-title: "Conditional rendering"
+title: Conditional rendering
order: 1
+use_cases: >-
+ showing/hiding content, loading states, error displays, user permissions,
+ dynamic ui, feature toggles
+tags:
+ - conditional
+ - rendering
+ - show
+ - switch
+ - match
+ - ui
+version: '1.0'
+description: >-
+ Conditionally render UI elements in Solid using Show, Switch, and Match
+ components for clean, readable conditional logic.
---
Conditional rendering is the process of displaying different UI elements based on certain conditions.
diff --git a/src/routes/concepts/control-flow/dynamic.mdx b/src/routes/concepts/control-flow/dynamic.mdx
index 671eda05b1..fb3a68530e 100644
--- a/src/routes/concepts/control-flow/dynamic.mdx
+++ b/src/routes/concepts/control-flow/dynamic.mdx
@@ -1,6 +1,20 @@
---
-title: "Dynamic"
+title: Dynamic
order: 2
+use_cases: >-
+ dynamic component selection, polymorphic components, runtime component
+ switching, flexible ui rendering, component factories
+tags:
+ - dynamic
+ - components
+ - rendering
+ - polymorphic
+ - runtime
+ - flexible
+version: '1.0'
+description: >-
+ Render components dynamically at runtime with Solid's Dynamic component. Build
+ flexible UIs with runtime component selection.
---
`` is a Solid component that allows you to render components dynamically based on data.
diff --git a/src/routes/concepts/control-flow/error-boundary.mdx b/src/routes/concepts/control-flow/error-boundary.mdx
index 961dd29419..6951d57e25 100644
--- a/src/routes/concepts/control-flow/error-boundary.mdx
+++ b/src/routes/concepts/control-flow/error-boundary.mdx
@@ -1,6 +1,20 @@
---
-title: "Error boundary"
+title: Error boundary
order: 5
+use_cases: >-
+ error handling, crash prevention, user-friendly errors, app stability, error
+ recovery, debugging production issues
+tags:
+ - errors
+ - boundary
+ - handling
+ - recovery
+ - stability
+ - debugging
+version: '1.0'
+description: >-
+ Catch and handle rendering errors gracefully with ErrorBoundary. Prevent app
+ crashes and provide user-friendly error recovery.
---
By default, if part of an application throws an error during rendering, the entire application can crash, resulting in Solid removing its UI from the screen.
diff --git a/src/routes/concepts/control-flow/list-rendering.mdx b/src/routes/concepts/control-flow/list-rendering.mdx
index 3227d985b8..e6324b01a4 100644
--- a/src/routes/concepts/control-flow/list-rendering.mdx
+++ b/src/routes/concepts/control-flow/list-rendering.mdx
@@ -1,6 +1,21 @@
---
-title: "List rendering"
+title: List rendering
order: 3
+use_cases: >-
+ rendering arrays, dynamic lists, data iteration, tables, repeating elements,
+ collection display, performance optimization
+tags:
+ - lists
+ - arrays
+ - for
+ - index
+ - iteration
+ - rendering
+ - performance
+version: '1.0'
+description: >-
+ Efficiently render dynamic lists in Solid using For and Index components.
+ Optimize performance for different data scenarios.
---
List rendering allows you to generate multiple elements from a collection of data, such as an array or object, where each element corresponds to an item in the collection.
@@ -149,4 +164,4 @@ function FormList() {
)
}
-```
\ No newline at end of file
+```
diff --git a/src/routes/concepts/control-flow/portal.mdx b/src/routes/concepts/control-flow/portal.mdx
index 3c44995e4f..5058db311e 100644
--- a/src/routes/concepts/control-flow/portal.mdx
+++ b/src/routes/concepts/control-flow/portal.mdx
@@ -1,6 +1,20 @@
---
-title: "Portal"
+title: Portal
order: 3
+use_cases: >-
+ modals, popups, tooltips, dropdowns, z-index issues, overflow clipping,
+ rendering outside parent container
+tags:
+ - portal
+ - modal
+ - popup
+ - dom
+ - z-index
+ - overflow
+version: '1.0'
+description: >-
+ Learn how Portal renders elements outside the normal DOM flow to solve z-index
+ and overflow issues for modals and popups.
---
When an element requires rendering outside of the usual document flow, challenges related to stacking contents and z-index can interfere with the desired intention or look of an application.
diff --git a/src/routes/concepts/derived-values/derived-signals.mdx b/src/routes/concepts/derived-values/derived-signals.mdx
index e0086fb456..03716adbdf 100644
--- a/src/routes/concepts/derived-values/derived-signals.mdx
+++ b/src/routes/concepts/derived-values/derived-signals.mdx
@@ -1,6 +1,19 @@
---
title: Derived signals
order: 1
+use_cases: >-
+ computed values, reactive calculations, dependent state, dynamic values from
+ signals
+tags:
+ - signals
+ - reactivity
+ - derived
+ - computed
+ - state
+version: '1.0'
+description: >-
+ Create reactive derived values that automatically update when their
+ dependencies change using Solid's derived signals.
---
Derived signals are functions that rely on one or more [signals](/concepts/signals) to produce a value.
diff --git a/src/routes/concepts/derived-values/memos.mdx b/src/routes/concepts/derived-values/memos.mdx
index 1c80f75ea7..78213deb67 100644
--- a/src/routes/concepts/derived-values/memos.mdx
+++ b/src/routes/concepts/derived-values/memos.mdx
@@ -1,6 +1,20 @@
---
title: Memos
order: 2
+use_cases: >-
+ expensive computations, caching results, optimizing performance, derived
+ state, avoiding re-calculations
+tags:
+ - memo
+ - performance
+ - caching
+ - optimization
+ - reactivity
+ - computed
+version: '1.0'
+description: >-
+ Optimize expensive computations with memos that cache results and only
+ recalculate when dependencies actually change.
---
Memos are a type of reactive value that can be used to memoize derived state or expensive computations.
diff --git a/src/routes/concepts/effects.mdx b/src/routes/concepts/effects.mdx
index f1e2cd54ad..adb73f395a 100644
--- a/src/routes/concepts/effects.mdx
+++ b/src/routes/concepts/effects.mdx
@@ -1,6 +1,19 @@
---
title: Effects
order: 4
+use_cases: >-
+ side effects, dom manipulation, api calls, subscriptions, logging, reacting to
+ state changes
+tags:
+ - effects
+ - side-effects
+ - reactivity
+ - lifecycle
+ - subscriptions
+version: '1.0'
+description: >-
+ Manage side effects like DOM updates, API calls, and subscriptions that
+ respond automatically to reactive state changes.
---
Effects are functions that are triggered when the signals they depend on change.
@@ -24,11 +37,17 @@ createEffect(() => {
In this example, an effect is created that logs the current value of `count` to the console.
When the value of `count` changes, the effect is triggered, causing it to run again and log the new value of `count`.
+:::note
+Effects are primarily intended for handling side effects that do not write to the reactive system.
+It's best to avoid setting signals within effects, as this can lead to additional rendering or even infinite loops if not managed carefully.
+Instead, it is recommended to use [createMemo](/reference/basic-reactivity/create-memo) to compute new values that rely on other reactive values.
+:::
+
## Managing dependencies
Effects can be set to observe any number of dependencies.
Dependencies are what allow an effect to track changes and respond accordingly.
-These can include signals, variables, props, context, or any other reactive values.
+These can include signals, props, context, or any other reactive values.
When any of these change, the effect is notified and will run again to update its state.
Upon initialization, an effect will run _once_, regardless of whether it has any dependencies.
diff --git a/src/routes/concepts/intro-to-reactivity.mdx b/src/routes/concepts/intro-to-reactivity.mdx
index 5b885169d2..49685357ff 100644
--- a/src/routes/concepts/intro-to-reactivity.mdx
+++ b/src/routes/concepts/intro-to-reactivity.mdx
@@ -1,6 +1,20 @@
---
-title: "Intro to reactivity"
+title: Intro to reactivity
order: 1
+use_cases: >-
+ learning reactivity, understanding signals, reactive principles, state
+ management basics, getting started
+tags:
+ - reactivity
+ - signals
+ - fundamentals
+ - state
+ - subscribers
+ - basics
+version: '1.0'
+description: >-
+ Master Solid's reactive system fundamentals: signals, subscribers, and
+ automatic UI updates for responsive applications.
---
**Note**: While this guide is useful for understanding reactive systems, it does use some Solid-specific terminology.
@@ -127,9 +141,9 @@ setCount(1);
// `count` is not being tracked, so the console log will not update when `count` changes.
```
-Since initialization is a **one-time event**, if a signal is accessed _outside of a tracking scope_, it will not be tracked.
+Initialization, or creation is a **one-time event** that doesn't cause tracking.
To track a signal, it must be accessed within the scope of a subscriber.
-Reactive primitives, such as [effects](/concepts/effects), can be used to create subscribers.
+Reactive primitives, such as [memos](/concepts/derived-values/memos) can be used to create derived values from signals or other memos, and [effects](/concepts/effects) to create subscribers that use the reactive graph output once it's settled.
```jsx
const [count, setCount] = createSignal(0);
diff --git a/src/routes/concepts/refs.mdx b/src/routes/concepts/refs.mdx
index ad07eaede5..b6d0cc0198 100644
--- a/src/routes/concepts/refs.mdx
+++ b/src/routes/concepts/refs.mdx
@@ -1,5 +1,19 @@
---
title: Refs
+use_cases: >-
+ dom access, element references, focus management, third-party libraries,
+ canvas manipulation, forwarding refs
+tags:
+ - refs
+ - dom
+ - elements
+ - directives
+ - access
+ - forward
+version: '1.0'
+description: >-
+ Access and manipulate DOM elements directly using refs, forward refs between
+ components, and create custom directives.
---
Refs, or references, are a special attribute that can be attached to any element, and are used to reference a DOM element or a component instance.
diff --git a/src/routes/concepts/signals.mdx b/src/routes/concepts/signals.mdx
index aa59b65157..ec43c0b374 100644
--- a/src/routes/concepts/signals.mdx
+++ b/src/routes/concepts/signals.mdx
@@ -1,6 +1,20 @@
---
title: Signals
order: 2
+use_cases: >-
+ state management, reactive values, component state, updating ui, tracking
+ changes, basic reactivity
+tags:
+ - signals
+ - state
+ - reactivity
+ - getter
+ - setter
+ - fundamentals
+version: '1.0'
+description: >-
+ Create reactive state with signals - the foundation of Solid's reactivity
+ system for automatic UI updates and tracking.
---
Signals are the primary means of [managing state](/concepts/intro-to-reactivity#state-management) in your Solid application.
diff --git a/src/routes/concepts/stores.mdx b/src/routes/concepts/stores.mdx
index 748ada6ae9..33d7b727ae 100644
--- a/src/routes/concepts/stores.mdx
+++ b/src/routes/concepts/stores.mdx
@@ -1,11 +1,26 @@
---
title: Stores
order: 6
+use_cases: >-
+ complex state, nested objects, arrays, shared state, fine-grained updates,
+ state trees, global state
+tags:
+ - stores
+ - state
+ - objects
+ - arrays
+ - nested
+ - produce
+ - reconcile
+version: '1.0'
+description: >-
+ Manage complex nested state efficiently with stores that provide fine-grained
+ reactivity for objects and arrays in Solid.
---
-Similar to [signals](/concepts/signals), stores are a state management primitive.
-However, while signals manage a single piece of state, stores create a centralized location to reduce code redundancy.
-Within Solid, these stores can spawn a collection of reactive signals, each corresponding to a particular property which can be useful when working with complex state.
+Stores are a state management primitive that provide a centralized way to handle shared data and reduce redundancy.
+Unlike [signals](/concepts/signals), which track a single value and trigger a full re-render when updated, stores maintain fine-grained reactivity by updating only the properties that change.
+They can produce a collection of reactive signals, each linked to an individual property, making them well-suited for managing complex state efficiently.
## Creating a store
@@ -253,8 +268,10 @@ Instead of relying on discovering individual indices, path syntax introduces sev
### Appending new values
-To append new values to an array in a store, use the setter function with the spread operator (`...`) to create a new array that includes the existing items and the new ones.
-For appending a single element, you can instead leverage the "path syntax" by specifying the array’s length as the index to set.
+To append values to an array in a store, use the setter function with the spread operator (`...`) or the path syntax. Both methods add an element to the array but differ in how they modify it and their reactivity behavior.
+
+The spread operator creates a new array by copying the existing elements and adding the new one, effectively replacing the entire `store.users` array.
+This replacement triggers reactivity for all effects that depend on the array or its properties.
```jsx
setStore("users", (otherUsers) => [
@@ -266,9 +283,12 @@ setStore("users", (otherUsers) => [
loggedIn: false,
},
])
+```
-// can become
+The path syntax adds the new element by assigning it to the index equal to `store.users.length`, directly modifying the existing array.
+This triggers reactivity only for effects that depend on the new index or properties like `store.users.length`, making updates more efficient and targeted.
+```jsx
setStore("users", store.users.length, {
id: 3,
username: "michael584",
diff --git a/src/routes/concepts/understanding-jsx.mdx b/src/routes/concepts/understanding-jsx.mdx
index 8dea799786..f6d16dfd21 100644
--- a/src/routes/concepts/understanding-jsx.mdx
+++ b/src/routes/concepts/understanding-jsx.mdx
@@ -1,6 +1,20 @@
---
title: Understanding JSX
order: 2
+use_cases: >-
+ writing components, html in javascript, dynamic content, templating, props
+ passing, event handling
+tags:
+ - jsx
+ - components
+ - templates
+ - props
+ - html
+ - syntax
+version: '1.0'
+description: >-
+ Write HTML-like syntax in JavaScript with JSX to create reactive components
+ with dynamic expressions and event handlers.
---
JSX is an extension for JavaScript.
diff --git a/src/routes/configuration/environment-variables.mdx b/src/routes/configuration/environment-variables.mdx
index 292a9210ab..bb6c650211 100644
--- a/src/routes/configuration/environment-variables.mdx
+++ b/src/routes/configuration/environment-variables.mdx
@@ -1,5 +1,19 @@
---
title: Environment variables
+use_cases: >-
+ api keys, configuration, secrets management, build-time config,
+ environment-specific settings
+tags:
+ - environment
+ - variables
+ - config
+ - vite
+ - secrets
+ - deployment
+version: '1.0'
+description: >-
+ Configure public and private environment variables in Solid apps using Vite's
+ built-in support for secure configuration.
---
Solid is built on top of [Vite](https://vitejs.dev/), which offers a convenient way to handle environment variables.
diff --git a/src/routes/configuration/typescript.mdx b/src/routes/configuration/typescript.mdx
index 61b1a82af7..d35d2515a5 100644
--- a/src/routes/configuration/typescript.mdx
+++ b/src/routes/configuration/typescript.mdx
@@ -1,5 +1,20 @@
---
title: TypeScript
+use_cases: >-
+ type safety, code reliability, large projects, team collaboration, api
+ documentation, migrating from javascript
+tags:
+ - typescript
+ - types
+ - migration
+ - configuration
+ - jsx
+ - development
+ - tooling
+version: '1.0'
+description: >-
+ Learn to configure TypeScript with SolidJS for enhanced type safety, better
+ IDE support, and reliable component development.
---
[TypeScript](https://www.typescriptlang.org/) is a superset of JavaScript that enhances code reliability and predictability through the introduction of [static types](https://www.typescriptlang.org/docs/handbook/2/everyday-types.html).
diff --git a/src/routes/guides/complex-state-management.mdx b/src/routes/guides/complex-state-management.mdx
index 068ab6e76c..05f2af8f60 100644
--- a/src/routes/guides/complex-state-management.mdx
+++ b/src/routes/guides/complex-state-management.mdx
@@ -1,6 +1,20 @@
---
title: Complex state management
order: 5
+use_cases: >-
+ scaling applications, multiple components, backend communication, state
+ synchronization, prop drilling, shared state
+tags:
+ - stores
+ - state
+ - context
+ - scaling
+ - components
+ - management
+version: '1.0'
+description: >-
+ Master complex state management in Solid using stores and context to build
+ scalable, maintainable applications efficiently.
---
As applications grow and start to involve many components, more intricate user interactions, and possibly communication with backend services, you may find that staying organized with more [basic state management methods](/guides/state-management) can become difficult to maintain.
diff --git a/src/routes/guides/deploying-your-app.mdx b/src/routes/guides/deploying-your-app.mdx
index 74eb708ae1..1bd269567b 100644
--- a/src/routes/guides/deploying-your-app.mdx
+++ b/src/routes/guides/deploying-your-app.mdx
@@ -1,6 +1,17 @@
---
title: Deploy your app
order: 9
+use_cases: 'production deployment, hosting, going live, app publishing, cloud deployment'
+tags:
+ - deployment
+ - hosting
+ - production
+ - cloud
+ - publishing
+version: '1.0'
+description: >-
+ Deploy your Solid application to popular hosting platforms including
+ Cloudflare, Vercel, Netlify, AWS, and more with guides.
---
Are you ready to deploy your Solid application? Follow our guides for different deployment services.
diff --git a/src/routes/guides/deployment-options/aws-via-flightcontrol.mdx b/src/routes/guides/deployment-options/aws-via-flightcontrol.mdx
index 2b094ecd31..4d312f9675 100644
--- a/src/routes/guides/deployment-options/aws-via-flightcontrol.mdx
+++ b/src/routes/guides/deployment-options/aws-via-flightcontrol.mdx
@@ -2,6 +2,20 @@
title: AWS via Flightcontrol
order: 1
mainNavExclude: true
+use_cases: >-
+ aws deployment, automated deployments, continuous integration, github
+ integration, cloud hosting
+tags:
+ - aws
+ - deployment
+ - flightcontrol
+ - automation
+ - github
+ - hosting
+version: '1.0'
+description: >-
+ Deploy Solid apps to AWS with Flightcontrol's automated platform featuring
+ GitHub integration and continuous deployment.
---
[Flightcontrol](https://www.flightcontrol.dev/) is a platform that fully automates deployments to Amazon Web Services (AWS).
diff --git a/src/routes/guides/deployment-options/aws-via-sst.mdx b/src/routes/guides/deployment-options/aws-via-sst.mdx
index 3af978a202..a06d3a432d 100644
--- a/src/routes/guides/deployment-options/aws-via-sst.mdx
+++ b/src/routes/guides/deployment-options/aws-via-sst.mdx
@@ -2,6 +2,20 @@
title: AWS via SST
order: 1
mainNavExclude: true
+use_cases: >-
+ serverless deployment, aws lambda, container deployment, cloud infrastructure,
+ production deployment
+tags:
+ - aws
+ - sst
+ - serverless
+ - lambda
+ - deployment
+ - containers
+version: '1.0'
+description: >-
+ Deploy SolidStart apps to AWS Lambda or containers using SST framework with
+ streamlined configuration and deployment.
---
[SST](https://sst.dev/) is a framework for deploying applications to any cloud provider. It has a built-in way to deploy SolidStart apps to AWS Lambda. For additional details, you can [visit their docs](https://sst.dev/docs/).
diff --git a/src/routes/guides/deployment-options/cloudflare.mdx b/src/routes/guides/deployment-options/cloudflare.mdx
index b7deb79c4a..8128f5b3fc 100644
--- a/src/routes/guides/deployment-options/cloudflare.mdx
+++ b/src/routes/guides/deployment-options/cloudflare.mdx
@@ -2,6 +2,20 @@
title: Cloudflare
order: 2
mainNavExclude: true
+use_cases: >-
+ static site hosting, jamstack deployment, edge deployment, cdn hosting, web
+ publishing
+tags:
+ - cloudflare
+ - pages
+ - deployment
+ - wrangler
+ - hosting
+ - jamstack
+version: '1.0'
+description: >-
+ Deploy Solid apps to Cloudflare Pages for fast, global edge hosting with
+ built-in CDN and simple Git integration setup.
---
[Cloudflare Pages](https://pages.cloudflare.com/) is a JAMstack platform for frontend developers, where JAMstack stands for JavaScript, APIs, and Markup.
@@ -80,7 +94,3 @@ wrangler pages deploy dist
After running these commands, your project should be live.
While the terminal may provide a link, it's more reliable to check your Cloudflare Pages dashboard for the deployed URL, which usually follows the format `project-name.pages.dev`.
-
-**Note:**
-Make sure to navigate to the `Speed` -> `Optimization settings` section in your Cloudflare website dashboard and disable the `Auto Minify` option.
-This is important as minification and comment removal can interfere with hydration.
diff --git a/src/routes/guides/deployment-options/firebase.mdx b/src/routes/guides/deployment-options/firebase.mdx
index 4908e29b72..30626e6668 100644
--- a/src/routes/guides/deployment-options/firebase.mdx
+++ b/src/routes/guides/deployment-options/firebase.mdx
@@ -2,6 +2,20 @@
title: Firebase
order: 3
mainNavExclude: true
+use_cases: >-
+ google cloud hosting, static hosting, firebase integration, web app
+ deployment, production hosting
+tags:
+ - firebase
+ - google
+ - deployment
+ - hosting
+ - cli
+ - static
+version: '1.0'
+description: >-
+ Host your Solid application on Firebase with Google's infrastructure for
+ reliable static site hosting and easy deployment.
---
[Firebase](https://firebase.google.com/) is an all-in-one app development platform by Google, offering a range of services from real-time databases to user authentication.
diff --git a/src/routes/guides/deployment-options/netlify.mdx b/src/routes/guides/deployment-options/netlify.mdx
index bff4a337bf..86cd1719bf 100644
--- a/src/routes/guides/deployment-options/netlify.mdx
+++ b/src/routes/guides/deployment-options/netlify.mdx
@@ -2,6 +2,20 @@
title: Netlify
order: 4
mainNavExclude: true
+use_cases: >-
+ static site hosting, continuous deployment, git integration, web publishing,
+ jamstack hosting
+tags:
+ - netlify
+ - deployment
+ - hosting
+ - git
+ - cli
+ - static
+version: '1.0'
+description: >-
+ Deploy Solid apps to Netlify with automatic builds from Git, instant
+ rollbacks, and powerful deployment features included.
---
[Netlify](https://www.netlify.com/) is a widely-used hosting platform suitable for various types of projects.
diff --git a/src/routes/guides/deployment-options/railway.mdx b/src/routes/guides/deployment-options/railway.mdx
index fdc29fd7f6..0d263cb7a8 100644
--- a/src/routes/guides/deployment-options/railway.mdx
+++ b/src/routes/guides/deployment-options/railway.mdx
@@ -2,6 +2,20 @@
title: Railway
order: 5
mainNavExclude: true
+use_cases: >-
+ web app deployment, cloud hosting, github deployment, production hosting,
+ quick deployment
+tags:
+ - railway
+ - deployment
+ - hosting
+ - cloud
+ - github
+ - cli
+version: '1.0'
+description: >-
+ Deploy Solid projects to Railway platform with GitHub integration, custom
+ domains, and straightforward deployment process.
---
[Railway](https://railway.app/) is a well-known platform for deploying a variety of web and cloud-based projects.
diff --git a/src/routes/guides/deployment-options/stormkit.mdx b/src/routes/guides/deployment-options/stormkit.mdx
index 3c8b997493..204a655f56 100644
--- a/src/routes/guides/deployment-options/stormkit.mdx
+++ b/src/routes/guides/deployment-options/stormkit.mdx
@@ -2,6 +2,20 @@
title: Stormkit
order: 7
mainNavExclude: true
+use_cases: >-
+ spa deployment, serverless functions, static hosting, git deployment,
+ production hosting
+tags:
+ - stormkit
+ - deployment
+ - hosting
+ - serverless
+ - spa
+ - static
+version: '1.0'
+description: >-
+ Deploy Solid apps as static sites or SPAs on Stormkit with serverless
+ functions support and Git provider integration.
---
[Stormkit](https://www.stormkit.io) is a deployment platform for static websites, single-page applications (SPAs), and serverless functions.
diff --git a/src/routes/guides/deployment-options/vercel.mdx b/src/routes/guides/deployment-options/vercel.mdx
index 7a68e272ce..56a3b32108 100644
--- a/src/routes/guides/deployment-options/vercel.mdx
+++ b/src/routes/guides/deployment-options/vercel.mdx
@@ -2,6 +2,20 @@
title: Vercel
order: 6
mainNavExclude: true
+use_cases: >-
+ deploying to production, hosting solid apps, ci/cd setup, automatic
+ deployments, serverless functions
+tags:
+ - deployment
+ - hosting
+ - vercel
+ - production
+ - ci/cd
+ - serverless
+version: '1.0'
+description: >-
+ Deploy SolidStart apps to Vercel with automatic builds, serverless functions,
+ and GitHub integration for seamless production hosting.
---
[Vercel](https://vercel.com/) is a widely-used platform specialized in hosting frontend projects.
diff --git a/src/routes/guides/deployment-options/zerops.mdx b/src/routes/guides/deployment-options/zerops.mdx
index bdad800a57..e952bf18b4 100644
--- a/src/routes/guides/deployment-options/zerops.mdx
+++ b/src/routes/guides/deployment-options/zerops.mdx
@@ -2,6 +2,21 @@
title: Zerops
order: 7
mainNavExclude: true
+use_cases: >-
+ deploying solid apps, static site hosting, ssr deployment, node.js hosting,
+ production deployment
+tags:
+ - deployment
+ - hosting
+ - zerops
+ - static
+ - ssr
+ - node.js
+ - production
+version: '1.0'
+description: >-
+ Deploy SolidStart apps to Zerops cloud platform with support for both static
+ sites and SSR Node.js applications in production.
---
[Zerops](https://zerops.io) is a dev-first cloud platform that can be used to deploy both Static and SSR Solid Node.js Apps.
diff --git a/src/routes/guides/fetching-data.mdx b/src/routes/guides/fetching-data.mdx
index 8bf0f9e24e..d191fcbf16 100644
--- a/src/routes/guides/fetching-data.mdx
+++ b/src/routes/guides/fetching-data.mdx
@@ -1,6 +1,21 @@
---
title: Fetching data
order: 3
+use_cases: >-
+ api calls, async data loading, server communication, external data fetching,
+ loading states, error handling
+tags:
+ - data
+ - fetching
+ - async
+ - api
+ - createresource
+ - suspense
+ - loading
+version: '1.0'
+description: >-
+ Master data fetching in Solid with createResource for async operations,
+ loading states, error handling, and Suspense boundaries.
---
For most modern web applications, data fetching is a common task.
diff --git a/src/routes/guides/routing-and-navigation.mdx b/src/routes/guides/routing-and-navigation.mdx
index 1772310ba5..9e3d8ad0d5 100644
--- a/src/routes/guides/routing-and-navigation.mdx
+++ b/src/routes/guides/routing-and-navigation.mdx
@@ -1,6 +1,21 @@
---
title: Routing & navigation
order: 4
+use_cases: >-
+ page navigation, url routing, spa routing, dynamic routes, nested layouts,
+ route parameters, lazy loading pages
+tags:
+ - routing
+ - navigation
+ - routes
+ - spa
+ - lazy-loading
+ - parameters
+ - layouts
+version: '1.0'
+description: >-
+ Implement client-side routing in Solid apps with dynamic routes, nested
+ layouts, route parameters, and lazy-loaded components.
---
[Solid Router](/solid-router) simplifies routing in Solid applications to help developers manage navigation and rendering by defining routes using JSX or objects passed via props.
@@ -275,8 +290,7 @@ Instead of checking for the presence of a parameter, this allows for more comple
```jsx
import { lazy } from "solid-js";
import { render } from "solid-js/web";
-import { Router, Route } from "@solidjs/router";
-import type { SegmentValidators } from "./types";
+import { Router, Route, type MatchFilters } from "@solidjs/router";
const User = lazy(() => import("./pages/User"));
@@ -493,7 +507,7 @@ render(
```
`[id].jsx` contains the component that gets rendered.
-When you wrap the function within [`createAsync`](/solid-router/reference/data-apis/create-async) with the imported function, it will yield [a signal](/routes/concepts/signals) once the anticipated promise resolves.
+When you wrap the function within [`createAsync`](/solid-router/reference/data-apis/create-async) with the imported function, it will yield [a signal](/concepts/signals) once the anticipated promise resolves.
```jsx
// [id].jsx
diff --git a/src/routes/guides/state-management.mdx b/src/routes/guides/state-management.mdx
index b24814b165..1b6af93850 100644
--- a/src/routes/guides/state-management.mdx
+++ b/src/routes/guides/state-management.mdx
@@ -1,6 +1,21 @@
---
title: State management
order: 2
+use_cases: >-
+ managing app state, component communication, data flow, reactive updates,
+ shared state, derived values
+tags:
+ - state
+ - signals
+ - reactivity
+ - data-flow
+ - memos
+ - effects
+ - management
+version: '1.0'
+description: >-
+ Learn Solid's state management with signals, derived values, memos, and
+ effects for reactive data flow and component updates.
---
State management is the process of handling and manipulating data that affects the behavior and presentation of a web application.
diff --git a/src/routes/guides/styling-components/css-modules.mdx b/src/routes/guides/styling-components/css-modules.mdx
index 98c704d8b0..5d48a0fe6a 100644
--- a/src/routes/guides/styling-components/css-modules.mdx
+++ b/src/routes/guides/styling-components/css-modules.mdx
@@ -2,6 +2,20 @@
title: CSS modules
order: 3
mainNavExclude: true
+use_cases: >-
+ component styling, scoped styles, style encapsulation, preventing css
+ conflicts, modular css
+tags:
+ - styling
+ - css
+ - modules
+ - scoped
+ - components
+ - encapsulation
+version: '1.0'
+description: >-
+ Use CSS Modules in Solid for locally scoped styles, preventing global
+ conflicts and ensuring component style encapsulation.
---
CSS Modules are CSS files where class names, animations, and media queries are scoped locally by default.
diff --git a/src/routes/guides/styling-components/less.mdx b/src/routes/guides/styling-components/less.mdx
index 7509fe9169..ce55726fee 100644
--- a/src/routes/guides/styling-components/less.mdx
+++ b/src/routes/guides/styling-components/less.mdx
@@ -2,6 +2,20 @@
title: LESS
order: 2
mainNavExclude: true
+use_cases: >-
+ css preprocessing, style variables, mixins, nested styles, programmatic
+ styling
+tags:
+ - styling
+ - less
+ - preprocessor
+ - variables
+ - mixins
+ - css
+version: '1.0'
+description: >-
+ Integrate LESS preprocessor in Solid apps for variables, mixins, and
+ programmatic CSS features to write cleaner stylesheets.
---
[LESS](https://lesscss.org/) is a preprocessor based on JavaScript.
diff --git a/src/routes/guides/styling-components/macaron.mdx b/src/routes/guides/styling-components/macaron.mdx
index 16ac4ad9ce..24af235bfb 100644
--- a/src/routes/guides/styling-components/macaron.mdx
+++ b/src/routes/guides/styling-components/macaron.mdx
@@ -2,6 +2,20 @@
title: Macaron
order: 4
mainNavExclude: true
+use_cases: >-
+ css-in-js styling, type-safe styles, styled components, variant-based styling,
+ compile-time css
+tags:
+ - styling
+ - css-in-js
+ - macaron
+ - styled-components
+ - typescript
+ - variants
+version: '1.0'
+description: >-
+ Style Solid components with Macaron's compile-time CSS-in-JS, offering
+ type-safe styled components and variant-based styling.
---
[Macaron](https://macaron.js.org/) is compile-time CSS-in-JS library that offers type safety.
diff --git a/src/routes/guides/styling-components/sass.mdx b/src/routes/guides/styling-components/sass.mdx
index becc12cd2f..e03d3b3746 100644
--- a/src/routes/guides/styling-components/sass.mdx
+++ b/src/routes/guides/styling-components/sass.mdx
@@ -2,6 +2,21 @@
title: SASS
order: 1
mainNavExclude: true
+use_cases: >-
+ css preprocessing, nested styles, style variables, mixins, scss syntax,
+ modular styling
+tags:
+ - styling
+ - sass
+ - scss
+ - preprocessor
+ - variables
+ - css
+ - mixins
+version: '1.0'
+description: >-
+ Configure SASS/SCSS in Solid projects for advanced CSS preprocessing with
+ variables, nesting, mixins, and modular stylesheets.
---
[SASS](https://sass-lang.com/) is a popular CSS preprocessor that makes authoring CSS easier.
diff --git a/src/routes/guides/styling-components/tailwind-v3.mdx b/src/routes/guides/styling-components/tailwind-v3.mdx
index 3ae214d9a4..75daec0184 100644
--- a/src/routes/guides/styling-components/tailwind-v3.mdx
+++ b/src/routes/guides/styling-components/tailwind-v3.mdx
@@ -2,6 +2,20 @@
title: Tailwind CSS v3
order: 7
mainNavExclude: true
+use_cases: >-
+ utility-first css, rapid prototyping, responsive design, consistent styling,
+ atomic css classes
+tags:
+ - styling
+ - tailwind
+ - utility-css
+ - responsive
+ - postcss
+ - atomic-css
+version: '1.0'
+description: >-
+ Set up Tailwind CSS v3 in Solid apps for utility-first styling, rapid
+ development, and consistent responsive design patterns.
---
[Tailwind CSS v3](https://v3.tailwindcss.com/) is an on-demand utility CSS library that integrates seamlessly with Solid as a built-in PostCSS plugin.
diff --git a/src/routes/guides/styling-components/tailwind.mdx b/src/routes/guides/styling-components/tailwind.mdx
index 5bee798414..8513340375 100644
--- a/src/routes/guides/styling-components/tailwind.mdx
+++ b/src/routes/guides/styling-components/tailwind.mdx
@@ -2,6 +2,20 @@
title: Tailwind CSS
order: 5
mainNavExclude: true
+use_cases: >-
+ styling components, utility classes, rapid ui development, responsive design,
+ production builds
+tags:
+ - styling
+ - css
+ - tailwind
+ - postcss
+ - utilities
+ - design
+version: '1.0'
+description: >-
+ Set up Tailwind CSS v4 in your Solid app for utility-first styling. Configure
+ PostCSS, import styles, and build responsive UIs efficiently.
---
:::note
diff --git a/src/routes/guides/styling-components/uno.mdx b/src/routes/guides/styling-components/uno.mdx
index e79499cc37..71db755fd8 100644
--- a/src/routes/guides/styling-components/uno.mdx
+++ b/src/routes/guides/styling-components/uno.mdx
@@ -2,6 +2,19 @@
title: UnoCSS
order: 6
mainNavExclude: true
+use_cases: >-
+ styling components, utility css, on-demand styles, vite integration, atomic
+ css
+tags:
+ - styling
+ - css
+ - unocss
+ - vite
+ - utilities
+version: '1.0'
+description: >-
+ Integrate UnoCSS with Solid for on-demand utility CSS. Configure Vite plugin,
+ import styles, and create efficient atomic CSS designs quickly.
---
[UnoCSS](https://unocss.dev/) is an on-demand utility CSS library that integrates seamlessly with Solid as a Vite plugin.
diff --git a/src/routes/guides/styling-your-components.mdx b/src/routes/guides/styling-your-components.mdx
index 611acbf3f2..4858702bc4 100644
--- a/src/routes/guides/styling-your-components.mdx
+++ b/src/routes/guides/styling-your-components.mdx
@@ -1,6 +1,19 @@
---
title: Styling your components
order: 1
+use_cases: >-
+ styling components, choosing css solutions, css frameworks, preprocessors,
+ css-in-js
+tags:
+ - styling
+ - css
+ - preprocessors
+ - css-in-js
+ - frameworks
+version: '1.0'
+description: >-
+ Explore Solid's flexible styling options: CSS preprocessors, CSS Modules,
+ CSS-in-JS, and utility frameworks for component styling needs.
---
Solid provides flexible and versatile ways to style your components.
diff --git a/src/routes/guides/testing.mdx b/src/routes/guides/testing.mdx
index 5452f276ba..c649b1ca00 100644
--- a/src/routes/guides/testing.mdx
+++ b/src/routes/guides/testing.mdx
@@ -1,6 +1,19 @@
---
title: Testing
order: 6
+use_cases: >-
+ testing components, unit tests, integration tests, user interactions, test
+ coverage, quality assurance
+tags:
+ - testing
+ - vitest
+ - components
+ - unit-tests
+ - quality
+version: '1.0'
+description: >-
+ Test Solid apps with Vitest and Testing Library. Write component tests,
+ simulate user interactions, and ensure code quality effectively.
---
Testing your Solid applications is important to inspiring confidence in your codebase through preventing regressions.
diff --git a/src/routes/index.mdx b/src/routes/index.mdx
index bc137a50ef..d288af1652 100644
--- a/src/routes/index.mdx
+++ b/src/routes/index.mdx
@@ -1,6 +1,19 @@
---
title: Overview
mainNavExclude: true
+use_cases: >-
+ getting started, learning solid, understanding framework, first project,
+ introduction
+tags:
+ - introduction
+ - overview
+ - getting-started
+ - basics
+ - framework
+version: '1.0'
+description: >-
+ Solid is a reactive JavaScript framework for building fast, efficient UIs.
+ Learn about fine-grained reactivity and modern web development.
---
# Overview
diff --git a/src/routes/pt-br/index.mdx b/src/routes/pt-br/index.mdx
index 04694517ec..b8f18df577 100644
--- a/src/routes/pt-br/index.mdx
+++ b/src/routes/pt-br/index.mdx
@@ -1,6 +1,19 @@
---
title: Sumário
mainNavExclude: true
+use_cases: >-
+ getting started, learning solid, understanding framework, first project,
+ introduction
+tags:
+ - introduction
+ - overview
+ - getting-started
+ - basics
+ - framework
+version: '1.0'
+description: >-
+ Solid is a reactive JavaScript framework for building fast, efficient UIs.
+ Learn about fine-grained reactivity and modern web development.
---
# Sumário
diff --git a/src/routes/pt-br/quick-start.mdx b/src/routes/pt-br/quick-start.mdx
index 17eaf23fe1..2ea5251b7c 100644
--- a/src/routes/pt-br/quick-start.mdx
+++ b/src/routes/pt-br/quick-start.mdx
@@ -1,5 +1,18 @@
---
title: Começo rápido
+use_cases: >-
+ starting new project, project setup, first app, development environment,
+ templates
+tags:
+ - quickstart
+ - setup
+ - templates
+ - getting-started
+ - playground
+version: '1.0'
+description: >-
+ Start building with Solid quickly. Try the playground, create projects with
+ templates, and get your first Solid app running in minutes.
---
## Solid playgrounds
diff --git a/src/routes/pt-br/solid-router/index.mdx b/src/routes/pt-br/solid-router/index.mdx
index 52656a5aba..b87c1bba67 100644
--- a/src/routes/pt-br/solid-router/index.mdx
+++ b/src/routes/pt-br/solid-router/index.mdx
@@ -1,6 +1,19 @@
---
title: Sumário
mainNavExclude: true
+use_cases: >-
+ getting started, learning solid, understanding framework, first project,
+ introduction
+tags:
+ - introduction
+ - overview
+ - getting-started
+ - basics
+ - framework
+version: '1.0'
+description: >-
+ Solid is a reactive JavaScript framework for building fast, efficient UIs.
+ Learn about fine-grained reactivity and modern web development.
---
# Roteador
diff --git a/src/routes/pt-br/solid-router/quick-start.mdx b/src/routes/pt-br/solid-router/quick-start.mdx
index 17eaf23fe1..2ea5251b7c 100644
--- a/src/routes/pt-br/solid-router/quick-start.mdx
+++ b/src/routes/pt-br/solid-router/quick-start.mdx
@@ -1,5 +1,18 @@
---
title: Começo rápido
+use_cases: >-
+ starting new project, project setup, first app, development environment,
+ templates
+tags:
+ - quickstart
+ - setup
+ - templates
+ - getting-started
+ - playground
+version: '1.0'
+description: >-
+ Start building with Solid quickly. Try the playground, create projects with
+ templates, and get your first Solid app running in minutes.
---
## Solid playgrounds
diff --git a/src/routes/quick-start.mdx b/src/routes/quick-start.mdx
index c04a9c7b5d..e29b3298ac 100644
--- a/src/routes/quick-start.mdx
+++ b/src/routes/quick-start.mdx
@@ -1,5 +1,18 @@
---
title: Quick start
+use_cases: >-
+ starting new project, project setup, first app, development environment,
+ templates
+tags:
+ - quickstart
+ - setup
+ - templates
+ - getting-started
+ - playground
+version: '1.0'
+description: >-
+ Start building with Solid quickly. Try the playground, create projects with
+ templates, and get your first Solid app running in minutes.
---
## Try Solid online
diff --git a/src/routes/reference/basic-reactivity/create-effect.mdx b/src/routes/reference/basic-reactivity/create-effect.mdx
index d935019670..84ee13f122 100644
--- a/src/routes/reference/basic-reactivity/create-effect.mdx
+++ b/src/routes/reference/basic-reactivity/create-effect.mdx
@@ -1,104 +1,174 @@
---
title: createEffect
+use_cases: >-
+ dom manipulation, side effects, manual dom updates, vanilla js integration,
+ cleanup operations, logging changes
+tags:
+ - effects
+ - dom
+ - side-effects
+ - reactivity
+ - lifecycle
+ - cleanup
+version: "1.0"
+description: >-
+ Learn how to use createEffect to run side effects when reactive dependencies
+ change. Perfect for DOM manipulation and external library integration.
---
-```tsx
-import { createEffect } from "solid-js"
+The `createEffect` primitive creates a reactive computation.
+It automatically tracks reactive values, such as [signals](/concepts/signals), accessed within the provided function.
+This function will re-run whenever any of its dependencies change.
-function createEffect(fn: (v: T) => T, value?: T): void
+## Execution Timing
-```
+### Initial Run
-Effects are a general way to make arbitrary code ("side effects") run whenever dependencies change, e.g., to modify the DOM manually.
-`createEffect` creates a new computation that runs the given function in a tracking scope, thus automatically tracking its dependencies, and automatically reruns the function whenever the dependencies update.
+- The initial run of effects is **scheduled to occur after the current rendering phase completes**.
+- It runs after all synchronous code in a component has finished and DOM elements have been created, but **before the browser paints them on the screen**.
+- **[Refs](/concepts/refs) are set** before the first run, even though DOM nodes may not yet be attached to the main document tree.
+ This is relevant when using the [`children`](/reference/component-apis/children) helper.
-For example:
+### Subsequent Runs
-```tsx
-const [a, setA] = createSignal(initialValue)
+- After the initial run, the effect **re-runs whenever any tracked dependency changes**.
+- When multiple dependencies change within the same batch, the effect **runs once per batch**.
+- The **order of runs** among multiple effects is **not guaranteed**.
+- Effects always run **after** all pure computations (such as [memos](/concepts/derived-values/memos)) within the same update cycle.
-// effect that depends on signal `a`
-createEffect(() => doSideEffect(a()))
-```
+### Server-Side Rendering
-The effect will run whenever `a` changes value.
+- Effects **never run during SSR**.
+- Effects also **do not run during the initial client hydration**.
-The effect will also run once, immediately after it is created, to initialize the DOM to the correct state. This is called the "mounting" phase.
-However, we recommend using `onMount` instead, which is a more explicit way to express this.
+## Import
-The effect callback can return a value, which will be passed as the `prev` argument to the next invocation of the effect.
-This is useful for memoizing values that are expensive to compute. For example:
+```ts
+import { createEffect } from "solid-js";
+```
-```tsx
-const [a, setA] = createSignal(initialValue)
-
-// effect that depends on signal `a`
-createEffect((prevSum) => {
- // do something with `a` and `prevSum`
- const sum = a() + b()
- if (sum !== prevSum) console.log("sum changed to", sum)
- return sum
-}, 0)
-// ^ the initial value of the effect is 0
+## Type
+
+```ts
+function createEffect(
+ fn: EffectFunction, Next>
+): void;
+function createEffect(
+ fn: EffectFunction,
+ value: Init,
+ options?: { name?: string }
+): void;
+function createEffect(
+ fn: EffectFunction,
+ value?: Init,
+ options?: { name?: string }
+): void;
```
-Effects are meant primarily for side effects that read but don't write to the reactive system: it's best to avoid setting signals in effects, which without care can cause additional rendering or even infinite effect loops. Instead, prefer using [createMemo](/reference/basic-reactivity/create-memo) to compute new values that depend on other reactive values, so the reactive system knows what depends on what, and can optimize accordingly.
-If you do end up setting a signal within an effect, computations subscribed to that signal will be executed only once the effect completes; see [`batch`](/reference/reactive-utilities/batch) for more detail.
+## Parameters
-The first execution of the effect function is not immediate; it's scheduled to run after the current rendering phase (e.g., after calling the function passed to [render](/reference/rendering/render), [createRoot](/reference/reactive-utilities/create-root), or [runWithOwner](/reference/reactive-utilities/run-with-owner)).
-If you want to wait for the first execution to occur, use [queueMicrotask](https://developer.mozilla.org/en-US/docs/Web/API/queueMicrotask) (which runs before the browser renders the DOM) or `await Promise.resolve()` or `setTimeout(..., 0)` (which runs after browser rendering).
+### `fn`
-```tsx
-// assume this code is in a component function, so is part of a rendering phase
-const [count, setCount] = createSignal(0)
-
-// this effect prints count at the beginning and when it changes
-createEffect(() => console.log("count =", count()))
-// effect won't run yet
-console.log("hello")
-setCount(1) // effect still won't run yet
-setCount(2) // effect still won't run yet
-
-queueMicrotask(() => {
- // now `count = 2` will print
- console.log("microtask")
- setCount(3) // immediately prints `count = 3`
- console.log("goodbye")
-})
-
-// --- overall output: ---
-// hello
-// count = 2
-// microtask
-// count = 3
-// goodbye
-```
+- **Type:** `EffectFunction | EffectFunction`
+- **Required:** Yes
+
+A function to be executed as the effect.
+
+It receives the value returned from the previous run, or the initial `value` during the first run.
+The value returned by `fn` is passed to the next run.
+
+### `value`
+
+- **Type:** `Init`
+- **Required:** No
-This delay in first execution is useful because it means an effect defined in a component scope runs after the JSX returned by the component gets added to the DOM.
-In particular, [refs](/reference/jsx-attributes/ref) will already be set.
-Thus you can use an effect to manipulate the DOM manually, call vanilla JS libraries, or other side effects.
+The initial value passed to `fn` during its first run.
-Note that the first run of the effect still runs before the browser renders the DOM to the screen (similar to React's `useLayoutEffect`).
-If you need to wait until after rendering (e.g., to measure the rendering), you can use `await Promise.resolve()` (or `Promise.resolve().then(...)`), but note that subsequent use of reactive state (such as signals) will not trigger the effect to rerun, as tracking is not possible after an async function uses `await`.
-Thus you should use all dependencies before the promise.
+### `options`
-If you'd rather an effect run immediately even for its first run, use [createRenderEffect](/reference/secondary-primitives/create-render-effect) or [createComputed](/reference/secondary-primitives/create-computed).
+- **Type:** `{ name?: string }`
+- **Required:** No
+
+An optional configuration object with the following properties:
+
+#### `name`
+
+- **Type:** `string`
+- **Required:** No
+
+A name for the effect, which can be useful for identification in debugging tools like the [Solid Debugger](https://github.com/thetarnav/solid-devtools).
+
+## Return value
+
+`createEffect` does not return a value.
+
+## Examples
+
+### Basic Usage
+
+```tsx
+import { createSignal, createEffect } from "solid-js";
+
+function Counter() {
+ const [count, setCount] = createSignal(0);
+
+ // Every time count changes, this effect re-runs.
+ createEffect(() => {
+ console.log("Count incremented! New value: ", count());
+ });
+
+ return (
+
+
Count: {count()}
+
setCount((prev) => prev + 1)}>Increment
+
+ );
+}
+```
-You can clean up your side effects in between executions of the effect function by calling [onCleanup](/reference/lifecycle/on-cleanup) inside the effect function.
-Such a cleanup function gets called both in between effect executions and when the effect gets disposed (e.g., the containing component unmounts).
-For example:
+### Execution Timing
```tsx
-// listen to event dynamically given by eventName signal
-createEffect(() => {
- const event = eventName()
- const callback = (e) => console.log(e)
- ref.addEventListener(event, callback)
- onCleanup(() => ref.removeEventListener(event, callback))
-})
+import { createSignal, createEffect, createRenderEffect } from "solid-js";
+
+function Counter() {
+ const [count, setCount] = createSignal(0);
+
+ // This is part of the component's synchronous execution.
+ console.log("Hello from counter");
+
+ // This effect is scheduled to run after the initial render is complete.
+ createEffect(() => {
+ console.log("Effect:", count());
+ });
+
+ // By contrast, a render effect runs synchronously during the render phase.
+ createRenderEffect(() => {
+ console.log("Render effect:", count());
+ });
+
+ // Setting a signal during the render phase re-runs render effects, but not effects, which are
+ // still scheduled.
+ setCount(1);
+
+ // A microtask is scheduled to run after the current synchronous code (the render phase) finishes.
+ queueMicrotask(() => {
+ // Now that rendering is complete, signal updates will trigger effects immediately.
+ setCount(2);
+ });
+}
+
+// Output:
+// Hello from counter
+// Render effect: 0
+// Render effect: 1
+// Effect: 1
+// Render effect: 2
+// Effect: 2
```
-## Arguments
+## Related
-- `fn` - The function to run in a tracking scope. It can return a value, which will be passed as the `prev` argument to the next invocation of the effect.
-- `value` - The initial value of the effect. This is useful for memoizing values that are expensive to compute.
+- [`createRenderEffect`](/reference/secondary-primitives/create-render-effect)
+- [`onCleanup`](/reference/lifecycle/on-cleanup)
+- [`onMount`](/reference/lifecycle/on-mount)
diff --git a/src/routes/reference/basic-reactivity/create-memo.mdx b/src/routes/reference/basic-reactivity/create-memo.mdx
index 58f21b1401..b193040c4b 100644
--- a/src/routes/reference/basic-reactivity/create-memo.mdx
+++ b/src/routes/reference/basic-reactivity/create-memo.mdx
@@ -1,5 +1,19 @@
---
title: createMemo
+use_cases: >-
+ expensive computations, derived values, performance optimization, caching
+ calculations, preventing duplicate work
+tags:
+ - memoization
+ - performance
+ - optimization
+ - derived-state
+ - caching
+ - reactivity
+version: '1.0'
+description: >-
+ Use createMemo to efficiently compute and cache derived values. Prevent
+ expensive recalculations and optimize your Solid.js application's performance.
---
Memos let you efficiently use a derived value in many reactive computations.
diff --git a/src/routes/reference/basic-reactivity/create-resource.mdx b/src/routes/reference/basic-reactivity/create-resource.mdx
index c53db92e39..2ebcfb4deb 100644
--- a/src/routes/reference/basic-reactivity/create-resource.mdx
+++ b/src/routes/reference/basic-reactivity/create-resource.mdx
@@ -1,5 +1,20 @@
---
title: createResource
+use_cases: >-
+ data fetching, api calls, async operations, loading states, error handling,
+ server data, suspense boundaries
+tags:
+ - async
+ - fetching
+ - api
+ - suspense
+ - loading
+ - error-handling
+ - ssr
+version: '1.0'
+description: >-
+ Fetch async data with createResource. Handles loading states, errors, and
+ integrates with Suspense for seamless data fetching in Solid.js applications.
---
`createResource` takes an asynchronous fetcher function and returns a signal that is updated with the resulting data when the fetcher completes.
diff --git a/src/routes/reference/basic-reactivity/create-signal.mdx b/src/routes/reference/basic-reactivity/create-signal.mdx
index 6a56a40ef3..f6de896ac9 100644
--- a/src/routes/reference/basic-reactivity/create-signal.mdx
+++ b/src/routes/reference/basic-reactivity/create-signal.mdx
@@ -1,5 +1,18 @@
---
title: createSignal
+use_cases: >-
+ state management, reactive values, component state, form inputs, counters,
+ toggles, any reactive data
+tags:
+ - signals
+ - state
+ - reactivity
+ - core
+ - primitives
+version: '1.0'
+description: >-
+ Create reactive state with createSignal, Solid's fundamental primitive. Track
+ values that change over time and automatically update your UI when they do.
---
Signals are the most basic reactive primitive.
diff --git a/src/routes/reference/component-apis/children.mdx b/src/routes/reference/component-apis/children.mdx
index bf90388d6c..486aff74a1 100644
--- a/src/routes/reference/component-apis/children.mdx
+++ b/src/routes/reference/component-apis/children.mdx
@@ -1,5 +1,19 @@
---
title: children
+use_cases: >-
+ complex children manipulation, reusing children, avoiding duplicate dom,
+ children transformation, conditional children rendering
+tags:
+ - children
+ - props
+ - components
+ - jsx
+ - composition
+ - helpers
+version: '1.0'
+description: >-
+ Use the children helper for complex child manipulation in Solid.js. Resolve,
+ reuse, and transform component children without creating duplicate DOM.
---
```tsx
diff --git a/src/routes/reference/component-apis/create-context.mdx b/src/routes/reference/component-apis/create-context.mdx
index fb16345759..e2e5d1a55f 100644
--- a/src/routes/reference/component-apis/create-context.mdx
+++ b/src/routes/reference/component-apis/create-context.mdx
@@ -1,6 +1,19 @@
---
title: createContext
order: 5
+use_cases: >-
+ prop drilling, global state, theme providers, user authentication, app-wide
+ settings, dependency injection
+tags:
+ - context
+ - providers
+ - global-state
+ - props
+ - dependency-injection
+version: '1.0'
+description: >-
+ Create context providers with createContext to share data across components
+ without prop drilling. Perfect for themes, auth, and global app state.
---
diff --git a/src/routes/reference/component-apis/create-unique-id.mdx b/src/routes/reference/component-apis/create-unique-id.mdx
index 65088f3748..82c1c88e06 100644
--- a/src/routes/reference/component-apis/create-unique-id.mdx
+++ b/src/routes/reference/component-apis/create-unique-id.mdx
@@ -1,5 +1,18 @@
---
title: createUniqueId
+use_cases: >-
+ form elements, accessibility, aria labels, ssr compatibility, html id
+ generation, unique identifiers
+tags:
+ - ids
+ - accessibility
+ - ssr
+ - forms
+ - utilities
+version: '1.0'
+description: >-
+ Generate unique IDs that are stable across server and client with
+ createUniqueId. Essential for accessible forms and SSR-compatible components.
---
```ts
diff --git a/src/routes/reference/component-apis/lazy.mdx b/src/routes/reference/component-apis/lazy.mdx
index d6b7144330..0760a518ba 100644
--- a/src/routes/reference/component-apis/lazy.mdx
+++ b/src/routes/reference/component-apis/lazy.mdx
@@ -1,5 +1,19 @@
---
title: lazy
+use_cases: >-
+ code splitting, performance optimization, reducing bundle size, dynamic
+ imports, route-based splitting, lazy loading
+tags:
+ - lazy-loading
+ - code-splitting
+ - performance
+ - suspense
+ - optimization
+ - imports
+version: '1.0'
+description: >-
+ Lazy load components with code splitting to reduce bundle size and improve
+ performance. Components load on-demand and integrate with Suspense.
---
```ts
diff --git a/src/routes/reference/component-apis/use-context.mdx b/src/routes/reference/component-apis/use-context.mdx
index e4eb550686..fdc7155cd7 100644
--- a/src/routes/reference/component-apis/use-context.mdx
+++ b/src/routes/reference/component-apis/use-context.mdx
@@ -1,5 +1,18 @@
---
title: useContext
+use_cases: >-
+ consuming context, accessing global state, avoiding prop drilling, theme
+ access, auth state, shared data
+tags:
+ - context
+ - providers
+ - global-state
+ - hooks
+ - consumption
+version: '1.0'
+description: >-
+ Access context values with useContext to consume data from parent providers.
+ Avoid prop drilling and access shared state throughout your component tree.
---
Used to grab context within a context provider scope to allow for deep passing of props without having to pass them through each Component function.
@@ -35,4 +48,4 @@ import { type Context } from "solid-js"
function useContext(context: Context): T
-```
\ No newline at end of file
+```
diff --git a/src/routes/reference/components/dynamic.mdx b/src/routes/reference/components/dynamic.mdx
index d219595082..ec766c8f16 100644
--- a/src/routes/reference/components/dynamic.mdx
+++ b/src/routes/reference/components/dynamic.mdx
@@ -1,6 +1,20 @@
---
title:
order: 5
+use_cases: >-
+ dynamic components, conditional rendering, polymorphic components, runtime
+ component selection, flexible ui, component switching
+tags:
+ - dynamic
+ - components
+ - jsx
+ - polymorphic
+ - rendering
+ - conditional
+version: '1.0'
+description: >-
+ Render components dynamically at runtime with the Dynamic component. Perfect
+ for polymorphic components and conditional component rendering.
---
This component lets you insert an arbitrary Component or tag and passes the props through to it.
diff --git a/src/routes/reference/components/error-boundary.mdx b/src/routes/reference/components/error-boundary.mdx
index bcdae26a3e..578bfcdb09 100644
--- a/src/routes/reference/components/error-boundary.mdx
+++ b/src/routes/reference/components/error-boundary.mdx
@@ -1,6 +1,20 @@
---
title:
order: 5
+use_cases: >-
+ error handling, production apps, preventing crashes, user experience,
+ debugging, fallback ui
+tags:
+ - error-handling
+ - components
+ - debugging
+ - fallback
+ - production
+ - stability
+version: '1.0'
+description: >-
+ Catch and handle rendering errors in SolidJS components with ErrorBoundary.
+ Display fallback UI when errors occur in children components.
---
The `` component catches errors that occur during the rendering or updating of its children and shows a fallback UI instead.
diff --git a/src/routes/reference/components/for.mdx b/src/routes/reference/components/for.mdx
index a02434702c..1d17940811 100644
--- a/src/routes/reference/components/for.mdx
+++ b/src/routes/reference/components/for.mdx
@@ -1,6 +1,20 @@
---
title:
order: 5
+use_cases: >-
+ rendering lists, dynamic arrays, data iteration, collections, tables,
+ repeating elements
+tags:
+ - lists
+ - iteration
+ - components
+ - arrays
+ - rendering
+ - performance
+version: '1.0'
+description: >-
+ Efficiently render lists in SolidJS with the For component. Provides keyed
+ iteration with minimal DOM updates for dynamic array rendering.
---
The `` component is used to render a list of items. It is similar to the `.map()` function in JavaScript.
diff --git a/src/routes/reference/components/index-component.mdx b/src/routes/reference/components/index-component.mdx
index f3f6b6427f..d511b9c8c2 100644
--- a/src/routes/reference/components/index-component.mdx
+++ b/src/routes/reference/components/index-component.mdx
@@ -1,5 +1,19 @@
---
title:
+use_cases: >-
+ primitive arrays, non-keyed lists, index-based rendering, static positions,
+ simple lists
+tags:
+ - lists
+ - iteration
+ - components
+ - arrays
+ - primitives
+ - index
+version: '1.0'
+description: >-
+ Render non-keyed lists in SolidJS with Index component. Perfect for primitive
+ arrays where index position matters more than item identity.
---
Non-keyed list iteration (rendered nodes are keyed to an array index). This is useful when there is no conceptual key, like if the data consists of primitives and it is the index that is fixed rather than the value.
@@ -58,4 +72,4 @@ Optional second argument is an index number:
| :------- | :------------------------------------ | :-------------------------------------------------------------- |
| each | `readonly T[]` | The array to iterate over. |
| fallback | `JSX.Element` | Optional fallback element to render while the array is loading. |
-| children | `(item: () => T, index: number) => U` | The function that renders the children. |
\ No newline at end of file
+| children | `(item: () => T, index: number) => U` | The function that renders the children. |
diff --git a/src/routes/reference/components/no-hydration.mdx b/src/routes/reference/components/no-hydration.mdx
index 347380d399..3c5c4fa508 100644
--- a/src/routes/reference/components/no-hydration.mdx
+++ b/src/routes/reference/components/no-hydration.mdx
@@ -1,5 +1,19 @@
---
title:
+use_cases: >-
+ static content, ssr optimization, performance, reducing bundle size,
+ server-only rendering
+tags:
+ - ssr
+ - hydration
+ - optimization
+ - performance
+ - static
+ - server-rendering
+version: '1.0'
+description: >-
+ Prevent client-side hydration for static content in SolidJS. Optimize
+ performance by skipping hydration for server-rendered static elements.
---
The `` component prevents the client-side hydration process from being applied to its children.
diff --git a/src/routes/reference/components/portal.mdx b/src/routes/reference/components/portal.mdx
index 1e49844309..e6b763560b 100644
--- a/src/routes/reference/components/portal.mdx
+++ b/src/routes/reference/components/portal.mdx
@@ -1,5 +1,17 @@
---
title:
+use_cases: 'modals, tooltips, overlays, popups, dropdowns, ui layers, escape dom hierarchy'
+tags:
+ - portal
+ - modals
+ - dom
+ - overlays
+ - tooltips
+ - components
+version: '1.0'
+description: >-
+ Render SolidJS components outside parent DOM hierarchy with Portal. Perfect
+ for modals, tooltips, and overlays that need to escape layout.
---
`` is a component that allows you to render children into a DOM node that exists outside the DOM hierarchy of the parent component.
diff --git a/src/routes/reference/components/show.mdx b/src/routes/reference/components/show.mdx
index 1a9788ab02..adcf4d2a13 100644
--- a/src/routes/reference/components/show.mdx
+++ b/src/routes/reference/components/show.mdx
@@ -1,6 +1,20 @@
---
title:
order: 5
+use_cases: >-
+ conditional rendering, toggling ui, feature flags, loading states, user
+ permissions, responsive design
+tags:
+ - conditional
+ - rendering
+ - components
+ - control-flow
+ - ui
+ - toggle
+version: '1.0'
+description: >-
+ Conditionally render UI elements in SolidJS with Show component. Display
+ content based on truthy conditions with optional fallback support.
---
The `` component is used for conditionally rendering UI elements.
diff --git a/src/routes/reference/components/suspense-list.mdx b/src/routes/reference/components/suspense-list.mdx
index 38bc42b37b..d370c18255 100644
--- a/src/routes/reference/components/suspense-list.mdx
+++ b/src/routes/reference/components/suspense-list.mdx
@@ -1,6 +1,20 @@
---
title:
order: 5
+use_cases: >-
+ coordinating loading, multiple async, loading sequences, layout stability,
+ parallel data fetching
+tags:
+ - suspense
+ - async
+ - loading
+ - coordination
+ - experimental
+ - components
+version: '1.0'
+description: >-
+ Coordinate multiple Suspense components in SolidJS. Control reveal order and
+ manage loading states for parallel async operations smoothly.
---
SuspenseList allows for coordinating multiple parallel Suspense and SuspenseList components. It controls the order in which content is revealed to reduce layout thrashing and has an option to collapse or hide fallback states.
diff --git a/src/routes/reference/components/suspense.mdx b/src/routes/reference/components/suspense.mdx
index dd433d1dc3..ddd676164f 100644
--- a/src/routes/reference/components/suspense.mdx
+++ b/src/routes/reference/components/suspense.mdx
@@ -1,6 +1,20 @@
---
title:
order: 5
+use_cases: >-
+ async data, loading states, data fetching, api calls, lazy loading, user
+ experience
+tags:
+ - suspense
+ - async
+ - loading
+ - resources
+ - components
+ - data-fetching
+version: '1.0'
+description: >-
+ Handle async operations elegantly in SolidJS with Suspense. Show loading
+ states while resources load without blocking UI rendering.
---
A component that tracks all resources read under it and shows a fallback placeholder state until they are resolved. What makes `Suspense` different than `Show` is that it is non-blocking in the sense that both branches exist at the same time even if not currently in the DOM. This means that the fallback can be rendered while the children are loading. This is useful for loading states and other asynchronous operations.
diff --git a/src/routes/reference/components/switch-and-match.mdx b/src/routes/reference/components/switch-and-match.mdx
index f733467b5b..643451affa 100644
--- a/src/routes/reference/components/switch-and-match.mdx
+++ b/src/routes/reference/components/switch-and-match.mdx
@@ -1,6 +1,20 @@
---
title: /
order: 5
+use_cases: >-
+ multiple conditions, routing, complex branching, state machines, multi-way
+ decisions, replacing if-else chains
+tags:
+ - conditional
+ - routing
+ - control-flow
+ - components
+ - branching
+ - switch
+version: '1.0'
+description: >-
+ Handle multiple exclusive conditions in SolidJS with Switch and Match. Clean
+ alternative to if-else chains for complex conditional rendering.
---
Useful for when there are more than 2 mutual exclusive conditions. It is a more flexible version of the if-else-if-else-if-else-... chain.
diff --git a/src/routes/reference/jsx-attributes/attr.mdx b/src/routes/reference/jsx-attributes/attr.mdx
index 934b911fea..3c8c625aef 100644
--- a/src/routes/reference/jsx-attributes/attr.mdx
+++ b/src/routes/reference/jsx-attributes/attr.mdx
@@ -1,5 +1,19 @@
---
-title: attr:*
+title: 'attr:*'
+use_cases: >-
+ web components, custom elements, forcing attributes, html attributes, dom
+ properties
+tags:
+ - attributes
+ - web-components
+ - dom
+ - props
+ - typescript
+ - custom-elements
+version: '1.0'
+description: >-
+ Force props as HTML attributes instead of properties in SolidJS. Essential for
+ Web Components and custom element attribute handling.
---
Forces the prop to be treated as an attribute instead of a property.
diff --git a/src/routes/reference/jsx-attributes/bool.mdx b/src/routes/reference/jsx-attributes/bool.mdx
index 94a682099c..a9fcae0182 100644
--- a/src/routes/reference/jsx-attributes/bool.mdx
+++ b/src/routes/reference/jsx-attributes/bool.mdx
@@ -1,5 +1,18 @@
---
-title: bool:*
+title: 'bool:*'
+use_cases: >-
+ web components, custom elements, conditional attributes, boolean attributes,
+ dynamic attribute presence
+tags:
+ - attributes
+ - web-components
+ - boolean
+ - conditional
+ - dynamic
+version: '1.0'
+description: >-
+ Control attribute presence with bool:* directive in SolidJS. Add or remove
+ attributes dynamically based on truthy/falsy values for web components.
---
`bool:*` controls the presence of an attribute in an element.
diff --git a/src/routes/reference/jsx-attributes/classlist.mdx b/src/routes/reference/jsx-attributes/classlist.mdx
index e98d525752..770702e992 100644
--- a/src/routes/reference/jsx-attributes/classlist.mdx
+++ b/src/routes/reference/jsx-attributes/classlist.mdx
@@ -1,6 +1,20 @@
---
title: classList
order: 1
+use_cases: >-
+ styling components, dynamic classes, conditional styles, toggling classes,
+ reactive styling
+tags:
+ - styling
+ - css
+ - classes
+ - reactive
+ - conditional
+ - dom
+version: '1.0'
+description: >-
+ Manage element classes dynamically in SolidJS with class and classList
+ attributes. Toggle multiple classes reactively based on application state.
---
Solid offers two attributes to set the class of an element: `class` and `classList`.
diff --git a/src/routes/reference/jsx-attributes/innerhtml.mdx b/src/routes/reference/jsx-attributes/innerhtml.mdx
index 9c8162a8ca..f0adac24ad 100644
--- a/src/routes/reference/jsx-attributes/innerhtml.mdx
+++ b/src/routes/reference/jsx-attributes/innerhtml.mdx
@@ -1,5 +1,18 @@
---
title: innerHTML
+use_cases: >-
+ rendering html strings, dynamic html content, third-party html, legacy content
+ migration, sanitized markup
+tags:
+ - html
+ - dom
+ - security
+ - content
+ - markup
+version: '1.0'
+description: >-
+ Set raw HTML content in SolidJS elements using innerHTML attribute and render
+ HTML strings dynamically.
---
The `innerHTML` attribute is equivalent to the [`innerHTML` DOM property](https://developer.mozilla.org/en-US/docs/Web/API/Element/innerHTML).
diff --git a/src/routes/reference/jsx-attributes/on.mdx b/src/routes/reference/jsx-attributes/on.mdx
index c7e8ee4ec4..1c3a96bbc4 100644
--- a/src/routes/reference/jsx-attributes/on.mdx
+++ b/src/routes/reference/jsx-attributes/on.mdx
@@ -1,6 +1,20 @@
---
-title: on:*
+title: 'on:*'
order: 4
+use_cases: >-
+ custom events, non-bubbling events, capture phase handling, passive listeners,
+ special event options
+tags:
+ - events
+ - listeners
+ - dom
+ - capture
+ - passive
+ - handlers
+version: '1.0'
+description: >-
+ Attach non-delegated event handlers with on:* in SolidJS. Control capture,
+ passive, and once options for advanced event handling requirements.
---
For events with capital letters, listener options, or if you need to attach event handlers directly to a DOM element instead of optimized delegating via the document, use `on:*` in place of `on*`.
diff --git a/src/routes/reference/jsx-attributes/on_.mdx b/src/routes/reference/jsx-attributes/on_.mdx
index c274af4775..06a7fa0fed 100644
--- a/src/routes/reference/jsx-attributes/on_.mdx
+++ b/src/routes/reference/jsx-attributes/on_.mdx
@@ -1,6 +1,20 @@
---
title: on*
order: 3
+use_cases: >-
+ user interactions, click handlers, form events, keyboard input, mouse events,
+ touch handling
+tags:
+ - events
+ - handlers
+ - interactions
+ - click
+ - input
+ - delegation
+version: '1.0'
+description: >-
+ Handle user events efficiently in SolidJS with onClick and other event
+ handlers. Optimized delegation system for improved performance at scale.
---
Event handlers in Solid typically take the form of `onclick` or `onClick` depending on style.
diff --git a/src/routes/reference/jsx-attributes/once.mdx b/src/routes/reference/jsx-attributes/once.mdx
index bd86337550..5d4c2faa14 100644
--- a/src/routes/reference/jsx-attributes/once.mdx
+++ b/src/routes/reference/jsx-attributes/once.mdx
@@ -1,6 +1,19 @@
---
-title: "@once"
+title: '@once'
order: 5
+use_cases: >-
+ performance optimization, static props, non-reactive values, compile-time
+ optimization, reducing overhead
+tags:
+ - optimization
+ - performance
+ - static
+ - compiler
+ - jsx
+version: '1.0'
+description: >-
+ Optimize SolidJS components with @once decorator for static values. Prevent
+ unnecessary reactive wrapping and improve runtime performance.
---
Solid's compiler uses a heuristic for reactive wrapping and lazy evaluation of JSX expressions. Does it contain a function call, a property access, or JSX? If yes we wrap it in a getter when passed to components or in an effect if passed to native elements.
diff --git a/src/routes/reference/jsx-attributes/prop.mdx b/src/routes/reference/jsx-attributes/prop.mdx
index 3195a22753..fc651731f6 100644
--- a/src/routes/reference/jsx-attributes/prop.mdx
+++ b/src/routes/reference/jsx-attributes/prop.mdx
@@ -1,6 +1,19 @@
---
-title: prop:*
+title: 'prop:*'
order: 6
+use_cases: >-
+ dom properties, scrolltop manipulation, custom properties, property vs
+ attribute, direct property access
+tags:
+ - properties
+ - dom
+ - attributes
+ - manipulation
+ - custom
+version: '1.0'
+description: >-
+ Force DOM property assignment with prop:* in SolidJS. Set properties directly
+ instead of attributes for specific DOM manipulation needs.
---
Forces the prop to be treated as a property instead of an attribute.
diff --git a/src/routes/reference/jsx-attributes/ref.mdx b/src/routes/reference/jsx-attributes/ref.mdx
index 630806570f..b4848ecea0 100644
--- a/src/routes/reference/jsx-attributes/ref.mdx
+++ b/src/routes/reference/jsx-attributes/ref.mdx
@@ -1,6 +1,20 @@
---
title: ref
order: 7
+use_cases: >-
+ dom access, element manipulation, focus management, measurements, third-party
+ libraries, animations
+tags:
+ - refs
+ - dom
+ - elements
+ - access
+ - manipulation
+ - components
+version: '1.0'
+description: >-
+ Access DOM elements directly in SolidJS with refs. Get references to rendered
+ elements for imperative operations and third-party integrations.
---
Refs are a way of getting access to underlying DOM elements in our JSX. While it is true one could just assign an element to a variable, it is more optimal to leave components in the flow of JSX. Refs are assigned at render time but before the elements are connected to the DOM. They come in 2 flavors.
diff --git a/src/routes/reference/jsx-attributes/style.mdx b/src/routes/reference/jsx-attributes/style.mdx
index 4a65409b88..750ef6e504 100644
--- a/src/routes/reference/jsx-attributes/style.mdx
+++ b/src/routes/reference/jsx-attributes/style.mdx
@@ -1,6 +1,20 @@
---
title: style
order: 7
+use_cases: >-
+ inline styling, dynamic styles, css variables, responsive design, theme
+ customization, animated styles
+tags:
+ - styling
+ - css
+ - inline
+ - variables
+ - dynamic
+ - properties
+version: '1.0'
+description: >-
+ Apply dynamic inline styles in SolidJS with string or object syntax. Set CSS
+ properties and variables reactively for responsive component styling.
---
Solid's style attribute lets you provide either a CSS string or an object where keys are CSS property names:
diff --git a/src/routes/reference/jsx-attributes/textcontent.mdx b/src/routes/reference/jsx-attributes/textcontent.mdx
index bb80437b86..03def76afb 100644
--- a/src/routes/reference/jsx-attributes/textcontent.mdx
+++ b/src/routes/reference/jsx-attributes/textcontent.mdx
@@ -1,5 +1,18 @@
---
title: textContent
+use_cases: >-
+ text-only content, performance optimization, plain text rendering, avoiding
+ html parsing, simple text updates
+tags:
+ - text
+ - performance
+ - content
+ - optimization
+ - dom
+version: '1.0'
+description: >-
+ Optimize text rendering with textContent in SolidJS. Bypass diffing for
+ text-only content and improve performance for simple text updates.
---
The `textContent` attribute is equivalent to the [`textContent` DOM property](https://developer.mozilla.org/en-US/docs/Web/API/Node/textContent).
diff --git a/src/routes/reference/jsx-attributes/use.mdx b/src/routes/reference/jsx-attributes/use.mdx
index b622f82c23..f07d715e08 100644
--- a/src/routes/reference/jsx-attributes/use.mdx
+++ b/src/routes/reference/jsx-attributes/use.mdx
@@ -1,40 +1,107 @@
---
-title: use:*
+title: 'use:*'
order: 5
+use_cases: >-
+ complex dom interactions, tooltips, form handling, two-way data binding,
+ reusable element behaviors, custom input components
+tags:
+ - directives
+ - dom
+ - forms
+ - bindings
+ - components
+ - typescript
+version: '1.0'
+description: >-
+ Create custom directives in SolidJS to attach reusable behaviors to DOM
+ elements. Perfect for tooltips, form handling, and two-way data binding.
---
-These are custom directives. In a sense this is just syntax sugar over ref but allows us to easily attach multiple directives to a single element. A directive is a function with the following signature:
+Custom directives attach reusable behavior to DOM elements, acting as syntactic sugar over `ref`. They’re ideal for complex DOM interactions like scrolling, tooltips, or form handling, which are cumbersome to repeat in JSX.
+
+A directive is a function with the following signature
```ts
-function directive(element: Element, accessor: () => any): void
+function directive(element: HTMLElement, accessor: Accessor): void;
```
Directive functions are called at render time but before being added to the DOM. You can do whatever you'd like in them including create signals, effects, register clean-up etc.
+## Example
+
+A `model` directive for two-way data binding
+
```tsx
-const [name, setName] = createSignal("")
+import type { Accessor, Signal } from "solid-js";
-function model(el, value) {
- const [field, setField] = value()
- createRenderEffect(() => (el.value = field()))
- el.addEventListener("input", (e) => setField(e.target.value))
-};
+function model(element: HTMLInputElement, value: Accessor>) {
+ const [field, setField] = value();
+ createRenderEffect(() => (element.value = field()));
+ element.addEventListener("input", ({ target }) => setField(target.value));
+}
+
+const [name, setName] = createSignal("");
-
+ ;
```
-To register with TypeScript extend the JSX namespace.
+## TypeScript Support
+
+To type custom directives, extend the `DirectiveFunctions` interface
```ts
+declare module "solid-js" {
+ namespace JSX {
+ interface DirectiveFunctions {
+ model: typeof model;
+ }
+ }
+}
+```
+
+If you just want to constrain the second argument to the directive function, you can extend the older `Directives` interface
+
+```tsx
declare module "solid-js" {
namespace JSX {
interface Directives {
- model: [() => any, (v: any) => any]
+ model: Signal;
}
}
}
```
+## Avoiding Tree-Shaking
+
+When importing a directive `d` from another module and using it only as `use:d`, TypeScript (via [babel-preset-typescript](https://babeljs.io/docs/babel-preset-typescript)) may remove the import, as it doesn’t recognize `use:d` as a reference to `d`.
+To prevent this:
+
+1. Use the `onlyRemoveTypeImports: true` option in `babel-preset-typescript`. For `vite-plugin-solid`, add this to `vite.config.ts`
+
+ ```ts
+ import solidPlugin from "vite-plugin-solid";
+
+ export default {
+ plugins: [
+ solidPlugin({
+ typescript: { onlyRemoveTypeImports: true }
+ })
+ ],
+ };
+ ```
+
+ Note: This requires consistent use of `export type` and `import type` in your codebase to avoid issues.
+
+2. Add a fake access like `false && d;` in the module
+
+ ```tsx
+ import { model } from "./directives";
+ false && model; // Prevents tree-shaking
+ ;
+ ```
+
+ This is removed by bundlers like Terser, unlike a plain `model;` which may remain in the bundle.
+
:::caution[Limitations]
Directives only work with native HTML elements (HTML/SVG/MathML/Custom Elements).
Directives are not forwarded and **won't work in user defined components**, such as `` [see also](https://github.com/solidjs/solid/discussions/722)
diff --git a/src/routes/reference/lifecycle/on-cleanup.mdx b/src/routes/reference/lifecycle/on-cleanup.mdx
index 1472442f53..3cd9b5a248 100644
--- a/src/routes/reference/lifecycle/on-cleanup.mdx
+++ b/src/routes/reference/lifecycle/on-cleanup.mdx
@@ -1,6 +1,19 @@
---
title: onCleanup
order: 5
+use_cases: >-
+ component unmounting, memory leak prevention, event listener cleanup, side
+ effect cleanup, resource disposal
+tags:
+ - lifecycle
+ - cleanup
+ - memory
+ - events
+ - disposal
+version: '1.0'
+description: >-
+ Register cleanup methods in SolidJS to prevent memory leaks. Executes when
+ components unmount or tracking scopes dispose. Essential for proper cleanup.
---
`onCleanup` registers a cleanup method that executes on disposal and recalculation of the current tracking scope.
diff --git a/src/routes/reference/lifecycle/on-mount.mdx b/src/routes/reference/lifecycle/on-mount.mdx
index 9d59843dd4..75bd44c3de 100644
--- a/src/routes/reference/lifecycle/on-mount.mdx
+++ b/src/routes/reference/lifecycle/on-mount.mdx
@@ -1,6 +1,19 @@
---
title: onMount
order: 5
+use_cases: >-
+ initial setup, dom refs access, one-time initialization, component mounting,
+ element manipulation after render
+tags:
+ - lifecycle
+ - mounting
+ - refs
+ - dom
+ - initialization
+version: '1.0'
+description: >-
+ Run code after SolidJS components mount to the DOM. Perfect for accessing
+ refs, setting up third-party libraries, and one-time initializations.
---
Registers a method that runs after initial rendering is done and the elements are mounted to the page.
diff --git a/src/routes/reference/reactive-utilities/batch.mdx b/src/routes/reference/reactive-utilities/batch.mdx
index 1763c98198..4a6c977057 100644
--- a/src/routes/reference/reactive-utilities/batch.mdx
+++ b/src/routes/reference/reactive-utilities/batch.mdx
@@ -1,5 +1,18 @@
---
title: batch
+use_cases: >-
+ performance optimization, multiple signal updates, reducing re-renders, bulk
+ state changes, avoiding unnecessary recalculations
+tags:
+ - performance
+ - optimization
+ - signals
+ - batching
+ - updates
+version: '1.0'
+description: >-
+ Batch multiple signal updates in SolidJS to improve performance by reducing
+ recalculations. Essential for optimizing complex state changes.
---
```ts
diff --git a/src/routes/reference/reactive-utilities/catch-error.mdx b/src/routes/reference/reactive-utilities/catch-error.mdx
index 49d1db3882..7b2222267a 100644
--- a/src/routes/reference/reactive-utilities/catch-error.mdx
+++ b/src/routes/reference/reactive-utilities/catch-error.mdx
@@ -1,5 +1,17 @@
---
title: catchError
+use_cases: >-
+ error handling, error boundaries, exception management, debugging, graceful
+ error recovery
+tags:
+ - errors
+ - debugging
+ - exceptions
+ - handlers
+version: '1.0'
+description: >-
+ Wrap SolidJS code with error handlers to catch and handle exceptions
+ gracefully. Create error boundaries for robust error management in components.
---
:::note
diff --git a/src/routes/reference/reactive-utilities/create-root.mdx b/src/routes/reference/reactive-utilities/create-root.mdx
index 588664d273..cd633a8ab6 100644
--- a/src/routes/reference/reactive-utilities/create-root.mdx
+++ b/src/routes/reference/reactive-utilities/create-root.mdx
@@ -1,16 +1,129 @@
---
title: createRoot
+use_cases: >-
+ memory management, nested tracking scopes, non-auto-disposing scopes, manual
+ cleanup control, top-level code wrapping
+tags:
+ - roots
+ - memory
+ - scopes
+ - disposal
+ - tracking
+version: "1.0"
+description: >-
+ Create non-tracked owner scopes in SolidJS for manual memory management.
+ Essential for nested tracking scopes and preventing auto-disposal.
---
+The `createRoot` function creates a new owned context, which requires explicit disposal of computations it owns.
+
+## Import
+
+```ts
+import { createRoot } from "solid-js";
+```
+
+## Type
+
+```ts
+function createRoot(
+ fn: (dispose: () => void) => T,
+ detachedOwner?: Owner
+): T;
+```
+
+## Parameters
+
+### `fn`
+
+- **Type:** `(dispose: () => void) => T`
+- **Required:** Yes
+
+The function executes within a newly created owned context.
+The computations created within this function are managed by the root and will only be disposed of when the provided `dispose` function is called.
+
+If a function is passed without a `dispose` parameter, an unowned root is created.
+In this case, the computations are not managed for disposal, which may lead to memory leaks.
+
+This function itself does not track dependencies and only runs once.
+
+### `detachedOwner`
+
+- **Type:** `Owner`
+- **Required:** No
+
+An optional owner that establishes the root's position in the ownership hierarchy.
+When provided, the root becomes owned by this owner and inherits its contextual state (such as [contexts](/concepts/context)).
+
+## Return Value
+
+`createRoot` returns the value returned by the `fn` function.
+
+## Examples
+
+### Basic Usage
+
+```ts
+import { createSignal, createEffect, createRoot } from "solid-js";
+
+function createCounter(initial = 0) {
+ const [count, setCount] = createSignal(initial);
+
+ createEffect(() => {
+ console.log(`Count changed, new value: ${count()}`);
+ });
+
+ function increment() {
+ setCount((c) => c + 1);
+ }
+
+ function reset() {
+ setCount(initial);
+ }
+
+ return { count, increment, reset };
+}
+
+test("createCounter works correctly", () => {
+ createRoot((dispose) => {
+ const { count, increment, reset } = createCounter(10);
+
+ expect(count()).toBe(10);
+ increment();
+ expect(count()).toBe(11);
+ reset();
+ expect(count()).toBe(10);
+
+ dispose();
+ });
+});
+```
+
+### Returning Values
+
```ts
-import { createRoot } from "solid-js"
+import { createRoot, createSignal, onCleanup } from "solid-js";
+
+const counter = createRoot((dispose) => {
+ const [count, setCount] = createSignal(0);
+
+ onCleanup(() => {
+ console.log("Dispose was called!");
+ });
-function createRoot(fn: (dispose: () => void) => T): T
+ return {
+ value: count,
+ increment: () => setCount((c) => c + 1),
+ dispose,
+ };
+});
+console.log(counter.value()); // 0
+counter.increment();
+console.log(counter.value()); // 1
+counter.dispose(); // Logs "Dispose was called!"
```
-Creates a new non-tracked owner scope that doesn't auto-dispose.
-This is useful for nested tracking scopes that you do not wish to release when the parent re-evaluates.
+## Related
-All Solid code should be wrapped in one of these top level as they ensure that all memory/computations are freed up.
-Normally you do not need to worry about this as createRoot is embedded into all render entry functions.
+- [`render`](/reference/rendering/render)
diff --git a/src/routes/reference/reactive-utilities/from.mdx b/src/routes/reference/reactive-utilities/from.mdx
index ad45aea13a..33d889da6f 100644
--- a/src/routes/reference/reactive-utilities/from.mdx
+++ b/src/routes/reference/reactive-utilities/from.mdx
@@ -1,5 +1,18 @@
---
title: from
+use_cases: >-
+ rxjs interop, svelte stores integration, external observables, third-party
+ state management, converting subscriptions to signals
+tags:
+ - interop
+ - rxjs
+ - observables
+ - signals
+ - integration
+version: '1.0'
+description: >-
+ Convert RxJS observables and external producers into SolidJS signals. Seamless
+ integration with third-party reactive libraries and state managers.
---
```tsx
diff --git a/src/routes/reference/reactive-utilities/get-owner.mdx b/src/routes/reference/reactive-utilities/get-owner.mdx
index 7c1f595048..2528efe55d 100644
--- a/src/routes/reference/reactive-utilities/get-owner.mdx
+++ b/src/routes/reference/reactive-utilities/get-owner.mdx
@@ -1,5 +1,18 @@
---
title: getOwner
+use_cases: >-
+ advanced tracking control, custom cleanup logic, understanding component
+ hierarchy, debugging ownership chains, manual scope management
+tags:
+ - ownership
+ - tracking
+ - scopes
+ - cleanup
+ - debugging
+version: '1.0'
+description: >-
+ Access the current tracking scope owner in SolidJS for advanced control over
+ cleanup and disposal. Essential for custom reactive primitives.
---
```tsx
diff --git a/src/routes/reference/reactive-utilities/index-array.mdx b/src/routes/reference/reactive-utilities/index-array.mdx
index a8b6036eef..75143c192e 100644
--- a/src/routes/reference/reactive-utilities/index-array.mdx
+++ b/src/routes/reference/reactive-utilities/index-array.mdx
@@ -1,5 +1,18 @@
---
title: indexArray
+use_cases: >-
+ rendering lists by index, stable item references, index-based list operations,
+ optimized list rendering
+tags:
+ - arrays
+ - lists
+ - index
+ - rendering
+ - optimization
+version: '1.0'
+description: >-
+ Map arrays by index in SolidJS where items are signals and indices are
+ constant. Optimized helper for index-based list rendering patterns.
---
```tsx
diff --git a/src/routes/reference/reactive-utilities/map-array.mdx b/src/routes/reference/reactive-utilities/map-array.mdx
index 78e2dbfd4a..576a06e730 100644
--- a/src/routes/reference/reactive-utilities/map-array.mdx
+++ b/src/routes/reference/reactive-utilities/map-array.mdx
@@ -1,5 +1,18 @@
---
title: mapArray
+use_cases: >-
+ efficient list rendering, dynamic arrays, cached list transformations,
+ optimized updates, for loop alternatives
+tags:
+ - arrays
+ - lists
+ - rendering
+ - caching
+ - optimization
+version: '1.0'
+description: >-
+ Efficiently map reactive arrays in SolidJS with cached transformations.
+ Reduces unnecessary re-renders by tracking items by reference.
---
```ts
diff --git a/src/routes/reference/reactive-utilities/merge-props.mdx b/src/routes/reference/reactive-utilities/merge-props.mdx
index 5027201f13..0f2eb3ac6b 100644
--- a/src/routes/reference/reactive-utilities/merge-props.mdx
+++ b/src/routes/reference/reactive-utilities/merge-props.mdx
@@ -1,5 +1,19 @@
---
title: mergeProps
+use_cases: >-
+ component props, default values, prop cloning, prop merging, component
+ configuration
+tags:
+ - props
+ - components
+ - reactivity
+ - defaults
+ - cloning
+ - merging
+version: '1.0'
+description: >-
+ Learn how to merge reactive props in SolidJS for setting component defaults,
+ cloning props objects, and combining multiple prop sources dynamically.
---
```ts
diff --git a/src/routes/reference/reactive-utilities/observable.mdx b/src/routes/reference/reactive-utilities/observable.mdx
index 4e1bf23dfa..671cef0a8c 100644
--- a/src/routes/reference/reactive-utilities/observable.mdx
+++ b/src/routes/reference/reactive-utilities/observable.mdx
@@ -1,5 +1,19 @@
---
title: observable
+use_cases: >-
+ rxjs integration, observable patterns, signal interop, third-party libraries,
+ reactive streams
+tags:
+ - observables
+ - rxjs
+ - signals
+ - integration
+ - reactive
+ - streams
+version: '1.0'
+description: >-
+ Convert SolidJS signals to Observables for seamless integration with RxJS and
+ other reactive libraries using the observable utility function.
---
```ts
diff --git a/src/routes/reference/reactive-utilities/on-util.mdx b/src/routes/reference/reactive-utilities/on-util.mdx
index 1a8c45a889..f364da0c88 100644
--- a/src/routes/reference/reactive-utilities/on-util.mdx
+++ b/src/routes/reference/reactive-utilities/on-util.mdx
@@ -1,5 +1,19 @@
---
-title: on
+title: 'on'
+use_cases: >-
+ explicit dependencies, effect control, conditional tracking, deferred
+ execution, store tracking
+tags:
+ - effects
+ - dependencies
+ - tracking
+ - stores
+ - reactive
+ - defer
+version: '1.0'
+description: >-
+ Control effect dependencies explicitly with SolidJS's on utility. Define when
+ effects run and manage tracking behavior for precise reactivity.
---
```ts
diff --git a/src/routes/reference/reactive-utilities/run-with-owner.mdx b/src/routes/reference/reactive-utilities/run-with-owner.mdx
index 10638849f6..91d50b88fe 100644
--- a/src/routes/reference/reactive-utilities/run-with-owner.mdx
+++ b/src/routes/reference/reactive-utilities/run-with-owner.mdx
@@ -1,6 +1,20 @@
---
title: runWithOwner
order: 5
+use_cases: >-
+ async operations, manual cleanup, context access, ownership control,
+ setTimeout callbacks, lifecycle management
+tags:
+ - async
+ - ownership
+ - context
+ - cleanup
+ - lifecycle
+ - effects
+version: '1.0'
+description: >-
+ Execute code under a specific owner in SolidJS for proper cleanup and context
+ access, especially in async operations and setTimeout callbacks.
---
```ts
diff --git a/src/routes/reference/reactive-utilities/split-props.mdx b/src/routes/reference/reactive-utilities/split-props.mdx
index 3841792ce2..91310091ee 100644
--- a/src/routes/reference/reactive-utilities/split-props.mdx
+++ b/src/routes/reference/reactive-utilities/split-props.mdx
@@ -1,5 +1,18 @@
---
title: splitProps
+use_cases: >-
+ prop forwarding, component composition, prop separation, child components,
+ prop destructuring
+tags:
+ - props
+ - components
+ - composition
+ - destructuring
+ - reactive
+version: '1.0'
+description: >-
+ Split reactive props objects by keys in SolidJS. Perfect for consuming
+ specific props while forwarding others to child components efficiently.
---
```ts
@@ -37,7 +50,7 @@ Because `splitProps` takes any number of arrays, we can split a props object as
Let's say a component was passed six props:
```tsx
-;
+
// ...
function MyComponent(props) {
diff --git a/src/routes/reference/reactive-utilities/start-transition.mdx b/src/routes/reference/reactive-utilities/start-transition.mdx
index 2abdf9dadd..731e550e2c 100644
--- a/src/routes/reference/reactive-utilities/start-transition.mdx
+++ b/src/routes/reference/reactive-utilities/start-transition.mdx
@@ -1,5 +1,18 @@
---
title: startTransition
+use_cases: >-
+ async updates, performance optimization, non-blocking updates, transition
+ control
+tags:
+ - transitions
+ - async
+ - performance
+ - updates
+ - batching
+version: '1.0'
+description: >-
+ Start transitions in SolidJS without pending state tracking. Batch async
+ updates for improved performance and smoother user interactions.
---
```ts
diff --git a/src/routes/reference/reactive-utilities/untrack.mdx b/src/routes/reference/reactive-utilities/untrack.mdx
index 136ed1d832..73d77452e8 100644
--- a/src/routes/reference/reactive-utilities/untrack.mdx
+++ b/src/routes/reference/reactive-utilities/untrack.mdx
@@ -1,5 +1,19 @@
---
title: untrack
+use_cases: >-
+ static values, initial values, default props, performance optimization,
+ non-reactive access
+tags:
+ - tracking
+ - performance
+ - props
+ - reactivity
+ - optimization
+ - defaults
+version: '1.0'
+description: >-
+ Prevent dependency tracking for static values in SolidJS. Optimize performance
+ by excluding non-updating props from reactive tracking scope.
---
Ignores tracking any of the dependencies in the executing code block and returns the value. This helper is useful when a certain `prop` will never update and thus it is ok to use it outside of the tracking scope.
diff --git a/src/routes/reference/reactive-utilities/use-transition.mdx b/src/routes/reference/reactive-utilities/use-transition.mdx
index 97b085731f..b19f4082da 100644
--- a/src/routes/reference/reactive-utilities/use-transition.mdx
+++ b/src/routes/reference/reactive-utilities/use-transition.mdx
@@ -1,5 +1,19 @@
---
title: useTransition
+use_cases: >-
+ async batching, loading states, suspense integration, concurrent updates, ui
+ transitions
+tags:
+ - transitions
+ - async
+ - suspense
+ - loading
+ - batching
+ - concurrent
+version: '1.0'
+description: >-
+ Batch async updates with transitions in SolidJS. Track pending states and
+ defer commits until all async processes complete for smooth UI updates.
---
```ts
diff --git a/src/routes/reference/rendering/dev.mdx b/src/routes/reference/rendering/dev.mdx
index 39cf81e4fa..3258fd5a9c 100644
--- a/src/routes/reference/rendering/dev.mdx
+++ b/src/routes/reference/rendering/dev.mdx
@@ -1,5 +1,18 @@
---
title: DEV
+use_cases: >-
+ development debugging, build optimization, library development, conditional
+ code, dev-only features
+tags:
+ - development
+ - debugging
+ - builds
+ - optimization
+ - conditional
+version: '1.0'
+description: >-
+ Access development-only features in SolidJS with the DEV export. Enable
+ additional checks and debugging tools that are removed in production.
---
```ts
diff --git a/src/routes/reference/rendering/hydrate.mdx b/src/routes/reference/rendering/hydrate.mdx
index 31ce37db1f..f6c87b4fb5 100644
--- a/src/routes/reference/rendering/hydrate.mdx
+++ b/src/routes/reference/rendering/hydrate.mdx
@@ -1,5 +1,18 @@
---
title: hydrate
+use_cases: >-
+ ssr hydration, client initialization, server-rendered apps, spa startup, dom
+ rehydration
+tags:
+ - hydration
+ - ssr
+ - rendering
+ - initialization
+ - dom
+version: '1.0'
+description: >-
+ Hydrate server-rendered HTML with SolidJS client-side code. Essential for
+ initializing SSR applications and attaching interactivity to static HTML.
---
```ts
@@ -29,4 +42,4 @@ const dispose = hydrate(App, document.getElementById("app"))
| fn | `() => JSX.Element`| Function that returns the application code. |
| node | MountableElement | DOM Element to mount the application to |
| options.renderId | string | |
-| options.owner | unknown | |
\ No newline at end of file
+| options.owner | unknown | |
diff --git a/src/routes/reference/rendering/hydration-script.mdx b/src/routes/reference/rendering/hydration-script.mdx
index 3448d9041c..e555a88dbc 100644
--- a/src/routes/reference/rendering/hydration-script.mdx
+++ b/src/routes/reference/rendering/hydration-script.mdx
@@ -1,5 +1,18 @@
---
title: hydrationScript
+use_cases: >-
+ ssr hydration, server-side rendering, initial page load optimization,
+ capturing events before js loads
+tags:
+ - ssr
+ - hydration
+ - performance
+ - events
+ - bootstrap
+version: '1.0'
+description: >-
+ Bootstrap client-side hydration in SSR apps with HydrationScript. Capture and
+ replay events before JavaScript loads for seamless user experience.
---
```ts
diff --git a/src/routes/reference/rendering/is-server.mdx b/src/routes/reference/rendering/is-server.mdx
index 4a8539ab26..d9acbc88f2 100644
--- a/src/routes/reference/rendering/is-server.mdx
+++ b/src/routes/reference/rendering/is-server.mdx
@@ -1,5 +1,18 @@
---
title: isServer
+use_cases: >-
+ conditional rendering, ssr vs client code, bundle optimization,
+ environment-specific logic, code splitting
+tags:
+ - ssr
+ - environment
+ - bundling
+ - optimization
+ - conditional
+version: '1.0'
+description: >-
+ Detect server or browser environment with isServer. Optimize bundle sizes by
+ conditionally including code for specific runtime environments.
---
```ts
diff --git a/src/routes/reference/rendering/render-to-stream.mdx b/src/routes/reference/rendering/render-to-stream.mdx
index d51076eb53..bd4b9903a1 100644
--- a/src/routes/reference/rendering/render-to-stream.mdx
+++ b/src/routes/reference/rendering/render-to-stream.mdx
@@ -1,5 +1,18 @@
---
title: renderToStream
+use_cases: >-
+ streaming ssr, progressive rendering, async data loading, suspense boundaries,
+ large page optimization
+tags:
+ - ssr
+ - streaming
+ - async
+ - suspense
+ - performance
+version: '1.0'
+description: >-
+ Stream HTML progressively with renderToStream. Render content synchronously
+ then stream async resources as they complete for faster loading.
---
```ts
diff --git a/src/routes/reference/rendering/render-to-string-async.mdx b/src/routes/reference/rendering/render-to-string-async.mdx
index 16c2509eb2..2c7e02d792 100644
--- a/src/routes/reference/rendering/render-to-string-async.mdx
+++ b/src/routes/reference/rendering/render-to-string-async.mdx
@@ -1,5 +1,18 @@
---
title: renderToStringAsync
+use_cases: >-
+ ssr with async data, suspense resolution, complete page rendering, data
+ serialization, seo optimization
+tags:
+ - ssr
+ - async
+ - suspense
+ - serialization
+ - rendering
+version: '1.0'
+description: >-
+ Render complete HTML with async data using renderToStringAsync. Waits for all
+ Suspense boundaries before returning serialized results.
---
```ts
diff --git a/src/routes/reference/rendering/render-to-string.mdx b/src/routes/reference/rendering/render-to-string.mdx
index 454b0c9718..9af70f6f10 100644
--- a/src/routes/reference/rendering/render-to-string.mdx
+++ b/src/routes/reference/rendering/render-to-string.mdx
@@ -1,5 +1,18 @@
---
title: renderToString
+use_cases: >-
+ basic ssr, static site generation, synchronous rendering, progressive
+ hydration, seo pages
+tags:
+ - ssr
+ - rendering
+ - hydration
+ - synchronous
+ - static
+version: '1.0'
+description: >-
+ Generate HTML strings synchronously with renderToString. Perfect for SSR with
+ progressive hydration and static site generation needs.
---
```ts
diff --git a/src/routes/reference/rendering/render.mdx b/src/routes/reference/rendering/render.mdx
index f30f5b2976..f4234bbd23 100644
--- a/src/routes/reference/rendering/render.mdx
+++ b/src/routes/reference/rendering/render.mdx
@@ -1,5 +1,19 @@
---
title: render
+use_cases: >-
+ app initialization, mounting components, spa entry point, client-side
+ rendering, dom manipulation
+tags:
+ - mounting
+ - initialization
+ - spa
+ - dom
+ - client
+ - entry
+version: '1.0'
+description: >-
+ Mount your Solid app to the DOM with render. The essential browser entry point
+ for initializing and disposing client-side applications.
---
```ts
@@ -31,4 +45,4 @@ It's important that the first argument is a function: do not pass JSX directly (
| Argument | Type | Description |
| -------------------- | ------------------- | ----------------------------------------------- |
| code | `() => JSX.Element` | Function that returns the application code. |
-| element | MountableElement | DOM Element to mount the application to |
\ No newline at end of file
+| element | MountableElement | DOM Element to mount the application to |
diff --git a/src/routes/reference/secondary-primitives/create-computed.mdx b/src/routes/reference/secondary-primitives/create-computed.mdx
index bd565ff381..90b6026938 100644
--- a/src/routes/reference/secondary-primitives/create-computed.mdx
+++ b/src/routes/reference/secondary-primitives/create-computed.mdx
@@ -1,5 +1,18 @@
---
title: createComputed
+use_cases: >-
+ immediate reactivity, building primitives, side effects with dependencies,
+ reactive updates, custom reactive patterns
+tags:
+ - reactivity
+ - computation
+ - primitives
+ - effects
+ - tracking
+version: '1.0'
+description: >-
+ Create immediate reactive computations with createComputed. Build custom
+ primitives and handle side effects that respond to dependencies.
---
```ts
diff --git a/src/routes/reference/secondary-primitives/create-deferred.mdx b/src/routes/reference/secondary-primitives/create-deferred.mdx
index d62f43b088..b62280db09 100644
--- a/src/routes/reference/secondary-primitives/create-deferred.mdx
+++ b/src/routes/reference/secondary-primitives/create-deferred.mdx
@@ -1,5 +1,18 @@
---
title: createDeferred
+use_cases: >-
+ performance optimization, idle updates, non-critical ui updates, debouncing
+ changes, reducing re-renders
+tags:
+ - performance
+ - optimization
+ - deferred
+ - idle
+ - updates
+version: '1.0'
+description: >-
+ Defer reactive updates until browser idle with createDeferred. Optimize
+ performance by batching non-critical changes with timeout control.
---
```ts
diff --git a/src/routes/reference/secondary-primitives/create-reaction.mdx b/src/routes/reference/secondary-primitives/create-reaction.mdx
index 9a49a35c1f..2317cfc010 100644
--- a/src/routes/reference/secondary-primitives/create-reaction.mdx
+++ b/src/routes/reference/secondary-primitives/create-reaction.mdx
@@ -1,5 +1,18 @@
---
title: createReaction
+use_cases: >-
+ custom tracking logic, one-time reactions, separating tracking from execution,
+ advanced reactive patterns
+tags:
+ - reactivity
+ - tracking
+ - custom
+ - effects
+ - advanced
+version: '1.0'
+description: >-
+ Separate tracking from execution with createReaction. Create one-time reactive
+ side effects that run on first dependency change only.
---
```ts
diff --git a/src/routes/reference/secondary-primitives/create-render-effect.mdx b/src/routes/reference/secondary-primitives/create-render-effect.mdx
index bf8a77852f..03ba5016b5 100644
--- a/src/routes/reference/secondary-primitives/create-render-effect.mdx
+++ b/src/routes/reference/secondary-primitives/create-render-effect.mdx
@@ -1,57 +1,173 @@
---
title: createRenderEffect
+use_cases: >-
+ dom manipulation during render, immediate effects, rendering phase logic,
+ ref-independent effects, custom rendering
+tags:
+ - rendering
+ - effects
+ - dom
+ - immediate
+ - refs
+ - lifecycle
+version: "1.0"
+description: >-
+ Execute effects immediately during rendering with createRenderEffect. Run side
+ effects as DOM creates, before refs are set or connected.
---
+The `createRenderEffect` primitive creates a reactive computation that automatically tracks reactive values, such as [signals](/concepts/signals), accessed within the provided function.
+This function re-runs whenever any of its dependencies change.
+
+## Execution Timing
+
+### Initial Run
+
+- A render effect runs **synchronously during the current rendering phase**, while DOM elements are being created or updated.
+- It **runs before elements are mounted** to the DOM.
+- **[Refs](/concepts/refs) are not set** during this initial run.
+
+### Subsequent Runs
+
+- After the initial render, the render effect **re-runs whenever any of its tracked dependencies change**.
+- Re-runs occur **after** all pure computations (such as [memos](/concepts/derived-values/memos)) have completed within the same update cycle.
+- When multiple dependencies change within the same batch, the render effect **runs once per batch**.
+- The **order of re-runs** among multiple render effects is **not guaranteed**.
+
+### Server-Side Rendering
+
+- During SSR, render effects **run once on the server**, since they are part of the synchronous rendering phase.
+- On the client, an initial run still occurs during the client rendering phase to initialize the reactive system;
+ that client initial run is separate from the server run.
+- After hydration, subsequent runs occur on the client when dependencies change.
+
+## Import
+
```ts
-import { createRenderEffect } from "solid-js"
+import { createRenderEffect } from "solid-js";
+```
-function createRenderEffect(fn: (v: T) => T, value?: T): void
+## Type
+```ts
+function createRenderEffect(
+ fn: EffectFunction, Next>
+): void;
+function createRenderEffect(
+ fn: EffectFunction,
+ value: Init,
+ options?: { name?: string }
+): void;
+function createRenderEffect(
+ fn: EffectFunction,
+ value?: Init,
+ options?: { name?: string }
+): void;
```
-A render effect is a computation similar to a regular effect (as created by [`createEffect`](/reference/basic-reactivity/create-effect)), but differs in when Solid schedules the first execution of the effect function.
-While `createEffect` waits for the current rendering phase to be complete, `createRenderEffect` immediately calls the function.
-Thus the effect runs as DOM elements are being created and updated, but possibly before specific elements of interest have been created, and probably before those elements have been connected to the document.
-In particular, **refs** will not be set before the initial effect call.
-Indeed, Solid uses `createRenderEffect` to implement the rendering phase itself, including setting of **refs**.
+## Parameters
-Reactive updates to render effects are identical to effects: they queue up in response to a reactive change (e.g., a single signal update, or a batch of changes, or collective changes during an entire render phase) and run in a single [`batch`](/reference/reactive-utilities/batch) afterward (together with effects).
-In particular, all signal updates within a render effect are batched.
+### `fn`
-Here is an example of the behavior. (Compare with the example in [`createEffect`](/reference/basic-reactivity/create-effect).)
+- **Type:** `EffectFunction | EffectFunction`
+- **Required:** Yes
-```ts
-// assume this code is in a component function, so is part of a rendering phase
-const [count, setCount] = createSignal(0)
-
-// this effect prints count at the beginning and when it changes
-createRenderEffect(() => console.log("count =", count()))
-// render effect runs immediately, printing `count = 0`
-console.log("hello")
-setCount(1) // effect won't run yet
-setCount(2) // effect won't run yet
-
-queueMicrotask(() => {
- // now `count = 2` will print
- console.log("microtask")
- setCount(3) // immediately prints `count = 3`
- console.log("goodbye")
-})
-
-// --- overall output: ---
-// count = 0 [this is the only added line compared to createEffect]
-// hello
-// count = 2
-// microtask
-// count = 3
-// goodbye
+A function to be executed as the render effect.
+
+It receives the value returned from the previous run, or the initial `value` during the first run.
+The value returned by `fn` is passed to the next run.
+
+### `value`
+
+- **Type:** `Init`
+- **Required:** No
+
+The initial value passed to `fn` during its first run.
+
+### `options`
+
+- **Type:** `{ name?: string }`
+- **Required:** No
+
+An optional configuration object with the following properties:
+
+#### `name`
+
+- **Type:** `string`
+- **Required:** No
+
+A name for the render effect, which can be useful for identification in debugging tools like the [Solid Debugger](https://github.com/thetarnav/solid-devtools).
+
+## Return value
+
+`createRenderEffect` does not return a value.
+
+## Examples
+
+### Basic Usage
+
+```tsx
+import { createSignal, createRenderEffect } from "solid-js";
+
+function Counter() {
+ const [count, setCount] = createSignal(0);
+
+ // This runs immediately during render, and re-runs when the count changes.
+ createRenderEffect(() => {
+ console.log("Count: ", count());
+ });
+
+ return (
+
+
Count: {count()}
+
setCount((prev) => prev + 1)}>Increment
+
+ );
+}
```
-Just like `createEffect`, the effect function gets called with an argument equal to the value returned from the effect function's last execution, or on the first call, equal to the optional second argument of `createRenderEffect`.
+### Execution Timing
+
+```tsx
+import { createSignal, createEffect, createRenderEffect } from "solid-js";
+
+function Counter() {
+ const [count, setCount] = createSignal(0);
+
+ // This is part of the component's synchronous execution.
+ console.log("Hello from counter");
+
+ // This effect is scheduled to run after the initial render is complete.
+ createEffect(() => {
+ console.log("Effect:", count());
+ });
+
+ // By contrast, a render effect runs synchronously during the render phase.
+ createRenderEffect(() => {
+ console.log("Render effect:", count());
+ });
+
+ // Setting a signal during the render phase re-runs render effects, but not effects, which are
+ // still scheduled.
+ setCount(1);
+
+ // A microtask is scheduled to run after the current synchronous code (the render phase) finishes.
+ queueMicrotask(() => {
+ // Now that rendering is complete, signal updates will trigger effects immediately.
+ setCount(2);
+ });
+}
+
+// Output:
+// Hello from counter
+// Render effect: 0
+// Render effect: 1
+// Effect: 1
+// Render effect: 2
+// Effect: 2
+```
-## Arguments
+## Related
-| Name | Type | Description |
-| :------ | :------------ | :----------------------------------------------------- |
-| `fn` | `(v: T) => T` | The effect function to be called. |
-| `value` | `T` | The initial value to be passed to the effect function. |
+- [`createEffect`](/reference/basic-reactivity/create-effect)
+- [`onCleanup`](/reference/lifecycle/on-cleanup)
diff --git a/src/routes/reference/secondary-primitives/create-selector.mdx b/src/routes/reference/secondary-primitives/create-selector.mdx
index 8b5c0ade0b..f258ab131c 100644
--- a/src/routes/reference/secondary-primitives/create-selector.mdx
+++ b/src/routes/reference/secondary-primitives/create-selector.mdx
@@ -1,5 +1,18 @@
---
title: createSelector
+use_cases: >-
+ selection states, active items, dropdown menus, tab navigation, list
+ highlighting, performance optimization
+tags:
+ - reactivity
+ - performance
+ - selection
+ - ui-state
+ - optimization
+version: '1.0'
+description: >-
+ Optimize selection state with createSelector. Reduce DOM updates from n to 2
+ when tracking active items in lists, tabs, or dropdowns.
---
```ts
diff --git a/src/routes/reference/server-utilities/get-request-event.mdx b/src/routes/reference/server-utilities/get-request-event.mdx
index 1a409b8882..32af8e61c2 100644
--- a/src/routes/reference/server-utilities/get-request-event.mdx
+++ b/src/routes/reference/server-utilities/get-request-event.mdx
@@ -1,5 +1,19 @@
---
title: getRequestEvent
+use_cases: >-
+ server-side rendering, authentication, headers manipulation, cookies, server
+ functions, request context access
+tags:
+ - server
+ - ssr
+ - request
+ - headers
+ - authentication
+ - context
+version: '1.0'
+description: >-
+ Access server request context with getRequestEvent. Read headers, set cookies,
+ and manage response status in SSR and server functions.
---
Solid uses Async Local Storage as a way of injecting the request context anywhere on the server.
diff --git a/src/routes/reference/store-utilities/create-mutable.mdx b/src/routes/reference/store-utilities/create-mutable.mdx
index 97b92394e6..df4903b790 100644
--- a/src/routes/reference/store-utilities/create-mutable.mdx
+++ b/src/routes/reference/store-utilities/create-mutable.mdx
@@ -1,5 +1,18 @@
---
title: createMutable
+use_cases: >-
+ mobx migration, vue compatibility, external system integration, mutable state
+ patterns, proxy-based reactivity
+tags:
+ - store
+ - mutable
+ - proxy
+ - state
+ - compatibility
+version: '1.0'
+description: >-
+ Create mutable proxy stores with automatic deep tracking. Ideal for MobX/Vue
+ compatibility or integrating external mutable systems.
---
`createMutable` creates a new mutable Store proxy object that provides a way to selectively trigger updates only when values change.
diff --git a/src/routes/reference/store-utilities/create-store.mdx b/src/routes/reference/store-utilities/create-store.mdx
index c084231aac..a114bf9abb 100644
--- a/src/routes/reference/store-utilities/create-store.mdx
+++ b/src/routes/reference/store-utilities/create-store.mdx
@@ -1,5 +1,18 @@
---
title: createStore
+use_cases: >-
+ complex state management, nested data, arrays and objects, derived values,
+ application state
+tags:
+ - store
+ - state
+ - data-structures
+ - objects
+ - arrays
+version: '1.0'
+description: >-
+ Manage complex application state with createStore. Handle nested objects,
+ arrays, and derived values with fine-grained reactivity.
---
Stores were intentionally designed to manage data structures like objects and arrays but are capable of handling other data types, such as strings and numbers.
diff --git a/src/routes/reference/store-utilities/modify-mutable.mdx b/src/routes/reference/store-utilities/modify-mutable.mdx
index ac56213047..fb3d982a2d 100644
--- a/src/routes/reference/store-utilities/modify-mutable.mdx
+++ b/src/routes/reference/store-utilities/modify-mutable.mdx
@@ -1,5 +1,18 @@
---
title: modifyMutable
+use_cases: >-
+ batch updates, mutable store modifications, performance optimization, multiple
+ field changes, reconciliation
+tags:
+ - store
+ - mutable
+ - batch
+ - performance
+ - updates
+version: '1.0'
+description: >-
+ Batch multiple mutable store changes with modifyMutable. Update multiple
+ fields in one render cycle for better performance.
---
`modifyMutable` streamlines the process of making multiple changes to a mutable Store, as obtained through the use of [`createMutable`](/reference/store-utilities/create-mutable).
diff --git a/src/routes/reference/store-utilities/produce.mdx b/src/routes/reference/store-utilities/produce.mdx
index 612769d9ae..d7d080885f 100644
--- a/src/routes/reference/store-utilities/produce.mdx
+++ b/src/routes/reference/store-utilities/produce.mdx
@@ -1,5 +1,18 @@
---
title: produce
+use_cases: >-
+ immutable updates, immer-style mutations, store modifications, complex state
+ changes, nested updates
+tags:
+ - store
+ - immutable
+ - updates
+ - immer
+ - mutations
+version: '1.0'
+description: >-
+ Use Immer-inspired produce API to mutate Solid stores immutably. Simplify
+ complex nested updates with familiar mutation syntax.
---
`produce` is an [Immer](https://immerjs.github.io/immer/) inspired API for Solid's Store objects that allows the store to be mutated inside the `produce` function.
diff --git a/src/routes/reference/store-utilities/reconcile.mdx b/src/routes/reference/store-utilities/reconcile.mdx
index cfd0e7d946..345356f33e 100644
--- a/src/routes/reference/store-utilities/reconcile.mdx
+++ b/src/routes/reference/store-utilities/reconcile.mdx
@@ -1,5 +1,18 @@
---
title: reconcile
+use_cases: >-
+ api responses, data synchronization, immutable data diffing, observable
+ subscriptions, large data updates
+tags:
+ - store
+ - diffing
+ - api
+ - synchronization
+ - immutable
+version: '1.0'
+description: >-
+ Efficiently diff and merge data changes with reconcile. Perfect for syncing
+ API responses or handling immutable data updates.
---
`reconcile` is designed for diffing data changes in situations where granular updates cannot be applied.
diff --git a/src/routes/reference/store-utilities/unwrap.mdx b/src/routes/reference/store-utilities/unwrap.mdx
index 64742a17ef..6e610bfee4 100644
--- a/src/routes/reference/store-utilities/unwrap.mdx
+++ b/src/routes/reference/store-utilities/unwrap.mdx
@@ -1,5 +1,18 @@
---
title: unwrap
+use_cases: >-
+ raw data access, proxy removal, debugging, third-party integration, data
+ serialization
+tags:
+ - store
+ - proxy
+ - data
+ - debugging
+ - utilities
+version: '1.0'
+description: >-
+ Extract raw data from Solid stores without proxy wrapping. Essential for
+ debugging, serialization, or third-party integrations.
---
`unwrap` returns the underlying data in the store without a proxy.
diff --git a/src/routes/solid-meta/getting-started/client-setup.mdx b/src/routes/solid-meta/getting-started/client-setup.mdx
index 32bc50c839..03b628c4d4 100644
--- a/src/routes/solid-meta/getting-started/client-setup.mdx
+++ b/src/routes/solid-meta/getting-started/client-setup.mdx
@@ -1,6 +1,19 @@
---
title: Client setup
order: 2
+use_cases: >-
+ seo, meta tags, document head management, social media tags, page titles,
+ canonical urls
+tags:
+ - meta
+ - seo
+ - head
+ - client
+ - tags
+version: '1.0'
+description: >-
+ Manage document head tags in Solid apps. Add titles, meta tags, and links
+ dynamically for better SEO and social media sharing.
---
You can inject a tag into the ` ` by rendering one of the head tag components when necessary.
diff --git a/src/routes/solid-meta/getting-started/installation-and-setup.mdx b/src/routes/solid-meta/getting-started/installation-and-setup.mdx
index 223501dc2c..304c6af61c 100644
--- a/src/routes/solid-meta/getting-started/installation-and-setup.mdx
+++ b/src/routes/solid-meta/getting-started/installation-and-setup.mdx
@@ -1,6 +1,19 @@
---
title: Install and configure
order: 1
+use_cases: >-
+ initial setup, meta tags configuration, seo setup, head management setup, ssr
+ meta tags
+tags:
+ - setup
+ - installation
+ - meta
+ - configuration
+ - seo
+version: '1.0'
+description: >-
+ Install and configure @solidjs/meta for head tag management. Set up dynamic
+ titles, meta tags, and SEO optimization in Solid apps.
---
:::note[Prerequisites]
diff --git a/src/routes/solid-meta/getting-started/server-setup.mdx b/src/routes/solid-meta/getting-started/server-setup.mdx
index 19a0bc6914..d03ee6ad63 100644
--- a/src/routes/solid-meta/getting-started/server-setup.mdx
+++ b/src/routes/solid-meta/getting-started/server-setup.mdx
@@ -1,6 +1,20 @@
---
title: Server setup
order: 3
+use_cases: >-
+ ssr setup, server rendering, meta tags on server, seo optimization, initial
+ page load
+tags:
+ - ssr
+ - server
+ - meta
+ - seo
+ - setup
+ - rendering
+version: '1.0'
+description: >-
+ Configure server-side rendering for Solid Meta tags with MetaProvider. Learn
+ to properly inject head tags in SSR for optimal SEO and performance.
---
For server setup, wrap your application with [`MetaProvider`](/solid-meta/reference/meta/metaprovider) on the server.
diff --git a/src/routes/solid-meta/index.mdx b/src/routes/solid-meta/index.mdx
index 3cee39418a..61137e8d6e 100644
--- a/src/routes/solid-meta/index.mdx
+++ b/src/routes/solid-meta/index.mdx
@@ -1,6 +1,19 @@
---
title: Overview
mainNavExclude: true
+use_cases: >-
+ managing head tags, seo optimization, document metadata, dynamic meta tags,
+ ssr meta management
+tags:
+ - meta
+ - head
+ - seo
+ - ssr
+ - overview
+version: '1.0'
+description: >-
+ Solid Meta provides asynchronous SSR-ready document head management. Define
+ meta tags at any component level for flexible SEO and metadata control.
---
# Overview
diff --git a/src/routes/solid-meta/reference/meta/base.mdx b/src/routes/solid-meta/reference/meta/base.mdx
index f0be6b9f92..01d9f561f3 100644
--- a/src/routes/solid-meta/reference/meta/base.mdx
+++ b/src/routes/solid-meta/reference/meta/base.mdx
@@ -1,6 +1,19 @@
---
title: Base
order: 5
+use_cases: >-
+ setting base url, relative urls, external resources, multi-page apps, cdn
+ assets
+tags:
+ - base
+ - url
+ - meta
+ - head
+ - routing
+version: '1.0'
+description: >-
+ Set the base URL for all relative URLs in your Solid app with the Base
+ component. Essential for apps with complex routing or external resources.
---
`Base` is a component that specifies the base URL for all relative URLs in the document.
@@ -26,4 +39,4 @@ export default function Root() {
);
}
-```
\ No newline at end of file
+```
diff --git a/src/routes/solid-meta/reference/meta/link.mdx b/src/routes/solid-meta/reference/meta/link.mdx
index e925f1dc94..917059fd79 100644
--- a/src/routes/solid-meta/reference/meta/link.mdx
+++ b/src/routes/solid-meta/reference/meta/link.mdx
@@ -1,6 +1,18 @@
---
title: Link
order: 2
+use_cases: 'adding favicon, stylesheets, external resources, preloading assets, web fonts'
+tags:
+ - link
+ - favicon
+ - stylesheet
+ - assets
+ - head
+ - resources
+version: '1.0'
+description: >-
+ Add external resources like stylesheets and favicons to your Solid app. Learn
+ to use the Link component for optimal resource loading and icons.
---
The Link component establishes a connection between the page and an external resource.
diff --git a/src/routes/solid-meta/reference/meta/meta.mdx b/src/routes/solid-meta/reference/meta/meta.mdx
index 13e077da5d..3574132b91 100644
--- a/src/routes/solid-meta/reference/meta/meta.mdx
+++ b/src/routes/solid-meta/reference/meta/meta.mdx
@@ -1,6 +1,20 @@
---
title: Meta
order: 3
+use_cases: >-
+ seo optimization, social media tags, viewport settings, charset configuration,
+ open graph
+tags:
+ - meta
+ - seo
+ - viewport
+ - metadata
+ - head
+ - tags
+version: '1.0'
+description: >-
+ Add SEO and viewport metadata to your Solid app with the Meta component.
+ Configure description, keywords, and social media tags for better reach.
---
The ` ` component represents metadata that cannot be represented by other HTML elements.
@@ -31,4 +45,4 @@ export default function Root() {
);
}
-```
\ No newline at end of file
+```
diff --git a/src/routes/solid-meta/reference/meta/metaprovider.mdx b/src/routes/solid-meta/reference/meta/metaprovider.mdx
index d9932fa276..dc86d8d8bb 100644
--- a/src/routes/solid-meta/reference/meta/metaprovider.mdx
+++ b/src/routes/solid-meta/reference/meta/metaprovider.mdx
@@ -1,6 +1,20 @@
---
title: MetaProvider
order: 6
+use_cases: >-
+ initializing meta tags, wrapping app, head management setup, meta context,
+ always in meta apps
+tags:
+ - provider
+ - meta
+ - setup
+ - context
+ - wrapper
+ - head
+version: '1.0'
+description: >-
+ MetaProvider wraps your Solid app to enable head tag management. Essential
+ parent component for all metadata components to function properly.
---
`MetaProvider` is a parent component responsible for wrapping all the metadata components.
@@ -10,4 +24,4 @@ All components that are contained within this will be added to the application `
import { MetaProvider } from "@solidjs/meta";
// add meta components ;
-```
\ No newline at end of file
+```
diff --git a/src/routes/solid-meta/reference/meta/style.mdx b/src/routes/solid-meta/reference/meta/style.mdx
index 4d049ab3e9..d95ce239d0 100644
--- a/src/routes/solid-meta/reference/meta/style.mdx
+++ b/src/routes/solid-meta/reference/meta/style.mdx
@@ -1,6 +1,17 @@
---
title: Style
order: 4
+use_cases: 'inline styles, critical css, theme styles, dynamic styling, css-in-js'
+tags:
+ - style
+ - css
+ - inline
+ - styling
+ - head
+version: '1.0'
+description: >-
+ Add inline CSS styles to your Solid app's head with the Style component.
+ Useful for critical CSS and dynamic styling needs in your application.
---
`Style` is a component that adds the [`style`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/style) element to your document's `head`.
diff --git a/src/routes/solid-meta/reference/meta/title.mdx b/src/routes/solid-meta/reference/meta/title.mdx
index 01df789260..19399de756 100644
--- a/src/routes/solid-meta/reference/meta/title.mdx
+++ b/src/routes/solid-meta/reference/meta/title.mdx
@@ -1,6 +1,19 @@
---
title: Title
order: 1
+use_cases: >-
+ page titles, seo optimization, browser tab text, dynamic titles, navigation
+ context
+tags:
+ - title
+ - seo
+ - head
+ - meta
+ - browser
+version: '1.0'
+description: >-
+ Set dynamic page titles in your Solid app with the Title component. Essential
+ for SEO and providing context in browser tabs and bookmarks.
---
`Title` is a component that renders the [`title`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/title) element.
@@ -24,4 +37,4 @@ export default function Root() {
);
}
-```
\ No newline at end of file
+```
diff --git a/src/routes/solid-router/advanced-concepts/lazy-loading.mdx b/src/routes/solid-router/advanced-concepts/lazy-loading.mdx
index 2ef9d89a41..d2c9539aed 100644
--- a/src/routes/solid-router/advanced-concepts/lazy-loading.mdx
+++ b/src/routes/solid-router/advanced-concepts/lazy-loading.mdx
@@ -1,6 +1,20 @@
----
-title: Lazy loading
----
+---
+title: Lazy loading
+use_cases: >-
+ optimizing bundle size, code splitting, reducing initial load, large apps,
+ performance optimization
+tags:
+ - lazy
+ - performance
+ - routing
+ - optimization
+ - splitting
+ - loading
+version: '1.0'
+description: >-
+ Implement lazy loading in Solid Router to reduce initial bundle size. Load
+ components on-demand for better performance in large applications.
+---
Lazy loading allows you to load only the necessary resources when they are needed.
This can be useful when you have a large application with a lot of routes and components, and you want to reduce the initial load time.
diff --git a/src/routes/solid-router/concepts/actions.mdx b/src/routes/solid-router/concepts/actions.mdx
index 53a96da9c5..a04eaea673 100644
--- a/src/routes/solid-router/concepts/actions.mdx
+++ b/src/routes/solid-router/concepts/actions.mdx
@@ -1,152 +1,461 @@
---
-title: "Actions"
+title: Actions
+use_cases: >-
+ form submissions, data mutations, server communication, user input handling,
+ api calls, crud operations
+tags:
+ - actions
+ - forms
+ - data
+ - api
+ - server
+ - submission
+ - mutations
+version: '1.0'
+description: >-
+ Handle form submissions and server mutations with Solid Router actions. Build
+ isomorphic data flows with progressive enhancement support.
---
-When developing applications, it is common to need to communicate new information to the server based on user interactions.
-Actions are Solid Router’s solution to this problem.
+Many user interactions in an application involve changing data on the server.
+These **mutations** can be challenging to manage, as they require updates to the application's state and proper error handling.
+Actions simplify managing data mutations.
-## What are actions?
+Actions provide several benefits:
-Actions are asynchronous processing functions that allow you to submit data to your server and receive a response.
-They are isomorphic, meaning they can run either on the server or the client, depending on what is needed.
-This flexibility makes actions a powerful tool for managing and tracking data submissions.
+- **Integrated state management:**
+ Solid Router automatically tracks the execution state of an action, simplifying reactive UI feedback.
+- **Automatic data revalidation:**
+ After an action successfully completes, Solid Router revalidates relevant [`queries`](/solid-router/concepts/queries), ensuring the UI reflects the latest data.
+- **Progressive enhancement:**
+ When used with HTML forms, actions enable functionality even if JavaScript is not yet loaded.
-### How actions work
+## Defining actions
-Actions represent the server-side part of an [HTML form](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form).
-They handle submissions through POST requests, allowing you to easily use HTML forms to send data.
+Actions are defined by wrapping the data-mutation logic with the [`action` function](/solid-router/reference/data-apis/action).
-When a user performs an action, such as submitting a form, the data is sent to the server for processing via an action.
+```tsx
+import { action } from "@solidjs/router";
+
+const createTicketAction = action(async (subject: string) => {
+ const response = await fetch("https://my-api.com/support/tickets", {
+ method: "POST",
+ headers: { "Content-Type": "application/json" },
+ body: JSON.stringify({ subject }),
+ });
+
+ if (!response.ok) {
+ const errorData = await response.json();
+ return { ok: false, message: errorData.message };
+ }
+
+ return { ok: true };
+}, "createTicket");
+```
+
+In this example, an action is defined that creates a support ticket using a remote API.
+
+## Using actions
+
+Actions can be triggered in two ways: using a HTML [`
+ );
+}
```
-In this example, the `echo` action simulates a fetch call with a 1 second delay before logging the message to the console.
-The `echo` action will act as a backend, however, it can be substituted for any API provided it can be run on the client.
-Typically, route actions are used with some sort of solution like fetch or GraphQL.
+In this example, when the form is submitted, `submitFeedbackAction` will be triggered with the `FormData` containing the form values.
+
+:::tip[Uploading files]
+If a form that includes file inputs, the `` element must have `enctype="multipart/form-data"` to correctly send the file data.
+
+```tsx
+
+
+ Upload
+
+```
-:::tip
-In [SolidStart](/solid-start) apps, it's recommended to use the [`"use server"`](/solid-start/reference/server/use-server) directive to leverage server-side functionality.
:::
-### Using actions
+#### Passing additional arguments
-To use the action, you can call it from within a component using [`useAction`](/solid-router/reference/data-apis/use-action).
-This returns a function that can be called with the necessary arguments to trigger the action.
+Sometimes, an action needs data that isn't part of the form's inputs.
+These additional arguments can be passed using the `with` method.
-```tsx del={1} ins={2,9-13}
+The `with` method creates a new action that wraps around the original action.
+When this new action is triggered, it forwards the arguments specified in the `with` method to the original action, followed by the `FormData` object.
+
+```tsx
import { action } from "@solidjs/router";
+
+const updateProductAction = action(
+ async (productId: string, formData: FormData) => {
+ // ... Sends the updated fields to the server.
+
+ return { ok: true };
+ },
+ "updateProduct"
+);
+
+function EditProductForm(props: { productId: string }) {
+ return (
+
+
+ Save
+
+ );
+}
+```
+
+In this example, `updateProductAction` receives `productId` (passed via `with`), and then the `formData` from the form.
+
+### With the `useAction` primitive
+
+For scenarios where a `` element is not suitable, the `useAction` primitive provides a way to trigger an action programmatically.
+The `useAction` primitive takes an action as its parameter and returns a function that, when called, triggers the action with the provided arguments.
+
+This approach requires client-side JavaScript and is not progressively enhanceable.
+
+```tsx
import { action, useAction } from "@solidjs/router";
-const echo = action(async (message: string) => {
- await new Promise((resolve, reject) => setTimeout(resolve, 1000));
- console.log(message);
+const markNotificationReadAction = action(async (notificationId: string) => {
+ // ... Marks a notification as read on the server.
});
-export function MyComponent() {
- const myEcho = useAction(echo);
+function NotificationItem(props: { id: string }) {
+ const markRead = useAction(markNotificationReadAction);
- myEcho("Hello from Solid!");
+ return markRead(props.id)}>Mark as read ;
}
```
-In this component, `useAction` is used to get a reference to the `echo` action.
-The action is then called with the message `"Hello from Solid!"`, which will be logged to the console after a 1 second delay.
+In this example, `markRead` is a function that can be called with arguments matching `markNotificationReadAction`.
+When the button is clicked, the action is triggered with the provided arguments.
-### Returning data from actions
+## Tracking submission state
-In many cases, after submitting data, the server sends some data back as well.
-This may be in the form of an error message if something has failed or the results of a successful operation.
-Anything returned from an action can be accessed using the reactive `action.result` property, where the value can change each time you submit your action.
+When an action is triggered, it creates a **submission** object.
+This object is a snapshot of the action's execution, containing its input, current status (pending or complete), and its final result or error.
+To access this state, Solid Router provides the [`useSubmission`](/solid-router/reference/data-apis/use-submission) and [`useSubmissions`](/solid-router/reference/data-apis/use-submissions) primitives.
-To access the action's result, you must pass the action to `useSubmission`:
+The `useSubmission` primitive tracks the state of the _most recent_ submission for a specific action.
+This is ideal for most use cases, such as disabling a form's submit button while the action is pending or displaying a confirmation message upon success.
-```tsx del={1} ins={2,11,15-17}
-import { action, useAction } from "@solidjs/router";
-import { action, useAction, useSubmission } from "@solidjs/router";
+```tsx
+import { Show } from "solid-js";
+import { action, useSubmission } from "@solidjs/router";
-const echo = action(async (message: string) => {
- await new Promise((resolve, reject) => setTimeout(resolve, 1000));
- return message;
-});
+const updateSettingsAction = action(async (formData: FormData) => {
+ // ... Sends the settings data to the server.
+}, "updateSettings");
-export function MyComponent() {
- const myEcho = useAction(echo);
- const echoing = useSubmission(echo);
+function UserSettingsForm() {
+ const submission = useSubmission(updateSettingsAction);
- myEcho("Hello from solid!");
+ return (
+
+
- setTimeout(() => myEcho("This is a second submission!"), 1500);
+
+ {submission.pending ? "Saving..." : "Save settings"}
+
+
+ );
+}
+```
- return {echoing.result}
;
+In this example, the form's submit button is disabled while `submission.pending` is `true`.
+
+:::tip
+To track multiple submissions for a single action, such as in a multi-file uploader interface, the [`useSubmissions` primitive](/solid-router/reference/data-apis/use-submissions) can be used.
+:::
+
+## Handling errors
+
+An action can fail for various reasons.
+A robust application must handle these failures gracefully.
+Solid Router provides two mechanisms for an action to signal failure: throwing an `Error` or returning a value.
+
+Throwing an `Error` is a valid way to signal failure.
+Solid Router will catch the thrown error and make it available in the `submission.error` property.
+However, this approach has some drawbacks.
+The `submission.error` property is typed as `any`, which undermines type safety in the consuming component.
+It is also difficult to convey structured error information, such as validation messages for multiple form fields, using a simple `Error` instance.
+
+For these reasons, the recommended practice is to always `return` a descriptive object from an action to represent its outcome.
+The returned object is available in the `submission.result` property, which will be fully typed.
+This makes handling different outcomes in the UI simple and safe.
+
+```tsx
+import { Show } from "solid-js";
+import { action, useSubmission } from "@solidjs/router";
+
+const verifyTwoFactorAction = action(async (formData: FormData) => {
+ const code = formData.get("code")?.toString();
+
+ if (!code || code.length !== 6) {
+ return {
+ ok: false,
+ errors: { code: "Enter the 6-digit code from the authenticator app." },
+ };
+ }
+
+ // ... Verifies the code with the server and handles potential errors.
+
+ return { ok: true };
+}, "verifyTwoFactor");
+
+function TwoFactorForm() {
+ const submission = useSubmission(verifyTwoFactorAction);
+
+ const errors = () => {
+ const result = submission.result;
+ if (result && !result.ok) {
+ return result.errors;
+ }
+ };
+
+ return (
+
+
+
+
+ {errors().code}
+
+
+
+
+ {submission.pending ? "Verifying..." : "Verify"}
+
+
+ );
+}
+```
+
+In this example, the `errors` derived signal inspects `submission.result` to check for failures.
+If an `errors` object is found, its properties are used to conditionally render error messages next to the relevant form fields.
+
+:::caution[Always return a value]
+It is important that an action consistently returns a value from all of its possible code paths.
+Because, if an action returns `undefined` or `null`, Solid Router removes that submission from its internal list upon completion.
+This can lead to unexpected behavior.
+
+For example, consider an action that returns an error object on failure but returns nothing on success.
+If the action fails once, `useSubmission` will correctly report the error.
+However, if a subsequent submission succeeds, it will be removed from the list, and `useSubmission` will continue to report the previous stale error state.
+To prevent this, ensure every code path in an action returns a value, such as `{ ok: true }` to indicate a successful outcome.
+:::
+
+## Automatic data revalidation
+
+After server data changes, the application's can become stale.
+To solve this, Solid Router automatically revalidates all [queries](/solid-router/concepts/queries) used in the same page after a successful action.
+This ensures any component using that data is automatically updated with the freshest information.
+
+For example, if a page displays a list of registered devices and includes a form to register a new one, the list will automatically update after the form is submitted.
+
+```tsx
+import { For } from "solid-js";
+import { query, action, createAsync } from "@solidjs/router";
+
+const getDevicesQuery = query(async () => {
+ // ... Fetches the list of registered devices.
+}, "devices");
+
+const registerDeviceAction = action(async (formData: FormData) => {
+ // ... Registers a new device on the server.
+}, "registerDevice");
+
+function DevicesPage() {
+ // This query will automatically revalidate after registerDeviceAction completes.
+ const devices = createAsync(() => getDevicesQuery());
+
+ return (
+
+
Registered devices
+
{(device) => {device.name}
}
+
+
Register new device
+
+
+ Register device
+
+
+ );
}
```
-Using `useSubmission` leaves the implementation details of how you trigger `echo` up to you.
-When handling user inputs, for example, it is better to use a `form` for a multitude of reasons.
+While this automatic behavior is convenient for most cases, more fine-grained control may be needed.
+The next section explains how to customize or even disable this behavior for specific actions.
-## Using forms to submit data
+## Managing navigation and revalidation
-When submitting data with actions, it is recommended to use HTML forms.
-These forms can be used prior to JavaScript loading, which creates instantly interactive applications.
-This also inherently provides accessibility benefits, saving the time of designing a custom UI library that may not have these benefits.
+While automatic revalidation is powerful, more control is often needed.
+It may be desirable to redirect the user to a different page, prevent revalidation entirely, or revalidate a specific set of queries.
+This is where response helpers come in.
-When using forms to submit actions, the first argument passed to your action function is an instance of [`FormData`](https://developer.mozilla.org/en-US/docs/Web/API/FormData).
-To use actions with forms, pass the action to the `action` property of your form.
-This creates progressively enhanced forms that work even when JavaScript is disabled.
+Response helpers are functions that create special [`Response`](https://developer.mozilla.org/en-US/docs/Web/API/Response) objects.
+When an action returns or throws one of these responses, Solid Router intercepts it and performs a specific task.
-If you do not return a `Response` from your action, the user will stay on the same page and responses will be re-triggered.
-Using a `redirect` can tell the browser to navigate to a new page.
+### Redirecting
+To navigate the user to a new page after an action completes, the [`redirect` helper](/solid-router/reference/response-helpers/redirect) can be used.
+It can also be used to revalidate specific queries upon redirection, which is useful for updating data that is displayed on the new page.
```tsx
import { action, redirect } from "@solidjs/router";
+import { useSession } from "vinxi/http";
+
+const logoutAction = action(async () => {
+ "use server";
+ const session = await useSession({
+ password: process.env.SESSION_SECRET as string,
+ name: "session",
+ });
+
+ if (session.data.sessionId) {
+ await session.clear();
+ await db.session.delete({ id: sessionId });
+ }
+
+ throw redirect("/");
+}, "logout");
+```
+
+In this example, after a successful login, the `redirect` helper is used to navigate to the dashboard.
+It also revalidates the "session" query to ensure the UI reflects the user's authenticated state.
+
+### Customizing revalidation
-const isAdmin = action(async (formData: FormData) => {
- await new Promise((resolve, reject) => setTimeout(resolve, 1000));
+To override the default revalidation behavior, the [`reload`](/solid-router/reference/response-helpers/reload) and [`json`](/solid-router/reference/response-helpers/json) helpers can be used.
- const username = formData.get("username");
+- `reload` is used when only revalidation needs to be customized.
+- `json` is used when revalidation needs to be controlled _and_ data needs to be returned from the action.
- if (username === "admin") throw redirect("/admin");
- return new Error("Invalid username");
+Both helpers accept a `revalidate` option, which takes an array of query keys to revalidate.
+If an empty array (`[]`) is provided, revalidation is prevented altogether.
+
+```tsx
+import { action, reload, json } from "@solidjs/router";
+
+// Example 1: Revalidating a specific query
+const savePreferencesAction = action(async () => {
+ // ... Saves the user preferences.
+
+ // Only revalidate the 'userPreferences' query
+ throw reload({ revalidate: ["userPreferences"] });
});
-export function MyComponent() {
+// Example 2: Disabling revalidation and returning data
+const logActivityAction = action(async () => {
+ // ... Logs the activity to the server.
- return (
-
- Username:
-
-
-
- );
-}
+ // Return without revalidating any queries
+ return json({ ok: true }, { revalidate: [] });
+});
```
-**Note:** If you are uploading files make sure you include `enctype="multipart/form-data"` to your `` element.
+:::tip[Throwing vs. Returning]
+A response helper can be either `return`ed or `throw`n.
+In TypeScript, `throw` can be more convenient, as it avoids potential type conflicts with an action's expected return value.
+:::
+
+## Optimistic UI
+
+Optimistic UI is a pattern where the user interface is updated immediately after a user performs an operation.
+This is done without waiting for the server to confirm the operation's success.
+This approach makes an application feel faster and more responsive.
+
+Actions can be combined with local state management to implement optimistic UI.
+The `useSubmission` primitive can be used to access the input of an action as it's being submitted.
+This input can be used to temporarily update the UI.
-## Error handling
+```tsx
+import { For, Show } from "solid-js";
+import { query, action, createAsync, useSubmission } from "@solidjs/router";
+
+const getCartQuery = query(async () => {
+ // ... Fetches the current shopping cart items.
+}, "cart");
+
+const addToCartAction = action(async (formData: FormData) => {
+ // ... Adds a product to the cart.
+}, "addToCart");
+
+function CartPage() {
+ const cart = createAsync(() => getCartQuery());
+ const submission = useSubmission(addToCartAction);
+
+ const optimisticCart = () => {
+ const originalItems = cart() ?? [];
+ if (submission.pending) {
+ const formData = submission.input[0] as FormData;
+ const productId = formData.get("productId")?.toString();
+ const name = formData.get("name")?.toString();
+ if (productId && name) {
+ // Add the optimistic line item with a temporary identifier.
+ return [...originalItems, { id: "temp", productId, name, quantity: 1 }];
+ }
+ }
+ return originalItems;
+ };
+
+ return (
+
+
Your cart
+
{(item) => {item.name}
}
+
+
Add item
+
+
+
+
+ {submission.pending ? "Adding..." : "Add to cart"}
+
+
+
+ );
+}
+```
-Rather than throwing errors, it is recommended to return them from actions.
-This helps with the typing of submissions that would be used with `useSubmission`.
-This is important when handling progressive enhancement where no JavaScript is present in the client, so that errors can be used declaratively to render the updated page on the server.
+In this example, a derived signal `optimisticCart` is created.
+When an action is pending, it checks the `submission.input` and adds the new cart item to the list with a temporary ID.
+If the action fails, `submission.pending` becomes false, and `optimisticCart` will revert to showing the original list from `cart`.
+When the action succeeds, Solid Router automatically revalidates `getCartQuery` and updates the UI with the confirmed cart state.
-Additionally, when using server actions, it is good practice to handle errors on the server to sanitize error messages.
+:::note
+For more advanced patterns, consider using [TanStack Query](https://tanstack.com/query/latest/docs/framework/solid/guides/optimistic-updates).
+It provides robust tools for managing server state, including cache-based optimistic updates.
+:::
diff --git a/src/routes/solid-router/concepts/alternative-routers.mdx b/src/routes/solid-router/concepts/alternative-routers.mdx
index 4f86f37516..be5529d580 100644
--- a/src/routes/solid-router/concepts/alternative-routers.mdx
+++ b/src/routes/solid-router/concepts/alternative-routers.mdx
@@ -1,5 +1,19 @@
---
title: Alternative routers
+use_cases: >-
+ single-page apps without server routing, legacy hash-based urls, testing
+ router logic, client-only navigation
+tags:
+ - hash-mode
+ - memory-mode
+ - client-side
+ - testing
+ - spa
+ - routing
+version: '1.0'
+description: >-
+ Learn to use hash-based and memory routers in SolidJS for client-side
+ navigation and testing without server interaction.
---
While the default router uses the browser's `location.pathname` to determine the current route, you can use alternative routers to change this behavior.
@@ -65,4 +79,4 @@ render(
document.getElementById("app")
);
-```
\ No newline at end of file
+```
diff --git a/src/routes/solid-router/concepts/catch-all.mdx b/src/routes/solid-router/concepts/catch-all.mdx
index a08de71c51..5747f2a800 100644
--- a/src/routes/solid-router/concepts/catch-all.mdx
+++ b/src/routes/solid-router/concepts/catch-all.mdx
@@ -1,5 +1,18 @@
---
title: Catch-all routes
+use_cases: >-
+ 404 pages, handling invalid urls, fallback routes, error boundaries, redirect
+ unknown paths
+tags:
+ - '404'
+ - error-pages
+ - fallback
+ - routing
+ - wildcards
+version: '1.0'
+description: >-
+ Create catch-all routes in SolidJS to handle 404 errors and redirect users
+ from invalid URLs to proper fallback pages.
---
Catch-all routes are used to match any URL that does not match any other route in the application.
diff --git a/src/routes/solid-router/concepts/data.json b/src/routes/solid-router/concepts/data.json
index 9d91d50dd8..835a9fb964 100644
--- a/src/routes/solid-router/concepts/data.json
+++ b/src/routes/solid-router/concepts/data.json
@@ -8,6 +8,7 @@
"nesting.mdx",
"layouts.mdx",
"alternative-routers.mdx",
+ "queries.mdx",
"actions.mdx"
]
-}
\ No newline at end of file
+}
diff --git a/src/routes/solid-router/concepts/dynamic-routes.mdx b/src/routes/solid-router/concepts/dynamic-routes.mdx
index aba2b544e5..89db7b8963 100644
--- a/src/routes/solid-router/concepts/dynamic-routes.mdx
+++ b/src/routes/solid-router/concepts/dynamic-routes.mdx
@@ -1,5 +1,18 @@
---
title: Dynamic routes
+use_cases: >-
+ user profiles, product pages, blog posts, id-based content, variable urls,
+ data-driven pages
+tags:
+ - dynamic
+ - parameters
+ - validation
+ - wildcards
+ - routing
+version: '1.0'
+description: >-
+ Build dynamic routes with parameters in SolidJS for user profiles, products,
+ and content that changes based on URL values.
---
When a path is unknown ahead of time, it can be treated as a flexible parameter that is passed on to the component:
diff --git a/src/routes/solid-router/concepts/layouts.mdx b/src/routes/solid-router/concepts/layouts.mdx
index bf6dcf5340..7a5b941135 100644
--- a/src/routes/solid-router/concepts/layouts.mdx
+++ b/src/routes/solid-router/concepts/layouts.mdx
@@ -1,5 +1,18 @@
---
-title: "Layouts"
+title: Layouts
+use_cases: >-
+ consistent headers/footers, shared navigation, admin panels, dashboard
+ layouts, nested ui structure
+tags:
+ - layouts
+ - nesting
+ - ui-structure
+ - components
+ - routing
+version: '1.0'
+description: >-
+ Create consistent page layouts in SolidJS with shared headers, footers, and
+ nested structures for better UI organization.
---
To maintain consistency across an application's page you can use layouts.
diff --git a/src/routes/solid-router/concepts/navigation.mdx b/src/routes/solid-router/concepts/navigation.mdx
index 5f2e9b1155..f2ba178242 100644
--- a/src/routes/solid-router/concepts/navigation.mdx
+++ b/src/routes/solid-router/concepts/navigation.mdx
@@ -1,6 +1,19 @@
----
-title: "Navigation"
----
+---
+title: Navigation
+use_cases: >-
+ page transitions, programmatic routing, user actions, form submissions,
+ authentication flows, redirects
+tags:
+ - navigation
+ - links
+ - redirects
+ - routing
+ - programmatic
+version: '1.0'
+description: >-
+ Navigate between routes in SolidJS using links, programmatic navigation, and
+ redirects for seamless user experiences.
+---
When using Solid Router, you can use the standard standard HTML [`` elements](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a), which triggers [soft navigation](/solid-router/reference/components/a#soft-navigation).
In addition to using this, Solid Router offers other options for navigating between routes:
diff --git a/src/routes/solid-router/concepts/nesting.mdx b/src/routes/solid-router/concepts/nesting.mdx
index 0da70a850a..9e2c1b9308 100644
--- a/src/routes/solid-router/concepts/nesting.mdx
+++ b/src/routes/solid-router/concepts/nesting.mdx
@@ -1,5 +1,18 @@
---
title: Nesting routes
+use_cases: >-
+ hierarchical pages, parent-child relationships, shared layouts, complex
+ routing structures, admin sections
+tags:
+ - nesting
+ - hierarchy
+ - routing
+ - layouts
+ - config
+version: '1.0'
+description: >-
+ Build nested route hierarchies in SolidJS for complex applications with
+ parent-child relationships and shared layouts.
---
Nested routes are a way to create a hierarchy of routes in your application.
diff --git a/src/routes/solid-router/concepts/path-parameters.mdx b/src/routes/solid-router/concepts/path-parameters.mdx
index 4d7ff707e7..956e9379ff 100644
--- a/src/routes/solid-router/concepts/path-parameters.mdx
+++ b/src/routes/solid-router/concepts/path-parameters.mdx
@@ -1,6 +1,19 @@
----
-title: "Path parameters"
----
+---
+title: Path parameters
+use_cases: >-
+ dynamic content, user profiles, resource ids, filtering data, validation,
+ flexible routing
+tags:
+ - parameters
+ - validation
+ - dynamic
+ - wildcards
+ - routing
+version: '1.0'
+description: >-
+ Capture and validate dynamic URL parameters in SolidJS routes for flexible
+ content display and data-driven pages.
+---
Parameters within a route are used to capture dynamic values from the URL.
This is useful for creating routes that are more flexible and can handle different values.
diff --git a/src/routes/solid-router/concepts/search-parameters.mdx b/src/routes/solid-router/concepts/search-parameters.mdx
index 8df4ddd720..d3f964bf09 100644
--- a/src/routes/solid-router/concepts/search-parameters.mdx
+++ b/src/routes/solid-router/concepts/search-parameters.mdx
@@ -1,6 +1,19 @@
----
-title: "Search parameters"
----
+---
+title: Search parameters
+use_cases: >-
+ filtering, pagination, search queries, form state in url, shareable urls,
+ stateful navigation
+tags:
+ - query-params
+ - search
+ - state
+ - url
+ - routing
+version: '1.0'
+description: >-
+ Manage query strings and search parameters in SolidJS for filtering,
+ pagination, and maintaining state in the URL.
+---
Search parameters are used to pass data to a route using the query string.
The query string is the part of the URL that comes after the `?` character and is used to pass key-value pairs to the route.
diff --git a/src/routes/solid-router/data-fetching/data.json b/src/routes/solid-router/data-fetching/data.json
new file mode 100644
index 0000000000..e67f9ab6e3
--- /dev/null
+++ b/src/routes/solid-router/data-fetching/data.json
@@ -0,0 +1,4 @@
+{
+ "title": "Data fetching",
+ "pages": ["queries.mdx", "streaming.mdx", "revalidation.mdx", "how-to"]
+}
diff --git a/src/routes/solid-router/data-fetching/how-to/data.json b/src/routes/solid-router/data-fetching/how-to/data.json
new file mode 100644
index 0000000000..d96966227c
--- /dev/null
+++ b/src/routes/solid-router/data-fetching/how-to/data.json
@@ -0,0 +1,4 @@
+{
+ "title": "How to",
+ "pages": ["preload-data.mdx", "handle-error-and-loading-states.mdx"]
+}
diff --git a/src/routes/solid-router/data-fetching/how-to/handle-error-and-loading-states.mdx b/src/routes/solid-router/data-fetching/how-to/handle-error-and-loading-states.mdx
new file mode 100644
index 0000000000..2f559a617d
--- /dev/null
+++ b/src/routes/solid-router/data-fetching/how-to/handle-error-and-loading-states.mdx
@@ -0,0 +1,29 @@
+---
+title: "Handle pending and error states"
+---
+
+The `createAsync` primitive is designed to work with Solid's native components for managing asynchronous states.
+It reports its pending state to the nearest [`` boundary](/reference/components/suspense) to display loading fallbacks, and propagate errors to an [``](/reference/components/error-boundary) for handling and displaying error messages.
+
+```tsx
+import { Suspense, ErrorBoundary, For } from "solid-js";
+import { query, createAsync } from "@solidjs/router";
+
+const getNewsQuery = query(async () => {
+ // ... Fetches the latest news from an API.
+}, "news");
+
+function NewsFeed() {
+ const news = createAsync(() => getNewsQuery());
+
+ return (
+ Could not fetch news.}>
+ Loading news...}>
+
+ {(item) => {item.headline} }
+
+
+
+ );
+}
+```
diff --git a/src/routes/solid-router/data-fetching/how-to/preload-data.mdx b/src/routes/solid-router/data-fetching/how-to/preload-data.mdx
new file mode 100644
index 0000000000..39215abe63
--- /dev/null
+++ b/src/routes/solid-router/data-fetching/how-to/preload-data.mdx
@@ -0,0 +1,54 @@
+---
+title: "Preload data"
+---
+
+Preloading data improves perceived performance by fetching the data for an upcoming page before the user navigates to it.
+
+Solid Router initiates preloading in two scenarios:
+
+- When a user indicates intent to navigate to the page (e.g., by hovering over a link).
+- When the route's component is rendering.
+
+This ensures data fetching starts as early as possible, often making data ready once the component renders.
+
+Preloading is configured using the [`preload`](/solid-router/reference/preload-functions/preload) prop on a [`Route`](/solid-router/reference/components/route).
+This prop accepts a function that calls one or more queries.
+When triggered, the queries execute and their results are stored in a short-lived internal cache.
+Once the user navigates and the destination route’s component renders, any `createAsync` calls within the page will consume the preloaded data.
+Thanks to the [deduplication mechanism](#deduplication), no redundant network requests are made.
+
+```tsx {18-20,27}
+import { Show } from "solid-js";
+import { Route, query, createAsync } from "@solidjs/router";
+
+const getProductQuery = query(async (id: string) => {
+ // ... Fetches product details for the given ID.
+}, "product");
+
+function ProductDetails(props) {
+ const product = createAsync(() => getProductQuery(props.params.id));
+
+ return (
+
+ {product().name}
+
+ );
+}
+
+function preloadProduct({ params }: { params: { id: string } }) {
+ getProductQuery(params.id);
+}
+
+function Routes() {
+ return (
+
+ );
+}
+```
+
+In this example, hovering a link to `/products/:id` triggers `preloadProduct`.
+When the `ProductDetails` component renders, its `createAsync` call will instantly resolve with the preloaded data.
diff --git a/src/routes/solid-router/data-fetching/queries.mdx b/src/routes/solid-router/data-fetching/queries.mdx
new file mode 100644
index 0000000000..0f43335a6a
--- /dev/null
+++ b/src/routes/solid-router/data-fetching/queries.mdx
@@ -0,0 +1,81 @@
+---
+title: "Queries"
+---
+
+Queries are the core building blocks for data fetching in Solid Router.
+They provide an elegant solution for managing data fetching.
+
+## Defining queries
+
+They are defined using the [`query` function](/solid-router/reference/data-apis/query).
+It wraps the data-fetching logic and extends it with powerful capabilities like [request deduplication](#deduplication) and [automatic revalidation](#revalidation).
+
+The `query` function takes two parameters: a **fetcher** and a **name**.
+
+- The **fetcher** is an asynchronous function that fetches data from any source, such as a remote API.
+- The **name** is a unique string used to identify the query.
+ When a query is called, Solid Router uses this name and the arguments passed to the query to create a unique key, which is used for the internal deduplication mechanism.
+
+```tsx
+import { query } from "@solidjs/router";
+
+const getUserProfileQuery = query(async (userId: string) => {
+ const response = await fetch(
+ `https://api.example.com/users/${encodeURIComponent(userId)}`
+ );
+ const json = await response.json();
+
+ if (!response.ok) {
+ throw new Error(json?.message ?? "Failed to load user profile.");
+ }
+
+ return json;
+}, "userProfile");
+```
+
+In this example, the defined query fetches a user's profile from an API.
+If the request fails, the fetcher will throw an error that will be caught by the nearest [``](/reference/components/error-boundary) in the component tree.
+
+## Using queries in components
+
+Defining a query does not by itself fetch any data.
+To access its data, the query can be used with the [`createAsync` primitive](/solid-router/reference/data-apis/create-async).
+`createAsync` takes an asynchronous function, such as a query, and returns a signal that tracks its result.
+
+```tsx
+import { For, Show } from "solid-js";
+import { query, createAsync } from "@solidjs/router";
+
+const getArticlesQuery = query(async () => {
+ // ... Fetches a list of articles from an API.
+}, "articles");
+
+function Articles() {
+ const articles = createAsync(() => getArticlesQuery());
+
+ return (
+
+ {(article) => {article.title}
}
+
+ );
+}
+```
+
+In this example, `createAsync` is used to call the query.
+Once the query completes, `articles` holds the result, which is then rendered.
+
+:::tip
+When working with complex data types, such as arrays or deeply nested objects, the [`createAsyncStore` primitive](/solid-router/reference/data-apis/create-async-store) offers a more ergonomic and performant solution.
+It works like `createAsync`, but returns a [store](/concepts/stores) for easier state management..
+:::
+
+## Deduplication
+
+A key feature of queries is their ability to deduplicate requests, preventing redundant data fetching in quick succession.
+
+One common use case is preloading: when a user hovers over a link, the application can begin preloading the data for the destination page.
+If the user then clicks the link, the query has already been completed, and the data is available instantly without triggering another network request.
+This mechanism is fundamental to the performance of Solid Router applications.
+
+Deduplication also applies when multiple components on the same page use the same query.
+As long as at least one component is actively using the query, Solid Router will reuse the cached result instead of refetching the data.
diff --git a/src/routes/solid-router/data-fetching/revalidation.mdx b/src/routes/solid-router/data-fetching/revalidation.mdx
new file mode 100644
index 0000000000..3ee773fdfd
--- /dev/null
+++ b/src/routes/solid-router/data-fetching/revalidation.mdx
@@ -0,0 +1,60 @@
+---
+title: "Revalidation"
+---
+
+Since server data can change, Solid Router provides mechanisms to revalidate queries and keep the UI up to date.
+
+The most common case is **automatic revalidation**.
+After an [action](/solid-router/concepts/actions) completes successfully, Solid Router automatically revalidates all active queries on the page.
+For more details, see the [actions documentation](/solid-router/concepts/actions#automatic-data-revalidation).
+
+For more fine-grained control, you can trigger revalidation manually with the [`revalidate` function](/solid-router/reference/data-apis/revalidate).
+It accepts a query key (or an array of keys) to target specific queries.
+Each query exposes two properties for this: `key` and `keyFor`.
+
+- `query.key` is the base key for a query and targets all of its instances.
+ Using this key will revalidate all data fetched by that query, regardless of the arguments provided.
+- `query.keyFor(arguments)` generates a key for a specific set of arguments, allowing you to target and revalidate only that particular query.
+
+```tsx
+import { For } from "solid-js";
+import { query, createAsync, revalidate } from "@solidjs/router";
+
+const getProjectsQuery = query(async () => {
+ // ... Fetches a list of projects.
+}, "projects");
+
+const getProjectTasksQuery = query(async (projectId: string) => {
+ // ... Fetches a list of tasks for a project.
+}, "projectTasks");
+
+function Projects() {
+ const projects = createAsync(() => getProjectsQuery());
+
+ function refetchAllTasks() {
+ revalidate(getProjectTasksQuery.key);
+ }
+
+ return (
+
+
Refetch all tasks
+
{(project) => }
+
+ );
+}
+
+function Project(props: { id: string }) {
+ const tasks = createAsync(() => getProjectTasksQuery(props.id));
+
+ function refetchTasks() {
+ revalidate(getProjectTasksQuery.keyFor(props.id));
+ }
+
+ return (
+
+
Refetch tasks for this project
+
{(task) => {task.title}
}
+
+ );
+}
+```
diff --git a/src/routes/solid-router/data-fetching/streaming.mdx b/src/routes/solid-router/data-fetching/streaming.mdx
new file mode 100644
index 0000000000..42fa45f419
--- /dev/null
+++ b/src/routes/solid-router/data-fetching/streaming.mdx
@@ -0,0 +1,90 @@
+---
+title: "Streaming"
+---
+
+In traditional server-rendered applications, the server must fetch all data before rendering and sending the page to the browser.
+If some queries are slow, this delays the initial load.
+**Streaming** solves this by sending the page’s HTML shell immediately and progressively streaming data-dependent sections as they become ready.
+
+When a query is accessed during a server-side render, Solid suspends the UI until the data resolves.
+By default, this suspension affects the entire page.
+
+To control this behavior, you can use suspense boundaries - regions of the component tree defined by a [`` component](/reference/components/suspense).
+It isolates asynchronous behavior to a specific section of the page.
+
+Content inside the boundary is managed by Solid’s concurrency system: if it isn’t ready, the boundary’s fallback UI is shown while the rest of the page renders and streams immediately.
+Once the data resolves, the server streams the final HTML for that section, replacing the fallback and letting users see and interact with most of the page much sooner.
+
+```tsx
+import { Suspense, For } from "solid-js";
+import { query, createAsync } from "@solidjs/router";
+
+const getAccountStatsQuery = query(async () => {
+ // ... Fetches account statistics.
+}, "accountStats");
+
+const getRecentTransactionsQuery = query(async () => {
+ // ... Fetches a list of recent transactions.
+}, "recentTransactions");
+
+function Dashboard() {
+ const stats = createAsync(() => getAccountStatsQuery());
+ const transactions = createAsync(() => getRecentTransactionsQuery());
+
+ return (
+
+
Dashboard
+
Loading account stats...}>
+
+ {(stat) => (
+
+ {stat.label}: {stat.value}
+
+ )}
+
+
+
+
Loading recent transactions...}>
+
+ {(transaction) => (
+
+ {transaction.description} - {transaction.amount}
+
+ )}
+
+
+
+ );
+}
+```
+
+For example, each `` component creates its own independent boundary.
+The server can stream the heading `Dashboard ` immediately, while the `stats` and `transactions` are handled separately.
+If the `transactions` query is slow, only its boundary will display a fallback, while `stats` will render as soon as its data is ready.
+
+## When to disable streaming
+
+While streaming is powerful, there are cases where it is better to wait for the data to load on the server.
+In these situations, you can use the `deferStream` option in `createAsync`.
+
+When `deferStream` is set to `true`, the server waits for the query to resolve before sending the initial HTML.
+
+A common reason to disable streaming is for Search Engine Optimization (SEO).
+Some search engine crawlers may not wait for streamed content to load.
+If critical data, such as a page title or meta description, affects SEO, it should be included in the initial server response.
+
+```tsx
+import { query, createAsync } from "@solidjs/router";
+
+const getArticleQuery = query(async () => {
+ // ... Fetches an article.
+}, "article");
+
+function ArticleHeader() {
+ const article = createAsync(() => getArticleQuery(), {
+ deferStream: true,
+ });
+
+ return {article()?.title} ;
+}
+```
diff --git a/src/routes/solid-router/data.json b/src/routes/solid-router/data.json
index a141ae4d40..e60a784f23 100644
--- a/src/routes/solid-router/data.json
+++ b/src/routes/solid-router/data.json
@@ -5,6 +5,7 @@
"getting-started",
"concepts",
"rendering-modes",
+ "data-fetching",
"advanced-concepts",
"guides"
]
diff --git a/src/routes/solid-router/getting-started/component.mdx b/src/routes/solid-router/getting-started/component.mdx
index dd214874ca..5207f3aa78 100644
--- a/src/routes/solid-router/getting-started/component.mdx
+++ b/src/routes/solid-router/getting-started/component.mdx
@@ -1,5 +1,18 @@
---
-title: "Component routing"
+title: Component routing
+use_cases: >-
+ defining routes, jsx routing, template-based routing, initial setup, basic
+ navigation
+tags:
+ - jsx
+ - components
+ - routing
+ - setup
+ - templates
+version: '1.0'
+description: >-
+ Define routes using JSX components in SolidJS Router for intuitive,
+ template-based routing in your applications.
---
In Solid Router, routes can be defined directly in an application's template using JSX.
@@ -47,4 +60,4 @@ render(
);
```
-This example defines three routes: the root path (`/`) which renders the `Home` page, the path `/hello-world` which renders an `h1` element, and the path `/about` which renders the `About` component.
\ No newline at end of file
+This example defines three routes: the root path (`/`) which renders the `Home` page, the path `/hello-world` which renders an `h1` element, and the path `/about` which renders the `About` component.
diff --git a/src/routes/solid-router/getting-started/config.mdx b/src/routes/solid-router/getting-started/config.mdx
index f1b00bd859..1df61cdd82 100644
--- a/src/routes/solid-router/getting-started/config.mdx
+++ b/src/routes/solid-router/getting-started/config.mdx
@@ -1,5 +1,18 @@
---
-title: "Config-based routing"
+title: Config-based routing
+use_cases: >-
+ centralized routing, lazy loading, config-based setup, dynamic imports,
+ performance optimization
+tags:
+ - config
+ - lazy-loading
+ - routing
+ - performance
+ - setup
+version: '1.0'
+description: >-
+ Configure SolidJS routes with config objects for centralized routing, lazy
+ loading, and optimized performance.
---
Solid Router supports config-based routing, which offers the same capabilities as [component routing](/solid-router/getting-started/component).
diff --git a/src/routes/solid-router/getting-started/installation-and-setup.mdx b/src/routes/solid-router/getting-started/installation-and-setup.mdx
index 15ec2e8e9f..687bddd139 100644
--- a/src/routes/solid-router/getting-started/installation-and-setup.mdx
+++ b/src/routes/solid-router/getting-started/installation-and-setup.mdx
@@ -1,5 +1,19 @@
---
title: Installation and setup
+use_cases: >-
+ starting new project, initial setup, configuring routing, spa applications,
+ client-side routing
+tags:
+ - setup
+ - installation
+ - configuration
+ - spa
+ - routing
+ - getting-started
+version: '1.0'
+description: >-
+ Learn how to install and configure Solid Router for client and server-side
+ routing in your single-page applications with step-by-step setup guide.
---
Solid Router is the universal router for Solid which works for rendering on the client or the server.
diff --git a/src/routes/solid-router/getting-started/linking-routes.mdx b/src/routes/solid-router/getting-started/linking-routes.mdx
index d24c5debac..4e794b237b 100644
--- a/src/routes/solid-router/getting-started/linking-routes.mdx
+++ b/src/routes/solid-router/getting-started/linking-routes.mdx
@@ -1,5 +1,19 @@
---
title: Linking routes
+use_cases: >-
+ navigation between pages, creating menu bars, active link styling, internal
+ linking, user navigation
+tags:
+ - navigation
+ - links
+ - anchors
+ - active-states
+ - menu
+ - ui
+version: '1.0'
+description: >-
+ Create navigation links between routes using anchor tags and the A component
+ with active state styling and automatic base path handling.
---
Once routes have been created within an application, using anchor tags will help users navigate between different views or pages.
diff --git a/src/routes/solid-router/guides/migration.mdx b/src/routes/solid-router/guides/migration.mdx
index 6ddf20e18d..1fda775646 100644
--- a/src/routes/solid-router/guides/migration.mdx
+++ b/src/routes/solid-router/guides/migration.mdx
@@ -1,5 +1,19 @@
---
title: Migration from v0.9.x
+use_cases: >-
+ upgrading from v0.9, breaking changes, api migration, updating legacy code,
+ version upgrade
+tags:
+ - migration
+ - upgrade
+ - breaking-changes
+ - v0.10
+ - api-changes
+ - legacy
+version: '1.0'
+description: >-
+ Migrate your Solid Router application to v0.10 with this comprehensive guide
+ covering removed APIs, new patterns, and Islands support changes.
---
v0.10.0 brings some big changes to support the future of routing including Islands/Partial Hydration hybrid solutions.
diff --git a/src/routes/solid-router/index.mdx b/src/routes/solid-router/index.mdx
index d75f93c719..a970c8223d 100644
--- a/src/routes/solid-router/index.mdx
+++ b/src/routes/solid-router/index.mdx
@@ -1,5 +1,19 @@
---
title: Overview
+use_cases: >-
+ understanding routing, learning basics, overview needed, getting started, spa
+ routing concepts
+tags:
+ - overview
+ - introduction
+ - basics
+ - spa
+ - routing
+ - concepts
+version: '1.0'
+description: >-
+ Solid Router is the universal routing solution for Solid applications,
+ enabling client and server-side navigation in single-page applications.
---
# Overview
diff --git a/src/routes/solid-router/reference/components/a.mdx b/src/routes/solid-router/reference/components/a.mdx
index e09be7df16..87f03d7b58 100644
--- a/src/routes/solid-router/reference/components/a.mdx
+++ b/src/routes/solid-router/reference/components/a.mdx
@@ -1,5 +1,19 @@
---
title: A
+use_cases: >-
+ creating navigation links, active link styling, soft navigation, relative
+ paths, menu items
+tags:
+ - component
+ - navigation
+ - links
+ - active-states
+ - anchors
+ - soft-navigation
+version: '1.0'
+description: >-
+ The A component provides enhanced anchor tags with automatic base path
+ support, active states, and soft navigation for better user experience.
---
Solid Router exposes the ` ` component as a wrapper around the [native anchor tag ](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a).
diff --git a/src/routes/solid-router/reference/components/hash-router.mdx b/src/routes/solid-router/reference/components/hash-router.mdx
index 168edac886..7dbd099cd5 100644
--- a/src/routes/solid-router/reference/components/hash-router.mdx
+++ b/src/routes/solid-router/reference/components/hash-router.mdx
@@ -1,5 +1,19 @@
---
title: HashRouter
+use_cases: >-
+ static file hosting, single html file apps, no server routing, github pages,
+ static deployment
+tags:
+ - hash-routing
+ - static-hosting
+ - client-side
+ - spa
+ - deployment
+ - component
+version: '1.0'
+description: >-
+ HashRouter enables client-side routing using URL hash values, perfect for
+ static file hosting where server-side routing isn't available.
---
The `HashRouter` is a top level component that manages the routing of your application.
diff --git a/src/routes/solid-router/reference/components/memory-router.mdx b/src/routes/solid-router/reference/components/memory-router.mdx
index f58b84d797..fd4dd69259 100644
--- a/src/routes/solid-router/reference/components/memory-router.mdx
+++ b/src/routes/solid-router/reference/components/memory-router.mdx
@@ -1,5 +1,19 @@
---
title: MemoryRouter
+use_cases: >-
+ testing routing, controlled navigation, internal history, unit tests,
+ programmatic routing
+tags:
+ - testing
+ - memory
+ - history
+ - component
+ - navigation
+ - programmatic
+version: '1.0'
+description: >-
+ MemoryRouter keeps routing history in memory for complete control, ideal for
+ testing scenarios and programmatic navigation management.
---
The `MemoryRouter` can be used to route while keeping the entire routing history within internal memory.
diff --git a/src/routes/solid-router/reference/components/navigate.mdx b/src/routes/solid-router/reference/components/navigate.mdx
index 7edd009ea1..4fe0ba2ab5 100644
--- a/src/routes/solid-router/reference/components/navigate.mdx
+++ b/src/routes/solid-router/reference/components/navigate.mdx
@@ -1,5 +1,18 @@
---
title: Navigate
+use_cases: >-
+ automatic redirects, programmatic navigation, conditional routing, auth
+ redirects, dynamic routing
+tags:
+ - component
+ - redirects
+ - navigation
+ - programmatic
+ - dynamic
+version: '1.0'
+description: >-
+ Navigate component provides immediate programmatic navigation and redirects,
+ perfect for authentication flows and conditional routing logic.
---
Solid Router provides a `Navigate` component that works similarly to [``](/solid-router/reference/components/a), but it will _immediately_ navigate to the provided path as soon as the component is rendered.
diff --git a/src/routes/solid-router/reference/components/route.mdx b/src/routes/solid-router/reference/components/route.mdx
index e1848905f3..10ef6f6311 100644
--- a/src/routes/solid-router/reference/components/route.mdx
+++ b/src/routes/solid-router/reference/components/route.mdx
@@ -1,5 +1,19 @@
---
title: Route
+use_cases: >-
+ defining routes, app structure, url mapping, component rendering, nested
+ routing
+tags:
+ - component
+ - routes
+ - structure
+ - paths
+ - nested
+ - configuration
+version: '1.0'
+description: >-
+ Route component defines your application's URL structure and maps paths to
+ components with support for multiple paths and nested routing.
---
`Route` is the component used when defining the routes of an application.
diff --git a/src/routes/solid-router/reference/components/router.mdx b/src/routes/solid-router/reference/components/router.mdx
index 4a85425bf2..9ff9160346 100644
--- a/src/routes/solid-router/reference/components/router.mdx
+++ b/src/routes/solid-router/reference/components/router.mdx
@@ -1,5 +1,19 @@
---
title: Router
+use_cases: >-
+ app initialization, root setup, layout wrapper, routing context, main
+ configuration
+tags:
+ - component
+ - root
+ - initialization
+ - layout
+ - configuration
+ - context
+version: '1.0'
+description: >-
+ Router is the top-level component that manages your app's routing, providing
+ context and configuration for all child routes and navigation.
---
The `Router` component is a top level component that manages the routing of your application.
diff --git a/src/routes/solid-router/reference/data-apis/action.mdx b/src/routes/solid-router/reference/data-apis/action.mdx
index 8f3a5e666a..89d64b7639 100644
--- a/src/routes/solid-router/reference/data-apis/action.mdx
+++ b/src/routes/solid-router/reference/data-apis/action.mdx
@@ -1,197 +1,155 @@
---
title: action
+use_cases: >-
+ forms, user input, data mutations, optimistic updates, form submissions,
+ server actions, post requests
+tags:
+ - actions
+ - forms
+ - mutations
+ - post
+ - validation
+ - optimistic-updates
+ - server
+version: '1.0'
+description: >-
+ Learn how to handle form submissions and data mutations in SolidJS with
+ actions, including optimistic updates and server-side processing.
---
-Actions are data mutations that can trigger invalidations and further routing.
-A list of prebuilt response helpers can be found below.
+The `action` function wraps an asynchronous function and returns an [action](/solid-router/concepts/actions).
-```jsx
-import { action, revalidate, redirect } from "@solidjs/router"
+When an action is triggered, it creates a submission object that tracks its execution status.
+This state can be accessed with the [`useSubmission`](/solid-router/reference/data-apis/use-submission) and [`useSubmissions`](/solid-router/reference/data-apis/use-submissions) primitives.
-// anywhere
-const myAction = action(async (data) => {
- await doMutation(data);
- throw redirect("/", { revalidate: getUser.keyFor(data.id) }); // throw a response to do a redirect
-});
-
-// in component
-
+After an action completed successfully, all queries active in the same page are revalidated, unless revalidation is configured using [response helpers](/solid-router/concepts/actions#managing-navigation-and-revalidation).
-//or
-
+## Import
+```tsx
+import { action } from "@solidjs/router";
```
-Actions only work with **post** requests.
-This means forms require `method="post"`.
-
-A `with` method can be used when typed data is required.
-This removes the need to use `FormData` or other additional hidden fields.
-The `with` method works similar to [`bind`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_objects/Function/bind), which applies the arguments in order.
-
-Without `with`:
-
-```jsx
-const deleteTodo = action(async (formData: FormData) => {
- const id = Number(formData.get("id"))
- await api.deleteTodo(id)
-})
-
-
-
- Delete
-
-
+## Type
+
+```tsx
+function action, U = void>(
+ fn: (...args: T) => Promise,
+ name?: string
+): Action;
+
+function action, U = void>(
+ fn: (...args: T) => Promise,
+ options?: { name?: string; onComplete?: (s: Submission) => void }
+): Action;
+
+function action, U = void>(
+ fn: (...args: T) => Promise,
+ options:
+ | string
+ | { name?: string; onComplete?: (s: Submission) => void } = {}
+): Action;
```
-Using `with`:
+## Parameters
-```jsx del={5,6} ins={7}
-const deleteTodo = action(async (id: number) => {
- await api.deleteTodo(id)
-})
+### `handler`
-
-
-
- Delete
-
+- **Type:** `(...args: T) => Promise`
+- **Required:** Yes
-```
+An asynchronous function that performs the action's logic.
+When the action is used with a [`` element](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/form), the function receives a [`FormData` object](https://developer.mozilla.org/en-US/docs/Web/API/FormData) as its first parameter.
-:::tip
-In [SolidStart](/solid-start) apps, it's recommended to use the [`"use server"`](/solid-start/reference/server/use-server) directive to leverage server-side caching.
-:::
+### `options`
-## Notes of ` ` implementation and SSR
+- **Type:** `string | { name?: string; onComplete?: (s: Submission) => void }`
+- **Required**: No
-This requires stable references because a string can only be serialized as an attribute, and it is crucial for consistency across SSR. where these references must align.
-The solution is to provide a unique name.
+A unique string used to identify the action in Server-Side Rendering (SSR) environments.
+This is required when using the action with a `` element.
-```jsx
-const myAction = action(async (args) => {}, "my-action");
-```
+Alternatively, a configuration object can be passed with the following properties.
-## `useAction`
+#### `name`
-Instead of forms, actions can directly be wrapped in a `useAction` primitive.
-This is how router context is created.
+- **Type:** `string`
+- **Required:** No
-```jsx
-// in component
-const submit = useAction(myAction);
-submit(...args);
+The unique string to identify the action in SSR environments.
+Required for ` ` usage.
-```
+#### `onComplete` (optional):
-The outside of a form context can use custom data instead of `formData`.
-These helpers preserve types.
+- **Type:** `(s: Submission) => void`
+- **Required:** No
-However, even when used with server functions, such as with [SolidStart](https://start.solidjs.com/getting-started/what-is-solidstart), this requires client-side JavaScript and is not progressively enhanceable like forms are.
+A function that runs after the action completes.
+It receives a submission object as its parameter.
-## `useSubmission`/`useSubmissions`
+## Return value
-These functions are used when incorporating optimistic updates during ongoing actions.
-They provide either a singular Submission (the latest one), or a collection of Submissions that match, with an optional filtering function.
+`action` returns an action with the following properties.
-```jsx
-type Submission = {
- input: T;
- result: U;
- error: any;
- pending: boolean
- clear: () => {}
- retry: () => {}
-}
+### `with`
-const submissions = useSubmissions(action, (input) => filter(input));
-const submission = useSubmission(action, (input) => filter(input));
+A method that wraps the original action and returns a new one.
+When this new action is triggered, the arguments passed to `with` are forwarded to the original action.
+If this new action is used with a ``, the `FormData` object is passed as the last parameter, after any other forwarded parameters.
-```
-
-## Revalidate cached functions
+## Examples
-### Revalidate all (default)
-By default all cached functions will be revalidated wether the action does not return or return a "normal" response.
+### Form submission
-```jsx
+```tsx
+import { action } from "@solidjs/router";
-const deleteTodo = action(async (formData: FormData) => {
- const id = Number(formData.get("id"))
- await api.deleteTodo(id)
- // ...
- return new Response("success", { status: 200 });
-})
-```
-
-### Revalidate specific cached keys
-
-By returning a response with solid-router's `json`, `reload` or `redirect` helpers you can pass a key / keys to the revalidate prop as the second argument of the json response helper.
-You can either pass as `string` directly or use the cached functions `key` or `keyFor` props.
-
-```jsx
-import { action, json, reload, redirect } from "@solidjs/router"
-
-const deleteTodo = action(async (formData: FormData) => {
- const id = Number(formData.get("id"))
- await api.deleteTodo(id)
- return json(
- { deleted: id },
- { revalidate: ["getAllTodos", getTodos.key, getTodoByID.keyFor(id)]}
- )
-
- //or
- return reload({ revalidate: ["getAllTodos", getTodos.key, getTodoByID.keyFor(id)]})
-
- //or
- return redirect("/", { revalidate: ["getAllTodos", getTodos.key, getTodoByID.keyFor(id)]})
-
-})
+const addTodoAction = action(async (formData: FormData) => {
+ // Adds a new todo to the server.
+}, "addTodo");
+function TodoForm() {
+ return (
+
+
+ Add todo
+
+ );
+}
```
-## Prevent revalidation
-To opt out of any revalidation you can pass any `string` to revalidate which is not a key of any cached function.
-
-```jsx
-const deleteTodo = action(async (formData: FormData) => {
- const id = Number(formData.get("id"))
- await api.deleteTodo(id)
- // returns a `json` without revalidating the action.
- return json(`deleted ${id}`,{ revalidate: "nothing" })
+### Passing additional arguments
- // or reload the route without revalidating the request.
- return reload({ revalidate: "nothing" })
+```tsx
+import { action } from "@solidjs/router";
- // or redirect without revalidating
- return redirect("/", { revalidate: "nothing" })
-})
+const addTodoAction = action(async (userId: number, formData: FormData) => {
+ // ... Adds a new todo for a specific user.
+}, "addTodo");
+function TodoForm() {
+ const userId = 1;
+ return (
+
+
+ Add todo
+
+ );
+}
```
-### Revalidate without action
+### Triggering actions programmatically
-Cached functions can also be revalidated by the `revalidate` helper.
+```tsx
+import { action, useAction } from "@solidjs/router";
-```jsx
-revalidate([getTodos.key, getTodoByID.keyFor(id)])
+const markDoneAction = action(async (id: string) => {
+ // ... Marks a todo as done on the server.
+});
-```
+function NotificationItem(props: { id: string }) {
+ const markDone = useAction(markDoneAction);
-This is also great if you want to set your own "refresh" interval e.g. poll data every 30 seconds.
-
-```jsx
-export default function TodoLayout(){
-
- const todos = createAsync(() => getTodos())
-
- onMount(() => {
- //30 second polling
- const interval = setInterval(() => revalidate(getTodos.key),1000 * 30)
- onCleanup(() => clearInterval(interval))
- })
-
- // ...
+ return markDone(props.id)}>Mark as done ;
}
-
```
diff --git a/src/routes/solid-router/reference/data-apis/cache.mdx b/src/routes/solid-router/reference/data-apis/cache.mdx
index 6c43c26261..e81d86ad05 100644
--- a/src/routes/solid-router/reference/data-apis/cache.mdx
+++ b/src/routes/solid-router/reference/data-apis/cache.mdx
@@ -1,6 +1,19 @@
---
title: cache
isDeprecated: true
+use_cases: >-
+ api calls, data fetching, deduplication, preloading routes, caching responses,
+ preventing waterfalls
+tags:
+ - cache
+ - deprecated
+ - data-fetching
+ - deduplication
+ - preload
+version: '1.0'
+description: >-
+ Deprecated caching API for deduplicating requests and preloading data. Use
+ query instead for better performance and invalidation.
---
:::caution[Deprecation Warning]
diff --git a/src/routes/solid-router/reference/data-apis/create-async-store.mdx b/src/routes/solid-router/reference/data-apis/create-async-store.mdx
index a1659422cc..942e135e4d 100644
--- a/src/routes/solid-router/reference/data-apis/create-async-store.mdx
+++ b/src/routes/solid-router/reference/data-apis/create-async-store.mdx
@@ -1,9 +1,142 @@
---
title: createAsyncStore
+use_cases: >-
+ large datasets, reactive stores, model data, fine-grained updates, complex
+ state
+tags:
+ - async
+ - stores
+ - reactive
+ - data-fetching
+ - state
+version: '1.0'
+description: >-
+ Create deeply reactive stores from async data sources for fine-grained updates
+ on large datasets and complex model structures.
---
-Similar to [createAsync](/solid-router/reference/data-apis/create-async) except it uses a deeply reactive store. Perfect for applying fine-grained changes to large model data that updates.
+The `createAsyncStore` primitive manages asynchronous data fetching by tracking the result of a promise-returning function in a [store](/concepts/stores).
-```jsx
-const todos = createAsyncStore(() => getTodos());
+The main difference from [createAsync](/solid-router/reference/data-apis/create-async) is its use of reconciliation: when new data arrives, it intelligently merges with the existing store, updating only changed fields while preserving unchanged state.
+
+## Import
+
+```tsx
+import { createAsyncStore } from "@solidjs/router";
+```
+
+## Type
+
+```tsx
+function createAsyncStore(
+ fn: (prev: T) => Promise,
+ options: {
+ name?: string;
+ initialValue: T;
+ deferStream?: boolean;
+ reconcile?: ReconcileOptions;
+ }
+): AccessorWithLatest;
+
+function createAsyncStore(
+ fn: (prev: T | undefined) => Promise,
+ options?: {
+ name?: string;
+ initialValue?: T;
+ deferStream?: boolean;
+ reconcile?: ReconcileOptions;
+ }
+): AccessorWithLatest;
+```
+
+## Parameters
+
+### `fetcher`
+
+- **Type:** `(prev: T | undefined) => Promise`
+- **Required:** Yes
+
+An asynchronous function or a function that returns a `Promise`.
+The resolved value of this `Promise` is what `createAsyncStore` tracks.
+This function is reactive and will automatically re-execute if any of its dependencies change.
+
+### `options`
+
+- **Type:** `{ name?: string; initialValue?: T; deferStream?: boolean; reconcile?: ReconcileOptions; }`
+- **Required:** No
+
+An object for configuring the primitive.
+It has the following properties.
+
+#### `name`
+
+- **Type:** `string`
+- **Required:** No
+
+A name for the resource, used for identification in debugging tools like [Solid Debugger](https://github.com/thetarnav/solid-devtools).
+
+#### `initialValue`
+
+- **Type:** `T`
+- **Required:** No
+
+The initial value of the returned store before the fetcher resolves.
+
+#### `deferStream`
+
+- **Type:** `boolean`
+- **Required:** No
+
+If `true`, [streaming](/solid-router/concepts/queries#streaming) will be deferred until the resource has resolved.
+
+#### `reconcile`
+
+- **Type:** `ReconcileOptions`
+- **Required:** No
+
+[Options](/reference/store-utilities/reconcile#options) passed directly to the `reconcile` function.
+It controls how new data is merged with the existing store.
+
+## Return value
+
+`createAsyncStore` returns a derived signal that contains the resolved value of the fetcher as a store.
+
+While the fetcher is executing for the first time, unless an `initialValue` is specified, the store's value is `undefined`.
+
+## Examples
+
+### Basic usage
+
+```tsx
+import { For, createSignal } from "solid-js";
+import { createAsyncStore, query } from "@solidjs/router";
+
+const getNotificationsQuery = query(async (unreadOnly: boolean) => {
+ // ... Fetches the list of notifications from the server.
+}, "notifications");
+
+function Notifications() {
+ const [unreadOnly, setUnreadOnly] = createSignal(false);
+ const notifications = createAsyncStore(() =>
+ getNotificationsQuery(unreadOnly())
+ );
+
+ return (
+
+
setUnreadOnly(!unreadOnly())}>
+ Toggle unread
+
+
+
+ {(notification) => (
+
+ {notification.message}
+ {notification.user.name}
+
+ )}
+
+
+
+ );
+}
```
diff --git a/src/routes/solid-router/reference/data-apis/create-async.mdx b/src/routes/solid-router/reference/data-apis/create-async.mdx
index c8b7b833dc..0831a86a29 100644
--- a/src/routes/solid-router/reference/data-apis/create-async.mdx
+++ b/src/routes/solid-router/reference/data-apis/create-async.mdx
@@ -1,43 +1,140 @@
---
title: createAsync
+use_cases: >-
+ data fetching, async operations, suspense boundaries, loading states, api
+ calls, ssr data
+tags:
+ - async
+ - suspense
+ - data-fetching
+ - loading
+ - promises
+ - ssr
+version: '1.0'
+description: >-
+ Transform promises into reactive signals with createAsync. Handle async data
+ with Suspense and automatic loading states.
---
-An asynchronous primitive with a function that tracks similar to `createMemo`.
-`createAsync` expects a promise back that is then turned into a Signal.
-Reading it before it is ready causes Suspense/Transitions to trigger.
+The `createAsync` primitive manages asynchronous data fetching by tracking the result of a promise-returning function.
-:::caution
- Using `query` in `createResource` directly will not work since the fetcher is
- not reactive. This means that it will not invalidate properly.
+:::note
+`createAsync` is currently a thin wrapper over `createResource`.
+While `createResource` offers similar functionality, **`createAsync` is the recommended primitive for most asynchronous data fetching**.
+It is intended to be the standard async primitive in a future Solid 2.0 release.
:::
-This is light wrapper over [`createResource`](/reference/basic-reactivity/create-resource) which serves as a stand-in for a future primitive being brought to Solid core in 2.0.
-It is recommended that `createAsync` be used in favor of `createResource` specially when in a **SolidStart** app because `createAsync` works better in conjunction with the [cache](/solid-router/reference/data-apis/cache) helper.
+## Import
+```tsx
+import { createAsync } from "@solidjs/router";
+```
+## Type
-```tsx title="component.tsx" {6,10}
-import { createAsync } from "@solidjs/router";
-import { Suspense } from "solid-js";
-import { getUser } from "./api";
+```tsx
+function createAsync(
+ fn: (prev: T) => Promise,
+ options: {
+ name?: string;
+ initialValue: T;
+ deferStream?: boolean;
+ }
+): AccessorWithLatest;
-export function Component () => {
- const user = createAsync(() => getUser(params.id));
+function createAsync(
+ fn: (prev: T | undefined) => Promise,
+ options?: {
+ name?: string;
+ initialValue?: T;
+ deferStream?: boolean;
+ }
+): AccessorWithLatest;
+```
- return (
-
- {user()}
-
- );
+## Parameters
+
+### `fetcher`
+
+- **Type:** `(prev: T | undefined) => Promise`
+- **Required:** Yes
+
+An asynchronous function or a function that returns a `Promise`.
+The resolved value of this `Promise` is what `createAsync` tracks.
+This function is reactive and will automatically re-execute if any of its dependencies change.
+
+### `options`
+
+- **Type:** `{ name?: string; initialValue?: T; deferStream?: boolean; }`
+- **Required:** No
+
+An object for configuring the primitive.
+It has the following properties:
+
+#### `name`
+
+- **Type:** `string`
+- **Required:** No
+
+A name for the resource, used for identification in debugging tools like [Solid Debugger](https://github.com/thetarnav/solid-devtools).
+
+#### `initialValue`
+
+- **Type:** `T`
+- **Required:** No
+
+The initial value of the returned signal before the fetcher finishes executing.
+
+#### `deferStream`
+
+- **Type:** `boolean`
+- **Required:** No
+
+If `true`, [streaming](/solid-router/concepts/queries#streaming) will be deferred until the fetcher finishes executing.
+
+## Return value
+
+`createAsync` returns a derived signal that contains the resolved value of the fetcher.
+
+While the fetcher is executing for the first time, unless an `initialValue` is specified, the signal's value is `undefined`.
+
+## Examples
+
+### Basic usage
+
+```tsx
+import { createAsync, query } from "@solidjs/router";
+
+const getUserQuery = query(async (id: string) => {
+ // ... Fetches the user from the server.
+}, "user");
+
+function UserProfile() {
+ const user = createAsync(() => getUserQuery());
+
+ return {user()?.name}
;
+}
```
-## Options
+### Handling loading and errors
+
+```tsx
+import { Suspense, ErrorBoundary, For } from "solid-js";
+import { createAsync, query } from "@solidjs/router";
+
+const getUserQuery = query(async (id: string) => {
+ // ... Fetches the user from the server.
+}, "user");
-| Name | Type | Default | Description |
-| ------------ | ----------------------- | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| name | `string` | `undefined` | A name for the resource. This is used for debugging purposes. |
-| deferStream | `boolean` | `false` | If true, Solid will wait for the resource to resolve before flushing the stream. |
-| initialValue | `any` | `undefined` | The initial value of the resource. |
-| onHydrated | `function` | `undefined` | A callback that is called when the resource is hydrated. |
-| ssrLoadFrom | `"server" \| "initial"` | `"server"` | The source of the initial value for SSR. If set to `"initial"`, the resource will use the `initialValue` option instead of the value returned by the fetcher. |
-| storage | `function` | `createSignal` | A function that returns a signal. This can be used to create a custom storage for the resource. This is still experimental
+function UserProfile() {
+ const user = createAsync(() => getUserQuery());
+
+ return (
+ Could not fetch user data.}>
+ Loading user...}>
+ {user()!.name}
+
+
+ );
+}
+```
diff --git a/src/routes/solid-router/reference/data-apis/query.mdx b/src/routes/solid-router/reference/data-apis/query.mdx
index eab7749ba1..6191ef9275 100644
--- a/src/routes/solid-router/reference/data-apis/query.mdx
+++ b/src/routes/solid-router/reference/data-apis/query.mdx
@@ -1,119 +1,103 @@
---
title: query
+use_cases: >-
+ api calls, data fetching, caching, deduplication, preloading routes,
+ preventing waterfalls, ssr
+tags:
+ - query
+ - cache
+ - data-fetching
+ - deduplication
+ - preload
+ - ssr
+ - api
+version: '1.0'
+description: >-
+ Cache and deduplicate API calls with query. Prevent waterfalls, enable
+ preloading, and manage server-side rendering efficiently.
---
-`query` is a [higher-order function](https://en.wikipedia.org/wiki/Higher-order_function) designed to create a new function with the same signature as the function passed to it.
-When this newly created function is called for the first time with a specific set of arguments, the original function is run, and its return value is stored in a cache and returned to the caller of the created function.
-The next time the created function is called with the same arguments (as long as the cache is still valid), it will return the cached value instead of re-executing the original function.
+The `query` function wraps an asynchronous function (the fetcher) and returns a query.
-:::note
-`query` can be defined anywhere and then used inside your components with [`createAsync`](/solid-router/reference/data-apis/create-async).
+The primary purpose of a query is to prevent redundant data fetching.
+When a query is called, a key is generated from its name and arguments.
+This key is used to internally cache the result of the fetcher.
+If a query with the same key is called, the cached result is used in these scenarios:
-However, using `query` directly in [`createResource`](/reference/basic-reactivity/create-resource) will not work since the fetcher is not reactive and will not invalidate properly.
+- **For preloading:**
+ After a route's data is preloaded, a subsequent call to the same query within a 5-second window uses the preloaded data.
+- **For active subscriptions:**
+ When a query is actively being used by a component (e.g., via [`createAsync`](/solid-router/reference/data-apis/create-async)), its data is reused without expiration.
+- **On native history navigation:**
+ When navigating with the browser's back or forward buttons, the data is reused instead of being re-fetched.
+- **For server-side deduplication:**
+ Within a single server-side rendering (SSR) request, repeated calls to the same query reuse the same value.
+- **During client hydration:**
+ If SSR has provided data for a key, that data is used immediately on the client without a new network request.
-:::
+## Import
-## Usage
-
-```js
-const getUser = query(
- (id, options = {}) =>
- fetch(`/api/users/${id}?summary=${options.summary || false}`).then((r) =>
- r.json()
- ),
- "usersById"
-);
-
-getUser(123); // Causes a GET request to /api/users/123?summary=false
-getUser(123); // Does not cause a GET request
-getUser(123, { summary: true }); // Causes a GET request to /api/users/123?summary=true
-setTimeout(() => getUser(123, { summary: true }), 999000); // Eventually causes another GET request to /api/users/123?summary=true
+```tsx
+import { query } from "@solidjs/router";
```
-### With preload functions
-
-Using it with a [preload function](/solid-router/reference/preload-functions/preload):
-
-```js
-import { lazy } from "solid-js";
-import { Route } from "@solidjs/router";
-import { getUser } from ... // the cache function
-
-const User = lazy(() => import("./pages/users/[id].js"));
-
-// preload function
-function preloadUser({params, location}) {
- void getUser(params.id)
-}
+## Type
-// Pass it in the route definition
- ;
+```tsx
+function query any>(
+ fn: T,
+ name: string
+): CachedFunction;
```
-### Inside a route's component
+## Parameters
-Using it inside a route's component:
+### `fetcher`
-```jsx
-// pages/users/[id].js
-import { getUser } from ... // the cache function
+- **Type:** `T extends (...args: any) => any`
+- **Required:** Yes
-export default function User(props) {
- const user = createAsync(() => getUser(props.params.id));
- return {user().name} ;
-}
-```
-
-## Query Function Capabilities
-
-`query` accomplishes the following:
+An asynchronous function that handles the logic for fetching data.
+All arguments passed to this function must be JSON-serializable.
-1. Deduping on the server for the lifetime of the request.
-2. It fills a preload cache in the browser - this lasts 5 seconds.
- When a route is preloaded on hover or when preload is called when entering a route it will make sure to dedupe calls.
-3. A reactive refetch mechanism based on key.
- This prevents routes that are not new from retriggering on action revalidation.
-4. Serve as a back/forward cache for browser navigation for up to 5 minutes.
- Any user based navigation or link click bypasses this cache.
- Revalidation or new fetch updates the cache.
+### `name`
-## Query Keys
+- **Type:** `string`
+- **Required:** Yes
-To ensure that the query keys are consistent and unique, arguments are deterministically serialized using `JSON.stringify`.
-Before serialization, key/value pairs in objects are sorted so that the order of properties does not affect the serialization.
-For instance, both `{ name: 'Ryan', awesome: true }` and `{ awesome: true, name: 'Ryan' }` will serialize to the same string so that they produce the same query key.
+A string used as a namespace for the query.
+Solid Router combines this with the query's arguments to generate a unique key for deduplication.
## Return value
-The return value is a `CachedFunction`, a function that has the same signature as the function you passed to `query`.
-This cached function stores the return value using the query key.
-Under most circumstances, this temporarily prevents the passed function from running with the same arguments, even if the created function is called repeatedly.
+`query` returns a new function with the same call signature as the fetcher.
+This returned function has the following properties attached to it:
-## Arguments
+### `key`
-| argument | type | description |
-| -------- | ----------------------- | ------------------------------------------------------------------------- |
-| `fn` | `(...args: any) => any` | A function whose return value you'd like to be cached. |
-| `name`\* | string | Any arbitrary string that you'd like to use as the rest of the query key. |
+The base key for the query, derived from its name.
-\*Since the internal cache is shared by all the functions using `query`, the string should be unique for each function passed to `query`.
-If the same key is used with multiple functions, one function might return the cached result of the other.
+### `keyFor`
-## Methods
+A function that takes the same arguments as the fetcher and returns a string representing a specific key for that set of arguments.
-### `.key` and `.keyFor`
+## Example
-Query functions provide `.key` and `.keyFor`, are useful when retrieving the keys used in cases involving invalidation:
+### Basic usage
-```ts
-let id = 5;
-getUser.key; // returns "users"
-getUser.keyFor(id); // returns "users[5]"
-```
+```tsx
+import { query } from "@solidjs/router";
+
+const getUserProfileQuery = query(async (userId: string) => {
+ const response = await fetch(
+ `https://api.example.com/users/${encodeURIComponent(userId)}`
+ );
+ const json = await response.json();
-### `revalidate`
+ if (!response.ok) {
+ throw new Error(json?.message ?? "Failed to load user profile.");
+ }
-The `query` can be revalidated using the `revalidate` method or the `revalidate` keys that are set on the response from the actions.
-If the entire key is passed, it will invalidate all entries for the cache (ie. `users` in the example above).
-If only a single entry needs to be invalidated, `keyFor` is provided.
-To revalidate everything in the cache, pass `undefined` as the key.
+ return json;
+}, "userProfile");
+```
diff --git a/src/routes/solid-router/reference/data-apis/revalidate.mdx b/src/routes/solid-router/reference/data-apis/revalidate.mdx
index 0319ba41d0..f1b4ac37f1 100644
--- a/src/routes/solid-router/reference/data-apis/revalidate.mdx
+++ b/src/routes/solid-router/reference/data-apis/revalidate.mdx
@@ -1,5 +1,19 @@
---
title: revalidate
+use_cases: >-
+ refresh data, invalidate cache, polling, real-time updates, manual refetch,
+ stale data
+tags:
+ - revalidate
+ - cache
+ - refresh
+ - invalidation
+ - polling
+ - refetch
+version: '1.0'
+description: >-
+ Manually revalidate cached queries to refresh stale data, implement polling,
+ or trigger updates after mutations in SolidJS.
---
The `revalidate` function is used to revalidate queries associated with specified [query keys](/solid-router/reference/data-apis/query#query-keys).
diff --git a/src/routes/solid-router/reference/data-apis/use-action.mdx b/src/routes/solid-router/reference/data-apis/use-action.mdx
index 91d8a5e805..f00588a48f 100644
--- a/src/routes/solid-router/reference/data-apis/use-action.mdx
+++ b/src/routes/solid-router/reference/data-apis/use-action.mdx
@@ -1,27 +1,64 @@
---
title: useAction
+use_cases: >-
+ programmatic forms, client-side mutations, imperative actions, non-form
+ submissions
+tags:
+ - actions
+ - mutations
+ - client
+ - imperative
+ - programmatic
+version: '1.0'
+description: >-
+ Invoke actions programmatically without forms using useAction. Perfect for
+ client-side mutations and imperative updates.
---
-`useAction` allows an [`action`](/solid-router/reference/data-apis/action) to be invoked programmatically.
+The `useAction` primitive returns a function that triggers an [action](/solid-router/concepts/actions) when called.
+
+`useAction` requires client-side JavaScript and is not progressively enhanceable.
+
+## Import
```tsx
import { useAction } from "@solidjs/router";
-import { updateNameAction } from "./actions";
+```
-const updateName = useAction(updateNameAction);
+## Type
-const result = updateName("John Wick");
+```tsx
+function useAction, U, V>(
+ action: Action
+): (...args: Parameters>) => Promise>;
```
-:::note
-`useAction` requires client-side JavaScript and is not progressively enhanceable.
-:::
-
## Parameters
-- `action`: The action to be invoked.
+### `action`
+
+- **Type:** `Action`
+- **Required:** Yes
-## Returns
+The action to be triggered.
-`useAction` returns a function that invokes the action.
-It shares the same signature as the action itself.
+## Return value
+
+`useAction` returns a function that triggers the action.
+It takes the same parameters as the action handler and returns a [`Promise`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise) that resolves with the action's result.
+
+## Example
+
+```tsx
+import { action, useAction } from "@solidjs/router";
+
+const likePostAction = action(async (id: string) => {
+ // ... Likes a post on the server.
+});
+
+function LikeButton(props: { postId: string }) {
+ const likePost = useAction(likePostAction);
+
+ return likePost(props.postId)}>Like ;
+}
+```
diff --git a/src/routes/solid-router/reference/data-apis/use-submission.mdx b/src/routes/solid-router/reference/data-apis/use-submission.mdx
index 7153e664cd..82cb67142a 100644
--- a/src/routes/solid-router/reference/data-apis/use-submission.mdx
+++ b/src/routes/solid-router/reference/data-apis/use-submission.mdx
@@ -1,161 +1,142 @@
---
title: useSubmission
+use_cases: >-
+ form feedback, pending states, optimistic updates, error handling, single
+ submission tracking
+tags:
+ - forms
+ - submissions
+ - pending
+ - optimistic
+ - errors
+ - feedback
+version: '1.0'
+description: >-
+ Track form submission states with useSubmission. Handle pending feedback,
+ optimistic updates, and errors for single forms.
---
-This helper is used to handle form submissions and can provide optimistic updates while actions are in flight as well as pending state feedback.
-This method will return a single (latest) value while its sibling, [`useSubmissions`](/solid-router/reference/data-apis/use-submissions), will return all values submitted while the component is active. With an optional second parameter for a filter function.
+The `useSubmission` primitive returns the state of the _most recent_ submission for a given [action](/solid-router/concepts/actions).
-It's important to note that `useSubmission` requires the form method to be **post** otherwise it will trigger a browser navigation and will not work.
+## Import
-```tsx title="component.tsx" {4,8}
+```tsx
import { useSubmission } from "@solidjs/router";
+```
-function Component() {
- const submission = useSubmission(postNameAction);
-
- return (
-
-
-
- {submission.pending ? "Adding..." : "Add"}
-
-
- )
-}
+## Type
+
+```tsx
+function useSubmission, U, V>(
+ fn: Action,
+ filter?: (input: V) => boolean
+): Submission> | SubmissionStub;
```
-:::note
-Learn more about actions in the [`action`](/solid-router/reference/data-apis/action) docs.
-:::
+## Parameters
-## Filtering Submissions
+### `action`
-As an optional second parameter, the `useSubmission` helper can receive a filter function to only return the submission that matches the condition.
-The filter receives the submitted dated as a parameter and should return a boolean value.
-E.g.: action below will only submit if the name is "solid".
+- **Type:** `Action`
+- **Required:** Yes
-```tsx title="component.tsx" {4-8}
-import { useSubmission } from "@solidjs/router";
+The action to track.
-function Component() {
- const submission = useSubmission(postNameAction, ([formData]) => {
- const name = formData.get("name") ?? "";
-
- return name === "solid";
- });
-
- return (
-
-
-
- {submission.pending ? "Adding..." : "Add"}
-
-
- )
-}
-```
+### `filter`
-## Optimistic Updates
+- **Type:** `(input: V) => boolean`
+- **Required:** No
-When the form is submitted, the `submission` object will be updated with the new value and the `pending` property will be set to `true`.
-This allows you to provide feedback to the user that the action is in progress.
-Once the action is complete, the `pending` property will be set to `false` and the `result` property will be updated with final value.
+A function that filters submissions.
+It is executed for each submission in the order of creation.
+It receives an array of the action's inputs as a parameter and must return `true` to select the submission or `false` otherwise.
+The first submission that passes the filter is returned by `useSubmission`.
-```tsx tab title="TypeScript" {6,10-12}
-// component.tsx
-import { Show } from "solid-js";
-import { useSubmission } from "@solidjs/router";
+## Return value
-function Component() {
- const submission = useSubmission(postNameAction);
-
- return (
- <>
-
- {(name) => Optimistic: {name() as string}
}
-
-
-
- {(name) => Result: {name()}
}
-
-
-
-
-
- {submission.pending ? "Submitting" : "Submit"}
-
-
- >
- )
-}
-```
+`useSubmission` returns a reactive object with the following properties:
-```tsx tab title="JavaScript" {6,10-12}
-// component.jsx
-import { Show } from "solid-js";
-import { useSubmission } from "@solidjs/router";
+### `input`
-function Component() {
- const submission = useSubmission(postNameAction);
-
- return (
- <>
-
- {(name) => Optimistic: {name()}
}
-
-
-
- {(name) => Result: {name()}
}
-
-
-
-
-
- {submission.pending ? "Submitting" : "Submit"}
-
-
- >
- )
-}
-```
+A reactive value representing the input data of the action.
+
+### `result`
-## Error Handling
+A reactive value representing the successful return value of the action.
-If the action fails, the `submission` object will be updated with the error and the `pending` property will be set to `false`.
-This allows you to provide feedback to the user that the action has failed. Additionally, the return type of `useSubmission` will have a new key `error` that will contain the error object thrown by the submission handler.
+### `error`
-At this stage, you can also use the `retry()` method to attempt the action again or the `clear()` to wipe the filled data in the platform.
+A reactive value representing any error thrown by the action.
-```tsx title="component.tsx" {12-18}
+### `pending`
+
+A reactive boolean indicating if the action is currently running.
+
+### `clear`
+
+A function to clear the submission's state.
+
+### `retry`
+
+A function to re-execute the submission with the same input.
+
+## Examples
+
+### Basic usage
+
+```tsx
import { Show } from "solid-js";
+import { action, useSubmission } from "@solidjs/router";
+
+const addTodoAction = action(async (formData: FormData) => {
+ const name = formData.get("name")?.toString();
+
+ if (!name || name.length <= 2) {
+ return { ok: false, message: "Name must be larger than 2 characters." };
+ }
+
+ // ... Sends the todo data to the server.
+
+ return { ok: true };
+}, "addTodo");
+
+function AddTodoForm() {
+ const submission = useSubmission(addTodoAction);
+
+ return (
+
+
+ {submission.pending ? "Adding..." : "Add"}
+
+
+
{submission.result.message}
+
submission.clear()}>Clear
+
submission.retry()}>Retry
+
+
+
+ );
+}
+```
+
+### Filtering submissions
+
+```tsx
import { useSubmission } from "@solidjs/router";
-function Component() {
- const submission = useSubmission(postNameAction);
-
- return (
- <>
-
- {(error) => (
-
-
Error: {error.message}
-
submission.clear()}>
- Clear
-
-
submission.retry()}>
- Retry
-
-
- )}
-
-
-
-
-
- {submission.pending ? "Submitting" : "Submit"}
-
-
- >
- )
+const addTodoAction = action(async (formData: FormData) => {
+ // ... Sends the todo data to the server.
+}, "addTodo");
+
+function LatestTodo() {
+ const latestValidSubmission = useSubmission(
+ addTodoAction,
+ ([formData]: [FormData]) => {
+ const name = formData.get("name")?.toString();
+ return name && name.length > 2;
+ }
+ );
+
+ return Latest valid submission: {latestValidSubmission.result}
;
}
```
diff --git a/src/routes/solid-router/reference/data-apis/use-submissions.mdx b/src/routes/solid-router/reference/data-apis/use-submissions.mdx
index c03ac618ca..8338394070 100644
--- a/src/routes/solid-router/reference/data-apis/use-submissions.mdx
+++ b/src/routes/solid-router/reference/data-apis/use-submissions.mdx
@@ -1,190 +1,161 @@
---
title: useSubmissions
+use_cases: >-
+ multiple forms, submission history, batch operations, optimistic lists, error
+ recovery
+tags:
+ - forms
+ - submissions
+ - multiple
+ - history
+ - optimistic
+ - batch
+version: '1.0'
+description: >-
+ Manage multiple form submissions simultaneously with useSubmissions. Track
+ history, handle errors, and show optimistic updates.
---
-This helper is used to handle form submissions and can provide optimistic updates while actions are in flight as well as pending state feedback.
-This method will return an iterable of all submitted actions while its component is mounted. With an optional second parameter for a filter function.
+The `useSubmissions` primitive returns the state of all submissions for a given [action](/solid-router/concepts/actions).
-:::tip
-If you only care for the latest submission, you can use the [`useSubmission`](/solid-router/reference/data-apis/use-submission) helper.
-:::
+## Import
-It's important to note that it requires the form method to be **post** otherwise it will trigger a browser navigation and will not work.
-
-In the example below, the `useSubmissions` helper is used to retain a list of all submission results to that action while also giving feedback on the pending state of the current in-flight submission.
-
-```tsx title="component.tsx" {4,9-20, 23}
+```tsx
import { useSubmissions } from "@solidjs/router";
+```
-function Component() {
- const submissions = useSubmissions(postNameAction);
-
- return (
-
-
-
- {([attemptIndex, data]) => (
-
- { result => (
-
- Backend {attemptIndex}: {result.name}
-
- )}
-
- >
- )}
-
-
-
- {submissions.pending ? "sending" : "send"}
-
- )
-}
+## Type
+
+```tsx
+function useSubmissions, U, V>(
+ fn: Action,
+ filter?: (input: V) => boolean
+): Submission>[] & {
+ pending: boolean;
+};
```
-:::note
-To trigger a submission, [actions](https://docs.solidjs.com/) can be used.
-:::
+## Parameters
-## Filtering Submissions
+### `action`
-As an optional second parameter, the `useSubmissions` helper can receive a filter function to only return the submission that matches the condition.
-The filter receives the submitted dated as a parameter and should return a boolean value.
-E.g.: action below will only submit if the name is "solid".
+- **Type:** `Action`
+- **Required:** Yes
-```tsx title="component.tsx" {4-8}
-import { useSubmissions } from "@solidjs/router";
+The action to track.
-function Component() {
- const submissions = useSubmissions(postNameAction, ([formData]) => {
- const name = formData.get("name") ?? "";
-
- return name === "solid";
- });
-
- return (
-
-
-
- {([attemptIndex, data]) => (
-
- { result => (
-
- Backend {attemptIndex}: {result.name}
-
- )}
-
- >
- )}
-
-
-
- {submissions.pending ? "sending" : "send"}
-
- )
-}
-```
+### `filter`
-## Optimistic Updates
+- **Type:** `(input: V) => boolean`
+- **Required:** No
-When the form is submitted, the `submission` object will be updated with the new value and the `pending` property will be set to `true`.
-This allows you to provide feedback to the user that the action is in progress.
-Once the action is complete, the `pending` property will be set to `false` and the `result` property will be updated with final value.
+A function that filters submissions.
+It is executed for each submission in the order of creation.
+It receives an array of the action's inputs as a parameter and must return `true` to select the submission or `false` otherwise.
-```tsx tab title="TypeScript" {6,13-20}
-// component.tsx
-import { Show } from "solid-js";
-import { useSubmissions } from "@solidjs/router";
+## Return value
-function Component() {
- const submissions = useSubmissions(postNameAction);
-
- return (
-
-
-
- {([attemptIndex, data]) => (
-
- {(input) => {
- const name = (input().value as [string, string])[1]
-
- return (
- Optimistic: {name}
- )}}
-
- )}
-
-
-
- {submissions.pending ? "sending" : "send"}
-
- )
-}
-```
+`useSubmissions` returns a reactive array of submission objects.
+Each submission object has the following properties:
-```tsx tab title="JavaScript" {6,13-20}
-// component.jsx
-import { Show } from "solid-js";
-import { useSubmissions } from "@solidjs/router";
+### `input`
-function Component() {
- const submissions = useSubmissions(postNameAction);
-
- return (
-
-
-
- {([attemptIndex, data]) => (
-
- {(input) => {
- const name = input().value[1]
-
- return (
- Optimistic: {name}
- )}}
-
- )}
-
-
-
- {submissions.pending ? "sending" : "send"}
-
- )
-}
-```
+The reactive input data of the action.
+
+### `result`
-## Error Handling
+A reactive value representing the successful return value of the action.
-If the action fails, the `submission` object will be updated with the error and the `pending` property will be set to `false`.
-This allows you to provide feedback to the user that the action has failed. Additionally, the return type of `useSubmission` will have a new key `error` that will contain the error object thrown by the submission handler.
+### `error`
+
+A reactive value for any error thrown by the action.
+
+### `pending`
+
+A reactive boolean indicating if the action is currently running.
+
+### `clear`
+
+A function to clear the submission's state.
+
+### `retry`
+
+A function to re-execute the submission with the same input.
+
+## Examples
+
+### Basic usage
+
+```tsx
+import { For, Show } from "solid-js";
+import { action, useSubmissions } from "@solidjs/router";
+
+const addTodoAction = action(async (formData: FormData) => {
+ // ... Sends the todo data to the server.
+}, "addTodo");
+
+function AddTodoForm() {
+ const submissions = useSubmissions(addTodoAction);
+
+ return (
+
+
+
+ Add
+
+
+ {(submission) => (
+
+ Adding "{submission.input[0].get("name")?.toString()}"
+
+ (pending...)
+
+
+ (completed)
+
+
+ {` (Error: ${submission.result?.message})`}
+ submission.retry()}>Retry
+
+
+ )}
+
+
+ );
+}
+```
-At this stage, you can also use the `retry()` method to attempt the action again or the `clear()` to wipe the filled data in the platform.
+### Filtering submissions
-```tsx title="component.tsx" {12-18}
-import { Show } from "solid-js";
+```tsx
import { useSubmissions } from "@solidjs/router";
-function Component() {
- const submissions = useSubmissions(postNameAction);
-
- return (
-
-
-
- {([attempt, data]) => (
-
-
- Backend {attempt}: {data.error.message}
- data.retry()}>retry
- data.clear()}>clear
-
-
- )}
-
-
-
- {submissions.pending ? "sending" : "send"}
-
- )
+const addTodoAction = action(async (formData: FormData) => {
+ // ... Sends the todo data to the server.
+}, "addTodo");
+
+function FailedTodos() {
+ const failedSubmissions = useSubmissions(
+ addTodoAction,
+ ([formData]: [FormData]) => {
+ // Filters for submissions that failed a client-side validation
+ const name = formData.get("name")?.toString() ?? "";
+ return name.length <= 2;
+ }
+ );
+
+ return (
+
+
Failed submissions:
+
+ {(submission) => (
+
+ {submission.input[0].get("name")?.toString()}
+ submission.retry()}>Retry
+
+ )}
+
+
+ );
}
```
diff --git a/src/routes/solid-router/reference/preload-functions/preload.mdx b/src/routes/solid-router/reference/preload-functions/preload.mdx
index 71f27bc60f..9be541c244 100644
--- a/src/routes/solid-router/reference/preload-functions/preload.mdx
+++ b/src/routes/solid-router/reference/preload-functions/preload.mdx
@@ -1,46 +1,107 @@
---
+title: preload
title: Preload
+use_cases: >-
+ route preloading, hover prefetch, parallel loading, performance optimization,
+ lazy routes, code splitting
+tags:
+ - preload
+ - performance
+ - routing
+ - prefetch
+ - lazy
+ - optimization
+version: '1.0'
+description: >-
+ Preload route data and code in parallel to eliminate waterfalls. Enable hover
+ prefetching for instant page transitions.
---
-With smart caches waterfalls are still possible with view logic and with lazy loaded code.
-With preload functions, fetching the data parallel to loading the route is possible to allow use of the data as soon as possible.
-The preload function can be called when the Route is loaded or eagerly when links are hovered.
+The `preload` function is a property on a route definition that initiates data fetching before a user navigates to the route.
-As its only argument, the preload function is passed an object that can be used to access route information:
+`preload` runs in two separate phases:
-```js
-import { lazy } from "solid-js";
+- **Preload phase:**
+ Triggered by user intent (e.g., hovering over a link), the function is called to initiate data fetching.
+- **Rendering phase:**
+ Triggered by actual navigation, the function is called a second time to provide the fetched data to the component.
+
+## Import
+
+```tsx
import { Route } from "@solidjs/router";
+```
-const User = lazy(() => import("./pages/users/[id].js"));
+## Type
-// preload function
-function preloadUser({ params, location }) {
- // do preloading
-}
+```tsx
+type RoutePreloadFunc = (args: RoutePreloadFuncArgs) => T;
-// Pass it in the route definition
- ;
+interface RoutePreloadFuncArgs {
+ params: Params;
+ location: Location;
+ intent: "initial" | "native" | "navigate" | "preload";
+}
```
-| key | type | description |
-| -------- | ---------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| params | object | The route parameters (same value as calling [`useParams()`](/solid-router/reference/primitives/use-params) inside the route component) |
-| location | `{ pathname, search, hash, query, state, key}` | An object that used to get more information about the path (corresponds to [`useLocation()`](/solid-router/reference/primitives/use-location)) |
-| intent | `"initial", "navigate", "native", "preload"` | Indicates why this function is being called. "initial" - the route is being initially shown (ie page load) "native" - navigate originated from the browser (eg back/forward) "navigate" - navigate originated from the router (eg call to navigate or anchor clicked) "preload" - not navigating, just preloading (eg link hover) |
+## Parameters
-A common pattern is to export the preload function and data wrappers that correspond to a route in a dedicated `route.data.js` file.
-This imports the data functions without loading anything else.
+### `params`
-```js
-import { lazy } from "solid-js";
-import { Route } from "@solidjs/router";
-import preloadUser from "./pages/users/[id].data.js";
-const User = lazy(() => import("/pages/users/[id].js"));
+- **Type:** `Params`
-// In the Route definition
- ;
-```
+An object containing the parameters for the matched route.
+It corresponds to the value returned by the [`useParams` primitive](/solid-router/reference/primitives/use-params).
+
+### `location`
+
+- **Type:** `Location`
+
+The router's location object for the destination URL.
+It corresponds to the value returned by the [`useLocation` primitive](/solid-router/reference/primitives/use-location).
+
+### `intent`
+
+- **Type:** `"initial" | "native" | "navigate" | "preload"`
+
+A string indicating the context in which the function is called.
+
+- `"preload"`:
+ The function is running to initiate data fetching.
+- `"navigate"`:
+ The function is running during navigation to the route.
+- `"initial"`:
+ The function is running for the first route on page load.
-The return value of the `preload` function is passed to the page component when called at anytime other than `preload`.
-This initializes things in there, or alternatively the following new `Data APIs` can be used.
+## Return value
+
+The value returned by `preload` is passed to the route's component as the `data` prop.
+
+- In the **preload phase** (`intent: "preload"`), the return value is **ignored**.
+- In the **rendering phase** (`intent: "navigate"` or `"initial"`), the return value is **captured** and provided to the component.
+
+## Examples
+
+```tsx
+import { Route, query, createAsync } from "@solidjs/router";
+
+const getProductQuery = query(async (id: string) => {
+ // ... Fetches a product from the server.
+}, "product");
+
+function ProductPage(props) {
+ const product = createAsync(() => getProductQuery(props.params.id));
+
+ return {product()?.title}
;
+}
+
+function preloadData({ params }) {
+ getProductQuery(params.id);
+}
+
+function ProductRoutes() {
+ return (
+
+ );
+}
+```
diff --git a/src/routes/solid-router/reference/primitives/use-before-leave.mdx b/src/routes/solid-router/reference/primitives/use-before-leave.mdx
index 784ea506d5..94f0fab07c 100644
--- a/src/routes/solid-router/reference/primitives/use-before-leave.mdx
+++ b/src/routes/solid-router/reference/primitives/use-before-leave.mdx
@@ -1,5 +1,19 @@
---
title: useBeforeLeave
+use_cases: >-
+ unsaved forms, exit confirmations, data loss prevention, user prompts before
+ navigation, dirty state handling
+tags:
+ - navigation
+ - forms
+ - confirmation
+ - prevent
+ - prompt
+ - leave
+version: '1.0'
+description: >-
+ Prevent route navigation with useBeforeLeave - prompt users before leaving
+ with unsaved changes, handle exit confirmations in SolidJS.
---
`useBeforeLeave` takes a function that will be called prior to leaving a route.
diff --git a/src/routes/solid-router/reference/primitives/use-current-matches.mdx b/src/routes/solid-router/reference/primitives/use-current-matches.mdx
index b0674c3619..5b01914778 100644
--- a/src/routes/solid-router/reference/primitives/use-current-matches.mdx
+++ b/src/routes/solid-router/reference/primitives/use-current-matches.mdx
@@ -1,5 +1,18 @@
---
title: useCurrentMatches
+use_cases: >-
+ breadcrumbs, route metadata, nested routes, navigation menus, route info
+ extraction
+tags:
+ - routes
+ - breadcrumbs
+ - matches
+ - navigation
+ - metadata
+version: '1.0'
+description: >-
+ Access all matched route information with useCurrentMatches - build
+ breadcrumbs, extract route metadata, and navigate nested routes.
---
`useCurrentMatches` returns all the matches for the current matched route. Useful for getting all the route information.
diff --git a/src/routes/solid-router/reference/primitives/use-is-routing.mdx b/src/routes/solid-router/reference/primitives/use-is-routing.mdx
index 2913b8bc22..e92ea7e2d4 100644
--- a/src/routes/solid-router/reference/primitives/use-is-routing.mdx
+++ b/src/routes/solid-router/reference/primitives/use-is-routing.mdx
@@ -1,5 +1,18 @@
---
title: useIsRouting
+use_cases: >-
+ loading states, transition indicators, pending ui, stale content, concurrent
+ rendering feedback
+tags:
+ - loading
+ - transition
+ - pending
+ - state
+ - ui
+version: '1.0'
+description: >-
+ Track route transitions with useIsRouting - display loading states, pending
+ UI, and transition feedback during navigation in SolidJS.
---
Retrieves a signal that indicates whether the route is currently in a transition.
diff --git a/src/routes/solid-router/reference/primitives/use-location.mdx b/src/routes/solid-router/reference/primitives/use-location.mdx
index 8da0c0ecf1..5e60a31751 100644
--- a/src/routes/solid-router/reference/primitives/use-location.mdx
+++ b/src/routes/solid-router/reference/primitives/use-location.mdx
@@ -1,5 +1,19 @@
---
title: useLocation
+use_cases: >-
+ current url tracking, query parameters, pathname parsing, hash navigation,
+ location state access
+tags:
+ - location
+ - url
+ - pathname
+ - query
+ - hash
+ - state
+version: '1.0'
+description: >-
+ Access reactive URL information with useLocation - track pathname, query
+ strings, hash, and navigation state in your SolidJS app.
---
Retrieves reactive `location` object useful for getting things like `pathname`
diff --git a/src/routes/solid-router/reference/primitives/use-match.mdx b/src/routes/solid-router/reference/primitives/use-match.mdx
index c0391d9067..4c46cbe807 100644
--- a/src/routes/solid-router/reference/primitives/use-match.mdx
+++ b/src/routes/solid-router/reference/primitives/use-match.mdx
@@ -1,5 +1,19 @@
---
title: useMatch
+use_cases: >-
+ active links, navigation highlighting, conditional rendering, path matching,
+ menu items
+tags:
+ - match
+ - active
+ - navigation
+ - path
+ - conditional
+ - links
+version: '1.0'
+description: >-
+ Check if paths match current route with useMatch - create active navigation
+ links, conditional rendering based on route matching.
---
`useMatch` takes an accessor that returns the path and creates a Memo that returns match information if the current path matches the provided path.
@@ -44,4 +58,4 @@ The check above will match:
/solid-router/reference/...
/solid-meta/reference/...
/solid-start/reference/...
-```
\ No newline at end of file
+```
diff --git a/src/routes/solid-router/reference/primitives/use-navigate.mdx b/src/routes/solid-router/reference/primitives/use-navigate.mdx
index 82988990a3..621bfb2269 100644
--- a/src/routes/solid-router/reference/primitives/use-navigate.mdx
+++ b/src/routes/solid-router/reference/primitives/use-navigate.mdx
@@ -1,5 +1,18 @@
---
title: useNavigate
+use_cases: >-
+ programmatic navigation, redirects, auth flows, form submissions, history
+ manipulation
+tags:
+ - navigate
+ - redirect
+ - programmatic
+ - history
+ - state
+version: '1.0'
+description: >-
+ Navigate programmatically with useNavigate - redirect users, handle auth
+ flows, and control navigation with replace and scroll options.
---
Retrieves the method which accepts a path to navigate to and an optional object with the following options:
diff --git a/src/routes/solid-router/reference/primitives/use-params.mdx b/src/routes/solid-router/reference/primitives/use-params.mdx
index c7291ae747..750752b20d 100644
--- a/src/routes/solid-router/reference/primitives/use-params.mdx
+++ b/src/routes/solid-router/reference/primitives/use-params.mdx
@@ -1,5 +1,16 @@
---
title: useParams
+use_cases: 'dynamic routes, user profiles, product pages, id-based content, url parameters'
+tags:
+ - params
+ - dynamic
+ - routes
+ - parameters
+ - reactive
+version: '1.0'
+description: >-
+ Access route parameters reactively with useParams - extract dynamic segments
+ from URLs for user profiles, products, and ID-based pages.
---
`useParams` retrieves a reactive object similar to a store.
diff --git a/src/routes/solid-router/reference/primitives/use-preload-route.mdx b/src/routes/solid-router/reference/primitives/use-preload-route.mdx
index 8534db7811..b6368a6e44 100644
--- a/src/routes/solid-router/reference/primitives/use-preload-route.mdx
+++ b/src/routes/solid-router/reference/primitives/use-preload-route.mdx
@@ -1,5 +1,18 @@
---
title: usePreloadRoute
+use_cases: >-
+ performance optimization, manual preloading, predictive navigation,
+ prefetching routes
+tags:
+ - preload
+ - performance
+ - optimization
+ - prefetch
+ - manual
+version: '1.0'
+description: >-
+ Manually preload routes with usePreloadRoute - optimize performance by
+ prefetching route data before navigation in your SolidJS app.
---
`usePreloadRoute` returns a function that can be used to preload a route manually. This is what happens automatically with link hovering and similar focus based behavior, but it is available here as an API.
diff --git a/src/routes/solid-router/reference/primitives/use-resolved-path.mdx b/src/routes/solid-router/reference/primitives/use-resolved-path.mdx
index edf2d2aeb4..cf8f1a59a9 100644
--- a/src/routes/solid-router/reference/primitives/use-resolved-path.mdx
+++ b/src/routes/solid-router/reference/primitives/use-resolved-path.mdx
@@ -1,5 +1,19 @@
---
title: useResolvedPath
+use_cases: >-
+ modular routing, nested routers, relative paths, dynamic base paths, component
+ isolation
+tags:
+ - path
+ - modular
+ - nested
+ - routing
+ - base
+ - resolved
+version: '1.0'
+description: >-
+ Resolve relative paths with useResolvedPath - build modular routers, handle
+ nested routes, and create isolated routing components.
---
`useResolvedPath` retrieves a signal\.
diff --git a/src/routes/solid-router/reference/primitives/use-search-params.mdx b/src/routes/solid-router/reference/primitives/use-search-params.mdx
index 7b26ed6387..0aa58b7cf5 100644
--- a/src/routes/solid-router/reference/primitives/use-search-params.mdx
+++ b/src/routes/solid-router/reference/primitives/use-search-params.mdx
@@ -1,5 +1,17 @@
---
title: useSearchParams
+use_cases: 'pagination, filters, search forms, url state management, query string updates'
+tags:
+ - search
+ - query
+ - params
+ - pagination
+ - filters
+ - url
+version: '1.0'
+description: >-
+ Manage URL query parameters with useSearchParams - handle pagination, filters,
+ and search state directly in the URL query string.
---
Retrieves a tuple containing a reactive object to read the current location's query parameters and a method to update them.
diff --git a/src/routes/solid-router/reference/response-helpers/json.mdx b/src/routes/solid-router/reference/response-helpers/json.mdx
index c5643d4d28..b2668eee8b 100644
--- a/src/routes/solid-router/reference/response-helpers/json.mdx
+++ b/src/routes/solid-router/reference/response-helpers/json.mdx
@@ -1,5 +1,19 @@
---
title: json
+use_cases: >-
+ returning api data, action responses, cache control, revalidation strategies,
+ server actions
+tags:
+ - json
+ - api
+ - actions
+ - cache
+ - revalidation
+ - response
+version: '1.0'
+description: >-
+ Return JSON data from actions with cache revalidation control. Configure how
+ route data updates after mutations for optimal performance.
---
Returns JSON data from an action while also providing options for controlling revalidation of cache data on the route.
@@ -27,4 +41,4 @@ interface ResponseOptions & Omit {
json(data: T, opt?: ResponseOptions): CustomResponse;
```
-The `ResponseOptions` extens the types from the native [`ResponseInit`](https://developer.mozilla.org/en-US/docs/Web/API/Response/Response#options) interface.
\ No newline at end of file
+The `ResponseOptions` extens the types from the native [`ResponseInit`](https://developer.mozilla.org/en-US/docs/Web/API/Response/Response#options) interface.
diff --git a/src/routes/solid-router/reference/response-helpers/redirect.mdx b/src/routes/solid-router/reference/response-helpers/redirect.mdx
index 9d49940e05..3941939658 100644
--- a/src/routes/solid-router/reference/response-helpers/redirect.mdx
+++ b/src/routes/solid-router/reference/response-helpers/redirect.mdx
@@ -1,5 +1,19 @@
---
title: redirect
+use_cases: >-
+ authentication flows, login redirects, form submissions, route guards, user
+ authorization, navigation control
+tags:
+ - redirect
+ - authentication
+ - navigation
+ - routing
+ - authorization
+ - forms
+version: '1.0'
+description: >-
+ Redirect users between routes with proper status codes. Handle authentication
+ flows, form submissions, and protected route access.
---
Redirects to the next route.
@@ -72,3 +86,13 @@ function redirect(url: string, init?: number | RouterResponseInit): CustomRespon
```
The `RouterResponseInit` type extends the native [`ResponseInit`](https://developer.mozilla.org/en-US/docs/Web/API/Response/Response#options) interface.
+
+## Revalidate Query Keys
+
+You can pass query keys to the redirect helper to revalidate them.
+
+```ts
+redirect("/", { revalidate: ["getUser", getUser.keyFor(id)] });
+```
+
+This will only invalidate the query keys passed to the redirect helper instead of the entire next page.
diff --git a/src/routes/solid-router/reference/response-helpers/reload.mdx b/src/routes/solid-router/reference/response-helpers/reload.mdx
index fed9460695..4a7f2546d2 100644
--- a/src/routes/solid-router/reference/response-helpers/reload.mdx
+++ b/src/routes/solid-router/reference/response-helpers/reload.mdx
@@ -1,5 +1,19 @@
---
title: reload
+use_cases: >-
+ data refresh, cache invalidation, after mutations, updating queries, form
+ submissions, data synchronization
+tags:
+ - reload
+ - cache
+ - revalidation
+ - mutations
+ - queries
+ - refresh
+version: '1.0'
+description: >-
+ Reload and revalidate specific queries after mutations. Efficiently update
+ cached data without full page refreshes for better UX.
---
Reload is a response helper built on top of [revalidate](/solid-router/reference/response-helpers/revalidate).
diff --git a/src/routes/solid-router/rendering-modes/spa.mdx b/src/routes/solid-router/rendering-modes/spa.mdx
index 6bdcc8263a..ef9dbcec54 100644
--- a/src/routes/solid-router/rendering-modes/spa.mdx
+++ b/src/routes/solid-router/rendering-modes/spa.mdx
@@ -1,5 +1,19 @@
---
title: Single page applications
+use_cases: >-
+ client-side routing, cdn deployment, static hosting, spa configuration,
+ deployment setup
+tags:
+ - spa
+ - deployment
+ - cdn
+ - hosting
+ - client-side
+ - routing
+version: '1.0'
+description: >-
+ Configure single-page applications for proper CDN and hosting deployment.
+ Handle client-side routing without server-side rendering.
---
When deploying applications that use a client-side router without relying on Server-Side Rendering, it is important that redirects to the index page are handled properly.
diff --git a/src/routes/solid-router/rendering-modes/ssr.mdx b/src/routes/solid-router/rendering-modes/ssr.mdx
index fdced89d3a..c8aaa05e00 100644
--- a/src/routes/solid-router/rendering-modes/ssr.mdx
+++ b/src/routes/solid-router/rendering-modes/ssr.mdx
@@ -1,5 +1,19 @@
---
title: Server side rendering
+use_cases: >-
+ server rendering, seo optimization, initial page load, performance
+ optimization, data preloading
+tags:
+ - ssr
+ - server
+ - rendering
+ - seo
+ - performance
+ - preload
+version: '1.0'
+description: >-
+ Enable server-side rendering with Solid Router for SEO and performance.
+ Support suspense, resources, and render-as-you-fetch patterns.
---
Solid Router supports all of Solid's SSR capabilities.
diff --git a/src/routes/solid-start/advanced/auth.mdx b/src/routes/solid-start/advanced/auth.mdx
index 96c7814e67..b77162ee0a 100644
--- a/src/routes/solid-start/advanced/auth.mdx
+++ b/src/routes/solid-start/advanced/auth.mdx
@@ -1,5 +1,19 @@
---
-title: "Auth"
+title: Auth
+use_cases: >-
+ user authentication, protected routes, authorization checks, secure data
+ access, login systems
+tags:
+ - authentication
+ - authorization
+ - security
+ - protected
+ - login
+ - users
+version: '1.0'
+description: >-
+ Implement authentication and protected routes in SolidStart. Secure sensitive
+ resources and handle user authorization properly.
---
Server functions can be used to protect sensitive resources like user data.
diff --git a/src/routes/solid-start/advanced/middleware.mdx b/src/routes/solid-start/advanced/middleware.mdx
index 871f9b236a..37e4551923 100644
--- a/src/routes/solid-start/advanced/middleware.mdx
+++ b/src/routes/solid-start/advanced/middleware.mdx
@@ -1,5 +1,19 @@
---
-title: "Middleware"
+title: Middleware
+use_cases: >-
+ request interception, header management, global data sharing, request
+ preprocessing, logging, redirects
+tags:
+ - middleware
+ - headers
+ - interceptors
+ - logging
+ - preprocessing
+ - locals
+version: '1.0'
+description: >-
+ Intercept HTTP requests with middleware for authentication, logging, and
+ header management. Share request-scoped data across your app.
---
Middleware intercepts HTTP requests and responses to perform tasks like authentication, redirection, logging, and more.
diff --git a/src/routes/solid-start/advanced/request-events.mdx b/src/routes/solid-start/advanced/request-events.mdx
index c69550043e..db68db1478 100644
--- a/src/routes/solid-start/advanced/request-events.mdx
+++ b/src/routes/solid-start/advanced/request-events.mdx
@@ -1,5 +1,19 @@
---
title: Request events
+use_cases: >-
+ server context access, local data storage, request handling, server functions,
+ event access
+tags:
+ - events
+ - server
+ - context
+ - locals
+ - requests
+ - functions
+version: '1.0'
+description: >-
+ Access request events and local context in SolidStart server functions.
+ Type-safe locals and native event handling for server code.
---
Request events in SolidStart are retrieved using the [`getRequestEvent`](/reference/server-utilities/get-request-event) from `@solidjs/web`.
diff --git a/src/routes/solid-start/advanced/return-responses.mdx b/src/routes/solid-start/advanced/return-responses.mdx
index 9a100790bf..6a7ef643e3 100644
--- a/src/routes/solid-start/advanced/return-responses.mdx
+++ b/src/routes/solid-start/advanced/return-responses.mdx
@@ -1,5 +1,19 @@
---
title: Returning responses
+use_cases: >-
+ server function responses, error handling, response types, api responses,
+ typescript typing
+tags:
+ - responses
+ - server
+ - functions
+ - typescript
+ - errors
+ - api
+version: '1.0'
+description: >-
+ Return typed Response objects from server functions. Handle redirects,
+ reloads, and JSON responses with proper TypeScript support.
---
In SolidStart, it is possible to return a Response object from a server function.
diff --git a/src/routes/solid-start/advanced/session.mdx b/src/routes/solid-start/advanced/session.mdx
index ff7da4df66..c4af27cba2 100644
--- a/src/routes/solid-start/advanced/session.mdx
+++ b/src/routes/solid-start/advanced/session.mdx
@@ -1,5 +1,19 @@
---
-title: "Sessions"
+title: Sessions
+use_cases: >-
+ user sessions, authentication state, preferences storage, stateful
+ interactions, login persistence
+tags:
+ - sessions
+ - cookies
+ - authentication
+ - state
+ - storage
+ - persistence
+version: '1.0'
+description: >-
+ Manage user sessions with encrypted cookies in SolidStart. Maintain
+ authentication state and user preferences between requests.
---
Sessions allow web applications to maintain state between user requests.
diff --git a/src/routes/solid-start/advanced/websocket.mdx b/src/routes/solid-start/advanced/websocket.mdx
index 63762cd9ac..e3869b8365 100644
--- a/src/routes/solid-start/advanced/websocket.mdx
+++ b/src/routes/solid-start/advanced/websocket.mdx
@@ -1,5 +1,19 @@
---
title: WebSocket endpoint
+use_cases: >-
+ real-time updates, chat applications, live notifications, multiplayer games,
+ collaborative editing, streaming data
+tags:
+ - websocket
+ - real-time
+ - streaming
+ - experimental
+ - server
+ - events
+version: '1.0'
+description: >-
+ Set up WebSocket endpoints in SolidStart for real-time bidirectional
+ communication. Handle connections, messages, and events.
---
WebSocket endpoint may be included by passing the ws handler file you specify in your start config.
diff --git a/src/routes/solid-start/building-your-application/api-routes.mdx b/src/routes/solid-start/building-your-application/api-routes.mdx
index 11aee05483..503c7c304a 100644
--- a/src/routes/solid-start/building-your-application/api-routes.mdx
+++ b/src/routes/solid-start/building-your-application/api-routes.mdx
@@ -1,5 +1,20 @@
---
-title: "API routes"
+title: API routes
+use_cases: >-
+ rest api, graphql endpoints, trpc setup, webhooks, oauth callbacks, pdf
+ generation, third-party integrations
+tags:
+ - api
+ - rest
+ - graphql
+ - trpc
+ - endpoints
+ - server
+ - http
+version: '1.0'
+description: >-
+ Create API routes in SolidStart for REST, GraphQL, or tRPC endpoints. Handle
+ HTTP methods, sessions, and external integrations.
---
While Server Functions can be a good way to write server-side code for data needed by your UI, sometimes you need to expose API routes.
diff --git a/src/routes/solid-start/building-your-application/css-and-styling.mdx b/src/routes/solid-start/building-your-application/css-and-styling.mdx
index 8fb11d3a06..d8e806ee3b 100644
--- a/src/routes/solid-start/building-your-application/css-and-styling.mdx
+++ b/src/routes/solid-start/building-your-application/css-and-styling.mdx
@@ -1,5 +1,19 @@
---
-title: "CSS and styling"
+title: CSS and styling
+use_cases: >-
+ styling components, css modules, scoped styles, component styling, design
+ system setup, visual customization
+tags:
+ - css
+ - styling
+ - modules
+ - components
+ - design
+ - vite
+version: '1.0'
+description: >-
+ Style your SolidStart components with CSS, CSS modules, and other styling
+ solutions. Implement scoped styles and design systems.
---
SolidStart is a standards-based framework that, instead of modifying the behavior of the [`