Core: Deprecate createFromSource(source, pageToIndex, options)

This commit is contained in:
Fuma Nama
2025-04-27 18:38:45 +08:00
parent f8d571d2d7
commit acff667573
14 changed files with 257 additions and 274 deletions
+41
View File
@@ -0,0 +1,41 @@
---
'fumadocs-core': patch
---
**Deprecate `createFromSource(source, pageToIndex, options)`**
Migrate:
```ts
import { source } from '@/lib/source';
import { createFromSource } from 'fumadocs-core/search/server';
// from
export const { GET } = createFromSource(source, (page) => ({
title: page.data.title,
description: page.data.description,
url: page.url,
id: page.url,
structuredData: page.data.structuredData,
// use your desired value, like page.slugs[0]
tag: '<value>',
}), {
// options
});
// to
export const { GET } = createFromSource(source, {
buildIndex(page) {
return {
title: page.data.title,
description: page.data.description,
url: page.url,
id: page.url,
structuredData: page.data.structuredData,
// use your desired value, like page.slugs[0]
tag: '<value>',
};
},
// other options
});
```
@@ -1,71 +0,0 @@
---
title: Remark Docs Generation
description: Useful remark plugins to generate docs automatically
---
## Usage
```package-install
fumadocs-docgen
```
Add the remark plugin.
```ts title="source.config.ts" tab="Fumadocs MDX"
import { remarkDocGen, fileGenerator } from 'fumadocs-docgen';
import { defineConfig } from 'fumadocs-mdx/config';
export default defineConfig({
mdxOptions: {
remarkPlugins: [[remarkDocGen, { generators: [fileGenerator()] }]],
},
});
```
```ts tab="MDX Compiler"
import { remarkDocGen, fileGenerator } from 'fumadocs-docgen';
import { compile } from '@mdx-js/mdx';
await compile('...', {
remarkPlugins: [[remarkDocGen, { generators: [fileGenerator()] }]],
});
```
## File Generator
It copies the content from a file to the document (mdast tree) and forms a paragraph.
````mdx
```json doc-gen:file
{
"file": "./my/file.txt"
}
```
````
### As Code Block
Copy the content into a code block.
````mdx
```json doc-gen:file
{
"file": "./my/file.txt",
"codeblock": true
}
```
````
Or to specify the programming language and meta string:
````mdx
```json doc-gen:file
{
"file": "./my/file.txt",
"codeblock": {
"lang": "ts",
"meta": "title=\"Hello\""
}
}
```
````
@@ -115,32 +115,19 @@ export const { GET } = createSearchAPI('simple', {
## Internationalization
- `createFromSource()`:
```ts title="lib/source.ts" tab="createFromSource"
import { i18n } from '@/lib/i18n';
import { loader } from 'fumadocs-core/source';
Configure i18n on source object (in `loader` function).
// You only need i18n option on source object.
export const source = loader({
i18n, // [!code highlight]
});
```
```ts title="lib/source.ts"
import { i18n } from '@/lib/i18n';
import { loader } from 'fumadocs-core/source';
export const source = loader({
i18n, // [!code highlight]
});
```
- `createSearchAPI()`:
Use `createI18nSearchAPI` for i18n functionality.
```json doc-gen:file
{
"file": "../../examples/i18n/app/api/search/route-full.ts",
"codeblock": {
"lang": "ts",
"meta": "title=\"app/api/search/route.ts\""
}
}
```
<include cwd meta='title="app/api/search/route.ts" tab="createI18nSearchAPI"'>
../../examples/i18n/app/api/search/route-full.ts
</include>
### Update Search Client
@@ -230,13 +217,13 @@ with Fumadocs UI.
## Headless
You can host the search server on Express or Elysia, without Next.js.
You can host the search server on other backend such as Express and Elysia.
```ts
import { initAdvancedSearch } from 'fumadocs-core/search/server';
const server = initAdvancedSearch({
// options
// you still have to pass indexes
});
server.search('query', {
+62 -67
View File
@@ -9,12 +9,25 @@ Fumadocs provides many useful extensions to MDX, a markup language. Here is a br
> MDX is not the only supported format of Fumadocs. In fact, you can use any renderers such as `next-mdx-remote` or CMS.
## Markdown
## MDX
We use GFM (GitHub Flavored Markdown), a superset of Markdown (CommonMark).
See [GFM Specification](https://github.github.com/gfm).
We recommend MDX, a superset of Markdown with support of JSX syntax.
It allows you to import components, and use them right in the document, or even export values.
See:
- [MDX Syntax](https://mdxjs.com/docs/what-is-mdx/#mdx-syntax).
- GFM (GitHub Flavored Markdown) is also supported, see [GFM Specification](https://github.github.com/gfm).
````mdx
---
title: This is a document
---
import { Component } from './component';
<Component name="Hello" />
````md
# Heading
## Heading
@@ -65,19 +78,6 @@ External links will get the default `rel="noreferrer noopener" target="_blank"`
This also works: https://github.github.com/gfm.
```
## MDX
MDX is a superset of Markdown, with support of JSX syntax.
It allows you to import components, and use them right in the document, or even export values.
```mdx
import { Component } from './component';
<Component name="Hello" />
```
see [MDX Syntax](https://mdxjs.com/docs/what-is-mdx/#mdx-syntax) to learn more.
### Cards
Useful for adding links, it is included by default.
@@ -147,37 +147,31 @@ This will show the other pages in the same folder as cards.
### Callouts
Useful for adding tips/warnings, it is included by default.
```mdx
<Callout>Hello World</Callout>
<Callout title="Title">Hello World</Callout>
```
<Callout>Hello World</Callout>
<Callout title="Title">Hello World</Callout>
#### Types
You can specify the type of callout.
Useful for adding tips/warnings, it is included by default. You can specify the type of callout:
- `info` (default)
- `warn`
- `error`
```mdx
<Callout>Hello World</Callout>
<Callout title="Title">Hello World</Callout>
<Callout title="Title" type="error">
Hello World
</Callout>
```
<Callout>Hello World</Callout>
<Callout title="Title">Hello World</Callout>
<Callout title="Title" type="error">
Hello World
</Callout>
## Headings
### Headings
An anchor is automatically applied to each heading, it sanitizes invalid characters like spaces. (e.g. `Hello World` to `hello-world`)
@@ -185,7 +179,7 @@ An anchor is automatically applied to each heading, it sanitizes invalid charact
# Hello `World`
```
### TOC Settings
#### TOC Settings
The table of contents (TOC) will be generated based on headings, you can also customise the effects of headings:
@@ -202,7 +196,7 @@ Like headings rendered in a React component:
<MyComp />
```
### Custom Anchor
#### Custom Anchor
You can add `[#slug]` to customise heading anchors.
@@ -218,7 +212,7 @@ You can also chain it with TOC settings like:
To link people to a specific heading, add the heading id to hash fragment: `/page#my-heading-id`.
## Codeblock
### Codeblock
Syntax Highlighting is supported by default using [Rehype Code](/docs/headless/mdx/rehype-code).
@@ -236,47 +230,39 @@ console.log('Hello World');
```
````
### Highlight Lines
#### Shiki Transformers
You can highlight specific lines by adding `[!code highlight]`.
We support some of the [Shiki Transformers](https://shiki.style/packages/transformers), allowing you to highlight/style specific lines.
````md
```tsx
// highlight a line
<div>Hello World</div> // [\!code highlight]
<div>Hello World</div>
<div>Goodbye</div>
<div>Hello World</div>
```
````
### Highlight Words
// highlight a word
// [\!code word:Fumadocs]
<div>Fumadocs</div>
You can highlight a specific word by adding `[!code word:<match>]`.
````md
```js
// [\!code word:config]
const config = {
reactStrictMode: true,
};
```
````
### Diffs
````mdx
```ts
// diff styles
console.log('hewwo'); // [\!code --]
console.log('hello'); // [\!code ++]
```
````
```ts
```tsx
// highlight a line
<div>Hello World</div> // [!code highlight]
// highlight a word
// [!code word:Fumadocs]
<div>Fumadocs</div>
// diff styles:
console.log('hewwo'); // [!code --]
console.log('hello'); // [!code ++]
```
### Tab Groups
#### Tab Groups
You can use code blocks with the `<Tab />` component.
@@ -302,15 +288,28 @@ console.log('A');
console.log('B');
```
### Using Typescript Twoslash
#### Using Typescript Twoslash
Write Typescript codeblocks with hover type information and detected types errors.
Not enabled by default. See [Twoslash](/docs/ui/twoslash).
### Include
> This is only available on **Fumadocs MDX**.
Reference another Markdown/MDX or code example file.
Specify the target file path in `<include>` tag (relative to the MDX file itself).
```mdx title="page.mdx"
<include>./another.mdx</include>
```
See [Include](/docs/mdx/include).
## Optional
Some optional plugins you can enable.
You can see [a list of plugins](/docs/headless/mdx) provided by Fumadocs.
### Math Equations
@@ -343,7 +342,3 @@ npm i next -D
```
To enable, see [Remark Install](/docs/headless/mdx/install).
### More
You can see [a list of plugins](/docs/headless/mdx) provided by Fumadocs.
+2 -2
View File
@@ -12,7 +12,7 @@
"start": "next start"
},
"dependencies": {
"@ai-sdk/openai": "^1.3.19",
"@ai-sdk/openai": "^1.3.20",
"@ai-sdk/react": "^1.2.9",
"@fumadocs/mdx-remote": "workspace:*",
"@oramacloud/client": "^2.1.4",
@@ -22,7 +22,7 @@
"@radix-ui/react-slot": "^1.2.0",
"@radix-ui/react-tooltip": "^1.2.4",
"@shikijs/rehype": "^3.3.0",
"ai": "^4.3.9",
"ai": "^4.3.10",
"class-variance-authority": "^0.7.1",
"fumadocs-core": "workspace:*",
"fumadocs-docgen": "workspace:^",
+1 -1
View File
@@ -2,7 +2,7 @@ import { source } from '@/lib/source';
import { createFromSource } from 'fumadocs-core/search/server';
import { createTokenizer } from '@orama/tokenizers/mandarin';
export const { GET } = createFromSource(source, undefined, {
export const { GET } = createFromSource(source, {
localeMap: {
// you can customise search configs for specific locales, like:
// [locale]: Orama options
+13 -9
View File
@@ -1,12 +1,16 @@
import { source } from '@/lib/source';
import { createFromSource } from 'fumadocs-core/search/server';
export const { GET } = createFromSource(source, (page) => ({
title: page.data.title,
description: page.data.description,
url: page.url,
id: page.url,
structuredData: page.data.structuredData,
// use your desired value, like page.slugs[0]
tag: '<value>',
}));
export const { GET } = createFromSource(source, {
buildIndex(page) {
return {
title: page.data.title,
description: page.data.description,
url: page.url,
id: page.url,
structuredData: page.data.structuredData,
// use your desired value, like page.slugs[0]
tag: '<value>',
};
},
});
+1 -1
View File
@@ -15,7 +15,7 @@
"fumadocs-core": "workspace:*",
"fumadocs-ui": "workspace:*",
"gray-matter": "^4.0.3",
"isbot": "^5.1.26",
"isbot": "^5.1.27",
"react": "^19.1.0",
"react-dom": "^19.1.0",
"react-router": "^7.5.2",
+1 -1
View File
@@ -11,7 +11,7 @@
"dependencies": {
"@fumadocs/mdx-remote": "workspace:*",
"@tanstack/react-router": "^1.117.1",
"@tanstack/react-start": "^1.117.2",
"@tanstack/react-start": "^1.118.0",
"fast-glob": "^3.3.3",
"fumadocs-core": "workspace:*",
"fumadocs-ui": "workspace:*",
+1 -1
View File
@@ -28,7 +28,7 @@
"prettier-plugin-astro": "^0.14.1",
"rimraf": "^6.0.1",
"tsup": "8.4.0",
"turbo": "2.5.1",
"turbo": "2.5.2",
"typescript": "^5.8.3",
"typescript-eslint": "^8.31.0",
"vitest": "^3.1.2"
@@ -6,9 +6,9 @@ import {
type SearchAPI,
} from '@/search/server';
import {
type InferPageType,
type LoaderConfig,
type LoaderOutput,
type InferPageType,
type Page,
} from '@/source';
import { type StructuredData } from '@/mdx-plugins';
@@ -35,15 +35,41 @@ function pageToIndex(page: Page): AdvancedIndex {
};
}
type Options = Omit<AdvancedOptions, 'language' | 'indexes'> & {
interface Options<Page = unknown> extends Omit<AdvancedOptions, 'indexes'> {
localeMap?: LocaleMap<Partial<AdvancedOptions>>;
};
buildIndex?: (page: Page) => AdvancedIndex;
}
export function createFromSource<S extends LoaderOutput<LoaderConfig>>(
source: S,
pageToIndexFn: (page: InferPageType<S>) => AdvancedIndex = pageToIndex,
options: Options = {},
options?: Options<InferPageType<S>>,
): SearchAPI;
/**
* @deprecated Use `createFromSource(source, options)` instead.
*/
export function createFromSource<S extends LoaderOutput<LoaderConfig>>(
source: S,
pageToIndexFn?: (page: InferPageType<S>) => AdvancedIndex,
options?: Omit<Options, 'buildIndex'>,
): SearchAPI;
export function createFromSource<S extends LoaderOutput<LoaderConfig>>(
source: S,
_buildIndexOrOptions:
| ((page: InferPageType<S>) => AdvancedIndex)
| Options<InferPageType<S>> = pageToIndex,
_options?: Omit<Options, 'buildIndex'>,
): SearchAPI {
const options: Options<InferPageType<S>> = {
...(typeof _buildIndexOrOptions === 'function'
? {
buildIndex: _buildIndexOrOptions,
}
: _buildIndexOrOptions),
..._options,
};
if (source._i18n) {
return createI18nSearchAPI('advanced', {
...options,
@@ -51,7 +77,7 @@ export function createFromSource<S extends LoaderOutput<LoaderConfig>>(
indexes: source.getLanguages().flatMap((entry) => {
return entry.pages.map((page) => {
return {
...pageToIndexFn(page as InferPageType<S>),
...(options.buildIndex ?? pageToIndex)(page as InferPageType<S>),
locale: entry.language,
};
});
@@ -62,7 +88,7 @@ export function createFromSource<S extends LoaderOutput<LoaderConfig>>(
return createSearchAPI('advanced', {
...options,
indexes: source.getPages().map((page) => {
return pageToIndexFn(page as InferPageType<S>);
return (options.buildIndex ?? pageToIndex)(page as InferPageType<S>);
}),
});
}
+2 -2
View File
@@ -14,7 +14,7 @@
"@tailwindcss/postcss": "^4.1.4",
"@tailwindcss/vite": "^4.1.4",
"@tanstack/react-router": "^1.117.1",
"@tanstack/react-start": "^1.117.2",
"@tanstack/react-start": "^1.118.0",
"@types/mdx": "^2.0.13",
"@types/node": "22.15.2",
"@types/react": "^19.1.2",
@@ -22,7 +22,7 @@
"@vitejs/plugin-react": "^4.4.1",
"fast-glob": "^3.3.3",
"gray-matter": "^4.0.3",
"isbot": "^5.1.26",
"isbot": "^5.1.27",
"next": "15.3.1",
"postcss": "^8.5.3",
"react": "^19.1.0",
+1 -1
View File
@@ -75,7 +75,7 @@
"tsconfig": "workspace:*",
"unified": "^11.0.5",
"vfile": "^6.0.3",
"webpack": "^5.99.6"
"webpack": "^5.99.7"
},
"peerDependencies": {
"@fumadocs/mdx-remote": "^1.2.0",
+86 -85
View File
@@ -42,8 +42,8 @@ importers:
specifier: 8.4.0
version: 8.4.0(@swc/[email protected])([email protected])([email protected])([email protected])([email protected])([email protected])
turbo:
specifier: 2.5.1
version: 2.5.1
specifier: 2.5.2
version: 2.5.2
typescript:
specifier: ^5.8.3
version: 5.8.3
@@ -57,8 +57,8 @@ importers:
apps/docs:
dependencies:
'@ai-sdk/openai':
specifier: ^1.3.19
version: 1.3.19([email protected])
specifier: ^1.3.20
version: 1.3.20([email protected])
'@ai-sdk/react':
specifier: ^1.2.9
version: 1.2.9([email protected])([email protected])
@@ -87,8 +87,8 @@ importers:
specifier: ^3.3.0
version: 3.3.0
ai:
specifier: ^4.3.9
version: 4.3.9([email protected])([email protected])
specifier: ^4.3.10
version: 4.3.10([email protected])([email protected])
class-variance-authority:
specifier: ^0.7.1
version: 0.7.1
@@ -498,8 +498,8 @@ importers:
specifier: ^4.0.3
version: 4.0.3
isbot:
specifier: ^5.1.26
version: 5.1.26
specifier: ^5.1.27
version: 5.1.27
react:
specifier: ^19.1.0
version: 19.1.0
@@ -590,8 +590,8 @@ importers:
specifier: ^1.117.1
version: 1.117.1([email protected]([email protected]))([email protected])
'@tanstack/react-start':
specifier: ^1.117.2
version: 1.117.2(@netlify/[email protected])(@tanstack/[email protected]([email protected]([email protected]))([email protected]))(@types/[email protected])([email protected])([email protected])([email protected])([email protected])([email protected])([email protected]([email protected]))([email protected])([email protected])([email protected])([email protected](@types/[email protected])([email protected])([email protected])([email protected])([email protected])([email protected]))([email protected].6(@swc/[email protected])([email protected]))([email protected])
specifier: ^1.118.0
version: 1.118.0(@netlify/[email protected])(@tanstack/[email protected]([email protected]([email protected]))([email protected]))(@types/[email protected])([email protected])([email protected])([email protected])([email protected])([email protected])([email protected]([email protected]))([email protected])([email protected])([email protected])([email protected](@types/[email protected])([email protected])([email protected])([email protected])([email protected])([email protected]))([email protected].7(@swc/[email protected])([email protected]))([email protected])
fast-glob:
specifier: ^3.3.3
version: 3.3.3
@@ -891,8 +891,8 @@ importers:
specifier: ^1.117.1
version: 1.117.1([email protected]([email protected]))([email protected])
'@tanstack/react-start':
specifier: ^1.117.2
version: 1.117.2(@netlify/[email protected])(@tanstack/[email protected]([email protected]([email protected]))([email protected]))(@types/[email protected])([email protected])([email protected])([email protected])([email protected])([email protected])([email protected]([email protected]))([email protected])([email protected])([email protected])([email protected](@types/[email protected])([email protected])([email protected])([email protected])([email protected])([email protected]))([email protected].6(@swc/[email protected])([email protected]))([email protected])
specifier: ^1.118.0
version: 1.118.0(@netlify/[email protected])(@tanstack/[email protected]([email protected]([email protected]))([email protected]))(@types/[email protected])([email protected])([email protected])([email protected])([email protected])([email protected])([email protected]([email protected]))([email protected])([email protected])([email protected])([email protected](@types/[email protected])([email protected])([email protected])([email protected])([email protected])([email protected]))([email protected].7(@swc/[email protected])([email protected]))([email protected])
'@types/mdx':
specifier: ^2.0.13
version: 2.0.13
@@ -915,8 +915,8 @@ importers:
specifier: ^4.0.3
version: 4.0.3
isbot:
specifier: ^5.1.26
version: 5.1.26
specifier: ^5.1.27
version: 5.1.27
next:
specifier: 15.3.1
version: 15.3.1(@babel/[email protected])(@opentelemetry/[email protected])([email protected])([email protected]([email protected]))([email protected])
@@ -1090,8 +1090,8 @@ importers:
specifier: ^6.0.3
version: 6.0.3
webpack:
specifier: ^5.99.6
version: 5.99.6(@swc/[email protected])([email protected])
specifier: ^5.99.7
version: 5.99.7(@swc/[email protected])([email protected])
packages/mdx-remote:
dependencies:
@@ -1490,8 +1490,8 @@ importers:
packages:
'@ai-sdk/[email protected].19':
resolution: {integrity: sha512-VB0ZutZwb6LJBIAV5pJZsSuL3O+GeTAeG4OifRpf014nJF/QlbZIWDvEWfcTq65d85fO/vg1NTv8jVKYRi+JFQ==}
'@ai-sdk/[email protected].20':
resolution: {integrity: sha512-/DflUy7ROG9k6n6YTXMBFPbujBKnbGY58f3CwvicLvDar9nDAloVnUWd3LUoOxpSVnX8vtQ7ngxF52SLWO6RwQ==}
engines: {node: '>=18'}
peerDependencies:
zod: ^3.0.0
@@ -4270,8 +4270,8 @@ packages:
react: '>=18.0.0 || >=19.0.0'
react-dom: '>=18.0.0 || >=19.0.0'
'@tanstack/[email protected]7.2':
resolution: {integrity: sha512-eDgsNviug0EowVMdYcuQG4R0pfcdd+jP6K5Yoy/zXjX5DvpEjPWSf5DVh5oR7I8GGqwcRD4hXcubN0MY/W5trw==}
'@tanstack/[email protected]8.0':
resolution: {integrity: sha512-FTCQaZzAqXbRoFwjIBkAJN0SpjFH0F4K+hYXIjCZ8tvwkxJbqpUoOiWZIW2F7BALup55BwFhx3+aFsdolsWi1A==}
engines: {node: '>=12'}
peerDependencies:
react: '>=18.0.0 || >=19.0.0'
@@ -4293,8 +4293,8 @@ packages:
react: '>=18.0.0 || >=19.0.0'
react-dom: '>=18.0.0 || >=19.0.0'
'@tanstack/[email protected]7.2':
resolution: {integrity: sha512-2zfRLzGHsl93iZ+xtz38JeJzxC0JJdU59eLEMDQG71kQRpkuIkd6TpJGROufddQAcELudr/mZnmXbHtJemETeg==}
'@tanstack/[email protected]8.0':
resolution: {integrity: sha512-mnBbXXmvZ2w7YES1xiXXfNH6js99iv68X8xBE3V6dDtNJbDfPKJg3HJJkqzirLqkG9268ZyeGvCq1Csn3CBslg==}
engines: {node: '>=12'}
peerDependencies:
react: '>=18.0.0 || >=19.0.0'
@@ -4963,8 +4963,8 @@ packages:
resolution: {integrity: sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==}
engines: {node: '>= 14'}
[email protected].9:
resolution: {integrity: sha512-P2RpV65sWIPdUlA4f1pcJ11pB0N1YmqPVLEmC4j8WuBwKY0L3q9vGhYPh0Iv+spKHKyn0wUbMfas+7Z6nTfS0g==}
[email protected].10:
resolution: {integrity: sha512-jw+ahNu+T4SHj9gtraIKtYhanJI6gj2IZ5BFcfEHgoyQVMln5a5beGjzl/nQSX6FxyLqJ/UBpClRa279EEKK/Q==}
engines: {node: '>=18'}
peerDependencies:
react: ^18 || ^19 || ^19.0.0-rc
@@ -5284,8 +5284,8 @@ packages:
resolution: {integrity: sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==}
engines: {node: '>=16'}
[email protected]4:
resolution: {integrity: sha512-mtgapdwDLSSBnCI3JokHM7oEQBLxiJKVRtg10AxM1AyeiKcM96f0Mkbqeq+1AbiCtvMcHRulAAEMu693JrSWqg==}
[email protected]5:
resolution: {integrity: sha512-7ptkFGMm2OAOgvZpwgA4yjQ5SQbrNVGdRjzH0pBdy1Fasvcr+KAeECmbCAECzTuDuoX0FCY8KzUxjf9+9kfZEw==}
[email protected]:
resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==}
@@ -6003,8 +6003,8 @@ packages:
[email protected]:
resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
[email protected]34:
resolution: {integrity: sha512-zSwzrLg3jNP3bwsLqWHmS5z2nIOQ5ngMnfMZOWWtXnqqQkPVyOipxK98w+1beLw1TB+EImPNcG8wVP/cLVs2Og==}
[email protected]3:
resolution: {integrity: sha512-QqklJMOFBMqe46k8iIOwA9l2hz57V2OKMmP5eSWcUvwx+mASAsbU+wkF1pHjn9ZVSBPrsYWr4/W/95y5SwYg2g==}
[email protected]:
resolution: {integrity: sha512-LRlerrMYoIDrT6jgpeZ2YYl/L8EulRTt5hQcYjy5AInh7HWXKimpqx68aknBFpGL2+/IcogTcaydJEgaTmOpDg==}
@@ -7144,8 +7144,8 @@ packages:
[email protected]:
resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==}
[email protected]6:
resolution: {integrity: sha512-3wqJEYSIm59dYQjEF7zJ7T42aqaqxbCyJQda5rKCudJykuAnISptCHR/GSGpOnw8UrvU+mGueNLRJS5HXnbsXQ==}
[email protected]7:
resolution: {integrity: sha512-V3W56Hnztt4Wdh3VUlAMbdNicX/tOM38eChW3a2ixP6KEBJAeehxzYzTD59JrU5NCTgBZwRt9lRWr8D7eMZVYQ==}
engines: {node: '>=18'}
[email protected]:
@@ -8949,8 +8949,8 @@ packages:
[email protected]:
resolution: {integrity: sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==}
[email protected].0:
resolution: {integrity: sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g==}
[email protected].2:
resolution: {integrity: sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ==}
engines: {node: '>= 10.13.0'}
[email protected]:
@@ -9515,41 +9515,41 @@ packages:
engines: {node: '>=18.0.0'}
hasBin: true
[email protected].1:
resolution: {integrity: sha512-U9lT1rZ20PQjEYDiNE0aZrU6K+StAE8rood9xn3pV1w+CSby56HkdR2AffzMdFf8iPTeZfcY1qL62rDcCeRPTw==}
[email protected].2:
resolution: {integrity: sha512-2aIl0Sx230nLk+Cg2qSVxvPOBWCZpwKNuAMKoROTvWKif6VMpkWWiR9XEPoz7sHeLmCOed4GYGMjL1bqAiIS/g==}
cpu: [x64]
os: [darwin]
[email protected].1:
resolution: {integrity: sha512-1Mp0LeP9JENqHnurGNyD557sndPt2BYUbgzUX87tYIdu/26dHyqlobiRzPpEfkOGB/sV4exhJUJGXB1h72szLQ==}
[email protected].2:
resolution: {integrity: sha512-MrFYhK/jYu8N6QlqZtqSHi3e4QVxlzqU3ANHTKn3/tThuwTLbNHEvzBPWSj5W7nZcM58dCqi6gYrfRz6bJZyAA==}
cpu: [arm64]
os: [darwin]
[email protected].1:
resolution: {integrity: sha512-Cl2yKumJQAlNG5UA7vjCU6SPBLrcKaGhOjTaUjGHeD9WLL8vh4FwOlhOD2wk7zCUlhpJaM73WHY+oOZGMqmzOg==}
[email protected].2:
resolution: {integrity: sha512-LxNqUE2HmAJQ/8deoLgMUDzKxd5bKxqH0UBogWa+DF+JcXhtze3UTMr6lEr0dEofdsEUYK1zg8FRjglmwlN5YA==}
cpu: [x64]
os: [linux]
[email protected].1:
resolution: {integrity: sha512-OFpb/9YZJG8v3nttD4K5dxW3bwsZp++oxAykpYsPhp552EX6r+dJrt2dzX3C0azls2JLf/UzTpA83fRoM8mC4g==}
[email protected].2:
resolution: {integrity: sha512-0MI1Ao1q8zhd+UUbIEsrM+yLq1BsrcJQRGZkxIsHFlGp7WQQH1oR3laBgfnUCNdCotCMD6w4moc9pUbXdOR3bg==}
cpu: [arm64]
os: [linux]
[email protected]:
resolution: {integrity: sha512-FHncC10WpBd2eOmGwpmQsWLDoK4cqsA/UT/GqNoaKOQnT8uzhtCbg3EoUDMvqpOSAI0S26mr0rkjzbOO6S3v1g==}
[email protected].1:
resolution: {integrity: sha512-6XnfSxE8xPETVAlAwfMqCuVuZbq9gXTj8H/Eggv/i3Tjoh2l5xMVTOmg3/zV4RlDtTcwhnvXgXx8LEXrSRZmQQ==}
[email protected].2:
resolution: {integrity: sha512-hOLcbgZzE5ttACHHyc1ajmWYq4zKT42IC3G6XqgiXxMbS+4eyVYTL+7UvCZBd3Kca1u4TLQdLQjeO76zyDJc2A==}
cpu: [x64]
os: [win32]
[email protected].1:
resolution: {integrity: sha512-Nc9abxTCpRL8ejzzIm5j6jze3jFi23ZtU83Fwz2N9StquYHGEi72isyeCkrhzCiUvZZEPlFyFaXOSShcJUK58Q==}
[email protected].2:
resolution: {integrity: sha512-fMU41ABhSLa18H8V3Z7BMCGynQ8x+wj9WyBMvWm1jeyRKgkvUYJsO2vkIsy8m0vrwnIeVXKOIn6eSe1ddlBVqw==}
cpu: [arm64]
os: [win32]
[email protected].1:
resolution: {integrity: sha512-LT0wYyT+HY4StvmGMq1k2tHCIwauaWSXwyP+tCUked9vja5xEisW8b8NIJGi9BWH5HYH9Og1DysaQFTf8BiydQ==}
[email protected].2:
resolution: {integrity: sha512-Qo5lfuStr6LQh3sPQl7kIi243bGU4aHGDQJUf6ylAdGwks30jJFloc9NYHP7Y373+gGU9OS0faA4Mb5Sy8X9Xw==}
hasBin: true
[email protected]:
@@ -10091,8 +10091,8 @@ packages:
[email protected]:
resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==}
[email protected].6:
resolution: {integrity: sha512-TJOLrJ6oeccsGWPl7ujCYuc0pIq2cNsuD6GZDma8i5o5Npvcco/z+NKvZSFsP0/x6SShVb0+X2JK/JHUjKY9dQ==}
[email protected].7:
resolution: {integrity: sha512-CNqKBRMQjwcmKR0idID5va1qlhrqVUKpovi+Ec79ksW8ux7iS1+A6VqzfZXgVYCFRKl7XL5ap3ZoMpwBJxcg0w==}
engines: {node: '>=10.13.0'}
hasBin: true
peerDependencies:
@@ -10271,7 +10271,7 @@ packages:
snapshots:
'@ai-sdk/[email protected].19([email protected])':
'@ai-sdk/[email protected].20([email protected])':
dependencies:
'@ai-sdk/provider': 1.1.3
'@ai-sdk/provider-utils': 2.2.7([email protected])
@@ -10437,7 +10437,7 @@ snapshots:
'@babel/types': 7.27.0
'@jridgewell/gen-mapping': 0.3.8
'@jridgewell/trace-mapping': 0.3.25
jsesc: 3.0.2
jsesc: 3.1.0
'@babel/[email protected]':
dependencies:
@@ -13414,12 +13414,12 @@ snapshots:
- xml2js
- yaml
'@tanstack/[email protected]7.2(@netlify/[email protected])(@tanstack/[email protected]([email protected]([email protected]))([email protected]))(@types/[email protected])([email protected])([email protected])([email protected])([email protected])([email protected])([email protected]([email protected]))([email protected])([email protected])([email protected])([email protected](@types/[email protected])([email protected])([email protected])([email protected])([email protected])([email protected]))([email protected].6(@swc/[email protected])([email protected]))([email protected])':
'@tanstack/[email protected]8.0(@netlify/[email protected])(@tanstack/[email protected]([email protected]([email protected]))([email protected]))(@types/[email protected])([email protected])([email protected])([email protected])([email protected])([email protected])([email protected]([email protected]))([email protected])([email protected])([email protected])([email protected](@types/[email protected])([email protected])([email protected])([email protected])([email protected])([email protected]))([email protected].7(@swc/[email protected])([email protected]))([email protected])':
dependencies:
'@tanstack/react-start-plugin': 1.115.0(@types/[email protected])([email protected])([email protected])([email protected])([email protected])([email protected])
'@tanstack/router-core': 1.117.1
'@tanstack/router-generator': 1.117.1(@tanstack/[email protected]([email protected]([email protected]))([email protected]))
'@tanstack/router-plugin': 1.117.2(@tanstack/[email protected]([email protected]([email protected]))([email protected]))([email protected](@types/[email protected])([email protected])([email protected])([email protected])([email protected])([email protected]))([email protected].6(@swc/[email protected])([email protected]))
'@tanstack/router-plugin': 1.117.2(@tanstack/[email protected]([email protected]([email protected]))([email protected]))([email protected](@types/[email protected])([email protected])([email protected])([email protected])([email protected])([email protected]))([email protected].7(@swc/[email protected])([email protected]))
'@tanstack/server-functions-plugin': 1.115.0(@types/[email protected])([email protected])([email protected])([email protected])([email protected])([email protected])([email protected])
'@tanstack/start-server-functions-handler': 1.117.1
'@vitejs/plugin-react': 4.4.1([email protected](@types/[email protected])([email protected])([email protected])([email protected])([email protected])([email protected]))
@@ -13560,17 +13560,17 @@ snapshots:
'@tanstack/start-client-core': 1.117.1
'@tanstack/start-server-core': 1.117.1
h3: 1.13.0
isbot: 5.1.26
isbot: 5.1.27
jsesc: 3.1.0
react: 19.1.0
react-dom: 19.1.0([email protected])
tiny-warning: 1.0.3
unctx: 2.4.1
'@tanstack/[email protected]7.2(@netlify/[email protected])(@tanstack/[email protected]([email protected]([email protected]))([email protected]))(@types/[email protected])([email protected])([email protected])([email protected])([email protected])([email protected])([email protected]([email protected]))([email protected])([email protected])([email protected])([email protected](@types/[email protected])([email protected])([email protected])([email protected])([email protected])([email protected]))([email protected].6(@swc/[email protected])([email protected]))([email protected])':
'@tanstack/[email protected]8.0(@netlify/[email protected])(@tanstack/[email protected]([email protected]([email protected]))([email protected]))(@types/[email protected])([email protected])([email protected])([email protected])([email protected])([email protected])([email protected]([email protected]))([email protected])([email protected])([email protected])([email protected](@types/[email protected])([email protected])([email protected])([email protected])([email protected])([email protected]))([email protected].7(@swc/[email protected])([email protected]))([email protected])':
dependencies:
'@tanstack/react-start-client': 1.117.1(@netlify/[email protected])(@types/[email protected])([email protected])([email protected])([email protected])([email protected])([email protected]([email protected]))([email protected])([email protected])([email protected])([email protected])
'@tanstack/react-start-config': 1.117.2(@netlify/[email protected])(@tanstack/[email protected]([email protected]([email protected]))([email protected]))(@types/[email protected])([email protected])([email protected])([email protected])([email protected])([email protected])([email protected]([email protected]))([email protected])([email protected])([email protected])([email protected](@types/[email protected])([email protected])([email protected])([email protected])([email protected])([email protected]))([email protected].6(@swc/[email protected])([email protected]))([email protected])
'@tanstack/react-start-config': 1.118.0(@netlify/[email protected])(@tanstack/[email protected]([email protected]([email protected]))([email protected]))(@types/[email protected])([email protected])([email protected])([email protected])([email protected])([email protected])([email protected]([email protected]))([email protected])([email protected])([email protected])([email protected](@types/[email protected])([email protected])([email protected])([email protected])([email protected])([email protected]))([email protected].7(@swc/[email protected])([email protected]))([email protected])
'@tanstack/react-start-router-manifest': 1.117.1(@netlify/[email protected])(@types/[email protected])([email protected])([email protected])([email protected])([email protected])([email protected])([email protected])([email protected])
'@tanstack/react-start-server': 1.117.1([email protected]([email protected]))([email protected])
'@tanstack/start-api-routes': 1.117.1(@netlify/[email protected])(@types/[email protected])([email protected])([email protected])([email protected])([email protected])([email protected])([email protected])([email protected])
@@ -13650,7 +13650,7 @@ snapshots:
optionalDependencies:
'@tanstack/react-router': 1.117.1([email protected]([email protected]))([email protected])
'@tanstack/[email protected](@tanstack/[email protected]([email protected]([email protected]))([email protected]))([email protected](@types/[email protected])([email protected])([email protected])([email protected])([email protected])([email protected]))([email protected].6(@swc/[email protected])([email protected]))':
'@tanstack/[email protected](@tanstack/[email protected]([email protected]([email protected]))([email protected]))([email protected](@types/[email protected])([email protected])([email protected])([email protected])([email protected])([email protected]))([email protected].7(@swc/[email protected])([email protected]))':
dependencies:
'@babel/core': 7.26.10
'@babel/plugin-syntax-jsx': 7.25.9(@babel/[email protected])
@@ -13672,7 +13672,7 @@ snapshots:
optionalDependencies:
'@tanstack/react-router': 1.117.1([email protected]([email protected]))([email protected])
vite: 6.3.3(@types/[email protected])([email protected])([email protected])([email protected])([email protected])([email protected])
webpack: 5.99.6(@swc/[email protected])([email protected])
webpack: 5.99.7(@swc/[email protected])([email protected])
transitivePeerDependencies:
- supports-color
@@ -13771,7 +13771,7 @@ snapshots:
'@tanstack/router-core': 1.117.1
'@tanstack/start-client-core': 1.117.1
h3: 1.13.0
isbot: 5.1.26
isbot: 5.1.27
jsesc: 3.1.0
tiny-warning: 1.0.3
unctx: 2.4.1
@@ -14597,7 +14597,7 @@ snapshots:
[email protected]: {}
[email protected].9([email protected])([email protected]):
[email protected].10([email protected])([email protected]):
dependencies:
'@ai-sdk/provider': 1.1.3
'@ai-sdk/provider-utils': 2.2.7([email protected])
@@ -14897,8 +14897,8 @@ snapshots:
[email protected]:
dependencies:
caniuse-lite: 1.0.30001714
electron-to-chromium: 1.5.134
caniuse-lite: 1.0.30001715
electron-to-chromium: 1.5.143
node-releases: 2.0.19
update-browserslist-db: 1.1.3([email protected])
@@ -14975,7 +14975,7 @@ snapshots:
[email protected]: {}
[email protected]4: {}
[email protected]5: {}
[email protected]: {}
@@ -15667,7 +15667,7 @@ snapshots:
[email protected]: {}
[email protected]34: {}
[email protected]3: {}
[email protected]: {}
@@ -17169,7 +17169,7 @@ snapshots:
[email protected]: {}
[email protected]6: {}
[email protected]7: {}
[email protected]: {}
@@ -18244,7 +18244,7 @@ snapshots:
'@swc/counter': 0.1.3
'@swc/helpers': 0.5.15
busboy: 1.6.0
caniuse-lite: 1.0.30001714
caniuse-lite: 1.0.30001715
postcss: 8.4.31
react: 19.1.0
react-dom: 19.1.0([email protected])
@@ -19470,7 +19470,7 @@ snapshots:
[email protected]: {}
[email protected].0:
[email protected].2:
dependencies:
'@types/json-schema': 7.0.15
ajv: 8.17.1
@@ -19937,14 +19937,14 @@ snapshots:
[email protected]: {}
[email protected](@swc/[email protected])([email protected])([email protected].6(@swc/[email protected])([email protected])):
[email protected](@swc/[email protected])([email protected])([email protected].7(@swc/[email protected])([email protected])):
dependencies:
'@jridgewell/trace-mapping': 0.3.25
jest-worker: 27.5.1
schema-utils: 4.3.0
schema-utils: 4.3.2
serialize-javascript: 6.0.2
terser: 5.39.0
webpack: 5.99.6(@swc/[email protected])([email protected])
webpack: 5.99.7(@swc/[email protected])([email protected])
optionalDependencies:
'@swc/core': 1.11.22
esbuild: 0.25.3
@@ -20104,34 +20104,34 @@ snapshots:
optionalDependencies:
fsevents: 2.3.3
[email protected].1:
[email protected].2:
optional: true
[email protected].1:
[email protected].2:
optional: true
[email protected].1:
[email protected].2:
optional: true
[email protected].1:
[email protected].2:
optional: true
[email protected]: {}
[email protected].1:
[email protected].2:
optional: true
[email protected].1:
[email protected].2:
optional: true
[email protected].1:
[email protected].2:
optionalDependencies:
turbo-darwin-64: 2.5.1
turbo-darwin-arm64: 2.5.1
turbo-linux-64: 2.5.1
turbo-linux-arm64: 2.5.1
turbo-windows-64: 2.5.1
turbo-windows-arm64: 2.5.1
turbo-darwin-64: 2.5.2
turbo-darwin-arm64: 2.5.2
turbo-linux-64: 2.5.2
turbo-linux-arm64: 2.5.2
turbo-windows-64: 2.5.2
turbo-windows-arm64: 2.5.2
[email protected]: {}
@@ -20816,10 +20816,11 @@ snapshots:
[email protected]: {}
[email protected].6(@swc/[email protected])([email protected]):
[email protected].7(@swc/[email protected])([email protected]):
dependencies:
'@types/eslint-scope': 3.7.7
'@types/estree': 1.0.7
'@types/json-schema': 7.0.15
'@webassemblyjs/ast': 1.14.1
'@webassemblyjs/wasm-edit': 1.14.1
'@webassemblyjs/wasm-parser': 1.14.1
@@ -20836,9 +20837,9 @@ snapshots:
loader-runner: 4.3.0
mime-types: 2.1.35
neo-async: 2.6.2
schema-utils: 4.3.0
schema-utils: 4.3.2
tapable: 2.2.1
terser-webpack-plugin: 5.3.14(@swc/[email protected])([email protected])([email protected].6(@swc/[email protected])([email protected]))
terser-webpack-plugin: 5.3.14(@swc/[email protected])([email protected])([email protected].7(@swc/[email protected])([email protected]))
watchpack: 2.4.2
webpack-sources: 3.2.3
transitivePeerDependencies: