diff --git a/.gitignore b/.gitignore index c071b84..3abe835 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,7 @@ /node_modules /.pnp .pnp.js +package-lock.json # testing /coverage diff --git a/components/Git/Issue/Card.tsx b/components/Git/Issue/Card.tsx index 5b37eb4..7c147cb 100644 --- a/components/Git/Issue/Card.tsx +++ b/components/Git/Issue/Card.tsx @@ -58,7 +58,7 @@ export const IssueCard: FC = ({ {user && } diff --git a/models/Wiki.ts b/models/Wiki.ts new file mode 100644 index 0000000..c91631c --- /dev/null +++ b/models/Wiki.ts @@ -0,0 +1,11 @@ +import { Content, ContentModel } from 'mobx-github'; +import { DataObject } from 'mobx-restful'; + +import './Base'; + +export interface XContent extends Content { + meta?: DataObject; + children?: XContent[]; +} + +export const policyContentStore = new ContentModel('fpsig', 'open-source-policy'); diff --git a/models/configuration.ts b/models/configuration.ts index bd4e349..aea1f17 100644 --- a/models/configuration.ts +++ b/models/configuration.ts @@ -20,8 +20,7 @@ export const LARK_API_HOST = `${API_Host}/api/Lark/`; export const ProxyBaseURL = 'https://bazaar.fcc-cd.dev/proxy'; -export const GithubToken = - (globalThis.document && parseCookie().token) || process.env.GITHUB_TOKEN; +export const GithubToken = (globalThis.document && parseCookie().token) || process.env.GH_PAT; export const LarkAppMeta = { host: process.env.NEXT_PUBLIC_LARK_API_HOST, diff --git a/package.json b/package.json index af49d2b..ec3ac7a 100644 --- a/package.json +++ b/package.json @@ -15,24 +15,24 @@ "@koa/router": "^14.0.0", "@mdx-js/loader": "^3.1.0", "@mdx-js/react": "^3.1.0", - "@next/mdx": "^15.5.0", + "@next/mdx": "^15.5.2", "core-js": "^3.45.1", "file-type": "^21.0.0", "idea-react": "^2.0.0-rc.13", "koa": "^3.0.1", "koajax": "^3.1.2", "license-filter": "^0.2.5", - "marked": "^16.2.0", + "marked": "^16.2.1", "mime": "^4.0.7", "mobx": "^6.13.7", - "mobx-github": "^0.3.11", + "mobx-github": "^0.4.0", "mobx-i18n": "^0.7.1", "mobx-lark": "^2.4.0", "mobx-react": "^9.2.0", "mobx-react-helper": "^0.5.1", "mobx-restful": "^2.1.0", "mobx-restful-table": "^2.5.3", - "next": "^15.5.0", + "next": "^15.5.2", "next-pwa": "^5.6.0", "next-ssr-middleware": "^1.0.2", "react": "^19.1.1", @@ -40,7 +40,7 @@ "react-dom": "^19.1.1", "react-typed-component": "^1.0.6", "undici": "^7.15.0", - "web-utility": "^4.5.1", + "web-utility": "^4.5.3", "yaml": "^2.8.1" }, "devDependencies": { @@ -49,18 +49,18 @@ "@babel/preset-react": "^7.27.1", "@cspell/eslint-plugin": "^9.2.0", "@eslint/js": "^9.34.0", - "@next/eslint-plugin-next": "^15.5.0", + "@next/eslint-plugin-next": "^15.5.2", "@softonus/prettier-plugin-duplicate-remover": "^1.1.2", "@stylistic/eslint-plugin": "^5.2.3", "@types/eslint-config-prettier": "^6.11.3", "@types/koa": "^3.0.0", "@types/koa__router": "^12.0.4", "@types/next-pwa": "^5.6.9", - "@types/node": "^22.17.2", - "@types/react": "^19.1.11", - "@types/react-dom": "^19.1.7", + "@types/node": "^22.18.0", + "@types/react": "^19.1.12", + "@types/react-dom": "^19.1.9", "eslint": "^9.34.0", - "eslint-config-next": "^15.5.0", + "eslint-config-next": "^15.5.2", "eslint-config-prettier": "^10.1.8", "eslint-plugin-react": "^7.37.5", "eslint-plugin-simple-import-sort": "^12.1.1", @@ -73,9 +73,9 @@ "next-with-less": "^3.0.1", "prettier": "^3.6.2", "prettier-plugin-css-order": "^2.1.2", - "sass": "^1.90.0", + "sass": "^1.91.0", "typescript": "~5.9.2", - "typescript-eslint": "^8.40.0" + "typescript-eslint": "^8.41.0" }, "resolutions": { "next": "$next" diff --git a/pages/_document.tsx b/pages/_document.tsx index e4a1d76..50b0597 100644 --- a/pages/_document.tsx +++ b/pages/_document.tsx @@ -40,6 +40,10 @@ export default class CustomDocument extends Document { rel="stylesheet" href="https://unpkg.com/bootstrap-icons@1.13.1/font/bootstrap-icons.css" /> + diff --git a/pages/api/core.ts b/pages/api/core.ts index 193697f..7a0a7eb 100644 --- a/pages/api/core.ts +++ b/pages/api/core.ts @@ -58,31 +58,28 @@ export interface ArticleMeta { subs: ArticleMeta[]; } -const MDX_pattern = /\.mdx?$/; - -export async function splitFrontMatter(path: string) { - const { readFile } = await import('fs/promises'); - - const file = await readFile(path, 'utf-8'); +export const MD_pattern = /\.(md|markdown)$/i, + MDX_pattern = /\.mdx?$/i; +export function splitFrontMatter(raw: string) { const [, frontMatter, markdown] = - file.trim().match(/^---[\r\n]([\s\S]+?[\r\n])---[\r\n]([\s\S]*)/) || []; + raw.trim().match(/^---[\r\n]([\s\S]+?[\r\n])---[\r\n]([\s\S]*)/) || []; - if (!frontMatter) return { markdown: file }; + if (!frontMatter) return { markdown: raw }; try { const meta = parse(frontMatter) as DataObject; return { markdown, meta }; } catch (error) { - console.error(`Error reading front matter for ${path}:`, error); + console.error(`Error parsing Front Matter:`, error); return { markdown }; } } export async function* pageListOf(path: string, prefix = 'pages'): AsyncGenerator { - const { readdir } = await import('fs/promises'); + const { readdir, readFile } = await import('fs/promises'); const list = await readdir(prefix + path, { withFileTypes: true }); @@ -99,7 +96,9 @@ export async function* pageListOf(path: string, prefix = 'pages'): AsyncGenerato if (node.isFile() && isMDX) { const article: ArticleMeta = { name, path, subs: [] }; - const { meta } = await splitFrontMatter(`${node.path}/${node.name}`); + const file = await readFile(`${node.path}/${node.name}`, 'utf-8'); + + const { meta } = splitFrontMatter(file); if (meta) article.meta = meta; diff --git a/pages/wiki/[...slug].tsx b/pages/wiki/[...slug].tsx index 59ebd17..45676ea 100644 --- a/pages/wiki/[...slug].tsx +++ b/pages/wiki/[...slug].tsx @@ -1,51 +1,142 @@ import { marked } from 'marked'; -import { DataObject } from 'mobx-restful'; -import { GetStaticPaths, GetStaticProps, NextPage } from 'next'; +import { GetStaticPaths, GetStaticProps } from 'next'; import { ParsedUrlQuery } from 'querystring'; +import { FC } from 'react'; +import { Badge, Breadcrumb, Button, Container } from 'react-bootstrap'; +import { decodeBase64 } from 'web-utility'; -import { pageListOf, splitFrontMatter, traverseTree } from '../api/core'; +import { PageHead } from '../../components/Layout/PageHead'; +import { policyContentStore, XContent } from '../../models/Wiki'; +import { splitFrontMatter } from '../api/core'; interface WikiPageParams extends ParsedUrlQuery { slug: string[]; } export const getStaticPaths: GetStaticPaths = async () => { - const tree = await Array.fromAsync(pageListOf('wiki', 'public/')); - const list = tree.map(root => [...traverseTree(root, 'subs')]).flat(); - const paths = list - .map(({ path }) => path && { params: { slug: path.split('/') } }) - .filter(Boolean) as { params: WikiPageParams }[]; + const nodes = await policyContentStore.getAll(); + + const paths = nodes + .filter(({ type }) => type === 'file') + .map(({ path }) => ({ params: { slug: path.split('/') } })); return { paths, fallback: 'blocking' }; }; -interface WikiPageProps { - meta?: DataObject; - markup: string; -} - -export const getStaticProps: GetStaticProps = async ({ params }) => { +export const getStaticProps: GetStaticProps = async ({ params }) => { const { slug } = params!; - // https://github.com/vercel/next.js/issues/12851 - if (slug[0] !== 'wiki') slug.unshift('wiki'); - const { meta, markdown } = await splitFrontMatter(`public/${slug.join('/')}.md`); + const node = await policyContentStore.getOne(slug.join('/')); + + const { meta, markdown } = splitFrontMatter(decodeBase64(node.content!)); const markup = marked(markdown) as string; - return { props: JSON.parse(JSON.stringify({ meta, markup })) }; + return { + props: JSON.parse(JSON.stringify({ ...node, content: markup, meta })), + revalidate: 300, // Revalidate every 5 minutes + }; }; -const WikiPage: NextPage = ({ meta, markup }) => ( - <> - {meta && ( -
- - {meta.url} - -
- )} -
- +const WikiPage: FC = ({ name, path, parent_path, content, meta }) => ( + + + + + Wiki + + {parent_path?.split('/').map((segment, index, array) => { + const breadcrumbPath = array.slice(0, index + 1).join('/'); + + return ( + + {segment} + + ); + })} + {name} + + +
+
+

{name}

+ + {meta && ( +
+
    + {meta['主题分类'] && ( +
  • + {meta['主题分类']} +
  • + )} + {meta['发文机构'] && ( +
  • + {meta['发文机构']} +
  • + )} + {meta['有效性'] && ( +
  • + + {meta['有效性']} + +
  • + )} +
+
+ )} + +
+
+ {meta?.['成文日期'] && 成文日期: {meta['成文日期']}} + {meta?.['发布日期'] && meta['发布日期'] !== meta['成文日期'] && ( + 发布日期: {meta['发布日期']} + )} +
+ +
+ + {meta?.url && ( + + )} +
+
+
+ +
+
+ + +
); + export default WikiPage; diff --git a/pages/wiki/index.tsx b/pages/wiki/index.tsx index 46461db..53fcda3 100644 --- a/pages/wiki/index.tsx +++ b/pages/wiki/index.tsx @@ -1,35 +1,49 @@ import { observer } from 'mobx-react'; -import { InferGetStaticPropsType } from 'next'; -import { FC } from 'react'; +import { GetStaticProps } from 'next'; +import Link from 'next/link'; +import React, { FC, useContext } from 'react'; +import { Badge, Button, Card, Container } from 'react-bootstrap'; +import { treeFrom } from 'web-utility'; -import { MDXLayout } from '../../components/Layout/MDXLayout'; -import { i18n } from '../../models/Translation'; -import { ArticleMeta, pageListOf, traverseTree } from '../api/core'; +import { PageHead } from '../../components/Layout/PageHead'; +import { I18nContext } from '../../models/Translation'; +import { policyContentStore, XContent } from '../../models/Wiki'; +import { MD_pattern, splitFrontMatter } from '../api/core'; -export const getStaticProps = async () => { - const tree = await Array.fromAsync(pageListOf('wiki', 'public/')); - const list = tree.map(root => [...traverseTree(root, 'subs')]).flat(); +export const getStaticProps: GetStaticProps<{ nodes: XContent[] }> = async () => { + const nodes = (await policyContentStore.getAll()) + .filter(({ type, name }) => type !== 'file' || MD_pattern.test(name)) + .map(({ content, ...rest }) => { + const { meta, markdown } = content ? splitFrontMatter(content) : {}; - return { props: { tree, list } }; + return { ...rest, content: markdown, meta }; + }); + + return { + props: JSON.parse(JSON.stringify({ nodes })), + revalidate: 300, // Revalidate every 5 minutes + }; }; -const renderTree = (list: ArticleMeta[]) => ( -
    - {list.map(({ name, path, meta, subs }) => ( -
  1. - {path ? ( - - {name}{' '} - {meta && ( - +const renderTree = (nodes: XContent[], level = 0) => ( +
      + {nodes.map(({ path, name, type, meta, children }) => ( +
    1. 0 ? 'ms-3' : ''}> + {type !== 'dir' ? ( + + {name} + + {meta?.['主题分类'] && ( + + {meta['主题分类']} + )} - + ) : (
      {name} - {renderTree(subs)} + + {renderTree(children || [], level + 1)}
      )}
    2. @@ -37,12 +51,39 @@ const renderTree = (list: ArticleMeta[]) => (
    ); -const ArticleIndexPage: FC> = observer( - ({ tree, list: { length } }) => ( - - {renderTree(tree)} - - ), -); +const WikiIndexPage: FC<{ nodes: XContent[] }> = observer(({ nodes }) => { + const { t } = useContext(I18nContext); + + return ( + + + +
    +

    + {t('wiki')} ({nodes.length}) +

    + +
    + + {nodes[0] ? ( + renderTree(treeFrom(nodes, 'path', 'parent_path', 'children')) + ) : ( + + +

    {t('no_docs_available')}

    +

    {t('docs_auto_load_from_github')}

    +
    +
    + )} +
    + ); +}); -export default ArticleIndexPage; +export default WikiIndexPage; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1562afd..c508ed6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -5,7 +5,7 @@ settings: excludeLinksFromLockfile: false overrides: - next: ^15.5.0 + next: ^15.5.2 importers: @@ -19,10 +19,10 @@ importers: version: 3.1.0(acorn@8.15.0) '@mdx-js/react': specifier: ^3.1.0 - version: 3.1.0(@types/react@19.1.11)(react@19.1.1) + version: 3.1.0(@types/react@19.1.12)(react@19.1.1) '@next/mdx': - specifier: ^15.5.0 - version: 15.5.0(@mdx-js/loader@3.1.0(acorn@8.15.0))(@mdx-js/react@3.1.0(@types/react@19.1.11)(react@19.1.1)) + specifier: ^15.5.2 + version: 15.5.2(@mdx-js/loader@3.1.0(acorn@8.15.0))(@mdx-js/react@3.1.0(@types/react@19.1.12)(react@19.1.1)) core-js: specifier: ^3.45.1 version: 3.45.1 @@ -31,7 +31,7 @@ importers: version: 21.0.0 idea-react: specifier: ^2.0.0-rc.13 - version: 2.0.0-rc.13(@types/react@19.1.11)(react-dom@19.1.1(react@19.1.1))(react-is@16.13.1)(react@19.1.1)(typescript@5.9.2) + version: 2.0.0-rc.13(@types/react@19.1.12)(react-dom@19.1.1(react@19.1.1))(react-is@16.13.1)(react@19.1.1)(typescript@5.9.2) koa: specifier: ^3.0.1 version: 3.0.1 @@ -42,8 +42,8 @@ importers: specifier: ^0.2.5 version: 0.2.5 marked: - specifier: ^16.2.0 - version: 16.2.0 + specifier: ^16.2.1 + version: 16.2.1 mime: specifier: ^4.0.7 version: 4.0.7 @@ -51,8 +51,8 @@ importers: specifier: ^6.13.7 version: 6.13.7 mobx-github: - specifier: ^0.3.11 - version: 0.3.11(core-js@3.45.1)(typescript@5.9.2) + specifier: ^0.4.0 + version: 0.4.0(core-js@3.45.1)(typescript@5.9.2) mobx-i18n: specifier: ^0.7.1 version: 0.7.1(mobx@6.13.7)(typescript@5.9.2) @@ -70,22 +70,22 @@ importers: version: 2.1.0(core-js@3.45.1)(mobx@6.13.7)(typescript@5.9.2) mobx-restful-table: specifier: ^2.5.3 - version: 2.5.3(@types/react@19.1.11)(core-js@3.45.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2) + version: 2.5.3(@types/react@19.1.12)(core-js@3.45.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2) next: - specifier: ^15.5.0 - version: 15.5.0(@babel/core@7.28.3)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(sass@1.90.0) + specifier: ^15.5.2 + version: 15.5.2(@babel/core@7.28.3)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(sass@1.91.0) next-pwa: specifier: ^5.6.0 - version: 5.6.0(@babel/core@7.28.3)(next@15.5.0(@babel/core@7.28.3)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(sass@1.90.0)) + version: 5.6.0(@babel/core@7.28.3)(next@15.5.2(@babel/core@7.28.3)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(sass@1.91.0)) next-ssr-middleware: specifier: ^1.0.2 - version: 1.0.2(next@15.5.0(@babel/core@7.28.3)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(sass@1.90.0))(react@19.1.1)(typescript@5.9.2) + version: 1.0.2(next@15.5.2(@babel/core@7.28.3)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(sass@1.91.0))(react@19.1.1)(typescript@5.9.2) react: specifier: ^19.1.1 version: 19.1.1 react-bootstrap: specifier: ^2.10.10 - version: 2.10.10(@types/react@19.1.11)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 2.10.10(@types/react@19.1.12)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) react-dom: specifier: ^19.1.1 version: 19.1.1(react@19.1.1) @@ -96,8 +96,8 @@ importers: specifier: ^7.15.0 version: 7.15.0 web-utility: - specifier: ^4.5.1 - version: 4.5.1(typescript@5.9.2) + specifier: ^4.5.3 + version: 4.5.3(typescript@5.9.2) yaml: specifier: ^2.8.1 version: 2.8.1 @@ -118,8 +118,8 @@ importers: specifier: ^9.34.0 version: 9.34.0 '@next/eslint-plugin-next': - specifier: ^15.5.0 - version: 15.5.0 + specifier: ^15.5.2 + version: 15.5.2 '@softonus/prettier-plugin-duplicate-remover': specifier: ^1.1.2 version: 1.1.2 @@ -137,22 +137,22 @@ importers: version: 12.0.4 '@types/next-pwa': specifier: ^5.6.9 - version: 5.6.9(@babel/core@7.28.3)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(sass@1.90.0) + version: 5.6.9(@babel/core@7.28.3)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(sass@1.91.0) '@types/node': - specifier: ^22.17.2 - version: 22.17.2 + specifier: ^22.18.0 + version: 22.18.0 '@types/react': - specifier: ^19.1.11 - version: 19.1.11 + specifier: ^19.1.12 + version: 19.1.12 '@types/react-dom': - specifier: ^19.1.7 - version: 19.1.7(@types/react@19.1.11) + specifier: ^19.1.9 + version: 19.1.9(@types/react@19.1.12) eslint: specifier: ^9.34.0 version: 9.34.0(jiti@2.5.1) eslint-config-next: - specifier: ^15.5.0 - version: 15.5.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) + specifier: ^15.5.2 + version: 15.5.2(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) eslint-config-prettier: specifier: ^10.1.8 version: 10.1.8(eslint@9.34.0(jiti@2.5.1)) @@ -182,7 +182,7 @@ importers: version: 16.1.5 next-with-less: specifier: ^3.0.1 - version: 3.0.1(less-loader@12.3.0(less@4.4.1))(less@4.4.1)(next@15.5.0(@babel/core@7.28.3)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(sass@1.90.0)) + version: 3.0.1(less-loader@12.3.0(less@4.4.1))(less@4.4.1)(next@15.5.2(@babel/core@7.28.3)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(sass@1.91.0)) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -190,14 +190,14 @@ importers: specifier: ^2.1.2 version: 2.1.2(postcss@8.4.31)(prettier@3.6.2) sass: - specifier: ^1.90.0 - version: 1.90.0 + specifier: ^1.91.0 + version: 1.91.0 typescript: specifier: ~5.9.2 version: 5.9.2 typescript-eslint: - specifier: ^8.40.0 - version: 8.40.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) + specifier: ^8.41.0 + version: 8.41.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) packages: @@ -1255,14 +1255,14 @@ packages: '@napi-rs/wasm-runtime@0.2.12': resolution: {integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==} - '@next/env@15.5.0': - resolution: {integrity: sha512-sDaprBAfzCQiOgo2pO+LhnV0Wt2wBgartjrr+dpcTORYVnnXD0gwhHhiiyIih9hQbq+JnbqH4odgcFWhqCGidw==} + '@next/env@15.5.2': + resolution: {integrity: sha512-Qe06ew4zt12LeO6N7j8/nULSOe3fMXE4dM6xgpBQNvdzyK1sv5y4oAP3bq4LamrvGCZtmRYnW8URFCeX5nFgGg==} - '@next/eslint-plugin-next@15.5.0': - resolution: {integrity: sha512-+k83U/fST66eQBjTltX2T9qUYd43ntAe+NZ5qeZVTQyTiFiHvTLtkpLKug4AnZAtuI/lwz5tl/4QDJymjVkybg==} + '@next/eslint-plugin-next@15.5.2': + resolution: {integrity: sha512-lkLrRVxcftuOsJNhWatf1P2hNVfh98k/omQHrCEPPriUypR6RcS13IvLdIrEvkm9AH2Nu2YpR5vLqBuy6twH3Q==} - '@next/mdx@15.5.0': - resolution: {integrity: sha512-TxfWpIDHx9Xy/GgZwegrl+HxjzeQml0bTclxX72SqJLi83IhJaFiglQbfMTotB2hDRbxCGKpPYh0X20+r1Trtw==} + '@next/mdx@15.5.2': + resolution: {integrity: sha512-Lz9mdoKRfSNc7T1cSk3gzryhRcc7ErsiAWba1HBoInCX4ZpGUQXmiZLAAyrIgDl7oS/UHxsgKtk2qp/Df4gKBg==} peerDependencies: '@mdx-js/loader': '>=0.15.0' '@mdx-js/react': '>=0.15.0' @@ -1272,50 +1272,50 @@ packages: '@mdx-js/react': optional: true - '@next/swc-darwin-arm64@15.5.0': - resolution: {integrity: sha512-v7Jj9iqC6enxIRBIScD/o0lH7QKvSxq2LM8UTyqJi+S2w2QzhMYjven4vgu/RzgsdtdbpkyCxBTzHl/gN5rTRg==} + '@next/swc-darwin-arm64@15.5.2': + resolution: {integrity: sha512-8bGt577BXGSd4iqFygmzIfTYizHb0LGWqH+qgIF/2EDxS5JsSdERJKA8WgwDyNBZgTIIA4D8qUtoQHmxIIquoQ==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@next/swc-darwin-x64@15.5.0': - resolution: {integrity: sha512-s2Nk6ec+pmYmAb/utawuURy7uvyYKDk+TRE5aqLRsdnj3AhwC9IKUBmhfnLmY/+P+DnwqpeXEFIKe9tlG0p6CA==} + '@next/swc-darwin-x64@15.5.2': + resolution: {integrity: sha512-2DjnmR6JHK4X+dgTXt5/sOCu/7yPtqpYt8s8hLkHFK3MGkka2snTv3yRMdHvuRtJVkPwCGsvBSwmoQCHatauFQ==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@next/swc-linux-arm64-gnu@15.5.0': - resolution: {integrity: sha512-mGlPJMZReU4yP5fSHjOxiTYvZmwPSWn/eF/dcg21pwfmiUCKS1amFvf1F1RkLHPIMPfocxLViNWFvkvDB14Isg==} + '@next/swc-linux-arm64-gnu@15.5.2': + resolution: {integrity: sha512-3j7SWDBS2Wov/L9q0mFJtEvQ5miIqfO4l7d2m9Mo06ddsgUK8gWfHGgbjdFlCp2Ek7MmMQZSxpGFqcC8zGh2AA==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@next/swc-linux-arm64-musl@15.5.0': - resolution: {integrity: sha512-biWqIOE17OW/6S34t1X8K/3vb1+svp5ji5QQT/IKR+VfM3B7GvlCwmz5XtlEan2ukOUf9tj2vJJBffaGH4fGRw==} + '@next/swc-linux-arm64-musl@15.5.2': + resolution: {integrity: sha512-s6N8k8dF9YGc5T01UPQ08yxsK6fUow5gG1/axWc1HVVBYQBgOjca4oUZF7s4p+kwhkB1bDSGR8QznWrFZ/Rt5g==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@next/swc-linux-x64-gnu@15.5.0': - resolution: {integrity: sha512-zPisT+obYypM/l6EZ0yRkK3LEuoZqHaSoYKj+5jiD9ESHwdr6QhnabnNxYkdy34uCigNlWIaCbjFmQ8FY5AlxA==} + '@next/swc-linux-x64-gnu@15.5.2': + resolution: {integrity: sha512-o1RV/KOODQh6dM6ZRJGZbc+MOAHww33Vbs5JC9Mp1gDk8cpEO+cYC/l7rweiEalkSm5/1WGa4zY7xrNwObN4+Q==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@next/swc-linux-x64-musl@15.5.0': - resolution: {integrity: sha512-+t3+7GoU9IYmk+N+FHKBNFdahaReoAktdOpXHFIPOU1ixxtdge26NgQEEkJkCw2dHT9UwwK5zw4mAsURw4E8jA==} + '@next/swc-linux-x64-musl@15.5.2': + resolution: {integrity: sha512-/VUnh7w8RElYZ0IV83nUcP/J4KJ6LLYliiBIri3p3aW2giF+PAVgZb6mk8jbQSB3WlTai8gEmCAr7kptFa1H6g==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@next/swc-win32-arm64-msvc@15.5.0': - resolution: {integrity: sha512-d8MrXKh0A+c9DLiy1BUFwtg3Hu90Lucj3k6iKTUdPOv42Ve2UiIG8HYi3UAb8kFVluXxEfdpCoPPCSODk5fDcw==} + '@next/swc-win32-arm64-msvc@15.5.2': + resolution: {integrity: sha512-sMPyTvRcNKXseNQ/7qRfVRLa0VhR0esmQ29DD6pqvG71+JdVnESJaHPA8t7bc67KD5spP3+DOCNLhqlEI2ZgQg==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@next/swc-win32-x64-msvc@15.5.0': - resolution: {integrity: sha512-Fe1tGHxOWEyQjmygWkkXSwhFcTJuimrNu52JEuwItrKJVV4iRjbWp9I7zZjwqtiNnQmxoEvoisn8wueFLrNpvQ==} + '@next/swc-win32-x64-msvc@15.5.2': + resolution: {integrity: sha512-W5VvyZHnxG/2ukhZF/9Ikdra5fdNftxI6ybeVKYvBPDtyx7x4jPPSNduUkfH5fo3zG0JQ0bPxgy41af2JX5D4Q==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -1626,8 +1626,8 @@ packages: '@types/next-pwa@5.6.9': resolution: {integrity: sha512-KcymH+MtFYB5KVKIOH1DMqd0wUb8VLCxzHtsaRQQ7S8sGOaTH24Lo2vGZf6/0Ok9e+xWCKhqsSt6cgDJTk91Iw==} - '@types/node@22.17.2': - resolution: {integrity: sha512-gL6z5N9Jm9mhY+U2KXZpteb+09zyffliRkZyZOHODGATyC5B1Jt/7TzuuiLkFsSUMLbS1OLmlj/E+/3KF4Q/4w==} + '@types/node@22.18.0': + resolution: {integrity: sha512-m5ObIqwsUp6BZzyiy4RdZpzWGub9bqLJMvZDD0QMXhxjqMHMENlj+SqF5QxoUwaQNFe+8kz8XM8ZQhqkQPTgMQ==} '@types/prop-types@15.7.15': resolution: {integrity: sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==} @@ -1638,8 +1638,8 @@ packages: '@types/range-parser@1.2.7': resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} - '@types/react-dom@19.1.7': - resolution: {integrity: sha512-i5ZzwYpqjmrKenzkoLM2Ibzt6mAsM7pxB6BCIouEVVmgiqaMj1TjaK7hnA36hbW5aZv20kx7Lw6hWzPWg0Rurw==} + '@types/react-dom@19.1.9': + resolution: {integrity: sha512-qXRuZaOsAdXKFyOhRBg6Lqqc0yay13vN7KrIg4L7N4aaHN68ma9OK3NE1BoDFgFOTfM7zg+3/8+2n8rLUH3OKQ==} peerDependencies: '@types/react': ^19.0.0 @@ -1648,8 +1648,8 @@ packages: peerDependencies: '@types/react': '*' - '@types/react@19.1.11': - resolution: {integrity: sha512-lr3jdBw/BGj49Eps7EvqlUaoeA0xpj3pc0RoJkHpYaCHkVK7i28dKyImLQb3JVlqs3aYSXf7qYuWOW/fgZnTXQ==} + '@types/react@19.1.12': + resolution: {integrity: sha512-cMoR+FoAf/Jyq6+Df2/Z41jISvGZZ2eTlnsaJRptmZ76Caldwy1odD4xTr/gNV9VLj0AWgg/nmkevIyUfIIq5w==} '@types/resolve@1.17.1': resolution: {integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==} @@ -1675,63 +1675,63 @@ packages: '@types/warning@3.0.3': resolution: {integrity: sha512-D1XC7WK8K+zZEveUPY+cf4+kgauk8N4eHr/XIHXGlGYkHLud6hK9lYfZk1ry1TNh798cZUCgb6MqGEG8DkJt6Q==} - '@typescript-eslint/eslint-plugin@8.40.0': - resolution: {integrity: sha512-w/EboPlBwnmOBtRbiOvzjD+wdiZdgFeo17lkltrtn7X37vagKKWJABvyfsJXTlHe6XBzugmYgd4A4nW+k8Mixw==} + '@typescript-eslint/eslint-plugin@8.41.0': + resolution: {integrity: sha512-8fz6oa6wEKZrhXWro/S3n2eRJqlRcIa6SlDh59FXJ5Wp5XRZ8B9ixpJDcjadHq47hMx0u+HW6SNa6LjJQ6NLtw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.40.0 + '@typescript-eslint/parser': ^8.41.0 eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/parser@8.40.0': - resolution: {integrity: sha512-jCNyAuXx8dr5KJMkecGmZ8KI61KBUhkCob+SD+C+I5+Y1FWI2Y3QmY4/cxMCC5WAsZqoEtEETVhUiUMIGCf6Bw==} + '@typescript-eslint/parser@8.41.0': + resolution: {integrity: sha512-gTtSdWX9xiMPA/7MV9STjJOOYtWwIJIYxkQxnSV1U3xcE+mnJSH3f6zI0RYP+ew66WSlZ5ed+h0VCxsvdC1jJg==} 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.40.0': - resolution: {integrity: sha512-/A89vz7Wf5DEXsGVvcGdYKbVM9F7DyFXj52lNYUDS1L9yJfqjW/fIp5PgMuEJL/KeqVTe2QSbXAGUZljDUpArw==} + '@typescript-eslint/project-service@8.41.0': + resolution: {integrity: sha512-b8V9SdGBQzQdjJ/IO3eDifGpDBJfvrNTp2QD9P2BeqWTGrRibgfgIlBSw6z3b6R7dPzg752tOs4u/7yCLxksSQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/scope-manager@8.40.0': - resolution: {integrity: sha512-y9ObStCcdCiZKzwqsE8CcpyuVMwRouJbbSrNuThDpv16dFAj429IkM6LNb1dZ2m7hK5fHyzNcErZf7CEeKXR4w==} + '@typescript-eslint/scope-manager@8.41.0': + resolution: {integrity: sha512-n6m05bXn/Cd6DZDGyrpXrELCPVaTnLdPToyhBoFkLIMznRUQUEQdSp96s/pcWSQdqOhrgR1mzJ+yItK7T+WPMQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/tsconfig-utils@8.40.0': - resolution: {integrity: sha512-jtMytmUaG9d/9kqSl/W3E3xaWESo4hFDxAIHGVW/WKKtQhesnRIJSAJO6XckluuJ6KDB5woD1EiqknriCtAmcw==} + '@typescript-eslint/tsconfig-utils@8.41.0': + resolution: {integrity: sha512-TDhxYFPUYRFxFhuU5hTIJk+auzM/wKvWgoNYOPcOf6i4ReYlOoYN8q1dV5kOTjNQNJgzWN3TUUQMtlLOcUgdUw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/type-utils@8.40.0': - resolution: {integrity: sha512-eE60cK4KzAc6ZrzlJnflXdrMqOBaugeukWICO2rB0KNvwdIMaEaYiywwHMzA1qFpTxrLhN9Lp4E/00EgWcD3Ow==} + '@typescript-eslint/type-utils@8.41.0': + resolution: {integrity: sha512-63qt1h91vg3KsjVVonFJWjgSK7pZHSQFKH6uwqxAH9bBrsyRhO6ONoKyXxyVBzG1lJnFAJcKAcxLS54N1ee1OQ==} 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.40.0': - resolution: {integrity: sha512-ETdbFlgbAmXHyFPwqUIYrfc12ArvpBhEVgGAxVYSwli26dn8Ko+lIo4Su9vI9ykTZdJn+vJprs/0eZU0YMAEQg==} + '@typescript-eslint/types@8.41.0': + resolution: {integrity: sha512-9EwxsWdVqh42afLbHP90n2VdHaWU/oWgbH2P0CfcNfdKL7CuKpwMQGjwev56vWu9cSKU7FWSu6r9zck6CVfnag==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.40.0': - resolution: {integrity: sha512-k1z9+GJReVVOkc1WfVKs1vBrR5MIKKbdAjDTPvIK3L8De6KbFfPFt6BKpdkdk7rZS2GtC/m6yI5MYX+UsuvVYQ==} + '@typescript-eslint/typescript-estree@8.41.0': + resolution: {integrity: sha512-D43UwUYJmGhuwHfY7MtNKRZMmfd8+p/eNSfFe6tH5mbVDto+VQCayeAt35rOx3Cs6wxD16DQtIKw/YXxt5E0UQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/utils@8.40.0': - resolution: {integrity: sha512-Cgzi2MXSZyAUOY+BFwGs17s7ad/7L+gKt6Y8rAVVWS+7o6wrjeFN4nVfTpbE25MNcxyJ+iYUXflbs2xR9h4UBg==} + '@typescript-eslint/utils@8.41.0': + resolution: {integrity: sha512-udbCVstxZ5jiPIXrdH+BZWnPatjlYwJuJkDA4Tbo3WyYLh8NvB+h/bKeSZHDOFKfphsZYJQqaFtLeXEqurQn1A==} 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.40.0': - resolution: {integrity: sha512-8CZ47QwalyRjsypfwnbI3hKy5gJDPmrkLjkgMxhi0+DZZ2QNx2naS6/hWoVYUHU7LU2zleF68V9miaVZvhFfTA==} + '@typescript-eslint/visitor-keys@8.41.0': + resolution: {integrity: sha512-+GeGMebMCy0elMNg67LRNoVnUFPIm37iu5CmHESVx56/9Jsfdpsvbv605DQ81Pi/x11IdKUsS5nzgTYbCQU9fg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@ungap/structured-clone@1.3.0': @@ -2013,8 +2013,8 @@ packages: browser-fs-access@0.37.0: resolution: {integrity: sha512-MKpvZrKtv6pBJ2ACd+VwfS9XauBKTMVZg2UBibypuK1gfiXM7euZjbdKmvRsyxeQRhfzNVQrzCSVGXs19/LP8Q==} - browserslist@4.25.3: - resolution: {integrity: sha512-cDGv1kkDI4/0e5yON9yM5G/0A5u8sf5TnmdX5C9qHzI9PPu++sQ9zjm1k9NiOrf3riY4OkK0zSGqfvJyJsgCBQ==} + browserslist@4.25.4: + resolution: {integrity: sha512-4jYpcjabC606xJ3kw2QwGEZKX0Aw7sgQdZCvIK9dhVSPh76BKo+C+btT1RRofH7B+8iNpEbgGNVWiLki5q93yg==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -2350,11 +2350,11 @@ packages: engines: {node: '>=0.10.0'} hasBin: true - electron-to-chromium@1.5.208: - resolution: {integrity: sha512-ozZyibehoe7tOhNaf16lKmljVf+3npZcJIEbJRVftVsmAg5TeA1mGS9dVCZzOwr2xT7xK15V0p7+GZqSPgkuPg==} + electron-to-chromium@1.5.211: + resolution: {integrity: sha512-IGBvimJkotaLzFnwIVgW9/UD/AOJ2tByUmeOrtqBfACSbAw5b1G0XpvdaieKyc7ULmbwXVx+4e4Be8pOPBrYkw==} - emoji-regex@10.4.0: - resolution: {integrity: sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==} + emoji-regex@10.5.0: + resolution: {integrity: sha512-lb49vf1Xzfx080OKA0o6l8DQQpV+6Vg95zyCJX9VB/BqKYlhG7N4wgROUUHRA+ZPUefLnteQOad7z1kT2bV7bg==} emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} @@ -2428,8 +2428,8 @@ packages: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} - eslint-config-next@15.5.0: - resolution: {integrity: sha512-Yl4hlOdBqstAuHnlBfx2RimBzWQwysM2SJNu5EzYVa2qS2ItPs7lgxL0sJJDudEx5ZZHfWPZ/6U8+FtDFWs7/w==} + eslint-config-next@15.5.2: + resolution: {integrity: sha512-3hPZghsLupMxxZ2ggjIIrat/bPniM2yRpsVPVM40rp8ZMzKWOJp2CGWn7+EzoV2ddkUr5fxNfHpF+wU1hGt/3g==} peerDependencies: eslint: ^7.23.0 || ^8.0.0 || ^9.0.0 typescript: '>=3.3.1' @@ -2611,8 +2611,8 @@ packages: fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - fast-uri@3.0.6: - resolution: {integrity: sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==} + fast-uri@3.1.0: + resolution: {integrity: sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==} fastq@1.19.1: resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} @@ -3324,8 +3324,8 @@ packages: engines: {node: '>= 18'} hasBin: true - marked@16.2.0: - resolution: {integrity: sha512-LbbTuye+0dWRz2TS9KJ7wsnD4KAtpj0MVkWc90XvBa6AslXsT0hTBVH5k32pcSyHH1fst9XEFJunXHktVy0zlg==} + marked@16.2.1: + resolution: {integrity: sha512-r3UrXED9lMlHF97jJByry90cwrZBBvZmjG1L68oYfuPMW+uDTnuMbyJDymCWwbTE+f+3LhpNDKfpR3a3saFyjA==} engines: {node: '>= 20'} hasBin: true @@ -3511,8 +3511,8 @@ packages: minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - mobx-github@0.3.11: - resolution: {integrity: sha512-xbad5SNMmVJBKoWTnkUxzObSWQI/olk3Iy6ai2LWEbou2hfpQVre0/FaejQs593cNyheQl1RULdKctOcB4EbyQ==} + mobx-github@0.4.0: + resolution: {integrity: sha512-OSuAwEBGl8ddBNo2xmr308PhAdaZQ9PWsQ5XAagFf1DWK9JDy1Oea5deabFDeyIeQPyEcyShx1kDoOpselZaaw==} mobx-i18n@0.7.1: resolution: {integrity: sha512-J8iTlxkj19Rh75gst5IvNl8LnlBQVIRV7FAt8yaLBRhSSe4jaZxlDMwXiv0wuBZ6SUD71KYw1w4YTMAorL3O5w==} @@ -3607,12 +3607,12 @@ packages: next-pwa@5.6.0: resolution: {integrity: sha512-XV8g8C6B7UmViXU8askMEYhWwQ4qc/XqJGnexbLV68hzKaGHZDMtHsm2TNxFcbR7+ypVuth/wwpiIlMwpRJJ5A==} peerDependencies: - next: ^15.5.0 + next: ^15.5.2 next-ssr-middleware@1.0.2: resolution: {integrity: sha512-klh3DEjbWfohZVq+EsghitdD8/sqLdHd6I+QsRiwTZYZdjVeYkhnQjLtCVYD2jvLzbqkOcCirKdQBgDdVbXo2w==} peerDependencies: - next: ^15.5.0 + next: ^15.5.2 react: '>=18' next-with-less@3.0.1: @@ -3620,10 +3620,10 @@ packages: peerDependencies: less: '*' less-loader: '>= 7.0.0' - next: ^15.5.0 + next: ^15.5.2 - next@15.5.0: - resolution: {integrity: sha512-N1lp9Hatw3a9XLt0307lGB4uTKsXDhyOKQo7uYMzX4i0nF/c27grcGXkLdb7VcT8QPYLBa8ouIyEoUQJ2OyeNQ==} + next@15.5.2: + resolution: {integrity: sha512-H8Otr7abj1glFhbGnvUt3gz++0AF1+QoCXEBmd/6aKbfdFwrn0LpA836Ed5+00va/7HQSDD+mOoVhn3tNy3e/Q==} engines: {node: ^18.18.0 || ^19.8.0 || >= 20.0.0} hasBin: true peerDependencies: @@ -4071,8 +4071,8 @@ packages: safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - sass@1.90.0: - resolution: {integrity: sha512-9GUyuksjw70uNpb1MTYWsH9MQHOHY6kwfnkafC24+7aOMZn9+rVMBxRbLvw756mrBFbIsFg6Xw9IkR2Fnn3k+Q==} + sass@1.91.0: + resolution: {integrity: sha512-aFOZHGf+ur+bp1bCHZ+u8otKGh77ZtmFyXDo4tlYvT7PWql41Kwd8wdkPqhhT+h2879IVblcHFglIMofsFd1EA==} engines: {node: '>=14.0.0'} hasBin: true @@ -4220,6 +4220,10 @@ packages: resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} engines: {node: '>= 0.8'} + statuses@2.0.2: + resolution: {integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==} + engines: {node: '>= 0.8'} + stop-iteration-iterator@1.1.0: resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==} engines: {node: '>= 0.4'} @@ -4431,8 +4435,8 @@ packages: typed.js@2.1.0: resolution: {integrity: sha512-bDuXEf7YcaKN4g08NMTUM6G90XU25CK3bh6U0THC/Mod/QPKlEt9g/EjvbYB8x2Qwr2p6J6I3NrsoYaVnY6wsQ==} - typescript-eslint@8.40.0: - resolution: {integrity: sha512-Xvd2l+ZmFDPEt4oj1QEXzA4A2uUK6opvKu3eGN9aGjB8au02lIVcLyi375w94hHyejTOmzIU77L8ol2sRg9n7Q==} + typescript-eslint@8.41.0: + resolution: {integrity: sha512-n66rzs5OBXW3SFSnZHr2T685q1i4ODm2nulFJhMZBotaTavsS8TrI3d7bDlRSs9yWo7HmyWrN9qDu14Qv7Y0Dw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -4564,8 +4568,8 @@ packages: resolution: {integrity: sha512-0rYDzGOh9EZpig92umN5g5D/9A1Kff7k0/mzPSSCY8jEQeYkgRMoY7LhbXtUCWzLCMX0TUE9aoHkjFNB7D9pfA==} engines: {node: '>= 8'} - web-utility@4.5.1: - resolution: {integrity: sha512-Yy9m6GiYKFLbqHVYbH8S/c3bSJUs5iv0XVCWYjZp/lANOuAQX28+bief7UHY4MLdaZuMBmHs4MqrwxfS8bcvRQ==} + web-utility@4.5.3: + resolution: {integrity: sha512-/+PLgAOPftEO+LKGPK1nIAiIJPiUcjdO1QGtXF9Ozspfa7UwpUUeYXclNmqq/0/tgsvYuJpEQvldR2FXkCyhQQ==} peerDependencies: element-internals-polyfill: '>=1' typescript: '>=4.1' @@ -4745,7 +4749,7 @@ snapshots: dependencies: '@babel/compat-data': 7.28.0 '@babel/helper-validator-option': 7.27.1 - browserslist: 4.25.3 + browserslist: 4.25.4 lru-cache: 5.1.1 semver: 6.3.1 @@ -5908,10 +5912,10 @@ snapshots: - acorn - supports-color - '@mdx-js/react@3.1.0(@types/react@19.1.11)(react@19.1.1)': + '@mdx-js/react@3.1.0(@types/react@19.1.12)(react@19.1.1)': dependencies: '@types/mdx': 2.0.13 - '@types/react': 19.1.11 + '@types/react': 19.1.12 react: 19.1.1 '@mixmark-io/domino@2.2.0': {} @@ -5923,41 +5927,41 @@ snapshots: '@tybys/wasm-util': 0.10.0 optional: true - '@next/env@15.5.0': {} + '@next/env@15.5.2': {} - '@next/eslint-plugin-next@15.5.0': + '@next/eslint-plugin-next@15.5.2': dependencies: fast-glob: 3.3.1 - '@next/mdx@15.5.0(@mdx-js/loader@3.1.0(acorn@8.15.0))(@mdx-js/react@3.1.0(@types/react@19.1.11)(react@19.1.1))': + '@next/mdx@15.5.2(@mdx-js/loader@3.1.0(acorn@8.15.0))(@mdx-js/react@3.1.0(@types/react@19.1.12)(react@19.1.1))': dependencies: source-map: 0.7.6 optionalDependencies: '@mdx-js/loader': 3.1.0(acorn@8.15.0) - '@mdx-js/react': 3.1.0(@types/react@19.1.11)(react@19.1.1) + '@mdx-js/react': 3.1.0(@types/react@19.1.12)(react@19.1.1) - '@next/swc-darwin-arm64@15.5.0': + '@next/swc-darwin-arm64@15.5.2': optional: true - '@next/swc-darwin-x64@15.5.0': + '@next/swc-darwin-x64@15.5.2': optional: true - '@next/swc-linux-arm64-gnu@15.5.0': + '@next/swc-linux-arm64-gnu@15.5.2': optional: true - '@next/swc-linux-arm64-musl@15.5.0': + '@next/swc-linux-arm64-musl@15.5.2': optional: true - '@next/swc-linux-x64-gnu@15.5.0': + '@next/swc-linux-x64-gnu@15.5.2': optional: true - '@next/swc-linux-x64-musl@15.5.0': + '@next/swc-linux-x64-musl@15.5.2': optional: true - '@next/swc-win32-arm64-msvc@15.5.0': + '@next/swc-win32-arm64-msvc@15.5.2': optional: true - '@next/swc-win32-x64-msvc@15.5.0': + '@next/swc-win32-x64-msvc@15.5.2': optional: true '@nodelib/fs.scandir@2.1.5': @@ -6130,7 +6134,7 @@ snapshots: '@stylistic/eslint-plugin@5.2.3(eslint@9.34.0(jiti@2.5.1))': dependencies: '@eslint-community/eslint-utils': 4.7.0(eslint@9.34.0(jiti@2.5.1)) - '@typescript-eslint/types': 8.40.0 + '@typescript-eslint/types': 8.41.0 eslint: 9.34.0(jiti@2.5.1) eslint-visitor-keys: 4.2.1 espree: 10.4.0 @@ -6169,21 +6173,21 @@ snapshots: '@types/accepts@1.3.7': dependencies: - '@types/node': 22.17.2 + '@types/node': 22.18.0 '@types/body-parser@1.19.6': dependencies: '@types/connect': 3.4.38 - '@types/node': 22.17.2 + '@types/node': 22.18.0 '@types/co-body@6.1.3': dependencies: - '@types/node': 22.17.2 + '@types/node': 22.18.0 '@types/qs': 6.14.0 '@types/connect@3.4.38': dependencies: - '@types/node': 22.17.2 + '@types/node': 22.18.0 '@types/content-disposition@0.5.9': {} @@ -6192,7 +6196,7 @@ snapshots: '@types/connect': 3.4.38 '@types/express': 5.0.3 '@types/keygrip': 1.0.6 - '@types/node': 22.17.2 + '@types/node': 22.18.0 '@types/debug@4.1.12': dependencies: @@ -6210,7 +6214,7 @@ snapshots: '@types/express-serve-static-core@5.0.7': dependencies: - '@types/node': 22.17.2 + '@types/node': 22.18.0 '@types/qs': 6.14.0 '@types/range-parser': 1.2.7 '@types/send': 0.17.5 @@ -6224,7 +6228,7 @@ snapshots: '@types/glob@7.2.0': dependencies: '@types/minimatch': 6.0.0 - '@types/node': 22.17.2 + '@types/node': 22.18.0 '@types/hast@3.0.4': dependencies: @@ -6241,7 +6245,7 @@ snapshots: '@types/jsonwebtoken@9.0.10': dependencies: '@types/ms': 2.1.0 - '@types/node': 22.17.2 + '@types/node': 22.18.0 '@types/keygrip@1.0.6': {} @@ -6258,7 +6262,7 @@ snapshots: '@types/http-errors': 2.0.5 '@types/keygrip': 1.0.6 '@types/koa-compose': 3.2.8 - '@types/node': 22.17.2 + '@types/node': 22.18.0 '@types/koa__router@12.0.4': dependencies: @@ -6280,12 +6284,12 @@ snapshots: '@types/ms@2.1.0': {} - '@types/next-pwa@5.6.9(@babel/core@7.28.3)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(sass@1.90.0)': + '@types/next-pwa@5.6.9(@babel/core@7.28.3)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(sass@1.91.0)': dependencies: - '@types/node': 22.17.2 - '@types/react': 19.1.11 - '@types/react-dom': 19.1.7(@types/react@19.1.11) - next: 15.5.0(@babel/core@7.28.3)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(sass@1.90.0) + '@types/node': 22.18.0 + '@types/react': 19.1.12 + '@types/react-dom': 19.1.9(@types/react@19.1.12) + next: 15.5.2(@babel/core@7.28.3)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(sass@1.91.0) workbox-build: 6.6.0 transitivePeerDependencies: - '@babel/core' @@ -6299,7 +6303,7 @@ snapshots: - sass - supports-color - '@types/node@22.17.2': + '@types/node@22.18.0': dependencies: undici-types: 6.21.0 @@ -6309,31 +6313,31 @@ snapshots: '@types/range-parser@1.2.7': {} - '@types/react-dom@19.1.7(@types/react@19.1.11)': + '@types/react-dom@19.1.9(@types/react@19.1.12)': dependencies: - '@types/react': 19.1.11 + '@types/react': 19.1.12 - '@types/react-transition-group@4.4.12(@types/react@19.1.11)': + '@types/react-transition-group@4.4.12(@types/react@19.1.12)': dependencies: - '@types/react': 19.1.11 + '@types/react': 19.1.12 - '@types/react@19.1.11': + '@types/react@19.1.12': dependencies: csstype: 3.1.3 '@types/resolve@1.17.1': dependencies: - '@types/node': 22.17.2 + '@types/node': 22.18.0 '@types/send@0.17.5': dependencies: '@types/mime': 1.3.5 - '@types/node': 22.17.2 + '@types/node': 22.18.0 '@types/serve-static@1.15.8': dependencies: '@types/http-errors': 2.0.5 - '@types/node': 22.17.2 + '@types/node': 22.18.0 '@types/send': 0.17.5 '@types/trusted-types@2.0.7': {} @@ -6346,14 +6350,14 @@ snapshots: '@types/warning@3.0.3': {} - '@typescript-eslint/eslint-plugin@8.40.0(@typescript-eslint/parser@8.40.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2)': + '@typescript-eslint/eslint-plugin@8.41.0(@typescript-eslint/parser@8.41.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.40.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) - '@typescript-eslint/scope-manager': 8.40.0 - '@typescript-eslint/type-utils': 8.40.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) - '@typescript-eslint/utils': 8.40.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) - '@typescript-eslint/visitor-keys': 8.40.0 + '@typescript-eslint/parser': 8.41.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) + '@typescript-eslint/scope-manager': 8.41.0 + '@typescript-eslint/type-utils': 8.41.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) + '@typescript-eslint/utils': 8.41.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) + '@typescript-eslint/visitor-keys': 8.41.0 eslint: 9.34.0(jiti@2.5.1) graphemer: 1.4.0 ignore: 7.0.5 @@ -6363,41 +6367,41 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.40.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2)': + '@typescript-eslint/parser@8.41.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2)': dependencies: - '@typescript-eslint/scope-manager': 8.40.0 - '@typescript-eslint/types': 8.40.0 - '@typescript-eslint/typescript-estree': 8.40.0(typescript@5.9.2) - '@typescript-eslint/visitor-keys': 8.40.0 + '@typescript-eslint/scope-manager': 8.41.0 + '@typescript-eslint/types': 8.41.0 + '@typescript-eslint/typescript-estree': 8.41.0(typescript@5.9.2) + '@typescript-eslint/visitor-keys': 8.41.0 debug: 4.4.1 eslint: 9.34.0(jiti@2.5.1) typescript: 5.9.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.40.0(typescript@5.9.2)': + '@typescript-eslint/project-service@8.41.0(typescript@5.9.2)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.40.0(typescript@5.9.2) - '@typescript-eslint/types': 8.40.0 + '@typescript-eslint/tsconfig-utils': 8.41.0(typescript@5.9.2) + '@typescript-eslint/types': 8.41.0 debug: 4.4.1 typescript: 5.9.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.40.0': + '@typescript-eslint/scope-manager@8.41.0': dependencies: - '@typescript-eslint/types': 8.40.0 - '@typescript-eslint/visitor-keys': 8.40.0 + '@typescript-eslint/types': 8.41.0 + '@typescript-eslint/visitor-keys': 8.41.0 - '@typescript-eslint/tsconfig-utils@8.40.0(typescript@5.9.2)': + '@typescript-eslint/tsconfig-utils@8.41.0(typescript@5.9.2)': dependencies: typescript: 5.9.2 - '@typescript-eslint/type-utils@8.40.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2)': + '@typescript-eslint/type-utils@8.41.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2)': dependencies: - '@typescript-eslint/types': 8.40.0 - '@typescript-eslint/typescript-estree': 8.40.0(typescript@5.9.2) - '@typescript-eslint/utils': 8.40.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) + '@typescript-eslint/types': 8.41.0 + '@typescript-eslint/typescript-estree': 8.41.0(typescript@5.9.2) + '@typescript-eslint/utils': 8.41.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) debug: 4.4.1 eslint: 9.34.0(jiti@2.5.1) ts-api-utils: 2.1.0(typescript@5.9.2) @@ -6405,14 +6409,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.40.0': {} + '@typescript-eslint/types@8.41.0': {} - '@typescript-eslint/typescript-estree@8.40.0(typescript@5.9.2)': + '@typescript-eslint/typescript-estree@8.41.0(typescript@5.9.2)': dependencies: - '@typescript-eslint/project-service': 8.40.0(typescript@5.9.2) - '@typescript-eslint/tsconfig-utils': 8.40.0(typescript@5.9.2) - '@typescript-eslint/types': 8.40.0 - '@typescript-eslint/visitor-keys': 8.40.0 + '@typescript-eslint/project-service': 8.41.0(typescript@5.9.2) + '@typescript-eslint/tsconfig-utils': 8.41.0(typescript@5.9.2) + '@typescript-eslint/types': 8.41.0 + '@typescript-eslint/visitor-keys': 8.41.0 debug: 4.4.1 fast-glob: 3.3.3 is-glob: 4.0.3 @@ -6423,20 +6427,20 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.40.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2)': + '@typescript-eslint/utils@8.41.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2)': dependencies: '@eslint-community/eslint-utils': 4.7.0(eslint@9.34.0(jiti@2.5.1)) - '@typescript-eslint/scope-manager': 8.40.0 - '@typescript-eslint/types': 8.40.0 - '@typescript-eslint/typescript-estree': 8.40.0(typescript@5.9.2) + '@typescript-eslint/scope-manager': 8.41.0 + '@typescript-eslint/types': 8.41.0 + '@typescript-eslint/typescript-estree': 8.41.0(typescript@5.9.2) eslint: 9.34.0(jiti@2.5.1) typescript: 5.9.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.40.0': + '@typescript-eslint/visitor-keys@8.41.0': dependencies: - '@typescript-eslint/types': 8.40.0 + '@typescript-eslint/types': 8.41.0 eslint-visitor-keys: 4.2.1 '@ungap/structured-clone@1.3.0': {} @@ -6534,7 +6538,7 @@ snapshots: ajv@8.17.1: dependencies: fast-deep-equal: 3.1.3 - fast-uri: 3.0.6 + fast-uri: 3.1.0 json-schema-traverse: 1.0.0 require-from-string: 2.0.2 @@ -6704,12 +6708,12 @@ snapshots: browser-fs-access@0.37.0: {} - browserslist@4.25.3: + browserslist@4.25.4: dependencies: caniuse-lite: 1.0.30001737 - electron-to-chromium: 1.5.208 + electron-to-chromium: 1.5.211 node-releases: 2.0.19 - update-browserslist-db: 1.1.3(browserslist@4.25.3) + update-browserslist-db: 1.1.3(browserslist@4.25.4) buffer-equal-constant-time@1.0.1: {} @@ -6858,7 +6862,7 @@ snapshots: core-js-compat@3.45.1: dependencies: - browserslist: 4.25.3 + browserslist: 4.25.4 core-js@3.45.1: {} @@ -7058,7 +7062,7 @@ snapshots: regenerator-runtime: 0.14.1 turndown: 7.2.1 turndown-plugin-gfm: 1.0.2 - web-utility: 4.5.1(typescript@5.9.2) + web-utility: 4.5.3(typescript@5.9.2) transitivePeerDependencies: - element-internals-polyfill - typescript @@ -7069,9 +7073,9 @@ snapshots: dependencies: jake: 10.9.4 - electron-to-chromium@1.5.208: {} + electron-to-chromium@1.5.211: {} - emoji-regex@10.4.0: {} + emoji-regex@10.5.0: {} emoji-regex@9.2.2: {} @@ -7209,16 +7213,16 @@ snapshots: escape-string-regexp@4.0.0: {} - eslint-config-next@15.5.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2): + eslint-config-next@15.5.2(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2): dependencies: - '@next/eslint-plugin-next': 15.5.0 + '@next/eslint-plugin-next': 15.5.2 '@rushstack/eslint-patch': 1.12.0 - '@typescript-eslint/eslint-plugin': 8.40.0(@typescript-eslint/parser@8.40.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) - '@typescript-eslint/parser': 8.40.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) + '@typescript-eslint/eslint-plugin': 8.41.0(@typescript-eslint/parser@8.41.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) + '@typescript-eslint/parser': 8.41.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) eslint: 9.34.0(jiti@2.5.1) eslint-import-resolver-node: 0.3.9 eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.34.0(jiti@2.5.1)) - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.40.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2))(eslint-import-resolver-typescript@3.10.1)(eslint@9.34.0(jiti@2.5.1)) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.41.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2))(eslint-import-resolver-typescript@3.10.1)(eslint@9.34.0(jiti@2.5.1)) eslint-plugin-jsx-a11y: 6.10.2(eslint@9.34.0(jiti@2.5.1)) eslint-plugin-react: 7.37.5(eslint@9.34.0(jiti@2.5.1)) eslint-plugin-react-hooks: 5.2.0(eslint@9.34.0(jiti@2.5.1)) @@ -7252,22 +7256,22 @@ snapshots: tinyglobby: 0.2.14 unrs-resolver: 1.11.1 optionalDependencies: - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.40.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2))(eslint-import-resolver-typescript@3.10.1)(eslint@9.34.0(jiti@2.5.1)) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.41.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2))(eslint-import-resolver-typescript@3.10.1)(eslint@9.34.0(jiti@2.5.1)) transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.1(@typescript-eslint/parser@8.40.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.34.0(jiti@2.5.1)): + eslint-module-utils@2.12.1(@typescript-eslint/parser@8.41.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.34.0(jiti@2.5.1)): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 8.40.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) + '@typescript-eslint/parser': 8.41.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) eslint: 9.34.0(jiti@2.5.1) eslint-import-resolver-node: 0.3.9 eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.34.0(jiti@2.5.1)) transitivePeerDependencies: - supports-color - eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.40.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2))(eslint-import-resolver-typescript@3.10.1)(eslint@9.34.0(jiti@2.5.1)): + eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.41.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2))(eslint-import-resolver-typescript@3.10.1)(eslint@9.34.0(jiti@2.5.1)): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.9 @@ -7278,7 +7282,7 @@ snapshots: doctrine: 2.1.0 eslint: 9.34.0(jiti@2.5.1) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.40.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.34.0(jiti@2.5.1)) + eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.41.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.34.0(jiti@2.5.1)) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -7290,7 +7294,7 @@ snapshots: string.prototype.trimend: 1.0.9 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 8.40.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) + '@typescript-eslint/parser': 8.41.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack @@ -7479,7 +7483,7 @@ snapshots: fast-levenshtein@2.0.6: {} - fast-uri@3.0.6: {} + fast-uri@3.1.0: {} fastq@1.19.1: dependencies: @@ -7765,7 +7769,7 @@ snapshots: idb@7.1.1: {} - idea-react@2.0.0-rc.13(@types/react@19.1.11)(react-dom@19.1.1(react@19.1.1))(react-is@16.13.1)(react@19.1.1)(typescript@5.9.2): + idea-react@2.0.0-rc.13(@types/react@19.1.12)(react-dom@19.1.1(react@19.1.1))(react-is@16.13.1)(react@19.1.1)(typescript@5.9.2): dependencies: '@editorjs/editorjs': 2.30.8 '@editorjs/paragraph': 2.11.7 @@ -7781,11 +7785,11 @@ snapshots: mobx-react-helper: 0.4.1(mobx@6.13.7)(react@19.1.1)(typescript@5.9.2) prismjs: 1.30.0 react: 19.1.1 - react-bootstrap: 2.10.10(@types/react@19.1.11)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + react-bootstrap: 2.10.10(@types/react@19.1.12)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) react-dom: 19.1.1(react@19.1.1) react-editor-js: 2.1.0(@editorjs/editorjs@2.30.8)(@editorjs/paragraph@2.11.7)(react@19.1.1) react-element-to-jsx-string: 17.0.1(react-dom@19.1.1(react@19.1.1))(react-is@16.13.1)(react@19.1.1) - web-utility: 4.5.1(typescript@5.9.2) + web-utility: 4.5.3(typescript@5.9.2) transitivePeerDependencies: - '@types/react' - element-internals-polyfill @@ -8022,13 +8026,13 @@ snapshots: jest-worker@26.6.2: dependencies: - '@types/node': 22.17.2 + '@types/node': 22.18.0 merge-stream: 2.0.0 supports-color: 7.2.0 jest-worker@27.5.1: dependencies: - '@types/node': 22.17.2 + '@types/node': 22.18.0 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -8128,7 +8132,7 @@ snapshots: mime-types: 3.0.1 on-finished: 2.4.1 parseurl: 1.3.3 - statuses: 2.0.1 + statuses: 2.0.2 type-is: 2.0.1 vary: 1.1.2 @@ -8138,7 +8142,7 @@ snapshots: core-js: 3.45.1 regenerator-runtime: 0.14.1 web-streams-polyfill: 4.2.0 - web-utility: 4.5.1(typescript@5.9.2) + web-utility: 4.5.3(typescript@5.9.2) transitivePeerDependencies: - element-internals-polyfill - typescript @@ -8278,7 +8282,7 @@ snapshots: marked@15.0.12: {} - marked@16.2.0: {} + marked@16.2.1: {} math-intrinsics@1.1.0: {} @@ -8637,7 +8641,7 @@ snapshots: minimist@1.2.8: {} - mobx-github@0.3.11(core-js@3.45.1)(typescript@5.9.2): + mobx-github@0.4.0(core-js@3.45.1)(typescript@5.9.2): dependencies: '@octokit/openapi-types': 25.1.0 '@swc/helpers': 0.5.17 @@ -8646,7 +8650,7 @@ snapshots: lodash: 4.17.21 mobx: 6.13.7 mobx-restful: 2.1.0(core-js@3.45.1)(mobx@6.13.7)(typescript@5.9.2) - web-utility: 4.5.1(typescript@5.9.2) + web-utility: 4.5.3(typescript@5.9.2) transitivePeerDependencies: - core-js - element-internals-polyfill @@ -8656,10 +8660,10 @@ snapshots: mobx-i18n@0.7.1(mobx@6.13.7)(typescript@5.9.2): dependencies: '@swc/helpers': 0.5.17 - '@types/node': 22.17.2 + '@types/node': 22.18.0 mobx: 6.13.7 regenerator-runtime: 0.14.1 - web-utility: 4.5.1(typescript@5.9.2) + web-utility: 4.5.3(typescript@5.9.2) transitivePeerDependencies: - element-internals-polyfill - typescript @@ -8667,13 +8671,13 @@ snapshots: mobx-lark@2.4.0(core-js@3.45.1)(react@19.1.1)(typescript@5.9.2): dependencies: '@swc/helpers': 0.5.17 - '@types/react': 19.1.11 + '@types/react': 19.1.12 koajax: 3.1.2(core-js@3.45.1)(typescript@5.9.2) mobx: 6.13.7 mobx-restful: 2.1.0(core-js@3.45.1)(mobx@6.13.7)(typescript@5.9.2) react: 19.1.1 regenerator-runtime: 0.14.1 - web-utility: 4.5.1(typescript@5.9.2) + web-utility: 4.5.3(typescript@5.9.2) transitivePeerDependencies: - core-js - element-internals-polyfill @@ -8686,7 +8690,7 @@ snapshots: lodash.isequalwith: 4.4.0 mobx: 6.13.7 react: 19.1.1 - web-utility: 4.5.1(typescript@5.9.2) + web-utility: 4.5.3(typescript@5.9.2) transitivePeerDependencies: - element-internals-polyfill - typescript @@ -8697,7 +8701,7 @@ snapshots: lodash.isequalwith: 4.4.0 mobx: 6.13.7 react: 19.1.1 - web-utility: 4.5.1(typescript@5.9.2) + web-utility: 4.5.3(typescript@5.9.2) transitivePeerDependencies: - element-internals-polyfill - typescript @@ -8718,7 +8722,7 @@ snapshots: optionalDependencies: react-dom: 19.1.1(react@19.1.1) - mobx-restful-table@2.5.3(@types/react@19.1.11)(core-js@3.45.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2): + mobx-restful-table@2.5.3(@types/react@19.1.12)(core-js@3.45.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2): dependencies: '@swc/helpers': 0.5.17 classnames: 2.5.1 @@ -8729,10 +8733,10 @@ snapshots: mobx-react-helper: 0.5.1(mobx@6.13.7)(react@19.1.1)(typescript@5.9.2) mobx-restful: 2.1.0(core-js@3.45.1)(mobx@6.13.7)(typescript@5.9.2) react: 19.1.1 - react-bootstrap: 2.10.10(@types/react@19.1.11)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + react-bootstrap: 2.10.10(@types/react@19.1.12)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) react-bootstrap-editor: 2.1.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2) regenerator-runtime: 0.14.1 - web-utility: 4.5.1(typescript@5.9.2) + web-utility: 4.5.3(typescript@5.9.2) transitivePeerDependencies: - '@types/react' - core-js @@ -8749,7 +8753,7 @@ snapshots: koajax: 3.1.2(core-js@3.45.1)(typescript@5.9.2) mobx: 6.13.7 regenerator-runtime: 0.14.1 - web-utility: 4.5.1(typescript@5.9.2) + web-utility: 4.5.3(typescript@5.9.2) transitivePeerDependencies: - core-js - element-internals-polyfill @@ -8776,12 +8780,12 @@ snapshots: negotiator@0.6.3: {} - next-pwa@5.6.0(@babel/core@7.28.3)(next@15.5.0(@babel/core@7.28.3)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(sass@1.90.0)): + next-pwa@5.6.0(@babel/core@7.28.3)(next@15.5.2(@babel/core@7.28.3)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(sass@1.91.0)): dependencies: babel-loader: 8.4.1(@babel/core@7.28.3) clean-webpack-plugin: 4.0.0 globby: 11.1.0 - next: 15.5.0(@babel/core@7.28.3)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(sass@1.90.0) + next: 15.5.2(@babel/core@7.28.3)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(sass@1.91.0) terser-webpack-plugin: 5.3.14 workbox-webpack-plugin: 6.6.0 workbox-window: 6.6.0 @@ -8794,35 +8798,35 @@ snapshots: - uglify-js - webpack - next-ssr-middleware@1.0.2(next@15.5.0(@babel/core@7.28.3)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(sass@1.90.0))(react@19.1.1)(typescript@5.9.2): + next-ssr-middleware@1.0.2(next@15.5.2(@babel/core@7.28.3)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(sass@1.91.0))(react@19.1.1)(typescript@5.9.2): dependencies: '@koa/bodyparser': 6.0.0(koa@3.0.1) '@koa/router': 13.1.1 '@types/jsonwebtoken': 9.0.10 '@types/koa': 3.0.0 '@types/koa__router': 12.0.4 - '@types/react': 19.1.11 + '@types/react': 19.1.12 jsonwebtoken: 9.0.2 koa: 3.0.1 - next: 15.5.0(@babel/core@7.28.3)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(sass@1.90.0) + next: 15.5.2(@babel/core@7.28.3)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(sass@1.91.0) react: 19.1.1 tslib: 2.8.1 - web-utility: 4.5.1(typescript@5.9.2) + web-utility: 4.5.3(typescript@5.9.2) transitivePeerDependencies: - element-internals-polyfill - supports-color - typescript - next-with-less@3.0.1(less-loader@12.3.0(less@4.4.1))(less@4.4.1)(next@15.5.0(@babel/core@7.28.3)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(sass@1.90.0)): + next-with-less@3.0.1(less-loader@12.3.0(less@4.4.1))(less@4.4.1)(next@15.5.2(@babel/core@7.28.3)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(sass@1.91.0)): dependencies: clone-deep: 4.0.1 less: 4.4.1 less-loader: 12.3.0(less@4.4.1) - next: 15.5.0(@babel/core@7.28.3)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(sass@1.90.0) + next: 15.5.2(@babel/core@7.28.3)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(sass@1.91.0) - next@15.5.0(@babel/core@7.28.3)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(sass@1.90.0): + next@15.5.2(@babel/core@7.28.3)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(sass@1.91.0): dependencies: - '@next/env': 15.5.0 + '@next/env': 15.5.2 '@swc/helpers': 0.5.15 caniuse-lite: 1.0.30001737 postcss: 8.4.31 @@ -8830,15 +8834,15 @@ snapshots: react-dom: 19.1.1(react@19.1.1) styled-jsx: 5.1.6(@babel/core@7.28.3)(react@19.1.1) optionalDependencies: - '@next/swc-darwin-arm64': 15.5.0 - '@next/swc-darwin-x64': 15.5.0 - '@next/swc-linux-arm64-gnu': 15.5.0 - '@next/swc-linux-arm64-musl': 15.5.0 - '@next/swc-linux-x64-gnu': 15.5.0 - '@next/swc-linux-x64-musl': 15.5.0 - '@next/swc-win32-arm64-msvc': 15.5.0 - '@next/swc-win32-x64-msvc': 15.5.0 - sass: 1.90.0 + '@next/swc-darwin-arm64': 15.5.2 + '@next/swc-darwin-x64': 15.5.2 + '@next/swc-linux-arm64-gnu': 15.5.2 + '@next/swc-linux-arm64-musl': 15.5.2 + '@next/swc-linux-x64-gnu': 15.5.2 + '@next/swc-linux-x64-musl': 15.5.2 + '@next/swc-win32-arm64-msvc': 15.5.2 + '@next/swc-win32-x64-msvc': 15.5.2 + sass: 1.91.0 sharp: 0.34.3 transitivePeerDependencies: - '@babel/core' @@ -9076,19 +9080,19 @@ snapshots: mobx-react-helper: 0.4.1(mobx@6.13.7)(react@19.1.1)(typescript@5.9.2) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) - web-utility: 4.5.1(typescript@5.9.2) + web-utility: 4.5.3(typescript@5.9.2) transitivePeerDependencies: - element-internals-polyfill - react-native - typescript - react-bootstrap@2.10.10(@types/react@19.1.11)(react-dom@19.1.1(react@19.1.1))(react@19.1.1): + react-bootstrap@2.10.10(@types/react@19.1.12)(react-dom@19.1.1(react@19.1.1))(react@19.1.1): dependencies: '@babel/runtime': 7.28.3 '@restart/hooks': 0.4.16(react@19.1.1) '@restart/ui': 1.9.4(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@types/prop-types': 15.7.15 - '@types/react-transition-group': 4.4.12(@types/react@19.1.11) + '@types/react-transition-group': 4.4.12(@types/react@19.1.12) classnames: 2.5.1 dom-helpers: 5.2.1 invariant: 2.2.4 @@ -9100,7 +9104,7 @@ snapshots: uncontrollable: 7.2.1(react@19.1.1) warning: 4.0.3 optionalDependencies: - '@types/react': 19.1.11 + '@types/react': 19.1.12 react-dom@19.1.1(react@19.1.1): dependencies: @@ -9327,7 +9331,7 @@ snapshots: safer-buffer@2.1.2: {} - sass@1.90.0: + sass@1.91.0: dependencies: chokidar: 4.0.3 immutable: 5.1.3 @@ -9508,6 +9512,8 @@ snapshots: statuses@2.0.1: {} + statuses@2.0.2: {} + stop-iteration-iterator@1.1.0: dependencies: es-errors: 1.3.0 @@ -9517,7 +9523,7 @@ snapshots: string-width@7.2.0: dependencies: - emoji-regex: 10.4.0 + emoji-regex: 10.5.0 get-east-asian-width: 1.3.0 strip-ansi: 7.1.0 @@ -9751,12 +9757,12 @@ snapshots: typed.js@2.1.0: {} - typescript-eslint@8.40.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2): + typescript-eslint@8.41.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2): dependencies: - '@typescript-eslint/eslint-plugin': 8.40.0(@typescript-eslint/parser@8.40.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) - '@typescript-eslint/parser': 8.40.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) - '@typescript-eslint/typescript-estree': 8.40.0(typescript@5.9.2) - '@typescript-eslint/utils': 8.40.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) + '@typescript-eslint/eslint-plugin': 8.41.0(@typescript-eslint/parser@8.41.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) + '@typescript-eslint/parser': 8.41.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) + '@typescript-eslint/typescript-estree': 8.41.0(typescript@5.9.2) + '@typescript-eslint/utils': 8.41.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) eslint: 9.34.0(jiti@2.5.1) typescript: 5.9.2 transitivePeerDependencies: @@ -9776,7 +9782,7 @@ snapshots: uncontrollable@7.2.1(react@19.1.1): dependencies: '@babel/runtime': 7.28.3 - '@types/react': 19.1.11 + '@types/react': 19.1.12 invariant: 2.2.4 react: 19.1.1 react-lifecycles-compat: 3.0.4 @@ -9871,9 +9877,9 @@ snapshots: upath@1.2.0: {} - update-browserslist-db@1.1.3(browserslist@4.25.3): + update-browserslist-db@1.1.3(browserslist@4.25.4): dependencies: - browserslist: 4.25.3 + browserslist: 4.25.4 escalade: 3.2.0 picocolors: 1.1.1 @@ -9911,7 +9917,7 @@ snapshots: web-streams-polyfill@4.2.0: {} - web-utility@4.5.1(typescript@5.9.2): + web-utility@4.5.3(typescript@5.9.2): dependencies: '@swc/helpers': 0.5.17 regenerator-runtime: 0.14.1 diff --git a/translation/en-US.ts b/translation/en-US.ts index 4c81a86..9c2fdae 100644 --- a/translation/en-US.ts +++ b/translation/en-US.ts @@ -78,4 +78,10 @@ export default { range_file: 'file', range_module: 'module', last_step: 'back', + + // Wiki + knowledge_base: 'Knowledge Base', + contribute_content: 'Contribute Content', + no_docs_available: 'No documents available in the knowledge base.', + docs_auto_load_from_github: 'Documents will be automatically loaded from GitHub repository.', }; diff --git a/translation/zh-CN.ts b/translation/zh-CN.ts index c23c408..a9a7a3d 100644 --- a/translation/zh-CN.ts +++ b/translation/zh-CN.ts @@ -77,4 +77,10 @@ export default { range_file: '文件', range_module: '模块', last_step: '上一步', + + // Wiki + knowledge_base: '知识库', + contribute_content: '贡献内容', + no_docs_available: '知识库暂无文档。', + docs_auto_load_from_github: '文档将从 GitHub 仓库中自动加载。', }; diff --git a/translation/zh-TW.ts b/translation/zh-TW.ts index 6e393bd..22b38d7 100644 --- a/translation/zh-TW.ts +++ b/translation/zh-TW.ts @@ -77,4 +77,10 @@ export default { range_file: '檔案', range_module: '模組', last_step: '上一步', + + // Wiki + knowledge_base: '知識庫', + contribute_content: '貢獻內容', + no_docs_available: '知識庫暫無文檔。', + docs_auto_load_from_github: '文檔將從 GitHub 存儲庫中自動加載。', };