chore: adjust docs and add cjk font

- Created a new documentation site under `apps/docs` using Vite, React, and MDX.
- Added essential files including `index.html`, `package.json`, and various configuration files.
- Implemented a file-system based routing system with automatic route generation from markdown files.
- Included support for syntax highlighting, responsive design, and TypeScript.
- Established a structure for documentation content with initial deployment guides and storage provider information.

Signed-off-by: Innei <tukon479@gmail.com>
This commit is contained in:
Innei
2025-11-14 21:52:54 +08:00
parent c107aa49b3
commit 77f16490e4
46 changed files with 231 additions and 209 deletions

View File

@@ -2,7 +2,7 @@
title: Cloudflare Pages
description: Guide to deploying Afilmory via Cloudflare Pages.
createdAt: 2025-07-20T22:35:03+08:00
lastModified: 2025-08-08T17:39:40+08:00
lastModified: 2025-11-14T21:52:55+08:00
---
# Cloudflare Pages Deployment

View File

@@ -2,7 +2,7 @@
title: Docker
description: Guide to deploying Afilmory via Docker.
createdAt: 2025-07-20T22:35:03+08:00
lastModified: 2025-11-14T00:23:27+08:00
lastModified: 2025-11-14T21:52:55+08:00
---
# Docker Deployment

View File

@@ -2,7 +2,7 @@
title: Github Action
description: Guide to deploying Afilmory via Github Action.
createdAt: 2025-07-20T22:35:03+08:00
lastModified: 2025-08-08T17:39:40+08:00
lastModified: 2025-11-14T21:52:55+08:00
---
# Github Action Deployment

View File

@@ -2,7 +2,7 @@
title: Github Pages
description: Guide to deploying Afilmory via Github Pages.
createdAt: 2025-07-20T22:35:03+08:00
lastModified: 2025-08-08T17:39:40+08:00
lastModified: 2025-11-14T21:52:55+08:00
---
# Github Pages Deployment

View File

@@ -2,7 +2,7 @@
title: Deployment
description: Guide to deploying Afilmory in production environments, including Docker and configuration options.
createdAt: 2025-07-20T22:35:03+08:00
lastModified: 2025-08-08T08:28:42.778+08:00
lastModified: 2025-11-14T21:52:55+08:00
---
# Deployment

View File

@@ -2,7 +2,7 @@
title: Vercel
description: Guide to deploying Afilmory via Vercel.
createdAt: 2025-07-20T22:35:03+08:00
lastModified: 2025-08-08T17:39:40+08:00
lastModified: 2025-11-14T21:52:55+08:00
---
# Vercel Deployment

View File

@@ -2,7 +2,7 @@
title: Docs site
description: Docs site introduction and contribution guide
createdAt: 2025-09-11T17:05:55+08:00
lastModified: 2025-09-11T17:10:35+08:00
lastModified: 2025-11-14T21:52:55+08:00
---
# Afilmory Docs Site

View File

@@ -1,7 +1,7 @@
---
title: Overview
createdAt: 2025-07-20T22:35:03+08:00
lastModified: 2025-11-10T22:36:14+08:00
lastModified: 2025-11-14T21:52:55+08:00
---
# Overview

View File

@@ -2,7 +2,7 @@
title: Storage providers
description: Afilmory can work with multiple storage providers, including S3, Git, Eagle, and local file system
createdAt: 2025-08-12T15:09:08+08:00
lastModified: 2025-11-01T19:31:16+08:00
lastModified: 2025-11-14T21:52:55+08:00
---
# Storage Providers

View File

@@ -41,9 +41,7 @@ function extractTextFromNode(node: any): string {
}
if (node.children && Array.isArray(node.children)) {
return node.children
.map((element: any) => extractTextFromNode(element))
.join('')
return node.children.map((element: any) => extractTextFromNode(element)).join('')
}
return ''
@@ -78,11 +76,7 @@ interface RemarkHeadingOptions {
* @param options
*/
const remarkHeading: Plugin<[RemarkHeadingOptions?], Root> = (options = {}) => {
const {
overrideExisting = false,
prefix = '',
generateId = generateHeadingId,
} = options
const { overrideExisting = false, prefix = '', generateId = generateHeadingId } = options
return (tree: Root) => {
// 用于跟踪已使用的 ID避免重复
@@ -98,9 +92,7 @@ const remarkHeading: Plugin<[RemarkHeadingOptions?], Root> = (options = {}) => {
}
// 提取标题文本
const text = node.children
.map((element: any) => extractTextFromNode(element))
.join('')
const text = node.children.map((element: any) => extractTextFromNode(element)).join('')
if (!text.trim()) {
return // 跳过空标题

View File

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

Before

Width:  |  Height:  |  Size: 4.0 KiB

After

Width:  |  Height:  |  Size: 4.0 KiB

View File

@@ -11,6 +11,7 @@ import { injectable } from 'tsyringe'
import { ManifestService } from '../manifest/manifest.service'
import geistFontUrl from './assets/Geist-Medium.ttf?url'
import harmonySansScMediumFontUrl from './assets/HarmonyOS_Sans_SC_Medium.ttf?url'
import { renderOgImage } from './og.renderer'
import type { ExifInfo, PhotoDimensions } from './og.template'
@@ -34,6 +35,18 @@ if (__DEV__) {
)
}
const HarmonySansScMediumFontCandidates = [
resolve(process.cwd(), `./${harmonySansScMediumFontUrl}`),
resolve(process.cwd(), `./dist/${harmonySansScMediumFontUrl}`),
]
if (__DEV__) {
HarmonySansScMediumFontCandidates.push(
resolve(process.cwd(), `./be/apps/core/src/modules/content/og/assets/HarmonyOS_Sans_SC_Medium.ttf`),
resolve(process.cwd(), `./apps/core/src/modules/content/og/assets/HarmonyOS_Sans_SC_Medium.ttf`),
resolve(process.cwd(), `./core/src/modules/content/og/assets/HarmonyOS_Sans_SC_Medium.ttf`),
)
}
@injectable()
export class OgService implements OnModuleDestroy {
private fontConfig: SatoriOptions['fonts'] | null = null
@@ -90,7 +103,7 @@ export class OgService implements OnModuleDestroy {
}
private geistFontPromise: Promise<NonSharedBuffer> | null = null
private harmonySansScMediumFontPromise: Promise<NonSharedBuffer> | null = null
async loadFonts() {
if (!this.geistFontPromise) {
for (const candidate of GeistFontCandidates) {
@@ -104,6 +117,18 @@ export class OgService implements OnModuleDestroy {
}
}
}
if (!this.harmonySansScMediumFontPromise) {
for (const candidate of HarmonySansScMediumFontCandidates) {
const stats = await stat(candidate).catch(() => null)
if (!stats) {
continue
}
if (stats.isFile()) {
this.harmonySansScMediumFontPromise = readFile(candidate)
break
}
}
}
this.resetFontCleanupTimer()
}
@@ -117,12 +142,12 @@ export class OgService implements OnModuleDestroy {
style: 'normal',
weight: 400,
},
// {
// name: '狮尾咏腿黑体',
// data: await this.cjkFontPromise!,
// style: 'normal',
// weight: 400,
// },
{
name: 'HarmonyOS Sans SC',
data: await this.harmonySansScMediumFontPromise!,
style: 'normal',
weight: 400,
},
]
}
@@ -133,8 +158,8 @@ export class OgService implements OnModuleDestroy {
// Clean font promises 10 minutes after last activity
this.fontCleanupTimer = setTimeout(
() => {
// this.cjkFontPromise = null
this.geistFontPromise = null
this.harmonySansScMediumFontPromise = null
this.fontConfig = null
this.fontCleanupTimer = null
},

View File

@@ -30,6 +30,7 @@ type LayoutType = 'portrait' | 'square' | 'landscape' | 'wide'
interface LayoutConfig {
type: LayoutType
arrangement: 'split' | 'stack' | 'wide'
padding: number
gap: number
photoBox: { maxWidth: number; maxHeight: number }
@@ -78,7 +79,8 @@ export function OgTemplate({
/>
)
const layoutComponent = layout.type === 'wide' ? WideLayout : layout.type === 'landscape' ? StackLayout : SplitLayout
const layoutComponent =
layout.arrangement === 'wide' ? WideLayout : layout.arrangement === 'stack' ? StackLayout : SplitLayout
return (
<BaseCanvas padding={layout.padding} siteName={siteName}>
@@ -87,6 +89,8 @@ export function OgTemplate({
)
}
const ogAspect = CANVAS.width / CANVAS.height
function determineLayout(aspect: number): LayoutConfig {
let finalAspect = aspect
if (!Number.isFinite(finalAspect) || finalAspect <= 0) {
@@ -97,6 +101,7 @@ function determineLayout(aspect: number): LayoutConfig {
const padding = 60
return {
type: 'portrait',
arrangement: 'split',
padding,
gap: 44,
photoBox: {
@@ -112,6 +117,7 @@ function determineLayout(aspect: number): LayoutConfig {
const padding = 60
return {
type: 'square',
arrangement: 'split',
padding,
gap: 44,
photoBox: {
@@ -127,6 +133,7 @@ function determineLayout(aspect: number): LayoutConfig {
const padding = 50
return {
type: 'wide',
arrangement: 'wide',
padding,
gap: 28,
photoBox: {
@@ -139,8 +146,11 @@ function determineLayout(aspect: number): LayoutConfig {
}
const padding = 54
const landscapeArrangement = finalAspect / ogAspect <= 0.82 ? 'split' : 'stack'
return {
type: 'landscape',
arrangement: landscapeArrangement,
padding,
gap: 26,
photoBox: {
@@ -186,7 +196,7 @@ function BaseCanvas({ padding, siteName, children }: BaseCanvasProps) {
padding: `${padding}px`,
position: 'relative',
background: 'linear-gradient(135deg, #0a0a0a 0%, #1a1a1a 50%, #0f0f0f 100%)',
fontFamily: 'Geist, system-ui, -apple-system, sans-serif',
fontFamily: 'Geist, HarmonyOS Sans SC, system-ui, -apple-system, sans-serif',
display: 'flex',
}}
>
@@ -437,6 +447,8 @@ function InfoPanel({ title, tags, exifItems, camera, formattedDate, accentColor,
<div
key={tag}
style={{
display: 'flex',
alignItems: 'center',
fontSize: `${13 * fontScale}px`,
color: 'rgba(255,255,255,0.9)',
backgroundColor: 'rgba(255,255,255,0.12)',
@@ -510,6 +522,7 @@ function InfoPanel({ title, tags, exifItems, camera, formattedDate, accentColor,
color: 'rgba(255,255,255,0.45)',
fontSize: `${13 * fontScale}px`,
marginTop: compact ? '2px' : '6px',
display: 'flex',
}}
>
{formattedDate}

350
pnpm-lock.yaml generated
View File

@@ -148,6 +148,151 @@ importers:
specifier: 5.1.4
version: 5.1.4(typescript@5.9.3)(vite@7.2.2(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.20.6)(yaml@2.8.1))
apps/docs:
dependencies:
'@mdx-js/react':
specifier: ^3.1.1
version: 3.1.1(@types/react@19.2.3)(react@19.2.0)
'@mdx-js/rollup':
specifier: ^3.1.1
version: 3.1.1(rollup@4.53.2)
'@pastel-palette/colors':
specifier: 1.0.0-canary.3
version: 1.0.0-canary.3
'@pastel-palette/tailwindcss':
specifier: 1.0.0-canary.3
version: 1.0.0-canary.3
'@radix-ui/react-context-menu':
specifier: 2.2.16
version: 2.2.16(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
'@radix-ui/react-scroll-area':
specifier: 1.2.10
version: 1.2.10(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
'@tailwindcss/vite':
specifier: 4.1.17
version: 4.1.17(vite@7.2.2(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.20.6)(yaml@2.8.1))
'@types/mdast':
specifier: ^4.0.4
version: 4.0.4
lucide-react:
specifier: ^0.553.0
version: 0.553.0(react@19.2.0)
mdast:
specifier: ^3.0.0
version: 3.0.0
motion:
specifier: 12.23.24
version: 12.23.24(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
next-themes:
specifier: ^0.4.6
version: 0.4.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
react:
specifier: ^19.2.0
version: 19.2.0
react-dom:
specifier: ^19.2.0
version: 19.2.0(react@19.2.0)
remark-frontmatter:
specifier: ^5.0.0
version: 5.0.0
remark-gfm:
specifier: ^4.0.1
version: 4.0.1
remark-mdx:
specifier: ^3.1.1
version: 3.1.1
remark-parse:
specifier: ^11.0.0
version: 11.0.0
tailwind-scrollbar-hide:
specifier: ^4.0.0
version: 4.0.0(tailwindcss@4.1.17)
unified:
specifier: ^11.0.5
version: 11.0.5
unist-util-visit:
specifier: ^5.0.0
version: 5.0.0
devDependencies:
'@eslint/js':
specifier: ^9.39.1
version: 9.39.1
'@shikijs/rehype':
specifier: ^3.15.0
version: 3.15.0
'@tailwindcss/postcss':
specifier: 'catalog:'
version: 4.1.17
'@tailwindcss/typography':
specifier: 'catalog:'
version: 0.5.19(tailwindcss@4.1.17)
'@types/glob':
specifier: ^9.0.0
version: 9.0.0
'@types/mdx':
specifier: ^2.0.13
version: 2.0.13
'@types/react':
specifier: ^19.2.3
version: 19.2.3
'@types/react-dom':
specifier: ^19.2.3
version: 19.2.3(@types/react@19.2.3)
'@types/remark-heading-id':
specifier: ^1.0.0
version: 1.0.0
'@vitejs/plugin-react':
specifier: ^5.1.1
version: 5.1.1(vite@7.2.2(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.20.6)(yaml@2.8.1))
code-inspector-plugin:
specifier: 1.2.10
version: 1.2.10
eslint:
specifier: ^9.39.1
version: 9.39.1(jiti@2.6.1)
eslint-plugin-react-hooks:
specifier: ^7.0.1
version: 7.0.1(eslint@9.39.1(jiti@2.6.1))
eslint-plugin-react-refresh:
specifier: ^0.4.24
version: 0.4.24(eslint@9.39.1(jiti@2.6.1))
glob:
specifier: ^11.0.3
version: 11.0.3
globals:
specifier: ^16.5.0
version: 16.5.0
shiki:
specifier: ^3.15.0
version: 3.15.0
tailwind-scrollbar:
specifier: 'catalog:'
version: 4.0.2(react@19.2.0)(tailwindcss@4.1.17)
tailwindcss:
specifier: 'catalog:'
version: 4.1.17
tailwindcss-animate:
specifier: 'catalog:'
version: 1.0.7(tailwindcss@4.1.17)
tailwindcss-safe-area:
specifier: 'catalog:'
version: 1.1.0(tailwindcss@4.1.17)
tailwindcss-uikit-colors:
specifier: 'catalog:'
version: 1.0.0
tsx:
specifier: ^4.20.6
version: 4.20.6
typescript:
specifier: ~5.9.3
version: 5.9.3
typescript-eslint:
specifier: ^8.46.4
version: 8.46.4(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
vite:
specifier: ^7.2.2
version: 7.2.2(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.20.6)(yaml@2.8.1)
apps/landing:
dependencies:
'@floating-ui/react-dom':
@@ -1252,151 +1397,6 @@ importers:
specifier: workspace:*
version: link:../builder
packages/docs:
dependencies:
'@mdx-js/react':
specifier: ^3.1.1
version: 3.1.1(@types/react@19.2.3)(react@19.2.0)
'@mdx-js/rollup':
specifier: ^3.1.1
version: 3.1.1(rollup@4.53.2)
'@pastel-palette/colors':
specifier: 1.0.0-canary.3
version: 1.0.0-canary.3
'@pastel-palette/tailwindcss':
specifier: 1.0.0-canary.3
version: 1.0.0-canary.3
'@radix-ui/react-context-menu':
specifier: 2.2.16
version: 2.2.16(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
'@radix-ui/react-scroll-area':
specifier: 1.2.10
version: 1.2.10(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
'@tailwindcss/vite':
specifier: 4.1.17
version: 4.1.17(vite@7.2.2(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.20.6)(yaml@2.8.1))
'@types/mdast':
specifier: ^4.0.4
version: 4.0.4
lucide-react:
specifier: ^0.553.0
version: 0.553.0(react@19.2.0)
mdast:
specifier: ^3.0.0
version: 3.0.0
motion:
specifier: 12.23.24
version: 12.23.24(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
next-themes:
specifier: ^0.4.6
version: 0.4.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
react:
specifier: ^19.2.0
version: 19.2.0
react-dom:
specifier: ^19.2.0
version: 19.2.0(react@19.2.0)
remark-frontmatter:
specifier: ^5.0.0
version: 5.0.0
remark-gfm:
specifier: ^4.0.1
version: 4.0.1
remark-mdx:
specifier: ^3.1.1
version: 3.1.1
remark-parse:
specifier: ^11.0.0
version: 11.0.0
tailwind-scrollbar-hide:
specifier: ^4.0.0
version: 4.0.0(tailwindcss@4.1.17)
unified:
specifier: ^11.0.5
version: 11.0.5
unist-util-visit:
specifier: ^5.0.0
version: 5.0.0
devDependencies:
'@eslint/js':
specifier: ^9.39.1
version: 9.39.1
'@shikijs/rehype':
specifier: ^3.15.0
version: 3.15.0
'@tailwindcss/postcss':
specifier: 'catalog:'
version: 4.1.17
'@tailwindcss/typography':
specifier: 'catalog:'
version: 0.5.19(tailwindcss@4.1.17)
'@types/glob':
specifier: ^9.0.0
version: 9.0.0
'@types/mdx':
specifier: ^2.0.13
version: 2.0.13
'@types/react':
specifier: ^19.2.3
version: 19.2.3
'@types/react-dom':
specifier: ^19.2.3
version: 19.2.3(@types/react@19.2.3)
'@types/remark-heading-id':
specifier: ^1.0.0
version: 1.0.0
'@vitejs/plugin-react':
specifier: ^5.1.1
version: 5.1.1(vite@7.2.2(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.20.6)(yaml@2.8.1))
code-inspector-plugin:
specifier: 1.2.10
version: 1.2.10
eslint:
specifier: ^9.39.1
version: 9.39.1(jiti@2.6.1)
eslint-plugin-react-hooks:
specifier: ^7.0.1
version: 7.0.1(eslint@9.39.1(jiti@2.6.1))
eslint-plugin-react-refresh:
specifier: ^0.4.24
version: 0.4.24(eslint@9.39.1(jiti@2.6.1))
glob:
specifier: ^11.0.3
version: 11.0.3
globals:
specifier: ^16.5.0
version: 16.5.0
shiki:
specifier: ^3.15.0
version: 3.15.0
tailwind-scrollbar:
specifier: 'catalog:'
version: 4.0.2(react@19.2.0)(tailwindcss@4.1.17)
tailwindcss:
specifier: 'catalog:'
version: 4.1.17
tailwindcss-animate:
specifier: 'catalog:'
version: 1.0.7(tailwindcss@4.1.17)
tailwindcss-safe-area:
specifier: 'catalog:'
version: 1.1.0(tailwindcss@4.1.17)
tailwindcss-uikit-colors:
specifier: 'catalog:'
version: 1.0.0
tsx:
specifier: ^4.20.6
version: 4.20.6
typescript:
specifier: ~5.9.3
version: 5.9.3
typescript-eslint:
specifier: ^8.46.4
version: 8.46.4(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
vite:
specifier: ^7.2.2
version: 7.2.2(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.20.6)(yaml@2.8.1)
packages/hooks:
dependencies:
jotai:
@@ -11807,9 +11807,6 @@ packages:
vfile-location@5.0.3:
resolution: {integrity: sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==}
vfile-message@4.0.2:
resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==}
vfile-message@4.0.3:
resolution: {integrity: sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==}
@@ -14134,9 +14131,9 @@ snapshots:
'@eslint-react/ast@1.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)':
dependencies:
'@eslint-react/eff': 1.53.1
'@typescript-eslint/types': 8.46.2
'@typescript-eslint/typescript-estree': 8.46.2(typescript@5.9.3)
'@typescript-eslint/utils': 8.46.2(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
'@typescript-eslint/types': 8.46.4
'@typescript-eslint/typescript-estree': 8.46.4(typescript@5.9.3)
'@typescript-eslint/utils': 8.46.4(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
string-ts: 2.2.1
ts-pattern: 5.8.0
transitivePeerDependencies:
@@ -14151,10 +14148,10 @@ snapshots:
'@eslint-react/kit': 1.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
'@eslint-react/shared': 1.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
'@eslint-react/var': 1.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
'@typescript-eslint/scope-manager': 8.46.2
'@typescript-eslint/type-utils': 8.46.2(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
'@typescript-eslint/types': 8.46.2
'@typescript-eslint/utils': 8.46.2(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
'@typescript-eslint/scope-manager': 8.46.4
'@typescript-eslint/type-utils': 8.46.4(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
'@typescript-eslint/types': 8.46.4
'@typescript-eslint/utils': 8.46.4(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
birecord: 0.1.1
ts-pattern: 5.8.0
transitivePeerDependencies:
@@ -14189,7 +14186,7 @@ snapshots:
'@eslint-react/kit@1.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)':
dependencies:
'@eslint-react/eff': 1.53.1
'@typescript-eslint/utils': 8.46.2(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
'@typescript-eslint/utils': 8.46.4(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
ts-pattern: 5.8.0
zod: 4.1.12
transitivePeerDependencies:
@@ -14201,7 +14198,7 @@ snapshots:
dependencies:
'@eslint-react/eff': 1.53.1
'@eslint-react/kit': 1.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
'@typescript-eslint/utils': 8.46.2(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
'@typescript-eslint/utils': 8.46.4(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
ts-pattern: 5.8.0
zod: 4.1.12
transitivePeerDependencies:
@@ -14213,9 +14210,9 @@ snapshots:
dependencies:
'@eslint-react/ast': 1.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
'@eslint-react/eff': 1.53.1
'@typescript-eslint/scope-manager': 8.46.2
'@typescript-eslint/types': 8.46.2
'@typescript-eslint/utils': 8.46.2(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
'@typescript-eslint/scope-manager': 8.46.4
'@typescript-eslint/types': 8.46.4
'@typescript-eslint/utils': 8.46.4(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
string-ts: 2.2.1
ts-pattern: 5.8.0
transitivePeerDependencies:
@@ -17516,8 +17513,8 @@ snapshots:
'@typescript-eslint/project-service@8.46.2(typescript@5.9.3)':
dependencies:
'@typescript-eslint/tsconfig-utils': 8.46.2(typescript@5.9.3)
'@typescript-eslint/types': 8.46.2
'@typescript-eslint/tsconfig-utils': 8.46.4(typescript@5.9.3)
'@typescript-eslint/types': 8.46.4
debug: 4.4.3(supports-color@5.5.0)
typescript: 5.9.3
transitivePeerDependencies:
@@ -17661,7 +17658,7 @@ snapshots:
'@unocss/eslint-plugin@66.5.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)':
dependencies:
'@typescript-eslint/utils': 8.46.2(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
'@typescript-eslint/utils': 8.46.4(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
'@unocss/config': 66.5.1
'@unocss/core': 66.5.1
'@unocss/rule-utils': 66.5.1
@@ -19533,7 +19530,7 @@ snapshots:
'@typescript-eslint/scope-manager': 8.46.2
'@typescript-eslint/type-utils': 8.46.2(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
'@typescript-eslint/types': 8.46.2
'@typescript-eslint/utils': 8.46.2(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
'@typescript-eslint/utils': 8.46.4(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
eslint: 9.39.1(jiti@2.6.1)
string-ts: 2.2.1
ts-pattern: 5.8.0
@@ -19552,7 +19549,7 @@ snapshots:
'@eslint-react/var': 1.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
'@typescript-eslint/scope-manager': 8.46.2
'@typescript-eslint/types': 8.46.2
'@typescript-eslint/utils': 8.46.2(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
'@typescript-eslint/utils': 8.46.4(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
compare-versions: 6.1.1
eslint: 9.39.1(jiti@2.6.1)
string-ts: 2.2.1
@@ -19578,7 +19575,7 @@ snapshots:
'@typescript-eslint/scope-manager': 8.46.2
'@typescript-eslint/type-utils': 8.46.2(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
'@typescript-eslint/types': 8.46.2
'@typescript-eslint/utils': 8.46.2(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
'@typescript-eslint/utils': 8.46.4(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
eslint: 9.39.1(jiti@2.6.1)
string-ts: 2.2.1
ts-pattern: 5.8.0
@@ -19621,7 +19618,7 @@ snapshots:
'@typescript-eslint/scope-manager': 8.46.2
'@typescript-eslint/type-utils': 8.46.2(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
'@typescript-eslint/types': 8.46.2
'@typescript-eslint/utils': 8.46.2(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
'@typescript-eslint/utils': 8.46.4(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
eslint: 9.39.1(jiti@2.6.1)
string-ts: 2.2.1
ts-pattern: 5.8.0
@@ -19644,7 +19641,7 @@ snapshots:
'@eslint-react/var': 1.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
'@typescript-eslint/scope-manager': 8.46.2
'@typescript-eslint/types': 8.46.2
'@typescript-eslint/utils': 8.46.2(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
'@typescript-eslint/utils': 8.46.4(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
eslint: 9.39.1(jiti@2.6.1)
string-ts: 2.2.1
ts-pattern: 5.8.0
@@ -19664,7 +19661,7 @@ snapshots:
'@typescript-eslint/scope-manager': 8.46.2
'@typescript-eslint/type-utils': 8.46.2(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
'@typescript-eslint/types': 8.46.2
'@typescript-eslint/utils': 8.46.2(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
'@typescript-eslint/utils': 8.46.4(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
compare-versions: 6.1.1
eslint: 9.39.1(jiti@2.6.1)
is-immutable-type: 5.0.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
@@ -19711,7 +19708,7 @@ snapshots:
eslint: 9.39.1(jiti@2.6.1)
esquery: 1.6.0
find-up-simple: 1.0.1
globals: 16.4.0
globals: 16.5.0
indent-string: 5.0.0
is-builtin-module: 5.0.0
jsesc: 3.1.0
@@ -20269,7 +20266,7 @@ snapshots:
hast-util-from-parse5: 8.0.3
parse5: 7.3.0
vfile: 6.0.3
vfile-message: 4.0.2
vfile-message: 4.0.3
hast-util-from-parse5@8.0.3:
dependencies:
@@ -20357,7 +20354,7 @@ snapshots:
space-separated-tokens: 2.0.2
style-to-js: 1.1.17
unist-util-position: 5.0.0
vfile-message: 4.0.2
vfile-message: 4.0.3
transitivePeerDependencies:
- supports-color
@@ -20639,7 +20636,7 @@ snapshots:
is-immutable-type@5.0.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3):
dependencies:
'@typescript-eslint/type-utils': 8.46.2(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
'@typescript-eslint/type-utils': 8.46.4(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
eslint: 9.39.1(jiti@2.6.1)
ts-api-utils: 2.1.0(typescript@5.9.3)
ts-declaration-location: 1.0.7(typescript@5.9.3)
@@ -24465,11 +24462,6 @@ snapshots:
'@types/unist': 3.0.3
vfile: 6.0.3
vfile-message@4.0.2:
dependencies:
'@types/unist': 3.0.3
unist-util-stringify-position: 4.0.0
vfile-message@4.0.3:
dependencies:
'@types/unist': 3.0.3
@@ -24478,7 +24470,7 @@ snapshots:
vfile@6.0.3:
dependencies:
'@types/unist': 3.0.3
vfile-message: 4.0.2
vfile-message: 4.0.3
vite-bundle-analyzer@1.2.3: {}