diff --git a/.gitignore b/.gitignore index d663663..76bb1ca 100644 --- a/.gitignore +++ b/.gitignore @@ -10,6 +10,7 @@ package-lock.json /coverage # next.js +next-env.d.ts /.next/ /out/ diff --git a/README.md b/README.md index d78ecd2..753fbae 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,10 @@ [![CI & CD](https://github.com/Open-Source-Bazaar/Open-Source-Bazaar.github.io/actions/workflows/main.yml/badge.svg)][7] +## 项目简介 + +1. **指数基金精选页 `/finance`**:面向理财新手和进阶用户,一屏解释指数基金长期定投与指数投资的核心逻辑,一屏基于 AKShare 实时与历史数据筛选 30-50 只国内核心指数基金,支持按风险等级、收益、最大回撤等维度筛选和对比,可逐步扩展组合推荐和教育内容。 + ## 上游项目 - [idea2app/Lark-Next-Bootstrap-ts][1] @@ -11,7 +15,7 @@ ## 技术栈 - Language: [TypeScript v5][2] -- Component engine: [Nextjs v15][3] +- Component engine: [Nextjs v16][3] - Component suite: [Bootstrap v5][4] - CI / CD: GitHub [Actions][10] + [Vercel][11] diff --git a/components/Finance/Finance.module.less b/components/Finance/Finance.module.less new file mode 100644 index 0000000..511aae4 --- /dev/null +++ b/components/Finance/Finance.module.less @@ -0,0 +1,41 @@ +.fundCard { + transition: + transform 0.2s ease, + box-shadow 0.2s ease; + box-shadow: 0 16px 40px rgba(15, 23, 42, 0.08); + border: 1px solid rgba(15, 23, 42, 0.08); + border-radius: 20px; + &:hover { + transform: translateY(-4px); + box-shadow: 0 24px 60px rgba(15, 23, 42, 0.12); + } + + .header small { + line-height: 1.3; + } +} + +.metric { + gap: 1.5rem; + .value { + font-weight: 700; + font-size: 2rem; + } +} +.tagBadge { + border: 1px solid rgba(15, 23, 42, 0.15); + border-radius: 999px; + font-weight: 500; +} + +.mutedText { + color: rgba(15, 23, 42, 0.6); +} + +.positiveText { + color: #198754; +} + +.negativeText { + color: #dc3545; +} diff --git a/components/Finance/FundCard.tsx b/components/Finance/FundCard.tsx new file mode 100644 index 0000000..1b2b450 --- /dev/null +++ b/components/Finance/FundCard.tsx @@ -0,0 +1,109 @@ +import { FC, useContext, useMemo } from 'react'; +import { Badge, Card } from 'react-bootstrap'; + +import { INDEX_CATEGORY_LABEL_KEYS, INDEX_RISK_LABEL_KEYS } from '../../constants/finance'; +import { I18nContext } from '../../models/Translation'; +import { IndexFundSnapshot } from '../../types/finance'; +import styles from './Finance.module.less'; +import { SparkLine } from './SparkLine'; + +const formatNumber = (value?: number | null, locale = 'zh-CN') => + value != null ? value.toLocaleString(locale, { maximumFractionDigits: 2 }) : '--'; + +const formatPercent = (value?: number | null) => + value != null ? `${(value * 100).toFixed(2)}%` : '--'; + +const valueTone = (value?: number | null) => + value != null ? (value >= 0 ? styles.positiveText : styles.negativeText) : styles.mutedText; + +export const FundCard: FC = ({ + symbol, + displayName, + category, + riskLevel, + latestValue, + dailyChangePct, + oneYearReturnPct, + maxDrawdownPct, + tags, + sparkline, + updatedAt, + fallback, + description, + source, +}) => { + const { currentLanguage, t } = useContext(I18nContext); + const sparklineId = useMemo(() => `fund-${symbol}`, [symbol]); + const updatedAtISO = updatedAt ? new Date(updatedAt).toJSON() : undefined; + + return ( + + +
+
+

{displayName}

+
+ + {t(INDEX_CATEGORY_LABEL_KEYS[category])} + + + {t(INDEX_RISK_LABEL_KEYS[riskLevel])} + + {fallback && ( + + {t('offline_data')} + + )} +
+
+ + {t('data_source')}
+ {source.historyEndpoint} +
+
+ +

{description}

+ +
+
{t('index_metric_latest_value')}
+
{formatNumber(latestValue, currentLanguage)}
+ +
{t('index_metric_daily_change')}
+
{formatPercent(dailyChangePct)}
+ +
{t('index_metric_one_year_return')}
+
{formatPercent(oneYearReturnPct)}
+ +
{t('index_metric_max_drawdown')}
+
{formatPercent(maxDrawdownPct)}
+
+ + + +
    + {tags?.map(tag => ( + + {tag} + + ))} +
+ + + + + {t('view_details')} + +
+
+ ); +}; diff --git a/components/Finance/SparkLine.module.less b/components/Finance/SparkLine.module.less new file mode 100644 index 0000000..b0fa2eb --- /dev/null +++ b/components/Finance/SparkLine.module.less @@ -0,0 +1,17 @@ +.sparkline { + width: 100%; + height: 80px; + + svg { + width: 100%; + height: 100%; + } + + .placeholder { + border: 1px dashed rgba(15, 23, 42, 0.2); + border-radius: 12px; + padding: 1rem; + color: rgba(15, 23, 42, 0.6); + text-align: center; + } +} diff --git a/components/Finance/SparkLine.tsx b/components/Finance/SparkLine.tsx new file mode 100644 index 0000000..663204c --- /dev/null +++ b/components/Finance/SparkLine.tsx @@ -0,0 +1,89 @@ +import { computed } from 'mobx'; +import { observer } from 'mobx-react'; +import { ObservedComponent } from 'mobx-react-helper'; + +import { i18n, I18nContext } from '../../models/Translation'; +import { IndexHistoryPoint } from '../../types/finance'; +import styles from './SparkLine.module.less'; + +export interface SparkLineProps { + points: IndexHistoryPoint[]; + chartId: string; +} + +@observer +export class SparkLine extends ObservedComponent { + static contextType = I18nContext; + + @computed + get chartData() { + const { points } = this.observedProps; + + if (!points.length) return { polyline: '', gradientStops: [] as number[] }; + + const values = points.map(({ value }) => value); + const min = Math.min(...values); + const max = Math.max(...values); + const delta = max - min || 1; + + const polylinePoints = points + .map(({ value }, index, { length }) => { + const x = (index / Math.max(length - 1, 1)) * 100; + const y = ((max - value) / delta) * 40; + + return `${x.toFixed(2)},${y.toFixed(2)}`; + }) + .join(' '); + + const gradientOffsets = [0, 50, 100]; + + return { polyline: polylinePoints, gradientStops: gradientOffsets }; + } + + renderContent() { + const { t } = this.observedContext, + { chartId } = this.observedProps, + { polyline, gradientStops } = this.chartData; + const gradientId = `${chartId}-gradient`; + + return ( +
+ + + + {gradientStops.map(offset => ( + + ))} + + + + +
+ ); + } + + render() { + const { t } = this.observedContext, + { points } = this.props; + + return points.length ? ( + this.renderContent() + ) : ( +
+
{t('data_preparing')}
+
+ ); + } +} diff --git a/constants/finance.ts b/constants/finance.ts new file mode 100644 index 0000000..db0dfba --- /dev/null +++ b/constants/finance.ts @@ -0,0 +1,14 @@ +import { IndexFundCategory, IndexRiskLevel } from '../types/finance'; +import { I18nKey } from '../models/Translation'; + +export const INDEX_CATEGORY_LABEL_KEYS: Record = { + broad: 'index_category_broad', + sector: 'index_category_sector', + theme: 'index_category_theme', +}; + +export const INDEX_RISK_LABEL_KEYS: Record = { + conservative: 'index_risk_conservative', + balanced: 'index_risk_balanced', + aggressive: 'index_risk_aggressive', +}; diff --git a/eslint.config.ts b/eslint.config.ts index 2590175..ab05280 100644 --- a/eslint.config.ts +++ b/eslint.config.ts @@ -2,6 +2,7 @@ import cspellPlugin from '@cspell/eslint-plugin'; import eslint from '@eslint/js'; import nextPlugin from '@next/eslint-plugin-next'; import stylistic from '@stylistic/eslint-plugin'; +import { defineConfig } from 'eslint/config'; import eslintConfigPrettier from 'eslint-config-prettier'; import react from 'eslint-plugin-react'; import simpleImportSortPlugin from 'eslint-plugin-simple-import-sort'; @@ -16,7 +17,7 @@ import { fileURLToPath } from 'url'; const tsconfigRootDir = fileURLToPath(new URL('.', import.meta.url)); -export default tsEslint.config( +export default defineConfig( // register all of the plugins up-front { plugins: { @@ -47,7 +48,6 @@ export default tsEslint.config( warnOnUnsupportedTypeScriptVersion: false, }, }, - // @ts-expect-error https://github.com/vercel/next.js/issues/81695 rules: { // spellchecker '@cspell/spellchecker': [ diff --git a/lib/akshare.ts b/lib/akshare.ts new file mode 100644 index 0000000..268f51c --- /dev/null +++ b/lib/akshare.ts @@ -0,0 +1,46 @@ +import { buildURLData } from 'web-utility'; + +const DEFAULT_HOSTS = [ + process.env.AKSHARE_API_BASE, + 'https://akshare.xyz/api/public', + 'https://akshare.akfamily.xyz/api/public', +].filter((value): value is string => !!value); + +export async function requestAkShareJSON( + endpoint: string, + params?: Record, +): Promise { + let lastError: Error | null = null; + + for (const host of DEFAULT_HOSTS) { + try { + const url = new URL(endpoint.replace(/^\//, ''), host.endsWith('/') ? host : `${host}/`); + + if (params) url.search = buildURLData(params) + ''; + + const response = await fetch(url.toString(), { + headers: { accept: 'application/json' }, + cache: 'no-store', + }); + + if (!response.ok) + throw new Error( + `AkShare responded with ${response.status} ${response.statusText} for ${url}`, + ); + + const contentType = response.headers.get('content-type'); + + if (!contentType?.includes('application/json')) { + const preview = (await response.text()).slice(0, 200); + + throw new Error(`Unexpected content-type ${contentType} for ${url}: ${preview}`); + } + + return (await response.json()) as T; + } catch (error) { + lastError = error as Error; + console.warn(`[AkShare] Falling back after error on host ${host}:`, lastError.message); + } + } + throw lastError ?? new Error('AkShare request failed without specific error'); +} diff --git a/lib/finance.ts b/lib/finance.ts new file mode 100644 index 0000000..b4ebda2 --- /dev/null +++ b/lib/finance.ts @@ -0,0 +1,52 @@ +import { IndexHistoryPoint } from '../types/finance'; + +export const TRADING_DAYS_PER_YEAR = 252; + +export const computeChangePct = (current?: number | null, base?: number | null): number | null => + current == null || base == null || base === 0 ? null : (current - base) / base; + +export function computeOneYearReturn(series: IndexHistoryPoint[]) { + if (series.length < 2) return null; + + const sorted = [...series].sort((a, b) => a.date.localeCompare(b.date)); + const recent = sorted.slice(-TRADING_DAYS_PER_YEAR); + + if (recent.length < 2) return null; + + const [{ value: first }] = recent; + const { value: last } = recent.at(-1)!; + + return computeChangePct(last, first); +} + +export function computeMaxDrawdown(series: IndexHistoryPoint[]) { + if (!series.length) return null; + + const sorted = [...series].sort((a, b) => a.date.localeCompare(b.date)); + + let peak = sorted[0].value; + let maxDrawdown = 0; + + for (const { value } of sorted) { + if (value > peak) peak = value; + + if (!peak) break; + + const drawdown = computeChangePct(value, peak); + + if (drawdown != null && drawdown < maxDrawdown) maxDrawdown = drawdown; + } + + return maxDrawdown; +} + +export function computeDailyChange(series: IndexHistoryPoint[]) { + if (series.length < 2) return null; + + const [{ value: previous }, { value: latest }] = series.slice(-2); + + return computeChangePct(latest, previous); +} + +export const buildSparkline = (series: IndexHistoryPoint[], limit = 30) => + [...series].sort((a, b) => a.date.localeCompare(b.date)).slice(-limit); diff --git a/models/Finance.ts b/models/Finance.ts new file mode 100644 index 0000000..776caf6 --- /dev/null +++ b/models/Finance.ts @@ -0,0 +1,35 @@ +import { observable } from 'mobx'; +import { ListModel } from 'mobx-restful'; +import { buildURLData } from 'web-utility'; + +import { ownClient } from './Base'; +import { IndexFundSnapshot, IndexFundCategory, IndexRiskLevel } from '../types/finance'; + +export interface IndexFundFilter { + category?: IndexFundCategory; + riskLevel?: IndexRiskLevel; +} + +interface IndexFundAPIResponse { + data: IndexFundSnapshot[]; + meta?: { total?: number }; +} + +export class IndexFundModel extends ListModel { + client = ownClient; + baseURI = 'finance/index-funds'; + + @observable accessor pageSize = 8; + + async loadPage(page = this.pageIndex, limit = this.pageSize, filter: IndexFundFilter = {}) { + const { body } = await this.client.get( + `${this.baseURI}?${buildURLData({ ...filter, limit })}`, + ); + const pageData = body?.data || []; + const totalCount = body?.meta?.total ?? pageData.length; + + return { pageData, totalCount }; + } +} + +export const indexFundStore = new IndexFundModel(); diff --git a/models/Translation.ts b/models/Translation.ts index 2fdc196..83a7018 100644 --- a/models/Translation.ts +++ b/models/Translation.ts @@ -18,6 +18,8 @@ export interface I18nProps { languageMap: typeof zhCN; } +export type I18nKey = keyof typeof zhCN; + export const createI18nStore = ( language?: N, data?: TranslationMap, diff --git a/next-env.d.ts b/next-env.d.ts deleted file mode 100644 index 254b73c..0000000 --- a/next-env.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -/// -/// -/// - -// NOTE: This file should not be edited -// see https://nextjs.org/docs/pages/api-reference/config/typescript for more information. diff --git a/package.json b/package.json index 465d304..6e48138 100644 --- a/package.json +++ b/package.json @@ -7,82 +7,82 @@ "e": "pnpx @dotenvx/dotenvx run -f .env.personal.local -- pnpm", "prepare": "husky", "install": "pnpx git-utility download https://github.com/Open-Source-Bazaar/key-vault main Open-Source-Bazaar.github.io || true", - "dev": "next dev", - "build": "next build", + "postinstall": "next typegen", + "dev": "next dev --webpack", + "build": "next build --webpack", "start": "next start", - "lint": "next lint --fix && git add . && tsc --noEmit", - "test": "lint-staged && npm run lint" + "test": "lint-staged && tsc --noEmit" }, "dependencies": { - "@koa/router": "^14.0.0", + "@koa/router": "^15.0.0", "@mdx-js/loader": "^3.1.1", "@mdx-js/react": "^3.1.1", - "@next/mdx": "^15.5.4", - "core-js": "^3.46.0", - "echarts-jsx": "^0.5.4", - "file-type": "^21.0.0", + "@next/mdx": "^16.0.7", + "core-js": "^3.47.0", + "echarts-jsx": "^0.6.0", + "file-type": "^21.1.1", "idea-react": "^2.0.0-rc.13", - "koa": "^3.0.1", + "koa": "^3.1.1", "koajax": "^3.1.2", "license-filter": "^0.2.5", - "marked": "^16.4.0", + "marked": "^17.0.1", "mime": "^4.1.0", "mobx": "^6.15.0", - "mobx-github": "^0.6.0", + "mobx-github": "^0.6.2", "mobx-i18n": "^0.7.2", - "mobx-lark": "^2.4.2", + "mobx-lark": "^2.5.0", "mobx-react": "^9.2.1", "mobx-react-helper": "^0.5.1", - "mobx-restful": "^2.1.3", - "mobx-restful-table": "^2.5.4", + "mobx-restful": "^2.1.4", + "mobx-restful-table": "^2.6.3", "mobx-strapi": "^0.8.1", - "next": "^15.5.4", + "next": "^16.0.7", "next-pwa": "^5.6.0", "next-ssr-middleware": "^1.0.3", "open-react-map": "^0.9.1", - "react": "^19.2.0", + "react": "^19.2.1", "react-bootstrap": "^2.10.10", - "react-dom": "^19.2.0", + "react-dom": "^19.2.1", "react-typed-component": "^1.0.6", "remark-frontmatter": "^5.0.0", "remark-mdx-frontmatter": "^5.2.0", "undici": "^7.16.0", - "web-utility": "^4.6.2", - "yaml": "^2.8.1" + "web-utility": "^4.6.4", + "yaml": "^2.8.2" }, "devDependencies": { "@babel/plugin-proposal-decorators": "^7.28.0", - "@babel/plugin-transform-typescript": "^7.28.0", - "@babel/preset-react": "^7.27.1", - "@cspell/eslint-plugin": "^9.2.1", - "@eslint/js": "^9.37.0", - "@next/eslint-plugin-next": "^15.5.4", + "@babel/plugin-transform-typescript": "^7.28.5", + "@babel/preset-react": "^7.28.5", + "@cspell/eslint-plugin": "^9.4.0", + "@eslint/js": "^9.39.1", + "@next/eslint-plugin-next": "^16.0.7", "@open-source-bazaar/china-ngo-database": "^0.6.0", "@softonus/prettier-plugin-duplicate-remover": "^1.1.2", - "@stylistic/eslint-plugin": "^5.4.0", + "@stylistic/eslint-plugin": "^5.6.1", "@types/eslint-config-prettier": "^6.11.3", - "@types/koa": "^3.0.0", + "@types/koa": "^3.0.1", "@types/next-pwa": "^5.6.9", - "@types/node": "^22.18.10", - "@types/react": "^19.2.2", - "@types/react-dom": "^19.2.1", - "eslint": "^9.37.0", - "eslint-config-next": "^15.5.4", + "@types/node": "^22.19.1", + "@types/react": "^19.2.7", + "@types/react-dom": "^19.2.3", + "eslint": "^9.39.1", + "eslint-config-next": "^16.0.7", "eslint-config-prettier": "^10.1.8", "eslint-plugin-react": "^7.37.5", "eslint-plugin-simple-import-sort": "^12.1.1", - "globals": "^16.4.0", + "globals": "^16.5.0", "husky": "^9.1.7", "jiti": "^2.6.1", "less": "^4.4.2", "less-loader": "^12.3.0", - "lint-staged": "^16.2.4", + "lint-staged": "^16.2.7", "next-with-less": "^3.0.1", - "prettier": "^3.6.2", + "prettier": "^3.7.4", "prettier-plugin-css-order": "^2.1.2", - "sass": "^1.93.2", + "sass": "^1.94.2", "typescript": "~5.9.3", - "typescript-eslint": "^8.46.0" + "typescript-eslint": "^8.48.1" }, "resolutions": { "mobx-react-helper": "$mobx-react-helper", diff --git a/pages/api/finance/index-funds.ts b/pages/api/finance/index-funds.ts new file mode 100644 index 0000000..59bb180 --- /dev/null +++ b/pages/api/finance/index-funds.ts @@ -0,0 +1,296 @@ +import { Context } from 'koa'; +import { createKoaRouter, withKoaRouter } from 'next-ssr-middleware'; +import { formatDate } from 'web-utility'; + +import { requestAkShareJSON } from '../../../lib/akshare'; +import { + buildSparkline, + computeDailyChange, + computeMaxDrawdown, + computeOneYearReturn, +} from '../../../lib/finance'; +import type { + IndexFundDefinition, + IndexFundSnapshot, + IndexHistoryPoint, +} from '../../../types/finance'; +import { safeAPI } from '../core'; + +const CACHE_TTL_MS = 60_000; +const HISTORY_ENDPOINT = 'stock_zh_index_daily_em'; +const HISTORY_SPARKLINE_POINTS = 60; +const FALLBACK_HISTORY_POINTS = 180; + +const PRESETS: IndexFundDefinition[] = [ + { + symbol: 'sh000300', + displayName: '沪深 300', + description: '覆盖沪深两市 300 家大型蓝筹企业,代表 A 股核心资产。', + category: 'broad', + riskLevel: 'balanced', + tags: ['宽基', '蓝筹'], + }, + { + symbol: 'sh000905', + displayName: '中证 500', + description: '中盘成长代表指数,覆盖 500 家中型企业,波动略高。', + category: 'broad', + riskLevel: 'balanced', + tags: ['宽基', '成长'], + }, + { + symbol: 'sh000852', + displayName: '中证 1000', + description: '中小盘指数,覆盖 1000 家公司,适合进取型定投。', + category: 'broad', + riskLevel: 'aggressive', + tags: ['宽基', '中小盘'], + }, + { + symbol: 'sh000016', + displayName: '上证 50', + description: '上海证券交易所市值前 50 大蓝筹股,偏防御。', + category: 'broad', + riskLevel: 'conservative', + tags: ['宽基', '大盘'], + }, + { + symbol: 'sz399006', + displayName: '创业板指', + description: '创业板代表指数,成长性与波动并存。', + category: 'theme', + riskLevel: 'aggressive', + tags: ['成长', '科技'], + }, + { + symbol: 'sz399330', + displayName: '深证 100', + description: '深交所龙头企业代表,兼具成长与稳健。', + category: 'broad', + riskLevel: 'balanced', + tags: ['宽基', '成长'], + }, + { + symbol: 'sz399997', + displayName: '中证白酒', + description: '消费龙头行业指数,收益弹性大,行业集中度高。', + category: 'sector', + riskLevel: 'aggressive', + tags: ['消费', '行业'], + }, + { + symbol: 'sh000932', + displayName: '中证消费', + description: '覆盖食品饮料、家电等消费龙头,稳健增长属性明显。', + category: 'sector', + riskLevel: 'balanced', + tags: ['消费', '行业'], + }, +]; + +interface AkShareDailyRecord { + date?: string; + 日期?: string; + close?: number; + 收盘?: number; +} + +interface AkShareListPayload { + data?: T[]; + result?: T[]; +} + +let cache: { timestamp: number; data: IndexFundSnapshot[] } | null = null; + +const fallbackBasePrice: Record = { + sh000300: 3500, + sh000905: 5000, + sh000852: 6200, + sh000016: 2900, + sz399006: 1800, + sz399330: 1900, + sz399997: 8000, + sh000932: 7000, +}; + +function unwrapAkShareRecords(payload: unknown): AkShareDailyRecord[] { + if (Array.isArray(payload)) return payload as AkShareDailyRecord[]; + + if (payload && typeof payload === 'object') { + const { data, result } = payload as AkShareListPayload; + + if (Array.isArray(data)) return data; + if (Array.isArray(result)) return result; + } + throw new Error('Unexpected AkShare payload format'); +} + +const normalizeHistory = (records: AkShareDailyRecord[]): IndexHistoryPoint[] => + records + .map(({ date, 日期, close, 收盘 }) => { + const normalizedDate = (date || 日期 || '').slice(0, 10); + const value = Number(close ?? 收盘); + if (normalizedDate && !Number.isNaN(value)) return { date: normalizedDate, value }; + }) + .filter((item): item is IndexHistoryPoint => !!item) + .sort((a, b) => a.date.localeCompare(b.date)); + +const formatAkShareDate = (input: Date) => formatDate(input, 'YYYYMMDD'); + +async function fetchHistorySeries(symbol: string) { + const end = new Date(); + const start = new Date(); + + start.setFullYear(start.getFullYear() - 5); + + const payload = await requestAkShareJSON(HISTORY_ENDPOINT, { + symbol, + start_date: formatAkShareDate(start), + end_date: formatAkShareDate(end), + }); + + const history = normalizeHistory(unwrapAkShareRecords(payload)); + + return history.slice(-720); +} + +function seededRandom(symbol: string) { + let seed = Array.from(symbol).reduce((sum, char) => sum + char.charCodeAt(0), 0); + + return () => { + seed = (seed * 9301 + 49297) % 233280; + + return seed / 233280; + }; +} + +function buildSyntheticSparkline(symbol: string, points = FALLBACK_HISTORY_POINTS) { + const random = seededRandom(symbol); + const today = new Date(); + const base = fallbackBasePrice[symbol] ?? 3000 + random() * 2000; + + let value = base; + + const series: IndexHistoryPoint[] = []; + + for (let offset = points - 1; offset >= 0; offset -= 1) { + const date = new Date(today); + date.setDate(today.getDate() - (points - 1 - offset)); + + const noise = (random() - 0.5) * 0.04; // +/- 2% + value = Math.max(0, value * (1 + noise)); + + series.push({ + date: date.toISOString().slice(0, 10), + value: Number(value.toFixed(2)), + }); + } + + return series; +} + +function buildSyntheticSnapshot(preset: IndexFundDefinition): IndexFundSnapshot { + const sparkline = buildSyntheticSparkline(preset.symbol); + + const { value: latestValue = null, date: updatedAt = null } = (sparkline.at(-1) || + {}) as Partial; + + return { + ...preset, + latestValue, + dailyChangePct: computeDailyChange(sparkline), + oneYearReturnPct: computeOneYearReturn(sparkline), + maxDrawdownPct: computeMaxDrawdown(sparkline), + sparkline: buildSparkline(sparkline, HISTORY_SPARKLINE_POINTS), + updatedAt, + source: { historyEndpoint: `${HISTORY_ENDPOINT} (fallback)` }, + fallback: true, + }; +} + +async function buildSnapshot(preset: IndexFundDefinition): Promise { + try { + const history = await fetchHistorySeries(preset.symbol); + const latestValue = history.at(-1)?.value ?? null; + + return { + ...preset, + latestValue, + dailyChangePct: computeDailyChange(history), + oneYearReturnPct: computeOneYearReturn(history), + maxDrawdownPct: computeMaxDrawdown(history), + sparkline: buildSparkline(history, HISTORY_SPARKLINE_POINTS), + updatedAt: history.at(-1)?.date ?? null, + source: { historyEndpoint: HISTORY_ENDPOINT }, + }; + } catch (error) { + console.warn(`[Finance] Using synthetic data for ${preset.symbol}:`, (error as Error).message); + + return buildSyntheticSnapshot(preset); + } +} + +async function loadSnapshots() { + const snapshots = await Promise.all(PRESETS.map(buildSnapshot)); + + cache = { + timestamp: Date.now(), + data: snapshots, + }; + + return snapshots; +} + +async function getCachedSnapshots() { + if (cache && Date.now() - cache.timestamp < CACHE_TTL_MS) return cache.data; + + return loadSnapshots(); +} + +function applyFilters( + data: IndexFundSnapshot[], + { + category, + riskLevel, + limit, + }: Partial>, +) { + const parsedCategory = Array.isArray(category) ? category[0] : category; + const parsedRisk = Array.isArray(riskLevel) ? riskLevel[0] : riskLevel; + const parsedLimit = Number(Array.isArray(limit) ? limit[0] : limit); + + let filtered = data; + + if (parsedCategory) filtered = filtered.filter(item => item.category === parsedCategory); + if (parsedRisk) filtered = filtered.filter(item => item.riskLevel === parsedRisk); + if (!Number.isNaN(parsedLimit) && parsedLimit > 0) filtered = filtered.slice(0, parsedLimit); + + return filtered; +} + +export const config = { api: { bodyParser: false } }; + +const router = createKoaRouter(import.meta.url); + +router.get('/', safeAPI, async (context: Context) => { + const snapshots = await getCachedSnapshots(); + + const filtered = applyFilters(snapshots, context.query); + const cached = + cache != null && + Date.now() - cache.timestamp < CACHE_TTL_MS && + filtered.length === snapshots.length; + + context.set('Cache-Control', 's-maxage=60, stale-while-revalidate=300'); + context.body = { + data: filtered, + meta: { + total: snapshots.length, + returned: filtered.length, + cached, + source: HISTORY_ENDPOINT, + }, + }; +}); + +export default withKoaRouter(router); diff --git a/pages/finance/index.module.less b/pages/finance/index.module.less new file mode 100644 index 0000000..5a22d03 --- /dev/null +++ b/pages/finance/index.module.less @@ -0,0 +1,100 @@ +.financePage { + padding-bottom: 4rem; +} + +.hero { + border: 1px solid rgba(0, 0, 0, 0.05); + border-radius: 32px; + background: linear-gradient(135deg, rgba(13, 110, 253, 0.08), rgba(25, 135, 84, 0.08)); + padding-right: clamp(1.5rem, 4vw, 3rem); + padding-left: clamp(1.5rem, 4vw, 3rem); + + .badge { + letter-spacing: 0.2em; + text-transform: uppercase; + } + + .chip { + border-radius: 999px; + background: rgba(13, 110, 253, 0.08); + padding: 0.35rem 0.9rem; + font-weight: 600; + font-size: 0.9rem; + } + + .stats { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); + gap: 1rem; + } + + .statCard { + box-shadow: 0 10px 30px rgba(15, 23, 42, 0.1); + border: 1px solid rgba(15, 23, 42, 0.05); + border-radius: 20px; + background: #fff; + padding: 1.5rem; + } +} + +.filterPanel { + box-shadow: 0 20px 60px rgba(15, 23, 42, 0.08); + border: 1px solid rgba(15, 23, 42, 0.05); + border-radius: 24px; + background: #fff; + padding: 2rem; +} + +.segmentedControl { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); + gap: 0.75rem; + + .button { + transition: all 0.2s ease; + border: 1px solid rgba(15, 23, 42, 0.15); + border-radius: 16px; + background: #f5f7fb; + padding: 0.75rem 1rem; + font-weight: 600; + text-align: left; + } + + .active { + box-shadow: 0 10px 30px rgba(13, 110, 253, 0.15); + border-color: rgba(13, 110, 253, 0.5); + background: linear-gradient(135deg, rgba(13, 110, 253, 0.12), rgba(25, 135, 84, 0.12)); + color: #0d6efd; + } +} + +.listSection { + box-shadow: 0 20px 60px rgba(15, 23, 42, 0.08); + border: 1px solid rgba(15, 23, 42, 0.05); + border-radius: 24px; + background: #fff; + padding: 2rem; +} + +.emptyState { + border: 1px dashed rgba(15, 23, 42, 0.2); + border-radius: 20px; + background: rgba(248, 249, 250, 0.7); + padding: 2.5rem; + text-align: center; +} + +.education { + border-radius: 28px; + background: rgba(13, 110, 253, 0.05); + padding: 2rem; + + .card { + box-shadow: 0 10px 30px rgba(15, 23, 42, 0.06); + border: 1px solid rgba(15, 23, 42, 0.05); + border-radius: 20px; + background: #fff; + padding: 1.75rem; + height: 100%; + } +} diff --git a/pages/finance/index.tsx b/pages/finance/index.tsx new file mode 100644 index 0000000..21e4be0 --- /dev/null +++ b/pages/finance/index.tsx @@ -0,0 +1,275 @@ +import { Loading } from 'idea-react'; +import { observable } from 'mobx'; +import { observer } from 'mobx-react'; +import { ObservedComponent } from 'mobx-react-helper'; +import { ScrollList } from 'mobx-restful-table'; +import { Badge, Button, Col, Container, Row } from 'react-bootstrap'; + +import { FundCard } from '../../components/Finance/FundCard'; +import { PageHead } from '../../components/Layout/PageHead'; +import { INDEX_CATEGORY_LABEL_KEYS, INDEX_RISK_LABEL_KEYS } from '../../constants/finance'; +import { IndexFundFilter, indexFundStore } from '../../models/Finance'; +import { i18n, I18nContext, I18nKey } from '../../models/Translation'; +import { IndexFundCategory, IndexRiskLevel } from '../../types/finance'; +import styles from './index.module.less'; + +interface Category { + labelKey: I18nKey; + value?: IndexFundCategory; +} + +const categoryOptions: Category[] = [ + { labelKey: 'finance_all', value: undefined }, + { labelKey: 'index_category_broad', value: 'broad' }, + { labelKey: 'index_category_sector', value: 'sector' }, + { labelKey: 'index_category_theme', value: 'theme' }, +]; + +interface Risk { + labelKey: I18nKey; + value?: IndexRiskLevel; + descriptionKey: I18nKey; +} + +const riskOptions: Risk[] = [ + { labelKey: 'finance_all', value: undefined, descriptionKey: 'finance_filter_risk_all_desc' }, + { + labelKey: 'index_risk_conservative', + value: 'conservative', + descriptionKey: 'finance_filter_risk_conservative_desc', + }, + { + labelKey: 'index_risk_balanced', + value: 'balanced', + descriptionKey: 'finance_filter_risk_balanced_desc', + }, + { + labelKey: 'index_risk_aggressive', + value: 'aggressive', + descriptionKey: 'finance_filter_risk_aggressive_desc', + }, +]; + +@observer +export default class FinanceLandingPage extends ObservedComponent<{}, typeof i18n> { + static contextType = I18nContext; + + @observable + accessor filter: IndexFundFilter = {}; + + get filterSummary() { + const { t } = this.observedContext; + const { category, riskLevel } = this.filter; + + const categoryText = category + ? `${t(INDEX_CATEGORY_LABEL_KEYS[category])}${t('finance_filter_category_suffix')}` + : t('finance_filter_category_all'); + const riskText = riskLevel + ? `${t(INDEX_RISK_LABEL_KEYS[riskLevel])}${t('finance_filter_risk_suffix')}` + : t('finance_filter_risk_all'); + + return `${categoryText} · ${riskText}`; + } + + resetFilters = () => (this.filter = {}); + + renderCategory = ({ labelKey, value }: Category) => { + const { t } = this.observedContext, + { category } = this.filter; + const active = value === undefined ? !category : category === value; + + return ( + + ); + }; + + renderRisk = ({ labelKey, value, descriptionKey }: Risk) => { + const { t } = this.observedContext, + { riskLevel } = this.filter; + const active = value === undefined ? !riskLevel : riskLevel === value; + + return ( + + ); + }; + + render() { + const { t } = this.observedContext, + { filterSummary } = this; + + return ( + + + + + + + {t('beta')} + +

{t('finance_hero_title')}

+

{t('finance_hero_intro')}

+
    +
  • {t('finance_hero_chip_akshare_data')}
  • +
  • {t('finance_hero_chip_realtime_backtest')}
  • +
  • {t('finance_hero_chip_risk_layers')}
  • +
+
+ + +
+ + +
    +
  • +

    {t('finance_hero_stat_coverage_label')}

    + + {Math.max(indexFundStore.totalCount || 0, 8)}+ + + {t('finance_hero_stat_coverage_sub')} +
  • +
  • +

    {t('finance_hero_stat_refresh_label')}

    + {t('finance_hero_stat_refresh_value')} + {t('finance_hero_stat_refresh_sub')} +
  • +
  • +

    {t('finance_hero_stat_risk_label')}

    + {t('finance_hero_stat_risk_value')} + {t('finance_hero_stat_risk_sub')} +
  • +
+ +
+ +
+
+
+

{t('finance_filter_title')}

+

+ {t('finance_filter_summary_prefix')} + {filterSummary} +

+
+ +
+ +
+
+

{t('finance_filter_category_label')}

+
+ {categoryOptions.map(this.renderCategory)} +
+
+ +
+

{t('finance_filter_risk_label')}

+
{riskOptions.map(this.renderRisk)}
+
+
+
+ +
+
+
+

{t('finance_list_title')}

+

+ {t('finance_list_subtitle_prefix')} + {filterSummary} + {t('finance_list_subtitle_suffix')} +

+
+
+ + +
+
+ + {indexFundStore.downloading > 0 && } + + + funds.length ? ( + + {funds.map(fund => ( + + + + ))} + + ) : ( +
+

{t('finance_empty_title')}

+

{t('finance_empty_subtitle')}

+ +
+ ) + } + /> +
+ +
+ + +
+

{t('finance_edu_title')}

+
    +
  • {t('finance_edu_point_1')}
  • +
  • {t('finance_edu_point_2')}
  • +
  • {t('finance_edu_point_3')}
  • +
+
+ + +
+

{t('finance_edu_next_steps')}

+
    +
  1. {t('finance_edu_next_1')}
  2. +
  3. {t('finance_edu_next_2')}
  4. +
  5. {t('finance_edu_next_3')}
  6. +
+
+ +
+
+
+ ); + } +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 12e8de0..03820d5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -6,48 +6,48 @@ settings: overrides: mobx-react-helper: ^0.5.1 - next: ^15.5.4 + next: ^16.0.7 importers: .: dependencies: '@koa/router': - specifier: ^14.0.0 - version: 14.0.0 + specifier: ^15.0.0 + version: 15.0.0 '@mdx-js/loader': specifier: ^3.1.1 version: 3.1.1 '@mdx-js/react': specifier: ^3.1.1 - version: 3.1.1(@types/react@19.2.2)(react@19.2.0) + version: 3.1.1(@types/react@19.2.7)(react@19.2.1) '@next/mdx': - specifier: ^15.5.4 - version: 15.5.4(@mdx-js/loader@3.1.1)(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0)) + specifier: ^16.0.7 + version: 16.0.7(@mdx-js/loader@3.1.1)(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.1)) core-js: - specifier: ^3.46.0 - version: 3.46.0 + specifier: ^3.47.0 + version: 3.47.0 echarts-jsx: - specifier: ^0.5.4 - version: 0.5.4(react@19.2.0)(typescript@5.9.3) + specifier: ^0.6.0 + version: 0.6.0(react@19.2.1)(typescript@5.9.3) file-type: - specifier: ^21.0.0 - version: 21.0.0 + specifier: ^21.1.1 + version: 21.1.1 idea-react: specifier: ^2.0.0-rc.13 - version: 2.0.0-rc.13(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react-is@16.13.1)(react@19.2.0)(typescript@5.9.3) + version: 2.0.0-rc.13(@types/react@19.2.7)(react-dom@19.2.1(react@19.2.1))(react-is@16.13.1)(react@19.2.1)(typescript@5.9.3) koa: - specifier: ^3.0.1 - version: 3.0.1 + specifier: ^3.1.1 + version: 3.1.1 koajax: specifier: ^3.1.2 - version: 3.1.2(core-js@3.46.0)(typescript@5.9.3) + version: 3.1.2(core-js@3.47.0)(typescript@5.9.3) license-filter: specifier: ^0.2.5 version: 0.2.5 marked: - specifier: ^16.4.0 - version: 16.4.0 + specifier: ^17.0.1 + version: 17.0.1 mime: specifier: ^4.1.0 version: 4.1.0 @@ -55,53 +55,53 @@ importers: specifier: ^6.15.0 version: 6.15.0 mobx-github: - specifier: ^0.6.0 - version: 0.6.0(core-js@3.46.0)(typescript@5.9.3) + specifier: ^0.6.2 + version: 0.6.2(core-js@3.47.0)(typescript@5.9.3) mobx-i18n: specifier: ^0.7.2 version: 0.7.2(mobx@6.15.0)(typescript@5.9.3) mobx-lark: - specifier: ^2.4.2 - version: 2.4.2(core-js@3.46.0)(react@19.2.0)(typescript@5.9.3) + specifier: ^2.5.0 + version: 2.5.0(core-js@3.47.0)(react@19.2.1)(typescript@5.9.3) mobx-react: specifier: ^9.2.1 - version: 9.2.1(mobx@6.15.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + version: 9.2.1(mobx@6.15.0)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) mobx-react-helper: specifier: ^0.5.1 - version: 0.5.1(mobx@6.15.0)(react@19.2.0)(typescript@5.9.3) + version: 0.5.1(mobx@6.15.0)(react@19.2.1)(typescript@5.9.3) mobx-restful: - specifier: ^2.1.3 - version: 2.1.3(core-js@3.46.0)(mobx@6.15.0)(typescript@5.9.3) + specifier: ^2.1.4 + version: 2.1.4(core-js@3.47.0)(mobx@6.15.0)(typescript@5.9.3) mobx-restful-table: - specifier: ^2.5.4 - version: 2.5.4(@types/react@19.2.2)(core-js@3.46.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3) + specifier: ^2.6.3 + version: 2.6.3(@types/react@19.2.7)(core-js@3.47.0)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(typescript@5.9.3) mobx-strapi: specifier: ^0.8.1 - version: 0.8.1(core-js@3.46.0)(typescript@5.9.3) + version: 0.8.1(core-js@3.47.0)(typescript@5.9.3) next: - specifier: ^15.5.4 - version: 15.5.4(@babel/core@7.28.4)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(sass@1.93.2) + specifier: ^16.0.7 + version: 16.0.7(@babel/core@7.28.5)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(sass@1.94.2) next-pwa: specifier: ^5.6.0 - version: 5.6.0(@babel/core@7.28.4)(next@15.5.4(@babel/core@7.28.4)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(sass@1.93.2)) + version: 5.6.0(@babel/core@7.28.5)(next@16.0.7(@babel/core@7.28.5)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(sass@1.94.2)) next-ssr-middleware: specifier: ^1.0.3 - version: 1.0.3(next@15.5.4(@babel/core@7.28.4)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(sass@1.93.2))(react@19.2.0)(typescript@5.9.3) + version: 1.0.3(next@16.0.7(@babel/core@7.28.5)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(sass@1.94.2))(react@19.2.1)(typescript@5.9.3) open-react-map: specifier: ^0.9.1 - version: 0.9.1(core-js@3.46.0)(mobx-react@9.2.1(mobx@6.15.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(mobx@6.15.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3) + version: 0.9.1(core-js@3.47.0)(mobx-react@9.2.1(mobx@6.15.0)(react-dom@19.2.1(react@19.2.1))(react@19.2.1))(mobx@6.15.0)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(typescript@5.9.3) react: - specifier: ^19.2.0 - version: 19.2.0 + specifier: ^19.2.1 + version: 19.2.1 react-bootstrap: specifier: ^2.10.10 - version: 2.10.10(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + version: 2.10.10(@types/react@19.2.7)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) react-dom: - specifier: ^19.2.0 - version: 19.2.0(react@19.2.0) + specifier: ^19.2.1 + version: 19.2.1(react@19.2.1) react-typed-component: specifier: ^1.0.6 - version: 1.0.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + version: 1.0.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1) remark-frontmatter: specifier: ^5.0.0 version: 5.0.0 @@ -112,30 +112,30 @@ importers: specifier: ^7.16.0 version: 7.16.0 web-utility: - specifier: ^4.6.2 - version: 4.6.2(typescript@5.9.3) + specifier: ^4.6.4 + version: 4.6.4(typescript@5.9.3) yaml: - specifier: ^2.8.1 - version: 2.8.1 + specifier: ^2.8.2 + version: 2.8.2 devDependencies: '@babel/plugin-proposal-decorators': specifier: ^7.28.0 - version: 7.28.0(@babel/core@7.28.4) + version: 7.28.0(@babel/core@7.28.5) '@babel/plugin-transform-typescript': - specifier: ^7.28.0 - version: 7.28.0(@babel/core@7.28.4) + specifier: ^7.28.5 + version: 7.28.5(@babel/core@7.28.5) '@babel/preset-react': - specifier: ^7.27.1 - version: 7.27.1(@babel/core@7.28.4) + specifier: ^7.28.5 + version: 7.28.5(@babel/core@7.28.5) '@cspell/eslint-plugin': - specifier: ^9.2.1 - version: 9.2.1(eslint@9.37.0(jiti@2.6.1)) + specifier: ^9.4.0 + version: 9.4.0(eslint@9.39.1(jiti@2.6.1)) '@eslint/js': - specifier: ^9.37.0 - version: 9.37.0 + specifier: ^9.39.1 + version: 9.39.1 '@next/eslint-plugin-next': - specifier: ^15.5.4 - version: 15.5.4 + specifier: ^16.0.7 + version: 16.0.7 '@open-source-bazaar/china-ngo-database': specifier: ^0.6.0 version: 0.6.0 @@ -143,44 +143,44 @@ importers: specifier: ^1.1.2 version: 1.1.2 '@stylistic/eslint-plugin': - specifier: ^5.4.0 - version: 5.4.0(eslint@9.37.0(jiti@2.6.1)) + specifier: ^5.6.1 + version: 5.6.1(eslint@9.39.1(jiti@2.6.1)) '@types/eslint-config-prettier': specifier: ^6.11.3 version: 6.11.3 '@types/koa': - specifier: ^3.0.0 - version: 3.0.0 + specifier: ^3.0.1 + version: 3.0.1 '@types/next-pwa': specifier: ^5.6.9 - version: 5.6.9(@babel/core@7.28.4)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(sass@1.93.2) + version: 5.6.9(@babel/core@7.28.5)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(sass@1.94.2) '@types/node': - specifier: ^22.18.10 - version: 22.18.10 + specifier: ^22.19.1 + version: 22.19.1 '@types/react': - specifier: ^19.2.2 - version: 19.2.2 + specifier: ^19.2.7 + version: 19.2.7 '@types/react-dom': - specifier: ^19.2.1 - version: 19.2.1(@types/react@19.2.2) + specifier: ^19.2.3 + version: 19.2.3(@types/react@19.2.7) eslint: - specifier: ^9.37.0 - version: 9.37.0(jiti@2.6.1) + specifier: ^9.39.1 + version: 9.39.1(jiti@2.6.1) eslint-config-next: - specifier: ^15.5.4 - version: 15.5.4(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) + specifier: ^16.0.7 + version: 16.0.7(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) eslint-config-prettier: specifier: ^10.1.8 - version: 10.1.8(eslint@9.37.0(jiti@2.6.1)) + version: 10.1.8(eslint@9.39.1(jiti@2.6.1)) eslint-plugin-react: specifier: ^7.37.5 - version: 7.37.5(eslint@9.37.0(jiti@2.6.1)) + version: 7.37.5(eslint@9.39.1(jiti@2.6.1)) eslint-plugin-simple-import-sort: specifier: ^12.1.1 - version: 12.1.1(eslint@9.37.0(jiti@2.6.1)) + version: 12.1.1(eslint@9.39.1(jiti@2.6.1)) globals: - specifier: ^16.4.0 - version: 16.4.0 + specifier: ^16.5.0 + version: 16.5.0 husky: specifier: ^9.1.7 version: 9.1.7 @@ -194,26 +194,26 @@ importers: specifier: ^12.3.0 version: 12.3.0(less@4.4.2) lint-staged: - specifier: ^16.2.4 - version: 16.2.4 + specifier: ^16.2.7 + version: 16.2.7 next-with-less: specifier: ^3.0.1 - version: 3.0.1(less-loader@12.3.0(less@4.4.2))(less@4.4.2)(next@15.5.4(@babel/core@7.28.4)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(sass@1.93.2)) + version: 3.0.1(less-loader@12.3.0(less@4.4.2))(less@4.4.2)(next@16.0.7(@babel/core@7.28.5)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(sass@1.94.2)) prettier: - specifier: ^3.6.2 - version: 3.6.2 + specifier: ^3.7.4 + version: 3.7.4 prettier-plugin-css-order: specifier: ^2.1.2 - version: 2.1.2(postcss@8.4.31)(prettier@3.6.2) + version: 2.1.2(postcss@8.4.31)(prettier@3.7.4) sass: - specifier: ^1.93.2 - version: 1.93.2 + specifier: ^1.94.2 + version: 1.94.2 typescript: specifier: ~5.9.3 version: 5.9.3 typescript-eslint: - specifier: ^8.46.0 - version: 8.46.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) + specifier: ^8.48.1 + version: 8.48.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) packages: @@ -227,16 +227,16 @@ packages: resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} engines: {node: '>=6.9.0'} - '@babel/compat-data@7.28.4': - resolution: {integrity: sha512-YsmSKC29MJwf0gF8Rjjrg5LQCmyh+j/nD8/eP7f+BeoQTKYqs9RoWbjGOdy0+1Ekr68RJZMUOPVQaQisnIo4Rw==} + '@babel/compat-data@7.28.5': + resolution: {integrity: sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA==} engines: {node: '>=6.9.0'} - '@babel/core@7.28.4': - resolution: {integrity: sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA==} + '@babel/core@7.28.5': + resolution: {integrity: sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==} engines: {node: '>=6.9.0'} - '@babel/generator@7.28.3': - resolution: {integrity: sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==} + '@babel/generator@7.28.5': + resolution: {integrity: sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==} engines: {node: '>=6.9.0'} '@babel/helper-annotate-as-pure@7.27.3': @@ -247,14 +247,14 @@ packages: resolution: {integrity: sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==} engines: {node: '>=6.9.0'} - '@babel/helper-create-class-features-plugin@7.28.3': - resolution: {integrity: sha512-V9f6ZFIYSLNEbuGA/92uOvYsGCJNsuA8ESZ4ldc09bWk/j8H8TKiPw8Mk1eG6olpnO0ALHJmYfZvF4MEE4gajg==} + '@babel/helper-create-class-features-plugin@7.28.5': + resolution: {integrity: sha512-q3WC4JfdODypvxArsJQROfupPBq9+lMwjKq7C33GhbFYJsufD0yd/ziwD+hJucLeWsnFPWZjsU2DNFqBPE7jwQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-create-regexp-features-plugin@7.27.1': - resolution: {integrity: sha512-uVDC72XVf8UbrH5qQTc18Agb8emwjTiZrQE11Nv3CuBEZmVvTwwE9CBUEvHku06gQCAyYf8Nv6ja1IN+6LMbxQ==} + '@babel/helper-create-regexp-features-plugin@7.28.5': + resolution: {integrity: sha512-N1EhvLtHzOvj7QQOUCCS3NrPJP8c5W6ZXCHDn7Yialuy1iu4r5EmIYkXlKNqT99Ciw+W0mDqWoR6HWMZlFP3hw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 @@ -268,8 +268,8 @@ packages: resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==} engines: {node: '>=6.9.0'} - '@babel/helper-member-expression-to-functions@7.27.1': - resolution: {integrity: sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA==} + '@babel/helper-member-expression-to-functions@7.28.5': + resolution: {integrity: sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg==} engines: {node: '>=6.9.0'} '@babel/helper-module-imports@7.27.1': @@ -310,8 +310,8 @@ packages: resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@7.27.1': - resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} + '@babel/helper-validator-identifier@7.28.5': + resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} engines: {node: '>=6.9.0'} '@babel/helper-validator-option@7.27.1': @@ -326,13 +326,13 @@ packages: resolution: {integrity: sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==} engines: {node: '>=6.9.0'} - '@babel/parser@7.28.4': - resolution: {integrity: sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg==} + '@babel/parser@7.28.5': + resolution: {integrity: sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==} engines: {node: '>=6.0.0'} hasBin: true - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.27.1': - resolution: {integrity: sha512-QPG3C9cCVRQLxAVwmefEmwdTanECuUBMQZ/ym5kiw3XKCGA7qkuQLcjWWHcrD/GKbn/WmJwaezfuuAOcyKlRPA==} + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.28.5': + resolution: {integrity: sha512-87GDMS3tsmMSi/3bWOte1UblL+YUTFMV8SZPZ2eSEL17s74Cw/l63rR6NmGVKMYW2GYi85nE+/d6Hw5N0bEk2Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 @@ -433,8 +433,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-block-scoping@7.28.4': - resolution: {integrity: sha512-1yxmvN0MJHOhPVmAsmoW5liWwoILobu/d/ShymZmj867bAdxGbehIrew1DuLpw2Ukv+qDSSPQdYW1dLNE7t11A==} + '@babel/plugin-transform-block-scoping@7.28.5': + resolution: {integrity: sha512-45DmULpySVvmq9Pj3X9B+62Xe+DJGov27QravQJU1LLcapR6/10i+gYVAucGGJpHBp5mYxIMK4nDAT/QDLr47g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -463,8 +463,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-destructuring@7.28.0': - resolution: {integrity: sha512-v1nrSMBiKcodhsyJ4Gf+Z0U/yawmJDBOTpEB3mcQY52r9RIyPneGyAS/yM6seP/8I+mWI3elOMtT5dB8GJVs+A==} + '@babel/plugin-transform-destructuring@7.28.5': + resolution: {integrity: sha512-Kl9Bc6D0zTUcFUvkNuQh4eGXPKKNDOJQXVyyM4ZAQPMveniJdxi8XMJwLo+xSoW3MIq81bD33lcUe9kZpl0MCw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -499,8 +499,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-exponentiation-operator@7.27.1': - resolution: {integrity: sha512-uspvXnhHvGKf2r4VVtBpeFnuDWsJLQ6MF6lGJLC89jBR1uoVeqM416AZtTuhTezOfgHicpJQmoD5YUakO/YmXQ==} + '@babel/plugin-transform-exponentiation-operator@7.28.5': + resolution: {integrity: sha512-D4WIMaFtwa2NizOp+dnoFjRez/ClKiC2BqqImwKd1X28nqBtZEyCYJ2ozQrrzlxAFrcrjxo39S6khe9RNDlGzw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -535,8 +535,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-logical-assignment-operators@7.27.1': - resolution: {integrity: sha512-SJvDs5dXxiae4FbSL1aBJlG4wvl594N6YEVVn9e3JGulwioy6z3oPjx/sQBO3Y4NwUu5HNix6KJ3wBZoewcdbw==} + '@babel/plugin-transform-logical-assignment-operators@7.28.5': + resolution: {integrity: sha512-axUuqnUTBuXyHGcJEVVh9pORaN6wC5bYfE7FGzPiaWa3syib9m7g+/IT/4VgCOe2Upef43PHzeAvcrVek6QuuA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -559,8 +559,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-modules-systemjs@7.27.1': - resolution: {integrity: sha512-w5N1XzsRbc0PQStASMksmUeqECuzKuTJer7kFagK8AXgpCMkeDMO5S+aaFb7A51ZYDF7XI34qsTX+fkHiIm5yA==} + '@babel/plugin-transform-modules-systemjs@7.28.5': + resolution: {integrity: sha512-vn5Jma98LCOeBy/KpeQhXcV2WZgaRUtjwQmjoBuLNlOmkg0fB5pdvYVeWRYI69wWKwK2cD1QbMiUQnoujWvrew==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -613,8 +613,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-optional-chaining@7.27.1': - resolution: {integrity: sha512-BQmKPPIuc8EkZgNKsv0X4bPmOoayeu4F1YCwx2/CfmDSXDbp7GnzlUH+/ul5VGfRg1AoFPsrIThlEBj2xb4CAg==} + '@babel/plugin-transform-optional-chaining@7.28.5': + resolution: {integrity: sha512-N6fut9IZlPnjPwgiQkXNhb+cT8wQKFlJNqcZkWlcTqkcqx6/kU4ynGmLFoa4LViBSirn05YAwk+sQBbPfxtYzQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -715,8 +715,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-typescript@7.28.0': - resolution: {integrity: sha512-4AEiDEBPIZvLQaWlc9liCavE0xRM0dNca41WtBeM3jgFptfUOSG9z0uteLhq6+3rq+WB6jIvUwKDTpXEHPJ2Vg==} + '@babel/plugin-transform-typescript@7.28.5': + resolution: {integrity: sha512-x2Qa+v/CuEoX7Dr31iAfr0IhInrVOWZU/2vJMJ00FOR/2nM0BcBEclpaf9sWCDc+v5e9dMrhSH8/atq/kX7+bA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -745,8 +745,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0 - '@babel/preset-env@7.28.3': - resolution: {integrity: sha512-ROiDcM+GbYVPYBOeCR6uBXKkQpBExLl8k9HO1ygXEyds39j+vCCsjmj7S8GOniZQlEs81QlkdJZe76IpLSiqpg==} + '@babel/preset-env@7.28.5': + resolution: {integrity: sha512-S36mOoi1Sb6Fz98fBfE+UZSpYw5mJm0NUHtIKrOuNcqeFauy1J6dIvXm2KRVKobOSaGq4t/hBXdN4HGU3wL9Wg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -756,8 +756,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 - '@babel/preset-react@7.27.1': - resolution: {integrity: sha512-oJHWh2gLhU9dW9HHr42q0cI0/iHHXTLGe39qvpAZZzagHy0MzYLCnCVV0symeRvzmjHyVU7mw2K06E6u/JwbhA==} + '@babel/preset-react@7.28.5': + resolution: {integrity: sha512-Z3J8vhRq7CeLjdC58jLv4lnZ5RKFUJWqH5emvxmv9Hv3BD1T9R/Im713R4MTKwvFaV74ejZ3sM01LyEKk4ugNQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -770,12 +770,12 @@ packages: resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.28.4': - resolution: {integrity: sha512-YEzuboP2qvQavAcjgQNVgsvHIDv6ZpwXvcvjmyySP2DIMuByS/6ioU5G9pYrWHM6T2YDfc7xga9iNzYOs12CFQ==} + '@babel/traverse@7.28.5': + resolution: {integrity: sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==} engines: {node: '>=6.9.0'} - '@babel/types@7.28.4': - resolution: {integrity: sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==} + '@babel/types@7.28.5': + resolution: {integrity: sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==} engines: {node: '>=6.9.0'} '@base2/pretty-print-object@1.0.2': @@ -787,24 +787,24 @@ packages: '@codexteam/icons@0.0.4': resolution: {integrity: sha512-V8N/TY2TGyas4wLrPIFq7bcow68b3gu8DfDt1+rrHPtXxcexadKauRJL6eQgfG7Z0LCrN4boLRawR4S9gjIh/Q==} - '@cspell/cspell-bundled-dicts@9.2.1': - resolution: {integrity: sha512-85gHoZh3rgZ/EqrHIr1/I4OLO53fWNp6JZCqCdgaT7e3sMDaOOG6HoSxCvOnVspXNIf/1ZbfTCDMx9x79Xq0AQ==} + '@cspell/cspell-bundled-dicts@9.4.0': + resolution: {integrity: sha512-Hm2gpMg/lRv4fKtiO2NfBiaJdFZVVb1V1a+IVhlD9qCuObLhCt60Oze2kD1dQzhbaIX756cs/eyxa5bQ5jihhQ==} engines: {node: '>=20'} - '@cspell/cspell-pipe@9.2.1': - resolution: {integrity: sha512-2N1H63If5cezLqKToY/YSXon4m4REg/CVTFZr040wlHRbbQMh5EF3c7tEC/ue3iKAQR4sm52ihfqo1n4X6kz+g==} + '@cspell/cspell-pipe@9.4.0': + resolution: {integrity: sha512-cI0sUe7SB99hJB1T6PhH/MpSrnml1kOekTCE+VH3Eb7zkVP5/mwJXs8BlufdvwBona+Cgkx6jeWlhFpxLc39Yg==} engines: {node: '>=20'} - '@cspell/cspell-resolver@9.2.1': - resolution: {integrity: sha512-fRPQ6GWU5eyh8LN1TZblc7t24TlGhJprdjJkfZ+HjQo+6ivdeBPT7pC7pew6vuMBQPS1oHBR36hE0ZnJqqkCeg==} + '@cspell/cspell-resolver@9.4.0': + resolution: {integrity: sha512-o9gbbdXlhxG2rqtGqQ7xZ8MGDDsPLbskBnTeuA++ix4Ch/HdjrBNmKReIGAEqJPfP+JGgoEKqFISHUDKAJ/ygQ==} engines: {node: '>=20'} - '@cspell/cspell-service-bus@9.2.1': - resolution: {integrity: sha512-k4M6bqdvWbcGSbcfLD7Lf4coZVObsISDW+sm/VaWp9aZ7/uwiz1IuGUxL9WO4JIdr9CFEf7Ivmvd2txZpVOCIA==} + '@cspell/cspell-service-bus@9.4.0': + resolution: {integrity: sha512-UottRlFPN6FGUfojx5HtUPZTeYXg2rf2HvO/HLh0KicirVYO16vFxTevg9MyOvw1EXSsDRz8ECANjiE7fnzBCQ==} engines: {node: '>=20'} - '@cspell/cspell-types@9.2.1': - resolution: {integrity: sha512-FQHgQYdTHkcpxT0u1ddLIg5Cc5ePVDcLg9+b5Wgaubmc5I0tLotgYj8c/mvStWuKsuZIs6sUopjJrE91wk6Onw==} + '@cspell/cspell-types@9.4.0': + resolution: {integrity: sha512-vSpd50OfmthBH0aRFRLA2zJFtwli3ntHA0WAOJ8tIMLUCJgF3udooRXFeX3wR8ri69C9mc3864LC4inyRC/E9w==} engines: {node: '>=20'} '@cspell/dict-ada@4.1.1': @@ -813,17 +813,17 @@ packages: '@cspell/dict-al@1.1.1': resolution: {integrity: sha512-sD8GCaZetgQL4+MaJLXqbzWcRjfKVp8x+px3HuCaaiATAAtvjwUQ5/Iubiqwfd1boIh2Y1/3EgM3TLQ7Q8e0wQ==} - '@cspell/dict-aws@4.0.15': - resolution: {integrity: sha512-aPY7VVR5Os4rz36EaqXBAEy14wR4Rqv+leCJ2Ug/Gd0IglJpM30LalF3e2eJChnjje3vWoEC0Rz3+e5gpZG+Kg==} + '@cspell/dict-aws@4.0.16': + resolution: {integrity: sha512-a681zShZbtTo947NvTYGLer95ZDQw1ROKvIFydak1e0OlfFCsNdtcYTupn0nbbYs53c9AO7G2DU8AcNEAnwXPA==} - '@cspell/dict-bash@4.2.1': - resolution: {integrity: sha512-SBnzfAyEAZLI9KFS7DUG6Xc1vDFuLllY3jz0WHvmxe8/4xV3ufFE3fGxalTikc1VVeZgZmxYiABw4iGxVldYEg==} + '@cspell/dict-bash@4.2.2': + resolution: {integrity: sha512-kyWbwtX3TsCf5l49gGQIZkRLaB/P8g73GDRm41Zu8Mv51kjl2H7Au0TsEvHv7jzcsRLS6aUYaZv6Zsvk1fOz+Q==} - '@cspell/dict-companies@3.2.5': - resolution: {integrity: sha512-H51R0w7c6RwJJPqH7Gs65tzP6ouZsYDEHmmol6MIIk0kQaOIBuFP2B3vIxHLUr2EPRVFZsMW8Ni7NmVyaQlwsg==} + '@cspell/dict-companies@3.2.7': + resolution: {integrity: sha512-fEyr3LmpFKTaD0LcRhB4lfW1AmULYBqzg4gWAV0dQCv06l+TsA+JQ+3pZJbUcoaZirtgsgT3dL3RUjmGPhUH0A==} - '@cspell/dict-cpp@6.0.12': - resolution: {integrity: sha512-N4NsCTttVpMqQEYbf0VQwCj6np+pJESov0WieCN7R/0aByz4+MXEiDieWWisaiVi8LbKzs1mEj4ZTw5K/6O2UQ==} + '@cspell/dict-cpp@6.0.15': + resolution: {integrity: sha512-N7MKK3llRNoBncygvrnLaGvmjo4xzVr5FbtAc9+MFGHK6/LeSySBupr1FM72XDaVSIsmBEe7sDYCHHwlI9Jb2w==} '@cspell/dict-cryptocurrencies@5.0.5': resolution: {integrity: sha512-R68hYYF/rtlE6T/dsObStzN5QZw+0aQBinAXuWCVqwdS7YZo0X33vGMfChkHaiCo3Z2+bkegqHlqxZF4TD3rUA==} @@ -837,8 +837,8 @@ packages: '@cspell/dict-dart@2.3.1': resolution: {integrity: sha512-xoiGnULEcWdodXI6EwVyqpZmpOoh8RA2Xk9BNdR7DLamV/QMvEYn8KJ7NlRiTSauJKPNkHHQ5EVHRM6sTS7jdg==} - '@cspell/dict-data-science@2.0.9': - resolution: {integrity: sha512-wTOFMlxv06veIwKdXUwdGxrQcK44Zqs426m6JGgHIB/GqvieZQC5n0UI+tUm5OCxuNyo4OV6mylT4cRMjtKtWQ==} + '@cspell/dict-data-science@2.0.12': + resolution: {integrity: sha512-vI/mg6cI28IkFcpeINS7cm5M9HWemmXSTnxJiu3nmc4VAGx35SXIEyuLGBcsVzySvDablFYf4hsEpmg1XpVsUQ==} '@cspell/dict-django@4.1.5': resolution: {integrity: sha512-AvTWu99doU3T8ifoMYOMLW2CXKvyKLukPh1auOPwFGHzueWYvBBN+OxF8wF7XwjTBMMeRleVdLh3aWCDEX/ZWg==} @@ -852,17 +852,17 @@ packages: '@cspell/dict-elixir@4.0.8': resolution: {integrity: sha512-CyfphrbMyl4Ms55Vzuj+mNmd693HjBFr9hvU+B2YbFEZprE5AG+EXLYTMRWrXbpds4AuZcvN3deM2XVB80BN/Q==} - '@cspell/dict-en-common-misspellings@2.1.6': - resolution: {integrity: sha512-xV9yryOqZizbSqxRS7kSVRrxVEyWHUqwdY56IuT7eAWGyTCJNmitXzXa4p+AnEbhL+AB2WLynGVSbNoUC3ceFA==} + '@cspell/dict-en-common-misspellings@2.1.8': + resolution: {integrity: sha512-vDsjRFPQGuAADAiitf82z9Mz3DcqKZi6V5hPAEIFkLLKjFVBcjUsSq59SfL59ElIFb76MtBO0BLifdEbBj+DoQ==} - '@cspell/dict-en-gb-mit@3.1.9': - resolution: {integrity: sha512-1lSnphnHTOxnpNLpPLg1XXv8df3hs4oL0LJ6dkQ0IqNROl8Jzl6PD55BDTlKy4YOAA76dJlePB0wyrxB+VVKbg==} + '@cspell/dict-en-gb-mit@3.1.14': + resolution: {integrity: sha512-b+vEerlHP6rnNf30tmTJb7JZnOq4WAslYUvexOz/L3gDna9YJN3bAnwRJ3At3bdcOcMG7PTv3Pi+C73IR22lNg==} - '@cspell/dict-en_us@4.4.19': - resolution: {integrity: sha512-JYYgzhGqSGuIMNY1cTlmq3zrNpehrExMHqLmLnSM2jEGFeHydlL+KLBwBYxMy4e73w+p1+o/rmAiGsMj9g3MCw==} + '@cspell/dict-en_us@4.4.24': + resolution: {integrity: sha512-JE+/H2YicHJTneRmgH4GSI21rS+1yGZVl1jfOQgl8iHLC+yTTMtCvueNDMK94CgJACzYAoCsQB70MqiFJJfjLQ==} - '@cspell/dict-filetypes@3.0.13': - resolution: {integrity: sha512-g6rnytIpQlMNKGJT1JKzWkC+b3xCliDKpQ3ANFSq++MnR4GaLiifaC4JkVON11Oh/UTplYOR1nY3BR4X30bswA==} + '@cspell/dict-filetypes@3.0.14': + resolution: {integrity: sha512-KSXaSMYYNMLLdHEnju1DyRRH3eQWPRYRnOXpuHUdOh2jC44VgQoxyMU7oB3NAhDhZKBPCihabzECsAGFbdKfEA==} '@cspell/dict-flutter@1.1.1': resolution: {integrity: sha512-UlOzRcH2tNbFhZmHJN48Za/2/MEdRHl2BMkCWZBYs+30b91mWvBfzaN4IJQU7dUZtowKayVIF9FzvLZtZokc5A==} @@ -882,8 +882,8 @@ packages: '@cspell/dict-git@3.0.7': resolution: {integrity: sha512-odOwVKgfxCQfiSb+nblQZc4ErXmnWEnv8XwkaI4sNJ7cNmojnvogYVeMqkXPjvfrgEcizEEA4URRD2Ms5PDk1w==} - '@cspell/dict-golang@6.0.23': - resolution: {integrity: sha512-oXqUh/9dDwcmVlfUF5bn3fYFqbUzC46lXFQmi5emB0vYsyQXdNWsqi6/yH3uE7bdRE21nP7Yo0mR1jjFNyLamg==} + '@cspell/dict-golang@6.0.24': + resolution: {integrity: sha512-rY7PlC3MsHozmjrZWi0HQPUl0BVCV0+mwK0rnMT7pOIXqOe4tWCYMULDIsEk4F0gbIxb5badd2dkCPDYjLnDgA==} '@cspell/dict-google@1.0.9': resolution: {integrity: sha512-biL65POqialY0i4g6crj7pR6JnBkbsPovB2WDYkj3H4TuC/QXv7Pu5pdPxeUJA6TSCHI7T5twsO4VSVyRxD9CA==} @@ -894,8 +894,8 @@ packages: '@cspell/dict-html-symbol-entities@4.0.4': resolution: {integrity: sha512-afea+0rGPDeOV9gdO06UW183Qg6wRhWVkgCFwiO3bDupAoyXRuvupbb5nUyqSTsLXIKL8u8uXQlJ9pkz07oVXw==} - '@cspell/dict-html@4.0.12': - resolution: {integrity: sha512-JFffQ1dDVEyJq6tCDWv0r/RqkdSnV43P2F/3jJ9rwLgdsOIXwQbXrz6QDlvQLVvNSnORH9KjDtenFTGDyzfCaA==} + '@cspell/dict-html@4.0.13': + resolution: {integrity: sha512-vHzk2xfqQYPvoXtQtywa6ekIonPrUEwe2uftjry3UNRNl89TtzLJVSkiymKJ3WMb+W/DwKXKIb1tKzcIS8ccIg==} '@cspell/dict-java@5.0.12': resolution: {integrity: sha512-qPSNhTcl7LGJ5Qp6VN71H8zqvRQK04S08T67knMq9hTA8U7G1sTKzLmBaDOFhq17vNX/+rT+rbRYp+B5Nwza1A==} @@ -921,11 +921,11 @@ packages: '@cspell/dict-makefile@1.0.5': resolution: {integrity: sha512-4vrVt7bGiK8Rx98tfRbYo42Xo2IstJkAF4tLLDMNQLkQ86msDlYSKG1ZCk8Abg+EdNcFAjNhXIiNO+w4KflGAQ==} - '@cspell/dict-markdown@2.0.12': - resolution: {integrity: sha512-ufwoliPijAgWkD/ivAMC+A9QD895xKiJRF/fwwknQb7kt7NozTLKFAOBtXGPJAB4UjhGBpYEJVo2elQ0FCAH9A==} + '@cspell/dict-markdown@2.0.13': + resolution: {integrity: sha512-rFeGikf+lVlywEp7giATUfi8myFeee6jqgbUgtdIdl/OBmRBPe5m7mKNk7yMItMZe8ICrwMxFwJy5OeTnrr6QA==} peerDependencies: '@cspell/dict-css': ^4.0.18 - '@cspell/dict-html': ^4.0.12 + '@cspell/dict-html': ^4.0.13 '@cspell/dict-html-symbol-entities': ^4.0.4 '@cspell/dict-typescript': ^3.2.3 @@ -935,11 +935,11 @@ packages: '@cspell/dict-node@5.0.8': resolution: {integrity: sha512-AirZcN2i84ynev3p2/1NCPEhnNsHKMz9zciTngGoqpdItUb2bDt1nJBjwlsrFI78GZRph/VaqTVFwYikmncpXg==} - '@cspell/dict-npm@5.2.17': - resolution: {integrity: sha512-0yp7lBXtN3CtxBrpvTu/yAuPdOHR2ucKzPxdppc3VKO068waZNpKikn1NZCzBS3dIAFGVITzUPtuTXxt9cxnSg==} + '@cspell/dict-npm@5.2.25': + resolution: {integrity: sha512-jxhVxM3+ilxbum/N2ejAvVuvet1OrGeW1fD7GagAkHU/2zlzINZkJLDtXk6v1WHUjigfhiAsois3puobv/2A1A==} - '@cspell/dict-php@4.0.15': - resolution: {integrity: sha512-iepGB2gtToMWSTvybesn4/lUp4LwXcEm0s8vasJLP76WWVkq1zYjmeS+WAIzNgsuURyZ/9mGqhS0CWMuo74ODw==} + '@cspell/dict-php@4.1.0': + resolution: {integrity: sha512-dTDeabyOj7eFvn2Q4Za3uVXM2+SzeFMqX8ly2P0XTo4AzbCmI2hulFD/QIADwWmwiRrInbbf8cxwFHNIYrXl4w==} '@cspell/dict-powershell@5.0.15': resolution: {integrity: sha512-l4S5PAcvCFcVDMJShrYD0X6Huv9dcsQPlsVsBGbH38wvuN7gS7+GxZFAjTNxDmTY1wrNi1cCatSg6Pu2BW4rgg==} @@ -947,8 +947,8 @@ packages: '@cspell/dict-public-licenses@2.0.15': resolution: {integrity: sha512-cJEOs901H13Pfy0fl4dCD1U+xpWIMaEPq8MeYU83FfDZvellAuSo4GqWCripfIqlhns/L6+UZEIJSOZnjgy7Wg==} - '@cspell/dict-python@4.2.19': - resolution: {integrity: sha512-9S2gTlgILp1eb6OJcVZeC8/Od83N8EqBSg5WHVpx97eMMJhifOzePkE0kDYjyHMtAFznCQTUu0iQEJohNQ5B0A==} + '@cspell/dict-python@4.2.23': + resolution: {integrity: sha512-c0C//tmG4PZWeONtTBPXa6q0ylfz3/BgEcHAR1L0BPWjNUIzTyx9J+hEIUCPYf7eAPeYjaDuTvYlg11igXXE4Q==} '@cspell/dict-r@2.1.1': resolution: {integrity: sha512-71Ka+yKfG4ZHEMEmDxc6+blFkeTTvgKbKAbwiwQAuKl3zpqs1Y0vUtwW2N4b3LgmSPhV3ODVY0y4m5ofqDuKMw==} @@ -962,11 +962,11 @@ packages: '@cspell/dict-scala@5.0.8': resolution: {integrity: sha512-YdftVmumv8IZq9zu1gn2U7A4bfM2yj9Vaupydotyjuc+EEZZSqAafTpvW/jKLWji2TgybM1L2IhmV0s/Iv9BTw==} - '@cspell/dict-shell@1.1.1': - resolution: {integrity: sha512-T37oYxE7OV1x/1D4/13Y8JZGa1QgDCXV7AVt3HLXjn0Fe3TaNDvf5sU0fGnXKmBPqFFrHdpD3uutAQb1dlp15g==} + '@cspell/dict-shell@1.1.2': + resolution: {integrity: sha512-WqOUvnwcHK1X61wAfwyXq04cn7KYyskg90j4lLg3sGGKMW9Sq13hs91pqrjC44Q+lQLgCobrTkMDw9Wyl9nRFA==} - '@cspell/dict-software-terms@5.1.8': - resolution: {integrity: sha512-iwCHLP11OmVHEX2MzE8EPxpPw7BelvldxWe5cJ3xXIDL8TjF2dBTs2noGcrqnZi15SLYIlO8897BIOa33WHHZA==} + '@cspell/dict-software-terms@5.1.15': + resolution: {integrity: sha512-93VqazVvVtHuKY7seGxbfdtrnPBgZ/hZ/NmFFkBRhkRL6NavaQ6U2QsHpnlVEZN5km3DmaQy1X4ZcvNoSTK/ZQ==} '@cspell/dict-sql@2.2.1': resolution: {integrity: sha512-qDHF8MpAYCf4pWU8NKbnVGzkoxMNrFqBHyG/dgrlic5EQiKANCLELYtGlX5auIMDLmTf1inA0eNtv74tyRJ/vg==} @@ -986,26 +986,29 @@ packages: '@cspell/dict-vue@3.0.5': resolution: {integrity: sha512-Mqutb8jbM+kIcywuPQCCaK5qQHTdaByoEO2J9LKFy3sqAdiBogNkrplqUK0HyyRFgCfbJUgjz3N85iCMcWH0JA==} - '@cspell/dynamic-import@9.2.1': - resolution: {integrity: sha512-izYQbk7ck0ffNA1gf7Gi3PkUEjj+crbYeyNK1hxHx5A+GuR416ozs0aEyp995KI2v9HZlXscOj3SC3wrWzHZeA==} + '@cspell/dict-zig@1.0.0': + resolution: {integrity: sha512-XibBIxBlVosU06+M6uHWkFeT0/pW5WajDRYdXG2CgHnq85b0TI/Ks0FuBJykmsgi2CAD3Qtx8UHFEtl/DSFnAQ==} + + '@cspell/dynamic-import@9.4.0': + resolution: {integrity: sha512-d2fjLjzrKGUIn5hWK8gMuyAh2pqXSxBqOHpU1jR3jxbrO3MilunKNijaSstv7CZn067Jpc36VfaKQodaXNZzUA==} engines: {node: '>=20'} - '@cspell/eslint-plugin@9.2.1': - resolution: {integrity: sha512-Fs6P3yXqL11MAcoKDiqWqKMwWuvLn5JaHvjAabnHi9suaYKv1o2RKTp6DIdAYL/KL8AvWKwJbWIChmJZrAJBow==} + '@cspell/eslint-plugin@9.4.0': + resolution: {integrity: sha512-Xf8IU4IslX/EGqvz43gBTqgScLIFiDoGc4amupSUnR97IXIeiwYW9/cxfODsZsRSQdYo3XH8RBKXt1ONAI28jw==} engines: {node: '>=20'} peerDependencies: eslint: ^7 || ^8 || ^9 - '@cspell/filetypes@9.2.1': - resolution: {integrity: sha512-Dy1y1pQ+7hi2gPs+jERczVkACtYbUHcLodXDrzpipoxgOtVxMcyZuo+84WYHImfu0gtM0wU2uLObaVgMSTnytw==} + '@cspell/filetypes@9.4.0': + resolution: {integrity: sha512-RMrYHkvPF0tHVFM+T4voEhX9sfYQrd/mnNbf6+O4CWUyLCz4NQ5H9yOgEIJwEcLu4y3NESGXFef/Jn5xo0CUfg==} engines: {node: '>=20'} - '@cspell/strong-weak-map@9.2.1': - resolution: {integrity: sha512-1HsQWZexvJSjDocVnbeAWjjgqWE/0op/txxzDPvDqI2sE6pY0oO4Cinj2I8z+IP+m6/E6yjPxdb23ydbQbPpJQ==} + '@cspell/strong-weak-map@9.4.0': + resolution: {integrity: sha512-ui7mlXYmqElS/SmRubPBNWdkQVWgWbB6rjCurc+0owYXlnweItAMHTxC8mCWM/Au22SF1dB/JR8QBELFXLkTjQ==} engines: {node: '>=20'} - '@cspell/url@9.2.1': - resolution: {integrity: sha512-9EHCoGKtisPNsEdBQ28tKxKeBmiVS3D4j+AN8Yjr+Dmtu+YACKGWiMOddNZG2VejQNIdFx7FwzU00BGX68ELhA==} + '@cspell/url@9.4.0': + resolution: {integrity: sha512-nt88P6m20AaVbqMxsyPf8KqyWPaFEW2UANi0ijBxc2xTkD2KiUovxfZUYW6NMU9XBYZlovT5LztkEhst2yBcSA==} engines: {node: '>=20'} '@editorjs/caret@1.0.3': @@ -1023,11 +1026,11 @@ packages: '@editorjs/paragraph@2.11.7': resolution: {integrity: sha512-qD6bbWvRc4VvP0mXDOm+hOhzzhUYR9ZjcAvgCuKWcCbUMpCvhVF1s8NX40zdjekPi6JEnuHTamCncTrSzVsVhw==} - '@emnapi/core@1.5.0': - resolution: {integrity: sha512-sbP8GzB1WDzacS8fgNPpHlp6C9VZe+SJP3F90W9rLemaQj2PzIuTEl1qDOYQf58YIpyjViI24y9aPWCjEzY2cg==} + '@emnapi/core@1.7.1': + resolution: {integrity: sha512-o1uhUASyo921r2XtHYOHy7gdkGLge8ghBEQHMWmyJFoXlpU58kIrhhN3w26lpQb6dspetweapMn2CSNwQ8I4wg==} - '@emnapi/runtime@1.5.0': - resolution: {integrity: sha512-97/BJ3iXHww3djw6hYIfErCZFee7qCtrneuLa20UXFCOTCfBM2cvQHjWJ2EG0s0MtdNwInarqCTz35i4wWXHsQ==} + '@emnapi/runtime@1.7.1': + resolution: {integrity: sha512-PVtJr5CmLwYAU9PZDMITZoR5iAOShYREoR45EyyLrbntV50mdePTgUn4AmOw90Ifcj+x2kRjdzr1HP3RrNiHGA==} '@emnapi/wasi-threads@1.1.0': resolution: {integrity: sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==} @@ -1038,36 +1041,36 @@ packages: peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - '@eslint-community/regexpp@4.12.1': - resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} + '@eslint-community/regexpp@4.12.2': + resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint/config-array@0.21.0': - resolution: {integrity: sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ==} + '@eslint/config-array@0.21.1': + resolution: {integrity: sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/config-helpers@0.4.0': - resolution: {integrity: sha512-WUFvV4WoIwW8Bv0KeKCIIEgdSiFOsulyN0xrMu+7z43q/hkOLXjvb5u7UC9jDxvRzcrbEmuZBX5yJZz1741jog==} + '@eslint/config-helpers@0.4.2': + resolution: {integrity: sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/core@0.16.0': - resolution: {integrity: sha512-nmC8/totwobIiFcGkDza3GIKfAw1+hLiYVrh3I1nIomQ8PEr5cxg34jnkmGawul/ep52wGRAcyeDCNtWKSOj4Q==} + '@eslint/core@0.17.0': + resolution: {integrity: sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/eslintrc@3.3.1': - resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==} + '@eslint/eslintrc@3.3.3': + resolution: {integrity: sha512-Kr+LPIUVKz2qkx1HAMH8q1q6azbqBAsXJUxBl/ODDuVPX45Z9DfwB8tPjTi6nNZ8BuM3nbJxC5zCAg5elnBUTQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.37.0': - resolution: {integrity: sha512-jaS+NJ+hximswBG6pjNX0uEJZkrT0zwpVi3BA3vX22aFGjJjmgSTSmPpZCRKmoBL5VY/M6p0xsSJx7rk7sy5gg==} + '@eslint/js@9.39.1': + resolution: {integrity: sha512-S26Stp4zCy88tH94QbBv3XCuzRQiZ9yXofEILmglYTh/Ug/a9/umqvgFtYBAo3Lp0nsI/5/qH1CCrbdK3AP1Tw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/object-schema@2.1.6': - resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==} + '@eslint/object-schema@2.1.7': + resolution: {integrity: sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/plugin-kit@0.4.0': - resolution: {integrity: sha512-sB5uyeq+dwCWyPi31B2gQlVlo+j5brPlWx4yZBrEaRo/nhdDE8Xke1gsGgtiBdaBTxuTkceLVuVt/pclrasb0A==} + '@eslint/plugin-kit@0.4.1': + resolution: {integrity: sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@hapi/bourne@3.0.0': @@ -1093,124 +1096,135 @@ packages: resolution: {integrity: sha512-A5P/LfWGFSl6nsckYtjw9da+19jB8hkJ6ACTGcDfEJ0aE+l2n2El7dsVM7UVHZQ9s2lmYMWlrS21YLy2IR1LUw==} engines: {node: '>=18'} - '@img/sharp-darwin-arm64@0.34.4': - resolution: {integrity: sha512-sitdlPzDVyvmINUdJle3TNHl+AG9QcwiAMsXmccqsCOMZNIdW2/7S26w0LyU8euiLVzFBL3dXPwVCq/ODnf2vA==} + '@img/sharp-darwin-arm64@0.34.5': + resolution: {integrity: sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [darwin] - '@img/sharp-darwin-x64@0.34.4': - resolution: {integrity: sha512-rZheupWIoa3+SOdF/IcUe1ah4ZDpKBGWcsPX6MT0lYniH9micvIU7HQkYTfrx5Xi8u+YqwLtxC/3vl8TQN6rMg==} + '@img/sharp-darwin-x64@0.34.5': + resolution: {integrity: sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [darwin] - '@img/sharp-libvips-darwin-arm64@1.2.3': - resolution: {integrity: sha512-QzWAKo7kpHxbuHqUC28DZ9pIKpSi2ts2OJnoIGI26+HMgq92ZZ4vk8iJd4XsxN+tYfNJxzH6W62X5eTcsBymHw==} + '@img/sharp-libvips-darwin-arm64@1.2.4': + resolution: {integrity: sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==} cpu: [arm64] os: [darwin] - '@img/sharp-libvips-darwin-x64@1.2.3': - resolution: {integrity: sha512-Ju+g2xn1E2AKO6YBhxjj+ACcsPQRHT0bhpglxcEf+3uyPY+/gL8veniKoo96335ZaPo03bdDXMv0t+BBFAbmRA==} + '@img/sharp-libvips-darwin-x64@1.2.4': + resolution: {integrity: sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==} cpu: [x64] os: [darwin] - '@img/sharp-libvips-linux-arm64@1.2.3': - resolution: {integrity: sha512-I4RxkXU90cpufazhGPyVujYwfIm9Nk1QDEmiIsaPwdnm013F7RIceaCc87kAH+oUB1ezqEvC6ga4m7MSlqsJvQ==} + '@img/sharp-libvips-linux-arm64@1.2.4': + resolution: {integrity: sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==} cpu: [arm64] os: [linux] - '@img/sharp-libvips-linux-arm@1.2.3': - resolution: {integrity: sha512-x1uE93lyP6wEwGvgAIV0gP6zmaL/a0tGzJs/BIDDG0zeBhMnuUPm7ptxGhUbcGs4okDJrk4nxgrmxpib9g6HpA==} + '@img/sharp-libvips-linux-arm@1.2.4': + resolution: {integrity: sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==} cpu: [arm] os: [linux] - '@img/sharp-libvips-linux-ppc64@1.2.3': - resolution: {integrity: sha512-Y2T7IsQvJLMCBM+pmPbM3bKT/yYJvVtLJGfCs4Sp95SjvnFIjynbjzsa7dY1fRJX45FTSfDksbTp6AGWudiyCg==} + '@img/sharp-libvips-linux-ppc64@1.2.4': + resolution: {integrity: sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==} cpu: [ppc64] os: [linux] - '@img/sharp-libvips-linux-s390x@1.2.3': - resolution: {integrity: sha512-RgWrs/gVU7f+K7P+KeHFaBAJlNkD1nIZuVXdQv6S+fNA6syCcoboNjsV2Pou7zNlVdNQoQUpQTk8SWDHUA3y/w==} + '@img/sharp-libvips-linux-riscv64@1.2.4': + resolution: {integrity: sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==} + cpu: [riscv64] + os: [linux] + + '@img/sharp-libvips-linux-s390x@1.2.4': + resolution: {integrity: sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==} cpu: [s390x] os: [linux] - '@img/sharp-libvips-linux-x64@1.2.3': - resolution: {integrity: sha512-3JU7LmR85K6bBiRzSUc/Ff9JBVIFVvq6bomKE0e63UXGeRw2HPVEjoJke1Yx+iU4rL7/7kUjES4dZ/81Qjhyxg==} + '@img/sharp-libvips-linux-x64@1.2.4': + resolution: {integrity: sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==} cpu: [x64] os: [linux] - '@img/sharp-libvips-linuxmusl-arm64@1.2.3': - resolution: {integrity: sha512-F9q83RZ8yaCwENw1GieztSfj5msz7GGykG/BA+MOUefvER69K/ubgFHNeSyUu64amHIYKGDs4sRCMzXVj8sEyw==} + '@img/sharp-libvips-linuxmusl-arm64@1.2.4': + resolution: {integrity: sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==} cpu: [arm64] os: [linux] - '@img/sharp-libvips-linuxmusl-x64@1.2.3': - resolution: {integrity: sha512-U5PUY5jbc45ANM6tSJpsgqmBF/VsL6LnxJmIf11kB7J5DctHgqm0SkuXzVWtIY90GnJxKnC/JT251TDnk1fu/g==} + '@img/sharp-libvips-linuxmusl-x64@1.2.4': + resolution: {integrity: sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==} cpu: [x64] os: [linux] - '@img/sharp-linux-arm64@0.34.4': - resolution: {integrity: sha512-YXU1F/mN/Wu786tl72CyJjP/Ngl8mGHN1hST4BGl+hiW5jhCnV2uRVTNOcaYPs73NeT/H8Upm3y9582JVuZHrQ==} + '@img/sharp-linux-arm64@0.34.5': + resolution: {integrity: sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] - '@img/sharp-linux-arm@0.34.4': - resolution: {integrity: sha512-Xyam4mlqM0KkTHYVSuc6wXRmM7LGN0P12li03jAnZ3EJWZqj83+hi8Y9UxZUbxsgsK1qOEwg7O0Bc0LjqQVtxA==} + '@img/sharp-linux-arm@0.34.5': + resolution: {integrity: sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm] os: [linux] - '@img/sharp-linux-ppc64@0.34.4': - resolution: {integrity: sha512-F4PDtF4Cy8L8hXA2p3TO6s4aDt93v+LKmpcYFLAVdkkD3hSxZzee0rh6/+94FpAynsuMpLX5h+LRsSG3rIciUQ==} + '@img/sharp-linux-ppc64@0.34.5': + resolution: {integrity: sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [ppc64] os: [linux] - '@img/sharp-linux-s390x@0.34.4': - resolution: {integrity: sha512-qVrZKE9Bsnzy+myf7lFKvng6bQzhNUAYcVORq2P7bDlvmF6u2sCmK2KyEQEBdYk+u3T01pVsPrkj943T1aJAsw==} + '@img/sharp-linux-riscv64@0.34.5': + resolution: {integrity: sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [riscv64] + os: [linux] + + '@img/sharp-linux-s390x@0.34.5': + resolution: {integrity: sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [s390x] os: [linux] - '@img/sharp-linux-x64@0.34.4': - resolution: {integrity: sha512-ZfGtcp2xS51iG79c6Vhw9CWqQC8l2Ot8dygxoDoIQPTat/Ov3qAa8qpxSrtAEAJW+UjTXc4yxCjNfxm4h6Xm2A==} + '@img/sharp-linux-x64@0.34.5': + resolution: {integrity: sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] - '@img/sharp-linuxmusl-arm64@0.34.4': - resolution: {integrity: sha512-8hDVvW9eu4yHWnjaOOR8kHVrew1iIX+MUgwxSuH2XyYeNRtLUe4VNioSqbNkB7ZYQJj9rUTT4PyRscyk2PXFKA==} + '@img/sharp-linuxmusl-arm64@0.34.5': + resolution: {integrity: sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] - '@img/sharp-linuxmusl-x64@0.34.4': - resolution: {integrity: sha512-lU0aA5L8QTlfKjpDCEFOZsTYGn3AEiO6db8W5aQDxj0nQkVrZWmN3ZP9sYKWJdtq3PWPhUNlqehWyXpYDcI9Sg==} + '@img/sharp-linuxmusl-x64@0.34.5': + resolution: {integrity: sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] - '@img/sharp-wasm32@0.34.4': - resolution: {integrity: sha512-33QL6ZO/qpRyG7woB/HUALz28WnTMI2W1jgX3Nu2bypqLIKx/QKMILLJzJjI+SIbvXdG9fUnmrxR7vbi1sTBeA==} + '@img/sharp-wasm32@0.34.5': + resolution: {integrity: sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [wasm32] - '@img/sharp-win32-arm64@0.34.4': - resolution: {integrity: sha512-2Q250do/5WXTwxW3zjsEuMSv5sUU4Tq9VThWKlU2EYLm4MB7ZeMwF+SFJutldYODXF6jzc6YEOC+VfX0SZQPqA==} + '@img/sharp-win32-arm64@0.34.5': + resolution: {integrity: sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [win32] - '@img/sharp-win32-ia32@0.34.4': - resolution: {integrity: sha512-3ZeLue5V82dT92CNL6rsal6I2weKw1cYu+rGKm8fOCCtJTR2gYeUfY3FqUnIJsMUPIH68oS5jmZ0NiJ508YpEw==} + '@img/sharp-win32-ia32@0.34.5': + resolution: {integrity: sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [ia32] os: [win32] - '@img/sharp-win32-x64@0.34.4': - resolution: {integrity: sha512-xIyj4wpYs8J18sVN3mSQjwrw7fKUqRw+Z5rnHNCy5fYTxigBz81u5mOMPmFumwjcn8+ld1ppptMBCLic1nz6ig==} + '@img/sharp-win32-x64@0.34.5': + resolution: {integrity: sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [win32] @@ -1248,8 +1262,8 @@ packages: peerDependencies: koa: '>=2' - '@koa/router@14.0.0': - resolution: {integrity: sha512-LBSu5K0qAaaQcXX/0WIB9PGDevyCxxpnc1uq13vV/CgObaVxuis5hKl3Eboq/8gcb6ebnkAStW9NB/Em2eYyFA==} + '@koa/router@15.0.0': + resolution: {integrity: sha512-qAoA07CndM5XuBZbTbsnvUj1RNVZtwOvO9xGz7CCE/t4nSopI+xEiFGHyJS1UuSDCt8cJZ9vfCvqbAFga+0y7w==} engines: {node: '>= 20'} '@mdx-js/loader@3.1.1': @@ -1275,14 +1289,14 @@ packages: '@napi-rs/wasm-runtime@0.2.12': resolution: {integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==} - '@next/env@15.5.4': - resolution: {integrity: sha512-27SQhYp5QryzIT5uO8hq99C69eLQ7qkzkDPsk3N+GuS2XgOgoYEeOav7Pf8Tn4drECOVDsDg8oj+/DVy8qQL2A==} + '@next/env@16.0.7': + resolution: {integrity: sha512-gpaNgUh5nftFKRkRQGnVi5dpcYSKGcZZkQffZ172OrG/XkrnS7UBTQ648YY+8ME92cC4IojpI2LqTC8sTDhAaw==} - '@next/eslint-plugin-next@15.5.4': - resolution: {integrity: sha512-SR1vhXNNg16T4zffhJ4TS7Xn7eq4NfKfcOsRwea7RIAHrjRpI9ALYbamqIJqkAhowLlERffiwk0FMvTLNdnVtw==} + '@next/eslint-plugin-next@16.0.7': + resolution: {integrity: sha512-hFrTNZcMEG+k7qxVxZJq3F32Kms130FAhG8lvw2zkKBgAcNOJIxlljNiCjGygvBshvaGBdf88q2CqWtnqezDHA==} - '@next/mdx@15.5.4': - resolution: {integrity: sha512-QUc14KkswCau2/Lul13t13v8QYRiEh3aeyUMUix5mK/Zd8c/J9NQuVvLGhxS7fxGPU+fOcv0GaXqZshkvNaX7A==} + '@next/mdx@16.0.7': + resolution: {integrity: sha512-ysX8mH24XuTwXStJLbecHO97I4EdUT9vHQymXLypLb3956cYXfVb/36nukH0C4Q2iA7RZE04yNpHs84Br77nNg==} peerDependencies: '@mdx-js/loader': '>=0.15.0' '@mdx-js/react': '>=0.15.0' @@ -1292,50 +1306,50 @@ packages: '@mdx-js/react': optional: true - '@next/swc-darwin-arm64@15.5.4': - resolution: {integrity: sha512-nopqz+Ov6uvorej8ndRX6HlxCYWCO3AHLfKK2TYvxoSB2scETOcfm/HSS3piPqc3A+MUgyHoqE6je4wnkjfrOA==} + '@next/swc-darwin-arm64@16.0.7': + resolution: {integrity: sha512-LlDtCYOEj/rfSnEn/Idi+j1QKHxY9BJFmxx7108A6D8K0SB+bNgfYQATPk/4LqOl4C0Wo3LACg2ie6s7xqMpJg==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@next/swc-darwin-x64@15.5.4': - resolution: {integrity: sha512-QOTCFq8b09ghfjRJKfb68kU9k2K+2wsC4A67psOiMn849K9ZXgCSRQr0oVHfmKnoqCbEmQWG1f2h1T2vtJJ9mA==} + '@next/swc-darwin-x64@16.0.7': + resolution: {integrity: sha512-rtZ7BhnVvO1ICf3QzfW9H3aPz7GhBrnSIMZyr4Qy6boXF0b5E3QLs+cvJmg3PsTCG2M1PBoC+DANUi4wCOKXpA==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@next/swc-linux-arm64-gnu@15.5.4': - resolution: {integrity: sha512-eRD5zkts6jS3VfE/J0Kt1VxdFqTnMc3QgO5lFE5GKN3KDI/uUpSyK3CjQHmfEkYR4wCOl0R0XrsjpxfWEA++XA==} + '@next/swc-linux-arm64-gnu@16.0.7': + resolution: {integrity: sha512-mloD5WcPIeIeeZqAIP5c2kdaTa6StwP4/2EGy1mUw8HiexSHGK/jcM7lFuS3u3i2zn+xH9+wXJs6njO7VrAqww==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@next/swc-linux-arm64-musl@15.5.4': - resolution: {integrity: sha512-TOK7iTxmXFc45UrtKqWdZ1shfxuL4tnVAOuuJK4S88rX3oyVV4ZkLjtMT85wQkfBrOOvU55aLty+MV8xmcJR8A==} + '@next/swc-linux-arm64-musl@16.0.7': + resolution: {integrity: sha512-+ksWNrZrthisXuo9gd1XnjHRowCbMtl/YgMpbRvFeDEqEBd523YHPWpBuDjomod88U8Xliw5DHhekBC3EOOd9g==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@next/swc-linux-x64-gnu@15.5.4': - resolution: {integrity: sha512-7HKolaj+481FSW/5lL0BcTkA4Ueam9SPYWyN/ib/WGAFZf0DGAN8frNpNZYFHtM4ZstrHZS3LY3vrwlIQfsiMA==} + '@next/swc-linux-x64-gnu@16.0.7': + resolution: {integrity: sha512-4WtJU5cRDxpEE44Ana2Xro1284hnyVpBb62lIpU5k85D8xXxatT+rXxBgPkc7C1XwkZMWpK5rXLXTh9PFipWsA==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@next/swc-linux-x64-musl@15.5.4': - resolution: {integrity: sha512-nlQQ6nfgN0nCO/KuyEUwwOdwQIGjOs4WNMjEUtpIQJPR2NUfmGpW2wkJln1d4nJ7oUzd1g4GivH5GoEPBgfsdw==} + '@next/swc-linux-x64-musl@16.0.7': + resolution: {integrity: sha512-HYlhqIP6kBPXalW2dbMTSuB4+8fe+j9juyxwfMwCe9kQPPeiyFn7NMjNfoFOfJ2eXkeQsoUGXg+O2SE3m4Qg2w==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@next/swc-win32-arm64-msvc@15.5.4': - resolution: {integrity: sha512-PcR2bN7FlM32XM6eumklmyWLLbu2vs+D7nJX8OAIoWy69Kef8mfiN4e8TUv2KohprwifdpFKPzIP1njuCjD0YA==} + '@next/swc-win32-arm64-msvc@16.0.7': + resolution: {integrity: sha512-EviG+43iOoBRZg9deGauXExjRphhuYmIOJ12b9sAPy0eQ6iwcPxfED2asb/s2/yiLYOdm37kPaiZu8uXSYPs0Q==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@next/swc-win32-x64-msvc@15.5.4': - resolution: {integrity: sha512-1ur2tSHZj8Px/KMAthmuI9FMp/YFusMMGoRNJaRZMOlSkgvLjzosSdQI0cJAKogdHl3qXUQKL9MGaYvKwA7DXg==} + '@next/swc-win32-x64-msvc@16.0.7': + resolution: {integrity: sha512-gniPjy55zp5Eg0896qSrf3yB1dw4F/3s8VK1ephdsZZ129j2n6e1WqCbE2YgcKhW9hPB9TVZENugquWJD5x0ug==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -1531,14 +1545,11 @@ packages: '@rtsao/scc@1.1.0': resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} - '@rushstack/eslint-patch@1.13.0': - resolution: {integrity: sha512-2ih5qGw5SZJ+2fLZxP6Lr6Na2NTIgPRL/7Kmyuw0uIyBQnuhQ8fi8fzUTd38eIQmqp+GYLC00cI6WgtqHxBwmw==} - '@softonus/prettier-plugin-duplicate-remover@1.1.2': resolution: {integrity: sha512-2+oIZQ15zlxe+qt0vVriAfye+MCGiGE6vQ2/mG3WOsfvqv1CBEAgSmzQmFFnp0IyYYD9o5Ej+SaUYqaenL5vfQ==} - '@stylistic/eslint-plugin@5.4.0': - resolution: {integrity: sha512-UG8hdElzuBDzIbjG1QDwnYH0MQ73YLXDFHgZzB4Zh/YJfnw8XNsloVtytqzx0I2Qky9THSdpTmi8Vjn/pf/Lew==} + '@stylistic/eslint-plugin@5.6.1': + resolution: {integrity: sha512-JCs+MqoXfXrRPGbGmho/zGS/jMcn3ieKl/A8YImqib76C8kjgZwq5uUFzc30lJkMvcchuRn6/v8IApLxli3Jyw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: '>=9.0.0' @@ -1552,8 +1563,8 @@ packages: '@swc/helpers@0.5.17': resolution: {integrity: sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==} - '@tokenizer/inflate@0.2.7': - resolution: {integrity: sha512-MADQgmZT1eKjp06jpI2yozxaU9uVs4GzzgSL+uEq7bVcJ9V1ZXQkeGNql1fsSI0gMy1vhvNTNbUqrx+pZfJVmg==} + '@tokenizer/inflate@0.4.1': + resolution: {integrity: sha512-2mAv+8pkG6GIZiF1kNg1jAjh27IDxEPKwdGul3snfztFerfPGI1LjDezZp3i7BElXompqEtPmoPx6c2wgtWsOA==} engines: {node: '>=18'} '@tokenizer/token@0.3.0': @@ -1577,8 +1588,8 @@ packages: '@types/content-disposition@0.5.9': resolution: {integrity: sha512-8uYXI3Gw35MhiVYhG3s295oihrxRyytcRHjSjqnqZVDDy/xcGBRny7+Xj1Wgfhv5QzRtN2hB2dVRBUX9XW3UcQ==} - '@types/cookies@0.9.1': - resolution: {integrity: sha512-E/DPgzifH4sM1UMadJMWd6mO2jOd4g1Ejwzx8/uRCDpJis1IrlyQEcGAYEomtAqRYmD5ORbNXMeI9U0RiVGZbg==} + '@types/cookies@0.9.2': + resolution: {integrity: sha512-1AvkDdZM2dbyFybL4fxpuNCaWyv//0AwsuUk2DWeXyM1/5ZKm6W3z6mQi24RZ4l2ucY+bkSHzbDVpySqPGuV8A==} '@types/debug@4.1.12': resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} @@ -1598,8 +1609,8 @@ packages: '@types/express-serve-static-core@5.1.0': resolution: {integrity: sha512-jnHMsrd0Mwa9Cf4IdOzbz543y4XJepXrbia2T4b6+spXC2We3t1y6K44D3mR8XMFSXMCf3/l7rCgddfx7UNVBA==} - '@types/express@5.0.3': - resolution: {integrity: sha512-wGA0NX93b19/dZC1J18tKWVIYWyyF2ZjT9vin/NRu0qzzvfVzWjs04iq2rQ3H65vCTQYlRqs3YHfY7zjdV+9Kw==} + '@types/express@5.0.6': + resolution: {integrity: sha512-sKYVuV7Sv9fbPIt/442koC7+IIwK5olP1KWeD88e/idgoJqDm3JV/YUiPwkoKK92ylff2MGxSz1CSjsXelx0YA==} '@types/geojson@7946.0.16': resolution: {integrity: sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==} @@ -1628,20 +1639,20 @@ packages: '@types/keygrip@1.0.6': resolution: {integrity: sha512-lZuNAY9xeJt7Bx4t4dx0rYCDqGPW8RXhQZK1td7d4H6E9zYbLoOtjBvfwdTKpsyxQI/2jv+armjX/RW+ZNpXOQ==} - '@types/koa-compose@3.2.8': - resolution: {integrity: sha512-4Olc63RY+MKvxMwVknCUDhRQX1pFQoBZ/lXcRLP69PQkEpze/0cr8LNqJQe5NFb/b19DWi2a5bTi2VAlQzhJuA==} + '@types/koa-compose@3.2.9': + resolution: {integrity: sha512-BroAZ9FTvPiCy0Pi8tjD1OfJ7bgU1gQf0eR6e1Vm+JJATy9eKOG3hQMFtMciMawiSOVnLMdmUOC46s7HBhSTsA==} - '@types/koa@3.0.0': - resolution: {integrity: sha512-MOcVYdVYmkSutVHZZPh8j3+dAjLyR5Tl59CN0eKgpkE1h/LBSmPAsQQuWs+bKu7WtGNn+hKfJH9Gzml+PulmDg==} + '@types/koa@3.0.1': + resolution: {integrity: sha512-VkB6WJUQSe0zBpR+Q7/YIUESGp5wPHcaXr0xueU5W0EOUWtlSbblsl+Kl31lyRQ63nIILh0e/7gXjQ09JXJIHw==} - '@types/koa__router@12.0.4': - resolution: {integrity: sha512-Y7YBbSmfXZpa/m5UGGzb7XadJIRBRnwNY9cdAojZGp65Cpe5MAP3mOZE7e3bImt8dfKS4UFcR16SLH8L/z7PBw==} + '@types/koa__router@12.0.5': + resolution: {integrity: sha512-1HeLxuDn4n5it1yZYCSyOYXo++73zT0ffoviXnPxbwbxLbvDFEvWD9ZzpRiIpK4oKR0pi+K+Mk/ZjyROjW3HSw==} '@types/leaflet@1.9.21': resolution: {integrity: sha512-TbAd9DaPGSnzp6QvtYngntMZgcRk+igFELwR2N99XZn7RXUdKgsXMR+28bUO0rPsWp8MIu/f47luLIQuSLYv/w==} - '@types/lodash@4.17.20': - resolution: {integrity: sha512-H3MHACvFUEiujabxhaI/ImO6gUrd8oOurg7LQtS7mbwIXA/cUqWrvBsaeJ23aZEPk1TAYkurjfMbSELfoCXlGA==} + '@types/lodash@4.17.21': + resolution: {integrity: sha512-FOvQ0YPD5NOfPgMzJihoT+Za5pdkDJWcbpuj1DjaKZIr/gxodQjY/uWEFlTNqW2ugXHUiL8lRQgw63dzKHZdeQ==} '@types/mdast@4.0.4': resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} @@ -1649,9 +1660,6 @@ packages: '@types/mdx@2.0.13': resolution: {integrity: sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==} - '@types/mime@1.3.5': - resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} - '@types/minimatch@6.0.0': resolution: {integrity: sha512-zmPitbQ8+6zNutpwgcQuLcsEpn/Cj54Kbn7L5pX0Os5kdWplB7xPgEh/g+SWOB/qmows2gpuCaPyduq8ZZRnxA==} deprecated: This is a stub types definition. minimatch provides its own type definitions, so you do not need this installed. @@ -1662,8 +1670,8 @@ packages: '@types/next-pwa@5.6.9': resolution: {integrity: sha512-KcymH+MtFYB5KVKIOH1DMqd0wUb8VLCxzHtsaRQQ7S8sGOaTH24Lo2vGZf6/0Ok9e+xWCKhqsSt6cgDJTk91Iw==} - '@types/node@22.18.10': - resolution: {integrity: sha512-anNG/V/Efn/YZY4pRzbACnKxNKoBng2VTFydVu8RRs5hQjikP8CQfaeAV59VFSCzKNp90mXiVXW2QzV56rwMrg==} + '@types/node@22.19.1': + resolution: {integrity: sha512-LCCV0HdSZZZb34qifBsyWlUmok6W7ouER+oQIGBScS8EsZsQbrtFTUrDX4hOl+CS6p7cnNC4td+qrSVGSCTUfQ==} '@types/prop-types@15.7.15': resolution: {integrity: sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==} @@ -1674,8 +1682,8 @@ packages: '@types/range-parser@1.2.7': resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} - '@types/react-dom@19.2.1': - resolution: {integrity: sha512-/EEvYBdT3BflCWvTMO7YkYBHVE9Ci6XdqZciZANQgKpaiDRGOLIlRo91jbTNRQjgPFWVaRxcYc0luVNFitz57A==} + '@types/react-dom@19.2.3': + resolution: {integrity: sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==} peerDependencies: '@types/react': ^19.2.0 @@ -1684,26 +1692,23 @@ packages: peerDependencies: '@types/react': '*' - '@types/react@19.2.2': - resolution: {integrity: sha512-6mDvHUFSjyT2B2yeNx2nUgMxh9LtOWvkhIU3uePn2I2oyNymUAX1NIsdgviM4CH+JSrp2D2hsMvJOkxY+0wNRA==} + '@types/react@19.2.7': + resolution: {integrity: sha512-MWtvHrGZLFttgeEj28VXHxpmwYbor/ATPYbBfSFZEIRK0ecCFLl2Qo55z52Hss+UV9CRN7trSeq1zbgx7YDWWg==} '@types/resolve@1.17.1': resolution: {integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==} - '@types/send@0.17.5': - resolution: {integrity: sha512-z6F2D3cOStZvuk2SaP6YrwkNO65iTZcwA2ZkSABegdkAh/lf+Aa/YQndZVfmEXT5vgAp6zv06VQ3ejSVjAny4w==} + '@types/send@1.2.1': + resolution: {integrity: sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==} - '@types/send@1.2.0': - resolution: {integrity: sha512-zBF6vZJn1IaMpg3xUF25VK3gd3l8zwE0ZLRX7dsQyQi+jp4E8mMDJNGDYnYse+bQhYwWERTxVwHpi3dMOq7RKQ==} - - '@types/serve-static@1.15.9': - resolution: {integrity: sha512-dOTIuqpWLyl3BBXU3maNQsS4A3zuuoYRNIvYSxxhebPfXg2mzWQEPne/nlJ37yOse6uGgR386uTpdsx4D0QZWA==} + '@types/serve-static@2.2.0': + resolution: {integrity: sha512-8mam4H1NHLtu7nmtalF7eyBH14QyOASmcxHhSfEoRyr0nP/YdoesEtU+uSRvMe96TW/HPTtkoKqQLl53N7UXMQ==} '@types/trusted-types@2.0.7': resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} - '@types/turndown@5.0.5': - resolution: {integrity: sha512-TL2IgGgc7B5j78rIccBtlYAnkuv8nUQqhQc+DSYV5j9Be9XOcm/SKOVRuA47xAVI3680Tk9B1d8flK2GWT2+4w==} + '@types/turndown@5.0.6': + resolution: {integrity: sha512-ru00MoyeeouE5BX4gRL+6m/BsDfbRayOskWqUvh7CLGW+UXxHQItqALa38kKnOiZPqJrtzJUgAC2+F0rL1S4Pg==} '@types/unist@2.0.11': resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==} @@ -1714,63 +1719,63 @@ packages: '@types/warning@3.0.3': resolution: {integrity: sha512-D1XC7WK8K+zZEveUPY+cf4+kgauk8N4eHr/XIHXGlGYkHLud6hK9lYfZk1ry1TNh798cZUCgb6MqGEG8DkJt6Q==} - '@typescript-eslint/eslint-plugin@8.46.0': - resolution: {integrity: sha512-hA8gxBq4ukonVXPy0OKhiaUh/68D0E88GSmtC1iAEnGaieuDi38LhS7jdCHRLi6ErJBNDGCzvh5EnzdPwUc0DA==} + '@typescript-eslint/eslint-plugin@8.48.1': + resolution: {integrity: sha512-X63hI1bxl5ohelzr0LY5coufyl0LJNthld+abwxpCoo6Gq+hSqhKwci7MUWkXo67mzgUK6YFByhmaHmUcuBJmA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.46.0 + '@typescript-eslint/parser': ^8.48.1 eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/parser@8.46.0': - resolution: {integrity: sha512-n1H6IcDhmmUEG7TNVSspGmiHHutt7iVKtZwRppD7e04wha5MrkV1h3pti9xQLcCMt6YWsncpoT0HMjkH1FNwWQ==} + '@typescript-eslint/parser@8.48.1': + resolution: {integrity: sha512-PC0PDZfJg8sP7cmKe6L3QIL8GZwU5aRvUFedqSIpw3B+QjRSUZeeITC2M5XKeMXEzL6wccN196iy3JLwKNvDVA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/project-service@8.46.0': - resolution: {integrity: sha512-OEhec0mH+U5Je2NZOeK1AbVCdm0ChyapAyTeXVIYTPXDJ3F07+cu87PPXcGoYqZ7M9YJVvFnfpGg1UmCIqM+QQ==} + '@typescript-eslint/project-service@8.48.1': + resolution: {integrity: sha512-HQWSicah4s9z2/HifRPQ6b6R7G+SBx64JlFQpgSSHWPKdvCZX57XCbszg/bapbRsOEv42q5tayTYcEFpACcX1w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/scope-manager@8.46.0': - resolution: {integrity: sha512-lWETPa9XGcBes4jqAMYD9fW0j4n6hrPtTJwWDmtqgFO/4HF4jmdH/Q6wggTw5qIT5TXjKzbt7GsZUBnWoO3dqw==} + '@typescript-eslint/scope-manager@8.48.1': + resolution: {integrity: sha512-rj4vWQsytQbLxC5Bf4XwZ0/CKd362DkWMUkviT7DCS057SK64D5lH74sSGzhI6PDD2HCEq02xAP9cX68dYyg1w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/tsconfig-utils@8.46.0': - resolution: {integrity: sha512-WrYXKGAHY836/N7zoK/kzi6p8tXFhasHh8ocFL9VZSAkvH956gfeRfcnhs3xzRy8qQ/dq3q44v1jvQieMFg2cw==} + '@typescript-eslint/tsconfig-utils@8.48.1': + resolution: {integrity: sha512-k0Jhs4CpEffIBm6wPaCXBAD7jxBtrHjrSgtfCjUvPp9AZ78lXKdTR8fxyZO5y4vWNlOvYXRtngSZNSn+H53Jkw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/type-utils@8.46.0': - resolution: {integrity: sha512-hy+lvYV1lZpVs2jRaEYvgCblZxUoJiPyCemwbQZ+NGulWkQRy0HRPYAoef/CNSzaLt+MLvMptZsHXHlkEilaeg==} + '@typescript-eslint/type-utils@8.48.1': + resolution: {integrity: sha512-1jEop81a3LrJQLTf/1VfPQdhIY4PlGDBc/i67EVWObrtvcziysbLN3oReexHOM6N3jyXgCrkBsZpqwH0hiDOQg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/types@8.46.0': - resolution: {integrity: sha512-bHGGJyVjSE4dJJIO5yyEWt/cHyNwga/zXGJbJJ8TiO01aVREK6gCTu3L+5wrkb1FbDkQ+TKjMNe9R/QQQP9+rA==} + '@typescript-eslint/types@8.48.1': + resolution: {integrity: sha512-+fZ3LZNeiELGmimrujsDCT4CRIbq5oXdHe7chLiW8qzqyPMnn1puNstCrMNVAqwcl2FdIxkuJ4tOs/RFDBVc/Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.46.0': - resolution: {integrity: sha512-ekDCUfVpAKWJbRfm8T1YRrCot1KFxZn21oV76v5Fj4tr7ELyk84OS+ouvYdcDAwZL89WpEkEj2DKQ+qg//+ucg==} + '@typescript-eslint/typescript-estree@8.48.1': + resolution: {integrity: sha512-/9wQ4PqaefTK6POVTjJaYS0bynCgzh6ClJHGSBj06XEHjkfylzB+A3qvyaXnErEZSaxhIo4YdyBgq6j4RysxDg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/utils@8.46.0': - resolution: {integrity: sha512-nD6yGWPj1xiOm4Gk0k6hLSZz2XkNXhuYmyIrOWcHoPuAhjT9i5bAG+xbWPgFeNR8HPHHtpNKdYUXJl/D3x7f5g==} + '@typescript-eslint/utils@8.48.1': + resolution: {integrity: sha512-fAnhLrDjiVfey5wwFRwrweyRlCmdz5ZxXz2G/4cLn0YDLjTapmN4gcCsTBR1N2rWnZSDeWpYtgLDsJt+FpmcwA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/visitor-keys@8.46.0': - resolution: {integrity: sha512-FrvMpAK+hTbFy7vH5j1+tMYHMSKLE6RzluFJlkFNKD0p9YsUT75JlBSmr5so3QRzvMwU5/bIEdeNrxm8du8l3Q==} + '@typescript-eslint/visitor-keys@8.48.1': + resolution: {integrity: sha512-BmxxndzEWhE4TIEEMBs8lP3MBWN3jFPs/p6gPm/wkv02o41hI6cq9AuSmGAaTTHPtA1FTi2jBre4A9rm5ZmX+Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@ungap/structured-clone@1.3.0': @@ -1904,8 +1909,8 @@ packages: ajv@8.17.1: resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} - ansi-escapes@7.1.1: - resolution: {integrity: sha512-Zhl0ErHcSRUaVfGUeUdDuLgpkEo8KIFjB4Y9uAc46ScOpdDiU1Dbyplh7qWJeJ/ZHpbyMSM26+X3BySgnIz40Q==} + ansi-escapes@7.2.0: + resolution: {integrity: sha512-g6LhBsl+GBPRWGWsBtutpzBYuIIdBkLEvad5C/va/74Db018+5TZiyA26cZJAr3Rft5lprVqOIPxf5Vid6tqAw==} engines: {node: '>=18'} ansi-regex@6.2.2: @@ -2036,8 +2041,8 @@ packages: resolution: {integrity: sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==} engines: {node: '>= 0.6.0'} - baseline-browser-mapping@2.8.16: - resolution: {integrity: sha512-OMu3BGQ4E7P1ErFsIPpbJh0qvDudM/UuJeHgkAvfWe+0HFJCXh+t/l8L6fVLR55RI/UbKrVLnAXZSVwd9ysWYw==} + baseline-browser-mapping@2.9.3: + resolution: {integrity: sha512-8QdH6czo+G7uBsNo0GiUfouPN1lRzKdJTGnKXwe12gkFbnnOUaUKGN55dMkfy+mnxmvjwl9zcI4VncczcVXDhA==} hasBin: true big.js@5.2.2: @@ -2056,8 +2061,8 @@ packages: browser-fs-access@0.37.0: resolution: {integrity: sha512-MKpvZrKtv6pBJ2ACd+VwfS9XauBKTMVZg2UBibypuK1gfiXM7euZjbdKmvRsyxeQRhfzNVQrzCSVGXs19/LP8Q==} - browserslist@4.26.3: - resolution: {integrity: sha512-lAUU+02RFBuCKQPj/P6NgjlbCnLBMp4UtgTx7vNHd3XSIJF87s9a5rA3aH2yw3GS9DqZAUbOtZdCCiZeVRqt0w==} + browserslist@4.28.1: + resolution: {integrity: sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -2091,8 +2096,8 @@ packages: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} - caniuse-lite@1.0.30001750: - resolution: {integrity: sha512-cuom0g5sdX6rw00qOoLNSFCJ9/mYIsuSOA+yzpDw8eopiFqcVwQvZHqov0vmEighRxX++cfC0Vg1G+1Iy/mSpQ==} + caniuse-lite@1.0.30001759: + resolution: {integrity: sha512-Pzfx9fOKoKvevQf8oCXoyNRQ5QyxJj+3O0Rqx2V5oxT61KGx8+n6hV/IUyJeifUci2clnmmKVpvtiqRzgiWjSw==} ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} @@ -2134,8 +2139,8 @@ packages: resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==} engines: {node: '>=18'} - cli-truncate@5.1.0: - resolution: {integrity: sha512-7JDGG+4Zp0CsknDCedl0DYdaeOhc46QNpXi3NLQblkZpXXgA6LncLDUUyvrjSvZeF3VRQa+KiMGomazQrC1V8g==} + cli-truncate@5.1.1: + resolution: {integrity: sha512-SroPvNHxUnk+vIW/dOSfNqdy1sPEFkrTk6TUtqLCnBlo3N7TNYYkzzN7uSD6+jVjrdO4+p8nH7JzH6cIvUem6A==} engines: {node: '>=20'} client-only@0.0.1: @@ -2171,8 +2176,8 @@ packages: comma-separated-tokens@2.0.3: resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} - commander@14.0.1: - resolution: {integrity: sha512-2JkV3gUZUVrbNA+1sjBOYLsMZ5cEEl8GTFP2a4AVz5hvasAMCQ1D2l2le/cX+pV4N6ZU17zjUahLpIXRrnWL8A==} + commander@14.0.2: + resolution: {integrity: sha512-TywoWNNRbhoD0BXs1P3ZEScW8W5iKrnbithIl0YH+uCmBd0QpPOA8yc82DS3BIE5Ma6FnBVUsJ7wVUDz4dvOWQ==} engines: {node: '>=20'} commander@2.20.3: @@ -2210,11 +2215,11 @@ packages: copy-anything@2.0.6: resolution: {integrity: sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==} - core-js-compat@3.46.0: - resolution: {integrity: sha512-p9hObIIEENxSV8xIu+V68JjSeARg6UVMG5mR+JEUguG3sI6MsiS1njz2jHmyJDvA+8jX/sytkBHup6kxhM9law==} + core-js-compat@3.47.0: + resolution: {integrity: sha512-IGfuznZ/n7Kp9+nypamBhvwdwLsW6KC8IOaURw2doAK5e98AG3acVLdh0woOnEqCfUtS+Vu882JE4k/DAm3ItQ==} - core-js@3.46.0: - resolution: {integrity: sha512-vDMm9B0xnqqZ8uSBpZ8sNtRtOdmfShrvT6h2TuQGLs0Is+cR0DYbj/KWP6ALVNbWPpqA/qPLoOuppJN07humpA==} + core-js@3.47.0: + resolution: {integrity: sha512-c3Q2VVkGAUyupsjRnaNX6u8Dq2vAdzm9iuPj5FW0fRxzlxgq9Q39MDq10IvmQSpLgHQNyQzQmOo6bgGHmH3NNg==} core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} @@ -2227,33 +2232,33 @@ packages: resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} engines: {node: '>=8'} - cspell-config-lib@9.2.1: - resolution: {integrity: sha512-qqhaWW+0Ilc7493lXAlXjziCyeEmQbmPMc1XSJw2EWZmzb+hDvLdFGHoX18QU67yzBtu5hgQsJDEDZKvVDTsRA==} + cspell-config-lib@9.4.0: + resolution: {integrity: sha512-CvQKSmK/DRIf3LpNx2sZth65pHW2AHngZqLkH3DTwnAPbiCAsE0XvCrVhvDfCNu/6uJIaa+NVHSs8GOf//DHBQ==} engines: {node: '>=20'} - cspell-dictionary@9.2.1: - resolution: {integrity: sha512-0hQVFySPsoJ0fONmDPwCWGSG6SGj4ERolWdx4t42fzg5zMs+VYGXpQW4BJneQ5Tfxy98Wx8kPhmh/9E8uYzLTw==} + cspell-dictionary@9.4.0: + resolution: {integrity: sha512-c2qscanRZChoHZFYI7KpvBMdy8i6wNwl2EflcNRrFiFOq67t9CgxLe54PafaqhrHGpBc8nElaZKciLvjj6Uscw==} engines: {node: '>=20'} - cspell-glob@9.2.1: - resolution: {integrity: sha512-CrT/6ld3rXhB36yWFjrx1SrMQzwDrGOLr+wYEnrWI719/LTYWWCiMFW7H+qhsJDTsR+ku8+OAmfRNBDXvh9mnQ==} + cspell-glob@9.4.0: + resolution: {integrity: sha512-Q87Suj9oXrhoKck15qWorCizBjMNxG/k3NjnhKIAMrF+PdUa1Mpl0MOD+hqV1Wvwh1UHcIMYCP3bR3XpBbNx+Q==} engines: {node: '>=20'} - cspell-grammar@9.2.1: - resolution: {integrity: sha512-10RGFG7ZTQPdwyW2vJyfmC1t8813y8QYRlVZ8jRHWzer9NV8QWrGnL83F+gTPXiKR/lqiW8WHmFlXR4/YMV+JQ==} + cspell-grammar@9.4.0: + resolution: {integrity: sha512-ie7OQ4Neflo+61bMzoLR7GtlZfMBAm2KL1U4iNqh15wUE5fDbvXeN15H5lu+gcO8BwYvC5wxZknw1x62/J8+3Q==} engines: {node: '>=20'} hasBin: true - cspell-io@9.2.1: - resolution: {integrity: sha512-v9uWXtRzB+RF/Mzg5qMzpb8/yt+1bwtTt2rZftkLDLrx5ybVvy6rhRQK05gFWHmWVtWEe0P/pIxaG2Vz92C8Ag==} + cspell-io@9.4.0: + resolution: {integrity: sha512-8w30dqlO54H9w6WGlvZhHI5kytVbF3bYPqKJAZLWKEO36L2mdpf6/abx/FA4yVLJ56wmH1x0N0ZK32wNRl5C6A==} engines: {node: '>=20'} - cspell-lib@9.2.1: - resolution: {integrity: sha512-KeB6NHcO0g1knWa7sIuDippC3gian0rC48cvO0B0B0QwhOxNxWVp8cSmkycXjk4ijBZNa++IwFjeK/iEqMdahQ==} + cspell-lib@9.4.0: + resolution: {integrity: sha512-ajjioE59IEDNUPawfaBpiMfGC32iKPkuYd4T9ftguuef8VvyKRifniiUi1nxwGgAhzSfxHvWs7qdT+29Pp5TMQ==} engines: {node: '>=20'} - cspell-trie-lib@9.2.1: - resolution: {integrity: sha512-qOtbL+/tUzGFHH0Uq2wi7sdB9iTy66QNx85P7DKeRdX9ZH53uQd7qC4nEk+/JPclx1EgXX26svxr0jTGISJhLw==} + cspell-trie-lib@9.4.0: + resolution: {integrity: sha512-bySJTm8XDiJAoC1MDo4lE/KpSNxydo13ZETC8TF7Hb3rbWI1c6o5eZ4+i/tkG3M94OvKV91+MeAvoMCe7GGgAw==} engines: {node: '>=20'} css-declaration-sorter@7.3.0: @@ -2265,8 +2270,8 @@ packages: css-line-break@2.1.0: resolution: {integrity: sha512-FHcKFCZcAha3LwfVBhCQbW2nCNbkZXn7KVUJcsT5/P8YmfsVja0FMPJr0B903j/E69HUphKiV9iQArX8SDYA4w==} - csstype@3.1.3: - resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + csstype@3.2.3: + resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==} damerau-levenshtein@1.0.8: resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} @@ -2374,13 +2379,13 @@ packages: ecdsa-sig-formatter@1.0.11: resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==} - echarts-jsx@0.5.4: - resolution: {integrity: sha512-avK1FhC8U0SLTEWxR9nytDxfxHrfrrkzb8G0O1ByVCPTy08SVOjZMjFhPMIE0IneymqTyPJCmN+xC67ihVmHnQ==} + echarts-jsx@0.6.0: + resolution: {integrity: sha512-x+Xl+SkIlWur4GZ2nKWpsvs7s2zLSGymifvMERUlxQ2tPdr16cDB1+YlahKuv0laO2bQET7T8OaRO6tqnaLeTg==} peerDependencies: react: '>=16' - echarts@5.6.0: - resolution: {integrity: sha512-oTbVTsXfKuEhxftHqL5xprgLoc0k7uScAwtryCgWF6hPYFLRwOUHiFmHGCBKP5NPFNkDVopOieyUqYGH8Fa3kA==} + echarts@6.0.0: + resolution: {integrity: sha512-Tte/grDQRiETQP4xz3iZWSvoHrkCQtwqd6hs+mifXcjrCuo2iKWbajFObuLJVBlDIJlOzgQPd1hsaKt/3+OMkQ==} editorjs-html@4.0.5: resolution: {integrity: sha512-ImQYxB3fNCJcd+nJ+Vbne/6PxidO1cYByNpu9nBDStVabfjVrMW65BuR+IEZfOii8VKYH+CW/lYDb2GDlzZtDg==} @@ -2396,11 +2401,11 @@ packages: engines: {node: '>=0.10.0'} hasBin: true - electron-to-chromium@1.5.234: - resolution: {integrity: sha512-RXfEp2x+VRYn8jbKfQlRImzoJU01kyDvVPBmG39eU2iuRVhuS6vQNocB8J0/8GrIMLnPzgz4eW6WiRnJkTuNWg==} + electron-to-chromium@1.5.266: + resolution: {integrity: sha512-kgWEglXvkEfMH7rxP5OSZZwnaDWT7J9EoZCujhnpLbfi0bbNtRkgdX2E3gt0Uer11c61qCYktB3hwkAS325sJg==} - emoji-regex@10.5.0: - resolution: {integrity: sha512-lb49vf1Xzfx080OKA0o6l8DQQpV+6Vg95zyCJX9VB/BqKYlhG7N4wgROUUHRA+ZPUefLnteQOad7z1kT2bV7bg==} + emoji-regex@10.6.0: + resolution: {integrity: sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==} emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} @@ -2478,10 +2483,10 @@ packages: resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} engines: {node: '>=12'} - eslint-config-next@15.5.4: - resolution: {integrity: sha512-BzgVVuT3kfJes8i2GHenC1SRJ+W3BTML11lAOYFOOPzrk2xp66jBOAGEFRw+3LkYCln5UzvFsLhojrshb5Zfaw==} + eslint-config-next@16.0.7: + resolution: {integrity: sha512-WubFGLFHfk2KivkdRGfx6cGSFhaQqhERRfyO8BRx+qiGPGp7WLKcPvYC4mdx1z3VhVRcrfFzczjjTrbJZOpnEQ==} peerDependencies: - eslint: ^7.23.0 || ^8.0.0 || ^9.0.0 + eslint: '>=9.0.0' typescript: '>=3.3.1' peerDependenciesMeta: typescript: @@ -2546,9 +2551,9 @@ packages: peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9 - eslint-plugin-react-hooks@5.2.0: - resolution: {integrity: sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==} - engines: {node: '>=10'} + eslint-plugin-react-hooks@7.0.1: + resolution: {integrity: sha512-O0d0m04evaNzEPoSW+59Mezf8Qt0InfgGIBJnpC0h3NH/WjUAR7BIKUfysC6todmtiZ/A0oUVS8Gce0WhBrHsA==} + engines: {node: '>=18'} peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 @@ -2575,8 +2580,8 @@ packages: resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@9.37.0: - resolution: {integrity: sha512-XyLmROnACWqSxiGYArdef1fItQd47weqB7iwtfr9JHwRrqIXZdcFMvvEcL9xHCmL0SNsOvF0c42lWyM1U5dgig==} + eslint@9.39.1: + resolution: {integrity: sha512-BhHmn2yNOFA9H9JmmIVKJmd288g9hrVRDkdoIgRCRuSySRUHH7r/DI6aAXW9T1WwUuY3DFgrcaqB+deURBLR5g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true peerDependencies: @@ -2621,8 +2626,8 @@ packages: estree-util-to-js@2.0.0: resolution: {integrity: sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==} - estree-util-value-to-estree@3.4.0: - resolution: {integrity: sha512-Zlp+gxis+gCfK12d3Srl2PdX2ybsEA8ZYy6vQGVQTNNYLEGRQQ56XB64bjemN8kxIKXP1nC9ip4Z+ILy9LGzvQ==} + estree-util-value-to-estree@3.5.0: + resolution: {integrity: sha512-aMV56R27Gv3QmfmF1MY12GWkGzzeAezAX+UplqHVASfjc9wNzI/X6hC0S9oxq61WT4aQesLGslWP9tKk6ghRZQ==} estree-util-visit@2.0.0: resolution: {integrity: sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==} @@ -2646,8 +2651,8 @@ packages: fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - fast-equals@5.3.2: - resolution: {integrity: sha512-6rxyATwPCkaFIL3JLqw8qXqMpIZ942pTX/tbQFkRsDGblS8tNGtlUauA/+mt6RUfqn/4MoEr+WDkYoIQbibWuQ==} + fast-equals@5.3.3: + resolution: {integrity: sha512-/boTcHZeIAQ2r/tL11voclBHDeP9WPxLt+tyAbVSyyXuUFyh0Tne7gJZTqGbxnvj79TjLdCXLOY7UIPhyG5MTw==} engines: {node: '>=6.0.0'} fast-glob@3.3.1: @@ -2682,15 +2687,12 @@ packages: picomatch: optional: true - fflate@0.8.2: - resolution: {integrity: sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==} - file-entry-cache@8.0.0: resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} engines: {node: '>=16.0.0'} - file-type@21.0.0: - resolution: {integrity: sha512-ek5xNX2YBYlXhiUXui3D/BXa3LdqPmoLJ7rqEx2bKJ7EAUEfmXgW0Das7Dc6Nr9MvqaOnIqiPV0mZk/r/UpNAg==} + file-type@21.1.1: + resolution: {integrity: sha512-ifJXo8zUqbQ/bLbl9sFoqHNTNWbnPY1COImFfM6CCy7z+E+jC1eY9YfOKkx0fckIg+VljAy2/87T61fp0+eEkg==} engines: {node: '>=20'} filelist@1.0.4: @@ -2757,9 +2759,9 @@ packages: resolution: {integrity: sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==} engines: {node: '>= 0.4'} - gensequence@7.0.0: - resolution: {integrity: sha512-47Frx13aZh01afHJTB3zTtKIlFI6vWY+MYCN9Qpew6i52rfKjnhCF/l1YlC8UmEMvvntZZ6z4PiCcmyuedR2aQ==} - engines: {node: '>=18'} + gensequence@8.0.8: + resolution: {integrity: sha512-omMVniXEXpdx/vKxGnPRoO2394Otlze28TyxECbFVyoSpZ9H3EO7lemjcB12OpQJzRW4e5tt/dL1rOxry6aMHg==} + engines: {node: '>=20'} gensync@1.0.0-beta.2: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} @@ -2784,8 +2786,8 @@ packages: resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} engines: {node: '>= 0.4'} - get-tsconfig@4.12.0: - resolution: {integrity: sha512-LScr2aNr2FbjAjZh2C6X6BxRx1/x+aTDExct/xyq2XKbYOiG5c0aK7pMsSuyc0brz3ibr/lbQiHD9jzt4lccJw==} + get-tsconfig@4.13.0: + resolution: {integrity: sha512-1VKTZJCwBrvbd+Wn3AOgQP/2Av+TfTCOlE4AcRJE72W1ksZXbAx8PPBR9RzgTeSPzlPMHrbANMH3LbltH73wxQ==} glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} @@ -2811,6 +2813,10 @@ packages: resolution: {integrity: sha512-ob/2LcVVaVGCYN+r14cnwnoDPUufjiYgSqRhiFD0Q1iI4Odora5RE8Iv1D24hAz5oMophRGkGz+yuvQmmUMnMw==} engines: {node: '>=18'} + globals@16.5.0: + resolution: {integrity: sha512-c/c15i26VrJ4IRt5Z89DnIzCGDn9EcebibhAOjw5ibqEHsE1wLUgkPn9RDmNcUKyU87GeaL633nyJ+pplFR2ZQ==} + engines: {node: '>=18'} + globalthis@1.0.4: resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} engines: {node: '>= 0.4'} @@ -2869,6 +2875,12 @@ packages: hast-util-whitespace@3.0.0: resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} + hermes-estree@0.25.1: + resolution: {integrity: sha512-0wUoCcLp+5Ev5pDW2OriHC2MJCbwLwuRx+gAqMTOkGKJJiBCLjtrvy4PWUGn6MIVefecRpzoOZ/UV6iGdOr+Cw==} + + hermes-parser@0.25.1: + resolution: {integrity: sha512-6pEjquH3rqaI6cYAXYPcz9MS4rY6R4ngRgrgfDshRptUZIc3lw0MCIJIGDj9++mfySOuPTHB4nrSW99BCvOPIA==} + html2canvas@1.4.1: resolution: {integrity: sha512-fPU6BHNpsyIhr8yyMpTLLxAbkaK8ArIBcmZIRiBLiDhjeqvXolaEmDGmELFuX9I4xDcaKKcJl+TKZLqruBbmWA==} engines: {node: '>=8.0.0'} @@ -2881,8 +2893,8 @@ packages: resolution: {integrity: sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==} engines: {node: '>= 0.6'} - http-errors@2.0.0: - resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} + http-errors@2.0.1: + resolution: {integrity: sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==} engines: {node: '>= 0.8'} husky@9.1.7: @@ -2926,8 +2938,8 @@ packages: engines: {node: '>=0.10.0'} hasBin: true - immutable@5.1.3: - resolution: {integrity: sha512-+chQdDfvscSF1SJqv2gn4SRO2ZyS3xL3r7IW/wWEEzrzLisnOlKiQu5ytC/BVNcS15C39WT2Hg/bjKjDMcu+zg==} + immutable@5.1.4: + resolution: {integrity: sha512-p6u1bG3YSnINT5RQmx/yRZBpenIl30kVxkTLDyHLIMk0gict704Q9n+thfDI7lTRm9vXdDYutVzXhzcThxTnXA==} import-fresh@3.3.1: resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} @@ -2955,8 +2967,8 @@ packages: resolution: {integrity: sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - inline-style-parser@0.2.4: - resolution: {integrity: sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==} + inline-style-parser@0.2.7: + resolution: {integrity: sha512-Nb2ctOyNR8DqQoR0OwRG95uNWIC0C1lCgf5Naz5H6Ji72KZ8OcFZLz2P5sNgwlyoJ8Yif11oMuYs5pBQa86csA==} internal-slot@1.1.0: resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} @@ -3163,8 +3175,8 @@ packages: js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + js-yaml@4.1.1: + resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==} hasBin: true jsesc@3.1.0: @@ -3203,23 +3215,24 @@ packages: resolution: {integrity: sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==} engines: {node: '>=0.10.0'} - jsonwebtoken@9.0.2: - resolution: {integrity: sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==} + jsonwebtoken@9.0.3: + resolution: {integrity: sha512-MT/xP0CrubFRNLNKvxJ2BYfy53Zkm++5bX9dtuPbqAeQpTVe0MQTFhao8+Cp//EmJp244xt6Drw/GVEGCUj40g==} engines: {node: '>=12', npm: '>=6'} jsx-ast-utils@3.3.5: resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} engines: {node: '>=4.0'} - jwa@1.4.2: - resolution: {integrity: sha512-eeH5JO+21J78qMvTIDdBXidBd6nG2kZjg5Ohz/1fpa28Z4CcsWUzJ1ZZyFq/3z3N17aZy+ZuBoHljASbL1WfOw==} + jwa@2.0.1: + resolution: {integrity: sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg==} - jws@3.2.2: - resolution: {integrity: sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==} + jws@4.0.1: + resolution: {integrity: sha512-EKI/M/yqPncGUUh44xz0PxSidXFr/+r0pA70+gIYhjv+et7yxM+s29Y+VGDkovRofQem0fs7Uvf4+YmAdyRduA==} keygrip@1.1.0: resolution: {integrity: sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==} engines: {node: '>= 0.6'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} @@ -3231,8 +3244,8 @@ packages: koa-compose@4.1.0: resolution: {integrity: sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw==} - koa@3.0.1: - resolution: {integrity: sha512-oDxVkRwPOHhGlxKIDiDB2h+/l05QPtefD7nSqRgDfZt8P+QVYFWjfeK8jANf5O2YXjk8egd7KntvXKYx82wOag==} + koa@3.1.1: + resolution: {integrity: sha512-KDDuvpfqSK0ZKEO2gCPedNjl5wYpfj+HNiuVRlbhd1A88S3M0ySkdf2V/EJ4NWt5dwh5PXCdcenrKK2IQJAxsg==} engines: {node: '>= 18'} koajax@3.1.2: @@ -3280,13 +3293,13 @@ packages: license-filter@0.2.5: resolution: {integrity: sha512-xzKCeI9ax0k6/qALLhyXoJq1sbnmGHhjAX1AHr9ItDL9LF4jv97h64Z9iDyNTBQdhdr3BTI80VsWwTp0wpM1GQ==} - lint-staged@16.2.4: - resolution: {integrity: sha512-Pkyr/wd90oAyXk98i/2KwfkIhoYQUMtss769FIT9hFM5ogYZwrk+GRE46yKXSg2ZGhcJ1p38Gf5gmI5Ohjg2yg==} + lint-staged@16.2.7: + resolution: {integrity: sha512-lDIj4RnYmK7/kXMya+qJsmkRFkGolciXjrsZ6PC25GdTfWOAWetR0ZbsNXRAj1EHHImRSalc+whZFg56F5DVow==} engines: {node: '>=20.17'} hasBin: true - listr2@9.0.4: - resolution: {integrity: sha512-1wd/kpAdKRLwv7/3OKC8zZ5U8e/fajCfWMxacUvB79S5nLrYGPtUI/8chMQhn3LQjsRVErTb9i1ECAwW0ZIHnQ==} + listr2@9.0.5: + resolution: {integrity: sha512-ME4Fb83LgEgwNw96RKNvKV4VTLuXfoKudAmm2lP8Kk87KaMK0/Xrx/aAkMWmT8mDb+3MlFDspfbCs7adjRxA2g==} engines: {node: '>=20.0.0'} loader-utils@2.0.4: @@ -3374,8 +3387,8 @@ packages: engines: {node: '>= 18'} hasBin: true - marked@16.4.0: - resolution: {integrity: sha512-CTPAcRBq57cn3R8n3hwc2REddc28hjR7RzDXQ+lXLmMJYqn20BaI2cGw6QjgZGIgVfp2Wdfw4aMzgNteQ6qJgQ==} + marked@17.0.1: + resolution: {integrity: sha512-boeBdiS0ghpWcSwoNm/jJBwdpFaMnZWRzjA6SkUMYb40SVaN1x7mmfGKp0jvexGcx+7y2La5zRZsYFZI6Qpypg==} engines: {node: '>= 20'} hasBin: true @@ -3404,8 +3417,8 @@ packages: mdast-util-phrasing@4.1.0: resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} - mdast-util-to-hast@13.2.0: - resolution: {integrity: sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==} + mdast-util-to-hast@13.2.1: + resolution: {integrity: sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==} mdast-util-to-markdown@2.1.2: resolution: {integrity: sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==} @@ -3531,9 +3544,9 @@ packages: resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} engines: {node: '>= 0.6'} - mime-types@3.0.1: - resolution: {integrity: sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==} - engines: {node: '>= 0.6'} + mime-types@3.0.2: + resolution: {integrity: sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==} + engines: {node: '>=18'} mime@1.6.0: resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} @@ -3549,8 +3562,8 @@ packages: resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==} engines: {node: '>=18'} - minimatch@10.0.3: - resolution: {integrity: sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==} + minimatch@10.1.1: + resolution: {integrity: sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==} engines: {node: 20 || >=22} minimatch@3.1.2: @@ -3567,16 +3580,16 @@ packages: minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - mobx-github@0.6.0: - resolution: {integrity: sha512-Md65hu+w82lJ982HlPSczb6g2Ipnrs6vBeiPEYAf93HEEzC5tBNrQyjicwXc1f908AKfhoR4mAwcYEK2fk9H4w==} + mobx-github@0.6.2: + resolution: {integrity: sha512-MlqjAKkb1DTZl8ruuOx+8GI/mFbL/C5uXxtW+D0UaCWTNutC5JCV/xzzfGBKZuBWX4Y+I9fBUzw7SVnYukNElA==} mobx-i18n@0.7.2: resolution: {integrity: sha512-W1W2/nd/0ah6hqBJqpIyAILyvqaNAVwpACH3sm0PeQ5/+0wYEY06+g4WPFQX4y5QNTCr46zgoiQnJ+l8dPXDMQ==} peerDependencies: mobx: '>=6.11' - mobx-lark@2.4.2: - resolution: {integrity: sha512-vYEl1SXss7sx9GgzJPLtjBr+sYPZdc32k+IdjQ7yOo7ZLr9gX4XWPvwaNXGw4OL+AmQBLPp4iWD93S40O3cy/A==} + mobx-lark@2.5.0: + resolution: {integrity: sha512-A9VMj+Us6M2YHIIHMkUuKjYW+Yg6hkbIlqzZs5o25FKe/aavjB31HlDvf9s1wVjgfer1t42Bw8TsG3Oo8n7RHg==} peerDependencies: react: '>=16' @@ -3612,13 +3625,13 @@ packages: react-native: optional: true - mobx-restful-table@2.5.4: - resolution: {integrity: sha512-SZ19YJZ4dDwk8pJ3d2O26C8aZ7bVcaaSCQ+66b7q2zx55DHHjpWM9MkEJZZNwLJaQGisCTcQ0OKE8HN+YGr10A==} + mobx-restful-table@2.6.3: + resolution: {integrity: sha512-yGNwWD0RVe3lLI1ZYeqy2QhwQh7oMl1FEq6fkXjOVe2kBvmua7qf5RWF5/Uq1om3FepiZpqT4nUvXPvoxc/VJA==} peerDependencies: react: '>=16.8' - mobx-restful@2.1.3: - resolution: {integrity: sha512-IGIT6X83CXmxqNkOQZnpXp6AzK9AI+/VR579ssntB/l+kgzVJP5otiX7v3eCukYsSCIkGkH2FJEe84+uIibYpg==} + mobx-restful@2.1.4: + resolution: {integrity: sha512-yIxWQTeTQCy47VuS5EEwri2bXuGlw8KiUI7yNYcQ8PqrUVSCVUGjoiaUHPPtz4wSjretAzVmIu07cP1fyHpVDg==} peerDependencies: mobx: '>=6.11' @@ -3660,12 +3673,12 @@ packages: next-pwa@5.6.0: resolution: {integrity: sha512-XV8g8C6B7UmViXU8askMEYhWwQ4qc/XqJGnexbLV68hzKaGHZDMtHsm2TNxFcbR7+ypVuth/wwpiIlMwpRJJ5A==} peerDependencies: - next: ^15.5.4 + next: ^16.0.7 next-ssr-middleware@1.0.3: resolution: {integrity: sha512-vV3W7bcNVrjPRov2N+IxMHmO9WF/fKezW25PJsm/Av3a5vGszKW6SDon07+/HZ9qsx5feIVeiXqdt20r/SMi9g==} peerDependencies: - next: ^15.5.4 + next: ^16.0.7 react: '>=18' next-with-less@3.0.1: @@ -3673,11 +3686,11 @@ packages: peerDependencies: less: '*' less-loader: '>= 7.0.0' - next: ^15.5.4 + next: ^16.0.7 - next@15.5.4: - resolution: {integrity: sha512-xH4Yjhb82sFYQfY3vbkJfgSDgXvBB6a8xPs9i35k6oZJRoQRihZH+4s9Yo2qsWpzBmZ3lPXaJ2KPXLfkvW4LnA==} - engines: {node: ^18.18.0 || ^19.8.0 || >= 20.0.0} + next@16.0.7: + resolution: {integrity: sha512-3mBRJyPxT4LOxAJI6IsXeFtKfiJUbjCLgvXO02fV8Wy/lIhPvP94Fe7dGhUgHXcQy4sSuYwQNcOLhIfOm0rL0A==} + engines: {node: '>=20.9.0'} hasBin: true peerDependencies: '@opentelemetry/api': ^1.1.0 @@ -3699,8 +3712,8 @@ packages: node-addon-api@7.1.1: resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} - node-releases@2.0.23: - resolution: {integrity: sha512-cCmFDMSm26S6tQSDpBCg/NR8NENrVPhAJSf+XbxBG4rPFaaonlEoE9wHQmun+cls499TQGSb7ZyPBRlzgKfpeg==} + node-releases@2.0.27: + resolution: {integrity: sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==} object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} @@ -3895,8 +3908,8 @@ packages: peerDependencies: prettier: 3.x - prettier@3.6.2: - resolution: {integrity: sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==} + prettier@3.7.4: + resolution: {integrity: sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA==} engines: {node: '>=14'} hasBin: true @@ -3936,8 +3949,8 @@ packages: randombytes@2.1.0: resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} - raw-body@2.5.2: - resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} + raw-body@2.5.3: + resolution: {integrity: sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==} engines: {node: '>= 0.8'} react-bootstrap-editor@2.1.1: @@ -3956,10 +3969,10 @@ packages: '@types/react': optional: true - react-dom@19.2.0: - resolution: {integrity: sha512-UlbRu4cAiGaIewkPyiRGJk0imDN2T3JjieT6spoL2UeSf5od4n5LB/mQ4ejmxhCFT1tYe8IvaFulzynWovsEFQ==} + react-dom@19.2.1: + resolution: {integrity: sha512-ibrK8llX2a4eOskq1mXKu/TGZj9qzomO+sNfO98M6d9zIPOEhlBkMkBUBLd1vgS0gQsLDBzA+8jJBVXDnfHmJg==} peerDependencies: - react: ^19.2.0 + react: ^19.2.1 react-editor-js@2.1.0: resolution: {integrity: sha512-unI9D2pTH/2gBenc6LgCXJm8iqnrzB71CHgfjQmaB+lGR0Njx+ZXydgUQm1VofMmvF6vcCNVDE1Eb47zQbm14g==} @@ -3996,8 +4009,8 @@ packages: react: ^16 || ^17 || ^18 react-dom: ^16 || ^17 || ^18 - react@19.2.0: - resolution: {integrity: sha512-tmbWg6W31tQLeB5cdIBOicJDJRR2KzXsV7uSK9iNfLWQ5bIZfxuPEHp7M8wiHyHnn0DD1i7w3Zmin0FtkrwoCQ==} + react@19.2.1: + resolution: {integrity: sha512-DGrYcCWK7tvYMnWh79yrPHt+vdx9tY+1gPZa7nJQtO/p8bLTDaHp4dzwEhQB7pZ4Xe3ok4XKuEPrVuc+wlpkmw==} engines: {node: '>=0.10.0'} readdirp@4.1.2: @@ -4080,8 +4093,8 @@ packages: resolve-pkg-maps@1.0.0: resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} - resolve@1.22.10: - resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==} + resolve@1.22.11: + resolution: {integrity: sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==} engines: {node: '>= 0.4'} hasBin: true @@ -4137,13 +4150,13 @@ packages: safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - sass@1.93.2: - resolution: {integrity: sha512-t+YPtOQHpGW1QWsh1CHQ5cPIr9lbbGZLZnbihP/D/qZj/yuV68m8qarcV17nvkOX81BCrvzAlq2klCQFZghyTg==} + sass@1.94.2: + resolution: {integrity: sha512-N+7WK20/wOr7CzA2snJcUSSNTCzeCGUTFY3OgeQP3mZ1aj9NMQ0mSTXwlrnd89j33zzQJGqIN52GIOmYrfq46A==} engines: {node: '>=14.0.0'} hasBin: true - sax@1.4.1: - resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} + sax@1.4.3: + resolution: {integrity: sha512-yqYn1JhPczigF94DMS+shiDMjDowYO6y9+wB/4WgO0Y19jWYk0lQ4tuG5KI7kj4FTp1wxPj5IFfcrz/s1c3jjQ==} scheduler@0.27.0: resolution: {integrity: sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==} @@ -4194,8 +4207,8 @@ packages: resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==} engines: {node: '>=8'} - sharp@0.34.4: - resolution: {integrity: sha512-FUH39xp3SBPnxWvd5iib1X8XY7J0K0X7d93sie9CJg2PO8/7gmg89Nve6OjItK53/MlAushNNxteBYfM6DEuoA==} + sharp@0.34.5: + resolution: {integrity: sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} shebang-command@2.0.0: @@ -4234,8 +4247,8 @@ packages: resolution: {integrity: sha512-iOBWFgUX7caIZiuutICxVgX1SdxwAVFFKwt1EvMYYec/NWO5meOJ6K5uQxhrYBdQJne4KxiqZc+KptFOWFSI9w==} engines: {node: '>=18'} - smol-toml@1.4.2: - resolution: {integrity: sha512-rInDH6lCNiEyn3+hH8KVGFdbjc099j47+OSgbMrfDYX1CmXLfdKd7qi6IfcWj2wFxvSVkuI46M+wPGYfEOEj6g==} + smol-toml@1.5.2: + resolution: {integrity: sha512-QlaZEqcAH3/RtNyet1IPIYPsEWAaYyXXv1Krsi+1L/QHppjX4Ifm8MQsBISz9vE8cHicIq3clogsheili5vhaQ==} engines: {node: '>= 18'} source-list-map@2.0.1: @@ -4275,10 +4288,6 @@ packages: resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} engines: {node: '>= 0.6'} - statuses@2.0.1: - resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} - engines: {node: '>= 0.8'} - statuses@2.0.2: resolution: {integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==} engines: {node: '>= 0.8'} @@ -4349,11 +4358,11 @@ packages: resolution: {integrity: sha512-KIy5nylvC5le1OdaaoCJ07L+8iQzJHGH6pWDuzS+d07Cu7n1MZ2x26P8ZKIWfbK02+XIL8Mp4RkWeqdUCrDMfg==} engines: {node: '>=18'} - style-to-js@1.1.18: - resolution: {integrity: sha512-JFPn62D4kJaPTnhFUI244MThx+FEGbi+9dw1b9yBBQ+1CZpV7QAT8kUtJ7b7EUNdHajjF/0x8fT+16oLJoojLg==} + style-to-js@1.1.21: + resolution: {integrity: sha512-RjQetxJrrUJLQPHbLku6U/ocGtzyjbJMP9lCNK7Ag0CNh690nSH8woqWH9u16nMjYBAok+i7JO1NP2pOy8IsPQ==} - style-to-object@1.0.11: - resolution: {integrity: sha512-5A560JmXr7wDyGLK12Nq/EYS38VkGlglVzkis1JEdbGWSnbQIEhZzTJhzURXN5/8WwwFCs/f/VVcmkTppbXLow==} + style-to-object@1.0.14: + resolution: {integrity: sha512-LIN7rULI0jBscWQYaSswptyderlarFkjQ+t79nzty8tcIAceVomEVlLzH5VP4Cmsv6MtKhs7qaAiwlcp+Mgaxw==} styled-jsx@5.1.6: resolution: {integrity: sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==} @@ -4392,8 +4401,8 @@ packages: resolution: {integrity: sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==} engines: {node: '>=10'} - terser-webpack-plugin@5.3.14: - resolution: {integrity: sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw==} + terser-webpack-plugin@5.3.15: + resolution: {integrity: sha512-PGkOdpRFK+rb1TzVz+msVhw4YMRT9txLF4kRqvJhGhCM324xuR3REBSHALN+l+sAhKUmz0aotnjp5D+P83mLhQ==} engines: {node: '>= 10.13.0'} peerDependencies: '@swc/core': '*' @@ -4408,8 +4417,8 @@ packages: uglify-js: optional: true - terser@5.44.0: - resolution: {integrity: sha512-nIVck8DK+GM/0Frwd+nIhZ84pR/BX7rmXMfYwyg+Sri5oGVE99/E3KvXqpC2xHFxyqXyGHTKBSioxxplrO4I4w==} + terser@5.44.1: + resolution: {integrity: sha512-t/R3R/n0MSwnnazuPpPNVO60LX0SKL45pyl9YlvxIdkH0Of7D5qM2EVe+yASRIlY5pZ73nclYJfNANGWPwFDZw==} engines: {node: '>=10'} hasBin: true @@ -4466,8 +4475,8 @@ packages: turndown-plugin-gfm@1.0.2: resolution: {integrity: sha512-vwz9tfvF7XN/jE0dGoBei3FXWuvll78ohzCZQuOb+ZjWrs3a0XhQVomJEb2Qh4VHTPNRO4GPZh0V7VRbiWwkRg==} - turndown@7.2.1: - resolution: {integrity: sha512-7YiPJw6rLClQL3oUKN3KgMaXeJJ2lAyZItclgKDurqnH61so4k4IH/qwmMva0zpuJc/FhRExBBnk7EbeFANlgQ==} + turndown@7.2.2: + resolution: {integrity: sha512-1F7db8BiExOKxjSMU2b7if62D/XOyQyZbPKq/nUwopfgnHlqXHqQ0lvfUTeUIr1lZJzOPFn43dODyMSIfvWRKQ==} type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} @@ -4504,8 +4513,8 @@ packages: typed.js@2.1.0: resolution: {integrity: sha512-bDuXEf7YcaKN4g08NMTUM6G90XU25CK3bh6U0THC/Mod/QPKlEt9g/EjvbYB8x2Qwr2p6J6I3NrsoYaVnY6wsQ==} - typescript-eslint@8.46.0: - resolution: {integrity: sha512-6+ZrB6y2bT2DX3K+Qd9vn7OFOJR+xSLDj+Aw/N3zBwUt27uTw2sw2TE2+UcY1RiyBZkaGbTkVg9SSdPNUG6aUw==} + typescript-eslint@8.48.1: + resolution: {integrity: sha512-FbOKN1fqNoXp1hIl5KYpObVrp0mCn+CLgn479nmu2IsRMrx2vyv74MmsBLVlhg8qVwNFGbXSp8fh1zp8pEoC2A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -4564,8 +4573,8 @@ packages: resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} engines: {node: '>=8'} - unist-util-is@6.0.0: - resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} + unist-util-is@6.0.1: + resolution: {integrity: sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==} unist-util-mdx-define@1.1.2: resolution: {integrity: sha512-9ncH7i7TN5Xn7/tzX5bE3rXgz1X/u877gYVAUB3mLeTKYJmQHmqKTDBi6BTGXV7AeolBCI9ErcVsOt2qryoD0g==} @@ -4579,8 +4588,8 @@ packages: unist-util-stringify-position@4.0.0: resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} - unist-util-visit-parents@6.0.1: - resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} + unist-util-visit-parents@6.0.2: + resolution: {integrity: sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==} unist-util-visit@5.0.0: resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} @@ -4600,8 +4609,8 @@ packages: resolution: {integrity: sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==} engines: {node: '>=4'} - update-browserslist-db@1.1.3: - resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==} + update-browserslist-db@1.2.2: + resolution: {integrity: sha512-E85pfNzMQ9jpKkA7+TJAi4TJN+tBCuWh5rUcS/sv6cFi+1q9LYDwDI5dpUL0u/73EElyQ8d3TEaeW4sPedBqYA==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' @@ -4640,8 +4649,8 @@ packages: resolution: {integrity: sha512-0rYDzGOh9EZpig92umN5g5D/9A1Kff7k0/mzPSSCY8jEQeYkgRMoY7LhbXtUCWzLCMX0TUE9aoHkjFNB7D9pfA==} engines: {node: '>= 8'} - web-utility@4.6.2: - resolution: {integrity: sha512-iyZsM2IOUHaoNJZfvrEBhfjIYsVEx3KC9bI6DHv6rXUmVTmFEW1Uq3DraWUnbI5NAp+g6+bgrtXwXtydWyuyMw==} + web-utility@4.6.4: + resolution: {integrity: sha512-nPZfFROLtQ6VJaoT0DKEtJ4YfBffg8altB7rl99XgscJPXZ5e7Mxj+ovqdLmjOTdAtEuCexKiyuxzg/m6qHcCg==} peerDependencies: element-internals-polyfill: '>=1' typescript: '>=4.1' @@ -4751,8 +4760,8 @@ packages: yallist@3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - yaml@2.8.1: - resolution: {integrity: sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==} + yaml@2.8.2: + resolution: {integrity: sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==} engines: {node: '>= 14.6'} hasBin: true @@ -4760,8 +4769,17 @@ packages: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} - zrender@5.6.1: - resolution: {integrity: sha512-OFXkDJKcrlx5su2XbzJvj/34Q3m6PvyCZkVPHGYpcCJ52ek4U/ymZyfuV1nKE23AyBJ51E/6Yr0mhZ7xGTO4ag==} + zod-validation-error@4.0.2: + resolution: {integrity: sha512-Q6/nZLe6jxuU80qb/4uJ4t5v2VEZ44lzQjPDhYJNztRQ4wyWc6VF3D3Kb/fAuPetZQnhS3hnajCf9CsWesghLQ==} + engines: {node: '>=18.0.0'} + peerDependencies: + zod: ^3.25.0 || ^4.0.0 + + zod@4.1.13: + resolution: {integrity: sha512-AvvthqfqrAhNH9dnfmrfKzX5upOdjUVJYFqNSlkmGf64gRaTzlPwz99IHYnVs28qYAybvAlBV+H7pn0saFY4Ig==} + + zrender@6.0.0: + resolution: {integrity: sha512-41dFXEEXuJpNecuUQq6JlbybmnHaqqpGlbH1yxnA5V9MMP4SbohSVZsJIwz+zdjQXSSlR1Vc34EgH1zxyTDvhg==} zwitch@2.0.4: resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} @@ -4777,23 +4795,23 @@ snapshots: '@babel/code-frame@7.27.1': dependencies: - '@babel/helper-validator-identifier': 7.27.1 + '@babel/helper-validator-identifier': 7.28.5 js-tokens: 4.0.0 picocolors: 1.1.1 - '@babel/compat-data@7.28.4': {} + '@babel/compat-data@7.28.5': {} - '@babel/core@7.28.4': + '@babel/core@7.28.5': dependencies: '@babel/code-frame': 7.27.1 - '@babel/generator': 7.28.3 + '@babel/generator': 7.28.5 '@babel/helper-compilation-targets': 7.27.2 - '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.4) + '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.5) '@babel/helpers': 7.28.4 - '@babel/parser': 7.28.4 + '@babel/parser': 7.28.5 '@babel/template': 7.27.2 - '@babel/traverse': 7.28.4 - '@babel/types': 7.28.4 + '@babel/traverse': 7.28.5 + '@babel/types': 7.28.5 '@jridgewell/remapping': 2.3.5 convert-source-map: 2.0.0 debug: 4.4.3 @@ -4803,680 +4821,680 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/generator@7.28.3': + '@babel/generator@7.28.5': dependencies: - '@babel/parser': 7.28.4 - '@babel/types': 7.28.4 + '@babel/parser': 7.28.5 + '@babel/types': 7.28.5 '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 jsesc: 3.1.0 '@babel/helper-annotate-as-pure@7.27.3': dependencies: - '@babel/types': 7.28.4 + '@babel/types': 7.28.5 '@babel/helper-compilation-targets@7.27.2': dependencies: - '@babel/compat-data': 7.28.4 + '@babel/compat-data': 7.28.5 '@babel/helper-validator-option': 7.27.1 - browserslist: 4.26.3 + browserslist: 4.28.1 lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-create-class-features-plugin@7.28.3(@babel/core@7.28.4)': + '@babel/helper-create-class-features-plugin@7.28.5(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-member-expression-to-functions': 7.27.1 + '@babel/helper-member-expression-to-functions': 7.28.5 '@babel/helper-optimise-call-expression': 7.27.1 - '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.4) + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.5) '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/traverse': 7.28.4 + '@babel/traverse': 7.28.5 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/helper-create-regexp-features-plugin@7.27.1(@babel/core@7.28.4)': + '@babel/helper-create-regexp-features-plugin@7.28.5(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-annotate-as-pure': 7.27.3 regexpu-core: 6.4.0 semver: 6.3.1 - '@babel/helper-define-polyfill-provider@0.6.5(@babel/core@7.28.4)': + '@babel/helper-define-polyfill-provider@0.6.5(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-plugin-utils': 7.27.1 debug: 4.4.3 lodash.debounce: 4.0.8 - resolve: 1.22.10 + resolve: 1.22.11 transitivePeerDependencies: - supports-color '@babel/helper-globals@7.28.0': {} - '@babel/helper-member-expression-to-functions@7.27.1': + '@babel/helper-member-expression-to-functions@7.28.5': dependencies: - '@babel/traverse': 7.28.4 - '@babel/types': 7.28.4 + '@babel/traverse': 7.28.5 + '@babel/types': 7.28.5 transitivePeerDependencies: - supports-color '@babel/helper-module-imports@7.27.1': dependencies: - '@babel/traverse': 7.28.4 - '@babel/types': 7.28.4 + '@babel/traverse': 7.28.5 + '@babel/types': 7.28.5 transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.28.3(@babel/core@7.28.4)': + '@babel/helper-module-transforms@7.28.3(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-module-imports': 7.27.1 - '@babel/helper-validator-identifier': 7.27.1 - '@babel/traverse': 7.28.4 + '@babel/helper-validator-identifier': 7.28.5 + '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color '@babel/helper-optimise-call-expression@7.27.1': dependencies: - '@babel/types': 7.28.4 + '@babel/types': 7.28.5 '@babel/helper-plugin-utils@7.27.1': {} - '@babel/helper-remap-async-to-generator@7.27.1(@babel/core@7.28.4)': + '@babel/helper-remap-async-to-generator@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-wrap-function': 7.28.3 - '@babel/traverse': 7.28.4 + '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color - '@babel/helper-replace-supers@7.27.1(@babel/core@7.28.4)': + '@babel/helper-replace-supers@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-member-expression-to-functions': 7.27.1 + '@babel/core': 7.28.5 + '@babel/helper-member-expression-to-functions': 7.28.5 '@babel/helper-optimise-call-expression': 7.27.1 - '@babel/traverse': 7.28.4 + '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color '@babel/helper-skip-transparent-expression-wrappers@7.27.1': dependencies: - '@babel/traverse': 7.28.4 - '@babel/types': 7.28.4 + '@babel/traverse': 7.28.5 + '@babel/types': 7.28.5 transitivePeerDependencies: - supports-color '@babel/helper-string-parser@7.27.1': {} - '@babel/helper-validator-identifier@7.27.1': {} + '@babel/helper-validator-identifier@7.28.5': {} '@babel/helper-validator-option@7.27.1': {} '@babel/helper-wrap-function@7.28.3': dependencies: '@babel/template': 7.27.2 - '@babel/traverse': 7.28.4 - '@babel/types': 7.28.4 + '@babel/traverse': 7.28.5 + '@babel/types': 7.28.5 transitivePeerDependencies: - supports-color '@babel/helpers@7.28.4': dependencies: '@babel/template': 7.27.2 - '@babel/types': 7.28.4 + '@babel/types': 7.28.5 - '@babel/parser@7.28.4': + '@babel/parser@7.28.5': dependencies: - '@babel/types': 7.28.4 + '@babel/types': 7.28.5 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.28.5(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/traverse': 7.28.4 + '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color - '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/plugin-transform-optional-chaining': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-transform-optional-chaining': 7.28.5(@babel/core@7.28.5) transitivePeerDependencies: - supports-color - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.28.3(@babel/core@7.28.4)': + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.28.3(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/traverse': 7.28.4 + '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color - '@babel/plugin-proposal-decorators@7.28.0(@babel/core@7.28.4)': + '@babel/plugin-proposal-decorators@7.28.0(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.28.4) + '@babel/core': 7.28.5 + '@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.28.5) '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-decorators': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-syntax-decorators': 7.27.1(@babel/core@7.28.5) transitivePeerDependencies: - supports-color - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.28.4)': + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 - '@babel/plugin-syntax-decorators@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-syntax-decorators@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-import-assertions@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-syntax-import-assertions@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.28.4)': + '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.4) + '@babel/core': 7.28.5 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.5) '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-arrow-functions@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-arrow-functions@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-async-generator-functions@7.28.0(@babel/core@7.28.4)': + '@babel/plugin-transform-async-generator-functions@7.28.0(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.28.4) - '@babel/traverse': 7.28.4 + '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.28.5) + '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-async-to-generator@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-async-to-generator@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-module-imports': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.28.4) + '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.28.5) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-block-scoped-functions@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-block-scoped-functions@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-block-scoping@7.28.4(@babel/core@7.28.4)': + '@babel/plugin-transform-block-scoping@7.28.5(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-class-properties@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-class-properties@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.28.4) + '@babel/core': 7.28.5 + '@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.28.5) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-class-static-block@7.28.3(@babel/core@7.28.4)': + '@babel/plugin-transform-class-static-block@7.28.3(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.28.4) + '@babel/core': 7.28.5 + '@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.28.5) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-classes@7.28.4(@babel/core@7.28.4)': + '@babel/plugin-transform-classes@7.28.4(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-globals': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.4) - '@babel/traverse': 7.28.4 + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.5) + '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-computed-properties@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-computed-properties@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 '@babel/template': 7.27.2 - '@babel/plugin-transform-destructuring@7.28.0(@babel/core@7.28.4)': + '@babel/plugin-transform-destructuring@7.28.5(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/traverse': 7.28.4 + '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-dotall-regex@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-dotall-regex@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.4) + '@babel/core': 7.28.5 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.5) '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-duplicate-keys@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-duplicate-keys@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.4) + '@babel/core': 7.28.5 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.5) '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-dynamic-import@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-dynamic-import@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-explicit-resource-management@7.28.0(@babel/core@7.28.4)': + '@babel/plugin-transform-explicit-resource-management@7.28.0(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-destructuring': 7.28.0(@babel/core@7.28.4) + '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.28.5) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-exponentiation-operator@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-exponentiation-operator@7.28.5(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-export-namespace-from@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-export-namespace-from@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-for-of@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-for-of@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-function-name@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-function-name@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-plugin-utils': 7.27.1 - '@babel/traverse': 7.28.4 + '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-json-strings@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-json-strings@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-literals@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-literals@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-logical-assignment-operators@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-logical-assignment-operators@7.28.5(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-member-expression-literals@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-member-expression-literals@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-modules-amd@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-modules-amd@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.4) + '@babel/core': 7.28.5 + '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.5) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-commonjs@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-modules-commonjs@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.4) + '@babel/core': 7.28.5 + '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.5) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-systemjs@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-modules-systemjs@7.28.5(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.4) + '@babel/core': 7.28.5 + '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.5) '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-validator-identifier': 7.27.1 - '@babel/traverse': 7.28.4 + '@babel/helper-validator-identifier': 7.28.5 + '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-umd@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-modules-umd@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.4) + '@babel/core': 7.28.5 + '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.5) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-named-capturing-groups-regex@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-named-capturing-groups-regex@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.4) + '@babel/core': 7.28.5 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.5) '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-new-target@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-new-target@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-nullish-coalescing-operator@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-nullish-coalescing-operator@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-numeric-separator@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-numeric-separator@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-object-rest-spread@7.28.4(@babel/core@7.28.4)': + '@babel/plugin-transform-object-rest-spread@7.28.4(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-destructuring': 7.28.0(@babel/core@7.28.4) - '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.28.4) - '@babel/traverse': 7.28.4 + '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.28.5) + '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.28.5) + '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-object-super@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-object-super@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.4) + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.5) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-optional-catch-binding@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-optional-catch-binding@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-optional-chaining@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-optional-chaining@7.28.5(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-parameters@7.27.7(@babel/core@7.28.4)': + '@babel/plugin-transform-parameters@7.27.7(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-private-methods@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-private-methods@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.28.4) + '@babel/core': 7.28.5 + '@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.28.5) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-private-property-in-object@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-private-property-in-object@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.28.4) + '@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.28.5) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-property-literals@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-property-literals@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-react-display-name@7.28.0(@babel/core@7.28.4)': + '@babel/plugin-transform-react-display-name@7.28.0(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-react-jsx-development@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-react-jsx-development@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 - '@babel/plugin-transform-react-jsx': 7.27.1(@babel/core@7.28.4) + '@babel/core': 7.28.5 + '@babel/plugin-transform-react-jsx': 7.27.1(@babel/core@7.28.5) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-react-jsx@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-react-jsx@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-module-imports': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.4) - '@babel/types': 7.28.4 + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.5) + '@babel/types': 7.28.5 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-react-pure-annotations@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-react-pure-annotations@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-regenerator@7.28.4(@babel/core@7.28.4)': + '@babel/plugin-transform-regenerator@7.28.4(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-regexp-modifiers@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-regexp-modifiers@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.4) + '@babel/core': 7.28.5 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.5) '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-reserved-words@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-reserved-words@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-shorthand-properties@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-shorthand-properties@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-spread@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-spread@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-sticky-regex@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-sticky-regex@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-template-literals@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-template-literals@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-typeof-symbol@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-typeof-symbol@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-typescript@7.28.0(@babel/core@7.28.4)': + '@babel/plugin-transform-typescript@7.28.5(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.28.4) + '@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.28.5) '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.5) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-unicode-escapes@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-unicode-escapes@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-unicode-property-regex@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-unicode-property-regex@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.4) + '@babel/core': 7.28.5 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.5) '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-unicode-regex@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-unicode-regex@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.4) + '@babel/core': 7.28.5 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.5) '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-unicode-sets-regex@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-unicode-sets-regex@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.4) + '@babel/core': 7.28.5 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.5) '@babel/helper-plugin-utils': 7.27.1 - '@babel/preset-env@7.28.3(@babel/core@7.28.4)': + '@babel/preset-env@7.28.5(@babel/core@7.28.5)': dependencies: - '@babel/compat-data': 7.28.4 - '@babel/core': 7.28.4 + '@babel/compat-data': 7.28.5 + '@babel/core': 7.28.5 '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-validator-option': 7.27.1 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.28.3(@babel/core@7.28.4) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.28.4) - '@babel/plugin-syntax-import-assertions': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.28.4) - '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-async-generator-functions': 7.28.0(@babel/core@7.28.4) - '@babel/plugin-transform-async-to-generator': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-block-scoped-functions': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-block-scoping': 7.28.4(@babel/core@7.28.4) - '@babel/plugin-transform-class-properties': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-class-static-block': 7.28.3(@babel/core@7.28.4) - '@babel/plugin-transform-classes': 7.28.4(@babel/core@7.28.4) - '@babel/plugin-transform-computed-properties': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-destructuring': 7.28.0(@babel/core@7.28.4) - '@babel/plugin-transform-dotall-regex': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-duplicate-keys': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-dynamic-import': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-explicit-resource-management': 7.28.0(@babel/core@7.28.4) - '@babel/plugin-transform-exponentiation-operator': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-export-namespace-from': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-for-of': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-function-name': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-json-strings': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-literals': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-logical-assignment-operators': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-member-expression-literals': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-modules-amd': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-modules-systemjs': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-modules-umd': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-named-capturing-groups-regex': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-new-target': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-nullish-coalescing-operator': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-numeric-separator': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-object-rest-spread': 7.28.4(@babel/core@7.28.4) - '@babel/plugin-transform-object-super': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-optional-catch-binding': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-optional-chaining': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.28.4) - '@babel/plugin-transform-private-methods': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-private-property-in-object': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-property-literals': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-regenerator': 7.28.4(@babel/core@7.28.4) - '@babel/plugin-transform-regexp-modifiers': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-reserved-words': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-spread': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-sticky-regex': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-template-literals': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-typeof-symbol': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-unicode-escapes': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-unicode-property-regex': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-unicode-sets-regex': 7.27.1(@babel/core@7.28.4) - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.28.4) - babel-plugin-polyfill-corejs2: 0.4.14(@babel/core@7.28.4) - babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.28.4) - babel-plugin-polyfill-regenerator: 0.6.5(@babel/core@7.28.4) - core-js-compat: 3.46.0 + '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.28.5(@babel/core@7.28.5) + '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.28.3(@babel/core@7.28.5) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.28.5) + '@babel/plugin-syntax-import-assertions': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.28.5) + '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-async-generator-functions': 7.28.0(@babel/core@7.28.5) + '@babel/plugin-transform-async-to-generator': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-block-scoped-functions': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-block-scoping': 7.28.5(@babel/core@7.28.5) + '@babel/plugin-transform-class-properties': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-class-static-block': 7.28.3(@babel/core@7.28.5) + '@babel/plugin-transform-classes': 7.28.4(@babel/core@7.28.5) + '@babel/plugin-transform-computed-properties': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.28.5) + '@babel/plugin-transform-dotall-regex': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-duplicate-keys': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-dynamic-import': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-explicit-resource-management': 7.28.0(@babel/core@7.28.5) + '@babel/plugin-transform-exponentiation-operator': 7.28.5(@babel/core@7.28.5) + '@babel/plugin-transform-export-namespace-from': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-for-of': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-function-name': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-json-strings': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-literals': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-logical-assignment-operators': 7.28.5(@babel/core@7.28.5) + '@babel/plugin-transform-member-expression-literals': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-modules-amd': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-modules-systemjs': 7.28.5(@babel/core@7.28.5) + '@babel/plugin-transform-modules-umd': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-named-capturing-groups-regex': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-new-target': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-nullish-coalescing-operator': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-numeric-separator': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-object-rest-spread': 7.28.4(@babel/core@7.28.5) + '@babel/plugin-transform-object-super': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-optional-catch-binding': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-optional-chaining': 7.28.5(@babel/core@7.28.5) + '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.28.5) + '@babel/plugin-transform-private-methods': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-private-property-in-object': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-property-literals': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-regenerator': 7.28.4(@babel/core@7.28.5) + '@babel/plugin-transform-regexp-modifiers': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-reserved-words': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-spread': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-sticky-regex': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-template-literals': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-typeof-symbol': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-unicode-escapes': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-unicode-property-regex': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-unicode-sets-regex': 7.27.1(@babel/core@7.28.5) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.28.5) + babel-plugin-polyfill-corejs2: 0.4.14(@babel/core@7.28.5) + babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.28.5) + babel-plugin-polyfill-regenerator: 0.6.5(@babel/core@7.28.5) + core-js-compat: 3.47.0 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.28.4)': + '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/types': 7.28.4 + '@babel/types': 7.28.5 esutils: 2.0.3 - '@babel/preset-react@7.27.1(@babel/core@7.28.4)': + '@babel/preset-react@7.28.5(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-validator-option': 7.27.1 - '@babel/plugin-transform-react-display-name': 7.28.0(@babel/core@7.28.4) - '@babel/plugin-transform-react-jsx': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-react-jsx-development': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-react-pure-annotations': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-transform-react-display-name': 7.28.0(@babel/core@7.28.5) + '@babel/plugin-transform-react-jsx': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-react-jsx-development': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-react-pure-annotations': 7.27.1(@babel/core@7.28.5) transitivePeerDependencies: - supports-color @@ -5485,25 +5503,25 @@ snapshots: '@babel/template@7.27.2': dependencies: '@babel/code-frame': 7.27.1 - '@babel/parser': 7.28.4 - '@babel/types': 7.28.4 + '@babel/parser': 7.28.5 + '@babel/types': 7.28.5 - '@babel/traverse@7.28.4': + '@babel/traverse@7.28.5': dependencies: '@babel/code-frame': 7.27.1 - '@babel/generator': 7.28.3 + '@babel/generator': 7.28.5 '@babel/helper-globals': 7.28.0 - '@babel/parser': 7.28.4 + '@babel/parser': 7.28.5 '@babel/template': 7.27.2 - '@babel/types': 7.28.4 + '@babel/types': 7.28.5 debug: 4.4.3 transitivePeerDependencies: - supports-color - '@babel/types@7.28.4': + '@babel/types@7.28.5': dependencies: '@babel/helper-string-parser': 7.27.1 - '@babel/helper-validator-identifier': 7.27.1 + '@babel/helper-validator-identifier': 7.28.5 '@base2/pretty-print-object@1.0.2': {} @@ -5511,37 +5529,37 @@ snapshots: '@codexteam/icons@0.0.4': {} - '@cspell/cspell-bundled-dicts@9.2.1': + '@cspell/cspell-bundled-dicts@9.4.0': dependencies: '@cspell/dict-ada': 4.1.1 '@cspell/dict-al': 1.1.1 - '@cspell/dict-aws': 4.0.15 - '@cspell/dict-bash': 4.2.1 - '@cspell/dict-companies': 3.2.5 - '@cspell/dict-cpp': 6.0.12 + '@cspell/dict-aws': 4.0.16 + '@cspell/dict-bash': 4.2.2 + '@cspell/dict-companies': 3.2.7 + '@cspell/dict-cpp': 6.0.15 '@cspell/dict-cryptocurrencies': 5.0.5 '@cspell/dict-csharp': 4.0.7 '@cspell/dict-css': 4.0.18 '@cspell/dict-dart': 2.3.1 - '@cspell/dict-data-science': 2.0.9 + '@cspell/dict-data-science': 2.0.12 '@cspell/dict-django': 4.1.5 '@cspell/dict-docker': 1.1.16 '@cspell/dict-dotnet': 5.0.10 '@cspell/dict-elixir': 4.0.8 - '@cspell/dict-en-common-misspellings': 2.1.6 - '@cspell/dict-en-gb-mit': 3.1.9 - '@cspell/dict-en_us': 4.4.19 - '@cspell/dict-filetypes': 3.0.13 + '@cspell/dict-en-common-misspellings': 2.1.8 + '@cspell/dict-en-gb-mit': 3.1.14 + '@cspell/dict-en_us': 4.4.24 + '@cspell/dict-filetypes': 3.0.14 '@cspell/dict-flutter': 1.1.1 '@cspell/dict-fonts': 4.0.5 '@cspell/dict-fsharp': 1.1.1 '@cspell/dict-fullstack': 3.2.7 '@cspell/dict-gaming-terms': 1.1.2 '@cspell/dict-git': 3.0.7 - '@cspell/dict-golang': 6.0.23 + '@cspell/dict-golang': 6.0.24 '@cspell/dict-google': 1.0.9 '@cspell/dict-haskell': 4.0.6 - '@cspell/dict-html': 4.0.12 + '@cspell/dict-html': 4.0.13 '@cspell/dict-html-symbol-entities': 4.0.4 '@cspell/dict-java': 5.0.12 '@cspell/dict-julia': 1.1.1 @@ -5551,50 +5569,51 @@ snapshots: '@cspell/dict-lorem-ipsum': 4.0.5 '@cspell/dict-lua': 4.0.8 '@cspell/dict-makefile': 1.0.5 - '@cspell/dict-markdown': 2.0.12(@cspell/dict-css@4.0.18)(@cspell/dict-html-symbol-entities@4.0.4)(@cspell/dict-html@4.0.12)(@cspell/dict-typescript@3.2.3) + '@cspell/dict-markdown': 2.0.13(@cspell/dict-css@4.0.18)(@cspell/dict-html-symbol-entities@4.0.4)(@cspell/dict-html@4.0.13)(@cspell/dict-typescript@3.2.3) '@cspell/dict-monkeyc': 1.0.11 '@cspell/dict-node': 5.0.8 - '@cspell/dict-npm': 5.2.17 - '@cspell/dict-php': 4.0.15 + '@cspell/dict-npm': 5.2.25 + '@cspell/dict-php': 4.1.0 '@cspell/dict-powershell': 5.0.15 '@cspell/dict-public-licenses': 2.0.15 - '@cspell/dict-python': 4.2.19 + '@cspell/dict-python': 4.2.23 '@cspell/dict-r': 2.1.1 '@cspell/dict-ruby': 5.0.9 '@cspell/dict-rust': 4.0.12 '@cspell/dict-scala': 5.0.8 - '@cspell/dict-shell': 1.1.1 - '@cspell/dict-software-terms': 5.1.8 + '@cspell/dict-shell': 1.1.2 + '@cspell/dict-software-terms': 5.1.15 '@cspell/dict-sql': 2.2.1 '@cspell/dict-svelte': 1.0.7 '@cspell/dict-swift': 2.0.6 '@cspell/dict-terraform': 1.1.3 '@cspell/dict-typescript': 3.2.3 '@cspell/dict-vue': 3.0.5 + '@cspell/dict-zig': 1.0.0 - '@cspell/cspell-pipe@9.2.1': {} + '@cspell/cspell-pipe@9.4.0': {} - '@cspell/cspell-resolver@9.2.1': + '@cspell/cspell-resolver@9.4.0': dependencies: global-directory: 4.0.1 - '@cspell/cspell-service-bus@9.2.1': {} + '@cspell/cspell-service-bus@9.4.0': {} - '@cspell/cspell-types@9.2.1': {} + '@cspell/cspell-types@9.4.0': {} '@cspell/dict-ada@4.1.1': {} '@cspell/dict-al@1.1.1': {} - '@cspell/dict-aws@4.0.15': {} + '@cspell/dict-aws@4.0.16': {} - '@cspell/dict-bash@4.2.1': + '@cspell/dict-bash@4.2.2': dependencies: - '@cspell/dict-shell': 1.1.1 + '@cspell/dict-shell': 1.1.2 - '@cspell/dict-companies@3.2.5': {} + '@cspell/dict-companies@3.2.7': {} - '@cspell/dict-cpp@6.0.12': {} + '@cspell/dict-cpp@6.0.15': {} '@cspell/dict-cryptocurrencies@5.0.5': {} @@ -5604,7 +5623,7 @@ snapshots: '@cspell/dict-dart@2.3.1': {} - '@cspell/dict-data-science@2.0.9': {} + '@cspell/dict-data-science@2.0.12': {} '@cspell/dict-django@4.1.5': {} @@ -5614,13 +5633,13 @@ snapshots: '@cspell/dict-elixir@4.0.8': {} - '@cspell/dict-en-common-misspellings@2.1.6': {} + '@cspell/dict-en-common-misspellings@2.1.8': {} - '@cspell/dict-en-gb-mit@3.1.9': {} + '@cspell/dict-en-gb-mit@3.1.14': {} - '@cspell/dict-en_us@4.4.19': {} + '@cspell/dict-en_us@4.4.24': {} - '@cspell/dict-filetypes@3.0.13': {} + '@cspell/dict-filetypes@3.0.14': {} '@cspell/dict-flutter@1.1.1': {} @@ -5634,7 +5653,7 @@ snapshots: '@cspell/dict-git@3.0.7': {} - '@cspell/dict-golang@6.0.23': {} + '@cspell/dict-golang@6.0.24': {} '@cspell/dict-google@1.0.9': {} @@ -5642,7 +5661,7 @@ snapshots: '@cspell/dict-html-symbol-entities@4.0.4': {} - '@cspell/dict-html@4.0.12': {} + '@cspell/dict-html@4.0.13': {} '@cspell/dict-java@5.0.12': {} @@ -5660,10 +5679,10 @@ snapshots: '@cspell/dict-makefile@1.0.5': {} - '@cspell/dict-markdown@2.0.12(@cspell/dict-css@4.0.18)(@cspell/dict-html-symbol-entities@4.0.4)(@cspell/dict-html@4.0.12)(@cspell/dict-typescript@3.2.3)': + '@cspell/dict-markdown@2.0.13(@cspell/dict-css@4.0.18)(@cspell/dict-html-symbol-entities@4.0.4)(@cspell/dict-html@4.0.13)(@cspell/dict-typescript@3.2.3)': dependencies: '@cspell/dict-css': 4.0.18 - '@cspell/dict-html': 4.0.12 + '@cspell/dict-html': 4.0.13 '@cspell/dict-html-symbol-entities': 4.0.4 '@cspell/dict-typescript': 3.2.3 @@ -5671,17 +5690,17 @@ snapshots: '@cspell/dict-node@5.0.8': {} - '@cspell/dict-npm@5.2.17': {} + '@cspell/dict-npm@5.2.25': {} - '@cspell/dict-php@4.0.15': {} + '@cspell/dict-php@4.1.0': {} '@cspell/dict-powershell@5.0.15': {} '@cspell/dict-public-licenses@2.0.15': {} - '@cspell/dict-python@4.2.19': + '@cspell/dict-python@4.2.23': dependencies: - '@cspell/dict-data-science': 2.0.9 + '@cspell/dict-data-science': 2.0.12 '@cspell/dict-r@2.1.1': {} @@ -5691,9 +5710,9 @@ snapshots: '@cspell/dict-scala@5.0.8': {} - '@cspell/dict-shell@1.1.1': {} + '@cspell/dict-shell@1.1.2': {} - '@cspell/dict-software-terms@5.1.8': {} + '@cspell/dict-software-terms@5.1.15': {} '@cspell/dict-sql@2.2.1': {} @@ -5707,24 +5726,26 @@ snapshots: '@cspell/dict-vue@3.0.5': {} - '@cspell/dynamic-import@9.2.1': + '@cspell/dict-zig@1.0.0': {} + + '@cspell/dynamic-import@9.4.0': dependencies: - '@cspell/url': 9.2.1 + '@cspell/url': 9.4.0 import-meta-resolve: 4.2.0 - '@cspell/eslint-plugin@9.2.1(eslint@9.37.0(jiti@2.6.1))': + '@cspell/eslint-plugin@9.4.0(eslint@9.39.1(jiti@2.6.1))': dependencies: - '@cspell/cspell-types': 9.2.1 - '@cspell/url': 9.2.1 - cspell-lib: 9.2.1 - eslint: 9.37.0(jiti@2.6.1) + '@cspell/cspell-types': 9.4.0 + '@cspell/url': 9.4.0 + cspell-lib: 9.4.0 + eslint: 9.39.1(jiti@2.6.1) synckit: 0.11.11 - '@cspell/filetypes@9.2.1': {} + '@cspell/filetypes@9.4.0': {} - '@cspell/strong-weak-map@9.2.1': {} + '@cspell/strong-weak-map@9.4.0': {} - '@cspell/url@9.2.1': {} + '@cspell/url@9.4.0': {} '@editorjs/caret@1.0.3': dependencies: @@ -5746,13 +5767,13 @@ snapshots: dependencies: '@codexteam/icons': 0.0.4 - '@emnapi/core@1.5.0': + '@emnapi/core@1.7.1': dependencies: '@emnapi/wasi-threads': 1.1.0 tslib: 2.8.1 optional: true - '@emnapi/runtime@1.5.0': + '@emnapi/runtime@1.7.1': dependencies: tslib: 2.8.1 optional: true @@ -5762,30 +5783,30 @@ snapshots: tslib: 2.8.1 optional: true - '@eslint-community/eslint-utils@4.9.0(eslint@9.37.0(jiti@2.6.1))': + '@eslint-community/eslint-utils@4.9.0(eslint@9.39.1(jiti@2.6.1))': dependencies: - eslint: 9.37.0(jiti@2.6.1) + eslint: 9.39.1(jiti@2.6.1) eslint-visitor-keys: 3.4.3 - '@eslint-community/regexpp@4.12.1': {} + '@eslint-community/regexpp@4.12.2': {} - '@eslint/config-array@0.21.0': + '@eslint/config-array@0.21.1': dependencies: - '@eslint/object-schema': 2.1.6 + '@eslint/object-schema': 2.1.7 debug: 4.4.3 minimatch: 3.1.2 transitivePeerDependencies: - supports-color - '@eslint/config-helpers@0.4.0': + '@eslint/config-helpers@0.4.2': dependencies: - '@eslint/core': 0.16.0 + '@eslint/core': 0.17.0 - '@eslint/core@0.16.0': + '@eslint/core@0.17.0': dependencies: '@types/json-schema': 7.0.15 - '@eslint/eslintrc@3.3.1': + '@eslint/eslintrc@3.3.3': dependencies: ajv: 6.12.6 debug: 4.4.3 @@ -5793,19 +5814,19 @@ snapshots: globals: 14.0.0 ignore: 5.3.2 import-fresh: 3.3.1 - js-yaml: 4.1.0 + js-yaml: 4.1.1 minimatch: 3.1.2 strip-json-comments: 3.1.1 transitivePeerDependencies: - supports-color - '@eslint/js@9.37.0': {} + '@eslint/js@9.39.1': {} - '@eslint/object-schema@2.1.6': {} + '@eslint/object-schema@2.1.7': {} - '@eslint/plugin-kit@0.4.0': + '@eslint/plugin-kit@0.4.1': dependencies: - '@eslint/core': 0.16.0 + '@eslint/core': 0.17.0 levn: 0.4.1 '@hapi/bourne@3.0.0': {} @@ -5824,90 +5845,98 @@ snapshots: '@img/colour@1.0.0': optional: true - '@img/sharp-darwin-arm64@0.34.4': + '@img/sharp-darwin-arm64@0.34.5': optionalDependencies: - '@img/sharp-libvips-darwin-arm64': 1.2.3 + '@img/sharp-libvips-darwin-arm64': 1.2.4 optional: true - '@img/sharp-darwin-x64@0.34.4': + '@img/sharp-darwin-x64@0.34.5': optionalDependencies: - '@img/sharp-libvips-darwin-x64': 1.2.3 + '@img/sharp-libvips-darwin-x64': 1.2.4 + optional: true + + '@img/sharp-libvips-darwin-arm64@1.2.4': optional: true - '@img/sharp-libvips-darwin-arm64@1.2.3': + '@img/sharp-libvips-darwin-x64@1.2.4': optional: true - '@img/sharp-libvips-darwin-x64@1.2.3': + '@img/sharp-libvips-linux-arm64@1.2.4': optional: true - '@img/sharp-libvips-linux-arm64@1.2.3': + '@img/sharp-libvips-linux-arm@1.2.4': optional: true - '@img/sharp-libvips-linux-arm@1.2.3': + '@img/sharp-libvips-linux-ppc64@1.2.4': optional: true - '@img/sharp-libvips-linux-ppc64@1.2.3': + '@img/sharp-libvips-linux-riscv64@1.2.4': optional: true - '@img/sharp-libvips-linux-s390x@1.2.3': + '@img/sharp-libvips-linux-s390x@1.2.4': optional: true - '@img/sharp-libvips-linux-x64@1.2.3': + '@img/sharp-libvips-linux-x64@1.2.4': optional: true - '@img/sharp-libvips-linuxmusl-arm64@1.2.3': + '@img/sharp-libvips-linuxmusl-arm64@1.2.4': optional: true - '@img/sharp-libvips-linuxmusl-x64@1.2.3': + '@img/sharp-libvips-linuxmusl-x64@1.2.4': optional: true - '@img/sharp-linux-arm64@0.34.4': + '@img/sharp-linux-arm64@0.34.5': optionalDependencies: - '@img/sharp-libvips-linux-arm64': 1.2.3 + '@img/sharp-libvips-linux-arm64': 1.2.4 optional: true - '@img/sharp-linux-arm@0.34.4': + '@img/sharp-linux-arm@0.34.5': optionalDependencies: - '@img/sharp-libvips-linux-arm': 1.2.3 + '@img/sharp-libvips-linux-arm': 1.2.4 optional: true - '@img/sharp-linux-ppc64@0.34.4': + '@img/sharp-linux-ppc64@0.34.5': optionalDependencies: - '@img/sharp-libvips-linux-ppc64': 1.2.3 + '@img/sharp-libvips-linux-ppc64': 1.2.4 optional: true - '@img/sharp-linux-s390x@0.34.4': + '@img/sharp-linux-riscv64@0.34.5': optionalDependencies: - '@img/sharp-libvips-linux-s390x': 1.2.3 + '@img/sharp-libvips-linux-riscv64': 1.2.4 optional: true - '@img/sharp-linux-x64@0.34.4': + '@img/sharp-linux-s390x@0.34.5': optionalDependencies: - '@img/sharp-libvips-linux-x64': 1.2.3 + '@img/sharp-libvips-linux-s390x': 1.2.4 optional: true - '@img/sharp-linuxmusl-arm64@0.34.4': + '@img/sharp-linux-x64@0.34.5': optionalDependencies: - '@img/sharp-libvips-linuxmusl-arm64': 1.2.3 + '@img/sharp-libvips-linux-x64': 1.2.4 optional: true - '@img/sharp-linuxmusl-x64@0.34.4': + '@img/sharp-linuxmusl-arm64@0.34.5': optionalDependencies: - '@img/sharp-libvips-linuxmusl-x64': 1.2.3 + '@img/sharp-libvips-linuxmusl-arm64': 1.2.4 optional: true - '@img/sharp-wasm32@0.34.4': + '@img/sharp-linuxmusl-x64@0.34.5': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-x64': 1.2.4 + optional: true + + '@img/sharp-wasm32@0.34.5': dependencies: - '@emnapi/runtime': 1.5.0 + '@emnapi/runtime': 1.7.1 optional: true - '@img/sharp-win32-arm64@0.34.4': + '@img/sharp-win32-arm64@0.34.5': optional: true - '@img/sharp-win32-ia32@0.34.4': + '@img/sharp-win32-ia32@0.34.5': optional: true - '@img/sharp-win32-x64@0.34.4': + '@img/sharp-win32-x64@0.34.5': optional: true '@isaacs/balanced-match@4.0.1': {} @@ -5940,18 +5969,18 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.5 - '@koa/bodyparser@6.0.0(koa@3.0.1)': + '@koa/bodyparser@6.0.0(koa@3.1.1)': dependencies: '@types/co-body': 6.1.3 co-body: 6.2.0 - koa: 3.0.1 + koa: 3.1.1 lodash.merge: 4.6.2 type-is: 2.0.1 - '@koa/router@14.0.0': + '@koa/router@15.0.0': dependencies: debug: 4.4.3 - http-errors: 2.0.0 + http-errors: 2.0.1 koa-compose: 4.1.0 path-to-regexp: 8.3.0 transitivePeerDependencies: @@ -5994,56 +6023,56 @@ snapshots: transitivePeerDependencies: - supports-color - '@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0)': + '@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.1)': dependencies: '@types/mdx': 2.0.13 - '@types/react': 19.2.2 - react: 19.2.0 + '@types/react': 19.2.7 + react: 19.2.1 '@mixmark-io/domino@2.2.0': {} '@napi-rs/wasm-runtime@0.2.12': dependencies: - '@emnapi/core': 1.5.0 - '@emnapi/runtime': 1.5.0 + '@emnapi/core': 1.7.1 + '@emnapi/runtime': 1.7.1 '@tybys/wasm-util': 0.10.1 optional: true - '@next/env@15.5.4': {} + '@next/env@16.0.7': {} - '@next/eslint-plugin-next@15.5.4': + '@next/eslint-plugin-next@16.0.7': dependencies: fast-glob: 3.3.1 - '@next/mdx@15.5.4(@mdx-js/loader@3.1.1)(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))': + '@next/mdx@16.0.7(@mdx-js/loader@3.1.1)(@mdx-js/react@3.1.1(@types/react@19.2.7)(react@19.2.1))': dependencies: source-map: 0.7.6 optionalDependencies: '@mdx-js/loader': 3.1.1 - '@mdx-js/react': 3.1.1(@types/react@19.2.2)(react@19.2.0) + '@mdx-js/react': 3.1.1(@types/react@19.2.7)(react@19.2.1) - '@next/swc-darwin-arm64@15.5.4': + '@next/swc-darwin-arm64@16.0.7': optional: true - '@next/swc-darwin-x64@15.5.4': + '@next/swc-darwin-x64@16.0.7': optional: true - '@next/swc-linux-arm64-gnu@15.5.4': + '@next/swc-linux-arm64-gnu@16.0.7': optional: true - '@next/swc-linux-arm64-musl@15.5.4': + '@next/swc-linux-arm64-musl@16.0.7': optional: true - '@next/swc-linux-x64-gnu@15.5.4': + '@next/swc-linux-x64-gnu@16.0.7': optional: true - '@next/swc-linux-x64-musl@15.5.4': + '@next/swc-linux-x64-musl@16.0.7': optional: true - '@next/swc-win32-arm64-msvc@15.5.4': + '@next/swc-win32-arm64-msvc@16.0.7': optional: true - '@next/swc-win32-x64-msvc@15.5.4': + '@next/swc-win32-x64-msvc@16.0.7': optional: true '@nodelib/fs.scandir@2.1.5': @@ -6129,63 +6158,63 @@ snapshots: '@popperjs/core@2.11.8': {} - '@react-aria/ssr@3.9.10(react@19.2.0)': + '@react-aria/ssr@3.9.10(react@19.2.1)': dependencies: '@swc/helpers': 0.5.17 - react: 19.2.0 + react: 19.2.1 - '@react-editor-js/client@2.1.0(@editorjs/editorjs@2.31.0)(@editorjs/paragraph@2.11.7)(react@19.2.0)': + '@react-editor-js/client@2.1.0(@editorjs/editorjs@2.31.0)(@editorjs/paragraph@2.11.7)(react@19.2.1)': dependencies: '@editorjs/editorjs': 2.31.0 '@editorjs/paragraph': 2.11.7 - '@react-editor-js/core': 2.1.0(@editorjs/editorjs@2.31.0)(react@19.2.0) - react: 19.2.0 + '@react-editor-js/core': 2.1.0(@editorjs/editorjs@2.31.0)(react@19.2.1) + react: 19.2.1 - '@react-editor-js/core@2.1.0(@editorjs/editorjs@2.31.0)(react@19.2.0)': + '@react-editor-js/core@2.1.0(@editorjs/editorjs@2.31.0)(react@19.2.1)': dependencies: '@editorjs/editorjs': 2.31.0 - react: 19.2.0 + react: 19.2.1 - '@react-editor-js/server@2.1.0(@editorjs/editorjs@2.31.0)(@editorjs/paragraph@2.11.7)(react@19.2.0)': + '@react-editor-js/server@2.1.0(@editorjs/editorjs@2.31.0)(@editorjs/paragraph@2.11.7)(react@19.2.1)': dependencies: '@editorjs/editorjs': 2.31.0 '@editorjs/paragraph': 2.11.7 - '@react-editor-js/core': 2.1.0(@editorjs/editorjs@2.31.0)(react@19.2.0) - react: 19.2.0 + '@react-editor-js/core': 2.1.0(@editorjs/editorjs@2.31.0)(react@19.2.1) + react: 19.2.1 - '@react-leaflet/core@3.0.0(leaflet@1.9.4)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': + '@react-leaflet/core@3.0.0(leaflet@1.9.4)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: leaflet: 1.9.4 - react: 19.2.0 - react-dom: 19.2.0(react@19.2.0) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) - '@restart/hooks@0.4.16(react@19.2.0)': + '@restart/hooks@0.4.16(react@19.2.1)': dependencies: dequal: 2.0.3 - react: 19.2.0 + react: 19.2.1 - '@restart/hooks@0.5.1(react@19.2.0)': + '@restart/hooks@0.5.1(react@19.2.1)': dependencies: dequal: 2.0.3 - react: 19.2.0 + react: 19.2.1 - '@restart/ui@1.9.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': + '@restart/ui@1.9.4(react-dom@19.2.1(react@19.2.1))(react@19.2.1)': dependencies: '@babel/runtime': 7.28.4 '@popperjs/core': 2.11.8 - '@react-aria/ssr': 3.9.10(react@19.2.0) - '@restart/hooks': 0.5.1(react@19.2.0) + '@react-aria/ssr': 3.9.10(react@19.2.1) + '@restart/hooks': 0.5.1(react@19.2.1) '@types/warning': 3.0.3 dequal: 2.0.3 dom-helpers: 5.2.1 - react: 19.2.0 - react-dom: 19.2.0(react@19.2.0) - uncontrollable: 8.0.4(react@19.2.0) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) + uncontrollable: 8.0.4(react@19.2.1) warning: 4.0.3 - '@rollup/plugin-babel@5.3.1(@babel/core@7.28.4)(rollup@2.79.2)': + '@rollup/plugin-babel@5.3.1(@babel/core@7.28.5)(rollup@2.79.2)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-module-imports': 7.27.1 '@rollup/pluginutils': 3.1.0(rollup@2.79.2) rollup: 2.79.2 @@ -6199,7 +6228,7 @@ snapshots: builtin-modules: 3.3.0 deepmerge: 4.3.1 is-module: 1.0.0 - resolve: 1.22.10 + resolve: 1.22.11 rollup: 2.79.2 '@rollup/plugin-replace@2.4.2(rollup@2.79.2)': @@ -6217,15 +6246,13 @@ snapshots: '@rtsao/scc@1.1.0': {} - '@rushstack/eslint-patch@1.13.0': {} - '@softonus/prettier-plugin-duplicate-remover@1.1.2': {} - '@stylistic/eslint-plugin@5.4.0(eslint@9.37.0(jiti@2.6.1))': + '@stylistic/eslint-plugin@5.6.1(eslint@9.39.1(jiti@2.6.1))': dependencies: - '@eslint-community/eslint-utils': 4.9.0(eslint@9.37.0(jiti@2.6.1)) - '@typescript-eslint/types': 8.46.0 - eslint: 9.37.0(jiti@2.6.1) + '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.1(jiti@2.6.1)) + '@typescript-eslint/types': 8.48.1 + eslint: 9.39.1(jiti@2.6.1) eslint-visitor-keys: 4.2.1 espree: 10.4.0 estraverse: 5.3.0 @@ -6246,10 +6273,9 @@ snapshots: dependencies: tslib: 2.8.1 - '@tokenizer/inflate@0.2.7': + '@tokenizer/inflate@0.4.1': dependencies: debug: 4.4.3 - fflate: 0.8.2 token-types: 6.1.1 transitivePeerDependencies: - supports-color @@ -6263,30 +6289,30 @@ snapshots: '@types/accepts@1.3.7': dependencies: - '@types/node': 22.18.10 + '@types/node': 22.19.1 '@types/body-parser@1.19.6': dependencies: '@types/connect': 3.4.38 - '@types/node': 22.18.10 + '@types/node': 22.19.1 '@types/co-body@6.1.3': dependencies: - '@types/node': 22.18.10 + '@types/node': 22.19.1 '@types/qs': 6.14.0 '@types/connect@3.4.38': dependencies: - '@types/node': 22.18.10 + '@types/node': 22.19.1 '@types/content-disposition@0.5.9': {} - '@types/cookies@0.9.1': + '@types/cookies@0.9.2': dependencies: '@types/connect': 3.4.38 - '@types/express': 5.0.3 + '@types/express': 5.0.6 '@types/keygrip': 1.0.6 - '@types/node': 22.18.10 + '@types/node': 22.19.1 '@types/debug@4.1.12': dependencies: @@ -6304,23 +6330,23 @@ snapshots: '@types/express-serve-static-core@5.1.0': dependencies: - '@types/node': 22.18.10 + '@types/node': 22.19.1 '@types/qs': 6.14.0 '@types/range-parser': 1.2.7 - '@types/send': 1.2.0 + '@types/send': 1.2.1 - '@types/express@5.0.3': + '@types/express@5.0.6': dependencies: '@types/body-parser': 1.19.6 '@types/express-serve-static-core': 5.1.0 - '@types/serve-static': 1.15.9 + '@types/serve-static': 2.2.0 '@types/geojson@7946.0.16': {} '@types/glob@7.2.0': dependencies: '@types/minimatch': 6.0.0 - '@types/node': 22.18.10 + '@types/node': 22.19.1 '@types/hast@3.0.4': dependencies: @@ -6337,34 +6363,34 @@ snapshots: '@types/jsonwebtoken@9.0.10': dependencies: '@types/ms': 2.1.0 - '@types/node': 22.18.10 + '@types/node': 22.19.1 '@types/keygrip@1.0.6': {} - '@types/koa-compose@3.2.8': + '@types/koa-compose@3.2.9': dependencies: - '@types/koa': 3.0.0 + '@types/koa': 3.0.1 - '@types/koa@3.0.0': + '@types/koa@3.0.1': dependencies: '@types/accepts': 1.3.7 '@types/content-disposition': 0.5.9 - '@types/cookies': 0.9.1 + '@types/cookies': 0.9.2 '@types/http-assert': 1.5.6 '@types/http-errors': 2.0.5 '@types/keygrip': 1.0.6 - '@types/koa-compose': 3.2.8 - '@types/node': 22.18.10 + '@types/koa-compose': 3.2.9 + '@types/node': 22.19.1 - '@types/koa__router@12.0.4': + '@types/koa__router@12.0.5': dependencies: - '@types/koa': 3.0.0 + '@types/koa': 3.0.1 '@types/leaflet@1.9.21': dependencies: '@types/geojson': 7946.0.16 - '@types/lodash@4.17.20': {} + '@types/lodash@4.17.21': {} '@types/mdast@4.0.4': dependencies: @@ -6372,20 +6398,18 @@ snapshots: '@types/mdx@2.0.13': {} - '@types/mime@1.3.5': {} - '@types/minimatch@6.0.0': dependencies: - minimatch: 10.0.3 + minimatch: 10.1.1 '@types/ms@2.1.0': {} - '@types/next-pwa@5.6.9(@babel/core@7.28.4)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(sass@1.93.2)': + '@types/next-pwa@5.6.9(@babel/core@7.28.5)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(sass@1.94.2)': dependencies: - '@types/node': 22.18.10 - '@types/react': 19.2.2 - '@types/react-dom': 19.2.1(@types/react@19.2.2) - next: 15.5.4(@babel/core@7.28.4)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(sass@1.93.2) + '@types/node': 22.19.1 + '@types/react': 19.2.7 + '@types/react-dom': 19.2.3(@types/react@19.2.7) + next: 16.0.7(@babel/core@7.28.5)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(sass@1.94.2) workbox-build: 6.6.0 transitivePeerDependencies: - '@babel/core' @@ -6399,7 +6423,7 @@ snapshots: - sass - supports-color - '@types/node@22.18.10': + '@types/node@22.19.1': dependencies: undici-types: 6.21.0 @@ -6409,40 +6433,34 @@ snapshots: '@types/range-parser@1.2.7': {} - '@types/react-dom@19.2.1(@types/react@19.2.2)': + '@types/react-dom@19.2.3(@types/react@19.2.7)': dependencies: - '@types/react': 19.2.2 + '@types/react': 19.2.7 - '@types/react-transition-group@4.4.12(@types/react@19.2.2)': + '@types/react-transition-group@4.4.12(@types/react@19.2.7)': dependencies: - '@types/react': 19.2.2 + '@types/react': 19.2.7 - '@types/react@19.2.2': + '@types/react@19.2.7': dependencies: - csstype: 3.1.3 + csstype: 3.2.3 '@types/resolve@1.17.1': dependencies: - '@types/node': 22.18.10 - - '@types/send@0.17.5': - dependencies: - '@types/mime': 1.3.5 - '@types/node': 22.18.10 + '@types/node': 22.19.1 - '@types/send@1.2.0': + '@types/send@1.2.1': dependencies: - '@types/node': 22.18.10 + '@types/node': 22.19.1 - '@types/serve-static@1.15.9': + '@types/serve-static@2.2.0': dependencies: '@types/http-errors': 2.0.5 - '@types/node': 22.18.10 - '@types/send': 0.17.5 + '@types/node': 22.19.1 '@types/trusted-types@2.0.7': {} - '@types/turndown@5.0.5': {} + '@types/turndown@5.0.6': {} '@types/unist@2.0.11': {} @@ -6450,15 +6468,15 @@ snapshots: '@types/warning@3.0.3': {} - '@typescript-eslint/eslint-plugin@8.46.0(@typescript-eslint/parser@8.46.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/eslint-plugin@8.48.1(@typescript-eslint/parser@8.48.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.46.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.46.0 - '@typescript-eslint/type-utils': 8.46.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/utils': 8.46.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.46.0 - eslint: 9.37.0(jiti@2.6.1) + '@eslint-community/regexpp': 4.12.2 + '@typescript-eslint/parser': 8.48.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.48.1 + '@typescript-eslint/type-utils': 8.48.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/utils': 8.48.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.48.1 + eslint: 9.39.1(jiti@2.6.1) graphemer: 1.4.0 ignore: 7.0.5 natural-compare: 1.4.0 @@ -6467,80 +6485,79 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.46.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/parser@8.48.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@typescript-eslint/scope-manager': 8.46.0 - '@typescript-eslint/types': 8.46.0 - '@typescript-eslint/typescript-estree': 8.46.0(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.46.0 + '@typescript-eslint/scope-manager': 8.48.1 + '@typescript-eslint/types': 8.48.1 + '@typescript-eslint/typescript-estree': 8.48.1(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.48.1 debug: 4.4.3 - eslint: 9.37.0(jiti@2.6.1) + eslint: 9.39.1(jiti@2.6.1) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.46.0(typescript@5.9.3)': + '@typescript-eslint/project-service@8.48.1(typescript@5.9.3)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.46.0(typescript@5.9.3) - '@typescript-eslint/types': 8.46.0 + '@typescript-eslint/tsconfig-utils': 8.48.1(typescript@5.9.3) + '@typescript-eslint/types': 8.48.1 debug: 4.4.3 typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.46.0': + '@typescript-eslint/scope-manager@8.48.1': dependencies: - '@typescript-eslint/types': 8.46.0 - '@typescript-eslint/visitor-keys': 8.46.0 + '@typescript-eslint/types': 8.48.1 + '@typescript-eslint/visitor-keys': 8.48.1 - '@typescript-eslint/tsconfig-utils@8.46.0(typescript@5.9.3)': + '@typescript-eslint/tsconfig-utils@8.48.1(typescript@5.9.3)': dependencies: typescript: 5.9.3 - '@typescript-eslint/type-utils@8.46.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/type-utils@8.48.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@typescript-eslint/types': 8.46.0 - '@typescript-eslint/typescript-estree': 8.46.0(typescript@5.9.3) - '@typescript-eslint/utils': 8.46.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/types': 8.48.1 + '@typescript-eslint/typescript-estree': 8.48.1(typescript@5.9.3) + '@typescript-eslint/utils': 8.48.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) debug: 4.4.3 - eslint: 9.37.0(jiti@2.6.1) + eslint: 9.39.1(jiti@2.6.1) ts-api-utils: 2.1.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.46.0': {} + '@typescript-eslint/types@8.48.1': {} - '@typescript-eslint/typescript-estree@8.46.0(typescript@5.9.3)': + '@typescript-eslint/typescript-estree@8.48.1(typescript@5.9.3)': dependencies: - '@typescript-eslint/project-service': 8.46.0(typescript@5.9.3) - '@typescript-eslint/tsconfig-utils': 8.46.0(typescript@5.9.3) - '@typescript-eslint/types': 8.46.0 - '@typescript-eslint/visitor-keys': 8.46.0 + '@typescript-eslint/project-service': 8.48.1(typescript@5.9.3) + '@typescript-eslint/tsconfig-utils': 8.48.1(typescript@5.9.3) + '@typescript-eslint/types': 8.48.1 + '@typescript-eslint/visitor-keys': 8.48.1 debug: 4.4.3 - fast-glob: 3.3.3 - is-glob: 4.0.3 minimatch: 9.0.5 semver: 7.7.3 + tinyglobby: 0.2.15 ts-api-utils: 2.1.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.46.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/utils@8.48.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@eslint-community/eslint-utils': 4.9.0(eslint@9.37.0(jiti@2.6.1)) - '@typescript-eslint/scope-manager': 8.46.0 - '@typescript-eslint/types': 8.46.0 - '@typescript-eslint/typescript-estree': 8.46.0(typescript@5.9.3) - eslint: 9.37.0(jiti@2.6.1) + '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.1(jiti@2.6.1)) + '@typescript-eslint/scope-manager': 8.48.1 + '@typescript-eslint/types': 8.48.1 + '@typescript-eslint/typescript-estree': 8.48.1(typescript@5.9.3) + eslint: 9.39.1(jiti@2.6.1) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.46.0': + '@typescript-eslint/visitor-keys@8.48.1': dependencies: - '@typescript-eslint/types': 8.46.0 + '@typescript-eslint/types': 8.48.1 eslint-visitor-keys: 4.2.1 '@ungap/structured-clone@1.3.0': {} @@ -6642,7 +6659,7 @@ snapshots: json-schema-traverse: 1.0.0 require-from-string: 2.0.2 - ansi-escapes@7.1.1: + ansi-escapes@7.2.0: dependencies: environment: 1.1.0 @@ -6753,35 +6770,35 @@ snapshots: axobject-query@4.1.0: {} - babel-loader@8.4.1(@babel/core@7.28.4): + babel-loader@8.4.1(@babel/core@7.28.5): dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 find-cache-dir: 3.3.2 loader-utils: 2.0.4 make-dir: 3.1.0 schema-utils: 2.7.1 - babel-plugin-polyfill-corejs2@0.4.14(@babel/core@7.28.4): + babel-plugin-polyfill-corejs2@0.4.14(@babel/core@7.28.5): dependencies: - '@babel/compat-data': 7.28.4 - '@babel/core': 7.28.4 - '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.4) + '@babel/compat-data': 7.28.5 + '@babel/core': 7.28.5 + '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.5) semver: 6.3.1 transitivePeerDependencies: - supports-color - babel-plugin-polyfill-corejs3@0.13.0(@babel/core@7.28.4): + babel-plugin-polyfill-corejs3@0.13.0(@babel/core@7.28.5): dependencies: - '@babel/core': 7.28.4 - '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.4) - core-js-compat: 3.46.0 + '@babel/core': 7.28.5 + '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.5) + core-js-compat: 3.47.0 transitivePeerDependencies: - supports-color - babel-plugin-polyfill-regenerator@0.6.5(@babel/core@7.28.4): + babel-plugin-polyfill-regenerator@0.6.5(@babel/core@7.28.5): dependencies: - '@babel/core': 7.28.4 - '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.4) + '@babel/core': 7.28.5 + '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.5) transitivePeerDependencies: - supports-color @@ -6791,7 +6808,7 @@ snapshots: base64-arraybuffer@1.0.2: {} - baseline-browser-mapping@2.8.16: {} + baseline-browser-mapping@2.9.3: {} big.js@5.2.2: {} @@ -6810,13 +6827,13 @@ snapshots: browser-fs-access@0.37.0: {} - browserslist@4.26.3: + browserslist@4.28.1: dependencies: - baseline-browser-mapping: 2.8.16 - caniuse-lite: 1.0.30001750 - electron-to-chromium: 1.5.234 - node-releases: 2.0.23 - update-browserslist-db: 1.1.3(browserslist@4.26.3) + baseline-browser-mapping: 2.9.3 + caniuse-lite: 1.0.30001759 + electron-to-chromium: 1.5.266 + node-releases: 2.0.27 + update-browserslist-db: 1.2.2(browserslist@4.28.1) buffer-equal-constant-time@1.0.1: {} @@ -6845,7 +6862,7 @@ snapshots: callsites@3.1.0: {} - caniuse-lite@1.0.30001750: {} + caniuse-lite@1.0.30001759: {} ccount@2.0.1: {} @@ -6881,7 +6898,7 @@ snapshots: dependencies: restore-cursor: 5.1.0 - cli-truncate@5.1.0: + cli-truncate@5.1.1: dependencies: slice-ansi: 7.1.2 string-width: 8.1.0 @@ -6899,7 +6916,7 @@ snapshots: '@hapi/bourne': 3.0.0 inflation: 2.1.0 qs: 6.14.0 - raw-body: 2.5.2 + raw-body: 2.5.3 type-is: 1.6.18 codex-notifier@1.1.2: {} @@ -6918,7 +6935,7 @@ snapshots: comma-separated-tokens@2.0.3: {} - commander@14.0.1: {} + commander@14.0.2: {} commander@2.20.3: {} @@ -6951,11 +6968,11 @@ snapshots: dependencies: is-what: 3.14.1 - core-js-compat@3.46.0: + core-js-compat@3.47.0: dependencies: - browserslist: 4.26.3 + browserslist: 4.28.1 - core-js@3.46.0: {} + core-js@3.47.0: {} core-util-is@1.0.3: {} @@ -6967,67 +6984,65 @@ snapshots: crypto-random-string@2.0.0: {} - cspell-config-lib@9.2.1: + cspell-config-lib@9.4.0: dependencies: - '@cspell/cspell-types': 9.2.1 + '@cspell/cspell-types': 9.4.0 comment-json: 4.4.1 - smol-toml: 1.4.2 - yaml: 2.8.1 + smol-toml: 1.5.2 + yaml: 2.8.2 - cspell-dictionary@9.2.1: + cspell-dictionary@9.4.0: dependencies: - '@cspell/cspell-pipe': 9.2.1 - '@cspell/cspell-types': 9.2.1 - cspell-trie-lib: 9.2.1 - fast-equals: 5.3.2 + '@cspell/cspell-pipe': 9.4.0 + '@cspell/cspell-types': 9.4.0 + cspell-trie-lib: 9.4.0 + fast-equals: 5.3.3 - cspell-glob@9.2.1: + cspell-glob@9.4.0: dependencies: - '@cspell/url': 9.2.1 + '@cspell/url': 9.4.0 picomatch: 4.0.3 - cspell-grammar@9.2.1: + cspell-grammar@9.4.0: dependencies: - '@cspell/cspell-pipe': 9.2.1 - '@cspell/cspell-types': 9.2.1 + '@cspell/cspell-pipe': 9.4.0 + '@cspell/cspell-types': 9.4.0 - cspell-io@9.2.1: + cspell-io@9.4.0: dependencies: - '@cspell/cspell-service-bus': 9.2.1 - '@cspell/url': 9.2.1 + '@cspell/cspell-service-bus': 9.4.0 + '@cspell/url': 9.4.0 - cspell-lib@9.2.1: + cspell-lib@9.4.0: dependencies: - '@cspell/cspell-bundled-dicts': 9.2.1 - '@cspell/cspell-pipe': 9.2.1 - '@cspell/cspell-resolver': 9.2.1 - '@cspell/cspell-types': 9.2.1 - '@cspell/dynamic-import': 9.2.1 - '@cspell/filetypes': 9.2.1 - '@cspell/strong-weak-map': 9.2.1 - '@cspell/url': 9.2.1 + '@cspell/cspell-bundled-dicts': 9.4.0 + '@cspell/cspell-pipe': 9.4.0 + '@cspell/cspell-resolver': 9.4.0 + '@cspell/cspell-types': 9.4.0 + '@cspell/dynamic-import': 9.4.0 + '@cspell/filetypes': 9.4.0 + '@cspell/strong-weak-map': 9.4.0 + '@cspell/url': 9.4.0 clear-module: 4.1.2 - comment-json: 4.4.1 - cspell-config-lib: 9.2.1 - cspell-dictionary: 9.2.1 - cspell-glob: 9.2.1 - cspell-grammar: 9.2.1 - cspell-io: 9.2.1 - cspell-trie-lib: 9.2.1 + cspell-config-lib: 9.4.0 + cspell-dictionary: 9.4.0 + cspell-glob: 9.4.0 + cspell-grammar: 9.4.0 + cspell-io: 9.4.0 + cspell-trie-lib: 9.4.0 env-paths: 3.0.0 - fast-equals: 5.3.2 - gensequence: 7.0.0 + gensequence: 8.0.8 import-fresh: 3.3.1 resolve-from: 5.0.0 vscode-languageserver-textdocument: 1.0.12 vscode-uri: 3.1.0 xdg-basedir: 5.1.0 - cspell-trie-lib@9.2.1: + cspell-trie-lib@9.4.0: dependencies: - '@cspell/cspell-pipe': 9.2.1 - '@cspell/cspell-types': 9.2.1 - gensequence: 7.0.0 + '@cspell/cspell-pipe': 9.4.0 + '@cspell/cspell-types': 9.4.0 + gensequence: 8.0.8 css-declaration-sorter@7.3.0(postcss@8.4.31): dependencies: @@ -7037,7 +7052,7 @@ snapshots: dependencies: utrie: 1.0.2 - csstype@3.1.3: {} + csstype@3.2.3: {} damerau-levenshtein@1.0.8: {} @@ -7130,7 +7145,7 @@ snapshots: dom-helpers@5.2.1: dependencies: '@babel/runtime': 7.28.4 - csstype: 3.1.3 + csstype: 3.2.3 dunder-proto@1.0.1: dependencies: @@ -7142,33 +7157,33 @@ snapshots: dependencies: safe-buffer: 5.2.1 - echarts-jsx@0.5.4(react@19.2.0)(typescript@5.9.3): + echarts-jsx@0.6.0(react@19.2.1)(typescript@5.9.3): dependencies: - echarts: 5.6.0 + echarts: 6.0.0 lodash: 4.17.21 - react: 19.2.0 - web-utility: 4.6.2(typescript@5.9.3) + react: 19.2.1 + web-utility: 4.6.4(typescript@5.9.3) transitivePeerDependencies: - element-internals-polyfill - typescript - echarts@5.6.0: + echarts@6.0.0: dependencies: tslib: 2.3.0 - zrender: 5.6.1 + zrender: 6.0.0 editorjs-html@4.0.5: {} edkit@1.2.7(typescript@5.9.3): dependencies: '@swc/helpers': 0.5.17 - '@types/turndown': 5.0.5 + '@types/turndown': 5.0.6 browser-fs-access: 0.37.0 marked: 15.0.12 regenerator-runtime: 0.14.1 - turndown: 7.2.1 + turndown: 7.2.2 turndown-plugin-gfm: 1.0.2 - web-utility: 4.6.2(typescript@5.9.3) + web-utility: 4.6.4(typescript@5.9.3) transitivePeerDependencies: - element-internals-polyfill - typescript @@ -7179,9 +7194,9 @@ snapshots: dependencies: jake: 10.9.4 - electron-to-chromium@1.5.234: {} + electron-to-chromium@1.5.266: {} - emoji-regex@10.5.0: {} + emoji-regex@10.6.0: {} emoji-regex@9.2.2: {} @@ -7321,65 +7336,64 @@ snapshots: escape-string-regexp@5.0.0: {} - eslint-config-next@15.5.4(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3): + eslint-config-next@16.0.7(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3): dependencies: - '@next/eslint-plugin-next': 15.5.4 - '@rushstack/eslint-patch': 1.13.0 - '@typescript-eslint/eslint-plugin': 8.46.0(@typescript-eslint/parser@8.46.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/parser': 8.46.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) - eslint: 9.37.0(jiti@2.6.1) + '@next/eslint-plugin-next': 16.0.7 + eslint: 9.39.1(jiti@2.6.1) eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.37.0(jiti@2.6.1)) - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.46.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.37.0(jiti@2.6.1)) - eslint-plugin-jsx-a11y: 6.10.2(eslint@9.37.0(jiti@2.6.1)) - eslint-plugin-react: 7.37.5(eslint@9.37.0(jiti@2.6.1)) - eslint-plugin-react-hooks: 5.2.0(eslint@9.37.0(jiti@2.6.1)) + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.1(jiti@2.6.1)) + eslint-plugin-import: 2.32.0(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.1(jiti@2.6.1)) + eslint-plugin-jsx-a11y: 6.10.2(eslint@9.39.1(jiti@2.6.1)) + eslint-plugin-react: 7.37.5(eslint@9.39.1(jiti@2.6.1)) + eslint-plugin-react-hooks: 7.0.1(eslint@9.39.1(jiti@2.6.1)) + globals: 16.4.0 + typescript-eslint: 8.48.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) optionalDependencies: typescript: 5.9.3 transitivePeerDependencies: + - '@typescript-eslint/parser' - eslint-import-resolver-webpack - eslint-plugin-import-x - supports-color - eslint-config-prettier@10.1.8(eslint@9.37.0(jiti@2.6.1)): + eslint-config-prettier@10.1.8(eslint@9.39.1(jiti@2.6.1)): dependencies: - eslint: 9.37.0(jiti@2.6.1) + eslint: 9.39.1(jiti@2.6.1) eslint-import-resolver-node@0.3.9: dependencies: debug: 3.2.7 is-core-module: 2.16.1 - resolve: 1.22.10 + resolve: 1.22.11 transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@9.37.0(jiti@2.6.1)): + eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.1(jiti@2.6.1)): dependencies: '@nolyfill/is-core-module': 1.0.39 debug: 4.4.3 - eslint: 9.37.0(jiti@2.6.1) - get-tsconfig: 4.12.0 + eslint: 9.39.1(jiti@2.6.1) + get-tsconfig: 4.13.0 is-bun-module: 2.0.0 stable-hash: 0.0.5 tinyglobby: 0.2.15 unrs-resolver: 1.11.1 optionalDependencies: - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.46.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.37.0(jiti@2.6.1)) + eslint-plugin-import: 2.32.0(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.1(jiti@2.6.1)) transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.1(@typescript-eslint/parser@8.46.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.37.0(jiti@2.6.1)): + eslint-module-utils@2.12.1(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.1(jiti@2.6.1)): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 8.46.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) - eslint: 9.37.0(jiti@2.6.1) + eslint: 9.39.1(jiti@2.6.1) eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.37.0(jiti@2.6.1)) + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.1(jiti@2.6.1)) transitivePeerDependencies: - supports-color - eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.46.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.37.0(jiti@2.6.1)): + eslint-plugin-import@2.32.0(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.1(jiti@2.6.1)): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.9 @@ -7388,9 +7402,9 @@ snapshots: array.prototype.flatmap: 1.3.3 debug: 3.2.7 doctrine: 2.1.0 - eslint: 9.37.0(jiti@2.6.1) + eslint: 9.39.1(jiti@2.6.1) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.46.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.37.0(jiti@2.6.1)) + eslint-module-utils: 2.12.1(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.1(jiti@2.6.1)) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -7401,14 +7415,12 @@ snapshots: semver: 6.3.1 string.prototype.trimend: 1.0.9 tsconfig-paths: 3.15.0 - optionalDependencies: - '@typescript-eslint/parser': 8.46.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - eslint-plugin-jsx-a11y@6.10.2(eslint@9.37.0(jiti@2.6.1)): + eslint-plugin-jsx-a11y@6.10.2(eslint@9.39.1(jiti@2.6.1)): dependencies: aria-query: 5.3.2 array-includes: 3.1.9 @@ -7418,7 +7430,7 @@ snapshots: axobject-query: 4.1.0 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 - eslint: 9.37.0(jiti@2.6.1) + eslint: 9.39.1(jiti@2.6.1) hasown: 2.0.2 jsx-ast-utils: 3.3.5 language-tags: 1.0.9 @@ -7427,11 +7439,18 @@ snapshots: safe-regex-test: 1.1.0 string.prototype.includes: 2.0.1 - eslint-plugin-react-hooks@5.2.0(eslint@9.37.0(jiti@2.6.1)): + eslint-plugin-react-hooks@7.0.1(eslint@9.39.1(jiti@2.6.1)): dependencies: - eslint: 9.37.0(jiti@2.6.1) + '@babel/core': 7.28.5 + '@babel/parser': 7.28.5 + eslint: 9.39.1(jiti@2.6.1) + hermes-parser: 0.25.1 + zod: 4.1.13 + zod-validation-error: 4.0.2(zod@4.1.13) + transitivePeerDependencies: + - supports-color - eslint-plugin-react@7.37.5(eslint@9.37.0(jiti@2.6.1)): + eslint-plugin-react@7.37.5(eslint@9.39.1(jiti@2.6.1)): dependencies: array-includes: 3.1.9 array.prototype.findlast: 1.2.5 @@ -7439,7 +7458,7 @@ snapshots: array.prototype.tosorted: 1.1.4 doctrine: 2.1.0 es-iterator-helpers: 1.2.1 - eslint: 9.37.0(jiti@2.6.1) + eslint: 9.39.1(jiti@2.6.1) estraverse: 5.3.0 hasown: 2.0.2 jsx-ast-utils: 3.3.5 @@ -7453,9 +7472,9 @@ snapshots: string.prototype.matchall: 4.0.12 string.prototype.repeat: 1.0.0 - eslint-plugin-simple-import-sort@12.1.1(eslint@9.37.0(jiti@2.6.1)): + eslint-plugin-simple-import-sort@12.1.1(eslint@9.39.1(jiti@2.6.1)): dependencies: - eslint: 9.37.0(jiti@2.6.1) + eslint: 9.39.1(jiti@2.6.1) eslint-scope@8.4.0: dependencies: @@ -7466,21 +7485,20 @@ snapshots: eslint-visitor-keys@4.2.1: {} - eslint@9.37.0(jiti@2.6.1): + eslint@9.39.1(jiti@2.6.1): dependencies: - '@eslint-community/eslint-utils': 4.9.0(eslint@9.37.0(jiti@2.6.1)) - '@eslint-community/regexpp': 4.12.1 - '@eslint/config-array': 0.21.0 - '@eslint/config-helpers': 0.4.0 - '@eslint/core': 0.16.0 - '@eslint/eslintrc': 3.3.1 - '@eslint/js': 9.37.0 - '@eslint/plugin-kit': 0.4.0 + '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.1(jiti@2.6.1)) + '@eslint-community/regexpp': 4.12.2 + '@eslint/config-array': 0.21.1 + '@eslint/config-helpers': 0.4.2 + '@eslint/core': 0.17.0 + '@eslint/eslintrc': 3.3.3 + '@eslint/js': 9.39.1 + '@eslint/plugin-kit': 0.4.1 '@humanfs/node': 0.16.7 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.4.3 '@types/estree': 1.0.8 - '@types/json-schema': 7.0.15 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.6 @@ -7550,7 +7568,7 @@ snapshots: astring: 1.9.0 source-map: 0.7.6 - estree-util-value-to-estree@3.4.0: + estree-util-value-to-estree@3.5.0: dependencies: '@types/estree': 1.0.8 @@ -7573,7 +7591,7 @@ snapshots: fast-deep-equal@3.1.3: {} - fast-equals@5.3.2: {} + fast-equals@5.3.3: {} fast-glob@3.3.1: dependencies: @@ -7609,15 +7627,13 @@ snapshots: optionalDependencies: picomatch: 4.0.3 - fflate@0.8.2: {} - file-entry-cache@8.0.0: dependencies: flat-cache: 4.0.1 - file-type@21.0.0: + file-type@21.1.1: dependencies: - '@tokenizer/inflate': 0.2.7 + '@tokenizer/inflate': 0.4.1 strtok3: 10.3.4 token-types: 6.1.1 uint8array-extras: 1.5.0 @@ -7690,7 +7706,7 @@ snapshots: generator-function@2.0.1: {} - gensequence@7.0.0: {} + gensequence@8.0.8: {} gensync@1.0.0-beta.2: {} @@ -7722,7 +7738,7 @@ snapshots: es-errors: 1.3.0 get-intrinsic: 1.3.0 - get-tsconfig@4.12.0: + get-tsconfig@4.13.0: dependencies: resolve-pkg-maps: 1.0.0 @@ -7751,6 +7767,8 @@ snapshots: globals@16.4.0: {} + globals@16.5.0: {} + globalthis@1.0.4: dependencies: define-properties: 1.2.1 @@ -7816,7 +7834,7 @@ snapshots: mdast-util-mdxjs-esm: 2.0.1 property-information: 7.1.0 space-separated-tokens: 2.0.2 - style-to-js: 1.1.18 + style-to-js: 1.1.21 unist-util-position: 5.0.0 zwitch: 2.0.4 transitivePeerDependencies: @@ -7836,7 +7854,7 @@ snapshots: mdast-util-mdxjs-esm: 2.0.1 property-information: 7.1.0 space-separated-tokens: 2.0.2 - style-to-js: 1.1.18 + style-to-js: 1.1.21 unist-util-position: 5.0.0 vfile-message: 4.0.3 transitivePeerDependencies: @@ -7846,6 +7864,12 @@ snapshots: dependencies: '@types/hast': 3.0.4 + hermes-estree@0.25.1: {} + + hermes-parser@0.25.1: + dependencies: + hermes-estree: 0.25.1 + html2canvas@1.4.1: dependencies: css-line-break: 2.1.0 @@ -7864,12 +7888,12 @@ snapshots: statuses: 1.5.0 toidentifier: 1.0.1 - http-errors@2.0.0: + http-errors@2.0.1: dependencies: depd: 2.0.0 inherits: 2.0.4 setprototypeof: 1.2.0 - statuses: 2.0.1 + statuses: 2.0.2 toidentifier: 1.0.1 husky@9.1.7: {} @@ -7887,11 +7911,11 @@ snapshots: idb@7.1.1: {} - idea-react@2.0.0-rc.13(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react-is@16.13.1)(react@19.2.0)(typescript@5.9.3): + idea-react@2.0.0-rc.13(@types/react@19.2.7)(react-dom@19.2.1(react@19.2.1))(react-is@16.13.1)(react@19.2.1)(typescript@5.9.3): dependencies: '@editorjs/editorjs': 2.31.0 '@editorjs/paragraph': 2.11.7 - '@react-editor-js/core': 2.1.0(@editorjs/editorjs@2.31.0)(react@19.2.0) + '@react-editor-js/core': 2.1.0(@editorjs/editorjs@2.31.0)(react@19.2.1) '@swc/helpers': 0.5.17 classnames: 2.5.1 editorjs-html: 4.0.5 @@ -7899,15 +7923,15 @@ snapshots: iterable-observer: 1.1.0 lodash: 4.17.21 mobx: 6.15.0 - mobx-react: 9.2.1(mobx@6.15.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - mobx-react-helper: 0.5.1(mobx@6.15.0)(react@19.2.0)(typescript@5.9.3) + mobx-react: 9.2.1(mobx@6.15.0)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + mobx-react-helper: 0.5.1(mobx@6.15.0)(react@19.2.1)(typescript@5.9.3) prismjs: 1.30.0 - react: 19.2.0 - react-bootstrap: 2.10.10(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - react-dom: 19.2.0(react@19.2.0) - react-editor-js: 2.1.0(@editorjs/editorjs@2.31.0)(@editorjs/paragraph@2.11.7)(react@19.2.0) - react-element-to-jsx-string: 17.0.1(react-dom@19.2.0(react@19.2.0))(react-is@16.13.1)(react@19.2.0) - web-utility: 4.6.2(typescript@5.9.3) + react: 19.2.1 + react-bootstrap: 2.10.10(@types/react@19.2.7)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + react-dom: 19.2.1(react@19.2.1) + react-editor-js: 2.1.0(@editorjs/editorjs@2.31.0)(@editorjs/paragraph@2.11.7)(react@19.2.1) + react-element-to-jsx-string: 17.0.1(react-dom@19.2.1(react@19.2.1))(react-is@16.13.1)(react@19.2.1) + web-utility: 4.6.4(typescript@5.9.3) transitivePeerDependencies: - '@types/react' - element-internals-polyfill @@ -7924,7 +7948,7 @@ snapshots: image-size@0.5.5: optional: true - immutable@5.1.3: {} + immutable@5.1.4: {} import-fresh@3.3.1: dependencies: @@ -7946,7 +7970,7 @@ snapshots: ini@4.1.1: {} - inline-style-parser@0.2.4: {} + inline-style-parser@0.2.7: {} internal-slot@1.1.0: dependencies: @@ -8140,13 +8164,13 @@ snapshots: jest-worker@26.6.2: dependencies: - '@types/node': 22.18.10 + '@types/node': 22.19.1 merge-stream: 2.0.0 supports-color: 7.2.0 jest-worker@27.5.1: dependencies: - '@types/node': 22.18.10 + '@types/node': 22.19.1 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -8154,7 +8178,7 @@ snapshots: js-tokens@4.0.0: {} - js-yaml@4.1.0: + js-yaml@4.1.1: dependencies: argparse: 2.0.1 @@ -8184,9 +8208,9 @@ snapshots: jsonpointer@5.0.1: {} - jsonwebtoken@9.0.2: + jsonwebtoken@9.0.3: dependencies: - jws: 3.2.2 + jws: 4.0.1 lodash.includes: 4.3.0 lodash.isboolean: 3.0.3 lodash.isinteger: 4.0.4 @@ -8204,15 +8228,15 @@ snapshots: object.assign: 4.1.7 object.values: 1.2.1 - jwa@1.4.2: + jwa@2.0.1: dependencies: buffer-equal-constant-time: 1.0.1 ecdsa-sig-formatter: 1.0.11 safe-buffer: 5.2.1 - jws@3.2.2: + jws@4.0.1: dependencies: - jwa: 1.4.2 + jwa: 2.0.1 safe-buffer: 5.2.1 keygrip@1.1.0: @@ -8227,7 +8251,7 @@ snapshots: koa-compose@4.1.0: {} - koa@3.0.1: + koa@3.1.1: dependencies: accepts: 1.3.8 content-disposition: 0.5.4 @@ -8239,22 +8263,22 @@ snapshots: escape-html: 1.0.3 fresh: 0.5.2 http-assert: 1.5.0 - http-errors: 2.0.0 + http-errors: 2.0.1 koa-compose: 4.1.0 - mime-types: 3.0.1 + mime-types: 3.0.2 on-finished: 2.4.1 parseurl: 1.3.3 statuses: 2.0.2 type-is: 2.0.1 vary: 1.1.2 - koajax@3.1.2(core-js@3.46.0)(typescript@5.9.3): + koajax@3.1.2(core-js@3.47.0)(typescript@5.9.3): dependencies: '@swc/helpers': 0.5.17 - core-js: 3.46.0 + core-js: 3.47.0 regenerator-runtime: 0.14.1 web-streams-polyfill: 4.2.0 - web-utility: 4.6.2(typescript@5.9.3) + web-utility: 4.6.4(typescript@5.9.3) transitivePeerDependencies: - element-internals-polyfill - typescript @@ -8296,19 +8320,19 @@ snapshots: dependencies: '@swc/helpers': 0.5.17 - lint-staged@16.2.4: + lint-staged@16.2.7: dependencies: - commander: 14.0.1 - listr2: 9.0.4 + commander: 14.0.2 + listr2: 9.0.5 micromatch: 4.0.8 nano-spawn: 2.0.0 pidtree: 0.6.0 string-argv: 0.3.2 - yaml: 2.8.1 + yaml: 2.8.2 - listr2@9.0.4: + listr2@9.0.5: dependencies: - cli-truncate: 5.1.0 + cli-truncate: 5.1.1 colorette: 2.0.20 eventemitter3: 5.0.1 log-update: 6.1.0 @@ -8357,7 +8381,7 @@ snapshots: log-update@6.1.0: dependencies: - ansi-escapes: 7.1.1 + ansi-escapes: 7.2.0 cli-cursor: 5.0.0 slice-ansi: 7.1.2 strip-ansi: 7.1.2 @@ -8391,7 +8415,7 @@ snapshots: marked@15.0.12: {} - marked@16.4.0: {} + marked@17.0.1: {} math-intrinsics@1.1.0: {} @@ -8475,9 +8499,9 @@ snapshots: mdast-util-phrasing@4.1.0: dependencies: '@types/mdast': 4.0.4 - unist-util-is: 6.0.0 + unist-util-is: 6.0.1 - mdast-util-to-hast@13.2.0: + mdast-util-to-hast@13.2.1: dependencies: '@types/hast': 3.0.4 '@types/mdast': 4.0.4 @@ -8739,7 +8763,7 @@ snapshots: dependencies: mime-db: 1.52.0 - mime-types@3.0.1: + mime-types@3.0.2: dependencies: mime-db: 1.54.0 @@ -8750,7 +8774,7 @@ snapshots: mimic-function@5.0.1: {} - minimatch@10.0.3: + minimatch@10.1.1: dependencies: '@isaacs/brace-expansion': 5.0.0 @@ -8768,16 +8792,16 @@ snapshots: minimist@1.2.8: {} - mobx-github@0.6.0(core-js@3.46.0)(typescript@5.9.3): + mobx-github@0.6.2(core-js@3.47.0)(typescript@5.9.3): dependencies: '@octokit/openapi-types': 26.0.0 '@swc/helpers': 0.5.17 - '@types/lodash': 4.17.20 - koajax: 3.1.2(core-js@3.46.0)(typescript@5.9.3) + '@types/lodash': 4.17.21 + koajax: 3.1.2(core-js@3.47.0)(typescript@5.9.3) lodash: 4.17.21 mobx: 6.15.0 - mobx-restful: 2.1.3(core-js@3.46.0)(mobx@6.15.0)(typescript@5.9.3) - web-utility: 4.6.2(typescript@5.9.3) + mobx-restful: 2.1.4(core-js@3.47.0)(mobx@6.15.0)(typescript@5.9.3) + web-utility: 4.6.4(typescript@5.9.3) transitivePeerDependencies: - core-js - element-internals-polyfill @@ -8787,73 +8811,73 @@ snapshots: mobx-i18n@0.7.2(mobx@6.15.0)(typescript@5.9.3): dependencies: '@swc/helpers': 0.5.17 - '@types/node': 22.18.10 + '@types/node': 22.19.1 mobx: 6.15.0 regenerator-runtime: 0.14.1 - web-utility: 4.6.2(typescript@5.9.3) + web-utility: 4.6.4(typescript@5.9.3) transitivePeerDependencies: - element-internals-polyfill - typescript - mobx-lark@2.4.2(core-js@3.46.0)(react@19.2.0)(typescript@5.9.3): + mobx-lark@2.5.0(core-js@3.47.0)(react@19.2.1)(typescript@5.9.3): dependencies: '@swc/helpers': 0.5.17 - '@types/react': 19.2.2 - koajax: 3.1.2(core-js@3.46.0)(typescript@5.9.3) + '@types/react': 19.2.7 + koajax: 3.1.2(core-js@3.47.0)(typescript@5.9.3) lodash.memoize: 4.1.2 mobx: 6.15.0 - mobx-restful: 2.1.3(core-js@3.46.0)(mobx@6.15.0)(typescript@5.9.3) - react: 19.2.0 + mobx-restful: 2.1.4(core-js@3.47.0)(mobx@6.15.0)(typescript@5.9.3) + react: 19.2.1 regenerator-runtime: 0.14.1 - web-utility: 4.6.2(typescript@5.9.3) + web-utility: 4.6.4(typescript@5.9.3) transitivePeerDependencies: - core-js - element-internals-polyfill - jsdom - typescript - mobx-react-helper@0.5.1(mobx@6.15.0)(react@19.2.0)(typescript@5.9.3): + mobx-react-helper@0.5.1(mobx@6.15.0)(react@19.2.1)(typescript@5.9.3): dependencies: '@swc/helpers': 0.5.17 lodash.isequalwith: 4.4.0 mobx: 6.15.0 - react: 19.2.0 - web-utility: 4.6.2(typescript@5.9.3) + react: 19.2.1 + web-utility: 4.6.4(typescript@5.9.3) transitivePeerDependencies: - element-internals-polyfill - typescript - mobx-react-lite@4.1.1(mobx@6.15.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0): + mobx-react-lite@4.1.1(mobx@6.15.0)(react-dom@19.2.1(react@19.2.1))(react@19.2.1): dependencies: mobx: 6.15.0 - react: 19.2.0 - use-sync-external-store: 1.6.0(react@19.2.0) + react: 19.2.1 + use-sync-external-store: 1.6.0(react@19.2.1) optionalDependencies: - react-dom: 19.2.0(react@19.2.0) + react-dom: 19.2.1(react@19.2.1) - mobx-react@9.2.1(mobx@6.15.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0): + mobx-react@9.2.1(mobx@6.15.0)(react-dom@19.2.1(react@19.2.1))(react@19.2.1): dependencies: mobx: 6.15.0 - mobx-react-lite: 4.1.1(mobx@6.15.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - react: 19.2.0 + mobx-react-lite: 4.1.1(mobx@6.15.0)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + react: 19.2.1 optionalDependencies: - react-dom: 19.2.0(react@19.2.0) + react-dom: 19.2.1(react@19.2.1) - mobx-restful-table@2.5.4(@types/react@19.2.2)(core-js@3.46.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3): + mobx-restful-table@2.6.3(@types/react@19.2.7)(core-js@3.47.0)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(typescript@5.9.3): dependencies: '@swc/helpers': 0.5.17 classnames: 2.5.1 lodash: 4.17.21 mobx: 6.15.0 mobx-i18n: 0.7.2(mobx@6.15.0)(typescript@5.9.3) - mobx-react: 9.2.1(mobx@6.15.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - mobx-react-helper: 0.5.1(mobx@6.15.0)(react@19.2.0)(typescript@5.9.3) - mobx-restful: 2.1.3(core-js@3.46.0)(mobx@6.15.0)(typescript@5.9.3) - react: 19.2.0 - react-bootstrap: 2.10.10(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - react-bootstrap-editor: 2.1.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3) + mobx-react: 9.2.1(mobx@6.15.0)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + mobx-react-helper: 0.5.1(mobx@6.15.0)(react@19.2.1)(typescript@5.9.3) + mobx-restful: 2.1.4(core-js@3.47.0)(mobx@6.15.0)(typescript@5.9.3) + react: 19.2.1 + react-bootstrap: 2.10.10(@types/react@19.2.7)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + react-bootstrap-editor: 2.1.1(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(typescript@5.9.3) regenerator-runtime: 0.14.1 - web-utility: 4.6.2(typescript@5.9.3) + web-utility: 4.6.4(typescript@5.9.3) transitivePeerDependencies: - '@types/react' - core-js @@ -8863,30 +8887,30 @@ snapshots: - react-native - typescript - mobx-restful@2.1.3(core-js@3.46.0)(mobx@6.15.0)(typescript@5.9.3): + mobx-restful@2.1.4(core-js@3.47.0)(mobx@6.15.0)(typescript@5.9.3): dependencies: '@swc/helpers': 0.5.17 idb-keyval: 6.2.2 - koajax: 3.1.2(core-js@3.46.0)(typescript@5.9.3) + koajax: 3.1.2(core-js@3.47.0)(typescript@5.9.3) mobx: 6.15.0 regenerator-runtime: 0.14.1 - web-utility: 4.6.2(typescript@5.9.3) + web-utility: 4.6.4(typescript@5.9.3) transitivePeerDependencies: - core-js - element-internals-polyfill - jsdom - typescript - mobx-strapi@0.8.1(core-js@3.46.0)(typescript@5.9.3): + mobx-strapi@0.8.1(core-js@3.47.0)(typescript@5.9.3): dependencies: '@swc/helpers': 0.5.17 idb-keyval: 6.2.2 - koajax: 3.1.2(core-js@3.46.0)(typescript@5.9.3) + koajax: 3.1.2(core-js@3.47.0)(typescript@5.9.3) mobx: 6.15.0 - mobx-restful: 2.1.3(core-js@3.46.0)(mobx@6.15.0)(typescript@5.9.3) + mobx-restful: 2.1.4(core-js@3.47.0)(mobx@6.15.0)(typescript@5.9.3) qs: 6.14.0 regenerator-runtime: 0.14.1 - web-utility: 4.6.2(typescript@5.9.3) + web-utility: 4.6.4(typescript@5.9.3) transitivePeerDependencies: - core-js - element-internals-polyfill @@ -8908,18 +8932,18 @@ snapshots: needle@3.3.1: dependencies: iconv-lite: 0.6.3 - sax: 1.4.1 + sax: 1.4.3 optional: true negotiator@0.6.3: {} - next-pwa@5.6.0(@babel/core@7.28.4)(next@15.5.4(@babel/core@7.28.4)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(sass@1.93.2)): + next-pwa@5.6.0(@babel/core@7.28.5)(next@16.0.7(@babel/core@7.28.5)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(sass@1.94.2)): dependencies: - babel-loader: 8.4.1(@babel/core@7.28.4) + babel-loader: 8.4.1(@babel/core@7.28.5) clean-webpack-plugin: 4.0.0 globby: 11.1.0 - next: 15.5.4(@babel/core@7.28.4)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(sass@1.93.2) - terser-webpack-plugin: 5.3.14 + next: 16.0.7(@babel/core@7.28.5)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(sass@1.94.2) + terser-webpack-plugin: 5.3.15 workbox-webpack-plugin: 6.6.0 workbox-window: 6.6.0 transitivePeerDependencies: @@ -8931,52 +8955,52 @@ snapshots: - uglify-js - webpack - next-ssr-middleware@1.0.3(next@15.5.4(@babel/core@7.28.4)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(sass@1.93.2))(react@19.2.0)(typescript@5.9.3): + next-ssr-middleware@1.0.3(next@16.0.7(@babel/core@7.28.5)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(sass@1.94.2))(react@19.2.1)(typescript@5.9.3): dependencies: - '@koa/bodyparser': 6.0.0(koa@3.0.1) - '@koa/router': 14.0.0 + '@koa/bodyparser': 6.0.0(koa@3.1.1) + '@koa/router': 15.0.0 '@types/jsonwebtoken': 9.0.10 - '@types/koa': 3.0.0 - '@types/koa__router': 12.0.4 - '@types/react': 19.2.2 - jsonwebtoken: 9.0.2 - koa: 3.0.1 - next: 15.5.4(@babel/core@7.28.4)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(sass@1.93.2) - react: 19.2.0 + '@types/koa': 3.0.1 + '@types/koa__router': 12.0.5 + '@types/react': 19.2.7 + jsonwebtoken: 9.0.3 + koa: 3.1.1 + next: 16.0.7(@babel/core@7.28.5)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(sass@1.94.2) + react: 19.2.1 tslib: 2.8.1 - web-utility: 4.6.2(typescript@5.9.3) + web-utility: 4.6.4(typescript@5.9.3) transitivePeerDependencies: - element-internals-polyfill - supports-color - typescript - next-with-less@3.0.1(less-loader@12.3.0(less@4.4.2))(less@4.4.2)(next@15.5.4(@babel/core@7.28.4)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(sass@1.93.2)): + next-with-less@3.0.1(less-loader@12.3.0(less@4.4.2))(less@4.4.2)(next@16.0.7(@babel/core@7.28.5)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(sass@1.94.2)): dependencies: clone-deep: 4.0.1 less: 4.4.2 less-loader: 12.3.0(less@4.4.2) - next: 15.5.4(@babel/core@7.28.4)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(sass@1.93.2) + next: 16.0.7(@babel/core@7.28.5)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(sass@1.94.2) - next@15.5.4(@babel/core@7.28.4)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(sass@1.93.2): + next@16.0.7(@babel/core@7.28.5)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(sass@1.94.2): dependencies: - '@next/env': 15.5.4 + '@next/env': 16.0.7 '@swc/helpers': 0.5.15 - caniuse-lite: 1.0.30001750 + caniuse-lite: 1.0.30001759 postcss: 8.4.31 - react: 19.2.0 - react-dom: 19.2.0(react@19.2.0) - styled-jsx: 5.1.6(@babel/core@7.28.4)(react@19.2.0) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) + styled-jsx: 5.1.6(@babel/core@7.28.5)(react@19.2.1) optionalDependencies: - '@next/swc-darwin-arm64': 15.5.4 - '@next/swc-darwin-x64': 15.5.4 - '@next/swc-linux-arm64-gnu': 15.5.4 - '@next/swc-linux-arm64-musl': 15.5.4 - '@next/swc-linux-x64-gnu': 15.5.4 - '@next/swc-linux-x64-musl': 15.5.4 - '@next/swc-win32-arm64-msvc': 15.5.4 - '@next/swc-win32-x64-msvc': 15.5.4 - sass: 1.93.2 - sharp: 0.34.4 + '@next/swc-darwin-arm64': 16.0.7 + '@next/swc-darwin-x64': 16.0.7 + '@next/swc-linux-arm64-gnu': 16.0.7 + '@next/swc-linux-arm64-musl': 16.0.7 + '@next/swc-linux-x64-gnu': 16.0.7 + '@next/swc-linux-x64-musl': 16.0.7 + '@next/swc-win32-arm64-msvc': 16.0.7 + '@next/swc-win32-x64-msvc': 16.0.7 + sass: 1.94.2 + sharp: 0.34.5 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros @@ -8984,7 +9008,7 @@ snapshots: node-addon-api@7.1.1: optional: true - node-releases@2.0.23: {} + node-releases@2.0.27: {} object-assign@4.1.1: {} @@ -9040,19 +9064,19 @@ snapshots: dependencies: mimic-function: 5.0.1 - open-react-map@0.9.1(core-js@3.46.0)(mobx-react@9.2.1(mobx@6.15.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(mobx@6.15.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3): + open-react-map@0.9.1(core-js@3.47.0)(mobx-react@9.2.1(mobx@6.15.0)(react-dom@19.2.1(react@19.2.1))(react@19.2.1))(mobx@6.15.0)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(typescript@5.9.3): dependencies: '@swc/helpers': 0.5.17 '@types/leaflet': 1.9.21 - koajax: 3.1.2(core-js@3.46.0)(typescript@5.9.3) + koajax: 3.1.2(core-js@3.47.0)(typescript@5.9.3) leaflet: 1.9.4 mobx: 6.15.0 - mobx-react: 9.2.1(mobx@6.15.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - mobx-react-helper: 0.5.1(mobx@6.15.0)(react@19.2.0)(typescript@5.9.3) - react: 19.2.0 - react-dom: 19.2.0(react@19.2.0) - react-leaflet: 5.0.0(leaflet@1.9.4)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - web-utility: 4.6.2(typescript@5.9.3) + mobx-react: 9.2.1(mobx@6.15.0)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + mobx-react-helper: 0.5.1(mobx@6.15.0)(react@19.2.1)(typescript@5.9.3) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) + react-leaflet: 5.0.0(leaflet@1.9.4)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + web-utility: 4.6.4(typescript@5.9.3) transitivePeerDependencies: - core-js - element-internals-polyfill @@ -9170,24 +9194,24 @@ snapshots: prelude-ls@1.2.1: {} - prettier-plugin-css-order@2.1.2(postcss@8.4.31)(prettier@3.6.2): + prettier-plugin-css-order@2.1.2(postcss@8.4.31)(prettier@3.7.4): dependencies: css-declaration-sorter: 7.3.0(postcss@8.4.31) postcss-less: 6.0.0(postcss@8.4.31) postcss-scss: 4.0.9(postcss@8.4.31) - prettier: 3.6.2 + prettier: 3.7.4 transitivePeerDependencies: - postcss - prettier@3.6.2: {} + prettier@3.7.4: {} pretty-bytes@5.6.0: {} prismjs@1.30.0: {} - prop-types-extra@1.1.1(react@19.2.0): + prop-types-extra@1.1.1(react@19.2.1): dependencies: - react: 19.2.0 + react: 19.2.1 react-is: 16.13.1 warning: 4.0.3 @@ -9214,99 +9238,99 @@ snapshots: dependencies: safe-buffer: 5.2.1 - raw-body@2.5.2: + raw-body@2.5.3: dependencies: bytes: 3.1.2 - http-errors: 2.0.0 + http-errors: 2.0.1 iconv-lite: 0.4.24 unpipe: 1.0.0 - react-bootstrap-editor@2.1.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3): + react-bootstrap-editor@2.1.1(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(typescript@5.9.3): dependencies: '@swc/helpers': 0.5.17 edkit: 1.2.7(typescript@5.9.3) mobx: 6.15.0 - mobx-react: 9.2.1(mobx@6.15.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - mobx-react-helper: 0.5.1(mobx@6.15.0)(react@19.2.0)(typescript@5.9.3) - react: 19.2.0 - react-dom: 19.2.0(react@19.2.0) - web-utility: 4.6.2(typescript@5.9.3) + mobx-react: 9.2.1(mobx@6.15.0)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + mobx-react-helper: 0.5.1(mobx@6.15.0)(react@19.2.1)(typescript@5.9.3) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) + web-utility: 4.6.4(typescript@5.9.3) transitivePeerDependencies: - element-internals-polyfill - react-native - typescript - react-bootstrap@2.10.10(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0): + react-bootstrap@2.10.10(@types/react@19.2.7)(react-dom@19.2.1(react@19.2.1))(react@19.2.1): dependencies: '@babel/runtime': 7.28.4 - '@restart/hooks': 0.4.16(react@19.2.0) - '@restart/ui': 1.9.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + '@restart/hooks': 0.4.16(react@19.2.1) + '@restart/ui': 1.9.4(react-dom@19.2.1(react@19.2.1))(react@19.2.1) '@types/prop-types': 15.7.15 - '@types/react-transition-group': 4.4.12(@types/react@19.2.2) + '@types/react-transition-group': 4.4.12(@types/react@19.2.7) classnames: 2.5.1 dom-helpers: 5.2.1 invariant: 2.2.4 prop-types: 15.8.1 - prop-types-extra: 1.1.1(react@19.2.0) - react: 19.2.0 - react-dom: 19.2.0(react@19.2.0) - react-transition-group: 4.4.5(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - uncontrollable: 7.2.1(react@19.2.0) + prop-types-extra: 1.1.1(react@19.2.1) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) + react-transition-group: 4.4.5(react-dom@19.2.1(react@19.2.1))(react@19.2.1) + uncontrollable: 7.2.1(react@19.2.1) warning: 4.0.3 optionalDependencies: - '@types/react': 19.2.2 + '@types/react': 19.2.7 - react-dom@19.2.0(react@19.2.0): + react-dom@19.2.1(react@19.2.1): dependencies: - react: 19.2.0 + react: 19.2.1 scheduler: 0.27.0 - react-editor-js@2.1.0(@editorjs/editorjs@2.31.0)(@editorjs/paragraph@2.11.7)(react@19.2.0): + react-editor-js@2.1.0(@editorjs/editorjs@2.31.0)(@editorjs/paragraph@2.11.7)(react@19.2.1): dependencies: - '@react-editor-js/client': 2.1.0(@editorjs/editorjs@2.31.0)(@editorjs/paragraph@2.11.7)(react@19.2.0) - '@react-editor-js/core': 2.1.0(@editorjs/editorjs@2.31.0)(react@19.2.0) - '@react-editor-js/server': 2.1.0(@editorjs/editorjs@2.31.0)(@editorjs/paragraph@2.11.7)(react@19.2.0) + '@react-editor-js/client': 2.1.0(@editorjs/editorjs@2.31.0)(@editorjs/paragraph@2.11.7)(react@19.2.1) + '@react-editor-js/core': 2.1.0(@editorjs/editorjs@2.31.0)(react@19.2.1) + '@react-editor-js/server': 2.1.0(@editorjs/editorjs@2.31.0)(@editorjs/paragraph@2.11.7)(react@19.2.1) transitivePeerDependencies: - '@editorjs/editorjs' - '@editorjs/paragraph' - react - react-element-to-jsx-string@17.0.1(react-dom@19.2.0(react@19.2.0))(react-is@16.13.1)(react@19.2.0): + react-element-to-jsx-string@17.0.1(react-dom@19.2.1(react@19.2.1))(react-is@16.13.1)(react@19.2.1): dependencies: '@base2/pretty-print-object': 1.0.2 is-plain-object: 5.0.0 - react: 19.2.0 - react-dom: 19.2.0(react@19.2.0) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) react-is: 16.13.1 react-is@16.13.1: {} - react-leaflet@5.0.0(leaflet@1.9.4)(react-dom@19.2.0(react@19.2.0))(react@19.2.0): + react-leaflet@5.0.0(leaflet@1.9.4)(react-dom@19.2.1(react@19.2.1))(react@19.2.1): dependencies: - '@react-leaflet/core': 3.0.0(leaflet@1.9.4)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + '@react-leaflet/core': 3.0.0(leaflet@1.9.4)(react-dom@19.2.1(react@19.2.1))(react@19.2.1) leaflet: 1.9.4 - react: 19.2.0 - react-dom: 19.2.0(react@19.2.0) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) react-lifecycles-compat@3.0.4: {} - react-transition-group@4.4.5(react-dom@19.2.0(react@19.2.0))(react@19.2.0): + react-transition-group@4.4.5(react-dom@19.2.1(react@19.2.1))(react@19.2.1): dependencies: '@babel/runtime': 7.28.4 dom-helpers: 5.2.1 loose-envify: 1.4.0 prop-types: 15.8.1 - react: 19.2.0 - react-dom: 19.2.0(react@19.2.0) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) - react-typed-component@1.0.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0): + react-typed-component@1.0.6(react-dom@19.2.1(react@19.2.1))(react@19.2.1): dependencies: prop-types: 15.8.1 - react: 19.2.0 - react-dom: 19.2.0(react@19.2.0) + react: 19.2.1 + react-dom: 19.2.1(react@19.2.1) typed.js: 2.1.0 - react@19.2.0: {} + react@19.2.1: {} readdirp@4.1.2: {} @@ -9402,11 +9426,11 @@ snapshots: remark-mdx-frontmatter@5.2.0: dependencies: '@types/mdast': 4.0.4 - estree-util-value-to-estree: 3.4.0 + estree-util-value-to-estree: 3.5.0 toml: 3.0.0 unified: 11.0.5 unist-util-mdx-define: 1.1.2 - yaml: 2.8.1 + yaml: 2.8.2 remark-mdx@3.1.1: dependencies: @@ -9428,7 +9452,7 @@ snapshots: dependencies: '@types/hast': 3.0.4 '@types/mdast': 4.0.4 - mdast-util-to-hast: 13.2.0 + mdast-util-to-hast: 13.2.1 unified: 11.0.5 vfile: 6.0.3 @@ -9440,7 +9464,7 @@ snapshots: resolve-pkg-maps@1.0.0: {} - resolve@1.22.10: + resolve@1.22.11: dependencies: is-core-module: 2.16.1 path-parse: 1.0.7 @@ -9471,7 +9495,7 @@ snapshots: jest-worker: 26.6.2 rollup: 2.79.2 serialize-javascript: 4.0.0 - terser: 5.44.0 + terser: 5.44.1 rollup@2.79.2: optionalDependencies: @@ -9504,15 +9528,15 @@ snapshots: safer-buffer@2.1.2: {} - sass@1.93.2: + sass@1.94.2: dependencies: chokidar: 4.0.3 - immutable: 5.1.3 + immutable: 5.1.4 source-map-js: 1.2.1 optionalDependencies: '@parcel/watcher': 2.5.1 - sax@1.4.1: + sax@1.4.3: optional: true scheduler@0.27.0: {} @@ -9573,34 +9597,36 @@ snapshots: dependencies: kind-of: 6.0.3 - sharp@0.34.4: + sharp@0.34.5: dependencies: '@img/colour': 1.0.0 detect-libc: 2.1.2 semver: 7.7.3 optionalDependencies: - '@img/sharp-darwin-arm64': 0.34.4 - '@img/sharp-darwin-x64': 0.34.4 - '@img/sharp-libvips-darwin-arm64': 1.2.3 - '@img/sharp-libvips-darwin-x64': 1.2.3 - '@img/sharp-libvips-linux-arm': 1.2.3 - '@img/sharp-libvips-linux-arm64': 1.2.3 - '@img/sharp-libvips-linux-ppc64': 1.2.3 - '@img/sharp-libvips-linux-s390x': 1.2.3 - '@img/sharp-libvips-linux-x64': 1.2.3 - '@img/sharp-libvips-linuxmusl-arm64': 1.2.3 - '@img/sharp-libvips-linuxmusl-x64': 1.2.3 - '@img/sharp-linux-arm': 0.34.4 - '@img/sharp-linux-arm64': 0.34.4 - '@img/sharp-linux-ppc64': 0.34.4 - '@img/sharp-linux-s390x': 0.34.4 - '@img/sharp-linux-x64': 0.34.4 - '@img/sharp-linuxmusl-arm64': 0.34.4 - '@img/sharp-linuxmusl-x64': 0.34.4 - '@img/sharp-wasm32': 0.34.4 - '@img/sharp-win32-arm64': 0.34.4 - '@img/sharp-win32-ia32': 0.34.4 - '@img/sharp-win32-x64': 0.34.4 + '@img/sharp-darwin-arm64': 0.34.5 + '@img/sharp-darwin-x64': 0.34.5 + '@img/sharp-libvips-darwin-arm64': 1.2.4 + '@img/sharp-libvips-darwin-x64': 1.2.4 + '@img/sharp-libvips-linux-arm': 1.2.4 + '@img/sharp-libvips-linux-arm64': 1.2.4 + '@img/sharp-libvips-linux-ppc64': 1.2.4 + '@img/sharp-libvips-linux-riscv64': 1.2.4 + '@img/sharp-libvips-linux-s390x': 1.2.4 + '@img/sharp-libvips-linux-x64': 1.2.4 + '@img/sharp-libvips-linuxmusl-arm64': 1.2.4 + '@img/sharp-libvips-linuxmusl-x64': 1.2.4 + '@img/sharp-linux-arm': 0.34.5 + '@img/sharp-linux-arm64': 0.34.5 + '@img/sharp-linux-ppc64': 0.34.5 + '@img/sharp-linux-riscv64': 0.34.5 + '@img/sharp-linux-s390x': 0.34.5 + '@img/sharp-linux-x64': 0.34.5 + '@img/sharp-linuxmusl-arm64': 0.34.5 + '@img/sharp-linuxmusl-x64': 0.34.5 + '@img/sharp-wasm32': 0.34.5 + '@img/sharp-win32-arm64': 0.34.5 + '@img/sharp-win32-ia32': 0.34.5 + '@img/sharp-win32-x64': 0.34.5 optional: true shebang-command@2.0.0: @@ -9646,7 +9672,7 @@ snapshots: ansi-styles: 6.2.3 is-fullwidth-code-point: 5.1.0 - smol-toml@1.4.2: {} + smol-toml@1.5.2: {} source-list-map@2.0.1: {} @@ -9673,8 +9699,6 @@ snapshots: statuses@1.5.0: {} - statuses@2.0.1: {} - statuses@2.0.2: {} stop-iteration-iterator@1.1.0: @@ -9686,7 +9710,7 @@ snapshots: string-width@7.2.0: dependencies: - emoji-regex: 10.5.0 + emoji-regex: 10.6.0 get-east-asian-width: 1.4.0 strip-ansi: 7.1.2 @@ -9770,20 +9794,20 @@ snapshots: dependencies: '@tokenizer/token': 0.3.0 - style-to-js@1.1.18: + style-to-js@1.1.21: dependencies: - style-to-object: 1.0.11 + style-to-object: 1.0.14 - style-to-object@1.0.11: + style-to-object@1.0.14: dependencies: - inline-style-parser: 0.2.4 + inline-style-parser: 0.2.7 - styled-jsx@5.1.6(@babel/core@7.28.4)(react@19.2.0): + styled-jsx@5.1.6(@babel/core@7.28.5)(react@19.2.1): dependencies: client-only: 0.0.1 - react: 19.2.0 + react: 19.2.1 optionalDependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 supports-color@7.2.0: dependencies: @@ -9808,15 +9832,15 @@ snapshots: type-fest: 0.16.0 unique-string: 2.0.0 - terser-webpack-plugin@5.3.14: + terser-webpack-plugin@5.3.15: dependencies: '@jridgewell/trace-mapping': 0.3.31 jest-worker: 27.5.1 schema-utils: 4.3.3 serialize-javascript: 6.0.2 - terser: 5.44.0 + terser: 5.44.1 - terser@5.44.0: + terser@5.44.1: dependencies: '@jridgewell/source-map': 0.3.11 acorn: 8.15.0 @@ -9873,7 +9897,7 @@ snapshots: turndown-plugin-gfm@1.0.2: {} - turndown@7.2.1: + turndown@7.2.2: dependencies: '@mixmark-io/domino': 2.2.0 @@ -9892,7 +9916,7 @@ snapshots: dependencies: content-type: 1.0.5 media-typer: 1.1.0 - mime-types: 3.0.1 + mime-types: 3.0.2 typed-array-buffer@1.0.3: dependencies: @@ -9929,13 +9953,13 @@ snapshots: typed.js@2.1.0: {} - typescript-eslint@8.46.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3): + typescript-eslint@8.48.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.46.0(@typescript-eslint/parser@8.46.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/parser': 8.46.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/typescript-estree': 8.46.0(typescript@5.9.3) - '@typescript-eslint/utils': 8.46.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3) - eslint: 9.37.0(jiti@2.6.1) + '@typescript-eslint/eslint-plugin': 8.48.1(@typescript-eslint/parser@8.48.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/parser': 8.48.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/typescript-estree': 8.48.1(typescript@5.9.3) + '@typescript-eslint/utils': 8.48.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) + eslint: 9.39.1(jiti@2.6.1) typescript: 5.9.3 transitivePeerDependencies: - supports-color @@ -9951,17 +9975,17 @@ snapshots: has-symbols: 1.1.0 which-boxed-primitive: 1.1.1 - uncontrollable@7.2.1(react@19.2.0): + uncontrollable@7.2.1(react@19.2.1): dependencies: '@babel/runtime': 7.28.4 - '@types/react': 19.2.2 + '@types/react': 19.2.7 invariant: 2.2.4 - react: 19.2.0 + react: 19.2.1 react-lifecycles-compat: 3.0.4 - uncontrollable@8.0.4(react@19.2.0): + uncontrollable@8.0.4(react@19.2.1): dependencies: - react: 19.2.0 + react: 19.2.1 undici-types@6.21.0: {} @@ -9992,7 +10016,7 @@ snapshots: dependencies: crypto-random-string: 2.0.0 - unist-util-is@6.0.0: + unist-util-is@6.0.1: dependencies: '@types/unist': 3.0.3 @@ -10018,16 +10042,16 @@ snapshots: dependencies: '@types/unist': 3.0.3 - unist-util-visit-parents@6.0.1: + unist-util-visit-parents@6.0.2: dependencies: '@types/unist': 3.0.3 - unist-util-is: 6.0.0 + unist-util-is: 6.0.1 unist-util-visit@5.0.0: dependencies: '@types/unist': 3.0.3 - unist-util-is: 6.0.0 - unist-util-visit-parents: 6.0.1 + unist-util-is: 6.0.1 + unist-util-visit-parents: 6.0.2 universalify@2.0.1: {} @@ -10059,9 +10083,9 @@ snapshots: upath@1.2.0: {} - update-browserslist-db@1.1.3(browserslist@4.26.3): + update-browserslist-db@1.2.2(browserslist@4.28.1): dependencies: - browserslist: 4.26.3 + browserslist: 4.28.1 escalade: 3.2.0 picocolors: 1.1.1 @@ -10069,9 +10093,9 @@ snapshots: dependencies: punycode: 2.3.1 - use-sync-external-store@1.6.0(react@19.2.0): + use-sync-external-store@1.6.0(react@19.2.1): dependencies: - react: 19.2.0 + react: 19.2.1 utrie@1.0.2: dependencies: @@ -10099,7 +10123,7 @@ snapshots: web-streams-polyfill@4.2.0: {} - web-utility@4.6.2(typescript@5.9.3): + web-utility@4.6.4(typescript@5.9.3): dependencies: '@swc/helpers': 0.5.17 regenerator-runtime: 0.14.1 @@ -10177,10 +10201,10 @@ snapshots: workbox-build@6.6.0: dependencies: '@apideck/better-ajv-errors': 0.3.6(ajv@8.17.1) - '@babel/core': 7.28.4 - '@babel/preset-env': 7.28.3(@babel/core@7.28.4) + '@babel/core': 7.28.5 + '@babel/preset-env': 7.28.5(@babel/core@7.28.5) '@babel/runtime': 7.28.4 - '@rollup/plugin-babel': 5.3.1(@babel/core@7.28.4)(rollup@2.79.2) + '@rollup/plugin-babel': 5.3.1(@babel/core@7.28.5)(rollup@2.79.2) '@rollup/plugin-node-resolve': 11.2.1(rollup@2.79.2) '@rollup/plugin-replace': 2.4.2(rollup@2.79.2) '@surma/rollup-plugin-off-main-thread': 2.2.3 @@ -10301,11 +10325,17 @@ snapshots: yallist@3.1.1: {} - yaml@2.8.1: {} + yaml@2.8.2: {} yocto-queue@0.1.0: {} - zrender@5.6.1: + zod-validation-error@4.0.2(zod@4.1.13): + dependencies: + zod: 4.1.13 + + zod@4.1.13: {} + + zrender@6.0.0: dependencies: tslib: 2.3.0 diff --git a/translation/en-US.ts b/translation/en-US.ts index 846ea9e..b7fc156 100644 --- a/translation/en-US.ts +++ b/translation/en-US.ts @@ -119,4 +119,71 @@ export default { NGO_area_distribution: 'NGO Area Distribution', NGO_service_distribution: 'NGO Service Distribution', NGO_type_distribution: 'NGO Type Distribution', + index_category_broad: 'Broad-based', + index_category_sector: 'Sector', + index_category_theme: 'Thematic', + index_risk_conservative: 'Conservative', + index_risk_balanced: 'Balanced', + index_risk_aggressive: 'Aggressive', + index_sparkline_60d_label: 'Last 60 days trend', + data_preparing: 'Data preparing', + offline_data: 'Offline data', + data_source: 'Data source', + index_metric_latest_value: 'Latest value', + index_metric_daily_change: 'Daily change', + index_metric_one_year_return: '1-year return', + index_metric_max_drawdown: 'Max drawdown', + updated_at: 'Updated at', + view_details: 'View details →', + beta: 'Beta', + finance_page_title: 'Index Fund Picks', + finance_page_description: + 'A curated index fund page for beginner investors in China, powered by AKShare real-time data.', + finance_hero_title: 'Index Fund Investing · China Selection', + finance_hero_intro: + 'A curated set of Chinese index funds based on AKShare data, helping beginners understand risk, return and volatility to build a suitable portfolio.', + finance_hero_chip_akshare_data: 'AKShare index data', + finance_hero_chip_realtime_backtest: 'Real-time prices & backtest', + finance_hero_chip_risk_layers: 'Risk level tiers', + finance_hero_cta_pick: 'Start choosing', + finance_hero_cta_guide: 'Beginner guide', + finance_hero_stat_coverage_label: 'Index coverage', + finance_hero_stat_coverage_sub: 'Broad + sector core indices', + finance_hero_stat_refresh_label: 'Data refresh', + finance_hero_stat_refresh_value: '60s', + finance_hero_stat_refresh_sub: 'Auto-updating real-time prices', + finance_hero_stat_risk_label: 'Risk tips', + finance_hero_stat_risk_value: '3', + finance_hero_stat_risk_sub: 'Conservative · Balanced · Aggressive', + finance_filter_title: 'Quick filter', + finance_filter_summary_prefix: 'Filter by risk and category, current selection: ', + finance_filter_reset: 'Clear filters', + finance_filter_category_label: 'Index category', + finance_filter_risk_label: 'Risk level', + finance_filter_category_suffix: ' index', + finance_filter_risk_suffix: ' risk', + finance_filter_category_all: 'All categories', + finance_filter_risk_all: 'All risk levels', + finance_all: 'All', + finance_filter_risk_all_desc: 'No risk preference', + finance_filter_risk_conservative_desc: 'Volatility < 12%', + finance_filter_risk_balanced_desc: 'Volatility 12%-20%', + finance_filter_risk_aggressive_desc: 'Volatility > 20%', + finance_list_title: 'Selected index funds', + finance_list_subtitle_prefix: 'Showing indices: ', + finance_list_subtitle_suffix: ', data source: AKShare', + finance_list_export_soon: 'Data export (coming soon)', + finance_list_strategy_suggestion: 'Strategy suggestions', + finance_empty_title: 'No matching indices', + finance_empty_subtitle: 'Try relaxing the filters or come back later.', + finance_empty_reset_button: 'Reset filters', + finance_edu_title: 'Three key points about index funds', + finance_edu_point_1: 'Track a basket of stocks with low cost and high transparency.', + finance_edu_point_2: 'Use long-term periodic investing, prioritize broad-based indices.', + finance_edu_point_3: 'Measure risk with volatility, drawdown and valuation percentiles.', + finance_edu_next_steps: 'Next steps', + finance_edu_next_1: 'Pick 2-3 indices and add them to your watchlist.', + finance_edu_next_2: + 'Find corresponding ETFs or index funds, paying attention to fees and fund size.', + finance_edu_next_3: 'Set up a recurring investment plan and track valuation and drawdown.', }; diff --git a/translation/zh-CN.ts b/translation/zh-CN.ts index 9885bc1..7fe7629 100644 --- a/translation/zh-CN.ts +++ b/translation/zh-CN.ts @@ -117,4 +117,69 @@ export default { NGO_area_distribution: 'NGO 地区分布', NGO_service_distribution: 'NGO 服务分布', NGO_type_distribution: 'NGO 类型分布', + index_category_broad: '宽基', + index_category_sector: '行业', + index_category_theme: '主题', + index_risk_conservative: '保守', + index_risk_balanced: '稳健', + index_risk_aggressive: '进取', + index_sparkline_60d_label: '近 60 日走势', + data_preparing: '数据准备中', + offline_data: '离线数据', + data_source: '数据源', + index_metric_latest_value: '最新点位', + index_metric_daily_change: '日涨跌', + index_metric_one_year_return: '近 1 年收益', + index_metric_max_drawdown: '最大回撤', + updated_at: '更新于', + view_details: '查看详情 →', + beta: 'Beta', + finance_page_title: '指数基金理财精选', + finance_page_description: '面向小白用户的国内指数基金精选页面,基于 AKShare 数据实时刷新。', + finance_hero_title: '指数基金理财 · 国内优选', + finance_hero_intro: + '基于 AKShare 指数数据构建的国内指数基金精选,帮助小白用户快速理解风险、收益与波动,挑选适合自己的定投组合。', + finance_hero_chip_akshare_data: 'AKShare 指数数据', + finance_hero_chip_realtime_backtest: '实时行情 & 历史回测', + finance_hero_chip_risk_layers: '风险等级分层', + finance_hero_cta_pick: '开始挑选', + finance_hero_cta_guide: '理财小白指南', + finance_hero_stat_coverage_label: '覆盖指数', + finance_hero_stat_coverage_sub: '宽基 + 行业核心指数', + finance_hero_stat_refresh_label: '数据刷新', + finance_hero_stat_refresh_value: '60s', + finance_hero_stat_refresh_sub: '实时行情自动更新', + finance_hero_stat_risk_label: '风险提示', + finance_hero_stat_risk_value: '3', + finance_hero_stat_risk_sub: '保守 · 稳健 · 进取', + finance_filter_title: '快速筛选', + finance_filter_summary_prefix: '根据风险与类别筛选适合的指数基金,所选条件:', + finance_filter_reset: '清空条件', + finance_filter_category_label: '指数类别', + finance_filter_risk_label: '风险等级', + finance_filter_category_suffix: '指数', + finance_filter_risk_suffix: '风险', + finance_filter_category_all: '全部类别', + finance_filter_risk_all: '全部风险', + finance_all: '全部', + finance_filter_risk_all_desc: '不限风险偏好', + finance_filter_risk_conservative_desc: '波动小于 12%', + finance_filter_risk_balanced_desc: '波动 12%-20%', + finance_filter_risk_aggressive_desc: '波动大于 20%', + finance_list_title: '指数基金精选', + finance_list_subtitle_prefix: '展示指数:', + finance_list_subtitle_suffix: ',数据源 AkShare', + finance_list_export_soon: '数据导出(即将上线)', + finance_list_strategy_suggestion: '策略组合建议', + finance_empty_title: '暂无符合条件的指数', + finance_empty_subtitle: '尝试放宽筛选条件,或稍后再试。', + finance_empty_reset_button: '重置筛选', + finance_edu_title: '指数基金三句话', + finance_edu_point_1: '跟踪一篮子股票,成本低、透明度高。', + finance_edu_point_2: '长期定投平滑风险,优先关注宽基指数。', + finance_edu_point_3: '用数据衡量风险:波动、回撤、估值百分位。', + finance_edu_next_steps: '下一步', + finance_edu_next_1: '挑选 2-3 支指数,加入收藏/关注列表。', + finance_edu_next_2: '了解对应的 ETF 或联接基金,关注费率与规模。', + finance_edu_next_3: '设定定投计划并持续跟踪估值、回撤。', }; diff --git a/translation/zh-TW.ts b/translation/zh-TW.ts index 073657d..bfabbad 100644 --- a/translation/zh-TW.ts +++ b/translation/zh-TW.ts @@ -117,4 +117,69 @@ export default { NGO_area_distribution: 'NGO 地區分佈', NGO_service_distribution: 'NGO 服務分佈', NGO_type_distribution: 'NGO 類型分佈', + index_category_broad: '寬基', + index_category_sector: '行業', + index_category_theme: '主題', + index_risk_conservative: '保守', + index_risk_balanced: '穩健', + index_risk_aggressive: '進取', + index_sparkline_60d_label: '近 60 日走勢', + data_preparing: '數據準備中', + offline_data: '離線數據', + data_source: '數據源', + index_metric_latest_value: '最新點位', + index_metric_daily_change: '日漲跌', + index_metric_one_year_return: '近 1 年收益', + index_metric_max_drawdown: '最大回撤', + updated_at: '更新於', + view_details: '查看詳情 →', + beta: 'Beta', + finance_page_title: '指數基金理財精選', + finance_page_description: '面向新手用戶的國內指數基金精選頁面,基於 AKShare 數據即時更新。', + finance_hero_title: '指數基金理財 · 國內優選', + finance_hero_intro: + '基於 AKShare 指數數據構建的國內容指數基金精選,幫助新手用戶快速理解風險、收益與波動,挑選適合自己的定投組合。', + finance_hero_chip_akshare_data: 'AKShare 指數數據', + finance_hero_chip_realtime_backtest: '即時行情 & 歷史回測', + finance_hero_chip_risk_layers: '風險等級分層', + finance_hero_cta_pick: '開始挑選', + finance_hero_cta_guide: '理財新手指南', + finance_hero_stat_coverage_label: '覆蓋指數', + finance_hero_stat_coverage_sub: '寬基 + 行業核心指數', + finance_hero_stat_refresh_label: '數據刷新', + finance_hero_stat_refresh_value: '60s', + finance_hero_stat_refresh_sub: '即時行情自動更新', + finance_hero_stat_risk_label: '風險提示', + finance_hero_stat_risk_value: '3', + finance_hero_stat_risk_sub: '保守 · 穩健 · 進取', + finance_filter_title: '快速篩選', + finance_filter_summary_prefix: '根據風險與類別篩選合適的指數基金,目前條件:', + finance_filter_reset: '清空條件', + finance_filter_category_label: '指數類別', + finance_filter_risk_label: '風險等級', + finance_filter_category_suffix: '指數', + finance_filter_risk_suffix: '風險', + finance_filter_category_all: '全部類別', + finance_filter_risk_all: '全部風險', + finance_all: '全部', + finance_filter_risk_all_desc: '不限風險偏好', + finance_filter_risk_conservative_desc: '波動小於 12%', + finance_filter_risk_balanced_desc: '波動 12%-20%', + finance_filter_risk_aggressive_desc: '波動大於 20%', + finance_list_title: '指數基金精選', + finance_list_subtitle_prefix: '展示指數:', + finance_list_subtitle_suffix: ',數據源 AkShare', + finance_list_export_soon: '數據導出(即將上線)', + finance_list_strategy_suggestion: '策略組合建議', + finance_empty_title: '暫無符合條件的指數', + finance_empty_subtitle: '嘗試放寬篩選條件,或稍後再試。', + finance_empty_reset_button: '重置篩選', + finance_edu_title: '指數基金三句話', + finance_edu_point_1: '跟蹤一籃子股票,成本低、透明度高。', + finance_edu_point_2: '長期定投平滑風險,優先關注寬基指數。', + finance_edu_point_3: '用數據衡量風險:波動、回撤、估值百分位。', + finance_edu_next_steps: '下一步', + finance_edu_next_1: '挑選 2-3 支指數,加入收藏/關注列表。', + finance_edu_next_2: '了解對應的 ETF 或聯接基金,關注費率與規模。', + finance_edu_next_3: '設定定投計畫並持續跟蹤估值、回撤。', }; diff --git a/tsconfig.json b/tsconfig.json index f3a5310..c99ac0c 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -13,7 +13,7 @@ "moduleResolution": "Node", "resolveJsonModule": true, "isolatedModules": true, - "jsx": "preserve", + "jsx": "react-jsx", "incremental": true }, "include": ["*.mjs", "next-env.d.ts", "**/*.ts", "**/*.tsx", "**/*.mdx"], diff --git a/types/finance.ts b/types/finance.ts new file mode 100644 index 0000000..1c1464a --- /dev/null +++ b/types/finance.ts @@ -0,0 +1,42 @@ +export type IndexFundCategory = 'broad' | 'sector' | 'theme'; + +export type IndexRiskLevel = 'conservative' | 'balanced' | 'aggressive'; + +export interface IndexFundDefinition { + /** + * AkShare 指数代码,形如 sh000300 / sz399006 + */ + symbol: string; + /** + * 页面展示名称,如「沪深 300」 + */ + displayName: string; + /** + * 页面描述/卖点 + */ + description?: string; + category: IndexFundCategory; + riskLevel: IndexRiskLevel; + tags?: string[]; +} + +export interface IndexHistoryPoint { + date: string; + value: number; +} + +export interface IndexFundSnapshot extends IndexFundDefinition { + latestValue: number | null; + dailyChangePct: number | null; + oneYearReturnPct: number | null; + maxDrawdownPct: number | null; + updatedAt: string | null; + /** + * 最近 N 天的点位序列,用于 sparkline + */ + sparkline: IndexHistoryPoint[]; + source: { + historyEndpoint: string; + }; + fallback?: boolean; +}