From c6a063463c964ea609312affcf5a7b5b018c4b31 Mon Sep 17 00:00:00 2001 From: Sarah Gerrard Date: Sat, 8 Mar 2025 21:50:11 -0800 Subject: [PATCH 1/7] update formating, linting, and some dependencies --- .eslintrc.json | 45 - .github/ISSUE_TEMPLATE/BUGS.yml | 17 +- .github/ISSUE_TEMPLATE/CONTENT.yml | 14 +- .github/ISSUE_TEMPLATE/OTHER.yml | 6 +- .github/ISSUE_TEMPLATE/REQUEST.yml | 14 +- .github/ISSUE_TEMPLATE/config.yml | 2 +- .github/PULL_REQUEST_TEMPLATE.md | 1 + .github/actions/install/action.yml | 21 + .github/workflows/format.yml | 21 + .github/workflows/static_checks.yml | 69 +- CONTRIBUTING.md | 8 +- app.config.ts | 3 +- eslint.config.js | 68 + lunaria.config.json | 57 - lunaria/styles.css | 4 - package.json | 38 +- pnpm-lock.yaml | 11242 +++++++++++----- scripts/collections/build-file-tree.mjs | 6 +- scripts/collections/utils/create-dir.mjs | 5 +- scripts/collections/utils/get-dir-data.mjs | 3 +- scripts/create-i18n-entries.mjs | 4 +- scripts/create-i18n-tree.mjs | 5 +- scripts/sync-orama.mjs | 5 +- src/middleware/legacy-routes-redirect.ts | 215 +- .../concepts/components/class-style.mdx | 9 +- .../concepts/components/event-handlers.mdx | 8 +- src/routes/concepts/context.mdx | 68 +- .../control-flow/conditional-rendering.mdx | 43 +- src/routes/concepts/control-flow/data.json | 8 +- src/routes/concepts/control-flow/dynamic.mdx | 40 +- .../concepts/control-flow/list-rendering.mdx | 31 +- src/routes/concepts/control-flow/portal.mdx | 29 +- .../derived-values/derived-signals.mdx | 6 +- src/routes/concepts/derived-values/memos.mdx | 54 +- src/routes/concepts/effects.mdx | 4 +- src/routes/concepts/intro-to-reactivity.mdx | 3 +- src/routes/concepts/refs.mdx | 36 +- src/routes/concepts/signals.mdx | 2 +- src/routes/concepts/stores.mdx | 79 +- src/routes/concepts/understanding-jsx.mdx | 19 +- .../configuration/environment-variables.mdx | 9 +- src/routes/configuration/typescript.mdx | 53 +- .../guides/complex-state-management.mdx | 152 +- src/routes/guides/data.json | 2 +- .../guides/deployment-options/aws-via-sst.mdx | 60 +- .../guides/deployment-options/cloudflare.mdx | 22 +- .../guides/deployment-options/firebase.mdx | 12 +- .../guides/deployment-options/netlify.mdx | 12 +- .../guides/deployment-options/railway.mdx | 12 +- .../guides/deployment-options/stormkit.mdx | 2 +- .../guides/deployment-options/vercel.mdx | 12 +- .../guides/deployment-options/zerops.mdx | 33 +- src/routes/guides/fetching-data.mdx | 180 +- src/routes/guides/routing-and-navigation.mdx | 16 +- src/routes/guides/state-management.mdx | 38 +- src/routes/guides/styling-components/less.mdx | 12 +- .../guides/styling-components/macaron.mdx | 9 +- src/routes/guides/styling-components/sass.mdx | 12 +- .../guides/styling-components/tailwind-v3.mdx | 21 +- .../guides/styling-components/tailwind.mdx | 7 +- src/routes/guides/styling-components/uno.mdx | 13 +- src/routes/guides/testing.mdx | 345 +- src/routes/quick-start.mdx | 76 +- .../basic-reactivity/create-effect.mdx | 47 +- .../basic-reactivity/create-memo.mdx | 33 +- .../basic-reactivity/create-resource.mdx | 112 +- .../basic-reactivity/create-signal.mdx | 82 +- .../reference/component-apis/children.mdx | 49 +- .../component-apis/create-context.mdx | 38 +- .../component-apis/create-unique-id.mdx | 7 +- src/routes/reference/component-apis/lazy.mdx | 14 +- .../reference/component-apis/use-context.mdx | 15 +- src/routes/reference/components/dynamic.mdx | 10 +- src/routes/reference/components/for.mdx | 12 +- .../reference/components/index-component.mdx | 38 +- src/routes/reference/components/portal.mdx | 20 +- src/routes/reference/components/show.mdx | 24 +- .../reference/components/suspense-list.mdx | 12 +- src/routes/reference/components/suspense.mdx | 46 +- .../reference/components/switch-and-match.mdx | 28 +- src/routes/reference/jsx-attributes/attr.mdx | 5 +- src/routes/reference/jsx-attributes/bool.mdx | 5 +- .../reference/jsx-attributes/classlist.mdx | 6 +- src/routes/reference/jsx-attributes/on.mdx | 1 + src/routes/reference/jsx-attributes/prop.mdx | 7 +- src/routes/reference/jsx-attributes/ref.mdx | 8 +- src/routes/reference/jsx-attributes/use.mdx | 16 +- src/routes/reference/lifecycle/on-cleanup.mdx | 4 +- src/routes/reference/lifecycle/on-mount.mdx | 15 +- .../reference/reactive-utilities/batch.mdx | 60 +- .../reactive-utilities/catch-error.mdx | 5 +- .../reactive-utilities/create-root.mdx | 9 +- .../reference/reactive-utilities/from.mdx | 19 +- .../reactive-utilities/get-owner.mdx | 17 +- .../reactive-utilities/index-array.mdx | 7 +- .../reactive-utilities/map-array.mdx | 21 +- .../reactive-utilities/merge-props.mdx | 17 +- .../reactive-utilities/observable.mdx | 17 +- .../reference/reactive-utilities/on-util.mdx | 8 +- .../reactive-utilities/run-with-owner.mdx | 28 +- .../reactive-utilities/split-props.mdx | 23 +- .../reactive-utilities/start-transition.mdx | 2 +- .../reference/reactive-utilities/untrack.mdx | 4 +- .../reactive-utilities/use-transition.mdx | 9 +- src/routes/reference/rendering/dev.mdx | 8 +- src/routes/reference/rendering/hydrate.mdx | 31 +- .../reference/rendering/hydration-script.mdx | 23 +- src/routes/reference/rendering/is-server.mdx | 7 +- .../reference/rendering/render-to-stream.mdx | 27 +- .../rendering/render-to-string-async.mdx | 15 +- .../reference/rendering/render-to-string.mdx | 15 +- src/routes/reference/rendering/render.mdx | 24 +- .../secondary-primitives/create-computed.mdx | 21 +- .../secondary-primitives/create-deferred.mdx | 14 +- .../secondary-primitives/create-reaction.mdx | 17 +- .../create-render-effect.mdx | 33 +- .../secondary-primitives/create-selector.mdx | 18 +- .../reference/server-utilities/data.json | 4 +- .../server-utilities/get-request-event.mdx | 14 +- .../store-utilities/create-mutable.mdx | 13 +- .../store-utilities/create-store.mdx | 4 +- .../store-utilities/modify-mutable.mdx | 16 +- .../reference/store-utilities/produce.mdx | 4 +- .../reference/store-utilities/reconcile.mdx | 18 +- .../reference/store-utilities/unwrap.mdx | 6 +- .../installation-and-setup.mdx | 28 +- src/routes/solid-meta/reference/meta/base.mdx | 6 +- src/routes/solid-meta/reference/meta/link.mdx | 4 +- src/routes/solid-meta/reference/meta/meta.mdx | 8 +- .../reference/meta/metaprovider.mdx | 4 +- .../solid-meta/reference/meta/style.mdx | 6 +- .../solid-meta/reference/meta/title.mdx | 6 +- .../solid-router/advanced-concepts/data.json | 8 +- .../advanced-concepts/lazy-loading.mdx | 56 +- src/routes/solid-router/concepts/actions.mdx | 54 +- .../concepts/alternative-routers.mdx | 11 +- .../solid-router/concepts/catch-all.mdx | 12 +- src/routes/solid-router/concepts/data.json | 2 +- src/routes/solid-router/concepts/layouts.mdx | 38 +- .../solid-router/concepts/navigation.mdx | 220 +- src/routes/solid-router/concepts/nesting.mdx | 4 +- .../solid-router/concepts/path-parameters.mdx | 240 +- .../concepts/search-parameters.mdx | 138 +- .../getting-started/component.mdx | 30 +- .../solid-router/getting-started/config.mdx | 61 +- .../installation-and-setup.mdx | 22 +- src/routes/solid-router/index.mdx | 4 +- .../solid-router/reference/components/a.mdx | 4 +- .../reference/components/hash-router.mdx | 14 +- .../reference/components/memory-router.mdx | 2 - .../reference/data-apis/action.mdx | 30 +- .../reference/data-apis/create-async.mdx | 8 +- .../reference/data-apis/use-submission.mdx | 102 +- .../reference/data-apis/use-submissions.mdx | 60 +- .../reference/primitives/use-match.mdx | 8 +- .../reference/primitives/use-navigate.mdx | 6 +- .../primitives/use-resolved-path.mdx | 34 +- .../reference/response-helpers/json.mdx | 8 +- .../reference/response-helpers/redirect.mdx | 23 +- .../reference/response-helpers/reload.mdx | 8 +- .../reference/response-helpers/revalidate.mdx | 20 +- .../solid-router/rendering-modes/spa.mdx | 2 +- src/routes/solid-start/advanced/auth.mdx | 22 +- .../solid-start/advanced/request-events.mdx | 14 +- .../solid-start/advanced/return-responses.mdx | 4 +- src/routes/solid-start/advanced/websocket.mdx | 32 +- .../building-your-application/api-routes.mdx | 87 +- .../css-and-styling.mdx | 51 +- .../data-loading.mdx | 35 +- .../head-and-metadata.mdx | 102 +- .../route-prerendering.mdx | 20 +- .../building-your-application/routing.mdx | 13 +- .../static-assets.mdx | 37 +- src/routes/solid-start/getting-started.mdx | 72 +- src/routes/solid-start/guides/security.mdx | 2 +- .../reference/client/client-only.mdx | 2 +- .../solid-start/reference/client/data.json | 8 +- .../solid-start/reference/client/mount.mdx | 2 +- .../reference/client/start-client.mdx | 2 +- .../solid-start/reference/config/data.json | 6 +- .../reference/config/define-config.mdx | 14 +- src/routes/solid-start/reference/data.json | 10 +- .../reference/entrypoints/data.json | 9 +- .../reference/entrypoints/entry-client.mdx | 4 +- .../reference/entrypoints/entry-server.mdx | 2 +- .../solid-start/reference/routing/data.json | 6 +- .../solid-start/reference/server/get.mdx | 2 +- .../reference/server/http-header.mdx | 2 +- .../reference/server/http-status-code.mdx | 12 +- .../reference/server/use-server.mdx | 17 +- src/solidbase-theme/mdx-components.tsx | 2 - src/styles.css | 4 +- src/styles/prism.css | 18 +- src/ui/layout/theme-selector.tsx | 28 +- src/ui/logo.tsx | 16 +- src/ui/page-issue-link.tsx | 4 +- src/ui/quick-links.tsx | 5 +- 197 files changed, 10153 insertions(+), 6458 deletions(-) delete mode 100644 .eslintrc.json create mode 100644 .github/actions/install/action.yml create mode 100644 .github/workflows/format.yml create mode 100644 eslint.config.js delete mode 100644 lunaria.config.json delete mode 100644 lunaria/styles.css diff --git a/.eslintrc.json b/.eslintrc.json deleted file mode 100644 index 306d0c2450..0000000000 --- a/.eslintrc.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "ignorePatterns": ["node_modules/", "dist/"], - "env": { - "browser": true, - "es2021": true - }, - "extends": [ - "eslint:recommended", - "plugin:@typescript-eslint/recommended", - "plugin:solid/typescript" - ], - "overrides": [ - { - "env": { - "node": true - }, - "files": [".eslintrc.{js,cjs}"], - "parserOptions": { - "sourceType": "script" - } - } - ], - "parser": "@typescript-eslint/parser", - "parserOptions": { - "ecmaVersion": "latest", - "sourceType": "module" - }, - "plugins": ["@typescript-eslint", "solid"], - "rules": { - "quotes": ["error", "double"], - "semi": "warn", - "@typescript-eslint/no-unused-vars": [ - "error", - { - "args": "all", - "argsIgnorePattern": "^_", - "caughtErrors": "all", - "caughtErrorsIgnorePattern": "^_", - "destructuredArrayIgnorePattern": "^_", - "varsIgnorePattern": "^_", - "ignoreRestSiblings": true - } - ] - } -} diff --git a/.github/ISSUE_TEMPLATE/BUGS.yml b/.github/ISSUE_TEMPLATE/BUGS.yml index 64dab21b75..18358ff125 100644 --- a/.github/ISSUE_TEMPLATE/BUGS.yml +++ b/.github/ISSUE_TEMPLATE/BUGS.yml @@ -1,13 +1,10 @@ name: "Bug Report πŸͺ²" description: Report an issue or possible bug with the functionality of the Solid docs website. (Not related to the content of the site.) title: "[Bug]: " -labels: [ - "bug", - "pending review" -] -assignees: -- danieljcafonso -- atilafassina +labels: ["bug", "pending review"] +assignees: + - danieljcafonso + - atilafassina body: - type: textarea @@ -25,13 +22,13 @@ body: description: Please indicate on which page(s) the issue occurs. placeholder: https://docs.solidjs.com/concepts/intro-to-reactivity validations: - required: true + required: true - type: textarea id: expected attributes: label: "πŸ€” Expected Behavior" description: Please describe what the expected behavior should be. - placeholder: When on this page, I expected . . . + placeholder: When on this page, I expected . . . validations: required: true - type: textarea @@ -39,7 +36,7 @@ body: attributes: label: "πŸ‘€ Current Behavior" description: Please describe what the current behavior is. - placeholder: But instead, on this page I'm noticing . . . + placeholder: But instead, on this page I'm noticing . . . validations: required: true - type: input diff --git a/.github/ISSUE_TEMPLATE/CONTENT.yml b/.github/ISSUE_TEMPLATE/CONTENT.yml index 477a961eee..1b1ebe748d 100644 --- a/.github/ISSUE_TEMPLATE/CONTENT.yml +++ b/.github/ISSUE_TEMPLATE/CONTENT.yml @@ -1,11 +1,9 @@ name: "Content Report πŸ“„" title: "[Content]:" description: Report an issue with existing content. -labels: [ - "improve documentation", "pending review" -] -assignees: -- ladybluenotes +labels: ["improve documentation", "pending review"] +assignees: + - ladybluenotes body: - type: markdown attributes: @@ -25,7 +23,7 @@ body: description: Please provide the URL of the page(s) affected. placeholder: https://docs.solidjs.com/concepts/intro-to-reactivity validations: - required: true + required: true - type: textarea id: generalDesc attributes: @@ -33,11 +31,11 @@ body: description: Let us know what's wrong! placeholder: "..." validations: - required: true + required: true - type: textarea id: incorrectContent attributes: label: "πŸ–₯️ Reproduction in StackBlitz (if reporting incorrect content or code samples)" description: If you are reporting incorrect content or code samples, you can also attach a reproduction in stackblitz. validations: - required: false + required: false diff --git a/.github/ISSUE_TEMPLATE/OTHER.yml b/.github/ISSUE_TEMPLATE/OTHER.yml index 50ef31571e..27d160454c 100644 --- a/.github/ISSUE_TEMPLATE/OTHER.yml +++ b/.github/ISSUE_TEMPLATE/OTHER.yml @@ -1,9 +1,7 @@ name: "Other Report 🌐" title: "[Other]:" description: Report something else we should know about the docs site! -labels: [ -"pending review" -] +labels: ["pending review"] body: - type: textarea id: issue @@ -12,4 +10,4 @@ body: description: Please describe the problem with the documentation in detail. placeholder: "..." validations: - required: true + required: true diff --git a/.github/ISSUE_TEMPLATE/REQUEST.yml b/.github/ISSUE_TEMPLATE/REQUEST.yml index 55479fe1e9..f1aef4ba5a 100644 --- a/.github/ISSUE_TEMPLATE/REQUEST.yml +++ b/.github/ISSUE_TEMPLATE/REQUEST.yml @@ -1,11 +1,9 @@ name: "Request πŸ’‘" title: "[Request]:" description: Share an idea. -labels: [ - "request", "pending review" -] +labels: ["request", "pending review"] assignees: -- ladybluenotes + - ladybluenotes body: - type: markdown attributes: @@ -14,7 +12,7 @@ body: id: request-topic attributes: label: "What is this request related to?" - options: + options: - Request - Styling - Feature @@ -27,7 +25,7 @@ body: description: Please provide the URL of the page(s) or section this idea is related to. placeholder: https://docs.solidjs.com/concepts/intro-to-reactivity validations: - required: false + required: false - type: textarea id: generalDesc attributes: @@ -35,7 +33,7 @@ body: description: Please provide a general description or bullet points about what you would like to see added. placeholder: "..." validations: - required: true + required: true - type: textarea id: example attributes: @@ -43,4 +41,4 @@ body: description: If you would like to suggest code samples please attach a working reproduction. placeholder: "..." validations: - required: false + required: false diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index b105304437..06c2280099 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -2,4 +2,4 @@ blank_issues_enabled: true contact_links: - name: Support & Community πŸ’ url: https://discord.com/invite/solidjs - about: 'This issue tracker is not for support questions. Our Discord server hosts the community of Solid users. Come join us to discuss Solid or find assistance!' + about: "This issue tracker is not for support questions. Our Discord server hosts the community of Solid users. Come join us to discuss Solid or find assistance!" diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 1a6d7de3ac..b9f88f0cc9 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -4,6 +4,7 @@ - [ ] This PR references an issue (except for typos, broken links, or other minor problems) ### Description(required) + ### Related issues & labels diff --git a/.github/actions/install/action.yml b/.github/actions/install/action.yml new file mode 100644 index 0000000000..d5f890a025 --- /dev/null +++ b/.github/actions/install/action.yml @@ -0,0 +1,21 @@ +name: Install Tools & Dependencies +description: Installs pnpm, Node.js & package dependencies + +runs: + using: composite + steps: + - name: Setup pnpm + uses: pnpm/action-setup@v4 + with: + version: 9 + run_install: false + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: 20 + cache: pnpm + + - name: Install dependencies + run: pnpm install + shell: bash diff --git a/.github/workflows/format.yml b/.github/workflows/format.yml new file mode 100644 index 0000000000..d5f890a025 --- /dev/null +++ b/.github/workflows/format.yml @@ -0,0 +1,21 @@ +name: Install Tools & Dependencies +description: Installs pnpm, Node.js & package dependencies + +runs: + using: composite + steps: + - name: Setup pnpm + uses: pnpm/action-setup@v4 + with: + version: 9 + run_install: false + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: 20 + cache: pnpm + + - name: Install dependencies + run: pnpm install + shell: bash diff --git a/.github/workflows/static_checks.yml b/.github/workflows/static_checks.yml index ebf813ff78..bbb9fda720 100644 --- a/.github/workflows/static_checks.yml +++ b/.github/workflows/static_checks.yml @@ -2,70 +2,37 @@ name: πŸ” Lint / Type Checks on: push: - branches: [main] + branches: + - main + pull_request: - branches: [main] + branches: + - main jobs: - setup: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 - with: - version: 9 - - uses: actions/setup-node@v4 - with: - node-version: "20" - cache: "pnpm" - - run: pnpm i - - uses: actions/cache/save@v4 - with: - path: | - node_modules - ~/.pnpm-store - key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }} - typecheck: - needs: setup runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 - with: - version: 9 - - uses: actions/setup-node@v4 - with: - node-version: "20" - cache: "pnpm" - - uses: actions/cache/restore@v4 - with: - path: | - node_modules - ~/.pnpm-store - key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }} + - name: Check out code + uses: actions/checkout@v4 + + - name: Install tools & dependencies + uses: ./.github/actions/install + - name: Generate virtual modules run: pnpm sync + - name: TypeScript check run: pnpm check:types lint: - needs: setup runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 - with: - version: 9 - - uses: actions/setup-node@v4 - with: - node-version: "20" - cache: "pnpm" - - uses: actions/cache/restore@v4 - with: - path: | - node_modules - ~/.pnpm-store - key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }} + - name: Check out code + uses: actions/checkout@v4 + + - name: Install tools & dependencies + uses: ./.github/actions/install + - name: ESLint check run: pnpm check:lint diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 26b11b8c7d..1e94e9a229 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -133,13 +133,13 @@ Though it is not a hard requirement, we'd deeply appreciate if you could recomme 1. Create a dictionary file in `src/i18n/dictionaries/{locale}/ui.ts`. The name should follow our locale convention. - - language (ISO 639-1 - set 1): https://en.wikipedia.org/wiki/List_of_ISO_639_language_codes - - country code(optional) (ISO 3166-1 alpha-2): https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 - - E.g.: Canadian French would be: `fr-ca` +- language (ISO 639-1 - set 1): https://en.wikipedia.org/wiki/List_of_ISO_639_language_codes +- country code(optional) (ISO 3166-1 alpha-2): https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 +- E.g.: Canadian French would be: `fr-ca` 2. Add the `import` and language information to the objects in the barrel file: `./src/i18n/dictionaries/index.ts`. So it will be identified by the routing system, and an entry its added to the language dropdown. 3. Add the language to the `array` in `./scripts/collections/index.mjs` so internal files are created. -4. Add the important UI translations to `./src/i18n/dictionaries/{locale}/ui.ts` +4. Add the important UI translations to `./src/i18n/dictionaries/{locale}/ui.ts` 5. Add at least the index page `./src/routes/{locale}/index.mdx`, so others and yourself could see things in action. #### Adding translations to a supported language diff --git a/app.config.ts b/app.config.ts index a865369ecc..d74094f3f1 100644 --- a/app.config.ts +++ b/app.config.ts @@ -1,4 +1,5 @@ import { defineConfig } from "@solidjs/start/config"; +import eslint from "vite-plugin-eslint"; import { createWithSolidBase, defineTheme } from "@kobalte/solidbase/config"; @@ -58,7 +59,7 @@ export default defineConfig( }, }, vite: { - plugins: [docsData(), heroCodeSnippet()], + plugins: [docsData(), heroCodeSnippet(), eslint()], }, }, { diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 0000000000..d584c6e8a5 --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,68 @@ +import typescriptEslint from "@typescript-eslint/eslint-plugin"; +import globals from "globals"; +import tsParser from "@typescript-eslint/parser"; +import path from "node:path"; +import { fileURLToPath } from "node:url"; +import js from "@eslint/js"; +import { FlatCompat } from "@eslint/eslintrc"; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); +const compat = new FlatCompat({ + baseDirectory: __dirname, + recommendedConfig: js.configs.recommended, + allConfig: js.configs.all, +}); + +export default [ + { + ignores: ["**/node_modules/", "**/dist/"], + }, + ...compat.extends( + "eslint:recommended", + "plugin:@typescript-eslint/recommended", + "plugin:solid/typescript" + ), + { + plugins: { + "@typescript-eslint": typescriptEslint, + }, + + languageOptions: { + globals: { + ...globals.browser, + }, + + parser: tsParser, + ecmaVersion: "latest", + sourceType: "script", + }, + + rules: { + "@typescript-eslint/no-unused-vars": [ + "error", + { + args: "all", + argsIgnorePattern: "^_", + caughtErrors: "all", + caughtErrorsIgnorePattern: "^_", + destructuredArrayIgnorePattern: "^_", + varsIgnorePattern: "^_", + ignoreRestSiblings: true, + }, + ], + }, + }, + { + files: ["**/.eslintrc.{js,cjs}"], + + languageOptions: { + globals: { + ...globals.node, + }, + + ecmaVersion: 5, + sourceType: "commonjs", + }, + }, +]; 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 1750c792b5..7ed539f748 100644 --- a/package.json +++ b/package.json @@ -8,20 +8,20 @@ "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 && vinxi build", "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" + "check:lint": "pnpm dlx eslint", + "check:types": "tsc --noEmit", + "check:format": "prettier . --check", + "format": "prettier . --write" }, "dependencies": { "@kobalte/core": "^0.13.9", - "@kobalte/solidbase": "^0.0.16", + "@kobalte/solidbase": "^0.0.23", "@lunariajs/core": "^0.0.31", - "@oramacloud/client": "^1.3.15", + "@oramacloud/client": "^1.3.16", "@solid-primitives/event-listener": "^2.3.3", "@solid-primitives/marker": "^0.1.0", "@solid-primitives/media": "^2.2.9", @@ -32,8 +32,8 @@ "dotenv": "^16.4.5", "glob": "^10.4.5", "gray-matter": "^4.0.3", - "postcss": "^8.4.47", - "shiki": "^1.17.6", + "postcss": "^8.5.3", + "shiki": "^1.22.0", "sitemap": "^7.1.2", "solid-heroicons": "^3.2.4", "solid-js": "^1.9.5", @@ -43,22 +43,26 @@ "zod": "^3.23.8" }, "devDependencies": { + "@eslint/eslintrc": "^3.3.0", + "@eslint/js": "^9.22.0", "@kobalte/tailwindcss": "^0.9.0", "@orama/crawly": "^0.0.4", "@tailwindcss/typography": "^0.5.15", "@types/node": "^22.9.0", - "@typescript-eslint/eslint-plugin": "^8.7.0", - "@typescript-eslint/parser": "^8.7.0", + "@typescript-eslint/eslint-plugin": "^8.26.0", + "@typescript-eslint/parser": "^8.26.0", "autoprefixer": "^10.4.20", - "eslint": "^8.57.1", - "eslint-plugin-solid": "^0.13.2", + "eslint": "^9.22.0", + "eslint-plugin-solid": "^0.14.5", + "globals": "^16.0.0", "prettier": "3.2.5", - "tailwindcss": "^3.4.11", - "typescript": "^5.6.2", - "vite": "^6.1.1" + "tailwindcss": "^3.4.14", + "typescript": "^5.8.2", + "vite": "^6.2.1", + "vite-plugin-eslint": "^1.8.1" }, "engines": { "node": ">=18", - "packageManager": "pnpm@8" + "pnpm": ">=10" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e7b344734b..45d1e50a34 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,44 +1,43 @@ -lockfileVersion: '9.0' +lockfileVersion: "9.0" settings: autoInstallPeers: true excludeLinksFromLockfile: false importers: - .: dependencies: - '@kobalte/core': + "@kobalte/core": specifier: ^0.13.9 version: 0.13.9(solid-js@1.9.5) - '@kobalte/solidbase': - specifier: ^0.0.16 - version: 0.0.16(@algolia/client-search@5.14.2)(@solidjs/start@1.1.1(solid-js@1.9.5)(vinxi@0.5.3(@types/node@22.9.0)(db0@0.2.4)(ioredis@5.4.1)(jiti@2.4.2)(terser@5.34.1)(typescript@5.6.3)(yaml@2.6.0))(vite@6.1.1(@types/node@22.9.0)(jiti@2.4.2)(terser@5.34.1)(yaml@2.6.0)))(@vue/compiler-sfc@3.5.12)(acorn@8.14.0)(react@18.3.1)(search-insights@2.17.3)(solid-js@1.9.5)(vinxi@0.5.3(@types/node@22.9.0)(db0@0.2.4)(ioredis@5.4.1)(jiti@2.4.2)(terser@5.34.1)(typescript@5.6.3)(yaml@2.6.0))(vite@6.1.1(@types/node@22.9.0)(jiti@2.4.2)(terser@5.34.1)(yaml@2.6.0)) - '@lunariajs/core': + "@kobalte/solidbase": + specifier: ^0.0.23 + version: 0.0.23(@algolia/client-search@5.14.2)(@expressive-code/core@0.40.2)(@solidjs/start@1.1.1(solid-js@1.9.5)(vinxi@0.5.3(@types/node@22.9.0)(db0@0.2.4)(ioredis@5.4.1)(jiti@2.4.2)(terser@5.34.1)(typescript@5.8.2)(yaml@2.6.0))(vite@6.2.1(@types/node@22.9.0)(jiti@2.4.2)(terser@5.34.1)(yaml@2.6.0)))(@vue/compiler-sfc@3.5.12)(acorn@8.14.0)(expressive-code@0.40.2)(react@18.3.1)(search-insights@2.17.3)(solid-js@1.9.5)(vinxi@0.5.3(@types/node@22.9.0)(db0@0.2.4)(ioredis@5.4.1)(jiti@2.4.2)(terser@5.34.1)(typescript@5.8.2)(yaml@2.6.0))(vite@6.2.1(@types/node@22.9.0)(jiti@2.4.2)(terser@5.34.1)(yaml@2.6.0)) + "@lunariajs/core": specifier: ^0.0.31 version: 0.0.31 - '@oramacloud/client': - specifier: ^1.3.15 - version: 1.3.16(typescript@5.6.3)(zod@3.23.8) - '@solid-primitives/event-listener': + "@oramacloud/client": + specifier: ^1.3.16 + version: 1.3.16(typescript@5.8.2)(zod@3.23.8) + "@solid-primitives/event-listener": specifier: ^2.3.3 version: 2.3.3(solid-js@1.9.5) - '@solid-primitives/marker': + "@solid-primitives/marker": specifier: ^0.1.0 version: 0.1.0(solid-js@1.9.5) - '@solid-primitives/media': + "@solid-primitives/media": specifier: ^2.2.9 version: 2.2.9(solid-js@1.9.5) - '@solidjs/meta': + "@solidjs/meta": specifier: ^0.29.4 version: 0.29.4(solid-js@1.9.5) - '@solidjs/router': + "@solidjs/router": specifier: ^0.15.3 version: 0.15.3(solid-js@1.9.5) - '@solidjs/start': + "@solidjs/start": specifier: ^1.1.1 - version: 1.1.1(solid-js@1.9.5)(vinxi@0.5.3(@types/node@22.9.0)(db0@0.2.4)(ioredis@5.4.1)(jiti@2.4.2)(terser@5.34.1)(typescript@5.6.3)(yaml@2.6.0))(vite@6.1.1(@types/node@22.9.0)(jiti@2.4.2)(terser@5.34.1)(yaml@2.6.0)) - '@vinxi/plugin-mdx': + version: 1.1.1(solid-js@1.9.5)(vinxi@0.5.3(@types/node@22.9.0)(db0@0.2.4)(ioredis@5.4.1)(jiti@2.4.2)(terser@5.34.1)(typescript@5.8.2)(yaml@2.6.0))(vite@6.2.1(@types/node@22.9.0)(jiti@2.4.2)(terser@5.34.1)(yaml@2.6.0)) + "@vinxi/plugin-mdx": specifier: ^3.7.2 version: 3.7.2(@mdx-js/mdx@3.1.0(acorn@8.14.0)) dotenv: @@ -51,10 +50,10 @@ importers: specifier: ^4.0.3 version: 4.0.3 postcss: - specifier: ^8.4.47 + specifier: ^8.5.3 version: 8.5.3 shiki: - specifier: ^1.17.6 + specifier: ^1.22.0 version: 1.22.0 sitemap: specifier: ^7.1.2 @@ -70,356 +69,580 @@ importers: version: 0.3.0(solid-js@1.9.5) solid-mdx: specifier: ^0.0.7 - version: 0.0.7(solid-js@1.9.5)(vite@6.1.1(@types/node@22.9.0)(jiti@2.4.2)(terser@5.34.1)(yaml@2.6.0)) + version: 0.0.7(solid-js@1.9.5)(vite@6.2.1(@types/node@22.9.0)(jiti@2.4.2)(terser@5.34.1)(yaml@2.6.0)) vinxi: specifier: ^0.5.3 - version: 0.5.3(@types/node@22.9.0)(db0@0.2.4)(ioredis@5.4.1)(jiti@2.4.2)(terser@5.34.1)(typescript@5.6.3)(yaml@2.6.0) + version: 0.5.3(@types/node@22.9.0)(db0@0.2.4)(ioredis@5.4.1)(jiti@2.4.2)(terser@5.34.1)(typescript@5.8.2)(yaml@2.6.0) zod: specifier: ^3.23.8 version: 3.23.8 devDependencies: - '@kobalte/tailwindcss': + "@eslint/eslintrc": + specifier: ^3.3.0 + version: 3.3.0 + "@eslint/js": + specifier: ^9.22.0 + version: 9.22.0 + "@kobalte/tailwindcss": specifier: ^0.9.0 version: 0.9.0(tailwindcss@3.4.14) - '@orama/crawly': + "@orama/crawly": specifier: ^0.0.4 version: 0.0.4 - '@tailwindcss/typography': + "@tailwindcss/typography": specifier: ^0.5.15 version: 0.5.15(tailwindcss@3.4.14) - '@types/node': + "@types/node": specifier: ^22.9.0 version: 22.9.0 - '@typescript-eslint/eslint-plugin': - specifier: ^8.7.0 - version: 8.9.0(@typescript-eslint/parser@8.9.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1)(typescript@5.6.3) - '@typescript-eslint/parser': - specifier: ^8.7.0 - version: 8.9.0(eslint@8.57.1)(typescript@5.6.3) + "@typescript-eslint/eslint-plugin": + specifier: ^8.26.0 + version: 8.26.0(@typescript-eslint/parser@8.26.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + "@typescript-eslint/parser": + specifier: ^8.26.0 + version: 8.26.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) autoprefixer: specifier: ^10.4.20 version: 10.4.20(postcss@8.5.3) eslint: - specifier: ^8.57.1 - version: 8.57.1 + specifier: ^9.22.0 + version: 9.22.0(jiti@2.4.2) eslint-plugin-solid: - specifier: ^0.13.2 - version: 0.13.2(eslint@8.57.1)(typescript@5.6.3) + specifier: ^0.14.5 + version: 0.14.5(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + globals: + specifier: ^16.0.0 + version: 16.0.0 prettier: specifier: 3.2.5 version: 3.2.5 tailwindcss: - specifier: ^3.4.11 + specifier: ^3.4.14 version: 3.4.14 typescript: - specifier: ^5.6.2 - version: 5.6.3 + specifier: ^5.8.2 + version: 5.8.2 vite: - specifier: ^6.1.1 - version: 6.1.1(@types/node@22.9.0)(jiti@2.4.2)(terser@5.34.1)(yaml@2.6.0) + specifier: ^6.2.1 + version: 6.2.1(@types/node@22.9.0)(jiti@2.4.2)(terser@5.34.1)(yaml@2.6.0) + vite-plugin-eslint: + specifier: ^1.8.1 + version: 1.8.1(eslint@9.22.0(jiti@2.4.2))(vite@6.2.1(@types/node@22.9.0)(jiti@2.4.2)(terser@5.34.1)(yaml@2.6.0)) 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==} + "@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' + search-insights: ">= 1 < 3" - '@algolia/autocomplete-preset-algolia@1.17.7': - resolution: {integrity: sha512-ggOQ950+nwbWROq2MOCIL71RE0DdQZsceqrg32UqnhDz8FlO9rL8ONHNsI2R1MH0tkgVIDKI/D0sMiUchsFdWA==} + "@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==} + "@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'} - - '@ampproject/remapping@2.3.0': - resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} - engines: {node: '>=6.0.0'} - - '@antfu/install-pkg@1.0.0': - resolution: {integrity: sha512-xvX6P/lo1B3ej0OsaErAjqgFYzYVcJpamjLAFLYh9vRJngBrMoUG7aVnrGTeqM7yxbyTD5p3F2+0/QUEh8Vzhw==} - - '@antfu/utils@8.1.1': - resolution: {integrity: sha512-Mex9nXf9vR6AhcXmMrlz/HVgYYZpVGJ6YlPgwl7UnaFpnshXs6EK/oa5Gpf3CzENMjkvEx2tQtntGnb7UtSTOQ==} - - '@babel/code-frame@7.25.7': - resolution: {integrity: sha512-0xZJFNE5XMpENsgfHYTw8FbX4kv53mFLn2i3XPoq69LyhYSCBJtitaHx9QnsVTrsogI4Z3+HtEfZ2/GFPOtf5g==} - engines: {node: '>=6.9.0'} - - '@babel/code-frame@7.26.2': - resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} - engines: {node: '>=6.9.0'} - - '@babel/compat-data@7.25.8': - resolution: {integrity: sha512-ZsysZyXY4Tlx+Q53XdnOFmqwfB9QDTHYxaZYajWRoBLuLEAwI2UIbtxOjWh/cFaa9IKUlcB+DDuoskLuKu56JA==} - engines: {node: '>=6.9.0'} - - '@babel/compat-data@7.26.8': - resolution: {integrity: sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==} - 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.26.9': - resolution: {integrity: sha512-lWBYIrF7qK5+GjY5Uy+/hEgp8OJWOD/rpy74GplYRhEauvbHDeFB8t5hPOZxCZ0Oxf4Cc36tK51/l3ymJysrKw==} - engines: {node: '>=6.9.0'} - - '@babel/generator@7.25.7': - resolution: {integrity: sha512-5Dqpl5fyV9pIAD62yK9P7fcA768uVPUyrQmqpqstHWgMma4feF1x/oFysBCVZLY5wJ2GkMUCdsNDnGZrPoR6rA==} - engines: {node: '>=6.9.0'} - - '@babel/generator@7.26.9': - resolution: {integrity: sha512-kEWdzjOAUMW4hAyrzJ0ZaTOu9OmpyDIQicIh0zg0EEcEkYXZb2TjtBhnHi2ViX7PKwZqF4xwqfAm299/QMP3lg==} - engines: {node: '>=6.9.0'} - - '@babel/helper-compilation-targets@7.25.7': - resolution: {integrity: sha512-DniTEax0sv6isaw6qSQSfV4gVRNtw2rte8HHM45t9ZR0xILaufBRNkpMifCRiAPyvL4ACD6v0gfCwCmtOQaV4A==} - engines: {node: '>=6.9.0'} - - '@babel/helper-compilation-targets@7.26.5': - resolution: {integrity: sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==} - engines: {node: '>=6.9.0'} - - '@babel/helper-module-imports@7.18.6': - resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==} - engines: {node: '>=6.9.0'} - - '@babel/helper-module-imports@7.25.7': - resolution: {integrity: sha512-o0xCgpNmRohmnoWKQ0Ij8IdddjyBFE4T2kagL/x6M3+4zUgc+4qTOUBoNe4XxDskt1HPKO007ZPiMgLDq2s7Kw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-module-imports@7.25.9': - resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-module-transforms@7.25.7': - resolution: {integrity: sha512-k/6f8dKG3yDz/qCwSM+RKovjMix563SLxQFo0UhRNo239SP6n9u5/eLtKD6EAjwta2JHJ49CsD8pms2HdNiMMQ==} - engines: {node: '>=6.9.0'} + "@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" } + + "@ampproject/remapping@2.3.0": + resolution: + { + integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==, + } + engines: { node: ">=6.0.0" } + + "@antfu/install-pkg@1.0.0": + resolution: + { + integrity: sha512-xvX6P/lo1B3ej0OsaErAjqgFYzYVcJpamjLAFLYh9vRJngBrMoUG7aVnrGTeqM7yxbyTD5p3F2+0/QUEh8Vzhw==, + } + + "@antfu/utils@8.1.1": + resolution: + { + integrity: sha512-Mex9nXf9vR6AhcXmMrlz/HVgYYZpVGJ6YlPgwl7UnaFpnshXs6EK/oa5Gpf3CzENMjkvEx2tQtntGnb7UtSTOQ==, + } + + "@babel/code-frame@7.25.7": + resolution: + { + integrity: sha512-0xZJFNE5XMpENsgfHYTw8FbX4kv53mFLn2i3XPoq69LyhYSCBJtitaHx9QnsVTrsogI4Z3+HtEfZ2/GFPOtf5g==, + } + engines: { node: ">=6.9.0" } + + "@babel/code-frame@7.26.2": + resolution: + { + integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==, + } + engines: { node: ">=6.9.0" } + + "@babel/compat-data@7.25.8": + resolution: + { + integrity: sha512-ZsysZyXY4Tlx+Q53XdnOFmqwfB9QDTHYxaZYajWRoBLuLEAwI2UIbtxOjWh/cFaa9IKUlcB+DDuoskLuKu56JA==, + } + engines: { node: ">=6.9.0" } + + "@babel/compat-data@7.26.8": + resolution: + { + integrity: sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==, + } + 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.26.9": + resolution: + { + integrity: sha512-lWBYIrF7qK5+GjY5Uy+/hEgp8OJWOD/rpy74GplYRhEauvbHDeFB8t5hPOZxCZ0Oxf4Cc36tK51/l3ymJysrKw==, + } + engines: { node: ">=6.9.0" } + + "@babel/generator@7.25.7": + resolution: + { + integrity: sha512-5Dqpl5fyV9pIAD62yK9P7fcA768uVPUyrQmqpqstHWgMma4feF1x/oFysBCVZLY5wJ2GkMUCdsNDnGZrPoR6rA==, + } + engines: { node: ">=6.9.0" } + + "@babel/generator@7.26.9": + resolution: + { + integrity: sha512-kEWdzjOAUMW4hAyrzJ0ZaTOu9OmpyDIQicIh0zg0EEcEkYXZb2TjtBhnHi2ViX7PKwZqF4xwqfAm299/QMP3lg==, + } + engines: { node: ">=6.9.0" } + + "@babel/helper-compilation-targets@7.25.7": + resolution: + { + integrity: sha512-DniTEax0sv6isaw6qSQSfV4gVRNtw2rte8HHM45t9ZR0xILaufBRNkpMifCRiAPyvL4ACD6v0gfCwCmtOQaV4A==, + } + engines: { node: ">=6.9.0" } + + "@babel/helper-compilation-targets@7.26.5": + resolution: + { + integrity: sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==, + } + engines: { node: ">=6.9.0" } + + "@babel/helper-module-imports@7.18.6": + resolution: + { + integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==, + } + engines: { node: ">=6.9.0" } + + "@babel/helper-module-imports@7.25.7": + resolution: + { + integrity: sha512-o0xCgpNmRohmnoWKQ0Ij8IdddjyBFE4T2kagL/x6M3+4zUgc+4qTOUBoNe4XxDskt1HPKO007ZPiMgLDq2s7Kw==, + } + engines: { node: ">=6.9.0" } + + "@babel/helper-module-imports@7.25.9": + resolution: + { + integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==, + } + engines: { node: ">=6.9.0" } + + "@babel/helper-module-transforms@7.25.7": + resolution: + { + integrity: sha512-k/6f8dKG3yDz/qCwSM+RKovjMix563SLxQFo0UhRNo239SP6n9u5/eLtKD6EAjwta2JHJ49CsD8pms2HdNiMMQ==, + } + engines: { node: ">=6.9.0" } peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-module-transforms@7.26.0': - resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==} - engines: {node: '>=6.9.0'} + "@babel/core": ^7.0.0 + + "@babel/helper-module-transforms@7.26.0": + resolution: + { + integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==, + } + engines: { node: ">=6.9.0" } peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-plugin-utils@7.25.7': - resolution: {integrity: sha512-eaPZai0PiqCi09pPs3pAFfl/zYgGaE6IdXtYvmf0qlcDTd3WCtO7JWCcRd64e0EQrcYgiHibEZnOGsSY4QSgaw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-plugin-utils@7.26.5': - resolution: {integrity: sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==} - engines: {node: '>=6.9.0'} - - '@babel/helper-simple-access@7.25.7': - resolution: {integrity: sha512-FPGAkJmyoChQeM+ruBGIDyrT2tKfZJO8NcxdC+CWNJi7N8/rZpSxK7yvBJ5O/nF1gfu5KzN7VKG3YVSLFfRSxQ==} - engines: {node: '>=6.9.0'} - - '@babel/helper-string-parser@7.25.7': - 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-validator-identifier@7.25.7': - 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-option@7.25.7': - resolution: {integrity: sha512-ytbPLsm+GjArDYXJ8Ydr1c/KJuutjF2besPNbIZnZ6MKUxi/uTA22t2ymmA4WFjZFpjiAMO0xuuJPqK2nvDVfQ==} - engines: {node: '>=6.9.0'} - - '@babel/helper-validator-option@7.25.9': - resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==} - engines: {node: '>=6.9.0'} - - '@babel/helpers@7.25.7': - resolution: {integrity: sha512-Sv6pASx7Esm38KQpF/U/OXLwPPrdGHNKoeblRxgZRLXnAtnkEe4ptJPDtAZM7fBLadbc1Q07kQpSiGQ0Jg6tRA==} - engines: {node: '>=6.9.0'} - - '@babel/helpers@7.26.9': - resolution: {integrity: sha512-Mz/4+y8udxBKdmzt/UjPACs4G3j5SshJJEFFKxlCGPydG4JAHXxjWjAwjd09tf6oINvl1VfMJo+nB7H2YKQ0dA==} - engines: {node: '>=6.9.0'} - - '@babel/highlight@7.25.7': - resolution: {integrity: sha512-iYyACpW3iW8Fw+ZybQK+drQre+ns/tKpXbNESfrhNnPLIklLbXr7MYJ6gPEd0iETGLOK+SxMjVvKb/ffmk+FEw==} - engines: {node: '>=6.9.0'} - - '@babel/parser@7.25.8': - resolution: {integrity: sha512-HcttkxzdPucv3nNFmfOOMfFf64KgdJVqm1KaCm25dPGMLElo9nsLvXeJECQg8UzPuBGLyTSA0ZzqCtDSzKTEoQ==} - engines: {node: '>=6.0.0'} + "@babel/core": ^7.0.0 + + "@babel/helper-plugin-utils@7.25.7": + resolution: + { + integrity: sha512-eaPZai0PiqCi09pPs3pAFfl/zYgGaE6IdXtYvmf0qlcDTd3WCtO7JWCcRd64e0EQrcYgiHibEZnOGsSY4QSgaw==, + } + engines: { node: ">=6.9.0" } + + "@babel/helper-plugin-utils@7.26.5": + resolution: + { + integrity: sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==, + } + engines: { node: ">=6.9.0" } + + "@babel/helper-simple-access@7.25.7": + resolution: + { + integrity: sha512-FPGAkJmyoChQeM+ruBGIDyrT2tKfZJO8NcxdC+CWNJi7N8/rZpSxK7yvBJ5O/nF1gfu5KzN7VKG3YVSLFfRSxQ==, + } + engines: { node: ">=6.9.0" } + + "@babel/helper-string-parser@7.25.7": + 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-validator-identifier@7.25.7": + 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-option@7.25.7": + resolution: + { + integrity: sha512-ytbPLsm+GjArDYXJ8Ydr1c/KJuutjF2besPNbIZnZ6MKUxi/uTA22t2ymmA4WFjZFpjiAMO0xuuJPqK2nvDVfQ==, + } + engines: { node: ">=6.9.0" } + + "@babel/helper-validator-option@7.25.9": + resolution: + { + integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==, + } + engines: { node: ">=6.9.0" } + + "@babel/helpers@7.25.7": + resolution: + { + integrity: sha512-Sv6pASx7Esm38KQpF/U/OXLwPPrdGHNKoeblRxgZRLXnAtnkEe4ptJPDtAZM7fBLadbc1Q07kQpSiGQ0Jg6tRA==, + } + engines: { node: ">=6.9.0" } + + "@babel/helpers@7.26.9": + resolution: + { + integrity: sha512-Mz/4+y8udxBKdmzt/UjPACs4G3j5SshJJEFFKxlCGPydG4JAHXxjWjAwjd09tf6oINvl1VfMJo+nB7H2YKQ0dA==, + } + engines: { node: ">=6.9.0" } + + "@babel/highlight@7.25.7": + resolution: + { + integrity: sha512-iYyACpW3iW8Fw+ZybQK+drQre+ns/tKpXbNESfrhNnPLIklLbXr7MYJ6gPEd0iETGLOK+SxMjVvKb/ffmk+FEw==, + } + engines: { node: ">=6.9.0" } + + "@babel/parser@7.25.8": + resolution: + { + integrity: sha512-HcttkxzdPucv3nNFmfOOMfFf64KgdJVqm1KaCm25dPGMLElo9nsLvXeJECQg8UzPuBGLyTSA0ZzqCtDSzKTEoQ==, + } + engines: { node: ">=6.0.0" } hasBin: true - '@babel/parser@7.26.9': - resolution: {integrity: sha512-81NWa1njQblgZbQHxWHpxxCzNsa3ZwvFqpUg7P+NNUU6f3UU2jBEg4OlF/J6rl8+PQGh1q6/zWScd001YwcA5A==} - engines: {node: '>=6.0.0'} + "@babel/parser@7.26.9": + resolution: + { + integrity: sha512-81NWa1njQblgZbQHxWHpxxCzNsa3ZwvFqpUg7P+NNUU6f3UU2jBEg4OlF/J6rl8+PQGh1q6/zWScd001YwcA5A==, + } + engines: { node: ">=6.0.0" } hasBin: true - '@babel/plugin-syntax-jsx@7.25.7': - resolution: {integrity: sha512-ruZOnKO+ajVL/MVx+PwNBPOkrnXTXoWMtte1MBpegfCArhqOe3Bj52avVj1huLLxNKYKXYaSxZ2F+woK1ekXfw==} - engines: {node: '>=6.9.0'} + "@babel/plugin-syntax-jsx@7.25.7": + resolution: + { + integrity: sha512-ruZOnKO+ajVL/MVx+PwNBPOkrnXTXoWMtte1MBpegfCArhqOe3Bj52avVj1huLLxNKYKXYaSxZ2F+woK1ekXfw==, + } + engines: { node: ">=6.9.0" } peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-jsx@7.25.9': - resolution: {integrity: sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==} - engines: {node: '>=6.9.0'} + "@babel/core": ^7.0.0-0 + + "@babel/plugin-syntax-jsx@7.25.9": + resolution: + { + integrity: sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==, + } + engines: { node: ">=6.9.0" } peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-typescript@7.25.7': - resolution: {integrity: sha512-rR+5FDjpCHqqZN2bzZm18bVYGaejGq5ZkpVCJLXor/+zlSrSoc4KWcHI0URVWjl/68Dyr1uwZUz/1njycEAv9g==} - engines: {node: '>=6.9.0'} + "@babel/core": ^7.0.0-0 + + "@babel/plugin-syntax-typescript@7.25.7": + resolution: + { + integrity: sha512-rR+5FDjpCHqqZN2bzZm18bVYGaejGq5ZkpVCJLXor/+zlSrSoc4KWcHI0URVWjl/68Dyr1uwZUz/1njycEAv9g==, + } + engines: { node: ">=6.9.0" } peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-typescript@7.25.9': - resolution: {integrity: sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==} - engines: {node: '>=6.9.0'} + "@babel/core": ^7.0.0-0 + + "@babel/plugin-syntax-typescript@7.25.9": + resolution: + { + integrity: sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==, + } + engines: { node: ">=6.9.0" } peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/standalone@7.26.9': - resolution: {integrity: sha512-UTeQKy0kzJwWRe55kT1uK4G9H6D0lS6G4207hCU/bDaOhA5t2aC0qHN6GmID0Axv3OFLNXm27NdqcWp+BXcGtA==} - engines: {node: '>=6.9.0'} - - '@babel/template@7.25.7': - resolution: {integrity: sha512-wRwtAgI3bAS+JGU2upWNL9lSlDcRCqD05BZ1n3X2ONLH1WilFP6O1otQjeMK/1g0pvYcXC7b/qVUB1keofjtZA==} - engines: {node: '>=6.9.0'} - - '@babel/template@7.26.9': - resolution: {integrity: sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA==} - engines: {node: '>=6.9.0'} - - '@babel/traverse@7.25.7': - resolution: {integrity: sha512-jatJPT1Zjqvh/1FyJs6qAHL+Dzb7sTb+xr7Q+gM1b+1oBsMsQQ4FkVKb6dFlJvLlVssqkRzV05Jzervt9yhnzg==} - engines: {node: '>=6.9.0'} - - '@babel/traverse@7.26.9': - resolution: {integrity: sha512-ZYW7L+pL8ahU5fXmNbPF+iZFHCv5scFak7MZ9bwaRPLUhHh7QQEMjZUg0HevihoqCM5iSYHN61EyCoZvqC+bxg==} - 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'} - - '@bprogress/core@1.1.18': - resolution: {integrity: sha512-+khsDSJ7jv1L9LU34jnEsNqY6tXViSZDOeoxd09Ws8zVXzFjatRzWwBpiDQqTqyVZc0nlOxkkumFDtAgDJwY2A==} - - '@clack/core@0.3.4': - resolution: {integrity: sha512-H4hxZDXgHtWTwV3RAVenqcC4VbJZNegbBjlPvzOzCouXtS2y3sDvlO3IsbrPNWuLWPPlYVYPghQdSF64683Ldw==} - - '@cloudflare/kv-asset-handler@0.3.4': - resolution: {integrity: sha512-YLPHc8yASwjNkmcDMQMY35yiWjoKAKnhUbPRszBRS0YgH+IXtsMp61j+yTcnCE3oO2DgP0U3iejLC8FTtKDC8Q==} - engines: {node: '>=16.13'} - - '@corvu/utils@0.4.2': - resolution: {integrity: sha512-Ox2kYyxy7NoXdKWdHeDEjZxClwzO4SKM8plAaVwmAJPxHMqA0rLOoAsa+hBDwRLpctf+ZRnAd/ykguuJidnaTA==} + "@babel/core": ^7.0.0-0 + + "@babel/standalone@7.26.9": + resolution: + { + integrity: sha512-UTeQKy0kzJwWRe55kT1uK4G9H6D0lS6G4207hCU/bDaOhA5t2aC0qHN6GmID0Axv3OFLNXm27NdqcWp+BXcGtA==, + } + engines: { node: ">=6.9.0" } + + "@babel/template@7.25.7": + resolution: + { + integrity: sha512-wRwtAgI3bAS+JGU2upWNL9lSlDcRCqD05BZ1n3X2ONLH1WilFP6O1otQjeMK/1g0pvYcXC7b/qVUB1keofjtZA==, + } + engines: { node: ">=6.9.0" } + + "@babel/template@7.26.9": + resolution: + { + integrity: sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA==, + } + engines: { node: ">=6.9.0" } + + "@babel/traverse@7.25.7": + resolution: + { + integrity: sha512-jatJPT1Zjqvh/1FyJs6qAHL+Dzb7sTb+xr7Q+gM1b+1oBsMsQQ4FkVKb6dFlJvLlVssqkRzV05Jzervt9yhnzg==, + } + engines: { node: ">=6.9.0" } + + "@babel/traverse@7.26.9": + resolution: + { + integrity: sha512-ZYW7L+pL8ahU5fXmNbPF+iZFHCv5scFak7MZ9bwaRPLUhHh7QQEMjZUg0HevihoqCM5iSYHN61EyCoZvqC+bxg==, + } + 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" } + + "@bprogress/core@1.1.18": + resolution: + { + integrity: sha512-+khsDSJ7jv1L9LU34jnEsNqY6tXViSZDOeoxd09Ws8zVXzFjatRzWwBpiDQqTqyVZc0nlOxkkumFDtAgDJwY2A==, + } + + "@clack/core@0.3.4": + resolution: + { + integrity: sha512-H4hxZDXgHtWTwV3RAVenqcC4VbJZNegbBjlPvzOzCouXtS2y3sDvlO3IsbrPNWuLWPPlYVYPghQdSF64683Ldw==, + } + + "@cloudflare/kv-asset-handler@0.3.4": + resolution: + { + integrity: sha512-YLPHc8yASwjNkmcDMQMY35yiWjoKAKnhUbPRszBRS0YgH+IXtsMp61j+yTcnCE3oO2DgP0U3iejLC8FTtKDC8Q==, + } + engines: { node: ">=16.13" } + + "@corvu/utils@0.4.2": + resolution: + { + integrity: sha512-Ox2kYyxy7NoXdKWdHeDEjZxClwzO4SKM8plAaVwmAJPxHMqA0rLOoAsa+hBDwRLpctf+ZRnAd/ykguuJidnaTA==, + } peerDependencies: solid-js: ^1.8 - '@ctrl/tinycolor@4.1.0': - resolution: {integrity: sha512-WyOx8cJQ+FQus4Mm4uPIZA64gbk3Wxh0so5Lcii0aJifqwoVOlfFtorjLE0Hen4OYyHZMXDWqMmaQemBhgxFRQ==} - engines: {node: '>=14'} - - '@deno/shim-deno-test@0.5.0': - resolution: {integrity: sha512-4nMhecpGlPi0cSzT67L+Tm+GOJqvuk8gqHBziqcUQOarnuIax1z96/gJHCSIz2Z0zhxE6Rzwb3IZXPtFh51j+w==} - - '@deno/shim-deno@0.19.2': - resolution: {integrity: sha512-q3VTHl44ad8T2Tw2SpeAvghdGOjlnLPDNO2cpOxwMrBE/PVas6geWpbpIgrM+czOCH0yejp0yi8OaTuB+NU40Q==} - - '@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==} + "@ctrl/tinycolor@4.1.0": + resolution: + { + integrity: sha512-WyOx8cJQ+FQus4Mm4uPIZA64gbk3Wxh0so5Lcii0aJifqwoVOlfFtorjLE0Hen4OYyHZMXDWqMmaQemBhgxFRQ==, + } + engines: { node: ">=14" } + + "@deno/shim-deno-test@0.5.0": + resolution: + { + integrity: sha512-4nMhecpGlPi0cSzT67L+Tm+GOJqvuk8gqHBziqcUQOarnuIax1z96/gJHCSIz2Z0zhxE6Rzwb3IZXPtFh51j+w==, + } + + "@deno/shim-deno@0.19.2": + resolution: + { + integrity: sha512-q3VTHl44ad8T2Tw2SpeAvghdGOjlnLPDNO2cpOxwMrBE/PVas6geWpbpIgrM+czOCH0yejp0yi8OaTuB+NU40Q==, + } + + "@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' + "@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': + "@types/react": optional: true react: optional: true @@ -428,1497 +651,2840 @@ packages: search-insights: optional: true - '@esbuild/aix-ppc64@0.20.2': - resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==} - engines: {node: '>=12'} + "@esbuild/aix-ppc64@0.20.2": + resolution: + { + integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==, + } + engines: { node: ">=12" } + cpu: [ppc64] + os: [aix] + + "@esbuild/aix-ppc64@0.24.2": + resolution: + { + integrity: sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==, + } + engines: { node: ">=18" } cpu: [ppc64] os: [aix] - '@esbuild/aix-ppc64@0.24.2': - resolution: {integrity: sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==} - engines: {node: '>=18'} + "@esbuild/aix-ppc64@0.25.0": + resolution: + { + integrity: sha512-O7vun9Sf8DFjH2UtqK8Ku3LkquL9SZL8OLY1T5NZkA34+wG3OQF7cl4Ql8vdNzM6fzBbYfLaiRLIOZ+2FOCgBQ==, + } + engines: { node: ">=18" } cpu: [ppc64] os: [aix] - '@esbuild/android-arm64@0.18.7': - resolution: {integrity: sha512-o0VVztxJPkfDYbaU1tA1G1iwKiBh6Zt3bX5OdHDoITMFdRg+Mgdt3nHXMEtNlIjYA/Xn6hmlOYDHjJfQUduPuw==} - engines: {node: '>=12'} + "@esbuild/android-arm64@0.18.7": + resolution: + { + integrity: sha512-o0VVztxJPkfDYbaU1tA1G1iwKiBh6Zt3bX5OdHDoITMFdRg+Mgdt3nHXMEtNlIjYA/Xn6hmlOYDHjJfQUduPuw==, + } + engines: { node: ">=12" } + cpu: [arm64] + os: [android] + + "@esbuild/android-arm64@0.20.2": + resolution: + { + integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==, + } + engines: { node: ">=12" } cpu: [arm64] os: [android] - '@esbuild/android-arm64@0.20.2': - resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==} - engines: {node: '>=12'} + "@esbuild/android-arm64@0.24.2": + resolution: + { + integrity: sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==, + } + engines: { node: ">=18" } cpu: [arm64] os: [android] - '@esbuild/android-arm64@0.24.2': - resolution: {integrity: sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==} - engines: {node: '>=18'} + "@esbuild/android-arm64@0.25.0": + resolution: + { + integrity: sha512-grvv8WncGjDSyUBjN9yHXNt+cq0snxXbDxy5pJtzMKGmmpPxeAmAhWxXI+01lU5rwZomDgD3kJwulEnhTRUd6g==, + } + engines: { node: ">=18" } cpu: [arm64] os: [android] - '@esbuild/android-arm@0.18.7': - resolution: {integrity: sha512-nDQ7AC5WVKOqxaip/E5YbaRgnilBMsoGKjoGLCeCOYNePaBCBDwJsLfa2fn3FEtktiLaAF990W592avsHjJ/Vg==} - engines: {node: '>=12'} + "@esbuild/android-arm@0.18.7": + resolution: + { + integrity: sha512-nDQ7AC5WVKOqxaip/E5YbaRgnilBMsoGKjoGLCeCOYNePaBCBDwJsLfa2fn3FEtktiLaAF990W592avsHjJ/Vg==, + } + engines: { node: ">=12" } + cpu: [arm] + os: [android] + + "@esbuild/android-arm@0.20.2": + resolution: + { + integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==, + } + engines: { node: ">=12" } cpu: [arm] os: [android] - '@esbuild/android-arm@0.20.2': - resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==} - engines: {node: '>=12'} + "@esbuild/android-arm@0.24.2": + resolution: + { + integrity: sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==, + } + engines: { node: ">=18" } cpu: [arm] os: [android] - '@esbuild/android-arm@0.24.2': - resolution: {integrity: sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==} - engines: {node: '>=18'} + "@esbuild/android-arm@0.25.0": + resolution: + { + integrity: sha512-PTyWCYYiU0+1eJKmw21lWtC+d08JDZPQ5g+kFyxP0V+es6VPPSUhM6zk8iImp2jbV6GwjX4pap0JFbUQN65X1g==, + } + engines: { node: ">=18" } cpu: [arm] os: [android] - '@esbuild/android-x64@0.18.7': - resolution: {integrity: sha512-ga8Dtpb01GorCi1dk3jEwDk3AK/3F+cR5P+//Tl0ERL2K2pK/J1f3t8hcJ+RRt3UYBV/uTL9GEnx7touX0KRPQ==} - engines: {node: '>=12'} + "@esbuild/android-x64@0.18.7": + resolution: + { + integrity: sha512-ga8Dtpb01GorCi1dk3jEwDk3AK/3F+cR5P+//Tl0ERL2K2pK/J1f3t8hcJ+RRt3UYBV/uTL9GEnx7touX0KRPQ==, + } + engines: { node: ">=12" } cpu: [x64] os: [android] - '@esbuild/android-x64@0.20.2': - resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==} - engines: {node: '>=12'} + "@esbuild/android-x64@0.20.2": + resolution: + { + integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==, + } + engines: { node: ">=12" } cpu: [x64] os: [android] - '@esbuild/android-x64@0.24.2': - resolution: {integrity: sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==} - engines: {node: '>=18'} + "@esbuild/android-x64@0.24.2": + resolution: + { + integrity: sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==, + } + engines: { node: ">=18" } cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.18.7': - resolution: {integrity: sha512-FVDOdfgyGOOISpd0b+UtA6YNbu5+RzZu7kDztjVsA/iZhGnyxbCR/vZ+B2j5yxbMZ9j3iz5uFiHIq1sl6nrZ0Q==} - engines: {node: '>=12'} + "@esbuild/android-x64@0.25.0": + resolution: + { + integrity: sha512-m/ix7SfKG5buCnxasr52+LI78SQ+wgdENi9CqyCXwjVR2X4Jkz+BpC3le3AoBPYTC9NHklwngVXvbJ9/Akhrfg==, + } + engines: { node: ">=18" } + cpu: [x64] + os: [android] + + "@esbuild/darwin-arm64@0.18.7": + resolution: + { + integrity: sha512-FVDOdfgyGOOISpd0b+UtA6YNbu5+RzZu7kDztjVsA/iZhGnyxbCR/vZ+B2j5yxbMZ9j3iz5uFiHIq1sl6nrZ0Q==, + } + engines: { node: ">=12" } cpu: [arm64] os: [darwin] - '@esbuild/darwin-arm64@0.20.2': - resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==} - engines: {node: '>=12'} + "@esbuild/darwin-arm64@0.20.2": + resolution: + { + integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==, + } + engines: { node: ">=12" } cpu: [arm64] os: [darwin] - '@esbuild/darwin-arm64@0.24.2': - resolution: {integrity: sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==} - engines: {node: '>=18'} + "@esbuild/darwin-arm64@0.24.2": + resolution: + { + integrity: sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==, + } + engines: { node: ">=18" } cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.18.7': - resolution: {integrity: sha512-w7aeD1UjDFXqyrZQLBIPYGmLR+gJsl+7QSwmSz+nVrCZOB7cyWEkIjCF8s4inUD3ja3WtKUIqzX5S4qDnU5q7Q==} - engines: {node: '>=12'} + "@esbuild/darwin-arm64@0.25.0": + resolution: + { + integrity: sha512-mVwdUb5SRkPayVadIOI78K7aAnPamoeFR2bT5nszFUZ9P8UpK4ratOdYbZZXYSqPKMHfS1wdHCJk1P1EZpRdvw==, + } + engines: { node: ">=18" } + cpu: [arm64] + os: [darwin] + + "@esbuild/darwin-x64@0.18.7": + resolution: + { + integrity: sha512-w7aeD1UjDFXqyrZQLBIPYGmLR+gJsl+7QSwmSz+nVrCZOB7cyWEkIjCF8s4inUD3ja3WtKUIqzX5S4qDnU5q7Q==, + } + engines: { node: ">=12" } cpu: [x64] os: [darwin] - '@esbuild/darwin-x64@0.20.2': - resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==} - engines: {node: '>=12'} + "@esbuild/darwin-x64@0.20.2": + resolution: + { + integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==, + } + engines: { node: ">=12" } cpu: [x64] os: [darwin] - '@esbuild/darwin-x64@0.24.2': - resolution: {integrity: sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==} - engines: {node: '>=18'} + "@esbuild/darwin-x64@0.24.2": + resolution: + { + integrity: sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==, + } + engines: { node: ">=18" } cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.18.7': - resolution: {integrity: sha512-wKyySDdoKVOPn9eDci/b3eP3EJVAVXC3b2CiaHphhCKfh4n5pWLwj7Ue96anK1HnpcZ0Uti8Sw9xq3Im0earHA==} - engines: {node: '>=12'} + "@esbuild/darwin-x64@0.25.0": + resolution: + { + integrity: sha512-DgDaYsPWFTS4S3nWpFcMn/33ZZwAAeAFKNHNa1QN0rI4pUjgqf0f7ONmXf6d22tqTY+H9FNdgeaAa+YIFUn2Rg==, + } + engines: { node: ">=18" } + cpu: [x64] + os: [darwin] + + "@esbuild/freebsd-arm64@0.18.7": + resolution: + { + integrity: sha512-wKyySDdoKVOPn9eDci/b3eP3EJVAVXC3b2CiaHphhCKfh4n5pWLwj7Ue96anK1HnpcZ0Uti8Sw9xq3Im0earHA==, + } + engines: { node: ">=12" } cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-arm64@0.20.2': - resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==} - engines: {node: '>=12'} + "@esbuild/freebsd-arm64@0.20.2": + resolution: + { + integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==, + } + engines: { node: ">=12" } cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-arm64@0.24.2': - resolution: {integrity: sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==} - engines: {node: '>=18'} + "@esbuild/freebsd-arm64@0.24.2": + resolution: + { + integrity: sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==, + } + engines: { node: ">=18" } cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.18.7': - resolution: {integrity: sha512-rbfjbgSvzWRjQMKIntogK1d2oIAiA/ZVayXfK1WjcIIMQYLg74sAoT8CZBj30+bwn13YR0t6lgIxA1mJaS2Lhw==} - engines: {node: '>=12'} + "@esbuild/freebsd-arm64@0.25.0": + resolution: + { + integrity: sha512-VN4ocxy6dxefN1MepBx/iD1dH5K8qNtNe227I0mnTRjry8tj5MRk4zprLEdG8WPyAPb93/e4pSgi1SoHdgOa4w==, + } + engines: { node: ">=18" } + cpu: [arm64] + os: [freebsd] + + "@esbuild/freebsd-x64@0.18.7": + resolution: + { + integrity: sha512-rbfjbgSvzWRjQMKIntogK1d2oIAiA/ZVayXfK1WjcIIMQYLg74sAoT8CZBj30+bwn13YR0t6lgIxA1mJaS2Lhw==, + } + engines: { node: ">=12" } + cpu: [x64] + os: [freebsd] + + "@esbuild/freebsd-x64@0.20.2": + resolution: + { + integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==, + } + engines: { node: ">=12" } cpu: [x64] os: [freebsd] - '@esbuild/freebsd-x64@0.20.2': - resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==} - engines: {node: '>=12'} + "@esbuild/freebsd-x64@0.24.2": + resolution: + { + integrity: sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==, + } + engines: { node: ">=18" } cpu: [x64] os: [freebsd] - '@esbuild/freebsd-x64@0.24.2': - resolution: {integrity: sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==} - engines: {node: '>=18'} + "@esbuild/freebsd-x64@0.25.0": + resolution: + { + integrity: sha512-mrSgt7lCh07FY+hDD1TxiTyIHyttn6vnjesnPoVDNmDfOmggTLXRv8Id5fNZey1gl/V2dyVK1VXXqVsQIiAk+A==, + } + engines: { node: ">=18" } cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.18.7': - resolution: {integrity: sha512-cwfxKYroaD5BZ42NsfxdVU1issD2NxcuJHlCNsN5LtWq+kZMpwmIVDCJxKlgLIG7zH/4yq8lTuZJurxq058GsA==} - engines: {node: '>=12'} + "@esbuild/linux-arm64@0.18.7": + resolution: + { + integrity: sha512-cwfxKYroaD5BZ42NsfxdVU1issD2NxcuJHlCNsN5LtWq+kZMpwmIVDCJxKlgLIG7zH/4yq8lTuZJurxq058GsA==, + } + engines: { node: ">=12" } + cpu: [arm64] + os: [linux] + + "@esbuild/linux-arm64@0.20.2": + resolution: + { + integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==, + } + engines: { node: ">=12" } cpu: [arm64] os: [linux] - '@esbuild/linux-arm64@0.20.2': - resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==} - engines: {node: '>=12'} + "@esbuild/linux-arm64@0.24.2": + resolution: + { + integrity: sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==, + } + engines: { node: ">=18" } cpu: [arm64] os: [linux] - '@esbuild/linux-arm64@0.24.2': - resolution: {integrity: sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==} - engines: {node: '>=18'} + "@esbuild/linux-arm64@0.25.0": + resolution: + { + integrity: sha512-9QAQjTWNDM/Vk2bgBl17yWuZxZNQIF0OUUuPZRKoDtqF2k4EtYbpyiG5/Dk7nqeK6kIJWPYldkOcBqjXjrUlmg==, + } + engines: { node: ">=18" } cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.18.7': - resolution: {integrity: sha512-GpUBqqJnQ+7qdb7NqKNVj7TgD2JnLrEdzPtatPow77Me/EQ01GE1tHKZLePqhf5thdLDb5Se2Kcf4D9WTbSjmw==} - engines: {node: '>=12'} + "@esbuild/linux-arm@0.18.7": + resolution: + { + integrity: sha512-GpUBqqJnQ+7qdb7NqKNVj7TgD2JnLrEdzPtatPow77Me/EQ01GE1tHKZLePqhf5thdLDb5Se2Kcf4D9WTbSjmw==, + } + engines: { node: ">=12" } + cpu: [arm] + os: [linux] + + "@esbuild/linux-arm@0.20.2": + resolution: + { + integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==, + } + engines: { node: ">=12" } cpu: [arm] os: [linux] - '@esbuild/linux-arm@0.20.2': - resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==} - engines: {node: '>=12'} + "@esbuild/linux-arm@0.24.2": + resolution: + { + integrity: sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==, + } + engines: { node: ">=18" } cpu: [arm] os: [linux] - '@esbuild/linux-arm@0.24.2': - resolution: {integrity: sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==} - engines: {node: '>=18'} + "@esbuild/linux-arm@0.25.0": + resolution: + { + integrity: sha512-vkB3IYj2IDo3g9xX7HqhPYxVkNQe8qTK55fraQyTzTX/fxaDtXiEnavv9geOsonh2Fd2RMB+i5cbhu2zMNWJwg==, + } + engines: { node: ">=18" } cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.18.7': - resolution: {integrity: sha512-SsvsGStwbArBcB/XNh+2MvUtgOLp0CR6Hn1PBWcdApCuAaMibHCDyzHS06+u/YOD1UpeXFHJZphix61HeVMH/w==} - engines: {node: '>=12'} + "@esbuild/linux-ia32@0.18.7": + resolution: + { + integrity: sha512-SsvsGStwbArBcB/XNh+2MvUtgOLp0CR6Hn1PBWcdApCuAaMibHCDyzHS06+u/YOD1UpeXFHJZphix61HeVMH/w==, + } + engines: { node: ">=12" } cpu: [ia32] os: [linux] - '@esbuild/linux-ia32@0.20.2': - resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==} - engines: {node: '>=12'} + "@esbuild/linux-ia32@0.20.2": + resolution: + { + integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==, + } + engines: { node: ">=12" } cpu: [ia32] os: [linux] - '@esbuild/linux-ia32@0.24.2': - resolution: {integrity: sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==} - engines: {node: '>=18'} + "@esbuild/linux-ia32@0.24.2": + resolution: + { + integrity: sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==, + } + engines: { node: ">=18" } cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.18.7': - resolution: {integrity: sha512-WOqQ0eaWGE/e9vmbxFT2exbWuXxHuG8ld0fN7oX5f0v7W6oveUIF4DLJYVae93t1+Icv5R0NBo8wv/o4hEvxBQ==} - engines: {node: '>=12'} + "@esbuild/linux-ia32@0.25.0": + resolution: + { + integrity: sha512-43ET5bHbphBegyeqLb7I1eYn2P/JYGNmzzdidq/w0T8E2SsYL1U6un2NFROFRg1JZLTzdCoRomg8Rvf9M6W6Gg==, + } + engines: { node: ">=18" } + cpu: [ia32] + os: [linux] + + "@esbuild/linux-loong64@0.18.7": + resolution: + { + integrity: sha512-WOqQ0eaWGE/e9vmbxFT2exbWuXxHuG8ld0fN7oX5f0v7W6oveUIF4DLJYVae93t1+Icv5R0NBo8wv/o4hEvxBQ==, + } + engines: { node: ">=12" } cpu: [loong64] os: [linux] - '@esbuild/linux-loong64@0.20.2': - resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==} - engines: {node: '>=12'} + "@esbuild/linux-loong64@0.20.2": + resolution: + { + integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==, + } + engines: { node: ">=12" } cpu: [loong64] os: [linux] - '@esbuild/linux-loong64@0.24.2': - resolution: {integrity: sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==} - engines: {node: '>=18'} + "@esbuild/linux-loong64@0.24.2": + resolution: + { + integrity: sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==, + } + engines: { node: ">=18" } cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.18.7': - resolution: {integrity: sha512-/dKQ3OLr2Tmj0kuf4ZJioD+qnADUEJSBaiuDbk8v5602HnNNBSGHPrEB6S8PSb8y8jWsX9MMnxqk5KpLTf86OQ==} - engines: {node: '>=12'} + "@esbuild/linux-loong64@0.25.0": + resolution: + { + integrity: sha512-fC95c/xyNFueMhClxJmeRIj2yrSMdDfmqJnyOY4ZqsALkDrrKJfIg5NTMSzVBr5YW1jf+l7/cndBfP3MSDpoHw==, + } + engines: { node: ">=18" } + cpu: [loong64] + os: [linux] + + "@esbuild/linux-mips64el@0.18.7": + resolution: + { + integrity: sha512-/dKQ3OLr2Tmj0kuf4ZJioD+qnADUEJSBaiuDbk8v5602HnNNBSGHPrEB6S8PSb8y8jWsX9MMnxqk5KpLTf86OQ==, + } + engines: { node: ">=12" } cpu: [mips64el] os: [linux] - '@esbuild/linux-mips64el@0.20.2': - resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==} - engines: {node: '>=12'} + "@esbuild/linux-mips64el@0.20.2": + resolution: + { + integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==, + } + engines: { node: ">=12" } cpu: [mips64el] os: [linux] - '@esbuild/linux-mips64el@0.24.2': - resolution: {integrity: sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==} - engines: {node: '>=18'} + "@esbuild/linux-mips64el@0.24.2": + resolution: + { + integrity: sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==, + } + engines: { node: ">=18" } cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.18.7': - resolution: {integrity: sha512-x/k1+daIqiGJt0Yhr5llFJ/zkRg1XAqcS2ntAYzS3pHogO8oIyc+LjsINgVyFCeFMFUZ9Ae9W5z2Ib05bMum3g==} - engines: {node: '>=12'} + "@esbuild/linux-mips64el@0.25.0": + resolution: + { + integrity: sha512-nkAMFju7KDW73T1DdH7glcyIptm95a7Le8irTQNO/qtkoyypZAnjchQgooFUDQhNAy4iu08N79W4T4pMBwhPwQ==, + } + engines: { node: ">=18" } + cpu: [mips64el] + os: [linux] + + "@esbuild/linux-ppc64@0.18.7": + resolution: + { + integrity: sha512-x/k1+daIqiGJt0Yhr5llFJ/zkRg1XAqcS2ntAYzS3pHogO8oIyc+LjsINgVyFCeFMFUZ9Ae9W5z2Ib05bMum3g==, + } + engines: { node: ">=12" } + cpu: [ppc64] + os: [linux] + + "@esbuild/linux-ppc64@0.20.2": + resolution: + { + integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==, + } + engines: { node: ">=12" } cpu: [ppc64] os: [linux] - '@esbuild/linux-ppc64@0.20.2': - resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==} - engines: {node: '>=12'} + "@esbuild/linux-ppc64@0.24.2": + resolution: + { + integrity: sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==, + } + engines: { node: ">=18" } cpu: [ppc64] os: [linux] - '@esbuild/linux-ppc64@0.24.2': - resolution: {integrity: sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==} - engines: {node: '>=18'} + "@esbuild/linux-ppc64@0.25.0": + resolution: + { + integrity: sha512-NhyOejdhRGS8Iwv+KKR2zTq2PpysF9XqY+Zk77vQHqNbo/PwZCzB5/h7VGuREZm1fixhs4Q/qWRSi5zmAiO4Fw==, + } + engines: { node: ">=18" } cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.18.7': - resolution: {integrity: sha512-LegTDzK9gL/sTkiZUGYLigTISwppZJvQL3MRmFgXgHrj3IzdWkPgMwEtOItK3YiFzhBSSNyKA0mSKEg4UuK8JQ==} - engines: {node: '>=12'} + "@esbuild/linux-riscv64@0.18.7": + resolution: + { + integrity: sha512-LegTDzK9gL/sTkiZUGYLigTISwppZJvQL3MRmFgXgHrj3IzdWkPgMwEtOItK3YiFzhBSSNyKA0mSKEg4UuK8JQ==, + } + engines: { node: ">=12" } + cpu: [riscv64] + os: [linux] + + "@esbuild/linux-riscv64@0.20.2": + resolution: + { + integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==, + } + engines: { node: ">=12" } cpu: [riscv64] os: [linux] - '@esbuild/linux-riscv64@0.20.2': - resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==} - engines: {node: '>=12'} + "@esbuild/linux-riscv64@0.24.2": + resolution: + { + integrity: sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==, + } + engines: { node: ">=18" } cpu: [riscv64] os: [linux] - '@esbuild/linux-riscv64@0.24.2': - resolution: {integrity: sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==} - engines: {node: '>=18'} + "@esbuild/linux-riscv64@0.25.0": + resolution: + { + integrity: sha512-5S/rbP5OY+GHLC5qXp1y/Mx//e92L1YDqkiBbO9TQOvuFXM+iDqUNG5XopAnXoRH3FjIUDkeGcY1cgNvnXp/kA==, + } + engines: { node: ">=18" } cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.18.7': - resolution: {integrity: sha512-fjBl45O8ivc3Nl14hdGpbHoVtdHnYGsLpwnlv2rNyb5NOsgY3Y8EhVe/fqR9ndHgO4eL68knKxkrRveEJq+v1g==} - engines: {node: '>=12'} + "@esbuild/linux-s390x@0.18.7": + resolution: + { + integrity: sha512-fjBl45O8ivc3Nl14hdGpbHoVtdHnYGsLpwnlv2rNyb5NOsgY3Y8EhVe/fqR9ndHgO4eL68knKxkrRveEJq+v1g==, + } + engines: { node: ">=12" } cpu: [s390x] os: [linux] - '@esbuild/linux-s390x@0.20.2': - resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==} - engines: {node: '>=12'} + "@esbuild/linux-s390x@0.20.2": + resolution: + { + integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==, + } + engines: { node: ">=12" } cpu: [s390x] os: [linux] - '@esbuild/linux-s390x@0.24.2': - resolution: {integrity: sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==} - engines: {node: '>=18'} + "@esbuild/linux-s390x@0.24.2": + resolution: + { + integrity: sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==, + } + engines: { node: ">=18" } cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.18.7': - resolution: {integrity: sha512-apYLJsg3wd3hW8nEt7H++8c8rTDvwXxX7h7YeI89g1RDPCT2QSXTO/xT1BCvFa/BFFoau+yvepQg2o5556FIWQ==} - engines: {node: '>=12'} + "@esbuild/linux-s390x@0.25.0": + resolution: + { + integrity: sha512-XM2BFsEBz0Fw37V0zU4CXfcfuACMrppsMFKdYY2WuTS3yi8O1nFOhil/xhKTmE1nPmVyvQJjJivgDT+xh8pXJA==, + } + engines: { node: ">=18" } + cpu: [s390x] + os: [linux] + + "@esbuild/linux-x64@0.18.7": + resolution: + { + integrity: sha512-apYLJsg3wd3hW8nEt7H++8c8rTDvwXxX7h7YeI89g1RDPCT2QSXTO/xT1BCvFa/BFFoau+yvepQg2o5556FIWQ==, + } + engines: { node: ">=12" } + cpu: [x64] + os: [linux] + + "@esbuild/linux-x64@0.20.2": + resolution: + { + integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==, + } + engines: { node: ">=12" } cpu: [x64] os: [linux] - '@esbuild/linux-x64@0.20.2': - resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==} - engines: {node: '>=12'} + "@esbuild/linux-x64@0.24.2": + resolution: + { + integrity: sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==, + } + engines: { node: ">=18" } cpu: [x64] os: [linux] - '@esbuild/linux-x64@0.24.2': - resolution: {integrity: sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==} - engines: {node: '>=18'} + "@esbuild/linux-x64@0.25.0": + resolution: + { + integrity: sha512-9yl91rHw/cpwMCNytUDxwj2XjFpxML0y9HAOH9pNVQDpQrBxHy01Dx+vaMu0N1CKa/RzBD2hB4u//nfc+Sd3Cw==, + } + engines: { node: ">=18" } cpu: [x64] os: [linux] - '@esbuild/netbsd-arm64@0.24.2': - resolution: {integrity: sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==} - engines: {node: '>=18'} + "@esbuild/netbsd-arm64@0.24.2": + resolution: + { + integrity: sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==, + } + engines: { node: ">=18" } + cpu: [arm64] + os: [netbsd] + + "@esbuild/netbsd-arm64@0.25.0": + resolution: + { + integrity: sha512-RuG4PSMPFfrkH6UwCAqBzauBWTygTvb1nxWasEJooGSJ/NwRw7b2HOwyRTQIU97Hq37l3npXoZGYMy3b3xYvPw==, + } + engines: { node: ">=18" } cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-x64@0.18.7': - resolution: {integrity: sha512-f82sUnrzdoW4MiiCDn1G3RSsPH8+no+okDhkHgGTGa+5F5wZCyxdXxzR6ctsiimvyPn9FIu9Zs+MesVsBRwyTw==} - engines: {node: '>=12'} + "@esbuild/netbsd-x64@0.18.7": + resolution: + { + integrity: sha512-f82sUnrzdoW4MiiCDn1G3RSsPH8+no+okDhkHgGTGa+5F5wZCyxdXxzR6ctsiimvyPn9FIu9Zs+MesVsBRwyTw==, + } + engines: { node: ">=12" } + cpu: [x64] + os: [netbsd] + + "@esbuild/netbsd-x64@0.20.2": + resolution: + { + integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==, + } + engines: { node: ">=12" } cpu: [x64] os: [netbsd] - '@esbuild/netbsd-x64@0.20.2': - resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==} - engines: {node: '>=12'} + "@esbuild/netbsd-x64@0.24.2": + resolution: + { + integrity: sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==, + } + engines: { node: ">=18" } cpu: [x64] os: [netbsd] - '@esbuild/netbsd-x64@0.24.2': - resolution: {integrity: sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==} - engines: {node: '>=18'} + "@esbuild/netbsd-x64@0.25.0": + resolution: + { + integrity: sha512-jl+qisSB5jk01N5f7sPCsBENCOlPiS/xptD5yxOx2oqQfyourJwIKLRA2yqWdifj3owQZCL2sn6o08dBzZGQzA==, + } + engines: { node: ">=18" } cpu: [x64] os: [netbsd] - '@esbuild/openbsd-arm64@0.24.2': - resolution: {integrity: sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==} - engines: {node: '>=18'} + "@esbuild/openbsd-arm64@0.24.2": + resolution: + { + integrity: sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==, + } + engines: { node: ">=18" } cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-x64@0.18.7': - resolution: {integrity: sha512-1TNDfpFYhIloHeqSRbJFjHFMYtTJWgqI2+S9uCLVCWrADLl5tCe8vQKDfkM7Afz/lZyqi6qEX/Eg2KA5S7FcNQ==} - engines: {node: '>=12'} + "@esbuild/openbsd-arm64@0.25.0": + resolution: + { + integrity: sha512-21sUNbq2r84YE+SJDfaQRvdgznTD8Xc0oc3p3iW/a1EVWeNj/SdUCbm5U0itZPQYRuRTW20fPMWMpcrciH2EJw==, + } + engines: { node: ">=18" } + cpu: [arm64] + os: [openbsd] + + "@esbuild/openbsd-x64@0.18.7": + resolution: + { + integrity: sha512-1TNDfpFYhIloHeqSRbJFjHFMYtTJWgqI2+S9uCLVCWrADLl5tCe8vQKDfkM7Afz/lZyqi6qEX/Eg2KA5S7FcNQ==, + } + engines: { node: ">=12" } cpu: [x64] os: [openbsd] - '@esbuild/openbsd-x64@0.20.2': - resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==} - engines: {node: '>=12'} + "@esbuild/openbsd-x64@0.20.2": + resolution: + { + integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==, + } + engines: { node: ">=12" } cpu: [x64] os: [openbsd] - '@esbuild/openbsd-x64@0.24.2': - resolution: {integrity: sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==} - engines: {node: '>=18'} + "@esbuild/openbsd-x64@0.24.2": + resolution: + { + integrity: sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==, + } + engines: { node: ">=18" } cpu: [x64] os: [openbsd] - '@esbuild/sunos-x64@0.18.7': - resolution: {integrity: sha512-lBhsHaM6EYCmzQCj+xeFev+dgqTgpSRqF7qXrxp5V4waFuidTBbWgqSXY5rsLRNLOyMMCh1cA+RqF8UL30oOJQ==} - engines: {node: '>=12'} + "@esbuild/openbsd-x64@0.25.0": + resolution: + { + integrity: sha512-2gwwriSMPcCFRlPlKx3zLQhfN/2WjJ2NSlg5TKLQOJdV0mSxIcYNTMhk3H3ulL/cak+Xj0lY1Ym9ysDV1igceg==, + } + engines: { node: ">=18" } + cpu: [x64] + os: [openbsd] + + "@esbuild/sunos-x64@0.18.7": + resolution: + { + integrity: sha512-lBhsHaM6EYCmzQCj+xeFev+dgqTgpSRqF7qXrxp5V4waFuidTBbWgqSXY5rsLRNLOyMMCh1cA+RqF8UL30oOJQ==, + } + engines: { node: ">=12" } + cpu: [x64] + os: [sunos] + + "@esbuild/sunos-x64@0.20.2": + resolution: + { + integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==, + } + engines: { node: ">=12" } cpu: [x64] os: [sunos] - '@esbuild/sunos-x64@0.20.2': - resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==} - engines: {node: '>=12'} + "@esbuild/sunos-x64@0.24.2": + resolution: + { + integrity: sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==, + } + engines: { node: ">=18" } cpu: [x64] os: [sunos] - '@esbuild/sunos-x64@0.24.2': - resolution: {integrity: sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==} - engines: {node: '>=18'} + "@esbuild/sunos-x64@0.25.0": + resolution: + { + integrity: sha512-bxI7ThgLzPrPz484/S9jLlvUAHYMzy6I0XiU1ZMeAEOBcS0VePBFxh1JjTQt3Xiat5b6Oh4x7UC7IwKQKIJRIg==, + } + engines: { node: ">=18" } cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.18.7': - resolution: {integrity: sha512-p9ipv7rPKitXAAeufg5BzmyYZHZtFfrLGUX15+AxpTQqSZDAZd2wIusaOW5oONTf8RB53ujIqQw7W0QnZMuiUw==} - engines: {node: '>=12'} + "@esbuild/win32-arm64@0.18.7": + resolution: + { + integrity: sha512-p9ipv7rPKitXAAeufg5BzmyYZHZtFfrLGUX15+AxpTQqSZDAZd2wIusaOW5oONTf8RB53ujIqQw7W0QnZMuiUw==, + } + engines: { node: ">=12" } cpu: [arm64] os: [win32] - '@esbuild/win32-arm64@0.20.2': - resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==} - engines: {node: '>=12'} + "@esbuild/win32-arm64@0.20.2": + resolution: + { + integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==, + } + engines: { node: ">=12" } cpu: [arm64] os: [win32] - '@esbuild/win32-arm64@0.24.2': - resolution: {integrity: sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==} - engines: {node: '>=18'} + "@esbuild/win32-arm64@0.24.2": + resolution: + { + integrity: sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==, + } + engines: { node: ">=18" } cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.18.7': - resolution: {integrity: sha512-WmNxuE+j1wUT2rK+e1Oakx3zobS1rPpQudPytGM4nxXEGv0gpXEvnZnrykRwriNFbGVCwFJoE4txayjW76LsCw==} - engines: {node: '>=12'} + "@esbuild/win32-arm64@0.25.0": + resolution: + { + integrity: sha512-ZUAc2YK6JW89xTbXvftxdnYy3m4iHIkDtK3CLce8wg8M2L+YZhIvO1DKpxrd0Yr59AeNNkTiic9YLf6FTtXWMw==, + } + engines: { node: ">=18" } + cpu: [arm64] + os: [win32] + + "@esbuild/win32-ia32@0.18.7": + resolution: + { + integrity: sha512-WmNxuE+j1wUT2rK+e1Oakx3zobS1rPpQudPytGM4nxXEGv0gpXEvnZnrykRwriNFbGVCwFJoE4txayjW76LsCw==, + } + engines: { node: ">=12" } + cpu: [ia32] + os: [win32] + + "@esbuild/win32-ia32@0.20.2": + resolution: + { + integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==, + } + engines: { node: ">=12" } cpu: [ia32] os: [win32] - '@esbuild/win32-ia32@0.20.2': - resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==} - engines: {node: '>=12'} + "@esbuild/win32-ia32@0.24.2": + resolution: + { + integrity: sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==, + } + engines: { node: ">=18" } cpu: [ia32] os: [win32] - '@esbuild/win32-ia32@0.24.2': - resolution: {integrity: sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==} - engines: {node: '>=18'} + "@esbuild/win32-ia32@0.25.0": + resolution: + { + integrity: sha512-eSNxISBu8XweVEWG31/JzjkIGbGIJN/TrRoiSVZwZ6pkC6VX4Im/WV2cz559/TXLcYbcrDN8JtKgd9DJVIo8GA==, + } + engines: { node: ">=18" } cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.18.7': - resolution: {integrity: sha512-6RENfAwwL6dxQk/V1PxO/ejYRiOUVUaHi99hP3Dso/38jfNKFzU6YSSR/haJGNV/2wAHIgBMROQodna0IejAuA==} - engines: {node: '>=12'} + "@esbuild/win32-x64@0.18.7": + resolution: + { + integrity: sha512-6RENfAwwL6dxQk/V1PxO/ejYRiOUVUaHi99hP3Dso/38jfNKFzU6YSSR/haJGNV/2wAHIgBMROQodna0IejAuA==, + } + engines: { node: ">=12" } + cpu: [x64] + os: [win32] + + "@esbuild/win32-x64@0.20.2": + resolution: + { + integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==, + } + engines: { node: ">=12" } cpu: [x64] os: [win32] - '@esbuild/win32-x64@0.20.2': - resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==} - engines: {node: '>=12'} + "@esbuild/win32-x64@0.24.2": + resolution: + { + integrity: sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==, + } + engines: { node: ">=18" } cpu: [x64] os: [win32] - '@esbuild/win32-x64@0.24.2': - resolution: {integrity: sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==} - engines: {node: '>=18'} + "@esbuild/win32-x64@0.25.0": + resolution: + { + integrity: sha512-ZENoHJBxA20C2zFzh6AI4fT6RraMzjYw4xKWemRTRmRVtN9c5DcH9r/f2ihEkMjOW5eGgrwCslG/+Y/3bL+DHQ==, + } + engines: { node: ">=18" } cpu: [x64] os: [win32] - '@eslint-community/eslint-utils@4.4.0': - resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + "@eslint-community/eslint-utils@4.4.1": + resolution: + { + integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==, + } + 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/eslintrc@2.1.4': - resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - '@eslint/js@8.57.1': - resolution: {integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - '@expressive-code/core@0.37.1': - resolution: {integrity: sha512-nYgsK3uxK4W46v0IolHdB5+T6MQfy5weTpyB3kbzr11ur2UKUy2oHGhbWa+hRThfYEF1PM+TFxMtWU7amcjF8A==} - - '@expressive-code/core@0.38.3': - resolution: {integrity: sha512-s0/OtdRpBONwcn23O8nVwDNQqpBGKscysejkeBkwlIeHRLZWgiTVrusT5Idrdz1d8cW5wRk9iGsAIQmwDPXgJg==} - - '@expressive-code/plugin-collapsible-sections@0.37.1': - resolution: {integrity: sha512-9YGGQRzQ35iRszs0YCyaJ9kLL78NrZAvLRB6BOb/IUJT221IF/Esy9hAWORuMVysSOsr4BnZ9+FsPmqvvm7V3w==} - - '@expressive-code/plugin-frames@0.37.1': - resolution: {integrity: sha512-U1Pk8qmSlGaIvNpmo42pxVS+ROVkPUPtAgVR5OU9261zKw6r/MN7b5dCDE5B6QBqRi7iOS7/DQ/zYTzHcIQJQw==} - - '@expressive-code/plugin-frames@0.38.3': - resolution: {integrity: sha512-qL2oC6FplmHNQfZ8ZkTR64/wKo9x0c8uP2WDftR/ydwN/yhe1ed7ZWYb8r3dezxsls+tDokCnN4zYR594jbpvg==} - - '@expressive-code/plugin-line-numbers@0.37.1': - resolution: {integrity: sha512-Tg8ZpJUwB1T4v3BKRjo5iqDslbOtXy7vI59NNq5K5JvvFs7j3FLHtxNQjDwown3sEDRTOFc1Yw6VulZ9afJ+yA==} - - '@expressive-code/plugin-shiki@0.37.1': - resolution: {integrity: sha512-zzrX0kn6JMxm+0fKWpP1W8F3bLK8PYIUDvM5UUEplGjL5Z0otBqycHWalucl0Mk9aKX1UThXaUTuCQEVOkNSxg==} - - '@expressive-code/plugin-text-markers@0.37.1': - resolution: {integrity: sha512-AjZG/SyE41uWcpAae0w9DVtSii/YkdhOsjl6godLsI8vRGBdUdYvgoCebjb33gySa7g+9NcWxGp3oEKCBut1wA==} - - '@floating-ui/core@1.6.8': - resolution: {integrity: sha512-7XJ9cPU+yI2QeLS+FCSlqNFZJq8arvswefkZrYI1yQBbftw6FyrZOxYSh+9S7z7TpeWlRt9zJ5IhM1WIL334jA==} - - '@floating-ui/dom@1.6.11': - resolution: {integrity: sha512-qkMCxSR24v2vGkhYDo/UzxfJN3D4syqSjyuTFz6C7XcpU1pASPRieNI0Kj5VP3/503mOfYiGY891ugBX1GlABQ==} - - '@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/jetbrains-mono@5.1.2': - resolution: {integrity: sha512-syGEJ/N4FFisAXegxtbe1etYpo2T630dqCbYufPf7Dli/hMKSoSUIm3wK4q5RsGFRxWno1WecfnsgZA1jRK0EQ==} - - '@fontsource-variable/lexend@5.1.2': - resolution: {integrity: sha512-5gY4aYZXvhCNrpqa7f/JmRnUyRMAPqGdE0IXicbqvusj+jEwuj1JuiLPl61hTbGntQP+sMZsDHECBhlrEY/8iQ==} - - '@humanwhocodes/config-array@0.13.0': - resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==} - engines: {node: '>=10.10.0'} - deprecated: Use @eslint/config-array instead - - '@humanwhocodes/module-importer@1.0.1': - resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} - engines: {node: '>=12.22'} - - '@humanwhocodes/object-schema@2.0.3': - resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} - deprecated: Use @eslint/object-schema instead - - '@iconify/types@2.0.0': - resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} - - '@iconify/utils@2.3.0': - resolution: {integrity: sha512-GmQ78prtwYW6EtzXRU1rY+KwOKfz32PD7iJh6Iyqw68GiKuoZ2A6pRtzWONz5VQJbp50mEjXh/7NkumtrAgRKA==} - - '@internationalized/date@3.5.6': - resolution: {integrity: sha512-jLxQjefH9VI5P9UQuqB6qNKnvFt1Ky1TPIzHGsIlCi7sZZoMR8SdYbBGRvM0y+Jtb+ez4ieBzmiAUcpmPYpyOw==} - - '@internationalized/number@3.5.4': - resolution: {integrity: sha512-h9huwWjNqYyE2FXZZewWqmCdkw1HeFds5q4Siuoms3hUQC5iPJK3aBmkFZoDSLN4UD0Bl8G22L/NdHpeOr+/7A==} - - '@ioredis/commands@1.2.0': - resolution: {integrity: sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==} - - '@isaacs/cliui@8.0.2': - resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} - engines: {node: '>=12'} - - '@isaacs/fs-minipass@4.0.1': - 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.5': - resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} - engines: {node: '>=6.0.0'} - - '@jridgewell/resolve-uri@3.1.2': - resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} - engines: {node: '>=6.0.0'} - - '@jridgewell/set-array@1.2.1': - resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} - engines: {node: '>=6.0.0'} - - '@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/trace-mapping@0.3.25': - resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} - - '@kobalte/core@0.13.9': - resolution: {integrity: sha512-TkeSpgNy7I5k8jwjqT9CK3teAxN0aFb3yyL9ODb06JVYMwXIk+UKrizoAF1ahLUP85lKnxv44B4Y5cXkHShgqw==} + "@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.19.2": + resolution: + { + integrity: sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==, + } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + + "@eslint/config-helpers@0.1.0": + resolution: + { + integrity: sha512-kLrdPDJE1ckPo94kmPPf9Hfd0DU0Jw6oKYrhe+pwSC0iTUInmTa+w6fw8sGgcfkFJGNdWOUeOaDM4quW4a7OkA==, + } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + + "@eslint/core@0.12.0": + resolution: + { + integrity: sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg==, + } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + + "@eslint/eslintrc@3.3.0": + resolution: + { + integrity: sha512-yaVPAiNAalnCZedKLdR21GOGILMLKPyqSLWaAjQFvYA2i/ciDi8ArYVr69Anohb6cH2Ukhqti4aFnYyPm8wdwQ==, + } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + + "@eslint/js@9.22.0": + resolution: + { + integrity: sha512-vLFajx9o8d1/oL2ZkpMYbkLv8nDB6yaIwFNt7nI4+I80U/z03SxmfOMsLbvWr3p7C+Wnoh//aOu2pQW8cS0HCQ==, + } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + + "@eslint/object-schema@2.1.6": + resolution: + { + integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==, + } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + + "@eslint/plugin-kit@0.2.7": + resolution: + { + integrity: sha512-JubJ5B2pJ4k4yGxaNLdbjrnk9d/iDz6/q8wOilpIowd6PJPgaxCuHBnBszq7Ce2TyMrywm5r4PnKm6V3iiZF+g==, + } + 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/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-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-text-markers@0.40.2": + resolution: + { + integrity: sha512-/XoLjD67K9nfM4TgDlXAExzMJp6ewFKxNpfUw4F7q5Ecy+IU3/9zQQG/O70Zy+RxYTwKGw2MA9kd7yelsxnSmw==, + } + + "@floating-ui/core@1.6.8": + resolution: + { + integrity: sha512-7XJ9cPU+yI2QeLS+FCSlqNFZJq8arvswefkZrYI1yQBbftw6FyrZOxYSh+9S7z7TpeWlRt9zJ5IhM1WIL334jA==, + } + + "@floating-ui/dom@1.6.11": + resolution: + { + integrity: sha512-qkMCxSR24v2vGkhYDo/UzxfJN3D4syqSjyuTFz6C7XcpU1pASPRieNI0Kj5VP3/503mOfYiGY891ugBX1GlABQ==, + } + + "@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/jetbrains-mono@5.1.2": + resolution: + { + integrity: sha512-syGEJ/N4FFisAXegxtbe1etYpo2T630dqCbYufPf7Dli/hMKSoSUIm3wK4q5RsGFRxWno1WecfnsgZA1jRK0EQ==, + } + + "@fontsource-variable/lexend@5.1.2": + resolution: + { + integrity: sha512-5gY4aYZXvhCNrpqa7f/JmRnUyRMAPqGdE0IXicbqvusj+jEwuj1JuiLPl61hTbGntQP+sMZsDHECBhlrEY/8iQ==, + } + + "@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==, + } + 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.2": + resolution: + { + integrity: sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==, + } + engines: { node: ">=18.18" } + + "@iconify/types@2.0.0": + resolution: + { + integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==, + } + + "@iconify/utils@2.3.0": + resolution: + { + integrity: sha512-GmQ78prtwYW6EtzXRU1rY+KwOKfz32PD7iJh6Iyqw68GiKuoZ2A6pRtzWONz5VQJbp50mEjXh/7NkumtrAgRKA==, + } + + "@internationalized/date@3.5.6": + resolution: + { + integrity: sha512-jLxQjefH9VI5P9UQuqB6qNKnvFt1Ky1TPIzHGsIlCi7sZZoMR8SdYbBGRvM0y+Jtb+ez4ieBzmiAUcpmPYpyOw==, + } + + "@internationalized/number@3.5.4": + resolution: + { + integrity: sha512-h9huwWjNqYyE2FXZZewWqmCdkw1HeFds5q4Siuoms3hUQC5iPJK3aBmkFZoDSLN4UD0Bl8G22L/NdHpeOr+/7A==, + } + + "@ioredis/commands@1.2.0": + resolution: + { + integrity: sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==, + } + + "@isaacs/cliui@8.0.2": + resolution: + { + integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==, + } + engines: { node: ">=12" } + + "@isaacs/fs-minipass@4.0.1": + 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.5": + resolution: + { + integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==, + } + engines: { node: ">=6.0.0" } + + "@jridgewell/resolve-uri@3.1.2": + resolution: + { + integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==, + } + engines: { node: ">=6.0.0" } + + "@jridgewell/set-array@1.2.1": + resolution: + { + integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==, + } + engines: { node: ">=6.0.0" } + + "@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/trace-mapping@0.3.25": + resolution: + { + integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==, + } + + "@kobalte/core@0.13.9": + resolution: + { + integrity: sha512-TkeSpgNy7I5k8jwjqT9CK3teAxN0aFb3yyL9ODb06JVYMwXIk+UKrizoAF1ahLUP85lKnxv44B4Y5cXkHShgqw==, + } peerDependencies: solid-js: ^1.8.15 - '@kobalte/solidbase@0.0.16': - resolution: {integrity: sha512-wHssmYhlmWxc4OrPpQ/b5OQUIJwSVlMHvb48kfMWr48AaAYAwjcTLg6WSFbB44UV5UEuTD2Ye/Xc1qchzXZRxw==} + "@kobalte/solidbase@0.0.23": + resolution: + { + integrity: sha512-2mujpnmLxR40veEwJnY3dh1+xLGhZ30qJe2MLnp3oyczp4nF8tVlCTAiMGCx69YcFa0jcTm9ajl0kR6Awo7fjQ==, + } peerDependencies: - '@solidjs/start': ^1.0.8 + "@solidjs/start": ^1.0.8 solid-js: ^1.9.1 vinxi: ^0.5.3 vite: ^5.4.8 - '@kobalte/tailwindcss@0.9.0': - resolution: {integrity: sha512-WbueJTVRiO4yrmfHIBwp07y3M5iibJ/gauEAQ7mOyg1tZulvpO7SM/UdgzX95a9a0KDt1mQFxwO7RmpOUXWOWA==} + "@kobalte/tailwindcss@0.9.0": + resolution: + { + integrity: sha512-WbueJTVRiO4yrmfHIBwp07y3M5iibJ/gauEAQ7mOyg1tZulvpO7SM/UdgzX95a9a0KDt1mQFxwO7RmpOUXWOWA==, + } peerDependencies: tailwindcss: ^3.3.3 - '@kobalte/utils@0.9.1': - resolution: {integrity: sha512-eeU60A3kprIiBDAfv9gUJX1tXGLuZiKMajUfSQURAF2pk4ZoMYiqIzmrMBvzcxP39xnYttgTyQEVLwiTZnrV4w==} + "@kobalte/utils@0.9.1": + resolution: + { + integrity: sha512-eeU60A3kprIiBDAfv9gUJX1tXGLuZiKMajUfSQURAF2pk4ZoMYiqIzmrMBvzcxP39xnYttgTyQEVLwiTZnrV4w==, + } 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.0.31': - resolution: {integrity: sha512-y0yfNOSHTw9rc7pbJJrHQCx0W0yk0T/KgO94+rlRI4OhfdP1PrsTMlTNLij2hxVR2UdstTZWuoYHQKnUk5qHcw==} - engines: {node: '>=18.17.0'} + "@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.0.31": + resolution: + { + integrity: sha512-y0yfNOSHTw9rc7pbJJrHQCx0W0yk0T/KgO94+rlRI4OhfdP1PrsTMlTNLij2hxVR2UdstTZWuoYHQKnUk5qHcw==, + } + engines: { node: ">=18.17.0" } hasBin: true - '@mapbox/node-pre-gyp@2.0.0': - resolution: {integrity: sha512-llMXd39jtP0HpQLVI37Bf1m2ADlEb35GYSh1SDSLsBhR+5iCxiNGlT31yqbNtVHygHAtMy6dWFERpU2JgufhPg==} - engines: {node: '>=18'} + "@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==} - - '@netlify/functions@2.8.2': - resolution: {integrity: sha512-DeoAQh8LuNPvBE4qsKlezjKj0PyXDryOFJfJKo3Z1qZLKzQ21sT314KQKPVjfvw6knqijj+IO+0kHXy/TJiqNA==} - engines: {node: '>=14.0.0'} - - '@netlify/node-cookies@0.1.0': - resolution: {integrity: sha512-OAs1xG+FfLX0LoRASpqzVntVV/RpYkgpI0VrUnw2u0Q1qiZUzcPffxRK8HF3gc4GjuhG5ahOEMJ9bswBiZPq0g==} - engines: {node: ^14.16.0 || >=16.0.0} - - '@netlify/serverless-functions-api@1.26.1': - resolution: {integrity: sha512-q3L9i3HoNfz0SGpTIS4zTcKBbRkxzCRpd169eyiTuk3IwcPC3/85mzLHranlKo2b+HYT0gu37YxGB45aD8A3Tw==} - engines: {node: '>=18.0.0'} - - '@noble/hashes@1.5.0': - resolution: {integrity: sha512-1j6kQFb7QRru7eKN3ZDvRcP13rugwdxZqCjbiAVZfIJwgj2A65UmT4TgARXGlXgnRkORLTDTrO19ZErt7+QXgA==} - engines: {node: ^14.21.3 || >=16} - - '@nodelib/fs.scandir@2.1.5': - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} - - '@nodelib/fs.stat@2.0.5': - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} - - '@nodelib/fs.walk@1.2.8': - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} - - '@orama/crawly@0.0.4': - resolution: {integrity: sha512-MN+naIueJ/Q6W8ldgpgbeJmoC0H9ZOBkASeVa5b3ncpe9ZvrcByP7rs+A5+UcMwMUW2W1V2/kfl8eCVmpT6h5A==} - - '@orama/orama@2.1.1': - resolution: {integrity: sha512-euTV/2kya290SNkl5m8e/H1na8iDygk74nNtl4E0YZNyYIrEMwE1JwamoroMKGZw2Uz+in/8gH3m1+2YfP0j1w==} - engines: {node: '>= 16.0.0'} - - '@oramacloud/client@1.3.16': - resolution: {integrity: sha512-WOc7hcg40x5OZb1rPiH/qSLeDb1hzCy4jVIV1wSfwni/ZQ4cHRyDKuMda5iyjF3A+ZgQfH1P5Oqi03cZSZw98g==} - - '@paralleldrive/cuid2@2.2.2': - resolution: {integrity: sha512-ZOBkgDwEdoYVlSeRbYYXs0S9MejQofiVYoTbKzy/6GQa39/q5tQU2IX46+shYnUkpEl3wc+J6wRlar7r2EK2xA==} - - '@parcel/watcher-android-arm64@2.4.1': - resolution: {integrity: sha512-LOi/WTbbh3aTn2RYddrO8pnapixAziFl6SMxHM69r3tvdSm94JtCenaKgk1GRg5FJ5wpMCpHeW+7yqPlvZv7kg==} - engines: {node: '>= 10.0.0'} + "@mdx-js/mdx@3.1.0": + resolution: + { + integrity: sha512-/QxEhPAvGwbQmy1Px8F899L5Uc2KZ6JtXwlCgJmjSTBedwOZkByYcBG4GceIGPXRDsmfxhHazuS+hlOShRLeDw==, + } + + "@netlify/functions@2.8.2": + resolution: + { + integrity: sha512-DeoAQh8LuNPvBE4qsKlezjKj0PyXDryOFJfJKo3Z1qZLKzQ21sT314KQKPVjfvw6knqijj+IO+0kHXy/TJiqNA==, + } + engines: { node: ">=14.0.0" } + + "@netlify/node-cookies@0.1.0": + resolution: + { + integrity: sha512-OAs1xG+FfLX0LoRASpqzVntVV/RpYkgpI0VrUnw2u0Q1qiZUzcPffxRK8HF3gc4GjuhG5ahOEMJ9bswBiZPq0g==, + } + engines: { node: ^14.16.0 || >=16.0.0 } + + "@netlify/serverless-functions-api@1.26.1": + resolution: + { + integrity: sha512-q3L9i3HoNfz0SGpTIS4zTcKBbRkxzCRpd169eyiTuk3IwcPC3/85mzLHranlKo2b+HYT0gu37YxGB45aD8A3Tw==, + } + engines: { node: ">=18.0.0" } + + "@noble/hashes@1.5.0": + resolution: + { + integrity: sha512-1j6kQFb7QRru7eKN3ZDvRcP13rugwdxZqCjbiAVZfIJwgj2A65UmT4TgARXGlXgnRkORLTDTrO19ZErt7+QXgA==, + } + engines: { node: ^14.21.3 || >=16 } + + "@nodelib/fs.scandir@2.1.5": + resolution: + { + integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==, + } + engines: { node: ">= 8" } + + "@nodelib/fs.stat@2.0.5": + resolution: + { + integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==, + } + engines: { node: ">= 8" } + + "@nodelib/fs.walk@1.2.8": + resolution: + { + integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==, + } + engines: { node: ">= 8" } + + "@orama/crawly@0.0.4": + resolution: + { + integrity: sha512-MN+naIueJ/Q6W8ldgpgbeJmoC0H9ZOBkASeVa5b3ncpe9ZvrcByP7rs+A5+UcMwMUW2W1V2/kfl8eCVmpT6h5A==, + } + + "@orama/orama@2.1.1": + resolution: + { + integrity: sha512-euTV/2kya290SNkl5m8e/H1na8iDygk74nNtl4E0YZNyYIrEMwE1JwamoroMKGZw2Uz+in/8gH3m1+2YfP0j1w==, + } + engines: { node: ">= 16.0.0" } + + "@oramacloud/client@1.3.16": + resolution: + { + integrity: sha512-WOc7hcg40x5OZb1rPiH/qSLeDb1hzCy4jVIV1wSfwni/ZQ4cHRyDKuMda5iyjF3A+ZgQfH1P5Oqi03cZSZw98g==, + } + + "@paralleldrive/cuid2@2.2.2": + resolution: + { + integrity: sha512-ZOBkgDwEdoYVlSeRbYYXs0S9MejQofiVYoTbKzy/6GQa39/q5tQU2IX46+shYnUkpEl3wc+J6wRlar7r2EK2xA==, + } + + "@parcel/watcher-android-arm64@2.4.1": + resolution: + { + integrity: sha512-LOi/WTbbh3aTn2RYddrO8pnapixAziFl6SMxHM69r3tvdSm94JtCenaKgk1GRg5FJ5wpMCpHeW+7yqPlvZv7kg==, + } + engines: { node: ">= 10.0.0" } cpu: [arm64] os: [android] - '@parcel/watcher-darwin-arm64@2.4.1': - resolution: {integrity: sha512-ln41eihm5YXIY043vBrrHfn94SIBlqOWmoROhsMVTSXGh0QahKGy77tfEywQ7v3NywyxBBkGIfrWRHm0hsKtzA==} - engines: {node: '>= 10.0.0'} + "@parcel/watcher-darwin-arm64@2.4.1": + resolution: + { + integrity: sha512-ln41eihm5YXIY043vBrrHfn94SIBlqOWmoROhsMVTSXGh0QahKGy77tfEywQ7v3NywyxBBkGIfrWRHm0hsKtzA==, + } + engines: { node: ">= 10.0.0" } cpu: [arm64] os: [darwin] - '@parcel/watcher-darwin-x64@2.4.1': - resolution: {integrity: sha512-yrw81BRLjjtHyDu7J61oPuSoeYWR3lDElcPGJyOvIXmor6DEo7/G2u1o7I38cwlcoBHQFULqF6nesIX3tsEXMg==} - engines: {node: '>= 10.0.0'} + "@parcel/watcher-darwin-x64@2.4.1": + resolution: + { + integrity: sha512-yrw81BRLjjtHyDu7J61oPuSoeYWR3lDElcPGJyOvIXmor6DEo7/G2u1o7I38cwlcoBHQFULqF6nesIX3tsEXMg==, + } + engines: { node: ">= 10.0.0" } cpu: [x64] os: [darwin] - '@parcel/watcher-freebsd-x64@2.4.1': - resolution: {integrity: sha512-TJa3Pex/gX3CWIx/Co8k+ykNdDCLx+TuZj3f3h7eOjgpdKM+Mnix37RYsYU4LHhiYJz3DK5nFCCra81p6g050w==} - engines: {node: '>= 10.0.0'} + "@parcel/watcher-freebsd-x64@2.4.1": + resolution: + { + integrity: sha512-TJa3Pex/gX3CWIx/Co8k+ykNdDCLx+TuZj3f3h7eOjgpdKM+Mnix37RYsYU4LHhiYJz3DK5nFCCra81p6g050w==, + } + engines: { node: ">= 10.0.0" } cpu: [x64] os: [freebsd] - '@parcel/watcher-linux-arm-glibc@2.4.1': - resolution: {integrity: sha512-4rVYDlsMEYfa537BRXxJ5UF4ddNwnr2/1O4MHM5PjI9cvV2qymvhwZSFgXqbS8YoTk5i/JR0L0JDs69BUn45YA==} - engines: {node: '>= 10.0.0'} + "@parcel/watcher-linux-arm-glibc@2.4.1": + resolution: + { + integrity: sha512-4rVYDlsMEYfa537BRXxJ5UF4ddNwnr2/1O4MHM5PjI9cvV2qymvhwZSFgXqbS8YoTk5i/JR0L0JDs69BUn45YA==, + } + engines: { node: ">= 10.0.0" } cpu: [arm] os: [linux] - '@parcel/watcher-linux-arm64-glibc@2.4.1': - resolution: {integrity: sha512-BJ7mH985OADVLpbrzCLgrJ3TOpiZggE9FMblfO65PlOCdG++xJpKUJ0Aol74ZUIYfb8WsRlUdgrZxKkz3zXWYA==} - engines: {node: '>= 10.0.0'} + "@parcel/watcher-linux-arm64-glibc@2.4.1": + resolution: + { + integrity: sha512-BJ7mH985OADVLpbrzCLgrJ3TOpiZggE9FMblfO65PlOCdG++xJpKUJ0Aol74ZUIYfb8WsRlUdgrZxKkz3zXWYA==, + } + engines: { node: ">= 10.0.0" } cpu: [arm64] os: [linux] - '@parcel/watcher-linux-arm64-musl@2.4.1': - resolution: {integrity: sha512-p4Xb7JGq3MLgAfYhslU2SjoV9G0kI0Xry0kuxeG/41UfpjHGOhv7UoUDAz/jb1u2elbhazy4rRBL8PegPJFBhA==} - engines: {node: '>= 10.0.0'} + "@parcel/watcher-linux-arm64-musl@2.4.1": + resolution: + { + integrity: sha512-p4Xb7JGq3MLgAfYhslU2SjoV9G0kI0Xry0kuxeG/41UfpjHGOhv7UoUDAz/jb1u2elbhazy4rRBL8PegPJFBhA==, + } + engines: { node: ">= 10.0.0" } cpu: [arm64] os: [linux] - '@parcel/watcher-linux-x64-glibc@2.4.1': - resolution: {integrity: sha512-s9O3fByZ/2pyYDPoLM6zt92yu6P4E39a03zvO0qCHOTjxmt3GHRMLuRZEWhWLASTMSrrnVNWdVI/+pUElJBBBg==} - engines: {node: '>= 10.0.0'} + "@parcel/watcher-linux-x64-glibc@2.4.1": + resolution: + { + integrity: sha512-s9O3fByZ/2pyYDPoLM6zt92yu6P4E39a03zvO0qCHOTjxmt3GHRMLuRZEWhWLASTMSrrnVNWdVI/+pUElJBBBg==, + } + engines: { node: ">= 10.0.0" } cpu: [x64] os: [linux] - '@parcel/watcher-linux-x64-musl@2.4.1': - resolution: {integrity: sha512-L2nZTYR1myLNST0O632g0Dx9LyMNHrn6TOt76sYxWLdff3cB22/GZX2UPtJnaqQPdCRoszoY5rcOj4oMTtp5fQ==} - engines: {node: '>= 10.0.0'} + "@parcel/watcher-linux-x64-musl@2.4.1": + resolution: + { + integrity: sha512-L2nZTYR1myLNST0O632g0Dx9LyMNHrn6TOt76sYxWLdff3cB22/GZX2UPtJnaqQPdCRoszoY5rcOj4oMTtp5fQ==, + } + engines: { node: ">= 10.0.0" } cpu: [x64] os: [linux] - '@parcel/watcher-wasm@2.3.0': - resolution: {integrity: sha512-ejBAX8H0ZGsD8lSICDNyMbSEtPMWgDL0WFCt/0z7hyf5v8Imz4rAM8xY379mBsECkq/Wdqa5WEDLqtjZ+6NxfA==} - engines: {node: '>= 10.0.0'} + "@parcel/watcher-wasm@2.3.0": + resolution: + { + integrity: sha512-ejBAX8H0ZGsD8lSICDNyMbSEtPMWgDL0WFCt/0z7hyf5v8Imz4rAM8xY379mBsECkq/Wdqa5WEDLqtjZ+6NxfA==, + } + engines: { node: ">= 10.0.0" } bundledDependencies: - napi-wasm - '@parcel/watcher-wasm@2.4.1': - resolution: {integrity: sha512-/ZR0RxqxU/xxDGzbzosMjh4W6NdYFMqq2nvo2b8SLi7rsl/4jkL8S5stIikorNkdR50oVDvqb/3JT05WM+CRRA==} - engines: {node: '>= 10.0.0'} + "@parcel/watcher-wasm@2.4.1": + resolution: + { + integrity: sha512-/ZR0RxqxU/xxDGzbzosMjh4W6NdYFMqq2nvo2b8SLi7rsl/4jkL8S5stIikorNkdR50oVDvqb/3JT05WM+CRRA==, + } + engines: { node: ">= 10.0.0" } bundledDependencies: - napi-wasm - '@parcel/watcher-win32-arm64@2.4.1': - resolution: {integrity: sha512-Uq2BPp5GWhrq/lcuItCHoqxjULU1QYEcyjSO5jqqOK8RNFDBQnenMMx4gAl3v8GiWa59E9+uDM7yZ6LxwUIfRg==} - engines: {node: '>= 10.0.0'} + "@parcel/watcher-win32-arm64@2.4.1": + resolution: + { + integrity: sha512-Uq2BPp5GWhrq/lcuItCHoqxjULU1QYEcyjSO5jqqOK8RNFDBQnenMMx4gAl3v8GiWa59E9+uDM7yZ6LxwUIfRg==, + } + engines: { node: ">= 10.0.0" } cpu: [arm64] os: [win32] - '@parcel/watcher-win32-ia32@2.4.1': - resolution: {integrity: sha512-maNRit5QQV2kgHFSYwftmPBxiuK5u4DXjbXx7q6eKjq5dsLXZ4FJiVvlcw35QXzk0KrUecJmuVFbj4uV9oYrcw==} - engines: {node: '>= 10.0.0'} + "@parcel/watcher-win32-ia32@2.4.1": + resolution: + { + integrity: sha512-maNRit5QQV2kgHFSYwftmPBxiuK5u4DXjbXx7q6eKjq5dsLXZ4FJiVvlcw35QXzk0KrUecJmuVFbj4uV9oYrcw==, + } + engines: { node: ">= 10.0.0" } cpu: [ia32] os: [win32] - '@parcel/watcher-win32-x64@2.4.1': - resolution: {integrity: sha512-+DvS92F9ezicfswqrvIRM2njcYJbd5mb9CUgtrHCHmvn7pPPa+nMDRu1o1bYYz/l5IB2NVGNJWiH7h1E58IF2A==} - engines: {node: '>= 10.0.0'} + "@parcel/watcher-win32-x64@2.4.1": + resolution: + { + integrity: sha512-+DvS92F9ezicfswqrvIRM2njcYJbd5mb9CUgtrHCHmvn7pPPa+nMDRu1o1bYYz/l5IB2NVGNJWiH7h1E58IF2A==, + } + engines: { node: ">= 10.0.0" } cpu: [x64] os: [win32] - '@parcel/watcher@2.4.1': - resolution: {integrity: sha512-HNjmfLQEVRZmHRET336f20H/8kOozUGwk7yajvsonjNxbj2wBTK1WsQuHkD5yYh9RxFGL2EyDHryOihOwUoKDA==} - engines: {node: '>= 10.0.0'} - - '@pkgjs/parseargs@0.11.0': - resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} - engines: {node: '>=14'} - - '@redocly/ajv@8.11.2': - resolution: {integrity: sha512-io1JpnwtIcvojV7QKDUSIuMN/ikdOUd1ReEnUnMKGfDVridQZ31J0MmIuqwuRjWDZfmvr+Q0MqCcfHM2gTivOg==} - - '@redocly/config@0.20.3': - resolution: {integrity: sha512-Nyyv1Bj7GgYwj/l46O0nkH1GTKWbO3Ixe7KFcn021aZipkZd+z8Vlu1BwkhqtVgivcKaClaExtWU/lDHkjBzag==} - - '@redocly/openapi-core@1.30.0': - resolution: {integrity: sha512-ZZc+FXKoQXJ9cOR7qRKHxOfKOsGCj2wSodklKdtM2FofzyjzvIwn1rksD5+9iJxvHuORPOPv3ppAHcM+iMr/Ag==} - engines: {node: '>=18.17.0', npm: '>=9.5.0'} - - '@rollup/plugin-alias@5.1.1': - resolution: {integrity: sha512-PR9zDb+rOzkRb2VD+EuKB7UC41vU5DIwZ5qqCpk0KJudcWAyi8rvYOhS7+L5aZCspw1stTViLgN5v6FF1p5cgQ==} - engines: {node: '>=14.0.0'} + "@parcel/watcher@2.4.1": + resolution: + { + integrity: sha512-HNjmfLQEVRZmHRET336f20H/8kOozUGwk7yajvsonjNxbj2wBTK1WsQuHkD5yYh9RxFGL2EyDHryOihOwUoKDA==, + } + engines: { node: ">= 10.0.0" } + + "@pkgjs/parseargs@0.11.0": + resolution: + { + integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==, + } + engines: { node: ">=14" } + + "@redocly/ajv@8.11.2": + resolution: + { + integrity: sha512-io1JpnwtIcvojV7QKDUSIuMN/ikdOUd1ReEnUnMKGfDVridQZ31J0MmIuqwuRjWDZfmvr+Q0MqCcfHM2gTivOg==, + } + + "@redocly/config@0.20.3": + resolution: + { + integrity: sha512-Nyyv1Bj7GgYwj/l46O0nkH1GTKWbO3Ixe7KFcn021aZipkZd+z8Vlu1BwkhqtVgivcKaClaExtWU/lDHkjBzag==, + } + + "@redocly/openapi-core@1.30.0": + resolution: + { + integrity: sha512-ZZc+FXKoQXJ9cOR7qRKHxOfKOsGCj2wSodklKdtM2FofzyjzvIwn1rksD5+9iJxvHuORPOPv3ppAHcM+iMr/Ag==, + } + engines: { node: ">=18.17.0", npm: ">=9.5.0" } + + "@rollup/plugin-alias@5.1.1": + resolution: + { + integrity: sha512-PR9zDb+rOzkRb2VD+EuKB7UC41vU5DIwZ5qqCpk0KJudcWAyi8rvYOhS7+L5aZCspw1stTViLgN5v6FF1p5cgQ==, + } + engines: { node: ">=14.0.0" } peerDependencies: rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 peerDependenciesMeta: rollup: optional: true - '@rollup/plugin-commonjs@28.0.2': - resolution: {integrity: sha512-BEFI2EDqzl+vA1rl97IDRZ61AIwGH093d9nz8+dThxJNH8oSoB7MjWvPCX3dkaK1/RCJ/1v/R1XB15FuSs0fQw==} - engines: {node: '>=16.0.0 || 14 >= 14.17'} + "@rollup/plugin-commonjs@28.0.2": + resolution: + { + integrity: sha512-BEFI2EDqzl+vA1rl97IDRZ61AIwGH093d9nz8+dThxJNH8oSoB7MjWvPCX3dkaK1/RCJ/1v/R1XB15FuSs0fQw==, + } + engines: { node: ">=16.0.0 || 14 >= 14.17" } peerDependencies: rollup: ^2.68.0||^3.0.0||^4.0.0 peerDependenciesMeta: rollup: optional: true - '@rollup/plugin-inject@5.0.5': - resolution: {integrity: sha512-2+DEJbNBoPROPkgTDNe8/1YXWcqxbN5DTjASVIOx8HS+pITXushyNiBV56RB08zuptzz8gT3YfkqriTBVycepg==} - engines: {node: '>=14.0.0'} + "@rollup/plugin-inject@5.0.5": + resolution: + { + integrity: sha512-2+DEJbNBoPROPkgTDNe8/1YXWcqxbN5DTjASVIOx8HS+pITXushyNiBV56RB08zuptzz8gT3YfkqriTBVycepg==, + } + engines: { node: ">=14.0.0" } peerDependencies: rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 peerDependenciesMeta: rollup: optional: true - '@rollup/plugin-json@6.1.0': - resolution: {integrity: sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==} - engines: {node: '>=14.0.0'} + "@rollup/plugin-json@6.1.0": + resolution: + { + integrity: sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==, + } + engines: { node: ">=14.0.0" } peerDependencies: rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 peerDependenciesMeta: rollup: optional: true - '@rollup/plugin-node-resolve@15.3.0': - resolution: {integrity: sha512-9eO5McEICxMzJpDW9OnMYSv4Sta3hmt7VtBFz5zR9273suNOydOyq/FrGeGy+KsTRFm8w0SLVhzig2ILFT63Ag==} - engines: {node: '>=14.0.0'} + "@rollup/plugin-node-resolve@15.3.0": + resolution: + { + integrity: sha512-9eO5McEICxMzJpDW9OnMYSv4Sta3hmt7VtBFz5zR9273suNOydOyq/FrGeGy+KsTRFm8w0SLVhzig2ILFT63Ag==, + } + engines: { node: ">=14.0.0" } peerDependencies: rollup: ^2.78.0||^3.0.0||^4.0.0 peerDependenciesMeta: rollup: optional: true - '@rollup/plugin-replace@6.0.2': - resolution: {integrity: sha512-7QaYCf8bqF04dOy7w/eHmJeNExxTYwvKAmlSAH/EaWWUzbT0h5sbF6bktFoX/0F/0qwng5/dWFMyf3gzaM8DsQ==} - engines: {node: '>=14.0.0'} + "@rollup/plugin-replace@6.0.2": + resolution: + { + integrity: sha512-7QaYCf8bqF04dOy7w/eHmJeNExxTYwvKAmlSAH/EaWWUzbT0h5sbF6bktFoX/0F/0qwng5/dWFMyf3gzaM8DsQ==, + } + engines: { node: ">=14.0.0" } peerDependencies: rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 peerDependenciesMeta: rollup: optional: true - '@rollup/plugin-terser@0.4.4': - resolution: {integrity: sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==} - engines: {node: '>=14.0.0'} + "@rollup/plugin-terser@0.4.4": + resolution: + { + integrity: sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==, + } + engines: { node: ">=14.0.0" } peerDependencies: rollup: ^2.0.0||^3.0.0||^4.0.0 peerDependenciesMeta: rollup: optional: true - '@rollup/pluginutils@5.1.4': - resolution: {integrity: sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==} - engines: {node: '>=14.0.0'} + "@rollup/pluginutils@4.2.1": + resolution: + { + integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==, + } + engines: { node: ">= 8.0.0" } + + "@rollup/pluginutils@5.1.4": + resolution: + { + integrity: sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==, + } + engines: { node: ">=14.0.0" } peerDependencies: rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 peerDependenciesMeta: rollup: optional: true - '@rollup/rollup-android-arm-eabi@4.34.8': - resolution: {integrity: sha512-q217OSE8DTp8AFHuNHXo0Y86e1wtlfVrXiAlwkIvGRQv9zbc6mE3sjIVfwI8sYUyNxwOg0j/Vm1RKM04JcWLJw==} + "@rollup/rollup-android-arm-eabi@4.34.8": + resolution: + { + integrity: sha512-q217OSE8DTp8AFHuNHXo0Y86e1wtlfVrXiAlwkIvGRQv9zbc6mE3sjIVfwI8sYUyNxwOg0j/Vm1RKM04JcWLJw==, + } + cpu: [arm] + os: [android] + + "@rollup/rollup-android-arm-eabi@4.35.0": + resolution: + { + integrity: sha512-uYQ2WfPaqz5QtVgMxfN6NpLD+no0MYHDBywl7itPYd3K5TjjSghNKmX8ic9S8NU8w81NVhJv/XojcHptRly7qQ==, + } cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.34.8': - resolution: {integrity: sha512-Gigjz7mNWaOL9wCggvoK3jEIUUbGul656opstjaUSGC3eT0BM7PofdAJaBfPFWWkXNVAXbaQtC99OCg4sJv70Q==} + "@rollup/rollup-android-arm64@4.34.8": + resolution: + { + integrity: sha512-Gigjz7mNWaOL9wCggvoK3jEIUUbGul656opstjaUSGC3eT0BM7PofdAJaBfPFWWkXNVAXbaQtC99OCg4sJv70Q==, + } + cpu: [arm64] + os: [android] + + "@rollup/rollup-android-arm64@4.35.0": + resolution: + { + integrity: sha512-FtKddj9XZudurLhdJnBl9fl6BwCJ3ky8riCXjEw3/UIbjmIY58ppWwPEvU3fNu+W7FUsAsB1CdH+7EQE6CXAPA==, + } cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.34.8': - resolution: {integrity: sha512-02rVdZ5tgdUNRxIUrFdcMBZQoaPMrxtwSb+/hOfBdqkatYHR3lZ2A2EGyHq2sGOd0Owk80oV3snlDASC24He3Q==} + "@rollup/rollup-darwin-arm64@4.34.8": + resolution: + { + integrity: sha512-02rVdZ5tgdUNRxIUrFdcMBZQoaPMrxtwSb+/hOfBdqkatYHR3lZ2A2EGyHq2sGOd0Owk80oV3snlDASC24He3Q==, + } cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.34.8': - resolution: {integrity: sha512-qIP/elwR/tq/dYRx3lgwK31jkZvMiD6qUtOycLhTzCvrjbZ3LjQnEM9rNhSGpbLXVJYQ3rq39A6Re0h9tU2ynw==} + "@rollup/rollup-darwin-arm64@4.35.0": + resolution: + { + integrity: sha512-Uk+GjOJR6CY844/q6r5DR/6lkPFOw0hjfOIzVx22THJXMxktXG6CbejseJFznU8vHcEBLpiXKY3/6xc+cBm65Q==, + } + cpu: [arm64] + os: [darwin] + + "@rollup/rollup-darwin-x64@4.34.8": + resolution: + { + integrity: sha512-qIP/elwR/tq/dYRx3lgwK31jkZvMiD6qUtOycLhTzCvrjbZ3LjQnEM9rNhSGpbLXVJYQ3rq39A6Re0h9tU2ynw==, + } cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.34.8': - resolution: {integrity: sha512-IQNVXL9iY6NniYbTaOKdrlVP3XIqazBgJOVkddzJlqnCpRi/yAeSOa8PLcECFSQochzqApIOE1GHNu3pCz+BDA==} + "@rollup/rollup-darwin-x64@4.35.0": + resolution: + { + integrity: sha512-3IrHjfAS6Vkp+5bISNQnPogRAW5GAV1n+bNCrDwXmfMHbPl5EhTmWtfmwlJxFRUCBZ+tZ/OxDyU08aF6NI/N5Q==, + } + cpu: [x64] + os: [darwin] + + "@rollup/rollup-freebsd-arm64@4.34.8": + resolution: + { + integrity: sha512-IQNVXL9iY6NniYbTaOKdrlVP3XIqazBgJOVkddzJlqnCpRi/yAeSOa8PLcECFSQochzqApIOE1GHNu3pCz+BDA==, + } cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.34.8': - resolution: {integrity: sha512-TYXcHghgnCqYFiE3FT5QwXtOZqDj5GmaFNTNt3jNC+vh22dc/ukG2cG+pi75QO4kACohZzidsq7yKTKwq/Jq7Q==} + "@rollup/rollup-freebsd-arm64@4.35.0": + resolution: + { + integrity: sha512-sxjoD/6F9cDLSELuLNnY0fOrM9WA0KrM0vWm57XhrIMf5FGiN8D0l7fn+bpUeBSU7dCgPV2oX4zHAsAXyHFGcQ==, + } + cpu: [arm64] + os: [freebsd] + + "@rollup/rollup-freebsd-x64@4.34.8": + resolution: + { + integrity: sha512-TYXcHghgnCqYFiE3FT5QwXtOZqDj5GmaFNTNt3jNC+vh22dc/ukG2cG+pi75QO4kACohZzidsq7yKTKwq/Jq7Q==, + } cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.34.8': - resolution: {integrity: sha512-A4iphFGNkWRd+5m3VIGuqHnG3MVnqKe7Al57u9mwgbyZ2/xF9Jio72MaY7xxh+Y87VAHmGQr73qoKL9HPbXj1g==} + "@rollup/rollup-freebsd-x64@4.35.0": + resolution: + { + integrity: sha512-2mpHCeRuD1u/2kruUiHSsnjWtHjqVbzhBkNVQ1aVD63CcexKVcQGwJ2g5VphOd84GvxfSvnnlEyBtQCE5hxVVw==, + } + cpu: [x64] + os: [freebsd] + + "@rollup/rollup-linux-arm-gnueabihf@4.34.8": + resolution: + { + integrity: sha512-A4iphFGNkWRd+5m3VIGuqHnG3MVnqKe7Al57u9mwgbyZ2/xF9Jio72MaY7xxh+Y87VAHmGQr73qoKL9HPbXj1g==, + } cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.34.8': - resolution: {integrity: sha512-S0lqKLfTm5u+QTxlFiAnb2J/2dgQqRy/XvziPtDd1rKZFXHTyYLoVL58M/XFwDI01AQCDIevGLbQrMAtdyanpA==} + "@rollup/rollup-linux-arm-gnueabihf@4.35.0": + resolution: + { + integrity: sha512-mrA0v3QMy6ZSvEuLs0dMxcO2LnaCONs1Z73GUDBHWbY8tFFocM6yl7YyMu7rz4zS81NDSqhrUuolyZXGi8TEqg==, + } cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.34.8': - resolution: {integrity: sha512-jpz9YOuPiSkL4G4pqKrus0pn9aYwpImGkosRKwNi+sJSkz+WU3anZe6hi73StLOQdfXYXC7hUfsQlTnjMd3s1A==} + "@rollup/rollup-linux-arm-musleabihf@4.34.8": + resolution: + { + integrity: sha512-S0lqKLfTm5u+QTxlFiAnb2J/2dgQqRy/XvziPtDd1rKZFXHTyYLoVL58M/XFwDI01AQCDIevGLbQrMAtdyanpA==, + } + cpu: [arm] + os: [linux] + + "@rollup/rollup-linux-arm-musleabihf@4.35.0": + resolution: + { + integrity: sha512-DnYhhzcvTAKNexIql8pFajr0PiDGrIsBYPRvCKlA5ixSS3uwo/CWNZxB09jhIapEIg945KOzcYEAGGSmTSpk7A==, + } + cpu: [arm] + os: [linux] + + "@rollup/rollup-linux-arm64-gnu@4.34.8": + resolution: + { + integrity: sha512-jpz9YOuPiSkL4G4pqKrus0pn9aYwpImGkosRKwNi+sJSkz+WU3anZe6hi73StLOQdfXYXC7hUfsQlTnjMd3s1A==, + } cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.34.8': - resolution: {integrity: sha512-KdSfaROOUJXgTVxJNAZ3KwkRc5nggDk+06P6lgi1HLv1hskgvxHUKZ4xtwHkVYJ1Rep4GNo+uEfycCRRxht7+Q==} + "@rollup/rollup-linux-arm64-gnu@4.35.0": + resolution: + { + integrity: sha512-uagpnH2M2g2b5iLsCTZ35CL1FgyuzzJQ8L9VtlJ+FckBXroTwNOaD0z0/UF+k5K3aNQjbm8LIVpxykUOQt1m/A==, + } cpu: [arm64] os: [linux] - '@rollup/rollup-linux-loongarch64-gnu@4.34.8': - resolution: {integrity: sha512-NyF4gcxwkMFRjgXBM6g2lkT58OWztZvw5KkV2K0qqSnUEqCVcqdh2jN4gQrTn/YUpAcNKyFHfoOZEer9nwo6uQ==} + "@rollup/rollup-linux-arm64-musl@4.34.8": + resolution: + { + integrity: sha512-KdSfaROOUJXgTVxJNAZ3KwkRc5nggDk+06P6lgi1HLv1hskgvxHUKZ4xtwHkVYJ1Rep4GNo+uEfycCRRxht7+Q==, + } + cpu: [arm64] + os: [linux] + + "@rollup/rollup-linux-arm64-musl@4.35.0": + resolution: + { + integrity: sha512-XQxVOCd6VJeHQA/7YcqyV0/88N6ysSVzRjJ9I9UA/xXpEsjvAgDTgH3wQYz5bmr7SPtVK2TsP2fQ2N9L4ukoUg==, + } + cpu: [arm64] + os: [linux] + + "@rollup/rollup-linux-loongarch64-gnu@4.34.8": + resolution: + { + integrity: sha512-NyF4gcxwkMFRjgXBM6g2lkT58OWztZvw5KkV2K0qqSnUEqCVcqdh2jN4gQrTn/YUpAcNKyFHfoOZEer9nwo6uQ==, + } + cpu: [loong64] + os: [linux] + + "@rollup/rollup-linux-loongarch64-gnu@4.35.0": + resolution: + { + integrity: sha512-5pMT5PzfgwcXEwOaSrqVsz/LvjDZt+vQ8RT/70yhPU06PTuq8WaHhfT1LW+cdD7mW6i/J5/XIkX/1tCAkh1W6g==, + } cpu: [loong64] os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.34.8': - resolution: {integrity: sha512-LMJc999GkhGvktHU85zNTDImZVUCJ1z/MbAJTnviiWmmjyckP5aQsHtcujMjpNdMZPT2rQEDBlJfubhs3jsMfw==} + "@rollup/rollup-linux-powerpc64le-gnu@4.34.8": + resolution: + { + integrity: sha512-LMJc999GkhGvktHU85zNTDImZVUCJ1z/MbAJTnviiWmmjyckP5aQsHtcujMjpNdMZPT2rQEDBlJfubhs3jsMfw==, + } cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.34.8': - resolution: {integrity: sha512-xAQCAHPj8nJq1PI3z8CIZzXuXCstquz7cIOL73HHdXiRcKk8Ywwqtx2wrIy23EcTn4aZ2fLJNBB8d0tQENPCmw==} + "@rollup/rollup-linux-powerpc64le-gnu@4.35.0": + resolution: + { + integrity: sha512-c+zkcvbhbXF98f4CtEIP1EBA/lCic5xB0lToneZYvMeKu5Kamq3O8gqrxiYYLzlZH6E3Aq+TSW86E4ay8iD8EA==, + } + cpu: [ppc64] + os: [linux] + + "@rollup/rollup-linux-riscv64-gnu@4.34.8": + resolution: + { + integrity: sha512-xAQCAHPj8nJq1PI3z8CIZzXuXCstquz7cIOL73HHdXiRcKk8Ywwqtx2wrIy23EcTn4aZ2fLJNBB8d0tQENPCmw==, + } cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.34.8': - resolution: {integrity: sha512-DdePVk1NDEuc3fOe3dPPTb+rjMtuFw89gw6gVWxQFAuEqqSdDKnrwzZHrUYdac7A7dXl9Q2Vflxpme15gUWQFA==} + "@rollup/rollup-linux-riscv64-gnu@4.35.0": + resolution: + { + integrity: sha512-s91fuAHdOwH/Tad2tzTtPX7UZyytHIRR6V4+2IGlV0Cej5rkG0R61SX4l4y9sh0JBibMiploZx3oHKPnQBKe4g==, + } + cpu: [riscv64] + os: [linux] + + "@rollup/rollup-linux-s390x-gnu@4.34.8": + resolution: + { + integrity: sha512-DdePVk1NDEuc3fOe3dPPTb+rjMtuFw89gw6gVWxQFAuEqqSdDKnrwzZHrUYdac7A7dXl9Q2Vflxpme15gUWQFA==, + } + cpu: [s390x] + os: [linux] + + "@rollup/rollup-linux-s390x-gnu@4.35.0": + resolution: + { + integrity: sha512-hQRkPQPLYJZYGP+Hj4fR9dDBMIM7zrzJDWFEMPdTnTy95Ljnv0/4w/ixFw3pTBMEuuEuoqtBINYND4M7ujcuQw==, + } cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.34.8': - resolution: {integrity: sha512-8y7ED8gjxITUltTUEJLQdgpbPh1sUQ0kMTmufRF/Ns5tI9TNMNlhWtmPKKHCU0SilX+3MJkZ0zERYYGIVBYHIA==} + "@rollup/rollup-linux-x64-gnu@4.34.8": + resolution: + { + integrity: sha512-8y7ED8gjxITUltTUEJLQdgpbPh1sUQ0kMTmufRF/Ns5tI9TNMNlhWtmPKKHCU0SilX+3MJkZ0zERYYGIVBYHIA==, + } + cpu: [x64] + os: [linux] + + "@rollup/rollup-linux-x64-gnu@4.35.0": + resolution: + { + integrity: sha512-Pim1T8rXOri+0HmV4CdKSGrqcBWX0d1HoPnQ0uw0bdp1aP5SdQVNBy8LjYncvnLgu3fnnCt17xjWGd4cqh8/hA==, + } + cpu: [x64] + os: [linux] + + "@rollup/rollup-linux-x64-musl@4.34.8": + resolution: + { + integrity: sha512-SCXcP0ZpGFIe7Ge+McxY5zKxiEI5ra+GT3QRxL0pMMtxPfpyLAKleZODi1zdRHkz5/BhueUrYtYVgubqe9JBNQ==, + } cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.34.8': - resolution: {integrity: sha512-SCXcP0ZpGFIe7Ge+McxY5zKxiEI5ra+GT3QRxL0pMMtxPfpyLAKleZODi1zdRHkz5/BhueUrYtYVgubqe9JBNQ==} + "@rollup/rollup-linux-x64-musl@4.35.0": + resolution: + { + integrity: sha512-QysqXzYiDvQWfUiTm8XmJNO2zm9yC9P/2Gkrwg2dH9cxotQzunBHYr6jk4SujCTqnfGxduOmQcI7c2ryuW8XVg==, + } cpu: [x64] os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.34.8': - resolution: {integrity: sha512-YHYsgzZgFJzTRbth4h7Or0m5O74Yda+hLin0irAIobkLQFRQd1qWmnoVfwmKm9TXIZVAD0nZ+GEb2ICicLyCnQ==} + "@rollup/rollup-win32-arm64-msvc@4.34.8": + resolution: + { + integrity: sha512-YHYsgzZgFJzTRbth4h7Or0m5O74Yda+hLin0irAIobkLQFRQd1qWmnoVfwmKm9TXIZVAD0nZ+GEb2ICicLyCnQ==, + } cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.34.8': - resolution: {integrity: sha512-r3NRQrXkHr4uWy5TOjTpTYojR9XmF0j/RYgKCef+Ag46FWUTltm5ziticv8LdNsDMehjJ543x/+TJAek/xBA2w==} - cpu: [ia32] + "@rollup/rollup-win32-arm64-msvc@4.35.0": + resolution: + { + integrity: sha512-OUOlGqPkVJCdJETKOCEf1mw848ZyJ5w50/rZ/3IBQVdLfR5jk/6Sr5m3iO2tdPgwo0x7VcncYuOvMhBWZq8ayg==, + } + cpu: [arm64] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.34.8': - resolution: {integrity: sha512-U0FaE5O1BCpZSeE6gBl3c5ObhePQSfk9vDRToMmTkbhCOgW4jqvtS5LGyQ76L1fH8sM0keRp4uDTsbjiUyjk0g==} - cpu: [x64] + "@rollup/rollup-win32-ia32-msvc@4.34.8": + resolution: + { + integrity: sha512-r3NRQrXkHr4uWy5TOjTpTYojR9XmF0j/RYgKCef+Ag46FWUTltm5ziticv8LdNsDMehjJ543x/+TJAek/xBA2w==, + } + cpu: [ia32] os: [win32] - '@shikijs/core@1.22.0': - resolution: {integrity: sha512-S8sMe4q71TJAW+qG93s5VaiihujRK6rqDFqBnxqvga/3LvqHEnxqBIOPkt//IdXVtHkQWKu4nOQNk0uBGicU7Q==} - - '@shikijs/core@1.29.2': - resolution: {integrity: sha512-vju0lY9r27jJfOY4Z7+Rt/nIOjzJpZ3y+nYpqtUZInVoXQ/TJZcfGnNOGnKjFdVZb8qexiCuSlZRKcGfhhTTZQ==} - - '@shikijs/engine-javascript@1.22.0': - resolution: {integrity: sha512-AeEtF4Gcck2dwBqCFUKYfsCq0s+eEbCEbkUuFou53NZ0sTGnJnJ/05KHQFZxpii5HMXbocV9URYVowOP2wH5kw==} - - '@shikijs/engine-javascript@1.29.2': - resolution: {integrity: sha512-iNEZv4IrLYPv64Q6k7EPpOCE/nuvGiKl7zxdq0WFuRPF5PAE9PRo2JGq/d8crLusM59BRemJ4eOqrFrC4wiQ+A==} - - '@shikijs/engine-oniguruma@1.22.0': - resolution: {integrity: sha512-5iBVjhu/DYs1HB0BKsRRFipRrD7rqjxlWTj4F2Pf+nQSPqc3kcyqFFeZXnBMzDf0HdqaFVvhDRAGiYNvyLP+Mw==} - - '@shikijs/engine-oniguruma@1.29.2': - resolution: {integrity: sha512-7iiOx3SG8+g1MnlzZVDYiaeHe7Ez2Kf2HrJzdmGwkRisT7r4rak0e655AcM/tF9JG/kg5fMNYlLLKglbN7gBqA==} - - '@shikijs/langs@1.29.2': - resolution: {integrity: sha512-FIBA7N3LZ+223U7cJDUYd5shmciFQlYkFXlkKVaHsCPgfVLiO+e12FmQE6Tf9vuyEsFe3dIl8qGWKXgEHL9wmQ==} - - '@shikijs/themes@1.29.2': - resolution: {integrity: sha512-i9TNZlsq4uoyqSbluIcZkmPL9Bfi3djVxRnofUHwvx/h6SRW3cwgBC5SML7vsDcWyukY0eCzVN980rqP6qNl9g==} - - '@shikijs/types@1.22.0': - resolution: {integrity: sha512-Fw/Nr7FGFhlQqHfxzZY8Cwtwk5E9nKDUgeLjZgt3UuhcM3yJR9xj3ZGNravZZok8XmEZMiYkSMTPlPkULB8nww==} - - '@shikijs/types@1.29.2': - resolution: {integrity: sha512-VJjK0eIijTZf0QSTODEXCqinjBn0joAHQ+aPSBzrv4O2d/QSbsMw+ZeSRx03kV34Hy7NzUvV/7NqfYGRLrASmw==} - - '@shikijs/vscode-textmate@10.0.2': - resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} - - '@shikijs/vscode-textmate@9.3.0': - resolution: {integrity: sha512-jn7/7ky30idSkd/O5yDBfAnVt+JJpepofP/POZ1iMOxK59cOfqIgg/Dj0eFsjOTMw+4ycJN0uhZH/Eb0bs/EUA==} + "@rollup/rollup-win32-ia32-msvc@4.35.0": + resolution: + { + integrity: sha512-2/lsgejMrtwQe44glq7AFFHLfJBPafpsTa6JvP2NGef/ifOa4KBoglVf7AKN7EV9o32evBPRqfg96fEHzWo5kw==, + } + cpu: [ia32] + os: [win32] - '@sinclair/typebox@0.27.8': - resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + "@rollup/rollup-win32-x64-msvc@4.34.8": + resolution: + { + integrity: sha512-U0FaE5O1BCpZSeE6gBl3c5ObhePQSfk9vDRToMmTkbhCOgW4jqvtS5LGyQ76L1fH8sM0keRp4uDTsbjiUyjk0g==, + } + cpu: [x64] + os: [win32] - '@sindresorhus/merge-streams@2.3.0': - resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==} - engines: {node: '>=18'} + "@rollup/rollup-win32-x64-msvc@4.35.0": + resolution: + { + integrity: sha512-PIQeY5XDkrOysbQblSW7v3l1MDZzkTEzAfTPkj5VAu3FW8fS4ynyLg2sINp0fp3SjZ8xkRYpLqoKcYqAkhU1dw==, + } + cpu: [x64] + os: [win32] - '@solid-primitives/clipboard@1.5.10': - resolution: {integrity: sha512-ohwlrBP4j+Qjksg01CFWaP/USpzX78dBNVA1DPRZkf/vJgytX0T6KMc2YxF6o8fs6ePIYSI8Nt3sKxF0sh1q+Q==} + "@shikijs/core@1.22.0": + resolution: + { + integrity: sha512-S8sMe4q71TJAW+qG93s5VaiihujRK6rqDFqBnxqvga/3LvqHEnxqBIOPkt//IdXVtHkQWKu4nOQNk0uBGicU7Q==, + } + + "@shikijs/core@1.29.2": + resolution: + { + integrity: sha512-vju0lY9r27jJfOY4Z7+Rt/nIOjzJpZ3y+nYpqtUZInVoXQ/TJZcfGnNOGnKjFdVZb8qexiCuSlZRKcGfhhTTZQ==, + } + + "@shikijs/engine-javascript@1.22.0": + resolution: + { + integrity: sha512-AeEtF4Gcck2dwBqCFUKYfsCq0s+eEbCEbkUuFou53NZ0sTGnJnJ/05KHQFZxpii5HMXbocV9URYVowOP2wH5kw==, + } + + "@shikijs/engine-javascript@1.29.2": + resolution: + { + integrity: sha512-iNEZv4IrLYPv64Q6k7EPpOCE/nuvGiKl7zxdq0WFuRPF5PAE9PRo2JGq/d8crLusM59BRemJ4eOqrFrC4wiQ+A==, + } + + "@shikijs/engine-oniguruma@1.22.0": + resolution: + { + integrity: sha512-5iBVjhu/DYs1HB0BKsRRFipRrD7rqjxlWTj4F2Pf+nQSPqc3kcyqFFeZXnBMzDf0HdqaFVvhDRAGiYNvyLP+Mw==, + } + + "@shikijs/engine-oniguruma@1.29.2": + resolution: + { + integrity: sha512-7iiOx3SG8+g1MnlzZVDYiaeHe7Ez2Kf2HrJzdmGwkRisT7r4rak0e655AcM/tF9JG/kg5fMNYlLLKglbN7gBqA==, + } + + "@shikijs/langs@1.29.2": + resolution: + { + integrity: sha512-FIBA7N3LZ+223U7cJDUYd5shmciFQlYkFXlkKVaHsCPgfVLiO+e12FmQE6Tf9vuyEsFe3dIl8qGWKXgEHL9wmQ==, + } + + "@shikijs/themes@1.29.2": + resolution: + { + integrity: sha512-i9TNZlsq4uoyqSbluIcZkmPL9Bfi3djVxRnofUHwvx/h6SRW3cwgBC5SML7vsDcWyukY0eCzVN980rqP6qNl9g==, + } + + "@shikijs/types@1.22.0": + resolution: + { + integrity: sha512-Fw/Nr7FGFhlQqHfxzZY8Cwtwk5E9nKDUgeLjZgt3UuhcM3yJR9xj3ZGNravZZok8XmEZMiYkSMTPlPkULB8nww==, + } + + "@shikijs/types@1.29.2": + resolution: + { + integrity: sha512-VJjK0eIijTZf0QSTODEXCqinjBn0joAHQ+aPSBzrv4O2d/QSbsMw+ZeSRx03kV34Hy7NzUvV/7NqfYGRLrASmw==, + } + + "@shikijs/vscode-textmate@10.0.2": + resolution: + { + integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==, + } + + "@shikijs/vscode-textmate@9.3.0": + resolution: + { + integrity: sha512-jn7/7ky30idSkd/O5yDBfAnVt+JJpepofP/POZ1iMOxK59cOfqIgg/Dj0eFsjOTMw+4ycJN0uhZH/Eb0bs/EUA==, + } + + "@sinclair/typebox@0.27.8": + resolution: + { + integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==, + } + + "@sindresorhus/merge-streams@2.3.0": + resolution: + { + integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==, + } + engines: { node: ">=18" } + + "@solid-primitives/clipboard@1.5.10": + resolution: + { + integrity: sha512-ohwlrBP4j+Qjksg01CFWaP/USpzX78dBNVA1DPRZkf/vJgytX0T6KMc2YxF6o8fs6ePIYSI8Nt3sKxF0sh1q+Q==, + } peerDependencies: solid-js: ^1.6.12 - '@solid-primitives/context@0.2.3': - resolution: {integrity: sha512-6/e8qu9qJf48FJ+sxc/B782NdgFw5TvI8+r6U0gHizumfZcWZg8FAJqvRZAiwlygkUNiTQOGTeO10LVbMm0kvg==} + "@solid-primitives/context@0.2.3": + resolution: + { + integrity: sha512-6/e8qu9qJf48FJ+sxc/B782NdgFw5TvI8+r6U0gHizumfZcWZg8FAJqvRZAiwlygkUNiTQOGTeO10LVbMm0kvg==, + } peerDependencies: solid-js: ^1.6.12 - '@solid-primitives/event-listener@2.3.3': - resolution: {integrity: sha512-DAJbl+F0wrFW2xmcV8dKMBhk9QLVLuBSW+TR4JmIfTaObxd13PuL7nqaXnaYKDWOYa6otB00qcCUIGbuIhSUgQ==} + "@solid-primitives/event-listener@2.3.3": + resolution: + { + integrity: sha512-DAJbl+F0wrFW2xmcV8dKMBhk9QLVLuBSW+TR4JmIfTaObxd13PuL7nqaXnaYKDWOYa6otB00qcCUIGbuIhSUgQ==, + } peerDependencies: solid-js: ^1.6.12 - '@solid-primitives/keyboard@1.2.8': - resolution: {integrity: sha512-pJtcbkjozS6L1xvTht9rPpyPpX55nAkfBzbFWdf3y0Suwh6qClTibvvObzKOf7uzQ+8aZRDH4LsoGmbTKXtJjQ==} + "@solid-primitives/keyboard@1.2.8": + resolution: + { + integrity: sha512-pJtcbkjozS6L1xvTht9rPpyPpX55nAkfBzbFWdf3y0Suwh6qClTibvvObzKOf7uzQ+8aZRDH4LsoGmbTKXtJjQ==, + } peerDependencies: solid-js: ^1.6.12 - '@solid-primitives/keyed@1.2.2': - resolution: {integrity: sha512-oBziY40JK4XmJ57XGkFl8j0GtEarSu0hhjdkUQgqL/U0QQE3TZrRo9uhgH7I6VGJKBKG7SAraTPE6S5lVLM1ow==} + "@solid-primitives/keyed@1.2.2": + resolution: + { + integrity: sha512-oBziY40JK4XmJ57XGkFl8j0GtEarSu0hhjdkUQgqL/U0QQE3TZrRo9uhgH7I6VGJKBKG7SAraTPE6S5lVLM1ow==, + } peerDependencies: solid-js: ^1.6.12 - '@solid-primitives/map@0.4.13': - resolution: {integrity: sha512-B1zyFbsiTQvqPr+cuPCXO72sRuczG9Swncqk5P74NCGw1VE8qa/Ry9GlfI1e/VdeQYHjan+XkbE3rO2GW/qKew==} + "@solid-primitives/map@0.4.13": + resolution: + { + integrity: sha512-B1zyFbsiTQvqPr+cuPCXO72sRuczG9Swncqk5P74NCGw1VE8qa/Ry9GlfI1e/VdeQYHjan+XkbE3rO2GW/qKew==, + } peerDependencies: solid-js: ^1.6.12 - '@solid-primitives/marker@0.1.0': - resolution: {integrity: sha512-vRbqZ1z0qVYXLg5UmG4q5zAZeT6rOl2FcTyis7lnrp7WtY/WynsqIbiDEmnE9LJJPWdAz6HGZBgsOXeWkbPelw==} + "@solid-primitives/marker@0.1.0": + resolution: + { + integrity: sha512-vRbqZ1z0qVYXLg5UmG4q5zAZeT6rOl2FcTyis7lnrp7WtY/WynsqIbiDEmnE9LJJPWdAz6HGZBgsOXeWkbPelw==, + } peerDependencies: solid-js: ^1.6.12 - '@solid-primitives/media@2.2.9': - resolution: {integrity: sha512-QUmU62D4/d9YWx/4Dvr/UZasIkIpqNXz7wosA5GLmesRW9XlPa3G5M6uOmTw73SByHNTCw0D6x8bSdtvvLgzvQ==} + "@solid-primitives/media@2.2.9": + resolution: + { + integrity: sha512-QUmU62D4/d9YWx/4Dvr/UZasIkIpqNXz7wosA5GLmesRW9XlPa3G5M6uOmTw73SByHNTCw0D6x8bSdtvvLgzvQ==, + } peerDependencies: solid-js: ^1.6.12 - '@solid-primitives/platform@0.1.2': - resolution: {integrity: sha512-sSxcZfuUrtxcwV0vdjmGnZQcflACzMfLriVeIIWXKp8hzaS3Or3tO6EFQkTd3L8T5dTq+kTtLvPscXIpL0Wzdg==} + "@solid-primitives/platform@0.1.2": + resolution: + { + integrity: sha512-sSxcZfuUrtxcwV0vdjmGnZQcflACzMfLriVeIIWXKp8hzaS3Or3tO6EFQkTd3L8T5dTq+kTtLvPscXIpL0Wzdg==, + } peerDependencies: solid-js: ^1.6.12 - '@solid-primitives/props@3.1.11': - resolution: {integrity: sha512-jZAKWwvDRHjiydIumDgMj68qviIbowQ1ci7nkEAgzgvanNkhKSQV8iPgR2jMk1uv7S2ZqXYHslVQTgJel/TEyg==} + "@solid-primitives/props@3.1.11": + resolution: + { + integrity: sha512-jZAKWwvDRHjiydIumDgMj68qviIbowQ1ci7nkEAgzgvanNkhKSQV8iPgR2jMk1uv7S2ZqXYHslVQTgJel/TEyg==, + } peerDependencies: solid-js: ^1.6.12 - '@solid-primitives/refs@1.0.8': - resolution: {integrity: sha512-+jIsWG8/nYvhaCoG2Vg6CJOLgTmPKFbaCrNQKWfChalgUf9WrVxWw0CdJb3yX15n5lUcQ0jBo6qYtuVVmBLpBw==} + "@solid-primitives/refs@1.0.8": + resolution: + { + integrity: sha512-+jIsWG8/nYvhaCoG2Vg6CJOLgTmPKFbaCrNQKWfChalgUf9WrVxWw0CdJb3yX15n5lUcQ0jBo6qYtuVVmBLpBw==, + } peerDependencies: solid-js: ^1.6.12 - '@solid-primitives/resize-observer@2.0.26': - resolution: {integrity: sha512-KbPhwal6ML9OHeUTZszBbt6PYSMj89d4wVCLxlvDYL4U0+p+xlCEaqz6v9dkCwm/0Lb+Wed7W5T1dQZCP3JUUw==} + "@solid-primitives/resize-observer@2.0.26": + resolution: + { + integrity: sha512-KbPhwal6ML9OHeUTZszBbt6PYSMj89d4wVCLxlvDYL4U0+p+xlCEaqz6v9dkCwm/0Lb+Wed7W5T1dQZCP3JUUw==, + } peerDependencies: solid-js: ^1.6.12 - '@solid-primitives/rootless@1.4.5': - resolution: {integrity: sha512-GFJE9GC3ojx0aUKqAUZmQPyU8fOVMtnVNrkdk2yS4kd17WqVSpXpoTmo9CnOwA+PG7FTzdIkogvfLQSLs4lrww==} + "@solid-primitives/rootless@1.4.5": + resolution: + { + integrity: sha512-GFJE9GC3ojx0aUKqAUZmQPyU8fOVMtnVNrkdk2yS4kd17WqVSpXpoTmo9CnOwA+PG7FTzdIkogvfLQSLs4lrww==, + } peerDependencies: solid-js: ^1.6.12 - '@solid-primitives/scroll@2.0.23': - resolution: {integrity: sha512-kO0YpXKEUHaAnHp3zIsHYmxxuKXO3/LxVhZQHHmhqsmUY6A5IBObkSkoQ/ChIPl/WMKE7ynxEq40OgRmhvyUSw==} + "@solid-primitives/scroll@2.0.23": + resolution: + { + integrity: sha512-kO0YpXKEUHaAnHp3zIsHYmxxuKXO3/LxVhZQHHmhqsmUY6A5IBObkSkoQ/ChIPl/WMKE7ynxEq40OgRmhvyUSw==, + } peerDependencies: solid-js: ^1.6.12 - '@solid-primitives/static-store@0.0.8': - resolution: {integrity: sha512-ZecE4BqY0oBk0YG00nzaAWO5Mjcny8Fc06CdbXadH9T9lzq/9GefqcSe/5AtdXqjvY/DtJ5C6CkcjPZO0o/eqg==} + "@solid-primitives/static-store@0.0.8": + resolution: + { + integrity: sha512-ZecE4BqY0oBk0YG00nzaAWO5Mjcny8Fc06CdbXadH9T9lzq/9GefqcSe/5AtdXqjvY/DtJ5C6CkcjPZO0o/eqg==, + } peerDependencies: solid-js: ^1.6.12 - '@solid-primitives/trigger@1.1.0': - resolution: {integrity: sha512-00BbAiXV66WwjHuKZc3wr0+GLb9C24mMUmi3JdTpNFgHBbrQGrIHubmZDg36c5/7wH+E0GQtOOanwQS063PO+A==} + "@solid-primitives/trigger@1.1.0": + resolution: + { + integrity: sha512-00BbAiXV66WwjHuKZc3wr0+GLb9C24mMUmi3JdTpNFgHBbrQGrIHubmZDg36c5/7wH+E0GQtOOanwQS063PO+A==, + } peerDependencies: solid-js: ^1.6.12 - '@solid-primitives/utils@6.2.3': - resolution: {integrity: sha512-CqAwKb2T5Vi72+rhebSsqNZ9o67buYRdEJrIFzRXz3U59QqezuuxPsyzTSVCacwS5Pf109VRsgCJQoxKRoECZQ==} + "@solid-primitives/utils@6.2.3": + resolution: + { + integrity: sha512-CqAwKb2T5Vi72+rhebSsqNZ9o67buYRdEJrIFzRXz3U59QqezuuxPsyzTSVCacwS5Pf109VRsgCJQoxKRoECZQ==, + } peerDependencies: solid-js: ^1.6.12 - '@solidjs/meta@0.29.4': - resolution: {integrity: sha512-zdIWBGpR9zGx1p1bzIPqF5Gs+Ks/BH8R6fWhmUa/dcK1L2rUC8BAcZJzNRYBQv74kScf1TSOs0EY//Vd/I0V8g==} + "@solidjs/meta@0.29.4": + resolution: + { + integrity: sha512-zdIWBGpR9zGx1p1bzIPqF5Gs+Ks/BH8R6fWhmUa/dcK1L2rUC8BAcZJzNRYBQv74kScf1TSOs0EY//Vd/I0V8g==, + } peerDependencies: - solid-js: '>=1.8.4' + solid-js: ">=1.8.4" - '@solidjs/router@0.15.3': - resolution: {integrity: sha512-iEbW8UKok2Oio7o6Y4VTzLj+KFCmQPGEpm1fS3xixwFBdclFVBvaQVeibl1jys4cujfAK5Kn6+uG2uBm3lxOMw==} + "@solidjs/router@0.15.3": + resolution: + { + integrity: sha512-iEbW8UKok2Oio7o6Y4VTzLj+KFCmQPGEpm1fS3xixwFBdclFVBvaQVeibl1jys4cujfAK5Kn6+uG2uBm3lxOMw==, + } peerDependencies: solid-js: ^1.8.6 - '@solidjs/start@1.1.1': - resolution: {integrity: sha512-vJuXJlhHvP/hSdKQ+iuvBU2bw0S+IKQYOyldnRoCvrX7Nmu1p3npnACSlhNNkN06IqSX3MVde8D8Lr9xXEMjRQ==} + "@solidjs/start@1.1.1": + resolution: + { + integrity: sha512-vJuXJlhHvP/hSdKQ+iuvBU2bw0S+IKQYOyldnRoCvrX7Nmu1p3npnACSlhNNkN06IqSX3MVde8D8Lr9xXEMjRQ==, + } peerDependencies: vinxi: ^0.5.3 - '@swc/helpers@0.5.13': - resolution: {integrity: sha512-UoKGxQ3r5kYI9dALKJapMmuK+1zWM/H17Z1+iwnNmzcJRnfFuevZs375TA5rW31pu4BS4NoSy1fRsexDXfWn5w==} - - '@tailwindcss/typography@0.5.15': - resolution: {integrity: sha512-AqhlCXl+8grUz8uqExv5OTtgpjuVIwFTSXTrh8y9/pw6q2ek7fJ+Y8ZEVw7EB2DCcuCOtEjf9w3+J3rzts01uA==} + "@swc/helpers@0.5.13": + resolution: + { + integrity: sha512-UoKGxQ3r5kYI9dALKJapMmuK+1zWM/H17Z1+iwnNmzcJRnfFuevZs375TA5rW31pu4BS4NoSy1fRsexDXfWn5w==, + } + + "@tailwindcss/typography@0.5.15": + resolution: + { + integrity: sha512-AqhlCXl+8grUz8uqExv5OTtgpjuVIwFTSXTrh8y9/pw6q2ek7fJ+Y8ZEVw7EB2DCcuCOtEjf9w3+J3rzts01uA==, + } peerDependencies: - tailwindcss: '>=3.0.0 || insiders || >=4.0.0-alpha.20' - - '@tanstack/directive-functions-plugin@1.106.0': - resolution: {integrity: sha512-eAK+8tGl+ZZimROdnuHoAc1MVKvmQWh7WTQbh531607NQAuD/7TgbTAiSBfTJYW8qeGovrSp/qq+dnhjqTy3xQ==} - engines: {node: '>=12'} - - '@tanstack/router-utils@1.102.2': - resolution: {integrity: sha512-Uwl2nbrxhCzviaHHBLNPhSC/OMpZLdOTxTJndUSsXTzWUP4IoQcVmngaIsxi9iriE3ArC1VXuanUAkfGmimNOQ==} - engines: {node: '>=12'} - - '@tanstack/server-functions-plugin@1.106.0': - resolution: {integrity: sha512-uFqiICV0b9t7jluQLroUt9/2PayEKu4hWTS5nezWsW8kNaK0Pw4avdLK+8mYjYuJLBhuQrQZ/mSEMqdJYgYv0Q==} - engines: {node: '>=12'} - - '@types/acorn@4.0.6': - resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==} - - '@types/babel__code-frame@7.0.6': - resolution: {integrity: sha512-Anitqkl3+KrzcW2k77lRlg/GfLZLWXBuNgbEcIOU6M92yw42vsd3xV/Z/yAHEj8m+KUjL6bWOVOFqX8PFPJ4LA==} - - '@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__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/braces@3.0.4': - resolution: {integrity: sha512-0WR3b8eaISjEW7RpZnclONaLFDf7buaowRHdqLp4vLj54AsSAYWfh3DRbfiYJY9XDxMgx1B4sE1Afw2PGpuHOA==} - - '@types/debug@4.1.12': - resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} - - '@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/hast@3.0.4': - resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} - - '@types/http-proxy@1.17.15': - resolution: {integrity: sha512-25g5atgiVNTIv0LBDTg1H74Hvayx0ajtJPLLcYE3whFv75J0pWNtOBzaXJQgDTmrX1bx5U9YC2w/n65BN1HwRQ==} - - '@types/json-schema@7.0.15': - resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - - '@types/mdast@4.0.4': - resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} - - '@types/mdx@2.0.13': - resolution: {integrity: sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==} - - '@types/micromatch@4.0.9': - resolution: {integrity: sha512-7V+8ncr22h4UoYRLnLXSpTxjQrNUXtWHGeMPRJt1nULXI57G9bIcpyrHlmrQ7QK24EyyuXvYcSSWAM8GA9nqCg==} - - '@types/ms@0.7.34': - resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} - - '@types/node-fetch@2.6.11': - resolution: {integrity: sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==} - - '@types/node@17.0.45': - resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==} - - '@types/node@18.19.55': - resolution: {integrity: sha512-zzw5Vw52205Zr/nmErSEkN5FLqXPuKX/k5d1D7RKHATGqU7y6YfX9QxZraUzUrFGqH6XzOzG196BC35ltJC4Cw==} - - '@types/node@22.9.0': - resolution: {integrity: sha512-vuyHg81vvWA1Z1ELfvLko2c8f34gyA0zaic0+Rllc5lbCnbSyuvb2Oxpm6TAUAC/2xZN3QGqxBNggD1nNR2AfQ==} - - '@types/resolve@1.20.2': - resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} - - '@types/sax@1.2.7': - resolution: {integrity: sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==} - - '@types/semver@7.5.8': - resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} - - '@types/ungap__structured-clone@1.2.0': - resolution: {integrity: sha512-ZoaihZNLeZSxESbk9PUAPZOlSpcKx81I1+4emtULDVmBLkYutTcMlCj2K9VNlf9EWODxdO6gkAqEaLorXwZQVA==} - - '@types/unist@2.0.11': - resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==} - - '@types/unist@3.0.3': - resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} - - '@typescript-eslint/eslint-plugin@8.9.0': - resolution: {integrity: sha512-Y1n621OCy4m7/vTXNlCbMVp87zSd7NH0L9cXD8aIpOaNlzeWxIK4+Q19A68gSmTNRZn92UjocVUWDthGxtqHFg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + tailwindcss: ">=3.0.0 || insiders || >=4.0.0-alpha.20" + + "@tanstack/directive-functions-plugin@1.106.0": + resolution: + { + integrity: sha512-eAK+8tGl+ZZimROdnuHoAc1MVKvmQWh7WTQbh531607NQAuD/7TgbTAiSBfTJYW8qeGovrSp/qq+dnhjqTy3xQ==, + } + engines: { node: ">=12" } + + "@tanstack/router-utils@1.102.2": + resolution: + { + integrity: sha512-Uwl2nbrxhCzviaHHBLNPhSC/OMpZLdOTxTJndUSsXTzWUP4IoQcVmngaIsxi9iriE3ArC1VXuanUAkfGmimNOQ==, + } + engines: { node: ">=12" } + + "@tanstack/server-functions-plugin@1.106.0": + resolution: + { + integrity: sha512-uFqiICV0b9t7jluQLroUt9/2PayEKu4hWTS5nezWsW8kNaK0Pw4avdLK+8mYjYuJLBhuQrQZ/mSEMqdJYgYv0Q==, + } + engines: { node: ">=12" } + + "@types/acorn@4.0.6": + resolution: + { + integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==, + } + + "@types/babel__code-frame@7.0.6": + resolution: + { + integrity: sha512-Anitqkl3+KrzcW2k77lRlg/GfLZLWXBuNgbEcIOU6M92yw42vsd3xV/Z/yAHEj8m+KUjL6bWOVOFqX8PFPJ4LA==, + } + + "@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__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/braces@3.0.4": + resolution: + { + integrity: sha512-0WR3b8eaISjEW7RpZnclONaLFDf7buaowRHdqLp4vLj54AsSAYWfh3DRbfiYJY9XDxMgx1B4sE1Afw2PGpuHOA==, + } + + "@types/debug@4.1.12": + resolution: + { + integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==, + } + + "@types/eslint@8.56.12": + resolution: + { + integrity: sha512-03ruubjWyOHlmljCVoxSuNDdmfZDzsrrz0P2LeJsOXr+ZwFQ+0yQIwNCwt/GYhV7Z31fgtXJTAEs+FYlEL851g==, + } + + "@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/hast@3.0.4": + resolution: + { + integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==, + } + + "@types/http-proxy@1.17.15": + resolution: + { + integrity: sha512-25g5atgiVNTIv0LBDTg1H74Hvayx0ajtJPLLcYE3whFv75J0pWNtOBzaXJQgDTmrX1bx5U9YC2w/n65BN1HwRQ==, + } + + "@types/json-schema@7.0.15": + resolution: + { + integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==, + } + + "@types/mdast@4.0.4": + resolution: + { + integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==, + } + + "@types/mdx@2.0.13": + resolution: + { + integrity: sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==, + } + + "@types/micromatch@4.0.9": + resolution: + { + integrity: sha512-7V+8ncr22h4UoYRLnLXSpTxjQrNUXtWHGeMPRJt1nULXI57G9bIcpyrHlmrQ7QK24EyyuXvYcSSWAM8GA9nqCg==, + } + + "@types/ms@0.7.34": + resolution: + { + integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==, + } + + "@types/node-fetch@2.6.11": + resolution: + { + integrity: sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==, + } + + "@types/node@17.0.45": + resolution: + { + integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==, + } + + "@types/node@18.19.55": + resolution: + { + integrity: sha512-zzw5Vw52205Zr/nmErSEkN5FLqXPuKX/k5d1D7RKHATGqU7y6YfX9QxZraUzUrFGqH6XzOzG196BC35ltJC4Cw==, + } + + "@types/node@22.9.0": + resolution: + { + integrity: sha512-vuyHg81vvWA1Z1ELfvLko2c8f34gyA0zaic0+Rllc5lbCnbSyuvb2Oxpm6TAUAC/2xZN3QGqxBNggD1nNR2AfQ==, + } + + "@types/resolve@1.20.2": + resolution: + { + integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==, + } + + "@types/sax@1.2.7": + resolution: + { + integrity: sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==, + } + + "@types/ungap__structured-clone@1.2.0": + resolution: + { + integrity: sha512-ZoaihZNLeZSxESbk9PUAPZOlSpcKx81I1+4emtULDVmBLkYutTcMlCj2K9VNlf9EWODxdO6gkAqEaLorXwZQVA==, + } + + "@types/unist@2.0.11": + resolution: + { + integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==, + } + + "@types/unist@3.0.3": + resolution: + { + integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==, + } + + "@typescript-eslint/eslint-plugin@8.26.0": + resolution: + { + integrity: sha512-cLr1J6pe56zjKYajK6SSSre6nl1Gj6xDp1TY0trpgPzjVbgDwd09v2Ws37LABxzkicmUjhEeg/fAUjPJJB1v5Q==, + } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } peerDependencies: - '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 + "@typescript-eslint/parser": ^8.0.0 || ^8.0.0-alpha.0 eslint: ^8.57.0 || ^9.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/parser@8.9.0': - resolution: {integrity: sha512-U+BLn2rqTTHnc4FL3FJjxaXptTxmf9sNftJK62XLz4+GxG3hLHm/SUNaaXP5Y4uTiuYoL5YLy4JBCJe3+t8awQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + typescript: ">=4.8.4 <5.9.0" + + "@typescript-eslint/parser@8.26.0": + resolution: + { + integrity: sha512-mNtXP9LTVBy14ZF3o7JG69gRPBK/2QWtQd0j0oH26HcY/foyJJau6pNUez7QrM5UHnSvwlQcJXKsk0I99B9pOA==, + } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/scope-manager@6.21.0': - resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==} - engines: {node: ^16.0.0 || >=18.0.0} - - '@typescript-eslint/scope-manager@8.9.0': - resolution: {integrity: sha512-bZu9bUud9ym1cabmOYH9S6TnbWRzpklVmwqICeOulTCZ9ue2/pczWzQvt/cGj2r2o1RdKoZbuEMalJJSYw3pHQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@typescript-eslint/type-utils@8.9.0': - resolution: {integrity: sha512-JD+/pCqlKqAk5961vxCluK+clkppHY07IbV3vett97KOV+8C6l+CPEPwpUuiMwgbOz/qrN3Ke4zzjqbT+ls+1Q==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/types@6.21.0': - resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==} - engines: {node: ^16.0.0 || >=18.0.0} - - '@typescript-eslint/types@8.9.0': - resolution: {integrity: sha512-SjgkvdYyt1FAPhU9c6FiYCXrldwYYlIQLkuc+LfAhCna6ggp96ACncdtlbn8FmnG72tUkXclrDExOpEYf1nfJQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@typescript-eslint/typescript-estree@6.21.0': - resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==} - engines: {node: ^16.0.0 || >=18.0.0} + typescript: ">=4.8.4 <5.9.0" + + "@typescript-eslint/scope-manager@8.26.0": + resolution: + { + integrity: sha512-E0ntLvsfPqnPwng8b8y4OGuzh/iIOm2z8U3S9zic2TeMLW61u5IH2Q1wu0oSTkfrSzwbDJIB/Lm8O3//8BWMPA==, + } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + + "@typescript-eslint/type-utils@8.26.0": + resolution: + { + integrity: sha512-ruk0RNChLKz3zKGn2LwXuVoeBcUMh+jaqzN461uMMdxy5H9epZqIBtYj7UiPXRuOpaALXGbmRuZQhmwHhaS04Q==, + } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/typescript-estree@8.9.0': - resolution: {integrity: sha512-9iJYTgKLDG6+iqegehc5+EqE6sqaee7kb8vWpmHZ86EqwDjmlqNNHeqDVqb9duh+BY6WCNHfIGvuVU3Tf9Db0g==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/utils@6.21.0': - resolution: {integrity: sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==} - engines: {node: ^16.0.0 || >=18.0.0} + eslint: ^8.57.0 || ^9.0.0 + typescript: ">=4.8.4 <5.9.0" + + "@typescript-eslint/types@8.26.0": + resolution: + { + integrity: sha512-89B1eP3tnpr9A8L6PZlSjBvnJhWXtYfZhECqlBl1D9Lme9mHO6iWlsprBtVenQvY1HMhax1mWOjhtL3fh/u+pA==, + } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + + "@typescript-eslint/typescript-estree@8.26.0": + resolution: + { + integrity: sha512-tiJ1Hvy/V/oMVRTbEOIeemA2XoylimlDQ03CgPPNaHYZbpsc78Hmngnt+WXZfJX1pjQ711V7g0H7cSJThGYfPQ==, + } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - - '@typescript-eslint/utils@8.9.0': - resolution: {integrity: sha512-PKgMmaSo/Yg/F7kIZvrgrWa1+Vwn036CdNUvYFEkYbPwOH4i8xvkaRlu148W3vtheWK9ckKRIz7PBP5oUlkrvQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + typescript: ">=4.8.4 <5.9.0" + + "@typescript-eslint/utils@8.26.0": + resolution: + { + integrity: sha512-2L2tU3FVwhvU14LndnQCA2frYC8JnPDVKyQtWFPf8IYFMt/ykEN1bPolNhNbCVgOmdzTlWdusCTKA/9nKrf8Ig==, + } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } peerDependencies: eslint: ^8.57.0 || ^9.0.0 - - '@typescript-eslint/visitor-keys@6.21.0': - resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==} - engines: {node: ^16.0.0 || >=18.0.0} - - '@typescript-eslint/visitor-keys@8.9.0': - resolution: {integrity: sha512-Ht4y38ubk4L5/U8xKUBfKNYGmvKvA1CANoxiTRMM+tOLk3lbF3DvzZCxJCRSE+2GdCMSh6zq9VZJc3asc1XuAA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@ungap/structured-clone@1.2.0': - resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - - '@vercel/nft@0.27.10': - resolution: {integrity: sha512-zbaF9Wp/NsZtKLE4uVmL3FyfFwlpDyuymQM1kPbeT0mVOHKDQQNjnnfslB3REg3oZprmNFJuh3pkHBk2qAaizg==} - engines: {node: '>=16'} + typescript: ">=4.8.4 <5.9.0" + + "@typescript-eslint/visitor-keys@8.26.0": + resolution: + { + integrity: sha512-2z8JQJWAzPdDd51dRQ/oqIJxe99/hoLIqmf8RMCAJQtYDc535W/Jt2+RTP4bP0aKeBG1F65yjIZuczOXCmbWwg==, + } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + + "@typescript/vfs@1.6.1": + resolution: + { + integrity: sha512-JwoxboBh7Oz1v38tPbkrZ62ZXNHAk9bJ7c9x0eI5zBfBnBYGhURdbnh7Z4smN/MV48Y5OCcZb58n972UtbazsA==, + } + peerDependencies: + typescript: "*" + + "@ungap/structured-clone@1.2.0": + resolution: + { + integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==, + } + + "@vercel/nft@0.27.10": + resolution: + { + integrity: sha512-zbaF9Wp/NsZtKLE4uVmL3FyfFwlpDyuymQM1kPbeT0mVOHKDQQNjnnfslB3REg3oZprmNFJuh3pkHBk2qAaizg==, + } + engines: { node: ">=16" } hasBin: true - '@vinxi/listhen@1.5.6': - resolution: {integrity: sha512-WSN1z931BtasZJlgPp704zJFnQFRg7yzSjkm3MzAWQYe4uXFXlFr1hc5Ac2zae5/HDOz5x1/zDM5Cb54vTCnWw==} + "@vinxi/listhen@1.5.6": + resolution: + { + integrity: sha512-WSN1z931BtasZJlgPp704zJFnQFRg7yzSjkm3MzAWQYe4uXFXlFr1hc5Ac2zae5/HDOz5x1/zDM5Cb54vTCnWw==, + } hasBin: true - '@vinxi/plugin-directives@0.5.0': - resolution: {integrity: sha512-zpgPWoul5vKbNH5GASHtHa7InwQWElmVdOexvyO4Nfvz7CeYfAAQ5/BAV01sVJPks4dfsLnBCegAgRPRykdUeA==} + "@vinxi/plugin-directives@0.5.0": + resolution: + { + integrity: sha512-zpgPWoul5vKbNH5GASHtHa7InwQWElmVdOexvyO4Nfvz7CeYfAAQ5/BAV01sVJPks4dfsLnBCegAgRPRykdUeA==, + } peerDependencies: vinxi: ^0.5.0 - '@vinxi/plugin-mdx@3.7.2': - resolution: {integrity: sha512-OKXagCMa9P/FD50gGZlczbvNqeM/z7AVf5ppO84BFtP/y01NRHy00LYYe4zbtsyqdbjK78pG2iWOQ8PZwie0jQ==} + "@vinxi/plugin-mdx@3.7.2": + resolution: + { + integrity: sha512-OKXagCMa9P/FD50gGZlczbvNqeM/z7AVf5ppO84BFtP/y01NRHy00LYYe4zbtsyqdbjK78pG2iWOQ8PZwie0jQ==, + } peerDependencies: - '@mdx-js/mdx': <3 + "@mdx-js/mdx": <3 - '@vinxi/server-components@0.5.0': - resolution: {integrity: sha512-2p6ZYzoqF7ZAriU0rC9KJWSX/n5qHhUBs7x04SLYzmy9lFxQNw3YHsmsA4b3aHDU+Mxw26wyFwvIbrL6eU3Gyw==} + "@vinxi/server-components@0.5.0": + resolution: + { + integrity: sha512-2p6ZYzoqF7ZAriU0rC9KJWSX/n5qHhUBs7x04SLYzmy9lFxQNw3YHsmsA4b3aHDU+Mxw26wyFwvIbrL6eU3Gyw==, + } peerDependencies: vinxi: ^0.5.0 - '@vue/compiler-core@3.5.12': - resolution: {integrity: sha512-ISyBTRMmMYagUxhcpyEH0hpXRd/KqDU4ymofPgl2XAkY9ZhQ+h0ovEZJIiPop13UmR/54oA2cgMDjgroRelaEw==} - - '@vue/compiler-dom@3.5.12': - resolution: {integrity: sha512-9G6PbJ03uwxLHKQ3P42cMTi85lDRvGLB2rSGOiQqtXELat6uI4n8cNz9yjfVHRPIu+MsK6TE418Giruvgptckg==} - - '@vue/compiler-sfc@3.5.12': - resolution: {integrity: sha512-2k973OGo2JuAa5+ZlekuQJtitI5CgLMOwgl94BzMCsKZCX/xiqzJYzapl4opFogKHqwJk34vfsaKpfEhd1k5nw==} - - '@vue/compiler-ssr@3.5.12': - resolution: {integrity: sha512-eLwc7v6bfGBSM7wZOGPmRavSWzNFF6+PdRhE+VFJhNCgHiF8AM7ccoqcv5kBXA2eWUfigD7byekvf/JsOfKvPA==} - - '@vue/reactivity@3.5.12': - resolution: {integrity: sha512-UzaN3Da7xnJXdz4Okb/BGbAaomRHc3RdoWqTzlvd9+WBR5m3J39J1fGcHes7U3za0ruYn/iYy/a1euhMEHvTAg==} - - '@vue/runtime-core@3.5.12': - resolution: {integrity: sha512-hrMUYV6tpocr3TL3Ad8DqxOdpDe4zuQY4HPY3X/VRh+L2myQO8MFXPAMarIOSGNu0bFAjh1yBkMPXZBqCk62Uw==} - - '@vue/runtime-dom@3.5.12': - resolution: {integrity: sha512-q8VFxR9A2MRfBr6/55Q3umyoN7ya836FzRXajPB6/Vvuv0zOPL+qltd9rIMzG/DbRLAIlREmnLsplEF/kotXKA==} - - '@vue/server-renderer@3.5.12': - resolution: {integrity: sha512-I3QoeDDeEPZm8yR28JtY+rk880Oqmj43hreIBVTicisFTx/Dl7JpG72g/X7YF8hnQD3IFhkky5i2bPonwrTVPg==} + "@vue/compiler-core@3.5.12": + resolution: + { + integrity: sha512-ISyBTRMmMYagUxhcpyEH0hpXRd/KqDU4ymofPgl2XAkY9ZhQ+h0ovEZJIiPop13UmR/54oA2cgMDjgroRelaEw==, + } + + "@vue/compiler-dom@3.5.12": + resolution: + { + integrity: sha512-9G6PbJ03uwxLHKQ3P42cMTi85lDRvGLB2rSGOiQqtXELat6uI4n8cNz9yjfVHRPIu+MsK6TE418Giruvgptckg==, + } + + "@vue/compiler-sfc@3.5.12": + resolution: + { + integrity: sha512-2k973OGo2JuAa5+ZlekuQJtitI5CgLMOwgl94BzMCsKZCX/xiqzJYzapl4opFogKHqwJk34vfsaKpfEhd1k5nw==, + } + + "@vue/compiler-ssr@3.5.12": + resolution: + { + integrity: sha512-eLwc7v6bfGBSM7wZOGPmRavSWzNFF6+PdRhE+VFJhNCgHiF8AM7ccoqcv5kBXA2eWUfigD7byekvf/JsOfKvPA==, + } + + "@vue/reactivity@3.5.12": + resolution: + { + integrity: sha512-UzaN3Da7xnJXdz4Okb/BGbAaomRHc3RdoWqTzlvd9+WBR5m3J39J1fGcHes7U3za0ruYn/iYy/a1euhMEHvTAg==, + } + + "@vue/runtime-core@3.5.12": + resolution: + { + integrity: sha512-hrMUYV6tpocr3TL3Ad8DqxOdpDe4zuQY4HPY3X/VRh+L2myQO8MFXPAMarIOSGNu0bFAjh1yBkMPXZBqCk62Uw==, + } + + "@vue/runtime-dom@3.5.12": + resolution: + { + integrity: sha512-q8VFxR9A2MRfBr6/55Q3umyoN7ya836FzRXajPB6/Vvuv0zOPL+qltd9rIMzG/DbRLAIlREmnLsplEF/kotXKA==, + } + + "@vue/server-renderer@3.5.12": + resolution: + { + integrity: sha512-I3QoeDDeEPZm8yR28JtY+rk880Oqmj43hreIBVTicisFTx/Dl7JpG72g/X7YF8hnQD3IFhkky5i2bPonwrTVPg==, + } peerDependencies: vue: 3.5.12 - '@vue/shared@3.5.12': - resolution: {integrity: sha512-L2RPSAwUFbgZH20etwrXyVyCBu9OxRSi8T/38QsvnkJyvq2LufW2lDCOzm7t/U9C1mkhJGWYfCuFBCmIuNivrg==} + "@vue/shared@3.5.12": + resolution: + { + integrity: sha512-L2RPSAwUFbgZH20etwrXyVyCBu9OxRSi8T/38QsvnkJyvq2LufW2lDCOzm7t/U9C1mkhJGWYfCuFBCmIuNivrg==, + } abbrev@3.0.0: - resolution: {integrity: sha512-+/kfrslGQ7TNV2ecmQwMJj/B65g5KVq1/L3SGVZ3tCYGqlzFuFCGBZJtMP99wH3NpEUyAjn0zPdPUg0D+DwrOA==} - engines: {node: ^18.17.0 || >=20.5.0} + resolution: + { + integrity: sha512-+/kfrslGQ7TNV2ecmQwMJj/B65g5KVq1/L3SGVZ3tCYGqlzFuFCGBZJtMP99wH3NpEUyAjn0zPdPUg0D+DwrOA==, + } + engines: { node: ^18.17.0 || >=20.5.0 } abort-controller@3.0.0: - resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} - engines: {node: '>=6.5'} + resolution: + { + integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==, + } + engines: { node: ">=6.5" } acorn-import-attributes@1.9.5: - resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} + resolution: + { + integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==, + } peerDependencies: acorn: ^8 acorn-jsx@5.3.2: - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + resolution: + { + integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==, + } peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 acorn-loose@8.4.0: - resolution: {integrity: sha512-M0EUka6rb+QC4l9Z3T0nJEzNOO7JcoJlYMrBlyBCiFSXRyxjLKayd4TbQs2FDRWQU1h9FR7QVNHt+PEaoNL5rQ==} - engines: {node: '>=0.4.0'} + resolution: + { + integrity: sha512-M0EUka6rb+QC4l9Z3T0nJEzNOO7JcoJlYMrBlyBCiFSXRyxjLKayd4TbQs2FDRWQU1h9FR7QVNHt+PEaoNL5rQ==, + } + engines: { node: ">=0.4.0" } acorn-typescript@1.4.13: - resolution: {integrity: sha512-xsc9Xv0xlVfwp2o7sQ+GCQ1PgbkdcpWdTzrwXxO3xDMTAywVS3oXVOcOHuRjAPkS4P9b+yc/qNF15460v+jp4Q==} + resolution: + { + integrity: sha512-xsc9Xv0xlVfwp2o7sQ+GCQ1PgbkdcpWdTzrwXxO3xDMTAywVS3oXVOcOHuRjAPkS4P9b+yc/qNF15460v+jp4Q==, + } peerDependencies: - acorn: '>=8.9.0' + acorn: ">=8.9.0" acorn@8.12.1: - resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} - engines: {node: '>=0.4.0'} + 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'} + resolution: + { + integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==, + } + engines: { node: ">=0.4.0" } + hasBin: true + + acorn@8.14.1: + resolution: + { + integrity: sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==, + } + engines: { node: ">=0.4.0" } hasBin: true agent-base@7.1.3: - resolution: {integrity: sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==} - engines: {node: '>= 14'} + resolution: + { + integrity: sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==, + } + engines: { node: ">= 14" } agentkeepalive@4.5.0: - resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==} - engines: {node: '>= 8.0.0'} + resolution: + { + integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==, + } + engines: { node: ">= 8.0.0" } ajv@6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + resolution: + { + integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==, + } algoliasearch@5.14.2: - resolution: {integrity: sha512-aYjI4WLamMxbhdJ2QAA99VbDCJOGzMOdT2agh57bi40n86ufkhZSIAf6mkocr7NmtBLtwCnSHvD5NJ+Ky5elWw==} - engines: {node: '>= 14.0.0'} + resolution: + { + integrity: sha512-aYjI4WLamMxbhdJ2QAA99VbDCJOGzMOdT2agh57bi40n86ufkhZSIAf6mkocr7NmtBLtwCnSHvD5NJ+Ky5elWw==, + } + engines: { node: ">= 14.0.0" } ansi-align@3.0.1: - resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} + resolution: + { + integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==, + } ansi-colors@4.1.3: - resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==, + } + engines: { node: ">=6" } ansi-regex@5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==, + } + engines: { node: ">=8" } ansi-regex@6.1.0: - resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==, + } + engines: { node: ">=12" } ansi-styles@3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==, + } + engines: { node: ">=4" } ansi-styles@4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==, + } + engines: { node: ">=8" } ansi-styles@5.2.0: - resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==, + } + engines: { node: ">=10" } ansi-styles@6.2.1: - resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==, + } + engines: { node: ">=12" } ansis@3.16.0: - resolution: {integrity: sha512-sU7d/tfZiYrsIAXbdL/CNZld5bCkruzwT5KmqmadCJYxuLxHAOBjidxD5+iLmN/6xEfjcQq1l7OpsiCBlc4LzA==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-sU7d/tfZiYrsIAXbdL/CNZld5bCkruzwT5KmqmadCJYxuLxHAOBjidxD5+iLmN/6xEfjcQq1l7OpsiCBlc4LzA==, + } + engines: { node: ">=14" } any-promise@1.3.0: - resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + resolution: + { + integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==, + } anymatch@3.1.3: - resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} - engines: {node: '>= 8'} + resolution: + { + integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==, + } + engines: { node: ">= 8" } archiver-utils@5.0.2: - resolution: {integrity: sha512-wuLJMmIBQYCsGZgYLTy5FIB2pF6Lfb6cXMSF8Qywwk3t20zWnAi7zLcQFdKQmIB8wyZpY5ER38x08GbwtR2cLA==} - engines: {node: '>= 14'} + resolution: + { + integrity: sha512-wuLJMmIBQYCsGZgYLTy5FIB2pF6Lfb6cXMSF8Qywwk3t20zWnAi7zLcQFdKQmIB8wyZpY5ER38x08GbwtR2cLA==, + } + engines: { node: ">= 14" } archiver@7.0.1: - resolution: {integrity: sha512-ZcbTaIqJOfCc03QwD468Unz/5Ir8ATtvAHsK+FdXbDIbGfihqh9mrvdcYunQzqn4HrvWWaFyaxJhGZagaJJpPQ==} - engines: {node: '>= 14'} + resolution: + { + integrity: sha512-ZcbTaIqJOfCc03QwD468Unz/5Ir8ATtvAHsK+FdXbDIbGfihqh9mrvdcYunQzqn4HrvWWaFyaxJhGZagaJJpPQ==, + } + engines: { node: ">= 14" } arg@5.0.2: - resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + resolution: + { + integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==, + } argparse@1.0.10: - resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + resolution: + { + integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==, + } argparse@2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - - array-union@2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==, + } ast-types@0.16.1: - resolution: {integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==, + } + engines: { node: ">=4" } astring@1.9.0: - resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==} + resolution: + { + integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==, + } hasBin: true async-sema@3.1.1: - resolution: {integrity: sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==} + resolution: + { + integrity: sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==, + } async@3.2.6: - resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} + resolution: + { + integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==, + } asynckit@0.4.0: - resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + resolution: + { + integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==, + } autoprefixer@10.4.20: - resolution: {integrity: sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==} - engines: {node: ^10 || ^12 || >=14} + resolution: + { + integrity: sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==, + } + engines: { node: ^10 || ^12 || >=14 } hasBin: true peerDependencies: postcss: ^8.1.0 b4a@1.6.7: - resolution: {integrity: sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==} + resolution: + { + integrity: sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==, + } babel-dead-code-elimination@1.0.9: - resolution: {integrity: sha512-JLIhax/xullfInZjtu13UJjaLHDeTzt3vOeomaSUdO/nAMEL/pWC/laKrSvWylXMnVWyL5bpmG9njqBZlUQOdg==} + resolution: + { + integrity: sha512-JLIhax/xullfInZjtu13UJjaLHDeTzt3vOeomaSUdO/nAMEL/pWC/laKrSvWylXMnVWyL5bpmG9njqBZlUQOdg==, + } babel-plugin-jsx-dom-expressions@0.39.2: - resolution: {integrity: sha512-rCkSYFuLl5/XD+BXjZk1XxFAsIBgNe9WZ7xBHjQV1dBliI64kO+EWktAD3b6Bj/SXk+LpVXFyMVydhnI35svWQ==} + resolution: + { + integrity: sha512-rCkSYFuLl5/XD+BXjZk1XxFAsIBgNe9WZ7xBHjQV1dBliI64kO+EWktAD3b6Bj/SXk+LpVXFyMVydhnI35svWQ==, + } peerDependencies: - '@babel/core': ^7.20.12 + "@babel/core": ^7.20.12 babel-preset-solid@1.9.2: - resolution: {integrity: sha512-rWx968GIDghgFStRDQaoqelGspEm9rgPci/yNzNPFlkzMqHaL2yob+t7BbzyqZw5b9/llkzjqUNIOybT9Z9mcg==} + resolution: + { + integrity: sha512-rWx968GIDghgFStRDQaoqelGspEm9rgPci/yNzNPFlkzMqHaL2yob+t7BbzyqZw5b9/llkzjqUNIOybT9Z9mcg==, + } peerDependencies: - '@babel/core': ^7.0.0 + "@babel/core": ^7.0.0 bail@1.0.5: - resolution: {integrity: sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==} + resolution: + { + integrity: sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==, + } bail@2.0.2: - resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} + resolution: + { + integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==, + } balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + resolution: + { + integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==, + } bare-events@2.5.0: - resolution: {integrity: sha512-/E8dDe9dsbLyh2qrZ64PEPadOQ0F4gbl1sUJOrmph7xOiIxfY8vwab/4bFLh4Y88/Hk/ujKcrQKc+ps0mv873A==} + resolution: + { + integrity: sha512-/E8dDe9dsbLyh2qrZ64PEPadOQ0F4gbl1sUJOrmph7xOiIxfY8vwab/4bFLh4Y88/Hk/ujKcrQKc+ps0mv873A==, + } base64-js@1.5.1: - resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + resolution: + { + integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==, + } bcp-47-match@2.0.3: - resolution: {integrity: sha512-JtTezzbAibu8G0R9op9zb3vcWZd9JF6M0xOYGPn0fNCd7wOpRB1mU2mH9T8gaBGbAAyIIVgB2G7xG0GP98zMAQ==} + resolution: + { + integrity: sha512-JtTezzbAibu8G0R9op9zb3vcWZd9JF6M0xOYGPn0fNCd7wOpRB1mU2mH9T8gaBGbAAyIIVgB2G7xG0GP98zMAQ==, + } binary-extensions@2.3.0: - resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==, + } + engines: { node: ">=8" } bindings@1.5.0: - resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} + resolution: + { + integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==, + } boolbase@1.0.0: - resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + resolution: + { + integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==, + } boxen@7.1.1: - resolution: {integrity: sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==} - engines: {node: '>=14.16'} + resolution: + { + integrity: sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==, + } + engines: { node: ">=14.16" } brace-expansion@1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + resolution: + { + integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==, + } brace-expansion@2.0.1: - resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + resolution: + { + integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==, + } braces@3.0.3: - resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==, + } + engines: { node: ">=8" } browserslist@4.24.0: - resolution: {integrity: sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + resolution: + { + integrity: sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==, + } + engines: { node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7 } hasBin: true buffer-crc32@1.0.0: - resolution: {integrity: sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==} - engines: {node: '>=8.0.0'} + resolution: + { + integrity: sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==, + } + engines: { node: ">=8.0.0" } buffer-from@1.1.2: - resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + resolution: + { + integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==, + } buffer@6.0.3: - resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} + resolution: + { + integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==, + } c12@2.0.1: - resolution: {integrity: sha512-Z4JgsKXHG37C6PYUtIxCfLJZvo6FyhHJoClwwb9ftUkLpPSkuYqn6Tr+vnaN8hymm0kIbcg6Ey3kv/Q71k5w/A==} + resolution: + { + integrity: sha512-Z4JgsKXHG37C6PYUtIxCfLJZvo6FyhHJoClwwb9ftUkLpPSkuYqn6Tr+vnaN8hymm0kIbcg6Ey3kv/Q71k5w/A==, + } peerDependencies: magicast: ^0.3.5 peerDependenciesMeta: @@ -1926,208 +3492,380 @@ packages: optional: true callsites@3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==, + } + engines: { node: ">=6" } camelcase-css@2.0.1: - resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} - engines: {node: '>= 6'} + resolution: + { + integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==, + } + engines: { node: ">= 6" } camelcase@7.0.1: - resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==} - engines: {node: '>=14.16'} + resolution: + { + integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==, + } + engines: { node: ">=14.16" } caniuse-lite@1.0.30001668: - resolution: {integrity: sha512-nWLrdxqCdblixUO+27JtGJJE/txpJlyUy5YN1u53wLZkP0emYCo5zgS6QYft7VUYR42LGgi/S5hdLZTrnyIddw==} + resolution: + { + integrity: sha512-nWLrdxqCdblixUO+27JtGJJE/txpJlyUy5YN1u53wLZkP0emYCo5zgS6QYft7VUYR42LGgi/S5hdLZTrnyIddw==, + } ccount@2.0.1: - resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} + resolution: + { + integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==, + } chalk@2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==, + } + engines: { node: ">=4" } chalk@4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==, + } + engines: { node: ">=10" } chalk@5.3.0: - resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} - engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + resolution: + { + integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==, + } + engines: { node: ^12.17.0 || ^14.13 || >=16.0.0 } change-case@5.4.4: - resolution: {integrity: sha512-HRQyTk2/YPEkt9TnUPbOpr64Uw3KOicFWPVBb+xiHvd6eBx/qPr9xqfBFDT8P2vWsvvz4jbEkfDe71W3VyNu2w==} + resolution: + { + integrity: sha512-HRQyTk2/YPEkt9TnUPbOpr64Uw3KOicFWPVBb+xiHvd6eBx/qPr9xqfBFDT8P2vWsvvz4jbEkfDe71W3VyNu2w==, + } character-entities-html4@2.1.0: - resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} + resolution: + { + integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==, + } character-entities-legacy@3.0.0: - resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} + resolution: + { + integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==, + } character-entities@2.0.2: - resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} + resolution: + { + integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==, + } character-reference-invalid@2.0.1: - resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} + resolution: + { + integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==, + } cheerio-select@2.1.0: - resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==} + resolution: + { + integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==, + } cheerio@1.0.0-rc.12: - resolution: {integrity: sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==} - engines: {node: '>= 6'} + resolution: + { + integrity: sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==, + } + engines: { node: ">= 6" } chokidar@3.6.0: - resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} - engines: {node: '>= 8.10.0'} + resolution: + { + integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==, + } + engines: { node: ">= 8.10.0" } chokidar@4.0.3: - resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} - engines: {node: '>= 14.16.0'} + resolution: + { + integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==, + } + engines: { node: ">= 14.16.0" } chownr@2.0.0: - resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==, + } + engines: { node: ">=10" } chownr@3.0.0: - resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==, + } + engines: { node: ">=18" } citty@0.1.6: - resolution: {integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==} + resolution: + { + integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==, + } cli-boxes@3.0.0: - resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==, + } + engines: { node: ">=10" } clipboardy@4.0.0: - resolution: {integrity: sha512-5mOlNS0mhX0707P2I0aZ2V/cmHUEO/fL7VFLqszkhUsxt7RwnmrInf/eEQKlf5GzvYeHIjT+Ov1HRfNmymlG0w==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-5mOlNS0mhX0707P2I0aZ2V/cmHUEO/fL7VFLqszkhUsxt7RwnmrInf/eEQKlf5GzvYeHIjT+Ov1HRfNmymlG0w==, + } + engines: { node: ">=18" } cliui@8.0.1: - resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==, + } + engines: { node: ">=12" } cluster-key-slot@1.1.2: - resolution: {integrity: sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==, + } + engines: { node: ">=0.10.0" } collapse-white-space@2.1.0: - resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==} + resolution: + { + integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==, + } color-convert@1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + resolution: + { + integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==, + } color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} + resolution: + { + integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==, + } + engines: { node: ">=7.0.0" } color-name@1.1.3: - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + resolution: + { + integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==, + } color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + resolution: + { + integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==, + } colorette@1.4.0: - resolution: {integrity: sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==} + resolution: + { + integrity: sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==, + } combined-stream@1.0.8: - resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} - engines: {node: '>= 0.8'} + resolution: + { + integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==, + } + engines: { node: ">= 0.8" } comma-separated-tokens@2.0.3: - resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} + resolution: + { + integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==, + } commander@2.20.3: - resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + resolution: + { + integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==, + } commander@4.1.1: - resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} - engines: {node: '>= 6'} + resolution: + { + integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==, + } + engines: { node: ">= 6" } commondir@1.0.1: - resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} + resolution: + { + integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==, + } compatx@0.1.8: - resolution: {integrity: sha512-jcbsEAR81Bt5s1qOFymBufmCbXCXbk0Ql+K5ouj6gCyx2yHlu6AgmGIi9HxfKixpUDO5bCFJUHQ5uM6ecbTebw==} + resolution: + { + integrity: sha512-jcbsEAR81Bt5s1qOFymBufmCbXCXbk0Ql+K5ouj6gCyx2yHlu6AgmGIi9HxfKixpUDO5bCFJUHQ5uM6ecbTebw==, + } compress-commons@6.0.2: - resolution: {integrity: sha512-6FqVXeETqWPoGcfzrXb37E50NP0LXT8kAMu5ooZayhWWdgEY4lBEEcbQNXtkuKQsGduxiIcI4gOTsxTmuq/bSg==} - engines: {node: '>= 14'} + resolution: + { + integrity: sha512-6FqVXeETqWPoGcfzrXb37E50NP0LXT8kAMu5ooZayhWWdgEY4lBEEcbQNXtkuKQsGduxiIcI4gOTsxTmuq/bSg==, + } + engines: { node: ">= 14" } concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + resolution: + { + integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==, + } confbox@0.1.8: - resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} + resolution: + { + integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==, + } consola@3.2.3: - resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==} - engines: {node: ^14.18.0 || >=16.10.0} + resolution: + { + integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==, + } + engines: { node: ^14.18.0 || >=16.10.0 } convert-source-map@2.0.0: - resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + resolution: + { + integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==, + } cookie-es@1.2.2: - resolution: {integrity: sha512-+W7VmiVINB+ywl1HGXJXmrqkOhpKrIiVZV6tQuV54ZyQC7MMuBt81Vc336GMLoHBq5hV/F9eXgt5Mnx0Rha5Fg==} + resolution: + { + integrity: sha512-+W7VmiVINB+ywl1HGXJXmrqkOhpKrIiVZV6tQuV54ZyQC7MMuBt81Vc336GMLoHBq5hV/F9eXgt5Mnx0Rha5Fg==, + } core-util-is@1.0.3: - resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + resolution: + { + integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==, + } crc-32@1.2.2: - resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==} - engines: {node: '>=0.8'} + resolution: + { + integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==, + } + engines: { node: ">=0.8" } hasBin: true crc32-stream@6.0.0: - resolution: {integrity: sha512-piICUB6ei4IlTv1+653yq5+KoqfBYmj9bw6LqXoOneTMDXk5nM1qt12mFW1caG3LlJXEKW1Bp0WggEmIfQB34g==} - engines: {node: '>= 14'} + resolution: + { + integrity: sha512-piICUB6ei4IlTv1+653yq5+KoqfBYmj9bw6LqXoOneTMDXk5nM1qt12mFW1caG3LlJXEKW1Bp0WggEmIfQB34g==, + } + engines: { node: ">= 14" } croner@9.0.0: - resolution: {integrity: sha512-onMB0OkDjkXunhdW9htFjEhqrD54+M94i6ackoUkjHKbRnXdyEyKRelp4nJ1kAz32+s27jP1FsebpJCVl0BsvA==} - engines: {node: '>=18.0'} + resolution: + { + integrity: sha512-onMB0OkDjkXunhdW9htFjEhqrD54+M94i6ackoUkjHKbRnXdyEyKRelp4nJ1kAz32+s27jP1FsebpJCVl0BsvA==, + } + engines: { node: ">=18.0" } cross-spawn@7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} - engines: {node: '>= 8'} + resolution: + { + integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==, + } + engines: { node: ">= 8" } + + cross-spawn@7.0.6: + resolution: + { + integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==, + } + engines: { node: ">= 8" } crossws@0.3.4: - resolution: {integrity: sha512-uj0O1ETYX1Bh6uSgktfPvwDiPYGQ3aI4qVsaC/LWpkIzGj1nUYm5FK3K+t11oOlpN01lGbprFCH4wBlKdJjVgw==} + resolution: + { + integrity: sha512-uj0O1ETYX1Bh6uSgktfPvwDiPYGQ3aI4qVsaC/LWpkIzGj1nUYm5FK3K+t11oOlpN01lGbprFCH4wBlKdJjVgw==, + } css-select@5.1.0: - resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} + resolution: + { + integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==, + } css-selector-parser@3.0.5: - resolution: {integrity: sha512-3itoDFbKUNx1eKmVpYMFyqKX04Ww9osZ+dLgrk6GEv6KMVeXUhUnp4I5X+evw+u3ZxVU6RFXSSRxlTeMh8bA+g==} + resolution: + { + integrity: sha512-3itoDFbKUNx1eKmVpYMFyqKX04Ww9osZ+dLgrk6GEv6KMVeXUhUnp4I5X+evw+u3ZxVU6RFXSSRxlTeMh8bA+g==, + } css-what@6.1.0: - resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} - engines: {node: '>= 6'} + resolution: + { + integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==, + } + engines: { node: ">= 6" } cssesc@3.0.0: - resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==, + } + engines: { node: ">=4" } hasBin: true csstype@3.1.3: - resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + resolution: + { + integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==, + } dax-sh@0.39.2: - resolution: {integrity: sha512-gpuGEkBQM+5y6p4cWaw9+ePy5TNon+fdwFVtTI8leU3UhwhsBfPewRxMXGuQNC+M2b/MDGMlfgpqynkcd0C3FQ==} + resolution: + { + integrity: sha512-gpuGEkBQM+5y6p4cWaw9+ePy5TNon+fdwFVtTI8leU3UhwhsBfPewRxMXGuQNC+M2b/MDGMlfgpqynkcd0C3FQ==, + } db0@0.2.4: - resolution: {integrity: sha512-hIzftLH1nMsF95zSLjDLYLbE9huOXnLYUTAQ5yKF5amp0FpeD+B15XJa8BvGYSOeSCH4gl2WahB/y1FcUByQSg==} + resolution: + { + integrity: sha512-hIzftLH1nMsF95zSLjDLYLbE9huOXnLYUTAQ5yKF5amp0FpeD+B15XJa8BvGYSOeSCH4gl2WahB/y1FcUByQSg==, + } peerDependencies: - '@electric-sql/pglite': '*' - '@libsql/client': '*' - better-sqlite3: '*' - drizzle-orm: '*' - mysql2: '*' - sqlite3: '*' + "@electric-sql/pglite": "*" + "@libsql/client": "*" + better-sqlite3: "*" + drizzle-orm: "*" + mysql2: "*" + sqlite3: "*" peerDependenciesMeta: - '@electric-sql/pglite': + "@electric-sql/pglite": optional: true - '@libsql/client': + "@libsql/client": optional: true better-sqlite3: optional: true @@ -2139,36 +3877,51 @@ packages: optional: true debug@2.6.9: - resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + resolution: + { + integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==, + } peerDependencies: - supports-color: '*' + supports-color: "*" peerDependenciesMeta: supports-color: optional: true debug@4.3.7: - resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} - engines: {node: '>=6.0'} + resolution: + { + integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==, + } + engines: { node: ">=6.0" } peerDependencies: - supports-color: '*' + supports-color: "*" peerDependenciesMeta: supports-color: optional: true debug@4.4.0: - resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} - engines: {node: '>=6.0'} + resolution: + { + integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==, + } + engines: { node: ">=6.0" } peerDependencies: - supports-color: '*' + supports-color: "*" peerDependenciesMeta: supports-color: optional: true decode-named-character-reference@1.0.2: - resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} + resolution: + { + integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==, + } dedent@1.5.3: - resolution: {integrity: sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==} + resolution: + { + integrity: sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==, + } peerDependencies: babel-plugin-macros: ^3.1.0 peerDependenciesMeta: @@ -2176,1193 +3929,2226 @@ packages: optional: true deep-is@0.1.4: - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + resolution: + { + integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==, + } deepmerge@4.3.1: - resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==, + } + engines: { node: ">=0.10.0" } define-lazy-prop@2.0.0: - resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==, + } + engines: { node: ">=8" } defu@6.1.4: - resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} + resolution: + { + integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==, + } delayed-stream@1.0.0: - resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} - engines: {node: '>=0.4.0'} + resolution: + { + integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==, + } + engines: { node: ">=0.4.0" } denque@2.1.0: - resolution: {integrity: sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==} - engines: {node: '>=0.10'} + resolution: + { + integrity: sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==, + } + engines: { node: ">=0.10" } depd@2.0.0: - resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} - engines: {node: '>= 0.8'} + resolution: + { + integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==, + } + engines: { node: ">= 0.8" } dequal@2.0.3: - resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==, + } + engines: { node: ">=6" } destr@2.0.3: - resolution: {integrity: sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ==} + resolution: + { + integrity: sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ==, + } destroy@1.2.0: - resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + resolution: + { + integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==, + } + engines: { node: ">= 0.8", npm: 1.2.8000 || >= 1.4.16 } detect-libc@1.0.3: - resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} - engines: {node: '>=0.10'} + resolution: + { + integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==, + } + engines: { node: ">=0.10" } hasBin: true detect-libc@2.0.3: - resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==, + } + engines: { node: ">=8" } devlop@1.1.0: - resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} + resolution: + { + integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==, + } didyoumean@1.2.2: - resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} + 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} + resolution: + { + integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } diff@7.0.0: - resolution: {integrity: sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw==} - engines: {node: '>=0.3.1'} - - dir-glob@3.0.1: - resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw==, + } + engines: { node: ">=0.3.1" } direction@2.0.1: - resolution: {integrity: sha512-9S6m9Sukh1cZNknO1CWAr2QAWsbKLafQiyM5gZ7VgXHeuaoUwffKN4q6NC4A/Mf9iiPlOXQEKW/Mv/mh9/3YFA==} + resolution: + { + integrity: sha512-9S6m9Sukh1cZNknO1CWAr2QAWsbKLafQiyM5gZ7VgXHeuaoUwffKN4q6NC4A/Mf9iiPlOXQEKW/Mv/mh9/3YFA==, + } hasBin: true dlv@1.1.3: - resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} - - doctrine@3.0.0: - resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} - engines: {node: '>=6.0.0'} + resolution: + { + integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==, + } dom-serializer@2.0.0: - resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} + resolution: + { + integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==, + } domelementtype@2.3.0: - resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + resolution: + { + integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==, + } domhandler@5.0.3: - resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} - engines: {node: '>= 4'} + resolution: + { + integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==, + } + engines: { node: ">= 4" } domutils@3.1.0: - resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} + resolution: + { + integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==, + } dot-prop@9.0.0: - resolution: {integrity: sha512-1gxPBJpI/pcjQhKgIU91II6Wkay+dLcN3M6rf2uwP8hRur3HtQXjVrdAK3sjC0piaEuxzMwjXChcETiJl47lAQ==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-1gxPBJpI/pcjQhKgIU91II6Wkay+dLcN3M6rf2uwP8hRur3HtQXjVrdAK3sjC0piaEuxzMwjXChcETiJl47lAQ==, + } + engines: { node: ">=18" } dotenv@16.4.5: - resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==, + } + engines: { node: ">=12" } duplexer@0.1.2: - resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} + resolution: + { + integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==, + } eastasianwidth@0.2.0: - resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + resolution: + { + integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==, + } ee-first@1.1.1: - resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + resolution: + { + integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==, + } electron-to-chromium@1.5.38: - resolution: {integrity: sha512-VbeVexmZ1IFh+5EfrYz1I0HTzHVIlJa112UEWhciPyeOcKJGeTv6N8WnG4wsQB81DGCaVEGhpSb6o6a8WYFXXg==} + resolution: + { + integrity: sha512-VbeVexmZ1IFh+5EfrYz1I0HTzHVIlJa112UEWhciPyeOcKJGeTv6N8WnG4wsQB81DGCaVEGhpSb6o6a8WYFXXg==, + } emoji-regex-xs@1.0.0: - resolution: {integrity: sha512-LRlerrMYoIDrT6jgpeZ2YYl/L8EulRTt5hQcYjy5AInh7HWXKimpqx68aknBFpGL2+/IcogTcaydJEgaTmOpDg==} + resolution: + { + integrity: sha512-LRlerrMYoIDrT6jgpeZ2YYl/L8EulRTt5hQcYjy5AInh7HWXKimpqx68aknBFpGL2+/IcogTcaydJEgaTmOpDg==, + } emoji-regex@8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + resolution: + { + integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==, + } emoji-regex@9.2.2: - resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + resolution: + { + integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==, + } encodeurl@1.0.2: - resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} - engines: {node: '>= 0.8'} + resolution: + { + integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==, + } + engines: { node: ">= 0.8" } encodeurl@2.0.0: - resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} - engines: {node: '>= 0.8'} + resolution: + { + integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==, + } + engines: { node: ">= 0.8" } entities@4.5.0: - resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} - engines: {node: '>=0.12'} + resolution: + { + integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==, + } + engines: { node: ">=0.12" } error-stack-parser@2.1.4: - resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==} + resolution: + { + integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==, + } es-module-lexer@1.5.4: - resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==} + resolution: + { + integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==, + } esast-util-from-estree@2.0.0: - resolution: {integrity: sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ==} + resolution: + { + integrity: sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ==, + } esast-util-from-js@2.0.1: - resolution: {integrity: sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==} + resolution: + { + integrity: sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==, + } esbuild@0.18.7: - resolution: {integrity: sha512-46V0EFvQ/urmruUCChD1e0SZJWM0Ulny5F+uf5QkBry97HfvgvZTnjpTrwmw0+CGRhqTh9zpFeB+W8WGIEXOAQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-46V0EFvQ/urmruUCChD1e0SZJWM0Ulny5F+uf5QkBry97HfvgvZTnjpTrwmw0+CGRhqTh9zpFeB+W8WGIEXOAQ==, + } + engines: { node: ">=12" } hasBin: true esbuild@0.20.2: - resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==, + } + engines: { node: ">=12" } hasBin: true esbuild@0.24.2: - resolution: {integrity: sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==, + } + engines: { node: ">=18" } + hasBin: true + + esbuild@0.25.0: + resolution: + { + integrity: sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw==, + } + engines: { node: ">=18" } hasBin: true escalade@3.2.0: - resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==, + } + engines: { node: ">=6" } escape-html@1.0.3: - resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + resolution: + { + integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==, + } escape-string-regexp@1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} - engines: {node: '>=0.8.0'} + resolution: + { + integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==, + } + engines: { node: ">=0.8.0" } escape-string-regexp@4.0.0: - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==, + } + engines: { node: ">=10" } escape-string-regexp@5.0.0: - resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} - engines: {node: '>=12'} - - eslint-plugin-solid@0.13.2: - resolution: {integrity: sha512-Ndeuc6MEO11YVqzIzxtKKEG0t4HPJ4ob/WQyduwpTW//NtyZqWx/gPii5GF656DLqBbsfsmMaX0zkFQ8ElyOdQ==} - engines: {node: '>=12.0.0'} + resolution: + { + integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==, + } + engines: { node: ">=12" } + + eslint-plugin-solid@0.14.5: + resolution: + { + integrity: sha512-nfuYK09ah5aJG/oEN6P1qziy1zLgW4PDWe75VNPi4CEFYk1x2AEqwFeQfEPR7gNn0F2jOeqKhx2E+5oNCOBYWQ==, + } + engines: { node: ">=18.0.0" } peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 + typescript: ">=4.8.4" - eslint-scope@7.2.2: - resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + eslint-scope@8.3.0: + resolution: + { + integrity: sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==, + } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } eslint-visitor-keys@3.4.3: - resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - eslint@8.57.1: - resolution: {integrity: sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. + resolution: + { + integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + + eslint-visitor-keys@4.2.0: + resolution: + { + integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==, + } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + + eslint@9.22.0: + resolution: + { + integrity: sha512-9V/QURhsRN40xuHXWjV64yvrzMjcz7ZyNoF2jJFmy9j/SLk0u1OLSZgXi28MrXjymnjEGSR80WCdab3RGMDveQ==, + } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } hasBin: true + peerDependencies: + jiti: "*" + peerDependenciesMeta: + jiti: + optional: true - espree@9.6.1: - resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + espree@10.3.0: + resolution: + { + integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==, + } + engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } esprima@4.0.1: - resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==, + } + engines: { node: ">=4" } hasBin: true esquery@1.6.0: - resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} - engines: {node: '>=0.10'} + resolution: + { + integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==, + } + engines: { node: ">=0.10" } esrecurse@4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} - engines: {node: '>=4.0'} + resolution: + { + integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==, + } + engines: { node: ">=4.0" } estraverse@5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} - engines: {node: '>=4.0'} + resolution: + { + integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==, + } + engines: { node: ">=4.0" } estree-util-attach-comments@3.0.0: - resolution: {integrity: sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==} + resolution: + { + integrity: sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==, + } estree-util-build-jsx@3.0.1: - resolution: {integrity: sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==} + resolution: + { + integrity: sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==, + } estree-util-is-identifier-name@3.0.0: - resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==} + resolution: + { + integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==, + } estree-util-scope@1.0.0: - resolution: {integrity: sha512-2CAASclonf+JFWBNJPndcOpA8EMJwa0Q8LUFJEKqXLW6+qBvbFZuF5gItbQOs/umBUkjviCSDCbBwU2cXbmrhQ==} + resolution: + { + integrity: sha512-2CAASclonf+JFWBNJPndcOpA8EMJwa0Q8LUFJEKqXLW6+qBvbFZuF5gItbQOs/umBUkjviCSDCbBwU2cXbmrhQ==, + } estree-util-to-js@2.0.0: - resolution: {integrity: sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==} + resolution: + { + integrity: sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==, + } estree-util-value-to-estree@3.2.1: - resolution: {integrity: sha512-Vt2UOjyPbNQQgT5eJh+K5aATti0OjCIAGc9SgMdOFYbohuifsWclR74l0iZTJwePMgWYdX1hlVS+dedH9XV8kw==} + resolution: + { + integrity: sha512-Vt2UOjyPbNQQgT5eJh+K5aATti0OjCIAGc9SgMdOFYbohuifsWclR74l0iZTJwePMgWYdX1hlVS+dedH9XV8kw==, + } estree-util-visit@2.0.0: - resolution: {integrity: sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==} + resolution: + { + integrity: sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==, + } estree-walker@2.0.2: - resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + resolution: + { + integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==, + } estree-walker@3.0.3: - resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + resolution: + { + integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==, + } esutils@2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==, + } + engines: { node: ">=0.10.0" } etag@1.8.1: - resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} - engines: {node: '>= 0.6'} + resolution: + { + integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==, + } + engines: { node: ">= 0.6" } event-target-shim@5.0.1: - resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==, + } + engines: { node: ">=6" } eventemitter3@4.0.7: - resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} + resolution: + { + integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==, + } events@3.3.0: - resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} - engines: {node: '>=0.8.x'} + resolution: + { + integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==, + } + engines: { node: ">=0.8.x" } execa@8.0.1: - resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} - engines: {node: '>=16.17'} + resolution: + { + integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==, + } + engines: { node: ">=16.17" } + + expressive-code-twoslash@0.4.0: + resolution: + { + integrity: sha512-7HffO04pYLNHX0P8/8xX+pdgWYpFWdP9/gYi7dAH1nSAxO1W7pQHW4Ly6OXD3fs4SChkGP/PWkE4oLo6CeXTfg==, + } + peerDependencies: + "@expressive-code/core": ^0.40.0 + expressive-code: ^0.40.0 + typescript: ^5.7 - expressive-code@0.37.1: - resolution: {integrity: sha512-y7+5K2uJOt+Hy0KEPm83t974flu0O/DstvmezoiWXwV3Cwqf622CHMlWssaZ8uqFrJaJ1ES1cMcYXJtZSxe+9A==} + expressive-code@0.40.2: + resolution: + { + integrity: sha512-1zIda2rB0qiDZACawzw2rbdBQiWHBT56uBctS+ezFe5XMAaFaHLnnSYND/Kd+dVzO9HfCXRDpzH3d+3fvOWRcw==, + } extend-shallow@2.0.1: - resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==, + } + engines: { node: ">=0.10.0" } extend@3.0.2: - resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + resolution: + { + integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==, + } fast-deep-equal@3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + resolution: + { + integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==, + } fast-fifo@1.3.2: - resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} + resolution: + { + integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==, + } fast-glob@3.3.2: - resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} - engines: {node: '>=8.6.0'} + resolution: + { + integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==, + } + engines: { node: ">=8.6.0" } + + fast-glob@3.3.3: + resolution: + { + integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==, + } + engines: { node: ">=8.6.0" } fast-json-stable-stringify@2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + resolution: + { + integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==, + } fast-levenshtein@2.0.6: - resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + resolution: + { + integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==, + } fastq@1.17.1: - resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} + resolution: + { + integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==, + } fault@2.0.1: - resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==} + resolution: + { + integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==, + } fdir@6.4.3: - resolution: {integrity: sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==} + resolution: + { + integrity: sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==, + } peerDependencies: picomatch: ^3 || ^4 peerDependenciesMeta: picomatch: optional: true - file-entry-cache@6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} - engines: {node: ^10.12.0 || >=12.0.0} + file-entry-cache@8.0.0: + resolution: + { + integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==, + } + engines: { node: ">=16.0.0" } file-uri-to-path@1.0.0: - resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} + resolution: + { + integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==, + } fill-range@7.1.1: - resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==, + } + engines: { node: ">=8" } find-up@5.0.0: - resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} - engines: {node: '>=10'} - - flat-cache@3.2.0: - resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} - engines: {node: ^10.12.0 || >=12.0.0} - - flatted@3.3.1: - resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} + resolution: + { + integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==, + } + engines: { node: ">=10" } + + flat-cache@4.0.1: + resolution: + { + integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==, + } + engines: { node: ">=16" } + + flatted@3.3.3: + resolution: + { + integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==, + } follow-redirects@1.15.9: - resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} - engines: {node: '>=4.0'} + resolution: + { + integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==, + } + engines: { node: ">=4.0" } peerDependencies: - debug: '*' + debug: "*" peerDependenciesMeta: debug: optional: true foreground-child@3.3.0: - resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==, + } + engines: { node: ">=14" } form-data-encoder@1.7.2: - resolution: {integrity: sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==} + resolution: + { + integrity: sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==, + } form-data@4.0.1: - resolution: {integrity: sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==} - engines: {node: '>= 6'} + resolution: + { + integrity: sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==, + } + engines: { node: ">= 6" } format@0.2.2: - resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==} - engines: {node: '>=0.4.x'} + resolution: + { + integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==, + } + engines: { node: ">=0.4.x" } formdata-node@4.4.1: - resolution: {integrity: sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==} - engines: {node: '>= 12.20'} + resolution: + { + integrity: sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==, + } + engines: { node: ">= 12.20" } fraction.js@4.3.7: - resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} + resolution: + { + integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==, + } fresh@0.5.2: - resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} - engines: {node: '>= 0.6'} + resolution: + { + integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==, + } + engines: { node: ">= 0.6" } fs-extra@11.2.0: - resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} - engines: {node: '>=14.14'} + resolution: + { + integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==, + } + engines: { node: ">=14.14" } fs-minipass@2.1.0: - resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} - engines: {node: '>= 8'} + resolution: + { + integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==, + } + engines: { node: ">= 8" } fs.realpath@1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + resolution: + { + integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==, + } fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + resolution: + { + integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==, + } + engines: { node: ^8.16.0 || ^10.6.0 || >=11.0.0 } os: [darwin] function-bind@1.1.2: - resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + resolution: + { + integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==, + } gensync@1.0.0-beta.2: - resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==, + } + engines: { node: ">=6.9.0" } get-caller-file@2.0.5: - resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} - engines: {node: 6.* || 8.* || >= 10.*} + resolution: + { + integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==, + } + engines: { node: 6.* || 8.* || >= 10.* } get-port-please@3.1.2: - resolution: {integrity: sha512-Gxc29eLs1fbn6LQ4jSU4vXjlwyZhF5HsGuMAa7gqBP4Rw4yxxltyDUuF5MBclFzDTXO+ACchGQoeela4DSfzdQ==} + resolution: + { + integrity: sha512-Gxc29eLs1fbn6LQ4jSU4vXjlwyZhF5HsGuMAa7gqBP4Rw4yxxltyDUuF5MBclFzDTXO+ACchGQoeela4DSfzdQ==, + } get-port@7.1.0: - resolution: {integrity: sha512-QB9NKEeDg3xxVwCCwJQ9+xycaz6pBB6iQ76wiWMl1927n0Kir6alPiP+yuiICLLU4jpMe08dXfpebuQppFA2zw==} - engines: {node: '>=16'} + resolution: + { + integrity: sha512-QB9NKEeDg3xxVwCCwJQ9+xycaz6pBB6iQ76wiWMl1927n0Kir6alPiP+yuiICLLU4jpMe08dXfpebuQppFA2zw==, + } + engines: { node: ">=16" } get-stream@8.0.1: - resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} - engines: {node: '>=16'} + resolution: + { + integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==, + } + engines: { node: ">=16" } giget@1.2.3: - resolution: {integrity: sha512-8EHPljDvs7qKykr6uw8b+lqLiUc/vUg+KVTI0uND4s63TdsZM2Xus3mflvF0DDG9SiM4RlCkFGL+7aAjRmV7KA==} + resolution: + { + integrity: sha512-8EHPljDvs7qKykr6uw8b+lqLiUc/vUg+KVTI0uND4s63TdsZM2Xus3mflvF0DDG9SiM4RlCkFGL+7aAjRmV7KA==, + } hasBin: true github-slugger@2.0.0: - resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==} + resolution: + { + integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==, + } glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} + resolution: + { + integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==, + } + engines: { node: ">= 6" } glob-parent@6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} - engines: {node: '>=10.13.0'} + resolution: + { + integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==, + } + engines: { node: ">=10.13.0" } glob@10.4.5: - resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} + resolution: + { + integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==, + } hasBin: true glob@7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + resolution: + { + integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==, + } deprecated: Glob versions prior to v9 are no longer supported globals@11.12.0: - resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} - engines: {node: '>=4'} - - globals@13.24.0: - resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==, + } + engines: { node: ">=4" } + + globals@14.0.0: + resolution: + { + integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==, + } + engines: { node: ">=18" } globals@15.15.0: - resolution: {integrity: sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==} - engines: {node: '>=18'} - - globby@11.1.0: - resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==, + } + engines: { node: ">=18" } + + globals@16.0.0: + resolution: + { + integrity: sha512-iInW14XItCXET01CQFqudPOWP2jYMl7T+QRQT+UNcR/iQncN/F0UNpgd76iFkBPgNQb4+X3LV9tLJYzwh+Gl3A==, + } + engines: { node: ">=18" } globby@14.0.2: - resolution: {integrity: sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==, + } + engines: { node: ">=18" } graceful-fs@4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + resolution: + { + integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==, + } graphemer@1.4.0: - resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + resolution: + { + integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==, + } gray-matter@4.0.3: - resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} - engines: {node: '>=6.0'} + resolution: + { + integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==, + } + engines: { node: ">=6.0" } gzip-size@7.0.0: - resolution: {integrity: sha512-O1Ld7Dr+nqPnmGpdhzLmMTQ4vAsD+rHwMm1NLUmoUFFymBOMKxCCrtDxqdBRYXdeEPEi3SyoR4TizJLQrnKBNA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + resolution: + { + integrity: sha512-O1Ld7Dr+nqPnmGpdhzLmMTQ4vAsD+rHwMm1NLUmoUFFymBOMKxCCrtDxqdBRYXdeEPEi3SyoR4TizJLQrnKBNA==, + } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } h3@1.13.0: - resolution: {integrity: sha512-vFEAu/yf8UMUcB4s43OaDaigcqpQd14yanmOsn+NcRX3/guSKncyE2rOYhq8RIchgJrPSs/QiIddnTTR1ddiAg==} + resolution: + { + integrity: sha512-vFEAu/yf8UMUcB4s43OaDaigcqpQd14yanmOsn+NcRX3/guSKncyE2rOYhq8RIchgJrPSs/QiIddnTTR1ddiAg==, + } h3@1.15.1: - resolution: {integrity: sha512-+ORaOBttdUm1E2Uu/obAyCguiI7MbBvsLTndc3gyK3zU+SYLoZXlyCP9Xgy0gikkGufFLTZXCXD6+4BsufnmHA==} + resolution: + { + integrity: sha512-+ORaOBttdUm1E2Uu/obAyCguiI7MbBvsLTndc3gyK3zU+SYLoZXlyCP9Xgy0gikkGufFLTZXCXD6+4BsufnmHA==, + } has-flag@3.0.0: - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==, + } + engines: { node: ">=4" } has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==, + } + engines: { node: ">=8" } hasown@2.0.2: - resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} - engines: {node: '>= 0.4'} + 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==} + resolution: + { + integrity: sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==, + } hast-util-has-property@3.0.0: - resolution: {integrity: sha512-MNilsvEKLFpV604hwfhVStK0usFY/QmM5zX16bo7EjnAEGofr5YyI37kzopBlZJkHD4t887i+q/C8/tr5Q94cA==} + resolution: + { + integrity: sha512-MNilsvEKLFpV604hwfhVStK0usFY/QmM5zX16bo7EjnAEGofr5YyI37kzopBlZJkHD4t887i+q/C8/tr5Q94cA==, + } hast-util-heading-rank@3.0.0: - resolution: {integrity: sha512-EJKb8oMUXVHcWZTDepnr+WNbfnXKFNf9duMesmr4S8SXTJBJ9M4Yok08pu9vxdJwdlGRhVumk9mEhkEvKGifwA==} + resolution: + { + integrity: sha512-EJKb8oMUXVHcWZTDepnr+WNbfnXKFNf9duMesmr4S8SXTJBJ9M4Yok08pu9vxdJwdlGRhVumk9mEhkEvKGifwA==, + } hast-util-is-element@3.0.0: - resolution: {integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==} + resolution: + { + integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==, + } hast-util-parse-selector@4.0.0: - resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} + resolution: + { + integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==, + } hast-util-raw@9.0.4: - resolution: {integrity: sha512-LHE65TD2YiNsHD3YuXcKPHXPLuYh/gjp12mOfU8jxSrm1f/yJpsb0F/KKljS6U9LJoP0Ux+tCe8iJ2AsPzTdgA==} + resolution: + { + integrity: sha512-LHE65TD2YiNsHD3YuXcKPHXPLuYh/gjp12mOfU8jxSrm1f/yJpsb0F/KKljS6U9LJoP0Ux+tCe8iJ2AsPzTdgA==, + } hast-util-select@6.0.3: - resolution: {integrity: sha512-OVRQlQ1XuuLP8aFVLYmC2atrfWHS5UD3shonxpnyrjcCkwtvmt/+N6kYJdcY4mkMJhxp4kj2EFIxQ9kvkkt/eQ==} + resolution: + { + integrity: sha512-OVRQlQ1XuuLP8aFVLYmC2atrfWHS5UD3shonxpnyrjcCkwtvmt/+N6kYJdcY4mkMJhxp4kj2EFIxQ9kvkkt/eQ==, + } hast-util-to-estree@3.1.0: - resolution: {integrity: sha512-lfX5g6hqVh9kjS/B9E2gSkvHH4SZNiQFiqWS0x9fENzEl+8W12RqdRxX6d/Cwxi30tPQs3bIO+aolQJNp1bIyw==} + resolution: + { + integrity: sha512-lfX5g6hqVh9kjS/B9E2gSkvHH4SZNiQFiqWS0x9fENzEl+8W12RqdRxX6d/Cwxi30tPQs3bIO+aolQJNp1bIyw==, + } hast-util-to-html@9.0.3: - resolution: {integrity: sha512-M17uBDzMJ9RPCqLMO92gNNUDuBSq10a25SDBI08iCCxmorf4Yy6sYHK57n9WAbRAAaU+DuR4W6GN9K4DFZesYg==} + resolution: + { + integrity: sha512-M17uBDzMJ9RPCqLMO92gNNUDuBSq10a25SDBI08iCCxmorf4Yy6sYHK57n9WAbRAAaU+DuR4W6GN9K4DFZesYg==, + } hast-util-to-html@9.0.5: - resolution: {integrity: sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==} + 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==} + resolution: + { + integrity: sha512-1ngXYb+V9UT5h+PxNRa1O1FYguZK/XL+gkeqvp7EdHlB9oHUG0eYRo/vY5inBdcqo3RkPMC58/H94HvkbfGdyg==, + } hast-util-to-parse5@8.0.0: - resolution: {integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==} + resolution: + { + integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==, + } hast-util-to-string@3.0.1: - resolution: {integrity: sha512-XelQVTDWvqcl3axRfI0xSeoVKzyIFPwsAGSLIsKdJKQMXDYJS4WYrBNF/8J7RdhIcFI2BOHgAifggsvsxp/3+A==} + resolution: + { + integrity: sha512-XelQVTDWvqcl3axRfI0xSeoVKzyIFPwsAGSLIsKdJKQMXDYJS4WYrBNF/8J7RdhIcFI2BOHgAifggsvsxp/3+A==, + } hast-util-to-text@4.0.2: - resolution: {integrity: sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==} + resolution: + { + integrity: sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==, + } hast-util-whitespace@3.0.0: - resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} + resolution: + { + integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==, + } hastscript@8.0.0: - resolution: {integrity: sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==} + resolution: + { + integrity: sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==, + } hastscript@9.0.0: - resolution: {integrity: sha512-jzaLBGavEDKHrc5EfFImKN7nZKKBdSLIdGvCwDZ9TfzbF2ffXiov8CKE445L2Z1Ek2t/m4SKQ2j6Ipv7NyUolw==} + resolution: + { + integrity: sha512-jzaLBGavEDKHrc5EfFImKN7nZKKBdSLIdGvCwDZ9TfzbF2ffXiov8CKE445L2Z1Ek2t/m4SKQ2j6Ipv7NyUolw==, + } hookable@5.5.3: - resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==} + resolution: + { + integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==, + } html-entities@2.3.3: - resolution: {integrity: sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==} + resolution: + { + integrity: sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==, + } html-tags@3.3.1: - resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==, + } + engines: { node: ">=8" } html-to-image@1.11.11: - resolution: {integrity: sha512-9gux8QhvjRO/erSnDPv28noDZcPZmYE7e1vFsBLKLlRlKDSqNJYebj6Qz1TGd5lsRV+X+xYyjCKjuZdABinWjA==} + resolution: + { + integrity: sha512-9gux8QhvjRO/erSnDPv28noDZcPZmYE7e1vFsBLKLlRlKDSqNJYebj6Qz1TGd5lsRV+X+xYyjCKjuZdABinWjA==, + } html-void-elements@3.0.0: - resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} + resolution: + { + integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==, + } htmlparser2@8.0.2: - resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==} + resolution: + { + integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==, + } http-errors@2.0.0: - resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} - engines: {node: '>= 0.8'} + resolution: + { + integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==, + } + engines: { node: ">= 0.8" } http-proxy@1.18.1: - resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} - engines: {node: '>=8.0.0'} + resolution: + { + integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==, + } + engines: { node: ">=8.0.0" } http-shutdown@1.2.2: - resolution: {integrity: sha512-S9wWkJ/VSY9/k4qcjG318bqJNruzE4HySUhFYknwmu6LBP97KLLfwNf+n4V1BHurvFNkSKLFnK/RsuUnRTf9Vw==} - engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} + resolution: + { + integrity: sha512-S9wWkJ/VSY9/k4qcjG318bqJNruzE4HySUhFYknwmu6LBP97KLLfwNf+n4V1BHurvFNkSKLFnK/RsuUnRTf9Vw==, + } + engines: { iojs: ">= 1.0.0", node: ">= 0.12.0" } https-proxy-agent@7.0.6: - resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} - engines: {node: '>= 14'} + resolution: + { + integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==, + } + engines: { node: ">= 14" } httpxy@0.1.5: - resolution: {integrity: sha512-hqLDO+rfststuyEUTWObQK6zHEEmZ/kaIP2/zclGGZn6X8h/ESTWg+WKecQ/e5k4nPswjzZD+q2VqZIbr15CoQ==} + resolution: + { + integrity: sha512-hqLDO+rfststuyEUTWObQK6zHEEmZ/kaIP2/zclGGZn6X8h/ESTWg+WKecQ/e5k4nPswjzZD+q2VqZIbr15CoQ==, + } human-signals@5.0.0: - resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} - engines: {node: '>=16.17.0'} + resolution: + { + integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==, + } + engines: { node: ">=16.17.0" } humanize-ms@1.2.1: - resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} + resolution: + { + integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==, + } ieee754@1.2.1: - resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + resolution: + { + integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==, + } ignore@5.3.2: - resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} - engines: {node: '>= 4'} - - import-fresh@3.3.0: - resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==, + } + engines: { node: ">= 4" } + + import-fresh@3.3.1: + resolution: + { + integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==, + } + engines: { node: ">=6" } imurmurhash@0.1.4: - resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} - engines: {node: '>=0.8.19'} + resolution: + { + integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==, + } + engines: { node: ">=0.8.19" } index-to-position@0.1.2: - resolution: {integrity: sha512-MWDKS3AS1bGCHLBA2VLImJz42f7bJh8wQsTGCzI3j519/CASStoDONUBVz2I/VID0MpiX3SGSnbOD2xUalbE5g==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-MWDKS3AS1bGCHLBA2VLImJz42f7bJh8wQsTGCzI3j519/CASStoDONUBVz2I/VID0MpiX3SGSnbOD2xUalbE5g==, + } + engines: { node: ">=18" } inflight@1.0.6: - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + resolution: + { + integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==, + } deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + resolution: + { + integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==, + } inline-style-parser@0.1.1: - resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==} + resolution: + { + integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==, + } inline-style-parser@0.2.4: - resolution: {integrity: sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==} + resolution: + { + integrity: sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==, + } ioredis@5.4.1: - resolution: {integrity: sha512-2YZsvl7jopIa1gaePkeMtd9rAcSjOOjPtpcLlOeusyO+XH2SK5ZcT+UCrElPP+WVIInh2TzeI4XW9ENaSLVVHA==} - engines: {node: '>=12.22.0'} + resolution: + { + integrity: sha512-2YZsvl7jopIa1gaePkeMtd9rAcSjOOjPtpcLlOeusyO+XH2SK5ZcT+UCrElPP+WVIInh2TzeI4XW9ENaSLVVHA==, + } + engines: { node: ">=12.22.0" } iron-webcrypto@1.2.1: - resolution: {integrity: sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==} + resolution: + { + integrity: sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==, + } is-alphabetical@2.0.1: - resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} + resolution: + { + integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==, + } is-alphanumerical@2.0.1: - resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} + resolution: + { + integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==, + } is-binary-path@2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==, + } + engines: { node: ">=8" } is-buffer@2.0.5: - resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==, + } + engines: { node: ">=4" } is-core-module@2.15.1: - resolution: {integrity: sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==, + } + engines: { node: ">= 0.4" } + + is-core-module@2.16.1: + resolution: + { + integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==, + } + engines: { node: ">= 0.4" } is-decimal@2.0.1: - resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} + resolution: + { + integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==, + } is-docker@2.2.1: - resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==, + } + engines: { node: ">=8" } hasBin: true is-docker@3.0.0: - resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + resolution: + { + integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==, + } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } hasBin: true is-extendable@0.1.1: - resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==, + } + engines: { node: ">=0.10.0" } is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==, + } + engines: { node: ">=0.10.0" } is-fullwidth-code-point@3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==, + } + engines: { node: ">=8" } is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==, + } + engines: { node: ">=0.10.0" } is-hexadecimal@2.0.1: - resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} + resolution: + { + integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==, + } is-html@2.0.0: - resolution: {integrity: sha512-S+OpgB5i7wzIue/YSE5hg0e5ZYfG3hhpNh9KGl6ayJ38p7ED6wxQLd1TV91xHpcTvw90KMJ9EwN3F/iNflHBVg==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-S+OpgB5i7wzIue/YSE5hg0e5ZYfG3hhpNh9KGl6ayJ38p7ED6wxQLd1TV91xHpcTvw90KMJ9EwN3F/iNflHBVg==, + } + engines: { node: ">=8" } is-inside-container@1.0.0: - resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} - engines: {node: '>=14.16'} + resolution: + { + integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==, + } + engines: { node: ">=14.16" } hasBin: true is-module@1.0.0: - resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} + resolution: + { + integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==, + } is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} - - is-path-inside@3.0.3: - resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==, + } + engines: { node: ">=0.12.0" } is-plain-obj@2.1.0: - resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==, + } + engines: { node: ">=8" } is-plain-obj@4.1.0: - resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==, + } + engines: { node: ">=12" } is-reference@1.2.1: - resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} + resolution: + { + integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==, + } is-stream@2.0.1: - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==, + } + engines: { node: ">=8" } is-stream@3.0.0: - resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + resolution: + { + integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==, + } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } is-what@4.1.16: - resolution: {integrity: sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==} - engines: {node: '>=12.13'} + resolution: + { + integrity: sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==, + } + engines: { node: ">=12.13" } is-wsl@2.2.0: - resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==, + } + engines: { node: ">=8" } is-wsl@3.1.0: - resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} - engines: {node: '>=16'} + resolution: + { + integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==, + } + engines: { node: ">=16" } is64bit@2.0.0: - resolution: {integrity: sha512-jv+8jaWCl0g2lSBkNSVXdzfBA0npK1HGC2KtWM9FumFRoGS94g3NbCCLVnCYHLjp4GrW2KZeeSTMo5ddtznmGw==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-jv+8jaWCl0g2lSBkNSVXdzfBA0npK1HGC2KtWM9FumFRoGS94g3NbCCLVnCYHLjp4GrW2KZeeSTMo5ddtznmGw==, + } + engines: { node: ">=18" } isarray@1.0.0: - resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + resolution: + { + integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==, + } isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + resolution: + { + integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==, + } isexe@3.1.1: - resolution: {integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==} - engines: {node: '>=16'} + resolution: + { + integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==, + } + engines: { node: ">=16" } jackspeak@3.4.3: - resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + resolution: + { + integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==, + } jest-diff@29.7.0: - resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.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} + resolution: + { + integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } jiti@1.21.6: - resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==} + resolution: + { + integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==, + } hasBin: true jiti@2.4.2: - resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==} + resolution: + { + integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==, + } hasBin: true js-levenshtein@1.1.6: - resolution: {integrity: sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==, + } + engines: { node: ">=0.10.0" } js-tokens@4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + resolution: + { + integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==, + } js-tokens@9.0.0: - resolution: {integrity: sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==} + resolution: + { + integrity: sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==, + } js-tokens@9.0.1: - resolution: {integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==} + resolution: + { + integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==, + } js-yaml@3.14.1: - resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + resolution: + { + integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==, + } hasBin: true js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + resolution: + { + integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==, + } hasBin: true jsesc@3.0.2: - resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==, + } + engines: { node: ">=6" } hasBin: true json-buffer@3.0.1: - resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + resolution: + { + integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==, + } json-schema-traverse@0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + resolution: + { + integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==, + } json-schema-traverse@1.0.0: - resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + resolution: + { + integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==, + } json-stable-stringify-without-jsonify@1.0.1: - resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + resolution: + { + integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==, + } json5@2.2.3: - resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==, + } + engines: { node: ">=6" } hasBin: true jsonfile@6.1.0: - resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + resolution: + { + integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==, + } kebab-case@1.0.2: - resolution: {integrity: sha512-7n6wXq4gNgBELfDCpzKc+mRrZFs7D+wgfF5WRFLNAr4DA/qtr9Js8uOAVAfHhuLMfAcQ0pRKqbpjx+TcJVdE1Q==} + resolution: + { + integrity: sha512-7n6wXq4gNgBELfDCpzKc+mRrZFs7D+wgfF5WRFLNAr4DA/qtr9Js8uOAVAfHhuLMfAcQ0pRKqbpjx+TcJVdE1Q==, + } keyv@4.5.4: - resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + resolution: + { + integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==, + } kind-of@6.0.3: - resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==, + } + engines: { node: ">=0.10.0" } klona@2.0.6: - resolution: {integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==} - engines: {node: '>= 8'} + resolution: + { + integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==, + } + engines: { node: ">= 8" } knitwork@1.1.0: - resolution: {integrity: sha512-oHnmiBUVHz1V+URE77PNot2lv3QiYU2zQf1JjOVkMt3YDKGbu8NAFr+c4mcNOhdsGrB/VpVbRwPwhiXrPhxQbw==} + resolution: + { + integrity: sha512-oHnmiBUVHz1V+URE77PNot2lv3QiYU2zQf1JjOVkMt3YDKGbu8NAFr+c4mcNOhdsGrB/VpVbRwPwhiXrPhxQbw==, + } knitwork@1.2.0: - resolution: {integrity: sha512-xYSH7AvuQ6nXkq42x0v5S8/Iry+cfulBz/DJQzhIyESdLD7425jXsPy4vn5cCXU+HhRN2kVw51Vd1K6/By4BQg==} + resolution: + { + integrity: sha512-xYSH7AvuQ6nXkq42x0v5S8/Iry+cfulBz/DJQzhIyESdLD7425jXsPy4vn5cCXU+HhRN2kVw51Vd1K6/By4BQg==, + } - known-css-properties@0.24.0: - resolution: {integrity: sha512-RTSoaUAfLvpR357vWzAz/50Q/BmHfmE6ETSWfutT0AJiw10e6CmcdYRQJlLRd95B53D0Y2aD1jSxD3V3ySF+PA==} + known-css-properties@0.30.0: + resolution: + { + integrity: sha512-VSWXYUnsPu9+WYKkfmJyLKtIvaRJi1kXUqVmBACORXZQxT5oZDsoZ2vQP+bQFDnWtpI/4eq3MLoRMjI2fnLzTQ==, + } kolorist@1.8.0: - resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} + resolution: + { + integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==, + } lazystream@1.0.1: - resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==} - engines: {node: '>= 0.6.3'} + resolution: + { + integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==, + } + engines: { node: ">= 0.6.3" } levn@0.4.1: - resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} - engines: {node: '>= 0.8.0'} + resolution: + { + integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==, + } + engines: { node: ">= 0.8.0" } lilconfig@2.1.0: - resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==, + } + engines: { node: ">=10" } lilconfig@3.1.2: - resolution: {integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==, + } + engines: { node: ">=14" } lines-and-columns@1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + resolution: + { + integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==, + } listhen@1.9.0: - resolution: {integrity: sha512-I8oW2+QL5KJo8zXNWX046M134WchxsXC7SawLPvRQpogCbkyQIaFxPE89A2HiwR7vAK2Dm2ERBAmyjTYGYEpBg==} + resolution: + { + integrity: sha512-I8oW2+QL5KJo8zXNWX046M134WchxsXC7SawLPvRQpogCbkyQIaFxPE89A2HiwR7vAK2Dm2ERBAmyjTYGYEpBg==, + } hasBin: true local-pkg@0.5.0: - resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==, + } + engines: { node: ">=14" } local-pkg@1.1.0: - resolution: {integrity: sha512-xbZBuX6gYIWrlLmZG43aAVer4ocntYO09vPy9lxd6Ns8DnR4U7N+IIeDkubinqFOHHzoMlPxTxwo0jhE7oYjAw==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-xbZBuX6gYIWrlLmZG43aAVer4ocntYO09vPy9lxd6Ns8DnR4U7N+IIeDkubinqFOHHzoMlPxTxwo0jhE7oYjAw==, + } + engines: { node: ">=14" } locate-path@6.0.0: - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==, + } + engines: { node: ">=10" } lodash.castarray@4.4.0: - resolution: {integrity: sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==} + resolution: + { + integrity: sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==, + } lodash.defaults@4.2.0: - resolution: {integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==} + resolution: + { + integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==, + } lodash.isarguments@3.1.0: - resolution: {integrity: sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==} + resolution: + { + integrity: sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==, + } lodash.isplainobject@4.0.6: - resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} + resolution: + { + integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==, + } lodash.merge@4.6.2: - resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + resolution: + { + integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==, + } lodash@4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + resolution: + { + integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==, + } longest-streak@3.1.0: - resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} + resolution: + { + integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==, + } loose-envify@1.4.0: - resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + resolution: + { + integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==, + } hasBin: true lru-cache@10.4.3: - resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + resolution: + { + integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==, + } lru-cache@5.1.1: - resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + resolution: + { + integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==, + } magic-string@0.30.12: - resolution: {integrity: sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==} + resolution: + { + integrity: sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==, + } magic-string@0.30.17: - resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} + resolution: + { + integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==, + } magicast@0.2.11: - resolution: {integrity: sha512-6saXbRDA1HMkqbsvHOU6HBjCVgZT460qheRkLhJQHWAbhXoWESI3Kn/dGGXyKs15FFKR85jsUqFx2sMK0wy/5g==} + resolution: + { + integrity: sha512-6saXbRDA1HMkqbsvHOU6HBjCVgZT460qheRkLhJQHWAbhXoWESI3Kn/dGGXyKs15FFKR85jsUqFx2sMK0wy/5g==, + } magicast@0.3.5: - resolution: {integrity: sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==} + resolution: + { + integrity: sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==, + } markdown-extensions@2.0.0: - resolution: {integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==} - engines: {node: '>=16'} + resolution: + { + integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==, + } + engines: { node: ">=16" } markdown-table@3.0.3: - resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==} + resolution: + { + integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==, + } mdast-util-directive@3.0.0: - resolution: {integrity: sha512-JUpYOqKI4mM3sZcNxmF/ox04XYFFkNwr0CFlrQIkCwbvH0xzMCqkMqAde9wRd80VAhaUrwFwKm2nxretdT1h7Q==} + resolution: + { + integrity: sha512-JUpYOqKI4mM3sZcNxmF/ox04XYFFkNwr0CFlrQIkCwbvH0xzMCqkMqAde9wRd80VAhaUrwFwKm2nxretdT1h7Q==, + } mdast-util-find-and-replace@3.0.1: - resolution: {integrity: sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==} + resolution: + { + integrity: sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==, + } mdast-util-from-markdown@2.0.1: - resolution: {integrity: sha512-aJEUyzZ6TzlsX2s5B4Of7lN7EQtAxvtradMMglCQDyaTFgse6CmtmdJ15ElnVRlCg1vpNyVtbem0PWzlNieZsA==} + resolution: + { + integrity: sha512-aJEUyzZ6TzlsX2s5B4Of7lN7EQtAxvtradMMglCQDyaTFgse6CmtmdJ15ElnVRlCg1vpNyVtbem0PWzlNieZsA==, + } + + mdast-util-from-markdown@2.0.2: + resolution: + { + integrity: sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==, + } mdast-util-frontmatter@2.0.1: - resolution: {integrity: sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==} + resolution: + { + integrity: sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==, + } mdast-util-gfm-autolink-literal@2.0.1: - resolution: {integrity: sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==} + resolution: + { + integrity: sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==, + } mdast-util-gfm-footnote@2.0.0: - resolution: {integrity: sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==} + resolution: + { + integrity: sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==, + } mdast-util-gfm-strikethrough@2.0.0: - resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} + resolution: + { + integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==, + } mdast-util-gfm-table@2.0.0: - resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==} + resolution: + { + integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==, + } mdast-util-gfm-task-list-item@2.0.0: - resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} + resolution: + { + integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==, + } mdast-util-gfm@3.0.0: - resolution: {integrity: sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==} + resolution: + { + integrity: sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==, + } + + mdast-util-gfm@3.1.0: + resolution: + { + integrity: sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==, + } mdast-util-mdx-expression@2.0.1: - resolution: {integrity: sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==} + resolution: + { + integrity: sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==, + } mdast-util-mdx-jsx@3.1.3: - resolution: {integrity: sha512-bfOjvNt+1AcbPLTFMFWY149nJz0OjmewJs3LQQ5pIyVGxP4CdOqNVJL6kTaM5c68p8q82Xv3nCyFfUnuEcH3UQ==} + resolution: + { + integrity: sha512-bfOjvNt+1AcbPLTFMFWY149nJz0OjmewJs3LQQ5pIyVGxP4CdOqNVJL6kTaM5c68p8q82Xv3nCyFfUnuEcH3UQ==, + } mdast-util-mdx@3.0.0: - resolution: {integrity: sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==} + resolution: + { + integrity: sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==, + } mdast-util-mdxjs-esm@2.0.1: - resolution: {integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==} + resolution: + { + integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==, + } mdast-util-phrasing@4.1.0: - resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} + resolution: + { + integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==, + } mdast-util-to-hast@13.2.0: - resolution: {integrity: sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==} + resolution: + { + integrity: sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==, + } mdast-util-to-markdown@2.1.0: - resolution: {integrity: sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==} + resolution: + { + integrity: sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==, + } mdast-util-to-string@4.0.0: - resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} + resolution: + { + integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==, + } mdast-util-toc@7.1.0: - resolution: {integrity: sha512-2TVKotOQzqdY7THOdn2gGzS9d1Sdd66bvxUyw3aNpWfcPXCLYSJCCgfPy30sEtuzkDraJgqF35dzgmz6xlvH/w==} + resolution: + { + integrity: sha512-2TVKotOQzqdY7THOdn2gGzS9d1Sdd66bvxUyw3aNpWfcPXCLYSJCCgfPy30sEtuzkDraJgqF35dzgmz6xlvH/w==, + } merge-anything@5.1.7: - resolution: {integrity: sha512-eRtbOb1N5iyH0tkQDAoQ4Ipsp/5qSR79Dzrz8hEPxRX10RWWR/iQXdoKmBSRCThY1Fh5EhISDtpSc93fpxUniQ==} - engines: {node: '>=12.13'} + resolution: + { + integrity: sha512-eRtbOb1N5iyH0tkQDAoQ4Ipsp/5qSR79Dzrz8hEPxRX10RWWR/iQXdoKmBSRCThY1Fh5EhISDtpSc93fpxUniQ==, + } + engines: { node: ">=12.13" } merge-stream@2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + resolution: + { + integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==, + } merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} + resolution: + { + integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==, + } + engines: { node: ">= 8" } micromark-core-commonmark@2.0.1: - resolution: {integrity: sha512-CUQyKr1e///ZODyD1U3xit6zXwy1a8q2a1S1HKtIlmgvurrEpaw/Y9y6KSIbF8P59cn/NjzHyO+Q2fAyYLQrAA==} + resolution: + { + integrity: sha512-CUQyKr1e///ZODyD1U3xit6zXwy1a8q2a1S1HKtIlmgvurrEpaw/Y9y6KSIbF8P59cn/NjzHyO+Q2fAyYLQrAA==, + } micromark-extension-directive@3.0.2: - resolution: {integrity: sha512-wjcXHgk+PPdmvR58Le9d7zQYWy+vKEU9Se44p2CrCDPiLr2FMyiT4Fyb5UFKFC66wGB3kPlgD7q3TnoqPS7SZA==} + resolution: + { + integrity: sha512-wjcXHgk+PPdmvR58Le9d7zQYWy+vKEU9Se44p2CrCDPiLr2FMyiT4Fyb5UFKFC66wGB3kPlgD7q3TnoqPS7SZA==, + } micromark-extension-frontmatter@2.0.0: - resolution: {integrity: sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==} + resolution: + { + integrity: sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==, + } micromark-extension-gfm-autolink-literal@2.1.0: - resolution: {integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==} + resolution: + { + integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==, + } micromark-extension-gfm-footnote@2.1.0: - resolution: {integrity: sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==} + resolution: + { + integrity: sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==, + } micromark-extension-gfm-strikethrough@2.1.0: - resolution: {integrity: sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==} + resolution: + { + integrity: sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==, + } micromark-extension-gfm-table@2.1.0: - resolution: {integrity: sha512-Ub2ncQv+fwD70/l4ou27b4YzfNaCJOvyX4HxXU15m7mpYY+rjuWzsLIPZHJL253Z643RpbcP1oeIJlQ/SKW67g==} + resolution: + { + integrity: sha512-Ub2ncQv+fwD70/l4ou27b4YzfNaCJOvyX4HxXU15m7mpYY+rjuWzsLIPZHJL253Z643RpbcP1oeIJlQ/SKW67g==, + } micromark-extension-gfm-tagfilter@2.0.0: - resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} + resolution: + { + integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==, + } micromark-extension-gfm-task-list-item@2.1.0: - resolution: {integrity: sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==} + resolution: + { + integrity: sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==, + } micromark-extension-gfm@3.0.0: - resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} + resolution: + { + integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==, + } micromark-extension-mdx-expression@3.0.0: - resolution: {integrity: sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ==} + resolution: + { + integrity: sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ==, + } micromark-extension-mdx-jsx@3.0.1: - resolution: {integrity: sha512-vNuFb9czP8QCtAQcEJn0UJQJZA8Dk6DXKBqx+bg/w0WGuSxDxNr7hErW89tHUY31dUW4NqEOWwmEUNhjTFmHkg==} + resolution: + { + integrity: sha512-vNuFb9czP8QCtAQcEJn0UJQJZA8Dk6DXKBqx+bg/w0WGuSxDxNr7hErW89tHUY31dUW4NqEOWwmEUNhjTFmHkg==, + } micromark-extension-mdx-md@2.0.0: - resolution: {integrity: sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==} + resolution: + { + integrity: sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==, + } micromark-extension-mdxjs-esm@3.0.0: - resolution: {integrity: sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==} + resolution: + { + integrity: sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==, + } micromark-extension-mdxjs@3.0.0: - resolution: {integrity: sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==} + resolution: + { + integrity: sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==, + } micromark-factory-destination@2.0.0: - resolution: {integrity: sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==} + resolution: + { + integrity: sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==, + } micromark-factory-label@2.0.0: - resolution: {integrity: sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==} + resolution: + { + integrity: sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==, + } micromark-factory-mdx-expression@2.0.2: - resolution: {integrity: sha512-5E5I2pFzJyg2CtemqAbcyCktpHXuJbABnsb32wX2U8IQKhhVFBqkcZR5LRm1WVoFqa4kTueZK4abep7wdo9nrw==} + resolution: + { + integrity: sha512-5E5I2pFzJyg2CtemqAbcyCktpHXuJbABnsb32wX2U8IQKhhVFBqkcZR5LRm1WVoFqa4kTueZK4abep7wdo9nrw==, + } micromark-factory-space@2.0.0: - resolution: {integrity: sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==} + resolution: + { + integrity: sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==, + } micromark-factory-title@2.0.0: - resolution: {integrity: sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==} + resolution: + { + integrity: sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==, + } micromark-factory-whitespace@2.0.0: - resolution: {integrity: sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==} + resolution: + { + integrity: sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==, + } micromark-util-character@2.1.0: - resolution: {integrity: sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==} + resolution: + { + integrity: sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==, + } micromark-util-chunked@2.0.0: - resolution: {integrity: sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==} + resolution: + { + integrity: sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==, + } micromark-util-classify-character@2.0.0: - resolution: {integrity: sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==} + resolution: + { + integrity: sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==, + } micromark-util-combine-extensions@2.0.0: - resolution: {integrity: sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==} + resolution: + { + integrity: sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==, + } micromark-util-decode-numeric-character-reference@2.0.1: - resolution: {integrity: sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==} + resolution: + { + integrity: sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==, + } micromark-util-decode-string@2.0.0: - resolution: {integrity: sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==} + resolution: + { + integrity: sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==, + } micromark-util-encode@2.0.0: - resolution: {integrity: sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==} + resolution: + { + integrity: sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==, + } micromark-util-events-to-acorn@2.0.2: - resolution: {integrity: sha512-Fk+xmBrOv9QZnEDguL9OI9/NQQp6Hz4FuQ4YmCb/5V7+9eAh1s6AYSvL20kHkD67YIg7EpE54TiSlcsf3vyZgA==} + resolution: + { + integrity: sha512-Fk+xmBrOv9QZnEDguL9OI9/NQQp6Hz4FuQ4YmCb/5V7+9eAh1s6AYSvL20kHkD67YIg7EpE54TiSlcsf3vyZgA==, + } micromark-util-html-tag-name@2.0.0: - resolution: {integrity: sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==} + resolution: + { + integrity: sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==, + } micromark-util-normalize-identifier@2.0.0: - resolution: {integrity: sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==} + resolution: + { + integrity: sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==, + } micromark-util-resolve-all@2.0.0: - resolution: {integrity: sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==} + resolution: + { + integrity: sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==, + } micromark-util-sanitize-uri@2.0.0: - resolution: {integrity: sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==} + resolution: + { + integrity: sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==, + } micromark-util-subtokenize@2.0.1: - resolution: {integrity: sha512-jZNtiFl/1aY73yS3UGQkutD0UbhTt68qnRpw2Pifmz5wV9h8gOVsN70v+Lq/f1rKaU/W8pxRe8y8Q9FX1AOe1Q==} + resolution: + { + integrity: sha512-jZNtiFl/1aY73yS3UGQkutD0UbhTt68qnRpw2Pifmz5wV9h8gOVsN70v+Lq/f1rKaU/W8pxRe8y8Q9FX1AOe1Q==, + } micromark-util-symbol@2.0.0: - resolution: {integrity: sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==} + resolution: + { + integrity: sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==, + } micromark-util-types@2.0.0: - resolution: {integrity: sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==} + resolution: + { + integrity: sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==, + } micromark@4.0.0: - resolution: {integrity: sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==} + resolution: + { + integrity: sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==, + } micromatch@4.0.8: - resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} - engines: {node: '>=8.6'} + resolution: + { + integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==, + } + engines: { node: ">=8.6" } mime-db@1.52.0: - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} - engines: {node: '>= 0.6'} + resolution: + { + integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==, + } + engines: { node: ">= 0.6" } mime-types@2.1.35: - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} - engines: {node: '>= 0.6'} + resolution: + { + integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==, + } + engines: { node: ">= 0.6" } mime@1.6.0: - resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==, + } + engines: { node: ">=4" } hasBin: true mime@3.0.0: - resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} - engines: {node: '>=10.0.0'} + resolution: + { + integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==, + } + engines: { node: ">=10.0.0" } hasBin: true mime@4.0.4: - resolution: {integrity: sha512-v8yqInVjhXyqP6+Kw4fV3ZzeMRqEW6FotRsKXjRS5VMTNIuXsdRoAvklpoRgSqXm6o9VNH4/C0mgedko9DdLsQ==} - engines: {node: '>=16'} + resolution: + { + integrity: sha512-v8yqInVjhXyqP6+Kw4fV3ZzeMRqEW6FotRsKXjRS5VMTNIuXsdRoAvklpoRgSqXm6o9VNH4/C0mgedko9DdLsQ==, + } + engines: { node: ">=16" } hasBin: true mimic-fn@4.0.0: - resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==, + } + engines: { node: ">=12" } minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + resolution: + { + integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==, + } minimatch@5.1.6: - resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} - engines: {node: '>=10'} - - minimatch@9.0.3: - resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} - engines: {node: '>=16 || 14 >=14.17'} + resolution: + { + integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==, + } + engines: { node: ">=10" } minimatch@9.0.5: - resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} - engines: {node: '>=16 || 14 >=14.17'} + resolution: + { + integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==, + } + engines: { node: ">=16 || 14 >=14.17" } minipass@3.3.6: - resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==, + } + engines: { node: ">=8" } minipass@5.0.0: - resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==, + } + engines: { node: ">=8" } minipass@7.1.2: - resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} - engines: {node: '>=16 || 14 >=14.17'} + resolution: + { + integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==, + } + engines: { node: ">=16 || 14 >=14.17" } minizlib@2.1.2: - resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} - engines: {node: '>= 8'} + resolution: + { + integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==, + } + engines: { node: ">= 8" } minizlib@3.0.1: - resolution: {integrity: sha512-umcy022ILvb5/3Djuu8LWeqUa8D68JaBzlttKeMWen48SjabqS3iY5w/vzeMzMUNhLDifyhbOwKDSznB1vvrwg==} - engines: {node: '>= 18'} + resolution: + { + integrity: sha512-umcy022ILvb5/3Djuu8LWeqUa8D68JaBzlttKeMWen48SjabqS3iY5w/vzeMzMUNhLDifyhbOwKDSznB1vvrwg==, + } + engines: { node: ">= 18" } mkdirp@1.0.4: - resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==, + } + engines: { node: ">=10" } hasBin: true mkdirp@3.0.1: - resolution: {integrity: sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==, + } + engines: { node: ">=10" } hasBin: true mlly@1.7.2: - resolution: {integrity: sha512-tN3dvVHYVz4DhSXinXIk7u9syPYaJvio118uomkovAtWBT+RdbP6Lfh/5Lvo519YMmwBafwlh20IPTXIStscpA==} + resolution: + { + integrity: sha512-tN3dvVHYVz4DhSXinXIk7u9syPYaJvio118uomkovAtWBT+RdbP6Lfh/5Lvo519YMmwBafwlh20IPTXIStscpA==, + } mlly@1.7.4: - resolution: {integrity: sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==} + resolution: + { + integrity: sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==, + } ms@2.0.0: - resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + resolution: + { + integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==, + } ms@2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + resolution: + { + integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==, + } mz@2.7.0: - resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + resolution: + { + integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==, + } nanoid@3.3.7: - resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + resolution: + { + integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==, + } + engines: { node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1 } hasBin: true nanoid@3.3.8: - resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + resolution: + { + integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==, + } + engines: { node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1 } hasBin: true natural-compare@1.4.0: - resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + resolution: + { + integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==, + } nitropack@2.10.4: - resolution: {integrity: sha512-sJiG/MIQlZCVSw2cQrFG1H6mLeSqHlYfFerRjLKz69vUfdu0EL2l0WdOxlQbzJr3mMv/l4cOlCCLzVRzjzzF/g==} - engines: {node: ^16.11.0 || >=17.0.0} + resolution: + { + integrity: sha512-sJiG/MIQlZCVSw2cQrFG1H6mLeSqHlYfFerRjLKz69vUfdu0EL2l0WdOxlQbzJr3mMv/l4cOlCCLzVRzjzzF/g==, + } + engines: { node: ^16.11.0 || >=17.0.0 } hasBin: true peerDependencies: xml2js: ^0.6.2 @@ -3371,21 +6157,36 @@ packages: optional: true node-addon-api@7.1.1: - resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} + resolution: + { + integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==, + } node-domexception@1.0.0: - resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} - engines: {node: '>=10.5.0'} + resolution: + { + integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==, + } + engines: { node: ">=10.5.0" } node-fetch-native@1.6.4: - resolution: {integrity: sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ==} + resolution: + { + integrity: sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ==, + } node-fetch-native@1.6.6: - resolution: {integrity: sha512-8Mc2HhqPdlIfedsuZoc3yioPuzp6b+L5jRCRY1QzuWZh2EGJVQrGppC6V6cF0bLdbW0+O2YpqCA25aF/1lvipQ==} + resolution: + { + integrity: sha512-8Mc2HhqPdlIfedsuZoc3yioPuzp6b+L5jRCRY1QzuWZh2EGJVQrGppC6V6cF0bLdbW0+O2YpqCA25aF/1lvipQ==, + } node-fetch@2.7.0: - resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} - engines: {node: 4.x || >=6.0.0} + resolution: + { + integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==, + } + engines: { node: 4.x || >=6.0.0 } peerDependencies: encoding: ^0.1.0 peerDependenciesMeta: @@ -3393,81 +6194,144 @@ packages: optional: true node-forge@1.3.1: - resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} - engines: {node: '>= 6.13.0'} + resolution: + { + integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==, + } + engines: { node: ">= 6.13.0" } node-gyp-build@4.8.2: - resolution: {integrity: sha512-IRUxE4BVsHWXkV/SFOut4qTlagw2aM8T5/vnTsmrHJvVoKueJHRc/JaFND7QDDc61kLYUJ6qlZM3sqTSyx2dTw==} + resolution: + { + integrity: sha512-IRUxE4BVsHWXkV/SFOut4qTlagw2aM8T5/vnTsmrHJvVoKueJHRc/JaFND7QDDc61kLYUJ6qlZM3sqTSyx2dTw==, + } hasBin: true node-mock-http@1.0.0: - resolution: {integrity: sha512-0uGYQ1WQL1M5kKvGRXWQ3uZCHtLTO8hln3oBjIusM75WoesZ909uQJs/Hb946i2SS+Gsrhkaa6iAO17jRIv6DQ==} + resolution: + { + integrity: sha512-0uGYQ1WQL1M5kKvGRXWQ3uZCHtLTO8hln3oBjIusM75WoesZ909uQJs/Hb946i2SS+Gsrhkaa6iAO17jRIv6DQ==, + } node-releases@2.0.18: - resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} + resolution: + { + integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==, + } nopt@8.1.0: - resolution: {integrity: sha512-ieGu42u/Qsa4TFktmaKEwM6MQH0pOWnaB3htzh0JRtx84+Mebc0cbZYN5bC+6WTZ4+77xrL9Pn5m7CV6VIkV7A==} - engines: {node: ^18.17.0 || >=20.5.0} + resolution: + { + integrity: sha512-ieGu42u/Qsa4TFktmaKEwM6MQH0pOWnaB3htzh0JRtx84+Mebc0cbZYN5bC+6WTZ4+77xrL9Pn5m7CV6VIkV7A==, + } + engines: { node: ^18.17.0 || >=20.5.0 } hasBin: true normalize-path@3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==, + } + engines: { node: ">=0.10.0" } normalize-range@0.1.2: - resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==, + } + engines: { node: ">=0.10.0" } npm-run-path@5.3.0: - resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + resolution: + { + integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==, + } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } nth-check@2.1.1: - resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + resolution: + { + integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==, + } nypm@0.3.12: - resolution: {integrity: sha512-D3pzNDWIvgA+7IORhD/IuWzEk4uXv6GsgOxiid4UU3h9oq5IqV1KtPDi63n4sZJ/xcWlr88c0QM2RgN5VbOhFA==} - engines: {node: ^14.16.0 || >=16.10.0} + resolution: + { + integrity: sha512-D3pzNDWIvgA+7IORhD/IuWzEk4uXv6GsgOxiid4UU3h9oq5IqV1KtPDi63n4sZJ/xcWlr88c0QM2RgN5VbOhFA==, + } + engines: { node: ^14.16.0 || >=16.10.0 } hasBin: true object-assign@4.1.1: - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==, + } + engines: { node: ">=0.10.0" } object-hash@3.0.0: - resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} - engines: {node: '>= 6'} + resolution: + { + integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==, + } + engines: { node: ">= 6" } ofetch@1.4.1: - resolution: {integrity: sha512-QZj2DfGplQAr2oj9KzceK9Hwz6Whxazmn85yYeVuS3u9XTMOGMRx0kO95MQ+vLsj/S/NwBDMMLU5hpxvI6Tklw==} + resolution: + { + integrity: sha512-QZj2DfGplQAr2oj9KzceK9Hwz6Whxazmn85yYeVuS3u9XTMOGMRx0kO95MQ+vLsj/S/NwBDMMLU5hpxvI6Tklw==, + } ohash@1.1.4: - resolution: {integrity: sha512-FlDryZAahJmEF3VR3w1KogSEdWX3WhA5GPakFx4J81kEAiHyLMpdLLElS8n8dfNadMgAne/MywcvmogzscVt4g==} + resolution: + { + integrity: sha512-FlDryZAahJmEF3VR3w1KogSEdWX3WhA5GPakFx4J81kEAiHyLMpdLLElS8n8dfNadMgAne/MywcvmogzscVt4g==, + } on-finished@2.4.1: - resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} - engines: {node: '>= 0.8'} + resolution: + { + integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==, + } + engines: { node: ">= 0.8" } once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + resolution: + { + integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==, + } onetime@6.0.0: - resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==, + } + engines: { node: ">=12" } oniguruma-to-es@2.3.0: - resolution: {integrity: sha512-bwALDxriqfKGfUufKGGepCzu9x7nJQuoRoAFp4AnwehhC2crqrDIAP/uN2qdlsAvSMpeRC3+Yzhqc7hLmle5+g==} + resolution: + { + integrity: sha512-bwALDxriqfKGfUufKGGepCzu9x7nJQuoRoAFp4AnwehhC2crqrDIAP/uN2qdlsAvSMpeRC3+Yzhqc7hLmle5+g==, + } oniguruma-to-js@0.4.3: - resolution: {integrity: sha512-X0jWUcAlxORhOqqBREgPMgnshB7ZGYszBNspP+tS9hPD3l13CdaXcHbgImoHUHlrvGx/7AvFEkTRhAGYh+jzjQ==} + resolution: + { + integrity: sha512-X0jWUcAlxORhOqqBREgPMgnshB7ZGYszBNspP+tS9hPD3l13CdaXcHbgImoHUHlrvGx/7AvFEkTRhAGYh+jzjQ==, + } open@8.4.2: - resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==, + } + engines: { node: ">=12" } openai@4.67.3: - resolution: {integrity: sha512-HT2tZgjLgRqbLQNKmYtjdF/4TQuiBvg1oGvTDhwpSEQzxo6/oM1us8VQ53vBK2BiKvCxFuq6gKGG70qfwrNhKg==} + resolution: + { + integrity: sha512-HT2tZgjLgRqbLQNKmYtjdF/4TQuiBvg1oGvTDhwpSEQzxo6/oM1us8VQ53vBK2BiKvCxFuq6gKGG70qfwrNhKg==, + } hasBin: true peerDependencies: zod: ^3.23.8 @@ -3476,143 +6340,244 @@ packages: optional: true openapi-typescript@7.6.1: - resolution: {integrity: sha512-F7RXEeo/heF3O9lOXo2bNjCOtfp7u+D6W3a3VNEH2xE6v+fxLtn5nq0uvUcA1F5aT+CMhNeC5Uqtg5tlXFX/ag==} + resolution: + { + integrity: sha512-F7RXEeo/heF3O9lOXo2bNjCOtfp7u+D6W3a3VNEH2xE6v+fxLtn5nq0uvUcA1F5aT+CMhNeC5Uqtg5tlXFX/ag==, + } hasBin: true peerDependencies: typescript: ^5.x optionator@0.9.4: - resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} - engines: {node: '>= 0.8.0'} + resolution: + { + integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==, + } + engines: { node: ">= 0.8.0" } p-limit@3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==, + } + engines: { node: ">=10" } p-locate@5.0.0: - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==, + } + engines: { node: ">=10" } package-json-from-dist@1.0.1: - resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} + resolution: + { + integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==, + } package-manager-detector@0.2.10: - resolution: {integrity: sha512-1wlNZK7HW+UE3eGCcMv3hDaYokhspuIeH6enXSnCL1eEZSVDsy/dYwo/4CczhUsrKLA1SSXB+qce8Glw5DEVtw==} + resolution: + { + integrity: sha512-1wlNZK7HW+UE3eGCcMv3hDaYokhspuIeH6enXSnCL1eEZSVDsy/dYwo/4CczhUsrKLA1SSXB+qce8Glw5DEVtw==, + } parent-module@1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} - engines: {node: '>=6'} + 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==} + resolution: + { + integrity: sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==, + } parse-json@8.1.0: - resolution: {integrity: sha512-rum1bPifK5SSar35Z6EKZuYPJx85pkNaFrxBK3mwdfSJ1/WKbYrjoW/zTPSjRRamfmVX1ACBIdFAO0VRErW/EA==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-rum1bPifK5SSar35Z6EKZuYPJx85pkNaFrxBK3mwdfSJ1/WKbYrjoW/zTPSjRRamfmVX1ACBIdFAO0VRErW/EA==, + } + engines: { node: ">=18" } parse5-htmlparser2-tree-adapter@7.1.0: - resolution: {integrity: sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==} + resolution: + { + integrity: sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==, + } parse5@7.2.0: - resolution: {integrity: sha512-ZkDsAOcxsUMZ4Lz5fVciOehNcJ+Gb8gTzcA4yl3wnc273BAybYWrQ+Ks/OjCjSEpjvQkDSeZbybK9qj2VHHdGA==} + resolution: + { + integrity: sha512-ZkDsAOcxsUMZ4Lz5fVciOehNcJ+Gb8gTzcA4yl3wnc273BAybYWrQ+Ks/OjCjSEpjvQkDSeZbybK9qj2VHHdGA==, + } parseurl@1.3.3: - resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} - engines: {node: '>= 0.8'} + resolution: + { + integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==, + } + engines: { node: ">= 0.8" } path-exists@4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==, + } + engines: { node: ">=8" } path-is-absolute@1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==, + } + engines: { node: ">=0.10.0" } path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==, + } + engines: { node: ">=8" } path-key@4.0.0: - resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==, + } + engines: { node: ">=12" } path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + resolution: + { + integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==, + } path-scurry@1.11.1: - resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} - engines: {node: '>=16 || 14 >=14.18'} + resolution: + { + integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==, + } + engines: { node: ">=16 || 14 >=14.18" } path-to-regexp@6.3.0: - resolution: {integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==} - - path-type@4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==, + } path-type@5.0.0: - resolution: {integrity: sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==, + } + engines: { node: ">=12" } pathe@1.1.2: - resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} + resolution: + { + integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==, + } pathe@2.0.3: - resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} + resolution: + { + integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==, + } perfect-debounce@1.0.0: - resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==} + resolution: + { + integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==, + } picocolors@1.1.0: - resolution: {integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==} + resolution: + { + integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==, + } picocolors@1.1.1: - resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + resolution: + { + integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==, + } picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} + resolution: + { + integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==, + } + engines: { node: ">=8.6" } picomatch@4.0.2: - resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==, + } + engines: { node: ">=12" } pify@2.3.0: - resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==, + } + engines: { node: ">=0.10.0" } pirates@4.0.6: - resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} - engines: {node: '>= 6'} + resolution: + { + integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==, + } + engines: { node: ">= 6" } pkg-types@1.2.1: - resolution: {integrity: sha512-sQoqa8alT3nHjGuTjuKgOnvjo4cljkufdtLMnO2LBP/wRwuDlo1tkaEdMxCRhyGRPacv/ztlZgDPm2b7FAmEvw==} + resolution: + { + integrity: sha512-sQoqa8alT3nHjGuTjuKgOnvjo4cljkufdtLMnO2LBP/wRwuDlo1tkaEdMxCRhyGRPacv/ztlZgDPm2b7FAmEvw==, + } pkg-types@1.3.1: - resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} + resolution: + { + integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==, + } pluralize@8.0.0: - resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==, + } + engines: { node: ">=4" } postcss-import@15.1.0: - resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} - engines: {node: '>=14.0.0'} + resolution: + { + integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==, + } + engines: { node: ">=14.0.0" } peerDependencies: postcss: ^8.0.0 postcss-js@4.0.1: - resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} - engines: {node: ^12 || ^14 || >= 16} + resolution: + { + integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==, + } + engines: { node: ^12 || ^14 || >= 16 } peerDependencies: postcss: ^8.4.21 postcss-load-config@4.0.2: - resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} - engines: {node: '>= 14'} + resolution: + { + integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==, + } + engines: { node: ">= 14" } peerDependencies: - postcss: '>=8.0.9' - ts-node: '>=9.0.0' + postcss: ">=8.0.9" + ts-node: ">=9.0.0" peerDependenciesMeta: postcss: optional: true @@ -3620,231 +6585,426 @@ packages: optional: true postcss-nested@6.2.0: - resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==} - engines: {node: '>=12.0'} + resolution: + { + integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==, + } + engines: { node: ">=12.0" } peerDependencies: postcss: ^8.2.14 postcss-selector-parser@6.0.10: - resolution: {integrity: sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==, + } + engines: { node: ">=4" } postcss-selector-parser@6.1.2: - resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==, + } + engines: { node: ">=4" } postcss-value-parser@4.2.0: - resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + resolution: + { + integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==, + } postcss@8.4.47: - resolution: {integrity: sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==} - engines: {node: ^10 || ^12 || >=14} + resolution: + { + integrity: sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==, + } + engines: { node: ^10 || ^12 || >=14 } postcss@8.5.3: - resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==} - engines: {node: ^10 || ^12 || >=14} + resolution: + { + integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==, + } + engines: { node: ^10 || ^12 || >=14 } preact@10.24.3: - resolution: {integrity: sha512-Z2dPnBnMUfyQfSQ+GBdsGa16hz35YmLmtTLhM169uW944hYL6xzTYkJjC07j+Wosz733pMWx0fgON3JNw1jJQA==} + resolution: + { + integrity: sha512-Z2dPnBnMUfyQfSQ+GBdsGa16hz35YmLmtTLhM169uW944hYL6xzTYkJjC07j+Wosz733pMWx0fgON3JNw1jJQA==, + } prelude-ls@1.2.1: - resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} - engines: {node: '>= 0.8.0'} + resolution: + { + integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==, + } + engines: { node: ">= 0.8.0" } prettier@3.2.5: - resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==, + } + engines: { node: ">=14" } hasBin: true pretty-bytes@6.1.1: - resolution: {integrity: sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ==} - engines: {node: ^14.13.1 || >=16.0.0} + 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} + 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==} + resolution: + { + integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==, + } process@0.11.10: - resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} - engines: {node: '>= 0.6.0'} + resolution: + { + integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==, + } + engines: { node: ">= 0.6.0" } property-information@6.5.0: - resolution: {integrity: sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==} + resolution: + { + integrity: sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==, + } property-information@7.0.0: - resolution: {integrity: sha512-7D/qOz/+Y4X/rzSB6jKxKUsQnphO046ei8qxG59mtM3RG3DHgTK81HrxrmoDVINJb8NKT5ZsRbwHvQ6B68Iyhg==} + resolution: + { + integrity: sha512-7D/qOz/+Y4X/rzSB6jKxKUsQnphO046ei8qxG59mtM3RG3DHgTK81HrxrmoDVINJb8NKT5ZsRbwHvQ6B68Iyhg==, + } punycode@2.3.1: - resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==, + } + engines: { node: ">=6" } quansync@0.2.6: - resolution: {integrity: sha512-u3TuxVTuJtkTxKGk5oZ7K2/o+l0/cC6J8SOyaaSnrnroqvcVy7xBxtvBUyd+Xa8cGoCr87XmQj4NR6W+zbqH8w==} + resolution: + { + integrity: sha512-u3TuxVTuJtkTxKGk5oZ7K2/o+l0/cC6J8SOyaaSnrnroqvcVy7xBxtvBUyd+Xa8cGoCr87XmQj4NR6W+zbqH8w==, + } queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + resolution: + { + integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==, + } queue-tick@1.0.1: - resolution: {integrity: sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==} + resolution: + { + integrity: sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==, + } radix3@1.1.2: - resolution: {integrity: sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==} + resolution: + { + integrity: sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==, + } randombytes@2.1.0: - resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + resolution: + { + integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==, + } range-parser@1.2.1: - resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} - engines: {node: '>= 0.6'} + resolution: + { + integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==, + } + engines: { node: ">= 0.6" } rc9@2.1.2: - resolution: {integrity: sha512-btXCnMmRIBINM2LDZoEmOogIZU7Qe7zn4BpomSKZ/ykbLObuBdvG+mFq11DL6fjH1DRwHhrlgtYWG96bJiC7Cg==} + resolution: + { + integrity: sha512-btXCnMmRIBINM2LDZoEmOogIZU7Qe7zn4BpomSKZ/ykbLObuBdvG+mFq11DL6fjH1DRwHhrlgtYWG96bJiC7Cg==, + } react-is@18.3.1: - resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} + 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'} + 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==} + resolution: + { + integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==, + } readable-stream@2.3.8: - resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} + resolution: + { + integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==, + } readable-stream@4.5.2: - resolution: {integrity: sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + resolution: + { + integrity: sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } readdir-glob@1.1.3: - resolution: {integrity: sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==} + resolution: + { + integrity: sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==, + } readdirp@3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} - engines: {node: '>=8.10.0'} + resolution: + { + integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==, + } + engines: { node: ">=8.10.0" } readdirp@4.1.2: - resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} - engines: {node: '>= 14.18.0'} + 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==} - engines: {node: '>= 4'} + resolution: + { + integrity: sha512-Hx/BGIbwj+Des3+xy5uAtAbdCyqK9y9wbBcDFDYanLS9JnMqf7OeF87HQwUimE87OEc72mr6tkKUKMBBL+hF9Q==, + } + engines: { node: ">= 4" } recma-build-jsx@1.0.0: - resolution: {integrity: sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew==} + resolution: + { + integrity: sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew==, + } recma-jsx@1.0.0: - resolution: {integrity: sha512-5vwkv65qWwYxg+Atz95acp8DMu1JDSqdGkA2Of1j6rCreyFUE/gp15fC8MnGEuG1W68UKjM6x6+YTWIh7hZM/Q==} + resolution: + { + integrity: sha512-5vwkv65qWwYxg+Atz95acp8DMu1JDSqdGkA2Of1j6rCreyFUE/gp15fC8MnGEuG1W68UKjM6x6+YTWIh7hZM/Q==, + } recma-parse@1.0.0: - resolution: {integrity: sha512-OYLsIGBB5Y5wjnSnQW6t3Xg7q3fQ7FWbw/vcXtORTnyaSFscOtABg+7Pnz6YZ6c27fG1/aN8CjfwoUEUIdwqWQ==} + resolution: + { + integrity: sha512-OYLsIGBB5Y5wjnSnQW6t3Xg7q3fQ7FWbw/vcXtORTnyaSFscOtABg+7Pnz6YZ6c27fG1/aN8CjfwoUEUIdwqWQ==, + } recma-stringify@1.0.0: - resolution: {integrity: sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g==} + resolution: + { + integrity: sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g==, + } redis-errors@1.2.0: - resolution: {integrity: sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==, + } + engines: { node: ">=4" } redis-parser@3.0.0: - resolution: {integrity: sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==, + } + engines: { node: ">=4" } regex-recursion@5.1.1: - resolution: {integrity: sha512-ae7SBCbzVNrIjgSbh7wMznPcQel1DNlDtzensnFxpiNpXt1U2ju/bHugH422r+4LAVS1FpW1YCwilmnNsjum9w==} + resolution: + { + integrity: sha512-ae7SBCbzVNrIjgSbh7wMznPcQel1DNlDtzensnFxpiNpXt1U2ju/bHugH422r+4LAVS1FpW1YCwilmnNsjum9w==, + } regex-utilities@2.3.0: - resolution: {integrity: sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==} + resolution: + { + integrity: sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==, + } regex@4.3.3: - resolution: {integrity: sha512-r/AadFO7owAq1QJVeZ/nq9jNS1vyZt+6t1p/E59B56Rn2GCya+gr1KSyOzNL/er+r+B7phv5jG2xU2Nz1YkmJg==} + resolution: + { + integrity: sha512-r/AadFO7owAq1QJVeZ/nq9jNS1vyZt+6t1p/E59B56Rn2GCya+gr1KSyOzNL/er+r+B7phv5jG2xU2Nz1YkmJg==, + } regex@5.1.1: - resolution: {integrity: sha512-dN5I359AVGPnwzJm2jN1k0W9LPZ+ePvoOeVMMfqIMFz53sSwXkxaJoxr50ptnsC771lK95BnTrVSZxq0b9yCGw==} + resolution: + { + integrity: sha512-dN5I359AVGPnwzJm2jN1k0W9LPZ+ePvoOeVMMfqIMFz53sSwXkxaJoxr50ptnsC771lK95BnTrVSZxq0b9yCGw==, + } rehype-autolink-headings@7.1.0: - resolution: {integrity: sha512-rItO/pSdvnvsP4QRB1pmPiNHUskikqtPojZKJPPPAVx9Hj8i8TwMBhofrrAYRhYOOBZH9tgmG5lPqDLuIWPWmw==} + resolution: + { + integrity: sha512-rItO/pSdvnvsP4QRB1pmPiNHUskikqtPojZKJPPPAVx9Hj8i8TwMBhofrrAYRhYOOBZH9tgmG5lPqDLuIWPWmw==, + } - rehype-expressive-code@0.37.1: - resolution: {integrity: sha512-HK6RJubSfgC6jpfk7UpGQcEgpMP+dhKrUQ1MmnDFYT9mOHteoLJv09WMURpQrIvXDpKCiAsaWQUBfNqRxjfL2Q==} + rehype-expressive-code@0.40.2: + resolution: + { + integrity: sha512-+kn+AMGCrGzvtH8Q5lC6Y5lnmTV/r33fdmi5QU/IH1KPHKobKr5UnLwJuqHv5jBTSN/0v2wLDS7RTM73FVzqmQ==, + } rehype-raw@7.0.0: - resolution: {integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==} + resolution: + { + integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==, + } rehype-recma@1.0.0: - resolution: {integrity: sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw==} + resolution: + { + integrity: sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw==, + } rehype-slug@6.0.0: - resolution: {integrity: sha512-lWyvf/jwu+oS5+hL5eClVd3hNdmwM1kAC0BUvEGD19pajQMIzcNUd/k9GsfQ+FfECvX+JE+e9/btsKH0EjJT6A==} + 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==} + resolution: + { + integrity: sha512-l1UyWJ6Eg1VPU7Hm/9tt0zKtReJQNOA4+iDMAxTyZNWnJnFlbS/7zhiel/rogTLQ2vMYwDzSJa4BiVNqGlqIMA==, + } remark-frontmatter@5.0.0: - resolution: {integrity: sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==} + resolution: + { + integrity: sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==, + } remark-gfm@4.0.0: - resolution: {integrity: sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==} + resolution: + { + integrity: sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==, + } remark-mdx-frontmatter@5.0.0: - resolution: {integrity: sha512-kI75pshe27TM71R+0iX7C3p4MbGMdygkvSbrk1WYSar88WAwR2JfQilofcDGgDNFAWUo5IwTPyq9XvGpifTwqQ==} + resolution: + { + integrity: sha512-kI75pshe27TM71R+0iX7C3p4MbGMdygkvSbrk1WYSar88WAwR2JfQilofcDGgDNFAWUo5IwTPyq9XvGpifTwqQ==, + } remark-mdx@3.1.0: - resolution: {integrity: sha512-Ngl/H3YXyBV9RcRNdlYsZujAmhsxwzxpDzpDEhFBVAGthS4GDgnctpDjgFl/ULx5UEDzqtW1cyBSNKqYYrqLBA==} + resolution: + { + integrity: sha512-Ngl/H3YXyBV9RcRNdlYsZujAmhsxwzxpDzpDEhFBVAGthS4GDgnctpDjgFl/ULx5UEDzqtW1cyBSNKqYYrqLBA==, + } remark-parse@11.0.0: - resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} + resolution: + { + integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==, + } remark-rehype@11.1.1: - resolution: {integrity: sha512-g/osARvjkBXb6Wo0XvAeXQohVta8i84ACbenPpoSsxTOQH/Ae0/RGP4WZgnMH5pMLpsj4FG7OHmcIcXxpza8eQ==} + resolution: + { + integrity: sha512-g/osARvjkBXb6Wo0XvAeXQohVta8i84ACbenPpoSsxTOQH/Ae0/RGP4WZgnMH5pMLpsj4FG7OHmcIcXxpza8eQ==, + } remark-stringify@11.0.0: - resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} + resolution: + { + integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==, + } require-directory@2.1.1: - resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==, + } + engines: { node: ">=0.10.0" } require-from-string@2.0.2: - resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==, + } + engines: { node: ">=0.10.0" } requires-port@1.0.0: - resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} + resolution: + { + integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==, + } resolve-from@4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==, + } + engines: { node: ">=4" } resolve-from@5.0.0: - resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==, + } + engines: { node: ">=8" } + + resolve@1.22.10: + resolution: + { + integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==, + } + engines: { node: ">= 0.4" } + hasBin: true resolve@1.22.8: - resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + resolution: + { + integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==, + } hasBin: true reusify@1.0.4: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - - rimraf@3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} - deprecated: Rimraf versions prior to v4 are no longer supported - hasBin: true + resolution: + { + integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==, + } + engines: { iojs: ">=1.0.0", node: ">=0.10.0" } rimraf@5.0.10: - resolution: {integrity: sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==} + resolution: + { + integrity: sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==, + } hasBin: true rollup-plugin-visualizer@5.12.0: - resolution: {integrity: sha512-8/NU9jXcHRs7Nnj07PF2o4gjxmm9lXIrZ8r175bT9dK8qoLlvKTwRMArRCMgpMGlq8CTLugRvEmyMeMXIU2pNQ==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-8/NU9jXcHRs7Nnj07PF2o4gjxmm9lXIrZ8r175bT9dK8qoLlvKTwRMArRCMgpMGlq8CTLugRvEmyMeMXIU2pNQ==, + } + engines: { node: ">=14" } hasBin: true peerDependencies: rollup: 2.x || 3.x || 4.x @@ -3852,488 +7012,875 @@ packages: rollup: optional: true + rollup@2.79.2: + resolution: + { + integrity: sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ==, + } + engines: { node: ">=10.0.0" } + hasBin: true + rollup@4.34.8: - resolution: {integrity: sha512-489gTVMzAYdiZHFVA/ig/iYFllCcWFHMvUHI1rpFmkoUtRlQxqh6/yiNqnYibjMZ2b/+FUQwldG+aLsEt6bglQ==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} + resolution: + { + integrity: sha512-489gTVMzAYdiZHFVA/ig/iYFllCcWFHMvUHI1rpFmkoUtRlQxqh6/yiNqnYibjMZ2b/+FUQwldG+aLsEt6bglQ==, + } + engines: { node: ">=18.0.0", npm: ">=8.0.0" } + hasBin: true + + rollup@4.35.0: + resolution: + { + integrity: sha512-kg6oI4g+vc41vePJyO6dHt/yl0Rz3Thv0kJeVQ3D1kS3E5XSuKbPc29G4IpT/Kv1KQwgHVcN+HtyS+HYLNSvQg==, + } + engines: { node: ">=18.0.0", npm: ">=8.0.0" } hasBin: true run-parallel@1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + resolution: + { + integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==, + } safe-buffer@5.1.2: - resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + resolution: + { + integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==, + } safe-buffer@5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + resolution: + { + integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==, + } sax@1.4.1: - resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} + resolution: + { + integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==, + } scule@1.3.0: - resolution: {integrity: sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==} + resolution: + { + integrity: sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==, + } search-insights@2.17.3: - resolution: {integrity: sha512-RQPdCYTa8A68uM2jwxoY842xDhvx3E5LFL1LxvxCNMev4o5mLuokczhzjAgGwUZBAmOKZknArSxLKmXtIi2AxQ==} + resolution: + { + integrity: sha512-RQPdCYTa8A68uM2jwxoY842xDhvx3E5LFL1LxvxCNMev4o5mLuokczhzjAgGwUZBAmOKZknArSxLKmXtIi2AxQ==, + } section-matter@1.0.0: - resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==, + } + engines: { node: ">=4" } semver@6.3.1: - resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + resolution: + { + integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==, + } hasBin: true semver@7.6.3: - resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==, + } + engines: { node: ">=10" } + hasBin: true + + semver@7.7.1: + resolution: + { + integrity: sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==, + } + engines: { node: ">=10" } hasBin: true send@0.19.0: - resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==} - engines: {node: '>= 0.8.0'} + resolution: + { + integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==, + } + engines: { node: ">= 0.8.0" } serialize-javascript@6.0.2: - resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} + resolution: + { + integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==, + } seroval-plugins@1.1.1: - resolution: {integrity: sha512-qNSy1+nUj7hsCOon7AO4wdAIo9P0jrzAMp18XhiOzA6/uO5TKtP7ScozVJ8T293oRIvi5wyCHSM4TrJo/c/GJA==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-qNSy1+nUj7hsCOon7AO4wdAIo9P0jrzAMp18XhiOzA6/uO5TKtP7ScozVJ8T293oRIvi5wyCHSM4TrJo/c/GJA==, + } + engines: { node: ">=10" } peerDependencies: seroval: ^1.0 seroval@1.1.1: - resolution: {integrity: sha512-rqEO6FZk8mv7Hyv4UCj3FD3b6Waqft605TLfsCe/BiaylRpyyMC0b+uA5TJKawX3KzMrdi3wsLbCaLplrQmBvQ==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-rqEO6FZk8mv7Hyv4UCj3FD3b6Waqft605TLfsCe/BiaylRpyyMC0b+uA5TJKawX3KzMrdi3wsLbCaLplrQmBvQ==, + } + engines: { node: ">=10" } serve-placeholder@2.0.2: - resolution: {integrity: sha512-/TMG8SboeiQbZJWRlfTCqMs2DD3SZgWp0kDQePz9yUuCnDfDh/92gf7/PxGhzXTKBIPASIHxFcZndoNbp6QOLQ==} + resolution: + { + integrity: sha512-/TMG8SboeiQbZJWRlfTCqMs2DD3SZgWp0kDQePz9yUuCnDfDh/92gf7/PxGhzXTKBIPASIHxFcZndoNbp6QOLQ==, + } serve-static@1.16.2: - resolution: {integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==} - engines: {node: '>= 0.8.0'} + resolution: + { + integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==, + } + engines: { node: ">= 0.8.0" } setprototypeof@1.2.0: - resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + resolution: + { + integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==, + } shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==, + } + engines: { node: ">=8" } shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==, + } + engines: { node: ">=8" } shiki@1.22.0: - resolution: {integrity: sha512-/t5LlhNs+UOKQCYBtl5ZsH/Vclz73GIqT2yQsCBygr8L/ppTdmpL4w3kPLoZJbMKVWtoG77Ue1feOjZfDxvMkw==} + resolution: + { + integrity: sha512-/t5LlhNs+UOKQCYBtl5ZsH/Vclz73GIqT2yQsCBygr8L/ppTdmpL4w3kPLoZJbMKVWtoG77Ue1feOjZfDxvMkw==, + } shiki@1.29.2: - resolution: {integrity: sha512-njXuliz/cP+67jU2hukkxCNuH1yUi4QfdZZY+sMr5PPrIyXSu5iTb/qYC4BiWWB0vZ+7TbdvYUCeL23zpwCfbg==} + resolution: + { + integrity: sha512-njXuliz/cP+67jU2hukkxCNuH1yUi4QfdZZY+sMr5PPrIyXSu5iTb/qYC4BiWWB0vZ+7TbdvYUCeL23zpwCfbg==, + } signal-exit@4.1.0: - resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==, + } + engines: { node: ">=14" } simple-git@3.27.0: - resolution: {integrity: sha512-ivHoFS9Yi9GY49ogc6/YAi3Fl9ROnF4VyubNylgCkA+RVqLaKWnDSzXOVzya8csELIaWaYNutsEuAhZrtOjozA==} + resolution: + { + integrity: sha512-ivHoFS9Yi9GY49ogc6/YAi3Fl9ROnF4VyubNylgCkA+RVqLaKWnDSzXOVzya8csELIaWaYNutsEuAhZrtOjozA==, + } sisteransi@1.0.5: - resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + resolution: + { + integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==, + } sitemap@7.1.2: - resolution: {integrity: sha512-ARCqzHJ0p4gWt+j7NlU5eDlIO9+Rkr/JhPFZKKQ1l5GCus7rJH4UdrlVAh0xC/gDS/Qir2UMxqYNHtsKr2rpCw==} - engines: {node: '>=12.0.0', npm: '>=5.6.0'} + resolution: + { + integrity: sha512-ARCqzHJ0p4gWt+j7NlU5eDlIO9+Rkr/JhPFZKKQ1l5GCus7rJH4UdrlVAh0xC/gDS/Qir2UMxqYNHtsKr2rpCw==, + } + engines: { node: ">=12.0.0", npm: ">=5.6.0" } hasBin: true - slash@3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} - engines: {node: '>=8'} - slash@5.1.0: - resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} - engines: {node: '>=14.16'} + resolution: + { + integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==, + } + engines: { node: ">=14.16" } slugify@1.6.6: - resolution: {integrity: sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==} - engines: {node: '>=8.0.0'} + resolution: + { + integrity: sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==, + } + engines: { node: ">=8.0.0" } smob@1.5.0: - resolution: {integrity: sha512-g6T+p7QO8npa+/hNx9ohv1E5pVCmWrVCUzUXJyLdMmftX6ER0oiWY/w9knEonLpnOp6b6FenKnMfR8gqwWdwig==} + resolution: + { + integrity: sha512-g6T+p7QO8npa+/hNx9ohv1E5pVCmWrVCUzUXJyLdMmftX6ER0oiWY/w9knEonLpnOp6b6FenKnMfR8gqwWdwig==, + } solid-heroicons@3.2.4: - resolution: {integrity: sha512-u6BMdFLvkJnvUGYzdFcWp1wvJ4hb9Y1zd3AbZ9D3bUmmiy9jBzNZX+RcqBCI2EKRvdQwAb1UB9bkESfqfhayDg==} + resolution: + { + integrity: sha512-u6BMdFLvkJnvUGYzdFcWp1wvJ4hb9Y1zd3AbZ9D3bUmmiy9jBzNZX+RcqBCI2EKRvdQwAb1UB9bkESfqfhayDg==, + } peerDependencies: - solid-js: '>= ^1.2.5' + solid-js: ">= ^1.2.5" solid-js@1.9.5: - resolution: {integrity: sha512-ogI3DaFcyn6UhYhrgcyRAMbu/buBJitYQASZz5WzfQVPP10RD2AbCoRZ517psnezrasyCbWzIxZ6kVqet768xw==} + resolution: + { + integrity: sha512-ogI3DaFcyn6UhYhrgcyRAMbu/buBJitYQASZz5WzfQVPP10RD2AbCoRZ517psnezrasyCbWzIxZ6kVqet768xw==, + } solid-list@0.3.0: - resolution: {integrity: sha512-t4hx/F/l8Vmq+ib9HtZYl7Z9F1eKxq3eKJTXlvcm7P7yI4Z8O7QSOOEVHb/K6DD7M0RxzVRobK/BS5aSfLRwKg==} + resolution: + { + integrity: sha512-t4hx/F/l8Vmq+ib9HtZYl7Z9F1eKxq3eKJTXlvcm7P7yI4Z8O7QSOOEVHb/K6DD7M0RxzVRobK/BS5aSfLRwKg==, + } peerDependencies: solid-js: ^1.8 solid-mdx@0.0.7: - resolution: {integrity: sha512-dYKGOu5ZiaX3sfEMZYtfyXm30u33kF+T/pr67CMeyHzENDkWD3st4XEJ12Akp0J0PG9jzyHe5sAAKEXSnEcDEw==} + resolution: + { + integrity: sha512-dYKGOu5ZiaX3sfEMZYtfyXm30u33kF+T/pr67CMeyHzENDkWD3st4XEJ12Akp0J0PG9jzyHe5sAAKEXSnEcDEw==, + } peerDependencies: solid-js: ^1.2.6 - vite: '*' + vite: "*" solid-presence@0.1.8: - resolution: {integrity: sha512-pWGtXUFWYYUZNbg5YpG5vkQJyOtzn2KXhxYaMx/4I+lylTLYkITOLevaCwMRN+liCVk0pqB6EayLWojNqBFECA==} + resolution: + { + integrity: sha512-pWGtXUFWYYUZNbg5YpG5vkQJyOtzn2KXhxYaMx/4I+lylTLYkITOLevaCwMRN+liCVk0pqB6EayLWojNqBFECA==, + } peerDependencies: solid-js: ^1.8 solid-prevent-scroll@0.1.10: - resolution: {integrity: sha512-KplGPX2GHiWJLZ6AXYRql4M127PdYzfwvLJJXMkO+CMb8Np4VxqDAg5S8jLdwlEuBis/ia9DKw2M8dFx5u8Mhw==} + resolution: + { + integrity: sha512-KplGPX2GHiWJLZ6AXYRql4M127PdYzfwvLJJXMkO+CMb8Np4VxqDAg5S8jLdwlEuBis/ia9DKw2M8dFx5u8Mhw==, + } peerDependencies: solid-js: ^1.8 solid-refresh@0.6.3: - resolution: {integrity: sha512-F3aPsX6hVw9ttm5LYlth8Q15x6MlI/J3Dn+o3EQyRTtTxidepSTwAYdozt01/YA+7ObcciagGEyXIopGZzQtbA==} + resolution: + { + integrity: sha512-F3aPsX6hVw9ttm5LYlth8Q15x6MlI/J3Dn+o3EQyRTtTxidepSTwAYdozt01/YA+7ObcciagGEyXIopGZzQtbA==, + } peerDependencies: solid-js: ^1.3 solid-use@0.9.0: - resolution: {integrity: sha512-8TGwB4m3qQ7qKo8Lg0pi/ZyyGVmQIjC4sPyxRCH7VPds0BzSsT734PhP3jhR6zMJxoYHM+uoivjq0XdpzXeOJg==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-8TGwB4m3qQ7qKo8Lg0pi/ZyyGVmQIjC4sPyxRCH7VPds0BzSsT734PhP3jhR6zMJxoYHM+uoivjq0XdpzXeOJg==, + } + engines: { node: ">=10" } peerDependencies: solid-js: ^1.7 source-map-js@1.2.1: - resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==, + } + engines: { node: ">=0.10.0" } source-map-support@0.5.21: - resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + resolution: + { + integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==, + } source-map@0.6.1: - resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==, + } + engines: { node: ">=0.10.0" } source-map@0.7.4: - resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} - engines: {node: '>= 8'} + resolution: + { + integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==, + } + engines: { node: ">= 8" } space-separated-tokens@2.0.2: - resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} + resolution: + { + integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==, + } sprintf-js@1.0.3: - resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + resolution: + { + integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==, + } stackframe@1.3.4: - resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==} + resolution: + { + integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==, + } standard-as-callback@2.1.0: - resolution: {integrity: sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==} + resolution: + { + integrity: sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==, + } statuses@2.0.1: - resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} - engines: {node: '>= 0.8'} + resolution: + { + integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==, + } + engines: { node: ">= 0.8" } std-env@3.7.0: - resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} + resolution: + { + integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==, + } streamx@2.20.1: - resolution: {integrity: sha512-uTa0mU6WUC65iUvzKH4X9hEdvSW7rbPxPtwfWiLMSj3qTdQbAiUboZTxauKfpFuGIGa1C2BYijZ7wgdUXICJhA==} + resolution: + { + integrity: sha512-uTa0mU6WUC65iUvzKH4X9hEdvSW7rbPxPtwfWiLMSj3qTdQbAiUboZTxauKfpFuGIGa1C2BYijZ7wgdUXICJhA==, + } string-width@4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==, + } + engines: { node: ">=8" } string-width@5.1.2: - resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==, + } + engines: { node: ">=12" } string_decoder@1.1.1: - resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + resolution: + { + integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==, + } string_decoder@1.3.0: - resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + resolution: + { + integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==, + } stringify-entities@4.0.4: - resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} + resolution: + { + integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==, + } strip-ansi@6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==, + } + engines: { node: ">=8" } strip-ansi@7.1.0: - resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==, + } + engines: { node: ">=12" } strip-bom-string@1.0.0: - resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==, + } + engines: { node: ">=0.10.0" } strip-final-newline@3.0.0: - resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==, + } + engines: { node: ">=12" } strip-json-comments@3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==, + } + engines: { node: ">=8" } strip-literal@2.1.0: - resolution: {integrity: sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==} + resolution: + { + integrity: sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==, + } strip-literal@3.0.0: - resolution: {integrity: sha512-TcccoMhJOM3OebGhSBEmp3UZ2SfDMZUEBdRA/9ynfLi8yYajyWX3JiXArcJt4Umh4vISpspkQIY8ZZoCqjbviA==} - - style-to-object@0.3.0: - resolution: {integrity: sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==} + resolution: + { + integrity: sha512-TcccoMhJOM3OebGhSBEmp3UZ2SfDMZUEBdRA/9ynfLi8yYajyWX3JiXArcJt4Umh4vISpspkQIY8ZZoCqjbviA==, + } style-to-object@0.4.4: - resolution: {integrity: sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==} + resolution: + { + integrity: sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==, + } style-to-object@1.0.8: - resolution: {integrity: sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==} + resolution: + { + integrity: sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==, + } sucrase@3.35.0: - resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} - engines: {node: '>=16 || 14 >=14.17'} + resolution: + { + integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==, + } + engines: { node: ">=16 || 14 >=14.17" } hasBin: true supports-color@5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==, + } + engines: { node: ">=4" } supports-color@7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==, + } + engines: { node: ">=8" } supports-color@9.4.0: - resolution: {integrity: sha512-VL+lNrEoIXww1coLPOmiEmK/0sGigko5COxI09KzHc2VJXJsQ37UaQ+8quuxjDeA7+KnLGTWRyOXSLLR2Wb4jw==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-VL+lNrEoIXww1coLPOmiEmK/0sGigko5COxI09KzHc2VJXJsQ37UaQ+8quuxjDeA7+KnLGTWRyOXSLLR2Wb4jw==, + } + engines: { node: ">=12" } supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==, + } + engines: { node: ">= 0.4" } system-architecture@0.1.0: - resolution: {integrity: sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA==, + } + engines: { node: ">=18" } tailwindcss@3.4.14: - resolution: {integrity: sha512-IcSvOcTRcUtQQ7ILQL5quRDg7Xs93PdJEk1ZLbhhvJc7uj/OAhYOnruEiwnGgBvUtaUAJ8/mhSw1o8L2jCiENA==} - engines: {node: '>=14.0.0'} + resolution: + { + integrity: sha512-IcSvOcTRcUtQQ7ILQL5quRDg7Xs93PdJEk1ZLbhhvJc7uj/OAhYOnruEiwnGgBvUtaUAJ8/mhSw1o8L2jCiENA==, + } + engines: { node: ">=14.0.0" } hasBin: true tar-stream@3.1.7: - resolution: {integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==} + resolution: + { + integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==, + } tar@6.2.1: - resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==, + } + engines: { node: ">=10" } tar@7.4.3: - resolution: {integrity: sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==, + } + engines: { node: ">=18" } terracotta@1.0.6: - resolution: {integrity: sha512-yVrmT/Lg6a3tEbeYEJH8ksb1PYkR5FA9k5gr1TchaSNIiA2ZWs5a+koEbePXwlBP0poaV7xViZ/v50bQFcMgqw==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-yVrmT/Lg6a3tEbeYEJH8ksb1PYkR5FA9k5gr1TchaSNIiA2ZWs5a+koEbePXwlBP0poaV7xViZ/v50bQFcMgqw==, + } + engines: { node: ">=10" } peerDependencies: solid-js: ^1.8 terser@5.34.1: - resolution: {integrity: sha512-FsJZ7iZLd/BXkz+4xrRTGJ26o/6VTjQytUk8b8OxkwcD2I+79VPJlz7qss1+zE7h8GNIScFqXcDyJ/KqBYZFVA==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-FsJZ7iZLd/BXkz+4xrRTGJ26o/6VTjQytUk8b8OxkwcD2I+79VPJlz7qss1+zE7h8GNIScFqXcDyJ/KqBYZFVA==, + } + engines: { node: ">=10" } hasBin: true text-decoder@1.2.0: - resolution: {integrity: sha512-n1yg1mOj9DNpk3NeZOx7T6jchTbyJS3i3cucbNN6FcdPriMZx7NsgrGpWWdWZZGxD7ES1XB+3uoqHMgOKaN+fg==} - - text-table@0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + resolution: + { + integrity: sha512-n1yg1mOj9DNpk3NeZOx7T6jchTbyJS3i3cucbNN6FcdPriMZx7NsgrGpWWdWZZGxD7ES1XB+3uoqHMgOKaN+fg==, + } thenify-all@1.6.0: - resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} - engines: {node: '>=0.8'} + resolution: + { + integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==, + } + engines: { node: ">=0.8" } thenify@3.3.1: - resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + resolution: + { + integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==, + } tiny-invariant@1.3.3: - resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} + resolution: + { + integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==, + } tinyexec@0.3.2: - resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} + 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'} + resolution: + { + integrity: sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==, + } + engines: { node: ">=12.0.0" } to-fast-properties@2.0.0: - resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==, + } + engines: { node: ">=4" } to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} + resolution: + { + integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==, + } + engines: { node: ">=8.0" } toidentifier@1.0.1: - resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} - engines: {node: '>=0.6'} + resolution: + { + integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==, + } + engines: { node: ">=0.6" } toml@3.0.0: - resolution: {integrity: sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==} + resolution: + { + integrity: sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==, + } tr46@0.0.3: - resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + resolution: + { + integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==, + } trim-lines@3.0.1: - resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} + resolution: + { + integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==, + } trough@1.0.5: - resolution: {integrity: sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==} + resolution: + { + integrity: sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==, + } trough@2.2.0: - resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} - - ts-api-utils@1.3.0: - resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} - engines: {node: '>=16'} + resolution: + { + integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==, + } + + ts-api-utils@2.0.1: + resolution: + { + integrity: sha512-dnlgjFSVetynI8nzgJ+qF62efpglpWRk8isUEWZGWlJYySCTD6aKvbUDu+zbPeDakk3bg5H4XpitHukgfL1m9w==, + } + engines: { node: ">=18.12" } peerDependencies: - typescript: '>=4.2.0' + typescript: ">=4.8.4" ts-interface-checker@0.1.13: - resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + resolution: + { + integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==, + } tslib@2.8.0: - resolution: {integrity: sha512-jWVzBLplnCmoaTr13V9dYbiQ99wvZRd0vNWaDRg+aVYRcjDF3nDksxFDE/+fkXnKhpnUUkmx5pK/v8mCtLVqZA==} + resolution: + { + integrity: sha512-jWVzBLplnCmoaTr13V9dYbiQ99wvZRd0vNWaDRg+aVYRcjDF3nDksxFDE/+fkXnKhpnUUkmx5pK/v8mCtLVqZA==, + } + + twoslash-protocol@0.2.12: + resolution: + { + integrity: sha512-5qZLXVYfZ9ABdjqbvPc4RWMr7PrpPaaDSeaYY55vl/w1j6H6kzsWK/urAEIXlzYlyrFmyz1UbwIt+AA0ck+wbg==, + } + + twoslash@0.2.12: + resolution: + { + integrity: sha512-tEHPASMqi7kqwfJbkk7hc/4EhlrKCSLcur+TcvYki3vhIfaRMXnXjaYFgXpoZRbT6GdprD4tGuVBEmTpUgLBsw==, + } + peerDependencies: + typescript: "*" type-check@0.4.0: - resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} - engines: {node: '>= 0.8.0'} - - type-fest@0.20.2: - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==, + } + engines: { node: ">= 0.8.0" } type-fest@2.19.0: - resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} - engines: {node: '>=12.20'} + resolution: + { + integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==, + } + engines: { node: ">=12.20" } type-fest@4.35.0: - resolution: {integrity: sha512-2/AwEFQDFEy30iOLjrvHDIH7e4HEWH+f1Yl1bI5XMqzuoCUqwYCdxachgsgv0og/JdVZUhbfjcJAoHj5L1753A==} - engines: {node: '>=16'} - - typescript@5.6.3: - resolution: {integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==} - engines: {node: '>=14.17'} + resolution: + { + integrity: sha512-2/AwEFQDFEy30iOLjrvHDIH7e4HEWH+f1Yl1bI5XMqzuoCUqwYCdxachgsgv0og/JdVZUhbfjcJAoHj5L1753A==, + } + engines: { node: ">=16" } + + typescript@5.8.2: + resolution: + { + integrity: sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==, + } + engines: { node: ">=14.17" } hasBin: true ufo@1.5.4: - resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==} + resolution: + { + integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==, + } ultramatter@0.0.4: - resolution: {integrity: sha512-1f/hO3mR+/Hgue4eInOF/Qm/wzDqwhYha4DxM0hre9YIUyso3fE2XtrAU6B4njLqTC8CM49EZaYgsVSa+dXHGw==} + resolution: + { + integrity: sha512-1f/hO3mR+/Hgue4eInOF/Qm/wzDqwhYha4DxM0hre9YIUyso3fE2XtrAU6B4njLqTC8CM49EZaYgsVSa+dXHGw==, + } uncrypto@0.1.3: - resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==} + resolution: + { + integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==, + } unctx@2.3.1: - resolution: {integrity: sha512-PhKke8ZYauiqh3FEMVNm7ljvzQiph0Mt3GBRve03IJm7ukfaON2OBK795tLwhbyfzknuRRkW0+Ze+CQUmzOZ+A==} + resolution: + { + integrity: sha512-PhKke8ZYauiqh3FEMVNm7ljvzQiph0Mt3GBRve03IJm7ukfaON2OBK795tLwhbyfzknuRRkW0+Ze+CQUmzOZ+A==, + } undici-types@5.26.5: - resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + resolution: + { + integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==, + } undici-types@5.28.4: - resolution: {integrity: sha512-3OeMF5Lyowe8VW0skf5qaIE7Or3yS9LS7fvMUI0gg4YxpIBVg0L8BxCmROw2CcYhSkpR68Epz7CGc8MPj94Uww==} + resolution: + { + integrity: sha512-3OeMF5Lyowe8VW0skf5qaIE7Or3yS9LS7fvMUI0gg4YxpIBVg0L8BxCmROw2CcYhSkpR68Epz7CGc8MPj94Uww==, + } undici-types@6.19.8: - resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} + resolution: + { + integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==, + } unenv@1.10.0: - resolution: {integrity: sha512-wY5bskBQFL9n3Eca5XnhH6KbUo/tfvkwm9OpcdCvLaeA7piBNbavbOKJySEwQ1V0RH6HvNlSAFRTpvTqgKRQXQ==} + resolution: + { + integrity: sha512-wY5bskBQFL9n3Eca5XnhH6KbUo/tfvkwm9OpcdCvLaeA7piBNbavbOKJySEwQ1V0RH6HvNlSAFRTpvTqgKRQXQ==, + } unicorn-magic@0.1.0: - resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==, + } + engines: { node: ">=18" } unified@11.0.5: - resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} + resolution: + { + integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==, + } unified@9.2.2: - resolution: {integrity: sha512-Sg7j110mtefBD+qunSLO1lqOEKdrwBFBrR6Qd8f4uwkhWNlbkaqwHse6e7QvD3AP/MNoJdEDLaf8OxYyoWgorQ==} + resolution: + { + integrity: sha512-Sg7j110mtefBD+qunSLO1lqOEKdrwBFBrR6Qd8f4uwkhWNlbkaqwHse6e7QvD3AP/MNoJdEDLaf8OxYyoWgorQ==, + } unimport@3.13.1: - resolution: {integrity: sha512-nNrVzcs93yrZQOW77qnyOVHtb68LegvhYFwxFMfuuWScmwQmyVCG/NBuN8tYsaGzgQUVYv34E/af+Cc9u4og4A==} + resolution: + { + integrity: sha512-nNrVzcs93yrZQOW77qnyOVHtb68LegvhYFwxFMfuuWScmwQmyVCG/NBuN8tYsaGzgQUVYv34E/af+Cc9u4og4A==, + } unimport@4.1.2: - resolution: {integrity: sha512-oVUL7PSlyVV3QRhsdcyYEMaDX8HJyS/CnUonEJTYA3//bWO+o/4gG8F7auGWWWkrrxBQBYOO8DKe+C53ktpRXw==} - engines: {node: '>=18.12.0'} + resolution: + { + integrity: sha512-oVUL7PSlyVV3QRhsdcyYEMaDX8HJyS/CnUonEJTYA3//bWO+o/4gG8F7auGWWWkrrxBQBYOO8DKe+C53ktpRXw==, + } + engines: { node: ">=18.12.0" } unist-builder@4.0.0: - resolution: {integrity: sha512-wmRFnH+BLpZnTKpc5L7O67Kac89s9HMrtELpnNaE6TAobq5DTZZs5YaTQfAZBA9bFPECx2uVAPO31c+GVug8mg==} + resolution: + { + integrity: sha512-wmRFnH+BLpZnTKpc5L7O67Kac89s9HMrtELpnNaE6TAobq5DTZZs5YaTQfAZBA9bFPECx2uVAPO31c+GVug8mg==, + } unist-util-find-after@5.0.0: - resolution: {integrity: sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==} + resolution: + { + integrity: sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==, + } unist-util-is@6.0.0: - resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} + resolution: + { + integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==, + } unist-util-position-from-estree@2.0.0: - resolution: {integrity: sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==} + resolution: + { + integrity: sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==, + } unist-util-position@5.0.0: - resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} + resolution: + { + integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==, + } unist-util-stringify-position@2.0.3: - resolution: {integrity: sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==} + resolution: + { + integrity: sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==, + } unist-util-stringify-position@3.0.3: - resolution: {integrity: sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==} + resolution: + { + integrity: sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==, + } unist-util-stringify-position@4.0.0: - resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} + resolution: + { + integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==, + } unist-util-visit-parents@6.0.1: - resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} + resolution: + { + integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==, + } unist-util-visit@5.0.0: - resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} + resolution: + { + integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==, + } universalify@2.0.1: - resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} - engines: {node: '>= 10.0.0'} + resolution: + { + integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==, + } + engines: { node: ">= 10.0.0" } unplugin-auto-import@19.1.1: - resolution: {integrity: sha512-sCGZZrSR1Bc8RfN8Q0RUDxXtC20rdAt7UB4lDyq8MNtKVHiXXh+5af6Nz4JRp9Q+7HjnbgQfQox0TkEymjdUAQ==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-sCGZZrSR1Bc8RfN8Q0RUDxXtC20rdAt7UB4lDyq8MNtKVHiXXh+5af6Nz4JRp9Q+7HjnbgQfQox0TkEymjdUAQ==, + } + engines: { node: ">=14" } peerDependencies: - '@nuxt/kit': ^3.2.2 - '@vueuse/core': '*' + "@nuxt/kit": ^3.2.2 + "@vueuse/core": "*" peerDependenciesMeta: - '@nuxt/kit': + "@nuxt/kit": optional: true - '@vueuse/core': + "@vueuse/core": optional: true unplugin-fonts@1.3.1: - resolution: {integrity: sha512-GmaJWPAWH6lBI4fP8xKdbMZJwTgsnr8PGJOfQE52jlod8QkqSO4M529Nox2L8zYapjB5hox2wCu4N3c/LOal/A==} + resolution: + { + integrity: sha512-GmaJWPAWH6lBI4fP8xKdbMZJwTgsnr8PGJOfQE52jlod8QkqSO4M529Nox2L8zYapjB5hox2wCu4N3c/LOal/A==, + } peerDependencies: - '@nuxt/kit': ^3.0.0 + "@nuxt/kit": ^3.0.0 vite: ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 peerDependenciesMeta: - '@nuxt/kit': + "@nuxt/kit": optional: true unplugin-icons@22.1.0: - resolution: {integrity: sha512-ect2ZNtk1Zgwb0NVHd0C1IDW/MV+Jk/xaq4t8o6rYdVS3+L660ZdD5kTSQZvsgdwCvquRw+/wYn75hsweRjoIA==} + resolution: + { + integrity: sha512-ect2ZNtk1Zgwb0NVHd0C1IDW/MV+Jk/xaq4t8o6rYdVS3+L660ZdD5kTSQZvsgdwCvquRw+/wYn75hsweRjoIA==, + } peerDependencies: - '@svgr/core': '>=7.0.0' - '@svgx/core': ^1.0.1 - '@vue/compiler-sfc': ^3.0.2 || ^2.7.0 + "@svgr/core": ">=7.0.0" + "@svgx/core": ^1.0.1 + "@vue/compiler-sfc": ^3.0.2 || ^2.7.0 svelte: ^3.0.0 || ^4.0.0 || ^5.0.0 vue-template-compiler: ^2.6.12 vue-template-es2015-compiler: ^1.9.0 peerDependenciesMeta: - '@svgr/core': + "@svgr/core": optional: true - '@svgx/core': + "@svgx/core": optional: true - '@vue/compiler-sfc': + "@vue/compiler-sfc": optional: true svelte: optional: true @@ -4343,12 +7890,18 @@ packages: optional: true unplugin-utils@0.2.4: - resolution: {integrity: sha512-8U/MtpkPkkk3Atewj1+RcKIjb5WBimZ/WSLhhR3w6SsIj8XJuKTacSP8g+2JhfSGw0Cb125Y+2zA/IzJZDVbhA==} - engines: {node: '>=18.12.0'} + resolution: + { + integrity: sha512-8U/MtpkPkkk3Atewj1+RcKIjb5WBimZ/WSLhhR3w6SsIj8XJuKTacSP8g+2JhfSGw0Cb125Y+2zA/IzJZDVbhA==, + } + engines: { node: ">=18.12.0" } unplugin@1.14.1: - resolution: {integrity: sha512-lBlHbfSFPToDYp9pjXlUEFVxYLaue9f9T1HC+4OHlmj+HnMDdz9oZY+erXfoCe/5V/7gKUSY2jpXPb9S7f0f/w==} - engines: {node: '>=14.0.0'} + resolution: + { + integrity: sha512-lBlHbfSFPToDYp9pjXlUEFVxYLaue9f9T1HC+4OHlmj+HnMDdz9oZY+erXfoCe/5V/7gKUSY2jpXPb9S7f0f/w==, + } + engines: { node: ">=14.0.0" } peerDependencies: webpack-sources: ^3 peerDependenciesMeta: @@ -4356,60 +7909,69 @@ packages: optional: true unplugin@2.0.0-beta.1: - resolution: {integrity: sha512-2qzQo5LN2DmUZXkWDHvGKLF5BP0WN+KthD6aPnPJ8plRBIjv4lh5O07eYcSxgO2znNw9s4MNhEO1sB+JDllDbQ==} - engines: {node: '>=18.12.0'} + resolution: + { + integrity: sha512-2qzQo5LN2DmUZXkWDHvGKLF5BP0WN+KthD6aPnPJ8plRBIjv4lh5O07eYcSxgO2znNw9s4MNhEO1sB+JDllDbQ==, + } + engines: { node: ">=18.12.0" } unplugin@2.2.0: - resolution: {integrity: sha512-m1ekpSwuOT5hxkJeZGRxO7gXbXT3gF26NjQ7GdVHoLoF8/nopLcd/QfPigpCy7i51oFHiRJg/CyHhj4vs2+KGw==} - engines: {node: '>=18.12.0'} + resolution: + { + integrity: sha512-m1ekpSwuOT5hxkJeZGRxO7gXbXT3gF26NjQ7GdVHoLoF8/nopLcd/QfPigpCy7i51oFHiRJg/CyHhj4vs2+KGw==, + } + engines: { node: ">=18.12.0" } unstorage@1.15.0: - resolution: {integrity: sha512-m40eHdGY/gA6xAPqo8eaxqXgBuzQTlAKfmB1iF7oCKXE1HfwHwzDJBywK+qQGn52dta+bPlZluPF7++yR3p/bg==} + resolution: + { + integrity: sha512-m40eHdGY/gA6xAPqo8eaxqXgBuzQTlAKfmB1iF7oCKXE1HfwHwzDJBywK+qQGn52dta+bPlZluPF7++yR3p/bg==, + } peerDependencies: - '@azure/app-configuration': ^1.8.0 - '@azure/cosmos': ^4.2.0 - '@azure/data-tables': ^13.3.0 - '@azure/identity': ^4.6.0 - '@azure/keyvault-secrets': ^4.9.0 - '@azure/storage-blob': ^12.26.0 - '@capacitor/preferences': ^6.0.3 - '@deno/kv': '>=0.9.0' - '@netlify/blobs': ^6.5.0 || ^7.0.0 || ^8.1.0 - '@planetscale/database': ^1.19.0 - '@upstash/redis': ^1.34.3 - '@vercel/blob': '>=0.27.1' - '@vercel/kv': ^1.0.1 + "@azure/app-configuration": ^1.8.0 + "@azure/cosmos": ^4.2.0 + "@azure/data-tables": ^13.3.0 + "@azure/identity": ^4.6.0 + "@azure/keyvault-secrets": ^4.9.0 + "@azure/storage-blob": ^12.26.0 + "@capacitor/preferences": ^6.0.3 + "@deno/kv": ">=0.9.0" + "@netlify/blobs": ^6.5.0 || ^7.0.0 || ^8.1.0 + "@planetscale/database": ^1.19.0 + "@upstash/redis": ^1.34.3 + "@vercel/blob": ">=0.27.1" + "@vercel/kv": ^1.0.1 aws4fetch: ^1.0.20 - db0: '>=0.2.1' + db0: ">=0.2.1" idb-keyval: ^6.2.1 ioredis: ^5.4.2 uploadthing: ^7.4.4 peerDependenciesMeta: - '@azure/app-configuration': + "@azure/app-configuration": optional: true - '@azure/cosmos': + "@azure/cosmos": optional: true - '@azure/data-tables': + "@azure/data-tables": optional: true - '@azure/identity': + "@azure/identity": optional: true - '@azure/keyvault-secrets': + "@azure/keyvault-secrets": optional: true - '@azure/storage-blob': + "@azure/storage-blob": optional: true - '@capacitor/preferences': + "@capacitor/preferences": optional: true - '@deno/kv': + "@deno/kv": optional: true - '@netlify/blobs': + "@netlify/blobs": optional: true - '@planetscale/database': + "@planetscale/database": optional: true - '@upstash/redis': + "@upstash/redis": optional: true - '@vercel/blob': + "@vercel/blob": optional: true - '@vercel/kv': + "@vercel/kv": optional: true aws4fetch: optional: true @@ -4423,93 +7985,162 @@ packages: optional: true untun@0.1.3: - resolution: {integrity: sha512-4luGP9LMYszMRZwsvyUd9MrxgEGZdZuZgpVQHEEX0lCYFESasVRvZd0EYpCkOIbJKHMuv0LskpXc/8Un+MJzEQ==} + resolution: + { + integrity: sha512-4luGP9LMYszMRZwsvyUd9MrxgEGZdZuZgpVQHEEX0lCYFESasVRvZd0EYpCkOIbJKHMuv0LskpXc/8Un+MJzEQ==, + } hasBin: true untyped@1.5.2: - resolution: {integrity: sha512-eL/8PlhLcMmlMDtNPKhyyz9kEBDS3Uk4yMu/ewlkT2WFbtzScjHWPJLdQLmaGPUKjXzwe9MumOtOgc4Fro96Kg==} + resolution: + { + integrity: sha512-eL/8PlhLcMmlMDtNPKhyyz9kEBDS3Uk4yMu/ewlkT2WFbtzScjHWPJLdQLmaGPUKjXzwe9MumOtOgc4Fro96Kg==, + } hasBin: true unwasm@0.3.9: - resolution: {integrity: sha512-LDxTx/2DkFURUd+BU1vUsF/moj0JsoTvl+2tcg2AUOiEzVturhGGx17/IMgGvKUYdZwr33EJHtChCJuhu9Ouvg==} + resolution: + { + integrity: sha512-LDxTx/2DkFURUd+BU1vUsF/moj0JsoTvl+2tcg2AUOiEzVturhGGx17/IMgGvKUYdZwr33EJHtChCJuhu9Ouvg==, + } update-browserslist-db@1.1.1: - resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==} + resolution: + { + integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==, + } hasBin: true peerDependencies: - browserslist: '>= 4.21.0' + browserslist: ">= 4.21.0" uqr@0.1.2: - resolution: {integrity: sha512-MJu7ypHq6QasgF5YRTjqscSzQp/W11zoUk6kvmlH+fmWEs63Y0Eib13hYFwAzagRJcVY8WVnlV+eBDUGMJ5IbA==} + resolution: + { + integrity: sha512-MJu7ypHq6QasgF5YRTjqscSzQp/W11zoUk6kvmlH+fmWEs63Y0Eib13hYFwAzagRJcVY8WVnlV+eBDUGMJ5IbA==, + } uri-js-replace@1.0.1: - resolution: {integrity: sha512-W+C9NWNLFOoBI2QWDp4UT9pv65r2w5Cx+3sTYFvtMdDBxkKt1syCqsUdSFAChbEe1uK5TfS04wt/nGwmaeIQ0g==} + resolution: + { + integrity: sha512-W+C9NWNLFOoBI2QWDp4UT9pv65r2w5Cx+3sTYFvtMdDBxkKt1syCqsUdSFAChbEe1uK5TfS04wt/nGwmaeIQ0g==, + } uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + resolution: + { + integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==, + } urlpattern-polyfill@8.0.2: - resolution: {integrity: sha512-Qp95D4TPJl1kC9SKigDcqgyM2VDVO4RiJc2d4qe5GrYm+zbIQCWWKAFaJNQ4BhdFeDGwBmAxqJBwWSJDb9T3BQ==} + resolution: + { + integrity: sha512-Qp95D4TPJl1kC9SKigDcqgyM2VDVO4RiJc2d4qe5GrYm+zbIQCWWKAFaJNQ4BhdFeDGwBmAxqJBwWSJDb9T3BQ==, + } util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + resolution: + { + integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==, + } validate-html-nesting@1.2.2: - resolution: {integrity: sha512-hGdgQozCsQJMyfK5urgFcWEqsSSrK63Awe0t/IMR0bZ0QMtnuaiHzThW81guu3qx9abLi99NEuiaN6P9gVYsNg==} + resolution: + { + integrity: sha512-hGdgQozCsQJMyfK5urgFcWEqsSSrK63Awe0t/IMR0bZ0QMtnuaiHzThW81guu3qx9abLi99NEuiaN6P9gVYsNg==, + } vfile-location@5.0.3: - resolution: {integrity: sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==} + resolution: + { + integrity: sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==, + } vfile-message@2.0.4: - resolution: {integrity: sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==} + resolution: + { + integrity: sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==, + } vfile-message@3.1.4: - resolution: {integrity: sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==} + resolution: + { + integrity: sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==, + } vfile-message@4.0.2: - resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} + resolution: + { + integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==, + } vfile@4.2.1: - resolution: {integrity: sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==} + resolution: + { + integrity: sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==, + } vfile@5.3.7: - resolution: {integrity: sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==} + resolution: + { + integrity: sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==, + } vfile@6.0.3: - resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} + resolution: + { + integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==, + } vinxi@0.5.3: - resolution: {integrity: sha512-4sL2SMrRzdzClapP44oXdGjCE1oq7/DagsbjY5A09EibmoIO4LP8ScRVdh03lfXxKRk7nCWK7n7dqKvm+fp/9w==} + resolution: + { + integrity: sha512-4sL2SMrRzdzClapP44oXdGjCE1oq7/DagsbjY5A09EibmoIO4LP8ScRVdh03lfXxKRk7nCWK7n7dqKvm+fp/9w==, + } hasBin: true + vite-plugin-eslint@1.8.1: + resolution: + { + integrity: sha512-PqdMf3Y2fLO9FsNPmMX+//2BF5SF8nEWspZdgl4kSt7UvHDRHVVfHvxsD7ULYzZrJDGRxR81Nq7TOFgwMnUang==, + } + peerDependencies: + eslint: ">=7" + vite: ">=2" + vite-plugin-solid@2.11.2: - resolution: {integrity: sha512-/OXVasW5OIRSFXnqzMgm8X3hPvf+JTbGecjQhmk7QnbDFq4hqdLssuYAWw9GsJGfzUPiMHM3ME2Y2XHPsTWmkw==} + resolution: + { + integrity: sha512-/OXVasW5OIRSFXnqzMgm8X3hPvf+JTbGecjQhmk7QnbDFq4hqdLssuYAWw9GsJGfzUPiMHM3ME2Y2XHPsTWmkw==, + } peerDependencies: - '@testing-library/jest-dom': ^5.16.6 || ^5.17.0 || ^6.* + "@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 peerDependenciesMeta: - '@testing-library/jest-dom': + "@testing-library/jest-dom": optional: true - vite@6.1.1: - resolution: {integrity: sha512-4GgM54XrwRfrOp297aIYspIti66k56v16ZnqHvrIM7mG+HjDlAwS7p+Srr7J6fGvEdOJ5JcQ/D9T7HhtdXDTzA==} - engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + vite@6.2.1: + resolution: + { + integrity: sha512-n2GnqDb6XPhlt9B8olZPrgMD/es/Nd1RdChF6CBD/fHW6pUyUTt2sQW2fPRX5GiD9XEa6+8A6A4f2vT6pSsE7Q==, + } + engines: { node: ^18.0.0 || ^20.0.0 || >=22.0.0 } hasBin: true peerDependencies: - '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 - jiti: '>=1.21.0' - less: '*' + "@types/node": ^18.0.0 || ^20.0.0 || >=22.0.0 + jiti: ">=1.21.0" + less: "*" lightningcss: ^1.21.0 - sass: '*' - sass-embedded: '*' - stylus: '*' - sugarss: '*' + sass: "*" + sass-embedded: "*" + stylus: "*" + sugarss: "*" terser: ^5.16.0 tsx: ^4.8.1 yaml: ^2.4.2 peerDependenciesMeta: - '@types/node': + "@types/node": optional: true jiti: optional: true @@ -4533,7 +8164,10 @@ packages: optional: true vitefu@1.0.5: - resolution: {integrity: sha512-h4Vflt9gxODPFNGPwp4zAMZRpZR7eslzwH2c5hn5kNZ5rhnKyRJ50U+yGCdc2IRaBs8O4haIgLNGrV5CrpMsCA==} + resolution: + { + integrity: sha512-h4Vflt9gxODPFNGPwp4zAMZRpZR7eslzwH2c5hn5kNZ5rhnKyRJ50U+yGCdc2IRaBs8O4haIgLNGrV5CrpMsCA==, + } peerDependencies: vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 peerDependenciesMeta: @@ -4541,761 +8175,919 @@ packages: optional: true vue@3.5.12: - resolution: {integrity: sha512-CLVZtXtn2ItBIi/zHZ0Sg1Xkb7+PU32bJJ8Bmy7ts3jxXTcbfsEfBivFYYWz1Hur+lalqGAh65Coin0r+HRUfg==} + resolution: + { + integrity: sha512-CLVZtXtn2ItBIi/zHZ0Sg1Xkb7+PU32bJJ8Bmy7ts3jxXTcbfsEfBivFYYWz1Hur+lalqGAh65Coin0r+HRUfg==, + } peerDependencies: - typescript: '*' + typescript: "*" peerDependenciesMeta: typescript: optional: true web-namespaces@2.0.1: - resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} + resolution: + { + integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==, + } web-streams-polyfill@4.0.0-beta.3: - resolution: {integrity: sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==} - engines: {node: '>= 14'} + resolution: + { + integrity: sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==, + } + engines: { node: ">= 14" } webidl-conversions@3.0.1: - resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + resolution: + { + integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==, + } webpack-virtual-modules@0.6.2: - resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==} + resolution: + { + integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==, + } whatwg-url@5.0.0: - resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + resolution: + { + integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==, + } which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} + resolution: + { + integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==, + } + engines: { node: ">= 8" } hasBin: true which@4.0.0: - resolution: {integrity: sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==} - engines: {node: ^16.13.0 || >=18.0.0} + resolution: + { + integrity: sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==, + } + engines: { node: ^16.13.0 || >=18.0.0 } hasBin: true widest-line@4.0.1: - resolution: {integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==, + } + engines: { node: ">=12" } word-wrap@1.2.5: - resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==, + } + engines: { node: ">=0.10.0" } wrap-ansi@7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==, + } + engines: { node: ">=10" } wrap-ansi@8.1.0: - resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==, + } + engines: { node: ">=12" } wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + resolution: + { + integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==, + } y18n@5.0.8: - resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==, + } + engines: { node: ">=10" } yallist@3.1.1: - resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + resolution: + { + integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==, + } yallist@4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + resolution: + { + integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==, + } yallist@5.0.0: - resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==, + } + engines: { node: ">=18" } yaml-ast-parser@0.0.43: - resolution: {integrity: sha512-2PTINUwsRqSd+s8XxKaJWQlUuEMHJQyEuh2edBbW8KNJz0SJPwUSD2zRWqezFEdN7IzAgeuYHFUCF7o8zRdZ0A==} + resolution: + { + integrity: sha512-2PTINUwsRqSd+s8XxKaJWQlUuEMHJQyEuh2edBbW8KNJz0SJPwUSD2zRWqezFEdN7IzAgeuYHFUCF7o8zRdZ0A==, + } yaml@2.6.0: - resolution: {integrity: sha512-a6ae//JvKDEra2kdi1qzCyrJW/WZCgFi8ydDV+eXExl95t+5R+ijnqHJbz9tmMh8FUjx3iv2fCQ4dclAQlO2UQ==} - engines: {node: '>= 14'} + resolution: + { + integrity: sha512-a6ae//JvKDEra2kdi1qzCyrJW/WZCgFi8ydDV+eXExl95t+5R+ijnqHJbz9tmMh8FUjx3iv2fCQ4dclAQlO2UQ==, + } + engines: { node: ">= 14" } hasBin: true yargs-parser@21.1.1: - resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==, + } + engines: { node: ">=12" } yargs@17.7.2: - resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==, + } + engines: { node: ">=12" } yocto-queue@0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==, + } + engines: { node: ">=10" } zip-stream@6.0.1: - resolution: {integrity: sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==} - engines: {node: '>= 14'} + resolution: + { + integrity: sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==, + } + engines: { node: ">= 14" } zod@3.23.8: - resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} + resolution: + { + integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==, + } zwitch@2.0.4: - resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} + 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)': + "@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) + "@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' + - "@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)': + "@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) + "@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' + - "@algolia/client-search" - algoliasearch - '@algolia/autocomplete-preset-algolia@1.17.7(@algolia/client-search@5.14.2)(algoliasearch@5.14.2)': + "@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 + "@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)': + "@algolia/autocomplete-shared@1.17.7(@algolia/client-search@5.14.2)(algoliasearch@5.14.2)": dependencies: - '@algolia/client-search': 5.14.2 + "@algolia/client-search": 5.14.2 algoliasearch: 5.14.2 - '@algolia/client-abtesting@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-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': + "@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/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-common@5.14.2": {} - '@algolia/client-insights@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-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': + "@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-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': + "@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-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': + "@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/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': + "@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/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': + "@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/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': + "@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/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': + "@algolia/requester-browser-xhr@5.14.2": dependencies: - '@algolia/client-common': 5.14.2 + "@algolia/client-common": 5.14.2 - '@algolia/requester-fetch@5.14.2': + "@algolia/requester-fetch@5.14.2": dependencies: - '@algolia/client-common': 5.14.2 + "@algolia/client-common": 5.14.2 - '@algolia/requester-node-http@5.14.2': + "@algolia/requester-node-http@5.14.2": dependencies: - '@algolia/client-common': 5.14.2 + "@algolia/client-common": 5.14.2 - '@alloc/quick-lru@5.2.0': {} + "@alloc/quick-lru@5.2.0": {} - '@ampproject/remapping@2.3.0': + "@ampproject/remapping@2.3.0": dependencies: - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 + "@jridgewell/gen-mapping": 0.3.5 + "@jridgewell/trace-mapping": 0.3.25 - '@antfu/install-pkg@1.0.0': + "@antfu/install-pkg@1.0.0": dependencies: package-manager-detector: 0.2.10 tinyexec: 0.3.2 - '@antfu/utils@8.1.1': {} + "@antfu/utils@8.1.1": {} - '@babel/code-frame@7.25.7': + "@babel/code-frame@7.25.7": dependencies: - '@babel/highlight': 7.25.7 + "@babel/highlight": 7.25.7 picocolors: 1.1.1 - '@babel/code-frame@7.26.2': + "@babel/code-frame@7.26.2": dependencies: - '@babel/helper-validator-identifier': 7.25.9 + "@babel/helper-validator-identifier": 7.25.9 js-tokens: 4.0.0 picocolors: 1.1.1 - '@babel/compat-data@7.25.8': {} + "@babel/compat-data@7.25.8": {} - '@babel/compat-data@7.26.8': {} + "@babel/compat-data@7.26.8": {} - '@babel/core@7.25.8': + "@babel/core@7.25.8": dependencies: - '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.25.7 - '@babel/generator': 7.25.7 - '@babel/helper-compilation-targets': 7.25.7 - '@babel/helper-module-transforms': 7.25.7(@babel/core@7.25.8) - '@babel/helpers': 7.25.7 - '@babel/parser': 7.25.8 - '@babel/template': 7.25.7 - '@babel/traverse': 7.25.7 - '@babel/types': 7.25.8 + "@ampproject/remapping": 2.3.0 + "@babel/code-frame": 7.25.7 + "@babel/generator": 7.25.7 + "@babel/helper-compilation-targets": 7.25.7 + "@babel/helper-module-transforms": 7.25.7(@babel/core@7.25.8) + "@babel/helpers": 7.25.7 + "@babel/parser": 7.25.8 + "@babel/template": 7.25.7 + "@babel/traverse": 7.25.7 + "@babel/types": 7.25.8 convert-source-map: 2.0.0 - debug: 4.3.7(supports-color@9.4.0) + debug: 4.4.0(supports-color@9.4.0) gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/core@7.26.9': - dependencies: - '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.26.2 - '@babel/generator': 7.26.9 - '@babel/helper-compilation-targets': 7.26.5 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.9) - '@babel/helpers': 7.26.9 - '@babel/parser': 7.26.9 - '@babel/template': 7.26.9 - '@babel/traverse': 7.26.9 - '@babel/types': 7.26.9 + "@babel/core@7.26.9": + dependencies: + "@ampproject/remapping": 2.3.0 + "@babel/code-frame": 7.26.2 + "@babel/generator": 7.26.9 + "@babel/helper-compilation-targets": 7.26.5 + "@babel/helper-module-transforms": 7.26.0(@babel/core@7.26.9) + "@babel/helpers": 7.26.9 + "@babel/parser": 7.26.9 + "@babel/template": 7.26.9 + "@babel/traverse": 7.26.9 + "@babel/types": 7.26.9 convert-source-map: 2.0.0 - debug: 4.3.7(supports-color@9.4.0) + debug: 4.4.0(supports-color@9.4.0) gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/generator@7.25.7': + "@babel/generator@7.25.7": dependencies: - '@babel/types': 7.25.8 - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 + "@babel/types": 7.25.8 + "@jridgewell/gen-mapping": 0.3.5 + "@jridgewell/trace-mapping": 0.3.25 jsesc: 3.0.2 - '@babel/generator@7.26.9': + "@babel/generator@7.26.9": dependencies: - '@babel/parser': 7.26.9 - '@babel/types': 7.26.9 - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 + "@babel/parser": 7.26.9 + "@babel/types": 7.26.9 + "@jridgewell/gen-mapping": 0.3.5 + "@jridgewell/trace-mapping": 0.3.25 jsesc: 3.0.2 - '@babel/helper-compilation-targets@7.25.7': + "@babel/helper-compilation-targets@7.25.7": dependencies: - '@babel/compat-data': 7.25.8 - '@babel/helper-validator-option': 7.25.7 + "@babel/compat-data": 7.25.8 + "@babel/helper-validator-option": 7.25.7 browserslist: 4.24.0 lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-compilation-targets@7.26.5': + "@babel/helper-compilation-targets@7.26.5": dependencies: - '@babel/compat-data': 7.26.8 - '@babel/helper-validator-option': 7.25.9 + "@babel/compat-data": 7.26.8 + "@babel/helper-validator-option": 7.25.9 browserslist: 4.24.0 lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-module-imports@7.18.6': + "@babel/helper-module-imports@7.18.6": dependencies: - '@babel/types': 7.25.8 + "@babel/types": 7.25.8 - '@babel/helper-module-imports@7.25.7': + "@babel/helper-module-imports@7.25.7": dependencies: - '@babel/traverse': 7.25.7 - '@babel/types': 7.25.8 + "@babel/traverse": 7.25.7 + "@babel/types": 7.25.8 transitivePeerDependencies: - supports-color - '@babel/helper-module-imports@7.25.9': + "@babel/helper-module-imports@7.25.9": dependencies: - '@babel/traverse': 7.26.9 - '@babel/types': 7.26.9 + "@babel/traverse": 7.26.9 + "@babel/types": 7.26.9 transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.25.7(@babel/core@7.25.8)': + "@babel/helper-module-transforms@7.25.7(@babel/core@7.25.8)": dependencies: - '@babel/core': 7.25.8 - '@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/core": 7.25.8 + "@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 transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.9)': + "@babel/helper-module-transforms@7.26.0(@babel/core@7.26.9)": dependencies: - '@babel/core': 7.26.9 - '@babel/helper-module-imports': 7.25.9 - '@babel/helper-validator-identifier': 7.25.9 - '@babel/traverse': 7.26.9 + "@babel/core": 7.26.9 + "@babel/helper-module-imports": 7.25.9 + "@babel/helper-validator-identifier": 7.25.9 + "@babel/traverse": 7.26.9 transitivePeerDependencies: - supports-color - '@babel/helper-plugin-utils@7.25.7': {} + "@babel/helper-plugin-utils@7.25.7": {} - '@babel/helper-plugin-utils@7.26.5': {} + "@babel/helper-plugin-utils@7.26.5": {} - '@babel/helper-simple-access@7.25.7': + "@babel/helper-simple-access@7.25.7": dependencies: - '@babel/traverse': 7.25.7 - '@babel/types': 7.25.8 + "@babel/traverse": 7.25.7 + "@babel/types": 7.25.8 transitivePeerDependencies: - supports-color - '@babel/helper-string-parser@7.25.7': {} + "@babel/helper-string-parser@7.25.7": {} - '@babel/helper-string-parser@7.25.9': {} + "@babel/helper-string-parser@7.25.9": {} - '@babel/helper-validator-identifier@7.25.7': {} + "@babel/helper-validator-identifier@7.25.7": {} - '@babel/helper-validator-identifier@7.25.9': {} + "@babel/helper-validator-identifier@7.25.9": {} - '@babel/helper-validator-option@7.25.7': {} + "@babel/helper-validator-option@7.25.7": {} - '@babel/helper-validator-option@7.25.9': {} + "@babel/helper-validator-option@7.25.9": {} - '@babel/helpers@7.25.7': + "@babel/helpers@7.25.7": dependencies: - '@babel/template': 7.25.7 - '@babel/types': 7.25.8 + "@babel/template": 7.25.7 + "@babel/types": 7.25.8 - '@babel/helpers@7.26.9': + "@babel/helpers@7.26.9": dependencies: - '@babel/template': 7.26.9 - '@babel/types': 7.26.9 + "@babel/template": 7.26.9 + "@babel/types": 7.26.9 - '@babel/highlight@7.25.7': + "@babel/highlight@7.25.7": dependencies: - '@babel/helper-validator-identifier': 7.25.7 + "@babel/helper-validator-identifier": 7.25.7 chalk: 2.4.2 js-tokens: 4.0.0 picocolors: 1.1.1 - '@babel/parser@7.25.8': + "@babel/parser@7.25.8": dependencies: - '@babel/types': 7.25.8 + "@babel/types": 7.25.8 - '@babel/parser@7.26.9': + "@babel/parser@7.26.9": dependencies: - '@babel/types': 7.26.9 + "@babel/types": 7.26.9 - '@babel/plugin-syntax-jsx@7.25.7(@babel/core@7.25.8)': + "@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/core": 7.25.8 + "@babel/helper-plugin-utils": 7.25.7 - '@babel/plugin-syntax-jsx@7.25.9(@babel/core@7.26.9)': + "@babel/plugin-syntax-jsx@7.25.9(@babel/core@7.26.9)": dependencies: - '@babel/core': 7.26.9 - '@babel/helper-plugin-utils': 7.26.5 + "@babel/core": 7.26.9 + "@babel/helper-plugin-utils": 7.26.5 - '@babel/plugin-syntax-typescript@7.25.7(@babel/core@7.25.8)': + "@babel/plugin-syntax-typescript@7.25.7(@babel/core@7.25.8)": dependencies: - '@babel/core': 7.25.8 - '@babel/helper-plugin-utils': 7.25.7 + "@babel/core": 7.25.8 + "@babel/helper-plugin-utils": 7.25.7 - '@babel/plugin-syntax-typescript@7.25.9(@babel/core@7.26.9)': + "@babel/plugin-syntax-typescript@7.25.9(@babel/core@7.26.9)": dependencies: - '@babel/core': 7.26.9 - '@babel/helper-plugin-utils': 7.26.5 + "@babel/core": 7.26.9 + "@babel/helper-plugin-utils": 7.26.5 - '@babel/standalone@7.26.9': {} + "@babel/standalone@7.26.9": {} - '@babel/template@7.25.7': + "@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.25.7 + "@babel/parser": 7.25.8 + "@babel/types": 7.25.8 - '@babel/template@7.26.9': + "@babel/template@7.26.9": dependencies: - '@babel/code-frame': 7.26.2 - '@babel/parser': 7.26.9 - '@babel/types': 7.26.9 + "@babel/code-frame": 7.26.2 + "@babel/parser": 7.26.9 + "@babel/types": 7.26.9 - '@babel/traverse@7.25.7': + "@babel/traverse@7.25.7": dependencies: - '@babel/code-frame': 7.25.7 - '@babel/generator': 7.25.7 - '@babel/parser': 7.25.8 - '@babel/template': 7.25.7 - '@babel/types': 7.25.8 - debug: 4.3.7(supports-color@9.4.0) + "@babel/code-frame": 7.25.7 + "@babel/generator": 7.25.7 + "@babel/parser": 7.25.8 + "@babel/template": 7.25.7 + "@babel/types": 7.25.8 + debug: 4.4.0(supports-color@9.4.0) globals: 11.12.0 transitivePeerDependencies: - supports-color - '@babel/traverse@7.26.9': - dependencies: - '@babel/code-frame': 7.26.2 - '@babel/generator': 7.26.9 - '@babel/parser': 7.26.9 - '@babel/template': 7.26.9 - '@babel/types': 7.26.9 - debug: 4.3.7(supports-color@9.4.0) - globals: 11.12.0 - transitivePeerDependencies: - - supports-color + "@babel/traverse@7.26.9": + dependencies: + "@babel/code-frame": 7.26.2 + "@babel/generator": 7.26.9 + "@babel/parser": 7.26.9 + "@babel/template": 7.26.9 + "@babel/types": 7.26.9 + debug: 4.4.0(supports-color@9.4.0) + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + + "@babel/types@7.25.8": + dependencies: + "@babel/helper-string-parser": 7.25.7 + "@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 + + "@bprogress/core@1.1.18": {} + + "@clack/core@0.3.4": + dependencies: + picocolors: 1.1.0 + sisteransi: 1.0.5 + + "@cloudflare/kv-asset-handler@0.3.4": + dependencies: + mime: 3.0.0 + + "@corvu/utils@0.4.2(solid-js@1.9.5)": + dependencies: + "@floating-ui/dom": 1.6.11 + solid-js: 1.9.5 + + "@ctrl/tinycolor@4.1.0": {} + + "@deno/shim-deno-test@0.5.0": {} + + "@deno/shim-deno@0.19.2": + dependencies: + "@deno/shim-deno-test": 0.5.0 + which: 4.0.0 + + "@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" + + "@esbuild/aix-ppc64@0.20.2": + optional: true + + "@esbuild/aix-ppc64@0.24.2": + optional: true + + "@esbuild/aix-ppc64@0.25.0": + optional: true + + "@esbuild/android-arm64@0.18.7": + optional: true + + "@esbuild/android-arm64@0.20.2": + optional: true + + "@esbuild/android-arm64@0.24.2": + optional: true + + "@esbuild/android-arm64@0.25.0": + optional: true + + "@esbuild/android-arm@0.18.7": + optional: true + + "@esbuild/android-arm@0.20.2": + optional: true + + "@esbuild/android-arm@0.24.2": + optional: true + + "@esbuild/android-arm@0.25.0": + optional: true + + "@esbuild/android-x64@0.18.7": + optional: true - '@babel/types@7.25.8': - dependencies: - '@babel/helper-string-parser': 7.25.7 - '@babel/helper-validator-identifier': 7.25.7 - to-fast-properties: 2.0.0 + "@esbuild/android-x64@0.20.2": + optional: true - '@babel/types@7.26.9': - dependencies: - '@babel/helper-string-parser': 7.25.9 - '@babel/helper-validator-identifier': 7.25.9 + "@esbuild/android-x64@0.24.2": + optional: true - '@bprogress/core@1.1.18': {} + "@esbuild/android-x64@0.25.0": + optional: true - '@clack/core@0.3.4': - dependencies: - picocolors: 1.1.0 - sisteransi: 1.0.5 + "@esbuild/darwin-arm64@0.18.7": + optional: true - '@cloudflare/kv-asset-handler@0.3.4': - dependencies: - mime: 3.0.0 + "@esbuild/darwin-arm64@0.20.2": + optional: true - '@corvu/utils@0.4.2(solid-js@1.9.5)': - dependencies: - '@floating-ui/dom': 1.6.11 - solid-js: 1.9.5 + "@esbuild/darwin-arm64@0.24.2": + optional: true - '@ctrl/tinycolor@4.1.0': {} + "@esbuild/darwin-arm64@0.25.0": + optional: true - '@deno/shim-deno-test@0.5.0': {} + "@esbuild/darwin-x64@0.18.7": + optional: true - '@deno/shim-deno@0.19.2': - dependencies: - '@deno/shim-deno-test': 0.5.0 - which: 4.0.0 + "@esbuild/darwin-x64@0.20.2": + optional: true - '@docsearch/css@3.8.0': {} + "@esbuild/darwin-x64@0.24.2": + optional: true - '@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 + "@esbuild/darwin-x64@0.25.0": + optional: true - '@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' + "@esbuild/freebsd-arm64@0.18.7": + optional: true + + "@esbuild/freebsd-arm64@0.20.2": + optional: true - '@esbuild/aix-ppc64@0.20.2': + "@esbuild/freebsd-arm64@0.24.2": optional: true - '@esbuild/aix-ppc64@0.24.2': + "@esbuild/freebsd-arm64@0.25.0": optional: true - '@esbuild/android-arm64@0.18.7': + "@esbuild/freebsd-x64@0.18.7": optional: true - '@esbuild/android-arm64@0.20.2': + "@esbuild/freebsd-x64@0.20.2": optional: true - '@esbuild/android-arm64@0.24.2': + "@esbuild/freebsd-x64@0.24.2": optional: true - '@esbuild/android-arm@0.18.7': + "@esbuild/freebsd-x64@0.25.0": optional: true - '@esbuild/android-arm@0.20.2': + "@esbuild/linux-arm64@0.18.7": optional: true - '@esbuild/android-arm@0.24.2': + "@esbuild/linux-arm64@0.20.2": optional: true - '@esbuild/android-x64@0.18.7': + "@esbuild/linux-arm64@0.24.2": optional: true - '@esbuild/android-x64@0.20.2': + "@esbuild/linux-arm64@0.25.0": optional: true - '@esbuild/android-x64@0.24.2': + "@esbuild/linux-arm@0.18.7": optional: true - '@esbuild/darwin-arm64@0.18.7': + "@esbuild/linux-arm@0.20.2": optional: true - '@esbuild/darwin-arm64@0.20.2': + "@esbuild/linux-arm@0.24.2": optional: true - '@esbuild/darwin-arm64@0.24.2': + "@esbuild/linux-arm@0.25.0": optional: true - '@esbuild/darwin-x64@0.18.7': + "@esbuild/linux-ia32@0.18.7": optional: true - '@esbuild/darwin-x64@0.20.2': + "@esbuild/linux-ia32@0.20.2": optional: true - '@esbuild/darwin-x64@0.24.2': + "@esbuild/linux-ia32@0.24.2": optional: true - '@esbuild/freebsd-arm64@0.18.7': + "@esbuild/linux-ia32@0.25.0": optional: true - '@esbuild/freebsd-arm64@0.20.2': + "@esbuild/linux-loong64@0.18.7": optional: true - '@esbuild/freebsd-arm64@0.24.2': + "@esbuild/linux-loong64@0.20.2": optional: true - '@esbuild/freebsd-x64@0.18.7': + "@esbuild/linux-loong64@0.24.2": optional: true - '@esbuild/freebsd-x64@0.20.2': + "@esbuild/linux-loong64@0.25.0": optional: true - '@esbuild/freebsd-x64@0.24.2': + "@esbuild/linux-mips64el@0.18.7": optional: true - '@esbuild/linux-arm64@0.18.7': + "@esbuild/linux-mips64el@0.20.2": optional: true - '@esbuild/linux-arm64@0.20.2': + "@esbuild/linux-mips64el@0.24.2": optional: true - '@esbuild/linux-arm64@0.24.2': + "@esbuild/linux-mips64el@0.25.0": optional: true - '@esbuild/linux-arm@0.18.7': + "@esbuild/linux-ppc64@0.18.7": optional: true - '@esbuild/linux-arm@0.20.2': + "@esbuild/linux-ppc64@0.20.2": optional: true - '@esbuild/linux-arm@0.24.2': + "@esbuild/linux-ppc64@0.24.2": optional: true - '@esbuild/linux-ia32@0.18.7': + "@esbuild/linux-ppc64@0.25.0": optional: true - '@esbuild/linux-ia32@0.20.2': + "@esbuild/linux-riscv64@0.18.7": optional: true - '@esbuild/linux-ia32@0.24.2': + "@esbuild/linux-riscv64@0.20.2": optional: true - '@esbuild/linux-loong64@0.18.7': + "@esbuild/linux-riscv64@0.24.2": optional: true - '@esbuild/linux-loong64@0.20.2': + "@esbuild/linux-riscv64@0.25.0": optional: true - '@esbuild/linux-loong64@0.24.2': + "@esbuild/linux-s390x@0.18.7": optional: true - '@esbuild/linux-mips64el@0.18.7': + "@esbuild/linux-s390x@0.20.2": optional: true - '@esbuild/linux-mips64el@0.20.2': + "@esbuild/linux-s390x@0.24.2": optional: true - '@esbuild/linux-mips64el@0.24.2': + "@esbuild/linux-s390x@0.25.0": optional: true - '@esbuild/linux-ppc64@0.18.7': + "@esbuild/linux-x64@0.18.7": optional: true - '@esbuild/linux-ppc64@0.20.2': + "@esbuild/linux-x64@0.20.2": optional: true - '@esbuild/linux-ppc64@0.24.2': + "@esbuild/linux-x64@0.24.2": optional: true - '@esbuild/linux-riscv64@0.18.7': + "@esbuild/linux-x64@0.25.0": optional: true - '@esbuild/linux-riscv64@0.20.2': + "@esbuild/netbsd-arm64@0.24.2": optional: true - '@esbuild/linux-riscv64@0.24.2': + "@esbuild/netbsd-arm64@0.25.0": optional: true - '@esbuild/linux-s390x@0.18.7': + "@esbuild/netbsd-x64@0.18.7": optional: true - '@esbuild/linux-s390x@0.20.2': + "@esbuild/netbsd-x64@0.20.2": optional: true - '@esbuild/linux-s390x@0.24.2': + "@esbuild/netbsd-x64@0.24.2": optional: true - '@esbuild/linux-x64@0.18.7': + "@esbuild/netbsd-x64@0.25.0": optional: true - '@esbuild/linux-x64@0.20.2': + "@esbuild/openbsd-arm64@0.24.2": optional: true - '@esbuild/linux-x64@0.24.2': + "@esbuild/openbsd-arm64@0.25.0": optional: true - '@esbuild/netbsd-arm64@0.24.2': + "@esbuild/openbsd-x64@0.18.7": optional: true - '@esbuild/netbsd-x64@0.18.7': + "@esbuild/openbsd-x64@0.20.2": optional: true - '@esbuild/netbsd-x64@0.20.2': + "@esbuild/openbsd-x64@0.24.2": optional: true - '@esbuild/netbsd-x64@0.24.2': + "@esbuild/openbsd-x64@0.25.0": optional: true - '@esbuild/openbsd-arm64@0.24.2': + "@esbuild/sunos-x64@0.18.7": optional: true - '@esbuild/openbsd-x64@0.18.7': + "@esbuild/sunos-x64@0.20.2": optional: true - '@esbuild/openbsd-x64@0.20.2': + "@esbuild/sunos-x64@0.24.2": optional: true - '@esbuild/openbsd-x64@0.24.2': + "@esbuild/sunos-x64@0.25.0": optional: true - '@esbuild/sunos-x64@0.18.7': + "@esbuild/win32-arm64@0.18.7": optional: true - '@esbuild/sunos-x64@0.20.2': + "@esbuild/win32-arm64@0.20.2": optional: true - '@esbuild/sunos-x64@0.24.2': + "@esbuild/win32-arm64@0.24.2": optional: true - '@esbuild/win32-arm64@0.18.7': + "@esbuild/win32-arm64@0.25.0": optional: true - '@esbuild/win32-arm64@0.20.2': + "@esbuild/win32-ia32@0.18.7": optional: true - '@esbuild/win32-arm64@0.24.2': + "@esbuild/win32-ia32@0.20.2": optional: true - '@esbuild/win32-ia32@0.18.7': + "@esbuild/win32-ia32@0.24.2": optional: true - '@esbuild/win32-ia32@0.20.2': + "@esbuild/win32-ia32@0.25.0": optional: true - '@esbuild/win32-ia32@0.24.2': + "@esbuild/win32-x64@0.18.7": optional: true - '@esbuild/win32-x64@0.18.7': + "@esbuild/win32-x64@0.20.2": optional: true - '@esbuild/win32-x64@0.20.2': + "@esbuild/win32-x64@0.24.2": optional: true - '@esbuild/win32-x64@0.24.2': + "@esbuild/win32-x64@0.25.0": optional: true - '@eslint-community/eslint-utils@4.4.0(eslint@8.57.1)': + "@eslint-community/eslint-utils@4.4.1(eslint@9.22.0(jiti@2.4.2))": dependencies: - eslint: 8.57.1 + eslint: 9.22.0(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.19.2": + dependencies: + "@eslint/object-schema": 2.1.6 + debug: 4.4.0(supports-color@9.4.0) + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + + "@eslint/config-helpers@0.1.0": {} + + "@eslint/core@0.12.0": + dependencies: + "@types/json-schema": 7.0.15 - '@eslint/eslintrc@2.1.4': + "@eslint/eslintrc@3.3.0": dependencies: ajv: 6.12.6 - debug: 4.3.7(supports-color@9.4.0) - espree: 9.6.1 - globals: 13.24.0 + debug: 4.4.0(supports-color@9.4.0) + espree: 10.3.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@8.57.1': {} + "@eslint/js@9.22.0": {} + + "@eslint/object-schema@2.1.6": {} - '@expressive-code/core@0.37.1': + "@eslint/plugin-kit@0.2.7": dependencies: - '@ctrl/tinycolor': 4.1.0 - hast-util-select: 6.0.3 - hast-util-to-html: 9.0.5 - hast-util-to-text: 4.0.2 - hastscript: 9.0.0 - postcss: 8.5.3 - postcss-nested: 6.2.0(postcss@8.5.3) - unist-util-visit: 5.0.0 - unist-util-visit-parents: 6.0.1 + "@eslint/core": 0.12.0 + levn: 0.4.1 - '@expressive-code/core@0.38.3': + "@expressive-code/core@0.40.2": dependencies: - '@ctrl/tinycolor': 4.1.0 + "@ctrl/tinycolor": 4.1.0 hast-util-select: 6.0.3 hast-util-to-html: 9.0.5 hast-util-to-text: 4.0.2 @@ -5305,68 +9097,65 @@ snapshots: unist-util-visit: 5.0.0 unist-util-visit-parents: 6.0.1 - '@expressive-code/plugin-collapsible-sections@0.37.1': - dependencies: - '@expressive-code/core': 0.37.1 - - '@expressive-code/plugin-frames@0.37.1': + "@expressive-code/plugin-collapsible-sections@0.40.2": dependencies: - '@expressive-code/core': 0.37.1 + "@expressive-code/core": 0.40.2 - '@expressive-code/plugin-frames@0.38.3': + "@expressive-code/plugin-frames@0.40.2": dependencies: - '@expressive-code/core': 0.38.3 + "@expressive-code/core": 0.40.2 - '@expressive-code/plugin-line-numbers@0.37.1': + "@expressive-code/plugin-line-numbers@0.40.2": dependencies: - '@expressive-code/core': 0.37.1 + "@expressive-code/core": 0.40.2 - '@expressive-code/plugin-shiki@0.37.1': + "@expressive-code/plugin-shiki@0.40.2": dependencies: - '@expressive-code/core': 0.37.1 + "@expressive-code/core": 0.40.2 shiki: 1.29.2 - '@expressive-code/plugin-text-markers@0.37.1': + "@expressive-code/plugin-text-markers@0.40.2": dependencies: - '@expressive-code/core': 0.37.1 + "@expressive-code/core": 0.40.2 - '@floating-ui/core@1.6.8': + "@floating-ui/core@1.6.8": dependencies: - '@floating-ui/utils': 0.2.8 + "@floating-ui/utils": 0.2.8 - '@floating-ui/dom@1.6.11': + "@floating-ui/dom@1.6.11": dependencies: - '@floating-ui/core': 1.6.8 - '@floating-ui/utils': 0.2.8 + "@floating-ui/core": 1.6.8 + "@floating-ui/utils": 0.2.8 + + "@floating-ui/utils@0.2.8": {} - '@floating-ui/utils@0.2.8': {} + "@fontsource-variable/inter@5.1.1": {} - '@fontsource-variable/inter@5.1.1': {} + "@fontsource-variable/jetbrains-mono@5.1.2": {} - '@fontsource-variable/jetbrains-mono@5.1.2': {} + "@fontsource-variable/lexend@5.1.2": {} - '@fontsource-variable/lexend@5.1.2': {} + "@humanfs/core@0.19.1": {} - '@humanwhocodes/config-array@0.13.0': + "@humanfs/node@0.16.6": dependencies: - '@humanwhocodes/object-schema': 2.0.3 - debug: 4.3.7(supports-color@9.4.0) - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color + "@humanfs/core": 0.19.1 + "@humanwhocodes/retry": 0.3.1 + + "@humanwhocodes/module-importer@1.0.1": {} - '@humanwhocodes/module-importer@1.0.1': {} + "@humanwhocodes/retry@0.3.1": {} - '@humanwhocodes/object-schema@2.0.3': {} + "@humanwhocodes/retry@0.4.2": {} - '@iconify/types@2.0.0': {} + "@iconify/types@2.0.0": {} - '@iconify/utils@2.3.0': + "@iconify/utils@2.3.0": dependencies: - '@antfu/install-pkg': 1.0.0 - '@antfu/utils': 8.1.1 - '@iconify/types': 2.0.0 - debug: 4.4.0 + "@antfu/install-pkg": 1.0.0 + "@antfu/utils": 8.1.1 + "@iconify/types": 2.0.0 + debug: 4.4.0(supports-color@9.4.0) globals: 15.15.0 kolorist: 1.8.0 local-pkg: 1.1.0 @@ -5374,17 +9163,17 @@ snapshots: transitivePeerDependencies: - supports-color - '@internationalized/date@3.5.6': + "@internationalized/date@3.5.6": dependencies: - '@swc/helpers': 0.5.13 + "@swc/helpers": 0.5.13 - '@internationalized/number@3.5.4': + "@internationalized/number@3.5.4": dependencies: - '@swc/helpers': 0.5.13 + "@swc/helpers": 0.5.13 - '@ioredis/commands@1.2.0': {} + "@ioredis/commands@1.2.0": {} - '@isaacs/cliui@8.0.2': + "@isaacs/cliui@8.0.2": dependencies: string-width: 5.1.2 string-width-cjs: string-width@4.2.3 @@ -5393,82 +9182,82 @@ snapshots: wrap-ansi: 8.1.0 wrap-ansi-cjs: wrap-ansi@7.0.0 - '@isaacs/fs-minipass@4.0.1': + "@isaacs/fs-minipass@4.0.1": dependencies: minipass: 7.1.2 - '@jest/schemas@29.6.3': + "@jest/schemas@29.6.3": dependencies: - '@sinclair/typebox': 0.27.8 + "@sinclair/typebox": 0.27.8 - '@jridgewell/gen-mapping@0.3.5': + "@jridgewell/gen-mapping@0.3.5": dependencies: - '@jridgewell/set-array': 1.2.1 - '@jridgewell/sourcemap-codec': 1.5.0 - '@jridgewell/trace-mapping': 0.3.25 + "@jridgewell/set-array": 1.2.1 + "@jridgewell/sourcemap-codec": 1.5.0 + "@jridgewell/trace-mapping": 0.3.25 - '@jridgewell/resolve-uri@3.1.2': {} + "@jridgewell/resolve-uri@3.1.2": {} - '@jridgewell/set-array@1.2.1': {} + "@jridgewell/set-array@1.2.1": {} - '@jridgewell/source-map@0.3.6': + "@jridgewell/source-map@0.3.6": dependencies: - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 + "@jridgewell/gen-mapping": 0.3.5 + "@jridgewell/trace-mapping": 0.3.25 - '@jridgewell/sourcemap-codec@1.5.0': {} + "@jridgewell/sourcemap-codec@1.5.0": {} - '@jridgewell/trace-mapping@0.3.25': + "@jridgewell/trace-mapping@0.3.25": dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.0 + "@jridgewell/resolve-uri": 3.1.2 + "@jridgewell/sourcemap-codec": 1.5.0 - '@kobalte/core@0.13.9(solid-js@1.9.5)': + "@kobalte/core@0.13.9(solid-js@1.9.5)": dependencies: - '@floating-ui/dom': 1.6.11 - '@internationalized/date': 3.5.6 - '@internationalized/number': 3.5.4 - '@kobalte/utils': 0.9.1(solid-js@1.9.5) - '@solid-primitives/props': 3.1.11(solid-js@1.9.5) - '@solid-primitives/resize-observer': 2.0.26(solid-js@1.9.5) + "@floating-ui/dom": 1.6.11 + "@internationalized/date": 3.5.6 + "@internationalized/number": 3.5.4 + "@kobalte/utils": 0.9.1(solid-js@1.9.5) + "@solid-primitives/props": 3.1.11(solid-js@1.9.5) + "@solid-primitives/resize-observer": 2.0.26(solid-js@1.9.5) solid-js: 1.9.5 solid-presence: 0.1.8(solid-js@1.9.5) solid-prevent-scroll: 0.1.10(solid-js@1.9.5) - '@kobalte/solidbase@0.0.16(@algolia/client-search@5.14.2)(@solidjs/start@1.1.1(solid-js@1.9.5)(vinxi@0.5.3(@types/node@22.9.0)(db0@0.2.4)(ioredis@5.4.1)(jiti@2.4.2)(terser@5.34.1)(typescript@5.6.3)(yaml@2.6.0))(vite@6.1.1(@types/node@22.9.0)(jiti@2.4.2)(terser@5.34.1)(yaml@2.6.0)))(@vue/compiler-sfc@3.5.12)(acorn@8.14.0)(react@18.3.1)(search-insights@2.17.3)(solid-js@1.9.5)(vinxi@0.5.3(@types/node@22.9.0)(db0@0.2.4)(ioredis@5.4.1)(jiti@2.4.2)(terser@5.34.1)(typescript@5.6.3)(yaml@2.6.0))(vite@6.1.1(@types/node@22.9.0)(jiti@2.4.2)(terser@5.34.1)(yaml@2.6.0))': - dependencies: - '@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) - '@expressive-code/plugin-collapsible-sections': 0.37.1 - '@expressive-code/plugin-frames': 0.38.3 - '@expressive-code/plugin-line-numbers': 0.37.1 - '@fontsource-variable/inter': 5.1.1 - '@fontsource-variable/jetbrains-mono': 5.1.2 - '@fontsource-variable/lexend': 5.1.2 - '@kobalte/core': 0.13.9(solid-js@1.9.5) - '@mdx-js/mdx': 3.1.0(acorn@8.14.0) - '@solid-primitives/clipboard': 1.5.10(solid-js@1.9.5) - '@solid-primitives/context': 0.2.3(solid-js@1.9.5) - '@solid-primitives/event-listener': 2.3.3(solid-js@1.9.5) - '@solid-primitives/keyboard': 1.2.8(solid-js@1.9.5) - '@solid-primitives/media': 2.2.9(solid-js@1.9.5) - '@solid-primitives/platform': 0.1.2(solid-js@1.9.5) - '@solid-primitives/scroll': 2.0.23(solid-js@1.9.5) - '@solidjs/meta': 0.29.4(solid-js@1.9.5) - '@solidjs/router': 0.15.3(solid-js@1.9.5) - '@solidjs/start': 1.1.1(solid-js@1.9.5)(vinxi@0.5.3(@types/node@22.9.0)(db0@0.2.4)(ioredis@5.4.1)(jiti@2.4.2)(terser@5.34.1)(typescript@5.6.3)(yaml@2.6.0))(vite@6.1.1(@types/node@22.9.0)(jiti@2.4.2)(terser@5.34.1)(yaml@2.6.0)) - '@vinxi/plugin-mdx': 3.7.2(@mdx-js/mdx@3.1.0(acorn@8.14.0)) + "@kobalte/solidbase@0.0.23(@algolia/client-search@5.14.2)(@expressive-code/core@0.40.2)(@solidjs/start@1.1.1(solid-js@1.9.5)(vinxi@0.5.3(@types/node@22.9.0)(db0@0.2.4)(ioredis@5.4.1)(jiti@2.4.2)(terser@5.34.1)(typescript@5.8.2)(yaml@2.6.0))(vite@6.2.1(@types/node@22.9.0)(jiti@2.4.2)(terser@5.34.1)(yaml@2.6.0)))(@vue/compiler-sfc@3.5.12)(acorn@8.14.0)(expressive-code@0.40.2)(react@18.3.1)(search-insights@2.17.3)(solid-js@1.9.5)(vinxi@0.5.3(@types/node@22.9.0)(db0@0.2.4)(ioredis@5.4.1)(jiti@2.4.2)(terser@5.34.1)(typescript@5.8.2)(yaml@2.6.0))(vite@6.2.1(@types/node@22.9.0)(jiti@2.4.2)(terser@5.34.1)(yaml@2.6.0))": + dependencies: + "@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) + "@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 + "@kobalte/core": 0.13.9(solid-js@1.9.5) + "@mdx-js/mdx": 3.1.0(acorn@8.14.0) + "@solid-primitives/clipboard": 1.5.10(solid-js@1.9.5) + "@solid-primitives/context": 0.2.3(solid-js@1.9.5) + "@solid-primitives/event-listener": 2.3.3(solid-js@1.9.5) + "@solid-primitives/keyboard": 1.2.8(solid-js@1.9.5) + "@solid-primitives/media": 2.2.9(solid-js@1.9.5) + "@solid-primitives/platform": 0.1.2(solid-js@1.9.5) + "@solid-primitives/scroll": 2.0.23(solid-js@1.9.5) + "@solidjs/meta": 0.29.4(solid-js@1.9.5) + "@solidjs/router": 0.15.3(solid-js@1.9.5) + "@solidjs/start": 1.1.1(solid-js@1.9.5)(vinxi@0.5.3(@types/node@22.9.0)(db0@0.2.4)(ioredis@5.4.1)(jiti@2.4.2)(terser@5.34.1)(typescript@5.8.2)(yaml@2.6.0))(vite@6.2.1(@types/node@22.9.0)(jiti@2.4.2)(terser@5.34.1)(yaml@2.6.0)) + "@vinxi/plugin-mdx": 3.7.2(@mdx-js/mdx@3.1.0(acorn@8.14.0)) cross-spawn: 7.0.3 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.8.2) gray-matter: 4.0.3 hastscript: 9.0.0 - lexend: link:@fontsource/variable/lexend mdast-util-find-and-replace: 3.0.1 mdast-util-toc: 7.1.0 rehype-autolink-headings: 7.1.0 - rehype-expressive-code: 0.37.1 + rehype-expressive-code: 0.40.2 rehype-raw: 7.0.0 rehype-slug: 6.0.0 remark-directive: 3.0.0 @@ -5476,24 +9265,27 @@ snapshots: remark-gfm: 4.0.0 remark-mdx-frontmatter: 5.0.0 solid-js: 1.9.5 - solid-mdx: 0.0.7(solid-js@1.9.5)(vite@6.1.1(@types/node@22.9.0)(jiti@2.4.2)(terser@5.34.1)(yaml@2.6.0)) + solid-mdx: 0.0.7(solid-js@1.9.5)(vite@6.2.1(@types/node@22.9.0)(jiti@2.4.2)(terser@5.34.1)(yaml@2.6.0)) + typescript: 5.8.2 unified: 11.0.5 unist-builder: 4.0.0 unist-util-visit: 5.0.0 unplugin-auto-import: 19.1.1 - unplugin-fonts: 1.3.1(vite@6.1.1(@types/node@22.9.0)(jiti@2.4.2)(terser@5.34.1)(yaml@2.6.0)) + unplugin-fonts: 1.3.1(vite@6.2.1(@types/node@22.9.0)(jiti@2.4.2)(terser@5.34.1)(yaml@2.6.0)) unplugin-icons: 22.1.0(@vue/compiler-sfc@3.5.12) - vinxi: 0.5.3(@types/node@22.9.0)(db0@0.2.4)(ioredis@5.4.1)(jiti@2.4.2)(terser@5.34.1)(typescript@5.6.3)(yaml@2.6.0) - vite: 6.1.1(@types/node@22.9.0)(jiti@2.4.2)(terser@5.34.1)(yaml@2.6.0) + vinxi: 0.5.3(@types/node@22.9.0)(db0@0.2.4)(ioredis@5.4.1)(jiti@2.4.2)(terser@5.34.1)(typescript@5.8.2)(yaml@2.6.0) + vite: 6.2.1(@types/node@22.9.0)(jiti@2.4.2)(terser@5.34.1)(yaml@2.6.0) transitivePeerDependencies: - - '@algolia/client-search' - - '@nuxt/kit' - - '@svgr/core' - - '@svgx/core' - - '@types/react' - - '@vue/compiler-sfc' - - '@vueuse/core' + - "@algolia/client-search" + - "@expressive-code/core" + - "@nuxt/kit" + - "@svgr/core" + - "@svgx/core" + - "@types/react" + - "@vue/compiler-sfc" + - "@vueuse/core" - acorn + - expressive-code - react - react-dom - search-insights @@ -5502,32 +9294,32 @@ snapshots: - vue-template-compiler - vue-template-es2015-compiler - '@kobalte/tailwindcss@0.9.0(tailwindcss@3.4.14)': + "@kobalte/tailwindcss@0.9.0(tailwindcss@3.4.14)": dependencies: tailwindcss: 3.4.14 - '@kobalte/utils@0.9.1(solid-js@1.9.5)': + "@kobalte/utils@0.9.1(solid-js@1.9.5)": dependencies: - '@solid-primitives/event-listener': 2.3.3(solid-js@1.9.5) - '@solid-primitives/keyed': 1.2.2(solid-js@1.9.5) - '@solid-primitives/map': 0.4.13(solid-js@1.9.5) - '@solid-primitives/media': 2.2.9(solid-js@1.9.5) - '@solid-primitives/props': 3.1.11(solid-js@1.9.5) - '@solid-primitives/refs': 1.0.8(solid-js@1.9.5) - '@solid-primitives/utils': 6.2.3(solid-js@1.9.5) + "@solid-primitives/event-listener": 2.3.3(solid-js@1.9.5) + "@solid-primitives/keyed": 1.2.2(solid-js@1.9.5) + "@solid-primitives/map": 0.4.13(solid-js@1.9.5) + "@solid-primitives/media": 2.2.9(solid-js@1.9.5) + "@solid-primitives/props": 3.1.11(solid-js@1.9.5) + "@solid-primitives/refs": 1.0.8(solid-js@1.9.5) + "@solid-primitives/utils": 6.2.3(solid-js@1.9.5) solid-js: 1.9.5 - '@kwsites/file-exists@1.1.1': + "@kwsites/file-exists@1.1.1": dependencies: - debug: 4.3.7(supports-color@9.4.0) + debug: 4.4.0(supports-color@9.4.0) transitivePeerDependencies: - supports-color - '@kwsites/promise-deferred@1.1.1': {} + "@kwsites/promise-deferred@1.1.1": {} - '@lunariajs/core@0.0.31': + "@lunariajs/core@0.0.31": dependencies: - '@clack/core': 0.3.4 + "@clack/core": 0.3.4 fast-glob: 3.3.2 get-port: 7.1.0 jiti: 1.21.6 @@ -5540,7 +9332,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@mapbox/node-pre-gyp@2.0.0': + "@mapbox/node-pre-gyp@2.0.0": dependencies: consola: 3.2.3 detect-libc: 2.0.3 @@ -5553,12 +9345,12 @@ snapshots: - encoding - supports-color - '@mdx-js/mdx@3.1.0(acorn@8.14.0)': + "@mdx-js/mdx@3.1.0(acorn@8.14.0)": dependencies: - '@types/estree': 1.0.6 - '@types/estree-jsx': 1.0.5 - '@types/hast': 3.0.4 - '@types/mdx': 2.0.13 + "@types/estree": 1.0.6 + "@types/estree-jsx": 1.0.5 + "@types/hast": 3.0.4 + "@types/mdx": 2.0.13 collapse-white-space: 2.1.0 devlop: 1.1.0 estree-util-is-identifier-name: 3.0.0 @@ -5583,137 +9375,137 @@ snapshots: - acorn - supports-color - '@netlify/functions@2.8.2': + "@netlify/functions@2.8.2": dependencies: - '@netlify/serverless-functions-api': 1.26.1 + "@netlify/serverless-functions-api": 1.26.1 - '@netlify/node-cookies@0.1.0': {} + "@netlify/node-cookies@0.1.0": {} - '@netlify/serverless-functions-api@1.26.1': + "@netlify/serverless-functions-api@1.26.1": dependencies: - '@netlify/node-cookies': 0.1.0 + "@netlify/node-cookies": 0.1.0 urlpattern-polyfill: 8.0.2 - '@noble/hashes@1.5.0': {} + "@noble/hashes@1.5.0": {} - '@nodelib/fs.scandir@2.1.5': + "@nodelib/fs.scandir@2.1.5": dependencies: - '@nodelib/fs.stat': 2.0.5 + "@nodelib/fs.stat": 2.0.5 run-parallel: 1.2.0 - '@nodelib/fs.stat@2.0.5': {} + "@nodelib/fs.stat@2.0.5": {} - '@nodelib/fs.walk@1.2.8': + "@nodelib/fs.walk@1.2.8": dependencies: - '@nodelib/fs.scandir': 2.1.5 + "@nodelib/fs.scandir": 2.1.5 fastq: 1.17.1 - '@orama/crawly@0.0.4': + "@orama/crawly@0.0.4": dependencies: cheerio: 1.0.0-rc.12 slugify: 1.6.6 - '@orama/orama@2.1.1': {} + "@orama/orama@2.1.1": {} - '@oramacloud/client@1.3.16(typescript@5.6.3)(zod@3.23.8)': + "@oramacloud/client@1.3.16(typescript@5.8.2)(zod@3.23.8)": dependencies: - '@orama/orama': 2.1.1 - '@paralleldrive/cuid2': 2.2.2 + "@orama/orama": 2.1.1 + "@paralleldrive/cuid2": 2.2.2 lodash: 4.17.21 openai: 4.67.3(zod@3.23.8) react: 18.3.1 - vue: 3.5.12(typescript@5.6.3) + vue: 3.5.12(typescript@5.8.2) transitivePeerDependencies: - encoding - typescript - zod - '@paralleldrive/cuid2@2.2.2': + "@paralleldrive/cuid2@2.2.2": dependencies: - '@noble/hashes': 1.5.0 + "@noble/hashes": 1.5.0 - '@parcel/watcher-android-arm64@2.4.1': + "@parcel/watcher-android-arm64@2.4.1": optional: true - '@parcel/watcher-darwin-arm64@2.4.1': + "@parcel/watcher-darwin-arm64@2.4.1": optional: true - '@parcel/watcher-darwin-x64@2.4.1': + "@parcel/watcher-darwin-x64@2.4.1": optional: true - '@parcel/watcher-freebsd-x64@2.4.1': + "@parcel/watcher-freebsd-x64@2.4.1": optional: true - '@parcel/watcher-linux-arm-glibc@2.4.1': + "@parcel/watcher-linux-arm-glibc@2.4.1": optional: true - '@parcel/watcher-linux-arm64-glibc@2.4.1': + "@parcel/watcher-linux-arm64-glibc@2.4.1": optional: true - '@parcel/watcher-linux-arm64-musl@2.4.1': + "@parcel/watcher-linux-arm64-musl@2.4.1": optional: true - '@parcel/watcher-linux-x64-glibc@2.4.1': + "@parcel/watcher-linux-x64-glibc@2.4.1": optional: true - '@parcel/watcher-linux-x64-musl@2.4.1': + "@parcel/watcher-linux-x64-musl@2.4.1": optional: true - '@parcel/watcher-wasm@2.3.0': + "@parcel/watcher-wasm@2.3.0": dependencies: is-glob: 4.0.3 micromatch: 4.0.8 - '@parcel/watcher-wasm@2.4.1': + "@parcel/watcher-wasm@2.4.1": dependencies: is-glob: 4.0.3 micromatch: 4.0.8 - '@parcel/watcher-win32-arm64@2.4.1': + "@parcel/watcher-win32-arm64@2.4.1": optional: true - '@parcel/watcher-win32-ia32@2.4.1': + "@parcel/watcher-win32-ia32@2.4.1": optional: true - '@parcel/watcher-win32-x64@2.4.1': + "@parcel/watcher-win32-x64@2.4.1": optional: true - '@parcel/watcher@2.4.1': + "@parcel/watcher@2.4.1": dependencies: detect-libc: 1.0.3 is-glob: 4.0.3 micromatch: 4.0.8 node-addon-api: 7.1.1 optionalDependencies: - '@parcel/watcher-android-arm64': 2.4.1 - '@parcel/watcher-darwin-arm64': 2.4.1 - '@parcel/watcher-darwin-x64': 2.4.1 - '@parcel/watcher-freebsd-x64': 2.4.1 - '@parcel/watcher-linux-arm-glibc': 2.4.1 - '@parcel/watcher-linux-arm64-glibc': 2.4.1 - '@parcel/watcher-linux-arm64-musl': 2.4.1 - '@parcel/watcher-linux-x64-glibc': 2.4.1 - '@parcel/watcher-linux-x64-musl': 2.4.1 - '@parcel/watcher-win32-arm64': 2.4.1 - '@parcel/watcher-win32-ia32': 2.4.1 - '@parcel/watcher-win32-x64': 2.4.1 - - '@pkgjs/parseargs@0.11.0': + "@parcel/watcher-android-arm64": 2.4.1 + "@parcel/watcher-darwin-arm64": 2.4.1 + "@parcel/watcher-darwin-x64": 2.4.1 + "@parcel/watcher-freebsd-x64": 2.4.1 + "@parcel/watcher-linux-arm-glibc": 2.4.1 + "@parcel/watcher-linux-arm64-glibc": 2.4.1 + "@parcel/watcher-linux-arm64-musl": 2.4.1 + "@parcel/watcher-linux-x64-glibc": 2.4.1 + "@parcel/watcher-linux-x64-musl": 2.4.1 + "@parcel/watcher-win32-arm64": 2.4.1 + "@parcel/watcher-win32-ia32": 2.4.1 + "@parcel/watcher-win32-x64": 2.4.1 + + "@pkgjs/parseargs@0.11.0": optional: true - '@redocly/ajv@8.11.2': + "@redocly/ajv@8.11.2": dependencies: fast-deep-equal: 3.1.3 json-schema-traverse: 1.0.0 require-from-string: 2.0.2 uri-js-replace: 1.0.1 - '@redocly/config@0.20.3': {} + "@redocly/config@0.20.3": {} - '@redocly/openapi-core@1.30.0(supports-color@9.4.0)': + "@redocly/openapi-core@1.30.0(supports-color@9.4.0)": dependencies: - '@redocly/ajv': 8.11.2 - '@redocly/config': 0.20.3 + "@redocly/ajv": 8.11.2 + "@redocly/config": 0.20.3 colorette: 1.4.0 https-proxy-agent: 7.0.6(supports-color@9.4.0) js-levenshtein: 1.1.6 @@ -5724,13 +9516,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@rollup/plugin-alias@5.1.1(rollup@4.34.8)': + "@rollup/plugin-alias@5.1.1(rollup@4.34.8)": optionalDependencies: rollup: 4.34.8 - '@rollup/plugin-commonjs@28.0.2(rollup@4.34.8)': + "@rollup/plugin-commonjs@28.0.2(rollup@4.34.8)": dependencies: - '@rollup/pluginutils': 5.1.4(rollup@4.34.8) + "@rollup/pluginutils": 5.1.4(rollup@4.34.8) commondir: 1.0.1 estree-walker: 2.0.2 fdir: 6.4.3(picomatch@4.0.2) @@ -5740,38 +9532,38 @@ snapshots: optionalDependencies: rollup: 4.34.8 - '@rollup/plugin-inject@5.0.5(rollup@4.34.8)': + "@rollup/plugin-inject@5.0.5(rollup@4.34.8)": dependencies: - '@rollup/pluginutils': 5.1.4(rollup@4.34.8) + "@rollup/pluginutils": 5.1.4(rollup@4.34.8) estree-walker: 2.0.2 magic-string: 0.30.12 optionalDependencies: rollup: 4.34.8 - '@rollup/plugin-json@6.1.0(rollup@4.34.8)': + "@rollup/plugin-json@6.1.0(rollup@4.34.8)": dependencies: - '@rollup/pluginutils': 5.1.4(rollup@4.34.8) + "@rollup/pluginutils": 5.1.4(rollup@4.34.8) optionalDependencies: rollup: 4.34.8 - '@rollup/plugin-node-resolve@15.3.0(rollup@4.34.8)': + "@rollup/plugin-node-resolve@15.3.0(rollup@4.34.8)": dependencies: - '@rollup/pluginutils': 5.1.4(rollup@4.34.8) - '@types/resolve': 1.20.2 + "@rollup/pluginutils": 5.1.4(rollup@4.34.8) + "@types/resolve": 1.20.2 deepmerge: 4.3.1 is-module: 1.0.0 resolve: 1.22.8 optionalDependencies: rollup: 4.34.8 - '@rollup/plugin-replace@6.0.2(rollup@4.34.8)': + "@rollup/plugin-replace@6.0.2(rollup@4.34.8)": dependencies: - '@rollup/pluginutils': 5.1.4(rollup@4.34.8) + "@rollup/pluginutils": 5.1.4(rollup@4.34.8) magic-string: 0.30.12 optionalDependencies: rollup: 4.34.8 - '@rollup/plugin-terser@0.4.4(rollup@4.34.8)': + "@rollup/plugin-terser@0.4.4(rollup@4.34.8)": dependencies: serialize-javascript: 6.0.2 smob: 1.5.0 @@ -5779,240 +9571,302 @@ snapshots: optionalDependencies: rollup: 4.34.8 - '@rollup/pluginutils@5.1.4(rollup@4.34.8)': + "@rollup/pluginutils@4.2.1": + dependencies: + estree-walker: 2.0.2 + picomatch: 2.3.1 + + "@rollup/pluginutils@5.1.4(rollup@4.34.8)": dependencies: - '@types/estree': 1.0.6 + "@types/estree": 1.0.6 estree-walker: 2.0.2 picomatch: 4.0.2 optionalDependencies: rollup: 4.34.8 - '@rollup/rollup-android-arm-eabi@4.34.8': + "@rollup/rollup-android-arm-eabi@4.34.8": + optional: true + + "@rollup/rollup-android-arm-eabi@4.35.0": + optional: true + + "@rollup/rollup-android-arm64@4.34.8": + optional: true + + "@rollup/rollup-android-arm64@4.35.0": + optional: true + + "@rollup/rollup-darwin-arm64@4.34.8": + optional: true + + "@rollup/rollup-darwin-arm64@4.35.0": + optional: true + + "@rollup/rollup-darwin-x64@4.34.8": + optional: true + + "@rollup/rollup-darwin-x64@4.35.0": + optional: true + + "@rollup/rollup-freebsd-arm64@4.34.8": + optional: true + + "@rollup/rollup-freebsd-arm64@4.35.0": + optional: true + + "@rollup/rollup-freebsd-x64@4.34.8": + optional: true + + "@rollup/rollup-freebsd-x64@4.35.0": + optional: true + + "@rollup/rollup-linux-arm-gnueabihf@4.34.8": + optional: true + + "@rollup/rollup-linux-arm-gnueabihf@4.35.0": + optional: true + + "@rollup/rollup-linux-arm-musleabihf@4.34.8": + optional: true + + "@rollup/rollup-linux-arm-musleabihf@4.35.0": + optional: true + + "@rollup/rollup-linux-arm64-gnu@4.34.8": + optional: true + + "@rollup/rollup-linux-arm64-gnu@4.35.0": + optional: true + + "@rollup/rollup-linux-arm64-musl@4.34.8": + optional: true + + "@rollup/rollup-linux-arm64-musl@4.35.0": optional: true - '@rollup/rollup-android-arm64@4.34.8': + "@rollup/rollup-linux-loongarch64-gnu@4.34.8": optional: true - '@rollup/rollup-darwin-arm64@4.34.8': + "@rollup/rollup-linux-loongarch64-gnu@4.35.0": optional: true - '@rollup/rollup-darwin-x64@4.34.8': + "@rollup/rollup-linux-powerpc64le-gnu@4.34.8": optional: true - '@rollup/rollup-freebsd-arm64@4.34.8': + "@rollup/rollup-linux-powerpc64le-gnu@4.35.0": optional: true - '@rollup/rollup-freebsd-x64@4.34.8': + "@rollup/rollup-linux-riscv64-gnu@4.34.8": optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.34.8': + "@rollup/rollup-linux-riscv64-gnu@4.35.0": optional: true - '@rollup/rollup-linux-arm-musleabihf@4.34.8': + "@rollup/rollup-linux-s390x-gnu@4.34.8": optional: true - '@rollup/rollup-linux-arm64-gnu@4.34.8': + "@rollup/rollup-linux-s390x-gnu@4.35.0": optional: true - '@rollup/rollup-linux-arm64-musl@4.34.8': + "@rollup/rollup-linux-x64-gnu@4.34.8": optional: true - '@rollup/rollup-linux-loongarch64-gnu@4.34.8': + "@rollup/rollup-linux-x64-gnu@4.35.0": optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.34.8': + "@rollup/rollup-linux-x64-musl@4.34.8": optional: true - '@rollup/rollup-linux-riscv64-gnu@4.34.8': + "@rollup/rollup-linux-x64-musl@4.35.0": optional: true - '@rollup/rollup-linux-s390x-gnu@4.34.8': + "@rollup/rollup-win32-arm64-msvc@4.34.8": optional: true - '@rollup/rollup-linux-x64-gnu@4.34.8': + "@rollup/rollup-win32-arm64-msvc@4.35.0": optional: true - '@rollup/rollup-linux-x64-musl@4.34.8': + "@rollup/rollup-win32-ia32-msvc@4.34.8": optional: true - '@rollup/rollup-win32-arm64-msvc@4.34.8': + "@rollup/rollup-win32-ia32-msvc@4.35.0": optional: true - '@rollup/rollup-win32-ia32-msvc@4.34.8': + "@rollup/rollup-win32-x64-msvc@4.34.8": optional: true - '@rollup/rollup-win32-x64-msvc@4.34.8': + "@rollup/rollup-win32-x64-msvc@4.35.0": optional: true - '@shikijs/core@1.22.0': + "@shikijs/core@1.22.0": dependencies: - '@shikijs/engine-javascript': 1.22.0 - '@shikijs/engine-oniguruma': 1.22.0 - '@shikijs/types': 1.22.0 - '@shikijs/vscode-textmate': 9.3.0 - '@types/hast': 3.0.4 + "@shikijs/engine-javascript": 1.22.0 + "@shikijs/engine-oniguruma": 1.22.0 + "@shikijs/types": 1.22.0 + "@shikijs/vscode-textmate": 9.3.0 + "@types/hast": 3.0.4 hast-util-to-html: 9.0.3 - '@shikijs/core@1.29.2': + "@shikijs/core@1.29.2": dependencies: - '@shikijs/engine-javascript': 1.29.2 - '@shikijs/engine-oniguruma': 1.29.2 - '@shikijs/types': 1.29.2 - '@shikijs/vscode-textmate': 10.0.2 - '@types/hast': 3.0.4 + "@shikijs/engine-javascript": 1.29.2 + "@shikijs/engine-oniguruma": 1.29.2 + "@shikijs/types": 1.29.2 + "@shikijs/vscode-textmate": 10.0.2 + "@types/hast": 3.0.4 hast-util-to-html: 9.0.5 - '@shikijs/engine-javascript@1.22.0': + "@shikijs/engine-javascript@1.22.0": dependencies: - '@shikijs/types': 1.22.0 - '@shikijs/vscode-textmate': 9.3.0 + "@shikijs/types": 1.22.0 + "@shikijs/vscode-textmate": 9.3.0 oniguruma-to-js: 0.4.3 - '@shikijs/engine-javascript@1.29.2': + "@shikijs/engine-javascript@1.29.2": dependencies: - '@shikijs/types': 1.29.2 - '@shikijs/vscode-textmate': 10.0.2 + "@shikijs/types": 1.29.2 + "@shikijs/vscode-textmate": 10.0.2 oniguruma-to-es: 2.3.0 - '@shikijs/engine-oniguruma@1.22.0': + "@shikijs/engine-oniguruma@1.22.0": dependencies: - '@shikijs/types': 1.22.0 - '@shikijs/vscode-textmate': 9.3.0 + "@shikijs/types": 1.22.0 + "@shikijs/vscode-textmate": 9.3.0 - '@shikijs/engine-oniguruma@1.29.2': + "@shikijs/engine-oniguruma@1.29.2": dependencies: - '@shikijs/types': 1.29.2 - '@shikijs/vscode-textmate': 10.0.2 + "@shikijs/types": 1.29.2 + "@shikijs/vscode-textmate": 10.0.2 - '@shikijs/langs@1.29.2': + "@shikijs/langs@1.29.2": dependencies: - '@shikijs/types': 1.29.2 + "@shikijs/types": 1.29.2 - '@shikijs/themes@1.29.2': + "@shikijs/themes@1.29.2": dependencies: - '@shikijs/types': 1.29.2 + "@shikijs/types": 1.29.2 - '@shikijs/types@1.22.0': + "@shikijs/types@1.22.0": dependencies: - '@shikijs/vscode-textmate': 9.3.0 - '@types/hast': 3.0.4 + "@shikijs/vscode-textmate": 9.3.0 + "@types/hast": 3.0.4 - '@shikijs/types@1.29.2': + "@shikijs/types@1.29.2": dependencies: - '@shikijs/vscode-textmate': 10.0.2 - '@types/hast': 3.0.4 + "@shikijs/vscode-textmate": 10.0.2 + "@types/hast": 3.0.4 - '@shikijs/vscode-textmate@10.0.2': {} + "@shikijs/vscode-textmate@10.0.2": {} - '@shikijs/vscode-textmate@9.3.0': {} + "@shikijs/vscode-textmate@9.3.0": {} - '@sinclair/typebox@0.27.8': {} + "@sinclair/typebox@0.27.8": {} - '@sindresorhus/merge-streams@2.3.0': {} + "@sindresorhus/merge-streams@2.3.0": {} - '@solid-primitives/clipboard@1.5.10(solid-js@1.9.5)': + "@solid-primitives/clipboard@1.5.10(solid-js@1.9.5)": dependencies: - '@solid-primitives/utils': 6.2.3(solid-js@1.9.5) + "@solid-primitives/utils": 6.2.3(solid-js@1.9.5) solid-js: 1.9.5 - '@solid-primitives/context@0.2.3(solid-js@1.9.5)': + "@solid-primitives/context@0.2.3(solid-js@1.9.5)": dependencies: solid-js: 1.9.5 - '@solid-primitives/event-listener@2.3.3(solid-js@1.9.5)': + "@solid-primitives/event-listener@2.3.3(solid-js@1.9.5)": dependencies: - '@solid-primitives/utils': 6.2.3(solid-js@1.9.5) + "@solid-primitives/utils": 6.2.3(solid-js@1.9.5) solid-js: 1.9.5 - '@solid-primitives/keyboard@1.2.8(solid-js@1.9.5)': + "@solid-primitives/keyboard@1.2.8(solid-js@1.9.5)": dependencies: - '@solid-primitives/event-listener': 2.3.3(solid-js@1.9.5) - '@solid-primitives/rootless': 1.4.5(solid-js@1.9.5) - '@solid-primitives/utils': 6.2.3(solid-js@1.9.5) + "@solid-primitives/event-listener": 2.3.3(solid-js@1.9.5) + "@solid-primitives/rootless": 1.4.5(solid-js@1.9.5) + "@solid-primitives/utils": 6.2.3(solid-js@1.9.5) solid-js: 1.9.5 - '@solid-primitives/keyed@1.2.2(solid-js@1.9.5)': + "@solid-primitives/keyed@1.2.2(solid-js@1.9.5)": dependencies: solid-js: 1.9.5 - '@solid-primitives/map@0.4.13(solid-js@1.9.5)': + "@solid-primitives/map@0.4.13(solid-js@1.9.5)": dependencies: - '@solid-primitives/trigger': 1.1.0(solid-js@1.9.5) + "@solid-primitives/trigger": 1.1.0(solid-js@1.9.5) solid-js: 1.9.5 - '@solid-primitives/marker@0.1.0(solid-js@1.9.5)': + "@solid-primitives/marker@0.1.0(solid-js@1.9.5)": dependencies: solid-js: 1.9.5 - '@solid-primitives/media@2.2.9(solid-js@1.9.5)': + "@solid-primitives/media@2.2.9(solid-js@1.9.5)": dependencies: - '@solid-primitives/event-listener': 2.3.3(solid-js@1.9.5) - '@solid-primitives/rootless': 1.4.5(solid-js@1.9.5) - '@solid-primitives/static-store': 0.0.8(solid-js@1.9.5) - '@solid-primitives/utils': 6.2.3(solid-js@1.9.5) + "@solid-primitives/event-listener": 2.3.3(solid-js@1.9.5) + "@solid-primitives/rootless": 1.4.5(solid-js@1.9.5) + "@solid-primitives/static-store": 0.0.8(solid-js@1.9.5) + "@solid-primitives/utils": 6.2.3(solid-js@1.9.5) solid-js: 1.9.5 - '@solid-primitives/platform@0.1.2(solid-js@1.9.5)': + "@solid-primitives/platform@0.1.2(solid-js@1.9.5)": dependencies: solid-js: 1.9.5 - '@solid-primitives/props@3.1.11(solid-js@1.9.5)': + "@solid-primitives/props@3.1.11(solid-js@1.9.5)": dependencies: - '@solid-primitives/utils': 6.2.3(solid-js@1.9.5) + "@solid-primitives/utils": 6.2.3(solid-js@1.9.5) solid-js: 1.9.5 - '@solid-primitives/refs@1.0.8(solid-js@1.9.5)': + "@solid-primitives/refs@1.0.8(solid-js@1.9.5)": dependencies: - '@solid-primitives/utils': 6.2.3(solid-js@1.9.5) + "@solid-primitives/utils": 6.2.3(solid-js@1.9.5) solid-js: 1.9.5 - '@solid-primitives/resize-observer@2.0.26(solid-js@1.9.5)': + "@solid-primitives/resize-observer@2.0.26(solid-js@1.9.5)": dependencies: - '@solid-primitives/event-listener': 2.3.3(solid-js@1.9.5) - '@solid-primitives/rootless': 1.4.5(solid-js@1.9.5) - '@solid-primitives/static-store': 0.0.8(solid-js@1.9.5) - '@solid-primitives/utils': 6.2.3(solid-js@1.9.5) + "@solid-primitives/event-listener": 2.3.3(solid-js@1.9.5) + "@solid-primitives/rootless": 1.4.5(solid-js@1.9.5) + "@solid-primitives/static-store": 0.0.8(solid-js@1.9.5) + "@solid-primitives/utils": 6.2.3(solid-js@1.9.5) solid-js: 1.9.5 - '@solid-primitives/rootless@1.4.5(solid-js@1.9.5)': + "@solid-primitives/rootless@1.4.5(solid-js@1.9.5)": dependencies: - '@solid-primitives/utils': 6.2.3(solid-js@1.9.5) + "@solid-primitives/utils": 6.2.3(solid-js@1.9.5) solid-js: 1.9.5 - '@solid-primitives/scroll@2.0.23(solid-js@1.9.5)': + "@solid-primitives/scroll@2.0.23(solid-js@1.9.5)": dependencies: - '@solid-primitives/event-listener': 2.3.3(solid-js@1.9.5) - '@solid-primitives/rootless': 1.4.5(solid-js@1.9.5) - '@solid-primitives/static-store': 0.0.8(solid-js@1.9.5) + "@solid-primitives/event-listener": 2.3.3(solid-js@1.9.5) + "@solid-primitives/rootless": 1.4.5(solid-js@1.9.5) + "@solid-primitives/static-store": 0.0.8(solid-js@1.9.5) solid-js: 1.9.5 - '@solid-primitives/static-store@0.0.8(solid-js@1.9.5)': + "@solid-primitives/static-store@0.0.8(solid-js@1.9.5)": dependencies: - '@solid-primitives/utils': 6.2.3(solid-js@1.9.5) + "@solid-primitives/utils": 6.2.3(solid-js@1.9.5) solid-js: 1.9.5 - '@solid-primitives/trigger@1.1.0(solid-js@1.9.5)': + "@solid-primitives/trigger@1.1.0(solid-js@1.9.5)": dependencies: - '@solid-primitives/utils': 6.2.3(solid-js@1.9.5) + "@solid-primitives/utils": 6.2.3(solid-js@1.9.5) solid-js: 1.9.5 - '@solid-primitives/utils@6.2.3(solid-js@1.9.5)': + "@solid-primitives/utils@6.2.3(solid-js@1.9.5)": dependencies: solid-js: 1.9.5 - '@solidjs/meta@0.29.4(solid-js@1.9.5)': + "@solidjs/meta@0.29.4(solid-js@1.9.5)": dependencies: solid-js: 1.9.5 - '@solidjs/router@0.15.3(solid-js@1.9.5)': + "@solidjs/router@0.15.3(solid-js@1.9.5)": dependencies: solid-js: 1.9.5 - '@solidjs/start@1.1.1(solid-js@1.9.5)(vinxi@0.5.3(@types/node@22.9.0)(db0@0.2.4)(ioredis@5.4.1)(jiti@2.4.2)(terser@5.34.1)(typescript@5.6.3)(yaml@2.6.0))(vite@6.1.1(@types/node@22.9.0)(jiti@2.4.2)(terser@5.34.1)(yaml@2.6.0))': + "@solidjs/start@1.1.1(solid-js@1.9.5)(vinxi@0.5.3(@types/node@22.9.0)(db0@0.2.4)(ioredis@5.4.1)(jiti@2.4.2)(terser@5.34.1)(typescript@5.8.2)(yaml@2.6.0))(vite@6.2.1(@types/node@22.9.0)(jiti@2.4.2)(terser@5.34.1)(yaml@2.6.0))": dependencies: - '@tanstack/server-functions-plugin': 1.106.0 - '@vinxi/plugin-directives': 0.5.0(vinxi@0.5.3(@types/node@22.9.0)(db0@0.2.4)(ioredis@5.4.1)(jiti@2.4.2)(terser@5.34.1)(typescript@5.6.3)(yaml@2.6.0)) - '@vinxi/server-components': 0.5.0(vinxi@0.5.3(@types/node@22.9.0)(db0@0.2.4)(ioredis@5.4.1)(jiti@2.4.2)(terser@5.34.1)(typescript@5.6.3)(yaml@2.6.0)) + "@tanstack/server-functions-plugin": 1.106.0 + "@vinxi/plugin-directives": 0.5.0(vinxi@0.5.3(@types/node@22.9.0)(db0@0.2.4)(ioredis@5.4.1)(jiti@2.4.2)(terser@5.34.1)(typescript@5.8.2)(yaml@2.6.0)) + "@vinxi/server-components": 0.5.0(vinxi@0.5.3(@types/node@22.9.0)(db0@0.2.4)(ioredis@5.4.1)(jiti@2.4.2)(terser@5.34.1)(typescript@5.8.2)(yaml@2.6.0)) defu: 6.1.4 error-stack-parser: 2.1.4 html-to-image: 1.11.11 @@ -6023,20 +9877,20 @@ snapshots: source-map-js: 1.2.1 terracotta: 1.0.6(solid-js@1.9.5) tinyglobby: 0.2.12 - vinxi: 0.5.3(@types/node@22.9.0)(db0@0.2.4)(ioredis@5.4.1)(jiti@2.4.2)(terser@5.34.1)(typescript@5.6.3)(yaml@2.6.0) - vite-plugin-solid: 2.11.2(solid-js@1.9.5)(vite@6.1.1(@types/node@22.9.0)(jiti@2.4.2)(terser@5.34.1)(yaml@2.6.0)) + vinxi: 0.5.3(@types/node@22.9.0)(db0@0.2.4)(ioredis@5.4.1)(jiti@2.4.2)(terser@5.34.1)(typescript@5.8.2)(yaml@2.6.0) + vite-plugin-solid: 2.11.2(solid-js@1.9.5)(vite@6.2.1(@types/node@22.9.0)(jiti@2.4.2)(terser@5.34.1)(yaml@2.6.0)) transitivePeerDependencies: - - '@testing-library/jest-dom' + - "@testing-library/jest-dom" - babel-plugin-macros - solid-js - supports-color - vite - '@swc/helpers@0.5.13': + "@swc/helpers@0.5.13": dependencies: tslib: 2.8.0 - '@tailwindcss/typography@0.5.15(tailwindcss@3.4.14)': + "@tailwindcss/typography@0.5.15(tailwindcss@3.4.14)": dependencies: lodash.castarray: 4.4.0 lodash.isplainobject: 4.0.6 @@ -6044,20 +9898,20 @@ snapshots: postcss-selector-parser: 6.0.10 tailwindcss: 3.4.14 - '@tanstack/directive-functions-plugin@1.106.0': - dependencies: - '@babel/code-frame': 7.26.2 - '@babel/core': 7.26.9 - '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.9) - '@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.26.9) - '@babel/template': 7.26.9 - '@babel/traverse': 7.26.9 - '@babel/types': 7.26.9 - '@tanstack/router-utils': 1.102.2 - '@types/babel__code-frame': 7.0.6 - '@types/babel__core': 7.20.5 - '@types/babel__template': 7.4.4 - '@types/babel__traverse': 7.20.6 + "@tanstack/directive-functions-plugin@1.106.0": + dependencies: + "@babel/code-frame": 7.26.2 + "@babel/core": 7.26.9 + "@babel/plugin-syntax-jsx": 7.25.9(@babel/core@7.26.9) + "@babel/plugin-syntax-typescript": 7.25.9(@babel/core@7.26.9) + "@babel/template": 7.26.9 + "@babel/traverse": 7.26.9 + "@babel/types": 7.26.9 + "@tanstack/router-utils": 1.102.2 + "@types/babel__code-frame": 7.0.6 + "@types/babel__core": 7.20.5 + "@types/babel__template": 7.4.4 + "@types/babel__traverse": 7.20.6 babel-dead-code-elimination: 1.0.9 dedent: 1.5.3 tiny-invariant: 1.3.3 @@ -6065,27 +9919,27 @@ snapshots: - babel-plugin-macros - supports-color - '@tanstack/router-utils@1.102.2': + "@tanstack/router-utils@1.102.2": dependencies: - '@babel/generator': 7.26.9 - '@babel/parser': 7.26.9 + "@babel/generator": 7.26.9 + "@babel/parser": 7.26.9 ansis: 3.16.0 diff: 7.0.0 - '@tanstack/server-functions-plugin@1.106.0': - dependencies: - '@babel/code-frame': 7.26.2 - '@babel/core': 7.26.9 - '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.9) - '@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.26.9) - '@babel/template': 7.26.9 - '@babel/traverse': 7.26.9 - '@babel/types': 7.26.9 - '@tanstack/directive-functions-plugin': 1.106.0 - '@types/babel__code-frame': 7.0.6 - '@types/babel__core': 7.20.5 - '@types/babel__template': 7.4.4 - '@types/babel__traverse': 7.20.6 + "@tanstack/server-functions-plugin@1.106.0": + dependencies: + "@babel/code-frame": 7.26.2 + "@babel/core": 7.26.9 + "@babel/plugin-syntax-jsx": 7.25.9(@babel/core@7.26.9) + "@babel/plugin-syntax-typescript": 7.25.9(@babel/core@7.26.9) + "@babel/template": 7.26.9 + "@babel/traverse": 7.26.9 + "@babel/types": 7.26.9 + "@tanstack/directive-functions-plugin": 1.106.0 + "@types/babel__code-frame": 7.0.6 + "@types/babel__core": 7.20.5 + "@types/babel__template": 7.4.4 + "@types/babel__traverse": 7.20.6 babel-dead-code-elimination: 1.0.9 dedent: 1.5.3 tiny-invariant: 1.3.3 @@ -6093,224 +9947,189 @@ snapshots: - babel-plugin-macros - supports-color - '@types/acorn@4.0.6': + "@types/acorn@4.0.6": dependencies: - '@types/estree': 1.0.6 + "@types/estree": 1.0.6 - '@types/babel__code-frame@7.0.6': {} + "@types/babel__code-frame@7.0.6": {} - '@types/babel__core@7.20.5': + "@types/babel__core@7.20.5": dependencies: - '@babel/parser': 7.25.8 - '@babel/types': 7.25.8 - '@types/babel__generator': 7.6.8 - '@types/babel__template': 7.4.4 - '@types/babel__traverse': 7.20.6 + "@babel/parser": 7.25.8 + "@babel/types": 7.25.8 + "@types/babel__generator": 7.6.8 + "@types/babel__template": 7.4.4 + "@types/babel__traverse": 7.20.6 - '@types/babel__generator@7.6.8': + "@types/babel__generator@7.6.8": dependencies: - '@babel/types': 7.25.8 + "@babel/types": 7.25.8 - '@types/babel__template@7.4.4': + "@types/babel__template@7.4.4": dependencies: - '@babel/parser': 7.25.8 - '@babel/types': 7.26.9 + "@babel/parser": 7.25.8 + "@babel/types": 7.26.9 - '@types/babel__traverse@7.20.6': + "@types/babel__traverse@7.20.6": dependencies: - '@babel/types': 7.26.9 + "@babel/types": 7.26.9 + + "@types/braces@3.0.4": {} - '@types/braces@3.0.4': {} + "@types/debug@4.1.12": + dependencies: + "@types/ms": 0.7.34 - '@types/debug@4.1.12': + "@types/eslint@8.56.12": dependencies: - '@types/ms': 0.7.34 + "@types/estree": 1.0.6 + "@types/json-schema": 7.0.15 - '@types/estree-jsx@1.0.5': + "@types/estree-jsx@1.0.5": dependencies: - '@types/estree': 1.0.6 + "@types/estree": 1.0.6 - '@types/estree@1.0.6': {} + "@types/estree@1.0.6": {} - '@types/hast@3.0.4': + "@types/hast@3.0.4": dependencies: - '@types/unist': 3.0.3 + "@types/unist": 3.0.3 - '@types/http-proxy@1.17.15': + "@types/http-proxy@1.17.15": dependencies: - '@types/node': 22.9.0 + "@types/node": 22.9.0 - '@types/json-schema@7.0.15': {} + "@types/json-schema@7.0.15": {} - '@types/mdast@4.0.4': + "@types/mdast@4.0.4": dependencies: - '@types/unist': 3.0.3 + "@types/unist": 3.0.3 - '@types/mdx@2.0.13': {} + "@types/mdx@2.0.13": {} - '@types/micromatch@4.0.9': + "@types/micromatch@4.0.9": dependencies: - '@types/braces': 3.0.4 + "@types/braces": 3.0.4 - '@types/ms@0.7.34': {} + "@types/ms@0.7.34": {} - '@types/node-fetch@2.6.11': + "@types/node-fetch@2.6.11": dependencies: - '@types/node': 22.9.0 + "@types/node": 22.9.0 form-data: 4.0.1 - '@types/node@17.0.45': {} + "@types/node@17.0.45": {} - '@types/node@18.19.55': + "@types/node@18.19.55": dependencies: undici-types: 5.26.5 - '@types/node@22.9.0': + "@types/node@22.9.0": dependencies: undici-types: 6.19.8 - '@types/resolve@1.20.2': {} + "@types/resolve@1.20.2": {} - '@types/sax@1.2.7': + "@types/sax@1.2.7": dependencies: - '@types/node': 22.9.0 - - '@types/semver@7.5.8': {} + "@types/node": 22.9.0 - '@types/ungap__structured-clone@1.2.0': {} + "@types/ungap__structured-clone@1.2.0": {} - '@types/unist@2.0.11': {} + "@types/unist@2.0.11": {} - '@types/unist@3.0.3': {} + "@types/unist@3.0.3": {} - '@typescript-eslint/eslint-plugin@8.9.0(@typescript-eslint/parser@8.9.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1)(typescript@5.6.3)': + "@typescript-eslint/eslint-plugin@8.26.0(@typescript-eslint/parser@8.26.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2))(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)": dependencies: - '@eslint-community/regexpp': 4.11.1 - '@typescript-eslint/parser': 8.9.0(eslint@8.57.1)(typescript@5.6.3) - '@typescript-eslint/scope-manager': 8.9.0 - '@typescript-eslint/type-utils': 8.9.0(eslint@8.57.1)(typescript@5.6.3) - '@typescript-eslint/utils': 8.9.0(eslint@8.57.1)(typescript@5.6.3) - '@typescript-eslint/visitor-keys': 8.9.0 - eslint: 8.57.1 + "@eslint-community/regexpp": 4.12.1 + "@typescript-eslint/parser": 8.26.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + "@typescript-eslint/scope-manager": 8.26.0 + "@typescript-eslint/type-utils": 8.26.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + "@typescript-eslint/utils": 8.26.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + "@typescript-eslint/visitor-keys": 8.26.0 + eslint: 9.22.0(jiti@2.4.2) graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 - ts-api-utils: 1.3.0(typescript@5.6.3) - optionalDependencies: - typescript: 5.6.3 + ts-api-utils: 2.0.1(typescript@5.8.2) + typescript: 5.8.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.9.0(eslint@8.57.1)(typescript@5.6.3)': + "@typescript-eslint/parser@8.26.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)": dependencies: - '@typescript-eslint/scope-manager': 8.9.0 - '@typescript-eslint/types': 8.9.0 - '@typescript-eslint/typescript-estree': 8.9.0(typescript@5.6.3) - '@typescript-eslint/visitor-keys': 8.9.0 - debug: 4.3.7(supports-color@9.4.0) - eslint: 8.57.1 - optionalDependencies: - typescript: 5.6.3 + "@typescript-eslint/scope-manager": 8.26.0 + "@typescript-eslint/types": 8.26.0 + "@typescript-eslint/typescript-estree": 8.26.0(typescript@5.8.2) + "@typescript-eslint/visitor-keys": 8.26.0 + debug: 4.4.0(supports-color@9.4.0) + eslint: 9.22.0(jiti@2.4.2) + typescript: 5.8.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@6.21.0': + "@typescript-eslint/scope-manager@8.26.0": dependencies: - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/visitor-keys': 6.21.0 + "@typescript-eslint/types": 8.26.0 + "@typescript-eslint/visitor-keys": 8.26.0 - '@typescript-eslint/scope-manager@8.9.0': + "@typescript-eslint/type-utils@8.26.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)": dependencies: - '@typescript-eslint/types': 8.9.0 - '@typescript-eslint/visitor-keys': 8.9.0 - - '@typescript-eslint/type-utils@8.9.0(eslint@8.57.1)(typescript@5.6.3)': - dependencies: - '@typescript-eslint/typescript-estree': 8.9.0(typescript@5.6.3) - '@typescript-eslint/utils': 8.9.0(eslint@8.57.1)(typescript@5.6.3) - debug: 4.3.7(supports-color@9.4.0) - ts-api-utils: 1.3.0(typescript@5.6.3) - optionalDependencies: - typescript: 5.6.3 + "@typescript-eslint/typescript-estree": 8.26.0(typescript@5.8.2) + "@typescript-eslint/utils": 8.26.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + debug: 4.4.0(supports-color@9.4.0) + eslint: 9.22.0(jiti@2.4.2) + ts-api-utils: 2.0.1(typescript@5.8.2) + typescript: 5.8.2 transitivePeerDependencies: - - eslint - supports-color - '@typescript-eslint/types@6.21.0': {} - - '@typescript-eslint/types@8.9.0': {} + "@typescript-eslint/types@8.26.0": {} - '@typescript-eslint/typescript-estree@6.21.0(typescript@5.6.3)': + "@typescript-eslint/typescript-estree@8.26.0(typescript@5.8.2)": dependencies: - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/visitor-keys': 6.21.0 - debug: 4.3.7(supports-color@9.4.0) - globby: 11.1.0 + "@typescript-eslint/types": 8.26.0 + "@typescript-eslint/visitor-keys": 8.26.0 + debug: 4.4.0(supports-color@9.4.0) + fast-glob: 3.3.3 is-glob: 4.0.3 - minimatch: 9.0.3 - semver: 7.6.3 - ts-api-utils: 1.3.0(typescript@5.6.3) - optionalDependencies: - typescript: 5.6.3 + minimatch: 9.0.5 + semver: 7.7.1 + ts-api-utils: 2.0.1(typescript@5.8.2) + typescript: 5.8.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.9.0(typescript@5.6.3)': + "@typescript-eslint/utils@8.26.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)": dependencies: - '@typescript-eslint/types': 8.9.0 - '@typescript-eslint/visitor-keys': 8.9.0 - debug: 4.3.7(supports-color@9.4.0) - fast-glob: 3.3.2 - is-glob: 4.0.3 - minimatch: 9.0.5 - semver: 7.6.3 - ts-api-utils: 1.3.0(typescript@5.6.3) - optionalDependencies: - typescript: 5.6.3 + "@eslint-community/eslint-utils": 4.4.1(eslint@9.22.0(jiti@2.4.2)) + "@typescript-eslint/scope-manager": 8.26.0 + "@typescript-eslint/types": 8.26.0 + "@typescript-eslint/typescript-estree": 8.26.0(typescript@5.8.2) + eslint: 9.22.0(jiti@2.4.2) + typescript: 5.8.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@6.21.0(eslint@8.57.1)(typescript@5.6.3)': + "@typescript-eslint/visitor-keys@8.26.0": dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.1) - '@types/json-schema': 7.0.15 - '@types/semver': 7.5.8 - '@typescript-eslint/scope-manager': 6.21.0 - '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.6.3) - eslint: 8.57.1 - semver: 7.6.3 - transitivePeerDependencies: - - supports-color - - typescript + "@typescript-eslint/types": 8.26.0 + eslint-visitor-keys: 4.2.0 - '@typescript-eslint/utils@8.9.0(eslint@8.57.1)(typescript@5.6.3)': + "@typescript/vfs@1.6.1(typescript@5.8.2)": dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.1) - '@typescript-eslint/scope-manager': 8.9.0 - '@typescript-eslint/types': 8.9.0 - '@typescript-eslint/typescript-estree': 8.9.0(typescript@5.6.3) - eslint: 8.57.1 + debug: 4.4.0(supports-color@9.4.0) + typescript: 5.8.2 transitivePeerDependencies: - supports-color - - typescript - - '@typescript-eslint/visitor-keys@6.21.0': - dependencies: - '@typescript-eslint/types': 6.21.0 - eslint-visitor-keys: 3.4.3 - '@typescript-eslint/visitor-keys@8.9.0': - dependencies: - '@typescript-eslint/types': 8.9.0 - eslint-visitor-keys: 3.4.3 + "@ungap/structured-clone@1.2.0": {} - '@ungap/structured-clone@1.2.0': {} - - '@vercel/nft@0.27.10(rollup@4.34.8)': + "@vercel/nft@0.27.10(rollup@4.34.8)": dependencies: - '@mapbox/node-pre-gyp': 2.0.0 - '@rollup/pluginutils': 5.1.4(rollup@4.34.8) + "@mapbox/node-pre-gyp": 2.0.0 + "@rollup/pluginutils": 5.1.4(rollup@4.34.8) acorn: 8.14.0 acorn-import-attributes: 1.9.5(acorn@8.14.0) async-sema: 3.1.1 @@ -6326,10 +10145,10 @@ snapshots: - rollup - supports-color - '@vinxi/listhen@1.5.6': + "@vinxi/listhen@1.5.6": dependencies: - '@parcel/watcher': 2.4.1 - '@parcel/watcher-wasm': 2.3.0 + "@parcel/watcher": 2.4.1 + "@parcel/watcher-wasm": 2.3.0 citty: 0.1.6 clipboardy: 4.0.0 consola: 3.2.3 @@ -6346,9 +10165,9 @@ snapshots: untun: 0.1.3 uqr: 0.1.2 - '@vinxi/plugin-directives@0.5.0(vinxi@0.5.3(@types/node@22.9.0)(db0@0.2.4)(ioredis@5.4.1)(jiti@2.4.2)(terser@5.34.1)(typescript@5.6.3)(yaml@2.6.0))': + "@vinxi/plugin-directives@0.5.0(vinxi@0.5.3(@types/node@22.9.0)(db0@0.2.4)(ioredis@5.4.1)(jiti@2.4.2)(terser@5.34.1)(typescript@5.8.2)(yaml@2.6.0))": dependencies: - '@babel/parser': 7.25.8 + "@babel/parser": 7.25.8 acorn: 8.12.1 acorn-jsx: 5.3.2(acorn@8.12.1) acorn-loose: 8.4.0 @@ -6357,81 +10176,81 @@ snapshots: magicast: 0.2.11 recast: 0.23.9 tslib: 2.8.0 - vinxi: 0.5.3(@types/node@22.9.0)(db0@0.2.4)(ioredis@5.4.1)(jiti@2.4.2)(terser@5.34.1)(typescript@5.6.3)(yaml@2.6.0) + vinxi: 0.5.3(@types/node@22.9.0)(db0@0.2.4)(ioredis@5.4.1)(jiti@2.4.2)(terser@5.34.1)(typescript@5.8.2)(yaml@2.6.0) - '@vinxi/plugin-mdx@3.7.2(@mdx-js/mdx@3.1.0(acorn@8.14.0))': + "@vinxi/plugin-mdx@3.7.2(@mdx-js/mdx@3.1.0(acorn@8.14.0))": dependencies: - '@alloc/quick-lru': 5.2.0 - '@mdx-js/mdx': 3.1.0(acorn@8.14.0) + "@alloc/quick-lru": 5.2.0 + "@mdx-js/mdx": 3.1.0(acorn@8.14.0) esbuild: 0.18.7 - resolve: 1.22.8 + resolve: 1.22.10 unified: 9.2.2 vfile: 5.3.7 - '@vinxi/server-components@0.5.0(vinxi@0.5.3(@types/node@22.9.0)(db0@0.2.4)(ioredis@5.4.1)(jiti@2.4.2)(terser@5.34.1)(typescript@5.6.3)(yaml@2.6.0))': + "@vinxi/server-components@0.5.0(vinxi@0.5.3(@types/node@22.9.0)(db0@0.2.4)(ioredis@5.4.1)(jiti@2.4.2)(terser@5.34.1)(typescript@5.8.2)(yaml@2.6.0))": dependencies: - '@vinxi/plugin-directives': 0.5.0(vinxi@0.5.3(@types/node@22.9.0)(db0@0.2.4)(ioredis@5.4.1)(jiti@2.4.2)(terser@5.34.1)(typescript@5.6.3)(yaml@2.6.0)) + "@vinxi/plugin-directives": 0.5.0(vinxi@0.5.3(@types/node@22.9.0)(db0@0.2.4)(ioredis@5.4.1)(jiti@2.4.2)(terser@5.34.1)(typescript@5.8.2)(yaml@2.6.0)) acorn: 8.12.1 acorn-loose: 8.4.0 acorn-typescript: 1.4.13(acorn@8.12.1) astring: 1.9.0 magicast: 0.2.11 recast: 0.23.9 - vinxi: 0.5.3(@types/node@22.9.0)(db0@0.2.4)(ioredis@5.4.1)(jiti@2.4.2)(terser@5.34.1)(typescript@5.6.3)(yaml@2.6.0) + vinxi: 0.5.3(@types/node@22.9.0)(db0@0.2.4)(ioredis@5.4.1)(jiti@2.4.2)(terser@5.34.1)(typescript@5.8.2)(yaml@2.6.0) - '@vue/compiler-core@3.5.12': + "@vue/compiler-core@3.5.12": dependencies: - '@babel/parser': 7.25.8 - '@vue/shared': 3.5.12 + "@babel/parser": 7.25.8 + "@vue/shared": 3.5.12 entities: 4.5.0 estree-walker: 2.0.2 source-map-js: 1.2.1 - '@vue/compiler-dom@3.5.12': + "@vue/compiler-dom@3.5.12": dependencies: - '@vue/compiler-core': 3.5.12 - '@vue/shared': 3.5.12 + "@vue/compiler-core": 3.5.12 + "@vue/shared": 3.5.12 - '@vue/compiler-sfc@3.5.12': + "@vue/compiler-sfc@3.5.12": dependencies: - '@babel/parser': 7.25.8 - '@vue/compiler-core': 3.5.12 - '@vue/compiler-dom': 3.5.12 - '@vue/compiler-ssr': 3.5.12 - '@vue/shared': 3.5.12 + "@babel/parser": 7.25.8 + "@vue/compiler-core": 3.5.12 + "@vue/compiler-dom": 3.5.12 + "@vue/compiler-ssr": 3.5.12 + "@vue/shared": 3.5.12 estree-walker: 2.0.2 magic-string: 0.30.12 postcss: 8.5.3 source-map-js: 1.2.1 - '@vue/compiler-ssr@3.5.12': + "@vue/compiler-ssr@3.5.12": dependencies: - '@vue/compiler-dom': 3.5.12 - '@vue/shared': 3.5.12 + "@vue/compiler-dom": 3.5.12 + "@vue/shared": 3.5.12 - '@vue/reactivity@3.5.12': + "@vue/reactivity@3.5.12": dependencies: - '@vue/shared': 3.5.12 + "@vue/shared": 3.5.12 - '@vue/runtime-core@3.5.12': + "@vue/runtime-core@3.5.12": dependencies: - '@vue/reactivity': 3.5.12 - '@vue/shared': 3.5.12 + "@vue/reactivity": 3.5.12 + "@vue/shared": 3.5.12 - '@vue/runtime-dom@3.5.12': + "@vue/runtime-dom@3.5.12": dependencies: - '@vue/reactivity': 3.5.12 - '@vue/runtime-core': 3.5.12 - '@vue/shared': 3.5.12 + "@vue/reactivity": 3.5.12 + "@vue/runtime-core": 3.5.12 + "@vue/shared": 3.5.12 csstype: 3.1.3 - '@vue/server-renderer@3.5.12(vue@3.5.12(typescript@5.6.3))': + "@vue/server-renderer@3.5.12(vue@3.5.12(typescript@5.8.2))": dependencies: - '@vue/compiler-ssr': 3.5.12 - '@vue/shared': 3.5.12 - vue: 3.5.12(typescript@5.6.3) + "@vue/compiler-ssr": 3.5.12 + "@vue/shared": 3.5.12 + vue: 3.5.12(typescript@5.8.2) - '@vue/shared@3.5.12': {} + "@vue/shared@3.5.12": {} abbrev@3.0.0: {} @@ -6451,6 +10270,10 @@ snapshots: dependencies: acorn: 8.14.0 + acorn-jsx@5.3.2(acorn@8.14.1): + dependencies: + acorn: 8.14.1 + acorn-loose@8.4.0: dependencies: acorn: 8.12.1 @@ -6463,6 +10286,8 @@ snapshots: acorn@8.14.0: {} + acorn@8.14.1: {} + agent-base@7.1.3: {} agentkeepalive@4.5.0: @@ -6478,19 +10303,19 @@ snapshots: 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 + "@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: @@ -6551,8 +10376,6 @@ snapshots: argparse@2.0.1: {} - array-union@2.1.0: {} - ast-types@0.16.1: dependencies: tslib: 2.8.0 @@ -6579,19 +10402,19 @@ snapshots: babel-dead-code-elimination@1.0.9: dependencies: - '@babel/core': 7.26.9 - '@babel/parser': 7.25.8 - '@babel/traverse': 7.26.9 - '@babel/types': 7.26.9 + "@babel/core": 7.26.9 + "@babel/parser": 7.25.8 + "@babel/traverse": 7.26.9 + "@babel/types": 7.26.9 transitivePeerDependencies: - supports-color babel-plugin-jsx-dom-expressions@0.39.2(@babel/core@7.25.8): dependencies: - '@babel/core': 7.25.8 - '@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/core": 7.25.8 + "@babel/helper-module-imports": 7.18.6 + "@babel/plugin-syntax-jsx": 7.25.7(@babel/core@7.25.8) + "@babel/types": 7.25.8 html-entities: 2.3.3 jest-diff: 29.7.0 parse5: 7.2.0 @@ -6599,7 +10422,7 @@ snapshots: babel-preset-solid@1.9.2(@babel/core@7.25.8): dependencies: - '@babel/core': 7.25.8 + "@babel/core": 7.25.8 babel-plugin-jsx-dom-expressions: 0.39.2(@babel/core@7.25.8) bail@1.0.5: {} @@ -6837,6 +10660,12 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 + cross-spawn@7.0.6: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + crossws@0.3.4: dependencies: uncrypto: 0.1.3 @@ -6859,7 +10688,7 @@ snapshots: dax-sh@0.39.2: dependencies: - '@deno/shim-deno': 0.19.2 + "@deno/shim-deno": 0.19.2 undici-types: 5.28.4 db0@0.2.4: {} @@ -6868,15 +10697,15 @@ snapshots: dependencies: ms: 2.0.0 - debug@4.3.7(supports-color@9.4.0): + debug@4.3.7: dependencies: ms: 2.1.3 - optionalDependencies: - supports-color: 9.4.0 - debug@4.4.0: + debug@4.4.0(supports-color@9.4.0): dependencies: ms: 2.1.3 + optionalDependencies: + supports-color: 9.4.0 decode-named-character-reference@1.0.2: dependencies: @@ -6918,18 +10747,10 @@ snapshots: diff@7.0.0: {} - dir-glob@3.0.1: - dependencies: - path-type: 4.0.0 - direction@2.0.1: {} dlv@1.1.3: {} - doctrine@3.0.0: - dependencies: - esutils: 2.0.3 - dom-serializer@2.0.0: dependencies: domelementtype: 2.3.0 @@ -6982,96 +10803,124 @@ snapshots: esast-util-from-estree@2.0.0: dependencies: - '@types/estree-jsx': 1.0.5 + "@types/estree-jsx": 1.0.5 devlop: 1.1.0 estree-util-visit: 2.0.0 unist-util-position-from-estree: 2.0.0 esast-util-from-js@2.0.1: dependencies: - '@types/estree-jsx': 1.0.5 + "@types/estree-jsx": 1.0.5 acorn: 8.14.0 esast-util-from-estree: 2.0.0 vfile-message: 4.0.2 esbuild@0.18.7: optionalDependencies: - '@esbuild/android-arm': 0.18.7 - '@esbuild/android-arm64': 0.18.7 - '@esbuild/android-x64': 0.18.7 - '@esbuild/darwin-arm64': 0.18.7 - '@esbuild/darwin-x64': 0.18.7 - '@esbuild/freebsd-arm64': 0.18.7 - '@esbuild/freebsd-x64': 0.18.7 - '@esbuild/linux-arm': 0.18.7 - '@esbuild/linux-arm64': 0.18.7 - '@esbuild/linux-ia32': 0.18.7 - '@esbuild/linux-loong64': 0.18.7 - '@esbuild/linux-mips64el': 0.18.7 - '@esbuild/linux-ppc64': 0.18.7 - '@esbuild/linux-riscv64': 0.18.7 - '@esbuild/linux-s390x': 0.18.7 - '@esbuild/linux-x64': 0.18.7 - '@esbuild/netbsd-x64': 0.18.7 - '@esbuild/openbsd-x64': 0.18.7 - '@esbuild/sunos-x64': 0.18.7 - '@esbuild/win32-arm64': 0.18.7 - '@esbuild/win32-ia32': 0.18.7 - '@esbuild/win32-x64': 0.18.7 + "@esbuild/android-arm": 0.18.7 + "@esbuild/android-arm64": 0.18.7 + "@esbuild/android-x64": 0.18.7 + "@esbuild/darwin-arm64": 0.18.7 + "@esbuild/darwin-x64": 0.18.7 + "@esbuild/freebsd-arm64": 0.18.7 + "@esbuild/freebsd-x64": 0.18.7 + "@esbuild/linux-arm": 0.18.7 + "@esbuild/linux-arm64": 0.18.7 + "@esbuild/linux-ia32": 0.18.7 + "@esbuild/linux-loong64": 0.18.7 + "@esbuild/linux-mips64el": 0.18.7 + "@esbuild/linux-ppc64": 0.18.7 + "@esbuild/linux-riscv64": 0.18.7 + "@esbuild/linux-s390x": 0.18.7 + "@esbuild/linux-x64": 0.18.7 + "@esbuild/netbsd-x64": 0.18.7 + "@esbuild/openbsd-x64": 0.18.7 + "@esbuild/sunos-x64": 0.18.7 + "@esbuild/win32-arm64": 0.18.7 + "@esbuild/win32-ia32": 0.18.7 + "@esbuild/win32-x64": 0.18.7 esbuild@0.20.2: optionalDependencies: - '@esbuild/aix-ppc64': 0.20.2 - '@esbuild/android-arm': 0.20.2 - '@esbuild/android-arm64': 0.20.2 - '@esbuild/android-x64': 0.20.2 - '@esbuild/darwin-arm64': 0.20.2 - '@esbuild/darwin-x64': 0.20.2 - '@esbuild/freebsd-arm64': 0.20.2 - '@esbuild/freebsd-x64': 0.20.2 - '@esbuild/linux-arm': 0.20.2 - '@esbuild/linux-arm64': 0.20.2 - '@esbuild/linux-ia32': 0.20.2 - '@esbuild/linux-loong64': 0.20.2 - '@esbuild/linux-mips64el': 0.20.2 - '@esbuild/linux-ppc64': 0.20.2 - '@esbuild/linux-riscv64': 0.20.2 - '@esbuild/linux-s390x': 0.20.2 - '@esbuild/linux-x64': 0.20.2 - '@esbuild/netbsd-x64': 0.20.2 - '@esbuild/openbsd-x64': 0.20.2 - '@esbuild/sunos-x64': 0.20.2 - '@esbuild/win32-arm64': 0.20.2 - '@esbuild/win32-ia32': 0.20.2 - '@esbuild/win32-x64': 0.20.2 + "@esbuild/aix-ppc64": 0.20.2 + "@esbuild/android-arm": 0.20.2 + "@esbuild/android-arm64": 0.20.2 + "@esbuild/android-x64": 0.20.2 + "@esbuild/darwin-arm64": 0.20.2 + "@esbuild/darwin-x64": 0.20.2 + "@esbuild/freebsd-arm64": 0.20.2 + "@esbuild/freebsd-x64": 0.20.2 + "@esbuild/linux-arm": 0.20.2 + "@esbuild/linux-arm64": 0.20.2 + "@esbuild/linux-ia32": 0.20.2 + "@esbuild/linux-loong64": 0.20.2 + "@esbuild/linux-mips64el": 0.20.2 + "@esbuild/linux-ppc64": 0.20.2 + "@esbuild/linux-riscv64": 0.20.2 + "@esbuild/linux-s390x": 0.20.2 + "@esbuild/linux-x64": 0.20.2 + "@esbuild/netbsd-x64": 0.20.2 + "@esbuild/openbsd-x64": 0.20.2 + "@esbuild/sunos-x64": 0.20.2 + "@esbuild/win32-arm64": 0.20.2 + "@esbuild/win32-ia32": 0.20.2 + "@esbuild/win32-x64": 0.20.2 esbuild@0.24.2: optionalDependencies: - '@esbuild/aix-ppc64': 0.24.2 - '@esbuild/android-arm': 0.24.2 - '@esbuild/android-arm64': 0.24.2 - '@esbuild/android-x64': 0.24.2 - '@esbuild/darwin-arm64': 0.24.2 - '@esbuild/darwin-x64': 0.24.2 - '@esbuild/freebsd-arm64': 0.24.2 - '@esbuild/freebsd-x64': 0.24.2 - '@esbuild/linux-arm': 0.24.2 - '@esbuild/linux-arm64': 0.24.2 - '@esbuild/linux-ia32': 0.24.2 - '@esbuild/linux-loong64': 0.24.2 - '@esbuild/linux-mips64el': 0.24.2 - '@esbuild/linux-ppc64': 0.24.2 - '@esbuild/linux-riscv64': 0.24.2 - '@esbuild/linux-s390x': 0.24.2 - '@esbuild/linux-x64': 0.24.2 - '@esbuild/netbsd-arm64': 0.24.2 - '@esbuild/netbsd-x64': 0.24.2 - '@esbuild/openbsd-arm64': 0.24.2 - '@esbuild/openbsd-x64': 0.24.2 - '@esbuild/sunos-x64': 0.24.2 - '@esbuild/win32-arm64': 0.24.2 - '@esbuild/win32-ia32': 0.24.2 - '@esbuild/win32-x64': 0.24.2 + "@esbuild/aix-ppc64": 0.24.2 + "@esbuild/android-arm": 0.24.2 + "@esbuild/android-arm64": 0.24.2 + "@esbuild/android-x64": 0.24.2 + "@esbuild/darwin-arm64": 0.24.2 + "@esbuild/darwin-x64": 0.24.2 + "@esbuild/freebsd-arm64": 0.24.2 + "@esbuild/freebsd-x64": 0.24.2 + "@esbuild/linux-arm": 0.24.2 + "@esbuild/linux-arm64": 0.24.2 + "@esbuild/linux-ia32": 0.24.2 + "@esbuild/linux-loong64": 0.24.2 + "@esbuild/linux-mips64el": 0.24.2 + "@esbuild/linux-ppc64": 0.24.2 + "@esbuild/linux-riscv64": 0.24.2 + "@esbuild/linux-s390x": 0.24.2 + "@esbuild/linux-x64": 0.24.2 + "@esbuild/netbsd-arm64": 0.24.2 + "@esbuild/netbsd-x64": 0.24.2 + "@esbuild/openbsd-arm64": 0.24.2 + "@esbuild/openbsd-x64": 0.24.2 + "@esbuild/sunos-x64": 0.24.2 + "@esbuild/win32-arm64": 0.24.2 + "@esbuild/win32-ia32": 0.24.2 + "@esbuild/win32-x64": 0.24.2 + + esbuild@0.25.0: + optionalDependencies: + "@esbuild/aix-ppc64": 0.25.0 + "@esbuild/android-arm": 0.25.0 + "@esbuild/android-arm64": 0.25.0 + "@esbuild/android-x64": 0.25.0 + "@esbuild/darwin-arm64": 0.25.0 + "@esbuild/darwin-x64": 0.25.0 + "@esbuild/freebsd-arm64": 0.25.0 + "@esbuild/freebsd-x64": 0.25.0 + "@esbuild/linux-arm": 0.25.0 + "@esbuild/linux-arm64": 0.25.0 + "@esbuild/linux-ia32": 0.25.0 + "@esbuild/linux-loong64": 0.25.0 + "@esbuild/linux-mips64el": 0.25.0 + "@esbuild/linux-ppc64": 0.25.0 + "@esbuild/linux-riscv64": 0.25.0 + "@esbuild/linux-s390x": 0.25.0 + "@esbuild/linux-x64": 0.25.0 + "@esbuild/netbsd-arm64": 0.25.0 + "@esbuild/netbsd-x64": 0.25.0 + "@esbuild/openbsd-arm64": 0.25.0 + "@esbuild/openbsd-x64": 0.25.0 + "@esbuild/sunos-x64": 0.25.0 + "@esbuild/win32-arm64": 0.25.0 + "@esbuild/win32-ia32": 0.25.0 + "@esbuild/win32-x64": 0.25.0 escalade@3.2.0: {} @@ -7083,74 +10932,75 @@ snapshots: escape-string-regexp@5.0.0: {} - eslint-plugin-solid@0.13.2(eslint@8.57.1)(typescript@5.6.3): + eslint-plugin-solid@0.14.5(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2): dependencies: - '@typescript-eslint/utils': 6.21.0(eslint@8.57.1)(typescript@5.6.3) - eslint: 8.57.1 + "@typescript-eslint/utils": 8.26.0(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2) + eslint: 9.22.0(jiti@2.4.2) estraverse: 5.3.0 is-html: 2.0.0 kebab-case: 1.0.2 - known-css-properties: 0.24.0 - style-to-object: 0.3.0 + known-css-properties: 0.30.0 + style-to-object: 1.0.8 + typescript: 5.8.2 transitivePeerDependencies: - supports-color - - typescript - eslint-scope@7.2.2: + eslint-scope@8.3.0: dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 eslint-visitor-keys@3.4.3: {} - eslint@8.57.1: - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.1) - '@eslint-community/regexpp': 4.11.1 - '@eslint/eslintrc': 2.1.4 - '@eslint/js': 8.57.1 - '@humanwhocodes/config-array': 0.13.0 - '@humanwhocodes/module-importer': 1.0.1 - '@nodelib/fs.walk': 1.2.8 - '@ungap/structured-clone': 1.2.0 + eslint-visitor-keys@4.2.0: {} + + eslint@9.22.0(jiti@2.4.2): + dependencies: + "@eslint-community/eslint-utils": 4.4.1(eslint@9.22.0(jiti@2.4.2)) + "@eslint-community/regexpp": 4.12.1 + "@eslint/config-array": 0.19.2 + "@eslint/config-helpers": 0.1.0 + "@eslint/core": 0.12.0 + "@eslint/eslintrc": 3.3.0 + "@eslint/js": 9.22.0 + "@eslint/plugin-kit": 0.2.7 + "@humanfs/node": 0.16.6 + "@humanwhocodes/module-importer": 1.0.1 + "@humanwhocodes/retry": 0.4.2 + "@types/estree": 1.0.6 + "@types/json-schema": 7.0.15 ajv: 6.12.6 chalk: 4.1.2 - cross-spawn: 7.0.3 - debug: 4.3.7(supports-color@9.4.0) - doctrine: 3.0.0 + cross-spawn: 7.0.6 + debug: 4.4.0(supports-color@9.4.0) escape-string-regexp: 4.0.0 - eslint-scope: 7.2.2 - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 + eslint-scope: 8.3.0 + eslint-visitor-keys: 4.2.0 + espree: 10.3.0 esquery: 1.6.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 - file-entry-cache: 6.0.1 + file-entry-cache: 8.0.0 find-up: 5.0.0 glob-parent: 6.0.2 - globals: 13.24.0 - graphemer: 1.4.0 ignore: 5.3.2 imurmurhash: 0.1.4 is-glob: 4.0.3 - is-path-inside: 3.0.3 - js-yaml: 4.1.0 json-stable-stringify-without-jsonify: 1.0.1 - levn: 0.4.1 lodash.merge: 4.6.2 minimatch: 3.1.2 natural-compare: 1.4.0 optionator: 0.9.4 - strip-ansi: 6.0.1 - text-table: 0.2.0 + optionalDependencies: + jiti: 2.4.2 transitivePeerDependencies: - supports-color - espree@9.6.1: + espree@10.3.0: dependencies: - acorn: 8.12.1 - acorn-jsx: 5.3.2(acorn@8.12.1) - eslint-visitor-keys: 3.4.3 + acorn: 8.14.1 + acorn-jsx: 5.3.2(acorn@8.14.1) + eslint-visitor-keys: 4.2.0 esprima@4.0.1: {} @@ -7166,11 +11016,11 @@ snapshots: estree-util-attach-comments@3.0.0: dependencies: - '@types/estree': 1.0.6 + "@types/estree": 1.0.6 estree-util-build-jsx@3.0.1: dependencies: - '@types/estree-jsx': 1.0.5 + "@types/estree-jsx": 1.0.5 devlop: 1.1.0 estree-util-is-identifier-name: 3.0.0 estree-walker: 3.0.3 @@ -7179,29 +11029,29 @@ snapshots: estree-util-scope@1.0.0: dependencies: - '@types/estree': 1.0.6 + "@types/estree": 1.0.6 devlop: 1.1.0 estree-util-to-js@2.0.0: dependencies: - '@types/estree-jsx': 1.0.5 + "@types/estree-jsx": 1.0.5 astring: 1.9.0 source-map: 0.7.4 estree-util-value-to-estree@3.2.1: dependencies: - '@types/estree': 1.0.6 + "@types/estree": 1.0.6 estree-util-visit@2.0.0: dependencies: - '@types/estree-jsx': 1.0.5 - '@types/unist': 3.0.3 + "@types/estree-jsx": 1.0.5 + "@types/unist": 3.0.3 estree-walker@2.0.2: {} estree-walker@3.0.3: dependencies: - '@types/estree': 1.0.6 + "@types/estree": 1.0.6 esutils@2.0.3: {} @@ -7225,12 +11075,24 @@ snapshots: signal-exit: 4.1.0 strip-final-newline: 3.0.0 - expressive-code@0.37.1: + expressive-code-twoslash@0.4.0(@expressive-code/core@0.40.2)(expressive-code@0.40.2)(typescript@5.8.2): + dependencies: + "@expressive-code/core": 0.40.2 + expressive-code: 0.40.2 + 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.8.2) + typescript: 5.8.2 + transitivePeerDependencies: + - supports-color + + expressive-code@0.40.2: dependencies: - '@expressive-code/core': 0.37.1 - '@expressive-code/plugin-frames': 0.37.1 - '@expressive-code/plugin-shiki': 0.37.1 - '@expressive-code/plugin-text-markers': 0.37.1 + "@expressive-code/core": 0.40.2 + "@expressive-code/plugin-frames": 0.40.2 + "@expressive-code/plugin-shiki": 0.40.2 + "@expressive-code/plugin-text-markers": 0.40.2 extend-shallow@2.0.1: dependencies: @@ -7244,8 +11106,16 @@ snapshots: fast-glob@3.3.2: dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 + "@nodelib/fs.stat": 2.0.5 + "@nodelib/fs.walk": 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.8 + + fast-glob@3.3.3: + dependencies: + "@nodelib/fs.stat": 2.0.5 + "@nodelib/fs.walk": 1.2.8 glob-parent: 5.1.2 merge2: 1.4.1 micromatch: 4.0.8 @@ -7266,9 +11136,9 @@ snapshots: optionalDependencies: picomatch: 4.0.2 - file-entry-cache@6.0.1: + file-entry-cache@8.0.0: dependencies: - flat-cache: 3.2.0 + flat-cache: 4.0.1 file-uri-to-path@1.0.0: {} @@ -7281,13 +11151,12 @@ snapshots: locate-path: 6.0.0 path-exists: 4.0.0 - flat-cache@3.2.0: + flat-cache@4.0.1: dependencies: - flatted: 3.3.1 + flatted: 3.3.3 keyv: 4.5.4 - rimraf: 3.0.2 - flatted@3.3.1: {} + flatted@3.3.3: {} follow-redirects@1.15.9: {} @@ -7383,24 +11252,15 @@ snapshots: globals@11.12.0: {} - globals@13.24.0: - dependencies: - type-fest: 0.20.2 + globals@14.0.0: {} globals@15.15.0: {} - globby@11.1.0: - dependencies: - array-union: 2.1.0 - dir-glob: 3.0.1 - fast-glob: 3.3.2 - ignore: 5.3.2 - merge2: 1.4.1 - slash: 3.0.0 + globals@16.0.0: {} globby@14.0.2: dependencies: - '@sindresorhus/merge-streams': 2.3.0 + "@sindresorhus/merge-streams": 2.3.0 fast-glob: 3.3.2 ignore: 5.3.2 path-type: 5.0.0 @@ -7457,8 +11317,8 @@ snapshots: hast-util-from-parse5@8.0.1: dependencies: - '@types/hast': 3.0.4 - '@types/unist': 3.0.3 + "@types/hast": 3.0.4 + "@types/unist": 3.0.3 devlop: 1.1.0 hastscript: 8.0.0 property-information: 6.5.0 @@ -7468,25 +11328,25 @@ snapshots: hast-util-has-property@3.0.0: dependencies: - '@types/hast': 3.0.4 + "@types/hast": 3.0.4 hast-util-heading-rank@3.0.0: dependencies: - '@types/hast': 3.0.4 + "@types/hast": 3.0.4 hast-util-is-element@3.0.0: dependencies: - '@types/hast': 3.0.4 + "@types/hast": 3.0.4 hast-util-parse-selector@4.0.0: dependencies: - '@types/hast': 3.0.4 + "@types/hast": 3.0.4 hast-util-raw@9.0.4: dependencies: - '@types/hast': 3.0.4 - '@types/unist': 3.0.3 - '@ungap/structured-clone': 1.2.0 + "@types/hast": 3.0.4 + "@types/unist": 3.0.3 + "@ungap/structured-clone": 1.2.0 hast-util-from-parse5: 8.0.1 hast-util-to-parse5: 8.0.0 html-void-elements: 3.0.0 @@ -7500,8 +11360,8 @@ snapshots: hast-util-select@6.0.3: dependencies: - '@types/hast': 3.0.4 - '@types/unist': 3.0.3 + "@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 @@ -7518,9 +11378,9 @@ snapshots: hast-util-to-estree@3.1.0: dependencies: - '@types/estree': 1.0.6 - '@types/estree-jsx': 1.0.5 - '@types/hast': 3.0.4 + "@types/estree": 1.0.6 + "@types/estree-jsx": 1.0.5 + "@types/hast": 3.0.4 comma-separated-tokens: 2.0.3 devlop: 1.1.0 estree-util-attach-comments: 3.0.0 @@ -7539,8 +11399,8 @@ snapshots: hast-util-to-html@9.0.3: dependencies: - '@types/hast': 3.0.4 - '@types/unist': 3.0.3 + "@types/hast": 3.0.4 + "@types/unist": 3.0.3 ccount: 2.0.1 comma-separated-tokens: 2.0.3 hast-util-whitespace: 3.0.0 @@ -7553,8 +11413,8 @@ snapshots: hast-util-to-html@9.0.5: dependencies: - '@types/hast': 3.0.4 - '@types/unist': 3.0.3 + "@types/hast": 3.0.4 + "@types/unist": 3.0.3 ccount: 2.0.1 comma-separated-tokens: 2.0.3 hast-util-whitespace: 3.0.0 @@ -7567,9 +11427,9 @@ snapshots: hast-util-to-jsx-runtime@2.3.2: dependencies: - '@types/estree': 1.0.6 - '@types/hast': 3.0.4 - '@types/unist': 3.0.3 + "@types/estree": 1.0.6 + "@types/hast": 3.0.4 + "@types/unist": 3.0.3 comma-separated-tokens: 2.0.3 devlop: 1.1.0 estree-util-is-identifier-name: 3.0.0 @@ -7587,7 +11447,7 @@ snapshots: hast-util-to-parse5@8.0.0: dependencies: - '@types/hast': 3.0.4 + "@types/hast": 3.0.4 comma-separated-tokens: 2.0.3 devlop: 1.1.0 property-information: 6.5.0 @@ -7597,22 +11457,22 @@ snapshots: hast-util-to-string@3.0.1: dependencies: - '@types/hast': 3.0.4 + "@types/hast": 3.0.4 hast-util-to-text@4.0.2: dependencies: - '@types/hast': 3.0.4 - '@types/unist': 3.0.3 + "@types/hast": 3.0.4 + "@types/unist": 3.0.3 hast-util-is-element: 3.0.0 unist-util-find-after: 5.0.0 hast-util-whitespace@3.0.0: dependencies: - '@types/hast': 3.0.4 + "@types/hast": 3.0.4 hastscript@8.0.0: dependencies: - '@types/hast': 3.0.4 + "@types/hast": 3.0.4 comma-separated-tokens: 2.0.3 hast-util-parse-selector: 4.0.0 property-information: 6.5.0 @@ -7620,7 +11480,7 @@ snapshots: hastscript@9.0.0: dependencies: - '@types/hast': 3.0.4 + "@types/hast": 3.0.4 comma-separated-tokens: 2.0.3 hast-util-parse-selector: 4.0.0 property-information: 6.5.0 @@ -7664,7 +11524,7 @@ snapshots: https-proxy-agent@7.0.6(supports-color@9.4.0): dependencies: agent-base: 7.1.3 - debug: 4.3.7(supports-color@9.4.0) + debug: 4.4.0(supports-color@9.4.0) transitivePeerDependencies: - supports-color @@ -7680,7 +11540,7 @@ snapshots: ignore@5.3.2: {} - import-fresh@3.3.0: + import-fresh@3.3.1: dependencies: parent-module: 1.0.1 resolve-from: 4.0.0 @@ -7702,9 +11562,9 @@ snapshots: ioredis@5.4.1: dependencies: - '@ioredis/commands': 1.2.0 + "@ioredis/commands": 1.2.0 cluster-key-slot: 1.1.2 - debug: 4.3.7(supports-color@9.4.0) + debug: 4.4.0(supports-color@9.4.0) denque: 2.1.0 lodash.defaults: 4.2.0 lodash.isarguments: 3.1.0 @@ -7733,6 +11593,10 @@ snapshots: dependencies: hasown: 2.0.2 + is-core-module@2.16.1: + dependencies: + hasown: 2.0.2 + is-decimal@2.0.1: {} is-docker@2.2.1: {} @@ -7763,15 +11627,13 @@ snapshots: is-number@7.0.0: {} - is-path-inside@3.0.3: {} - is-plain-obj@2.1.0: {} is-plain-obj@4.1.0: {} is-reference@1.2.1: dependencies: - '@types/estree': 1.0.6 + "@types/estree": 1.0.6 is-stream@2.0.1: {} @@ -7799,9 +11661,9 @@ snapshots: jackspeak@3.4.3: dependencies: - '@isaacs/cliui': 8.0.2 + "@isaacs/cliui": 8.0.2 optionalDependencies: - '@pkgjs/parseargs': 0.11.0 + "@pkgjs/parseargs": 0.11.0 jest-diff@29.7.0: dependencies: @@ -7865,7 +11727,7 @@ snapshots: knitwork@1.2.0: {} - known-css-properties@0.24.0: {} + known-css-properties@0.30.0: {} kolorist@1.8.0: {} @@ -7886,8 +11748,8 @@ snapshots: listhen@1.9.0: dependencies: - '@parcel/watcher': 2.4.1 - '@parcel/watcher-wasm': 2.4.1 + "@parcel/watcher": 2.4.1 + "@parcel/watcher-wasm": 2.4.1 citty: 0.1.6 clipboardy: 4.0.0 consola: 3.2.3 @@ -7946,22 +11808,22 @@ snapshots: magic-string@0.30.12: dependencies: - '@jridgewell/sourcemap-codec': 1.5.0 + "@jridgewell/sourcemap-codec": 1.5.0 magic-string@0.30.17: dependencies: - '@jridgewell/sourcemap-codec': 1.5.0 + "@jridgewell/sourcemap-codec": 1.5.0 magicast@0.2.11: dependencies: - '@babel/parser': 7.25.8 - '@babel/types': 7.25.8 + "@babel/parser": 7.25.8 + "@babel/types": 7.25.8 recast: 0.23.9 magicast@0.3.5: dependencies: - '@babel/parser': 7.25.8 - '@babel/types': 7.25.8 + "@babel/parser": 7.25.8 + "@babel/types": 7.25.8 source-map-js: 1.2.1 markdown-extensions@2.0.0: {} @@ -7970,8 +11832,8 @@ snapshots: mdast-util-directive@3.0.0: dependencies: - '@types/mdast': 4.0.4 - '@types/unist': 3.0.3 + "@types/mdast": 4.0.4 + "@types/unist": 3.0.3 devlop: 1.1.0 mdast-util-from-markdown: 2.0.1 mdast-util-to-markdown: 2.1.0 @@ -7983,15 +11845,32 @@ snapshots: mdast-util-find-and-replace@3.0.1: dependencies: - '@types/mdast': 4.0.4 + "@types/mdast": 4.0.4 escape-string-regexp: 5.0.0 unist-util-is: 6.0.0 unist-util-visit-parents: 6.0.1 mdast-util-from-markdown@2.0.1: dependencies: - '@types/mdast': 4.0.4 - '@types/unist': 3.0.3 + "@types/mdast": 4.0.4 + "@types/unist": 3.0.3 + decode-named-character-reference: 1.0.2 + 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 + unist-util-stringify-position: 4.0.0 + transitivePeerDependencies: + - supports-color + + 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 devlop: 1.1.0 mdast-util-to-string: 4.0.0 @@ -8007,7 +11886,7 @@ snapshots: mdast-util-frontmatter@2.0.1: dependencies: - '@types/mdast': 4.0.4 + "@types/mdast": 4.0.4 devlop: 1.1.0 escape-string-regexp: 5.0.0 mdast-util-from-markdown: 2.0.1 @@ -8018,7 +11897,7 @@ snapshots: mdast-util-gfm-autolink-literal@2.0.1: dependencies: - '@types/mdast': 4.0.4 + "@types/mdast": 4.0.4 ccount: 2.0.1 devlop: 1.1.0 mdast-util-find-and-replace: 3.0.1 @@ -8026,9 +11905,9 @@ snapshots: mdast-util-gfm-footnote@2.0.0: dependencies: - '@types/mdast': 4.0.4 + "@types/mdast": 4.0.4 devlop: 1.1.0 - mdast-util-from-markdown: 2.0.1 + mdast-util-from-markdown: 2.0.2 mdast-util-to-markdown: 2.1.0 micromark-util-normalize-identifier: 2.0.0 transitivePeerDependencies: @@ -8036,27 +11915,27 @@ snapshots: mdast-util-gfm-strikethrough@2.0.0: dependencies: - '@types/mdast': 4.0.4 - mdast-util-from-markdown: 2.0.1 + "@types/mdast": 4.0.4 + mdast-util-from-markdown: 2.0.2 mdast-util-to-markdown: 2.1.0 transitivePeerDependencies: - supports-color mdast-util-gfm-table@2.0.0: dependencies: - '@types/mdast': 4.0.4 + "@types/mdast": 4.0.4 devlop: 1.1.0 markdown-table: 3.0.3 - mdast-util-from-markdown: 2.0.1 + mdast-util-from-markdown: 2.0.2 mdast-util-to-markdown: 2.1.0 transitivePeerDependencies: - supports-color mdast-util-gfm-task-list-item@2.0.0: dependencies: - '@types/mdast': 4.0.4 + "@types/mdast": 4.0.4 devlop: 1.1.0 - mdast-util-from-markdown: 2.0.1 + mdast-util-from-markdown: 2.0.2 mdast-util-to-markdown: 2.1.0 transitivePeerDependencies: - supports-color @@ -8073,11 +11952,23 @@ snapshots: transitivePeerDependencies: - supports-color + mdast-util-gfm@3.1.0: + 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-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 + transitivePeerDependencies: + - supports-color + mdast-util-mdx-expression@2.0.1: dependencies: - '@types/estree-jsx': 1.0.5 - '@types/hast': 3.0.4 - '@types/mdast': 4.0.4 + "@types/estree-jsx": 1.0.5 + "@types/hast": 3.0.4 + "@types/mdast": 4.0.4 devlop: 1.1.0 mdast-util-from-markdown: 2.0.1 mdast-util-to-markdown: 2.1.0 @@ -8086,10 +11977,10 @@ snapshots: mdast-util-mdx-jsx@3.1.3: dependencies: - '@types/estree-jsx': 1.0.5 - '@types/hast': 3.0.4 - '@types/mdast': 4.0.4 - '@types/unist': 3.0.3 + "@types/estree-jsx": 1.0.5 + "@types/hast": 3.0.4 + "@types/mdast": 4.0.4 + "@types/unist": 3.0.3 ccount: 2.0.1 devlop: 1.1.0 mdast-util-from-markdown: 2.0.1 @@ -8113,9 +12004,9 @@ snapshots: mdast-util-mdxjs-esm@2.0.1: dependencies: - '@types/estree-jsx': 1.0.5 - '@types/hast': 3.0.4 - '@types/mdast': 4.0.4 + "@types/estree-jsx": 1.0.5 + "@types/hast": 3.0.4 + "@types/mdast": 4.0.4 devlop: 1.1.0 mdast-util-from-markdown: 2.0.1 mdast-util-to-markdown: 2.1.0 @@ -8124,14 +12015,14 @@ snapshots: mdast-util-phrasing@4.1.0: dependencies: - '@types/mdast': 4.0.4 + "@types/mdast": 4.0.4 unist-util-is: 6.0.0 mdast-util-to-hast@13.2.0: dependencies: - '@types/hast': 3.0.4 - '@types/mdast': 4.0.4 - '@ungap/structured-clone': 1.2.0 + "@types/hast": 3.0.4 + "@types/mdast": 4.0.4 + "@ungap/structured-clone": 1.2.0 devlop: 1.1.0 micromark-util-sanitize-uri: 2.0.0 trim-lines: 3.0.1 @@ -8141,8 +12032,8 @@ snapshots: mdast-util-to-markdown@2.1.0: dependencies: - '@types/mdast': 4.0.4 - '@types/unist': 3.0.3 + "@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 @@ -8152,13 +12043,13 @@ snapshots: mdast-util-to-string@4.0.0: dependencies: - '@types/mdast': 4.0.4 + "@types/mdast": 4.0.4 mdast-util-toc@7.1.0: dependencies: - '@types/mdast': 4.0.4 - '@types/ungap__structured-clone': 1.2.0 - '@ungap/structured-clone': 1.2.0 + "@types/mdast": 4.0.4 + "@types/ungap__structured-clone": 1.2.0 + "@ungap/structured-clone": 1.2.0 github-slugger: 2.0.0 mdast-util-to-string: 4.0.0 unist-util-is: 6.0.0 @@ -8268,7 +12159,7 @@ snapshots: micromark-extension-mdx-expression@3.0.0: dependencies: - '@types/estree': 1.0.6 + "@types/estree": 1.0.6 devlop: 1.1.0 micromark-factory-mdx-expression: 2.0.2 micromark-factory-space: 2.0.0 @@ -8279,8 +12170,8 @@ snapshots: micromark-extension-mdx-jsx@3.0.1: dependencies: - '@types/acorn': 4.0.6 - '@types/estree': 1.0.6 + "@types/acorn": 4.0.6 + "@types/estree": 1.0.6 devlop: 1.1.0 estree-util-is-identifier-name: 3.0.0 micromark-factory-mdx-expression: 2.0.2 @@ -8297,7 +12188,7 @@ snapshots: micromark-extension-mdxjs-esm@3.0.0: dependencies: - '@types/estree': 1.0.6 + "@types/estree": 1.0.6 devlop: 1.1.0 micromark-core-commonmark: 2.0.1 micromark-util-character: 2.1.0 @@ -8333,7 +12224,7 @@ snapshots: micromark-factory-mdx-expression@2.0.2: dependencies: - '@types/estree': 1.0.6 + "@types/estree": 1.0.6 devlop: 1.1.0 micromark-factory-space: 2.0.0 micromark-util-character: 2.1.0 @@ -8397,9 +12288,9 @@ snapshots: micromark-util-events-to-acorn@2.0.2: dependencies: - '@types/acorn': 4.0.6 - '@types/estree': 1.0.6 - '@types/unist': 3.0.3 + "@types/acorn": 4.0.6 + "@types/estree": 1.0.6 + "@types/unist": 3.0.3 devlop: 1.1.0 estree-util-visit: 2.0.0 micromark-util-symbol: 2.0.0 @@ -8435,8 +12326,8 @@ snapshots: micromark@4.0.0: dependencies: - '@types/debug': 4.1.12 - debug: 4.4.0 + "@types/debug": 4.1.12 + debug: 4.4.0(supports-color@9.4.0) decode-named-character-reference: 1.0.2 devlop: 1.1.0 micromark-core-commonmark: 2.0.1 @@ -8482,10 +12373,6 @@ snapshots: dependencies: brace-expansion: 2.0.1 - minimatch@9.0.3: - dependencies: - brace-expansion: 2.0.1 - minimatch@9.0.5: dependencies: brace-expansion: 2.0.1 @@ -8542,20 +12429,20 @@ snapshots: natural-compare@1.4.0: {} - nitropack@2.10.4(typescript@5.6.3): - dependencies: - '@cloudflare/kv-asset-handler': 0.3.4 - '@netlify/functions': 2.8.2 - '@rollup/plugin-alias': 5.1.1(rollup@4.34.8) - '@rollup/plugin-commonjs': 28.0.2(rollup@4.34.8) - '@rollup/plugin-inject': 5.0.5(rollup@4.34.8) - '@rollup/plugin-json': 6.1.0(rollup@4.34.8) - '@rollup/plugin-node-resolve': 15.3.0(rollup@4.34.8) - '@rollup/plugin-replace': 6.0.2(rollup@4.34.8) - '@rollup/plugin-terser': 0.4.4(rollup@4.34.8) - '@rollup/pluginutils': 5.1.4(rollup@4.34.8) - '@types/http-proxy': 1.17.15 - '@vercel/nft': 0.27.10(rollup@4.34.8) + nitropack@2.10.4(typescript@5.8.2): + dependencies: + "@cloudflare/kv-asset-handler": 0.3.4 + "@netlify/functions": 2.8.2 + "@rollup/plugin-alias": 5.1.1(rollup@4.34.8) + "@rollup/plugin-commonjs": 28.0.2(rollup@4.34.8) + "@rollup/plugin-inject": 5.0.5(rollup@4.34.8) + "@rollup/plugin-json": 6.1.0(rollup@4.34.8) + "@rollup/plugin-node-resolve": 15.3.0(rollup@4.34.8) + "@rollup/plugin-replace": 6.0.2(rollup@4.34.8) + "@rollup/plugin-terser": 0.4.4(rollup@4.34.8) + "@rollup/pluginutils": 5.1.4(rollup@4.34.8) + "@types/http-proxy": 1.17.15 + "@vercel/nft": 0.27.10(rollup@4.34.8) archiver: 7.0.1 c12: 2.0.1(magicast@0.3.5) chokidar: 3.6.0 @@ -8591,7 +12478,7 @@ snapshots: node-fetch-native: 1.6.4 ofetch: 1.4.1 ohash: 1.1.4 - openapi-typescript: 7.6.1(typescript@5.6.3) + openapi-typescript: 7.6.1(typescript@5.8.2) pathe: 1.1.2 perfect-debounce: 1.0.0 pkg-types: 1.2.1 @@ -8613,21 +12500,21 @@ snapshots: untyped: 1.5.2 unwasm: 0.3.9 transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@deno/kv' - - '@electric-sql/pglite' - - '@libsql/client' - - '@netlify/blobs' - - '@planetscale/database' - - '@upstash/redis' - - '@vercel/blob' - - '@vercel/kv' + - "@azure/app-configuration" + - "@azure/cosmos" + - "@azure/data-tables" + - "@azure/identity" + - "@azure/keyvault-secrets" + - "@azure/storage-blob" + - "@capacitor/preferences" + - "@deno/kv" + - "@electric-sql/pglite" + - "@libsql/client" + - "@netlify/blobs" + - "@planetscale/database" + - "@upstash/redis" + - "@vercel/blob" + - "@vercel/kv" - aws4fetch - better-sqlite3 - drizzle-orm @@ -8727,8 +12614,8 @@ snapshots: openai@4.67.3(zod@3.23.8): dependencies: - '@types/node': 18.19.55 - '@types/node-fetch': 2.6.11 + "@types/node": 18.19.55 + "@types/node-fetch": 2.6.11 abort-controller: 3.0.0 agentkeepalive: 4.5.0 form-data-encoder: 1.7.2 @@ -8739,14 +12626,14 @@ snapshots: transitivePeerDependencies: - encoding - openapi-typescript@7.6.1(typescript@5.6.3): + openapi-typescript@7.6.1(typescript@5.8.2): dependencies: - '@redocly/openapi-core': 1.30.0(supports-color@9.4.0) + "@redocly/openapi-core": 1.30.0(supports-color@9.4.0) ansi-colors: 4.1.3 change-case: 5.4.4 parse-json: 8.1.0 supports-color: 9.4.0 - typescript: 5.6.3 + typescript: 5.8.2 yargs-parser: 21.1.1 optionator@0.9.4: @@ -8778,7 +12665,7 @@ snapshots: parse-entities@4.0.1: dependencies: - '@types/unist': 2.0.11 + "@types/unist": 2.0.11 character-entities: 2.0.2 character-entities-legacy: 3.0.0 character-reference-invalid: 2.0.1 @@ -8789,7 +12676,7 @@ snapshots: parse-json@8.1.0: dependencies: - '@babel/code-frame': 7.25.7 + "@babel/code-frame": 7.25.7 index-to-position: 0.1.2 type-fest: 4.35.0 @@ -8821,8 +12708,6 @@ snapshots: path-to-regexp@6.3.0: {} - path-type@4.0.0: {} - path-type@5.0.0: {} pathe@1.1.2: {} @@ -8920,7 +12805,7 @@ snapshots: pretty-format@29.7.0: dependencies: - '@jest/schemas': 29.6.3 + "@jest/schemas": 29.6.3 ansi-styles: 5.2.0 react-is: 18.3.1 @@ -9001,7 +12886,7 @@ snapshots: recma-build-jsx@1.0.0: dependencies: - '@types/estree': 1.0.6 + "@types/estree": 1.0.6 estree-util-build-jsx: 3.0.1 vfile: 6.0.3 @@ -9017,14 +12902,14 @@ snapshots: recma-parse@1.0.0: dependencies: - '@types/estree': 1.0.6 + "@types/estree": 1.0.6 esast-util-from-js: 2.0.1 unified: 11.0.5 vfile: 6.0.3 recma-stringify@1.0.0: dependencies: - '@types/estree': 1.0.6 + "@types/estree": 1.0.6 estree-util-to-js: 2.0.0 unified: 11.0.5 vfile: 6.0.3 @@ -9050,34 +12935,34 @@ snapshots: rehype-autolink-headings@7.1.0: dependencies: - '@types/hast': 3.0.4 - '@ungap/structured-clone': 1.2.0 + "@types/hast": 3.0.4 + "@ungap/structured-clone": 1.2.0 hast-util-heading-rank: 3.0.0 hast-util-is-element: 3.0.0 unified: 11.0.5 unist-util-visit: 5.0.0 - rehype-expressive-code@0.37.1: + rehype-expressive-code@0.40.2: dependencies: - expressive-code: 0.37.1 + expressive-code: 0.40.2 rehype-raw@7.0.0: dependencies: - '@types/hast': 3.0.4 + "@types/hast": 3.0.4 hast-util-raw: 9.0.4 vfile: 6.0.3 rehype-recma@1.0.0: dependencies: - '@types/estree': 1.0.6 - '@types/hast': 3.0.4 + "@types/estree": 1.0.6 + "@types/hast": 3.0.4 hast-util-to-estree: 3.1.0 transitivePeerDependencies: - supports-color rehype-slug@6.0.0: dependencies: - '@types/hast': 3.0.4 + "@types/hast": 3.0.4 github-slugger: 2.0.0 hast-util-heading-rank: 3.0.0 hast-util-to-string: 3.0.1 @@ -9085,7 +12970,7 @@ snapshots: remark-directive@3.0.0: dependencies: - '@types/mdast': 4.0.4 + "@types/mdast": 4.0.4 mdast-util-directive: 3.0.0 micromark-extension-directive: 3.0.2 unified: 11.0.5 @@ -9094,7 +12979,7 @@ snapshots: remark-frontmatter@5.0.0: dependencies: - '@types/mdast': 4.0.4 + "@types/mdast": 4.0.4 mdast-util-frontmatter: 2.0.1 micromark-extension-frontmatter: 2.0.0 unified: 11.0.5 @@ -9103,7 +12988,7 @@ snapshots: remark-gfm@4.0.0: dependencies: - '@types/mdast': 4.0.4 + "@types/mdast": 4.0.4 mdast-util-gfm: 3.0.0 micromark-extension-gfm: 3.0.0 remark-parse: 11.0.0 @@ -9114,7 +12999,7 @@ snapshots: remark-mdx-frontmatter@5.0.0: dependencies: - '@types/mdast': 4.0.4 + "@types/mdast": 4.0.4 estree-util-is-identifier-name: 3.0.0 estree-util-value-to-estree: 3.2.1 toml: 3.0.0 @@ -9130,7 +13015,7 @@ snapshots: remark-parse@11.0.0: dependencies: - '@types/mdast': 4.0.4 + "@types/mdast": 4.0.4 mdast-util-from-markdown: 2.0.1 micromark-util-types: 2.0.0 unified: 11.0.5 @@ -9139,15 +13024,15 @@ snapshots: remark-rehype@11.1.1: dependencies: - '@types/hast': 3.0.4 - '@types/mdast': 4.0.4 + "@types/hast": 3.0.4 + "@types/mdast": 4.0.4 mdast-util-to-hast: 13.2.0 unified: 11.0.5 vfile: 6.0.3 remark-stringify@11.0.0: dependencies: - '@types/mdast': 4.0.4 + "@types/mdast": 4.0.4 mdast-util-to-markdown: 2.1.0 unified: 11.0.5 @@ -9161,6 +13046,12 @@ snapshots: resolve-from@5.0.0: {} + resolve@1.22.10: + dependencies: + is-core-module: 2.16.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + resolve@1.22.8: dependencies: is-core-module: 2.15.1 @@ -9169,10 +13060,6 @@ snapshots: reusify@1.0.4: {} - rimraf@3.0.2: - dependencies: - glob: 7.2.3 - rimraf@5.0.10: dependencies: glob: 10.4.5 @@ -9186,29 +13073,58 @@ snapshots: optionalDependencies: rollup: 4.34.8 + rollup@2.79.2: + optionalDependencies: + fsevents: 2.3.3 + rollup@4.34.8: dependencies: - '@types/estree': 1.0.6 + "@types/estree": 1.0.6 + optionalDependencies: + "@rollup/rollup-android-arm-eabi": 4.34.8 + "@rollup/rollup-android-arm64": 4.34.8 + "@rollup/rollup-darwin-arm64": 4.34.8 + "@rollup/rollup-darwin-x64": 4.34.8 + "@rollup/rollup-freebsd-arm64": 4.34.8 + "@rollup/rollup-freebsd-x64": 4.34.8 + "@rollup/rollup-linux-arm-gnueabihf": 4.34.8 + "@rollup/rollup-linux-arm-musleabihf": 4.34.8 + "@rollup/rollup-linux-arm64-gnu": 4.34.8 + "@rollup/rollup-linux-arm64-musl": 4.34.8 + "@rollup/rollup-linux-loongarch64-gnu": 4.34.8 + "@rollup/rollup-linux-powerpc64le-gnu": 4.34.8 + "@rollup/rollup-linux-riscv64-gnu": 4.34.8 + "@rollup/rollup-linux-s390x-gnu": 4.34.8 + "@rollup/rollup-linux-x64-gnu": 4.34.8 + "@rollup/rollup-linux-x64-musl": 4.34.8 + "@rollup/rollup-win32-arm64-msvc": 4.34.8 + "@rollup/rollup-win32-ia32-msvc": 4.34.8 + "@rollup/rollup-win32-x64-msvc": 4.34.8 + fsevents: 2.3.3 + + rollup@4.35.0: + dependencies: + "@types/estree": 1.0.6 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.34.8 - '@rollup/rollup-android-arm64': 4.34.8 - '@rollup/rollup-darwin-arm64': 4.34.8 - '@rollup/rollup-darwin-x64': 4.34.8 - '@rollup/rollup-freebsd-arm64': 4.34.8 - '@rollup/rollup-freebsd-x64': 4.34.8 - '@rollup/rollup-linux-arm-gnueabihf': 4.34.8 - '@rollup/rollup-linux-arm-musleabihf': 4.34.8 - '@rollup/rollup-linux-arm64-gnu': 4.34.8 - '@rollup/rollup-linux-arm64-musl': 4.34.8 - '@rollup/rollup-linux-loongarch64-gnu': 4.34.8 - '@rollup/rollup-linux-powerpc64le-gnu': 4.34.8 - '@rollup/rollup-linux-riscv64-gnu': 4.34.8 - '@rollup/rollup-linux-s390x-gnu': 4.34.8 - '@rollup/rollup-linux-x64-gnu': 4.34.8 - '@rollup/rollup-linux-x64-musl': 4.34.8 - '@rollup/rollup-win32-arm64-msvc': 4.34.8 - '@rollup/rollup-win32-ia32-msvc': 4.34.8 - '@rollup/rollup-win32-x64-msvc': 4.34.8 + "@rollup/rollup-android-arm-eabi": 4.35.0 + "@rollup/rollup-android-arm64": 4.35.0 + "@rollup/rollup-darwin-arm64": 4.35.0 + "@rollup/rollup-darwin-x64": 4.35.0 + "@rollup/rollup-freebsd-arm64": 4.35.0 + "@rollup/rollup-freebsd-x64": 4.35.0 + "@rollup/rollup-linux-arm-gnueabihf": 4.35.0 + "@rollup/rollup-linux-arm-musleabihf": 4.35.0 + "@rollup/rollup-linux-arm64-gnu": 4.35.0 + "@rollup/rollup-linux-arm64-musl": 4.35.0 + "@rollup/rollup-linux-loongarch64-gnu": 4.35.0 + "@rollup/rollup-linux-powerpc64le-gnu": 4.35.0 + "@rollup/rollup-linux-riscv64-gnu": 4.35.0 + "@rollup/rollup-linux-s390x-gnu": 4.35.0 + "@rollup/rollup-linux-x64-gnu": 4.35.0 + "@rollup/rollup-linux-x64-musl": 4.35.0 + "@rollup/rollup-win32-arm64-msvc": 4.35.0 + "@rollup/rollup-win32-ia32-msvc": 4.35.0 + "@rollup/rollup-win32-x64-msvc": 4.35.0 fsevents: 2.3.3 run-parallel@1.2.0: @@ -9234,6 +13150,8 @@ snapshots: semver@7.6.3: {} + semver@7.7.1: {} + send@0.19.0: dependencies: debug: 2.6.9 @@ -9285,31 +13203,31 @@ snapshots: shiki@1.22.0: dependencies: - '@shikijs/core': 1.22.0 - '@shikijs/engine-javascript': 1.22.0 - '@shikijs/engine-oniguruma': 1.22.0 - '@shikijs/types': 1.22.0 - '@shikijs/vscode-textmate': 9.3.0 - '@types/hast': 3.0.4 + "@shikijs/core": 1.22.0 + "@shikijs/engine-javascript": 1.22.0 + "@shikijs/engine-oniguruma": 1.22.0 + "@shikijs/types": 1.22.0 + "@shikijs/vscode-textmate": 9.3.0 + "@types/hast": 3.0.4 shiki@1.29.2: dependencies: - '@shikijs/core': 1.29.2 - '@shikijs/engine-javascript': 1.29.2 - '@shikijs/engine-oniguruma': 1.29.2 - '@shikijs/langs': 1.29.2 - '@shikijs/themes': 1.29.2 - '@shikijs/types': 1.29.2 - '@shikijs/vscode-textmate': 10.0.2 - '@types/hast': 3.0.4 + "@shikijs/core": 1.29.2 + "@shikijs/engine-javascript": 1.29.2 + "@shikijs/engine-oniguruma": 1.29.2 + "@shikijs/langs": 1.29.2 + "@shikijs/themes": 1.29.2 + "@shikijs/types": 1.29.2 + "@shikijs/vscode-textmate": 10.0.2 + "@types/hast": 3.0.4 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.3.7(supports-color@9.4.0) + "@kwsites/file-exists": 1.1.1 + "@kwsites/promise-deferred": 1.1.1 + debug: 4.3.7 transitivePeerDependencies: - supports-color @@ -9317,13 +13235,11 @@ snapshots: sitemap@7.1.2: dependencies: - '@types/node': 17.0.45 - '@types/sax': 1.2.7 + "@types/node": 17.0.45 + "@types/sax": 1.2.7 arg: 5.0.2 sax: 1.4.1 - slash@3.0.0: {} - slash@5.1.0: {} slugify@1.6.6: {} @@ -9342,29 +13258,29 @@ snapshots: solid-list@0.3.0(solid-js@1.9.5): dependencies: - '@corvu/utils': 0.4.2(solid-js@1.9.5) + "@corvu/utils": 0.4.2(solid-js@1.9.5) solid-js: 1.9.5 - solid-mdx@0.0.7(solid-js@1.9.5)(vite@6.1.1(@types/node@22.9.0)(jiti@2.4.2)(terser@5.34.1)(yaml@2.6.0)): + solid-mdx@0.0.7(solid-js@1.9.5)(vite@6.2.1(@types/node@22.9.0)(jiti@2.4.2)(terser@5.34.1)(yaml@2.6.0)): dependencies: solid-js: 1.9.5 - vite: 6.1.1(@types/node@22.9.0)(jiti@2.4.2)(terser@5.34.1)(yaml@2.6.0) + vite: 6.2.1(@types/node@22.9.0)(jiti@2.4.2)(terser@5.34.1)(yaml@2.6.0) solid-presence@0.1.8(solid-js@1.9.5): dependencies: - '@corvu/utils': 0.4.2(solid-js@1.9.5) + "@corvu/utils": 0.4.2(solid-js@1.9.5) solid-js: 1.9.5 solid-prevent-scroll@0.1.10(solid-js@1.9.5): dependencies: - '@corvu/utils': 0.4.2(solid-js@1.9.5) + "@corvu/utils": 0.4.2(solid-js@1.9.5) solid-js: 1.9.5 solid-refresh@0.6.3(solid-js@1.9.5): dependencies: - '@babel/generator': 7.25.7 - '@babel/helper-module-imports': 7.25.7 - '@babel/types': 7.25.8 + "@babel/generator": 7.25.7 + "@babel/helper-module-imports": 7.25.7 + "@babel/types": 7.25.8 solid-js: 1.9.5 transitivePeerDependencies: - supports-color @@ -9451,10 +13367,6 @@ snapshots: dependencies: js-tokens: 9.0.1 - style-to-object@0.3.0: - dependencies: - inline-style-parser: 0.1.1 - style-to-object@0.4.4: dependencies: inline-style-parser: 0.1.1 @@ -9465,7 +13377,7 @@ snapshots: sucrase@3.35.0: dependencies: - '@jridgewell/gen-mapping': 0.3.5 + "@jridgewell/gen-mapping": 0.3.5 commander: 4.1.1 glob: 10.4.5 lines-and-columns: 1.2.4 @@ -9489,7 +13401,7 @@ snapshots: tailwindcss@3.4.14: dependencies: - '@alloc/quick-lru': 5.2.0 + "@alloc/quick-lru": 5.2.0 arg: 5.0.2 chokidar: 3.6.0 didyoumean: 1.2.2 @@ -9531,7 +13443,7 @@ snapshots: tar@7.4.3: dependencies: - '@isaacs/fs-minipass': 4.0.1 + "@isaacs/fs-minipass": 4.0.1 chownr: 3.0.0 minipass: 7.1.2 minizlib: 3.0.1 @@ -9545,7 +13457,7 @@ snapshots: terser@5.34.1: dependencies: - '@jridgewell/source-map': 0.3.6 + "@jridgewell/source-map": 0.3.6 acorn: 8.14.0 commander: 2.20.3 source-map-support: 0.5.21 @@ -9554,8 +13466,6 @@ snapshots: dependencies: b4a: 1.6.7 - text-table@0.2.0: {} - thenify-all@1.6.0: dependencies: thenify: 3.3.1 @@ -9591,25 +13501,33 @@ snapshots: trough@2.2.0: {} - ts-api-utils@1.3.0(typescript@5.6.3): + ts-api-utils@2.0.1(typescript@5.8.2): dependencies: - typescript: 5.6.3 + typescript: 5.8.2 ts-interface-checker@0.1.13: {} tslib@2.8.0: {} + twoslash-protocol@0.2.12: {} + + twoslash@0.2.12(typescript@5.8.2): + dependencies: + "@typescript/vfs": 1.6.1(typescript@5.8.2) + twoslash-protocol: 0.2.12 + typescript: 5.8.2 + transitivePeerDependencies: + - supports-color + type-check@0.4.0: dependencies: prelude-ls: 1.2.1 - type-fest@0.20.2: {} - type-fest@2.19.0: {} type-fest@4.35.0: {} - typescript@5.6.3: {} + typescript@5.8.2: {} ufo@1.5.4: {} @@ -9644,7 +13562,7 @@ snapshots: unified@11.0.5: dependencies: - '@types/unist': 3.0.3 + "@types/unist": 3.0.3 bail: 2.0.2 devlop: 1.1.0 extend: 3.0.2 @@ -9654,7 +13572,7 @@ snapshots: unified@9.2.2: dependencies: - '@types/unist': 2.0.11 + "@types/unist": 2.0.11 bail: 1.0.5 extend: 3.0.2 is-buffer: 2.0.5 @@ -9664,7 +13582,7 @@ snapshots: unimport@3.13.1(rollup@4.34.8): dependencies: - '@rollup/pluginutils': 5.1.4(rollup@4.34.8) + "@rollup/pluginutils": 5.1.4(rollup@4.34.8) acorn: 8.14.0 escape-string-regexp: 5.0.0 estree-walker: 3.0.3 @@ -9700,45 +13618,45 @@ snapshots: unist-builder@4.0.0: dependencies: - '@types/unist': 3.0.3 + "@types/unist": 3.0.3 unist-util-find-after@5.0.0: dependencies: - '@types/unist': 3.0.3 + "@types/unist": 3.0.3 unist-util-is: 6.0.0 unist-util-is@6.0.0: dependencies: - '@types/unist': 3.0.3 + "@types/unist": 3.0.3 unist-util-position-from-estree@2.0.0: dependencies: - '@types/unist': 3.0.3 + "@types/unist": 3.0.3 unist-util-position@5.0.0: dependencies: - '@types/unist': 3.0.3 + "@types/unist": 3.0.3 unist-util-stringify-position@2.0.3: dependencies: - '@types/unist': 2.0.11 + "@types/unist": 2.0.11 unist-util-stringify-position@3.0.3: dependencies: - '@types/unist': 2.0.11 + "@types/unist": 2.0.11 unist-util-stringify-position@4.0.0: dependencies: - '@types/unist': 3.0.3 + "@types/unist": 3.0.3 unist-util-visit-parents@6.0.1: dependencies: - '@types/unist': 3.0.3 + "@types/unist": 3.0.3 unist-util-is: 6.0.0 unist-util-visit@5.0.0: dependencies: - '@types/unist': 3.0.3 + "@types/unist": 3.0.3 unist-util-is: 6.0.0 unist-util-visit-parents: 6.0.1 @@ -9753,21 +13671,21 @@ snapshots: unplugin: 2.2.0 unplugin-utils: 0.2.4 - unplugin-fonts@1.3.1(vite@6.1.1(@types/node@22.9.0)(jiti@2.4.2)(terser@5.34.1)(yaml@2.6.0)): + unplugin-fonts@1.3.1(vite@6.2.1(@types/node@22.9.0)(jiti@2.4.2)(terser@5.34.1)(yaml@2.6.0)): dependencies: fast-glob: 3.3.2 unplugin: 2.0.0-beta.1 - vite: 6.1.1(@types/node@22.9.0)(jiti@2.4.2)(terser@5.34.1)(yaml@2.6.0) + vite: 6.2.1(@types/node@22.9.0)(jiti@2.4.2)(terser@5.34.1)(yaml@2.6.0) unplugin-icons@22.1.0(@vue/compiler-sfc@3.5.12): dependencies: - '@antfu/install-pkg': 1.0.0 - '@iconify/utils': 2.3.0 - debug: 4.4.0 + "@antfu/install-pkg": 1.0.0 + "@iconify/utils": 2.3.0 + debug: 4.4.0(supports-color@9.4.0) local-pkg: 1.1.0 unplugin: 2.2.0 optionalDependencies: - '@vue/compiler-sfc': 3.5.12 + "@vue/compiler-sfc": 3.5.12 transitivePeerDependencies: - supports-color @@ -9813,9 +13731,9 @@ snapshots: untyped@1.5.2: dependencies: - '@babel/core': 7.26.9 - '@babel/standalone': 7.26.9 - '@babel/types': 7.26.9 + "@babel/core": 7.26.9 + "@babel/standalone": 7.26.9 + "@babel/types": 7.26.9 citty: 0.1.6 defu: 6.1.4 jiti: 2.4.2 @@ -9857,50 +13775,50 @@ snapshots: vfile-location@5.0.3: dependencies: - '@types/unist': 3.0.3 + "@types/unist": 3.0.3 vfile: 6.0.3 vfile-message@2.0.4: dependencies: - '@types/unist': 2.0.11 + "@types/unist": 2.0.11 unist-util-stringify-position: 2.0.3 vfile-message@3.1.4: dependencies: - '@types/unist': 2.0.11 + "@types/unist": 2.0.11 unist-util-stringify-position: 3.0.3 vfile-message@4.0.2: dependencies: - '@types/unist': 3.0.3 + "@types/unist": 3.0.3 unist-util-stringify-position: 4.0.0 vfile@4.2.1: dependencies: - '@types/unist': 2.0.11 + "@types/unist": 2.0.11 is-buffer: 2.0.5 unist-util-stringify-position: 2.0.3 vfile-message: 2.0.4 vfile@5.3.7: dependencies: - '@types/unist': 2.0.11 + "@types/unist": 2.0.11 is-buffer: 2.0.5 unist-util-stringify-position: 3.0.3 vfile-message: 3.1.4 vfile@6.0.3: dependencies: - '@types/unist': 3.0.3 + "@types/unist": 3.0.3 vfile-message: 4.0.2 - vinxi@0.5.3(@types/node@22.9.0)(db0@0.2.4)(ioredis@5.4.1)(jiti@2.4.2)(terser@5.34.1)(typescript@5.6.3)(yaml@2.6.0): + vinxi@0.5.3(@types/node@22.9.0)(db0@0.2.4)(ioredis@5.4.1)(jiti@2.4.2)(terser@5.34.1)(typescript@5.8.2)(yaml@2.6.0): dependencies: - '@babel/core': 7.25.8 - '@babel/plugin-syntax-jsx': 7.25.7(@babel/core@7.25.8) - '@babel/plugin-syntax-typescript': 7.25.7(@babel/core@7.25.8) - '@types/micromatch': 4.0.9 - '@vinxi/listhen': 1.5.6 + "@babel/core": 7.25.8 + "@babel/plugin-syntax-jsx": 7.25.7(@babel/core@7.25.8) + "@babel/plugin-syntax-typescript": 7.25.7(@babel/core@7.25.8) + "@types/micromatch": 4.0.9 + "@vinxi/listhen": 1.5.6 boxen: 7.1.1 chokidar: 3.6.0 citty: 0.1.6 @@ -9916,7 +13834,7 @@ snapshots: hookable: 5.5.3 http-proxy: 1.18.1 micromatch: 4.0.8 - nitropack: 2.10.4(typescript@5.6.3) + nitropack: 2.10.4(typescript@5.8.2) node-fetch-native: 1.6.4 path-to-regexp: 6.3.0 pathe: 1.1.2 @@ -9928,25 +13846,25 @@ snapshots: unctx: 2.3.1 unenv: 1.10.0 unstorage: 1.15.0(db0@0.2.4)(ioredis@5.4.1) - vite: 6.1.1(@types/node@22.9.0)(jiti@2.4.2)(terser@5.34.1)(yaml@2.6.0) + vite: 6.2.1(@types/node@22.9.0)(jiti@2.4.2)(terser@5.34.1)(yaml@2.6.0) zod: 3.23.8 transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@deno/kv' - - '@electric-sql/pglite' - - '@libsql/client' - - '@netlify/blobs' - - '@planetscale/database' - - '@types/node' - - '@upstash/redis' - - '@vercel/blob' - - '@vercel/kv' + - "@azure/app-configuration" + - "@azure/cosmos" + - "@azure/data-tables" + - "@azure/identity" + - "@azure/keyvault-secrets" + - "@azure/storage-blob" + - "@capacitor/preferences" + - "@deno/kv" + - "@electric-sql/pglite" + - "@libsql/client" + - "@netlify/blobs" + - "@planetscale/database" + - "@types/node" + - "@upstash/redis" + - "@vercel/blob" + - "@vercel/kv" - aws4fetch - better-sqlite3 - db0 @@ -9973,44 +13891,52 @@ snapshots: - xml2js - yaml - vite-plugin-solid@2.11.2(solid-js@1.9.5)(vite@6.1.1(@types/node@22.9.0)(jiti@2.4.2)(terser@5.34.1)(yaml@2.6.0)): + vite-plugin-eslint@1.8.1(eslint@9.22.0(jiti@2.4.2))(vite@6.2.1(@types/node@22.9.0)(jiti@2.4.2)(terser@5.34.1)(yaml@2.6.0)): dependencies: - '@babel/core': 7.25.8 - '@types/babel__core': 7.20.5 + "@rollup/pluginutils": 4.2.1 + "@types/eslint": 8.56.12 + eslint: 9.22.0(jiti@2.4.2) + rollup: 2.79.2 + vite: 6.2.1(@types/node@22.9.0)(jiti@2.4.2)(terser@5.34.1)(yaml@2.6.0) + + vite-plugin-solid@2.11.2(solid-js@1.9.5)(vite@6.2.1(@types/node@22.9.0)(jiti@2.4.2)(terser@5.34.1)(yaml@2.6.0)): + dependencies: + "@babel/core": 7.25.8 + "@types/babel__core": 7.20.5 babel-preset-solid: 1.9.2(@babel/core@7.25.8) merge-anything: 5.1.7 solid-js: 1.9.5 solid-refresh: 0.6.3(solid-js@1.9.5) - vite: 6.1.1(@types/node@22.9.0)(jiti@2.4.2)(terser@5.34.1)(yaml@2.6.0) - vitefu: 1.0.5(vite@6.1.1(@types/node@22.9.0)(jiti@2.4.2)(terser@5.34.1)(yaml@2.6.0)) + vite: 6.2.1(@types/node@22.9.0)(jiti@2.4.2)(terser@5.34.1)(yaml@2.6.0) + vitefu: 1.0.5(vite@6.2.1(@types/node@22.9.0)(jiti@2.4.2)(terser@5.34.1)(yaml@2.6.0)) transitivePeerDependencies: - supports-color - vite@6.1.1(@types/node@22.9.0)(jiti@2.4.2)(terser@5.34.1)(yaml@2.6.0): + vite@6.2.1(@types/node@22.9.0)(jiti@2.4.2)(terser@5.34.1)(yaml@2.6.0): dependencies: - esbuild: 0.24.2 + esbuild: 0.25.0 postcss: 8.5.3 - rollup: 4.34.8 + rollup: 4.35.0 optionalDependencies: - '@types/node': 22.9.0 + "@types/node": 22.9.0 fsevents: 2.3.3 jiti: 2.4.2 terser: 5.34.1 yaml: 2.6.0 - vitefu@1.0.5(vite@6.1.1(@types/node@22.9.0)(jiti@2.4.2)(terser@5.34.1)(yaml@2.6.0)): + vitefu@1.0.5(vite@6.2.1(@types/node@22.9.0)(jiti@2.4.2)(terser@5.34.1)(yaml@2.6.0)): optionalDependencies: - vite: 6.1.1(@types/node@22.9.0)(jiti@2.4.2)(terser@5.34.1)(yaml@2.6.0) + vite: 6.2.1(@types/node@22.9.0)(jiti@2.4.2)(terser@5.34.1)(yaml@2.6.0) - vue@3.5.12(typescript@5.6.3): + vue@3.5.12(typescript@5.8.2): dependencies: - '@vue/compiler-dom': 3.5.12 - '@vue/compiler-sfc': 3.5.12 - '@vue/runtime-dom': 3.5.12 - '@vue/server-renderer': 3.5.12(vue@3.5.12(typescript@5.6.3)) - '@vue/shared': 3.5.12 + "@vue/compiler-dom": 3.5.12 + "@vue/compiler-sfc": 3.5.12 + "@vue/runtime-dom": 3.5.12 + "@vue/server-renderer": 3.5.12(vue@3.5.12(typescript@5.8.2)) + "@vue/shared": 3.5.12 optionalDependencies: - typescript: 5.6.3 + typescript: 5.8.2 web-namespaces@2.0.1: {} diff --git a/scripts/collections/build-file-tree.mjs b/scripts/collections/build-file-tree.mjs index 627fb0beb8..99015719c0 100644 --- a/scripts/collections/build-file-tree.mjs +++ b/scripts/collections/build-file-tree.mjs @@ -3,6 +3,7 @@ import matter from "gray-matter"; import fs from "fs/promises"; import { getDirData } from "./utils/get-dir-data.mjs"; import { COLLECTIONS_ROOT } from "./index.mjs"; +import { cwd } from "process"; /** * @@ -10,7 +11,7 @@ import { COLLECTIONS_ROOT } from "./index.mjs"; * @returns */ export async function buildFileTree(entry = COLLECTIONS_ROOT) { - const entryPath = path.resolve(process.cwd(), entry); + const entryPath = path.resolve(cwd(), entry); const parentSegment = path.parse(entryPath).dir; try { const stats = await fs.stat(entryPath); @@ -56,7 +57,8 @@ export async function buildFileTree(entry = COLLECTIONS_ROOT) { path: "/" + path - .relative(path.join(process.cwd(), COLLECTIONS_ROOT), entryPath) + .relative(path.join(cwd(), COLLECTIONS_ROOT), entryPath) + // eslint-disable-next-line .replace(/\index\.mdx?/, "") .replace(/\.mdx?/, ""), slug: path.basename(entryPath, path.extname(entryPath)), diff --git a/scripts/collections/utils/create-dir.mjs b/scripts/collections/utils/create-dir.mjs index 177f55cca5..8ac08d0e54 100644 --- a/scripts/collections/utils/create-dir.mjs +++ b/scripts/collections/utils/create-dir.mjs @@ -1,11 +1,12 @@ import { existsSync } from "fs"; import fs from "fs/promises"; import path from "path"; +import { cwd } from "process"; export async function createSolidCollectionDir() { - const collectionDir = path.resolve(process.cwd(), ".solid"); + const collectionDir = path.resolve(cwd(), ".solid"); if (!existsSync(collectionDir)) { - fs.mkdir(path.resolve(process.cwd(), ".solid")); + fs.mkdir(path.resolve(cwd(), ".solid")); } } diff --git a/scripts/collections/utils/get-dir-data.mjs b/scripts/collections/utils/get-dir-data.mjs index a479dc3b84..8493e2bec0 100644 --- a/scripts/collections/utils/get-dir-data.mjs +++ b/scripts/collections/utils/get-dir-data.mjs @@ -2,6 +2,7 @@ import fs from "fs/promises"; import path from "path"; import { sectionData } from "../schemas.mjs"; import { languages } from "../index.mjs"; +import { cwd } from "process"; /** * @@ -17,7 +18,7 @@ function formatDirPath(path) { return path; } -export async function getDirData(dirPath = process.cwd()) { +export async function getDirData(dirPath = cwd()) { const dir = formatDirPath(dirPath); try { const data = JSON.parse( diff --git a/scripts/create-i18n-entries.mjs b/scripts/create-i18n-entries.mjs index 640a80238c..2f4802d071 100644 --- a/scripts/create-i18n-entries.mjs +++ b/scripts/create-i18n-entries.mjs @@ -2,6 +2,8 @@ import { existsSync } from "fs"; import path from "path"; import { COLLECTIONS_ROOT } from "./collections/index.mjs"; import { getFrontMatterData } from "./collections/utils/get-frontmatter.mjs"; +import { cwd } from "process"; + /** * @typedef {Object} DocsEntry * @property {string} type - The type of reference. @@ -32,7 +34,7 @@ async function buildSectionList(entryList = [], locale, project = "") { ? entry.path + "index" : entry.path; const i18nEntryPath = path.join( - process.cwd(), + cwd(), COLLECTIONS_ROOT, project, locale, diff --git a/scripts/create-i18n-tree.mjs b/scripts/create-i18n-tree.mjs index d3d3c43c2f..7491910655 100644 --- a/scripts/create-i18n-tree.mjs +++ b/scripts/create-i18n-tree.mjs @@ -2,6 +2,7 @@ import { existsSync } from "fs"; import path from "path"; import { COLLECTIONS_ROOT } from "./collections/index.mjs"; import { getFrontMatterData } from "./collections/utils/get-frontmatter.mjs"; +import { cwd } from "process"; /** * @typedef {Object} Leaf @@ -31,6 +32,8 @@ import { getFrontMatterData } from "./collections/utils/get-frontmatter.mjs"; * * @param {Branch["children"]} children */ + +// eslint-disable-next-line function traverseTree(children) { for (const child of children) { if (child.type === "section") { @@ -62,7 +65,7 @@ export async function createI18nTree(entryList, locale, project = "") { }); } else { const i18nEntryPath = path.join( - process.cwd(), + cwd(), COLLECTIONS_ROOT, project, locale, diff --git a/scripts/sync-orama.mjs b/scripts/sync-orama.mjs index 8d72936d4f..2a8b87dfb0 100644 --- a/scripts/sync-orama.mjs +++ b/scripts/sync-orama.mjs @@ -2,9 +2,10 @@ import { readFileSync } from "node:fs"; import { globSync } from "glob"; import { generalPurposeCrawler } from "@orama/crawly"; import "dotenv/config"; +import { env } from "process"; -const ORAMA_PRIVATE_API_KEY = process.env.ORAMA_PRIVATE_API_KEY; -const ORAMA_PRIVATE_INDEX_ID = process.env.ORAMA_PRIVATE_INDEX_ID; +const ORAMA_PRIVATE_API_KEY = env.ORAMA_PRIVATE_API_KEY; +const ORAMA_PRIVATE_INDEX_ID = env.ORAMA_PRIVATE_INDEX_ID; const baseURL = new URL("../dist", import.meta.url).pathname; const HTMLFiles = globSync("**/*.html", { cwd: baseURL }); diff --git a/src/middleware/legacy-routes-redirect.ts b/src/middleware/legacy-routes-redirect.ts index 73fcfffe2e..fff1e46a77 100644 --- a/src/middleware/legacy-routes-redirect.ts +++ b/src/middleware/legacy-routes-redirect.ts @@ -6,87 +6,152 @@ import { type FetchEvent } from "@solidjs/start/server"; * {origin: destination} */ const LEGACY_ROUTES = { - // api reference - "/references/api-reference/basic-reactivity/createEffect": "/reference/basic-reactivity/create-effect", - "/references/api-reference/basic-reactivity/createMemo": "/reference/basic-reactivity/create-memo", - "/references/api-reference/basic-reactivity/createResource": "/reference/basic-reactivity/create-resource", - "/references/api-reference/basic-reactivity/createSignal": "/reference/basic-reactivity/create-signal", - "/references/api-reference/component-apis/children": "/reference/component-apis/children", - "/references/api-reference/component-apis/createContext": "/reference/component-apis/create-context", - "/references/api-reference/component-apis/createUniqueId": "/reference/component-apis/create-unique-id", - "/references/api-reference/component-apis/lazy": "/reference/component-apis/lazy", - "/references/api-reference/component-apis/useContext": "/reference/component-apis/use-context", - "/references/api-reference/control-flow/Dynamic": "/reference/components/dynamic", - "/references/api-reference/control-flow/ErrorBoundary": "/reference/components/error-boundary", + "/references/api-reference/basic-reactivity/createEffect": + "/reference/basic-reactivity/create-effect", + "/references/api-reference/basic-reactivity/createMemo": + "/reference/basic-reactivity/create-memo", + "/references/api-reference/basic-reactivity/createResource": + "/reference/basic-reactivity/create-resource", + "/references/api-reference/basic-reactivity/createSignal": + "/reference/basic-reactivity/create-signal", + "/references/api-reference/component-apis/children": + "/reference/component-apis/children", + "/references/api-reference/component-apis/createContext": + "/reference/component-apis/create-context", + "/references/api-reference/component-apis/createUniqueId": + "/reference/component-apis/create-unique-id", + "/references/api-reference/component-apis/lazy": + "/reference/component-apis/lazy", + "/references/api-reference/component-apis/useContext": + "/reference/component-apis/use-context", + "/references/api-reference/control-flow/Dynamic": + "/reference/components/dynamic", + "/references/api-reference/control-flow/ErrorBoundary": + "/reference/components/error-boundary", "/references/api-reference/control-flow/For": "/reference/components/for", - "/references/api-reference/control-flow/Index": "/reference/components/index-component", - "/references/api-reference/control-flow/Portal": "/reference/components/portal", + "/references/api-reference/control-flow/Index": + "/reference/components/index-component", + "/references/api-reference/control-flow/Portal": + "/reference/components/portal", "/references/api-reference/control-flow/Show": "/reference/components/show", - "/references/api-reference/control-flow/Suspense": "/reference/components/suspense", - "/references/api-reference/control-flow/SuspenseList": "/reference/components/suspense-list", - "/references/api-reference/control-flow/Switch-and-Match": "/reference/components/switch-and-match", - "/references/api-reference/lifecycles/onCleanup": "/reference/lifecycle/on-cleanup", - "/references/api-reference/lifecycles/onError": "/reference/reactive-utilities/catch-error", - "/references/api-reference/lifecycles/onMount": "/reference/lifecycle/on-mount", - "/references/api-reference/reactive-utilities/batch": "/reference/reactive-utilities/batch", - "/references/api-reference/reactive-utilities/catchError": "/reference/reactive-utilities/catch-error", - "/references/api-reference/reactive-utilities/createRoot": "/reference/reactive-utilities/create-root", - "/references/api-reference/reactive-utilities/from": "/reference/reactive-utilities/from", - "/references/api-reference/reactive-utilities/getOwner": "/reference/reactive-utilities/get-owner", - "/references/api-reference/reactive-utilities/indexArray": "/reference/reactive-utilities/index-array", - "/references/api-reference/reactive-utilities/mapArray": "/reference/reactive-utilities/map-array", - "/references/api-reference/reactive-utilities/mergeProps": "/reference/reactive-utilities/merge-props", - "/references/api-reference/reactive-utilities/observable": "/reference/reactive-utilities/observable", - "/references/api-reference/reactive-utilities/on": "/reference/reactive-utilities/on", - "/references/api-reference/reactive-utilities/regularstartTransition": "/reference/reactive-utilities/start-transition", - "/references/api-reference/reactive-utilities/runWithOwner": "/reference/reactive-utilities/run-with-owner", - "/references/api-reference/reactive-utilities/splitProps": "/reference/reactive-utilities/split-props", - "/references/api-reference/reactive-utilities/untrack": "/reference/reactive-utilities/untrack", - "/references/api-reference/reactive-utilities/useTransition": "/reference/reactive-utilities/use-transition", + "/references/api-reference/control-flow/Suspense": + "/reference/components/suspense", + "/references/api-reference/control-flow/SuspenseList": + "/reference/components/suspense-list", + "/references/api-reference/control-flow/Switch-and-Match": + "/reference/components/switch-and-match", + "/references/api-reference/lifecycles/onCleanup": + "/reference/lifecycle/on-cleanup", + "/references/api-reference/lifecycles/onError": + "/reference/reactive-utilities/catch-error", + "/references/api-reference/lifecycles/onMount": + "/reference/lifecycle/on-mount", + "/references/api-reference/reactive-utilities/batch": + "/reference/reactive-utilities/batch", + "/references/api-reference/reactive-utilities/catchError": + "/reference/reactive-utilities/catch-error", + "/references/api-reference/reactive-utilities/createRoot": + "/reference/reactive-utilities/create-root", + "/references/api-reference/reactive-utilities/from": + "/reference/reactive-utilities/from", + "/references/api-reference/reactive-utilities/getOwner": + "/reference/reactive-utilities/get-owner", + "/references/api-reference/reactive-utilities/indexArray": + "/reference/reactive-utilities/index-array", + "/references/api-reference/reactive-utilities/mapArray": + "/reference/reactive-utilities/map-array", + "/references/api-reference/reactive-utilities/mergeProps": + "/reference/reactive-utilities/merge-props", + "/references/api-reference/reactive-utilities/observable": + "/reference/reactive-utilities/observable", + "/references/api-reference/reactive-utilities/on": + "/reference/reactive-utilities/on", + "/references/api-reference/reactive-utilities/regularstartTransition": + "/reference/reactive-utilities/start-transition", + "/references/api-reference/reactive-utilities/runWithOwner": + "/reference/reactive-utilities/run-with-owner", + "/references/api-reference/reactive-utilities/splitProps": + "/reference/reactive-utilities/split-props", + "/references/api-reference/reactive-utilities/untrack": + "/reference/reactive-utilities/untrack", + "/references/api-reference/reactive-utilities/useTransition": + "/reference/reactive-utilities/use-transition", "/references/api-reference/rendering/DEV": "/reference/rendering/dev", "/references/api-reference/rendering/hydrate": "/reference/rendering/hydrate", - "/references/api-reference/rendering/HydrationScript": "/reference/rendering/hydration-script", - "/references/api-reference/rendering/isServer": "/reference/rendering/is-server", + "/references/api-reference/rendering/HydrationScript": + "/reference/rendering/hydration-script", + "/references/api-reference/rendering/isServer": + "/reference/rendering/is-server", "/references/api-reference/rendering/render": "/reference/rendering/render", - "/references/api-reference/rendering/renderToStream": "/reference/rendering/render-to-stream", - "/references/api-reference/rendering/renderToString": "/reference/rendering/render-to-string", - "/references/api-reference/rendering/renderToStringAsync": "/reference/rendering/render-to-string-async", - "/references/api-reference/secondary-primitives/createComputed": "/reference/secondary-primitives/create-computed", - "/references/api-reference/secondary-primitives/createDeferred": "/reference/secondary-primitives/create-deferred", - "/references/api-reference/secondary-primitives/createReaction": "/reference/secondary-primitives/create-reaction", - "/references/api-reference/secondary-primitives/createRenderEffect": "/reference/secondary-primitives/create-render-effect", - "/references/api-reference/secondary-primitives/createSelector": "/reference/secondary-primitives/create-selector", - "/references/api-reference/special-jsx-attributes/attr_": "/reference/jsx-attributes/attr", - "/references/api-reference/special-jsx-attributes/classList": "/reference/jsx-attributes/classlist", - "/references/api-reference/special-jsx-attributes/innerHTML-or-textContent": "/reference/jsx-attributes/innerhtml", - "/references/api-reference/special-jsx-attributes/on_": "/reference/jsx-attributes/on_", - "/references/api-reference/special-jsx-attributes/on_-and-oncapture_": "/reference/jsx-attributes/on", + "/references/api-reference/rendering/renderToStream": + "/reference/rendering/render-to-stream", + "/references/api-reference/rendering/renderToString": + "/reference/rendering/render-to-string", + "/references/api-reference/rendering/renderToStringAsync": + "/reference/rendering/render-to-string-async", + "/references/api-reference/secondary-primitives/createComputed": + "/reference/secondary-primitives/create-computed", + "/references/api-reference/secondary-primitives/createDeferred": + "/reference/secondary-primitives/create-deferred", + "/references/api-reference/secondary-primitives/createReaction": + "/reference/secondary-primitives/create-reaction", + "/references/api-reference/secondary-primitives/createRenderEffect": + "/reference/secondary-primitives/create-render-effect", + "/references/api-reference/secondary-primitives/createSelector": + "/reference/secondary-primitives/create-selector", + "/references/api-reference/special-jsx-attributes/attr_": + "/reference/jsx-attributes/attr", + "/references/api-reference/special-jsx-attributes/classList": + "/reference/jsx-attributes/classlist", + "/references/api-reference/special-jsx-attributes/innerHTML-or-textContent": + "/reference/jsx-attributes/innerhtml", + "/references/api-reference/special-jsx-attributes/on_": + "/reference/jsx-attributes/on_", + "/references/api-reference/special-jsx-attributes/on_-and-oncapture_": + "/reference/jsx-attributes/on", - "/references/api-reference/special-jsx-attributes/once": "/reference/jsx-attributes/once", - "/references/api-reference/special-jsx-attributes/prop_": "/reference/jsx-attributes/prop", - "/references/api-reference/special-jsx-attributes/ref": "/reference/jsx-attributes/ref", - "/references/api-reference/special-jsx-attributes/style": "/reference/jsx-attributes/style", - "/references/api-reference/special-jsx-attributes/use_": "/reference/jsx-attributes/use", - "/references/api-reference/stores/store-utilities": "/concepts/stores#store-utilities", + "/references/api-reference/special-jsx-attributes/once": + "/reference/jsx-attributes/once", + "/references/api-reference/special-jsx-attributes/prop_": + "/reference/jsx-attributes/prop", + "/references/api-reference/special-jsx-attributes/ref": + "/reference/jsx-attributes/ref", + "/references/api-reference/special-jsx-attributes/style": + "/reference/jsx-attributes/style", + "/references/api-reference/special-jsx-attributes/use_": + "/reference/jsx-attributes/use", + "/references/api-reference/stores/store-utilities": + "/concepts/stores#store-utilities", "/references/api-reference/stores/using-stores": "/concepts/stores", // deployment "/guides/how-to-guides/deployment": "/guides/deploying-your-app", - "/guides/how-to-guides/deployment/deploying-to-cloudflare": "/guides/deployment-options/cloudflare", - "/guides/how-to-guides/deployment/deploying-to-firebase": "/guides/deployment-options/firebase", - "/guides/how-to-guides/deployment/deploying-to-flightcontrol": "/guides/deployment-options/aws-via-flightcontrol", - "/guides/how-to-guides/deployment/deploying-to-netlify": "/guides/deployment-options/netlify", - "/guides/how-to-guides/deployment/deploying-to-railway": "/guides/deployment-options/railway", - "/guides/how-to-guides/deployment/deploying-to-vercel": "/guides/deployment-options/vercel", + "/guides/how-to-guides/deployment/deploying-to-cloudflare": + "/guides/deployment-options/cloudflare", + "/guides/how-to-guides/deployment/deploying-to-firebase": + "/guides/deployment-options/firebase", + "/guides/how-to-guides/deployment/deploying-to-flightcontrol": + "/guides/deployment-options/aws-via-flightcontrol", + "/guides/how-to-guides/deployment/deploying-to-netlify": + "/guides/deployment-options/netlify", + "/guides/how-to-guides/deployment/deploying-to-railway": + "/guides/deployment-options/railway", + "/guides/how-to-guides/deployment/deploying-to-vercel": + "/guides/deployment-options/vercel", // styling "/guides/how-to-guides/styling-in-solid": "/guides/styling-your-components", - "/guides/how-to-guides/styling-in-solid/sass": "/guides/styling-components/sass", - "/guides/how-to-guides/styling-in-solid/less": "/guides/styling-components/less", - "/guides/how-to-guides/styling-in-solid/tailwind-css": "/guides/styling-components/tailwind", - "/guides/how-to-guides/styling-in-solid/css-modules": "/guides/styling-components/css-modules", - "/guides/how-to-guides/styling-in-solid/unocss": "/guides/styling-components/uno", + "/guides/how-to-guides/styling-in-solid/sass": + "/guides/styling-components/sass", + "/guides/how-to-guides/styling-in-solid/less": + "/guides/styling-components/less", + "/guides/how-to-guides/styling-in-solid/tailwind-css": + "/guides/styling-components/tailwind", + "/guides/how-to-guides/styling-in-solid/css-modules": + "/guides/styling-components/css-modules", + "/guides/how-to-guides/styling-in-solid/unocss": + "/guides/styling-components/uno", // trailing slash removal "/routing/migration/": "/routing/migration", @@ -97,17 +162,21 @@ const LEGACY_ROUTES = { "/guides/foundations/typescript-for-solid": "/configuration/typescript", "/guides/foundations/understanding-components": "/concepts/components/basics", "/guides/foundations/why-solid": "/#advantages-of-using-solid", - "/guides/how-to-guides/routing-in-solid/solid-router": "/routing/installation-and-setup", - "/guides/tutorials/getting-started-with-solid/installing-solid": "/quick-start", + "/guides/how-to-guides/routing-in-solid/solid-router": + "/routing/installation-and-setup", + "/guides/tutorials/getting-started-with-solid/installing-solid": + "/quick-start", "/references/concepts/reactivity": "/concepts/intro-to-reactivity", - "/references/concepts/reactivity/tracking": "/concepts/intro-to-reactivity#subscribers", + "/references/concepts/reactivity/tracking": + "/concepts/intro-to-reactivity#subscribers", "/references/concepts/ssr/async-ssr": "/guides/fetching-data", - "/references/concepts/ssr/simple-client-fetching-ssr": "/guides/fetching-data", - "/references/concepts/state-management/context": "/guides/complex-state-management#state-sharing", + "/references/concepts/ssr/simple-client-fetching-ssr": + "/guides/fetching-data", + "/references/concepts/state-management/context": + "/guides/complex-state-management#state-sharing", // solid-docs-next moves/new location for old pages/solid api updates "/reference/jsx-attributes/on-and-oncapture": "/reference/jsx-attributes/on", - } as const; function isLegacyRoute(path: string): path is keyof typeof LEGACY_ROUTES { diff --git a/src/routes/concepts/components/class-style.mdx b/src/routes/concepts/components/class-style.mdx index d71c419b1d..4d303fa34d 100644 --- a/src/routes/concepts/components/class-style.mdx +++ b/src/routes/concepts/components/class-style.mdx @@ -85,7 +85,7 @@ When the value is `true`, the class is applied; when `false`, it is removed. const [current, setCurrent] = createSignal("foo"); - - - ); + return ( + <> +
{count()}
+ + + + ); + }; -``` + +```` @@ -251,32 +251,32 @@ function Child() { return
{value}
; } -``` +```` ## Common issues with `createContext` and `useContext` If no default value is passed to `createContext`, it is possible for `useContext` to return `undefined`. -Read more about default values in the [`createContext`](/reference/component-apis/create-context) entry. + Read more about default values in the + [`createContext`](/reference/component-apis/create-context) entry. Because of this, if an initial value was not passed to `createContext`, the TS type signature of `useContext` will indicate that -the value returned might be `undefined` (as mentioned above). -This can be quite annoying when you want to use the context inside a component, and particularly when immediately destructuring the context. +the value returned might be `undefined` (as mentioned above). +This can be quite annoying when you want to use the context inside a component, and particularly when immediately destructuring the context. Additionally, if you use `useContext` and it returns `undefined` (which is often, but not always, the result of a bug), the error message thrown at runtime can be confusing. -The most common solution for it is to wrap all uses of `useContext` in a function that will explicitly throw a helpful error if the context is `undefined`. -This also serves to narrow the type returned, so TS doesn't complain. +The most common solution for it is to wrap all uses of `useContext` in a function that will explicitly throw a helpful error if the context is `undefined`. +This also serves to narrow the type returned, so TS doesn't complain. As an example: ```ts title="/context/counter-component.tsx" function useCounterContext() { - const context = useContext(CounterContext) + const context = useContext(CounterContext); if (!context) { - throw new Error("can't find CounterContext") + throw new Error("can't find CounterContext"); } - return context + return context; } ``` - diff --git a/src/routes/concepts/control-flow/conditional-rendering.mdx b/src/routes/concepts/control-flow/conditional-rendering.mdx index eecbdfe141..ca7304395a 100644 --- a/src/routes/concepts/control-flow/conditional-rendering.mdx +++ b/src/routes/concepts/control-flow/conditional-rendering.mdx @@ -18,38 +18,37 @@ When there is a change in the state or props it depends on, this property is re- This property can be a boolean value, or a function that returns a boolean value. ```jsx -import { Show } from "solid-js" +import { Show } from "solid-js"; -
Loading...
-
+
Loading...
+; ``` `` has the `fallback` property that can be used to specify the content to be rendered when the condition evaluates to false. This property can return a JSX element. ```jsx -import { Show } from "solid-js" +import { Show } from "solid-js"; Loading...}>

Hi, I am {data().name}.

-
+
; ``` If there are multiple conditions that need to be handled, `` can be nested to handle each condition. ```jsx -import { Show } from "solid-js" +import { Show } from "solid-js"; -
Loading...
- -
Error: {data.error}
-
-
+
Loading...
+ +
Error: {data.error}
+
+
; ``` - ## Switch and Match When there are multiple conditions that need to be handled, it can be difficult to manage the logic flow with nested `` components. @@ -59,23 +58,23 @@ Similar to JavaScript's [switch/case](https://developer.mozilla.org/en-US/docs/W The first `` component that evaluates to true will have its children rendered, and the rest will be ignored. ```jsx -import { Switch, Match } from "solid-js" +import { Switch, Match } from "solid-js"; - -

Outcome 1

-
- -

Outcome 2

-
-
+ +

Outcome 1

+
+ +

Outcome 2

+
+; ``` Similar to ``, each `` component has a `when` property that is used to determine whether or not to render its children. An optional `fallback` property can also be passed to `` to specify the content be rendered when none of the `` components evaluate to true. ```jsx -import { Switch, Match } from "solid-js" +import { Switch, Match } from "solid-js"; Fallback content

}> @@ -84,5 +83,5 @@ import { Switch, Match } from "solid-js"

Outcome 2

-
+
; ``` diff --git a/src/routes/concepts/control-flow/data.json b/src/routes/concepts/control-flow/data.json index 3b874c4f05..e8261711d7 100644 --- a/src/routes/concepts/control-flow/data.json +++ b/src/routes/concepts/control-flow/data.json @@ -2,9 +2,9 @@ "title": "Control flow", "pages": [ "conditional-rendering.mdx", - "dynamic.mdx", - "list-rendering.mdx", - "portal.mdx", - "error-boundary.mdx" + "dynamic.mdx", + "list-rendering.mdx", + "portal.mdx", + "error-boundary.mdx" ] } diff --git a/src/routes/concepts/control-flow/dynamic.mdx b/src/routes/concepts/control-flow/dynamic.mdx index 671eda05b1..e3f50281aa 100644 --- a/src/routes/concepts/control-flow/dynamic.mdx +++ b/src/routes/concepts/control-flow/dynamic.mdx @@ -7,21 +7,21 @@ order: 2 By passing either a string representing a [native HTML element](https://developer.mozilla.org/en-US/docs/Web/HTML/Element) or a component function to the `component` prop, you can render the chosen component with the remaining props you provide. ```jsx -import { createSignal, For } from "solid-js" -import { Dynamic } from "solid-js/web" +import { createSignal, For } from "solid-js"; +import { Dynamic } from "solid-js/web"; -const RedDiv = () =>
Red
-const GreenDiv = () =>
Green
-const BlueDiv = () =>
Blue
+const RedDiv = () =>
Red
; +const GreenDiv = () =>
Green
; +const BlueDiv = () =>
Blue
; const options = { red: RedDiv, green: GreenDiv, blue: BlueDiv, -} +}; function App() { - const [selected, setSelected] = createSignal("red") + const [selected, setSelected] = createSignal("red"); return ( <> @@ -30,12 +30,12 @@ function App() { onInput={(e) => setSelected(e.currentTarget.value)} > - {(color) => } + {(color) => } - ) + ); } ``` @@ -46,20 +46,20 @@ Once a color is selected, the `` component will render the chosen color For example, the following code renders the same result as the previous example: ```jsx -import { createSignal, Switch, Match, For } from "solid-js" +import { createSignal, Switch, Match, For } from "solid-js"; -const RedDiv = () =>
Red
-const GreenDiv = () =>
Green
-const BlueDiv = () =>
Blue
+const RedDiv = () =>
Red
; +const GreenDiv = () =>
Green
; +const BlueDiv = () =>
Blue
; const options = { red: RedDiv, green: GreenDiv, blue: BlueDiv, -} +}; function App() { - const [selected, setSelected] = createSignal("red") + const [selected, setSelected] = createSignal("red"); return ( <> @@ -68,7 +68,7 @@ function App() { onInput={(e) => setSelected(e.currentTarget.value)} > - {(color) => } + {(color) => } }> @@ -80,7 +80,7 @@ function App() {
- ) + ); } ``` @@ -92,11 +92,9 @@ When working with these components, you can pass [props](/concepts/components/pr This makes them available to the component you are rendering, similar to how you would pass props to components in JSX. ```jsx -import { Dynamic } from "solid-js/web" +import { Dynamic } from "solid-js/web"; function App() { - return ( - - ) + return ; } ``` diff --git a/src/routes/concepts/control-flow/list-rendering.mdx b/src/routes/concepts/control-flow/list-rendering.mdx index 3227d985b8..fc0986f636 100644 --- a/src/routes/concepts/control-flow/list-rendering.mdx +++ b/src/routes/concepts/control-flow/list-rendering.mdx @@ -30,18 +30,19 @@ Between the `` tags, the component requires a [callback function](https://d This structure resembles the callback used within JavaScript's [`map`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map) method, providing a familiar pattern to follow. The function receives two arguments: + - `item`: represents the current item in the data collection that is being rendered over. - `index`: the current item's index within the collection. You can access the current `item` and `index` to dynamically set attributes or content of the JSX elements. -Index is a [*signal*](/concepts/signals) and must be called as a function to retrieve its value. +Index is a [_signal_](/concepts/signals) and must be called as a function to retrieve its value. ```jsx {(item, index) => (
  • {item.name} @@ -72,7 +73,7 @@ This is because `` is more concerned with the **index** of the elements i Because of this, the `item` is a signal, allowing the _content_ at each index to change without a re-render while the index remains fixed. ```jsx -import { Index } from "solid-js" +import { Index } from "solid-js"; {(item, index) => ( @@ -80,12 +81,12 @@ import { Index } from "solid-js" {item().name} - {item().completed}
  • )} - +; ``` ## `` vs `` -`` is designed to be used when the *order* and *length* of the list may change frequently. +`` is designed to be used when the _order_ and _length_ of the list may change frequently. When the list value changes in ``, the entire list is re-rendered. However, if the array undergoes a change, such as an element shifting position, `` will manage this by simply **moving** the corresponding DOM node and **updating** the index. @@ -99,14 +100,14 @@ For example, when creating a list of static elements, such as a list of links, ` This is because it will only modify the indexes of the elements in the list, rather than re-rendering the entire list. ```jsx -import { createSignal, For } from "solid-js" +import { createSignal, For } from "solid-js"; function StringList() { - const [items, setItems] = createSignal(["Item 1", "Item 2", "Item 3"]) + const [items, setItems] = createSignal(["Item 1", "Item 2", "Item 3"]); return (
      - { // add the new item to the list @@ -114,13 +115,13 @@ function StringList() { /> {(item, index) => ( -
    • +
    • {item} - {index()}
    • )}
    - ) + ); } ``` @@ -129,11 +130,11 @@ If you were using ``, the entire list would be re-rendered when a value cha ``, instead, will update the content at the specified index, while the rest of the list remains unchanged. ```jsx -import { createSignal, Index } from "solid-js" +import { createSignal, Index } from "solid-js"; function FormList() { - const [inputs, setInputs] = createSignal(['input1','input2','input3']) - return( + const [inputs, setInputs] = createSignal(["input1", "input2", "input3"]); + return (
    {(input, index) => ( @@ -147,6 +148,6 @@ 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 fe20f754fc..95ec28e8f1 100644 --- a/src/routes/concepts/control-flow/portal.mdx +++ b/src/routes/concepts/control-flow/portal.mdx @@ -7,11 +7,11 @@ When an element requires rendering outside of the usual document flow, challenge `` helps with this by putting elements in a different place in the document, bringing an element into the document flow so they can render as expected. ```jsx -import { Portal } from "solid-js/web" +import { Portal } from "solid-js/web"; - +; ``` The content nested within `` is rendered and positioned by default at the end of the document body. @@ -25,39 +25,38 @@ This can be changed by passing a `mount` prop to ``. The `mount` prop accepts a [DOM node](https://developer.mozilla.org/en-US/docs/Web/API/Node), which will be used as the mount point for the portal content. ```jsx -import { Portal } from "solid-js/web" +import { Portal } from "solid-js/web"; - +; ``` - Using `` can be particularly useful in cases where elements, like information popups, might be clipped or obscured due to the overflow settings of their parent elements. By putting the element outside of the parent element, it is no longer bound by the overflow settings of its parent. This creates a more accessible experience for users, as the content is no longer obscured. - :::info - `` will render wrapped unless specifically targeting `document.head`. +`` will render wrapped unless specifically targeting `document.head`. - This is so events propagate through the Portal according to the component hierarchy instead of the elements hierarchy. +This is so events propagate through the Portal according to the component hierarchy instead of the elements hierarchy. By default, children will wrap in a `
    `. If you portal into an SVG, then the `isSVG` prop must be used to avoid wrapping the children in a `
    ` and wrap in a `` instead. ```jsx -import { Portal } from "solid-js/web" +import { Portal } from "solid-js/web"; function Rect() { - return ( - - - - ); + return ( + + + + ); } function SVG() { - return ; + return ; } ``` + ::: diff --git a/src/routes/concepts/derived-values/derived-signals.mdx b/src/routes/concepts/derived-values/derived-signals.mdx index e0086fb456..3a3cbf0264 100644 --- a/src/routes/concepts/derived-values/derived-signals.mdx +++ b/src/routes/concepts/derived-values/derived-signals.mdx @@ -19,11 +19,11 @@ Similarly you can create a derived signal that relies on a store value because s To learn more about how stores work, [you can visit the stores section](/concepts/stores). ```js -const fullName = () => store.firstName + ' ' + store.lastName; +const fullName = () => store.firstName + " " + store.lastName; ``` -These dependent functions gain reactivity from the signal they access, ensuring that changes in the underlying data propagate throughout your application. -It is important to note that these functions do not store a value themselves; instead, they can update any effects or components that depend on them. +These dependent functions gain reactivity from the signal they access, ensuring that changes in the underlying data propagate throughout your application. +It is important to note that these functions do not store a value themselves; instead, they can update any effects or components that depend on them. If included within a component's body, these derived signals will trigger an update when necessary. While you can create derived values in this manner, Solid created the [`createMemo`](/reference/basic-reactivity/create-memo) primitive. diff --git a/src/routes/concepts/derived-values/memos.mdx b/src/routes/concepts/derived-values/memos.mdx index 1c80f75ea7..da14c571c4 100644 --- a/src/routes/concepts/derived-values/memos.mdx +++ b/src/routes/concepts/derived-values/memos.mdx @@ -18,16 +18,16 @@ Within this function, you can define the derived value or computations you wish When called, `createMemo` will return a **getter** function that reads the current value of the memo: ```jsx -import { createMemo, createSignal } from "solid-js" +import { createMemo, createSignal } from "solid-js"; -const [count, setCount] = createSignal(0) +const [count, setCount] = createSignal(0); -const isEven = createMemo(() => count() % 2 === 0) +const isEven = createMemo(() => count() % 2 === 0); -console.log(isEven()) // true +console.log(isEven()); // true -setCount(3) -console.log(isEven()) // false +setCount(3); +console.log(isEven()); // false ``` While memos look similar to effects, they are different in that they _return a value_. @@ -68,10 +68,10 @@ They, however, serve different purposes and each has their own unique behaviors. When working with memos, it is recommended that you leave them "pure". ```jsx -import { createSignal, createMemo } from "solid-js" +import { createSignal, createMemo } from "solid-js"; -const [count, setCount] = createSignal(0) -const isEven = createMemo(() => count() % 2 === 0) // example of a pure function +const [count, setCount] = createSignal(0); +const isEven = createMemo(() => count() % 2 === 0); // example of a pure function ``` A pure function is one that does not cause any side effects. @@ -81,17 +81,17 @@ When you introduce side effects into a memo, it can complicate the reactivity ch This can lead to unexpected behavior, such as infinite loops, that lead your application to crash. ```jsx -import { createSignal, createMemo } from "solid-js" +import { createSignal, createMemo } from "solid-js"; -const [count, setCount] = createSignal(0) -const [message, setMessage] = createSignal("") +const [count, setCount] = createSignal(0); +const [message, setMessage] = createSignal(""); const badMemo = createMemo(() => { if (count() > 10) { - setMessage("Count is too high!") // side effect + setMessage("Count is too high!"); // side effect } - return count() % 2 === 0 -}) + return count() % 2 === 0; +}); ``` These infinite loops can be triggered when a memo has a side effect that causes its dependencies to change. @@ -100,18 +100,18 @@ This will cause the memo to re-evaluate, which will then trigger the side effect This can be avoided by using a [`createEffect`](/reference/basic-reactivity/create-effect) to handle the side effects instead: ```jsx -import { createSignal, createMemo, createEffect } from "solid-js" +import { createSignal, createMemo, createEffect } from "solid-js"; -const [count, setCount] = createSignal(0) -const [message, setMessage] = createSignal("") +const [count, setCount] = createSignal(0); +const [message, setMessage] = createSignal(""); -const isEven = createMemo(() => count() % 2 === 0) +const isEven = createMemo(() => count() % 2 === 0); createEffect(() => { if (count() > 10) { - setMessage("Count is too high!") + setMessage("Count is too high!"); } -}) +}); ``` Here, the `createEffect` will handle the side effects, while the `isEven` memo will remain pure. @@ -130,18 +130,18 @@ This separation of concerns can help keep your code clean and easy to understand // effect - runs whenever `count` changes createEffect(() => { if (count() > 10) { - setMessage("Count is too high!") + setMessage("Count is too high!"); } else { - setMessage("") + setMessage(""); } -}) +}); // memo - only runs when `count` changes to or from a value greater than 10 const message = createMemo(() => { if (count() > 10) { - return "Count is too high!" + return "Count is too high!"; } else { - return "" + return ""; } -}) +}); ``` diff --git a/src/routes/concepts/effects.mdx b/src/routes/concepts/effects.mdx index fe15500bdf..213fd8a4a0 100644 --- a/src/routes/concepts/effects.mdx +++ b/src/routes/concepts/effects.mdx @@ -88,9 +88,9 @@ setMessage("World"); // Output: 1, "World" ``` :::info -When a signal updates, it notifies all of its subscribers sequentially but the *order can vary*. +When a signal updates, it notifies all of its subscribers sequentially but the _order can vary_. While effects are guaranteed to run when a signal updates, the execution might **not** be instantaneous. -This means that the order of execution of effects is *not guaranteed* and should not be relied upon. +This means that the order of execution of effects is _not guaranteed_ and should not be relied upon. ::: ### Nested effects diff --git a/src/routes/concepts/intro-to-reactivity.mdx b/src/routes/concepts/intro-to-reactivity.mdx index fa3e35fc28..156f15dd31 100644 --- a/src/routes/concepts/intro-to-reactivity.mdx +++ b/src/routes/concepts/intro-to-reactivity.mdx @@ -182,7 +182,8 @@ function Counter() { return (
    - Count: {count()}{/* βœ… will update whenever `count()` changes. */} + Count: {count()} + {/* βœ… will update whenever `count()` changes. */} diff --git a/src/routes/concepts/refs.mdx b/src/routes/concepts/refs.mdx index be36527bb4..17f44afe1b 100644 --- a/src/routes/concepts/refs.mdx +++ b/src/routes/concepts/refs.mdx @@ -20,16 +20,16 @@ JSX can be used as a value and assigned to a variable when looking to directly a ```tsx function Component() { - const myElement =

    My Element

    + const myElement =

    My Element

    ; - return
    {myElement}
    + return
    {myElement}
    ; } ``` This lets you create and access DOM elements similar to [`document.createElement`](https://developer.mozilla.org/en-US/docs/Web/API/Document/createElement) but without having to wait until it is attached to the DOM. It can be used multiple times without having to worry about duplicate selectors. -The downside of this approach is that it separates the element and any child elements from the rest of the JSX structure. +The downside of this approach is that it separates the element and any child elements from the rest of the JSX structure. This makes the component's JSX structure more difficult to read and understand. ## Refs in Solid @@ -46,7 +46,7 @@ function Component() {

    My Element

    - ) + ); } ``` @@ -54,9 +54,11 @@ These assignments occur at _creation time_ prior to the element being added to t If access to an element is needed before it is added to the DOM, you can use the callback form of `ref`: ```jsx -

    { - myElement = el // el is created but not yet added to the DOM - }}> +

    { + myElement = el; // el is created but not yet added to the DOM + }} +> My Element

    ``` @@ -69,6 +71,7 @@ confirm it. ```tsx let myElement!: HTMLDivElement; ``` + ::: ### Signals as refs @@ -78,8 +81,8 @@ This is useful when you want to access the element directly, but the element may ```jsx function App() { - const [show, setShow] = createSignal(false) - const [element, setElement] = createSignal() + const [show, setShow] = createSignal(false); + const [element, setElement] = createSignal(); return (
    @@ -89,7 +92,7 @@ function App() {

    This is the ref element

    - ) + ); } ``` @@ -114,21 +117,21 @@ To access the `ref` in the child component, it is passed as a prop: ```tsx // Parent component -import { Canvas } from "./Canvas.jsx" +import { Canvas } from "./Canvas.jsx"; function ParentComponent() { - let canvasRef + let canvasRef; const animateCanvas = () => { // Manipulate the canvas using canvasRef... - } + }; return (
    - ) + ); } // Child component @@ -137,7 +140,7 @@ function Canvas(props) {
    {/* Assign the ref to the canvas element */}
    - ) + ); } ``` @@ -158,8 +161,7 @@ Directives are like callback refs but they enable two extra features: A directive is essentially a function with a specific signature: ```typescript -function directive(element: Element, accessor: () => any): void - +function directive(element: Element, accessor: () => any): void; ``` - `element`: The DOM element that the directive is applied to. diff --git a/src/routes/concepts/signals.mdx b/src/routes/concepts/signals.mdx index d4558fe66b..c703d7f570 100644 --- a/src/routes/concepts/signals.mdx +++ b/src/routes/concepts/signals.mdx @@ -80,7 +80,7 @@ function Counter() { ``` :::info -A tracking scope can be created by [`createEffect`](/reference/basic-reactivity/create-effect) or [`createMemo`](/reference/basic-reactivity/create-memo), which are other Solid primitives. +A tracking scope can be created by [`createEffect`](/reference/basic-reactivity/create-effect) or [`createMemo`](/reference/basic-reactivity/create-memo), which are other Solid primitives. Both functions subscribe to the signals accessed within them, establishing a dependency relationship. Once this relationship is established, the function is notified whenever the signal changes. diff --git a/src/routes/concepts/stores.mdx b/src/routes/concepts/stores.mdx index 20ada72ab5..54af02bb98 100644 --- a/src/routes/concepts/stores.mdx +++ b/src/routes/concepts/stores.mdx @@ -15,7 +15,7 @@ Using JavaScript's [proxy](https://developer.mozilla.org/en-US/docs/Web/JavaScri With stores, you can now target nested properties and elements within these structures to create a dynamic tree of reactive data. ```jsx -import { createStore } from "solid-js/store" +import { createStore } from "solid-js/store"; // Initialize store const [store, setStore] = createStore({ @@ -40,7 +40,7 @@ const [store, setStore] = createStore({ loggedIn: true, }, ], -}) +}); ``` ## Accessing store values @@ -48,7 +48,7 @@ const [store, setStore] = createStore({ Store properties can be accessed directly from the state proxy through directly referencing the targeted property: ```jsx -console.log(store.userCount) // Outputs: 3 +console.log(store.userCount); // Outputs: 3 ``` Accessing stores within a tracking scope follows a similar pattern to signals. @@ -57,7 +57,7 @@ This provides access to the store's value directly within a tracking scope: ```jsx const App = () => { - const [mySignal, setMySignal] = createSignal("This is a signal.") + const [mySignal, setMySignal] = createSignal("This is a signal."); const [store, setStore] = createStore({ userCount: 3, users: [ @@ -80,14 +80,14 @@ const App = () => { loggedIn: true, }, ], - }) + }); return (

    Hello, {store.users[0].username}

    {/* Accessing a store value */} {mySignal()} {/* Accessing a signal */}
    - ) -} + ); +}; ``` When a store is created, it starts with the initial state but does _not_ immediately set up signals to track changes. @@ -97,7 +97,6 @@ Once data is used within a reactive context, such as within the return statement For example, if you wanted to print out every new user, adding the console log below will not work because it is not within a tracked scope. - ```tsx ins={9} const App = () => { const [store, setStore] = createStore({ @@ -199,7 +198,7 @@ Separating the read and write capabilities of a store provides a valuable debugg This separation facilitates the tracking and control of the components that are accessing or changing the values. ::: :::advanced - A little hidden feature of stores is that you can also create nested stores to help with setting nested properties. +A little hidden feature of stores is that you can also create nested stores to help with setting nested properties. ```jsx const [store, setStore] = createStore({ @@ -220,9 +219,10 @@ This separation facilitates the tracking and control of the components that are ]) ``` - Changes made through `setUsers` will update the `store.users` property and reading `users` from this derived store will also be in sync with the values from `store.users`. - Note that the above relies on `store.users` to be set already in the existing store. +Changes made through `setUsers` will update the `store.users` property and reading `users` from this derived store will also be in sync with the values from `store.users`. + +Note that the above relies on `store.users` to be set already in the existing store. ::: @@ -265,7 +265,7 @@ setStore("users", (otherUsers) => [ location: "Nigeria", loggedIn: false, }, -]) +]); // can become @@ -274,7 +274,7 @@ setStore("users", store.users.length, { username: "michael584", location: "Nigeria", loggedIn: false, -}) +}); ``` ### Modifying multiple elements @@ -287,11 +287,11 @@ For example, if `store.users` is an array of objects, you can set the `loggedIn` property of several indices at once like so: ```jsx -setStore("users", [2, 7, 10], "loggedIn", false) +setStore("users", [2, 7, 10], "loggedIn", false); // equivalent to (but more efficient than): -setStore("users", 2, "loggedIn", false) -setStore("users", 7, "loggedIn", false) -setStore("users", 10, "loggedIn", false) +setStore("users", 2, "loggedIn", false); +setStore("users", 7, "loggedIn", false); +setStore("users", 10, "loggedIn", false); ``` This array syntax also works for object property names. @@ -299,10 +299,10 @@ For example, if `store.users` is an object mapping usernames to objects, you can set the `loggedIn` property of several users at once like so: ```jsx -setStore("users", ["me", "you"], "loggedIn", false) +setStore("users", ["me", "you"], "loggedIn", false); // equivalent to (but more efficient than): -setStore("users", ["me"], "loggedIn", false) -setStore("users", ["you"], "loggedIn", false) +setStore("users", ["me"], "loggedIn", false); +setStore("users", ["you"], "loggedIn", false); ``` For arrays specifically, you can specify a range of indices via an object @@ -311,10 +311,10 @@ For example, assuming `store.users` is an array again, you can set the `loggedIn` state for all users except index 0 as follows: ```jsx -setStore("users", { from: 1, to: store.users.length - 1 }, "loggedIn", false) +setStore("users", { from: 1, to: store.users.length - 1 }, "loggedIn", false); // equivalent to (but more efficient than): for (let i = 1; i <= store.users.length - 1; i++) { - setStore("users", i, "loggedIn", false) + setStore("users", i, "loggedIn", false); } ``` @@ -323,10 +323,15 @@ and thereby update a regular subset of elements. For example, you can set the `loggedIn` state for even-indexed users like so: ```jsx -setStore("users", { from: 0, to: store.users.length - 1, by: 2 }, "loggedIn", false) +setStore( + "users", + { from: 0, to: store.users.length - 1, by: 2 }, + "loggedIn", + false +); // equivalent to (but more efficient than): for (let i = 1; i <= store.users.length - 1; i += 2) { - setStore("users", i, "loggedIn", false) + setStore("users", i, "loggedIn", false); } ``` @@ -342,7 +347,7 @@ These functions receive the old value as an argument, allowing you to compute th This dynamic approach is particularly useful for complex transformations. ```jsx -setStore("users", 3, "loggedIn" , (loggedIn) => !loggedIn) +setStore("users", 3, "loggedIn", (loggedIn) => !loggedIn); ``` ### Filtering values @@ -352,7 +357,7 @@ This function will act as a filter, allowing you to select elements that satisfy It receives the old value and index as arguments, providing the flexibility to make conditional updates. ```jsx -setStore("users", (user) => user.username.startsWith("t"), "loggedIn", false) +setStore("users", (user) => user.username.startsWith("t"), "loggedIn", false); ``` In addition to [`.startsWith`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith), you can use other array methods like [`.find`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find) to filter for the values that you need. @@ -367,14 +372,14 @@ What this means, is that you can directly make the change to the store _without_ ```jsx setStore("users", 0, { id: 109, -}) +}); // is equivalent to setStore("users", 0, (user) => ({ ...user, id: 109, -})) +})); ``` ## Store utilities @@ -386,21 +391,21 @@ This utility provides a way to work with data as if it were a [mutable](https:// `produce` also provides a way to make changes to multiple properties at the same time which eliminates the need for multiple setter calls. ```jsx -import { produce } from "solid-js/store" +import { produce } from "solid-js/store"; // without produce -setStore("users", 0, "username", "newUsername") -setStore("users", 0, "location", "newLocation") +setStore("users", 0, "username", "newUsername"); +setStore("users", 0, "location", "newLocation"); // with produce setStore( "users", 0, produce((user) => { - user.username = "newUsername" - user.location = "newLocation" + user.username = "newUsername"; + user.location = "newLocation"; }) -) +); ``` `produce` and `setStore` do have distinct functionalities. @@ -442,13 +447,13 @@ Additionally, `unwrap` provides a means to interface with third-party libraries This utility acts as a bridge to facilitate smooth integrations with external components and simplifies the incorporation of stores into various applications and workflows. ```jsx -import { createStore, unwrap } from "solid-js/store" +import { createStore, unwrap } from "solid-js/store"; const [data, setData] = createStore({ animals: ["cat", "dog", "bird", "gorilla"], -}) +}); -const rawData = unwrap(data) +const rawData = unwrap(data); ``` To learn more about how to use Stores in practice, visit the [guide on complex state management](/guides/complex-state-management). diff --git a/src/routes/concepts/understanding-jsx.mdx b/src/routes/concepts/understanding-jsx.mdx index 357f0d0946..dd7e488634 100644 --- a/src/routes/concepts/understanding-jsx.mdx +++ b/src/routes/concepts/understanding-jsx.mdx @@ -12,7 +12,7 @@ This provides a concise and readable way to create and represent components. Solid was designed to align closely with HTML standards. ```jsx -const element =

    I'm JSX!!

    +const element =

    I'm JSX!!

    ; ``` It offers a distinct advantage, however: to copy/paste solutions from resources like Stack Overflow; and to allow direct usage of templates from design tools. @@ -21,14 +21,14 @@ This lets you use dynamic expressions within your HTML by allowing variables and ```jsx const Component = () => { - const animal = { breed: "cat", name: "Midnight" } + const animal = { breed: "cat", name: "Midnight" }; return (

    I have a {animal.breed} named {animal.name}!

    - ) -} + ); +}; ``` This means JavaScript content can be rendered on web pages based on an application's state or logic. @@ -98,6 +98,7 @@ In JSX files, HTML attributes are used much like regular HTML, with a few key di Click me! ``` + ::: ### JSX properties (props) @@ -110,17 +111,17 @@ They connect the component with the data it requires, for seamless data flows an - **Static props**: In Solid's JSX, static props are integrated directly into the HTML by cloning the template and using them as attributes. - - **Dynamic props**: - Dynamic props rely on state, allowing the content or properties to be dynamic. - An example is changing the style of an element in response to interactions within an application. - This can be expressed in the form of signals (`value={value()}`). +- **Dynamic props**: + Dynamic props rely on state, allowing the content or properties to be dynamic. + An example is changing the style of an element in response to interactions within an application. + This can be expressed in the form of signals (`value={value()}`). - **Data transfer**: Props are also used to fill components with data that comes from resources, like [`createResource`](/reference/basic-reactivity/create-resource) calls. This results in components that react in real-time to data changes. :::info -Expressions, whether fixed or dynamic, get applied *in the order defined within the JSX*. +Expressions, whether fixed or dynamic, get applied _in the order defined within the JSX_. This works for a wide range of DOM elements, but will not work with elements that require attributes to be defined in a special order, such as input types with `type='range'`. When order influences an element's behavior, users must define the expressions in the order that the element is expected. diff --git a/src/routes/configuration/environment-variables.mdx b/src/routes/configuration/environment-variables.mdx index 37537a5eea..4ec0256781 100644 --- a/src/routes/configuration/environment-variables.mdx +++ b/src/routes/configuration/environment-variables.mdx @@ -62,8 +62,8 @@ function MyComponent() { These variables should only be accessed in your backend code, so it's best not to use the `VITE_` prefix for them. Instead, use `process.env` to access them. Depending on the [Nitro preset](https://nitro.build/deploy) chosen, they'll be made available automatically or they will require an external dependency such as [dotenv](https://www.npmjs.com/package/dotenv). ```jsx -DB_HOST="somedb://192.110.0" -DB_PASSWORD = super_secret_password_hash +DB_HOST = "somedb://192.110.0"; +DB_PASSWORD = super_secret_password_hash; ``` To access them, within your backend code, use `process.env`. @@ -82,11 +82,10 @@ For an example, check the pseudo-code below. It is also possible to make `process.env` type-safe via the same `.env.d.ts` file. ```typescript - declare namespace NodeJS { interface ProcessEnv { - readonly DB_URL: string - readonly DB_PASSWORD: string + readonly DB_URL: string; + readonly DB_PASSWORD: string; } } ``` diff --git a/src/routes/configuration/typescript.mdx b/src/routes/configuration/typescript.mdx index 059120a92c..8f7fab9f20 100644 --- a/src/routes/configuration/typescript.mdx +++ b/src/routes/configuration/typescript.mdx @@ -59,17 +59,9 @@ npm i --save-dev typescript ```
    -
    -```bash frame="none" -yarn add --dev typescript -``` -
    +
    ```bash frame="none" yarn add --dev typescript ```
    -
    -```bash frame="none" -pnpm add --save-dev typescript -``` -
    +
    ```bash frame="none" pnpm add --save-dev typescript ```
    ```bash frame="none" @@ -87,17 +79,9 @@ npx tsc --init ```
    -
    -```bash frame="none" -yarn dlx tsc --init -``` -
    +
    ```bash frame="none" yarn dlx tsc --init ```
    -
    -```bash frame="none" -pnpm tsc --init -``` -
    +
    ```bash frame="none" pnpm tsc --init ```
    ```bash frame="none" @@ -421,9 +405,9 @@ function MyGenericComponent(props: MyProps): JSX.Element { ``` :::info - Each `Component` type has a corresponding `Props` type that defines the shape - of its properties. These `Props` types also accept the same generic types as - their associated `Component` types. +Each `Component` type has a corresponding `Props` type that defines the shape +of its properties. These `Props` types also accept the same generic types as +their associated `Component` types. ::: ### Event handling @@ -523,13 +507,13 @@ return
    ...
    In this case, using `divRef!` within the `ref` attribute signals to TypeScript that `divRef` will receive an assignment after this stage, which is more in line with how Solid works. :::info - While TypeScript does catch incorrect usage of refs that occur before their - JSX block definition, it currently does not identify undefined variables - within certain nested functions in Solid. Therefore, additional care is needed - when using `ref`s in functions such as - [`createMemo`](/reference/basic-reactivity/create-memo), - [`createRenderEffect`](/reference/secondary-primitives/create-render-effect), - and [`createComputed`](/reference/secondary-primitives/create-computed). +While TypeScript does catch incorrect usage of refs that occur before their +JSX block definition, it currently does not identify undefined variables +within certain nested functions in Solid. Therefore, additional care is needed +when using `ref`s in functions such as +[`createMemo`](/reference/basic-reactivity/create-memo), +[`createRenderEffect`](/reference/secondary-primitives/create-render-effect), +and [`createComputed`](/reference/secondary-primitives/create-computed). ::: Finally, a riskier approach involves using the definite assignment assertion right at the point of variable initialization. @@ -584,9 +568,9 @@ return
    {user()?.name}
    ; return (
    - {(nonNullishUser) => <> - {nonNullishUser().name} - } + + {(nonNullishUser) => <>{nonNullishUser().name}} +
    ); ``` @@ -688,6 +672,7 @@ declare module "solid-js" { ``` :::info + New in v1.9.0 ::: @@ -709,7 +694,7 @@ const handler: JSX.EventHandlerWithOptions = { :::info **Note**: -By default, using native events like `mousemove` with the `on` prefix β€” for example, `
    {}} />` β€” will trigger a TypeScript error. +By default, using native events like `mousemove` with the `on` prefix β€” for example, `
    {}} />` β€” will trigger a TypeScript error. This occurs because these native events are not part of Solid's custom event type definitions. To solve this, the `CustomEvents` interface can be extended to include events from the `HTMLElementEventMap`: diff --git a/src/routes/guides/complex-state-management.mdx b/src/routes/guides/complex-state-management.mdx index d4df6f0905..f9cf518187 100644 --- a/src/routes/guides/complex-state-management.mdx +++ b/src/routes/guides/complex-state-management.mdx @@ -8,25 +8,27 @@ As applications grow and start to involve many components, more intricate user i Consider this example: ```jsx -import { For, createSignal, Show, createMemo } from "solid-js" +import { For, createSignal, Show, createMemo } from "solid-js"; const App = () => { - const [tasks, setTasks] = createSignal([]) - const [numberOfTasks, setNumberOfTasks] = createSignal(tasks.length) - const completedTasks = createMemo(() => tasks().filter((task) => task.completed)) - let input + const [tasks, setTasks] = createSignal([]); + const [numberOfTasks, setNumberOfTasks] = createSignal(tasks.length); + const completedTasks = createMemo(() => + tasks().filter((task) => task.completed) + ); + let input; const addTask = (text) => { - setTasks([...tasks(), { id: tasks().length, text, completed: false }]) - setNumberOfTasks(numberOfTasks() + 1) - } + setTasks([...tasks(), { id: tasks().length, text, completed: false }]); + setNumberOfTasks(numberOfTasks() + 1); + }; const toggleTask = (id) => { setTasks( tasks().map((task) => task.id !== id ? task : { ...task, completed: !task.completed } ) - ) - } + ); + }; return ( <> @@ -36,9 +38,9 @@ const App = () => {
    {(task) => { - const { id, text } = task - console.log(`Creating ${text}`) + const { id, text } = task; + console.log(`Creating ${text}`); return (
    { {text}
    - ) + ); }}
    - ) -} + ); +}; -export default App +export default App; ``` There are several challenges to managing state in this way: @@ -96,16 +98,16 @@ If you're new to the concept of stores, see the [stores section](/concepts/store To reduce the amount of signals that were used in the original example, you can do the following using a store: ```jsx -import { createStore } from "solid-js/store" +import { createStore } from "solid-js/store"; const App = () => { const [state, setState] = createStore({ tasks: [], numberOfTasks: 0, - }) -} + }); +}; -export default App +export default App; ``` Through using a store, you no longer need to keep track of separate signals for `tasks`, `numberOfTasks`, and `completedTasks`. @@ -115,22 +117,22 @@ Through using a store, you no longer need to keep track of separate signals for Once you have created your store, the values can be accessed directly through the first value returned by the `createStore` function: ```jsx -import { createStore } from "solid-js/store" +import { createStore } from "solid-js/store"; const App = () => { const [state, setState] = createStore({ tasks: [], numberOfTasks: 0, - }) + }); return ( <>

    My Task List for Today

    You have {state.numberOfTasks} task(s) for today! - ) -} + ); +}; -export default App +export default App; ``` Through `state.numberOfTasks`, the display will now show the store's value held in the `numberOfTasks` property. @@ -144,12 +146,12 @@ To create the signal so it reactively updates, you have to access the property w ```jsx // not reactive -setState("numberOfTasks", state.tasks.length) +setState("numberOfTasks", state.tasks.length); // reactive createEffect(() => { - setState("numberOfTasks", state.tasks.length) -}) + setState("numberOfTasks", state.tasks.length); +}); ``` ### Adding to an array @@ -163,8 +165,8 @@ const addTask = (text) => { id: state.tasks.length, text, completed: false, - }) -} + }); +}; ``` The setter in stores follow [path syntax](/concepts/stores#path-syntax-flexibility): `setStore("key", value)`. @@ -178,40 +180,40 @@ Something such as toggle function: ```jsx const toggleTask = (id) => { - const currentCompletedStatus = state.tasks[id].completed + const currentCompletedStatus = state.tasks[id].completed; setState( "tasks", (task) => task.id === id, "completed", !currentCompletedStatus - ) -} + ); +}; ``` Can be simplified using `produce`: ```jsx -import { produce } from "solid-js/store" +import { produce } from "solid-js/store"; const toggleTask = (id) => { setState( "tasks", (tasks) => tasks.id === id, produce((task) => { - task.completed = !task.completed + task.completed = !task.completed; }) - ) -} + ); +}; // You can also rewrite the `addTask` function through produce const addTask = (text) => { setState( "tasks", produce((task) => { - task.push({ id: state.tasks.length, text, completed: false }) + task.push({ id: state.tasks.length, text, completed: false }); }) - ) -} + ); +}; ``` Read about some of the other [advantages to using `produce`](/concepts/stores#store-updates-with-produce). @@ -222,9 +224,9 @@ Read about some of the other [advantages to using `produce`](/concepts/stores#st ```jsx // without produce batch(() => { - setState(0, "text", "I'm updated text") - setState(0, "completed", true) -}) + setState(0, "text", "I'm updated text"); + setState(0, "completed", true); +}); // with produce setState( @@ -233,7 +235,7 @@ setState( task.text = "I'm updated text"; task.completed = true; }) -) +); ``` ::: @@ -241,37 +243,37 @@ setState( The updated example: ```jsx -import { For, createEffect, Show } from "solid-js" -import { createStore, produce } from "solid-js/store" +import { For, createEffect, Show } from "solid-js"; +import { createStore, produce } from "solid-js/store"; const App = () => { - let input // lets you target the input value + let input; // lets you target the input value const [state, setState] = createStore({ tasks: [], numberOfTasks: 0, - }) + }); const addTask = (text) => { setState("tasks", state.tasks.length, { id: state.tasks.length, text, completed: false, - }) - } + }); + }; const toggleTask = (id) => { setState( "tasks", (tasks) => tasks.id === id, produce((task) => { - task.completed = !task.completed + task.completed = !task.completed; }) - ) - } + ); + }; createEffect(() => { - setState("numberOfTasks", state.tasks.length) - }) + setState("numberOfTasks", state.tasks.length); + }); return ( <> @@ -282,16 +284,16 @@ const App = () => { {(task) => { - const { id, text } = task + const { id, text } = task; return (
    { /> {text}
    - ) + ); }}
    - ) -} + ); +}; -export default App +export default App; ``` ## State sharing @@ -322,40 +324,40 @@ To use this, you need to create a context. This context will have a default value and can be consumed by any _descendant_ component. ```jsx -import { createContext } from "solid-js" +import { createContext } from "solid-js"; -const TaskContext = createContext() +const TaskContext = createContext(); ``` Your components will be wrapped with the `Provider` from the context, and passed with the values that you wish to share. ```jsx -import { createStore } from "solid-js/store" +import { createStore } from "solid-js/store"; const TaskApp = () => { const [state, setState] = createStore({ tasks: [], numberOfTasks: 0, - }) + }); return ( {/* Your components */} - ) -} + ); +}; ``` In any descendent component, you can consume the context values using `useContext`: ```jsx -import { useContext } from "solid-js" +import { useContext } from "solid-js"; const TaskList = () => { - const { state, setState } = useContext(TaskContext) + const { state, setState } = useContext(TaskContext); // Now you can use the shared state and functions -} +}; ``` For a deeper dive, please refer to our dedicated [page on context](/concepts/context). diff --git a/src/routes/guides/data.json b/src/routes/guides/data.json index 364f3f925c..b31c852583 100644 --- a/src/routes/guides/data.json +++ b/src/routes/guides/data.json @@ -7,7 +7,7 @@ "routing-and-navigation.mdx", "complex-state-management.mdx", "fetching-data.mdx", - "testing.mdx", + "testing.mdx", "deploying-your-app.mdx", "deployment-options" ] diff --git a/src/routes/guides/deployment-options/aws-via-sst.mdx b/src/routes/guides/deployment-options/aws-via-sst.mdx index 4a59999bd6..96d3b58b1c 100644 --- a/src/routes/guides/deployment-options/aws-via-sst.mdx +++ b/src/routes/guides/deployment-options/aws-via-sst.mdx @@ -4,7 +4,7 @@ order: 1 mainNavExclude: true --- -[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/). +[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/). ## Quick start @@ -13,59 +13,35 @@ mainNavExclude: true 2. In your project, init SST. -
    -```bash frame="none" -npx sst@latest init -``` -
    -
    -```bash frame="none" -yarn dlx sst@latest init -``` -
    -
    -```bash frame="none" -pnpm dlx sst@latest init -``` -
    -
    -```bash frame="none" -bunx sst@latest init -``` -
    +
    ```bash frame="none" npx sst@latest init ```
    +
    ```bash frame="none" yarn dlx sst@latest init ```
    +
    ```bash frame="none" pnpm dlx sst@latest init ```
    +
    ```bash frame="none" bunx sst@latest init ```
    3. This will detect your SolidStart app and ask you to update your `app.config.ts`. ```ts title="app.config.ts" server: { - preset: "aws-lambda-streaming" + preset: "aws-lambda-streaming"; } ``` 4. When you are ready, you can deploy your app using: -
    -```bash frame="none" -npx sst@latest deploy --stage production -``` -
    -
    -```bash frame="none" -yarn dlx sst@latest deploy --stage production -``` -
    -
    -```bash frame="none" -pnpm dlx sst@latest deploy --stage production -``` -
    -
    -```bash frame="none" -bunx sst@latest deploy --stage production -``` -
    +
    + ```bash frame="none" npx sst@latest deploy --stage production ``` +
    +
    + ```bash frame="none" yarn dlx sst@latest deploy --stage production ``` +
    +
    + ```bash frame="none" pnpm dlx sst@latest deploy --stage production ``` +
    +
    + ```bash frame="none" bunx sst@latest deploy --stage production ``` +
    You can [read the full tutorial on the SST docs](https://sst.dev/docs/start/aws/solid). diff --git a/src/routes/guides/deployment-options/cloudflare.mdx b/src/routes/guides/deployment-options/cloudflare.mdx index 5a1474b033..a08c0d232c 100644 --- a/src/routes/guides/deployment-options/cloudflare.mdx +++ b/src/routes/guides/deployment-options/cloudflare.mdx @@ -65,17 +65,9 @@ npm i -g wrangler ```
    -
    -```bash frame="none" -yarn global add wrangler -``` -
    +
    ```bash frame="none" yarn global add wrangler ```
    -
    -```bash frame="none" -pnpm add -g wrangler -``` -
    +
    ```bash frame="none" pnpm add -g wrangler ```
    ```bash frame="none" @@ -101,17 +93,11 @@ wrangler pages publish dist
    -```bash frame="none" -yarn build -wrangler pages publish dist -``` + ```bash frame="none" yarn build wrangler pages publish dist ```
    -```bash frame="none" -pnpm build -wrangler pages publish dist -``` + ```bash frame="none" pnpm build wrangler pages publish dist ```
    diff --git a/src/routes/guides/deployment-options/firebase.mdx b/src/routes/guides/deployment-options/firebase.mdx index d699fbaf86..b2ef90b11a 100644 --- a/src/routes/guides/deployment-options/firebase.mdx +++ b/src/routes/guides/deployment-options/firebase.mdx @@ -23,17 +23,9 @@ npm i -g firebase-tools ```
    -
    -``` bash frame="none" -yarn global add firebase-tools -``` -
    +
    ``` bash frame="none" yarn global add firebase-tools ```
    -
    -```bash frame="none" -pnpm add -g firebase-tools -``` -
    +
    ```bash frame="none" pnpm add -g firebase-tools ```
    ```bash frame="none" diff --git a/src/routes/guides/deployment-options/netlify.mdx b/src/routes/guides/deployment-options/netlify.mdx index 68f1f7bdfc..808e720f0b 100644 --- a/src/routes/guides/deployment-options/netlify.mdx +++ b/src/routes/guides/deployment-options/netlify.mdx @@ -47,17 +47,9 @@ npm i -g netlify-cli ```
    -
    -```bash frame="none" -yarn global add netlify-cli -``` -
    +
    ```bash frame="none" yarn global add netlify-cli ```
    -
    -```bash frame="none" -pnpm add -g netlify-cli -``` -
    +
    ```bash frame="none" pnpm add -g netlify-cli ```
    ```bash frame="none" diff --git a/src/routes/guides/deployment-options/railway.mdx b/src/routes/guides/deployment-options/railway.mdx index dabb8e2d0a..ddb0d15445 100644 --- a/src/routes/guides/deployment-options/railway.mdx +++ b/src/routes/guides/deployment-options/railway.mdx @@ -78,17 +78,9 @@ npm i -g @railway/cli ```
    -
    -```bash frame="none" -yarn global add @railway/cli -``` -
    +
    ```bash frame="none" yarn global add @railway/cli ```
    -
    -```bash frame="none" -pnpm add -g @railway/cli -``` -
    +
    ```bash frame="none" pnpm add -g @railway/cli ```
    ```bash frame="none" diff --git a/src/routes/guides/deployment-options/stormkit.mdx b/src/routes/guides/deployment-options/stormkit.mdx index 3c8b997493..74b47c1a56 100644 --- a/src/routes/guides/deployment-options/stormkit.mdx +++ b/src/routes/guides/deployment-options/stormkit.mdx @@ -14,7 +14,7 @@ mainNavExclude: true 4. Verify the build command in your Stormkit configuration. By default, Stormkit CI will run `npm run build` but you can specify a custom build command on this page. -5. Check output folder, unless its specified Stormkit will try to upload contents of build folder. +5. Check output folder, unless its specified Stormkit will try to upload contents of build folder. 6. Click the β€œDeploy Now” button to deploy your site. Stormkit CI will build your code and upload contents of it. diff --git a/src/routes/guides/deployment-options/vercel.mdx b/src/routes/guides/deployment-options/vercel.mdx index 7e7beb7765..0b5bb6875d 100644 --- a/src/routes/guides/deployment-options/vercel.mdx +++ b/src/routes/guides/deployment-options/vercel.mdx @@ -58,17 +58,9 @@ npm i -g vercel ```
    -
    -```bash frame="none" -yarn global add vercel -``` -
    +
    ```bash frame="none" yarn global add vercel ```
    -
    -```bash frame="none" -pnpm add -g vercel -``` -
    +
    ```bash frame="none" pnpm add -g vercel ```
    ```bash frame="none" diff --git a/src/routes/guides/deployment-options/zerops.mdx b/src/routes/guides/deployment-options/zerops.mdx index f9d953bb18..6e8ce8055d 100644 --- a/src/routes/guides/deployment-options/zerops.mdx +++ b/src/routes/guides/deployment-options/zerops.mdx @@ -11,6 +11,7 @@ import { TabsCodeBlocks } from "~/ui/tab-code-blocks"; For additional one-to-one support, details, and features, you can join the [Zerops Discord server](https://discord.gg/xxzmJSDKPT) and [visit the Zerops Docs](https://docs.zerops.io). Deploy and test Zerops Solid recipes with one click: + - [Deploy Solid Node.js & Static Together](https://app.zerops.io/recipe/solidjs) - [Node.js](https://github.com/zeropsio/recipe-solidjs-nodejs) and [Static](https://github.com/zeropsio/recipe-solidjs-static). - [Deploy Solid Node.js](https://app.zerops.io/recipe/solidjs-nodejs) - [Source Repository](https://github.com/zeropsio/recipe-solidjs-nodejs) - [Deploy Solid Static](https://app.zerops.io/recipe/solidjs-static) - [Source Repository](https://github.com/zeropsio/recipe-solidjs-static) @@ -30,11 +31,13 @@ There are two ways to set up a Zerops project and a service: 3. You'll be redirected to a page where you can choose a service. ##### For Static: + 1. Choose Static. 2. Scroll down and change the hostname to your preference. 3. Scroll down and click on the "Add New Static" button. ##### For SSR - Node.js: + 1. Choose `Node.js` and select `version 20`. 2. Scroll down and change the hostname to your preference. 3. Scroll down and click on the "Add New Node.js" button. @@ -46,6 +49,7 @@ There are two ways to set up a Zerops project and a service: 1. Go to your [Zerops dashboard](https://app.zerops.io/dashboard/projects) and click on your profile icon if you are a new user. If not, check your sidebar and click on `Import Project`. ##### Static: + ```yaml project: name: recipe-solidjs @@ -57,6 +61,7 @@ services: ``` ##### SSR - Node.js: + ```yaml project: name: recipe-solidjs @@ -68,6 +73,7 @@ services: ``` ## Add zerops.yml to your repository + The `zerops.yml` configuration file is used to tell Zerops how to build and run your application, it should be placed to the root of your appplication's repository. Example for **SSR (Server-Side Rendering)** Apps: @@ -112,18 +118,19 @@ zerops: run: base: static ``` + Push the changes to your GitHub/GitLab repository (necessary if you are planning to use GitHub/GitLab). ## Deploying your apps ### Triggering the pipeline automatically by connecting Github/Gitlab repository -You can push your project by [Triggering the pipeline using Zerops CLI](#triggering-the-pipeline-using-githubgitlab) or by connecting the app service with your [GitHub](https://docs.zerops.io/references/github-integration/) / [GitLab](https://docs.zerops.io/references/gitlab-integration) repository from inside the service detail. - +You can push your project by [Triggering the pipeline using Zerops CLI](#triggering-the-pipeline-using-githubgitlab) or by connecting the app service with your [GitHub](https://docs.zerops.io/references/github-integration/) / [GitLab](https://docs.zerops.io/references/gitlab-integration) repository from inside the service detail. ### Triggering the pipeline manually using Zerops CLI To download the zCLI binary directly, use [zCLI/releases](https://github.com/zeropsio/zcli/releases) or: + 1. Install the Zerops CLI using Terminal. Linux/MacOS @@ -139,30 +146,22 @@ irm https://zerops.io/zcli/install.ps1 | iex ``` Npm + -
    -```bash frame="none" -npm i -g @zerops/zcli -``` -
    -
    -```bash frame="none" -pnpm add -g @zerops/zcli -``` -
    -
    -```bash frame="none" -yarn global add @zerops/zcli -``` -
    +
    ```bash frame="none" npm i -g @zerops/zcli ```
    +
    ```bash frame="none" pnpm add -g @zerops/zcli ```
    +
    ```bash frame="none" yarn global add @zerops/zcli ```
    2. Open Settings > [Access Token Management](https://app.zerops.io/settings/token-management) in the Zerops app and generate a new access token. 3. Log in using your access token with the following command: + ```bash zcli login ``` + 4. Navigate to the root of your app (where zerops.yml is located) and run the following command in Terminal to trigger the deploy: + ```bash zcli push ``` diff --git a/src/routes/guides/fetching-data.mdx b/src/routes/guides/fetching-data.mdx index 8bf0f9e24e..096c1f195f 100644 --- a/src/routes/guides/fetching-data.mdx +++ b/src/routes/guides/fetching-data.mdx @@ -23,11 +23,12 @@ These properties can be used to conditionally render JSX based on the current re The fetcher function that is created makes a call to get a user, which is then passed in as an argument to `createResource`. The signal returned from the `createResource` provides the properties that can assist with conditional rendering based on the current reactive state: -* `state`: The current status of the operation (`unresolved`, `pending`, `ready`, `refreshing`, or `errored`). -* `loading`: Indicates that the operation is currently in progress via a `boolean`. -* `error`: If the operation fails for any reason, this property will contain information about this error. -It may be a string with an error message, or an object with more detailed information. -* `latest`: The most recent data or result returned from the operation. + +- `state`: The current status of the operation (`unresolved`, `pending`, `ready`, `refreshing`, or `errored`). +- `loading`: Indicates that the operation is currently in progress via a `boolean`. +- `error`: If the operation fails for any reason, this property will contain information about this error. + It may be a string with an error message, or an object with more detailed information. +- `latest`: The most recent data or result returned from the operation. When there is a change in the source signal, an internal fetch process is triggered to retrieve new data based on this change. @@ -35,35 +36,35 @@ When there is a change in the source signal, an internal fetch process is trigge import { createSignal, createResource, Switch, Match, Show } from "solid-js"; const fetchUser = async (id) => { - const response = await fetch(`https://swapi.dev/api/people/${id}/`); - return response.json(); -} + const response = await fetch(`https://swapi.dev/api/people/${id}/`); + return response.json(); +}; function App() { - const [userId, setUserId] = createSignal(); - const [user] = createResource(userId, fetchUser); - - return ( -
    - setUserId(e.currentTarget.value)} - /> - -

    Loading...

    -
    - - - Error: {user.error} - - -
    {JSON.stringify(user())}
    -
    -
    -
    - ); + const [userId, setUserId] = createSignal(); + const [user] = createResource(userId, fetchUser); + + return ( +
    + setUserId(e.currentTarget.value)} + /> + +

    Loading...

    +
    + + + Error: {user.error} + + +
    {JSON.stringify(user())}
    +
    +
    +
    + ); } ``` @@ -77,12 +78,11 @@ However, if there's an error while fetching, the `user.error` block becomes `tru :::tip If you anticipate errors, you may want to wrap `createResource` in an [ErrorBoundary](/reference/components/error-boundary). - + ::: In addition to the `error` property, the `loading` property offers a way to display a loading state to the user during the fetch operation. - ## Calling multiple async events Although you can use `createResource` independently, Solid provides an alternative method for synchronizing the display of multiple asynchronous events. @@ -90,37 +90,43 @@ Although you can use `createResource` independently, Solid provides an alternati It allows you to display a fallback placeholder while waiting for all asynchronous events to resolve, preventing the display of partially loaded content: ```jsx -import { createSignal, createResource, Switch, Match, Suspense } from "solid-js"; +import { + createSignal, + createResource, + Switch, + Match, + Suspense, +} from "solid-js"; const fetchUser = async (id) => { - const response = await fetch(`https://swapi.dev/api/people/${id}/`); - return response.json(); -} + const response = await fetch(`https://swapi.dev/api/people/${id}/`); + return response.json(); +}; function App() { - const [userId, setUserId] = createSignal(); - const [user] = createResource(userId, fetchUser); - - return ( -
    - setUserId(e.currentTarget.value)} - /> - Loading...
    }> - - - Error: {user.error.message} - - -
    {JSON.stringify(user())}
    -
    -
    - -
    - ); + const [userId, setUserId] = createSignal(); + const [user] = createResource(userId, fetchUser); + + return ( +
    + setUserId(e.currentTarget.value)} + /> + Loading...
    }> + + + Error: {user.error.message} + + +
    {JSON.stringify(user())}
    +
    +
    + +
    + ); } ``` @@ -146,30 +152,26 @@ This functionality is particularly valuable in applications like task lists. For example, when users input a new task and click the `Add` button, the list will refresh immediately, regardless of the ongoing data communication with the server. ```jsx -import { For, createResource } from "solid-js" +import { For, createResource } from "solid-js"; function TodoList() { - const [tasks, { mutate }] = createResource(fetchTasksFromServer); - - return ( - <> -
      - - {(task) => ( -
    • {task.name}
    • - )} -
      -
    - - - ); + const [tasks, { mutate }] = createResource(fetchTasksFromServer); + + return ( + <> +
      + {(task) =>
    • {task.name}
    • }
      +
    + + + ); } ``` @@ -179,14 +181,14 @@ When real-time feedback is necessary, the `refetch` method can be used to reload This method can be particularly useful when data is constantly evolving, such as with real-time financial applications. ```jsx -import { createResource, onCleanup } from "solid-js" +import { createResource, onCleanup } from "solid-js"; function StockPriceTicker() { - const [prices, { refetch }] = createResource(fetchStockPrices); + const [prices, { refetch }] = createResource(fetchStockPrices); - const timer = setInterval(() => { - refetch() - }, 1000); - onCleanup(() => clearInterval(timer)) + const timer = setInterval(() => { + refetch(); + }, 1000); + onCleanup(() => clearInterval(timer)); } ``` diff --git a/src/routes/guides/routing-and-navigation.mdx b/src/routes/guides/routing-and-navigation.mdx index 73aacadda3..d90f630578 100644 --- a/src/routes/guides/routing-and-navigation.mdx +++ b/src/routes/guides/routing-and-navigation.mdx @@ -20,17 +20,9 @@ npm install @solidjs/router ```
    -
    -```bash frame="none" -yarn add @solidjs/router -``` -
    +
    ```bash frame="none" yarn add @solidjs/router ```
    -
    -```bash frame="none" -pnpm add @solidjs/router -``` -
    +
    ```bash frame="none" pnpm add @solidjs/router ```
    ```bash frame="none" @@ -492,8 +484,8 @@ The value of a preload function is passed to the page component when called at a This means you can initialize the page, or use [Data APIs](/solid-router/reference/data-apis/create-async). :::info - To prevent a fetch from happening more than once, or to trigger a refetch, you - can use the [`query` function](/solid-router/reference/data-apis/query). +To prevent a fetch from happening more than once, or to trigger a refetch, you +can use the [`query` function](/solid-router/reference/data-apis/query). ::: ```jsx title="index.jsx" diff --git a/src/routes/guides/state-management.mdx b/src/routes/guides/state-management.mdx index 5f5113fbc0..00170aef81 100644 --- a/src/routes/guides/state-management.mdx +++ b/src/routes/guides/state-management.mdx @@ -161,7 +161,7 @@ Derived values can be created using a signal within a function, which can be ref This approach can be used to simplify the `doubleCount` example above, where the additional signal and effect can be replaced with a derived signal: ```jsx del={5, 11-13} ins={15} -import { createSignal } from "solid-js" +import { createSignal } from "solid-js"; function Counter() { const [count, setCount] = createSignal(0); @@ -175,7 +175,7 @@ function Counter() { setDoubleCount(count() * 2); // Update doubleCount whenever count changes }); - const doubleCount = () => count() * 2 + const doubleCount = () => count() * 2; return ( <> @@ -192,20 +192,20 @@ While this approach works for simple use cases, if `doubleCount` is used several The derived signal would be re-evaluated not just each time `count` is changed, but also for each use of `doubleCount()`. ```jsx del={10} ins={11-14, 20-21} -import { createSignal } from "solid-js" +import { createSignal } from "solid-js"; function Counter() { - const [count, setCount] = createSignal(0) + const [count, setCount] = createSignal(0); const increment = () => { - setCount(count() + 1) - } + setCount(count() + 1); + }; - const doubleCount = () => count() * 2 + const doubleCount = () => count() * 2; const doubleCount = () => { - console.log('doubleCount called') - return count() * 2 - } + console.log("doubleCount called"); + return count() * 2; + }; return ( <> @@ -215,7 +215,7 @@ function Counter() {
    Doubled count: {doubleCount()}
    - ) + ); } ``` @@ -231,24 +231,24 @@ When using a memo, the calculation will only run **once** when the value of `cou Using the [`createMemo`](/reference/basic-reactivity/create-memo) function, you can create a memoized value: ```jsx ins={15-18, 26-28} ins=", createMemo" -import { createSignal, createMemo } from "solid-js" +import { createSignal, createMemo } from "solid-js"; function Counter() { - const [count, setCount] = createSignal(0) + const [count, setCount] = createSignal(0); const increment = () => { setCount((prev) => prev + 1); }; const doubleCount = () => { - console.log('doubleCount called') - return count() * 2 - } + console.log("doubleCount called"); + return count() * 2; + }; const doubleCountMemo = createMemo(() => { - console.log('doubleCountMemo called') - return count() * 2 - }) + console.log("doubleCountMemo called"); + return count() * 2; + }); return ( <> diff --git a/src/routes/guides/styling-components/less.mdx b/src/routes/guides/styling-components/less.mdx index ba92f217c4..b877a2845f 100644 --- a/src/routes/guides/styling-components/less.mdx +++ b/src/routes/guides/styling-components/less.mdx @@ -18,17 +18,9 @@ npm i --save-dev less ```
    -
    -```bash frame="none" -yarn add --dev less -``` -
    +
    ```bash frame="none" yarn add --dev less ```
    -
    -```bash frame="none" -pnpm add --dev less -``` -
    +
    ```bash frame="none" pnpm add --dev less ```
    ```bash frame="none" diff --git a/src/routes/guides/styling-components/macaron.mdx b/src/routes/guides/styling-components/macaron.mdx index 029fd66f9d..00085622db 100644 --- a/src/routes/guides/styling-components/macaron.mdx +++ b/src/routes/guides/styling-components/macaron.mdx @@ -18,15 +18,11 @@ npm install @macaron-css/core @macaron-css/solid
    -```bash frame="none" -yarn add @macaron-css/core @macaron-css/solid -``` + ```bash frame="none" yarn add @macaron-css/core @macaron-css/solid ```
    -```bash frame="none" -pnpm add @macaron-css/core @macaron-css/solid -``` + ```bash frame="none" pnpm add @macaron-css/core @macaron-css/solid ```
    @@ -36,7 +32,6 @@ bun add @macaron-css/core @macaron-css/solid
    - 2. Within your `vite.config.js` folder, add the macaron plugin prior to other plugins: ```js diff --git a/src/routes/guides/styling-components/sass.mdx b/src/routes/guides/styling-components/sass.mdx index cbf5326780..4ee234fea9 100644 --- a/src/routes/guides/styling-components/sass.mdx +++ b/src/routes/guides/styling-components/sass.mdx @@ -18,17 +18,9 @@ npm i --save-dev sass ```
    -
    -```bash frame="none" -yarn add --dev sass -``` -
    +
    ```bash frame="none" yarn add --dev sass ```
    -
    -```bash frame="none" -pnpm add --save-dev sass -``` -
    +
    ```bash frame="none" pnpm add --save-dev sass ```
    ```bash frame="none" diff --git a/src/routes/guides/styling-components/tailwind-v3.mdx b/src/routes/guides/styling-components/tailwind-v3.mdx index cd820ad7ee..8e1e203139 100644 --- a/src/routes/guides/styling-components/tailwind-v3.mdx +++ b/src/routes/guides/styling-components/tailwind-v3.mdx @@ -18,15 +18,12 @@ npm i --save-dev tailwindcss@3 postcss autoprefixer
    -```bash frame="none" -yarn add --dev tailwindcss@3 postcss autoprefixer -``` + ```bash frame="none" yarn add --dev tailwindcss@3 postcss autoprefixer ```
    -```bash frame="none" -pnpm add --save-dev tailwindcss@3 postcss autoprefixer -``` + ```bash frame="none" pnpm add --save-dev tailwindcss@3 postcss autoprefixer + ```
    @@ -45,17 +42,9 @@ npx tailwindcss init -p ```
    -
    -```bash frame="none" -yarn dlx tailwindcss init -p -``` -
    +
    ```bash frame="none" yarn dlx tailwindcss init -p ```
    -
    -```bash frame="none" -pnpm dlx tailwindcss init -p -``` -
    +
    ```bash frame="none" pnpm dlx tailwindcss init -p ```
    ```bash frame="none" diff --git a/src/routes/guides/styling-components/tailwind.mdx b/src/routes/guides/styling-components/tailwind.mdx index 32dc3057b4..69e97e9012 100644 --- a/src/routes/guides/styling-components/tailwind.mdx +++ b/src/routes/guides/styling-components/tailwind.mdx @@ -10,7 +10,7 @@ This guide is for Tailwind CSS v4. For **Tailwind CSS v3** refer to [Tailwind CS -[Tailwind CSS](https://tailwindcss.com/) is an on-demand utility CSS library that integrates seamlessly with Solid as a built-in PostCSS plugin. +[Tailwind CSS](https://tailwindcss.com/) is an on-demand utility CSS library that integrates seamlessly with Solid as a built-in PostCSS plugin. ## Installation @@ -53,8 +53,8 @@ bun add --save-dev tailwindcss @tailwindcss/postcss postcss export default { plugins: { "@tailwindcss/postcss": {}, - } -} + }, +}; ``` For a deeper dive into configuration, you can check out the [Tailwind Official Documentation](https://tailwindcss.com/docs/configuration). @@ -67,7 +67,6 @@ Add an `@import` to your `src/index.css` file that imports Tailwind CSS. @import "tailwindcss"; ``` - ## Import your CSS file Import your `index.css` file into the root `index.jsx` or `index.tsx` file: diff --git a/src/routes/guides/styling-components/uno.mdx b/src/routes/guides/styling-components/uno.mdx index 37b4a99b37..bc4f5d7107 100644 --- a/src/routes/guides/styling-components/uno.mdx +++ b/src/routes/guides/styling-components/uno.mdx @@ -9,6 +9,7 @@ mainNavExclude: true ## Install Vite plugin To get started with UnoCSS in your Solid app: +
    ```bash frame="none" @@ -16,17 +17,9 @@ npm i --save-dev unocss ```
    -
    -```bash frame="none" -yarn add --dev unocss -``` -
    +
    ```bash frame="none" yarn add --dev unocss ```
    -
    -```bash frame="none" -pnpm add --save-dev unocss -``` -
    +
    ```bash frame="none" pnpm add --save-dev unocss ```
    ```bash frame="none" diff --git a/src/routes/guides/testing.mdx b/src/routes/guides/testing.mdx index d0a1001c6e..253b40918e 100644 --- a/src/routes/guides/testing.mdx +++ b/src/routes/guides/testing.mdx @@ -15,29 +15,25 @@ Testing your Solid applications is important to inspiring confidence in your cod - [`@testing-library/user-event`](https://testing-library.com/docs/user-event/intro) - used to simulate user events that are closer to reality - [`@testing-library/jest-dom`](https://testing-library.com/docs/ecosystem-jest-dom) - augments expect with helpful matchers - ### Adding testing packages -The recommended testing framework for Solid applications is [vitest](https://vitest.dev). +The recommended testing framework for Solid applications is [vitest](https://vitest.dev). To get started with vitest, install the following development dependencies: -
    -```bash frame="none" -npm i -D vitest jsdom @solidjs/testing-library @testing-library/user-event @testing-library/jest-dom -``` -
    -
    -```bash frame="none" -yarn add -D vitest jsdom @solidjs/testing-library @testing-library/user-event @testing-library/jest-dom -``` -
    -
    -```bash frame="none" -pnpm i -D vitest jsdom @solidjs/testing-library @testing-library/user-event @testing-library/jest-dom -``` -
    +
    + ```bash frame="none" npm i -D vitest jsdom @solidjs/testing-library + @testing-library/user-event @testing-library/jest-dom ``` +
    +
    + ```bash frame="none" yarn add -D vitest jsdom @solidjs/testing-library + @testing-library/user-event @testing-library/jest-dom ``` +
    +
    + ```bash frame="none" pnpm i -D vitest jsdom @solidjs/testing-library + @testing-library/user-event @testing-library/jest-dom ``` +
    ### Testing configuration @@ -70,15 +66,15 @@ If using TypeScript, add `@testing-library/jest-dom` to `tsconfig.json#compilerO When using [SolidStart](/solid-start), create a `vitest.config.ts` file: ```ts title="vitest.config.ts" -import solid from "vite-plugin-solid" -import { defineConfig } from "vitest/config" +import solid from "vite-plugin-solid"; +import { defineConfig } from "vitest/config"; export default defineConfig({ - plugins: [solid()], - resolve: { - conditions: ["development", "browser"], - }, -}) + plugins: [solid()], + resolve: { + conditions: ["development", "browser"], + }, +}); ``` ## Writing tests @@ -105,13 +101,14 @@ import { Counter } from "./Counter" const user = userEvent.setup() test("increments value", async () => { - const { getByRole } = render(() => ) - const counter = getByRole('button') - expect(counter).toHaveTextContent("1") - await user.click(counter) - expect(counter).toHaveTextContent("2") +const { getByRole } = render(() => ) +const counter = getByRole('button') +expect(counter).toHaveTextContent("1") +await user.click(counter) +expect(counter).toHaveTextContent("2") }) -``` + +````
    ```jsx frame="none" @@ -123,7 +120,8 @@ export const Counter = () => { ); } -``` +```` +
    @@ -134,21 +132,9 @@ The [`expect` function provided by `vitest`](https://vitest.dev/api/expect.html) To run this test, use the following command: -
    -```bash frame="none" -npm test -``` -
    -
    -```bash frame="none" -yarn test -``` -
    -
    -```bash frame="none" -pnpm test -``` -
    +
    ```bash frame="none" npm test ```
    +
    ```bash frame="none" yarn test ```
    +
    ```bash frame="none" pnpm test ```
    If running the command is successful, you will get the following result showing whether the tests have passed or failed: @@ -170,30 +156,31 @@ environment 880ms, prepare 212ms) #### Rendering the component -The `render` function from `@solidjs/testing-library` creates the testing environment within the `test.tsx` file. +The `render` function from `@solidjs/testing-library` creates the testing environment within the `test.tsx` file. It sets up the container, rendering the component within it, and automatically registers it for clean-up after a successful test. Additionally, it manages wrapping the component in contexts as well as setting up a router. ```tsx frame="none" const renderResult = render( - () => , // @solidjs/testing-library requires a function - { // all options are optional - container, // manually set up your own container, will not be handled - baseElement, // parent of container in case it is not supplied - queries, // manually set up custom queries - hydrate, // set to `true` to use hydration - wrapper, // reusable wrapper component to supply context - location, // sets up a router pointed to the location if provided - } -) + () => , // @solidjs/testing-library requires a function + { + // all options are optional + container, // manually set up your own container, will not be handled + baseElement, // parent of container in case it is not supplied + queries, // manually set up custom queries + hydrate, // set to `true` to use hydration + wrapper, // reusable wrapper component to supply context + location, // sets up a router pointed to the location if provided + } +); const { - asFragment, // function returning the contents of the container - baseElement, // the parent of the container - container, // the container in which the component is rendered - debug, // a function giving some helpful debugging output - unmount, // manually removing the component from the container - ...queries, // functions to select elements from the container -} = renderResult + asFragment, // function returning the contents of the container + baseElement, // the parent of the container + container, // the container in which the component is rendered + debug, // a function giving some helpful debugging output + unmount, // manually removing the component from the container + ...queries // functions to select elements from the container +} = renderResult; ``` ##### Using the right queries @@ -223,7 +210,7 @@ If there are multiple elements matching the same query, `getAllBy...` should be There are two exceptions when you should **not** start with `get...`: 1. If the `location` option is used or the component is based on resources, the router will be lazy-loaded; in this case, the first query after rendering needs to be `find...` -2. When testing something that is *not* rendered, you will need to find something that will be rendered at the same time; after that, use `queryAllBy...` to test if the result is an empty array (`[]`). +2. When testing something that is _not_ rendered, you will need to find something that will be rendered at the same time; after that, use `queryAllBy...` to test if the result is an empty array (`[]`). The query's suffix (Role, LabelText, ...) depends on the characteristics of the element you want to select. If possible, try to select for accessible attributes (roughly in the following order): @@ -235,7 +222,7 @@ If possible, try to select for accessible attributes (roughly in the following o - **DisplayValue**: form elements showing the given value (e.g. select elements) - **AltText**: images with alt text - **Title**: HTML elements with the `title` attribute or SVGs with the `` tag containing the given text -- **TestId**: queries by the `data-testid` attribute; a different data attribute can be setup via `configure({testIdAttribute: 'data-my-test-attribute'})`; TestId-queries are *not accessible*, so use them only as a last resort. +- **TestId**: queries by the `data-testid` attribute; a different data attribute can be setup via `configure({testIdAttribute: 'data-my-test-attribute'})`; TestId-queries are _not accessible_, so use them only as a last resort. For more information, check the [testing-library documentation](https://testing-library.com/docs/queries/about). @@ -251,11 +238,12 @@ import { render, screen } from "@solidjs/testing-library" import { Toast } from "./Toast" test("increments value", async () => { - render(() => <Toast><p>This is a toast</p></Toast>) - const toast = screen.getByRole("log") - expect(toast).toHaveTextContent("This is a toast") +render(() => <Toast><p>This is a toast</p></Toast>) +const toast = screen.getByRole("log") +expect(toast).toHaveTextContent("This is a toast") }) -``` + +```` </div> <div id="Toast.jsx"> ```jsx frame="none" @@ -270,7 +258,8 @@ export const Toast = (props) => { </Portal> ); } -``` +```` + </div> </TabsCodeBlocks> @@ -279,15 +268,15 @@ export const Toast = (props) => { If a component relies on some context, to wrap it use the `wrapper` option: ```tsx title="Context.test.tsx" -import { test, expect } from "vitest" -import { render } from "@solidjs/testing-library" -import { DataContext, DataConsumer } from "./Data" +import { test, expect } from "vitest"; +import { render } from "@solidjs/testing-library"; +import { DataContext, DataConsumer } from "./Data"; -const wrapper = (props) => <DataContext value="test" {...props} /> +const wrapper = (props) => <DataContext value="test" {...props} />; test("receives data from context", () => { - const { getByText } = render(() => <DataConsumer />, { wrapper }) - expect(getByText("test")).toBeInTheDocument() + const { getByText } = render(() => <DataConsumer />, { wrapper }); + expect(getByText("test")).toBeInTheDocument(); }); ``` @@ -295,8 +284,9 @@ Wrappers can be re-used if they are created externally. For wrappers with different values, a higher-order component creating the required wrappers can make the tests more concise: ```tsx -const createWrapper = (value) => (props) => - <DataContext value={value} {...props}/> +const createWrapper = (value) => (props) => ( + <DataContext value={value} {...props} /> +); ``` :::info[Using multiple providers] @@ -310,10 +300,10 @@ Since the `<Router>` component is lazily loaded, the first query after rendering ```tsx const { findByText } = render( - () => <Route path="/article/:id" component={Article} />, - { location: "/article/12345" } + () => <Route path="/article/:id" component={Article} />, + { location: "/article/12345" } ); -expect(await findByText("Article 12345")).toBeInTheDocument() +expect(await findByText("Article 12345")).toBeInTheDocument(); ``` #### Interacting with components @@ -327,7 +317,6 @@ For example, this means that a `click` event from the user would be accompanied The most convenient events to test are typically `click`, `keyboard` and `pointer` (to simulate touch events). To dive deeper into these events, you can learn about them in the [`user-event` documentation](https://testing-library.com/docs/user-event/intro). - ##### Using timers If you require a fake timer and want to use `vi.useFakeTimers()` in your tests, it must set it up with an `advanceTimers` option: @@ -363,7 +352,7 @@ describe("pre-login: sign-in", () => { `vitest` comes with the `expect` function to facilitate assertions that works like: ```tsx frame="none" -expect(subject)[assertion](value) +expect(subject)[assertion](value); ``` The command supports assertions like `toBe` (reference comparison) and `toEqual` (value comparison) out of the box. @@ -376,25 +365,23 @@ For testing inside the DOM, the package `@testing-library/jest-dom` augments it - [`.toHaveAccessibleDescription(description)`](https://github.com/testing-library/jest-dom?tab=readme-ov-file#tohaveaccessibledescription) - checks accessible description - and a [lot more](https://github.com/testing-library/jest-dom?tab=readme-ov-file#custom-matchers). - ### Directive testing [Directives](/reference/jsx-attributes/use) are reusable behaviors for elements. They receive the HTML element they are bound to as their first and an accessor of the directive prop as their second argument. To make testing them more concise, [`@solidjs/testing-library` has a `renderDirective`](https://testing-library.com/docs/solid-testing-library/api#renderdirective) function: - ```ts frame="none" const renderResult = renderDirective(directive, { - initialValue, // value initially added to the argument signal - targetElement, // opt. node name or element used as target for the directive - ...renderOptions, // see render options -}) + initialValue, // value initially added to the argument signal + targetElement, // opt. node name or element used as target for the directive + ...renderOptions, // see render options +}); const { - arg, // getter for the directive's argument - setArg, // setter for the directive's argument - ...renderResults, // see render results -} = renderResult + arg, // getter for the directive's argument + setArg, // setter for the directive's argument + ...renderResults // see render results +} = renderResult; ``` In `...renderResults`, the container will contain the `targetElement`, which defaults to a `<div>`. @@ -410,13 +397,14 @@ import { renderDirective } from "@solidjs/testing-library" import { createFullScreen } from "./fullscreen" test("toggles fullscreen", () => { - const targetElement = document.createElement("div") - const fs = vi.spyOn(targetElement, "fullscreen") - const [setArg, container] = renderDirective(createFullScreen, false) - setArg(true) - expect(fs).toHaveBeenCalled() +const targetElement = document.createElement("div") +const fs = vi.spyOn(targetElement, "fullscreen") +const [setArg, container] = renderDirective(createFullScreen, false) +setArg(true) +expect(fs).toHaveBeenCalled() }) -``` + +```` </div> <div id="fullscreen.ts"> ```ts frame="none" @@ -431,7 +419,8 @@ export const fullscreen = (ref: HTMLElement, active: Accessor<boolean>) => document.exitFullScreen() } }) -``` +```` + </div> </TabsCodeBlocks> @@ -443,32 +432,31 @@ To avoid this, there is a [`renderHook` utility](https://testing-library.com/doc ```ts frame="none" const renderResult = renderHook(hook, { - initialProps, // an array with arguments being supplied to the hook - wrapper, // same as the wrapper optionss for `render` -}) + initialProps, // an array with arguments being supplied to the hook + wrapper, // same as the wrapper optionss for `render` +}); const { - result, // return value of the hook (mutable, destructuring fixes it) - cleanup, // manually remove the traces of the test from the DOM - owner, // the owner running the hook to use with `runWithOwner()` -} = renderResult + result, // return value of the hook (mutable, destructuring fixes it) + cleanup, // manually remove the traces of the test from the DOM + owner, // the owner running the hook to use with `runWithOwner()` +} = renderResult; ``` A primitive that manages the state of a counter could be tested like this: ```ts frame="none" -import { test, expect } from "vitest" -import { renderHook } from "@solidjs/testing-library" -import { createCounter } from "./counter" +import { test, expect } from "vitest"; +import { renderHook } from "@solidjs/testing-library"; +import { createCounter } from "./counter"; test("increments count", () => { - const { result } = renderHook(createCounter) - expect(result.count).toBe(0) - result.increment() - expect(result.count).toBe(1) -}) + const { result } = renderHook(createCounter); + expect(result.count).toBe(0); + result.increment(); + expect(result.count).toBe(1); +}); ``` - ### Testing effects Since effects may happen asynchronously, it can be difficult to test them. @@ -479,19 +467,19 @@ Any errors that would hit the next boundary are used to reject the returned prom An example test using `testEffect` may look like this: ```ts frame="none" -const [value, setValue] = createSignal(0) -return testEffect(done => - createEffect((run: number = 0) => { - if (run === 0) { - expect(value()).toBe(0) - setValue(1) - } else if (run === 1) { - expect(value()).toBe(1) - done() - } - return run + 1 - }) -) +const [value, setValue] = createSignal(0); +return testEffect((done) => + createEffect((run: number = 0) => { + if (run === 0) { + expect(value()).toBe(0); + setValue(1); + } else if (run === 1) { + expect(value()).toBe(1); + done(); + } + return run + 1; + }) +); ``` ### Benchmarks @@ -500,40 +488,51 @@ While Solid offers performance simplified, it is good to validate if that promis Vitest offers an experimental `bench` function to run benchmarks and compare the results inside the same `describe` block; for example if you had a `<List>` flow component similar to `<For>`, you could benchmark it like this: - ```jsx title="list.bench.jsx" -describe('list rendering', () => { - const ITEMS = 1000 - const renderedFor = new Set() - const listFor = Array.from({ length: ITEMS }, (_, i) => i) - bench('For', () => new Promise((resolve) => { - const ItemFor = (props) => { - onMount(() => { - renderedFor.add(props.number) - if (renderedFor.size === ITEMS) { resolve() } - }) - return <span>{props.number}</span> - } - render(() => <For each={listFor}> - {(item) => <ItemFor number={item} />} - </For>) - })) - - const renderedList = new Set() - const listList = Array.from({ length: ITEMS }, (_, i) => i) - bench('List', () => new Promise((resolve) => { - const ItemList = (props) => { - onMount(() => { - renderedList.add(props.number) - if (renderedList.size === ITEMS) { resolve() } - }) - return <span>{props.number}</span> - } - render(() => <List each={listList}> - {(item) => <ItemList number={item} />} - </List>) - })) -}) +describe("list rendering", () => { + const ITEMS = 1000; + const renderedFor = new Set(); + const listFor = Array.from({ length: ITEMS }, (_, i) => i); + bench( + "For", + () => + new Promise((resolve) => { + const ItemFor = (props) => { + onMount(() => { + renderedFor.add(props.number); + if (renderedFor.size === ITEMS) { + resolve(); + } + }); + return <span>{props.number}</span>; + }; + render(() => ( + <For each={listFor}>{(item) => <ItemFor number={item} />}</For> + )); + }) + ); + + const renderedList = new Set(); + const listList = Array.from({ length: ITEMS }, (_, i) => i); + bench( + "List", + () => + new Promise((resolve) => { + const ItemList = (props) => { + onMount(() => { + renderedList.add(props.number); + if (renderedList.size === ITEMS) { + resolve(); + } + }); + return <span>{props.number}</span>; + }; + render(() => ( + <List each={listList}>{(item) => <ItemList number={item} />}</List> + )); + }) + ); +}); ``` Running `[npm|pnpm|yarn] test bench` will then execute the benchmark function: @@ -556,33 +555,19 @@ Running `[npm|pnpm|yarn] test bench` will then execute the benchmark function: Please keep in mind that it is very difficult to create meaningful benchmarks. The numbers should always be taken with a grain of salt, but can still indicate performance degradations if compared between versions. - ### Test coverage While coverage numbers can be misleading, they are used by many projects as a rough measurement of code quality. Vitest supports coverage collection. To use it, it needs an extra package: <TabsCodeBlocks> - <div id="npm"> -```bash frame="none" -npm i -D @vitest/coverage-v8 -``` - </div> - <div id="yarn"> -```bash frame="none" -yarn add -D @vitest/coverage-v8 -``` - </div> - <div id="pnpm"> -```bash frame="none" -pnpm i -D @vitest/coverage-v8 -``` - </div> + <div id="npm">```bash frame="none" npm i -D @vitest/coverage-v8 ```</div> + <div id="yarn">```bash frame="none" yarn add -D @vitest/coverage-v8 ```</div> + <div id="pnpm">```bash frame="none" pnpm i -D @vitest/coverage-v8 ```</div> </TabsCodeBlocks> Also, you need to [set up vitest's coverage feature](https://vitest.dev/guide/coverage.html). - ### Integration/E2E testing Some issues can only be found once the code is running in the environment it is supposed to run in. diff --git a/src/routes/quick-start.mdx b/src/routes/quick-start.mdx index f9df35feb3..9f96bf1f2f 100644 --- a/src/routes/quick-start.mdx +++ b/src/routes/quick-start.mdx @@ -32,21 +32,15 @@ npx degit solidjs/templates/js my-app </div> <div id="yarn"> -```bash frame="none" -yarn dlx degit solidjs/templates/js my-app -``` + ```bash frame="none" yarn dlx degit solidjs/templates/js my-app ``` </div> <div id="pnpm"> -```bash frame="none" -pnpm dlx degit solidjs/templates/js my-app -``` + ```bash frame="none" pnpm dlx degit solidjs/templates/js my-app ``` </div> <div id="bun"> -```bash frame="none" -bunx degit solidjs/templates/js my-app -``` + ```bash frame="none" bunx degit solidjs/templates/js my-app ``` </div> <div id="deno"> @@ -56,7 +50,6 @@ deno -A npm:degit solidjs/templates/js my-app </div> </TabsCodeBlocks> - 2. Navigate to your application's directory: ```bash frame="none" @@ -72,23 +65,11 @@ npm install ``` </div> -<div id="yarn"> -```bash frame="none" -yarn install -``` -</div> +<div id="yarn">```bash frame="none" yarn install ```</div> -<div id="pnpm"> -```bash frame="none" -pnpm install -``` -</div> +<div id="pnpm">```bash frame="none" pnpm install ```</div> -<div id="bun"> -```bash frame="none" -bun install -``` -</div> +<div id="bun">```bash frame="none" bun install ```</div> <div id="deno"> ```bash frame="none" @@ -106,17 +87,9 @@ npm run dev ``` </div> -<div id="yarn"> -```bash frame="none" -yarn dev -``` -</div> +<div id="yarn">```bash frame="none" yarn dev ```</div> -<div id="pnpm"> -```bash frame="none" -pnpm dev -``` -</div> +<div id="pnpm">```bash frame="none" pnpm dev ```</div> <div id="bun"> ```bash frame="none" @@ -145,15 +118,11 @@ npx degit solidjs/templates/ts my-app </div> <div id="yarn"> -```bash frame="none" -yarn dlx degit solidjs/templates/ts my-app -``` + ```bash frame="none" yarn dlx degit solidjs/templates/ts my-app ``` </div> <div id="pnpm"> -```bash frame="none" -pnpm dlx degit solidjs/templates/ts my-app -``` + ```bash frame="none" pnpm dlx degit solidjs/templates/ts my-app ``` </div> <div id="bun"> @@ -183,17 +152,9 @@ npm install ``` </div> -<div id="yarn"> -```bash frame="none" -yarn install -``` -</div> +<div id="yarn">```bash frame="none" yarn install ```</div> -<div id="pnpm"> -```bash frame="none" -pnpm install -``` -</div> +<div id="pnpm">```bash frame="none" pnpm install ```</div> <div id="bun"> ```bash frame="none" @@ -216,17 +177,9 @@ npm run dev ``` </div> -<div id="yarn"> -```bash frame="none" -yarn dev -``` -</div> +<div id="yarn">```bash frame="none" yarn dev ```</div> -<div id="pnpm"> -```bash frame="none" -pnpm dev -``` -</div> +<div id="pnpm">```bash frame="none" pnpm dev ```</div> <div id="bun"> ```bash frame="none" @@ -240,7 +193,6 @@ deno task dev </div> </TabsCodeBlocks> - This will start the development server. Now, you can open your browser and navigate to `localhost:3000` to see your application running. diff --git a/src/routes/reference/basic-reactivity/create-effect.mdx b/src/routes/reference/basic-reactivity/create-effect.mdx index d935019670..4b5cb7a483 100644 --- a/src/routes/reference/basic-reactivity/create-effect.mdx +++ b/src/routes/reference/basic-reactivity/create-effect.mdx @@ -3,10 +3,9 @@ title: createEffect --- ```tsx -import { createEffect } from "solid-js" - -function createEffect<T>(fn: (v: T) => T, value?: T): void +import { createEffect } from "solid-js"; +function createEffect<T>(fn: (v: T) => T, value?: T): void; ``` Effects are a general way to make arbitrary code ("side effects") run whenever dependencies change, e.g., to modify the DOM manually. @@ -15,10 +14,10 @@ Effects are a general way to make arbitrary code ("side effects") run whenever d For example: ```tsx -const [a, setA] = createSignal(initialValue) +const [a, setA] = createSignal(initialValue); // effect that depends on signal `a` -createEffect(() => doSideEffect(a())) +createEffect(() => doSideEffect(a())); ``` The effect will run whenever `a` changes value. @@ -30,15 +29,15 @@ The effect callback can return a value, which will be passed as the `prev` argum This is useful for memoizing values that are expensive to compute. For example: ```tsx -const [a, setA] = createSignal(initialValue) +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) + const sum = a() + b(); + if (sum !== prevSum) console.log("sum changed to", sum); + return sum; +}, 0); // ^ the initial value of the effect is 0 ``` @@ -50,21 +49,21 @@ If you want to wait for the first execution to occur, use [queueMicrotask](https ```tsx // assume this code is in a component function, so is part of a rendering phase -const [count, setCount] = createSignal(0) +const [count, setCount] = createSignal(0); // this effect prints count at the beginning and when it changes -createEffect(() => console.log("count =", count())) +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 +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") -}) + console.log("microtask"); + setCount(3); // immediately prints `count = 3` + console.log("goodbye"); +}); // --- overall output: --- // hello @@ -91,11 +90,11 @@ For example: ```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)) -}) + const event = eventName(); + const callback = (e) => console.log(e); + ref.addEventListener(event, callback); + onCleanup(() => ref.removeEventListener(event, callback)); +}); ``` ## Arguments diff --git a/src/routes/reference/basic-reactivity/create-memo.mdx b/src/routes/reference/basic-reactivity/create-memo.mdx index 58f21b1401..c328704c53 100644 --- a/src/routes/reference/basic-reactivity/create-memo.mdx +++ b/src/routes/reference/basic-reactivity/create-memo.mdx @@ -2,36 +2,35 @@ title: createMemo --- -Memos let you efficiently use a derived value in many reactive computations. +Memos let you efficiently use a derived value in many reactive computations. `createMemo` creates a readonly reactive value equal to the return value of the given function and makes sure that function only gets executed when its dependencies change. ```tsx -import { createMemo } from "solid-js" +import { createMemo } from "solid-js"; function createMemo<T>( fn: (v: T) => T, value?: T, options?: { equals?: false | ((prev: T, next: T) => boolean) } -): () => T - +): () => T; ``` Here's an example of how createMemo can be used: ```ts -const value = createMemo(() => computeExpensiveValue(a(), b())) +const value = createMemo(() => computeExpensiveValue(a(), b())); //read the value -value() +value(); ``` -In Solid, you often don't need to wrap functions in memos; you can alternatively just define and call a regular function to get similar reactive behavior. -The main difference is when you call the function in multiple reactive settings. -In this case, when the function's dependencies update, the function will get called multiple times unless it is wrapped in createMemo. +In Solid, you often don't need to wrap functions in memos; you can alternatively just define and call a regular function to get similar reactive behavior. +The main difference is when you call the function in multiple reactive settings. +In this case, when the function's dependencies update, the function will get called multiple times unless it is wrapped in createMemo. For example: ```tsx -const user = createMemo(() => searchForUser(username())) +const user = createMemo(() => searchForUser(username())); // compare with: const user = () => searchForUser(username()); return ( <ul> @@ -40,27 +39,27 @@ return ( Your email is <code>{user()?.email}</code> </li> </ul> -) +); ``` -When the username signal updates, searchForUser will get called just once. +When the username signal updates, searchForUser will get called just once. If the returned user actually changed, the user memo updates, and then both list items will update automatically. If we had instead defined user as a plain function `() => searchForUser(username())`, then `searchForUser` would have been called twice, once when updating each list item. -Another key difference is that a memo can shield dependents from updating when the memo's dependencies change but the resulting memo value doesn't. -Like [createSignal](/reference/basic-reactivity/create-signal), the derived signal made by `createMemo` updates (and triggers dependents to rerun) only when the value returned by the memo function actually changes from the previous value, according to JavaScript's `===` operator. +Another key difference is that a memo can shield dependents from updating when the memo's dependencies change but the resulting memo value doesn't. +Like [createSignal](/reference/basic-reactivity/create-signal), the derived signal made by `createMemo` updates (and triggers dependents to rerun) only when the value returned by the memo function actually changes from the previous value, according to JavaScript's `===` operator. Alternatively, you can pass an options object with `equals` set to false to always update the memo when its dependencies change, or you can pass your own `equals` function for testing equality. -The memo function is called with an argument equal to the value returned from the previous execution of the memo function, or, on the first call, equal to the optional second argument to `createMemo`. +The memo function is called with an argument equal to the value returned from the previous execution of the memo function, or, on the first call, equal to the optional second argument to `createMemo`. This is useful for reducing computations, such as: ```tsx // track the sum of all values taken on by input() as it updates -const sum = createMemo((prev) => input() + prev, 0) +const sum = createMemo((prev) => input() + prev, 0); ``` -The memo function should not change other signals by calling setters (it should be "pure"). +The memo function should not change other signals by calling setters (it should be "pure"). This enables Solid to optimize the execution order of memo updates according to their dependency graph, so that all memos can update at most once in response to a dependency change. ## Options and arguments diff --git a/src/routes/reference/basic-reactivity/create-resource.mdx b/src/routes/reference/basic-reactivity/create-resource.mdx index e95b4aee91..e8de5b3ebc 100644 --- a/src/routes/reference/basic-reactivity/create-resource.mdx +++ b/src/routes/reference/basic-reactivity/create-resource.mdx @@ -4,26 +4,26 @@ title: createResource `createResource` takes an asynchronous fetcher function and returns a signal that is updated with the resulting data when the fetcher completes. -There are two ways to use `createResource`: you can pass the fetcher function as the sole argument, or you can additionally pass a source signal as the first argument. +There are two ways to use `createResource`: you can pass the fetcher function as the sole argument, or you can additionally pass a source signal as the first argument. The source signal will retrigger the fetcher whenever it changes, and its value will be passed to the fetcher. ```tsx -const [data, { mutate, refetch }] = createResource(fetchData) +const [data, { mutate, refetch }] = createResource(fetchData); ``` ```tsx -const [data, { mutate, refetch }] = createResource(source, fetchData) +const [data, { mutate, refetch }] = createResource(source, fetchData); ``` -In these snippets, the fetcher is the function `fetchData`, and `data()` is undefined until `fetchData` finishes resolving. -In the first case, `fetchData` will be called immediately. -In the second, `fetchData` will be called as soon as `source` has any value other than false, null, or undefined. +In these snippets, the fetcher is the function `fetchData`, and `data()` is undefined until `fetchData` finishes resolving. +In the first case, `fetchData` will be called immediately. +In the second, `fetchData` will be called as soon as `source` has any value other than false, null, or undefined. It will be called again whenever the value of `source` changes, and that value will always be passed to `fetchData` as its first argument. -You can call `mutate` to directly update the `data` signal (it works like any other signal setter). +You can call `mutate` to directly update the `data` signal (it works like any other signal setter). You can also call refetch to rerun the fetcher directly, and pass an optional argument to provide additional info to the fetcher e.g `refetch(info)`. -`data` works like a normal signal getter: use `data()` to read the last returned value of `fetchData`. +`data` works like a normal signal getter: use `data()` to read the last returned value of `fetchData`. But it also has extra reactive properties: - `data.loading`: whether the fetcher has been called but not returned. @@ -33,8 +33,8 @@ But it also has extra reactive properties: - Fetcher throws an `Error` instance, `data.error` will be that instance. - If the fetcher throws a string, `data.error.message` will contain that string. - When the fetcher throws a value that is neither an `Error` nor a string, that value will be available as `data.error.cause`. - -- As of **v1.4.0**, `data.latest` returns the last value received and will not trigger [Suspense](/reference/components/suspense) or [transitions](#TODO); if no value has been returned yet, `data.latest` will act the same as `data()`. + +- As of **v1.4.0**, `data.latest` returns the last value received and will not trigger [Suspense](/reference/components/suspense) or [transitions](#TODO); if no value has been returned yet, `data.latest` will act the same as `data()`. This can be useful if you want to show the out-of-date data while the new data is loading. `loading`, `error`, and `latest` are reactive getters and can be tracked. @@ -42,9 +42,9 @@ But it also has extra reactive properties: ## The fetcher The `fetcher` is the async function that you provide to `createResource` to actually fetch the data. -It is passed two arguments: the value of the source signal (if provided), and an info object with two properties: `value` and `refetching`. -The `value` property tells you the previously fetched value. -The `refetching` property is true if the `fetcher` was triggered using the refetch function and false otherwise. +It is passed two arguments: the value of the source signal (if provided), and an info object with two properties: `value` and `refetching`. +The `value` property tells you the previously fetched value. +The `refetching` property is true if the `fetcher` was triggered using the refetch function and false otherwise. If the `refetch` function was called with an argument (`refetch(info)`), refetching is set to that argument. ```tsx @@ -56,23 +56,22 @@ async function fetchData(source, { value, refetching }) { // or equal to the optional data passed: `refetch(info)` } -const [data, { mutate, refetch }] = createResource(getQuery, fetchData) +const [data, { mutate, refetch }] = createResource(getQuery, fetchData); // read value -data() +data(); // check if loading -data.loading +data.loading; // check if errored -data.error +data.error; // directly set value without creating promise -mutate(optimisticValue) +mutate(optimisticValue); // refetch the last request explicitly -refetch() - +refetch(); ``` ## Version 1.4.0 and Later @@ -83,18 +82,18 @@ If you're using `renderToStream`, you can tell Solid to wait for a resource befo ```tsx // fetches a user and streams content as soon as possible -const [user] = createResource(() => params.id, fetchUser) +const [user] = createResource(() => params.id, fetchUser); // fetches a user but only streams content after this resource has loaded const [user] = createResource(() => params.id, fetchUser, { deferStream: true, -}) +}); ``` #### v1.5.0 -1. We've added a new state field which covers a more detailed view of the Resource state beyond `loading` and `error`. -You can now check whether a Resource is `unresolved`, `pending`, `ready`, `refreshing`, or `error`. +1. We've added a new state field which covers a more detailed view of the Resource state beyond `loading` and `error`. + You can now check whether a Resource is `unresolved`, `pending`, `ready`, `refreshing`, or `error`. | State | Value resolved | Loading | Has error | | ------------ | -------------- | ------- | --------- | @@ -105,38 +104,38 @@ You can now check whether a Resource is `unresolved`, `pending`, `ready`, `refre | `error` | No | No | Yes | 2. When server-rendering resources, especially when embedding Solid in other systems that fetch data before rendering, you might want to initialize the resource with this prefetched value instead of fetching again and having the resource serialize it in its own state. -You can use the new `ssrLoadFrom` option for this. -Instead of using the default `server` value, you can pass `initial` and the resource will use `initialValue` as if it were the result of the first fetch for both SSR and hydration. + You can use the new `ssrLoadFrom` option for this. + Instead of using the default `server` value, you can pass `initial` and the resource will use `initialValue` as if it were the result of the first fetch for both SSR and hydration. ```tsx const [data, { mutate, refetch }] = createResource(() => params.id, fetchUser, { initialValue: preloadedData, ssrLoadFrom: "initial", -}) +}); ``` -3. Resources can be set with custom defined storage with the same signature as a Signal by using the storage option. -For example using a custom reconciling store could be done this way: +3. Resources can be set with custom defined storage with the same signature as a Signal by using the storage option. + For example using a custom reconciling store could be done this way: ```tsx function createDeepSignal<T>(value: T): Signal<T> { const [store, setStore] = createStore({ value, - }) + }); return [ () => store.value, (v: T) => { - const unwrapped = unwrap(store.value) - typeof v === "function" && (v = v(unwrapped)) - setStore("value", reconcile(v)) - return store.value + const unwrapped = unwrap(store.value); + typeof v === "function" && (v = v(unwrapped)); + setStore("value", reconcile(v)); + return store.value; }, - ] as Signal<T> + ] as Signal<T>; } const [resource] = createResource(fetcher, { storage: createDeepSignal, -}) +}); ``` This option is still experimental and may change in the future. @@ -159,33 +158,33 @@ The `createResource` function takes an optional third argument, an options objec The function and type definitions for `createResource` are as follows: ```tsx -import { createResource } from "solid-js" -import type { ResourceReturn, ResourceOptions } from "solid-js" +import { createResource } from "solid-js"; +import type { ResourceReturn, ResourceOptions } from "solid-js"; type ResourceReturn<T> = [ { - (): T | undefined - state: "unresolved" | "pending" | "ready" | "refreshing" | "errored" - loading: boolean - error: any - latest: T | undefined + (): T | undefined; + state: "unresolved" | "pending" | "ready" | "refreshing" | "errored"; + loading: boolean; + error: any; + latest: T | undefined; }, { - mutate: (v: T | undefined) => T | undefined - refetch: (info: unknown) => Promise<T> | T - } -] + mutate: (v: T | undefined) => T | undefined; + refetch: (info: unknown) => Promise<T> | T; + }, +]; type ResourceOptions<T, S = unknown> = { - initialValue?: T - name?: string - deferStream?: boolean - ssrLoadFrom?: "initial" | "server" + initialValue?: T; + name?: string; + deferStream?: boolean; + ssrLoadFrom?: "initial" | "server"; storage?: ( init: T | undefined - ) => [Accessor<T | undefined>, Setter<T | undefined>] - onHydrated?: (k: S | undefined, info: { value: T | undefined }) => void -} + ) => [Accessor<T | undefined>, Setter<T | undefined>]; + onHydrated?: (k: S | undefined, info: { value: T | undefined }) => void; +}; function createResource<T, U = true>( fetcher: ( @@ -193,7 +192,7 @@ function createResource<T, U = true>( info: { value: T | undefined; refetching: boolean | unknown } ) => T | Promise<T>, options?: ResourceOptions<T, U> -): ResourceReturn<T> +): ResourceReturn<T>; function createResource<T, U>( source: U | false | null | (() => U | false | null), @@ -202,6 +201,5 @@ function createResource<T, U>( info: { value: T | undefined; refetching: boolean | unknown } ) => T | Promise<T>, options?: ResourceOptions<T, U> -): ResourceReturn<T> - +): ResourceReturn<T>; ``` diff --git a/src/routes/reference/basic-reactivity/create-signal.mdx b/src/routes/reference/basic-reactivity/create-signal.mdx index 475a6092e0..35c2e17d0d 100644 --- a/src/routes/reference/basic-reactivity/create-signal.mdx +++ b/src/routes/reference/basic-reactivity/create-signal.mdx @@ -2,27 +2,26 @@ title: createSignal --- -Signals are the most basic reactive primitive. +Signals are the most basic reactive primitive. They track a single value (which can be a value of any type) that changes over time. ```tsx -import { createSignal } from "solid-js" +import { createSignal } from "solid-js"; function createSignal<T>( initialValue: T, options?: { - equals?: false | ((prev: T, next: T) => boolean) - name?: string - internal?: boolean + equals?: false | ((prev: T, next: T) => boolean); + name?: string; + internal?: boolean; } -): [get: () => T, set: (v: T) => T] +): [get: () => T, set: (v: T) => T]; // available types for return value of createSignal: -import type { Signal, Accessor, Setter } from "solid-js" -type Signal<T> = [get: Accessor<T>, set: Setter<T>] -type Accessor<T> = () => T -type Setter<T> = (v: T | ((prev?: T) => T)) => T - +import type { Signal, Accessor, Setter } from "solid-js"; +type Signal<T> = [get: Accessor<T>, set: Setter<T>]; +type Accessor<T> = () => T; +type Setter<T> = (v: T | ((prev?: T) => T)) => T; ``` The Signal's value starts out equal to the passed first argument `initialValue` (or undefined if there are no arguments). @@ -30,52 +29,51 @@ The `createSignal` function returns a pair of functions as a two-element array: In typical use, you would destructure this array into a named Signal like so: ```tsx -const [count, setCount] = createSignal(0) -const [ready, setReady] = createSignal(false) +const [count, setCount] = createSignal(0); +const [ready, setReady] = createSignal(false); ``` Calling the getter (e.g., `count()` or `ready()`) returns the current value of the Signal. Crucial to automatic dependency tracking, calling the getter within a tracking scope causes the calling function to depend on this Signal, so that function will rerun if the Signal gets updated. -Calling the setter (e.g., `setCount(nextCount)` or `setReady(nextReady)`) sets the Signal's value and updates the Signal (triggering dependents to rerun) if the value actually changed (see details below). -The setter takes either the new value for the signal or a function that maps the previous value of the signal to a new value as its only argument. +Calling the setter (e.g., `setCount(nextCount)` or `setReady(nextReady)`) sets the Signal's value and updates the Signal (triggering dependents to rerun) if the value actually changed (see details below). +The setter takes either the new value for the signal or a function that maps the previous value of the signal to a new value as its only argument. The updated value is also returned by the setter. As an example: ```tsx // read signal's current value, and // depend on signal if in a tracking scope // (but nonreactive outside of a tracking scope): -const currentCount = count() +const currentCount = count(); // or wrap any computation with a function, // and this function can be used in a tracking scope: -const doubledCount = () => 2 * count() +const doubledCount = () => 2 * count(); // or build a tracking scope and depend on signal: -const countDisplay = <div>{count()}</div> +const countDisplay = <div>{count()}</div>; // write signal by providing a value: -setReady(true) +setReady(true); // write signal by providing a function setter: -const newCount = setCount((prev) => prev + 1) - +const newCount = setCount((prev) => prev + 1); ``` :::info - If you want to store a function in a Signal you must use the function form: +If you want to store a function in a Signal you must use the function form: - ```tsx - setValue(() => myFunction); - ``` + ```tsx + setValue(() => myFunction); + ``` - However, functions are not treated specially as the `initialValue` argument to `createSignal`, so you can pass a - function initial value as is: + However, functions are not treated specially as the `initialValue` argument to `createSignal`, so you can pass a + function initial value as is: - ```tsx - const [func, setFunc] = createSignal(myFunction); - ``` + ```tsx + const [func, setFunc] = createSignal(myFunction); + ``` ::: @@ -99,7 +97,7 @@ If the function returns false, the Signal's value will be updated and dependents ```tsx const [count, setCount] = createSignal(0, { equals: (prev, next) => prev === next, -}) +}); ``` Here are some examples of this option in use: @@ -108,25 +106,25 @@ Here are some examples of this option in use: // use { equals: false } to allow modifying object in-place; // normally this wouldn't be seen as an update because the // object has the same identity before and after change -const [object, setObject] = createSignal({ count: 0 }, { equals: false }) +const [object, setObject] = createSignal({ count: 0 }, { equals: false }); setObject((current) => { - current.count += 1 - current.updated = new Date() - return current -}) + current.count += 1; + current.updated = new Date(); + return current; +}); // use { equals: false } to create a signal that acts as a trigger without storing a value: -const [depend, rerun] = createSignal(undefined, { equals: false }) +const [depend, rerun] = createSignal(undefined, { equals: false }); // now calling depend() in a tracking scope // makes that scope rerun whenever rerun() gets called // define equality based on string length: const [myString, setMyString] = createSignal("string", { equals: (newVal, oldVal) => newVal.length === oldVal.length, -}) +}); -setMyString("string") // considered equal to the last value and won't cause updates -setMyString("stranger") // considered different and will cause updates +setMyString("string"); // considered equal to the last value and won't cause updates +setMyString("stranger"); // considered different and will cause updates ``` ### `name` @@ -135,7 +133,7 @@ The `name` option can be used to give the Signal a name. This is useful for debugging. The name will be displayed in the devtools. ```tsx -const [count, setCount] = createSignal(0, { name: "count" }) +const [count, setCount] = createSignal(0, { name: "count" }); ``` ### `internal` @@ -144,5 +142,5 @@ The `internal` option can be used to hide the Signal from the devtools. This is useful for Signals that are used internally by a component and should not be exposed to the user. ```tsx -const [count, setCount] = createSignal(0, { internal: true }) +const [count, setCount] = createSignal(0, { internal: true }); ``` diff --git a/src/routes/reference/component-apis/children.mdx b/src/routes/reference/component-apis/children.mdx index 2d001fb0c4..a3b440e3ac 100644 --- a/src/routes/reference/component-apis/children.mdx +++ b/src/routes/reference/component-apis/children.mdx @@ -6,60 +6,59 @@ title: children import { children } from "solid-js"; import type { JSX, ResolvedChildren } from "solid-js"; -function children(fn: () => JSX.Element): () => ResolvedChildren - +function children(fn: () => JSX.Element): () => ResolvedChildren; ``` -The `children` helper is used for more complex interactions with props. -When you're not just passing children to another component using `props.children` once in JSX, you should use `children`. +The `children` helper is used for more complex interactions with props. +When you're not just passing children to another component using `props.children` once in JSX, you should use `children`. Props are normally passed in via a getter for `props.children` in this manner: ```tsx -const resolved = children(() => props.children) +const resolved = children(() => props.children); ``` -The return value is a [memo](/reference/basic-reactivity/create-memo) evaluating to the resolved children, which updates whenever the children change. -Using this memo instead of accessing `props.children` directly has some important advantages in some scenarios. -The underlying issue is that, when you specify component children via JSX, Solid automatically defines `props.children` as a property getter, so that the children are created (in particular, DOM is created) whenever `props.children` gets accessed. +The return value is a [memo](/reference/basic-reactivity/create-memo) evaluating to the resolved children, which updates whenever the children change. +Using this memo instead of accessing `props.children` directly has some important advantages in some scenarios. +The underlying issue is that, when you specify component children via JSX, Solid automatically defines `props.children` as a property getter, so that the children are created (in particular, DOM is created) whenever `props.children` gets accessed. Two particular consequences: -1. If you access `props.children` multiple times, the children (and associated DOM) get created multiple times. -This is useful if you want the DOM to be duplicated (as DOM nodes can appear in only one parent element), but in many cases it creates redundant DOM nodes. -If you instead call `resolved()` multiple times, you re-use the same children. +1. If you access `props.children` multiple times, the children (and associated DOM) get created multiple times. + This is useful if you want the DOM to be duplicated (as DOM nodes can appear in only one parent element), but in many cases it creates redundant DOM nodes. + If you instead call `resolved()` multiple times, you re-use the same children. -2. If you access `props.children` outside of a tracking scope (e.g., in an event handler), then you create children that will never be cleaned up. -If you instead call `resolved()`, you re-use the already resolved children. -You also guarantee that the children are tracked in the current component, as opposed to another tracking scope such as another component. +2. If you access `props.children` outside of a tracking scope (e.g., in an event handler), then you create children that will never be cleaned up. + If you instead call `resolved()`, you re-use the already resolved children. + You also guarantee that the children are tracked in the current component, as opposed to another tracking scope such as another component. -In addition, the `children` helper "resolves" children by calling argumentless functions and flattening arrays of arrays into an array. +In addition, the `children` helper "resolves" children by calling argumentless functions and flattening arrays of arrays into an array. For example, a child specified with JSX like `{signal() * 2}` gets wrapped into a getter function `() => count() * 2` in `props.children`, but gets evaluated to an actual number in resolved, properly depending on a count signal. -If the given `props.children` is not an array (which occurs when the JSX tag has a single child), then the `children` helper will not normalize it into an array. -This is useful behavior e.g. when the intention is to pass a single function as a child, which can be detected via `typeof resolved() === 'function'`. +If the given `props.children` is not an array (which occurs when the JSX tag has a single child), then the `children` helper will not normalize it into an array. +This is useful behavior e.g. when the intention is to pass a single function as a child, which can be detected via `typeof resolved() === 'function'`. If you want to normalize to an array, the returned memo has a `toArray` method _(new in 1.5)_. In most cases, you don't need (and in some cases, don't want) to use the `children` helper if you're just passing `props.children` on to another component or element via JSX: ```tsx const Wrapper = (props) => { - return <div>{props.children}</div> -} + return <div>{props.children}</div>; +}; ``` -An important aspect of the `children` helper is that it forces the children to be created and resolved, as it accesses `props.children` immediately. -This can be undesirable for conditional rendering, e.g., when using the children within a [`<Show>`](/reference/components/show) component. +An important aspect of the `children` helper is that it forces the children to be created and resolved, as it accesses `props.children` immediately. +This can be undesirable for conditional rendering, e.g., when using the children within a [`<Show>`](/reference/components/show) component. For example, the following code always evaluates the children: ```tsx -const resolved = children(() => props.children) +const resolved = children(() => props.children); -return <Show when={visible()}>{resolved()}</Show> +return <Show when={visible()}>{resolved()}</Show>; ``` -To evaluate the children only when `<Show>` would render them, you can push the call to children inside a component or a function within `<Show>`, which only evaluates its children when `when` condition is true. +To evaluate the children only when `<Show>` would render them, you can push the call to children inside a component or a function within `<Show>`, which only evaluates its children when `when` condition is true. Another nice workaround is to pass `props.children` to the children helper only when you actually want to evaluate the children: ```tsx -const resolved = children(() => visible() && props.children) +const resolved = children(() => visible() && props.children); ``` diff --git a/src/routes/reference/component-apis/create-context.mdx b/src/routes/reference/component-apis/create-context.mdx index 64a335c2aa..e9a807becb 100644 --- a/src/routes/reference/component-apis/create-context.mdx +++ b/src/routes/reference/component-apis/create-context.mdx @@ -3,8 +3,7 @@ title: createContext order: 5 --- - -Context provides a form of dependency injection in Solid. +Context provides a form of dependency injection in Solid. It is used to save from needing to pass data as props through intermediate components (aka **prop drilling**). This function creates a new context object that can be used with [useContext](/reference/component-apis/use-context) and offers the Provider control flow. The default value is used when no Provider is found above in the hierarchy. @@ -14,10 +13,11 @@ The default value is used when no Provider is found above in the hierarchy. To avoid reinstatiating a new context when Hot-Module Replacement (HMR) occurs, it is recommended to use `createContext` in its own module (file). <Callout type="danger" title="Hot-Module Replacement"> -When using HMR, the context is lost when the module is reloaded. Which will cause an error to be thrown as `useContext` will try to access it while it is still reloading. + When using HMR, the context is lost when the module is reloaded. Which will + cause an error to be thrown as `useContext` will try to access it while it is + still reloading. </Callout> - For example: ```ts title="/context/counter.ts" @@ -27,12 +27,12 @@ export const INITIAL_COUNT = 0; const INITIAL_STORE_SETTER = { increment: () => {}, - decrement: () => {} + decrement: () => {}, }; export const CounterContext = createContext([ { count: INITIAL_COUNT }, - INITIAL_STORE_SETTER + INITIAL_STORE_SETTER, ]); ``` @@ -44,7 +44,7 @@ import { CounterContext, INITIAL_COUNT } from "./counter.ts"; export function CounterProvider(props) { const [value, setValue] = createStore({ count: props.initialCount || INITIAL_COUNT }) - + const counter = [ value, { @@ -67,36 +67,36 @@ export function CounterProvider(props) { A few imporant notes on how to pass data through the context API: -- The value passed to provider is passed to `useContext` as is. -- Wrapping as a reactive expression will not work. +- The value passed to provider is passed to `useContext` as is. +- Wrapping as a reactive expression will not work. - You should pass in Signals and Stores directly instead of accessing them in the JSX. To learn how to consume the context, see the [useContext](/reference/component-apis/use-context) documentation and the [Context concepts entry](/concepts/context). ## Default Values -`createContext()` takes an optional "default value" as an argument. +`createContext()` takes an optional "default value" as an argument. If `useContext` is called and there is no corresponding context provider above it in the component hierarchy, then the value passed as `defaultValue` is returned. -However, if no `defaultValue` was passed, then `undefined` is returned in this case. +However, if no `defaultValue` was passed, then `undefined` is returned in this case. Also, `defaultValue` (or `undefined`) is returned if `useContext` is called inside an event callback, as it is then outside of the component hierarchy. -This has implications for TS. +This has implications for TS. If no `defaultValue` is passed, then it is possible that `useContext()` will return `undefined`, and the types reflect this. -Another (used in the example in the previous section) is provide a default value to `createContext()`. -In that case, `useContext()` will always return a value, and therefore TS will not complain either. -The pitfall with this approach is that if you _unintentionally_ use `useContext` outside of a provider, it may not be immediately apparent, because the context is still providing a valid value. +Another (used in the example in the previous section) is provide a default value to `createContext()`. +In that case, `useContext()` will always return a value, and therefore TS will not complain either. +The pitfall with this approach is that if you _unintentionally_ use `useContext` outside of a provider, it may not be immediately apparent, because the context is still providing a valid value. Therefore, if you expect to always use `useContext` within a provider, it is best to use the error based approach described above. ## Type signature ```ts interface Context<T> { - id: symbol - Provider: (props: { value: T; children: any }) => any - defaultValue: T + id: symbol; + Provider: (props: { value: T; children: any }) => any; + defaultValue: T; } -function createContext<T>(defaultValue?: T): Context<T | undefined> +function createContext<T>(defaultValue?: T): Context<T | undefined>; ``` diff --git a/src/routes/reference/component-apis/create-unique-id.mdx b/src/routes/reference/component-apis/create-unique-id.mdx index 65088f3748..311b98fdd7 100644 --- a/src/routes/reference/component-apis/create-unique-id.mdx +++ b/src/routes/reference/component-apis/create-unique-id.mdx @@ -3,16 +3,15 @@ title: createUniqueId --- ```ts -import { createUniqueId } from "solid-js" - -function createUniqueId(): string +import { createUniqueId } from "solid-js"; +function createUniqueId(): string; ``` A universal id generator that is stable across server/browser. ```ts -const id = createUniqueId() +const id = createUniqueId(); ``` **Note:** on the server this only works under hydratable components. diff --git a/src/routes/reference/component-apis/lazy.mdx b/src/routes/reference/component-apis/lazy.mdx index d6b7144330..af7e5e6695 100644 --- a/src/routes/reference/component-apis/lazy.mdx +++ b/src/routes/reference/component-apis/lazy.mdx @@ -3,17 +3,17 @@ title: lazy --- ```ts -import { lazy } from "solid-js" -import type { Component } from "solid-js" +import { lazy } from "solid-js"; +import type { Component } from "solid-js"; function lazy<T extends Component<any>>( fn: () => Promise<{ default: T }> -): T & { preload: () => Promise<T> } +): T & { preload: () => Promise<T> }; ``` -Used to lazy load components to allow for code splitting. -Components are not loaded until rendered. -Lazy loaded components can be used the same as its statically imported counterpart, receiving props etc. +Used to lazy load components to allow for code splitting. +Components are not loaded until rendered. +Lazy loaded components can be used the same as its statically imported counterpart, receiving props etc. Lazy components trigger `<Suspense>` ```tsx @@ -21,5 +21,5 @@ Lazy components trigger `<Suspense>` const ComponentA = lazy(() => import("./ComponentA")); // use in JSX -<ComponentA title={props.title} /> +<ComponentA title={props.title} />; ``` diff --git a/src/routes/reference/component-apis/use-context.mdx b/src/routes/reference/component-apis/use-context.mdx index e4eb550686..61638297c8 100644 --- a/src/routes/reference/component-apis/use-context.mdx +++ b/src/routes/reference/component-apis/use-context.mdx @@ -6,7 +6,7 @@ Used to grab context within a context provider scope to allow for deep passing o It's therefore used in conjunction with [`createContext`](/reference/component-apis/create-context) to consume the data from a Provider scope and thus avoid passing data through intermediate components (prop drilling). ```ts -const [state, { increment, decrement }] = useContext(CounterContext) +const [state, { increment, decrement }] = useContext(CounterContext); ``` ## Recommended usage @@ -15,13 +15,13 @@ It is often a good idea to wrap `useContext` in a function like so: ```ts title="/context/counter-component.tsx" function useCounterContext() { - const context = useContext(CounterContext) + const context = useContext(CounterContext); if (!context) { - throw new Error("useCounterContext: cannot find a CounterContext") + throw new Error("useCounterContext: cannot find a CounterContext"); } - return context + return context; } ``` @@ -31,8 +31,7 @@ And check the [Context concepts](/concepts/context) for more information on how ## Type signature ```ts -import { type Context } from "solid-js" +import { type Context } from "solid-js"; -function useContext<T>(context: Context<T>): T - -``` \ No newline at end of file +function useContext<T>(context: Context<T>): T; +``` diff --git a/src/routes/reference/components/dynamic.mdx b/src/routes/reference/components/dynamic.mdx index d219595082..b69cbeab08 100644 --- a/src/routes/reference/components/dynamic.mdx +++ b/src/routes/reference/components/dynamic.mdx @@ -6,15 +6,15 @@ order: 5 This component lets you insert an arbitrary Component or tag and passes the props through to it. ```tsx -import { Dynamic } from "solid-js/web" -import type { JSX } from "solid-js" +import { Dynamic } from "solid-js/web"; +import type { JSX } from "solid-js"; function Dynamic<T>( props: T & { - children?: any - component?: Component<T> | string | keyof JSX.IntrinsicElements + children?: any; + component?: Component<T> | string | keyof JSX.IntrinsicElements; } -): () => JSX.Element +): () => JSX.Element; ``` Here's an example of how you can use it: diff --git a/src/routes/reference/components/for.mdx b/src/routes/reference/components/for.mdx index a02434702c..7629987fbb 100644 --- a/src/routes/reference/components/for.mdx +++ b/src/routes/reference/components/for.mdx @@ -6,14 +6,14 @@ order: 5 The `<For>` component is used to render a list of items. It is similar to the `.map()` function in JavaScript. ```ts -import { For } from "solid-js" -import type { JSX } from "solid-js" +import { For } from "solid-js"; +import type { JSX } from "solid-js"; function For<T, U extends JSX.Element>(props: { - each: readonly T[] - fallback?: JSX.Element - children: (item: T, index: () => number) => U -}): () => U[] + each: readonly T[]; + fallback?: JSX.Element; + children: (item: T, index: () => number) => U; +}): () => U[]; ``` A referentially keyed loop with efficient updating of only changed items. The callback takes the current item as the first argument: diff --git a/src/routes/reference/components/index-component.mdx b/src/routes/reference/components/index-component.mdx index f3f6b6427f..5eac1d0e82 100644 --- a/src/routes/reference/components/index-component.mdx +++ b/src/routes/reference/components/index-component.mdx @@ -5,13 +5,13 @@ title: <Index> 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. ```ts -import { Index } from "solid-js" -import type { JSX } from "solid-js" +import { Index } from "solid-js"; +import type { JSX } from "solid-js"; function Index<T, U extends JSX.Element>(props: { - each: readonly T[]; - fallback?: JSX.Element; - children: (item: () => T, index: number) => U; + each: readonly T[]; + fallback?: JSX.Element; + children: (item: () => T, index: number) => U; }): () => U[]; ``` @@ -19,14 +19,14 @@ A super simple implementation of this component might look like this: ```tsx function Index<T, U extends JSX.Element>(props: { - each: readonly T[]; - fallback?: JSX.Element; - children: (item: () => T, index: number) => U; + each: readonly T[]; + fallback?: JSX.Element; + children: (item: () => T, index: number) => U; }) { - return () => { - const [items, setItems] = createSignal(props.each); - return props.each.map((_, i) => props.children(() => items()[i], i)); - }; + return () => { + const [items, setItems] = createSignal(props.each); + return props.each.map((_, i) => props.children(() => items()[i], i)); + }; } ``` @@ -34,7 +34,7 @@ Here's a look at the implementation of the `Index` component in Solid: ```tsx <Index each={state.list} fallback={<div>Loading...</div>}> - {(item) => <div>{item()}</div>} + {(item) => <div>{item()}</div>} </Index> ``` @@ -44,11 +44,11 @@ Optional second argument is an index number: ```tsx <Index each={state.list} fallback={<div>Loading...</div>}> - {(item, index) => ( - <div> - #{index} {item()} - </div> - )} + {(item, index) => ( + <div> + #{index} {item()} + </div> + )} </Index> ``` @@ -58,4 +58,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/portal.mdx b/src/routes/reference/components/portal.mdx index 1e49844309..2c0f0b7162 100644 --- a/src/routes/reference/components/portal.mdx +++ b/src/routes/reference/components/portal.mdx @@ -7,22 +7,22 @@ title: <Portal> This is useful when your UI has some elements that need to appear on top of everything else, such as modals and tooltips. ```tsx -import { Portal } from "solid-js/web" -import type { JSX } from "solid-js" +import { Portal } from "solid-js/web"; +import type { JSX } from "solid-js"; function Portal(props: { - mount?: Node - useShadow?: boolean - isSVG?: boolean - children: JSX.Element -}): Text + mount?: Node; + useShadow?: boolean; + isSVG?: boolean; + children: JSX.Element; +}): Text; ``` -This inserts the element in the mount node. -Useful for inserting Modals outside of the page layout. +This inserts the element in the mount node. +Useful for inserting Modals outside of the page layout. Events still propagate through the component hierarchy, however `<Portal>` will only run on the client and has hydration _disabled_. -The portal is mounted in a `<div>` unless the target is the document head. +The portal is mounted in a `<div>` unless the target is the document head. `useShadow` places the element in a Shadow Root for style isolation, and `isSVG` is required if inserting into an SVG element so that the `<div>` is not inserted. ```tsx diff --git a/src/routes/reference/components/show.mdx b/src/routes/reference/components/show.mdx index b8c1d6f30a..6470ca0596 100644 --- a/src/routes/reference/components/show.mdx +++ b/src/routes/reference/components/show.mdx @@ -6,15 +6,15 @@ order: 5 The `Show` control flow is used to conditionally render part of the view: it renders children when `when` is truthy, a fallback otherwise. It is similar to the ternary operator `(when ? children : fallback)` but is ideal for templating JSX. ```ts -import { Show } from "solid-js" -import type { JSX } from "solid-js" +import { Show } from "solid-js"; +import type { JSX } from "solid-js"; function Show<T>(props: { - when: T | undefined | null | false - keyed?: boolean - fallback?: JSX.Element - children: JSX.Element | ((item: T | Accessor<T>) => JSX.Element) -}): () => JSX.Element + when: T | undefined | null | false; + keyed?: boolean; + fallback?: JSX.Element; + children: JSX.Element | ((item: T | Accessor<T>) => JSX.Element); +}): () => JSX.Element; ``` Here's an example of using the `Show` control flow: @@ -43,8 +43,8 @@ If the `keyed` property is not used, the argument of the child function will be ## Props -| Name | Type | Description | -| :--------- | :-------------------------------- | :-------------------------------------------- | -| `when` | `T \| undefined \| null \| false` | The value to test for truthiness | -| `keyed` | `boolean` | Whether to key the block to the value of when | -| `fallback` | `JSX.Element` | The fallback to render when the `when` is falsy | +| Name | Type | Description | +| :--------- | :-------------------------------- | :---------------------------------------------- | +| `when` | `T \| undefined \| null \| false` | The value to test for truthiness | +| `keyed` | `boolean` | Whether to key the block to the value of when | +| `fallback` | `JSX.Element` | The fallback to render when the `when` is falsy | diff --git a/src/routes/reference/components/suspense-list.mdx b/src/routes/reference/components/suspense-list.mdx index 38bc42b37b..dac45644e8 100644 --- a/src/routes/reference/components/suspense-list.mdx +++ b/src/routes/reference/components/suspense-list.mdx @@ -6,14 +6,14 @@ order: 5 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. ```ts -import { SuspenseList } from "solid-js" -import type { JSX } from "solid-js" +import { SuspenseList } from "solid-js"; +import type { JSX } from "solid-js"; function SuspenseList(props: { - children: JSX.Element - revealOrder: "forwards" | "backwards" | "together" - tail?: "collapsed" | "hidden" -}): JSX.Element + children: JSX.Element; + revealOrder: "forwards" | "backwards" | "together"; + tail?: "collapsed" | "hidden"; +}): JSX.Element; ``` **Note**: SuspenseList is still in the experimental stage and does not have full `SSR` support. diff --git a/src/routes/reference/components/suspense.mdx b/src/routes/reference/components/suspense.mdx index 07617e081a..39aa9aeba5 100644 --- a/src/routes/reference/components/suspense.mdx +++ b/src/routes/reference/components/suspense.mdx @@ -6,14 +6,13 @@ order: 5 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. ```tsx -import { Suspense } from "solid-js" -import type { JSX } from "solid-js" +import { Suspense } from "solid-js"; +import type { JSX } from "solid-js"; function Suspense(props: { - fallback?: JSX.Element - children: JSX.Element -}): JSX.Element - + fallback?: JSX.Element; + children: JSX.Element; +}): JSX.Element; ``` Here's an example of a `Suspense` component that shows a loading spinner while the `User` component is loading. @@ -22,7 +21,6 @@ Here's an example of a `Suspense` component that shows a loading spinner while t <Suspense fallback={<LoadingSpinner />}> <AsyncComponent /> </Suspense> - ``` ## Nested Suspense @@ -60,15 +58,14 @@ Our example use case is to display a user profile. A naive snippet would look li const MyComponentWithOptionalChaining = () => { const [profile] = createResource(async () => { /* fetcher code here */ - }) + }); return ( <> <div>{profile()?.name}</div> <div>{profile()?.email}</div> </> - ) -} - + ); +}; ``` In this code, `profile()` starts as `undefined`, and when the fetcher code finishes, resolves to an object with `name` and `email` properties. Although the resource has not resolved yet, the two `div`s are already created and attached to the document body, albeit with empty text nodes. Once the resource resolves, the `div`s are updated with the appropriate data. @@ -79,15 +76,14 @@ The downside of this approach is that the user is shown an empty component - let const MyComponentWithShow = () => { const [profile] = createResource(async () => { /* fetcher code here */ - }) + }); return ( <Show when={profile()} fallback={<div>fetching user data</div>}> <div>{profile().name}</div> <div>{profile().email}</div> </Show> - ) -} - + ); +}; ``` In this snippet, we first show a fallback when the resource hasn't resolved yet, and then switch to showing the profile data once it has. This results in a better user experience. @@ -100,14 +96,14 @@ We can have the best of both worlds by using {"<Suspense>"}: const MyComponentWithSuspense = () => { const [profile] = createResource(async () => { /* fetcher code here */ - }) + }); return ( <Suspense fallback={<div>fetching user data</div>}> <div>{profile()?.name}</div> <div>{profile()?.email}</div> </Suspense> - ) -} + ); +}; ``` In this case, the `div`s are created immediately, but instead of being attached to the document body, the fallback is shown. Once the resource resolves, the text in the `div`s is updated, and then they are attached to the document (and the fallback removed). @@ -120,7 +116,7 @@ With this in mind, we can understand that there isn't much gained from suspense const MyComponentWithSuspenseAndShow = () => { const [profile] = createResource(async () => { /* fetcher code here */ - }) + }); return ( <Suspense fallback={<div>fetching user data</div>}> <Show when={profile()}> @@ -128,17 +124,17 @@ const MyComponentWithSuspenseAndShow = () => { <div>{profile().email}</div> </Show> </Suspense> - ) -} + ); +}; ``` In this code, we don't create _any_ DOM nodes inside {"<Suspense>"} before the resource resolves, so it is pretty much the same as the second example where we only used `<Show>`. :::info - Suspense is triggered by reading a resource inside the {"<Suspense>"}{" "} - boundary. Components wrapped with suspense still run fully, just as they would - without suspense. However, code wrapped in `onMount` and `createEffect` only - run after the resource resolves. +Suspense is triggered by reading a resource inside the {"<Suspense>"}{" "} +boundary. Components wrapped with suspense still run fully, just as they would +without suspense. However, code wrapped in `onMount` and `createEffect` only +run after the resource resolves. ::: ## Props diff --git a/src/routes/reference/components/switch-and-match.mdx b/src/routes/reference/components/switch-and-match.mdx index f733467b5b..d7c2c03565 100644 --- a/src/routes/reference/components/switch-and-match.mdx +++ b/src/routes/reference/components/switch-and-match.mdx @@ -6,35 +6,35 @@ order: 5 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. ```ts -import { Switch, Match } from "solid-js" -import type { MatchProps, JSX } from "solid-js" +import { Switch, Match } from "solid-js"; +import type { MatchProps, JSX } from "solid-js"; function Switch(props: { - fallback?: JSX.Element - children: JSX.Element -}): () => JSX.Element + fallback?: JSX.Element; + children: JSX.Element; +}): () => JSX.Element; type MatchProps<T> = { - when: T | undefined | null | false - children: JSX.Element | ((item: T) => JSX.Element) -} -function Match<T>(props: MatchProps<T>) + when: T | undefined | null | false; + children: JSX.Element | ((item: T) => JSX.Element); +}; +function Match<T>(props: MatchProps<T>); ``` A super simple implementation of this component would be: ```tsx function Switch(props) { - let children = props.children + let children = props.children; - if (!Array.isArray(children)) children = [children] + if (!Array.isArray(children)) children = [children]; for (let i = 0; i < children.length; i++) { - const child = children[i] - if (child.props.when) return child + const child = children[i]; + if (child.props.when) return child; } - return props.fallback + return props.fallback; } ``` diff --git a/src/routes/reference/jsx-attributes/attr.mdx b/src/routes/reference/jsx-attributes/attr.mdx index 4faaed5138..7e8540dacc 100644 --- a/src/routes/reference/jsx-attributes/attr.mdx +++ b/src/routes/reference/jsx-attributes/attr.mdx @@ -10,6 +10,7 @@ Useful for Web Components where you want to set attributes. ``` <Callout type="info" title="Strong-Typing Custom Attributes"> - Type definitions are required when using TypeScript. - See the[TypeScript](/configuration/typescript#forcing-properties-and-custom-attributes) page for examples. + Type definitions are required when using TypeScript. See + the[TypeScript](/configuration/typescript#forcing-properties-and-custom-attributes) + page for examples. </Callout> diff --git a/src/routes/reference/jsx-attributes/bool.mdx b/src/routes/reference/jsx-attributes/bool.mdx index b881e77e9c..3e7373e2ac 100644 --- a/src/routes/reference/jsx-attributes/bool.mdx +++ b/src/routes/reference/jsx-attributes/bool.mdx @@ -21,6 +21,7 @@ This attribute is most useful for Web Components. ``` <Callout type="info" title="Strong-Typing Custom Boolean Attributes"> - Type definitions are required when using TypeScript. - See the [TypeScript](/configuration/typescript#forcing-properties-and-custom-attributes) page for examples. + Type definitions are required when using TypeScript. See the + [TypeScript](/configuration/typescript#forcing-properties-and-custom-attributes) + page for examples. </Callout> diff --git a/src/routes/reference/jsx-attributes/classlist.mdx b/src/routes/reference/jsx-attributes/classlist.mdx index 69f2f39089..09ce8d3a3b 100644 --- a/src/routes/reference/jsx-attributes/classlist.mdx +++ b/src/routes/reference/jsx-attributes/classlist.mdx @@ -19,9 +19,9 @@ First, you can set class=... like any other attribute. For example: ``` :::info - Note that <code>className</code> was deprecated in Solid 1.4 in favor of{" "} - <code>class</code>. -::: +Note that <code>className</code> was deprecated in Solid 1.4 in favor of{" "} + +<code>class</code>. ::: Alternatively, the `classList` pseudo-attribute lets you specify an object, where each key is a class and the value is treated as a boolean representing whether to include that class. For example (matching the last example): diff --git a/src/routes/reference/jsx-attributes/on.mdx b/src/routes/reference/jsx-attributes/on.mdx index 3f81b85097..1b1a6c6bd7 100644 --- a/src/routes/reference/jsx-attributes/on.mdx +++ b/src/routes/reference/jsx-attributes/on.mdx @@ -12,6 +12,7 @@ For events with capital letters, listener options, or if you need to attach even This directly attaches an event handler (via [`addEventListener`](https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener)) to the `div`. :::info + <span>New in v1.9.0</span> ::: diff --git a/src/routes/reference/jsx-attributes/prop.mdx b/src/routes/reference/jsx-attributes/prop.mdx index a13c553e0c..8a4c7bcb99 100644 --- a/src/routes/reference/jsx-attributes/prop.mdx +++ b/src/routes/reference/jsx-attributes/prop.mdx @@ -10,6 +10,7 @@ Forces the prop to be treated as a property instead of an attribute. ``` <Callout type="info" title="Strong-Typing Custom Properties"> - Type definitions are required when using TypeScript. - See the [TypeScript](/configuration/typescript#forcing-properties-and-custom-attributes) page for examples. -</Callout> \ No newline at end of file + Type definitions are required when using TypeScript. See the + [TypeScript](/configuration/typescript#forcing-properties-and-custom-attributes) + page for examples. +</Callout> diff --git a/src/routes/reference/jsx-attributes/ref.mdx b/src/routes/reference/jsx-attributes/ref.mdx index 630806570f..1f62335a02 100644 --- a/src/routes/reference/jsx-attributes/ref.mdx +++ b/src/routes/reference/jsx-attributes/ref.mdx @@ -22,12 +22,12 @@ Refs can also be used on Components. They still need to be attached on the other ```tsx function MyComp(props) { - return <div ref={props.ref} /> + return <div ref={props.ref} />; } function App() { - let myDiv - onMount(() => console.log(myDiv.clientWidth)) - return <MyComp ref={myDiv} /> + let myDiv; + onMount(() => console.log(myDiv.clientWidth)); + return <MyComp ref={myDiv} />; } ``` diff --git a/src/routes/reference/jsx-attributes/use.mdx b/src/routes/reference/jsx-attributes/use.mdx index cce2a68272..9849e5ff97 100644 --- a/src/routes/reference/jsx-attributes/use.mdx +++ b/src/routes/reference/jsx-attributes/use.mdx @@ -6,21 +6,21 @@ order: 5 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: ```ts -function directive(element: Element, accessor: () => any): void +function directive(element: Element, accessor: () => any): 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. ```tsx -const [name, setName] = createSignal("") +const [name, setName] = createSignal(""); function model(el, value) { - const [field, setField] = value() - createRenderEffect(() => (el.value = field())) - el.addEventListener("input", (e) => setField(e.target.value)) -}; + const [field, setField] = value(); + createRenderEffect(() => (el.value = field())); + el.addEventListener("input", (e) => setField(e.target.value)); +} -<input type="text" use:model={[name, setName]} /> +<input type="text" use:model={[name, setName]} />; ``` To register with TypeScript extend the JSX namespace. @@ -29,7 +29,7 @@ To register with TypeScript extend the JSX namespace. declare module "solid-js" { namespace JSX { interface Directives { - model: [() => any, (v: any) => any] + model: [() => any, (v: any) => any]; } } } diff --git a/src/routes/reference/lifecycle/on-cleanup.mdx b/src/routes/reference/lifecycle/on-cleanup.mdx index 43a4640238..e31125cc92 100644 --- a/src/routes/reference/lifecycle/on-cleanup.mdx +++ b/src/routes/reference/lifecycle/on-cleanup.mdx @@ -10,7 +10,7 @@ When used in a Component, it runs when the component is unmounted. When used in reactive contexts, such [`createEffect`](/reference/basic-reactivity/create-effect), [`createMemo`](/reference/basic-reactivity/create-memo) or a [`createRoot`](/reference/reactive-utilities/create-root), it runs when the reactive scope is disposed or refreshed. ```ts -import { onCleanup } from "solid-js" +import { onCleanup } from "solid-js"; function onCleanup(fn: () => void): void; ``` @@ -19,7 +19,7 @@ Without the `onCleanup` function, the event listener would remain attached to th This can cause memory leaks and other issues. ```tsx -import { createSignal, onCleanup } from "solid-js" +import { createSignal, onCleanup } from "solid-js"; const Component = () => { const [count, setCount] = createSignal(0); diff --git a/src/routes/reference/lifecycle/on-mount.mdx b/src/routes/reference/lifecycle/on-mount.mdx index 9d59843dd4..5afd8e7f80 100644 --- a/src/routes/reference/lifecycle/on-mount.mdx +++ b/src/routes/reference/lifecycle/on-mount.mdx @@ -7,25 +7,24 @@ Registers a method that runs after initial rendering is done and the elements ar Ideal for using [refs](/reference/jsx-attributes/ref) and managing other one-time setup. ```tsx -import { onMount } from "solid-js" - -function onMount(fn: () => void): void +import { onMount } from "solid-js"; +function onMount(fn: () => void): void; ``` This is an alias for an effect that is non-tracking, meaning that it is equivalent to a [`createEffect`](/reference/basic-reactivity/create-effect) with no dependencies. ```tsx // example that shows how to use onMount to get a reference to an element -import { onMount } from "solid-js" +import { onMount } from "solid-js"; function MyComponent() { - let ref: HTMLButtonElement + let ref: HTMLButtonElement; // when the component is mounted, the button will be disabled onMount(() => { - ref.disabled = true - }) - return <button ref={ref}>Focus me!</button> + ref.disabled = true; + }); + return <button ref={ref}>Focus me!</button>; } ``` diff --git a/src/routes/reference/reactive-utilities/batch.mdx b/src/routes/reference/reactive-utilities/batch.mdx index 1763c98198..04b5a0bf14 100644 --- a/src/routes/reference/reactive-utilities/batch.mdx +++ b/src/routes/reference/reactive-utilities/batch.mdx @@ -3,9 +3,9 @@ title: batch --- ```ts -import { batch } from "solid-js" +import { batch } from "solid-js"; -function batch<T>(fn: () => T): T +function batch<T>(fn: () => T): T; ``` `batch` is a low-level API that batches updates together. @@ -16,44 +16,44 @@ Batching improves performance by avoiding unnecessary recalculation. Suppose you have a downstream memo `down` that depends on multiple upstream signals `up1`, `up2`, and `up3`: ```ts -import { createSignal, createMemo, createEffect } from "solid-js" -const [up1, setUp1] = createSignal(1) -const [up2, setUp2] = createSignal(2) -const [up3, setUp3] = createSignal(3) -const down = createMemo(() => up1() + up2() + up3()) +import { createSignal, createMemo, createEffect } from "solid-js"; +const [up1, setUp1] = createSignal(1); +const [up2, setUp2] = createSignal(2); +const [up3, setUp3] = createSignal(3); +const down = createMemo(() => up1() + up2() + up3()); // For illustration, monitor when `down` gets recomputed: -createEffect(() => console.log(down())) // outputs 6 +createEffect(() => console.log(down())); // outputs 6 ``` If you directly update all of the upstream signals outside of batch mode, then `down` will recompute every time. ```ts -setUp1(4) // recomputes down, outputs 9 -setUp2(5) // recomputes down, outputs 12 -setUp3(6) // recomputes down, outputs 15 +setUp1(4); // recomputes down, outputs 9 +setUp2(5); // recomputes down, outputs 12 +setUp3(6); // recomputes down, outputs 15 ``` If instead you update the upstream signals within a `batch`, then `down` will update only once at the end: ```ts batch(() => { - setUp1(10) // doesn't update down yet - setUp2(10) // doesn't update down yet - setUp3(10) // doesn't update down yet -}) // recomputes down, outputs 30 + setUp1(10); // doesn't update down yet + setUp2(10); // doesn't update down yet + setUp3(10); // doesn't update down yet +}); // recomputes down, outputs 30 ``` -The impact is even more dramatic if you have *m* downstream computations (memos, effects, etc.) that each depends on *n* upstream signals. -Without batching, modifying all *n* upstream signals would cause *m n* updates to the downstream computations. -With batching, modifying all *n* upstream signals would cause *m* updates to the downstream computations. -Given that each update takes at least *n* time (just to read the upstream signals), this cost savings can be significant. +The impact is even more dramatic if you have _m_ downstream computations (memos, effects, etc.) that each depends on _n_ upstream signals. +Without batching, modifying all _n_ upstream signals would cause _m n_ updates to the downstream computations. +With batching, modifying all _n_ upstream signals would cause _m_ updates to the downstream computations. +Given that each update takes at least _n_ time (just to read the upstream signals), this cost savings can be significant. Batching is also especially helpful when the downstream effects include DOM updates, which can be expensive. Solid uses `batch` internally to automatically batch updates for you in a few cases: -* Within [`createEffect`](/reference/basic-reactivity/create-effect) and [`onMount`](/reference/lifecycle/on-mount) (unless they are outside a [root](/reference/reactive-utilities/create-root)) -* Within the [setter of a store](/reference/store-utilities/create-store#setter) (which can update several properties at once) -* Within array methods (e.g. `Array.prototype.splice`) of a [mutable store](/reference/store-utilities/create-mutable) (which can update several elements at once) +- Within [`createEffect`](/reference/basic-reactivity/create-effect) and [`onMount`](/reference/lifecycle/on-mount) (unless they are outside a [root](/reference/reactive-utilities/create-root)) +- Within the [setter of a store](/reference/store-utilities/create-store#setter) (which can update several properties at once) +- Within array methods (e.g. `Array.prototype.splice`) of a [mutable store](/reference/store-utilities/create-mutable) (which can update several elements at once) These save you from having to use `batch` yourself in many cases. For the most part, automatic batching should be transparent to you, because accessing a signal or memo will cause it to update if it is out of date (as of Solid 1.4). @@ -61,14 +61,14 @@ For example: ```ts batch(() => { - setUp1(11) // doesn't update down yet - setUp2(11) // doesn't update down yet - setUp3(11) // doesn't update down yet - console.log(down()) // recomputes down, outputs 33 - setUp1(12) // doesn't update down yet - setUp2(12) // doesn't update down yet - setUp3(12) // doesn't update down yet -}) // recomputes down, outputs 36 + setUp1(11); // doesn't update down yet + setUp2(11); // doesn't update down yet + setUp3(11); // doesn't update down yet + console.log(down()); // recomputes down, outputs 33 + setUp1(12); // doesn't update down yet + setUp2(12); // doesn't update down yet + setUp3(12); // doesn't update down yet +}); // recomputes down, outputs 36 ``` You can think of `batch(fn)` as setting a global "batch mode" variable, calling the function `fn`, and then restoring the global variable to its previous value. diff --git a/src/routes/reference/reactive-utilities/catch-error.mdx b/src/routes/reference/reactive-utilities/catch-error.mdx index bb1df0372c..b4fac787b4 100644 --- a/src/routes/reference/reactive-utilities/catch-error.mdx +++ b/src/routes/reference/reactive-utilities/catch-error.mdx @@ -3,13 +3,14 @@ title: catchError --- :::info + <span>New in v1.7.0</span> ::: ```tsx -import { catchError } from "solid-js" +import { catchError } from "solid-js"; -function catchError<T>(tryFn: () => T, onError: (err: any) => void): T +function catchError<T>(tryFn: () => T, onError: (err: any) => void): T; ``` Wraps a `tryFn` with an error handler that fires if an error occurs below that point. diff --git a/src/routes/reference/reactive-utilities/create-root.mdx b/src/routes/reference/reactive-utilities/create-root.mdx index aab8ce89ec..46d2454f50 100644 --- a/src/routes/reference/reactive-utilities/create-root.mdx +++ b/src/routes/reference/reactive-utilities/create-root.mdx @@ -3,14 +3,13 @@ title: createRoot --- ```ts -import { createRoot } from "solid-js" - -function createRoot<T>(fn: (dispose: () => void) => T): T +import { createRoot } from "solid-js"; +function createRoot<T>(fn: (dispose: () => void) => T): T; ``` -Creates a new non-tracked owner scope that doesn't auto-dispose. +Creates a new non-tracked owner scope that doesn't auto-dispose. This is useful for nested reactive scopes that you do not wish to release when the parent re-evaluates. -All Solid code should be wrapped in one of these top level as they ensure that all memory/computations are freed up. +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. diff --git a/src/routes/reference/reactive-utilities/from.mdx b/src/routes/reference/reactive-utilities/from.mdx index ad45aea13a..f06a48f514 100644 --- a/src/routes/reference/reactive-utilities/from.mdx +++ b/src/routes/reference/reactive-utilities/from.mdx @@ -3,7 +3,7 @@ title: from --- ```tsx -import { from } from "solid-js" +import { from } from "solid-js"; function from<T>( producer: @@ -11,17 +11,16 @@ function from<T>( | { subscribe: ( fn: (v: T) => void - ) => (() => void) | { unsubscribe: () => void } + ) => (() => void) | { unsubscribe: () => void }; } -): () => T | undefined - +): () => T | undefined; ``` -A helper to make it easier to interop with external producers like RxJS observables or with Svelte Stores. +A helper to make it easier to interop with external producers like RxJS observables or with Svelte Stores. This basically turns any subscribable (object with a subscribe method) into a Signal and manages subscription and disposal. ```tsx -const signal = from(obsv$) +const signal = from(obsv$); ``` It can also take a custom producer function where the function is passed a setter function that returns an unsubscribe function: @@ -29,11 +28,11 @@ It can also take a custom producer function where the function is passed a sette ```tsx const clock = from((set) => { const interval = setInterval(() => { - set((v) => v + 1) - }, 1000) + set((v) => v + 1); + }, 1000); - return () => clearInterval(interval) -}) + return () => clearInterval(interval); +}); ``` ## Arguments diff --git a/src/routes/reference/reactive-utilities/get-owner.mdx b/src/routes/reference/reactive-utilities/get-owner.mdx index 1be5c3f788..60d47672d5 100644 --- a/src/routes/reference/reactive-utilities/get-owner.mdx +++ b/src/routes/reference/reactive-utilities/get-owner.mdx @@ -3,22 +3,21 @@ title: getOwner --- ```tsx -import { getOwner } from "solid-js" -import type { Owner } from "solid-js" - -function getOwner(): Owner +import { getOwner } from "solid-js"; +import type { Owner } from "solid-js"; +function getOwner(): Owner; ``` Gets the reactive scope that owns the currently running code, e.g., for passing into a later call to `runWithOwner` outside of the current scope. -Internally, computations (effects, memos, etc.) create owners which are children of their owner, all the way up to the root owner created by `createRoot` or `render`. -In particular, this ownership tree lets Solid automatically clean up a disposed computation by traversing its subtree and calling all `onCleanup` callbacks. -For example, when a createEffect's dependencies change, the effect calls all descendant `onCleanup` callbacks before running the effect function again. +Internally, computations (effects, memos, etc.) create owners which are children of their owner, all the way up to the root owner created by `createRoot` or `render`. +In particular, this ownership tree lets Solid automatically clean up a disposed computation by traversing its subtree and calling all `onCleanup` callbacks. +For example, when a createEffect's dependencies change, the effect calls all descendant `onCleanup` callbacks before running the effect function again. Calling `getOwner` returns the current owner node that is responsible for disposal of the current execution block. -Components are not computations, so do not create an owner node, but they are typically rendered from a `createEffect` which does, so the result is similar: when a component gets unmounted, all descendant `onCleanup` callbacks get called. +Components are not computations, so do not create an owner node, but they are typically rendered from a `createEffect` which does, so the result is similar: when a component gets unmounted, all descendant `onCleanup` callbacks get called. Calling `getOwner` from a component scope returns the owner that is responsible for rendering and unmounting that component. -Note that the owning reactive scope isn't necessarily tracking. +Note that the owning reactive scope isn't necessarily tracking. For example, untrack turns off tracking for the duration of a function (without creating a new reactive scope), as do components created via JSX (`<Component ...>`). diff --git a/src/routes/reference/reactive-utilities/index-array.mdx b/src/routes/reference/reactive-utilities/index-array.mdx index a8b6036eef..45fd936d77 100644 --- a/src/routes/reference/reactive-utilities/index-array.mdx +++ b/src/routes/reference/reactive-utilities/index-array.mdx @@ -3,16 +3,15 @@ title: indexArray --- ```tsx -import { indexArray } from "solid-js" +import { indexArray } from "solid-js"; function indexArray<T, U>( list: () => readonly T[], mapFn: (v: () => T, i: number) => U -): () => U[] - +): () => U[]; ``` -Similar to `mapArray` except it maps by index. +Similar to `mapArray` except it maps by index. The item is a signal and the index is now the constant. Underlying helper for the `<Index>` control flow. diff --git a/src/routes/reference/reactive-utilities/map-array.mdx b/src/routes/reference/reactive-utilities/map-array.mdx index 78e2dbfd4a..8bb41e7135 100644 --- a/src/routes/reference/reactive-utilities/map-array.mdx +++ b/src/routes/reference/reactive-utilities/map-array.mdx @@ -3,38 +3,37 @@ title: mapArray --- ```ts -import { mapArray } from "solid-js" +import { mapArray } from "solid-js"; function mapArray<T, U>( list: () => readonly T[], mapFn: (v: T, i: () => number) => U -): () => U[] - +): () => U[]; ``` -Reactive map helper that caches each item by reference to reduce unnecessary mapping on updates. -It only runs the mapping function once per value and then moves or removes it as needed. +Reactive map helper that caches each item by reference to reduce unnecessary mapping on updates. +It only runs the mapping function once per value and then moves or removes it as needed. The index argument is a signal. The map function itself is not tracking. Underlying helper for the `<For>` control flow. ```ts const mapped = mapArray(source, (model) => { - const [name, setName] = createSignal(model.name) - const [description, setDescription] = createSignal(model.description) + const [name, setName] = createSignal(model.name); + const [description, setDescription] = createSignal(model.description); return { id: model.id, get name() { - return name() + return name(); }, get description() { - return description() + return description(); }, setName, setDescription, - } -}) + }; +}); ``` ## Arguments diff --git a/src/routes/reference/reactive-utilities/merge-props.mdx b/src/routes/reference/reactive-utilities/merge-props.mdx index 5027201f13..f7e43fda18 100644 --- a/src/routes/reference/reactive-utilities/merge-props.mdx +++ b/src/routes/reference/reactive-utilities/merge-props.mdx @@ -3,26 +3,25 @@ title: mergeProps --- ```ts -import { mergeProps } from "solid-js" - -function mergeProps(...sources: any): any +import { mergeProps } from "solid-js"; +function mergeProps(...sources: any): any; ``` -A reactive object **merge** method. -Useful for setting default props for components in case caller doesn't provide them. +A reactive object **merge** method. +Useful for setting default props for components in case caller doesn't provide them. Or cloning the props object including reactive properties. -This method works by using a proxy and resolving properties in reverse order. +This method works by using a proxy and resolving properties in reverse order. This allows for dynamic tracking of properties that aren't present when the prop object is first merged. ```ts // default props -props = mergeProps({ name: "Smith" }, props) +props = mergeProps({ name: "Smith" }, props); // clone props -newProps = mergeProps(props) +newProps = mergeProps(props); // merge props -props = mergeProps(props, otherProps) +props = mergeProps(props, otherProps); ``` diff --git a/src/routes/reference/reactive-utilities/observable.mdx b/src/routes/reference/reactive-utilities/observable.mdx index 4e1bf23dfa..f6dab31c72 100644 --- a/src/routes/reference/reactive-utilities/observable.mdx +++ b/src/routes/reference/reactive-utilities/observable.mdx @@ -3,25 +3,24 @@ title: observable --- ```ts -import { observable } from "solid-js" - -function observable<T>(input: () => T): Observable<T> +import { observable } from "solid-js"; +function observable<T>(input: () => T): Observable<T>; ``` -This method takes a signal and produces an Observable. +This method takes a signal and produces an Observable. You can consume it from another Observable library of your choice, typically with the `from` operator. ```ts // How to integrate rxjs with a Solid signal -import { observable } from "solid-js" -import { from } from "rxjs" +import { observable } from "solid-js"; +import { from } from "rxjs"; -const [s, set] = createSignal(0) +const [s, set] = createSignal(0); -const obsv$ = from(observable(s)) +const obsv$ = from(observable(s)); -obsv$.subscribe((v) => console.log(v)) +obsv$.subscribe((v) => console.log(v)); ``` You can also use `from` without rxjs; check out this [page](/reference/reactive-utilities/from). diff --git a/src/routes/reference/reactive-utilities/on-util.mdx b/src/routes/reference/reactive-utilities/on-util.mdx index 69af339ed6..1dcf7e44de 100644 --- a/src/routes/reference/reactive-utilities/on-util.mdx +++ b/src/routes/reference/reactive-utilities/on-util.mdx @@ -3,13 +3,13 @@ title: on --- ```ts -import { on } from "solid-js" +import { on } from "solid-js"; function on<T extends Array<() => any> | (() => any), U>( deps: T, fn: (input: T, prevInput: T, prevValue?: U) => U, options: { defer?: boolean } = {} -): (prevValue?: U) => U | undefined +): (prevValue?: U) => U | undefined; ``` `on` is designed to be passed into a computation to make its dependencies explicit. @@ -37,8 +37,8 @@ setA("new"); // now it runs ## Using `on` with stores :::info - Please note that on stores and mutable, adding or removing a property from the - parent object will trigger an effect. See [`createMutable`](/reference/store-utilities/create-mutable) +Please note that on stores and mutable, adding or removing a property from the +parent object will trigger an effect. See [`createMutable`](/reference/store-utilities/create-mutable) ::: diff --git a/src/routes/reference/reactive-utilities/run-with-owner.mdx b/src/routes/reference/reactive-utilities/run-with-owner.mdx index 10638849f6..45f9831004 100644 --- a/src/routes/reference/reactive-utilities/run-with-owner.mdx +++ b/src/routes/reference/reactive-utilities/run-with-owner.mdx @@ -10,34 +10,34 @@ import type { Owner } from "solid-js" function runWithOwner<T>(owner: Owner, fn: (() => void) => T): T ``` -Executes the given function under the provided owner, instead of (and without affecting) the owner of the outer scope. -By default, computations created by `createEffect`, `createMemo`, etc. are owned by the owner of the currently executing code (the return value of `getOwner`), so in particular these will get disposed when their owner does. +Executes the given function under the provided owner, instead of (and without affecting) the owner of the outer scope. +By default, computations created by `createEffect`, `createMemo`, etc. are owned by the owner of the currently executing code (the return value of `getOwner`), so in particular these will get disposed when their owner does. Calling `runWithOwner` provides a way to override this default to a manually specified owner (typically, the return value from a previous call to `getOwner`), enabling more precise control of when computations get disposed. Having a (correct) owner is important for two reasons: -- Computations without an owner cannot be cleaned up. -For example, if you call `createEffect` without an owner (e.g., in the global scope), the effect will continue running forever, instead of being disposed when its owner gets disposed. +- Computations without an owner cannot be cleaned up. + For example, if you call `createEffect` without an owner (e.g., in the global scope), the effect will continue running forever, instead of being disposed when its owner gets disposed. -- `useContext` obtains context by walking up the owner tree to find the nearest ancestor providing the desired context. -So without an owner you cannot look up any provided context (and with the wrong owner, you might obtain the wrong context). +- `useContext` obtains context by walking up the owner tree to find the nearest ancestor providing the desired context. + So without an owner you cannot look up any provided context (and with the wrong owner, you might obtain the wrong context). -Manually setting the owner is especially helpful when doing reactivity outside of any owner scope. -In particular, asynchronous computation (via either `async` functions or callbacks like `setTimeout`) lose their automatically set owner, so remembering the original owner via `getOwner` and restoring it via `runWithOwner` is necessary in these cases. +Manually setting the owner is especially helpful when doing reactivity outside of any owner scope. +In particular, asynchronous computation (via either `async` functions or callbacks like `setTimeout`) lose their automatically set owner, so remembering the original owner via `getOwner` and restoring it via `runWithOwner` is necessary in these cases. For example: ```ts -const owner = getOwner() +const owner = getOwner(); setTimeout(() => { // This callback gets run without owner. // Restore owner via runWithOwner: runWithOwner(owner, () => { - const foo = useContext(FooContext) + const foo = useContext(FooContext); createEffect(() => { - console.log(foo) - }) - }) -}, 1000) + console.log(foo); + }); + }); +}, 1000); ``` **Note:** that owners are not what determines dependency tracking, so `runWithOwner` does not help with tracking in asynchronous functions; use of reactive state in the asynchronous part (e.g. after the first `await`) will not be tracked as a dependency. diff --git a/src/routes/reference/reactive-utilities/split-props.mdx b/src/routes/reference/reactive-utilities/split-props.mdx index 3841792ce2..b366d64379 100644 --- a/src/routes/reference/reactive-utilities/split-props.mdx +++ b/src/routes/reference/reactive-utilities/split-props.mdx @@ -3,32 +3,31 @@ title: splitProps --- ```ts -import { splitProps } from "solid-js" +import { splitProps } from "solid-js"; function splitProps<T>( props: T, ...keys: Array<(keyof T)[]> -): [...parts: Partial<T>] - +): [...parts: Partial<T>]; ``` Splits a reactive object by keys. -It takes a reactive object and any number of arrays of keys; for each array of keys, it will return a reactive object with just those properties of the original object. +It takes a reactive object and any number of arrays of keys; for each array of keys, it will return a reactive object with just those properties of the original object. The last reactive object in the returned array will have any leftover properties of the original object. This can be useful if you want to consume a subset of props and pass the rest to a child. ```tsx function MyComponent(props) { - const [local, others] = splitProps(props, ["children"]) + const [local, others] = splitProps(props, ["children"]); return ( <> <div>{local.children}</div> <Child {...others} /> </> - ) + ); } ``` @@ -37,18 +36,18 @@ Because `splitProps` takes any number of arrays, we can split a props object as Let's say a component was passed six props: ```tsx -;<MyComponent a={1} b={2} c={3} d={4} e={5} foo="bar" /> +<MyComponent a={1} b={2} c={3} d={4} e={5} foo="bar" />; // ... function MyComponent(props) { - console.log(props) // {a: 1, b: 2, c: 3, d: 4, e: 5, foo: "bar"} + console.log(props); // {a: 1, b: 2, c: 3, d: 4, e: 5, foo: "bar"} const [vowels, consonants, leftovers] = splitProps( props, ["a", "e"], ["b", "c", "d"] - ) - console.log(vowels) // {a: 1, e: 5} - console.log(consonants) // {b: 2, c: 3, d: 4} - console.log(leftovers.foo) // bar + ); + console.log(vowels); // {a: 1, e: 5} + console.log(consonants); // {b: 2, c: 3, d: 4} + console.log(leftovers.foo); // bar } ``` diff --git a/src/routes/reference/reactive-utilities/start-transition.mdx b/src/routes/reference/reactive-utilities/start-transition.mdx index 2abdf9dadd..530e9546c0 100644 --- a/src/routes/reference/reactive-utilities/start-transition.mdx +++ b/src/routes/reference/reactive-utilities/start-transition.mdx @@ -9,5 +9,5 @@ function startTransition: (fn: () => void) => Promise<void> ``` -Similar to `useTransition` except there is no associated pending state. +Similar to `useTransition` except there is no associated pending state. This one can just be used directly to start the Transition. diff --git a/src/routes/reference/reactive-utilities/untrack.mdx b/src/routes/reference/reactive-utilities/untrack.mdx index b73d87b8d8..72c7f0f0bb 100644 --- a/src/routes/reference/reactive-utilities/untrack.mdx +++ b/src/routes/reference/reactive-utilities/untrack.mdx @@ -32,6 +32,7 @@ export function Component(props) { } } ``` + </div> <div id="defaultValue"> @@ -46,5 +47,6 @@ export function Component(props) { } } ``` + </div> -</TabsCodeBlocks> \ No newline at end of file +</TabsCodeBlocks> diff --git a/src/routes/reference/reactive-utilities/use-transition.mdx b/src/routes/reference/reactive-utilities/use-transition.mdx index 97b085731f..8977209d96 100644 --- a/src/routes/reference/reactive-utilities/use-transition.mdx +++ b/src/routes/reference/reactive-utilities/use-transition.mdx @@ -3,16 +3,15 @@ title: useTransition --- ```ts -import { useTransition } from "solid-js" +import { useTransition } from "solid-js"; function useTransition(): [ pending: () => boolean, - startTransition: (fn: () => void) => Promise<void> -] - + startTransition: (fn: () => void) => Promise<void>, +]; ``` -Used to batch async updates in a transaction deferring commit until all async processes are complete. +Used to batch async updates in a transaction deferring commit until all async processes are complete. This is tied into Suspense and only tracks resources read under Suspense boundaries. ```ts diff --git a/src/routes/reference/rendering/dev.mdx b/src/routes/reference/rendering/dev.mdx index 39cf81e4fa..8229871687 100644 --- a/src/routes/reference/rendering/dev.mdx +++ b/src/routes/reference/rendering/dev.mdx @@ -3,15 +3,15 @@ title: DEV --- ```ts -import { DEV } from "solid-js" +import { DEV } from "solid-js"; -const DEV: object | undefined +const DEV: object | undefined; ``` -On the client, Solid provides (via [conditional exports](https://nodejs.org/api/packages.html#conditional-exports)) different builds depending on whether the **development** condition is set. +On the client, Solid provides (via [conditional exports](https://nodejs.org/api/packages.html#conditional-exports)) different builds depending on whether the **development** condition is set. Development mode provides some additional checking β€” e.g. detecting accidental use of multiple instances of Solid β€” which are removed in production builds. -If you want code to run only in development mode (most useful in libraries), you can check whether the **DEV** export is defined. +If you want code to run only in development mode (most useful in libraries), you can check whether the **DEV** export is defined. Note that it is always defined on the server, so you may want to combine with [isServer](/reference/rendering/is-server): ```ts diff --git a/src/routes/reference/rendering/hydrate.mdx b/src/routes/reference/rendering/hydrate.mdx index 31ce37db1f..a532014197 100644 --- a/src/routes/reference/rendering/hydrate.mdx +++ b/src/routes/reference/rendering/hydrate.mdx @@ -3,30 +3,29 @@ title: hydrate --- ```ts -import { hydrate } from "solid-js/web" -import type { JSX } from "solid-js" -import type { MountableElement } from "solid-js/web" +import { hydrate } from "solid-js/web"; +import type { JSX } from "solid-js"; +import type { MountableElement } from "solid-js/web"; function hydrate( - fn: () => JSX.Element, - node: MountableElement, - options?: { renderId?: string; owner?: unknown } -): () => void - + fn: () => JSX.Element, + node: MountableElement, + options?: { renderId?: string; owner?: unknown } +): () => void; ``` -This method is similar to `render` except that it attempts to rehydrate what is already rendered to the DOM. +This method is similar to `render` except that it attempts to rehydrate what is already rendered to the DOM. When initializing in the browser a page has already been server rendered. ```ts -const dispose = hydrate(App, document.getElementById("app")) +const dispose = hydrate(App, document.getElementById("app")); ``` ## Parameters -| Prop | type | description | -| -------------------- | ------------------ | ----------------------------------------------- | -| 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 +| Prop | type | description | +| ---------------- | ------------------- | ------------------------------------------- | +| fn | `() => JSX.Element` | Function that returns the application code. | +| node | MountableElement | DOM Element to mount the application to | +| options.renderId | string | | +| options.owner | unknown | | diff --git a/src/routes/reference/rendering/hydration-script.mdx b/src/routes/reference/rendering/hydration-script.mdx index 3448d9041c..71db5c0d3d 100644 --- a/src/routes/reference/rendering/hydration-script.mdx +++ b/src/routes/reference/rendering/hydration-script.mdx @@ -3,24 +3,23 @@ title: hydrationScript --- ```ts -import { generateHydrationScript, HydrationScript } from "solid-js/web" -import type { JSX } from "solid-js" +import { generateHydrationScript, HydrationScript } from "solid-js/web"; +import type { JSX } from "solid-js"; function generateHydrationScript(options: { - nonce?: string - eventNames?: string[] -}): string + nonce?: string; + eventNames?: string[]; +}): string; function HydrationScript(props: { - nonce?: string - eventNames?: string[] -}): JSX.Element - + nonce?: string; + eventNames?: string[]; +}): JSX.Element; ``` -Hydration Script is a special script that should be placed once on the page to bootstrap hydration before Solid's runtime has loaded. +Hydration Script is a special script that should be placed once on the page to bootstrap hydration before Solid's runtime has loaded. It comes both as a function that can be called and inserted in an HTML string, or as a Component if you are rendering JSX from the `<html>` tag. -The options are for the **nonce** to be put on the script tag and any event names for that Solid should capture before scripts have loaded and replay during hydration. -These events are limited to those that Solid delegates which include most UI Events that are composed and bubble. +The options are for the **nonce** to be put on the script tag and any event names for that Solid should capture before scripts have loaded and replay during hydration. +These events are limited to those that Solid delegates which include most UI Events that are composed and bubble. By default it is only click and input events. diff --git a/src/routes/reference/rendering/is-server.mdx b/src/routes/reference/rendering/is-server.mdx index 4a8539ab26..35fee9275b 100644 --- a/src/routes/reference/rendering/is-server.mdx +++ b/src/routes/reference/rendering/is-server.mdx @@ -3,13 +3,12 @@ title: isServer --- ```ts -import { isServer } from "solid-js/web" - -const isServer: boolean +import { isServer } from "solid-js/web"; +const isServer: boolean; ``` -This indicates that the code is being run as the server or browser bundle. +This indicates that the code is being run as the server or browser bundle. As the underlying runtimes export this as a constant boolean it allows bundlers to eliminate the code and their used imports from the respective bundles. ```ts diff --git a/src/routes/reference/rendering/render-to-stream.mdx b/src/routes/reference/rendering/render-to-stream.mdx index 8a92e23f8c..5da7da3b44 100644 --- a/src/routes/reference/rendering/render-to-stream.mdx +++ b/src/routes/reference/rendering/render-to-stream.mdx @@ -3,21 +3,20 @@ title: renderToStream --- ```ts -import { renderToStream } from "solid-js/web" +import { renderToStream } from "solid-js/web"; function renderToStream<T>( fn: () => T, options?: { - nonce?: string - renderId?: string - onCompleteShell?: () => void - onCompleteAll?: () => void + nonce?: string; + renderId?: string; + onCompleteShell?: () => void; + onCompleteAll?: () => void; } ): { - pipe: (writable: { write: (v: string) => void }) => void - pipeTo: (writable: WritableStream) => void -} - + pipe: (writable: { write: (v: string) => void }) => void; + pipeTo: (writable: WritableStream) => void; +}; ``` This method renders to a stream. @@ -25,11 +24,11 @@ It renders the content synchronously including any Suspense fallback placeholder ```ts // node -renderToStream(App).pipe(res) +renderToStream(App).pipe(res); // web stream -const { readable, writable } = new TransformStream() -renderToStream(App).pipeTo(writable) +const { readable, writable } = new TransformStream(); +renderToStream(App).pipeTo(writable); ``` `onCompleteShell` fires when synchronous rendering is complete before writing the first flush to the stream out to the browser. @@ -37,8 +36,8 @@ renderToStream(App).pipeTo(writable) `renderId` is used to namespace renders when having multiple top level roots. :::info - This API replaces the previous pipeToWritable and pipeToNodeWritable - APIs. +This API replaces the previous pipeToWritable and pipeToNodeWritable +APIs. ::: ## Options diff --git a/src/routes/reference/rendering/render-to-string-async.mdx b/src/routes/reference/rendering/render-to-string-async.mdx index 16c2509eb2..dd7129143d 100644 --- a/src/routes/reference/rendering/render-to-string-async.mdx +++ b/src/routes/reference/rendering/render-to-string-async.mdx @@ -3,26 +3,25 @@ title: renderToStringAsync --- ```ts -import { renderToStringAsync } from "solid-js/web" +import { renderToStringAsync } from "solid-js/web"; function renderToStringAsync<T>( fn: () => T, options?: { - timeoutMs?: number - renderId?: string - nonce?: string + timeoutMs?: number; + renderId?: string; + nonce?: string; } -): Promise<string> - +): Promise<string>; ``` -Same as `renderToString` except that it will wait for all `<Suspense>` boundaries to resolve before returning the results. +Same as `renderToString` except that it will wait for all `<Suspense>` boundaries to resolve before returning the results. Resource data is automatically serialized into the script tag and will be hydrated on client load. `renderId` is used to namespace renders when having multiple top level roots. ```ts -const html = await renderToStringAsync(App) +const html = await renderToStringAsync(App); ``` ## Options diff --git a/src/routes/reference/rendering/render-to-string.mdx b/src/routes/reference/rendering/render-to-string.mdx index 454b0c9718..3b669ecaf3 100644 --- a/src/routes/reference/rendering/render-to-string.mdx +++ b/src/routes/reference/rendering/render-to-string.mdx @@ -3,26 +3,25 @@ title: renderToString --- ```ts -import { renderToString } from "solid-js/web" +import { renderToString } from "solid-js/web"; function renderToString<T>( fn: () => T, options?: { - nonce?: string - renderId?: string + nonce?: string; + renderId?: string; } -): string - +): string; ``` -Renders to a string synchronously. -The function also generates a script tag for progressive hydration. +Renders to a string synchronously. +The function also generates a script tag for progressive hydration. Options include eventNames to listen to before the page loads and play back on hydration, and nonce to put on the script tag. `renderId` is used to namespace renders when having multiple top level roots. ```ts -const html = renderToString(App) +const html = renderToString(App); ``` ## Options diff --git a/src/routes/reference/rendering/render.mdx b/src/routes/reference/rendering/render.mdx index f30f5b2976..fde3c78d14 100644 --- a/src/routes/reference/rendering/render.mdx +++ b/src/routes/reference/rendering/render.mdx @@ -3,19 +3,15 @@ title: render --- ```ts -import { render } from "solid-js/web" -import type { JSX } from "solid-js" -import type { MountableElement } from "solid-js/web" - -function render( - code: () => JSX.Element, - element: MountableElement -): () => void +import { render } from "solid-js/web"; +import type { JSX } from "solid-js"; +import type { MountableElement } from "solid-js/web"; +function render(code: () => JSX.Element, element: MountableElement): () => void; ``` -This is the browser app entry point. -Provide a top-level component function and an element to mount to. +This is the browser app entry point. +Provide a top-level component function and an element to mount to. It is recommended this element be empty: while `render` will just append children, the returned dispose function will remove all children. ```ts @@ -28,7 +24,7 @@ It's important that the first argument is a function: do not pass JSX directly ( ## Parameters -| 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 +| Argument | Type | Description | +| -------- | ------------------- | ------------------------------------------- | +| code | `() => JSX.Element` | Function that returns the application code. | +| 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..cbe7ebc4ad 100644 --- a/src/routes/reference/secondary-primitives/create-computed.mdx +++ b/src/routes/reference/secondary-primitives/create-computed.mdx @@ -3,24 +3,23 @@ title: createComputed --- ```ts -import { createComputed } from "solid-js" - -function createComputed<T>(fn: (v: T) => T, value?: T): void +import { createComputed } from "solid-js"; +function createComputed<T>(fn: (v: T) => T, value?: T): void; ``` -`createComputed` creates a new computation that immediately runs the given function in a tracking scope, thus automatically tracking its dependencies, and automatically reruns the function whenever the dependencies changes. -The function gets called with an argument equal to the value returned from the function's last execution, or on the first call, equal to the optional second argument to `createComputed`. +`createComputed` creates a new computation that immediately runs the given function in a tracking scope, thus automatically tracking its dependencies, and automatically reruns the function whenever the dependencies changes. +The function gets called with an argument equal to the value returned from the function's last execution, or on the first call, equal to the optional second argument to `createComputed`. Note that the return value of the function is not otherwise exposed; in particular, createComputed has no return value. -`createComputed` is the most immediate form of reactivity in Solid, and is most useful for building other reactive primitives. -For example, some other Solid primitives are built from `createComputed`. -However, it should be used with care, as `createComputed` can easily cause more unnecessary updates than other reactive primitives. +`createComputed` is the most immediate form of reactivity in Solid, and is most useful for building other reactive primitives. +For example, some other Solid primitives are built from `createComputed`. +However, it should be used with care, as `createComputed` can easily cause more unnecessary updates than other reactive primitives. Before using it, consider the closely related primitives [`createMemo`](/reference/basic-reactivity/create-memo) and [`createRenderEffect`](/reference/secondary-primitives/create-render-effect). -Like `createMemo`, `createComputed` calls its function immediately on updates (unless you're in a [batch](/reference/reactive-utilities/batch), [effect](/reference/basic-reactivity/create-effect), or [transition](/reference/reactive-utilities/use-transition)). -However, while `createMemo` functions should be pure (not set any signals), `createComputed` functions can set signals. -Related, `createMemo` offers a readonly signal for the return value of the function, whereas to do the same with `createComputed` you would need to set a signal within the function. +Like `createMemo`, `createComputed` calls its function immediately on updates (unless you're in a [batch](/reference/reactive-utilities/batch), [effect](/reference/basic-reactivity/create-effect), or [transition](/reference/reactive-utilities/use-transition)). +However, while `createMemo` functions should be pure (not set any signals), `createComputed` functions can set signals. +Related, `createMemo` offers a readonly signal for the return value of the function, whereas to do the same with `createComputed` you would need to set a signal within the function. If it is possible to use pure functions and `createMemo`, this is likely more efficient, as Solid optimizes the execution order of memo updates, whereas updating a signal within `createComputed` will immediately trigger reactive updates some of which may turn out to be unnecessary. ## Arguments diff --git a/src/routes/reference/secondary-primitives/create-deferred.mdx b/src/routes/reference/secondary-primitives/create-deferred.mdx index d62f43b088..e3e279ec99 100644 --- a/src/routes/reference/secondary-primitives/create-deferred.mdx +++ b/src/routes/reference/secondary-primitives/create-deferred.mdx @@ -3,20 +3,19 @@ title: createDeferred --- ```ts -import { createDeferred } from "solid-js" +import { createDeferred } from "solid-js"; function createDeferred<T>( source: () => T, options?: { - timeoutMs?: number - equals?: false | ((prev: T, next: T) => boolean) - name?: string + timeoutMs?: number; + equals?: false | ((prev: T, next: T) => boolean); + name?: string; } -): () => T - +): () => T; ``` -Creates a readonly that only notifies downstream changes when the browser is idle. +Creates a readonly that only notifies downstream changes when the browser is idle. `timeoutMs` is the maximum time to wait before forcing the update. ## Options @@ -26,4 +25,3 @@ Creates a readonly that only notifies downstream changes when the browser is idl | timeoutMs | `number` | The maximum time to wait before forcing the update. | | equals | `false or ((prev: T, next: T) => boolean)` | A function that returns true if the value has changed. | | name | `string` | The name of the readonly. | - diff --git a/src/routes/reference/secondary-primitives/create-reaction.mdx b/src/routes/reference/secondary-primitives/create-reaction.mdx index 9a49a35c1f..376def1d5d 100644 --- a/src/routes/reference/secondary-primitives/create-reaction.mdx +++ b/src/routes/reference/secondary-primitives/create-reaction.mdx @@ -3,24 +3,23 @@ title: createReaction --- ```ts -import { createReaction } from "solid-js" - -function createReaction(onInvalidate: () => void): (fn: () => void) => void +import { createReaction } from "solid-js"; +function createReaction(onInvalidate: () => void): (fn: () => void) => void; ``` -Sometimes it is useful to separate tracking from re-execution. +Sometimes it is useful to separate tracking from re-execution. This primitive registers a side effect that is run the first time the expression wrapped by the returned tracking function is notified of a change. ```ts -const [s, set] = createSignal("start") +const [s, set] = createSignal("start"); -const track = createReaction(() => console.log("something")) +const track = createReaction(() => console.log("something")); // run the reaction next time `s` changes. -track(() => s()) +track(() => s()); -set("end") // "something" +set("end"); // "something" -set("final") // no-op since the reaction only runs on the first update, need to call `track` again. +set("final"); // no-op since the reaction only runs on the first update, need to call `track` again. ``` diff --git a/src/routes/reference/secondary-primitives/create-render-effect.mdx b/src/routes/reference/secondary-primitives/create-render-effect.mdx index bf8a77852f..5b4fbc5c18 100644 --- a/src/routes/reference/secondary-primitives/create-render-effect.mdx +++ b/src/routes/reference/secondary-primitives/create-render-effect.mdx @@ -3,40 +3,39 @@ title: createRenderEffect --- ```ts -import { createRenderEffect } from "solid-js" - -function createRenderEffect<T>(fn: (v: T) => T, value?: T): void +import { createRenderEffect } from "solid-js"; +function createRenderEffect<T>(fn: (v: T) => T, value?: T): 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. +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**. -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). +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. Here is an example of the behavior. (Compare with the example in [`createEffect`](/reference/basic-reactivity/create-effect).) ```ts // assume this code is in a component function, so is part of a rendering phase -const [count, setCount] = createSignal(0) +const [count, setCount] = createSignal(0); // this effect prints count at the beginning and when it changes -createRenderEffect(() => console.log("count =", count())) +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 +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") -}) + 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] diff --git a/src/routes/reference/secondary-primitives/create-selector.mdx b/src/routes/reference/secondary-primitives/create-selector.mdx index 8b5c0ade0b..e1baf46711 100644 --- a/src/routes/reference/secondary-primitives/create-selector.mdx +++ b/src/routes/reference/secondary-primitives/create-selector.mdx @@ -3,12 +3,12 @@ title: createSelector --- ```ts -import { createSelector } from "solid-js" +import { createSelector } from "solid-js"; function createSelector<T, U>( source: () => T, fn?: (a: U, b: T) => boolean -): (key: U) => boolean +): (key: U) => boolean; ``` Creates a parameterized derived boolean signal `selector(key)` that indicates @@ -16,13 +16,13 @@ whether `key` is equal to the current value of the `source` signal. These signals are optimized to notify each subscriber only when their `key` starts or stops matching the reactive `source` value (instead of every time `key` changes). -If you have *n* different subscribers with different keys, +If you have _n_ different subscribers with different keys, and the `source` value changes from `a` to `b`, then -instead of all *n* subscribers updating, +instead of all _n_ subscribers updating, at most two subscribers will update: the signal with key `a` will change to `false`, and the signal with key `b` will change to `true`. -Thus it reduces from *n* updates to 2 updates. +Thus it reduces from _n_ updates to 2 updates. Useful for defining the selection state of several selectable elements. For example: @@ -39,7 +39,7 @@ const isSelected = createSelector(selectedId) In the code above, each `li` element receives an `active` class exactly when the corresponding `item.id` is equal to `selectedId()`. When the `selectedId` signal changes, the `li` element(s) that previously -had previously matching `id` get the `active` class removed, and the +had previously matching `id` get the `active` class removed, and the `li` element(s) that now have a matching `id` get the `active` class added. All other `li` elements get skipped, so if `id`s are distinct, only 2 DOM operations get performed. @@ -57,7 +57,7 @@ const [selectedId, setSelectedId] = createSignal() ## Arguments -| Name | Type | Description | -| :------- | :------------------------ | :------------------------------------------- | -| `source` | `() => T` | The source signal to get the value from and compare with keys. | +| Name | Type | Description | +| :------- | :------------------------ | :------------------------------------------------------------------------------------------------------------- | +| `source` | `() => T` | The source signal to get the value from and compare with keys. | | `fn` | `(a: U, b: T) => boolean` | A function to compare the key and the value, returning whether they should be treated as equal. Default: `===` | diff --git a/src/routes/reference/server-utilities/data.json b/src/routes/reference/server-utilities/data.json index 5f09a10a82..3d47aead9f 100644 --- a/src/routes/reference/server-utilities/data.json +++ b/src/routes/reference/server-utilities/data.json @@ -1,6 +1,4 @@ { "title": "Server utilities", - "pages": [ - "get-request-event.mdx" - ] + "pages": ["get-request-event.mdx"] } diff --git a/src/routes/reference/server-utilities/get-request-event.mdx b/src/routes/reference/server-utilities/get-request-event.mdx index 44954ecdc3..82ab6fc1af 100644 --- a/src/routes/reference/server-utilities/get-request-event.mdx +++ b/src/routes/reference/server-utilities/get-request-event.mdx @@ -16,9 +16,9 @@ function getRequestEvent(): RequestEvent | undefined You can retrieve the request event by calling `getRequestEvent`: ```js -import { getRequestEvent } from "solid-js/web" +import { getRequestEvent } from "solid-js/web"; -const event = getRequestEvent() +const event = getRequestEvent(); ``` ## Request @@ -26,10 +26,10 @@ const event = getRequestEvent() `.request` is the most important property of the `RequestEvent`. This is a Web [Request object](https://developer.mozilla.org/en-US/docs/Web/API/Request) that represents the current request to the server. You can access properties off of it such as `url` and `headers`. - `body`, however, does not typically need to be handled directly for things such as server functions or rendering, which already handle mapping. +`body`, however, does not typically need to be handled directly for things such as server functions or rendering, which already handle mapping. ```js -import { getRequestEvent } from "solid-js/web" +import { getRequestEvent } from "solid-js/web"; const event = getRequestEvent(); if (event) { @@ -43,7 +43,7 @@ The `getRequestEvent` can also be used to stub out the Response - this extends t This is kept up to date so it can be used to read and write headers and status for the current response. ```js -import { getRequestEvent } from "solid-js/web" +import { getRequestEvent } from "solid-js/web"; const event = getRequestEvent(); if (event) { @@ -63,6 +63,6 @@ This is important because some headers previously set may not be needed to be se **Note:** This is important to keep in mind when choosing where to set headers and responses. :::info[Usage with SolidStart] - See this guide on [Request - Events](/solid-start/advanced/request-events). +See this guide on [Request +Events](/solid-start/advanced/request-events). ::: diff --git a/src/routes/reference/store-utilities/create-mutable.mdx b/src/routes/reference/store-utilities/create-mutable.mdx index 5c53aac82f..c6b27c4ca0 100644 --- a/src/routes/reference/store-utilities/create-mutable.mdx +++ b/src/routes/reference/store-utilities/create-mutable.mdx @@ -7,21 +7,22 @@ title: createMutable By intercepting property access, it allows automatic tracking of deep nesting via proxy making it useful for integrating external systems or serving as a compatibility layer with frameworks like MobX or Vue. ```tsx -import { createMutable } from "solid-js/store" -import type { Store, StoreNode } from "solid-js/store" +import { createMutable } from "solid-js/store"; +import type { Store, StoreNode } from "solid-js/store"; function createMutable<T extends StoreNode>(state: T | Store<T>): Store<T>; ``` :::info - It's important to recognize that a mutable state, which can be passed around and modified anywhere, may complicate the code structure and increase the risk of breaking unidirectional flow. +It's important to recognize that a mutable state, which can be passed around and modified anywhere, may complicate the code structure and increase the risk of breaking unidirectional flow. + + For a more robust alternative, it is generally recommended to use `createStore` instead. + Additionally, the [`produce`](/reference/store-utilities/produce) utility can provide many of these same benefits without the associated downsides. - For a more robust alternative, it is generally recommended to use `createStore` instead. - Additionally, the [`produce`](/reference/store-utilities/produce) utility can provide many of these same benefits without the associated downsides. ::: ```tsx -import { createMutable } from "solid-js/store" +import { createMutable } from "solid-js/store"; const state = createMutable({ someValue: 0, diff --git a/src/routes/reference/store-utilities/create-store.mdx b/src/routes/reference/store-utilities/create-store.mdx index c084231aac..cdc53eab20 100644 --- a/src/routes/reference/store-utilities/create-store.mdx +++ b/src/routes/reference/store-utilities/create-store.mdx @@ -7,8 +7,8 @@ Stores were intentionally designed to manage data structures like objects and ar ## Types Signature ```tsx -import { createStore } from "solid-js/store" -import type { StoreNode, Store, SetStoreFunction } from "solid-js/store" +import { createStore } from "solid-js/store"; +import type { StoreNode, Store, SetStoreFunction } from "solid-js/store"; function createStore<T extends StoreNode>( state: T | Store<T> diff --git a/src/routes/reference/store-utilities/modify-mutable.mdx b/src/routes/reference/store-utilities/modify-mutable.mdx index ac56213047..ab3945ae5e 100644 --- a/src/routes/reference/store-utilities/modify-mutable.mdx +++ b/src/routes/reference/store-utilities/modify-mutable.mdx @@ -7,9 +7,9 @@ title: modifyMutable It operates within a single [`batch`](/reference/reactive-utilities/batch), ensuring that dependent computations are updated just once, rather than triggering updates for each individual change. ```tsx -import { modifyMutable } from "solid-js/store" +import { modifyMutable } from "solid-js/store"; -function modifyMutable<T>(mutable: T, modifier: (state: T) => T): void +function modifyMutable<T>(mutable: T, modifier: (state: T) => T): void; ``` The function takes two arguments: @@ -18,14 +18,14 @@ The function takes two arguments: 2. The second argument is a Store modifier, which could be one of those returned by [`reconcile`](/reference/store-utilities/reconcile). :::caution - When passing in your own modifier function, it's important to be aware that - its argument is an unwrapped version of the store. +When passing in your own modifier function, it's important to be aware that +its argument is an unwrapped version of the store. ::: For example, if the UI depends on multiple fields of a mutable: ```tsx -import { createMutable } from "solid-js/store" +import { createMutable } from "solid-js/store"; const state = createMutable({ user: { @@ -47,7 +47,7 @@ state.user.lastName = "Doe"; To trigger just a single update, the fields can be modified using a `batch`: ```tsx -import { batch } from "solid-js" +import { batch } from "solid-js"; batch(() => { state.user.firstName = "Jane"; @@ -58,7 +58,7 @@ batch(() => { `modifyMutable` combined with [`reconcile`](/reference/store-utilities/reconcile) or [`produce`](/reference/store-utilities/produce) provides two alternate ways to do similar things: ```tsx -import { modifyMutable, reconcile } from "solid-js/store" +import { modifyMutable, reconcile } from "solid-js/store"; // Replace state.user with the specified object (deleting any other fields) modifyMutable( @@ -71,7 +71,7 @@ modifyMutable( ``` ```tsx -import { modifyMutable, produce } from "solid-js/store" +import { modifyMutable, produce } from "solid-js/store"; // Modify two fields in a batch, triggering just one update modifyMutable( diff --git a/src/routes/reference/store-utilities/produce.mdx b/src/routes/reference/store-utilities/produce.mdx index 1f0153fc5d..a7ef3b2ace 100644 --- a/src/routes/reference/store-utilities/produce.mdx +++ b/src/routes/reference/store-utilities/produce.mdx @@ -5,8 +5,8 @@ title: produce `produce` is an [Immer](https://immerjs.github.io/immer/) inspired API for Solid's Store objects that allows for localized mutation. ```ts -import { produce } from "solid-js/store" -import type { NotWrappable, Store } from "solid-js/store" +import { produce } from "solid-js/store"; +import type { NotWrappable, Store } from "solid-js/store"; function produce<T>( fn: (state: T) => void diff --git a/src/routes/reference/store-utilities/reconcile.mdx b/src/routes/reference/store-utilities/reconcile.mdx index cfd0e7d946..48ca59019f 100644 --- a/src/routes/reference/store-utilities/reconcile.mdx +++ b/src/routes/reference/store-utilities/reconcile.mdx @@ -2,12 +2,12 @@ title: reconcile --- -`reconcile` is designed for diffing data changes in situations where granular updates cannot be applied. +`reconcile` is designed for diffing data changes in situations where granular updates cannot be applied. This is useful when dealing with immutable data from stores or handling large API responses. ```tsx -import { reconcile } from "solid-js/store" -import type { NotWrappable, Store } from "solid-js/store" +import { reconcile } from "solid-js/store"; +import type { NotWrappable, Store } from "solid-js/store"; function reconcile<T>( value: T | Store<T>, @@ -17,14 +17,14 @@ function reconcile<T>( } = { key: "id" } ): ( state: T extends NotWrappable ? T : Store<T> -) => T extends NotWrappable ? T : Store<T> +) => T extends NotWrappable ? T : Store<T>; ``` `reconcile` has a `key` option that can be used when available to match items. -The `value` accepts either a value of type `T` or a Store containing values of type `T`. +The `value` accepts either a value of type `T` or a Store containing values of type `T`. This represents the data to be reconciled. -The `reconcile` function helps manage data changes by performing a diffing process, making it particularly handy in scenarios where applying granular updates is challenging or inefficient. +The `reconcile` function helps manage data changes by performing a diffing process, making it particularly handy in scenarios where applying granular updates is challenging or inefficient. The `key` and `merge` options provide flexibility to customize the reconciliation process based on specific needs. @@ -39,7 +39,7 @@ onCleanup(() => unsubscribe()); ##### Options -| Option | Type | Default | Description | -| ------ | ------- | ------- | ---------------------------------- | -| key | string | "id" | Specifies the key to be used for matching items during reconciliation | +| Option | Type | Default | Description | +| ------ | ------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| key | string | "id" | Specifies the key to be used for matching items during reconciliation | | merge | boolean | false | When merge is false, referential checks are performed where possible to determine equality, and items that are not referentially equal are replaced. When merge is true, all diffing is pushed to the leaves, effectively morphing the previous data to the new value. | diff --git a/src/routes/reference/store-utilities/unwrap.mdx b/src/routes/reference/store-utilities/unwrap.mdx index 64742a17ef..cb4bbccbae 100644 --- a/src/routes/reference/store-utilities/unwrap.mdx +++ b/src/routes/reference/store-utilities/unwrap.mdx @@ -5,8 +5,8 @@ title: unwrap `unwrap` returns the underlying data in the store without a proxy. ```tsx -import { unwrap } from "solid-js/store" -import type { Store } from "solid-js/store" +import { unwrap } from "solid-js/store"; +import type { Store } from "solid-js/store"; -function unwrap(store: Store<T>): T +function unwrap(store: Store<T>): T; ``` 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 1e09b57f87..3f4b6bae18 100644 --- a/src/routes/solid-meta/getting-started/installation-and-setup.mdx +++ b/src/routes/solid-meta/getting-started/installation-and-setup.mdx @@ -19,17 +19,9 @@ npm i @solidjs/meta ``` </div> -<div id="yarn"> -```bash frame="none" -yarn add @solidjs/meta -``` -</div> +<div id="yarn">```bash frame="none" yarn add @solidjs/meta ```</div> -<div id="pnpm"> -```bash frame="none" -pnpm add @solidjs/meta -``` -</div> +<div id="pnpm">```bash frame="none" pnpm add @solidjs/meta ```</div> <div id="deno"> ```bash frame="none" @@ -42,15 +34,18 @@ deno add npm:@solidjs/meta 1. Wrap your application with [`<MetaProvider />`](/solid-meta/reference/meta/metaprovider) 2. To include head tags within your application, render any of the following: - 1. [`<Title />`](/solid-meta/reference/meta/title): Adds the `title` of the page. - 2. [`<Meta />`](/solid-meta/reference/meta/meta): Adds extra metadata to the page. - 3. [`<Style />`](/solid-meta/reference/meta/style): Adds a `style` element to the page. - 4. [`<Link />`](/solid-meta/reference/meta/link): Specifies a relationship between the page and an external resource. - 5. [`<Base />`](/solid-meta/reference/meta/base): Specifies the base URL for all relative URLs in the document. + 1. [`<Title />`](/solid-meta/reference/meta/title): Adds the `title` of the page. + 2. [`<Meta />`](/solid-meta/reference/meta/meta): Adds extra metadata to the page. + 3. [`<Style />`](/solid-meta/reference/meta/style): Adds a `style` element to the page. + 4. [`<Link />`](/solid-meta/reference/meta/link): Specifies a relationship between the page and an external resource. + 5. [`<Base />`](/solid-meta/reference/meta/base): Specifies the base URL for all relative URLs in the document. + - These components can be used multiple times within the application. + 3. If using Solid on the server with JSX, no additional configuration is required. Here is an example of how your code might look after this setup. + ```js import { MetaProvider, Title, Link, Meta } from "@solidjs/meta"; @@ -64,7 +59,8 @@ const App = () => ( </MetaProvider> ); ``` + On the server, tags are collected, and then on the client, server-generated tags are replaced with those rendered on the client side. This process is important for maintaining the expected behavior, such as Single Page Applications (SPAs) when pages load that require changes to the head tags. -However, you can manage asset insertion using `getAssets` from `solid-js/web`. +However, you can manage asset insertion using `getAssets` from `solid-js/web`. diff --git a/src/routes/solid-meta/reference/meta/base.mdx b/src/routes/solid-meta/reference/meta/base.mdx index f0be6b9f92..5504efa927 100644 --- a/src/routes/solid-meta/reference/meta/base.mdx +++ b/src/routes/solid-meta/reference/meta/base.mdx @@ -6,7 +6,7 @@ order: 5 `Base` is a component that specifies the base URL for all relative URLs in the document. This provides a way to define the [`base`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/base) element of your document's `head`. -```tsx twoslash +```tsx import { Base } from "@solidjs/meta"; <Base target="_blank" href="https://docs.solidjs.com/" />; @@ -16,7 +16,7 @@ import { Base } from "@solidjs/meta"; ### Adding `base` tag -```tsx twoslash +```tsx import { MetaProvider, Base } from "@solidjs/meta"; export default function Root() { @@ -26,4 +26,4 @@ export default function Root() { </MetaProvider> ); } -``` \ 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..4911462263 100644 --- a/src/routes/solid-meta/reference/meta/link.mdx +++ b/src/routes/solid-meta/reference/meta/link.mdx @@ -8,7 +8,7 @@ Commonly, this is used for linking stylesheets and other associations. This component renders a [`link`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/link) element within the document's `<head>`. -```tsx twoslash +```tsx import { Link } from "@solidjs/meta"; <Link rel="icon" href="/favicon.ico" />; ``` @@ -19,7 +19,7 @@ import { Link } from "@solidjs/meta"; To add a favicon in an app, `<Link>` can be used to point to the asset: -```tsx twoslash +```tsx import { MetaProvider, Link } from "@solidjs/meta"; export default function Root() { diff --git a/src/routes/solid-meta/reference/meta/meta.mdx b/src/routes/solid-meta/reference/meta/meta.mdx index 13e077da5d..3353a574b8 100644 --- a/src/routes/solid-meta/reference/meta/meta.mdx +++ b/src/routes/solid-meta/reference/meta/meta.mdx @@ -6,20 +6,20 @@ order: 3 The `<Meta>` component represents metadata that cannot be represented by other HTML elements. It is a wrapper for the native [`meta`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta) element and has the same properties. -```tsx twoslash +```tsx import { Meta } from "@solidjs/meta"; <Meta name="description" content="My site description" />; ``` - `Meta` components can be placed in the [`MetaProvider`](/solid-meta/reference/meta/metaprovider) or added throughout the application for additional metadata or override parents. `Meta` tags are considered the same and will be overridden if `name` attributes match. + ## Usage ### Adding `meta` tag -```tsx twoslash {6-8} +```tsx {6-8} import { MetaProvider, Meta } from "@solidjs/meta"; export default function Root() { @@ -31,4 +31,4 @@ export default function Root() { </MetaProvider> ); } -``` \ 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..2be2f51a00 100644 --- a/src/routes/solid-meta/reference/meta/metaprovider.mdx +++ b/src/routes/solid-meta/reference/meta/metaprovider.mdx @@ -6,8 +6,8 @@ order: 6 `MetaProvider` is a parent component responsible for wrapping all the metadata components. All components that are contained within this will be added to the application `<head/>` -```tsx twoslash +```tsx import { MetaProvider } from "@solidjs/meta"; <MetaProvider>// add meta components</MetaProvider>; -``` \ 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..5cbd3ec661 100644 --- a/src/routes/solid-meta/reference/meta/style.mdx +++ b/src/routes/solid-meta/reference/meta/style.mdx @@ -5,7 +5,7 @@ order: 4 `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`. -```tsx twoslash +```tsx import { Style } from "@solidjs/meta"; <Style> @@ -25,10 +25,10 @@ The `Style` component can add CSS to style elements within your application. It is recommended to add styles in an external stylesheet and use a `Link` instead, rather than using this component, however. :::tip[Note] - Styles within the `Style` component are not scoped. +Styles within the `Style` component are not scoped. ::: -```tsx twoslash +```tsx import { MetaProvider, Style } from "@solidjs/meta"; export default function Root() { diff --git a/src/routes/solid-meta/reference/meta/title.mdx b/src/routes/solid-meta/reference/meta/title.mdx index 3c0786c648..a725ae68ba 100644 --- a/src/routes/solid-meta/reference/meta/title.mdx +++ b/src/routes/solid-meta/reference/meta/title.mdx @@ -6,7 +6,7 @@ order: 1 `Title` is a component that renders the [`title`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/title) element. This will render the title of the page in the browser tab. -```tsx twoslash +```tsx import { Title } from "@solidjs/meta"; <Title>My Site; ``` @@ -15,7 +15,7 @@ import { Title } from "@solidjs/meta"; ### Setting the title for your site -```tsx twoslash filename="root.tsx" {5} +```tsx filename="root.tsx" {5} import { MetaProvider, Title } from "@solidjs/meta"; export default function Root() { return ( @@ -24,4 +24,4 @@ export default function Root() { ); } -``` \ No newline at end of file +``` diff --git a/src/routes/solid-router/advanced-concepts/data.json b/src/routes/solid-router/advanced-concepts/data.json index 0f6e6c5f8e..efd7480fab 100644 --- a/src/routes/solid-router/advanced-concepts/data.json +++ b/src/routes/solid-router/advanced-concepts/data.json @@ -1,4 +1,4 @@ -{ - "title": "Advanced concepts", - "pages": ["lazy-loading.mdx"] -} +{ + "title": "Advanced concepts", + "pages": ["lazy-loading.mdx"] +} diff --git a/src/routes/solid-router/advanced-concepts/lazy-loading.mdx b/src/routes/solid-router/advanced-concepts/lazy-loading.mdx index 2ef9d89a41..0874d80a97 100644 --- a/src/routes/solid-router/advanced-concepts/lazy-loading.mdx +++ b/src/routes/solid-router/advanced-concepts/lazy-loading.mdx @@ -1,28 +1,28 @@ ---- -title: Lazy loading ---- - -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. - -In Solid Router, you can lazy load components using the `lazy` function from Solid: - -```jsx -import { lazy } from "solid-js"; -import { Router, Route } from "@solidjs/router"; - -const Home = lazy(() => import("./Home")); - -const Users = lazy(() => import("./Users")); - -const App = () => ( - - - - -); -``` - -In the example above, the `Users` component is lazy loaded using the `lazy` function. -The `lazy` function takes a function that returns a promise, which resolves to the component you want to load. -When the route is matched, the component will be loaded and rendered. +--- +title: Lazy loading +--- + +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. + +In Solid Router, you can lazy load components using the `lazy` function from Solid: + +```jsx +import { lazy } from "solid-js"; +import { Router, Route } from "@solidjs/router"; + +const Home = lazy(() => import("./Home")); + +const Users = lazy(() => import("./Users")); + +const App = () => ( + + + + +); +``` + +In the example above, the `Users` component is lazy loaded using the `lazy` function. +The `lazy` function takes a function that returns a promise, which resolves to the component you want to load. +When the route is matched, the component will be loaded and rendered. diff --git a/src/routes/solid-router/concepts/actions.mdx b/src/routes/solid-router/concepts/actions.mdx index d194d75dee..d7c47642cc 100644 --- a/src/routes/solid-router/concepts/actions.mdx +++ b/src/routes/solid-router/concepts/actions.mdx @@ -26,16 +26,16 @@ When a user performs an action, such as submitting a form, the data is sent to t ## Creating actions -To create an action, use the `action` function from the `@solidjs/router` package. +To create an action, use the `action` function from the `@solidjs/router` package. This function takes an asynchronous function as an argument and returns a new function that can be used to submit data. ```tsx import { action } from "@solidjs/router"; const echo = action(async (message: string) => { - // Simulates an asynchronous operation, such as an API call - await new Promise((resolve, reject) => setTimeout(resolve, 1000)); - console.log(message); + // Simulates an asynchronous operation, such as an API call + await new Promise((resolve, reject) => setTimeout(resolve, 1000)); + console.log(message); }); ``` @@ -59,14 +59,14 @@ import { action } from "@solidjs/router"; import { action, useAction } from "@solidjs/router"; const echo = action(async (message: string) => { - await new Promise((resolve, reject) => setTimeout(resolve, 1000)); - console.log(message); + await new Promise((resolve, reject) => setTimeout(resolve, 1000)); + console.log(message); }); export function MyComponent() { - const myEcho = useAction(echo); + const myEcho = useAction(echo); - myEcho("Hello from Solid!"); + myEcho("Hello from Solid!"); } ``` @@ -86,19 +86,19 @@ import { action, useAction } from "@solidjs/router"; import { action, useAction, useSubmission } from "@solidjs/router"; const echo = action(async (message: string) => { - await new Promise((resolve, reject) => setTimeout(resolve, 1000)); - return message; + await new Promise((resolve, reject) => setTimeout(resolve, 1000)); + return message; }); export function MyComponent() { - const myEcho = useAction(echo); - const echoing = useSubmission(echo); + const myEcho = useAction(echo); + const echoing = useSubmission(echo); - myEcho("Hello from solid!"); + myEcho("Hello from solid!"); - setTimeout(() => myEcho("This is a second submission!"), 1500); + setTimeout(() => myEcho("This is a second submission!"), 1500); - return

    {echoing.result}

    ; + return

    {echoing.result}

    ; } ``` @@ -118,28 +118,26 @@ This creates progressively enhanced forms that work even when JavaScript is disa 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. - ```tsx import { action, redirect } from "@solidjs/router"; const isAdmin = action(async (formData: FormData) => { - await new Promise((resolve, reject) => setTimeout(resolve, 1000)); + await new Promise((resolve, reject) => setTimeout(resolve, 1000)); - const username = formData.get("username"); + const username = formData.get("username"); - if (username === "admin") throw redirect("/admin"); - return new Error("Invalid username"); + if (username === "admin") throw redirect("/admin"); + return new Error("Invalid username"); }); export function MyComponent() { - - return ( -
    - - - -
    - ); + return ( +
    + + + +
    + ); } ``` diff --git a/src/routes/solid-router/concepts/alternative-routers.mdx b/src/routes/solid-router/concepts/alternative-routers.mdx index 4f86f37516..9fc191a85e 100644 --- a/src/routes/solid-router/concepts/alternative-routers.mdx +++ b/src/routes/solid-router/concepts/alternative-routers.mdx @@ -4,6 +4,7 @@ title: Alternative routers While the default router uses the browser's `location.pathname` to determine the current route, you can use alternative routers to change this behavior. This includes: + - [**Hash mode**](#hash-mode): Uses the hash portion of the URL to determine the current route. - [**Memory mode**](#memory-mode): Keeps the history of the router in memory, useful for testing. @@ -15,10 +16,10 @@ To use hash mode, replace the `` component in the application with [`< ```jsx del={3, 16} ins={4,17} import { render } from "solid-js/web"; -import { +import { Router HashRouter, - Route + Route } from "@solidjs/router"; const App = (props) => ( @@ -46,10 +47,10 @@ To use memory mode, replace the `` component in the application with [ ```jsx del={3, 16} ins={4,17} import { render } from "solid-js/web"; -import { +import { Router MemoryRouter, - Route + Route } from "@solidjs/router"; const App = (props) => ( @@ -65,4 +66,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..f71f3a6da8 100644 --- a/src/routes/solid-router/concepts/catch-all.mdx +++ b/src/routes/solid-router/concepts/catch-all.mdx @@ -2,7 +2,7 @@ title: Catch-all routes --- -Catch-all routes are used to match any URL that does not match any other route in the application. +Catch-all routes are used to match any URL that does not match any other route in the application. This is useful for displaying a 404 page or redirecting to a specific route when a user enters an invalid URL. To create a catch-all route, place a route with an asterisk (`*`) as the path at the end of the route list. @@ -16,11 +16,11 @@ import About from "./About"; import NotFound from "./NotFound"; const App = () => ( - - - - - + + + + + ); ``` diff --git a/src/routes/solid-router/concepts/data.json b/src/routes/solid-router/concepts/data.json index 9d91d50dd8..8cef16056b 100644 --- a/src/routes/solid-router/concepts/data.json +++ b/src/routes/solid-router/concepts/data.json @@ -10,4 +10,4 @@ "alternative-routers.mdx", "actions.mdx" ] -} \ No newline at end of file +} diff --git a/src/routes/solid-router/concepts/layouts.mdx b/src/routes/solid-router/concepts/layouts.mdx index bf6dcf5340..dd6a38c573 100644 --- a/src/routes/solid-router/concepts/layouts.mdx +++ b/src/routes/solid-router/concepts/layouts.mdx @@ -2,7 +2,7 @@ title: "Layouts" --- -To maintain consistency across an application's page you can use layouts. +To maintain consistency across an application's page you can use layouts. Layouts are components that wrap the content of a route and can be used to define a common structure for all pages or specific sections of an application. ## Root-level layouts @@ -17,23 +17,23 @@ import { Router, Route } from "@solidjs/router"; import Home from "./pages/Home"; const Layout = (props) => { - return ( - <> -
    Header
    - {props.children} -
    Footer
    - - ); + return ( + <> +
    Header
    + {props.children} +
    Footer
    + + ); }; render( - () => ( - - -
    Hello world!
    } /> -
    - ), - document.getElementById("app") + () => ( + + +
    Hello world!
    } /> +
    + ), + document.getElementById("app") ); ``` @@ -63,10 +63,10 @@ For `PageWrapper` to be used as a layout, in this case, you can pass it as a com ```jsx - - - - + + + + ``` diff --git a/src/routes/solid-router/concepts/navigation.mdx b/src/routes/solid-router/concepts/navigation.mdx index 46ad4552c6..dc5a01b6a5 100644 --- a/src/routes/solid-router/concepts/navigation.mdx +++ b/src/routes/solid-router/concepts/navigation.mdx @@ -1,110 +1,110 @@ ---- -title: "Navigation" ---- - -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: - -- The [`` component](/solid-router/reference/components/a). -- The [`useNavigate` primitive](/solid-router/reference/primitives/use-navigate). -- The [`redirect` function](/solid-router/reference/response-helpers/redirect). - -## `` component - -The `` component extends the native `` element by automatically applying the base URL path and, additionally, supports relative paths. - -```tsx -import { A } from "@solidjs/router"; - -function DashboardPage() { - return ( -
    - - {/* This is a relative path that, from /dashboard, links to /dashboard/users */} - Users -
    - ); -} -``` - -See the [`` API reference](/solid-router/reference/components/a) for more information. - -### Styling - -The `` component allows you to style links based on their active state using the `activeClass` and `inactiveClass` props. -When provided, these props apply the corresponding CSS classes to the link. -If omitted, the default classes `active` and `inactive` are used. - -By default, a link is considered active when the current route matches the link's `href` or any of its descendant routes. -For example, a link with `href="/dashboard"` is active when the current route is `/dashboard`, `/dashboard/users`, or `/dashboard/users/1/profile`. - -To match an exact route, the prop `end` can be used. -When `true`, it ensures that the link is only considered active if the `href` exactly matches the current route. -This is useful for root route links (href="/"), which might otherwise match all routes. - -```tsx -import { A } from "@solidjs/router"; - -function Navbar() { - return ( - - ); -} -``` - -## `useNavigate` primitive - -The `useNavigate` primitive allows for programmatically navigating to a specified route. - -```tsx -import { useNavigate } from "@solidjs/router"; - -function LoginPage() { - const navigate = useNavigate(); - - return ( - - ); -} -``` - -This example redirects the user to `/dashboard` after login. -By using `replace: true`, the login page is removed from the browser's history stack and replaced with the `/dashboard` route. -This prevents the user from navigating back to the login page using the back button. - -See the [`useNavigate` API reference](/solid-router/reference/primitives/use-navigate) for more information. - -## `redirect` function - -The `redirect` function returns a [`Response` object](https://developer.mozilla.org/en-US/docs/Web/API/Response), which enables navigation to a specified route within [query](/solid-router/reference/data-apis/query) or [action](/solid-router/reference/data-apis/action). - -```tsx -import { action, redirect } from "@solidjs/router"; - -const logout = action(async () => { - localStorage.remove("token"); - throw redirect("/"); -}); -``` - -See the [`redirect` API reference](/solid-router/reference/response-helpers/redirect) for more information. +--- +title: "Navigation" +--- + +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: + +- The [`` component](/solid-router/reference/components/a). +- The [`useNavigate` primitive](/solid-router/reference/primitives/use-navigate). +- The [`redirect` function](/solid-router/reference/response-helpers/redirect). + +## `` component + +The `` component extends the native `` element by automatically applying the base URL path and, additionally, supports relative paths. + +```tsx +import { A } from "@solidjs/router"; + +function DashboardPage() { + return ( +
    + + {/* This is a relative path that, from /dashboard, links to /dashboard/users */} + Users +
    + ); +} +``` + +See the [`` API reference](/solid-router/reference/components/a) for more information. + +### Styling + +The `` component allows you to style links based on their active state using the `activeClass` and `inactiveClass` props. +When provided, these props apply the corresponding CSS classes to the link. +If omitted, the default classes `active` and `inactive` are used. + +By default, a link is considered active when the current route matches the link's `href` or any of its descendant routes. +For example, a link with `href="/dashboard"` is active when the current route is `/dashboard`, `/dashboard/users`, or `/dashboard/users/1/profile`. + +To match an exact route, the prop `end` can be used. +When `true`, it ensures that the link is only considered active if the `href` exactly matches the current route. +This is useful for root route links (href="/"), which might otherwise match all routes. + +```tsx +import { A } from "@solidjs/router"; + +function Navbar() { + return ( + + ); +} +``` + +## `useNavigate` primitive + +The `useNavigate` primitive allows for programmatically navigating to a specified route. + +```tsx +import { useNavigate } from "@solidjs/router"; + +function LoginPage() { + const navigate = useNavigate(); + + return ( + + ); +} +``` + +This example redirects the user to `/dashboard` after login. +By using `replace: true`, the login page is removed from the browser's history stack and replaced with the `/dashboard` route. +This prevents the user from navigating back to the login page using the back button. + +See the [`useNavigate` API reference](/solid-router/reference/primitives/use-navigate) for more information. + +## `redirect` function + +The `redirect` function returns a [`Response` object](https://developer.mozilla.org/en-US/docs/Web/API/Response), which enables navigation to a specified route within [query](/solid-router/reference/data-apis/query) or [action](/solid-router/reference/data-apis/action). + +```tsx +import { action, redirect } from "@solidjs/router"; + +const logout = action(async () => { + localStorage.remove("token"); + throw redirect("/"); +}); +``` + +See the [`redirect` API reference](/solid-router/reference/response-helpers/redirect) for more information. diff --git a/src/routes/solid-router/concepts/nesting.mdx b/src/routes/solid-router/concepts/nesting.mdx index 0da70a850a..242f8a485e 100644 --- a/src/routes/solid-router/concepts/nesting.mdx +++ b/src/routes/solid-router/concepts/nesting.mdx @@ -44,8 +44,8 @@ Another way to achieve the same result is to nest the routes and explicitly defi ```jsx - - + + ``` diff --git a/src/routes/solid-router/concepts/path-parameters.mdx b/src/routes/solid-router/concepts/path-parameters.mdx index 418b5ec92a..12e9aa4b63 100644 --- a/src/routes/solid-router/concepts/path-parameters.mdx +++ b/src/routes/solid-router/concepts/path-parameters.mdx @@ -1,121 +1,119 @@ ---- -title: "Path parameters" ---- - -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. - -```jsx - - -``` - -In this example, the `:id` parameter will capture any value that comes after `/users/` in the URL. -The colon `:` is used to denote a parameter, and `id` is the name of the parameter. -When a URL matches this route, the `User` component will be rendered. - -:::info[Animations & Transitions] -Routes that share the same path match will be treated as the same route. -If a force re-render is needed, you can wrap your component in a keyed [`Show`](/reference/components/show) component: - -```jsx - - - - -``` - -::: - -## Accessing parameters - -You can retrieve the values captured by parameters using [`useParams`](/solid-router/reference/primitives/use-params). - -```jsx frame="terminal" title="http://localhost:3000/users/123" -import { useParams } from "@solidjs/router"; - -function User() { - const params = useParams(); - return
    User ID: {params.id}
    ; {/* Output: User ID: 123 */} -} - -``` - -## Validating parameters - -Each path parameter can be validated using the `MatchFilter` on the `Route` component. -Rather than checking for the presence of a parameter manually, you can use a `MatchFilter` to ensure that the parameter is in the correct format. - -```jsx -import { lazy } from "solid-js"; -import { render } from "solid-js/web"; -import { Router, Route } from "@solidjs/router"; - -const User = import("./pages/User"); - -const filters = { - parent: ["mom", "dad"], // allow enum values - id: /^\d+$/, // only allow numbers - withHtmlExtension: (v: string) => v.length > 5 && v.endsWith(".html"), // we want an `*.html` extension -}; - -render(() => ( - - - -), document.getElementById("app")); - -``` - -Here, the `matchFilter` prop validates the `parent`, `id`, and `withHtmlExtension` parameters against the specified filters defined in the `filters` object. -If the validation fails, the route will not match and the component will not be rendered. - -In this example, that means: -- `/users/mom/123/contact.html` would match, -- `/users/dad/456/about.html` would match, -- `/users/aunt/123/contact.html` would not match as `:parent` is not 'mom' or 'dad', -- `/users/mom/me/contact.html` would not match as `:id` is not a number, -- `/users/dad/123/contact` would not match as `:withHtmlExtension` is missing .html. - -## Optional parameters - -Parameters can be made optional by adding a `?` after the parameter name. - -```jsx - - -``` - -With this setup, the route would match both `/users` and `/users/123`. -However, it is important to note that the `?` only makes the parameter optional for the last segment of the path. -As a result, paths beyond the optional parameter will _not_ be matched. -For instance, `/users/123/contact` would not match. - -## Wildcard routes - -Wildcard routes can be used to match any number of segments in a path. -To create a wildcard route, use `*` followed by the parameter name. - -```jsx - - -``` - -Using an asterisk `*` as a parameter will match any number of segments after `/users`. -This includes `/users`, `/users/123`, `/users/123/contact`, and so on. - -If you need to expose the wildcard segments of the path, you can name them: - -```jsx - - -``` - -In this case, `rest` will contain the rest of the path after `/users/`. - -It is important to note that wildcard routes must be located at the **end of the path**. -If you place a wildcard route before the end, such as `/users/*rest/:id`, no routes will be matched. +--- +title: "Path parameters" +--- + +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. + +```jsx + +``` + +In this example, the `:id` parameter will capture any value that comes after `/users/` in the URL. +The colon `:` is used to denote a parameter, and `id` is the name of the parameter. +When a URL matches this route, the `User` component will be rendered. + +:::info[Animations & Transitions] +Routes that share the same path match will be treated as the same route. +If a force re-render is needed, you can wrap your component in a keyed [`Show`](/reference/components/show) component: + +```jsx + + + +``` + +::: + +## Accessing parameters + +You can retrieve the values captured by parameters using [`useParams`](/solid-router/reference/primitives/use-params). + +```jsx frame="terminal" title="http://localhost:3000/users/123" +import { useParams } from "@solidjs/router"; + +function User() { + const params = useParams(); + return
    User ID: {params.id}
    ; + { + /* Output: User ID: 123 */ + } +} +``` + +## Validating parameters + +Each path parameter can be validated using the `MatchFilter` on the `Route` component. +Rather than checking for the presence of a parameter manually, you can use a `MatchFilter` to ensure that the parameter is in the correct format. + +```jsx +import { lazy } from "solid-js"; +import { render } from "solid-js/web"; +import { Router, Route } from "@solidjs/router"; + +const User = import("./pages/User"); + +const filters = { + parent: ["mom", "dad"], // allow enum values + id: /^\d+$/, // only allow numbers + withHtmlExtension: (v: string) => v.length > 5 && v.endsWith(".html"), // we want an `*.html` extension +}; + +render(() => ( + + + +), document.getElementById("app")); + +``` + +Here, the `matchFilter` prop validates the `parent`, `id`, and `withHtmlExtension` parameters against the specified filters defined in the `filters` object. +If the validation fails, the route will not match and the component will not be rendered. + +In this example, that means: + +- `/users/mom/123/contact.html` would match, +- `/users/dad/456/about.html` would match, +- `/users/aunt/123/contact.html` would not match as `:parent` is not 'mom' or 'dad', +- `/users/mom/me/contact.html` would not match as `:id` is not a number, +- `/users/dad/123/contact` would not match as `:withHtmlExtension` is missing .html. + +## Optional parameters + +Parameters can be made optional by adding a `?` after the parameter name. + +```jsx + +``` + +With this setup, the route would match both `/users` and `/users/123`. +However, it is important to note that the `?` only makes the parameter optional for the last segment of the path. +As a result, paths beyond the optional parameter will _not_ be matched. +For instance, `/users/123/contact` would not match. + +## Wildcard routes + +Wildcard routes can be used to match any number of segments in a path. +To create a wildcard route, use `*` followed by the parameter name. + +```jsx + +``` + +Using an asterisk `*` as a parameter will match any number of segments after `/users`. +This includes `/users`, `/users/123`, `/users/123/contact`, and so on. + +If you need to expose the wildcard segments of the path, you can name them: + +```jsx + +``` + +In this case, `rest` will contain the rest of the path after `/users/`. + +It is important to note that wildcard routes must be located at the **end of the path**. +If you place a wildcard route before the end, such as `/users/*rest/:id`, no routes will be matched. diff --git a/src/routes/solid-router/concepts/search-parameters.mdx b/src/routes/solid-router/concepts/search-parameters.mdx index f8f78cee3e..6b48be5445 100644 --- a/src/routes/solid-router/concepts/search-parameters.mdx +++ b/src/routes/solid-router/concepts/search-parameters.mdx @@ -1,69 +1,69 @@ ---- -title: "Search parameters" ---- - -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. - -In Solid Router, these query parameters can be accessed using [`useSearchParams`](/solid-router/reference/primitives/use-search-params). -This primitive retrieves a tuple that contains a reactive object that reads the current search parameters and a function to update them. - -```jsx {4} -import { useSearchParams } from "@solidjs/router"; - -export const App = () => { - const [searchParams, setSearchParams] = useSearchParams(); - - return ( -
    - Username: {searchParams.username} - { - e.preventDefault(); - setSearchParams({ username: e.target.value }); - }} - /> -
    - ); -}; -``` - -The getter, in this case `searchParams`, is used to read the current search parameters. -`setSearchParams` works as the setter which accepts an _object_ whose entries will be merged into the current query. - -## Multiple queries - -Since `setSearchParams` accepts an object, you can pass multiple key-value pairs to update multiple search parameters at once. - -```jsx -setSearchParams({ - username: "john", - page: 1, -}); -``` - -:::info[Empty or null values] - If the value of a search parameter's key is `undefined`, `null`, or an empty - string (`""`), it will be removed from the query string. -::: - -## Accessing query strings - -If you require accessing the query string directly, you can use the [`useLocation`](/solid-router/reference/primitives/use-location) primitive: - -```jsx -import { useLocation } from "@solidjs/router"; - -export const App = () => { - const location = useLocation(); - - return ( -
    - Query String: {location.search} -
    - ); -}; -``` - -If the URL was `http://localhost:3000/users?username=john&page=1`, the output would be `Query String: ?username=john&page=1`. +--- +title: "Search parameters" +--- + +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. + +In Solid Router, these query parameters can be accessed using [`useSearchParams`](/solid-router/reference/primitives/use-search-params). +This primitive retrieves a tuple that contains a reactive object that reads the current search parameters and a function to update them. + +```jsx {4} +import { useSearchParams } from "@solidjs/router"; + +export const App = () => { + const [searchParams, setSearchParams] = useSearchParams(); + + return ( +
    + Username: {searchParams.username} + { + e.preventDefault(); + setSearchParams({ username: e.target.value }); + }} + /> +
    + ); +}; +``` + +The getter, in this case `searchParams`, is used to read the current search parameters. +`setSearchParams` works as the setter which accepts an _object_ whose entries will be merged into the current query. + +## Multiple queries + +Since `setSearchParams` accepts an object, you can pass multiple key-value pairs to update multiple search parameters at once. + +```jsx +setSearchParams({ + username: "john", + page: 1, +}); +``` + +:::info[Empty or null values] +If the value of a search parameter's key is `undefined`, `null`, or an empty +string (`""`), it will be removed from the query string. +::: + +## Accessing query strings + +If you require accessing the query string directly, you can use the [`useLocation`](/solid-router/reference/primitives/use-location) primitive: + +```jsx +import { useLocation } from "@solidjs/router"; + +export const App = () => { + const location = useLocation(); + + return ( +
    + Query String: {location.search} +
    + ); +}; +``` + +If the URL was `http://localhost:3000/users?username=john&page=1`, the output would be `Query String: ?username=john&page=1`. diff --git a/src/routes/solid-router/getting-started/component.mdx b/src/routes/solid-router/getting-started/component.mdx index dd214874ca..67c39388eb 100644 --- a/src/routes/solid-router/getting-started/component.mdx +++ b/src/routes/solid-router/getting-started/component.mdx @@ -14,12 +14,12 @@ import { Router, Route } from "@solidjs/router"; import Home from "./routes/Home"; render( - () => ( - - - - ), - document.getElementById("app") + () => ( + + + + ), + document.getElementById("app") ); ``` @@ -36,15 +36,15 @@ import Home from "./routes/index.jsx"; import About from "./routes/about.jsx"; render( - () => ( - - -

    Hello World!

    } /> - -
    - ), - document.getElementById("app") + () => ( + + +

    Hello World!

    } /> + +
    + ), + document.getElementById("app") ); ``` -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 9cfd8b0bcd..8f4d5ffe10 100644 --- a/src/routes/solid-router/getting-started/config.mdx +++ b/src/routes/solid-router/getting-started/config.mdx @@ -13,10 +13,9 @@ import { render } from "solid-js/web"; import { Router } from "@solidjs/router"; const routes = { - path: "/", - component: lazy(() => import("/routes/index.js")), -} - + path: "/", + component: lazy(() => import("/routes/index.js")), +}; render(() => {routes}, document.getElementById("app")); ``` @@ -31,20 +30,19 @@ import { render } from "solid-js/web"; import { Router } from "@solidjs/router"; const routes = [ - { - path: "/", - component: lazy(() => import("/routes/index.js")), - }, - { - path: "/hello-world", - component: () =>

    Hello, World!

    - }, - { - path: "/about", - component: lazy(() => import("/routes/about.js")), - } -] - + { + path: "/", + component: lazy(() => import("/routes/index.js")), + }, + { + path: "/hello-world", + component: () =>

    Hello, World!

    , + }, + { + path: "/about", + component: lazy(() => import("/routes/about.js")), + }, +]; render(() => {routes}, document.getElementById("app")); ``` @@ -62,20 +60,19 @@ import { render } from "solid-js/web"; import { Router } from "@solidjs/router"; const routes = [ - { - path: "/", - component: lazy(() => import("/routes/index.js")), - }, - { - path: "/hello-world", - component: () =>

    Hello, World!

    - }, - { - path: "/about", - component: lazy(() => import("/routes/about.js")), - } -] - + { + path: "/", + component: lazy(() => import("/routes/index.js")), + }, + { + path: "/hello-world", + component: () =>

    Hello, World!

    , + }, + { + path: "/about", + component: lazy(() => import("/routes/about.js")), + }, +]; render(() => {routes}, document.getElementById("app")); ``` 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 c6918d0f17..9561ab6e4a 100644 --- a/src/routes/solid-router/getting-started/installation-and-setup.mdx +++ b/src/routes/solid-router/getting-started/installation-and-setup.mdx @@ -20,23 +20,11 @@ npm i @solidjs/router ```
    -
    -```bash frame="none" -yarn add @solidjs/router -``` -
    +
    ```bash frame="none" yarn add @solidjs/router ```
    -
    -```bash frame="none" -pnpm add @solidjs/router -``` -
    +
    ```bash frame="none" pnpm add @solidjs/router ```
    -
    -```bash frame="none" -bun add @solidjs/router -``` -
    +
    ```bash frame="none" bun add @solidjs/router ```
    ```bash frame="none" @@ -59,10 +47,10 @@ import { Router } from "@solidjs/router"; const wrapper = document.getElementById("app"); if (!wrapper) { - throw new Error("Wrapper div not found"); + throw new Error("Wrapper div not found"); } -render(() => , wrapper) +render(() => , wrapper); ``` This sets up the router that will match on the url and render the appropriate route. diff --git a/src/routes/solid-router/index.mdx b/src/routes/solid-router/index.mdx index 04246fd395..f4b68e05f1 100644 --- a/src/routes/solid-router/index.mdx +++ b/src/routes/solid-router/index.mdx @@ -5,8 +5,8 @@ title: Overview # Overview :::info[Prerequisites] - The docs are based on latest Solid-Router. - To use this version, you need to have Solid v1.8.4 or later installed. +The docs are based on latest Solid-Router. +To use this version, you need to have Solid v1.8.4 or later installed. ::: 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/reference/components/a.mdx b/src/routes/solid-router/reference/components/a.mdx index 76d050db52..dde7d4d484 100644 --- a/src/routes/solid-router/reference/components/a.mdx +++ b/src/routes/solid-router/reference/components/a.mdx @@ -16,8 +16,8 @@ The `` tag has an `active` class if its href matches the current location, an By default matching includes locations that are descendants (e.g.: href `/users` matches locations `/users` and `/users/123`). :::tip - Use the boolean `end` prop to prevent matching these. This is particularly - useful for links to the root route `/` which would match everything. +Use the boolean `end` prop to prevent matching these. This is particularly +useful for links to the root route `/` which would match everything. ::: ## Soft Navigation diff --git a/src/routes/solid-router/reference/components/hash-router.mdx b/src/routes/solid-router/reference/components/hash-router.mdx index 168edac886..5e3a523542 100644 --- a/src/routes/solid-router/reference/components/hash-router.mdx +++ b/src/routes/solid-router/reference/components/hash-router.mdx @@ -29,11 +29,11 @@ render( ); ``` -| prop | type | description | -| ------------- | -------------------------------------------------------- | ----------------------------------------------------------------------------------- | -| children | `JSX.Element`, `RouteDefinition`, or `RouteDefinition[]` | The route definitions | -| root | Component | Top level layout component | -| base | string | Base url to use for matching routes | -| actionBase | string | Root url for server actions, default: `/_server` | -| preload | boolean | Enables/disables preloads globally, default: `true` | +| prop | type | description | +| ------------- | -------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | +| children | `JSX.Element`, `RouteDefinition`, or `RouteDefinition[]` | The route definitions | +| root | Component | Top level layout component | +| base | string | Base url to use for matching routes | +| actionBase | string | Root url for server actions, default: `/_server` | +| preload | boolean | Enables/disables preloads globally, default: `true` | | explicitLinks | boolean | Disables all anchors being intercepted and instead requires [``](/solid-router/reference/components/a). default: `false` | diff --git a/src/routes/solid-router/reference/components/memory-router.mdx b/src/routes/solid-router/reference/components/memory-router.mdx index f58b84d797..b4faa7b18f 100644 --- a/src/routes/solid-router/reference/components/memory-router.mdx +++ b/src/routes/solid-router/reference/components/memory-router.mdx @@ -48,8 +48,6 @@ The `MemoryHistory` object contains the following methods, which you can use to - The `back` and `forward` methods mimic the browser's back and forward buttons, respectively, and the `go` method navigates a specific number of steps in the history, either backward or forward. - The `listen` method registers a callback to be called on navigation change. - - ## Properties ### `MemoryHistory` diff --git a/src/routes/solid-router/reference/data-apis/action.mdx b/src/routes/solid-router/reference/data-apis/action.mdx index 84b604c180..a6a9ed2918 100644 --- a/src/routes/solid-router/reference/data-apis/action.mdx +++ b/src/routes/solid-router/reference/data-apis/action.mdx @@ -83,7 +83,6 @@ This is how router context is created. // in component const submit = useAction(myAction); submit(...args); - ``` The outside of a form context can use custom data instead of `formData`. @@ -111,9 +110,10 @@ const submission = useSubmission(action, (input) => filter(input)); ``` -## Revalidate cached functions +## Revalidate cached functions + +### Revalidate all (default) -### Revalidate all (default) By default all cached functions will be revalidated wether the action does not return or return a "normal" response. ```jsx @@ -153,6 +153,7 @@ const deleteTodo = action(async (formData: FormData) => { ``` ## 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 @@ -171,29 +172,26 @@ const deleteTodo = action(async (formData: FormData) => { ``` -### Revalidate without action +### Revalidate without action -Cached functions can also be revalidated by the `revalidate` helper. +Cached functions can also be revalidated by the `revalidate` helper. ```jsx -revalidate([getTodos.key, getTodoByID.keyFor(id)]) - +revalidate([getTodos.key, getTodoByID.keyFor(id)]); ``` 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()) - +export default function TodoLayout() { + const todos = createAsync(() => getTodos()); + onMount(() => { //30 second polling - const interval = setInterval(() => revalidate(getTodos.key),1000 * 30) - onCleanup(() => clearInterval(interval)) - }) - + const interval = setInterval(() => revalidate(getTodos.key), 1000 * 30); + onCleanup(() => clearInterval(interval)); + }); + // ... } - ``` 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..7540058aa6 100644 --- a/src/routes/solid-router/reference/data-apis/create-async.mdx +++ b/src/routes/solid-router/reference/data-apis/create-async.mdx @@ -7,15 +7,13 @@ An asynchronous primitive with a function that tracks similar to `createMemo`. Reading it before it is ready causes Suspense/Transitions to trigger. :::caution - Using `query` in `createResource` directly will not work since the fetcher is - not reactive. This means that it will not invalidate properly. +Using `query` in `createResource` directly will not work since the fetcher is +not reactive. This means that it will not invalidate properly. ::: 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. - - ```tsx title="component.tsx" {6,10} import { createAsync } from "@solidjs/router"; import { Suspense } from "solid-js"; @@ -40,4 +38,4 @@ export function Component () => { | 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 +| 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 | 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 55c046dd2b..873d70ff88 100644 --- a/src/routes/solid-router/reference/data-apis/use-submission.mdx +++ b/src/routes/solid-router/reference/data-apis/use-submission.mdx @@ -11,16 +11,14 @@ It's important to note that `useSubmission` requires the form method to be **pos import { useSubmission } from "@solidjs/router"; function Component() { - const submission = useSubmission(postNameAction); - - return ( -
    - - -
    - ) + const submission = useSubmission(postNameAction); + + return ( +
    + + +
    + ); } ``` @@ -40,20 +38,18 @@ E.g.: action below will only submit if the name is "solid". import { useSubmission } from "@solidjs/router"; function Component() { - const submission = useSubmission(postNameAction, ([formData]) => { - const name = formData.get("name") ?? ""; - - return name === "solid"; - }); - - return ( -
    - - -
    - ) + const submission = useSubmission(postNameAction, ([formData]) => { + const name = formData.get("name") ?? ""; + + return name === "solid"; + }); + + return ( +
    + + +
    + ); } ``` @@ -63,7 +59,6 @@ When the form is submitted, the `submission` object will be updated with the new 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. -
    ```tsx title="component.tsx" {5,9-11} @@ -71,7 +66,7 @@ import { Show } from "solid-js"; import { useSubmission } from "@solidjs/router"; function Component() { - const submission = useSubmission(postNameAction); +const submission = useSubmission(postNameAction); return ( <> @@ -91,8 +86,10 @@ function Component() { ) + } -``` + +````
    ```tsx title="component.jsx" {5,9-11} @@ -121,7 +118,8 @@ function Component() { ) } -``` +```` +
    @@ -137,31 +135,27 @@ import { Show } from "solid-js"; import { useSubmission } from "@solidjs/router"; function Component() { - const submission = useSubmission(postNameAction); - - return ( - <> - - {(error) => ( -
    -

    Error: {error.message}

    - - -
    - )} -
    - -
    - - -
    - - ) + const submission = useSubmission(postNameAction); + + return ( + <> + + {(error) => ( +
    +

    Error: {error.message}

    + + +
    + )} +
    + +
    + + +
    + + ); } ``` 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 817a95703f..e327a261ee 100644 --- a/src/routes/solid-router/reference/data-apis/use-submissions.mdx +++ b/src/routes/solid-router/reference/data-apis/use-submissions.mdx @@ -6,8 +6,9 @@ This helper is used to handle form submissions and can provide optimistic update This method will return an iterable of all submitted actions while its component is mounted. With an optional second parameter for a filter function. -If you only care for the latest submission, you can use the [`useSubmission`](/solid-router/reference/data-apis/use-submission) helper. - + If you only care for the latest submission, you can use the + [`useSubmission`](/solid-router/reference/data-apis/use-submission) helper. + 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. @@ -46,7 +47,6 @@ function Component() { To trigger a submission, [actions](https://docs.solidjs.com/) can be used. - ## Filtering Submissions @@ -94,7 +94,6 @@ When the form is submitted, the `submission` object will be updated with the new 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. -
    ```tsx title="component.tsx" {5,12-19} @@ -102,7 +101,7 @@ import { Show } from "solid-js"; import { useSubmissions } from "@solidjs/router"; function Component() { - const submissions = useSubmissions(postNameAction); +const submissions = useSubmissions(postNameAction); return (
    @@ -124,8 +123,10 @@ function Component() {
    ) + } -``` + +````
    ```tsx title="component.jsx" {5,12-19} @@ -156,7 +157,8 @@ function Component() { ) } -``` +```` +
    @@ -172,26 +174,28 @@ import { Show } from "solid-js"; import { useSubmissions } from "@solidjs/router"; function Component() { - const submissions = useSubmissions(postNameAction); - - return ( -
    -
      - - {([attempt, data]) => ( - -
    • -

      Backend {attempt}: {data.error.message}

      - - -
    • -
      - )} -
      -
    - - -
    - ) + const submissions = useSubmissions(postNameAction); + + return ( +
    +
      + + {([attempt, data]) => ( + +
    • +

      + Backend {attempt}: {data.error.message} +

      + + +
    • +
      + )} +
      +
    + + +
    + ); } ``` diff --git a/src/routes/solid-router/reference/primitives/use-match.mdx b/src/routes/solid-router/reference/primitives/use-match.mdx index c0391d9067..b43d6f876a 100644 --- a/src/routes/solid-router/reference/primitives/use-match.mdx +++ b/src/routes/solid-router/reference/primitives/use-match.mdx @@ -27,9 +27,9 @@ const filters: MatchFilters = { Finally, any parameter can be determined optional by adding a `?` at the end of the parameter name. ```js - const isReference = useMatch(() => "/:project?/reference/*?", { - project: ["solid-router", "solid-meta", "solid-start"], - }); +const isReference = useMatch(() => "/:project?/reference/*?", { + project: ["solid-router", "solid-meta", "solid-start"], +}); ``` The check above will match: @@ -44,4 +44,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 1458cd5600..77a109038e 100644 --- a/src/routes/solid-router/reference/primitives/use-navigate.mdx +++ b/src/routes/solid-router/reference/primitives/use-navigate.mdx @@ -20,7 +20,7 @@ if (unauthorized) { If you are inside of a query, action or cache (deprecated) function you will instead want to use [redirect](/solid-router/reference/response-helpers/redirect) or [reload](/solid-router/reference/response-helpers/reload). :::info - The state is serialized using the [structured clone - algorithm](https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Structured_clone_algorithm) - which does not support all object types. +The state is serialized using the [structured clone +algorithm](https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Structured_clone_algorithm) +which does not support all object types. ::: 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..4bbdfd1739 100644 --- a/src/routes/solid-router/reference/primitives/use-resolved-path.mdx +++ b/src/routes/solid-router/reference/primitives/use-resolved-path.mdx @@ -6,32 +6,36 @@ title: useResolvedPath It contains the current resolved path as defined in the Route. ```js -const path = useResolvedPath(() => ''); +const path = useResolvedPath(() => ""); -// Parent Route path: /user/* +// Parent Route path: /user/* console.log(path()); // /user -const path = useResolvedPath(() => 'a/b/c'); +const path = useResolvedPath(() => "a/b/c"); -// Parent Route path: /user/* +// Parent Route path: /user/* console.log(path()); // /user/a/b/c -const path = useResolvedPath(() => '/a/b/c'); // Note: / +const path = useResolvedPath(() => "/a/b/c"); // Note: / -// Parent Route path: /user/* +// Parent Route path: /user/* console.log(path()); // a/b/c ``` Useful for making modular routers ```js -const parentRoutePath = useResolvedPath(() => ''); - -return <> -

    Module component layer

    - // Modular magic -
    Index
    }/> -
    AComponent
    }/> -
    - +const parentRoutePath = useResolvedPath(() => ""); + +return ( + <> +

    Module component layer

    + + {" "} + // Modular magic +
    Index
    } /> +
    AComponent
    } /> +
    + +); ``` diff --git a/src/routes/solid-router/reference/response-helpers/json.mdx b/src/routes/solid-router/reference/response-helpers/json.mdx index c5643d4d28..15300ef533 100644 --- a/src/routes/solid-router/reference/response-helpers/json.mdx +++ b/src/routes/solid-router/reference/response-helpers/json.mdx @@ -9,9 +9,9 @@ import { action, json } from "@solidjs/router"; import { fetchTodo } from "../fetchers"; const getCompletedTodos = action(async () => { - const completedTodos = await fetchTodo({ status: 'complete' }); + const completedTodos = await fetchTodo({ status: "complete" }); - return json(completedTodos, { revalidate: getTodo.keyFor(id) }); + return json(completedTodos, { revalidate: getTodo.keyFor(id) }); }); ``` @@ -25,6 +25,6 @@ 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 fbc3335814..c1f06ea3ce 100644 --- a/src/routes/solid-router/reference/response-helpers/redirect.mdx +++ b/src/routes/solid-router/reference/response-helpers/redirect.mdx @@ -8,14 +8,15 @@ By default the status code of a `redirect()` is `302 - FOUND`, also known as a t Other useful redirect codes: -| Code | Description | -| ---- | ----------- | -| `301` | Moved Permanently | +| Code | Description | +| ----- | ------------------ | +| `301` | Moved Permanently | | `307` | Temporary Redirect | | `308` | Permanent redirect | -307 and 308 won't allow the browser to change the method of the request. If you want to change the method, you should use 301 or 302. + 307 and 308 won't allow the browser to change the method of the request. If + you want to change the method, you should use 301 or 302. A common use-case for throwing a redirect is when a user is not authenticated and needs to be sent to the login page or another public route. @@ -26,9 +27,9 @@ import { getCurrentUser } from "../auth"; const getUser = query(() => { const user = await getCurrentUser(); - + if (!user) throw redirect("/login"); - + return user; }, "get-user") ``` @@ -44,9 +45,9 @@ This is useful when redirecting the user to a different route once a mutation is import { action, redirect } from "@solidjs/router"; const addUser = action(async (user: User) => { - await postUser(user); - - return redirect("/users"); + await postUser(user); + + return redirect("/users"); }); ``` @@ -68,6 +69,6 @@ interface ResponseOptions & Omit { } | number function redirect(url: string, opts = 302): 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/reload.mdx b/src/routes/solid-router/reference/response-helpers/reload.mdx index c5f735dbfd..04f6ee783d 100644 --- a/src/routes/solid-router/reference/response-helpers/reload.mdx +++ b/src/routes/solid-router/reference/response-helpers/reload.mdx @@ -11,12 +11,12 @@ import { putTodo, getTodo } from "../db"; const updateTodo = action(async (todo: Todo) => { await putTodo(todo.id, todo); - - return reload({ revalidate: getTodo.keyFor(id) }); + + return reload({ revalidate: getTodo.keyFor(id) }); }); ``` -The code snippet above uses the cache-key from a user-defined query (`getTodo`). +The code snippet above uses the cache-key from a user-defined query (`getTodo`). To better understand how queries work, check the [query](/solid-router/reference/data-apis/query) documentation. ## TypeScript Signature @@ -29,4 +29,4 @@ interface ResponseOptions & Omit { reload(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/revalidate.mdx b/src/routes/solid-router/reference/response-helpers/revalidate.mdx index 178e497608..5516faa038 100644 --- a/src/routes/solid-router/reference/response-helpers/revalidate.mdx +++ b/src/routes/solid-router/reference/response-helpers/revalidate.mdx @@ -5,7 +5,8 @@ title: revalidate Revalidate will receive the either a cache key or an array of cache keys and invalidate those queries. -If you intend to re-fire the queries immediately, check the [reload](/solid-router/reference/response-helpers/reload) helper. + If you intend to re-fire the queries immediately, check the + [reload](/solid-router/reference/response-helpers/reload) helper. The code below will revalidate the `getTodo` query with the cache key. @@ -15,8 +16,8 @@ import { action, revalidate } from "@solidjs/router"; const updateTodo = action(async (todo: Todo) => { await putTodo(todo.id, todo); - - return revalidate(getTodo.keyFor()); + + return revalidate(getTodo.keyFor()); }); ``` @@ -30,14 +31,17 @@ The `revalidate` function also accepts a second parameter to force the revalidat import { action, revalidate } from "@solidjs/router"; const updateTodo = action(async (todo: Todo) => { - await putTodo(todo.id, todo); - - return revalidate(getTodo.keyFor(), true); + await putTodo(todo.id, todo); + + return revalidate(getTodo.keyFor(), true); }); ``` ## TypeScript Signature ```ts -function revalidate(key?: string | string[] | void, force?: boolean): Promise; -``` \ No newline at end of file +function revalidate( + key?: string | string[] | void, + force?: boolean +): Promise; +``` diff --git a/src/routes/solid-router/rendering-modes/spa.mdx b/src/routes/solid-router/rendering-modes/spa.mdx index 6bdcc8263a..6ad485c190 100644 --- a/src/routes/solid-router/rendering-modes/spa.mdx +++ b/src/routes/solid-router/rendering-modes/spa.mdx @@ -2,7 +2,7 @@ title: Single page applications --- -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. +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. This prevents the CDN or hosting service from returning a "not found" error when accessing URLs that do not correspond to files. Each provider has a different way of doing this. diff --git a/src/routes/solid-start/advanced/auth.mdx b/src/routes/solid-start/advanced/auth.mdx index 96c7814e67..244c1f5c86 100644 --- a/src/routes/solid-start/advanced/auth.mdx +++ b/src/routes/solid-start/advanced/auth.mdx @@ -5,15 +5,15 @@ title: "Auth" Server functions can be used to protect sensitive resources like user data. ```tsx -"use server" +"use server"; async function getPrivatePosts() { - const user = await getUser() - if(!user) { - return null // or throw an error + const user = await getUser(); + if (!user) { + return null; // or throw an error } - return db.getPosts({ userId: user.id, private: true }) + return db.getPosts({ userId: user.id, private: true }); } ``` @@ -25,15 +25,15 @@ Routes can be protected by checking the user or session object during data fetch This example uses [Solid Router](/solid-router). ```tsx -const getPrivatePosts = query(async function() { - "use server" - const user = await getUser() - if(!user) { +const getPrivatePosts = query(async function () { + "use server"; + const user = await getUser(); + if (!user) { throw redirect("/login"); } - return db.getPosts({ userId: user.id, private: true }) -}) + return db.getPosts({ userId: user.id, private: true }); +}); export default function Page() { const posts = createAsync(() => getPrivatePosts()); diff --git a/src/routes/solid-start/advanced/request-events.mdx b/src/routes/solid-start/advanced/request-events.mdx index e0d401ff87..6c3ad5f812 100644 --- a/src/routes/solid-start/advanced/request-events.mdx +++ b/src/routes/solid-start/advanced/request-events.mdx @@ -14,18 +14,18 @@ When adding fields to `event.locals`, the fields can be typed: ```tsx filename="global.d.ts' /// declare module App { - interface RequestEventLocals { - /** - * Declare your getRequestEvent().locals here - */ - } + interface RequestEventLocals { + /** + * Declare your getRequestEvent().locals here + */ + } } ``` ## nativeEvent -Sometimes access is still needed to the underlying event from [Vinxi](https://vinxi.vercel.app/). -This can be accessed that using the `.nativeEvent` property, which is the underlying H3Event used, and can be passed to the helpers available in the ecosystem. +Sometimes access is still needed to the underlying event from [Vinxi](https://vinxi.vercel.app/). +This can be accessed that using the `.nativeEvent` property, which is the underlying H3Event used, and can be passed to the helpers available in the ecosystem. Note that Vinxi HTTP helpers _do not_ treeshake so you can only import them in files that do not contain client or isomorphic code. Many of these events support Async Local Storage so this may not be needed. diff --git a/src/routes/solid-start/advanced/return-responses.mdx b/src/routes/solid-start/advanced/return-responses.mdx index b64c3261d2..b52a550ce0 100644 --- a/src/routes/solid-start/advanced/return-responses.mdx +++ b/src/routes/solid-start/advanced/return-responses.mdx @@ -2,8 +2,8 @@ title: Returning responses --- -In SolidStart, it is possible to return a Response object from a server function. -[`solid-router`](/solid-router) knows how to handle certain responses with its [`query`](/solid-router/reference/data-apis/query) and [`action`](/solid-router/reference/data-apis/action) APIs. +In SolidStart, it is possible to return a Response object from a server function. +[`solid-router`](/solid-router) knows how to handle certain responses with its [`query`](/solid-router/reference/data-apis/query) and [`action`](/solid-router/reference/data-apis/action) APIs. For Typescript, when returning a response using `solid-router`'s `redirect`, `reload`, or `json` helpers, they will not impact the return value of the server function. While we suggest depending on the type of the function to handle errors differently, you can always return or throw a response. diff --git a/src/routes/solid-start/advanced/websocket.mdx b/src/routes/solid-start/advanced/websocket.mdx index 63762cd9ac..fa66ebb3e4 100644 --- a/src/routes/solid-start/advanced/websocket.mdx +++ b/src/routes/solid-start/advanced/websocket.mdx @@ -29,21 +29,21 @@ Inside the ws file, you can export an eventHandler function to manage WebSocket import { eventHandler } from "vinxi/http"; export default eventHandler({ - handler() {}, - websocket: { - async open(peer) { - console.log("open", peer.id, peer.url); - }, - async message(peer, msg) { - const message = msg.text(); - console.log("msg", peer.id, peer.url, message); - }, - async close(peer, details) { - console.log("close", peer.id, peer.url); - }, - async error(peer, error) { - console.log("error", peer.id, peer.url, error); - }, - }, + handler() {}, + websocket: { + async open(peer) { + console.log("open", peer.id, peer.url); + }, + async message(peer, msg) { + const message = msg.text(); + console.log("msg", peer.id, peer.url, message); + }, + async close(peer, details) { + console.log("close", peer.id, peer.url); + }, + async error(peer, error) { + console.log("error", peer.id, peer.url, error); + }, + }, }); ``` 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 a1eb079b0d..1e43719d95 100644 --- a/src/routes/solid-start/building-your-application/api-routes.mdx +++ b/src/routes/solid-start/building-your-application/api-routes.mdx @@ -4,6 +4,7 @@ title: "API routes" 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. Some reasons for wanting API Routes include: + - There are additional clients that want to share this logic. - Exposing a GraphQL or tRPC endpoint. - Exposing a public-facing REST API. @@ -30,24 +31,25 @@ While you can name this directory anything, it is common to name it `api` to ind ```tsx title="routes/api/test.ts" export function GET() { - // ... + // ... } export function POST() { - // ... + // ... } export function PATCH() { - // ... + // ... } export function DELETE() { - // ... + // ... } ``` API routes get passed an `APIEvent` object as their first argument. This object contains: + - `request`: [`Request`](https://developer.mozilla.org/en-US/docs/Web/API/Request) object representing the request sent by the client. - `params`: Object that contains the dynamic route parameters. For example, if the route is `/api/users/:id`, and the request is made to `/api/users/123`, then `params` will be `{ id: 123 }`. - `fetch`: An internal `fetch` function that can be used to make requests to other API routes without worrying about the `origin` of the URL. @@ -57,7 +59,7 @@ In order to handle all methods, you can define a handler function that binds mul ```tsx title="routes/api/all.ts" async function handler() { - // ... + // ... } export const GET = handler; @@ -72,9 +74,9 @@ import type { APIEvent } from "@solidjs/start/server"; import store from "./store"; export async function GET({ params }: APIEvent) { - console.log(`Category: ${params.category}, Brand: ${params.brand}`); - const products = await store.getProducts(params.category, params.brand); - return products; + console.log(`Category: ${params.category}, Brand: ${params.brand}`); + const products = await store.getProducts(params.category, params.brand); + return products; } ``` @@ -93,15 +95,15 @@ import { getCookie } from "vinxi/http"; import store from "./store"; export async function GET(event: APIEvent) { - const userId = getCookie("userId"); - if (!userId) { - return new Response("Not logged in", { status: 401 }); - } - const user = await store.getUser(event.params.userId); - if (user.id !== userId) { - return new Response("Not authorized", { status: 403 }); - } - return user; + const userId = getCookie("userId"); + if (!userId) { + return new Response("Not logged in", { status: 401 }); + } + const user = await store.getUser(event.params.userId); + if (user.id !== userId) { + return new Response("Not authorized", { status: 403 }); + } + return user; } ``` @@ -137,26 +139,26 @@ const schema = buildSchema(` // Define GraphQL Resolvers const rootValue = { - hello: () => { - return { - message: "Hello World" - }; - }, - goodbye: () => { - return "Goodbye"; - } + hello: () => { + return { + message: "Hello World", + }; + }, + goodbye: () => { + return "Goodbye"; + }, }; // request handler const handler = async (event: APIEvent) => { - // get request body - const body = await new Response(event.request.body).json(); + // get request body + const body = await new Response(event.request.body).json(); - // pass query and save results - const result = await graphql({ rootValue, schema, source: body.query }); + // pass query and save results + const result = await graphql({ rootValue, schema, source: body.query }); - // send query result - return result; + // send query result + return result; }; export const GET = handler; @@ -179,9 +181,9 @@ import { string } from "valibot"; const t = initTRPC.create(); export const appRouter = t.router({ - hello: t.procedure.input(wrap(string())).query(({ input }) => { - return `hello ${input ?? "world"}`; - }) + hello: t.procedure.input(wrap(string())).query(({ input }) => { + return `hello ${input ?? "world"}`; + }), }); export type AppRouter = typeof appRouter; @@ -194,7 +196,10 @@ import { createTRPCProxyClient, httpBatchLink, loggerLink } from "@trpc/client"; import type { AppRouter } from "./router"; export const client = createTRPCProxyClient({ - links: [loggerLink(), httpBatchLink({ url: "http://localhost:3000/api/trpc" })] + links: [ + loggerLink(), + httpBatchLink({ url: "http://localhost:3000/api/trpc" }), + ], }); ``` @@ -206,12 +211,12 @@ import { fetchRequestHandler } from "@trpc/server/adapters/fetch"; import { appRouter } from "~/lib/router"; const handler = (event: APIEvent) => - fetchRequestHandler({ - endpoint: "/api/trpc", - req: event.request, - router: appRouter, - createContext: () => ({}) - }); + fetchRequestHandler({ + endpoint: "/api/trpc", + req: event.request, + router: appRouter, + createContext: () => ({}), + }); export const GET = handler; 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..d03e8cdf4b 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 @@ -2,7 +2,7 @@ title: "CSS and styling" --- -SolidStart is a standards-based framework that, instead of modifying the behavior of the [`