diff --git a/app/api/ai/headlines/route.ts b/app/api/ai/headlines/route.ts index 8a9eb97..e01b026 100644 --- a/app/api/ai/headlines/route.ts +++ b/app/api/ai/headlines/route.ts @@ -1,6 +1,6 @@ import { createClient } from '@/lib/supabase/server' import { getSupabaseAdmin } from '@/lib/supabase/admin' -import { generateHeadlines } from '@/lib/ai/claude' +import { brandProfileToMetadataConfig, generateHeadlines } from '@/lib/ai/claude' import { checkUsage, incrementUsage } from '@/lib/utils/rate-limit' import { handleApiError, @@ -32,12 +32,23 @@ export async function POST(request: Request) { throw new UsageLimitError('AI 헤드라인', usage.limit) } + const promptConfig = body.promptConfig ?? ( + body.brandStyleDirection || body.brandKeywords?.length + ? brandProfileToMetadataConfig({ + platform: body.platform, + styleDirection: body.brandStyleDirection, + keywords: body.brandKeywords, + }) + : undefined + ) + const result = await generateHeadlines({ projectName: body.projectName, description: body.description, platform: body.platform, brandKeywords: body.brandKeywords, brandStyleDirection: body.brandStyleDirection, + promptConfig, }) await incrementUsage(getSupabaseAdmin(), user.id, 'ai_headlines_used_this_month') diff --git a/app/api/assets/generate/route.ts b/app/api/assets/generate/route.ts index 04d9113..0601352 100644 --- a/app/api/assets/generate/route.ts +++ b/app/api/assets/generate/route.ts @@ -46,6 +46,37 @@ export async function POST(request: Request) { const project = projectData as Project + const { data: startedProject, error: startError } = await supabase + .from('projects') + .update({ status: 'generating', pipeline_stage: 'icon_resolve' }) + .eq('id', projectId) + .eq('user_id', user.id) + .neq('status', 'generating') + .select('id') + .maybeSingle() + + if (startError) { + throw new AppError( + startError.message, + 'ASSET_GENERATION_START_FAILED', + 500, + '에셋 생성을 시작하지 못했습니다. 잠시 후 다시 시도해주세요.' + ) + } + + if (!startedProject) { + return Response.json( + { + success: false, + error: { + code: 'ASSET_GENERATION_IN_PROGRESS', + message: '이미 에셋 생성이 진행 중입니다.', + }, + }, + { status: 409 } + ) + } + let brandProfile: BrandProfile | null = null if (project.brand_profile_id) { const { data: brandData } = await supabase @@ -68,11 +99,6 @@ export async function POST(request: Request) { const stylePreset = presetData as StylePreset - await supabase - .from('projects') - .update({ status: 'generating', pipeline_stage: 'icon_resolve' }) - .eq('id', projectId) - try { const startedAt = Date.now() const { storageUrl, warnings } = await runAssetPipeline({ diff --git a/components/wizard/step-5-preview.tsx b/components/wizard/step-5-preview.tsx index c0c3664..052e5eb 100644 --- a/components/wizard/step-5-preview.tsx +++ b/components/wizard/step-5-preview.tsx @@ -168,7 +168,7 @@ export function Step5Preview({ document.body.removeChild(link) } - if (status === 'generating' || status === 'idle') { + if (status === 'generating') { return } diff --git a/components/wizard/wizard-shell.tsx b/components/wizard/wizard-shell.tsx index 042b201..677cb66 100644 --- a/components/wizard/wizard-shell.tsx +++ b/components/wizard/wizard-shell.tsx @@ -106,7 +106,6 @@ export function WizardShell({ brandProfiles, stylePresets, user }: WizardShellPr }) setProjectId(project.id) - store.reset() nextStep() } catch { setSaveError(tErrors('projectSaveUnknownError')) diff --git a/hooks/use-asset-generation.ts b/hooks/use-asset-generation.ts index c230218..99ca904 100644 --- a/hooks/use-asset-generation.ts +++ b/hooks/use-asset-generation.ts @@ -18,6 +18,35 @@ interface AssetGenerationState { stage: PipelineStage | null } +interface AssetStatusResponse { + status?: string + url?: string | null + warnings?: string[] + pipelineStage?: PipelineStage | null +} + +function createIdleState(): AssetGenerationState { + return { + status: 'idle', + url: null, + error: null, + warnings: [], + progress: 0, + stage: null, + } +} + +function createGeneratingState(): AssetGenerationState { + return { + status: 'generating', + url: null, + error: null, + warnings: [], + progress: STAGE_PROGRESS.icon_resolve, + stage: 'icon_resolve', + } +} + const STAGE_PROGRESS: Record = { icon_resolve: 5, favicons: 20, @@ -49,18 +78,15 @@ function isPipelineStage(value: unknown): value is PipelineStage { export function useAssetGeneration({ projectId, enabled }: UseAssetGenerationOptions) { const t = useTranslations('wizard.errors') - const [state, setState] = useState({ - status: 'idle', - url: null, - error: null, - warnings: [], - progress: 0, - stage: null, - }) + const [state, setState] = useState(() => + enabled && projectId ? createGeneratingState() : createIdleState(), + ) const startTimeRef = useRef(0) const intervalRef = useRef | null>(null) const statusErrorCountRef = useRef(0) + const generationActiveRef = useRef(false) + const autoStartedProjectIdRef = useRef(null) const cleanup = useCallback(() => { if (intervalRef.current) { @@ -69,102 +95,100 @@ export function useAssetGeneration({ projectId, enabled }: UseAssetGenerationOpt } }, []) - const startGeneration = useCallback(async () => { - if (!projectId) return - + const failGeneration = useCallback((error: string) => { cleanup() - startTimeRef.current = Date.now() - statusErrorCountRef.current = 0 + generationActiveRef.current = false + setState((prev) => + prev.status === 'generating' + ? { ...prev, status: 'failed', error } + : { ...createIdleState(), status: 'failed', error }, + ) + }, [cleanup]) - setState({ - status: 'generating', - url: null, + const completeGeneration = useCallback((data: AssetStatusResponse) => { + cleanup() + generationActiveRef.current = false + setState((prev) => ({ + status: 'completed', + url: data.url ?? prev.url ?? null, error: null, - warnings: [], - progress: STAGE_PROGRESS.icon_resolve, - stage: 'icon_resolve', - }) - - const pollStatus = async () => { - const elapsed = Date.now() - startTimeRef.current - - if (elapsed > MAX_POLL_DURATION) { - cleanup() - setState((prev) => - prev.status === 'generating' - ? { ...prev, status: 'failed', error: t('generationTimeout') } - : prev, - ) - return - } + warnings: Array.isArray(data.warnings) ? data.warnings : prev.warnings, + progress: 100, + stage: null, + })) + }, [cleanup]) - try { - const res = await fetch(`/api/assets/status/${projectId}`) - if (!res.ok) throw new Error('Status check failed') + const pollStatus = useCallback(async (): Promise => { + const elapsed = Date.now() - startTimeRef.current - statusErrorCountRef.current = 0 - const data = (await res.json()) as { - status?: string - url?: string | null - warnings?: string[] - pipelineStage?: PipelineStage | null - } + if (elapsed > MAX_POLL_DURATION) { + failGeneration(t('generationTimeout')) + return 'failed' + } - if (data.status === 'completed') { - cleanup() - setState((prev) => ({ - status: 'completed', - url: data.url ?? prev.url, - error: null, - warnings: Array.isArray(data.warnings) && data.warnings.length > 0 ? data.warnings : prev.warnings, - progress: 100, - stage: null, - })) - return - } + try { + const res = await fetch(`/api/assets/status/${projectId}`) + if (!res.ok) throw new Error('Status check failed') - if (data.status === 'failed') { - cleanup() - setState((prev) => - prev.status === 'generating' - ? { ...prev, status: 'failed', error: t('generationFailed') } - : prev, - ) - return - } + statusErrorCountRef.current = 0 + const data = (await res.json()) as AssetStatusResponse - const serverStage = isPipelineStage(data.pipelineStage) ? data.pipelineStage : null - const stageBase = serverStage ? STAGE_PROGRESS[serverStage] : STAGE_PROGRESS.icon_resolve - const timeFill = Math.min(6, (elapsed / 90_000) * 6) - const stageProgress = Math.min(98, stageBase + timeFill) - - setState((prev) => { - if (prev.status !== 'generating') return prev - return { - ...prev, - stage: serverStage ?? prev.stage, - progress: Math.max(prev.progress, stageProgress), - } - }) - } catch { - statusErrorCountRef.current += 1 - - if (statusErrorCountRef.current >= MAX_STATUS_ERRORS) { - cleanup() - setState((prev) => - prev.status === 'generating' - ? { ...prev, status: 'failed', error: t('statusCheckFailed') } - : prev, - ) + if (data.status === 'completed') { + completeGeneration(data) + return data.status + } + + if (data.status === 'failed') { + failGeneration(t('generationFailed')) + return data.status + } + + const serverStage = isPipelineStage(data.pipelineStage) ? data.pipelineStage : null + const stageBase = serverStage ? STAGE_PROGRESS[serverStage] : STAGE_PROGRESS.icon_resolve + const timeFill = Math.min(6, (elapsed / 90_000) * 6) + const stageProgress = Math.min(98, stageBase + timeFill) + + setState((prev) => { + if (prev.status !== 'generating') return prev + return { + ...prev, + stage: serverStage ?? prev.stage, + progress: Math.max(prev.progress, stageProgress), } + }) + + return data.status ?? 'idle' + } catch { + statusErrorCountRef.current += 1 + + if (statusErrorCountRef.current >= MAX_STATUS_ERRORS) { + failGeneration(t('statusCheckFailed')) + return 'failed' } + + return null } + }, [completeGeneration, failGeneration, projectId, t]) + + const startGeneration = useCallback(async () => { + if (!projectId || generationActiveRef.current) return + + cleanup() + generationActiveRef.current = true + startTimeRef.current = Date.now() + statusErrorCountRef.current = 0 + + setState(createGeneratingState()) + + const initialStatus = await pollStatus() + if (initialStatus === 'completed' || initialStatus === 'failed') return - await pollStatus() intervalRef.current = setInterval(() => { void pollStatus() }, POLL_INTERVAL_MS) + if (initialStatus === 'generating') return + void (async () => { try { const response = await fetch('/api/assets/generate', { @@ -177,61 +201,43 @@ export function useAssetGeneration({ projectId, enabled }: UseAssetGenerationOpt success?: boolean url?: string | null warnings?: string[] - error?: string + error?: string | { code?: string; message?: string } } if (!response.ok) { - cleanup() - setState((prev) => - prev.status === 'generating' - ? { - ...prev, - status: 'failed', - error: typeof data.error === 'string' ? data.error : t('generationRequestFailed'), - } - : prev, - ) + const errorCode = typeof data.error === 'object' ? data.error?.code : null + const errorMessage = typeof data.error === 'string' + ? data.error + : data.error?.message + + if (response.status === 409 && errorCode === 'ASSET_GENERATION_IN_PROGRESS') { + return + } + + failGeneration(errorMessage || t('generationRequestFailed')) return } if (data.success && data.url) { - cleanup() - setState((prev) => ({ - status: 'completed', - url: data.url ?? prev.url ?? null, - error: null, - warnings: Array.isArray(data.warnings) ? data.warnings : prev.warnings, - progress: 100, - stage: null, - })) + completeGeneration(data) } } catch { - cleanup() - setState((prev) => - prev.status === 'generating' - ? { ...prev, status: 'failed', error: t('generationRequestFailed') } - : prev, - ) + failGeneration(t('generationRequestFailed')) } })() - }, [cleanup, projectId, t]) + }, [cleanup, completeGeneration, failGeneration, pollStatus, projectId, t]) const reset = useCallback(() => { cleanup() - setState({ - status: 'idle', - url: null, - error: null, - warnings: [], - progress: 0, - stage: null, - }) + generationActiveRef.current = false + setState(createIdleState()) }, [cleanup]) useEffect(() => { - if (enabled && projectId) { - void startGeneration() - } + if (!enabled || !projectId || autoStartedProjectIdRef.current === projectId) return + + autoStartedProjectIdRef.current = projectId + void startGeneration() return cleanup }, [cleanup, enabled, projectId, startGeneration]) diff --git a/lib/ai/claude.ts b/lib/ai/claude.ts index 0f4a1e4..d1ec495 100644 --- a/lib/ai/claude.ts +++ b/lib/ai/claude.ts @@ -1,6 +1,6 @@ import Anthropic from '@anthropic-ai/sdk' import type { HeadlineResponse } from '@/types/wizard' -import { composeMetadataPrompt } from '@/lib/prompts' +import { composeMetadataPrompt, getDefaultPromptConfig } from '@/lib/prompts' import type { MetadataPromptConfig } from '@/lib/prompts' import { AI_CONFIG } from '@/lib/config/ai' @@ -45,6 +45,98 @@ interface GenerateHeadlinesParams { promptConfig?: MetadataPromptConfig } +interface MetadataBrandProfileInput { + platform: string + styleDirection?: string + keywords?: string[] + language?: MetadataPromptConfig['language'] +} + +const DEFAULT_METADATA_CONFIG = getDefaultPromptConfig().metadata as MetadataPromptConfig + +function normalizeKeywords(keywords?: string[]) { + return keywords + ?.map((keyword) => keyword.trim()) + .filter(Boolean) ?? [] +} + +function inferMetadataAudience(keywords: string[]): MetadataPromptConfig['audience'] { + const lowerKeywords = keywords.map((keyword) => keyword.toLowerCase()) + + if (lowerKeywords.some((keyword) => + ['developer', 'dev', 'api', 'sdk', 'engineering', 'code'].some((term) => keyword.includes(term)) + )) { + return 'developer' + } + + if (lowerKeywords.some((keyword) => + ['design', 'designer', 'creative', 'branding', 'ui', 'ux'].some((term) => keyword.includes(term)) + )) { + return 'designer' + } + + if (lowerKeywords.some((keyword) => + ['student', 'education', 'learning', 'course'].some((term) => keyword.includes(term)) + )) { + return 'student' + } + + if (lowerKeywords.some((keyword) => + ['startup', 'founder', 'launch', 'growth'].some((term) => keyword.includes(term)) + )) { + return 'startup' + } + + if (lowerKeywords.some((keyword) => + ['luxury', 'premium', 'exclusive', 'high-end'].some((term) => keyword.includes(term)) + )) { + return 'b2c-premium' + } + + if (lowerKeywords.some((keyword) => + ['enterprise', 'compliance', 'governance', 'security', 'integration'].some((term) => keyword.includes(term)) + )) { + return 'b2b-enterprise' + } + + if (lowerKeywords.some((keyword) => + ['b2b', 'business', 'saas', 'smb', 'team', 'workspace', 'company'].some((term) => keyword.includes(term)) + )) { + return 'b2b-smb' + } + + return DEFAULT_METADATA_CONFIG.audience +} + +export function brandProfileToMetadataConfig( + input: MetadataBrandProfileInput +): MetadataPromptConfig { + const keywords = normalizeKeywords(input.keywords) + + const toneMap: Record = { + minimal: 'professional', + playful: 'friendly', + corporate: 'formal', + tech: 'technical', + custom: DEFAULT_METADATA_CONFIG.tone, + } + + const contentTypeMap: Record = { + web: 'product-landing', + mobile: 'app-store', + all: 'saas-homepage', + } + + return { + ...DEFAULT_METADATA_CONFIG, + tone: toneMap[input.styleDirection || 'custom'] || DEFAULT_METADATA_CONFIG.tone, + audience: inferMetadataAudience(keywords), + contentType: contentTypeMap[input.platform] || DEFAULT_METADATA_CONFIG.contentType, + focusKeywords: keywords, + language: input.language || DEFAULT_METADATA_CONFIG.language, + } +} + /** * AI 브랜드 카피 생성 * Claude를 사용하여 프로젝트에 맞는 헤드라인, 태그라인, OG 설명을 생성합니다. diff --git a/lib/ai/fal.ts b/lib/ai/fal.ts index 0733fd5..cee79e1 100644 --- a/lib/ai/fal.ts +++ b/lib/ai/fal.ts @@ -2,8 +2,18 @@ import { fal, type RunOptions } from '@fal-ai/client' import sharp from 'sharp' import type { StyleDirection, ColorMode, IconStyle, CornerStyle } from '@/types/database' import type { Project, BrandProfile, StylePreset } from '@/types/database' -import { composeIconPrompt } from '@/lib/prompts' +import { + composeIconPrompt, + composeOgBackgroundPrompt, + getDefaultPromptConfig, + mergePromptConfig, +} from '@/lib/prompts' import type { + OgPromptConfig, + OgLayoutStyle, + OgVisualElement, + OgTypographyStyle, + OgMoodTone, IconPromptConfig, IconVisualStyle, IconShape, @@ -49,6 +59,7 @@ interface FalFluxInput { const ICON_NEGATIVE_PROMPT = 'text, letters, words, typography, watermark, signature, blurry, low quality, ' + 'multiple icons, busy background, photograph, realistic photo' +const DEFAULT_OG_CONFIG = getDefaultPromptConfig().og as OgPromptConfig /** * AI 아이콘 생성 @@ -134,23 +145,18 @@ export async function generateOgBackground(params: GenerateOgBackgroundParams): const { project, brandProfile, stylePreset, width, height } = params const primaryColor = project.primary_color_override || brandProfile?.primary_color || '#6366F1' - const secondaryColors = brandProfile?.secondary_colors?.length - ? brandProfile.secondary_colors.join(', ') - : null - - const ogModifier = stylePreset.og_ai_style_modifier || stylePreset.ai_style_modifier || '' + const secondaryColors = brandProfile?.secondary_colors + const promptConfig = mergePromptConfig(getDefaultPromptConfig(), { + og: stylePresetToOgConfig(stylePreset), + }).og as OgPromptConfig + const composedPrompt = composeOgBackgroundPrompt(promptConfig, { + brandName: project.name, + primaryColor, + secondaryColors, + }) const negativeTerms = stylePreset.icon_ai_negative_prompt || '' - // 구조화된 OG 배경 프롬프트 - const promptParts = [ - `A professional abstract background image for a brand called "${project.name}"`, - ogModifier, - `Primary color: ${primaryColor}`, - secondaryColors ? `Secondary colors: ${secondaryColors}` : null, - 'Abstract decorative background only, no text, no logos, no human faces, no readable words, no letters', - ].filter(Boolean) - - let prompt = promptParts.join('. ') + let prompt = [composedPrompt.systemPrompt, composedPrompt.userPrompt].join(' ') // 네거티브 지시사항 추가 const avoidTerms = [ @@ -220,6 +226,87 @@ function getNumericSeed(value: unknown): number | undefined { return undefined } +export function stylePresetToOgConfig(preset: StylePreset): Partial { + const knownPresets: Record> = { + 'notion-minimal': { + layout: 'minimal-corner', + visual: 'none', + typography: 'minimal-clean', + mood: 'minimal', + }, + 'airbnb-3d': { + layout: 'centered', + visual: 'gradient-blob', + typography: 'playful-rounded', + mood: 'friendly', + }, + 'stripe-gradient': { + layout: 'centered', + visual: 'gradient-blob', + typography: 'bold-modern', + mood: 'technical', + }, + 'linear-dark': { + layout: 'left-aligned', + visual: 'grid-pattern', + typography: 'technical-mono', + mood: 'technical', + }, + 'vercel-sharp': { + layout: 'centered', + visual: 'geometric-shapes', + typography: 'bold-modern', + mood: 'bold', + }, + 'glassmorphism': { + layout: 'centered', + visual: 'gradient-blob', + typography: 'minimal-clean', + mood: 'creative', + }, + 'duolingo-playful': { + layout: 'card-stack', + visual: 'illustration', + typography: 'playful-rounded', + mood: 'energetic', + }, + 'figma-clean': { + layout: 'split-vertical', + visual: 'grid-pattern', + typography: 'minimal-clean', + mood: 'professional', + }, + } + + const layoutSource = preset.og_layout?.toLowerCase() || '' + const typographySource = preset.og_typography?.toLowerCase() || '' + const visualSource = [ + preset.og_background, + preset.og_ai_style_modifier, + preset.ai_style_modifier, + ].filter(Boolean).join(' ').toLowerCase() + const moodSource = [ + preset.slug, + preset.og_background, + preset.og_ai_style_modifier, + ...preset.best_for_styles, + ].join(' ').toLowerCase() + + const inferred: Partial = { + layout: inferOgLayout(layoutSource), + visual: inferOgVisual(visualSource), + typography: inferOgTypography(typographySource), + mood: inferOgMood(moodSource), + customAccent: preset.og_ai_style_modifier || preset.ai_style_modifier || undefined, + } + + return { + ...inferred, + ...knownPresets[preset.slug], + customAccent: inferred.customAccent, + } +} + function brandProfileToPromptConfig(profile: BrandProfileInfo): IconPromptConfig { const visualStyleMap: Record = { outline: 'outline-medium', @@ -257,3 +344,71 @@ function brandProfileToPromptConfig(profile: BrandProfileInfo): IconPromptConfig complexity: 'moderate', } } + +function inferOgLayout(layoutSource: string): OgLayoutStyle { + if (layoutSource.includes('left')) return 'left-aligned' + if (layoutSource.includes('grid')) return 'split-vertical' + if (layoutSource.includes('playful')) return 'card-stack' + if (layoutSource.includes('diagonal')) return 'diagonal-split' + if (layoutSource.includes('corner')) return 'minimal-corner' + if (layoutSource.includes('split') && layoutSource.includes('horizontal')) return 'split-horizontal' + if (layoutSource.includes('split')) return 'split-vertical' + return DEFAULT_OG_CONFIG.layout +} + +function inferOgVisual(visualSource: string): OgVisualElement { + if (visualSource.includes('photo')) return 'photo-background' + if (visualSource.includes('grid')) return 'grid-pattern' + if (visualSource.includes('noise') || visualSource.includes('grain')) return 'noise-texture' + if (visualSource.includes('illustration') || visualSource.includes('mascot')) return 'illustration' + if (visualSource.includes('icon') || visualSource.includes('logo accent')) return 'icon-accent' + if (visualSource.includes('blob') || visualSource.includes('gradient') || visualSource.includes('aurora') || visualSource.includes('glass')) { + return 'gradient-blob' + } + if (visualSource.includes('geometric') || visualSource.includes('line') || visualSource.includes('shape') || visualSource.includes('monochrome')) { + return 'geometric-shapes' + } + if (visualSource.includes('pattern')) return 'abstract-pattern' + return DEFAULT_OG_CONFIG.visual +} + +function inferOgTypography(typographySource: string): OgTypographyStyle { + if (typographySource.includes('mono') || typographySource.includes('code')) return 'technical-mono' + if (typographySource.includes('serif')) return 'elegant-serif' + if (typographySource.includes('editorial')) return 'editorial' + if (typographySource.includes('jakarta') || typographySource.includes('nunito') || typographySource.includes('rounded')) { + return 'playful-rounded' + } + if (typographySource.includes('regular') || typographySource.includes('light') || typographySource.includes('clean')) { + return 'minimal-clean' + } + if (typographySource.includes('handwritten') || typographySource.includes('script')) { + return 'handwritten-accent' + } + return DEFAULT_OG_CONFIG.typography +} + +function inferOgMood(moodSource: string): OgMoodTone { + if (moodSource.includes('playful') || moodSource.includes('friendly') || moodSource.includes('warm') || moodSource.includes('cozy')) { + return 'friendly' + } + if (moodSource.includes('energetic') || moodSource.includes('cheerful') || moodSource.includes('vivid')) { + return 'energetic' + } + if (moodSource.includes('technical') || moodSource.includes('neon') || moodSource.includes('futuristic') || moodSource.includes('grid')) { + return 'technical' + } + if (moodSource.includes('luxury') || moodSource.includes('luxurious') || moodSource.includes('premium')) { + return 'luxurious' + } + if (moodSource.includes('creative') || moodSource.includes('glass') || moodSource.includes('artistic')) { + return 'creative' + } + if (moodSource.includes('minimal') || moodSource.includes('clean') || moodSource.includes('monochrome')) { + return 'minimal' + } + if (moodSource.includes('bold') || moodSource.includes('contrast') || moodSource.includes('brutalist')) { + return 'bold' + } + return DEFAULT_OG_CONFIG.mood +} diff --git a/lib/prompts/composer.ts b/lib/prompts/composer.ts index f686d58..3b79314 100644 --- a/lib/prompts/composer.ts +++ b/lib/prompts/composer.ts @@ -1,11 +1,18 @@ import type { ComposedPrompt, + OgPromptConfig, IconPromptConfig, MetadataPromptConfig, FullPromptConfig, PromptCategory, } from './types' import { resolveConflicts } from './conflict-resolver' +import { + ogLayoutCategories, + ogVisualCategories, + ogTypographyCategories, + ogMoodCategories, +} from './categories/og-image' import { iconVisualStyleCategories, iconShapeCategories, @@ -28,6 +35,52 @@ function findCategory( return categories.find((c) => c.id === id) } +// ======================================== +// OG Background Prompt Composer +// ======================================== + +export function composeOgBackgroundPrompt( + config: OgPromptConfig, + context: { + brandName: string + primaryColor: string + secondaryColors?: string[] + } +): ComposedPrompt { + const selectedCategories = [ + findCategory(ogLayoutCategories, config.layout), + findCategory(ogVisualCategories, config.visual), + findCategory(ogTypographyCategories, config.typography), + findCategory(ogMoodCategories, config.mood), + ].filter(Boolean) as PromptCategory[] + + const { resolved, warnings } = resolveConflicts(selectedCategories) + const fragments = resolved.map((c) => c.promptFragment) + + const colorFragments = [ + `primary brand color: ${context.primaryColor}`, + context.secondaryColors?.length + ? `secondary brand colors: ${context.secondaryColors.join(', ')}` + : null, + config.customAccent?.trim() || null, + ].filter(Boolean) as string[] + + const coreRequirements = [ + `for the brand atmosphere of "${context.brandName}" without rendering the brand name`, + 'abstract decorative background only', + 'no text, no readable words, no letters, no logos', + 'no people, no faces, no products, no UI mockups', + 'optimized for OG and social sharing with clean safe areas for overlay text', + ] + + return { + systemPrompt: 'Generate an abstract brand background image with the following direction:', + userPrompt: [...fragments, ...colorFragments, ...coreRequirements].join(', '), + fragments: [...fragments, ...colorFragments, ...coreRequirements], + warnings, + } +} + // ======================================== // Icon Prompt Composer // ======================================== diff --git a/lib/prompts/index.ts b/lib/prompts/index.ts index 38c9399..c2c4219 100644 --- a/lib/prompts/index.ts +++ b/lib/prompts/index.ts @@ -53,6 +53,7 @@ export { // Composer export { + composeOgBackgroundPrompt, composeIconPrompt, composeMetadataPrompt, getDefaultPromptConfig, diff --git a/output/playwright/smoke-flow-1773131968671.png b/output/playwright/smoke-flow-1773131968671.png new file mode 100644 index 0000000..2a7bb58 Binary files /dev/null and b/output/playwright/smoke-flow-1773131968671.png differ diff --git a/output/playwright/step4-debug.png b/output/playwright/step4-debug.png new file mode 100644 index 0000000..5ce0ddf Binary files /dev/null and b/output/playwright/step4-debug.png differ diff --git a/supabase/migrations/013_fix_handle_new_user_email.sql b/supabase/migrations/013_fix_handle_new_user_email.sql new file mode 100644 index 0000000..f4031eb --- /dev/null +++ b/supabase/migrations/013_fix_handle_new_user_email.sql @@ -0,0 +1,25 @@ +-- Fix auth signup trigger to use auth.users.email instead of metadata. +-- Some signup flows do not populate raw_user_meta_data.email, which caused +-- public.users.email NOT NULL violations and broke signup/admin user creation. + +CREATE OR REPLACE FUNCTION public.handle_new_user() +RETURNS TRIGGER +LANGUAGE plpgsql +SECURITY DEFINER +SET search_path = '' +AS $$ +BEGIN + INSERT INTO public.users (id, email) + VALUES ( + NEW.id, + COALESCE( + NULLIF(NEW.email, ''), + NULLIF(NEW.raw_user_meta_data ->> 'email', '') + ) + ) + ON CONFLICT (id) DO UPDATE + SET email = EXCLUDED.email; + + RETURN NEW; +END; +$$; diff --git a/tests/lib/ai/prompt-config.test.ts b/tests/lib/ai/prompt-config.test.ts new file mode 100644 index 0000000..09af02a --- /dev/null +++ b/tests/lib/ai/prompt-config.test.ts @@ -0,0 +1,95 @@ +import { beforeAll, describe, expect, it } from 'vitest' +import { composeOgBackgroundPrompt, mergePromptConfig, getDefaultPromptConfig } from '@/lib/prompts' +import type { MetadataPromptConfig, OgPromptConfig } from '@/lib/prompts' +import type { StylePreset } from '@/types/database' + +let brandProfileToMetadataConfig: (input: { + platform: string + styleDirection?: string + keywords?: string[] + language?: MetadataPromptConfig['language'] +}) => MetadataPromptConfig + +let stylePresetToOgConfig: (preset: StylePreset) => Partial + +beforeAll(async () => { + process.env.ANTHROPIC_API_KEY = process.env.ANTHROPIC_API_KEY || 'test-key' + process.env.FAL_KEY = process.env.FAL_KEY || 'test-key' + + ;({ brandProfileToMetadataConfig } = await import('@/lib/ai/claude')) + ;({ stylePresetToOgConfig } = await import('@/lib/ai/fal')) +}) + +describe('prompt config mapping', () => { + it('maps brand profile hints to metadata prompt config', () => { + const config = brandProfileToMetadataConfig({ + platform: 'all', + styleDirection: 'tech', + keywords: ['B2B SaaS', 'enterprise security', 'automation'], + }) + + expect(config).toMatchObject({ + tone: 'technical', + audience: 'b2b-enterprise', + contentType: 'saas-homepage', + urgency: 'evergreen', + language: 'ko', + focusKeywords: ['B2B SaaS', 'enterprise security', 'automation'], + }) + }) + + it('maps style preset OG fields into structured OG config', () => { + const preset: StylePreset = { + id: 'preset-1', + name: 'Linear Dark', + slug: 'linear-dark', + is_free: false, + best_for_styles: ['tech', 'minimal'], + icon_style: 'Outline with neon accent', + corner_radius: 12, + shadow_style: 'Subtle neon glow', + color_mode: 'Dark with accent', + og_layout: 'Left-aligned, dark background', + og_typography: 'Inter, Medium', + og_background: 'Dark (#0A0A0A) with subtle gradient', + ai_style_modifier: 'dark background, neon accent lines, futuristic, Linear-style', + og_ai_style_modifier: 'deep dark matte background with subtle neon accent lines', + icon_ai_negative_prompt: 'bright colors, busy, cartoon', + icon_ai_prompt_template: null, + preview_image_url: null, + sort_order: 4, + created_at: '2026-03-10T00:00:00.000Z', + } + + expect(stylePresetToOgConfig(preset)).toMatchObject({ + layout: 'left-aligned', + visual: 'grid-pattern', + typography: 'technical-mono', + mood: 'technical', + customAccent: 'deep dark matte background with subtle neon accent lines', + }) + }) + + it('composes OG prompts with preset overrides and brand colors', () => { + const promptConfig = mergePromptConfig(getDefaultPromptConfig(), { + og: { + layout: 'minimal-corner', + visual: 'grid-pattern', + typography: 'technical-mono', + mood: 'technical', + customAccent: 'thin neon line accents', + }, + }).og as OgPromptConfig + + const composed = composeOgBackgroundPrompt(promptConfig, { + brandName: 'Conductor', + primaryColor: '#0A84FF', + secondaryColors: ['#7C3AED'], + }) + + expect(composed.userPrompt).toContain('technical developer aesthetic') + expect(composed.userPrompt).toContain('thin neon line accents') + expect(composed.userPrompt).toContain('primary brand color: #0A84FF') + expect(composed.userPrompt).toContain('without rendering the brand name') + }) +}) diff --git a/types/database.ts b/types/database.ts index 631a82c..47c3a82 100644 --- a/types/database.ts +++ b/types/database.ts @@ -1,229 +1,99 @@ -export type Plan = 'free' | 'pro' -export type StyleDirection = 'minimal' | 'playful' | 'corporate' | 'tech' | 'custom' -export type ColorMode = 'mono' | 'duotone' | 'gradient' | 'vibrant' -export type IconStyle = 'outline' | 'filled' | '3d_soft' | 'flat' -export type CornerStyle = 'sharp' | 'rounded' | 'pill' -export type Platform = 'web' | 'mobile' | 'all' -export type MobileTarget = 'android' | 'ios' | 'both' -export type IconType = 'text' | 'symbol' | 'ai_generated' -export type ProjectStatus = 'draft' | 'generating' | 'completed' | 'failed' -export type PipelineStage = 'icon_resolve' | 'favicons' | 'og' | 'app_icons' | 'splash' | 'zip' | 'upload' +import type { + Database as SupabaseDatabase, + Tables, + TablesInsert, + TablesUpdate, + Enums, + Json, +} from './supabase-generated' -export interface User { - id: string - email: string - plan: Plan - lemonsqueezy_customer_id: string | null - lemonsqueezy_subscription_id: string | null - projects_used_this_month: number - ai_headlines_used_this_month: number - ai_icons_used_this_month: number - usage_reset_at: string - created_at: string - updated_at: string -} +export type Database = SupabaseDatabase +export type GeneratedDatabase = SupabaseDatabase +export type { Json } -export interface BrandProfile { - id: string - user_id: string - name: string - style_direction: StyleDirection - primary_color: string - secondary_colors: string[] - color_mode: ColorMode - icon_style: IconStyle - corner_style: CornerStyle - typography_mood: string | null - keywords: string[] - is_default: boolean - created_at: string - updated_at: string -} +export type Plan = Enums<'plan_type'> +export type StyleDirection = Enums<'style_direction'> +export type ColorMode = Enums<'color_mode'> +export type IconStyle = Enums<'icon_style'> +export type CornerStyle = Enums<'corner_style'> +export type Platform = Enums<'platform_type'> +export type MobileTarget = Enums<'mobile_target'> +export type IconType = Enums<'icon_type'> +export type ProjectStatus = Enums<'project_status'> -export interface StylePreset { - id: string - name: string - slug: string - is_free: boolean - best_for_styles: string[] - icon_style: string | null - corner_radius: number - shadow_style: string | null - color_mode: string | null - og_layout: string | null - og_typography: string | null - og_background: string | null - ai_style_modifier: string | null - og_ai_style_modifier: string | null - icon_ai_negative_prompt: string | null - icon_ai_prompt_template: string | null - preview_image_url: string | null - sort_order: number - created_at: string -} +// pipeline_stage is stored as TEXT in Postgres, but the app narrows it to known values. +export type PipelineStage = + | 'icon_resolve' + | 'favicons' + | 'og' + | 'app_icons' + | 'splash' + | 'zip' + | 'upload' -export interface Project { - id: string - user_id: string - brand_profile_id: string | null - style_preset_id: string - name: string - description: string | null - platform: Platform - mobile_target: MobileTarget | null - primary_color_override: string | null +export type NotificationType = Enums<'notification_type'> +export type FeedbackSentiment = Enums<'feedback_sentiment'> + +export type User = Tables<'users'> +export type BrandProfile = Tables<'brand_profiles'> +export type StylePreset = Tables<'style_presets'> +export type Notification = Tables<'notifications'> +export type Feedback = Tables<'feedback'> +export type NpsResponse = Tables<'nps_responses'> + +type ProjectOverrides = { icon_type: IconType | null - icon_value: string | null - ai_headline: string | null - ai_tagline: string | null - ai_og_description: string | null - ai_short_slogan: string | null - assets_zip_url: string | null + mobile_target: MobileTarget | null pipeline_stage: PipelineStage | null + platform: Platform status: ProjectStatus - created_at: string - updated_at: string -} - -export interface UserInsert { - id: string - email: string - plan?: Plan -} - -export interface UserUpdate { - email?: string - plan?: Plan - lemonsqueezy_customer_id?: string | null - lemonsqueezy_subscription_id?: string | null - projects_used_this_month?: number - ai_headlines_used_this_month?: number - ai_icons_used_this_month?: number - usage_reset_at?: string } -export interface BrandProfileInsert { - user_id: string - name: string - style_direction?: StyleDirection - primary_color?: string - secondary_colors?: string[] - color_mode?: ColorMode - icon_style?: IconStyle - corner_style?: CornerStyle - typography_mood?: string | null - keywords?: string[] - is_default?: boolean -} - -export interface BrandProfileUpdate { - name?: string - style_direction?: StyleDirection - primary_color?: string - secondary_colors?: string[] - color_mode?: ColorMode - icon_style?: IconStyle - corner_style?: CornerStyle - typography_mood?: string | null - keywords?: string[] - is_default?: boolean -} - -export interface ProjectInsert { - user_id: string - style_preset_id: string - name: string - platform: Platform - brand_profile_id?: string | null - description?: string | null - mobile_target?: MobileTarget | null - primary_color_override?: string | null +type ProjectInsertOverrides = { icon_type?: IconType | null - icon_value?: string | null - ai_headline?: string | null - ai_tagline?: string | null - ai_og_description?: string | null - ai_short_slogan?: string | null - assets_zip_url?: string | null + mobile_target?: MobileTarget | null pipeline_stage?: PipelineStage | null + platform?: Platform status?: ProjectStatus } -export interface ProjectUpdate { - brand_profile_id?: string | null - style_preset_id?: string - name?: string - description?: string | null - platform?: Platform - mobile_target?: MobileTarget | null - primary_color_override?: string | null +type ProjectUpdateOverrides = { icon_type?: IconType | null - icon_value?: string | null - ai_headline?: string | null - ai_tagline?: string | null - ai_og_description?: string | null - ai_short_slogan?: string | null - assets_zip_url?: string | null + mobile_target?: MobileTarget | null pipeline_stage?: PipelineStage | null + platform?: Platform status?: ProjectStatus } -export interface Database { - public: { - Tables: { - users: { - Row: User - Insert: UserInsert - Update: UserUpdate - } - brand_profiles: { - Row: BrandProfile - Insert: BrandProfileInsert - Update: BrandProfileUpdate - } - style_presets: { - Row: StylePreset - Insert: never - Update: never - } - projects: { - Row: Project - Insert: ProjectInsert - Update: ProjectUpdate - } - } - Views: { - [_ in never]: never - } - Functions: { - reset_monthly_usage: { - Args: Record - Returns: void - } - increment_usage: { - Args: { p_user_id: string; p_field_name: string } - Returns: void - } - } - Enums: { - [_ in never]: never - } - } -} +export type Project = Omit, keyof ProjectOverrides> & ProjectOverrides +export type UserInsert = TablesInsert<'users'> +export type UserUpdate = TablesUpdate<'users'> +export type BrandProfileInsert = TablesInsert<'brand_profiles'> +export type BrandProfileUpdate = TablesUpdate<'brand_profiles'> +export type StylePresetInsert = TablesInsert<'style_presets'> +export type StylePresetUpdate = TablesUpdate<'style_presets'> +export type NotificationInsert = TablesInsert<'notifications'> +export type NotificationUpdate = TablesUpdate<'notifications'> +export type FeedbackInsert = TablesInsert<'feedback'> +export type FeedbackUpdate = TablesUpdate<'feedback'> +export type NpsResponseInsert = TablesInsert<'nps_responses'> +export type NpsResponseUpdate = TablesUpdate<'nps_responses'> +export type ProjectInsert = Omit, keyof ProjectInsertOverrides> & ProjectInsertOverrides +export type ProjectUpdate = Omit, keyof ProjectUpdateOverrides> & ProjectUpdateOverrides export const PLAN_LIMITS = { free: { - brand_profiles: 2, // 핵심 가치 경험을 위해 1→2개로 상향 + brand_profiles: 2, projects_per_month: 3, ai_headlines_per_month: 10, - ai_icons_per_month: 3, // Free 사용자도 AI 아이콘 맛보기 허용 + ai_icons_per_month: 3, style_presets: 'free_only' as const, }, pro: { brand_profiles: 5, projects_per_month: Infinity, ai_headlines_per_month: Infinity, - ai_icons_per_month: 50, // Pro 플랜 월간 제한 명시 + ai_icons_per_month: 50, style_presets: 'all' as const, }, } as const diff --git a/types/supabase-generated.ts b/types/supabase-generated.ts new file mode 100644 index 0000000..3acbed9 --- /dev/null +++ b/types/supabase-generated.ts @@ -0,0 +1,542 @@ +export type Json = + | string + | number + | boolean + | null + | { [key: string]: Json | undefined } + | Json[] + +export type Database = { + // Allows to automatically instantiate createClient with right options + // instead of createClient(URL, KEY) + __InternalSupabase: { + PostgrestVersion: "14.1" + } + public: { + Tables: { + brand_profiles: { + Row: { + color_mode: Database["public"]["Enums"]["color_mode"] + corner_style: Database["public"]["Enums"]["corner_style"] + created_at: string + icon_style: Database["public"]["Enums"]["icon_style"] + id: string + is_default: boolean + keywords: string[] + name: string + primary_color: string + secondary_colors: string[] + style_direction: Database["public"]["Enums"]["style_direction"] + typography_mood: string | null + updated_at: string + user_id: string + } + Insert: { + color_mode?: Database["public"]["Enums"]["color_mode"] + corner_style?: Database["public"]["Enums"]["corner_style"] + created_at?: string + icon_style?: Database["public"]["Enums"]["icon_style"] + id?: string + is_default?: boolean + keywords?: string[] + name: string + primary_color?: string + secondary_colors?: string[] + style_direction?: Database["public"]["Enums"]["style_direction"] + typography_mood?: string | null + updated_at?: string + user_id: string + } + Update: { + color_mode?: Database["public"]["Enums"]["color_mode"] + corner_style?: Database["public"]["Enums"]["corner_style"] + created_at?: string + icon_style?: Database["public"]["Enums"]["icon_style"] + id?: string + is_default?: boolean + keywords?: string[] + name?: string + primary_color?: string + secondary_colors?: string[] + style_direction?: Database["public"]["Enums"]["style_direction"] + typography_mood?: string | null + updated_at?: string + user_id?: string + } + Relationships: [ + { + foreignKeyName: "brand_profiles_user_id_fkey" + columns: ["user_id"] + isOneToOne: false + referencedRelation: "users" + referencedColumns: ["id"] + }, + ] + } + feedback: { + Row: { + created_at: string | null + id: string + message: string + page_url: string | null + sentiment: Database["public"]["Enums"]["feedback_sentiment"] + user_agent: string | null + user_id: string | null + } + Insert: { + created_at?: string | null + id?: string + message: string + page_url?: string | null + sentiment: Database["public"]["Enums"]["feedback_sentiment"] + user_agent?: string | null + user_id?: string | null + } + Update: { + created_at?: string | null + id?: string + message?: string + page_url?: string | null + sentiment?: Database["public"]["Enums"]["feedback_sentiment"] + user_agent?: string | null + user_id?: string | null + } + Relationships: [] + } + notifications: { + Row: { + created_at: string | null + data: Json | null + id: string + message: string + read_at: string | null + title: string + type: Database["public"]["Enums"]["notification_type"] + user_id: string + } + Insert: { + created_at?: string | null + data?: Json | null + id?: string + message: string + read_at?: string | null + title: string + type: Database["public"]["Enums"]["notification_type"] + user_id: string + } + Update: { + created_at?: string | null + data?: Json | null + id?: string + message?: string + read_at?: string | null + title?: string + type?: Database["public"]["Enums"]["notification_type"] + user_id?: string + } + Relationships: [] + } + nps_responses: { + Row: { + created_at: string | null + feedback: string | null + id: string + score: number + user_id: string | null + } + Insert: { + created_at?: string | null + feedback?: string | null + id?: string + score: number + user_id?: string | null + } + Update: { + created_at?: string | null + feedback?: string | null + id?: string + score?: number + user_id?: string | null + } + Relationships: [] + } + projects: { + Row: { + ai_headline: string | null + ai_og_description: string | null + ai_short_slogan: string | null + ai_tagline: string | null + assets_zip_url: string | null + brand_profile_id: string | null + created_at: string + description: string | null + icon_type: Database["public"]["Enums"]["icon_type"] | null + icon_value: string | null + id: string + mobile_target: Database["public"]["Enums"]["mobile_target"] | null + name: string + pipeline_stage: string | null + platform: Database["public"]["Enums"]["platform_type"] + primary_color_override: string | null + status: Database["public"]["Enums"]["project_status"] + style_preset_id: string + updated_at: string + user_id: string + } + Insert: { + ai_headline?: string | null + ai_og_description?: string | null + ai_short_slogan?: string | null + ai_tagline?: string | null + assets_zip_url?: string | null + brand_profile_id?: string | null + created_at?: string + description?: string | null + icon_type?: Database["public"]["Enums"]["icon_type"] | null + icon_value?: string | null + id?: string + mobile_target?: Database["public"]["Enums"]["mobile_target"] | null + name: string + pipeline_stage?: string | null + platform?: Database["public"]["Enums"]["platform_type"] + primary_color_override?: string | null + status?: Database["public"]["Enums"]["project_status"] + style_preset_id: string + updated_at?: string + user_id: string + } + Update: { + ai_headline?: string | null + ai_og_description?: string | null + ai_short_slogan?: string | null + ai_tagline?: string | null + assets_zip_url?: string | null + brand_profile_id?: string | null + created_at?: string + description?: string | null + icon_type?: Database["public"]["Enums"]["icon_type"] | null + icon_value?: string | null + id?: string + mobile_target?: Database["public"]["Enums"]["mobile_target"] | null + name?: string + pipeline_stage?: string | null + platform?: Database["public"]["Enums"]["platform_type"] + primary_color_override?: string | null + status?: Database["public"]["Enums"]["project_status"] + style_preset_id?: string + updated_at?: string + user_id?: string + } + Relationships: [ + { + foreignKeyName: "projects_brand_profile_id_fkey" + columns: ["brand_profile_id"] + isOneToOne: false + referencedRelation: "brand_profiles" + referencedColumns: ["id"] + }, + { + foreignKeyName: "projects_style_preset_id_fkey" + columns: ["style_preset_id"] + isOneToOne: false + referencedRelation: "style_presets" + referencedColumns: ["id"] + }, + { + foreignKeyName: "projects_user_id_fkey" + columns: ["user_id"] + isOneToOne: false + referencedRelation: "users" + referencedColumns: ["id"] + }, + ] + } + style_presets: { + Row: { + ai_style_modifier: string | null + best_for_styles: string[] + color_mode: string | null + corner_radius: number + created_at: string + icon_ai_negative_prompt: string | null + icon_ai_prompt_template: string | null + icon_style: string | null + id: string + is_free: boolean + name: string + og_ai_style_modifier: string | null + og_background: string | null + og_layout: string | null + og_typography: string | null + preview_image_url: string | null + shadow_style: string | null + slug: string + sort_order: number + } + Insert: { + ai_style_modifier?: string | null + best_for_styles?: string[] + color_mode?: string | null + corner_radius?: number + created_at?: string + icon_ai_negative_prompt?: string | null + icon_ai_prompt_template?: string | null + icon_style?: string | null + id?: string + is_free?: boolean + name: string + og_ai_style_modifier?: string | null + og_background?: string | null + og_layout?: string | null + og_typography?: string | null + preview_image_url?: string | null + shadow_style?: string | null + slug: string + sort_order?: number + } + Update: { + ai_style_modifier?: string | null + best_for_styles?: string[] + color_mode?: string | null + corner_radius?: number + created_at?: string + icon_ai_negative_prompt?: string | null + icon_ai_prompt_template?: string | null + icon_style?: string | null + id?: string + is_free?: boolean + name?: string + og_ai_style_modifier?: string | null + og_background?: string | null + og_layout?: string | null + og_typography?: string | null + preview_image_url?: string | null + shadow_style?: string | null + slug?: string + sort_order?: number + } + Relationships: [] + } + users: { + Row: { + ai_headlines_used_this_month: number + ai_icons_used_this_month: number + created_at: string + email: string + id: string + lemonsqueezy_customer_id: string | null + lemonsqueezy_subscription_id: string | null + plan: Database["public"]["Enums"]["plan_type"] + projects_used_this_month: number + updated_at: string + usage_reset_at: string + } + Insert: { + ai_headlines_used_this_month?: number + ai_icons_used_this_month?: number + created_at?: string + email: string + id: string + lemonsqueezy_customer_id?: string | null + lemonsqueezy_subscription_id?: string | null + plan?: Database["public"]["Enums"]["plan_type"] + projects_used_this_month?: number + updated_at?: string + usage_reset_at?: string + } + Update: { + ai_headlines_used_this_month?: number + ai_icons_used_this_month?: number + created_at?: string + email?: string + id?: string + lemonsqueezy_customer_id?: string | null + lemonsqueezy_subscription_id?: string | null + plan?: Database["public"]["Enums"]["plan_type"] + projects_used_this_month?: number + updated_at?: string + usage_reset_at?: string + } + Relationships: [] + } + } + Views: { + [_ in never]: never + } + Functions: { + get_unread_notification_count: { + Args: { p_user_id: string } + Returns: number + } + increment_usage: { + Args: { p_field_name: string; p_user_id: string } + Returns: undefined + } + mark_all_notifications_read: { + Args: { p_user_id: string } + Returns: undefined + } + reset_monthly_usage: { Args: never; Returns: undefined } + } + Enums: { + color_mode: "mono" | "duotone" | "gradient" | "vibrant" + corner_style: "sharp" | "rounded" | "pill" + feedback_sentiment: "positive" | "neutral" | "negative" + icon_style: "outline" | "filled" | "3d_soft" | "flat" + icon_type: "text" | "symbol" | "ai_generated" + mobile_target: "android" | "ios" | "both" + notification_type: + | "project_complete" + | "subscription_update" + | "system_announcement" + | "usage_warning" + plan_type: "free" | "pro" + platform_type: "web" | "mobile" | "all" + project_status: "draft" | "generating" | "completed" | "failed" + style_direction: "minimal" | "playful" | "corporate" | "tech" | "custom" + } + CompositeTypes: { + [_ in never]: never + } + } +} + +type DatabaseWithoutInternals = Omit + +type DefaultSchema = DatabaseWithoutInternals[Extract] + +export type Tables< + DefaultSchemaTableNameOrOptions extends + | keyof (DefaultSchema["Tables"] & DefaultSchema["Views"]) + | { schema: keyof DatabaseWithoutInternals }, + TableName extends DefaultSchemaTableNameOrOptions extends { + schema: keyof DatabaseWithoutInternals + } + ? keyof (DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Tables"] & + DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Views"]) + : never = never, +> = DefaultSchemaTableNameOrOptions extends { + schema: keyof DatabaseWithoutInternals +} + ? (DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Tables"] & + DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Views"])[TableName] extends { + Row: infer R + } + ? R + : never + : DefaultSchemaTableNameOrOptions extends keyof (DefaultSchema["Tables"] & + DefaultSchema["Views"]) + ? (DefaultSchema["Tables"] & + DefaultSchema["Views"])[DefaultSchemaTableNameOrOptions] extends { + Row: infer R + } + ? R + : never + : never + +export type TablesInsert< + DefaultSchemaTableNameOrOptions extends + | keyof DefaultSchema["Tables"] + | { schema: keyof DatabaseWithoutInternals }, + TableName extends DefaultSchemaTableNameOrOptions extends { + schema: keyof DatabaseWithoutInternals + } + ? keyof DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Tables"] + : never = never, +> = DefaultSchemaTableNameOrOptions extends { + schema: keyof DatabaseWithoutInternals +} + ? DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Tables"][TableName] extends { + Insert: infer I + } + ? I + : never + : DefaultSchemaTableNameOrOptions extends keyof DefaultSchema["Tables"] + ? DefaultSchema["Tables"][DefaultSchemaTableNameOrOptions] extends { + Insert: infer I + } + ? I + : never + : never + +export type TablesUpdate< + DefaultSchemaTableNameOrOptions extends + | keyof DefaultSchema["Tables"] + | { schema: keyof DatabaseWithoutInternals }, + TableName extends DefaultSchemaTableNameOrOptions extends { + schema: keyof DatabaseWithoutInternals + } + ? keyof DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Tables"] + : never = never, +> = DefaultSchemaTableNameOrOptions extends { + schema: keyof DatabaseWithoutInternals +} + ? DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Tables"][TableName] extends { + Update: infer U + } + ? U + : never + : DefaultSchemaTableNameOrOptions extends keyof DefaultSchema["Tables"] + ? DefaultSchema["Tables"][DefaultSchemaTableNameOrOptions] extends { + Update: infer U + } + ? U + : never + : never + +export type Enums< + DefaultSchemaEnumNameOrOptions extends + | keyof DefaultSchema["Enums"] + | { schema: keyof DatabaseWithoutInternals }, + EnumName extends DefaultSchemaEnumNameOrOptions extends { + schema: keyof DatabaseWithoutInternals + } + ? keyof DatabaseWithoutInternals[DefaultSchemaEnumNameOrOptions["schema"]]["Enums"] + : never = never, +> = DefaultSchemaEnumNameOrOptions extends { + schema: keyof DatabaseWithoutInternals +} + ? DatabaseWithoutInternals[DefaultSchemaEnumNameOrOptions["schema"]]["Enums"][EnumName] + : DefaultSchemaEnumNameOrOptions extends keyof DefaultSchema["Enums"] + ? DefaultSchema["Enums"][DefaultSchemaEnumNameOrOptions] + : never + +export type CompositeTypes< + PublicCompositeTypeNameOrOptions extends + | keyof DefaultSchema["CompositeTypes"] + | { schema: keyof DatabaseWithoutInternals }, + CompositeTypeName extends PublicCompositeTypeNameOrOptions extends { + schema: keyof DatabaseWithoutInternals + } + ? keyof DatabaseWithoutInternals[PublicCompositeTypeNameOrOptions["schema"]]["CompositeTypes"] + : never = never, +> = PublicCompositeTypeNameOrOptions extends { + schema: keyof DatabaseWithoutInternals +} + ? DatabaseWithoutInternals[PublicCompositeTypeNameOrOptions["schema"]]["CompositeTypes"][CompositeTypeName] + : PublicCompositeTypeNameOrOptions extends keyof DefaultSchema["CompositeTypes"] + ? DefaultSchema["CompositeTypes"][PublicCompositeTypeNameOrOptions] + : never + +export const Constants = { + public: { + Enums: { + color_mode: ["mono", "duotone", "gradient", "vibrant"], + corner_style: ["sharp", "rounded", "pill"], + feedback_sentiment: ["positive", "neutral", "negative"], + icon_style: ["outline", "filled", "3d_soft", "flat"], + icon_type: ["text", "symbol", "ai_generated"], + mobile_target: ["android", "ios", "both"], + notification_type: [ + "project_complete", + "subscription_update", + "system_announcement", + "usage_warning", + ], + plan_type: ["free", "pro"], + platform_type: ["web", "mobile", "all"], + project_status: ["draft", "generating", "completed", "failed"], + style_direction: ["minimal", "playful", "corporate", "tech", "custom"], + }, + }, +} as const diff --git a/types/wizard.ts b/types/wizard.ts index a304d7c..55715e7 100644 --- a/types/wizard.ts +++ b/types/wizard.ts @@ -1,4 +1,5 @@ import type { Platform, MobileTarget, IconType } from './database' +import type { MetadataPromptConfig } from '@/lib/prompts' export interface WizardBrandData { brandProfileId: string | null @@ -35,6 +36,7 @@ export interface HeadlineRequest { platform: Platform brandKeywords?: string[] brandStyleDirection?: string + promptConfig?: MetadataPromptConfig } export interface HeadlineResponse { diff --git a/yarn.lock b/yarn.lock index 885b815..82918d3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -42,29 +42,29 @@ __metadata: languageName: node linkType: hard -"@asamuzakjp/css-color@npm:^4.1.1": - version: 4.1.1 - resolution: "@asamuzakjp/css-color@npm:4.1.1" +"@asamuzakjp/css-color@npm:^5.0.1": + version: 5.0.1 + resolution: "@asamuzakjp/css-color@npm:5.0.1" dependencies: - "@csstools/css-calc": "npm:^2.1.4" - "@csstools/css-color-parser": "npm:^3.1.0" - "@csstools/css-parser-algorithms": "npm:^3.0.5" - "@csstools/css-tokenizer": "npm:^3.0.4" - lru-cache: "npm:^11.2.4" - checksum: 10c0/2948ae9cd4c2f326ab5470d6ac7d415bb8062150ef254f830d774b6a77d6dccfbdb4b84ed4ef5c86c5643d42c52d77204b8d94d0d90f2e2cea9ec9b6cbb9c336 + "@csstools/css-calc": "npm:^3.1.1" + "@csstools/css-color-parser": "npm:^4.0.2" + "@csstools/css-parser-algorithms": "npm:^4.0.0" + "@csstools/css-tokenizer": "npm:^4.0.0" + lru-cache: "npm:^11.2.6" + checksum: 10c0/3e8d74a3b7f3005a325cb8e7f3da1aa32aeac4cd9ce387826dc25b16eaab4dc0e4a6faded8ccc1895959141f4a4a70e8bc38723347b89667b7b224990d16683c languageName: node linkType: hard -"@asamuzakjp/dom-selector@npm:^6.7.6": - version: 6.7.7 - resolution: "@asamuzakjp/dom-selector@npm:6.7.7" +"@asamuzakjp/dom-selector@npm:^6.8.1": + version: 6.8.1 + resolution: "@asamuzakjp/dom-selector@npm:6.8.1" dependencies: "@asamuzakjp/nwsapi": "npm:^2.3.9" bidi-js: "npm:^1.0.3" css-tree: "npm:^3.1.0" is-potential-custom-element-name: "npm:^1.0.1" - lru-cache: "npm:^11.2.5" - checksum: 10c0/4b2d9c1f7669606e6ba8fd0dc6e5ffd0982f9b35d460ba6827ddd5b416ac43769b044cff2dff74fdb1ee2cee507304f034b329878992ce0bb27076d25f6238fe + lru-cache: "npm:^11.2.6" + checksum: 10c0/635de2c3b11971c07e2d491fd2833d2499bafbab05b616f5d38041031718879c404456644f60c45e9ba4ca2423e5bb48bf3c46179b0c58a0ea68eaae8c61e85f languageName: node linkType: hard @@ -286,60 +286,71 @@ __metadata: languageName: node linkType: hard -"@csstools/color-helpers@npm:^5.1.0": - version: 5.1.0 - resolution: "@csstools/color-helpers@npm:5.1.0" - checksum: 10c0/b7f99d2e455cf1c9b41a67a5327d5d02888cd5c8802a68b1887dffef537d9d4bc66b3c10c1e62b40bbed638b6c1d60b85a232f904ed7b39809c4029cb36567db +"@bramus/specificity@npm:^2.4.2": + version: 2.4.2 + resolution: "@bramus/specificity@npm:2.4.2" + dependencies: + css-tree: "npm:^3.0.0" + bin: + specificity: bin/cli.js + checksum: 10c0/c5f4e04e0bca0d2202598207a5eb0733c8109d12a68a329caa26373bec598d99db5bb785b8865fefa00fc01b08c6068138807ceb11a948fe15e904ed6cf4ba72 languageName: node linkType: hard -"@csstools/css-calc@npm:^2.1.4": - version: 2.1.4 - resolution: "@csstools/css-calc@npm:2.1.4" +"@csstools/color-helpers@npm:^6.0.2": + version: 6.0.2 + resolution: "@csstools/color-helpers@npm:6.0.2" + checksum: 10c0/4c66574563d7c960010c11e41c2673675baff07c427cca6e8dddffa5777de45770d13ff3efce1c0642798089ad55de52870d9d8141f78db3fa5bba012f2d3789 + languageName: node + linkType: hard + +"@csstools/css-calc@npm:^3.1.1": + version: 3.1.1 + resolution: "@csstools/css-calc@npm:3.1.1" peerDependencies: - "@csstools/css-parser-algorithms": ^3.0.5 - "@csstools/css-tokenizer": ^3.0.4 - checksum: 10c0/42ce5793e55ec4d772083808a11e9fb2dfe36db3ec168713069a276b4c3882205b3507c4680224c28a5d35fe0bc2d308c77f8f2c39c7c09aad8747708eb8ddd8 + "@csstools/css-parser-algorithms": ^4.0.0 + "@csstools/css-tokenizer": ^4.0.0 + checksum: 10c0/6efcc016d988edf66e54c7bad03e352d61752cbd1b56c7557fd013868aab23505052ded8f912cd4034e216943ea1e04c957d81012489e3eddc14a57b386510ef languageName: node linkType: hard -"@csstools/css-color-parser@npm:^3.1.0": - version: 3.1.0 - resolution: "@csstools/css-color-parser@npm:3.1.0" +"@csstools/css-color-parser@npm:^4.0.2": + version: 4.0.2 + resolution: "@csstools/css-color-parser@npm:4.0.2" dependencies: - "@csstools/color-helpers": "npm:^5.1.0" - "@csstools/css-calc": "npm:^2.1.4" + "@csstools/color-helpers": "npm:^6.0.2" + "@csstools/css-calc": "npm:^3.1.1" peerDependencies: - "@csstools/css-parser-algorithms": ^3.0.5 - "@csstools/css-tokenizer": ^3.0.4 - checksum: 10c0/0e0c670ad54ec8ec4d9b07568b80defd83b9482191f5e8ca84ab546b7be6db5d7cc2ba7ac9fae54488b129a4be235d6183d3aab4416fec5e89351f73af4222c5 + "@csstools/css-parser-algorithms": ^4.0.0 + "@csstools/css-tokenizer": ^4.0.0 + checksum: 10c0/487cf507ef4630f74bd67d84298294ed269900b206ade015a968d20047e07ff46f235b72e26fe0c6b949a03f8f9f00a22c363da49c1b06ca60b32d0188e546be languageName: node linkType: hard -"@csstools/css-parser-algorithms@npm:^3.0.5": - version: 3.0.5 - resolution: "@csstools/css-parser-algorithms@npm:3.0.5" +"@csstools/css-parser-algorithms@npm:^4.0.0": + version: 4.0.0 + resolution: "@csstools/css-parser-algorithms@npm:4.0.0" peerDependencies: - "@csstools/css-tokenizer": ^3.0.4 - checksum: 10c0/d9a1c888bd43849ae3437ca39251d5c95d2c8fd6b5ccdb7c45491dfd2c1cbdc3075645e80901d120e4d2c1993db9a5b2d83793b779dbbabcfb132adb142eb7f7 + "@csstools/css-tokenizer": ^4.0.0 + checksum: 10c0/94558c2428d6ef0ddef542e86e0a8376aa1263a12a59770abb13ba50d7b83086822c75433f32aa2e7fef00555e1cc88292f9ca5bce79aed232bb3fed73b1528d languageName: node linkType: hard -"@csstools/css-syntax-patches-for-csstree@npm:^1.0.21": - version: 1.0.26 - resolution: "@csstools/css-syntax-patches-for-csstree@npm:1.0.26" - checksum: 10c0/65ac2a9e3a6908ce503ae1ba354c59ffdda04fef1f4c6e2b64f083c2896fe24fd775861e693e0eb2f84a1e7e0d333eab0fa26b5873268945833b62d7fae97404 +"@csstools/css-syntax-patches-for-csstree@npm:^1.0.28": + version: 1.1.0 + resolution: "@csstools/css-syntax-patches-for-csstree@npm:1.1.0" + checksum: 10c0/ef84e09ead31d204e238eb674016b34a54083344348b4e4fd63cb03486dcaa5b53feeff74a6c246763973cca0eb3213a70f49ca8545ce26a3b3d9c97255f4dd1 languageName: node linkType: hard -"@csstools/css-tokenizer@npm:^3.0.4": - version: 3.0.4 - resolution: "@csstools/css-tokenizer@npm:3.0.4" - checksum: 10c0/3b589f8e9942075a642213b389bab75a2d50d05d203727fcdac6827648a5572674caff07907eff3f9a2389d86a4ee47308fafe4f8588f4a77b7167c588d2559f +"@csstools/css-tokenizer@npm:^4.0.0": + version: 4.0.0 + resolution: "@csstools/css-tokenizer@npm:4.0.0" + checksum: 10c0/669cf3d0f9c8e1ffdf8c9955ad8beba0c8cfe03197fe29a4fcbd9ee6f7a18856cfa42c62670021a75183d9ab37f5d14a866e6a9df753a6c07f59e36797a9ea9f languageName: node linkType: hard -"@emnapi/core@npm:^1.4.3, @emnapi/core@npm:^1.7.1": +"@emnapi/core@npm:^1.4.3, @emnapi/core@npm:^1.7.1, @emnapi/core@npm:^1.8.1": version: 1.8.1 resolution: "@emnapi/core@npm:1.8.1" dependencies: @@ -349,7 +360,7 @@ __metadata: languageName: node linkType: hard -"@emnapi/runtime@npm:^1.4.3, @emnapi/runtime@npm:^1.7.0, @emnapi/runtime@npm:^1.7.1": +"@emnapi/runtime@npm:^1.4.3, @emnapi/runtime@npm:^1.7.0, @emnapi/runtime@npm:^1.7.1, @emnapi/runtime@npm:^1.8.1": version: 1.8.1 resolution: "@emnapi/runtime@npm:1.8.1" dependencies: @@ -367,184 +378,184 @@ __metadata: languageName: node linkType: hard -"@esbuild/aix-ppc64@npm:0.27.2": - version: 0.27.2 - resolution: "@esbuild/aix-ppc64@npm:0.27.2" +"@esbuild/aix-ppc64@npm:0.27.3": + version: 0.27.3 + resolution: "@esbuild/aix-ppc64@npm:0.27.3" conditions: os=aix & cpu=ppc64 languageName: node linkType: hard -"@esbuild/android-arm64@npm:0.27.2": - version: 0.27.2 - resolution: "@esbuild/android-arm64@npm:0.27.2" +"@esbuild/android-arm64@npm:0.27.3": + version: 0.27.3 + resolution: "@esbuild/android-arm64@npm:0.27.3" conditions: os=android & cpu=arm64 languageName: node linkType: hard -"@esbuild/android-arm@npm:0.27.2": - version: 0.27.2 - resolution: "@esbuild/android-arm@npm:0.27.2" +"@esbuild/android-arm@npm:0.27.3": + version: 0.27.3 + resolution: "@esbuild/android-arm@npm:0.27.3" conditions: os=android & cpu=arm languageName: node linkType: hard -"@esbuild/android-x64@npm:0.27.2": - version: 0.27.2 - resolution: "@esbuild/android-x64@npm:0.27.2" +"@esbuild/android-x64@npm:0.27.3": + version: 0.27.3 + resolution: "@esbuild/android-x64@npm:0.27.3" conditions: os=android & cpu=x64 languageName: node linkType: hard -"@esbuild/darwin-arm64@npm:0.27.2": - version: 0.27.2 - resolution: "@esbuild/darwin-arm64@npm:0.27.2" +"@esbuild/darwin-arm64@npm:0.27.3": + version: 0.27.3 + resolution: "@esbuild/darwin-arm64@npm:0.27.3" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@esbuild/darwin-x64@npm:0.27.2": - version: 0.27.2 - resolution: "@esbuild/darwin-x64@npm:0.27.2" +"@esbuild/darwin-x64@npm:0.27.3": + version: 0.27.3 + resolution: "@esbuild/darwin-x64@npm:0.27.3" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@esbuild/freebsd-arm64@npm:0.27.2": - version: 0.27.2 - resolution: "@esbuild/freebsd-arm64@npm:0.27.2" +"@esbuild/freebsd-arm64@npm:0.27.3": + version: 0.27.3 + resolution: "@esbuild/freebsd-arm64@npm:0.27.3" conditions: os=freebsd & cpu=arm64 languageName: node linkType: hard -"@esbuild/freebsd-x64@npm:0.27.2": - version: 0.27.2 - resolution: "@esbuild/freebsd-x64@npm:0.27.2" +"@esbuild/freebsd-x64@npm:0.27.3": + version: 0.27.3 + resolution: "@esbuild/freebsd-x64@npm:0.27.3" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard -"@esbuild/linux-arm64@npm:0.27.2": - version: 0.27.2 - resolution: "@esbuild/linux-arm64@npm:0.27.2" +"@esbuild/linux-arm64@npm:0.27.3": + version: 0.27.3 + resolution: "@esbuild/linux-arm64@npm:0.27.3" conditions: os=linux & cpu=arm64 languageName: node linkType: hard -"@esbuild/linux-arm@npm:0.27.2": - version: 0.27.2 - resolution: "@esbuild/linux-arm@npm:0.27.2" +"@esbuild/linux-arm@npm:0.27.3": + version: 0.27.3 + resolution: "@esbuild/linux-arm@npm:0.27.3" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@esbuild/linux-ia32@npm:0.27.2": - version: 0.27.2 - resolution: "@esbuild/linux-ia32@npm:0.27.2" +"@esbuild/linux-ia32@npm:0.27.3": + version: 0.27.3 + resolution: "@esbuild/linux-ia32@npm:0.27.3" conditions: os=linux & cpu=ia32 languageName: node linkType: hard -"@esbuild/linux-loong64@npm:0.27.2": - version: 0.27.2 - resolution: "@esbuild/linux-loong64@npm:0.27.2" +"@esbuild/linux-loong64@npm:0.27.3": + version: 0.27.3 + resolution: "@esbuild/linux-loong64@npm:0.27.3" conditions: os=linux & cpu=loong64 languageName: node linkType: hard -"@esbuild/linux-mips64el@npm:0.27.2": - version: 0.27.2 - resolution: "@esbuild/linux-mips64el@npm:0.27.2" +"@esbuild/linux-mips64el@npm:0.27.3": + version: 0.27.3 + resolution: "@esbuild/linux-mips64el@npm:0.27.3" conditions: os=linux & cpu=mips64el languageName: node linkType: hard -"@esbuild/linux-ppc64@npm:0.27.2": - version: 0.27.2 - resolution: "@esbuild/linux-ppc64@npm:0.27.2" +"@esbuild/linux-ppc64@npm:0.27.3": + version: 0.27.3 + resolution: "@esbuild/linux-ppc64@npm:0.27.3" conditions: os=linux & cpu=ppc64 languageName: node linkType: hard -"@esbuild/linux-riscv64@npm:0.27.2": - version: 0.27.2 - resolution: "@esbuild/linux-riscv64@npm:0.27.2" +"@esbuild/linux-riscv64@npm:0.27.3": + version: 0.27.3 + resolution: "@esbuild/linux-riscv64@npm:0.27.3" conditions: os=linux & cpu=riscv64 languageName: node linkType: hard -"@esbuild/linux-s390x@npm:0.27.2": - version: 0.27.2 - resolution: "@esbuild/linux-s390x@npm:0.27.2" +"@esbuild/linux-s390x@npm:0.27.3": + version: 0.27.3 + resolution: "@esbuild/linux-s390x@npm:0.27.3" conditions: os=linux & cpu=s390x languageName: node linkType: hard -"@esbuild/linux-x64@npm:0.27.2": - version: 0.27.2 - resolution: "@esbuild/linux-x64@npm:0.27.2" +"@esbuild/linux-x64@npm:0.27.3": + version: 0.27.3 + resolution: "@esbuild/linux-x64@npm:0.27.3" conditions: os=linux & cpu=x64 languageName: node linkType: hard -"@esbuild/netbsd-arm64@npm:0.27.2": - version: 0.27.2 - resolution: "@esbuild/netbsd-arm64@npm:0.27.2" +"@esbuild/netbsd-arm64@npm:0.27.3": + version: 0.27.3 + resolution: "@esbuild/netbsd-arm64@npm:0.27.3" conditions: os=netbsd & cpu=arm64 languageName: node linkType: hard -"@esbuild/netbsd-x64@npm:0.27.2": - version: 0.27.2 - resolution: "@esbuild/netbsd-x64@npm:0.27.2" +"@esbuild/netbsd-x64@npm:0.27.3": + version: 0.27.3 + resolution: "@esbuild/netbsd-x64@npm:0.27.3" conditions: os=netbsd & cpu=x64 languageName: node linkType: hard -"@esbuild/openbsd-arm64@npm:0.27.2": - version: 0.27.2 - resolution: "@esbuild/openbsd-arm64@npm:0.27.2" +"@esbuild/openbsd-arm64@npm:0.27.3": + version: 0.27.3 + resolution: "@esbuild/openbsd-arm64@npm:0.27.3" conditions: os=openbsd & cpu=arm64 languageName: node linkType: hard -"@esbuild/openbsd-x64@npm:0.27.2": - version: 0.27.2 - resolution: "@esbuild/openbsd-x64@npm:0.27.2" +"@esbuild/openbsd-x64@npm:0.27.3": + version: 0.27.3 + resolution: "@esbuild/openbsd-x64@npm:0.27.3" conditions: os=openbsd & cpu=x64 languageName: node linkType: hard -"@esbuild/openharmony-arm64@npm:0.27.2": - version: 0.27.2 - resolution: "@esbuild/openharmony-arm64@npm:0.27.2" +"@esbuild/openharmony-arm64@npm:0.27.3": + version: 0.27.3 + resolution: "@esbuild/openharmony-arm64@npm:0.27.3" conditions: os=openharmony & cpu=arm64 languageName: node linkType: hard -"@esbuild/sunos-x64@npm:0.27.2": - version: 0.27.2 - resolution: "@esbuild/sunos-x64@npm:0.27.2" +"@esbuild/sunos-x64@npm:0.27.3": + version: 0.27.3 + resolution: "@esbuild/sunos-x64@npm:0.27.3" conditions: os=sunos & cpu=x64 languageName: node linkType: hard -"@esbuild/win32-arm64@npm:0.27.2": - version: 0.27.2 - resolution: "@esbuild/win32-arm64@npm:0.27.2" +"@esbuild/win32-arm64@npm:0.27.3": + version: 0.27.3 + resolution: "@esbuild/win32-arm64@npm:0.27.3" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@esbuild/win32-ia32@npm:0.27.2": - version: 0.27.2 - resolution: "@esbuild/win32-ia32@npm:0.27.2" +"@esbuild/win32-ia32@npm:0.27.3": + version: 0.27.3 + resolution: "@esbuild/win32-ia32@npm:0.27.3" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@esbuild/win32-x64@npm:0.27.2": - version: 0.27.2 - resolution: "@esbuild/win32-x64@npm:0.27.2" +"@esbuild/win32-x64@npm:0.27.3": + version: 0.27.3 + resolution: "@esbuild/win32-x64@npm:0.27.3" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -567,14 +578,14 @@ __metadata: languageName: node linkType: hard -"@eslint/config-array@npm:^0.21.1": - version: 0.21.1 - resolution: "@eslint/config-array@npm:0.21.1" +"@eslint/config-array@npm:^0.21.2": + version: 0.21.2 + resolution: "@eslint/config-array@npm:0.21.2" dependencies: "@eslint/object-schema": "npm:^2.1.7" debug: "npm:^4.3.1" - minimatch: "npm:^3.1.2" - checksum: 10c0/2f657d4edd6ddcb920579b72e7a5b127865d4c3fb4dda24f11d5c4f445a93ca481aebdbd6bf3291c536f5d034458dbcbb298ee3b698bc6c9dd02900fe87eec3c + minimatch: "npm:^3.1.5" + checksum: 10c0/89dfe815d18456177c0a1f238daf4593107fd20298b3598e0103054360d3b8d09d967defd8318f031185d68df1f95cfa68becf1390a9c5c6887665f1475142e3 languageName: node linkType: hard @@ -596,27 +607,27 @@ __metadata: languageName: node linkType: hard -"@eslint/eslintrc@npm:^3.3.1, @eslint/eslintrc@npm:^3.3.3": - version: 3.3.3 - resolution: "@eslint/eslintrc@npm:3.3.3" +"@eslint/eslintrc@npm:^3.3.3, @eslint/eslintrc@npm:^3.3.5": + version: 3.3.5 + resolution: "@eslint/eslintrc@npm:3.3.5" dependencies: - ajv: "npm:^6.12.4" + ajv: "npm:^6.14.0" debug: "npm:^4.3.2" espree: "npm:^10.0.1" globals: "npm:^14.0.0" ignore: "npm:^5.2.0" import-fresh: "npm:^3.2.1" js-yaml: "npm:^4.1.1" - minimatch: "npm:^3.1.2" + minimatch: "npm:^3.1.5" strip-json-comments: "npm:^3.1.1" - checksum: 10c0/532c7acc7ddd042724c28b1f020bd7bf148fcd4653bb44c8314168b5f772508c842ce4ee070299cac51c5c5757d2124bdcfcef5551c8c58ff9986e3e17f2260d + checksum: 10c0/9fb9f1ca65e46d6173966e3aaa5bd353e3a65d7f1f582bebf77f578fab7d7960a399fac1ecfb1e7d52bd61f5cefd6531087ca52a3a3c388f2e1b4f1ebd3da8b7 languageName: node linkType: hard -"@eslint/js@npm:9.39.2": - version: 9.39.2 - resolution: "@eslint/js@npm:9.39.2" - checksum: 10c0/00f51c52b04ac79faebfaa65a9652b2093b9c924e945479f1f3945473f78aee83cbc76c8d70bbffbf06f7024626575b16d97b66eab16182e1d0d39daff2f26f5 +"@eslint/js@npm:9.39.4": + version: 9.39.4 + resolution: "@eslint/js@npm:9.39.4" + checksum: 10c0/5aa7dea2cbc5decf7f5e3b0c6f86a084ccee0f792d288ca8e839f8bc1b64e03e227068968e49b26096e6f71fd857ab6e42691d1b993826b9a3883f1bdd7a0e46 languageName: node linkType: hard @@ -638,25 +649,25 @@ __metadata: linkType: hard "@exodus/bytes@npm:^1.11.0, @exodus/bytes@npm:^1.6.0": - version: 1.11.0 - resolution: "@exodus/bytes@npm:1.11.0" + version: 1.15.0 + resolution: "@exodus/bytes@npm:1.15.0" peerDependencies: "@noble/hashes": ^1.8.0 || ^2.0.0 peerDependenciesMeta: "@noble/hashes": optional: true - checksum: 10c0/85d0b296cef91ee90f89f17b3a2cd23fa33bda4ae7b96545e9b8e2e68d64c0280eb3cefb77fc3f59f82377379ee7a52a5a5b3a9f99e45fca4166e5e2fa4c0939 + checksum: 10c0/b48aad9729653385d6ed055c28cfcf0b1b1481cf5d83f4375c12abd7988f1d20f69c80b5f95d4a1cc24d9abe32b9efc352a812d53884c26efea172aca8b6356d languageName: node linkType: hard "@fal-ai/client@npm:^1.9.0": - version: 1.9.0 - resolution: "@fal-ai/client@npm:1.9.0" + version: 1.9.4 + resolution: "@fal-ai/client@npm:1.9.4" dependencies: "@msgpack/msgpack": "npm:^3.0.0-beta2" eventsource-parser: "npm:^1.1.2" robot3: "npm:^0.4.1" - checksum: 10c0/c1ae3832ed755e51a49969cb7d86a86a02e5f5b3a3066eb6eae0ebe94d18f59c2d596361e0bd059c4626a23fd6bdafbbb4cfe0998e97630461d76afeea3c0b46 + checksum: 10c0/581b7a81fb2763500b0141d394c7a360e34e023ccf8196c8e2445d367601eed254f9a3d3cd890e0e4f6cd352100b15abf620121fa5e6fb9e5c85b5634e1316c4 languageName: node linkType: hard @@ -702,7 +713,7 @@ __metadata: languageName: node linkType: hard -"@formatjs/intl-localematcher@npm:0.8.1": +"@formatjs/intl-localematcher@npm:0.8.1, @formatjs/intl-localematcher@npm:^0.8.1": version: 0.8.1 resolution: "@formatjs/intl-localematcher@npm:0.8.1" dependencies: @@ -712,12 +723,12 @@ __metadata: languageName: node linkType: hard -"@formatjs/intl-localematcher@npm:^0.5.4": - version: 0.5.10 - resolution: "@formatjs/intl-localematcher@npm:0.5.10" +"@gar/promise-retry@npm:^1.0.0": + version: 1.0.2 + resolution: "@gar/promise-retry@npm:1.0.2" dependencies: - tslib: "npm:2" - checksum: 10c0/362ec83aca9382165be575f1cefa477478339e6fead8ca8866185ce6e58427ea1487a811b12c73d1bcfa99fd4db0c24543b35c823451839f585576bfccb8c9cc + retry: "npm:^0.13.1" + checksum: 10c0/748a84fb0ab962f7867966f21dc24d1872c53c1656dd3352320fe69ad3b2043f2dfdb3be024c7636ce4904c5ba1da22d0f3558e489c3de578f5bb520f062d0fd languageName: node linkType: hard @@ -762,9 +773,9 @@ __metadata: linkType: hard "@img/colour@npm:^1.0.0": - version: 1.0.0 - resolution: "@img/colour@npm:1.0.0" - checksum: 10c0/02261719c1e0d7aa5a2d585981954f2ac126f0c432400aa1a01b925aa2c41417b7695da8544ee04fd29eba7ecea8eaf9b8bef06f19dc8faba78f94eeac40667d + version: 1.1.0 + resolution: "@img/colour@npm:1.1.0" + checksum: 10c0/2ebea2c0bbaee73b99badcefa04e1e71d83f36e5369337d3121dca841f4569533c4e2faddda6d62dd247f0d5cca143711f9446c59bcce81e427ba433a7a94a17 languageName: node linkType: hard @@ -988,22 +999,6 @@ __metadata: languageName: node linkType: hard -"@isaacs/balanced-match@npm:^4.0.1": - version: 4.0.1 - resolution: "@isaacs/balanced-match@npm:4.0.1" - checksum: 10c0/7da011805b259ec5c955f01cee903da72ad97c5e6f01ca96197267d3f33103d5b2f8a1af192140f3aa64526c593c8d098ae366c2b11f7f17645d12387c2fd420 - languageName: node - linkType: hard - -"@isaacs/brace-expansion@npm:^5.0.1": - version: 5.0.1 - resolution: "@isaacs/brace-expansion@npm:5.0.1" - dependencies: - "@isaacs/balanced-match": "npm:^4.0.1" - checksum: 10c0/e5d67c7bbf1f17b88132a35bc638af306d48acbb72810d48fa6e6edd8ab375854773108e8bf70f021f7ef6a8273455a6d1f0c3b5aa2aff06ce7894049ab77fb8 - languageName: node - linkType: hard - "@isaacs/fs-minipass@npm:^4.0.0": version: 4.0.1 resolution: "@isaacs/fs-minipass@npm:4.0.1" @@ -1023,7 +1018,7 @@ __metadata: languageName: node linkType: hard -"@jridgewell/remapping@npm:^2.3.4, @jridgewell/remapping@npm:^2.3.5": +"@jridgewell/remapping@npm:^2.3.5": version: 2.3.5 resolution: "@jridgewell/remapping@npm:2.3.5" dependencies: @@ -1082,7 +1077,7 @@ __metadata: languageName: node linkType: hard -"@napi-rs/wasm-runtime@npm:^1.1.0": +"@napi-rs/wasm-runtime@npm:^1.1.1": version: 1.1.1 resolution: "@napi-rs/wasm-runtime@npm:1.1.1" dependencies: @@ -1413,8 +1408,8 @@ __metadata: linkType: hard "@react-email/components@npm:^1.0.7": - version: 1.0.7 - resolution: "@react-email/components@npm:1.0.7" + version: 1.0.8 + resolution: "@react-email/components@npm:1.0.8" dependencies: "@react-email/body": "npm:0.2.1" "@react-email/button": "npm:0.2.1" @@ -1434,11 +1429,11 @@ __metadata: "@react-email/render": "npm:2.0.4" "@react-email/row": "npm:0.0.13" "@react-email/section": "npm:0.0.17" - "@react-email/tailwind": "npm:2.0.4" + "@react-email/tailwind": "npm:2.0.5" "@react-email/text": "npm:0.1.6" peerDependencies: react: ^18.0 || ^19.0 || ^19.0.0-rc - checksum: 10c0/870202c80bc18950f78fe687ea3b7f15a514aee350eae8611c8e2a458794c20635036d501b43f9e97224e2134e465de78360351262e77b2461d15bef4ee3980d + checksum: 10c0/4555e2cabaeb5a7da2d82ece93e2003096d2b9efa0b792d1cd0cca823c5120e81525d131341fb8d00d7ea1c2cb1410cdd81035f91a7f151b0ef5018376ca9e8f languageName: node linkType: hard @@ -1565,9 +1560,9 @@ __metadata: languageName: node linkType: hard -"@react-email/tailwind@npm:2.0.4": - version: 2.0.4 - resolution: "@react-email/tailwind@npm:2.0.4" +"@react-email/tailwind@npm:2.0.5": + version: 2.0.5 + resolution: "@react-email/tailwind@npm:2.0.5" dependencies: tailwindcss: "npm:^4.1.18" peerDependencies: @@ -1604,7 +1599,7 @@ __metadata: optional: true "@react-email/preview": optional: true - checksum: 10c0/1420baa01380c62c7abb609a3f011f2af326b440c9941527a91ca56b14c8a902e1ed823124b04a3001fd726d363092405758a4f251d3b330097896d20a6a1f92 + checksum: 10c0/b26363dc977cb39a9d7df7663a4ddc47c677290b945735c1a7644ed352c20514c31f97b1b5cc112e780db1797b6f93ae2355dc9e7973525d1b24770c5f231ea5 languageName: node linkType: hard @@ -1624,184 +1619,184 @@ __metadata: languageName: node linkType: hard -"@rolldown/pluginutils@npm:1.0.0-rc.2": - version: 1.0.0-rc.2 - resolution: "@rolldown/pluginutils@npm:1.0.0-rc.2" - checksum: 10c0/35d3dec35e00ab090d5ff8287e27af98a15da897dc8b034fe0e00d03e0931b9e993603c054be9e8925e2bde040c44c18b48cb8aeea6a261fd1c8f46837038927 +"@rolldown/pluginutils@npm:1.0.0-rc.3": + version: 1.0.0-rc.3 + resolution: "@rolldown/pluginutils@npm:1.0.0-rc.3" + checksum: 10c0/3928b6282a30f307d1b075d2f217180ae173ea9e00638ce46ab65f089bd5f7a0b2c488ae1ce530f509387793c656a2910337c4cd68fa9d37d7e439365989e699 languageName: node linkType: hard -"@rollup/rollup-android-arm-eabi@npm:4.57.1": - version: 4.57.1 - resolution: "@rollup/rollup-android-arm-eabi@npm:4.57.1" +"@rollup/rollup-android-arm-eabi@npm:4.59.0": + version: 4.59.0 + resolution: "@rollup/rollup-android-arm-eabi@npm:4.59.0" conditions: os=android & cpu=arm languageName: node linkType: hard -"@rollup/rollup-android-arm64@npm:4.57.1": - version: 4.57.1 - resolution: "@rollup/rollup-android-arm64@npm:4.57.1" +"@rollup/rollup-android-arm64@npm:4.59.0": + version: 4.59.0 + resolution: "@rollup/rollup-android-arm64@npm:4.59.0" conditions: os=android & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-darwin-arm64@npm:4.57.1": - version: 4.57.1 - resolution: "@rollup/rollup-darwin-arm64@npm:4.57.1" +"@rollup/rollup-darwin-arm64@npm:4.59.0": + version: 4.59.0 + resolution: "@rollup/rollup-darwin-arm64@npm:4.59.0" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-darwin-x64@npm:4.57.1": - version: 4.57.1 - resolution: "@rollup/rollup-darwin-x64@npm:4.57.1" +"@rollup/rollup-darwin-x64@npm:4.59.0": + version: 4.59.0 + resolution: "@rollup/rollup-darwin-x64@npm:4.59.0" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@rollup/rollup-freebsd-arm64@npm:4.57.1": - version: 4.57.1 - resolution: "@rollup/rollup-freebsd-arm64@npm:4.57.1" +"@rollup/rollup-freebsd-arm64@npm:4.59.0": + version: 4.59.0 + resolution: "@rollup/rollup-freebsd-arm64@npm:4.59.0" conditions: os=freebsd & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-freebsd-x64@npm:4.57.1": - version: 4.57.1 - resolution: "@rollup/rollup-freebsd-x64@npm:4.57.1" +"@rollup/rollup-freebsd-x64@npm:4.59.0": + version: 4.59.0 + resolution: "@rollup/rollup-freebsd-x64@npm:4.59.0" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard -"@rollup/rollup-linux-arm-gnueabihf@npm:4.57.1": - version: 4.57.1 - resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.57.1" +"@rollup/rollup-linux-arm-gnueabihf@npm:4.59.0": + version: 4.59.0 + resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.59.0" conditions: os=linux & cpu=arm & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-arm-musleabihf@npm:4.57.1": - version: 4.57.1 - resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.57.1" +"@rollup/rollup-linux-arm-musleabihf@npm:4.59.0": + version: 4.59.0 + resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.59.0" conditions: os=linux & cpu=arm & libc=musl languageName: node linkType: hard -"@rollup/rollup-linux-arm64-gnu@npm:4.57.1": - version: 4.57.1 - resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.57.1" +"@rollup/rollup-linux-arm64-gnu@npm:4.59.0": + version: 4.59.0 + resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.59.0" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-arm64-musl@npm:4.57.1": - version: 4.57.1 - resolution: "@rollup/rollup-linux-arm64-musl@npm:4.57.1" +"@rollup/rollup-linux-arm64-musl@npm:4.59.0": + version: 4.59.0 + resolution: "@rollup/rollup-linux-arm64-musl@npm:4.59.0" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@rollup/rollup-linux-loong64-gnu@npm:4.57.1": - version: 4.57.1 - resolution: "@rollup/rollup-linux-loong64-gnu@npm:4.57.1" +"@rollup/rollup-linux-loong64-gnu@npm:4.59.0": + version: 4.59.0 + resolution: "@rollup/rollup-linux-loong64-gnu@npm:4.59.0" conditions: os=linux & cpu=loong64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-loong64-musl@npm:4.57.1": - version: 4.57.1 - resolution: "@rollup/rollup-linux-loong64-musl@npm:4.57.1" +"@rollup/rollup-linux-loong64-musl@npm:4.59.0": + version: 4.59.0 + resolution: "@rollup/rollup-linux-loong64-musl@npm:4.59.0" conditions: os=linux & cpu=loong64 & libc=musl languageName: node linkType: hard -"@rollup/rollup-linux-ppc64-gnu@npm:4.57.1": - version: 4.57.1 - resolution: "@rollup/rollup-linux-ppc64-gnu@npm:4.57.1" +"@rollup/rollup-linux-ppc64-gnu@npm:4.59.0": + version: 4.59.0 + resolution: "@rollup/rollup-linux-ppc64-gnu@npm:4.59.0" conditions: os=linux & cpu=ppc64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-ppc64-musl@npm:4.57.1": - version: 4.57.1 - resolution: "@rollup/rollup-linux-ppc64-musl@npm:4.57.1" +"@rollup/rollup-linux-ppc64-musl@npm:4.59.0": + version: 4.59.0 + resolution: "@rollup/rollup-linux-ppc64-musl@npm:4.59.0" conditions: os=linux & cpu=ppc64 & libc=musl languageName: node linkType: hard -"@rollup/rollup-linux-riscv64-gnu@npm:4.57.1": - version: 4.57.1 - resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.57.1" +"@rollup/rollup-linux-riscv64-gnu@npm:4.59.0": + version: 4.59.0 + resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.59.0" conditions: os=linux & cpu=riscv64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-riscv64-musl@npm:4.57.1": - version: 4.57.1 - resolution: "@rollup/rollup-linux-riscv64-musl@npm:4.57.1" +"@rollup/rollup-linux-riscv64-musl@npm:4.59.0": + version: 4.59.0 + resolution: "@rollup/rollup-linux-riscv64-musl@npm:4.59.0" conditions: os=linux & cpu=riscv64 & libc=musl languageName: node linkType: hard -"@rollup/rollup-linux-s390x-gnu@npm:4.57.1": - version: 4.57.1 - resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.57.1" +"@rollup/rollup-linux-s390x-gnu@npm:4.59.0": + version: 4.59.0 + resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.59.0" conditions: os=linux & cpu=s390x & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-x64-gnu@npm:4.57.1": - version: 4.57.1 - resolution: "@rollup/rollup-linux-x64-gnu@npm:4.57.1" +"@rollup/rollup-linux-x64-gnu@npm:4.59.0": + version: 4.59.0 + resolution: "@rollup/rollup-linux-x64-gnu@npm:4.59.0" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-x64-musl@npm:4.57.1": - version: 4.57.1 - resolution: "@rollup/rollup-linux-x64-musl@npm:4.57.1" +"@rollup/rollup-linux-x64-musl@npm:4.59.0": + version: 4.59.0 + resolution: "@rollup/rollup-linux-x64-musl@npm:4.59.0" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@rollup/rollup-openbsd-x64@npm:4.57.1": - version: 4.57.1 - resolution: "@rollup/rollup-openbsd-x64@npm:4.57.1" +"@rollup/rollup-openbsd-x64@npm:4.59.0": + version: 4.59.0 + resolution: "@rollup/rollup-openbsd-x64@npm:4.59.0" conditions: os=openbsd & cpu=x64 languageName: node linkType: hard -"@rollup/rollup-openharmony-arm64@npm:4.57.1": - version: 4.57.1 - resolution: "@rollup/rollup-openharmony-arm64@npm:4.57.1" +"@rollup/rollup-openharmony-arm64@npm:4.59.0": + version: 4.59.0 + resolution: "@rollup/rollup-openharmony-arm64@npm:4.59.0" conditions: os=openharmony & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-win32-arm64-msvc@npm:4.57.1": - version: 4.57.1 - resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.57.1" +"@rollup/rollup-win32-arm64-msvc@npm:4.59.0": + version: 4.59.0 + resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.59.0" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-win32-ia32-msvc@npm:4.57.1": - version: 4.57.1 - resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.57.1" +"@rollup/rollup-win32-ia32-msvc@npm:4.59.0": + version: 4.59.0 + resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.59.0" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@rollup/rollup-win32-x64-gnu@npm:4.57.1": - version: 4.57.1 - resolution: "@rollup/rollup-win32-x64-gnu@npm:4.57.1" +"@rollup/rollup-win32-x64-gnu@npm:4.59.0": + version: 4.59.0 + resolution: "@rollup/rollup-win32-x64-gnu@npm:4.59.0" conditions: os=win32 & cpu=x64 languageName: node linkType: hard -"@rollup/rollup-win32-x64-msvc@npm:4.57.1": - version: 4.57.1 - resolution: "@rollup/rollup-win32-x64-msvc@npm:4.57.1" +"@rollup/rollup-win32-x64-msvc@npm:4.59.0": + version: 4.59.0 + resolution: "@rollup/rollup-win32-x64-msvc@npm:4.59.0" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -1856,42 +1851,42 @@ __metadata: languageName: node linkType: hard -"@supabase/auth-js@npm:2.94.1": - version: 2.94.1 - resolution: "@supabase/auth-js@npm:2.94.1" +"@supabase/auth-js@npm:2.99.0": + version: 2.99.0 + resolution: "@supabase/auth-js@npm:2.99.0" dependencies: tslib: "npm:2.8.1" - checksum: 10c0/bf8f5183dd1e7a72b599e9607f0afa356bed0d5e5d89906107e8498304366a0075e2678fcd4b0f9b0700f91da3969196df91fdfc9a28199da237bff1b32bfff5 + checksum: 10c0/e7f20caae2af122007fccb371db9d160e37cdff1faeddae5ce3597519bc88e6e1299d6395692e2609e65b8aede2666aae5a788f6bc3685f6e02508e114da98ce languageName: node linkType: hard -"@supabase/functions-js@npm:2.94.1": - version: 2.94.1 - resolution: "@supabase/functions-js@npm:2.94.1" +"@supabase/functions-js@npm:2.99.0": + version: 2.99.0 + resolution: "@supabase/functions-js@npm:2.99.0" dependencies: tslib: "npm:2.8.1" - checksum: 10c0/72f4ae976c149aa13c31c4a2e693769688470fbf070100e1df8711237f12d2c6b478656c1d65921c54622438c5a56f8a9053ced753e39b844317d9f36530c4e4 + checksum: 10c0/1c0a6a0dbc313e8412a421d8d25b29df68bdebdb76d67c941339fa72321c5d956a1137514754c9a93d218b0abf82061321deee37148a4a00359084b01a8b1be7 languageName: node linkType: hard -"@supabase/postgrest-js@npm:2.94.1": - version: 2.94.1 - resolution: "@supabase/postgrest-js@npm:2.94.1" +"@supabase/postgrest-js@npm:2.99.0": + version: 2.99.0 + resolution: "@supabase/postgrest-js@npm:2.99.0" dependencies: tslib: "npm:2.8.1" - checksum: 10c0/c0aa2bc143c529b12ce534d1acc223f66672b1c946214417f770c61e1649943051d141a0f93080d688b4e3b7d68e391ed8a8d36ff7a72b2890db4dcc65722977 + checksum: 10c0/03a76130957ffdc9a4139edd2bfa7d023e34608b8df30350b082b77a475f6f4933e88681dfabbea9bcd7a5d4bd14cc6f69cad4dcfcdac975aef38e0973602dac languageName: node linkType: hard -"@supabase/realtime-js@npm:2.94.1": - version: 2.94.1 - resolution: "@supabase/realtime-js@npm:2.94.1" +"@supabase/realtime-js@npm:2.99.0": + version: 2.99.0 + resolution: "@supabase/realtime-js@npm:2.99.0" dependencies: "@types/phoenix": "npm:^1.6.6" "@types/ws": "npm:^8.18.1" tslib: "npm:2.8.1" ws: "npm:^8.18.2" - checksum: 10c0/7e874322e7227c5daf3a57811a5d2935c3183ea91cc6d08500d97fc09d2e690129c6be4a41b49fa4295a97322077a7ba1e85a17cb5b9358b50d61213b537af25 + checksum: 10c0/61e11c51ac9af583342b5d6c1c76917a44529289061da3d70d7752e78cb032bbf5c68a412799dea8658fb6f2636ca0ef7db77519508c0b08623c07a2b5d67140 languageName: node linkType: hard @@ -1906,113 +1901,113 @@ __metadata: languageName: node linkType: hard -"@supabase/storage-js@npm:2.94.1": - version: 2.94.1 - resolution: "@supabase/storage-js@npm:2.94.1" +"@supabase/storage-js@npm:2.99.0": + version: 2.99.0 + resolution: "@supabase/storage-js@npm:2.99.0" dependencies: iceberg-js: "npm:^0.8.1" tslib: "npm:2.8.1" - checksum: 10c0/cf708e09bc807362b916d3f3ba490182169bdf33b042fb6f9862e169322f660b844feacdd426cceba40466f09c8576ad2132d4290bf39a6b4e85ba8f6238a1fd + checksum: 10c0/31ab272dba137e34a2d69683f511b03b805071c694c61ec5118efdf57845aee53b2bea562562f30a0e031a55e5e13c7f2bb6dbe021f9d52e50affb1090b2481d languageName: node linkType: hard "@supabase/supabase-js@npm:^2.94.1": - version: 2.94.1 - resolution: "@supabase/supabase-js@npm:2.94.1" + version: 2.99.0 + resolution: "@supabase/supabase-js@npm:2.99.0" dependencies: - "@supabase/auth-js": "npm:2.94.1" - "@supabase/functions-js": "npm:2.94.1" - "@supabase/postgrest-js": "npm:2.94.1" - "@supabase/realtime-js": "npm:2.94.1" - "@supabase/storage-js": "npm:2.94.1" - checksum: 10c0/61b2959f08a919028455c7a4265449974cac7bc2799ead96f5f6891ab11415f5b36644497e394865e150df68f8d34180995bd02532dfe2de51bb8a77d6646dbf + "@supabase/auth-js": "npm:2.99.0" + "@supabase/functions-js": "npm:2.99.0" + "@supabase/postgrest-js": "npm:2.99.0" + "@supabase/realtime-js": "npm:2.99.0" + "@supabase/storage-js": "npm:2.99.0" + checksum: 10c0/6827b76f53a3594160617cd235e41278c100c253ae6634cc6126bd0c69d897d130c9ce53a04245030ceb337b0920e20d81400d45ad465c274a411db1e0dfd223 languageName: node linkType: hard -"@swc/core-darwin-arm64@npm:1.15.11": - version: 1.15.11 - resolution: "@swc/core-darwin-arm64@npm:1.15.11" +"@swc/core-darwin-arm64@npm:1.15.18": + version: 1.15.18 + resolution: "@swc/core-darwin-arm64@npm:1.15.18" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@swc/core-darwin-x64@npm:1.15.11": - version: 1.15.11 - resolution: "@swc/core-darwin-x64@npm:1.15.11" +"@swc/core-darwin-x64@npm:1.15.18": + version: 1.15.18 + resolution: "@swc/core-darwin-x64@npm:1.15.18" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@swc/core-linux-arm-gnueabihf@npm:1.15.11": - version: 1.15.11 - resolution: "@swc/core-linux-arm-gnueabihf@npm:1.15.11" +"@swc/core-linux-arm-gnueabihf@npm:1.15.18": + version: 1.15.18 + resolution: "@swc/core-linux-arm-gnueabihf@npm:1.15.18" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@swc/core-linux-arm64-gnu@npm:1.15.11": - version: 1.15.11 - resolution: "@swc/core-linux-arm64-gnu@npm:1.15.11" +"@swc/core-linux-arm64-gnu@npm:1.15.18": + version: 1.15.18 + resolution: "@swc/core-linux-arm64-gnu@npm:1.15.18" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@swc/core-linux-arm64-musl@npm:1.15.11": - version: 1.15.11 - resolution: "@swc/core-linux-arm64-musl@npm:1.15.11" +"@swc/core-linux-arm64-musl@npm:1.15.18": + version: 1.15.18 + resolution: "@swc/core-linux-arm64-musl@npm:1.15.18" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@swc/core-linux-x64-gnu@npm:1.15.11": - version: 1.15.11 - resolution: "@swc/core-linux-x64-gnu@npm:1.15.11" +"@swc/core-linux-x64-gnu@npm:1.15.18": + version: 1.15.18 + resolution: "@swc/core-linux-x64-gnu@npm:1.15.18" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@swc/core-linux-x64-musl@npm:1.15.11": - version: 1.15.11 - resolution: "@swc/core-linux-x64-musl@npm:1.15.11" +"@swc/core-linux-x64-musl@npm:1.15.18": + version: 1.15.18 + resolution: "@swc/core-linux-x64-musl@npm:1.15.18" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@swc/core-win32-arm64-msvc@npm:1.15.11": - version: 1.15.11 - resolution: "@swc/core-win32-arm64-msvc@npm:1.15.11" +"@swc/core-win32-arm64-msvc@npm:1.15.18": + version: 1.15.18 + resolution: "@swc/core-win32-arm64-msvc@npm:1.15.18" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@swc/core-win32-ia32-msvc@npm:1.15.11": - version: 1.15.11 - resolution: "@swc/core-win32-ia32-msvc@npm:1.15.11" +"@swc/core-win32-ia32-msvc@npm:1.15.18": + version: 1.15.18 + resolution: "@swc/core-win32-ia32-msvc@npm:1.15.18" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@swc/core-win32-x64-msvc@npm:1.15.11": - version: 1.15.11 - resolution: "@swc/core-win32-x64-msvc@npm:1.15.11" +"@swc/core-win32-x64-msvc@npm:1.15.18": + version: 1.15.18 + resolution: "@swc/core-win32-x64-msvc@npm:1.15.18" conditions: os=win32 & cpu=x64 languageName: node linkType: hard "@swc/core@npm:^1.15.2": - version: 1.15.11 - resolution: "@swc/core@npm:1.15.11" - dependencies: - "@swc/core-darwin-arm64": "npm:1.15.11" - "@swc/core-darwin-x64": "npm:1.15.11" - "@swc/core-linux-arm-gnueabihf": "npm:1.15.11" - "@swc/core-linux-arm64-gnu": "npm:1.15.11" - "@swc/core-linux-arm64-musl": "npm:1.15.11" - "@swc/core-linux-x64-gnu": "npm:1.15.11" - "@swc/core-linux-x64-musl": "npm:1.15.11" - "@swc/core-win32-arm64-msvc": "npm:1.15.11" - "@swc/core-win32-ia32-msvc": "npm:1.15.11" - "@swc/core-win32-x64-msvc": "npm:1.15.11" + version: 1.15.18 + resolution: "@swc/core@npm:1.15.18" + dependencies: + "@swc/core-darwin-arm64": "npm:1.15.18" + "@swc/core-darwin-x64": "npm:1.15.18" + "@swc/core-linux-arm-gnueabihf": "npm:1.15.18" + "@swc/core-linux-arm64-gnu": "npm:1.15.18" + "@swc/core-linux-arm64-musl": "npm:1.15.18" + "@swc/core-linux-x64-gnu": "npm:1.15.18" + "@swc/core-linux-x64-musl": "npm:1.15.18" + "@swc/core-win32-arm64-msvc": "npm:1.15.18" + "@swc/core-win32-ia32-msvc": "npm:1.15.18" + "@swc/core-win32-x64-msvc": "npm:1.15.18" "@swc/counter": "npm:^0.1.3" "@swc/types": "npm:^0.1.25" peerDependencies: @@ -2041,7 +2036,7 @@ __metadata: peerDependenciesMeta: "@swc/helpers": optional: true - checksum: 10c0/84b9dbed8d4d39da9941b796f97f84a52a3ab1a5e002b0395e98d0c3368acab4dde84051eb97c47c85b67c5fc29e3e9b7a646cf238a96df93fc7c54177925c3e + checksum: 10c0/b52381eefaf88ba1b8ff603c58418fcc7ca661cd0fc8b68bfc17e523b356d027dfcc3bfd459ddc107a67021a943979a79cd0589338d20c6564bbb5cf8f35afb5 languageName: node linkType: hard @@ -2070,128 +2065,128 @@ __metadata: languageName: node linkType: hard -"@tailwindcss/node@npm:4.1.18": - version: 4.1.18 - resolution: "@tailwindcss/node@npm:4.1.18" +"@tailwindcss/node@npm:4.2.1": + version: 4.2.1 + resolution: "@tailwindcss/node@npm:4.2.1" dependencies: - "@jridgewell/remapping": "npm:^2.3.4" - enhanced-resolve: "npm:^5.18.3" + "@jridgewell/remapping": "npm:^2.3.5" + enhanced-resolve: "npm:^5.19.0" jiti: "npm:^2.6.1" - lightningcss: "npm:1.30.2" + lightningcss: "npm:1.31.1" magic-string: "npm:^0.30.21" source-map-js: "npm:^1.2.1" - tailwindcss: "npm:4.1.18" - checksum: 10c0/0527f4cb602a80413a7f135edc9a9c785edd543cceedd046ed2401d4c35c1ec433d5162c325d31ee7248f3560a709dafe30a50c1406662f28a2b3aaeb21f69fe + tailwindcss: "npm:4.2.1" + checksum: 10c0/7b1bf77d2d714df98201cc2f308bee8edfebaf2ef520ec15cb9515e2aadabb28b4d2ecb165dd278716b3f6767da10e4d9a445de34ee8f7ec056fc9c1d8e275a1 languageName: node linkType: hard -"@tailwindcss/oxide-android-arm64@npm:4.1.18": - version: 4.1.18 - resolution: "@tailwindcss/oxide-android-arm64@npm:4.1.18" +"@tailwindcss/oxide-android-arm64@npm:4.2.1": + version: 4.2.1 + resolution: "@tailwindcss/oxide-android-arm64@npm:4.2.1" conditions: os=android & cpu=arm64 languageName: node linkType: hard -"@tailwindcss/oxide-darwin-arm64@npm:4.1.18": - version: 4.1.18 - resolution: "@tailwindcss/oxide-darwin-arm64@npm:4.1.18" +"@tailwindcss/oxide-darwin-arm64@npm:4.2.1": + version: 4.2.1 + resolution: "@tailwindcss/oxide-darwin-arm64@npm:4.2.1" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@tailwindcss/oxide-darwin-x64@npm:4.1.18": - version: 4.1.18 - resolution: "@tailwindcss/oxide-darwin-x64@npm:4.1.18" +"@tailwindcss/oxide-darwin-x64@npm:4.2.1": + version: 4.2.1 + resolution: "@tailwindcss/oxide-darwin-x64@npm:4.2.1" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@tailwindcss/oxide-freebsd-x64@npm:4.1.18": - version: 4.1.18 - resolution: "@tailwindcss/oxide-freebsd-x64@npm:4.1.18" +"@tailwindcss/oxide-freebsd-x64@npm:4.2.1": + version: 4.2.1 + resolution: "@tailwindcss/oxide-freebsd-x64@npm:4.2.1" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard -"@tailwindcss/oxide-linux-arm-gnueabihf@npm:4.1.18": - version: 4.1.18 - resolution: "@tailwindcss/oxide-linux-arm-gnueabihf@npm:4.1.18" +"@tailwindcss/oxide-linux-arm-gnueabihf@npm:4.2.1": + version: 4.2.1 + resolution: "@tailwindcss/oxide-linux-arm-gnueabihf@npm:4.2.1" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@tailwindcss/oxide-linux-arm64-gnu@npm:4.1.18": - version: 4.1.18 - resolution: "@tailwindcss/oxide-linux-arm64-gnu@npm:4.1.18" +"@tailwindcss/oxide-linux-arm64-gnu@npm:4.2.1": + version: 4.2.1 + resolution: "@tailwindcss/oxide-linux-arm64-gnu@npm:4.2.1" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@tailwindcss/oxide-linux-arm64-musl@npm:4.1.18": - version: 4.1.18 - resolution: "@tailwindcss/oxide-linux-arm64-musl@npm:4.1.18" +"@tailwindcss/oxide-linux-arm64-musl@npm:4.2.1": + version: 4.2.1 + resolution: "@tailwindcss/oxide-linux-arm64-musl@npm:4.2.1" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@tailwindcss/oxide-linux-x64-gnu@npm:4.1.18": - version: 4.1.18 - resolution: "@tailwindcss/oxide-linux-x64-gnu@npm:4.1.18" +"@tailwindcss/oxide-linux-x64-gnu@npm:4.2.1": + version: 4.2.1 + resolution: "@tailwindcss/oxide-linux-x64-gnu@npm:4.2.1" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@tailwindcss/oxide-linux-x64-musl@npm:4.1.18": - version: 4.1.18 - resolution: "@tailwindcss/oxide-linux-x64-musl@npm:4.1.18" +"@tailwindcss/oxide-linux-x64-musl@npm:4.2.1": + version: 4.2.1 + resolution: "@tailwindcss/oxide-linux-x64-musl@npm:4.2.1" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@tailwindcss/oxide-wasm32-wasi@npm:4.1.18": - version: 4.1.18 - resolution: "@tailwindcss/oxide-wasm32-wasi@npm:4.1.18" +"@tailwindcss/oxide-wasm32-wasi@npm:4.2.1": + version: 4.2.1 + resolution: "@tailwindcss/oxide-wasm32-wasi@npm:4.2.1" dependencies: - "@emnapi/core": "npm:^1.7.1" - "@emnapi/runtime": "npm:^1.7.1" + "@emnapi/core": "npm:^1.8.1" + "@emnapi/runtime": "npm:^1.8.1" "@emnapi/wasi-threads": "npm:^1.1.0" - "@napi-rs/wasm-runtime": "npm:^1.1.0" + "@napi-rs/wasm-runtime": "npm:^1.1.1" "@tybys/wasm-util": "npm:^0.10.1" - tslib: "npm:^2.4.0" + tslib: "npm:^2.8.1" conditions: cpu=wasm32 languageName: node linkType: hard -"@tailwindcss/oxide-win32-arm64-msvc@npm:4.1.18": - version: 4.1.18 - resolution: "@tailwindcss/oxide-win32-arm64-msvc@npm:4.1.18" +"@tailwindcss/oxide-win32-arm64-msvc@npm:4.2.1": + version: 4.2.1 + resolution: "@tailwindcss/oxide-win32-arm64-msvc@npm:4.2.1" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@tailwindcss/oxide-win32-x64-msvc@npm:4.1.18": - version: 4.1.18 - resolution: "@tailwindcss/oxide-win32-x64-msvc@npm:4.1.18" +"@tailwindcss/oxide-win32-x64-msvc@npm:4.2.1": + version: 4.2.1 + resolution: "@tailwindcss/oxide-win32-x64-msvc@npm:4.2.1" conditions: os=win32 & cpu=x64 languageName: node linkType: hard -"@tailwindcss/oxide@npm:4.1.18": - version: 4.1.18 - resolution: "@tailwindcss/oxide@npm:4.1.18" - dependencies: - "@tailwindcss/oxide-android-arm64": "npm:4.1.18" - "@tailwindcss/oxide-darwin-arm64": "npm:4.1.18" - "@tailwindcss/oxide-darwin-x64": "npm:4.1.18" - "@tailwindcss/oxide-freebsd-x64": "npm:4.1.18" - "@tailwindcss/oxide-linux-arm-gnueabihf": "npm:4.1.18" - "@tailwindcss/oxide-linux-arm64-gnu": "npm:4.1.18" - "@tailwindcss/oxide-linux-arm64-musl": "npm:4.1.18" - "@tailwindcss/oxide-linux-x64-gnu": "npm:4.1.18" - "@tailwindcss/oxide-linux-x64-musl": "npm:4.1.18" - "@tailwindcss/oxide-wasm32-wasi": "npm:4.1.18" - "@tailwindcss/oxide-win32-arm64-msvc": "npm:4.1.18" - "@tailwindcss/oxide-win32-x64-msvc": "npm:4.1.18" +"@tailwindcss/oxide@npm:4.2.1": + version: 4.2.1 + resolution: "@tailwindcss/oxide@npm:4.2.1" + dependencies: + "@tailwindcss/oxide-android-arm64": "npm:4.2.1" + "@tailwindcss/oxide-darwin-arm64": "npm:4.2.1" + "@tailwindcss/oxide-darwin-x64": "npm:4.2.1" + "@tailwindcss/oxide-freebsd-x64": "npm:4.2.1" + "@tailwindcss/oxide-linux-arm-gnueabihf": "npm:4.2.1" + "@tailwindcss/oxide-linux-arm64-gnu": "npm:4.2.1" + "@tailwindcss/oxide-linux-arm64-musl": "npm:4.2.1" + "@tailwindcss/oxide-linux-x64-gnu": "npm:4.2.1" + "@tailwindcss/oxide-linux-x64-musl": "npm:4.2.1" + "@tailwindcss/oxide-wasm32-wasi": "npm:4.2.1" + "@tailwindcss/oxide-win32-arm64-msvc": "npm:4.2.1" + "@tailwindcss/oxide-win32-x64-msvc": "npm:4.2.1" dependenciesMeta: "@tailwindcss/oxide-android-arm64": optional: true @@ -2217,20 +2212,20 @@ __metadata: optional: true "@tailwindcss/oxide-win32-x64-msvc": optional: true - checksum: 10c0/1ff978ef24ffae6369e0468bd8c71d1995a00f1697ac1b8f24e92d2d5505ae23534e6257194e78360c16abbe34fc70de508c86d589917336067a60d755b86fcb + checksum: 10c0/4f9bfa40cde6925eed1759caf857831779a834a1b8776cc7df5bb48a279b7dcd2e761a31ffbd297d135a64b58f25e092d7c781c06cf44667746f7e5a5a3e0183 languageName: node linkType: hard "@tailwindcss/postcss@npm:^4.1.18": - version: 4.1.18 - resolution: "@tailwindcss/postcss@npm:4.1.18" + version: 4.2.1 + resolution: "@tailwindcss/postcss@npm:4.2.1" dependencies: "@alloc/quick-lru": "npm:^5.2.0" - "@tailwindcss/node": "npm:4.1.18" - "@tailwindcss/oxide": "npm:4.1.18" - postcss: "npm:^8.4.41" - tailwindcss: "npm:4.1.18" - checksum: 10c0/230d29ca8103c77113803bab1ac0209ad5102a8f5228ade5fe3fbc295e185e9d443416ac9802798e054b0c1ca3c5fa00a907b04d24fb8670b6f795a6d0ac1390 + "@tailwindcss/node": "npm:4.2.1" + "@tailwindcss/oxide": "npm:4.2.1" + postcss: "npm:^8.5.6" + tailwindcss: "npm:4.2.1" + checksum: 10c0/c9869a10c284241b2e51ba25750ae711d1ac3187356093c3a047eb8139124e73412036de7a11ad5c145360a312dcdebde59849f6d65e6296cba525186a8243f6 languageName: node linkType: hard @@ -2372,12 +2367,12 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:*, @types/node@npm:^22.19.8": - version: 22.19.8 - resolution: "@types/node@npm:22.19.8" +"@types/node@npm:*": + version: 25.4.0 + resolution: "@types/node@npm:25.4.0" dependencies: - undici-types: "npm:~6.21.0" - checksum: 10c0/35c3c0916a983dd33ddd8710d868a2678192c2ff3c6677e1d348872b78b9911c929279579c78efac1c9e61958b3f61cc5d3e725aaa41462f16f531d381ff15e6 + undici-types: "npm:~7.18.0" + checksum: 10c0/da81e8b0a3a57964b1b5f85d134bfefc1b923fd67ed41756842348a049d7915b72e8773f5598d6929b9cb8119c2427993c55d364fd93bd572a3450e58b98a60e languageName: node linkType: hard @@ -2388,6 +2383,15 @@ __metadata: languageName: node linkType: hard +"@types/node@npm:^22.19.8": + version: 22.19.15 + resolution: "@types/node@npm:22.19.15" + dependencies: + undici-types: "npm:~6.21.0" + checksum: 10c0/f17eaf3d0d1da5e93ad9e287efb78201f8a5282973c004c5f70d91675c5c6b926a23acaa7b158a42b3d7e27e36b349d65a531710c91c308fca53dd7fa280ef98 + languageName: node + linkType: hard + "@types/phoenix@npm:^1.6.6": version: 1.6.7 resolution: "@types/phoenix@npm:1.6.7" @@ -2405,11 +2409,11 @@ __metadata: linkType: hard "@types/react@npm:^19.2.11": - version: 19.2.11 - resolution: "@types/react@npm:19.2.11" + version: 19.2.14 + resolution: "@types/react@npm:19.2.14" dependencies: csstype: "npm:^3.2.2" - checksum: 10c0/a02aa87853fa6ef82353dd58803f18744e367e05760845be9a35f9771031fb81077ef05fb5ef3e9d7bbd91d3f8394b47106a18a833ddfed81e6fbf0be55a3544 + checksum: 10c0/7d25bf41b57719452d86d2ac0570b659210402707313a36ee612666bf11275a1c69824f8c3ee1fdca077ccfe15452f6da8f1224529b917050eb2d861e52b59b7 languageName: node linkType: hard @@ -2422,138 +2426,138 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:8.54.0": - version: 8.54.0 - resolution: "@typescript-eslint/eslint-plugin@npm:8.54.0" +"@typescript-eslint/eslint-plugin@npm:8.57.0": + version: 8.57.0 + resolution: "@typescript-eslint/eslint-plugin@npm:8.57.0" dependencies: "@eslint-community/regexpp": "npm:^4.12.2" - "@typescript-eslint/scope-manager": "npm:8.54.0" - "@typescript-eslint/type-utils": "npm:8.54.0" - "@typescript-eslint/utils": "npm:8.54.0" - "@typescript-eslint/visitor-keys": "npm:8.54.0" + "@typescript-eslint/scope-manager": "npm:8.57.0" + "@typescript-eslint/type-utils": "npm:8.57.0" + "@typescript-eslint/utils": "npm:8.57.0" + "@typescript-eslint/visitor-keys": "npm:8.57.0" ignore: "npm:^7.0.5" natural-compare: "npm:^1.4.0" ts-api-utils: "npm:^2.4.0" peerDependencies: - "@typescript-eslint/parser": ^8.54.0 - eslint: ^8.57.0 || ^9.0.0 + "@typescript-eslint/parser": ^8.57.0 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: ">=4.8.4 <6.0.0" - checksum: 10c0/e533c8285880b883e02a833f378597c2776e6b0c20a5935440e2a02c1c42f40069a8badcf6d581bb4ec35a6856a806c4b66674c1c15c33cd64cc6b9c0cdd1dad + checksum: 10c0/600033b98dd96e11bb0e22ff77dcaa0f9e9135b60046267059296ce8c8870dfabcddf40d5c8b62415eb3e2133e77a1fb1ac08dca42b859533dd85fbba1f220f7 languageName: node linkType: hard -"@typescript-eslint/parser@npm:8.54.0": - version: 8.54.0 - resolution: "@typescript-eslint/parser@npm:8.54.0" +"@typescript-eslint/parser@npm:8.57.0": + version: 8.57.0 + resolution: "@typescript-eslint/parser@npm:8.57.0" dependencies: - "@typescript-eslint/scope-manager": "npm:8.54.0" - "@typescript-eslint/types": "npm:8.54.0" - "@typescript-eslint/typescript-estree": "npm:8.54.0" - "@typescript-eslint/visitor-keys": "npm:8.54.0" + "@typescript-eslint/scope-manager": "npm:8.57.0" + "@typescript-eslint/types": "npm:8.57.0" + "@typescript-eslint/typescript-estree": "npm:8.57.0" + "@typescript-eslint/visitor-keys": "npm:8.57.0" debug: "npm:^4.4.3" peerDependencies: - eslint: ^8.57.0 || ^9.0.0 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: ">=4.8.4 <6.0.0" - checksum: 10c0/60a1cfe94bc23086f03701640f4d83d7e37b8f4d729011e0f029e5accf2b3d099c50938c0a798a399e86046279432ff663f33102ba4338c4c82f7acead2bcbac + checksum: 10c0/c224e0802cdc42ad7c79553018d6572370eff6539b3cb92220e44da3931dfe7e94a11fcea7d30d9c9366e76d50488c8c9d59002ba52dd6818fdc598280f7990c languageName: node linkType: hard -"@typescript-eslint/project-service@npm:8.54.0": - version: 8.54.0 - resolution: "@typescript-eslint/project-service@npm:8.54.0" +"@typescript-eslint/project-service@npm:8.57.0": + version: 8.57.0 + resolution: "@typescript-eslint/project-service@npm:8.57.0" dependencies: - "@typescript-eslint/tsconfig-utils": "npm:^8.54.0" - "@typescript-eslint/types": "npm:^8.54.0" + "@typescript-eslint/tsconfig-utils": "npm:^8.57.0" + "@typescript-eslint/types": "npm:^8.57.0" debug: "npm:^4.4.3" peerDependencies: typescript: ">=4.8.4 <6.0.0" - checksum: 10c0/3392ae259199021a80616a44d9484d1c363f61bc5c631dff2d08c6a906c98716a20caa7b832b8970120a1eb1eb2de3ee890cd527d6edb04f532f4e48a690a792 + checksum: 10c0/f97c25ad9c39957fc58fba21dbc8ce928d3889f95b0ecc93b477da3ce9bb6057bf866cac8114c0c93c455f68d0fb5b0042dc4771e436f07cd9c975bc61f3221f languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:8.54.0": - version: 8.54.0 - resolution: "@typescript-eslint/scope-manager@npm:8.54.0" +"@typescript-eslint/scope-manager@npm:8.57.0": + version: 8.57.0 + resolution: "@typescript-eslint/scope-manager@npm:8.57.0" dependencies: - "@typescript-eslint/types": "npm:8.54.0" - "@typescript-eslint/visitor-keys": "npm:8.54.0" - checksum: 10c0/794740a5c0c1afc38d71e6bc59cc62870286e40d99f15e9760e76fb3d4197e961ee151c286c428535c404f5137721242a14da21350b749d0feb1f589f167814f + "@typescript-eslint/types": "npm:8.57.0" + "@typescript-eslint/visitor-keys": "npm:8.57.0" + checksum: 10c0/a3e1243044f4634a36308f0d027db97ef686ed88cb93183feee1ba0a6de4eaa8824bb63b79075241c0a275d989d5f2641a6341cc785a6c688ee6f0d05c07d723 languageName: node linkType: hard -"@typescript-eslint/tsconfig-utils@npm:8.54.0, @typescript-eslint/tsconfig-utils@npm:^8.54.0": - version: 8.54.0 - resolution: "@typescript-eslint/tsconfig-utils@npm:8.54.0" +"@typescript-eslint/tsconfig-utils@npm:8.57.0, @typescript-eslint/tsconfig-utils@npm:^8.57.0": + version: 8.57.0 + resolution: "@typescript-eslint/tsconfig-utils@npm:8.57.0" peerDependencies: typescript: ">=4.8.4 <6.0.0" - checksum: 10c0/e8598b0f051650c085d749002138d12249a3efd03e7de02e9e7913939dddd649d159b91f29ca3d28f5ee798b3f528a7195688e23c5e0b315d534e7af20a0c99a + checksum: 10c0/d63f4de1a9d39c208b05a93df838318ff48af0a6ae561395d1860a8fd1fc552d47cc08065c445e084fb67bfac1c5a477183213477ed2bca688b9409cbeda3965 languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:8.54.0": - version: 8.54.0 - resolution: "@typescript-eslint/type-utils@npm:8.54.0" +"@typescript-eslint/type-utils@npm:8.57.0": + version: 8.57.0 + resolution: "@typescript-eslint/type-utils@npm:8.57.0" dependencies: - "@typescript-eslint/types": "npm:8.54.0" - "@typescript-eslint/typescript-estree": "npm:8.54.0" - "@typescript-eslint/utils": "npm:8.54.0" + "@typescript-eslint/types": "npm:8.57.0" + "@typescript-eslint/typescript-estree": "npm:8.57.0" + "@typescript-eslint/utils": "npm:8.57.0" debug: "npm:^4.4.3" ts-api-utils: "npm:^2.4.0" peerDependencies: - eslint: ^8.57.0 || ^9.0.0 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: ">=4.8.4 <6.0.0" - checksum: 10c0/ad807800d8b2662f823505249a84a6f5b1246b192a7ff08c49f298e220e4d9bb3d76f1f0852510421e030161604a4b939bff87f11b9074f118a3bd1d26139c6f + checksum: 10c0/55fd3b6b71d76602cead51fe3ea246eb908e2614bbe092fae26d9320f73c2f107e82d28e2cf509b61ea5f29d5b1fa32046bef0823cea63105bc35c15319e95ec languageName: node linkType: hard -"@typescript-eslint/types@npm:8.54.0, @typescript-eslint/types@npm:^8.54.0": - version: 8.54.0 - resolution: "@typescript-eslint/types@npm:8.54.0" - checksum: 10c0/2219594fe5e8931ff91fd1b7a2606d33cd4f093d43f9ca71bcaa37f106ef79ad51f830dea51392f7e3d8bca77f7077ef98733f87bc008fad2f0bbd9ea5fb8a40 +"@typescript-eslint/types@npm:8.57.0, @typescript-eslint/types@npm:^8.57.0": + version: 8.57.0 + resolution: "@typescript-eslint/types@npm:8.57.0" + checksum: 10c0/69eb21a9a550f17ce9445b7bfab9099d6a43fa33f79506df966793077d73423dad7612f33a7efb1e09f4403a889ba6b7a44987cf3e6fea0e63a373022226bc68 languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:8.54.0": - version: 8.54.0 - resolution: "@typescript-eslint/typescript-estree@npm:8.54.0" +"@typescript-eslint/typescript-estree@npm:8.57.0": + version: 8.57.0 + resolution: "@typescript-eslint/typescript-estree@npm:8.57.0" dependencies: - "@typescript-eslint/project-service": "npm:8.54.0" - "@typescript-eslint/tsconfig-utils": "npm:8.54.0" - "@typescript-eslint/types": "npm:8.54.0" - "@typescript-eslint/visitor-keys": "npm:8.54.0" + "@typescript-eslint/project-service": "npm:8.57.0" + "@typescript-eslint/tsconfig-utils": "npm:8.57.0" + "@typescript-eslint/types": "npm:8.57.0" + "@typescript-eslint/visitor-keys": "npm:8.57.0" debug: "npm:^4.4.3" - minimatch: "npm:^9.0.5" + minimatch: "npm:^10.2.2" semver: "npm:^7.7.3" tinyglobby: "npm:^0.2.15" ts-api-utils: "npm:^2.4.0" peerDependencies: typescript: ">=4.8.4 <6.0.0" - checksum: 10c0/1a1a7c0a318e71f3547ab5573198d36165ea152c50447ef92e6326303f9a5c397606201ba80c7b86a725dcdd2913e924be94466a0c33b1b0c3ee852059e646b6 + checksum: 10c0/2b72ff255b6711d529496bcae38869e3809b15761252809743d80d01e3efa5a62ebaafc24b96b16a245a8d0bd307958a3e9ab31434d03a87acedbdd5e01c18be languageName: node linkType: hard -"@typescript-eslint/utils@npm:8.54.0": - version: 8.54.0 - resolution: "@typescript-eslint/utils@npm:8.54.0" +"@typescript-eslint/utils@npm:8.57.0": + version: 8.57.0 + resolution: "@typescript-eslint/utils@npm:8.57.0" dependencies: "@eslint-community/eslint-utils": "npm:^4.9.1" - "@typescript-eslint/scope-manager": "npm:8.54.0" - "@typescript-eslint/types": "npm:8.54.0" - "@typescript-eslint/typescript-estree": "npm:8.54.0" + "@typescript-eslint/scope-manager": "npm:8.57.0" + "@typescript-eslint/types": "npm:8.57.0" + "@typescript-eslint/typescript-estree": "npm:8.57.0" peerDependencies: - eslint: ^8.57.0 || ^9.0.0 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: ">=4.8.4 <6.0.0" - checksum: 10c0/949a97dca8024d39666e04ecdf2d4e12722f5064c387901e72bdcc7adafb96cf650a070dc79f9dd46fa1aae6ac2b5eac5ae3fe5a6979385208c28809a1bd143f + checksum: 10c0/d2c5803a7eaae71ce4cf1435fdc0ab0243e8924647b39bc823e42bc7604f6e01cdcb101eaf9c0eec91fe1bd272e5533041b8a40017679b164be11f32242f292b languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:8.54.0": - version: 8.54.0 - resolution: "@typescript-eslint/visitor-keys@npm:8.54.0" +"@typescript-eslint/visitor-keys@npm:8.57.0": + version: 8.57.0 + resolution: "@typescript-eslint/visitor-keys@npm:8.57.0" dependencies: - "@typescript-eslint/types": "npm:8.54.0" - eslint-visitor-keys: "npm:^4.2.1" - checksum: 10c0/f83a9aa92f7f4d1fdb12cbca28c6f5704c36371264606b456388b2c869fc61e73c86d3736556e1bb6e253f3a607128b5b1bf6c68395800ca06f18705576faadd + "@typescript-eslint/types": "npm:8.57.0" + eslint-visitor-keys: "npm:^5.0.0" + checksum: 10c0/4e585126b7b10f04c8d52166a473b715038793c87c7b7a1dbd0f577b017896db8545d6ea13bd191c12cf951dfdac23884b3e9bf0bb6f44afea38ae9eae5d7a6a languageName: node linkType: hard @@ -2703,18 +2707,18 @@ __metadata: linkType: hard "@vitejs/plugin-react@npm:^5.1.3": - version: 5.1.3 - resolution: "@vitejs/plugin-react@npm:5.1.3" + version: 5.1.4 + resolution: "@vitejs/plugin-react@npm:5.1.4" dependencies: "@babel/core": "npm:^7.29.0" "@babel/plugin-transform-react-jsx-self": "npm:^7.27.1" "@babel/plugin-transform-react-jsx-source": "npm:^7.27.1" - "@rolldown/pluginutils": "npm:1.0.0-rc.2" + "@rolldown/pluginutils": "npm:1.0.0-rc.3" "@types/babel__core": "npm:^7.20.5" react-refresh: "npm:^0.18.0" peerDependencies: vite: ^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 - checksum: 10c0/814d950f398f13ab5261593952b0a3a10a8b21220923c99817c99456890e1c0df4f1dd4cb2fc538ce4db4f525695e82ba1771a9e13ae1821283b659a7cfedc12 + checksum: 10c0/dd7b8f40717ecd4a5ab18f467134ea8135f9a443359333d71e4114aeacfc8b679be9fd36dc12290d076c78883a02e708bfe1f0d93411c06c9659da0879b952e3 languageName: node linkType: hard @@ -2798,17 +2802,6 @@ __metadata: languageName: node linkType: hard -"@zone-eu/mailsplit@npm:5.4.8": - version: 5.4.8 - resolution: "@zone-eu/mailsplit@npm:5.4.8" - dependencies: - libbase64: "npm:1.3.0" - libmime: "npm:5.3.7" - libqp: "npm:2.1.1" - checksum: 10c0/a054bdf50e2378c773f9c54861d27095b6f3ef4c7828576aaaa9e2173de8edb59d603e052282eebfe8c5d442efc6896a22c374daa855e9e3d55af9771b97484a - languageName: node - linkType: hard - "abbrev@npm:^4.0.0": version: 4.0.0 resolution: "abbrev@npm:4.0.0" @@ -2826,11 +2819,11 @@ __metadata: linkType: hard "acorn@npm:^8.15.0": - version: 8.15.0 - resolution: "acorn@npm:8.15.0" + version: 8.16.0 + resolution: "acorn@npm:8.16.0" bin: acorn: bin/acorn - checksum: 10c0/dec73ff59b7d6628a01eebaece7f2bdb8bb62b9b5926dcad0f8931f2b8b79c2be21f6c68ac095592adb5adb15831a3635d9343e6a91d028bbe85d564875ec3ec + checksum: 10c0/c9c52697227661b68d0debaf972222d4f622aa06b185824164e153438afa7b08273432ca43ea792cadb24dada1d46f6f6bb1ef8de9956979288cc1b96bf9914e languageName: node linkType: hard @@ -2841,15 +2834,15 @@ __metadata: languageName: node linkType: hard -"ajv@npm:^6.12.4": - version: 6.12.6 - resolution: "ajv@npm:6.12.6" +"ajv@npm:^6.14.0": + version: 6.14.0 + resolution: "ajv@npm:6.14.0" dependencies: fast-deep-equal: "npm:^3.1.1" fast-json-stable-stringify: "npm:^2.0.0" json-schema-traverse: "npm:^0.4.1" uri-js: "npm:^4.2.2" - checksum: 10c0/41e23642cbe545889245b9d2a45854ebba51cda6c778ebced9649420d9205f2efb39cb43dbc41e358409223b1ea43303ae4839db682c848b891e4811da1a5a71 + checksum: 10c0/a2bc39b0555dc9802c899f86990eb8eed6e366cddbf65be43d5aa7e4f3c4e1a199d5460fd7ca4fb3d864000dbbc049253b72faa83b3b30e641ca52cb29a68c22 languageName: node linkType: hard @@ -3004,6 +2997,13 @@ __metadata: languageName: node linkType: hard +"async-generator-function@npm:^1.0.0": + version: 1.0.0 + resolution: "async-generator-function@npm:1.0.0" + checksum: 10c0/2c50ef856c543ad500d8d8777d347e3c1ba623b93e99c9263ecc5f965c1b12d2a140e2ab6e43c3d0b85366110696f28114649411cbcd10b452a92a2318394186 + languageName: node + linkType: hard + "available-typed-arrays@npm:^1.0.7": version: 1.0.7 resolution: "available-typed-arrays@npm:1.0.7" @@ -3034,6 +3034,13 @@ __metadata: languageName: node linkType: hard +"balanced-match@npm:^4.0.2": + version: 4.0.4 + resolution: "balanced-match@npm:4.0.4" + checksum: 10c0/07e86102a3eb2ee2a6a1a89164f29d0dbaebd28f2ca3f5ca786f36b8b23d9e417eb3be45a4acf754f837be5ac0a2317de90d3fcb7f4f4dc95720a1f36b26a17b + languageName: node + linkType: hard + "base64-js@npm:0.0.8": version: 0.0.8 resolution: "base64-js@npm:0.0.8" @@ -3042,11 +3049,11 @@ __metadata: linkType: hard "baseline-browser-mapping@npm:^2.8.3, baseline-browser-mapping@npm:^2.9.0": - version: 2.9.19 - resolution: "baseline-browser-mapping@npm:2.9.19" + version: 2.10.0 + resolution: "baseline-browser-mapping@npm:2.10.0" bin: - baseline-browser-mapping: dist/cli.js - checksum: 10c0/569928db78bcd081953d7db79e4243a59a579a34b4ae1806b9b42d3b7f84e5bc40e6e82ae4fa06e7bef8291bf747b33b3f9ef5d3c6e1e420cb129d9295536129 + baseline-browser-mapping: dist/cli.cjs + checksum: 10c0/da9c3ec0fcd7f325226a47d2142794d41706b6e0a405718a2c15410bbdb72aacadd65738bedef558c6f1b106ed19458cb25b06f63b66df2c284799905dbbd003 languageName: node linkType: hard @@ -3069,12 +3076,12 @@ __metadata: languageName: node linkType: hard -"brace-expansion@npm:^2.0.1": - version: 2.0.2 - resolution: "brace-expansion@npm:2.0.2" +"brace-expansion@npm:^5.0.2": + version: 5.0.4 + resolution: "brace-expansion@npm:5.0.4" dependencies: - balanced-match: "npm:^1.0.0" - checksum: 10c0/6d117a4c793488af86b83172deb6af143e94c17bc53b0b3cec259733923b4ca84679d506ac261f4ba3c7ed37c46018e2ff442f9ce453af8643ecd64f4a54e6cf + balanced-match: "npm:^4.0.2" + checksum: 10c0/359cbcfa80b2eb914ca1f3440e92313fbfe7919ee6b274c35db55bec555aded69dac5ee78f102cec90c35f98c20fa43d10936d0cd9978158823c249257e1643a languageName: node linkType: hard @@ -3168,9 +3175,9 @@ __metadata: linkType: hard "caniuse-lite@npm:^1.0.30001579, caniuse-lite@npm:^1.0.30001759": - version: 1.0.30001767 - resolution: "caniuse-lite@npm:1.0.30001767" - checksum: 10c0/37067c6d2b26623f81494a1f206adbff2b80baed3318ba430684e428bd7d81be889f39db8ef081501d1db5f7dd5d15972892f173eb59c9f3bb780e0b38e6610a + version: 1.0.30001777 + resolution: "caniuse-lite@npm:1.0.30001777" + checksum: 10c0/e35443fa7c470edc06e315297cca706790840e96983fff12dfe502a4b123d6e4a64b9b4e8e35fb2f5bb60c31b24fbda93d76b2f700ce183df474671236fa7a4a languageName: node linkType: hard @@ -3377,13 +3384,13 @@ __metadata: languageName: node linkType: hard -"css-tree@npm:^3.1.0": - version: 3.1.0 - resolution: "css-tree@npm:3.1.0" +"css-tree@npm:^3.0.0, css-tree@npm:^3.1.0": + version: 3.2.1 + resolution: "css-tree@npm:3.2.1" dependencies: - mdn-data: "npm:2.12.2" - source-map-js: "npm:^1.0.1" - checksum: 10c0/b5715852c2f397c715ca00d56ec53fc83ea596295ae112eb1ba6a1bda3b31086380e596b1d8c4b980fe6da09e7d0fc99c64d5bb7313030dd0fba9c1415f30979 + mdn-data: "npm:2.27.1" + source-map-js: "npm:^1.2.1" + checksum: 10c0/1f65e9ccaa56112a4706d6f003dd43d777f0dbcf848e66fd320f823192533581f8dd58daa906cb80622658332d50284d6be13b87a6ab4556cbbfe9ef535bbf7e languageName: node linkType: hard @@ -3394,15 +3401,15 @@ __metadata: languageName: node linkType: hard -"cssstyle@npm:^5.3.7": - version: 5.3.7 - resolution: "cssstyle@npm:5.3.7" +"cssstyle@npm:^6.0.1": + version: 6.2.0 + resolution: "cssstyle@npm:6.2.0" dependencies: - "@asamuzakjp/css-color": "npm:^4.1.1" - "@csstools/css-syntax-patches-for-csstree": "npm:^1.0.21" + "@asamuzakjp/css-color": "npm:^5.0.1" + "@csstools/css-syntax-patches-for-csstree": "npm:^1.0.28" css-tree: "npm:^3.1.0" - lru-cache: "npm:^11.2.4" - checksum: 10c0/9330f014f4209df06305264b92b8e963dfef636fdc2ae7d13f24ea7da6468aba1dc5eb13082621258bdd22cbd7fb7cb291894e188a3cdf660e8b79cd2c5e5e0e + lru-cache: "npm:^11.2.6" + checksum: 10c0/d5e61973a8c1b4fb9727edddfb9f2677c9a91b1db63787fc0c8bed639a227a97fcf930e5aabc3c64c8280d63169c632015a39da4a84083d1731c949437d0a2a2 languageName: node linkType: hard @@ -3600,9 +3607,9 @@ __metadata: linkType: hard "electron-to-chromium@npm:^1.5.263": - version: 1.5.286 - resolution: "electron-to-chromium@npm:1.5.286" - checksum: 10c0/5384510f9682d7e46f98fa48b874c3901d9639de96e9e387afce1fe010fbac31376df0534524edc15f66e9902bfacee54037a5e598004e9c6a617884e379926d + version: 1.5.307 + resolution: "electron-to-chromium@npm:1.5.307" + checksum: 10c0/eb773a28af0dd7b3717b9bc2b31f332bcb42b43019866e039276db75c8c14063f96e29d19bea47231b4335a319d8518997b2d577dec6b5b237b768c7afdc5588 languageName: node linkType: hard @@ -3620,29 +3627,13 @@ __metadata: languageName: node linkType: hard -"encoding-japanese@npm:2.2.0": - version: 2.2.0 - resolution: "encoding-japanese@npm:2.2.0" - checksum: 10c0/9d1f10dde16f59da8a8a1a04499dffa3e9926b0dbd7dfab8054570527b7e6de30c47e828851f42d2727af31586ec8049a84eeae593ad8b22eea10921fd269798 - languageName: node - linkType: hard - -"encoding@npm:^0.1.13": - version: 0.1.13 - resolution: "encoding@npm:0.1.13" - dependencies: - iconv-lite: "npm:^0.6.2" - checksum: 10c0/36d938712ff00fe1f4bac88b43bcffb5930c1efa57bbcdca9d67e1d9d6c57cfb1200fb01efe0f3109b2ce99b231f90779532814a81370a1bd3274a0f58585039 - languageName: node - linkType: hard - -"enhanced-resolve@npm:^5.18.3": - version: 5.19.0 - resolution: "enhanced-resolve@npm:5.19.0" +"enhanced-resolve@npm:^5.19.0": + version: 5.20.0 + resolution: "enhanced-resolve@npm:5.20.0" dependencies: graceful-fs: "npm:^4.2.4" tapable: "npm:^2.3.0" - checksum: 10c0/966b1dffb82d5f6a4d6a86e904e812104a999066aa29f9223040aaa751e7c453b462a3f5ef91f8bd4408131ff6f7f90651dd1c804bdcb7944e2099a9c2e45ee2 + checksum: 10c0/4ed5f38406fc9ad74c58a3d63b8215862243ab0ed6b0efc51ccdb72cdcedd3ac8638abe298680b279d7a83c3cb140e5eea7a5f8bd99696c74588f07ad89a95a7 languageName: node linkType: hard @@ -3667,13 +3658,6 @@ __metadata: languageName: node linkType: hard -"err-code@npm:^2.0.2": - version: 2.0.3 - resolution: "err-code@npm:2.0.3" - checksum: 10c0/b642f7b4dd4a376e954947550a3065a9ece6733ab8e51ad80db727aaae0817c2e99b02a97a3d6cecc648a97848305e728289cf312d09af395403a90c9d4d8a66 - languageName: node - linkType: hard - "es-abstract@npm:^1.17.5, es-abstract@npm:^1.23.2, es-abstract@npm:^1.23.3, es-abstract@npm:^1.23.5, es-abstract@npm:^1.23.6, es-abstract@npm:^1.23.9, es-abstract@npm:^1.24.0, es-abstract@npm:^1.24.1": version: 1.24.1 resolution: "es-abstract@npm:1.24.1" @@ -3823,35 +3807,35 @@ __metadata: linkType: hard "esbuild@npm:^0.27.0": - version: 0.27.2 - resolution: "esbuild@npm:0.27.2" - dependencies: - "@esbuild/aix-ppc64": "npm:0.27.2" - "@esbuild/android-arm": "npm:0.27.2" - "@esbuild/android-arm64": "npm:0.27.2" - "@esbuild/android-x64": "npm:0.27.2" - "@esbuild/darwin-arm64": "npm:0.27.2" - "@esbuild/darwin-x64": "npm:0.27.2" - "@esbuild/freebsd-arm64": "npm:0.27.2" - "@esbuild/freebsd-x64": "npm:0.27.2" - "@esbuild/linux-arm": "npm:0.27.2" - "@esbuild/linux-arm64": "npm:0.27.2" - "@esbuild/linux-ia32": "npm:0.27.2" - "@esbuild/linux-loong64": "npm:0.27.2" - "@esbuild/linux-mips64el": "npm:0.27.2" - "@esbuild/linux-ppc64": "npm:0.27.2" - "@esbuild/linux-riscv64": "npm:0.27.2" - "@esbuild/linux-s390x": "npm:0.27.2" - "@esbuild/linux-x64": "npm:0.27.2" - "@esbuild/netbsd-arm64": "npm:0.27.2" - "@esbuild/netbsd-x64": "npm:0.27.2" - "@esbuild/openbsd-arm64": "npm:0.27.2" - "@esbuild/openbsd-x64": "npm:0.27.2" - "@esbuild/openharmony-arm64": "npm:0.27.2" - "@esbuild/sunos-x64": "npm:0.27.2" - "@esbuild/win32-arm64": "npm:0.27.2" - "@esbuild/win32-ia32": "npm:0.27.2" - "@esbuild/win32-x64": "npm:0.27.2" + version: 0.27.3 + resolution: "esbuild@npm:0.27.3" + dependencies: + "@esbuild/aix-ppc64": "npm:0.27.3" + "@esbuild/android-arm": "npm:0.27.3" + "@esbuild/android-arm64": "npm:0.27.3" + "@esbuild/android-x64": "npm:0.27.3" + "@esbuild/darwin-arm64": "npm:0.27.3" + "@esbuild/darwin-x64": "npm:0.27.3" + "@esbuild/freebsd-arm64": "npm:0.27.3" + "@esbuild/freebsd-x64": "npm:0.27.3" + "@esbuild/linux-arm": "npm:0.27.3" + "@esbuild/linux-arm64": "npm:0.27.3" + "@esbuild/linux-ia32": "npm:0.27.3" + "@esbuild/linux-loong64": "npm:0.27.3" + "@esbuild/linux-mips64el": "npm:0.27.3" + "@esbuild/linux-ppc64": "npm:0.27.3" + "@esbuild/linux-riscv64": "npm:0.27.3" + "@esbuild/linux-s390x": "npm:0.27.3" + "@esbuild/linux-x64": "npm:0.27.3" + "@esbuild/netbsd-arm64": "npm:0.27.3" + "@esbuild/netbsd-x64": "npm:0.27.3" + "@esbuild/openbsd-arm64": "npm:0.27.3" + "@esbuild/openbsd-x64": "npm:0.27.3" + "@esbuild/openharmony-arm64": "npm:0.27.3" + "@esbuild/sunos-x64": "npm:0.27.3" + "@esbuild/win32-arm64": "npm:0.27.3" + "@esbuild/win32-ia32": "npm:0.27.3" + "@esbuild/win32-x64": "npm:0.27.3" dependenciesMeta: "@esbuild/aix-ppc64": optional: true @@ -3907,7 +3891,7 @@ __metadata: optional: true bin: esbuild: bin/esbuild - checksum: 10c0/cf83f626f55500f521d5fe7f4bc5871bec240d3deb2a01fbd379edc43b3664d1167428738a5aad8794b35d1cca985c44c375b1cd38a2ca613c77ced2c83aafcd + checksum: 10c0/fdc3f87a3f08b3ef98362f37377136c389a0d180fda4b8d073b26ba930cf245521db0a368f119cc7624bc619248fff1439f5811f062d853576f8ffa3df8ee5f1 languageName: node linkType: hard @@ -4123,23 +4107,30 @@ __metadata: languageName: node linkType: hard +"eslint-visitor-keys@npm:^5.0.0": + version: 5.0.1 + resolution: "eslint-visitor-keys@npm:5.0.1" + checksum: 10c0/16190bdf2cbae40a1109384c94450c526a79b0b9c3cb21e544256ed85ac48a4b84db66b74a6561d20fe6ab77447f150d711c2ad5ad74df4fcc133736bce99678 + languageName: node + linkType: hard + "eslint@npm:^9.39.2": - version: 9.39.2 - resolution: "eslint@npm:9.39.2" + version: 9.39.4 + resolution: "eslint@npm:9.39.4" dependencies: "@eslint-community/eslint-utils": "npm:^4.8.0" "@eslint-community/regexpp": "npm:^4.12.1" - "@eslint/config-array": "npm:^0.21.1" + "@eslint/config-array": "npm:^0.21.2" "@eslint/config-helpers": "npm:^0.4.2" "@eslint/core": "npm:^0.17.0" - "@eslint/eslintrc": "npm:^3.3.1" - "@eslint/js": "npm:9.39.2" + "@eslint/eslintrc": "npm:^3.3.5" + "@eslint/js": "npm:9.39.4" "@eslint/plugin-kit": "npm:^0.4.1" "@humanfs/node": "npm:^0.16.6" "@humanwhocodes/module-importer": "npm:^1.0.1" "@humanwhocodes/retry": "npm:^0.4.2" "@types/estree": "npm:^1.0.6" - ajv: "npm:^6.12.4" + ajv: "npm:^6.14.0" chalk: "npm:^4.0.0" cross-spawn: "npm:^7.0.6" debug: "npm:^4.3.2" @@ -4158,7 +4149,7 @@ __metadata: is-glob: "npm:^4.0.0" json-stable-stringify-without-jsonify: "npm:^1.0.1" lodash.merge: "npm:^4.6.2" - minimatch: "npm:^3.1.2" + minimatch: "npm:^3.1.5" natural-compare: "npm:^1.4.0" optionator: "npm:^0.9.3" peerDependencies: @@ -4168,7 +4159,7 @@ __metadata: optional: true bin: eslint: bin/eslint.js - checksum: 10c0/bb88ca8fd16bb7e1ac3e13804c54d41c583214460c0faa7b3e7c574e69c5600c7122295500fb4b0c06067831111db740931e98da1340329527658e1cf80073d3 + checksum: 10c0/1955067c2d991f0c84f4c4abfafe31bb47fa3b717a7fd3e43fe1e511c6f859d7700cbca969f85661dc4c130f7aeced5e5444884314198a54428f5e5141db9337 languageName: node linkType: hard @@ -4360,9 +4351,9 @@ __metadata: linkType: hard "flatted@npm:^3.2.9": - version: 3.3.3 - resolution: "flatted@npm:3.3.3" - checksum: 10c0/e957a1c6b0254aa15b8cce8533e24165abd98fadc98575db082b786b5da1b7d72062b81bfdcd1da2f4d46b6ed93bec2434e62333e9b4261d79ef2e75a10dd538 + version: 3.4.1 + resolution: "flatted@npm:3.4.1" + checksum: 10c0/3987a7f1e39bc7215cece001354313b462cdb4fb2dde0df4f7acd9e5016fbae56ee6fb3f0870b2150145033be8bda4f01af6f87a00946049651131bbfca7dfa6 languageName: node linkType: hard @@ -4446,20 +4437,23 @@ __metadata: linkType: hard "get-intrinsic@npm:^1.2.4, get-intrinsic@npm:^1.2.5, get-intrinsic@npm:^1.2.6, get-intrinsic@npm:^1.2.7, get-intrinsic@npm:^1.3.0": - version: 1.3.0 - resolution: "get-intrinsic@npm:1.3.0" + version: 1.3.1 + resolution: "get-intrinsic@npm:1.3.1" dependencies: + async-function: "npm:^1.0.0" + async-generator-function: "npm:^1.0.0" call-bind-apply-helpers: "npm:^1.0.2" es-define-property: "npm:^1.0.1" es-errors: "npm:^1.3.0" es-object-atoms: "npm:^1.1.1" function-bind: "npm:^1.1.2" + generator-function: "npm:^2.0.0" get-proto: "npm:^1.0.1" gopd: "npm:^1.2.0" has-symbols: "npm:^1.1.0" hasown: "npm:^2.0.2" math-intrinsics: "npm:^1.1.0" - checksum: 10c0/52c81808af9a8130f581e6a6a83e1ba4a9f703359e7a438d1369a5267a25412322f03dcbd7c549edaef0b6214a0630a28511d7df0130c93cfd380f4fa0b5b66a + checksum: 10c0/9f4ab0cf7efe0fd2c8185f52e6f637e708f3a112610c88869f8f041bb9ecc2ce44bf285dfdbdc6f4f7c277a5b88d8e94a432374d97cca22f3de7fc63795deb5d languageName: node linkType: hard @@ -4485,11 +4479,11 @@ __metadata: linkType: hard "get-tsconfig@npm:^4.10.0": - version: 4.13.1 - resolution: "get-tsconfig@npm:4.13.1" + version: 4.13.6 + resolution: "get-tsconfig@npm:4.13.6" dependencies: resolve-pkg-maps: "npm:^1.0.0" - checksum: 10c0/75c8ccebc411073338d7b7154f18659480d4888d1b12a74a21507d14c6e3b092e260454efe6ce33b33eaf513d86491b8f16191358fe3e0a682a215febd1846cc + checksum: 10c0/bab6937302f542f97217cbe7cbbdfa7e85a56a377bc7a73e69224c1f0b7c9ae8365918e55752ae8648265903f506c1705f63c0de1d4bab1ec2830fef3e539a1a languageName: node linkType: hard @@ -4512,13 +4506,13 @@ __metadata: linkType: hard "glob@npm:^13.0.0": - version: 13.0.1 - resolution: "glob@npm:13.0.1" + version: 13.0.6 + resolution: "glob@npm:13.0.6" dependencies: - minimatch: "npm:^10.1.2" - minipass: "npm:^7.1.2" - path-scurry: "npm:^2.0.0" - checksum: 10c0/af7b863dec8dff74f61d7d6e53104e1f6bbdd482157a196cade8ed857481e876ec35181b38a059b2a7b93ea3b08248f4ff0792fef6dc91814fd5097a716f48e4 + minimatch: "npm:^10.2.2" + minipass: "npm:^7.1.3" + path-scurry: "npm:^2.0.2" + checksum: 10c0/269c236f11a9b50357fe7a8c6aadac667e01deb5242b19c84975628f05f4438d8ee1354bb62c5d6c10f37fd59911b54d7799730633a2786660d8c69f1d18120a languageName: node linkType: hard @@ -4624,15 +4618,6 @@ __metadata: languageName: node linkType: hard -"he@npm:1.2.0": - version: 1.2.0 - resolution: "he@npm:1.2.0" - bin: - he: bin/he - checksum: 10c0/a27d478befe3c8192f006cdd0639a66798979dfa6e2125c6ac582a19a5ebfec62ad83e8382e6036170d873f46e4536a7e795bf8b95bf7c247f4cc0825ccc8c17 - languageName: node - linkType: hard - "hermes-estree@npm:0.25.1": version: 0.25.1 resolution: "hermes-estree@npm:0.25.1" @@ -4665,7 +4650,7 @@ __metadata: languageName: node linkType: hard -"html-to-text@npm:9.0.5, html-to-text@npm:^9.0.5": +"html-to-text@npm:^9.0.5": version: 9.0.5 resolution: "html-to-text@npm:9.0.5" dependencies: @@ -4724,30 +4709,21 @@ __metadata: languageName: node linkType: hard -"iconv-lite@npm:0.6.3, iconv-lite@npm:^0.6.2": - version: 0.6.3 - resolution: "iconv-lite@npm:0.6.3" - dependencies: - safer-buffer: "npm:>= 2.1.2 < 3.0.0" - checksum: 10c0/98102bc66b33fcf5ac044099d1257ba0b7ad5e3ccd3221f34dd508ab4070edff183276221684e1e0555b145fce0850c9f7d2b60a9fcac50fbb4ea0d6e845a3b1 - languageName: node - linkType: hard - -"iconv-lite@npm:0.7.0": - version: 0.7.0 - resolution: "iconv-lite@npm:0.7.0" +"iconv-lite@npm:^0.7.2": + version: 0.7.2 + resolution: "iconv-lite@npm:0.7.2" dependencies: safer-buffer: "npm:>= 2.1.2 < 3.0.0" - checksum: 10c0/2382400469071c55b6746c531eed5fa4d033e5db6690b7331fb2a5f59a30d7a9782932e92253db26df33c1cf46fa200a3fbe524a2a7c62037c762283f188ec2f + checksum: 10c0/3c228920f3bd307f56bf8363706a776f4a060eb042f131cd23855ceca962951b264d0997ab38a1ad340e1c5df8499ed26e1f4f0db6b2a2ad9befaff22f14b722 languageName: node linkType: hard -"icu-minify@npm:^4.8.2": - version: 4.8.2 - resolution: "icu-minify@npm:4.8.2" +"icu-minify@npm:^4.8.3": + version: 4.8.3 + resolution: "icu-minify@npm:4.8.3" dependencies: "@formatjs/icu-messageformat-parser": "npm:^3.4.0" - checksum: 10c0/081ca1f85be71acf0a7f687a64a6154b3282d7f5b30b6c9401ff86fd8fa9526778d7b4e4641d2ff51dfccfa1558add70d395c1ef2f86ad43dcdcf0f893eeb7f3 + checksum: 10c0/941a71a3dfec0ecdbb13a7a61fe0042420c579890028aec8a580516760da92f81998c0937aebcab604acdf385e5533610d0004e58f7259bd567fce07ed2a9b76 languageName: node linkType: hard @@ -5103,10 +5079,10 @@ __metadata: languageName: node linkType: hard -"isexe@npm:^3.1.1": - version: 3.1.1 - resolution: "isexe@npm:3.1.1" - checksum: 10c0/9ec257654093443eb0a528a9c8cbba9c0ca7616ccb40abd6dde7202734d96bb86e4ac0d764f0f8cd965856aacbff2f4ce23e730dc19dfb41e3b0d865ca6fdcc7 +"isexe@npm:^4.0.0": + version: 4.0.0 + resolution: "isexe@npm:4.0.0" + checksum: 10c0/5884815115bceac452877659a9c7726382531592f43dc29e5d48b7c4100661aed54018cb90bd36cb2eaeba521092570769167acbb95c18d39afdccbcca06c5ce languageName: node linkType: hard @@ -5152,13 +5128,14 @@ __metadata: linkType: hard "jsdom@npm:^28.0.0": - version: 28.0.0 - resolution: "jsdom@npm:28.0.0" + version: 28.1.0 + resolution: "jsdom@npm:28.1.0" dependencies: "@acemir/cssom": "npm:^0.9.31" - "@asamuzakjp/dom-selector": "npm:^6.7.6" + "@asamuzakjp/dom-selector": "npm:^6.8.1" + "@bramus/specificity": "npm:^2.4.2" "@exodus/bytes": "npm:^1.11.0" - cssstyle: "npm:^5.3.7" + cssstyle: "npm:^6.0.1" data-urls: "npm:^7.0.0" decimal.js: "npm:^10.6.0" html-encoding-sniffer: "npm:^6.0.0" @@ -5169,7 +5146,7 @@ __metadata: saxes: "npm:^6.0.0" symbol-tree: "npm:^3.2.4" tough-cookie: "npm:^6.0.0" - undici: "npm:^7.20.0" + undici: "npm:^7.21.0" w3c-xmlserializer: "npm:^5.0.0" webidl-conversions: "npm:^8.0.1" whatwg-mimetype: "npm:^5.0.0" @@ -5180,7 +5157,7 @@ __metadata: peerDependenciesMeta: canvas: optional: true - checksum: 10c0/6aa2419506f912f40c5f1c6ca52c6dfdfde5970cfbaf105ebfc55ab975dda2d2492b6f8dc4c62b94e46501c4f77dfd2a60ea229ee67f924d59fe6c51bf653043 + checksum: 10c0/341ecb4005be2dab3247dacc349a20285d7991b5cee3382301fcd69a4294b705b4147e7d9ae1ddfab466ba4b3aace97ded4f7b070de285262221cb2782965b25 languageName: node linkType: hard @@ -5310,32 +5287,6 @@ __metadata: languageName: node linkType: hard -"libbase64@npm:1.3.0": - version: 1.3.0 - resolution: "libbase64@npm:1.3.0" - checksum: 10c0/4ece76ce09fa389d0c578c83a121c16452916521b177f50c3e8637dd9919170c96c12e1c7de63b1c88da8e5aa7e7ab574c26d18f1f64666f46b358b4b5873c8b - languageName: node - linkType: hard - -"libmime@npm:5.3.7": - version: 5.3.7 - resolution: "libmime@npm:5.3.7" - dependencies: - encoding-japanese: "npm:2.2.0" - iconv-lite: "npm:0.6.3" - libbase64: "npm:1.3.0" - libqp: "npm:2.1.1" - checksum: 10c0/2c8afbe287df533b983b8eb6db0e98d4eb79c833aca7aac531994168d30dd6194a90d78cefb320427183853422be1c86511ab975b1a3fc9f1fc69ce1b83bb7c0 - languageName: node - linkType: hard - -"libqp@npm:2.1.1": - version: 2.1.1 - resolution: "libqp@npm:2.1.1" - checksum: 10c0/6e78f0676cd2424b3ddbf3273ab8539871299310dba433b7e2ec10a41830acecb4d074ea8b78b706dea349996f011ce519d92f81ede712c4824a2dd402aa376c - languageName: node - linkType: hard - "lie@npm:~3.3.0": version: 3.3.0 resolution: "lie@npm:3.3.0" @@ -5345,99 +5296,99 @@ __metadata: languageName: node linkType: hard -"lightningcss-android-arm64@npm:1.30.2": - version: 1.30.2 - resolution: "lightningcss-android-arm64@npm:1.30.2" +"lightningcss-android-arm64@npm:1.31.1": + version: 1.31.1 + resolution: "lightningcss-android-arm64@npm:1.31.1" conditions: os=android & cpu=arm64 languageName: node linkType: hard -"lightningcss-darwin-arm64@npm:1.30.2": - version: 1.30.2 - resolution: "lightningcss-darwin-arm64@npm:1.30.2" +"lightningcss-darwin-arm64@npm:1.31.1": + version: 1.31.1 + resolution: "lightningcss-darwin-arm64@npm:1.31.1" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"lightningcss-darwin-x64@npm:1.30.2": - version: 1.30.2 - resolution: "lightningcss-darwin-x64@npm:1.30.2" +"lightningcss-darwin-x64@npm:1.31.1": + version: 1.31.1 + resolution: "lightningcss-darwin-x64@npm:1.31.1" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"lightningcss-freebsd-x64@npm:1.30.2": - version: 1.30.2 - resolution: "lightningcss-freebsd-x64@npm:1.30.2" +"lightningcss-freebsd-x64@npm:1.31.1": + version: 1.31.1 + resolution: "lightningcss-freebsd-x64@npm:1.31.1" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard -"lightningcss-linux-arm-gnueabihf@npm:1.30.2": - version: 1.30.2 - resolution: "lightningcss-linux-arm-gnueabihf@npm:1.30.2" +"lightningcss-linux-arm-gnueabihf@npm:1.31.1": + version: 1.31.1 + resolution: "lightningcss-linux-arm-gnueabihf@npm:1.31.1" conditions: os=linux & cpu=arm languageName: node linkType: hard -"lightningcss-linux-arm64-gnu@npm:1.30.2": - version: 1.30.2 - resolution: "lightningcss-linux-arm64-gnu@npm:1.30.2" +"lightningcss-linux-arm64-gnu@npm:1.31.1": + version: 1.31.1 + resolution: "lightningcss-linux-arm64-gnu@npm:1.31.1" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"lightningcss-linux-arm64-musl@npm:1.30.2": - version: 1.30.2 - resolution: "lightningcss-linux-arm64-musl@npm:1.30.2" +"lightningcss-linux-arm64-musl@npm:1.31.1": + version: 1.31.1 + resolution: "lightningcss-linux-arm64-musl@npm:1.31.1" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"lightningcss-linux-x64-gnu@npm:1.30.2": - version: 1.30.2 - resolution: "lightningcss-linux-x64-gnu@npm:1.30.2" +"lightningcss-linux-x64-gnu@npm:1.31.1": + version: 1.31.1 + resolution: "lightningcss-linux-x64-gnu@npm:1.31.1" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"lightningcss-linux-x64-musl@npm:1.30.2": - version: 1.30.2 - resolution: "lightningcss-linux-x64-musl@npm:1.30.2" +"lightningcss-linux-x64-musl@npm:1.31.1": + version: 1.31.1 + resolution: "lightningcss-linux-x64-musl@npm:1.31.1" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"lightningcss-win32-arm64-msvc@npm:1.30.2": - version: 1.30.2 - resolution: "lightningcss-win32-arm64-msvc@npm:1.30.2" +"lightningcss-win32-arm64-msvc@npm:1.31.1": + version: 1.31.1 + resolution: "lightningcss-win32-arm64-msvc@npm:1.31.1" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"lightningcss-win32-x64-msvc@npm:1.30.2": - version: 1.30.2 - resolution: "lightningcss-win32-x64-msvc@npm:1.30.2" +"lightningcss-win32-x64-msvc@npm:1.31.1": + version: 1.31.1 + resolution: "lightningcss-win32-x64-msvc@npm:1.31.1" conditions: os=win32 & cpu=x64 languageName: node linkType: hard -"lightningcss@npm:1.30.2": - version: 1.30.2 - resolution: "lightningcss@npm:1.30.2" +"lightningcss@npm:1.31.1": + version: 1.31.1 + resolution: "lightningcss@npm:1.31.1" dependencies: detect-libc: "npm:^2.0.3" - lightningcss-android-arm64: "npm:1.30.2" - lightningcss-darwin-arm64: "npm:1.30.2" - lightningcss-darwin-x64: "npm:1.30.2" - lightningcss-freebsd-x64: "npm:1.30.2" - lightningcss-linux-arm-gnueabihf: "npm:1.30.2" - lightningcss-linux-arm64-gnu: "npm:1.30.2" - lightningcss-linux-arm64-musl: "npm:1.30.2" - lightningcss-linux-x64-gnu: "npm:1.30.2" - lightningcss-linux-x64-musl: "npm:1.30.2" - lightningcss-win32-arm64-msvc: "npm:1.30.2" - lightningcss-win32-x64-msvc: "npm:1.30.2" + lightningcss-android-arm64: "npm:1.31.1" + lightningcss-darwin-arm64: "npm:1.31.1" + lightningcss-darwin-x64: "npm:1.31.1" + lightningcss-freebsd-x64: "npm:1.31.1" + lightningcss-linux-arm-gnueabihf: "npm:1.31.1" + lightningcss-linux-arm64-gnu: "npm:1.31.1" + lightningcss-linux-arm64-musl: "npm:1.31.1" + lightningcss-linux-x64-gnu: "npm:1.31.1" + lightningcss-linux-x64-musl: "npm:1.31.1" + lightningcss-win32-arm64-msvc: "npm:1.31.1" + lightningcss-win32-x64-msvc: "npm:1.31.1" dependenciesMeta: lightningcss-android-arm64: optional: true @@ -5461,7 +5412,7 @@ __metadata: optional: true lightningcss-win32-x64-msvc: optional: true - checksum: 10c0/5c0c73a33946dab65908d5cd1325df4efa290efb77f940b60f40448b5ab9a87d3ea665ef9bcf00df4209705050ecf2f7ecc649f44d6dfa5905bb50f15717e78d + checksum: 10c0/c6754b305d4a73652e472fc0d7d65384a6e16c336ea61068eca60de2a45bd5c30abbf012358b82eac56ee98b5d88028932cda5268ff61967cffa400b9e7ee2ba languageName: node linkType: hard @@ -5475,15 +5426,6 @@ __metadata: languageName: node linkType: hard -"linkify-it@npm:5.0.0": - version: 5.0.0 - resolution: "linkify-it@npm:5.0.0" - dependencies: - uc.micro: "npm:^2.0.0" - checksum: 10c0/ff4abbcdfa2003472fc3eb4b8e60905ec97718e11e33cca52059919a4c80cc0e0c2a14d23e23d8c00e5402bc5a885cdba8ca053a11483ab3cc8b3c7a52f88e2d - languageName: node - linkType: hard - "locate-path@npm:^6.0.0": version: 6.0.0 resolution: "locate-path@npm:6.0.0" @@ -5511,10 +5453,10 @@ __metadata: languageName: node linkType: hard -"lru-cache@npm:^11.0.0, lru-cache@npm:^11.1.0, lru-cache@npm:^11.2.1, lru-cache@npm:^11.2.4, lru-cache@npm:^11.2.5": - version: 11.2.5 - resolution: "lru-cache@npm:11.2.5" - checksum: 10c0/cc98958d25dddf1c8a8cbdc49588bd3b24450e8dfa78f32168fd188a20d4a0331c7406d0f3250c86a46619ee288056fd7a1195e8df56dc8a9592397f4fbd8e1d +"lru-cache@npm:^11.0.0, lru-cache@npm:^11.1.0, lru-cache@npm:^11.2.1, lru-cache@npm:^11.2.6": + version: 11.2.6 + resolution: "lru-cache@npm:11.2.6" + checksum: 10c0/73bbffb298760e71b2bfe8ebc16a311c6a60ceddbba919cfedfd8635c2d125fbfb5a39b71818200e67973b11f8d59c5a9e31d6f90722e340e90393663a66e5cd languageName: node linkType: hard @@ -5545,28 +5487,11 @@ __metadata: languageName: node linkType: hard -"mailparser@npm:3.9.1": - version: 3.9.1 - resolution: "mailparser@npm:3.9.1" - dependencies: - "@zone-eu/mailsplit": "npm:5.4.8" - encoding-japanese: "npm:2.2.0" - he: "npm:1.2.0" - html-to-text: "npm:9.0.5" - iconv-lite: "npm:0.7.0" - libmime: "npm:5.3.7" - linkify-it: "npm:5.0.0" - nodemailer: "npm:7.0.11" - punycode.js: "npm:2.3.1" - tlds: "npm:1.261.0" - checksum: 10c0/3542fd211b7a2b3266c5e5469aa4281a280c500ae84eadcd2af7e69ec92faa4fccc883f19de614566c6eb647504412cb0bf37844bcb6d3eecf9f0277154f6f90 - languageName: node - linkType: hard - "make-fetch-happen@npm:^15.0.0": - version: 15.0.3 - resolution: "make-fetch-happen@npm:15.0.3" + version: 15.0.4 + resolution: "make-fetch-happen@npm:15.0.4" dependencies: + "@gar/promise-retry": "npm:^1.0.0" "@npmcli/agent": "npm:^4.0.0" cacache: "npm:^20.0.1" http-cache-semantics: "npm:^4.1.1" @@ -5576,9 +5501,8 @@ __metadata: minipass-pipeline: "npm:^1.2.4" negotiator: "npm:^1.0.0" proc-log: "npm:^6.0.0" - promise-retry: "npm:^2.0.1" ssri: "npm:^13.0.0" - checksum: 10c0/525f74915660be60b616bcbd267c4a5b59481b073ba125e45c9c3a041bb1a47a2bd0ae79d028eb6f5f95bf9851a4158423f5068539c3093621abb64027e8e461 + checksum: 10c0/b874bf6879fc0b8ef3a3cafdddadea4d956acf94790f8dede1a9d3c74c7886b6cd3eb992616b8e5935e6fd550016a465f10ba51bf6723a0c6f4d98883ae2926b languageName: node linkType: hard @@ -5598,10 +5522,10 @@ __metadata: languageName: node linkType: hard -"mdn-data@npm:2.12.2": - version: 2.12.2 - resolution: "mdn-data@npm:2.12.2" - checksum: 10c0/b22443b71d70f72ccc3c6ba1608035431a8fc18c3c8fc53523f06d20e05c2ac10f9b53092759a2ca85cf02f0d37036f310b581ce03e7b99ac74d388ef8152ade +"mdn-data@npm:2.27.1": + version: 2.27.1 + resolution: "mdn-data@npm:2.27.1" + checksum: 10c0/eb8abf5d22e4d1e090346f5e81b67d23cef14c83940e445da5c44541ad874dc8fb9f6ca236e8258c3a489d9fb5884188a4d7d58773adb9089ac2c0b966796393 languageName: node linkType: hard @@ -5629,30 +5553,21 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:^10.1.2": - version: 10.1.2 - resolution: "minimatch@npm:10.1.2" +"minimatch@npm:^10.2.2": + version: 10.2.4 + resolution: "minimatch@npm:10.2.4" dependencies: - "@isaacs/brace-expansion": "npm:^5.0.1" - checksum: 10c0/0cccef3622201703de6ecf9d772c0be1d5513dcc038ed9feb866c20cf798243e678ac35605dac3f1a054650c28037486713fe9e9a34b184b9097959114daf086 + brace-expansion: "npm:^5.0.2" + checksum: 10c0/35f3dfb7b99b51efd46afd378486889f590e7efb10e0f6a10ba6800428cf65c9a8dedb74427d0570b318d749b543dc4e85f06d46d2858bc8cac7e1eb49a95945 languageName: node linkType: hard -"minimatch@npm:^3.1.2": - version: 3.1.2 - resolution: "minimatch@npm:3.1.2" +"minimatch@npm:^3.1.2, minimatch@npm:^3.1.5": + version: 3.1.5 + resolution: "minimatch@npm:3.1.5" dependencies: brace-expansion: "npm:^1.1.7" - checksum: 10c0/0262810a8fc2e72cca45d6fd86bd349eee435eb95ac6aa45c9ea2180e7ee875ef44c32b55b5973ceabe95ea12682f6e3725cbb63d7a2d1da3ae1163c8b210311 - languageName: node - linkType: hard - -"minimatch@npm:^9.0.5": - version: 9.0.5 - resolution: "minimatch@npm:9.0.5" - dependencies: - brace-expansion: "npm:^2.0.1" - checksum: 10c0/de96cf5e35bdf0eab3e2c853522f98ffbe9a36c37797778d2665231ec1f20a9447a7e567cb640901f89e4daaa95ae5d70c65a9e8aa2bb0019b6facbc3c0575ed + checksum: 10c0/2ecbdc0d33f07bddb0315a8b5afbcb761307a8778b48f0b312418ccbced99f104a2d17d8aca7573433c70e8ccd1c56823a441897a45e384ea76ef401a26ace70 languageName: node linkType: hard @@ -5673,17 +5588,17 @@ __metadata: linkType: hard "minipass-fetch@npm:^5.0.0": - version: 5.0.1 - resolution: "minipass-fetch@npm:5.0.1" + version: 5.0.2 + resolution: "minipass-fetch@npm:5.0.2" dependencies: - encoding: "npm:^0.1.13" + iconv-lite: "npm:^0.7.2" minipass: "npm:^7.0.3" minipass-sized: "npm:^2.0.0" minizlib: "npm:^3.0.1" dependenciesMeta: - encoding: + iconv-lite: optional: true - checksum: 10c0/50bcf48c9841ebb25e29a2817468595219c72cfffc7c175a1d7327843c8bef9b72cb01778f46df7eca695dfe47ab98e6167af4cb026ddd80f660842919a5193c + checksum: 10c0/ce4ab9f21cfabaead2097d95dd33f485af8072fbc6b19611bce694965393453a1639d641c2bcf1c48f2ea7d41ea7fab8278373f1d0bee4e63b0a5b2cdd0ef649 languageName: node linkType: hard @@ -5723,10 +5638,10 @@ __metadata: languageName: node linkType: hard -"minipass@npm:^7.0.2, minipass@npm:^7.0.3, minipass@npm:^7.0.4, minipass@npm:^7.1.2": - version: 7.1.2 - resolution: "minipass@npm:7.1.2" - checksum: 10c0/b0fd20bb9fb56e5fa9a8bfac539e8915ae07430a619e4b86ff71f5fc757ef3924b23b2c4230393af1eda647ed3d75739e4e0acb250a6b1eb277cf7f8fe449557 +"minipass@npm:^7.0.2, minipass@npm:^7.0.3, minipass@npm:^7.0.4, minipass@npm:^7.1.2, minipass@npm:^7.1.3": + version: 7.1.3 + resolution: "minipass@npm:7.1.3" + checksum: 10c0/539da88daca16533211ea5a9ee98dc62ff5742f531f54640dd34429e621955e91cc280a91a776026264b7f9f6735947629f920944e9c1558369e8bf22eb33fbb languageName: node linkType: hard @@ -5787,25 +5702,25 @@ __metadata: languageName: node linkType: hard -"next-intl-swc-plugin-extractor@npm:^4.8.2": - version: 4.8.2 - resolution: "next-intl-swc-plugin-extractor@npm:4.8.2" - checksum: 10c0/8ef0e021c810441edea55a1ae6ab60b9cdb099b3a6f690c453d88df07421164d8418d627f077e026775fceec9816896b2586f13eaa0ce383269ac8327b2ac06f +"next-intl-swc-plugin-extractor@npm:^4.8.3": + version: 4.8.3 + resolution: "next-intl-swc-plugin-extractor@npm:4.8.3" + checksum: 10c0/cb66a6a0534d9640282872f8c946ca8eea42ae2e541341b1591f0feb4ce08f6aea1b7ac0d32c63d54f812006c21f51c41e5ec6e4282608a048e01173c6cee805 languageName: node linkType: hard "next-intl@npm:^4.8.2": - version: 4.8.2 - resolution: "next-intl@npm:4.8.2" + version: 4.8.3 + resolution: "next-intl@npm:4.8.3" dependencies: - "@formatjs/intl-localematcher": "npm:^0.5.4" + "@formatjs/intl-localematcher": "npm:^0.8.1" "@parcel/watcher": "npm:^2.4.1" "@swc/core": "npm:^1.15.2" - icu-minify: "npm:^4.8.2" + icu-minify: "npm:^4.8.3" negotiator: "npm:^1.0.0" - next-intl-swc-plugin-extractor: "npm:^4.8.2" + next-intl-swc-plugin-extractor: "npm:^4.8.3" po-parser: "npm:^2.1.1" - use-intl: "npm:^4.8.2" + use-intl: "npm:^4.8.3" peerDependencies: next: ^12.0.0 || ^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 react: ^16.8.0 || ^17.0.0 || ^18.0.0 || >=19.0.0-rc <19.0.0 || ^19.0.0 @@ -5813,7 +5728,7 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10c0/4f01b51907a360fe1873c5b05dcb0f406ed7b6132ffdc21deb10ce5f4fad6553db67c1ae9f4a4103d1e5fd159a4450ed802d8443cc40f5faaf431431235e0269 + checksum: 10c0/05dd7c589b644f1948eaf474c26d35e4e0637aee127a955ca0353c3ce0d57fc642ed166cfb0c3a2eeec89a8524846bc354a00a0d24a67d5621649a6d11e63c6e languageName: node linkType: hard @@ -5886,6 +5801,18 @@ __metadata: languageName: node linkType: hard +"node-exports-info@npm:^1.6.0": + version: 1.6.0 + resolution: "node-exports-info@npm:1.6.0" + dependencies: + array.prototype.flatmap: "npm:^1.3.3" + es-errors: "npm:^1.3.0" + object.entries: "npm:^1.1.9" + semver: "npm:^6.3.1" + checksum: 10c0/3613f21c60b047e66f168d3499a6be0060d89fb01ddceaa7032c2fb318aff12e4b9b111449c1a9aeb3b848bfdc1d4b6bc8fab327af692319597d21a1e7063692 + languageName: node + linkType: hard + "node-gyp@npm:latest": version: 12.2.0 resolution: "node-gyp@npm:12.2.0" @@ -5907,16 +5834,9 @@ __metadata: linkType: hard "node-releases@npm:^2.0.27": - version: 2.0.27 - resolution: "node-releases@npm:2.0.27" - checksum: 10c0/f1e6583b7833ea81880627748d28a3a7ff5703d5409328c216ae57befbced10ce2c991bea86434e8ec39003bd017f70481e2e5f8c1f7e0a7663241f81d6e00e2 - languageName: node - linkType: hard - -"nodemailer@npm:7.0.11": - version: 7.0.11 - resolution: "nodemailer@npm:7.0.11" - checksum: 10c0/208f108fdb4c5dd0e3a2f013578d53dad505cf1b9c7a084f6d22fc9d6f3912daafb4a23793ca568ff848afc35f15f4eb24382d3f6f9fb8ede4a8410d4ca63618 + version: 2.0.36 + resolution: "node-releases@npm:2.0.36" + checksum: 10c0/85d8d7f4b6248c8372831cbcc3829ce634cb2b01dbd85e55705cefc8a9eda4ce8121bd218b9629cf2579aef8a360541bad409f3925a35675c825b9471a49d7e9 languageName: node linkType: hard @@ -6143,13 +6063,13 @@ __metadata: languageName: node linkType: hard -"path-scurry@npm:^2.0.0": - version: 2.0.1 - resolution: "path-scurry@npm:2.0.1" +"path-scurry@npm:^2.0.2": + version: 2.0.2 + resolution: "path-scurry@npm:2.0.2" dependencies: lru-cache: "npm:^11.0.0" minipass: "npm:^7.1.2" - checksum: 10c0/2a16ed0e81fbc43513e245aa5763354e25e787dab0d539581a6c3f0f967461a159ed6236b2559de23aa5b88e7dc32b469b6c47568833dd142a4b24b4f5cd2620 + checksum: 10c0/b35ad37cf6557a87fd057121ce2be7695380c9138d93e87ae928609da259ea0a170fac6f3ef1eb3ece8a068e8b7f2f3adf5bb2374cf4d4a57fe484954fcc9482 languageName: node linkType: hard @@ -6222,6 +6142,13 @@ __metadata: languageName: node linkType: hard +"postal-mime@npm:2.7.3": + version: 2.7.3 + resolution: "postal-mime@npm:2.7.3" + checksum: 10c0/f8f036b3947e506d3a4a9501501f7a05acd27c7c274fc207c093a0b28eb2c97a4fa295d0fbe55551f33d87c21684401562811767adaa60918adb99a9149d324b + languageName: node + linkType: hard + "postcss-value-parser@npm:^4.0.2, postcss-value-parser@npm:^4.2.0": version: 4.2.0 resolution: "postcss-value-parser@npm:4.2.0" @@ -6240,14 +6167,14 @@ __metadata: languageName: node linkType: hard -"postcss@npm:^8.4.41, postcss@npm:^8.5.6": - version: 8.5.6 - resolution: "postcss@npm:8.5.6" +"postcss@npm:^8.5.6": + version: 8.5.8 + resolution: "postcss@npm:8.5.8" dependencies: nanoid: "npm:^3.3.11" picocolors: "npm:^1.1.1" source-map-js: "npm:^1.2.1" - checksum: 10c0/5127cc7c91ed7a133a1b7318012d8bfa112da9ef092dddf369ae699a1f10ebbd89b1b9f25f3228795b84585c72aabd5ced5fc11f2ba467eedf7b081a66fad024 + checksum: 10c0/dd918f7127ee7c60a0295bae2e72b3787892296e1d1c3c564d7a2a00c68d8df83cadc3178491259daa19ccc54804fb71ed8c937c6787e08d8bd4bedf8d17044c languageName: node linkType: hard @@ -6346,16 +6273,6 @@ __metadata: languageName: node linkType: hard -"promise-retry@npm:^2.0.1": - version: 2.0.1 - resolution: "promise-retry@npm:2.0.1" - dependencies: - err-code: "npm:^2.0.2" - retry: "npm:^0.12.0" - checksum: 10c0/9c7045a1a2928094b5b9b15336dcd2a7b1c052f674550df63cc3f36cd44028e5080448175b6f6ca32b642de81150f5e7b1a98b728f15cb069f2dd60ac2616b96 - languageName: node - linkType: hard - "prop-types@npm:^15.8.1": version: 15.8.1 resolution: "prop-types@npm:15.8.1" @@ -6367,13 +6284,6 @@ __metadata: languageName: node linkType: hard -"punycode.js@npm:2.3.1": - version: 2.3.1 - resolution: "punycode.js@npm:2.3.1" - checksum: 10c0/1d12c1c0e06127fa5db56bd7fdf698daf9a78104456a6b67326877afc21feaa821257b171539caedd2f0524027fa38e67b13dd094159c8d70b6d26d2bea4dfdb - languageName: node - linkType: hard - "punycode@npm:^2.1.0, punycode@npm:^2.3.1": version: 2.3.1 resolution: "punycode@npm:2.3.1" @@ -6400,11 +6310,11 @@ __metadata: linkType: hard "react-hook-form@npm:^7.71.1": - version: 7.71.1 - resolution: "react-hook-form@npm:7.71.1" + version: 7.71.2 + resolution: "react-hook-form@npm:7.71.2" peerDependencies: react: ^16.8.0 || ^17 || ^18 || ^19 - checksum: 10c0/6c8fc0fa740d299481de3ed32bae98f7c6331240822c602363e5cd221746d875dc3c5e65d0039902b7f7a44dc9ac9a4932e00e9ad9af3051bed1987858ce78c7 + checksum: 10c0/bff61c229f5f2516e650325e0c450146cb8a08dc323e5e9aa0753eb937be0b66fe17f40a7b4be9aabc2b5cb770d03de07db7f4912c6c9452a86924072cc1cb46 languageName: node linkType: hard @@ -6492,17 +6402,17 @@ __metadata: linkType: hard "resend@npm:^6.9.1": - version: 6.9.1 - resolution: "resend@npm:6.9.1" + version: 6.9.3 + resolution: "resend@npm:6.9.3" dependencies: - mailparser: "npm:3.9.1" + postal-mime: "npm:2.7.3" svix: "npm:1.84.1" peerDependencies: "@react-email/render": "*" peerDependenciesMeta: "@react-email/render": optional: true - checksum: 10c0/eb50de231c92928fc32541f7fbcd3c8ce372939e403c78d4fc0102ca214a9edf33c8250ed203a323359a91c3b2b7a01a7a9f3b2335887a95de69c8d5b3962217 + checksum: 10c0/797bef578fb34906ec09213379131b5d24240071311180018745347fab0bd5e613aa1339b151239aeea6d9a06d5b3a19a47bfe5f9baf21e5abf50259c86b1b47 languageName: node linkType: hard @@ -6534,15 +6444,18 @@ __metadata: linkType: hard "resolve@npm:^2.0.0-next.5": - version: 2.0.0-next.5 - resolution: "resolve@npm:2.0.0-next.5" + version: 2.0.0-next.6 + resolution: "resolve@npm:2.0.0-next.6" dependencies: - is-core-module: "npm:^2.13.0" + es-errors: "npm:^1.3.0" + is-core-module: "npm:^2.16.1" + node-exports-info: "npm:^1.6.0" + object-keys: "npm:^1.1.1" path-parse: "npm:^1.0.7" supports-preserve-symlinks-flag: "npm:^1.0.0" bin: resolve: bin/resolve - checksum: 10c0/a6c33555e3482ea2ec4c6e3d3bf0d78128abf69dca99ae468e64f1e30acaa318fd267fb66c8836b04d558d3e2d6ed875fe388067e7d8e0de647d3c21af21c43a + checksum: 10c0/4e44cb84aa9a3c7c82d4a98e8111879671150496160a53ca6cdbed6101bf239f19105f8b8b84e40c0b76d46b0d9626813510b19a80e01f4ae18692e9d0b47749 languageName: node linkType: hard @@ -6560,22 +6473,25 @@ __metadata: linkType: hard "resolve@patch:resolve@npm%3A^2.0.0-next.5#optional!builtin": - version: 2.0.0-next.5 - resolution: "resolve@patch:resolve@npm%3A2.0.0-next.5#optional!builtin::version=2.0.0-next.5&hash=c3c19d" + version: 2.0.0-next.6 + resolution: "resolve@patch:resolve@npm%3A2.0.0-next.6#optional!builtin::version=2.0.0-next.6&hash=c3c19d" dependencies: - is-core-module: "npm:^2.13.0" + es-errors: "npm:^1.3.0" + is-core-module: "npm:^2.16.1" + node-exports-info: "npm:^1.6.0" + object-keys: "npm:^1.1.1" path-parse: "npm:^1.0.7" supports-preserve-symlinks-flag: "npm:^1.0.0" bin: resolve: bin/resolve - checksum: 10c0/78ad6edb8309a2bfb720c2c1898f7907a37f858866ce11a5974643af1203a6a6e05b2fa9c53d8064a673a447b83d42569260c306d43628bff5bb101969708355 + checksum: 10c0/dca533e38820b0d8d636f269824cef3b7435802ab7401211c6f10af03be0e2f7e216047234e1623046c0a6791577079767e0c04f0d36e42c7f567b1bff7b0742 languageName: node linkType: hard -"retry@npm:^0.12.0": - version: 0.12.0 - resolution: "retry@npm:0.12.0" - checksum: 10c0/59933e8501727ba13ad73ef4a04d5280b3717fd650408460c987392efe9d7be2040778ed8ebe933c5cbd63da3dcc37919c141ef8af0a54a6e4fca5a2af177bfe +"retry@npm:^0.13.1": + version: 0.13.1 + resolution: "retry@npm:0.13.1" + checksum: 10c0/9ae822ee19db2163497e074ea919780b1efa00431d197c7afdb950e42bf109196774b92a49fc9821f0b8b328a98eea6017410bfc5e8a0fc19c85c6d11adb3772 languageName: node linkType: hard @@ -6594,34 +6510,34 @@ __metadata: linkType: hard "rollup@npm:^4.43.0": - version: 4.57.1 - resolution: "rollup@npm:4.57.1" - dependencies: - "@rollup/rollup-android-arm-eabi": "npm:4.57.1" - "@rollup/rollup-android-arm64": "npm:4.57.1" - "@rollup/rollup-darwin-arm64": "npm:4.57.1" - "@rollup/rollup-darwin-x64": "npm:4.57.1" - "@rollup/rollup-freebsd-arm64": "npm:4.57.1" - "@rollup/rollup-freebsd-x64": "npm:4.57.1" - "@rollup/rollup-linux-arm-gnueabihf": "npm:4.57.1" - "@rollup/rollup-linux-arm-musleabihf": "npm:4.57.1" - "@rollup/rollup-linux-arm64-gnu": "npm:4.57.1" - "@rollup/rollup-linux-arm64-musl": "npm:4.57.1" - "@rollup/rollup-linux-loong64-gnu": "npm:4.57.1" - "@rollup/rollup-linux-loong64-musl": "npm:4.57.1" - "@rollup/rollup-linux-ppc64-gnu": "npm:4.57.1" - "@rollup/rollup-linux-ppc64-musl": "npm:4.57.1" - "@rollup/rollup-linux-riscv64-gnu": "npm:4.57.1" - "@rollup/rollup-linux-riscv64-musl": "npm:4.57.1" - "@rollup/rollup-linux-s390x-gnu": "npm:4.57.1" - "@rollup/rollup-linux-x64-gnu": "npm:4.57.1" - "@rollup/rollup-linux-x64-musl": "npm:4.57.1" - "@rollup/rollup-openbsd-x64": "npm:4.57.1" - "@rollup/rollup-openharmony-arm64": "npm:4.57.1" - "@rollup/rollup-win32-arm64-msvc": "npm:4.57.1" - "@rollup/rollup-win32-ia32-msvc": "npm:4.57.1" - "@rollup/rollup-win32-x64-gnu": "npm:4.57.1" - "@rollup/rollup-win32-x64-msvc": "npm:4.57.1" + version: 4.59.0 + resolution: "rollup@npm:4.59.0" + dependencies: + "@rollup/rollup-android-arm-eabi": "npm:4.59.0" + "@rollup/rollup-android-arm64": "npm:4.59.0" + "@rollup/rollup-darwin-arm64": "npm:4.59.0" + "@rollup/rollup-darwin-x64": "npm:4.59.0" + "@rollup/rollup-freebsd-arm64": "npm:4.59.0" + "@rollup/rollup-freebsd-x64": "npm:4.59.0" + "@rollup/rollup-linux-arm-gnueabihf": "npm:4.59.0" + "@rollup/rollup-linux-arm-musleabihf": "npm:4.59.0" + "@rollup/rollup-linux-arm64-gnu": "npm:4.59.0" + "@rollup/rollup-linux-arm64-musl": "npm:4.59.0" + "@rollup/rollup-linux-loong64-gnu": "npm:4.59.0" + "@rollup/rollup-linux-loong64-musl": "npm:4.59.0" + "@rollup/rollup-linux-ppc64-gnu": "npm:4.59.0" + "@rollup/rollup-linux-ppc64-musl": "npm:4.59.0" + "@rollup/rollup-linux-riscv64-gnu": "npm:4.59.0" + "@rollup/rollup-linux-riscv64-musl": "npm:4.59.0" + "@rollup/rollup-linux-s390x-gnu": "npm:4.59.0" + "@rollup/rollup-linux-x64-gnu": "npm:4.59.0" + "@rollup/rollup-linux-x64-musl": "npm:4.59.0" + "@rollup/rollup-openbsd-x64": "npm:4.59.0" + "@rollup/rollup-openharmony-arm64": "npm:4.59.0" + "@rollup/rollup-win32-arm64-msvc": "npm:4.59.0" + "@rollup/rollup-win32-ia32-msvc": "npm:4.59.0" + "@rollup/rollup-win32-x64-gnu": "npm:4.59.0" + "@rollup/rollup-win32-x64-msvc": "npm:4.59.0" "@types/estree": "npm:1.0.8" fsevents: "npm:~2.3.2" dependenciesMeta: @@ -6679,7 +6595,7 @@ __metadata: optional: true bin: rollup: dist/bin/rollup - checksum: 10c0/a90aaf1166fc495920e44e52dced0b12283aaceb0924abd6f863102128dd428bbcbf85970f792c06bc63d2a2168e7f073b73e05f6f8d76fdae17b7ac6cacba06 + checksum: 10c0/f38742da34cfee5e899302615fa157aa77cb6a2a1495e5e3ce4cc9c540d3262e235bbe60caa31562bbfe492b01fdb3e7a8c43c39d842d3293bcf843123b766fc languageName: node linkType: hard @@ -6760,8 +6676,8 @@ __metadata: linkType: hard "satori@npm:^0.19.1": - version: 0.19.1 - resolution: "satori@npm:0.19.1" + version: 0.19.3 + resolution: "satori@npm:0.19.3" dependencies: "@shuding/opentype.js": "npm:1.4.0-beta.0" css-background-parser: "npm:^0.1.0" @@ -6774,7 +6690,7 @@ __metadata: parse-css-color: "npm:^0.2.1" postcss-value-parser: "npm:^4.2.0" yoga-layout: "npm:^3.2.1" - checksum: 10c0/29ba6f3e5f1dc23dd797bd1d1881819bf9196c90e5517b67dfc7cdf1924f31bc53337e5b94a75b598cf1e078ed7d8dead797a693620052e44be6e2339dc53875 + checksum: 10c0/2cddf85fe077e2c60580812ed8177db8a12e3ad162ce24584b66c620eb64c7903e84d4188c88c42dcf8d1519006996b5341918f2d1e09093a8c33bd7ad1ca91a languageName: node linkType: hard @@ -6820,11 +6736,11 @@ __metadata: linkType: hard "semver@npm:^7.3.5, semver@npm:^7.7.1, semver@npm:^7.7.3": - version: 7.7.3 - resolution: "semver@npm:7.7.3" + version: 7.7.4 + resolution: "semver@npm:7.7.4" bin: semver: bin/semver.js - checksum: 10c0/4afe5c986567db82f44c8c6faef8fe9df2a9b1d98098fc1721f57c696c4c21cebd572f297fc21002f81889492345b8470473bc6f4aff5fb032a6ea59ea2bc45e + checksum: 10c0/5215ad0234e2845d4ea5bb9d836d42b03499546ddafb12075566899fc617f68794bb6f146076b6881d755de17d6c6cc73372555879ec7dce2c2feee947866ad2 languageName: node linkType: hard @@ -7065,7 +6981,7 @@ __metadata: languageName: node linkType: hard -"source-map-js@npm:^1.0.1, source-map-js@npm:^1.0.2, source-map-js@npm:^1.2.1": +"source-map-js@npm:^1.0.2, source-map-js@npm:^1.2.1": version: 1.2.1 resolution: "source-map-js@npm:1.2.1" checksum: 10c0/7bda1fc4c197e3c6ff17de1b8b2c20e60af81b63a52cb32ec5a5d67a20a7d42651e2cb34ebe93833c5a2a084377e17455854fee3e21e7925c64a51b6a52b0faf @@ -7073,11 +6989,11 @@ __metadata: linkType: hard "ssri@npm:^13.0.0": - version: 13.0.0 - resolution: "ssri@npm:13.0.0" + version: 13.0.1 + resolution: "ssri@npm:13.0.1" dependencies: minipass: "npm:^7.0.3" - checksum: 10c0/405f3a531cd98b013cecb355d63555dca42fd12c7bc6671738aaa9a82882ff41cdf0ef9a2b734ca4f9a760338f114c29d01d9238a65db3ccac27929bd6e6d4b2 + checksum: 10c0/cf6408a18676c57ff2ed06b8a20dc64bb3e748e5c7e095332e6aecaa2b8422b1e94a739a8453bf65156a8a47afe23757ba4ab52d3ea3b62322dc40875763e17a languageName: node linkType: hard @@ -7291,16 +7207,16 @@ __metadata: linkType: hard "tailwind-merge@npm:^3.4.0": - version: 3.4.0 - resolution: "tailwind-merge@npm:3.4.0" - checksum: 10c0/eaf17bb695c51c7bb7a90366a9c62be295473ee97fcfd1da54287714d4a5788a88ff4ad1ab9e0128638257fda777d6c9ea88682e36195e31a7fa2cf43f45e310 + version: 3.5.0 + resolution: "tailwind-merge@npm:3.5.0" + checksum: 10c0/4dc588f5b5296ba3f38e1ebb41f02b6d24a8c5bb45e44b33748c118fb4b5767dd0efc464431ca3e75404056b618b5f67bec3708158baa65fed8a2fc9201e0c53 languageName: node linkType: hard -"tailwindcss@npm:4.1.18, tailwindcss@npm:^4.1.18": - version: 4.1.18 - resolution: "tailwindcss@npm:4.1.18" - checksum: 10c0/c79263cea0b2c577859b02f28284caa4eb3844e4d0f563686726ca97817c045c5c395a55bc776daaa351ba9e4aefa9a75bfbb43c22d86f3c573eecc2b87d6bf1 +"tailwindcss@npm:4.2.1, tailwindcss@npm:^4.1.18": + version: 4.2.1 + resolution: "tailwindcss@npm:4.2.1" + checksum: 10c0/482d734b582e9da509042ff59c1d7564d99e39e238c50ae907c20fa56177a8a00c3902f6971329971bd6a1c5357026ac76a849b8f2c69c94f0f59be99530ba54 languageName: node linkType: hard @@ -7312,15 +7228,15 @@ __metadata: linkType: hard "tar@npm:^7.5.4": - version: 7.5.7 - resolution: "tar@npm:7.5.7" + version: 7.5.11 + resolution: "tar@npm:7.5.11" dependencies: "@isaacs/fs-minipass": "npm:^4.0.0" chownr: "npm:^3.0.0" minipass: "npm:^7.1.2" minizlib: "npm:^3.1.0" yallist: "npm:^5.0.0" - checksum: 10c0/51f261afc437e1112c3e7919478d6176ea83f7f7727864d8c2cce10f0b03a631d1911644a567348c3063c45abdae39718ba97abb073d22aa3538b9a53ae1e31c + checksum: 10c0/b6bb420550ef50ef23356018155e956cd83282c97b6128d8d5cfe5740c57582d806a244b2ef0bf686a74ce526babe8b8b9061527623e935e850008d86d838929 languageName: node linkType: hard @@ -7362,30 +7278,21 @@ __metadata: languageName: node linkType: hard -"tlds@npm:1.261.0": - version: 1.261.0 - resolution: "tlds@npm:1.261.0" - bin: - tlds: bin.js - checksum: 10c0/ce05d266618312dd52efe0c958ebd668da70b9b752b7ec1f1b8c4b8fabc6e0f044159f80fec6c3a78df02572afbeb343208df7ef8e83a43e9f8e6c26134c76ee - languageName: node - linkType: hard - -"tldts-core@npm:^7.0.22": - version: 7.0.22 - resolution: "tldts-core@npm:7.0.22" - checksum: 10c0/30fa12370d6bbac12b4dece2e6828ee719f12cdc0b1f24d00136b6fc3111c928d1f94dc13e4af9df566f86e835324fdd0eafa7234f9cb4695ca076c477c37bee +"tldts-core@npm:^7.0.25": + version: 7.0.25 + resolution: "tldts-core@npm:7.0.25" + checksum: 10c0/fd07a555a27a6f11ed87365845d80bf7755d490cd52adf6cd474cbb9148fdaa97c79f58a8ebbc19ccfec0578e76ced5f5ae3b88e85338529291918f5fe815914 languageName: node linkType: hard "tldts@npm:^7.0.5": - version: 7.0.22 - resolution: "tldts@npm:7.0.22" + version: 7.0.25 + resolution: "tldts@npm:7.0.25" dependencies: - tldts-core: "npm:^7.0.22" + tldts-core: "npm:^7.0.25" bin: tldts: bin/cli.js - checksum: 10c0/8a2ae2ae15d2fc15dc4fde506e9d3bcd00b8767818284f1d57d97fe035f7828dbdecd70e957c8be4282de77419ef99aa70f92fb8b128b8d334e7093fa1e5145b + checksum: 10c0/8affd92849a4b0e290c5b211dce58ddee79d5e6d7079fc592afb97d95decd90028194b844c0b3cfb9254de02fb73e01f89500f3e47073dd96a3266223ca221b9 languageName: node linkType: hard @@ -7458,7 +7365,7 @@ __metadata: languageName: node linkType: hard -"tslib@npm:2, tslib@npm:2.8.1, tslib@npm:^2.4.0, tslib@npm:^2.8.0, tslib@npm:^2.8.1": +"tslib@npm:2.8.1, tslib@npm:^2.4.0, tslib@npm:^2.8.0, tslib@npm:^2.8.1": version: 2.8.1 resolution: "tslib@npm:2.8.1" checksum: 10c0/9c4759110a19c53f992d9aae23aac5ced636e99887b51b9e61def52611732872ff7668757d4e4c61f19691e36f4da981cd9485e869b4a7408d689f6bf1f14e62 @@ -7528,17 +7435,17 @@ __metadata: linkType: hard "typescript-eslint@npm:^8.46.0": - version: 8.54.0 - resolution: "typescript-eslint@npm:8.54.0" + version: 8.57.0 + resolution: "typescript-eslint@npm:8.57.0" dependencies: - "@typescript-eslint/eslint-plugin": "npm:8.54.0" - "@typescript-eslint/parser": "npm:8.54.0" - "@typescript-eslint/typescript-estree": "npm:8.54.0" - "@typescript-eslint/utils": "npm:8.54.0" + "@typescript-eslint/eslint-plugin": "npm:8.57.0" + "@typescript-eslint/parser": "npm:8.57.0" + "@typescript-eslint/typescript-estree": "npm:8.57.0" + "@typescript-eslint/utils": "npm:8.57.0" peerDependencies: - eslint: ^8.57.0 || ^9.0.0 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: ">=4.8.4 <6.0.0" - checksum: 10c0/0ba92aa22c0aa10c88b0f4732950ed64245947f1c4ac17328dff94b43eaeddd3068595788725781fba07a87cc964304a075b3e37f9a86312173498fcc6ab4338 + checksum: 10c0/5491c6dff2bc3f2914d60326490316b3f92e022756017da8b36cbb9d4d94fc781b642a3a033ca3add2ff26ee7a95798baedc5f55598cd21ce706bae5b7731632 languageName: node linkType: hard @@ -7562,13 +7469,6 @@ __metadata: languageName: node linkType: hard -"uc.micro@npm:^2.0.0": - version: 2.1.0 - resolution: "uc.micro@npm:2.1.0" - checksum: 10c0/8862eddb412dda76f15db8ad1c640ccc2f47cdf8252a4a30be908d535602c8d33f9855dfcccb8b8837855c1ce1eaa563f7fa7ebe3c98fd0794351aab9b9c55fa - languageName: node - linkType: hard - "unbox-primitive@npm:^1.1.0": version: 1.1.0 resolution: "unbox-primitive@npm:1.1.0" @@ -7588,10 +7488,17 @@ __metadata: languageName: node linkType: hard -"undici@npm:^7.20.0": - version: 7.20.0 - resolution: "undici@npm:7.20.0" - checksum: 10c0/99054958a07b4105e1461bf5f38550746a15e01d6807e7a2b0849f18e1bc3f481c1ad080ea87b255a39264cec5d80ebf2b3bc82c3e732d81e6a0cc3c920c05c6 +"undici-types@npm:~7.18.0": + version: 7.18.2 + resolution: "undici-types@npm:7.18.2" + checksum: 10c0/85a79189113a238959d7a647368e4f7c5559c3a404ebdb8fc4488145ce9426fcd82252a844a302798dfc0e37e6fb178ff481ed03bc4caf634c5757d9ef43521d + languageName: node + linkType: hard + +"undici@npm:^7.21.0": + version: 7.22.0 + resolution: "undici@npm:7.22.0" + checksum: 10c0/09777c06f3f18f761f03e3a4c9c04fd9fcca8ad02ccea43602ee4adf73fcba082806f1afb637f6ea714ef6279c5323c25b16d435814c63db720f63bfc20d316b languageName: node linkType: hard @@ -7713,17 +7620,17 @@ __metadata: languageName: node linkType: hard -"use-intl@npm:^4.8.2": - version: 4.8.2 - resolution: "use-intl@npm:4.8.2" +"use-intl@npm:^4.8.3": + version: 4.8.3 + resolution: "use-intl@npm:4.8.3" dependencies: "@formatjs/fast-memoize": "npm:^3.1.0" "@schummar/icu-type-parser": "npm:1.21.5" - icu-minify: "npm:^4.8.2" + icu-minify: "npm:^4.8.3" intl-messageformat: "npm:^11.1.0" peerDependencies: react: ^17.0.0 || ^18.0.0 || >=19.0.0-rc <19.0.0 || ^19.0.0 - checksum: 10c0/557ddddc9af5ecd13e7ac1187d83600c0ff34e3133c191e57dde16da3700ab112d95c2742f917e0912a2b736dd5c258c9d22189a870ba604c519915700fdf225 + checksum: 10c0/f28ed6994cf9440a9d8826ee1c3cfb21f1c9327f55aff9c2a5a2feaf38375a5f1bea677e3f3b777be3391aa606cc5d6017d879a23b0580dd859cc6cf2d449548 languageName: node linkType: hard @@ -7744,15 +7651,15 @@ __metadata: linkType: hard "vite-tsconfig-paths@npm:^6.0.5": - version: 6.0.5 - resolution: "vite-tsconfig-paths@npm:6.0.5" + version: 6.1.1 + resolution: "vite-tsconfig-paths@npm:6.1.1" dependencies: debug: "npm:^4.1.1" globrex: "npm:^0.1.2" tsconfck: "npm:^3.0.3" peerDependencies: vite: "*" - checksum: 10c0/c62dd84804b9d2d35460146bda0bb752d270043d805df0e806ade6a9bbf37c5ad5da8a29d822b89931821545c201bc7ca07c594f245aebabe92d51d0cd1b63df + checksum: 10c0/5e61080991418fefa08c5b98995cdcada4931ae01ac97ef9e2ee941051f61b76890a6e7ba48bed3b2a229ec06fef33a06621bba4ce457b3f4233ad31dc0c1d1b languageName: node linkType: hard @@ -7901,13 +7808,13 @@ __metadata: linkType: hard "whatwg-url@npm:^16.0.0": - version: 16.0.0 - resolution: "whatwg-url@npm:16.0.0" + version: 16.0.1 + resolution: "whatwg-url@npm:16.0.1" dependencies: "@exodus/bytes": "npm:^1.11.0" tr46: "npm:^6.0.0" webidl-conversions: "npm:^8.0.1" - checksum: 10c0/9b8cb392be244d0e9687ffe543f9ea63b7aa051a98547ea362a38d182d89bfbd96e13e7ed3f40df1f7566bb7c3581f6c081ddea950cf5382532716ce33000ff4 + checksum: 10c0/e75565566abf3a2cdbd9f06c965dbcccee6ec4e9f0d3728ad5e08ceb9944279848bcaa211d35a29cb6d2df1e467dd05cfb59fbddf8a0adcd7d0bce9ffb703fd2 languageName: node linkType: hard @@ -7984,13 +7891,13 @@ __metadata: linkType: hard "which@npm:^6.0.0": - version: 6.0.0 - resolution: "which@npm:6.0.0" + version: 6.0.1 + resolution: "which@npm:6.0.1" dependencies: - isexe: "npm:^3.1.1" + isexe: "npm:^4.0.0" bin: node-which: bin/which.js - checksum: 10c0/fe9d6463fe44a76232bb6e3b3181922c87510a5b250a98f1e43a69c99c079b3f42ddeca7e03d3e5f2241bf2d334f5a7657cfa868b97c109f3870625842f4cc15 + checksum: 10c0/7e710e54ea36d2d6183bee2f9caa27a3b47b9baf8dee55a199b736fcf85eab3b9df7556fca3d02b50af7f3dfba5ea3a45644189836df06267df457e354da66d5 languageName: node linkType: hard