From 11931f2c390ec6cef3526501dff5a41100cb96bc Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 11 Jul 2026 23:08:49 +0000 Subject: [PATCH 1/9] Initial plan From 87380a413b5ff96f6434db7837dd49fdd56aa546 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 11 Jul 2026 23:15:34 +0000 Subject: [PATCH 2/9] feat: copy wiki/recipe/policy backend API and translation keys from Open-Source-Bazaar.github.io --- components/Layout/ContentTree.tsx | 50 +++++++++++ models/Wiki.ts | 15 +++- pages/api/core.ts | 15 ++++ pages/policy/[...slug].tsx | 137 +++++++++++++++++++++++++++++ pages/policy/index.tsx | 61 +++++++++++++ pages/recipe/[...slug].tsx | 140 ++++++++++++++++++++++++++++++ pages/recipe/index.tsx | 75 ++++++++++++++++ translation/en-US.ts | 18 ++++ translation/zh-CN.ts | 18 ++++ translation/zh-TW.ts | 18 ++++ 10 files changed, 546 insertions(+), 1 deletion(-) create mode 100644 components/Layout/ContentTree.tsx create mode 100644 pages/policy/[...slug].tsx create mode 100644 pages/policy/index.tsx create mode 100644 pages/recipe/[...slug].tsx create mode 100644 pages/recipe/index.tsx diff --git a/components/Layout/ContentTree.tsx b/components/Layout/ContentTree.tsx new file mode 100644 index 0000000..4c2d3a0 --- /dev/null +++ b/components/Layout/ContentTree.tsx @@ -0,0 +1,50 @@ +import Link from 'next/link'; +import { FC } from 'react'; +import { Badge } from 'react-bootstrap'; + +import { XContent } from '../../models/Wiki'; + +export interface ContentTreeProps { + nodes: XContent[]; + basePath: string; + level?: number; + metaKey?: string; +} + +export const ContentTree: FC = ({ + nodes, + basePath, + level = 0, + metaKey = 'category', +}) => ( +
    + {nodes.map(({ path, name, type, meta, children }) => ( +
  1. 0 ? 'ms-3' : ''}> + {type !== 'dir' ? ( + + {name} + + {meta?.[metaKey] && ( + + {meta[metaKey]} + + )} + + ) : ( + children?.[0] && ( +
    + {name} + + +
    + ) + )} +
  2. + ))} +
+); diff --git a/models/Wiki.ts b/models/Wiki.ts index 9a5772d..3fb9ac8 100644 --- a/models/Wiki.ts +++ b/models/Wiki.ts @@ -1,10 +1,23 @@ +import { Content, ContentModel } from 'mobx-github'; import { WikiNodeModel } from 'mobx-lark'; +import { DataObject } from 'mobx-restful'; import { lark } from '../pages/api/Lark/core'; import { LarkWikiDomain, LarkWikiId } from './configuration'; +export interface XContent extends Content { + meta?: DataObject; + children?: XContent[]; +} + +export const policyContentStore = new ContentModel('fpsig', 'open-source-policy'); + +export const recipeContentStore = new ContentModel('Gar-b-age', 'CookLikeHOC'); + export class MyWikiNodeModel extends WikiNodeModel { client = lark.client; } -export default new MyWikiNodeModel(LarkWikiDomain, LarkWikiId); +export const wikiStore = new MyWikiNodeModel(LarkWikiDomain, LarkWikiId); + +export default wikiStore; diff --git a/pages/api/core.ts b/pages/api/core.ts index 4af868d..1db3c6d 100644 --- a/pages/api/core.ts +++ b/pages/api/core.ts @@ -4,6 +4,7 @@ import { JsonWebTokenError, sign } from 'jsonwebtoken'; import { Context, Middleware, ParameterizedContext } from 'koa'; import JWT from 'koa-jwt'; import { HTTPError } from 'koajax'; +import { Content } from 'mobx-github'; import { DataObject } from 'mobx-restful'; import { KoaOption, withKoa } from 'next-ssr-middleware'; import { ProxyAgent, setGlobalDispatcher } from 'undici'; @@ -143,3 +144,17 @@ export function* traverseTree>( yield* traverseTree(node as N, key); } } + +export const filterMarkdownFiles = (nodes: Content[]) => + nodes + .filter( + ({ path, type, name }) => + !path.startsWith('.') && + !name.startsWith('.') && + (type !== 'file' || MD_pattern.test(name)), + ) + .map(({ content, ...rest }) => { + const { meta, markdown } = content ? splitFrontMatter(content) : {}; + + return { ...rest, content: markdown, meta }; + }); diff --git a/pages/policy/[...slug].tsx b/pages/policy/[...slug].tsx new file mode 100644 index 0000000..d6fbb84 --- /dev/null +++ b/pages/policy/[...slug].tsx @@ -0,0 +1,137 @@ +import 'core-js/stable/typed-array/from-base64'; + +import { marked } from 'marked'; +import { observer } from 'mobx-react'; +import { BadgeBar } from 'mobx-restful-table'; +import { GetStaticPaths, GetStaticProps } from 'next'; +import { ParsedUrlQuery } from 'querystring'; +import { FC, useContext } from 'react'; +import { Breadcrumb, Button, Container } from 'react-bootstrap'; +import { decodeBase64 } from 'web-utility'; + +import { PageHead } from '../../components/Layout/PageHead'; +import { I18nContext } from '../../models/Translation'; +import { policyContentStore, XContent } from '../../models/Wiki'; +import { splitFrontMatter } from '../api/core'; + +interface WikiPageParams extends ParsedUrlQuery { + slug: string[]; +} + +export const getStaticPaths: GetStaticPaths = async () => { + const nodes = await policyContentStore.getAll(); + + const paths = nodes + .filter(({ type }) => type === 'file') + .map(({ path }) => ({ params: { slug: path.split('/') } })); + + return { paths, fallback: 'blocking' }; +}; + +export const getStaticProps: GetStaticProps = async ({ params }) => { + const { slug } = params!; + + 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({ ...node, content: markup, meta })), + revalidate: 300, // Revalidate every 5 minutes + }; +}; + +const WikiPage: FC = observer(({ name, path, parent_path, content, meta }) => { + const { t } = useContext(I18nContext); + + return ( + + + + + {t('policy')} + + {parent_path?.split('/').map((segment, index, array) => { + const breadcrumbPath = array.slice(0, index + 1).join('/'); + + return ( + + {segment} + + ); + })} + {name} + + +
+
+

{name}

+ + {meta && ({ text }))} />} + +
+
+ {meta?.['成文日期'] && ( + <> +
{t('creation_date')}:
+
{meta['成文日期']}
+ + )} + {meta?.['发布日期'] && meta['发布日期'] !== meta['成文日期'] && ( + <> +
{t('publication_date')}:
+
{meta['发布日期']}
+ + )} +
+ +
+ + {meta?.url && ( + + )} +
+
+
+ +
+
+ + +
+ ); +}); + +export default WikiPage; diff --git a/pages/policy/index.tsx b/pages/policy/index.tsx new file mode 100644 index 0000000..86e8f3c --- /dev/null +++ b/pages/policy/index.tsx @@ -0,0 +1,61 @@ +import { observer } from 'mobx-react'; +import { GetStaticProps } from 'next'; +import React, { FC, useContext } from 'react'; +import { Button, Card, Container } from 'react-bootstrap'; +import { treeFrom } from 'web-utility'; + +import { ContentTree } from '../../components/Layout/ContentTree'; +import { PageHead } from '../../components/Layout/PageHead'; +import { I18nContext } from '../../models/Translation'; +import { policyContentStore, XContent } from '../../models/Wiki'; +import { filterMarkdownFiles } from '../api/core'; + +export const getStaticProps: GetStaticProps<{ nodes: XContent[] }> = async () => { + const nodes = filterMarkdownFiles(await policyContentStore.getAll()); + + return { + props: JSON.parse(JSON.stringify({ nodes })), + revalidate: 300, // Revalidate every 5 minutes + }; +}; + +const WikiIndexPage: FC<{ nodes: XContent[] }> = observer(({ nodes }) => { + const { t } = useContext(I18nContext); + + return ( + + + +
+

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

+ +
+ + {nodes[0] ? ( + + ) : ( + + +

{t('no_docs_available')}

+

{t('docs_auto_load_from_github')}

+
+
+ )} +
+ ); +}); + +export default WikiIndexPage; diff --git a/pages/recipe/[...slug].tsx b/pages/recipe/[...slug].tsx new file mode 100644 index 0000000..9a83f62 --- /dev/null +++ b/pages/recipe/[...slug].tsx @@ -0,0 +1,140 @@ +import 'core-js/stable/typed-array/from-base64'; + +import { marked } from 'marked'; +import { observer } from 'mobx-react'; +import { BadgeBar } from 'mobx-restful-table'; +import { GetStaticPaths, GetStaticProps } from 'next'; +import { ParsedUrlQuery } from 'querystring'; +import { FC, useContext } from 'react'; +import { Breadcrumb, Button, Container } from 'react-bootstrap'; +import { decodeBase64 } from 'web-utility'; + +import { PageHead } from '../../components/Layout/PageHead'; +import { I18nContext } from '../../models/Translation'; +import { recipeContentStore, XContent } from '../../models/Wiki'; +import { splitFrontMatter } from '../api/core'; + +interface RecipePageParams extends ParsedUrlQuery { + slug: string[]; +} + +export const getStaticPaths: GetStaticPaths = async () => { + const nodes = await recipeContentStore.getAll(); + + const paths = nodes + .filter( + ({ type, name, path }) => + type === 'file' && !name.startsWith('.') && !path.startsWith('index.'), + ) + .map(({ path }) => ({ params: { slug: path.split('/') } })); + + return { paths, fallback: 'blocking' }; +}; + +export const getStaticProps: GetStaticProps = async ({ params }) => { + const { slug } = params!; + + const node = await recipeContentStore.getOne(slug.join('/')); + + const { meta, markdown } = splitFrontMatter(decodeBase64(node.content!)); + + const markup = marked(markdown) as string; + + return { + props: JSON.parse(JSON.stringify({ ...node, content: markup, meta })), + revalidate: 300, // Revalidate every 5 minutes + }; +}; + +const RecipePage: FC = observer(({ name, path, parent_path, content, meta }) => { + const { t } = useContext(I18nContext); + + return ( + + + + + {t('recipe')} + + {parent_path?.split('/').map((segment, index, array) => { + const breadcrumbPath = array.slice(0, index + 1).join('/'); + + return ( + + {segment} + + ); + })} + {name} + + +
+
+

{name}

+ + {meta && ({ text }))} />} + +
+
+ {meta?.['servings'] && ( + <> +
{t('servings')}:
+
{meta['servings']}
+ + )} + {meta?.['preparation_time'] && ( + <> +
{t('preparation_time')}:
+
{meta['preparation_time']}
+ + )} +
+ +
+ + {meta?.url && ( + + )} +
+
+
+ +
+
+ + +
+ ); +}); + +export default RecipePage; diff --git a/pages/recipe/index.tsx b/pages/recipe/index.tsx new file mode 100644 index 0000000..d508412 --- /dev/null +++ b/pages/recipe/index.tsx @@ -0,0 +1,75 @@ +import { observer } from 'mobx-react'; +import { GetStaticProps } from 'next'; +import React, { FC, useContext } from 'react'; +import { Alert, Button, Card, Container } from 'react-bootstrap'; +import { treeFrom } from 'web-utility'; + +import { ContentTree } from '../../components/Layout/ContentTree'; +import { PageHead } from '../../components/Layout/PageHead'; +import { I18nContext } from '../../models/Translation'; +import { recipeContentStore, XContent } from '../../models/Wiki'; +import { filterMarkdownFiles } from '../api/core'; + +export const getStaticProps: GetStaticProps<{ nodes: XContent[] }> = async () => { + const nodes = filterMarkdownFiles(await recipeContentStore.getAll()).filter( + ({ path }) => !path.startsWith('index.'), + ); + + return { + props: JSON.parse(JSON.stringify({ nodes })), + revalidate: 300, // Revalidate every 5 minutes + }; +}; + +const RecipeIndexPage: FC<{ nodes: XContent[] }> = observer(({ nodes }) => { + const { t } = useContext(I18nContext); + + return ( + + + +
+

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

+ +
+ + + 本菜谱原创自 + + 《老乡鸡菜品溯源报告》 + + ,并由{' '} + + CookLikeHOC 开源菜谱项目 + + 整理,感谢原作者们的贡献与分享。 + + + {nodes[0] ? ( + + ) : ( + + +

{t('no_docs_available')}

+

{t('docs_auto_load_from_github')}

+
+
+ )} +
+ ); +}); + +export default RecipeIndexPage; diff --git a/translation/en-US.ts b/translation/en-US.ts index b1f3084..4a8eaf3 100644 --- a/translation/en-US.ts +++ b/translation/en-US.ts @@ -49,6 +49,24 @@ export default { block_diff: 'Block Diff', document: 'Document', + // 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.', + policy: 'Policy', + creation_date: 'Creation Date', + publication_date: 'Publication Date', + edit_on_github: 'Edit on GitHub', + view_original: 'View Original', + github_document_description: 'This is a document page based on a GitHub repository.', + view_or_edit_on_github: 'View or edit this content on GitHub', + + // Recipe + recipe: 'Recipe', + servings: 'Servings', + preparation_time: 'Preparation time', + // Search keywords: 'Keywords', search_results: 'Search Results', diff --git a/translation/zh-CN.ts b/translation/zh-CN.ts index 56b3309..0532c3f 100644 --- a/translation/zh-CN.ts +++ b/translation/zh-CN.ts @@ -47,6 +47,24 @@ export default { block_diff: '区块差异', document: '文档', + // Wiki + knowledge_base: '知识库', + contribute_content: '贡献内容', + no_docs_available: '知识库暂无文档。', + docs_auto_load_from_github: '文档将从 GitHub 仓库中自动加载。', + policy: '政策', + creation_date: '成文日期', + publication_date: '发布日期', + edit_on_github: '在 GitHub 编辑', + view_original: '查看原文', + github_document_description: '这是一个基于 GitHub 仓库的文档页面。', + view_or_edit_on_github: '在 GitHub 上查看或编辑此内容', + + // Recipe + recipe: '菜谱', + servings: '份数', + preparation_time: '准备时间', + // Search keywords: '关键词', search_results: '搜索结果', diff --git a/translation/zh-TW.ts b/translation/zh-TW.ts index 30d8727..d67f37c 100644 --- a/translation/zh-TW.ts +++ b/translation/zh-TW.ts @@ -47,6 +47,24 @@ export default { block_diff: '區塊差異', document: '文件', + // Wiki + knowledge_base: '知識庫', + contribute_content: '貢獻內容', + no_docs_available: '知識庫暫無文檔。', + docs_auto_load_from_github: '文檔將從 GitHub 存儲庫中自動加載。', + policy: '政策', + creation_date: '成文日期', + publication_date: '發佈日期', + edit_on_github: '在 GitHub 編輯', + view_original: '查看原文', + github_document_description: '這是一個基於 GitHub 存儲庫的文檔頁面。', + view_or_edit_on_github: '在 GitHub 上查看或編輯此內容', + + // Recipe + recipe: '菜譜', + servings: '份數', + preparation_time: '準備時間', + // Search keywords: '關鍵詞', search_results: '搜尋結果', From 0125dc10e3ee829c4933a930f648214275e6dfe2 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 11 Jul 2026 23:16:41 +0000 Subject: [PATCH 3/9] fix: correct naming and breadcrumb path in policy/recipe pages --- pages/policy/[...slug].tsx | 10 +++++----- pages/policy/index.tsx | 4 ++-- pages/recipe/[...slug].tsx | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/pages/policy/[...slug].tsx b/pages/policy/[...slug].tsx index d6fbb84..4ec89ec 100644 --- a/pages/policy/[...slug].tsx +++ b/pages/policy/[...slug].tsx @@ -14,11 +14,11 @@ import { I18nContext } from '../../models/Translation'; import { policyContentStore, XContent } from '../../models/Wiki'; import { splitFrontMatter } from '../api/core'; -interface WikiPageParams extends ParsedUrlQuery { +interface PolicyPageParams extends ParsedUrlQuery { slug: string[]; } -export const getStaticPaths: GetStaticPaths = async () => { +export const getStaticPaths: GetStaticPaths = async () => { const nodes = await policyContentStore.getAll(); const paths = nodes @@ -28,7 +28,7 @@ export const getStaticPaths: GetStaticPaths = async () => { return { paths, fallback: 'blocking' }; }; -export const getStaticProps: GetStaticProps = async ({ params }) => { +export const getStaticProps: GetStaticProps = async ({ params }) => { const { slug } = params!; const node = await policyContentStore.getOne(slug.join('/')); @@ -43,7 +43,7 @@ export const getStaticProps: GetStaticProps = async ({ }; }; -const WikiPage: FC = observer(({ name, path, parent_path, content, meta }) => { +const PolicyPage: FC = observer(({ name, path, parent_path, content, meta }) => { const { t } = useContext(I18nContext); return ( @@ -134,4 +134,4 @@ const WikiPage: FC = observer(({ name, path, parent_path, content, met ); }); -export default WikiPage; +export default PolicyPage; diff --git a/pages/policy/index.tsx b/pages/policy/index.tsx index 86e8f3c..c31a17d 100644 --- a/pages/policy/index.tsx +++ b/pages/policy/index.tsx @@ -19,7 +19,7 @@ export const getStaticProps: GetStaticProps<{ nodes: XContent[] }> = async () => }; }; -const WikiIndexPage: FC<{ nodes: XContent[] }> = observer(({ nodes }) => { +const PolicyIndexPage: FC<{ nodes: XContent[] }> = observer(({ nodes }) => { const { t } = useContext(I18nContext); return ( @@ -58,4 +58,4 @@ const WikiIndexPage: FC<{ nodes: XContent[] }> = observer(({ nodes }) => { ); }); -export default WikiIndexPage; +export default PolicyIndexPage; diff --git a/pages/recipe/[...slug].tsx b/pages/recipe/[...slug].tsx index 9a83f62..d8e710d 100644 --- a/pages/recipe/[...slug].tsx +++ b/pages/recipe/[...slug].tsx @@ -60,7 +60,7 @@ const RecipePage: FC = observer(({ name, path, parent_path, content, m const breadcrumbPath = array.slice(0, index + 1).join('/'); return ( - + {segment} ); From bd5ef8fcd6c8721753d9de2fc60ec083f4109104 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 11 Jul 2026 23:31:14 +0000 Subject: [PATCH 4/9] feat: add missing DocumentModel/documentStore and port wiki/[node_token] page --- models/Wiki.ts | 8 +++++- pages/wiki/[node_token].tsx | 56 +++++++++++++++++++++++++++++++++++++ 2 files changed, 63 insertions(+), 1 deletion(-) create mode 100644 pages/wiki/[node_token].tsx diff --git a/models/Wiki.ts b/models/Wiki.ts index 3fb9ac8..4c9a8db 100644 --- a/models/Wiki.ts +++ b/models/Wiki.ts @@ -1,5 +1,5 @@ import { Content, ContentModel } from 'mobx-github'; -import { WikiNodeModel } from 'mobx-lark'; +import { DocumentModel, WikiNodeModel } from 'mobx-lark'; import { DataObject } from 'mobx-restful'; import { lark } from '../pages/api/Lark/core'; @@ -20,4 +20,10 @@ export class MyWikiNodeModel extends WikiNodeModel { export const wikiStore = new MyWikiNodeModel(LarkWikiDomain, LarkWikiId); +export class MyDocumentModel extends DocumentModel { + client = lark.client; +} + +export const documentStore = new MyDocumentModel(LarkWikiDomain); + export default wikiStore; diff --git a/pages/wiki/[node_token].tsx b/pages/wiki/[node_token].tsx new file mode 100644 index 0000000..98015ce --- /dev/null +++ b/pages/wiki/[node_token].tsx @@ -0,0 +1,56 @@ +import { Block, renderBlocks, WikiNode } from 'mobx-lark'; +import { GetStaticPaths, GetStaticProps } from 'next'; +import { FC } from 'react'; +import { Container } from 'react-bootstrap'; +import { Minute, Second } from 'web-utility'; + +import { PageHead } from '../../components/Layout/PageHead'; +import { documentStore, wikiStore } from '../../models/Wiki'; +import { lark } from '../api/Lark/core'; + +export const getStaticPaths: GetStaticPaths = async () => { + await lark.getAccessToken(); + + const nodes = await wikiStore.getAll(); + + return { + paths: nodes.map(({ node_token }) => ({ params: { node_token } })), + fallback: 'blocking', + }; +}; + +export const getStaticProps: GetStaticProps = async ({ params }) => { + await lark.getAccessToken(); + + const node = await wikiStore.getOne(params!.node_token as string); + + if (node?.obj_type !== 'docx') return { notFound: true }; + + try { + const blocks = await documentStore.getOneBlocks( + node.obj_token, + token => `/api/Lark/file/${token}/placeholder`, + ); + + return { props: { node, blocks } }; + } catch (error) { + console.error(error); + + return { notFound: true, revalidate: Minute / Second }; + } +}; + +interface WikiDocumentPageProps { + node: WikiNode; + blocks: Block[]; +} + +const WikiDocumentPage: FC = ({ node, blocks }) => ( + + + + {renderBlocks(blocks)} + +); + +export default WikiDocumentPage; From bf8e28a92cb595d10edcfa965f90be54eb68257a Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 11 Jul 2026 23:43:22 +0000 Subject: [PATCH 5/9] fix: update wiki/index.tsx to use named wikiStore import matching source --- pages/wiki/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/wiki/index.tsx b/pages/wiki/index.tsx index 6ccfad5..a972cec 100644 --- a/pages/wiki/index.tsx +++ b/pages/wiki/index.tsx @@ -7,7 +7,7 @@ import { treeFrom } from 'web-utility'; import { PageHead } from '../../components/Layout/PageHead'; import { I18nContext } from '../../models/Translation'; -import wikiStore from '../../models/Wiki'; +import { wikiStore } from '../../models/Wiki'; import { lark } from '../api/Lark/core'; export const getStaticProps: GetStaticProps = async () => { From e76caf13fd87f78c8105bdc0b723937a6feb867a Mon Sep 17 00:00:00 2001 From: TechQuery Date: Sun, 12 Jul 2026 07:57:48 +0800 Subject: [PATCH 6/9] [remove] useless files --- models/Document.ts | 10 ----- models/Wiki.ts | 3 +- pages/wiki/[node_token].tsx | 56 ---------------------------- pages/wiki/[node_token]/debugger.tsx | 4 +- pages/wiki/[node_token]/index.tsx | 4 +- 5 files changed, 5 insertions(+), 72 deletions(-) delete mode 100644 models/Document.ts delete mode 100644 pages/wiki/[node_token].tsx diff --git a/models/Document.ts b/models/Document.ts deleted file mode 100644 index c856f4f..0000000 --- a/models/Document.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { DocumentModel } from 'mobx-lark'; - -import { lark } from '../pages/api/Lark/core'; -import { LarkWikiDomain } from './configuration'; - -export class MyDocumentModel extends DocumentModel { - client = lark.client; -} - -export default new MyDocumentModel(LarkWikiDomain); diff --git a/models/Wiki.ts b/models/Wiki.ts index 4c9a8db..d4448ae 100644 --- a/models/Wiki.ts +++ b/models/Wiki.ts @@ -3,6 +3,7 @@ import { DocumentModel, WikiNodeModel } from 'mobx-lark'; import { DataObject } from 'mobx-restful'; import { lark } from '../pages/api/Lark/core'; +import './Base'; import { LarkWikiDomain, LarkWikiId } from './configuration'; export interface XContent extends Content { @@ -25,5 +26,3 @@ export class MyDocumentModel extends DocumentModel { } export const documentStore = new MyDocumentModel(LarkWikiDomain); - -export default wikiStore; diff --git a/pages/wiki/[node_token].tsx b/pages/wiki/[node_token].tsx deleted file mode 100644 index 98015ce..0000000 --- a/pages/wiki/[node_token].tsx +++ /dev/null @@ -1,56 +0,0 @@ -import { Block, renderBlocks, WikiNode } from 'mobx-lark'; -import { GetStaticPaths, GetStaticProps } from 'next'; -import { FC } from 'react'; -import { Container } from 'react-bootstrap'; -import { Minute, Second } from 'web-utility'; - -import { PageHead } from '../../components/Layout/PageHead'; -import { documentStore, wikiStore } from '../../models/Wiki'; -import { lark } from '../api/Lark/core'; - -export const getStaticPaths: GetStaticPaths = async () => { - await lark.getAccessToken(); - - const nodes = await wikiStore.getAll(); - - return { - paths: nodes.map(({ node_token }) => ({ params: { node_token } })), - fallback: 'blocking', - }; -}; - -export const getStaticProps: GetStaticProps = async ({ params }) => { - await lark.getAccessToken(); - - const node = await wikiStore.getOne(params!.node_token as string); - - if (node?.obj_type !== 'docx') return { notFound: true }; - - try { - const blocks = await documentStore.getOneBlocks( - node.obj_token, - token => `/api/Lark/file/${token}/placeholder`, - ); - - return { props: { node, blocks } }; - } catch (error) { - console.error(error); - - return { notFound: true, revalidate: Minute / Second }; - } -}; - -interface WikiDocumentPageProps { - node: WikiNode; - blocks: Block[]; -} - -const WikiDocumentPage: FC = ({ node, blocks }) => ( - - - - {renderBlocks(blocks)} - -); - -export default WikiDocumentPage; diff --git a/pages/wiki/[node_token]/debugger.tsx b/pages/wiki/[node_token]/debugger.tsx index 7f03912..b17714e 100644 --- a/pages/wiki/[node_token]/debugger.tsx +++ b/pages/wiki/[node_token]/debugger.tsx @@ -6,9 +6,9 @@ import { Container } from 'react-bootstrap'; import { GitDiffView } from '../../../components/GitDiffView'; import { PageHead } from '../../../components/Layout/PageHead'; -import documentStore from '../../../models/Document'; +import { documentStore } from '../../../models/Wiki'; import { I18nContext } from '../../../models/Translation'; -import wikiStore from '../../../models/Wiki'; +import { wikiStore } from '../../../models/Wiki'; import { lark } from '../../api/Lark/core'; export const getServerSideProps: GetServerSideProps = async ({ params }) => { diff --git a/pages/wiki/[node_token]/index.tsx b/pages/wiki/[node_token]/index.tsx index 1a5d860..e075c40 100644 --- a/pages/wiki/[node_token]/index.tsx +++ b/pages/wiki/[node_token]/index.tsx @@ -6,8 +6,8 @@ import { Button, Container } from 'react-bootstrap'; import { Minute, Second } from 'web-utility'; import { PageHead } from '../../../components/Layout/PageHead'; -import documentStore from '../../../models/Document'; -import wikiStore from '../../../models/Wiki'; +import { documentStore } from '../../../models/Wiki'; +import { wikiStore } from '../../../models/Wiki'; import { lark } from '../../api/Lark/core'; export const getStaticPaths: GetStaticPaths = async () => { From 882b723c99d237b3c2eff4fb3c7b496b1c3892b4 Mon Sep 17 00:00:00 2001 From: TechQuery Date: Mon, 13 Jul 2026 09:56:18 +0800 Subject: [PATCH 7/9] [refactor] skip SSG detail pages in CI Building [optimize] update Upstream packages --- .env | 17 +- models/configuration.ts | 3 +- package.json | 40 +- pages/api/SSG.ts | 122 ++ pages/api/core.ts | 105 +- pages/api/hello.ts | 13 - pages/article/index.tsx | 2 +- pages/policy/[...slug].tsx | 200 ++-- pages/policy/index.tsx | 8 +- pages/recipe/[...slug].tsx | 199 ++-- pages/recipe/index.tsx | 18 +- pages/wiki/[node_token]/index.tsx | 24 +- pnpm-lock.yaml | 1758 ++++++++++++++++------------- 13 files changed, 1340 insertions(+), 1169 deletions(-) create mode 100644 pages/api/SSG.ts delete mode 100644 pages/api/hello.ts diff --git a/.env b/.env index 22bd952..6c5e8ef 100644 --- a/.env +++ b/.env @@ -1,14 +1,7 @@ -NEXT_PUBLIC_SITE_NAME = Lark-Next-Bootstrap-ts -NEXT_PUBLIC_SITE_SUMMARY = Lark project scaffold based on TypeScript, React, Next.js, Bootstrap & Workbox. -NEXT_PUBLIC_LOGO = https://github.com/idea2app.png - -NEXT_PUBLIC_SENTRY_DSN = -SENTRY_ORG = -SENTRY_PROJECT = +NEXT_PUBLIC_SITE_NAME = 开源市集 wiki +NEXT_PUBLIC_SITE_SUMMARY = +NEXT_PUBLIC_LOGO = https://github.com/Open-Source-Bazaar.png NEXT_PUBLIC_LARK_API_HOST = https://open.feishu.cn/open-apis/ -NEXT_PUBLIC_LARK_APP_ID = cli_a2c7771153f8900c -NEXT_PUBLIC_LARK_WIKI_URL = https://idea2app.feishu.cn/wiki/space/7318346900506181660 - -NEXT_PUBLIC_CACHE_HOST = https://cache.example.com -CACHE_REPOSITORY = your-namespace/Web-file-cache +NEXT_PUBLIC_LARK_APP_ID = cli_a8094a652022900d +NEXT_PUBLIC_LARK_WIKI_URL = https://open-source-bazaar.feishu.cn/wiki/space/7052192153363054596 diff --git a/models/configuration.ts b/models/configuration.ts index 63af599..33ffd47 100644 --- a/models/configuration.ts +++ b/models/configuration.ts @@ -4,8 +4,7 @@ export const Name = process.env.NEXT_PUBLIC_SITE_NAME, Summary = process.env.NEXT_PUBLIC_SITE_SUMMARY, DefaultImage = process.env.NEXT_PUBLIC_LOGO!; -export const { VERCEL_URL, JWT_SECRET, GITHUB_TOKEN, CACHE_REPOSITORY } = - process.env; +export const { CI, VERCEL_URL, JWT_SECRET, GITHUB_TOKEN } = process.env; export const API_Host = isServer() ? VERCEL_URL diff --git a/package.json b/package.json index 8a629ee..0514a26 100644 --- a/package.json +++ b/package.json @@ -15,12 +15,12 @@ "@editorjs/list": "^2.0.9", "@editorjs/paragraph": "^2.11.7", "@editorjs/quote": "^2.7.6", - "@git-diff-view/file": "^0.1.5", - "@git-diff-view/react": "^0.1.5", + "@git-diff-view/file": "^0.1.6", + "@git-diff-view/react": "^0.1.6", "@mdx-js/loader": "^3.1.1", "@mdx-js/react": "^3.1.1", - "@next/mdx": "^16.2.9", - "@sentry/nextjs": "^10.57.0", + "@next/mdx": "^16.2.10", + "@sentry/nextjs": "^10.65.0", "copy-webpack-plugin": "^14.0.0", "core-js": "^3.49.0", "editorjs-html": "^4.0.5", @@ -31,20 +31,20 @@ "koa": "^3.2.1", "koa-jwt": "^4.0.4", "koajax": "^3.3.0", - "less": "^4.6.4", + "less": "^4.6.7", "less-loader": "^13.0.0", "lodash": "^4.18.1", - "marked": "^18.0.5", + "marked": "^18.0.6", "mime": "^4.1.0", "mobx": "^6.16.1", "mobx-github": "^0.6.2", - "mobx-i18n": "^0.7.2", - "mobx-lark": "^2.8.1", + "mobx-i18n": "^0.7.5", + "mobx-lark": "^2.10.0", "mobx-react": "^9.2.2", "mobx-react-helper": "^0.5.1", "mobx-restful": "^2.1.4", "mobx-restful-table": "^2.6.3", - "next": "^16.2.9", + "next": "^16.2.10", "next-pwa": "~5.6.0", "next-ssr-middleware": "^1.1.0", "next-with-less": "^3.0.1", @@ -57,9 +57,9 @@ "remark-frontmatter": "^5.0.0", "remark-gfm": "^4.0.1", "remark-mdx-frontmatter": "^5.2.0", - "undici": "^8.4.1", - "web-utility": "^4.6.6", - "webpack": "^5.107.2", + "undici": "^8.7.0", + "web-utility": "^4.7.2", + "webpack": "^5.108.4", "yaml": "^2.9.0" }, "devDependencies": { @@ -68,7 +68,7 @@ "@babel/preset-react": "^7.29.7", "@cspell/eslint-plugin": "^10.0.1", "@eslint/js": "^10.0.1", - "@next/eslint-plugin-next": "^16.2.9", + "@next/eslint-plugin-next": "^16.2.10", "@softonus/prettier-plugin-duplicate-remover": "^1.1.2", "@stylistic/eslint-plugin": "^5.10.0", "@types/eslint-config-prettier": "^6.11.3", @@ -77,21 +77,21 @@ "@types/koa": "^3.0.3", "@types/lodash": "^4.17.24", "@types/next-pwa": "^5.6.9", - "@types/node": "^24.13.2", + "@types/node": "^24.13.3", "@types/react": "^19.2.17", - "eslint": "^10.5.0", - "eslint-config-next": "^16.2.9", + "eslint": "^10.7.0", + "eslint-config-next": "^16.2.10", "eslint-config-prettier": "^10.1.8", "eslint-plugin-react": "^7.37.5", "eslint-plugin-simple-import-sort": "^13.0.0", - "globals": "^17.6.0", + "globals": "^17.7.0", "husky": "^9.1.7", "jiti": "^2.7.0", - "lint-staged": "^17.0.7", - "prettier": "^3.8.4", + "lint-staged": "^17.0.8", + "prettier": "^3.9.5", "prettier-plugin-css-order": "^2.2.0", "typescript": "~5.9.3", - "typescript-eslint": "^8.61.0" + "typescript-eslint": "^8.63.0" }, "resolutions": { "next": "$next" diff --git a/pages/api/SSG.ts b/pages/api/SSG.ts new file mode 100644 index 0000000..c6d4788 --- /dev/null +++ b/pages/api/SSG.ts @@ -0,0 +1,122 @@ +import 'core-js/full/array/from-async'; + +import { Content } from 'mobx-github'; +import { DataObject } from 'mobx-restful'; +import { GetStaticProps, GetStaticPropsResult } from 'next'; +import { ParsedUrlQuery } from 'querystring'; +import { Minute, Second } from 'web-utility'; +import { parse } from 'yaml'; + +import { CI } from '../../models/configuration'; + +export const skipBuilding = + ( + rawHandler: GetStaticProps, + revalidate = Minute / Second, + ): GetStaticProps => + async context => { + const fallback: GetStaticPropsResult = { notFound: true, revalidate }; + + if (CI) return fallback; + + try { + return await rawHandler(context); + } catch (error) { + console.error(error); + + return fallback; + } + }; + +export interface ArticleMeta { + name: string; + path?: string; + meta?: DataObject; + subs: ArticleMeta[]; +} + +export const MD_pattern = /\.(md|markdown)$/i, + MDX_pattern = /\.mdx?$/i; + +export function splitFrontMatter(raw: string) { + const [, frontMatter, markdown] = + raw.trim().match(/^---[\r\n]([\s\S]+?[\r\n])---[\r\n]([\s\S]*)/) || []; + + if (!frontMatter) return { markdown: raw }; + + try { + const meta = parse(frontMatter) as DataObject; + + return { markdown, meta }; + } catch (error) { + console.error(`Error parsing Front Matter:`, error); + + return { markdown }; + } +} + +export async function* pageListOf( + path: string, + prefix = 'pages', +): AsyncGenerator { + const { readdir, readFile } = await import('fs/promises'); + + const list = await readdir(prefix + path, { withFileTypes: true }); + + for (const node of list) { + // eslint-disable-next-line prefer-const + let { name, parentPath } = node; + + if (name.startsWith('.')) continue; + + const isMDX = MDX_pattern.test(name); + + name = name.replace(MDX_pattern, ''); + const path = `${parentPath}/${name}`.replace(new RegExp(`^${prefix}`), ''); + + if (node.isFile() && isMDX) { + const article: ArticleMeta = { name, path, subs: [] }; + + const file = await readFile(`${parentPath}/${node.name}`, 'utf-8'); + + const { meta } = splitFrontMatter(file); + + if (meta) article.meta = meta; + + yield article; + } + if (!node.isDirectory()) continue; + + const subs = await Array.fromAsync(pageListOf(path, prefix)); + + if (subs[0]) yield { name, subs }; + } +} + +export type TreeNode = { + [key in K]: TreeNode[]; +}; + +export function* traverseTree>( + tree: N, + key: K, +): Generator { + for (const node of tree[key] || []) { + yield node as N; + yield* traverseTree(node as N, key); + } +} + +export const filterMarkdownFiles = (nodes: Content[]) => + nodes + .filter( + ({ path, type, name }) => + !path.startsWith('.') && + !name.startsWith('.') && + (type !== 'file' || MD_pattern.test(name)), + ) + .map(({ content, ...rest }) => { + const { meta, markdown } = content ? splitFrontMatter(content) : {}; + + return { ...rest, content: markdown, meta }; + }); diff --git a/pages/api/core.ts b/pages/api/core.ts index 1db3c6d..fdb8567 100644 --- a/pages/api/core.ts +++ b/pages/api/core.ts @@ -1,16 +1,12 @@ -import 'core-js/full/array/from-async'; - import { JsonWebTokenError, sign } from 'jsonwebtoken'; import { Context, Middleware, ParameterizedContext } from 'koa'; import JWT from 'koa-jwt'; import { HTTPError } from 'koajax'; -import { Content } from 'mobx-github'; import { DataObject } from 'mobx-restful'; import { KoaOption, withKoa } from 'next-ssr-middleware'; import { ProxyAgent, setGlobalDispatcher } from 'undici'; -import { parse } from 'yaml'; -import { JWT_SECRET } from '../../models/configuration'; +import { LarkAppMeta } from '../../models/configuration'; const { HTTP_PROXY } = process.env; @@ -21,14 +17,14 @@ export type JWTContext = ParameterizedContext< >; export const parseJWT = JWT({ - secret: JWT_SECRET!, + secret: LarkAppMeta.secret!, cookie: 'token', passthrough: true, }); -export const verifyJWT = JWT({ secret: JWT_SECRET!, cookie: 'token' }); +export const verifyJWT = JWT({ secret: LarkAppMeta.secret!, cookie: 'token' }); -const RobotToken = sign({ id: 0, name: 'Robot' }, JWT_SECRET!); +const RobotToken = sign({ id: 0, name: 'Robot' }, LarkAppMeta.secret!); console.table({ RobotToken }); @@ -65,96 +61,3 @@ export const safeAPI: Middleware = async (context: Context, next) => { export const withSafeKoa = (...middlewares: Middleware[]) => withKoa({} as KoaOption, safeAPI, ...middlewares); - -export interface ArticleMeta { - name: string; - path?: string; - meta?: DataObject; - subs: ArticleMeta[]; -} - -export const MD_pattern = /\.(md|markdown)$/i, - MDX_pattern = /\.mdx?$/i; - -export function splitFrontMatter(raw: string) { - const [, frontMatter, markdown] = - raw.trim().match(/^---[\r\n]([\s\S]+?[\r\n])---[\r\n]([\s\S]*)/) || []; - - if (!frontMatter) return { markdown: raw }; - - try { - const meta = parse(frontMatter) as DataObject; - - return { markdown, meta }; - } catch (error) { - console.error(`Error parsing Front Matter:`, error); - - return { markdown }; - } -} - -export async function* pageListOf( - path: string, - prefix = 'pages', -): AsyncGenerator { - const { readdir, readFile } = await import('fs/promises'); - - const list = await readdir(prefix + path, { withFileTypes: true }); - - for (const node of list) { - // eslint-disable-next-line prefer-const - let { name, parentPath } = node; - - if (name.startsWith('.')) continue; - - const isMDX = MDX_pattern.test(name); - - name = name.replace(MDX_pattern, ''); - const path = `${parentPath}/${name}`.replace(new RegExp(`^${prefix}`), ''); - - if (node.isFile() && isMDX) { - const article: ArticleMeta = { name, path, subs: [] }; - - const file = await readFile(`${parentPath}/${node.name}`, 'utf-8'); - - const { meta } = splitFrontMatter(file); - - if (meta) article.meta = meta; - - yield article; - } - if (!node.isDirectory()) continue; - - const subs = await Array.fromAsync(pageListOf(path, prefix)); - - if (subs[0]) yield { name, subs }; - } -} - -export type TreeNode = { - [key in K]: TreeNode[]; -}; - -export function* traverseTree>( - tree: N, - key: K, -): Generator { - for (const node of tree[key] || []) { - yield node as N; - yield* traverseTree(node as N, key); - } -} - -export const filterMarkdownFiles = (nodes: Content[]) => - nodes - .filter( - ({ path, type, name }) => - !path.startsWith('.') && - !name.startsWith('.') && - (type !== 'file' || MD_pattern.test(name)), - ) - .map(({ content, ...rest }) => { - const { meta, markdown } = content ? splitFrontMatter(content) : {}; - - return { ...rest, content: markdown, meta }; - }); diff --git a/pages/api/hello.ts b/pages/api/hello.ts deleted file mode 100644 index 19a37c7..0000000 --- a/pages/api/hello.ts +++ /dev/null @@ -1,13 +0,0 @@ -// Next.js API route support: https://nextjs.org/docs/api-routes/introduction -import { createKoaRouter, withKoaRouter } from 'next-ssr-middleware'; - -import { safeAPI } from './core'; - -const router = createKoaRouter(import.meta.url); - -router.get('/', safeAPI, async context => { - context.status = 401; - context.body = { name: 'John Doe' }; -}); - -export default withKoaRouter(router); diff --git a/pages/article/index.tsx b/pages/article/index.tsx index 822aad0..d5d8eb5 100644 --- a/pages/article/index.tsx +++ b/pages/article/index.tsx @@ -4,7 +4,7 @@ import { FC, useContext } from 'react'; import { MDXLayout } from '../../components/Layout/MDXLayout'; import { I18nContext } from '../../models/Translation'; -import { ArticleMeta, pageListOf, traverseTree } from '../api/core'; +import { ArticleMeta, pageListOf, traverseTree } from '../api/SSG'; export const getStaticProps = async () => { const tree = await Array.fromAsync(pageListOf('/article')); diff --git a/pages/policy/[...slug].tsx b/pages/policy/[...slug].tsx index 4ec89ec..91a524d 100644 --- a/pages/policy/[...slug].tsx +++ b/pages/policy/[...slug].tsx @@ -3,7 +3,7 @@ import 'core-js/stable/typed-array/from-base64'; import { marked } from 'marked'; import { observer } from 'mobx-react'; import { BadgeBar } from 'mobx-restful-table'; -import { GetStaticPaths, GetStaticProps } from 'next'; +import { GetStaticPaths } from 'next'; import { ParsedUrlQuery } from 'querystring'; import { FC, useContext } from 'react'; import { Breadcrumb, Button, Container } from 'react-bootstrap'; @@ -12,7 +12,7 @@ import { decodeBase64 } from 'web-utility'; import { PageHead } from '../../components/Layout/PageHead'; import { I18nContext } from '../../models/Translation'; import { policyContentStore, XContent } from '../../models/Wiki'; -import { splitFrontMatter } from '../api/core'; +import { skipBuilding, splitFrontMatter } from '../api/SSG'; interface PolicyPageParams extends ParsedUrlQuery { slug: string[]; @@ -28,110 +28,122 @@ export const getStaticPaths: GetStaticPaths = async () => { return { paths, fallback: 'blocking' }; }; -export const getStaticProps: GetStaticProps = async ({ params }) => { - const { slug } = params!; +export const getStaticProps = skipBuilding( + async ({ params }) => { + const { slug } = params!; - const node = await policyContentStore.getOne(slug.join('/')); + const node = await policyContentStore.getOne(slug.join('/')); - const { meta, markdown } = splitFrontMatter(decodeBase64(node.content!)); + const { meta, markdown } = splitFrontMatter(decodeBase64(node.content!)); - const markup = marked(markdown) as string; + const markup = marked(markdown) as string; - return { - props: JSON.parse(JSON.stringify({ ...node, content: markup, meta })), - revalidate: 300, // Revalidate every 5 minutes - }; -}; + return { + props: JSON.parse(JSON.stringify({ ...node, content: markup, meta })), + revalidate: 300, // Revalidate every 5 minutes + }; + }, +); -const PolicyPage: FC = observer(({ name, path, parent_path, content, meta }) => { - const { t } = useContext(I18nContext); - - return ( - - - - - {t('policy')} - - {parent_path?.split('/').map((segment, index, array) => { - const breadcrumbPath = array.slice(0, index + 1).join('/'); - - return ( - - {segment} - - ); - })} - {name} - - -
-
-

{name}

- - {meta && ({ text }))} />} - -
-
- {meta?.['成文日期'] && ( - <> -
{t('creation_date')}:
-
{meta['成文日期']}
- - )} - {meta?.['发布日期'] && meta['发布日期'] !== meta['成文日期'] && ( - <> -
{t('publication_date')}:
-
{meta['发布日期']}
- - )} -
- -
- - {meta?.url && ( + {segment} + + ); + })} + {name} + + +
+
+

{name}

+ + {meta && ( + ({ text }))} /> + )} + +
+
+ {meta?.['成文日期'] && ( + <> +
{t('creation_date')}:
+
{meta['成文日期']}
+ + )} + {meta?.['发布日期'] && + meta['发布日期'] !== meta['成文日期'] && ( + <> +
{t('publication_date')}:
+
{meta['发布日期']}
+ + )} +
+ +
- )} + {meta?.url && ( + + )} +
+
+ +
+
+ +
- -
-
- - -
- ); -}); - + + + ); + }, +); export default PolicyPage; diff --git a/pages/policy/index.tsx b/pages/policy/index.tsx index c31a17d..bb04117 100644 --- a/pages/policy/index.tsx +++ b/pages/policy/index.tsx @@ -1,6 +1,6 @@ import { observer } from 'mobx-react'; import { GetStaticProps } from 'next'; -import React, { FC, useContext } from 'react'; +import { FC, useContext } from 'react'; import { Button, Card, Container } from 'react-bootstrap'; import { treeFrom } from 'web-utility'; @@ -8,9 +8,11 @@ import { ContentTree } from '../../components/Layout/ContentTree'; import { PageHead } from '../../components/Layout/PageHead'; import { I18nContext } from '../../models/Translation'; import { policyContentStore, XContent } from '../../models/Wiki'; -import { filterMarkdownFiles } from '../api/core'; +import { filterMarkdownFiles } from '../api/SSG'; -export const getStaticProps: GetStaticProps<{ nodes: XContent[] }> = async () => { +export const getStaticProps: GetStaticProps<{ + nodes: XContent[]; +}> = async () => { const nodes = filterMarkdownFiles(await policyContentStore.getAll()); return { diff --git a/pages/recipe/[...slug].tsx b/pages/recipe/[...slug].tsx index d8e710d..4b47353 100644 --- a/pages/recipe/[...slug].tsx +++ b/pages/recipe/[...slug].tsx @@ -3,7 +3,7 @@ import 'core-js/stable/typed-array/from-base64'; import { marked } from 'marked'; import { observer } from 'mobx-react'; import { BadgeBar } from 'mobx-restful-table'; -import { GetStaticPaths, GetStaticProps } from 'next'; +import { GetStaticPaths } from 'next'; import { ParsedUrlQuery } from 'querystring'; import { FC, useContext } from 'react'; import { Breadcrumb, Button, Container } from 'react-bootstrap'; @@ -12,7 +12,7 @@ import { decodeBase64 } from 'web-utility'; import { PageHead } from '../../components/Layout/PageHead'; import { I18nContext } from '../../models/Translation'; import { recipeContentStore, XContent } from '../../models/Wiki'; -import { splitFrontMatter } from '../api/core'; +import { skipBuilding, splitFrontMatter } from '../api/SSG'; interface RecipePageParams extends ParsedUrlQuery { slug: string[]; @@ -31,110 +31,121 @@ export const getStaticPaths: GetStaticPaths = async () => { return { paths, fallback: 'blocking' }; }; -export const getStaticProps: GetStaticProps = async ({ params }) => { - const { slug } = params!; +export const getStaticProps = skipBuilding( + async ({ params }) => { + const { slug } = params!; - const node = await recipeContentStore.getOne(slug.join('/')); + const node = await recipeContentStore.getOne(slug.join('/')); - const { meta, markdown } = splitFrontMatter(decodeBase64(node.content!)); + const { meta, markdown } = splitFrontMatter(decodeBase64(node.content!)); - const markup = marked(markdown) as string; + const markup = marked(markdown) as string; - return { - props: JSON.parse(JSON.stringify({ ...node, content: markup, meta })), - revalidate: 300, // Revalidate every 5 minutes - }; -}; + return { + props: JSON.parse(JSON.stringify({ ...node, content: markup, meta })), + revalidate: 300, // Revalidate every 5 minutes + }; + }, +); -const RecipePage: FC = observer(({ name, path, parent_path, content, meta }) => { - const { t } = useContext(I18nContext); - - return ( - - - - - {t('recipe')} - - {parent_path?.split('/').map((segment, index, array) => { - const breadcrumbPath = array.slice(0, index + 1).join('/'); - - return ( - - {segment} - - ); - })} - {name} - - -
-
-

{name}

- - {meta && ({ text }))} />} - -
-
- {meta?.['servings'] && ( - <> -
{t('servings')}:
-
{meta['servings']}
- - )} - {meta?.['preparation_time'] && ( - <> -
{t('preparation_time')}:
-
{meta['preparation_time']}
- - )} -
- -
- - {meta?.url && ( + {segment} + + ); + })} + {name} + + +
+
+

{name}

+ + {meta && ( + ({ text }))} /> + )} + +
+
+ {meta?.['servings'] && ( + <> +
{t('servings')}:
+
{meta['servings']}
+ + )} + {meta?.['preparation_time'] && ( + <> +
{t('preparation_time')}:
+
{meta['preparation_time']}
+ + )} +
+ +
- )} + {meta?.url && ( + + )} +
+
+ +
+
+ +
- -
-
- - -
- ); -}); - + + + ); + }, +); export default RecipePage; diff --git a/pages/recipe/index.tsx b/pages/recipe/index.tsx index d508412..c2dc8eb 100644 --- a/pages/recipe/index.tsx +++ b/pages/recipe/index.tsx @@ -1,6 +1,6 @@ import { observer } from 'mobx-react'; import { GetStaticProps } from 'next'; -import React, { FC, useContext } from 'react'; +import { FC, useContext } from 'react'; import { Alert, Button, Card, Container } from 'react-bootstrap'; import { treeFrom } from 'web-utility'; @@ -8,9 +8,11 @@ import { ContentTree } from '../../components/Layout/ContentTree'; import { PageHead } from '../../components/Layout/PageHead'; import { I18nContext } from '../../models/Translation'; import { recipeContentStore, XContent } from '../../models/Wiki'; -import { filterMarkdownFiles } from '../api/core'; +import { filterMarkdownFiles } from '../api/SSG'; -export const getStaticProps: GetStaticProps<{ nodes: XContent[] }> = async () => { +export const getStaticProps: GetStaticProps<{ + nodes: XContent[]; +}> = async () => { const nodes = filterMarkdownFiles(await recipeContentStore.getAll()).filter( ({ path }) => !path.startsWith('index.'), ); @@ -44,11 +46,17 @@ const RecipeIndexPage: FC<{ nodes: XContent[] }> = observer(({ nodes }) => { 本菜谱原创自 - + 《老乡鸡菜品溯源报告》 ,并由{' '} - + CookLikeHOC 开源菜谱项目 整理,感谢原作者们的贡献与分享。 diff --git a/pages/wiki/[node_token]/index.tsx b/pages/wiki/[node_token]/index.tsx index e075c40..06c1026 100644 --- a/pages/wiki/[node_token]/index.tsx +++ b/pages/wiki/[node_token]/index.tsx @@ -1,14 +1,14 @@ import { Icon } from 'idea-react'; import { Block, renderBlocks, WikiNode } from 'mobx-lark'; -import { GetStaticPaths, GetStaticProps } from 'next'; +import { GetStaticPaths } from 'next'; import { FC } from 'react'; import { Button, Container } from 'react-bootstrap'; -import { Minute, Second } from 'web-utility'; import { PageHead } from '../../../components/Layout/PageHead'; import { documentStore } from '../../../models/Wiki'; import { wikiStore } from '../../../models/Wiki'; import { lark } from '../../api/Lark/core'; +import { skipBuilding } from '../../api/SSG'; export const getStaticPaths: GetStaticPaths = async () => { await lark.getAccessToken(); @@ -21,26 +21,20 @@ export const getStaticPaths: GetStaticPaths = async () => { }; }; -export const getStaticProps: GetStaticProps = async ({ params }) => { +export const getStaticProps = skipBuilding(async ({ params }) => { await lark.getAccessToken(); const node = await wikiStore.getOne(params!.node_token as string); if (node?.obj_type !== 'docx') return { notFound: true }; - try { - const blocks = await documentStore.getOneBlocks( - node.obj_token, - token => `/api/Lark/file/${token}/placeholder`, - ); + const blocks = await documentStore.getOneBlocks( + node.obj_token, + token => `/api/Lark/file/${token}/placeholder`, + ); - return { props: { node, blocks } }; - } catch (error) { - console.error(error); - - return { notFound: true, revalidate: Minute / Second }; - } -}; + return { props: { node, blocks } }; +}); interface WikiDocumentPageProps { node: WikiNode; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index cb273b1..2b2e818 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -5,7 +5,7 @@ settings: excludeLinksFromLockfile: false overrides: - next: ^16.2.9 + next: ^16.2.10 importers: @@ -36,26 +36,26 @@ importers: specifier: ^2.7.6 version: 2.7.6 '@git-diff-view/file': - specifier: ^0.1.5 - version: 0.1.5 + specifier: ^0.1.6 + version: 0.1.6 '@git-diff-view/react': - specifier: ^0.1.5 - version: 0.1.5(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + specifier: ^0.1.6 + version: 0.1.6(react-dom@19.2.7(react@19.2.7))(react@19.2.7) '@mdx-js/loader': specifier: ^3.1.1 - version: 3.1.1(webpack@5.107.2(postcss@8.4.31)) + version: 3.1.1(webpack@5.108.4(postcss@8.4.31)) '@mdx-js/react': specifier: ^3.1.1 version: 3.1.1(@types/react@19.2.17)(react@19.2.7) '@next/mdx': - specifier: ^16.2.9 - version: 16.2.9(@mdx-js/loader@3.1.1(webpack@5.107.2(postcss@8.4.31)))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.7)) + specifier: ^16.2.10 + version: 16.2.10(@mdx-js/loader@3.1.1(webpack@5.108.4(postcss@8.4.31)))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.7)) '@sentry/nextjs': - specifier: ^10.57.0 - version: 10.57.0(@opentelemetry/core@2.8.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.8.0(@opentelemetry/api@1.9.1))(next@16.2.9(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(react@19.2.7)(webpack@5.107.2(postcss@8.4.31)) + specifier: ^10.65.0 + version: 10.65.0(@opentelemetry/core@2.9.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.9.0(@opentelemetry/api@1.9.1))(next@16.2.10(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(react@19.2.7)(webpack@5.108.4(postcss@8.4.31)) copy-webpack-plugin: specifier: ^14.0.0 - version: 14.0.0(webpack@5.107.2(postcss@8.4.31)) + version: 14.0.0(webpack@5.108.4(postcss@8.4.31)) core-js: specifier: ^3.49.0 version: 3.49.0 @@ -84,17 +84,17 @@ importers: specifier: ^3.3.0 version: 3.3.0(core-js@3.49.0)(typescript@5.9.3) less: - specifier: ^4.6.4 - version: 4.6.4 + specifier: ^4.6.7 + version: 4.6.7 less-loader: specifier: ^13.0.0 - version: 13.0.0(less@4.6.4)(webpack@5.107.2(postcss@8.4.31)) + version: 13.0.0(less@4.6.7)(webpack@5.108.4(postcss@8.4.31)) lodash: specifier: ^4.18.1 version: 4.18.1 marked: - specifier: ^18.0.5 - version: 18.0.5 + specifier: ^18.0.6 + version: 18.0.6 mime: specifier: ^4.1.0 version: 4.1.0 @@ -105,11 +105,11 @@ importers: specifier: ^0.6.2 version: 0.6.2(core-js@3.49.0)(typescript@5.9.3) mobx-i18n: - specifier: ^0.7.2 - version: 0.7.2(mobx@6.16.1)(typescript@5.9.3) + specifier: ^0.7.5 + version: 0.7.5(mobx@6.16.1)(typescript@5.9.3) mobx-lark: - specifier: ^2.8.1 - version: 2.8.1(core-js@3.49.0)(react@19.2.7)(typescript@5.9.3) + specifier: ^2.10.0 + version: 2.10.0(core-js@3.49.0)(react@19.2.7)(typescript@5.9.3) mobx-react: specifier: ^9.2.2 version: 9.2.2(mobx@6.16.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) @@ -123,17 +123,17 @@ importers: specifier: ^2.6.3 version: 2.6.3(@types/react@19.2.17)(core-js@3.49.0)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(typescript@5.9.3) next: - specifier: ^16.2.9 - version: 16.2.9(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + specifier: ^16.2.10 + version: 16.2.10(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) next-pwa: specifier: ~5.6.0 - version: 5.6.0(@babel/core@7.29.7)(next@16.2.9(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(postcss@8.4.31)(webpack@5.107.2(postcss@8.4.31)) + version: 5.6.0(@babel/core@7.29.7)(next@16.2.10(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(postcss@8.4.31)(webpack@5.108.4(postcss@8.4.31)) next-ssr-middleware: specifier: ^1.1.0 - version: 1.1.0(next@16.2.9(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(react@19.2.7)(typescript@5.9.3) + version: 1.1.0(next@16.2.10(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(react@19.2.7)(typescript@5.9.3) next-with-less: specifier: ^3.0.1 - version: 3.0.1(less-loader@13.0.0(less@4.6.4)(webpack@5.107.2(postcss@8.4.31)))(less@4.6.4)(next@16.2.9(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)) + version: 3.0.1(less-loader@13.0.0(less@4.6.7)(webpack@5.108.4(postcss@8.4.31)))(less@4.6.7)(next@16.2.10(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)) prismjs: specifier: ^1.30.0 version: 1.30.0 @@ -162,14 +162,14 @@ importers: specifier: ^5.2.0 version: 5.2.0 undici: - specifier: ^8.4.1 - version: 8.4.1 + specifier: ^8.7.0 + version: 8.7.0 web-utility: - specifier: ^4.6.6 - version: 4.6.6(typescript@5.9.3) + specifier: ^4.7.2 + version: 4.7.2(typescript@5.9.3) webpack: - specifier: ^5.107.2 - version: 5.107.2(postcss@8.4.31) + specifier: ^5.108.4 + version: 5.108.4(postcss@8.4.31) yaml: specifier: ^2.9.0 version: 2.9.0 @@ -185,19 +185,19 @@ importers: version: 7.29.7(@babel/core@7.29.7) '@cspell/eslint-plugin': specifier: ^10.0.1 - version: 10.0.1(eslint@10.5.0(jiti@2.7.0)) + version: 10.0.1(eslint@10.7.0(jiti@2.7.0)) '@eslint/js': specifier: ^10.0.1 - version: 10.0.1(eslint@10.5.0(jiti@2.7.0)) + version: 10.0.1(eslint@10.7.0(jiti@2.7.0)) '@next/eslint-plugin-next': - specifier: ^16.2.9 - version: 16.2.9 + specifier: ^16.2.10 + version: 16.2.10 '@softonus/prettier-plugin-duplicate-remover': specifier: ^1.1.2 version: 1.1.2 '@stylistic/eslint-plugin': specifier: ^5.10.0 - version: 5.10.0(eslint@10.5.0(jiti@2.7.0)) + version: 5.10.0(eslint@10.7.0(jiti@2.7.0)) '@types/eslint-config-prettier': specifier: ^6.11.3 version: 6.11.3 @@ -217,29 +217,29 @@ importers: specifier: ^5.6.9 version: 5.6.9(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) '@types/node': - specifier: ^24.13.2 - version: 24.13.2 + specifier: ^24.13.3 + version: 24.13.3 '@types/react': specifier: ^19.2.17 version: 19.2.17 eslint: - specifier: ^10.5.0 - version: 10.5.0(jiti@2.7.0) + specifier: ^10.7.0 + version: 10.7.0(jiti@2.7.0) eslint-config-next: - specifier: ^16.2.9 - version: 16.2.9(eslint@10.5.0(jiti@2.7.0))(typescript@5.9.3) + specifier: ^16.2.10 + version: 16.2.10(eslint@10.7.0(jiti@2.7.0))(typescript@5.9.3) eslint-config-prettier: specifier: ^10.1.8 - version: 10.1.8(eslint@10.5.0(jiti@2.7.0)) + version: 10.1.8(eslint@10.7.0(jiti@2.7.0)) eslint-plugin-react: specifier: ^7.37.5 - version: 7.37.5(eslint@10.5.0(jiti@2.7.0)) + version: 7.37.5(eslint@10.7.0(jiti@2.7.0)) eslint-plugin-simple-import-sort: specifier: ^13.0.0 - version: 13.0.0(eslint@10.5.0(jiti@2.7.0)) + version: 13.0.0(eslint@10.7.0(jiti@2.7.0)) globals: - specifier: ^17.6.0 - version: 17.6.0 + specifier: ^17.7.0 + version: 17.7.0 husky: specifier: ^9.1.7 version: 9.1.7 @@ -247,20 +247,20 @@ importers: specifier: ^2.7.0 version: 2.7.0 lint-staged: - specifier: ^17.0.7 - version: 17.0.7 + specifier: ^17.0.8 + version: 17.0.8 prettier: - specifier: ^3.8.4 - version: 3.8.4 + specifier: ^3.9.5 + version: 3.9.5 prettier-plugin-css-order: specifier: ^2.2.0 - version: 2.2.0(postcss@8.4.31)(prettier@3.8.4) + version: 2.2.0(postcss@8.4.31)(prettier@3.9.5) typescript: specifier: ~5.9.3 version: 5.9.3 typescript-eslint: - specifier: ^8.61.0 - version: 8.61.0(eslint@10.5.0(jiti@2.7.0))(typescript@5.9.3) + specifier: ^8.63.0 + version: 8.63.0(eslint@10.7.0(jiti@2.7.0))(typescript@5.9.3) packages: @@ -270,6 +270,17 @@ packages: peerDependencies: ajv: '>=8' + '@apm-js-collab/code-transformer-bundler-plugins@0.5.0': + resolution: {integrity: sha512-YxLBY5nGlurL7QeJLq6e5g0ouBpAp0pwgyA/5rHXEXwhiPLn9ZHbT+Y2LlP90GT872cSocfjWRYu/fnpuBudNQ==} + engines: {node: '>=18.0.0'} + + '@apm-js-collab/code-transformer@0.15.0': + resolution: {integrity: sha512-XmXYVs8CzJ1Aj79noVbn2weUO/XWtRyURpGqx7aU7DOXlUQhR0WKOQNF0okh7PCeY37vxf7kU3v57OAkEPm3ww==} + hasBin: true + + '@apm-js-collab/tracing-hooks@0.10.1': + resolution: {integrity: sha512-w2OWXR7FWrKqSziuE9+QclaZrStxO/8+OwbXM635s/zs0Eez1Qo3ivSPdB2WsaPY/iznKTytONPx/PitD7IXcA==} + '@babel/code-frame@7.29.7': resolution: {integrity: sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==} engines: {node: '>=6.9.0'} @@ -1123,8 +1134,8 @@ packages: '@emnapi/runtime@1.10.0': resolution: {integrity: sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==} - '@emnapi/runtime@1.11.1': - resolution: {integrity: sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw==} + '@emnapi/runtime@1.11.2': + resolution: {integrity: sha512-kyOl3X0DuTiT1h2ft8r2fYO8JYtU9a9Xis/zBSiGArNaagCOWx90N1k2wxp18czFDH+OgcWGb5ZP/XMt3dcyPA==} '@emnapi/wasi-threads@1.2.1': resolution: {integrity: sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==} @@ -1168,17 +1179,17 @@ packages: resolution: {integrity: sha512-+CNAzxglkrpNf/kKywqQfk74QjtceuOE7Qm+AF8miRvPF/wmmK5+OJOgVh3AVTT3RP2mH3+FOaxlE5v72owk0A==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@git-diff-view/core@0.1.5': - resolution: {integrity: sha512-xvMZnD0k8BlmP3RqSocQrPVVzgUxr8KEl0wT5TTIm9c2B5tODHat69zidUvFWIoaYvHwDu4PfVcdGj4c+PrL6g==} + '@git-diff-view/core@0.1.6': + resolution: {integrity: sha512-q2Ch8jURF6pL7VeNpOgHBRVY9gsGLXCOYpKXHG3BqpXe0kv6GNSUux8SmAYsDrakBzfgDClODxDtsM2rfiWpnA==} - '@git-diff-view/file@0.1.5': - resolution: {integrity: sha512-kKw9Mea/iXmqA1mu8SmrIsenYZmr959ro4NMnYBHrPvN6KgXm9eOfc7BdM+eAKwzGJzPSIvHRZlPYtF7wJKnjA==} + '@git-diff-view/file@0.1.6': + resolution: {integrity: sha512-VSsByONBl98c4SVyoN8I1twooEZCh63AbH79tcpvCAzt7nJ5Ulmr1UIS8qAaMDDZiEgXq13JlkZkQh9vpc6xZQ==} - '@git-diff-view/lowlight@0.1.5': - resolution: {integrity: sha512-6sxEJcGIUHzJc6Rx1kQ1TqAi0g6ABiGG8z5xhlLHWcQwDmGzB2wTISbyRxNXTwQTwJIMX5u5Cj+2xl+a84APxQ==} + '@git-diff-view/lowlight@0.1.6': + resolution: {integrity: sha512-YIsiAc2aWAePWaDNi3k8xI0Vs/ZItt5J6nrftTIFbMFN3GwDOsyJFm2L7o8XWKTJkV2yItaz28KUI9CWj0MVZA==} - '@git-diff-view/react@0.1.5': - resolution: {integrity: sha512-xcEr42FRtVhxR6TCkruY2zqCq+vaAOvWl3rH05aEYgDNuEbAvSZ0sOTULIE84hwHshkN3AF+sruuEjL1YC0aEg==} + '@git-diff-view/react@0.1.6': + resolution: {integrity: sha512-koABBon5bNKh6/WnWSxggK9ojw+cvWAPnY2/ciOkwlR+8dm0h6A7Qa5kP2HFDxqYHwZ2imkGMcSLgXMOnWHRFA==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 @@ -1393,8 +1404,8 @@ packages: peerDependencies: koa: '>=2' - '@koa/router@15.6.0': - resolution: {integrity: sha512-iEOXlvGIBqSNkGXrg0XtMARAOm5zA24oedXxiTGEkrD4JgwVjfRDddCQvW1s4WEcwDYvyecRbf8BikXsuEEj8w==} + '@koa/router@15.7.0': + resolution: {integrity: sha512-WaAlk4TOl/O0rhTpOR0l052gz03syPMmI6Pe2gd7v3ubjfv5UcSGcnb0Y/J5NNC/ln+5FiUqPJTc/a15I+XqAA==} engines: {node: '>= 20'} peerDependencies: koa: ^2.0.0 || ^3.0.0 @@ -1419,20 +1430,20 @@ packages: '@mixmark-io/domino@2.2.0': resolution: {integrity: sha512-Y28PR25bHXUg88kCV7nivXrP2Nj2RueZ3/l/jdx6J9f8J4nsEGcgX0Qe6lt7Pa+J79+kPiJU3LguR6O/6zrLOw==} - '@napi-rs/wasm-runtime@1.1.5': - resolution: {integrity: sha512-AWPoBRJ9tsnVhor4sjO7rkni+7p+2IAEFj6cx06UgP10jkQHqay/36uRV/bFkgrh18D9vb4cr8Q0Pthskgzy+Q==} + '@napi-rs/wasm-runtime@1.1.6': + resolution: {integrity: sha512-ZLv/JdUfkvOy9eCnnBaGfiO+XimbjebAeO+MRQqD/B+FR1tnRN0tpKSJHRbE8sFfS6aqsXZ67TQjfwfsxULVbg==} peerDependencies: '@emnapi/core': ^1.7.1 '@emnapi/runtime': ^1.7.1 - '@next/env@16.2.9': - resolution: {integrity: sha512-ki5VxxXfzD/9TDe13wyeTKIjQTAwBVpnr8KhRDUr8ltMUq1/NBpWNT5tiPoxiGl+PHM4X2ahSOiPk6iAimIzPg==} + '@next/env@16.2.10': + resolution: {integrity: sha512-zLPxg9M0MEHmygpj5OuxjQ+vHMiy/K7cSp74G8ecYolmgUWw0RwN02tF56npup/+qaI8JB97hQgS/r2Hb6QwVA==} - '@next/eslint-plugin-next@16.2.9': - resolution: {integrity: sha512-UZi8+YT/MLgTC9nrrn2Xd4lBYv1B7lVmtWHfPcthAI5Tt/C1LuDe6DfmtCtJ+WQod3ksY4VrKSvk3oMVAnL7qw==} + '@next/eslint-plugin-next@16.2.10': + resolution: {integrity: sha512-Gs8D2m21VnJeFo9qvYIIqJH94frWerWYu41BprU1pLtRVF7PCQNLiFZZ3fG+iPuj3K83Cwv/rt+msLOy8Qgu3Q==} - '@next/mdx@16.2.9': - resolution: {integrity: sha512-SdweShKGCuN639JjyFSMQ8uldo+I+254+HucpjwdbFfaWHqUNN6dnQ1Of6laahnFyo48CcfDXEc2OBCS/Wfngw==} + '@next/mdx@16.2.10': + resolution: {integrity: sha512-r6T32AyQ0xy6p0vKd1lNbz6RUXuVXdGYSAI0dRrpbnqGnTWQXefADZGui4PlwjqROj0XQBMqVwot9ntPWao9PA==} peerDependencies: '@mdx-js/loader': '>=0.15.0' '@mdx-js/react': '>=0.15.0' @@ -1442,54 +1453,54 @@ packages: '@mdx-js/react': optional: true - '@next/swc-darwin-arm64@16.2.9': - resolution: {integrity: sha512-HkfxNYUCmcct0Xsqib5KxqMSHV4AHJq857BNRchyBDs4YS19aHzVfn1kDuBYKqLLQBjXgnkIsjV2Kd4d2wzYhw==} + '@next/swc-darwin-arm64@16.2.10': + resolution: {integrity: sha512-v9IdJCa0H0mbo+8z5zwUpOk1Vj7RjkcI5uNYf5Ws1y6szf/p3Mzl9hLaST8SCt6L9h8NGnruZcd2+o0NTNwDhA==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@next/swc-darwin-x64@16.2.9': - resolution: {integrity: sha512-7IAtK4MeybpqRV9GRABWEhJ62mOS+rzWOzOTFie4cSEtm12xsoOMJRcECoZx3FHPzFAqN/IJtHqWAFOLfl152w==} + '@next/swc-darwin-x64@16.2.10': + resolution: {integrity: sha512-17IS0jJRViROGmA9uGdNR8VPJpfbnaVG7E9qhso5jDLkmyd0lSDORWxbcKINzcFqzZqGwGtMSnrFRxBpuUYjLQ==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@next/swc-linux-arm64-gnu@16.2.9': - resolution: {integrity: sha512-hBD75iWpUtkL9SmQmcRhmLomn9jgkPzCEkbOcLgHymPEKzv+6ONy13RRiIEz/iEObjkS2Jlb5gYS2XGoS3X4rw==} + '@next/swc-linux-arm64-gnu@16.2.10': + resolution: {integrity: sha512-GRQRsRtuciNJvB54AvvuQTiq0oZtFwa1owQqtZD8wwnGpM2L39MV22kpI72YSXLKIyY40LC66EiLFv4PiicXxg==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] libc: [glibc] - '@next/swc-linux-arm64-musl@16.2.9': - resolution: {integrity: sha512-qZTI3pf9SGc/obr8NkQAekBxmp1QK+kVm+VAf3BALLfFAj+1kUhkTxmrWpVos9R/UYIA8AWX2p6cGI5WdwzVUA==} + '@next/swc-linux-arm64-musl@16.2.10': + resolution: {integrity: sha512-zkN9MQYS7UQBro+FnISUq1itaQjXI9xqISzuQ+2bc921NcJ1x4yPCqrn77tVN6/dOOXaaWVX3k6/bR07pPwK+A==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] libc: [musl] - '@next/swc-linux-x64-gnu@16.2.9': - resolution: {integrity: sha512-xm0HfRNX+UkH4R3c18ynswjj5o5uEj/7iI9p9omdtTSIsRCzQqkGMA+10nzJ4EHnYC3as65IMhbbl5fWRUWHYg==} + '@next/swc-linux-x64-gnu@16.2.10': + resolution: {integrity: sha512-iCVJnwvrPYECvA6WM/7+oo+OiTvedIKLxtCLAZP4xZR3nXa1zmzZyLPbYCmWvpd4CvMYF1EMTafd0ii3DygLvA==} engines: {node: '>= 10'} cpu: [x64] os: [linux] libc: [glibc] - '@next/swc-linux-x64-musl@16.2.9': - resolution: {integrity: sha512-QumimHkGEG6vM3PfEDWKyKen03NcqLOkeKB1EfcPe7VxzmEiCa4jNnMyBn/US5zcd/VE1CI+O8Ovb3lfjVHfGw==} + '@next/swc-linux-x64-musl@16.2.10': + resolution: {integrity: sha512-ov2g4H0dHY9bPoOU83m91hWT7Iq5qy13bUnyyshLU3HGR1Ownn0X9QpmDPc5iIUaahTp7f7LeGAhV4DSFtackw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] libc: [musl] - '@next/swc-win32-arm64-msvc@16.2.9': - resolution: {integrity: sha512-hzQpKZvw8rAwI6A2uQh6SacCSvNAXaIkPNsWwzqqfRiIMiXMfH936skDhz1OO6KpvdKkJrgHHtqQOq5PIXOvdQ==} + '@next/swc-win32-arm64-msvc@16.2.10': + resolution: {integrity: sha512-DwAnhLX76HQiFFQNgWlcK+JzlnD1rZ+UK/WY0ZMI/deXpvgnesjNYrqcfo1JzBuz4Kf7o3brIBL0glI1junatA==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@next/swc-win32-x64-msvc@16.2.9': - resolution: {integrity: sha512-qr2VL3Ce5QrwgO2yh1ujSBawrimjVKX8FGF/cOynmdYKJY0BdHpGVNIRK1tqONB10Vkm25Ub1BD2bkjWs4+96w==} + '@next/swc-win32-x64-msvc@16.2.10': + resolution: {integrity: sha512-0JXq3b85Jk9Jg4ntLUbXSPvoDw3gpZou7twuKdoFG2jOw635v7+IiXfTaa0TxVMyx78pUjnrVYwLgjKfX4e6/A==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -1517,34 +1528,40 @@ packages: '@octokit/openapi-types@26.0.0': resolution: {integrity: sha512-7AtcfKtpo77j7Ts73b4OWhOZHTKo/gGY8bB3bNBQz4H+GRSWqx2yvj8TXRsbdTE0eRmYmXOEY66jM7mJ7LzfsA==} - '@opentelemetry/api-logs@0.214.0': - resolution: {integrity: sha512-40lSJeqYO8Uz2Yj7u94/SJWE/wONa7rmMKjI1ZcIjgf3MHNHv1OZUCrCETGuaRF62d5pQD1wKIW+L4lmSMTzZA==} + '@opentelemetry/api-logs@0.220.0': + resolution: {integrity: sha512-CmVa4ImJ+ynfrPMNaAXHET6Bhb44SwzmfyVJFq9ni2jgXJR/l7C6gfVFddNmHP+ZOkP9cf4f9DBe68qVLTHc9w==} engines: {node: '>=8.0.0'} '@opentelemetry/api@1.9.1': resolution: {integrity: sha512-gLyJlPHPZYdAk1JENA9LeHejZe1Ti77/pTeFm/nMXmQH/HFZlcS/O2XJB+L8fkbrNSqhdtlvjBVjxwUYanNH5Q==} engines: {node: '>=8.0.0'} - '@opentelemetry/core@2.8.0': - resolution: {integrity: sha512-hd1Lfh8p545nNz+jq1Ejfz+Mn1hyLuxYn1YzTfFNrxr8urEWMNQLPf1Th8kjOH+HxwawCrtgBp8JpBUR4ZSgww==} + '@opentelemetry/core@2.9.0': + resolution: {integrity: sha512-m2nckMT80NnmjTYSPjJQObBJ+8dgkoajEOUbznL8AHZ3T3yHRk2P7gI1PhEBc1+lOnrYE9UWrWHqJDsmqjmNbw==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' - '@opentelemetry/instrumentation@0.214.0': - resolution: {integrity: sha512-MHqEX5Dk59cqVah5LiARMACku7jXSVk9iVDWOea4x3cr7VfdByeDCURK6o1lntT1JS/Tsovw01UJrBhN3/uC5w==} + '@opentelemetry/instrumentation@0.220.0': + resolution: {integrity: sha512-xQx3E2WxP1mDvKzxLxX+CTCtNLa560YJZ3087qYHerl2YmiKpv7AH+dAy7vmx+eVrZ5BwhfWUAVoKOoxCNHcpw==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/resources@2.8.0': - resolution: {integrity: sha512-qmXQ27ilDbUK/vGMqwL8D4/rhn76C+sherM4wTbjlfknR8Nvfc/hCxjRJPhkzZzUsPiNg16SA31NxMabwttRjg==} + '@opentelemetry/resources@2.9.0': + resolution: {integrity: sha512-jyA5MBLQ+Dkl3+JsZkUoUvL7yHvU64kLsvpXKarWm6347Sl1t1bXFTFykUePNpT5WH5pm9a2Qtt03iIYQhZ1Fg==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.3.0 <1.10.0' + + '@opentelemetry/sdk-trace-base@2.9.0': + resolution: {integrity: sha512-cp9zmTl62R8PJrpvFcmc8N2JQU/xfa0S+61q511Nji+QxCfZ8Ifvg7H27G8cANe4crg4RTrWsVvanHiXjSp6ag==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': '>=1.3.0 <1.10.0' - '@opentelemetry/sdk-trace-base@2.8.0': - resolution: {integrity: sha512-mhU4jp+vW0mGbFRd+GeXHvmfA4aDqWjBjLC3pE5XMpLs0IE2ryYb019Ts2AQrOq67gaTF25D91+fgvEHDZEnuQ==} + '@opentelemetry/sdk-trace@2.9.0': + resolution: {integrity: sha512-sGA19HvtrrSKYsseHphluH6j3p6Xa3fqc7c7y8f/7mYWejc1lyDFcpSdD1kYa50HCLUeEo4zA5bW0pniaPszuw==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': '>=1.3.0 <1.10.0' @@ -1590,8 +1607,8 @@ packages: '@editorjs/paragraph': '*' react: '*' - '@react-types/shared@3.35.0': - resolution: {integrity: sha512-iNWvuzEwANttpQpdlu8nPBtdHb0mcCMj1ZTH//iRB5E/14IAnyRlR25rxH7pNLyzHINsPGEKnWvpwDMCT6vziQ==} + '@react-types/shared@3.36.0': + resolution: {integrity: sha512-DkP/H0C2YjjS7gZWKNqOmU8a16qHPjQNdzMwmTq9SzplM6Iw0kVMTZ0OIoe6FOgGqa+FwMsE2QbPjh/n3g/jXQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 @@ -1657,179 +1674,175 @@ packages: rollup: optional: true - '@rollup/rollup-android-arm-eabi@4.62.0': - resolution: {integrity: sha512-IPIQ55ythEHkfEd9jMEi32OQ7SxURsGA43JI22lj01OLZNt2NUbJX8YUHxkVWyQ6daHPNn0truF5nSj3DQp6YQ==} + '@rollup/rollup-android-arm-eabi@4.62.2': + resolution: {integrity: sha512-6o7ZLZK+BeenkZCFNDXqpbjw9bD6nuWonvS/lwQJp7NoVVxm6p3qE7qQ5jGuBjiFsgvqjD8mZAU5oWxTmbOeOg==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.62.0': - resolution: {integrity: sha512-M6s9cr10MibETyo8JsOkq+Lo1+lU6hcvb1MApnUql5qte/5hMEgzlN8/ReIKNfRV8rrqX50W1BX9zoUhC192RA==} + '@rollup/rollup-android-arm64@4.62.2': + resolution: {integrity: sha512-BaH7BllCACHoH1LguOU56UItGfUWjujlO65kS9LAodViaN4bwIKd7oeW/ZHJ/4ljr/7MIiENnNy3HJ0zXv8Zkw==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.62.0': - resolution: {integrity: sha512-BqCoMoIbn0keKys+dEAdBa70EtOwV1bEsQCUgU9FdiZmmMge/Zk7LlkYGqbrdHR+Frnt0E1FOanly+rlwvvQzw==} + '@rollup/rollup-darwin-arm64@4.62.2': + resolution: {integrity: sha512-v39RCCvj4He82I9sFmk+M1VZ0PLM9sfsLVikjfx2hYBNALhrrOR2D3JjQA6AhlaSOgcR+RzrKY7e1+bT6SUO/A==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.62.0': - resolution: {integrity: sha512-SIMzST3VFNXDAbeIWDWiFCNM5qncUBDWaEV7NfE7oZbDt2mgfW4MvbKdbYiGOLoM32gbTv608UMd0XktEYSD7w==} + '@rollup/rollup-darwin-x64@4.62.2': + resolution: {integrity: sha512-yl0y2vq3S3lHeuXhEdss6TWfKW8vkujImO12tn4ZkG/4oghr09LvdYm2RElVjokTQiUvDUGXLGsYeLqUMCKpGA==} cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.62.0': - resolution: {integrity: sha512-ezjfSQMP7ArdUsbBwbQIfwAlhE84I2iVnzQNCFSveqV42q+BmKlzVpf7mxv5EchLcoWU4y6/heFzVg1F+hodUQ==} + '@rollup/rollup-freebsd-arm64@4.62.2': + resolution: {integrity: sha512-tT4pvt4qXD+vEoezupCWi+a1F0vvDiksiHc+PxRlYTOH1I6/X4id9jPxTP+Fg+545euaFT1jJVs4CEdHZAU1vw==} cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.62.0': - resolution: {integrity: sha512-9+qTWGW9AZRhnUgwtTwzNwcPlL87ngkeN0LA+q1bADvmY9aNvWaF2TFW8BZgnQPYxpDI7+rMVLivcd4V737TAQ==} + '@rollup/rollup-freebsd-x64@4.62.2': + resolution: {integrity: sha512-6nU5F2wCW+qvCBhTn1pdIU3bzsIoF7EUwsCDRxilWGprQR6yd508YnH9+OKFCwpfS8pjZqDUmnCAr7exax0XCg==} cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.62.0': - resolution: {integrity: sha512-T1dMEQhXA/jkJ/jyMIw9IovK8bSUq7A8kLIlvZTb/6YIVsp2zLavr4F3oyllHWo7eIVJRyE5n3tUjQJEbE1IuQ==} + '@rollup/rollup-linux-arm-gnueabihf@4.62.2': + resolution: {integrity: sha512-n1GJHPOvpIfhi3TmrCeh6S6URt9BFCt0KQE3qvexyGCTAKpR4Lg+eWvNZEqu7epxwus/8ElT3hacYEucm49SZg==} cpu: [arm] os: [linux] libc: [glibc] - '@rollup/rollup-linux-arm-musleabihf@4.62.0': - resolution: {integrity: sha512-2as0LgT7qQpyceQq6VUJYnumUMUrgGQCWIiDIN9DE0/tglsk6o66uCB4f3djRawAltvfCNLyZZrsqbPA6inCsA==} + '@rollup/rollup-linux-arm-musleabihf@4.62.2': + resolution: {integrity: sha512-JqgflS8wEB+UXV/vS1RpRbifGBeN4D5lz8D8oOFbFZw4vedvdOgCFAjfBmIMdW3yL10XpQQ0Ambepw6MXrhOnA==} cpu: [arm] os: [linux] libc: [musl] - '@rollup/rollup-linux-arm64-gnu@4.62.0': - resolution: {integrity: sha512-bVURMg+6eNN9C/yc0aVjooZcwTTtYF4YW3xta5pP0//r3o1V8gXEHXWCndj47w/HhwsFroZrFhR+6uQP5T0n0g==} + '@rollup/rollup-linux-arm64-gnu@4.62.2': + resolution: {integrity: sha512-wnFJkogWvN4jm/hQRF2UBaeUmk20j5+DmHvoyWii2b8HJDyvz1MF2OU/6ynXt2KR63rbZLWkFpoytpdc/yBuSA==} cpu: [arm64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-arm64-musl@4.62.0': - resolution: {integrity: sha512-Ful8pM/2yYI83PViWdFdpZhdI8HJ5qsXANe5atypbHDf+KIBBDsZsbyy8hbXnULVvW9NsTh5DHwbcBftyLTfiw==} + '@rollup/rollup-linux-arm64-musl@4.62.2': + resolution: {integrity: sha512-HVu2bp0zhvJ8xHEV9+UUs7S90VadmBSY3LcIMvozbPo4AuMGDWlz3ymHLHZPX4hR67TKTt8Qp5PJ5RBg/i+RMQ==} cpu: [arm64] os: [linux] libc: [musl] - '@rollup/rollup-linux-loong64-gnu@4.62.0': - resolution: {integrity: sha512-9Gp/DgrkzfUBmNPVTyPTvay+4xEP7M/clXpj3efXBcm6uTIVIgDg4rqUpqKXvLEuFRVuEpSAOkhgNeecvaZ4Cg==} + '@rollup/rollup-linux-loong64-gnu@4.62.2': + resolution: {integrity: sha512-mQqqAV8QaoSgr9I2fKDLY2BAVvmKjWoGiu/cSYQonsLvtqwEn1E4QYfnCOcp5zoEqNhsDYin1s6jx/VJmrxlZg==} cpu: [loong64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-loong64-musl@4.62.0': - resolution: {integrity: sha512-m9tsJz54LUXkSYM8+8PG81B9IKK5r+2T0clMq4QrS16xFosufU7firBDAZEsDheDs7wTlP7h3++S7lMsU955HA==} + '@rollup/rollup-linux-loong64-musl@4.62.2': + resolution: {integrity: sha512-IxKLoxCQ2IWi6bT2akyDUBGsOImDKB+sPp4EsTmwFQ/fMwpCKm8uLSSgP/Kx/QYUgKis6SEZ5/Nlhup0DIA0PQ==} cpu: [loong64] os: [linux] libc: [musl] - '@rollup/rollup-linux-ppc64-gnu@4.62.0': - resolution: {integrity: sha512-3UvJ5PNVU16aJf6M3tFI24pWzAl2/ynfbyRN3ICyQajK1lSkrnVYNnLz3v04J32qKa0FczJc22zeToc0lr2A3w==} + '@rollup/rollup-linux-ppc64-gnu@4.62.2': + resolution: {integrity: sha512-Mk5ha2RQSgyFfmYYLkBpPnUk8D8FriBxesO1u9O75X0mHgXL1UQcH5Itl2lurWL2tj0RxV9b9tJgipac0hRY9A==} cpu: [ppc64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-ppc64-musl@4.62.0': - resolution: {integrity: sha512-vRWUAbYLGHBZS6Q8Msb2sfnf1fvJf+47t8l/TwOerM2qArzy+IeNMTHrYLHXh95h8MoatPHI5hhSZNs+mGXKPg==} + '@rollup/rollup-linux-ppc64-musl@4.62.2': + resolution: {integrity: sha512-CjvEnqJL/0/TQ3TXX3OPIJ/kmBellrWd4heXUmHeJlTnmwjKpSJzoehLaL6Xk0ZnMHBu9dZuFADNOrtjF4v+2w==} cpu: [ppc64] os: [linux] libc: [musl] - '@rollup/rollup-linux-riscv64-gnu@4.62.0': - resolution: {integrity: sha512-c00T5SYENHAt86cfW47URaP3Us5vLC/4QO7GYud1G5VNRffCwwCuBspwqYrriuJB+5m0WFzClCn9wed0FBjKvg==} + '@rollup/rollup-linux-riscv64-gnu@4.62.2': + resolution: {integrity: sha512-1SiZbzwdkaDURsew/tSOrooKiYy7EQGT6m8ufavAi9NEyQb/6VuIxFXAL1fqa4iZe3g4NbNk4P7J32z2tw5Mgg==} cpu: [riscv64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-riscv64-musl@4.62.0': - resolution: {integrity: sha512-krrCDilhXOwFkSkO3Wm9I/f9H0L92XHHwy2fwxjukxIbh0dem8gZqOW5Y8BsHrpJv5qwlRBV+Wl4ZFyRWhUpwg==} + '@rollup/rollup-linux-riscv64-musl@4.62.2': + resolution: {integrity: sha512-nQts12zJ3NQRoE6uYljOH89v7szzLDvG2JD/vsX+vGXU8w/At1GowTZ5/7qeFQ8m7L55rpR8Okugnuo5bgjy2Q==} cpu: [riscv64] os: [linux] libc: [musl] - '@rollup/rollup-linux-s390x-gnu@4.62.0': - resolution: {integrity: sha512-7pfYFSTc4/rUC/FtAI0Qp6QthDBCIi6/AuP1xYqFk5vanI6KnL5dWKP60OM/05LOsbwTmIcvr6eXC4CJuJ75IA==} + '@rollup/rollup-linux-s390x-gnu@4.62.2': + resolution: {integrity: sha512-E9/ll019jhPIJgpzfZoIkBGhcz+kKNgVWYRY0zr9srBdPPFVpvOKW8VaJKUbeK+eZXyQF9ltME+Kk6affeaPgg==} cpu: [s390x] os: [linux] libc: [glibc] - '@rollup/rollup-linux-x64-gnu@4.62.0': - resolution: {integrity: sha512-7SDIalKeIpG0Ifogbbdn58HmSotYMlf23K3dCJEmiVd9Fg36Vmni82iPQec27N3wY4Bvbxftkxz6vSx9OcouTg==} + '@rollup/rollup-linux-x64-gnu@4.62.2': + resolution: {integrity: sha512-5BqxR/pshjey51iliyzTD5Xi3EN0aLmQ2lZ3lvefVV9c82BvrLo2/6OT55iifpWBufs6kdwWbuOKS841DrmK9A==} cpu: [x64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-x64-musl@4.62.0': - resolution: {integrity: sha512-eRZevouTH2i1HeAVLqJuLnt256krQkGY0TN6WsTmsIhuzbh457HuWDMakKwmi0Cjadux983CoSr8Lim2QhUIFw==} + '@rollup/rollup-linux-x64-musl@4.62.2': + resolution: {integrity: sha512-uNN83XxQrRAh/w0/pmAfibcwyb6YWt4gP+dpnQKPVJshAloQ785ii8CT8ZCIxkGg9opVsvAlGhFitSm6D1Jjpg==} cpu: [x64] os: [linux] libc: [musl] - '@rollup/rollup-openbsd-x64@4.62.0': - resolution: {integrity: sha512-3oVS7FLGa4U1qcvao9ylGxrjXZyUQqR8UwxEcnUEyPX53O/C/mKDZegNXTdHCP+h3e6ta/f1EN38Yif1mmZHYg==} + '@rollup/rollup-openbsd-x64@4.62.2': + resolution: {integrity: sha512-srjEIxSH3LRnJN6THczDHWQplqEMFiAJrTab0msUryh9kwNpkICf3Ea6q6MN/2cZwRFUNx5w+h6Hpi4QuHS6Zg==} cpu: [x64] os: [openbsd] - '@rollup/rollup-openharmony-arm64@4.62.0': - resolution: {integrity: sha512-yTB9TgfWj5wHe5QgktAgXTLLot1gvEjl1NiPPAUiCs4oPrIWFl5V4nC3GrkNdj9LaAU4s94nVrGbGOCqUpyWsg==} + '@rollup/rollup-openharmony-arm64@4.62.2': + resolution: {integrity: sha512-8hOJnxgbyObnCm5AlRA3A931xX19xq80RjVTKgJOvEKWqJruP/Uf12IbAOaDjjEXYRewwHLfmF0YRIdK3OwKWA==} cpu: [arm64] os: [openharmony] - '@rollup/rollup-win32-arm64-msvc@4.62.0': - resolution: {integrity: sha512-5LOhoaesY3doG1c+ac/2JtgREpKoJr5bUHH8tKY0V8di7+uSV6BwLs2PlR0/yzefGOkR+wE7ZolZphHCsyG5Rw==} + '@rollup/rollup-win32-arm64-msvc@4.62.2': + resolution: {integrity: sha512-mmF4AY1i0hG/bLWUctUq59gtmgaSIRa3cu/A3JFRp/sCNEme2bgDEiDS22P9FbnJB8NJNF4jPJiSP5RHQpUTDg==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.62.0': - resolution: {integrity: sha512-yYkWHhmbhRTWTnWos5HC4GcPQfjlzzCNbM9e/+GXrLuaBXYA3qSDR9f0Vgufd5S8yX81U8jPKp7ZnAjZFMtRnw==} + '@rollup/rollup-win32-ia32-msvc@4.62.2': + resolution: {integrity: sha512-DZgkknc6jhHrk46V25vbAM0zZkyP0nSDkJB8/dRkLTxv470dOmWDqGoEJl/9A0dFfS7yE3REOwNDxpHwSLSt0Q==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-gnu@4.62.0': - resolution: {integrity: sha512-SoTb6lPg25xZlA2ibwQ++ahCCnH+FP0qmEuafMJ4gznZKOlXioKEAeJLgCrqjM98ACziXM9V1amFjICVL4IFoA==} + '@rollup/rollup-win32-x64-gnu@4.62.2': + resolution: {integrity: sha512-T6xr6ucWSFto+VGajA8YH26LdpHRuP4YLHEKAtCWvJDOlnmWcDZVCI2Jmjr+IFHDlt2zRaTAKE4tfjTaWLgJBg==} cpu: [x64] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.62.0': - resolution: {integrity: sha512-5L+T1fMX4RIEBoZzT0+sQ0PhTS36NULFmMXtl1TZo44TMAROIMHbZufSOjVWt/Y622BtxgxtaNOokbTDvfsrZA==} + '@rollup/rollup-win32-x64-msvc@4.62.2': + resolution: {integrity: sha512-BfzEnDJOt9T8M989/lA37EcJgat01wLRnoi5dQf3QzOH7jzpqTAzdDbVfRljVr5r+jzKqpbHeyOfAaXxAd0PAA==} cpu: [x64] os: [win32] '@rtsao/scc@1.1.0': resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} - '@sentry-internal/browser-utils@10.57.0': - resolution: {integrity: sha512-tXObp954rMTSYKlbftjVXHtNl4t/6ssks3jkqyzmKb+PDPWzabGQO7sWwqVuTjT8Kx/8A3FmriS1bGmqxiJy3A==} - engines: {node: '>=18'} - - '@sentry-internal/feedback@10.57.0': - resolution: {integrity: sha512-ZcF4QhkqGX3iiQSXB2N0N3Awp+j5iqnDRu6PA/qyLFrWqH5ZiiAAgu59OLD9E6XAdg6iFtLYw19MAMZVK8qNOQ==} - engines: {node: '>=18'} - - '@sentry-internal/replay-canvas@10.57.0': - resolution: {integrity: sha512-zsfa4JcfV0AEc9YhNxNabd5lSZL2Av84saAyexGAqcHs+67m9Gd0cGStOzMb/nCl7UAtmdP0aI+G7a3rcxxN/A==} - engines: {node: '>=18'} - - '@sentry-internal/replay@10.57.0': - resolution: {integrity: sha512-Wmnx/6ABynVH1iwuoNUqJNyjIUqsqoGML7qsyivBRKb5Wo2YQtPOQlQYfxfZSvWzGpcoSVdInkRjDssUQxQEQg==} - engines: {node: '>=18'} - - '@sentry-internal/server-utils@10.57.0': - resolution: {integrity: sha512-Qu8ETmX/ITzteG7Im46b9HOxKKzeaIeqNvftaIlFURu1RUQdHbtGerS7QOmXzwnhuqNGNeiCQYkduB798IfRqA==} - engines: {node: '>=18'} - '@sentry/babel-plugin-component-annotate@5.3.0': resolution: {integrity: sha512-p4q8gn8wcFqZGP/s2MnJCAAd8fTikaU6A0mM97RDHQgStcrYiaS0Sc5zUNfb1V+UOLPuvdEdL6MwyxfzjYJQTA==} engines: {node: '>= 18'} - '@sentry/browser@10.57.0': - resolution: {integrity: sha512-s36AQy/CKXTfyY9Z+qUhzNomntZXgfs0rbaK7q9ffnFkqcPwzE8qQtVs58y3Suut56u+AhwSztgQtERcuZ5VIA==} + '@sentry/browser-utils@10.65.0': + resolution: {integrity: sha512-4J0mkfNJAGUOkpg1ZggizyftFTn9N20b+Jl87UnWsDUkNG0Ic1l/FIzMPTVxXrAnhBGu0ULO0TFWMoQ5s3QtZw==} + engines: {node: '>=18'} + + '@sentry/browser@10.65.0': + resolution: {integrity: sha512-XUDDsx0qxzeIlcOu1fDEqTcDl0eiOqghsgV+ReuuNP4jYjZ9kUQxE3rXWM5mlT1pBi4VaQ4FHqvQZZrRXy+oDw==} engines: {node: '>=18'} '@sentry/bundler-plugin-core@5.3.0': resolution: {integrity: sha512-L5T60sWdAI3qWwdg3Ptwek/0TY59PERrxyqp4XMUkroayQvGd9r5dIW9Q1kSeXX9iJ442nXbFZKAOyCKV4Z13Q==} engines: {node: '>= 18'} + '@sentry/bundler-plugins@10.65.0': + resolution: {integrity: sha512-AYgv31l4wY/CwYAD/2Og59RT+TNjvhatcLOrEe5tFOpi9VcPAQ4xfPZIM6fXYGawofT52p6LhUECNSfNkNnc7Q==} + engines: {node: '>= 18'} + peerDependencies: + rollup: '>=3.2.0' + webpack: '>=5.0.0' + peerDependenciesMeta: + rollup: + optional: true + webpack: + optional: true + '@sentry/cli-darwin@2.58.6': resolution: {integrity: sha512-udAVvcyfNa0R+95GvPz/+43/N3TC0TYKdkQ7D7jhPSzbcMc7l2fxRNN5yB3UpCA5fWFnW4toeaqwDBhb/Wh3LA==} engines: {node: '>=10'} @@ -1882,18 +1895,26 @@ packages: engines: {node: '>= 10'} hasBin: true - '@sentry/core@10.57.0': - resolution: {integrity: sha512-kntItTA2kiT0YpL7encXaF6mkdZMB+y48lwj8w1wkfBpfJAC7sifdgrzLQZqmsqVNE3crg9VfufaAGA+78uFMg==} + '@sentry/conventions@0.15.1': + resolution: {integrity: sha512-ZLP8bRdMON3prWE2tJyImuYscCxdcJeIPIhrOs/rgyFm3C1nCh1B6gdvPj3AZ5zW08oSFFCsq7T+tYEW3h8MNA==} + engines: {node: '>=14'} + + '@sentry/core@10.65.0': + resolution: {integrity: sha512-3aqtmM5NgNGo45BNaaBzi0LPQZAw//NEL4HKS5fXm12pJMa4KEkze8DEKnkTEIrGnWaOJKamecHKlnNg/Mqf/Q==} + engines: {node: '>=18'} + + '@sentry/feedback@10.65.0': + resolution: {integrity: sha512-ck8h7wgd3F3bYNk0v1OgohmyLBeXcKxqlfBJRtQq4k6KZUq+pXimOG7ckNguVMYjCo3PEfuG+ckKc21yqotKug==} engines: {node: '>=18'} - '@sentry/nextjs@10.57.0': - resolution: {integrity: sha512-jRsyc387+YoOpYoxtJaL8VLzCq4I0KrIsVcZW4j3gA4LHG2nolKV4IDGrYWxEygc41Sgrtm1ZYbZAvjHMd9phQ==} + '@sentry/nextjs@10.65.0': + resolution: {integrity: sha512-9gDKQAAXcWh210fMI/ZNCa7940HYt7dGjnJVP0Tk9ozUR57W4C9vXvHJDTYPJrFxYxTHw7lwxWGervk8a6Tf4g==} engines: {node: '>=18'} peerDependencies: - next: ^16.2.9 + next: ^16.2.10 - '@sentry/node-core@10.57.0': - resolution: {integrity: sha512-2v2IF6MfTiu7pimWEq2rYhZsmlwyNbs3bHUsrYFPeP/Rpa6ObDuUWPdVEzJjfyK+AqqYZYxZdV0l3+B13kTEmQ==} + '@sentry/node-core@10.65.0': + resolution: {integrity: sha512-U01X9mPT+jZnsLPmPWfBU67Ka+t/Sdd9RGAuvGoKdrI6N47a/9PDkM9oCW+kj0fmZwogZHTgSnzJU5oi3pImgA==} engines: {node: '>=18'} peerDependencies: '@opentelemetry/api': ^1.9.0 @@ -1901,7 +1922,6 @@ packages: '@opentelemetry/exporter-trace-otlp-http': '>=0.57.0 <1' '@opentelemetry/instrumentation': '>=0.57.1 <1' '@opentelemetry/sdk-trace-base': ^1.30.1 || ^2.1.0 - '@opentelemetry/semantic-conventions': ^1.39.0 peerDependenciesMeta: '@opentelemetry/api': optional: true @@ -1913,34 +1933,43 @@ packages: optional: true '@opentelemetry/sdk-trace-base': optional: true - '@opentelemetry/semantic-conventions': - optional: true - '@sentry/node@10.57.0': - resolution: {integrity: sha512-7KEStrJ97wPf1fA5nU5ONeTTcIIlh7oT8OMffEVA1PXmlhFoXhcQZVzr4rM+zj9tfMWT01og5Ng/Grgh3dN+FA==} + '@sentry/node@10.65.0': + resolution: {integrity: sha512-t35dcdyksysVch/m/XdLgGJqGKJhr9eMD30Ctn3TeQ8yMB0wNXySfjPR5Yg93fpjmfaHtzc6iYIXRAvgNVfrvA==} engines: {node: '>=18'} - '@sentry/opentelemetry@10.57.0': - resolution: {integrity: sha512-iwRz8cEK0GOISG34aJRO8GdYOk3nfpuT6dT2GDQrxw8f7JjkJKx9LPU8MaenOFa4MhY+Z02hI6NNcrbsoI3cXg==} + '@sentry/opentelemetry@10.65.0': + resolution: {integrity: sha512-8C6FPvm3XBvUrkM52dX3Gz0p2H0Ij8t4sahUA+GTiCz0WM0fnyPeQPGC/b6I4jamV9UXyCZRnE1UEEGCoD+c7A==} engines: {node: '>=18'} peerDependencies: '@opentelemetry/api': ^1.9.0 '@opentelemetry/core': ^1.30.1 || ^2.1.0 '@opentelemetry/sdk-trace-base': ^1.30.1 || ^2.1.0 - '@opentelemetry/semantic-conventions': ^1.39.0 - '@sentry/react@10.57.0': - resolution: {integrity: sha512-6QThwQ4XWQ2rwKZEVQ9P9WKl7JlowC7S5LpAvmMdrwlfJBpLDFOsM7tycnIvbXTXf0ZOOuLFPa4L4YYbdyNGmA==} + '@sentry/react@10.65.0': + resolution: {integrity: sha512-fvHxpuvid0wt9/1N3itcKDyKOjqmYHw3MBSt5Pki3Iz4CL2CmgQp9ZFv/CA7UhMnEvn2Gd+Qc2UKxujZWd8FLg==} engines: {node: '>=18'} peerDependencies: react: ^16.14.0 || 17.x || 18.x || 19.x - '@sentry/vercel-edge@10.57.0': - resolution: {integrity: sha512-8liagiXIWfyG0xGMmZQPCNOvqfzJcL7djB2jjNCaF5y7C+X/NTUHr4sqUHfAHqpQFUUXqmBT/mZv9HB5FDLhyQ==} + '@sentry/replay-canvas@10.65.0': + resolution: {integrity: sha512-A7X3RVk1Gk+knK8Ip/2EjejckNCLgCfRZo6eGlsy6qyz904KBpYmys1a0o7QkzFRjhIndjHAfcVxwt6jSLJlrQ==} + engines: {node: '>=18'} + + '@sentry/replay@10.65.0': + resolution: {integrity: sha512-aW988CcQBNArbOMzOFOziipHz6uQyXSa4i5CPWsu+nhVPTJHafosi5Lv9n6NM/icDX5e23VdnX6mZd8SyJuo8A==} + engines: {node: '>=18'} + + '@sentry/server-utils@10.65.0': + resolution: {integrity: sha512-80toEFD6s+0Le7jrYB6pHWLF703WSg0WyavAWqrBGWG8JkREHgedAxzFYgoY5GlMI756qk6Ea7UzhJTHd2zAXA==} engines: {node: '>=18'} - '@sentry/webpack-plugin@5.3.0': - resolution: {integrity: sha512-i3OQUrS0FZlXLgq57RIKDp+vHHzuvYKPCKewAPXULWKMsBXFGhP6veGRQ+6To/pmZkkXjEX5ofVNDy9C3jEPKQ==} + '@sentry/vercel-edge@10.65.0': + resolution: {integrity: sha512-Z1sk2yBHrcsk/QMIzgMRTHitUN1zogzn5eQEc7umWmWwpP6zpDLMDxeeH2F1Cy2vzQFKa53PaWz7HXk4n617eg==} + engines: {node: '>=18'} + + '@sentry/webpack-plugin@5.4.0': + resolution: {integrity: sha512-J3a0BvUZ75Qxy+v/Ap3Hx4ZEcSjlPHZ/jDtxdRhXQCyNeEb8xq0uUBTI9VLtGk2eNeNucOxOEJ5ngqdNjnEH/A==} engines: {node: '>= 18'} peerDependencies: webpack: '>=5.0.0' @@ -1970,8 +1999,8 @@ packages: '@tokenizer/token@0.3.0': resolution: {integrity: sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==} - '@tybys/wasm-util@0.10.2': - resolution: {integrity: sha512-RoBvJ2X0wuKlWFIjrwffGw1IqZHKQqzIchKaadZZfnNpsAYp2mM0h36JtPCjNDAHGgYez/15uMBpfGwchhiMgg==} + '@tybys/wasm-util@0.10.3': + resolution: {integrity: sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg==} '@types/accepts@1.3.7': resolution: {integrity: sha512-Pay9fq2lM2wXPWbteBsRAGiWH2hig4ZE2asK+mm7kUzlxRTfL961rj89I6zV/E3PcIkDqyuBEcMxFT7rccugeQ==} @@ -2009,8 +2038,8 @@ packages: '@types/estree@1.0.9': resolution: {integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==} - '@types/express-serve-static-core@5.1.1': - resolution: {integrity: sha512-v4zIMr/cX7/d2BpAEX3KNKL/JrT1s43s96lLvvdTmza1oEvDudCqK9aF/djc/SWgy8Yh0h30TZx5VpzqFCxk5A==} + '@types/express-serve-static-core@5.1.2': + resolution: {integrity: sha512-d3KvEXBSo/lOAMc2u6fkyDHBvetBHeqD7wm/AcXfLpSOQwlmG9D/aQ0SFswVjv05p7ullQS7Mjohj6/VdbZuTg==} '@types/express@5.0.6': resolution: {integrity: sha512-sKYVuV7Sv9fbPIt/442koC7+IIwK5olP1KWeD88e/idgoJqDm3JV/YUiPwkoKK92ylff2MGxSz1CSjsXelx0YA==} @@ -2021,8 +2050,8 @@ packages: '@types/glob@7.2.0': resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} - '@types/hast@3.0.4': - resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} + '@types/hast@3.0.5': + resolution: {integrity: sha512-rp/ezSWaD1m44dPKICGhiskI13nVr7qTloFwDa/IYkhhf5nzwP+zIQcIJh3WIFSBOy/H1PzB40jPjMDksN4F+g==} '@types/http-assert@1.5.6': resolution: {integrity: sha512-TTEwmtjgVbYAzZYWyeHPrrtWnfVkm8tQkP8P21uQifPgMRgjrow3XDEYqucuC8SKZJT7pUnhU/JymvjggxO9vw==} @@ -2070,11 +2099,8 @@ packages: '@types/next-pwa@5.6.9': resolution: {integrity: sha512-KcymH+MtFYB5KVKIOH1DMqd0wUb8VLCxzHtsaRQQ7S8sGOaTH24Lo2vGZf6/0Ok9e+xWCKhqsSt6cgDJTk91Iw==} - '@types/node@22.19.21': - resolution: {integrity: sha512-VMeFBSCKQKmm2swI2kW51SFusDqekC6q9trBCvJ/JliDchFSuoYYKN7yVNjPthP1HKZcx3U1gI/wTcEBjEFKTA==} - - '@types/node@24.13.2': - resolution: {integrity: sha512-fRa09kZTgu8o71KFcDjUFuc7F+dEbZYZmkI0mg5YBTRs0yMKjYHsq/c0urDKeDb+D5qVgXOdFcuu+DZPKOITwA==} + '@types/node@24.13.3': + resolution: {integrity: sha512-Dh8vAsV36ig5wa9OX4pXvMc9D3Veibfw2wix0CUwYODLD8nkj9UsLjASr49nPg+2eKzxhBV+v7L8pXvT4e639Q==} '@types/prismjs@1.26.6': resolution: {integrity: sha512-vqlvI7qlMvcCBbVe0AKAb4f97//Hy0EBTaiW8AalRnG/xAN5zOiWWyrNqNXeq8+KAuvRewjCVY1+IPxk4RdNYw==} @@ -2125,67 +2151,67 @@ packages: '@types/warning@3.0.4': resolution: {integrity: sha512-CqN8MnISMwQbLJXO3doBAV4Yw9hx9/Pyr2rZ78+NfaCnhyRA/nKrpyk6E7mKw17ZOaQdLpK9GiUjrqLzBlN3sg==} - '@typescript-eslint/eslint-plugin@8.61.0': - resolution: {integrity: sha512-bFNvl9ZczlVb+wR2Akszf3gHfKVj/8WanXaGJ3UstTA7brNKg0cNdk6X1Psu5V7MZ2oQtzZKOEzIUehaoxbDGw==} + '@typescript-eslint/eslint-plugin@8.63.0': + resolution: {integrity: sha512-rvwSgqT+DHpWdzfSzPatRLm02a0GlESt++9iy3hLCDY4BgkaLcl8LBi9Yh7XGFBpwcBE/K3024QuXWTpbz4FfQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.61.0 + '@typescript-eslint/parser': ^8.63.0 eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/parser@8.61.0': - resolution: {integrity: sha512-5B7PfA2e1NQGCnDHd/0lW7W3gvp3d59Ryw54FYO8Uswxo9f6ikw3AZV+Xj/TvpImmpsiYyUqAfhC6kJID1jF6w==} + '@typescript-eslint/parser@8.63.0': + resolution: {integrity: sha512-gwh4gvvlaVDKKxyfxMG+Gnu1u9X0OQBwyGLkbwB65dIzBKnxeRiJlNFqlI3zwVhNXJIs6qV7mlFCn/BIajlVig==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/project-service@8.61.0': - resolution: {integrity: sha512-DV42F7MLJO6Rax7SK1yg43tcnEfGUrurSpSxKuVX+a3RCTzBlH3fuxprrOJXKCJGAaw82xXocikJ0uQaqwXgGA==} + '@typescript-eslint/project-service@8.63.0': + resolution: {integrity: sha512-e5dh0/UI0ok53AlZ5wRkXCB32z/f2jUZqPR/ygAw5WYaSw8j9EoJWlS7wQjr/dmOaqWjnPIn2m+HhVPCMWGZVQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/scope-manager@8.61.0': - resolution: {integrity: sha512-IWdXFHFSb6mlC3HPc7QsLDm5zYEbUla6trDEHf32D3/dnuUyXd87plScSNXSbm0/RxMvObpI17sv/EDTGrGZkA==} + '@typescript-eslint/scope-manager@8.63.0': + resolution: {integrity: sha512-uUyfMWCnDSN8bCpcrY8nGP2BLkQ9Xn0GsipcONcpIDWhwhO4ZSyHvyS14U3X75mzxWxL3I2UZIrenTzdzcJO8A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/tsconfig-utils@8.61.0': - resolution: {integrity: sha512-O5Amvdv9ztMpxpf+vmFULGG78IE6Qwdr3bCGvqwG4nwc9H2qXkOYJJnRbRHyMkQTjv1d03olqwwwzHLMqpFePQ==} + '@typescript-eslint/tsconfig-utils@8.63.0': + resolution: {integrity: sha512-sUAbkulqBAsncKnbRP3+7CtQFRKicexnj7ZwNC6ddCR7EmrXvjvdCYMJbUIqMd6lwoEriZjwLo08aS5tSjVMHg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/type-utils@8.61.0': - resolution: {integrity: sha512-TuBiQYIkd97yBfInHCTKVYMbX4kvEmpOEuixIuzCU9p8BGT1SfyyO0d0IfDMbPIHcjn/hWnusUX5e8v5Xg+X8A==} + '@typescript-eslint/type-utils@8.63.0': + resolution: {integrity: sha512-Nzzh/OGxVCOjObjaj1CQF2RUasyYy2Jfuh+zZ3PjLzG2fYRriAiZLib9UKtO+CpQAS3YHiAS+ckZDclwqI1TPA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/types@8.61.0': - resolution: {integrity: sha512-9QTQpZ5Iin4CdIodfbDQFSeiSJKidgYJYug1P9CC2xWgUTvlmixViqDZNciMjwLBZyJnG4tGmPl97rVAFb1AJg==} + '@typescript-eslint/types@8.63.0': + resolution: {integrity: sha512-xyLtl9DUBBFrcJS4x2pIqGLH68/tC2uOa4Z7pUteW09D3bXnnXUom4dyPikzWgB7llmIc1zoeI3aoUdC4rPK/Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.61.0': - resolution: {integrity: sha512-42zatd5qSvvcV1JdDBCLxYRznvP4eIHpPoZXdkPFnAmanA4FuZ5dibSnCBggY8hQnqajPpoGjXFdZ7fIJKQnlA==} + '@typescript-eslint/typescript-estree@8.63.0': + resolution: {integrity: sha512-ygBkU+B7ex5UI/gKhaqexWev79uISfIv7XQCRNYO/jmD8rGLPyWLAb3KMRT6nd8Gt9bmUBi9+iX6tBdYfOY81Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/utils@8.61.0': - resolution: {integrity: sha512-3bzFt7ImFMW/jVYwJamDoe/dMOdFLSC6pom6rRjdh4SZJEYupyMzem8e7vKZLclLfpHjlwSAXOUxtKxGXUiLqA==} + '@typescript-eslint/utils@8.63.0': + resolution: {integrity: sha512-fUKaeAvrTuQg/Tgt3nliAUSZHJM6DlCcfyEmxCvlX8kieWSStBX+5O5Fnidtc3i2JrH+9c/GL4RY2iasd/GPTA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/visitor-keys@8.61.0': - resolution: {integrity: sha512-QVLZu3ZPQEE+HICQyAMZ2yLQhxf0meY/wx6Hx14YcTNj13JB3qHlX3lJ02L3fLGHgERRH71kvYDwiXIguT3AjQ==} + '@typescript-eslint/visitor-keys@8.63.0': + resolution: {integrity: sha512-UexrHGnGTpbuQHct2ExOc2ZcFbGUS9FOesCxxqdBGcpI1BxYu/LZ6U8Aq6/72XtF/qRBk9nhuGHFJIXXMhPMdw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@ungap/structured-clone@1.3.1': - resolution: {integrity: sha512-mUFwbeTqrVgDQxFveS+df2yfap6iuP20NAKAsBt5jDEoOTDew+zwLAOilHCeQJOVSvmgCX4ogqIrA0mnyr08yQ==} + '@ungap/structured-clone@1.3.3': + resolution: {integrity: sha512-60YRaenCQcVjYEKOcG824+DRGGIQ3VKErcBoAEDJZz5bKIs2ZG+X/H9Nk+Q6EVkwJk5QNApxbrc5QtBSwtrXAg==} '@unrs/resolver-binding-android-arm-eabi@1.12.2': resolution: {integrity: sha512-g5T90pqg1bo/7mytQx6F4iBNC0Wsh9cu+z9veDbFjc7HjpesJFWD7QMS0NGStXM075+7dJPPVvBbpZlnrdpi/w==} @@ -2307,11 +2333,11 @@ packages: cpu: [x64] os: [win32] - '@vue/reactivity@3.5.38': - resolution: {integrity: sha512-pG6LV/NDNRbKizcUjFFLAfjaL8mcv4DmR9avNcUw2gDHBzZneuS2TWCmp633ynzxz9YYKNeEPK2I8Wraqy2HUQ==} + '@vue/reactivity@3.5.39': + resolution: {integrity: sha512-TpsuBJ9gGlZa5d23XcM2y8EXanz9dZeVDQBXRwzy46ItgvM+rWpzs+UVM0wcRLxGvcav0HE5jz2gNL53xlRAog==} - '@vue/shared@3.5.38': - resolution: {integrity: sha512-FTW0AFZNaK5/mOqvGBwVfUlNLU38TiQn4+DQgIFUnrBBJQ1crMJ82yeGQLV5jyKFsO8yRukpbuP7x+nRbH6aug==} + '@vue/shared@3.5.39': + resolution: {integrity: sha512-l1rrBtBfTnmxvtsvdQDXltUUy8S1Y+ZaqdfUzmAnJkTd8Z8rv5v/ytW+TKiqEOWyHPoqtPlNFSs0lhRmYVSHVA==} '@webassemblyjs/ast@1.14.1': resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==} @@ -2368,11 +2394,6 @@ packages: resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} engines: {node: '>= 0.6'} - acorn-import-attributes@1.9.5: - resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} - peerDependencies: - acorn: ^8 - acorn-import-phases@1.0.4: resolution: {integrity: sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==} engines: {node: '>=10.13.0'} @@ -2555,22 +2576,22 @@ packages: resolution: {integrity: sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==} engines: {node: '>= 0.6.0'} - baseline-browser-mapping@2.10.37: - resolution: {integrity: sha512-girxaJ7WZssDOFhzCGZTDKoTa1gk6A1TbflaYTpykLJ4UU9Fz9kx1aREM8JCuoVHbL8X8T/mJg7w2oYSq72Oig==} + baseline-browser-mapping@2.10.43: + resolution: {integrity: sha512-AjYpR78kDWAY3Efj+cDTFH9t9SCoL7OoTp1BOb0mQV7S+6CiLwnWM3FyxhJtdPufDFKzmCSFoUncKjWgJEZTCQ==} engines: {node: '>=6.0.0'} hasBin: true big.js@5.2.2: resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} - brace-expansion@1.1.15: - resolution: {integrity: sha512-EwOCDEex4quD37XhqM3omwtMoJjr//isUZz1JopUNWms+4Z2ViyM/k1YIRePpoVNnQhENnxtFjLaxNHrT7xIUg==} + brace-expansion@1.1.16: + resolution: {integrity: sha512-IDw48K2/2kRkg9LdJxurvq3lV3aBgq0REY89duEqFRthjlPdXHKMj7EnQOXVckxzgisinf3nHfrcE2FufFLXMw==} - brace-expansion@2.1.1: - resolution: {integrity: sha512-WR1cURNjuvBLMZBMbqM0UoE+WAfdUcEV1ccD8PVBVOI+Z3ND4+SZbN8RsfT2bMuG1qwz5RFvPukSZm5fF2D5eA==} + brace-expansion@2.1.2: + resolution: {integrity: sha512-w5JZcKgdhDOgOwm8H+KgbosopHMuGcl6qbulwjtz3SM7I7P3yW1eAjzMPLrIE+NQ9vjgANKHWeMHnrT0OXW1oA==} - brace-expansion@5.0.6: - resolution: {integrity: sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==} + brace-expansion@5.0.7: + resolution: {integrity: sha512-7oFy703dxfY3/NLxC1fh2SUCQ0H9rmAY+5EpDVfXjUTTs+HEwR2nYaqLv+GWcTsumwxPfiz6CzCNkwXwBUwqCA==} engines: {node: 18 || 20 || >=22} braces@3.0.3: @@ -2580,8 +2601,8 @@ packages: browser-fs-access@0.37.0: resolution: {integrity: sha512-MKpvZrKtv6pBJ2ACd+VwfS9XauBKTMVZg2UBibypuK1gfiXM7euZjbdKmvRsyxeQRhfzNVQrzCSVGXs19/LP8Q==} - browserslist@4.28.2: - resolution: {integrity: sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==} + browserslist@4.28.6: + resolution: {integrity: sha512-FQBYNK15VMslhLHpA7+n+n1GOlF1kId2xcCg7/j95f24AOF6VDYMNH4mFxF7KuaTdv627faazpOAjFzMrfJOUw==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -2611,8 +2632,8 @@ packages: resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} engines: {node: '>= 0.4'} - caniuse-lite@1.0.30001799: - resolution: {integrity: sha512-hG1bReV+OUU+MOqK4t/ZWI0tZOyz3rqS9XuhOUz1cIcbwBKjOyJEJuw9ER5JuNyqxNk8u/JUVbGibBOL1yrjFw==} + caniuse-lite@1.0.30001805: + resolution: {integrity: sha512-52noaS3DubycKSXaU30TwPGIp+POyQSUVa5jBEq3vkRkY0kjyb3LQgvhU6WGyCcyXqVLWO0Cw0Q6BSdD0kUfVA==} ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} @@ -2896,6 +2917,10 @@ packages: resolution: {integrity: sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==} engines: {node: '>=12'} + dotenv@17.4.2: + resolution: {integrity: sha512-nI4U3TottKAcAD9LLud4Cb7b2QztQMUEfHbvhTH09bqXTxnSie8WnjPALV/WMCrJZ6UV/qHJ6L03OqO3LcdYZw==} + engines: {node: '>=12'} + dunder-proto@1.0.1: resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} engines: {node: '>= 0.4'} @@ -2908,6 +2933,7 @@ packages: edkit@1.2.7: resolution: {integrity: sha512-dCOBN9MMbCaCdSqhnZTSHPe7lu53TQttttjVBxLE/TehsQasuxmqW3ckimVODFaJVci1A6w429j9bebpiU3zKg==} + deprecated: Don't use version with old API & bugs ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} @@ -2917,8 +2943,8 @@ packages: engines: {node: '>=0.10.0'} hasBin: true - electron-to-chromium@1.5.372: - resolution: {integrity: sha512-M3yhbAlilnwqC8D21t28UCDGHyitShTmmLRU/H+b74P6Ski16Nb9HONYEaVpMj/pwC7BEo5B95FpjODLCWbtfA==} + electron-to-chromium@1.5.389: + resolution: {integrity: sha512-cEto7aeOqBfU1D+c5py5pE+ooscKE75JifxLBdFUZsqAxRS6y7kebtxAZvICszSl05gPjYHDTjY+lXpyGvpJbg==} emoji-regex@10.6.0: resolution: {integrity: sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==} @@ -2934,8 +2960,8 @@ packages: resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} engines: {node: '>= 0.8'} - enhanced-resolve@5.24.0: - resolution: {integrity: sha512-SkE2t82KlkkxQRVMVLAGKxLfORGQfrkx5dkj+vlgXRVNEdPc4eZcR+J/Fvj8C+yKSFH5L0q3NFlyufOVQnCcYQ==} + enhanced-resolve@5.24.2: + resolution: {integrity: sha512-rpsZEGT1jFuve6QlpyRp9ckQ+kN61hvF9BzCPyMdaKTm8UJce96KBn3sorXOFXlzjPrs3Vc4T1NsSroZ3PxlFw==} engines: {node: '>=10.13.0'} env-paths@4.0.0: @@ -2950,6 +2976,10 @@ packages: resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==} hasBin: true + es-abstract-get@1.0.0: + resolution: {integrity: sha512-6PMWXpdhshVvFp+FoWYs1EvG1Nj0tvk0dZM+XcK0xMEM1czRVcP6ohqPWHy6qPagSpC8j4+p89WXlT+xXJs/fg==} + engines: {node: '>= 0.4'} + es-abstract@1.24.2: resolution: {integrity: sha512-2FpH9Q5i2RRwyEP1AylXe6nYLR5OhaJTZwmlcP0dL/+JCbgg7yyEo/sEK6HeGZRf3dFpWwThaRHVApXSkW3xeg==} engines: {node: '>= 0.4'} @@ -2962,12 +2992,12 @@ packages: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} - es-iterator-helpers@1.3.3: - resolution: {integrity: sha512-0PuBxFi+4uPanB97iDxCLWuHeYud2FALrw5HFZGtAF38UpJDbDC8frwp2cnDyae692CQ0dou60UwWfhgsa4U/g==} + es-iterator-helpers@1.4.0: + resolution: {integrity: sha512-c/A0P0oxkACDc+cKWw8evLXK83oBKgn0qPOqCYT4x9uolpCIJAcYvJC9QYKNDRPsTeGyCrQ326jrvgZWdCdK5Q==} engines: {node: '>= 0.4'} - es-module-lexer@2.1.0: - resolution: {integrity: sha512-n27zTYMjYu1aj4MjCWzSP7G9r75utsaoc8m61weK+W8JMBGGQybd43GstCXZ3WNmSFtGT9wi59qQTW6mhTR5LQ==} + es-module-lexer@2.3.0: + resolution: {integrity: sha512-KLdwQm2NvGLDkQDCGvmiQrhkd0JbMzXthwQAUgWjQuQdBLFa3eiBP5arXZyA+f8x+x7OXgud6bq2rxjGtHV2tw==} es-object-atoms@1.1.2: resolution: {integrity: sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==} @@ -2981,8 +3011,8 @@ packages: resolution: {integrity: sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==} engines: {node: '>= 0.4'} - es-to-primitive@1.3.0: - resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} + es-to-primitive@1.3.4: + resolution: {integrity: sha512-yPDz7wqpg1/mmHLmS3tcfTfbw5f1eryXvyghYBffGdERwe+mV7ZcWzTR8LR17Kvqt3qfPurjlonmnq3MKXIOXw==} engines: {node: '>= 0.4'} esast-util-from-estree@2.0.0: @@ -3006,8 +3036,8 @@ packages: resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} engines: {node: '>=12'} - eslint-config-next@16.2.9: - resolution: {integrity: sha512-olGtBrs07bQchpaJWeqbk9GaMoU0oGmN/pYNEBXSbfgKngb5uHnPe37X6tVeh6DJfaWFQildvinGEOrolo5fmw==} + eslint-config-next@16.2.10: + resolution: {integrity: sha512-HSybLOY0QKf39i4FWUqPN0xWiNDi6A6UqJmZtgDkS3zMqjXTqULvj/sueXx3cdCG0mVG+qH6k5/qdegklH1d1w==} peerDependencies: eslint: '>=9.0.0' typescript: '>=3.3.1' @@ -3037,8 +3067,8 @@ packages: eslint-plugin-import-x: optional: true - eslint-module-utils@2.13.0: - resolution: {integrity: sha512-bLohSkT6469rRs8czj0tLTD8vaeIS/whvPRJVjDr7IuoTT1k5DYDERlNycjDj/HkOlvQdYurmfZ/g3fG5bgeLQ==} + eslint-module-utils@2.14.0: + resolution: {integrity: sha512-W2WCRZ9Dqntd+2u8jJcVMV2PKulc6RdLgUUoh/yQr3uB6lo/ZOeGx11sv60/8S4QFFKNslAlWhr9u0Ef7ZW6Ig==} engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' @@ -3111,8 +3141,8 @@ packages: resolution: {integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - eslint@10.5.0: - resolution: {integrity: sha512-1y+7C+vi12bUK1IpZeaV3gsH9fHLBmPvYmPx42pvT/E9yG0IC8g3PUZZgp0+JLJl7ZDK0flc2gc+Aw9dpCvIsQ==} + eslint@10.7.0: + resolution: {integrity: sha512-GVTD7s1vdIl6UYvAfriOPeY1Df8LIZjfofLvHwde+erDHGGuHyuM6xoxRxmHiebhYuD2p1vN4wWh0XzPARSGDQ==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} hasBin: true peerDependencies: @@ -3200,8 +3230,8 @@ packages: fast-diff@1.3.0: resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} - fast-equals@6.0.0: - resolution: {integrity: sha512-PFhhIGgdM79r5Uztdj9Zb6Tt1zKafqVfdMGwVca1z5z6fbX7DmsySSuJd8HiP6I1j505DCS83cLxo5rmSNeVEA==} + fast-equals@6.0.2: + resolution: {integrity: sha512-sAjhj9ZhOxYCGiNMnZLaucOqf5ZeFnHNoKoAZiD9thhJ0N8RP85qJK759/97C/3L7NzzmGVB5uiX9AUpySZmUQ==} engines: {node: '>=6.0.0'} fast-glob@3.3.1: @@ -3218,8 +3248,8 @@ packages: fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - fast-uri@3.1.2: - resolution: {integrity: sha512-rVjf7ArG3LTk+FS6Yw81V1DLuZl1bRbNrev6Tmd/9RaroeeRRJhAt7jg/6YFxbvAQXUCavSoZhPPj6oOx+5KjQ==} + fast-uri@3.1.3: + resolution: {integrity: sha512-i70LwGWUduXqzicKXWshooq+sWL1K3WUU5rKZNG/0i3a1OSoX3HqhH5WbWwTmqWfor4urUakGPiRQcleRZTwOg==} fastq@1.20.1: resolution: {integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==} @@ -3350,9 +3380,6 @@ packages: resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} engines: {node: '>=10.13.0'} - glob-to-regexp@0.4.1: - resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} - glob@13.0.6: resolution: {integrity: sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==} engines: {node: 18 || 20 || >=22} @@ -3369,8 +3396,8 @@ packages: resolution: {integrity: sha512-ob/2LcVVaVGCYN+r14cnwnoDPUufjiYgSqRhiFD0Q1iI4Odora5RE8Iv1D24hAz5oMophRGkGz+yuvQmmUMnMw==} engines: {node: '>=18'} - globals@17.6.0: - resolution: {integrity: sha512-sepffkT8stwnIYbsMBpoCHJuJM5l98FUF2AnE07hfvE0m/qp3R586hw4jF4uadbhvg1ooIdzuu7CsfD2jzCaNA==} + globals@17.7.0: + resolution: {integrity: sha512-Czmyns5dUsq4seFBR/Kdydhmo8y9kC79hiSkPn0YcGtNnYWnrgt0vjrSjx9tspoDGWm2CMarffRuLjM4xUz8xg==} engines: {node: '>=18'} globalthis@1.0.4: @@ -3471,8 +3498,8 @@ packages: resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} engines: {node: '>=0.10.0'} - idb-keyval@6.2.5: - resolution: {integrity: sha512-eKQkTnS0relYsSOYomx8ozIbmdsQCKUdhyuIaQ2DZgKuaxtyQQMkyD/wlnQN32pO3yutN1b1L8uqwcDKaJd7/Q==} + idb-keyval@6.3.0: + resolution: {integrity: sha512-um+2dgAWmYsu615EXpWVwSmapJhON0G43t3Ka/EVaohzPQXSMqKEqeDK/oIW3Ow+BXaF2PvSc+oBTFp793A5Ow==} idb@7.1.1: resolution: {integrity: sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==} @@ -3490,8 +3517,8 @@ packages: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} - ignore@7.0.5: - resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} + ignore@7.0.6: + resolution: {integrity: sha512-BAg6QkE8W+TuQLrrw0Ugr7HegXduRuuj8/ti2kSOc+jz1dmx8/WNcjr6XGnq5YpDWxFwwaavqD0+jIUOKelTsw==} engines: {node: '>= 4'} image-size@0.5.5: @@ -3503,8 +3530,8 @@ packages: resolution: {integrity: sha512-Fpi660c7VPDM3fPKYovStd9IP1CPOikf6v/dGxJJMmHPcwYQIMJ4W7kO1avBYEpMqkCh+Dx3Ln6H7VYqgztLjw==} engines: {node: '>=22.15'} - import-in-the-middle@3.0.2: - resolution: {integrity: sha512-LGLYRl0A2gtyUJb2WDliBHmk6TtlHwdDjxonacZ8QrEs/ZW+YDgNv2QAfjRQWpS8HqvNcq6GGnN6jrOa5FysDQ==} + import-in-the-middle@3.3.1: + resolution: {integrity: sha512-0rymlHSFLwZ0ixx8DaQkoIyZojJPY2a0K2nEYslhKJ6jIYO/m0IcCb7iQsFPmS7WmKwISZiIrv5Icstrw/CmqA==} engines: {node: '>=18'} import-meta-resolve@4.2.0: @@ -3852,8 +3879,8 @@ packages: webpack: optional: true - less@4.6.4: - resolution: {integrity: sha512-OJmO5+HxZLLw0RLzkqaNHzcgEAQG7C0y3aMbwtCzIUFZsLMNNq/1IdAdHEycQ58CwUO3jPTHmoN+tE5I7FQxNg==} + less@4.6.7: + resolution: {integrity: sha512-o3UxHBPPVY1HtCXx15/z1NlknQiWyafRNbtLEv+6xFaDRI2g2xPKIH43do9dSwt8bGLTsjNSaifa48N3d6odsQ==} engines: {node: '>=18'} hasBin: true @@ -3868,13 +3895,13 @@ packages: lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - lint-staged@17.0.7: - resolution: {integrity: sha512-JrSobt+tW3rH8IOMi8tDZd3foorM5yPEkLD/V2NxobgHrFfHWGee4MOLVuZeScgxftEwbHrPHIFA/ZL+nUJeuA==} + lint-staged@17.0.8: + resolution: {integrity: sha512-B2P/d+jVW0UXOQ0MVMLrB/9ydA1P+zz6jYfdrbbEd9ur3S2rcbduFWKiUCC02Sm5hbC8nrm7y24WuYMG54HfxA==} engines: {node: '>=22.22.1'} hasBin: true - listr2@10.2.1: - resolution: {integrity: sha512-7I5knELsJKTUjXG+A6BkKAiGkW1i25fNa/xlUl9hFtk15WbE9jndA89xu5FzQKrY5llajE1hfZZFMILXkDHk/Q==} + listr2@10.2.2: + resolution: {integrity: sha512-JtNtbZj8q5BnDMR7trpwvwk3RIrANtIVzEUm8w7amp6xelLgyuq+4WZoTH913XaQAoH/cNdYhaNzBPA2U3xbDw==} engines: {node: '>=22.13.0'} loader-runner@4.3.2: @@ -3946,8 +3973,8 @@ packages: lowlight@3.3.0: resolution: {integrity: sha512-0JNhgFoPvP6U6lE/UdVsSq99tn6DhjjpAj5MxG49ewd2mOBVtwWYIT8ClyABhq198aXXODMU6Ox8DrGy/CpTZQ==} - lru-cache@11.5.1: - resolution: {integrity: sha512-RPimw/7aMdv2oqRrxKwvZXcPfwBrn/JZ2xYcY9Hus/6LaS3VOAKVWKWgNLCFSiOm1ESXinjsDlidVU7JlnCN2A==} + lru-cache@11.5.2: + resolution: {integrity: sha512-4pfM1Ff0x50o0tQwb5ucw/RzNyD0/YJME6IVcStalZuMWxdt3sR3huStTtxz4PUmvZfRguvDejasvQ2kifR11g==} engines: {node: 20 || >=22} lru-cache@5.1.1: @@ -3959,14 +3986,14 @@ packages: magic-string@0.30.21: resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} - make-dir@2.1.0: - resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} - engines: {node: '>=6'} - make-dir@3.1.0: resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} engines: {node: '>=8'} + make-dir@5.1.0: + resolution: {integrity: sha512-IfpFq6UM39dUNiphpA6uDezNx/AvWyhwfICWPR3t1VspkgkMZrL+Rk1RbN1bx+aeNYwOrqGJgEgV3yotk+ZUVw==} + engines: {node: '>=18'} + markdown-extensions@2.0.0: resolution: {integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==} engines: {node: '>=16'} @@ -3979,8 +4006,8 @@ packages: engines: {node: '>= 18'} hasBin: true - marked@18.0.5: - resolution: {integrity: sha512-S6GcvALHg6K4ohtu4E7x0a1AqhAjp6cV8KhLSyN9qVapnzJkusVBxZRcIU9AeYsbe6P1hKDusSbEOzGyyuce6w==} + marked@18.0.6: + resolution: {integrity: sha512-MrV5puXBfuiy6wl6DLaq3BtIJQAJToAd5zt/ZKhRfGRAuFPALE7/4Y7jnxRQoEgK/pBgurGqLyAuRgZ2xOjr6w==} engines: {node: '>= 20'} hasBin: true @@ -4054,6 +4081,10 @@ packages: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} + meriyah@6.1.4: + resolution: {integrity: sha512-Sz8FzjzI0kN13GK/6MVEsVzMZEPvOhnmmI1lU5+/1cGOiK3QUahntrNNtdVeihrO7t9JpoH75iMNXg6R6uWflQ==} + engines: {node: '>=18.0.0'} + micromark-core-commonmark@2.0.3: resolution: {integrity: sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==} @@ -4210,6 +4241,49 @@ packages: minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + minimizer-webpack-plugin@5.6.1: + resolution: {integrity: sha512-DoeAZz8Q1C1znwsUzej1fdoi4jCf7/+Em27ouLqfK/+3m8G+D7yDhUwrc3CNhjSzGUN1kn7Iv4sWmjflQHenpw==} + engines: {node: '>= 10.13.0'} + peerDependencies: + '@minify-html/node': '*' + '@swc/core': '*' + '@swc/css': '*' + '@swc/html': '*' + clean-css: '*' + cssnano: '*' + csso: '*' + esbuild: '*' + html-minifier-terser: '*' + lightningcss: '*' + postcss: '*' + uglify-js: '*' + webpack: ^5.1.0 + peerDependenciesMeta: + '@minify-html/node': + optional: true + '@swc/core': + optional: true + '@swc/css': + optional: true + '@swc/html': + optional: true + clean-css: + optional: true + cssnano: + optional: true + csso: + optional: true + esbuild: + optional: true + html-minifier-terser: + optional: true + lightningcss: + optional: true + postcss: + optional: true + uglify-js: + optional: true + minipass@7.1.3: resolution: {integrity: sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==} engines: {node: '>=16 || 14 >=14.17'} @@ -4217,13 +4291,13 @@ packages: 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==} + mobx-i18n@0.7.5: + resolution: {integrity: sha512-Tf+K3wdaUGcws0cV80s5EJuS+NFzGrWMqwdcZO4/ZXygCw2b7tKGNn8IDz/FbjgkYSH5hgileIfhvKLkLZGIEw==} peerDependencies: mobx: '>=6.11' - mobx-lark@2.8.1: - resolution: {integrity: sha512-j33PDsyoAaPgv25SXgkcXfEoDIkXK0IYIIoQpCIzdWF3sGvL/ZRTnfKergos1GsA1uuT/qXP4rbfJmc41i9Jtg==} + mobx-lark@2.10.0: + resolution: {integrity: sha512-oF8Upa+4SVrN3/ducj138rccJbqyUiZhjsk+Y5ztD7KFrzzCbFljVaYFDX3uwg73qDlKNqDUrKOqBnlGJ9MIKw==} peerDependencies: react: '>=16' @@ -4315,12 +4389,12 @@ packages: next-pwa@5.6.0: resolution: {integrity: sha512-XV8g8C6B7UmViXU8askMEYhWwQ4qc/XqJGnexbLV68hzKaGHZDMtHsm2TNxFcbR7+ypVuth/wwpiIlMwpRJJ5A==} peerDependencies: - next: ^16.2.9 + next: ^16.2.10 next-ssr-middleware@1.1.0: resolution: {integrity: sha512-eYKTZExd+4yq4Cs2lrQ+XJlgegKAgmCvigy9Ro3ScaHjUNevyXovHO/bbdTYIvr4DtYDbZPJkw4VbYAaVZ5x7w==} peerDependencies: - next: ^16.2.9 + next: ^16.2.10 react: '>=18' next-with-less@3.0.1: @@ -4328,10 +4402,10 @@ packages: peerDependencies: less: '*' less-loader: '>= 7.0.0' - next: ^16.2.9 + next: ^16.2.10 - next@16.2.9: - resolution: {integrity: sha512-MEOJiq/UvuezAdqVSceHbqDgZt1kDw2tpGVOlsdIoJsQdbN2JY2hpVG4xnXGkbdJUOEWhnRfiu/O4Hpc9Juwww==} + next@16.2.10: + resolution: {integrity: sha512-2som5AVXb3kE6Yjine3/mNbBayYF58eguBWIVVUdr1y/L426xyVEgYxgBG+1QC34P2x5E+tcDup6XkuOAX3dCA==} engines: {node: '>=20.9.0'} hasBin: true peerDependencies: @@ -4351,8 +4425,8 @@ packages: sass: optional: true - node-exports-info@1.6.0: - resolution: {integrity: sha512-pyFS63ptit/P5WqUkt+UUfe+4oevH+bFeIiPPdfb0pFeYEu/1ELnJu5l+5EcTKYL5M7zaAa7S8ddywgXypqKCw==} + node-exports-info@1.6.2: + resolution: {integrity: sha512-kXs9Go0cah0qHVV2v389IXQLdLCeE1xfFtjOAF+iobu0OIoG1pje8At2vMHyaPMiPMnG/LWP50twML21eMcAag==} engines: {node: '>= 0.4'} node-fetch@2.7.0: @@ -4364,8 +4438,8 @@ packages: encoding: optional: true - node-releases@2.0.47: - resolution: {integrity: sha512-Uzmd6LXpouKo8EUK68IjH4+E01w/hXyV3R3g/geCJo+rXLNfh1xucB+LOzYEOQPSiUK3h/xZf0cQGcSsmyL2Og==} + node-releases@2.0.51: + resolution: {integrity: sha512-wRNIrw4DmVLKQlbgOMdkMx27Wrpzes2hh5Jtbi2bjPd+4wJstWIqP5A+lscnqbm0xxmT5Bpg8Lec5ItEBwx6BQ==} engines: {node: '>=18'} normalize-path@3.0.0: @@ -4506,8 +4580,8 @@ packages: resolution: {integrity: sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==} engines: {node: '>=8.6'} - picomatch@4.0.4: - resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==} + picomatch@4.0.5: + resolution: {integrity: sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==} engines: {node: '>=12'} pify@2.3.0: @@ -4564,8 +4638,8 @@ packages: peerDependencies: prettier: 3.x - prettier@3.8.4: - resolution: {integrity: sha512-N2MylSdi48+5N/6S5j+maeHbUSIzzZ5uOcX5Hm4QpV8Dkb1HFjfAKTKX6yNPJQD9AhcT3ifHNB66tWTTJDi11Q==} + prettier@3.9.5: + resolution: {integrity: sha512-/FVl766LpUfB5vXgCYOYa0MeV/441Ia99AeICQIQFTY/Nw0roZwULcXpku5i1/m5kt/baz+s4Zogspd839HSMg==} engines: {node: '>=14'} hasBin: true @@ -4607,8 +4681,8 @@ packages: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} - qs@6.15.2: - resolution: {integrity: sha512-Rzq0KEyX/w/tEybncDgdkZrJgVUsUMk3xjh3t5bv3S1HTAtg+uOYt72+ZfwiQwKdysThkTBdL/rTi6HDmX9Ddw==} + qs@6.15.3: + resolution: {integrity: sha512-O9gl3zCl5h5blw1KGUzQKhA5oUXSl8rwUIM5o0S3nCXMliSvy5Dzx7/DJcI+SwgICv+IneSZwhBh1oSyEHA71A==} engines: {node: '>=0.6'} queue-microtask@1.2.3: @@ -4621,14 +4695,15 @@ packages: resolution: {integrity: sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==} engines: {node: '>= 0.8'} - react-aria@3.49.0: - resolution: {integrity: sha512-4+oK9FwJQWYhyA5zLfj/feOGY0zZbkE1muoF4gyxMroHVypjcYaRSTlJwvxph2zIlxt757KX6xIK2wJ5Aw1Kog==} + react-aria@3.50.0: + resolution: {integrity: sha512-S0Os6QZk33fzUAKu1QLT9afoUaCBt1ZNdoiq0n2YMVgKIdNIQS8zxiZ8O9hYE6QyDkHKjD6q39LQZ+qaSAIgjw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-bootstrap-editor@2.1.1: resolution: {integrity: sha512-vnAy1MSn4mAZp418cz3R7IiUWXGGwNfmWQYlPUa2MWGm6hTTxJVeKTp2jhrH3n8sbbtg2MN4/co44OP+sZn1pQ==} + deprecated: Don't use version with old API & bugs peerDependencies: react: '>=16' react-dom: '>=16' @@ -4671,8 +4746,8 @@ packages: react: '>=18.0.0' react-dom: '>=18.0.0' - react-stately@3.47.0: - resolution: {integrity: sha512-H3ar+SOWP920EbVg7qWfP3fZjZiwhlEJAEJQqjt+w8oKijCwFgr0+R4941PIHscOXRNRvEOjvWilitImC0DdBg==} + react-stately@3.48.0: + resolution: {integrity: sha512-ImicSAG+lTotAe5izcs1fz49Zk48w7pDusqYg04WaPhCoej8BJ24soMu3iLXIrsi273s4P1gZrYGrqReMfgEEA==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 @@ -4810,8 +4885,8 @@ packages: engines: {node: '>=10.0.0'} hasBin: true - rollup@4.62.0: - resolution: {integrity: sha512-nc72Wgq62I7rtDV4izT5/aaS0zxy3kttkinf9586ApknY3jZO9NYsmtc24fUckA0X7Q2v+ML4a15pdUlV5V/jA==} + rollup@4.62.2: + resolution: {integrity: sha512-RFnrW4lhXA3s3eqHDZvN654g8OTjzRfqpIRJYczCGB6HzphckVAi/Qh4tbPUbRuDi7s1Llv8g/NspLkttY3gTA==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -4851,24 +4926,23 @@ packages: resolution: {integrity: sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==} engines: {node: '>= 10.13.0'} - semver@5.7.2: - resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} - hasBin: true + semifies@1.0.0: + resolution: {integrity: sha512-xXR3KGeoxTNWPD4aBvL5NUpMTT7WMANr3EWnaS190QVkY52lqqcVRD7Q05UVbBhiWDGWMlJEUam9m7uFFGVScw==} semver@6.3.1: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true - semver@7.8.4: - resolution: {integrity: sha512-rUCObTnP32Q08R2uuIrt7r9PlEonuTmtuXYcW6s5kjdlj3xbnwe+21yXptAUYcMAABLkYYTtnmzb3w3EDZfueA==} + semver@7.8.5: + resolution: {integrity: sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==} engines: {node: '>=10'} hasBin: true serialize-javascript@4.0.0: resolution: {integrity: sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==} - serialize-javascript@7.0.5: - resolution: {integrity: sha512-F4LcB0UqUl1zErq+1nYEEzSHJnIwb3AF2XWB94b+afhrekOUijwooAYqFyRbjYkm2PAKBabx6oYv/xDxNi8IBw==} + serialize-javascript@7.0.7: + resolution: {integrity: sha512-YAy8Od6KV+uuwUuU50np8fGB/Aues6Y0nAhA9y/hId74PlKUcme4pXcBD46NWKr1Q4osN/iseZ17YqO1XfmI8g==} engines: {node: '>=20.0.0'} set-function-length@1.2.2: @@ -4934,8 +5008,8 @@ packages: resolution: {integrity: sha512-stxByr12oeeOyY2BlviTNQlYV5xOj47GirPr4yA1hE9JCtxfQN0+tVbkxwCtYDQWhEKWFHsEK48ORg5jrouCAg==} engines: {node: '>=20'} - smol-toml@1.6.1: - resolution: {integrity: sha512-dWUG8F5sIIARXih1DTaQAX4SsiTXhInKf1buxdY9DIg4ZYPZK5nGM1VRIYmEbDbsHt7USo99xSLFu5Q1IqTmsg==} + smol-toml@1.7.0: + resolution: {integrity: sha512-aqVvWoyO21L23mb+drl4RmMXbf6N7FdHjAhTRA9ZBL7apWBgfWC16KjrASI+1p9GAroljyMHj6fK67i0UiTNvQ==} engines: {node: '>= 18'} source-list-map@2.0.1: @@ -4995,8 +5069,8 @@ packages: resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} engines: {node: '>=18'} - string-width@8.2.1: - resolution: {integrity: sha512-IIaP0g3iy9Cyy18w3M9YcaDudujEAVHKt3a3QJg1+sr/oX96TbaGUubG0hJyCjCBThFH+tFpcIyoUHUn1ogaLA==} + string-width@8.2.2: + resolution: {integrity: sha512-GaPUh5gfdrYzqeVNZvUfT23vYYxXzKYidUcnMtJg/3rxRV63EFZy3k6xfKlmfeJD0176lnUV/Usr3XcwSvFzpg==} engines: {node: '>=20'} string.prototype.includes@2.0.1: @@ -5140,8 +5214,8 @@ packages: uglify-js: optional: true - terser@5.48.0: - resolution: {integrity: sha512-J/9An6vs9Us6wKRriSFXBWdRZapREHqFzdNUKk0pmu804EMR6dr6winwo7e5JDxN4xahxQsuysyYFwlwj4XN/Q==} + terser@5.49.0: + resolution: {integrity: sha512-SNiDnXyHSrxVcIOtVbULzcTmniUiwcV7Nwdyj1twVubeTmbjoa8p69KKDpfkdoOavuM4/GRm1+ykI8qqnavHoA==} engines: {node: '>=10'} hasBin: true @@ -5256,8 +5330,8 @@ packages: resolution: {integrity: sha512-phPGCwqr2+Qo0fwniCE8e4pKnGu/yFb5nD5Y8bf0EEeiI5GklnACYA9GFy/DrAeRrKHXvHn+1SUsOWgJp6RO+g==} engines: {node: '>= 0.4'} - typescript-eslint@8.61.0: - resolution: {integrity: sha512-8y31Rd0eGTrDKqhy6vT0HtzhN+YLjQizwX3aA3hPXP/ynSfnrBXcQY5IzsP9/DM7+klX4IUncZZjkchP0z+rUw==} + typescript-eslint@8.63.0: + resolution: {integrity: sha512-xgwXyzG4sK9ALkBxbyGkTMMOS+imnW65iPhxCQMK83KhxyoDNW7l+IDqEf9vMdoUidHpOoS967RCq4eMiTexwQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 @@ -5286,14 +5360,11 @@ packages: peerDependencies: react: '>=16.14.0' - undici-types@6.21.0: - resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} - undici-types@7.18.2: resolution: {integrity: sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==} - undici@8.4.1: - resolution: {integrity: sha512-RNHlB4fxZK0IrkhBsxhlbx7s8kFWwr7rzzOqj5nvZugw3ig3RsB7KW3zVlV0eu8POl+rx5d1hmL7rRg0z1owow==} + undici@8.7.0: + resolution: {integrity: sha512-N7iQtfyLhIMOFgQubvmLV26svHpO0bqKnAiWotTQCVKCmWrcGbBotPuW1x+xwYZ2VHdSTVUfPQQnlEt1/LouTQ==} engines: {node: '>=22.19.0'} unicode-canonical-property-names-ecmascript@2.0.1: @@ -5404,8 +5475,8 @@ packages: resolution: {integrity: sha512-/Gnggvj9oSrEvJbDyyPtAnxBt5fGQM2iWOKQNu7ie1OxDgK40iZpyV3TKaRiEzVj1oA1UxKnEy9XPXh6PW3eVw==} engines: {node: '>= 8'} - web-utility@4.6.6: - resolution: {integrity: sha512-ia1yi7NC6wF3ScTW9U2nu4VAjuKHbpXuluh3x8b0LSMiM49V5MexA+asaidmURMZ3gTTRD+ymw5+W4MWSaazqg==} + web-utility@4.7.2: + resolution: {integrity: sha512-yGT8E4HOI/kYgkOYIz7dKxkMMqhDfV85QH8EvaWThLeSStnLtjVyd83JDDqGiYkrD/zVDMhaWOiIR077NuEDpw==} peerDependencies: element-internals-polyfill: '>=1' typescript: '>=4.1' @@ -5419,12 +5490,12 @@ packages: webpack-sources@1.4.3: resolution: {integrity: sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==} - webpack-sources@3.5.0: - resolution: {integrity: sha512-HPuy+uuoTCaaoEoI1LQ3JN9+vrPBvEesnnX1jADHy728cHSMlq4wUc4afYqahq2B1mhQVZxCXOkNTnXltr+2vQ==} + webpack-sources@3.5.1: + resolution: {integrity: sha512-jyuiGJdtvY434z5bUZrjz67v76/ePNvFZTp9Mdz29IlH4+GPsgyGjiv0fKI+M7BdkU6ADjulUcKAd3tUK3WlEw==} engines: {node: '>=10.13.0'} - webpack@5.107.2: - resolution: {integrity: sha512-v7RhXaJbpMlV0D7hC7lb2EbnxkoeUqf9qhKr6lozx3Q48pmFrqqNRmZFUEGmi7pSwm6fCQ2H1IjvCkHqdpVdjQ==} + webpack@5.108.4: + resolution: {integrity: sha512-yur8LyJoeiWh47dErD+Ok7vlbmDsJ3UbbRPAoxbGJ54WpE2y5yVo5G/inUzujnYgw3tPmBRdn+G7PoxXaYC33w==} engines: {node: '>=10.13.0'} hasBin: true peerDependencies: @@ -5568,6 +5639,30 @@ snapshots: jsonpointer: 5.0.1 leven: 3.1.0 + '@apm-js-collab/code-transformer-bundler-plugins@0.5.0': + dependencies: + '@apm-js-collab/code-transformer': 0.15.0 + es-module-lexer: 2.3.0 + magic-string: 0.30.21 + module-details-from-path: 1.0.4 + + '@apm-js-collab/code-transformer@0.15.0': + dependencies: + '@types/estree': 1.0.9 + astring: 1.9.0 + esquery: 1.7.0 + meriyah: 6.1.4 + semifies: 1.0.0 + source-map: 0.6.1 + + '@apm-js-collab/tracing-hooks@0.10.1': + dependencies: + '@apm-js-collab/code-transformer': 0.15.0 + debug: 4.4.3 + module-details-from-path: 1.0.4 + transitivePeerDependencies: + - supports-color + '@babel/code-frame@7.29.7': dependencies: '@babel/helper-validator-identifier': 7.29.7 @@ -5612,7 +5707,7 @@ snapshots: dependencies: '@babel/compat-data': 7.29.7 '@babel/helper-validator-option': 7.29.7 - browserslist: 4.28.2 + browserslist: 4.28.6 lru-cache: 5.1.1 semver: 6.3.1 @@ -6523,12 +6618,12 @@ snapshots: '@cspell/url': 10.0.1 import-meta-resolve: 4.2.0 - '@cspell/eslint-plugin@10.0.1(eslint@10.5.0(jiti@2.7.0))': + '@cspell/eslint-plugin@10.0.1(eslint@10.7.0(jiti@2.7.0))': dependencies: '@cspell/cspell-types': 10.0.1 '@cspell/url': 10.0.1 cspell-lib: 10.0.1 - eslint: 10.5.0(jiti@2.7.0) + eslint: 10.7.0(jiti@2.7.0) synckit: 0.11.13 '@cspell/filetypes@10.0.1': {} @@ -6605,7 +6700,7 @@ snapshots: tslib: 2.8.1 optional: true - '@emnapi/runtime@1.11.1': + '@emnapi/runtime@1.11.2': dependencies: tslib: 2.8.1 optional: true @@ -6615,9 +6710,9 @@ snapshots: tslib: 2.8.1 optional: true - '@eslint-community/eslint-utils@4.9.1(eslint@10.5.0(jiti@2.7.0))': + '@eslint-community/eslint-utils@4.9.1(eslint@10.7.0(jiti@2.7.0))': dependencies: - eslint: 10.5.0(jiti@2.7.0) + eslint: 10.7.0(jiti@2.7.0) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.2': {} @@ -6638,9 +6733,9 @@ snapshots: dependencies: '@types/json-schema': 7.0.15 - '@eslint/js@10.0.1(eslint@10.5.0(jiti@2.7.0))': + '@eslint/js@10.0.1(eslint@10.7.0(jiti@2.7.0))': optionalDependencies: - eslint: 10.5.0(jiti@2.7.0) + eslint: 10.7.0(jiti@2.7.0) '@eslint/object-schema@3.0.5': {} @@ -6649,31 +6744,31 @@ snapshots: '@eslint/core': 1.2.1 levn: 0.4.1 - '@git-diff-view/core@0.1.5': + '@git-diff-view/core@0.1.6': dependencies: - '@git-diff-view/lowlight': 0.1.5 + '@git-diff-view/lowlight': 0.1.6 fast-diff: 1.3.0 highlight.js: 11.11.1 lowlight: 3.3.0 - '@git-diff-view/file@0.1.5': + '@git-diff-view/file@0.1.6': dependencies: - '@git-diff-view/core': 0.1.5 + '@git-diff-view/core': 0.1.6 diff: 8.0.4 fast-diff: 1.3.0 highlight.js: 11.11.1 lowlight: 3.3.0 - '@git-diff-view/lowlight@0.1.5': + '@git-diff-view/lowlight@0.1.6': dependencies: - '@types/hast': 3.0.4 + '@types/hast': 3.0.5 highlight.js: 11.11.1 lowlight: 3.3.0 - '@git-diff-view/react@0.1.5(react-dom@19.2.7(react@19.2.7))(react@19.2.7)': + '@git-diff-view/react@0.1.6(react-dom@19.2.7(react@19.2.7))(react@19.2.7)': dependencies: - '@git-diff-view/core': 0.1.5 - '@types/hast': 3.0.4 + '@git-diff-view/core': 0.1.6 + '@types/hast': 3.0.5 fast-diff: 1.3.0 highlight.js: 11.11.1 lowlight: 3.3.0 @@ -6785,7 +6880,7 @@ snapshots: '@img/sharp-wasm32@0.34.5': dependencies: - '@emnapi/runtime': 1.11.1 + '@emnapi/runtime': 1.11.2 optional: true '@img/sharp-win32-arm64@0.34.5': @@ -6841,7 +6936,7 @@ snapshots: lodash.merge: 4.6.2 type-is: 2.1.0 - '@koa/router@15.6.0(koa@3.2.1)': + '@koa/router@15.7.0(koa@3.2.1)': dependencies: debug: 4.4.3 http-errors: 2.0.1 @@ -6851,12 +6946,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@mdx-js/loader@3.1.1(webpack@5.107.2(postcss@8.4.31))': + '@mdx-js/loader@3.1.1(webpack@5.108.4(postcss@8.4.31))': dependencies: '@mdx-js/mdx': 3.1.1 source-map: 0.7.6 optionalDependencies: - webpack: 5.107.2(postcss@8.4.31) + webpack: 5.108.4(postcss@8.4.31) transitivePeerDependencies: - supports-color @@ -6864,7 +6959,7 @@ snapshots: dependencies: '@types/estree': 1.0.9 '@types/estree-jsx': 1.0.5 - '@types/hast': 3.0.4 + '@types/hast': 3.0.5 '@types/mdx': 2.0.14 acorn: 8.17.0 collapse-white-space: 2.1.0 @@ -6898,48 +6993,48 @@ snapshots: '@mixmark-io/domino@2.2.0': {} - '@napi-rs/wasm-runtime@1.1.5(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)': + '@napi-rs/wasm-runtime@1.1.6(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)': dependencies: '@emnapi/core': 1.10.0 '@emnapi/runtime': 1.10.0 - '@tybys/wasm-util': 0.10.2 + '@tybys/wasm-util': 0.10.3 optional: true - '@next/env@16.2.9': {} + '@next/env@16.2.10': {} - '@next/eslint-plugin-next@16.2.9': + '@next/eslint-plugin-next@16.2.10': dependencies: fast-glob: 3.3.1 - '@next/mdx@16.2.9(@mdx-js/loader@3.1.1(webpack@5.107.2(postcss@8.4.31)))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.7))': + '@next/mdx@16.2.10(@mdx-js/loader@3.1.1(webpack@5.108.4(postcss@8.4.31)))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.7))': dependencies: source-map: 0.7.6 optionalDependencies: - '@mdx-js/loader': 3.1.1(webpack@5.107.2(postcss@8.4.31)) + '@mdx-js/loader': 3.1.1(webpack@5.108.4(postcss@8.4.31)) '@mdx-js/react': 3.1.1(@types/react@19.2.17)(react@19.2.7) - '@next/swc-darwin-arm64@16.2.9': + '@next/swc-darwin-arm64@16.2.10': optional: true - '@next/swc-darwin-x64@16.2.9': + '@next/swc-darwin-x64@16.2.10': optional: true - '@next/swc-linux-arm64-gnu@16.2.9': + '@next/swc-linux-arm64-gnu@16.2.10': optional: true - '@next/swc-linux-arm64-musl@16.2.9': + '@next/swc-linux-arm64-musl@16.2.10': optional: true - '@next/swc-linux-x64-gnu@16.2.9': + '@next/swc-linux-x64-gnu@16.2.10': optional: true - '@next/swc-linux-x64-musl@16.2.9': + '@next/swc-linux-x64-musl@16.2.10': optional: true - '@next/swc-win32-arm64-msvc@16.2.9': + '@next/swc-win32-arm64-msvc@16.2.10': optional: true - '@next/swc-win32-x64-msvc@16.2.9': + '@next/swc-win32-x64-msvc@16.2.10': optional: true '@noble/hashes@1.8.0': {} @@ -6960,37 +7055,45 @@ snapshots: '@octokit/openapi-types@26.0.0': {} - '@opentelemetry/api-logs@0.214.0': + '@opentelemetry/api-logs@0.220.0': dependencies: '@opentelemetry/api': 1.9.1 '@opentelemetry/api@1.9.1': {} - '@opentelemetry/core@2.8.0(@opentelemetry/api@1.9.1)': + '@opentelemetry/core@2.9.0(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 '@opentelemetry/semantic-conventions': 1.41.1 - '@opentelemetry/instrumentation@0.214.0(@opentelemetry/api@1.9.1)': + '@opentelemetry/instrumentation@0.220.0(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/api-logs': 0.214.0 - import-in-the-middle: 3.0.2 + '@opentelemetry/api-logs': 0.220.0 + import-in-the-middle: 3.3.1 require-in-the-middle: 8.0.1 transitivePeerDependencies: - supports-color - '@opentelemetry/resources@2.8.0(@opentelemetry/api@1.9.1)': + '@opentelemetry/resources@2.9.0(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/core': 2.8.0(@opentelemetry/api@1.9.1) + '@opentelemetry/core': 2.9.0(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.41.1 - '@opentelemetry/sdk-trace-base@2.8.0(@opentelemetry/api@1.9.1)': + '@opentelemetry/sdk-trace-base@2.9.0(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/core': 2.8.0(@opentelemetry/api@1.9.1) - '@opentelemetry/resources': 2.8.0(@opentelemetry/api@1.9.1) + '@opentelemetry/core': 2.9.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 2.9.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-trace': 2.9.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.41.1 + + '@opentelemetry/sdk-trace@2.9.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.9.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 2.9.0(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.41.1 '@opentelemetry/semantic-conventions@1.41.1': {} @@ -7007,7 +7110,7 @@ snapshots: dependencies: '@swc/helpers': 0.5.23 react: 19.2.7 - react-aria: 3.49.0(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + react-aria: 3.50.0(react-dom@19.2.7(react@19.2.7))(react@19.2.7) react-dom: 19.2.7(react@19.2.7) '@react-editor-js/client@2.1.0(@editorjs/editorjs@2.31.6)(@editorjs/paragraph@2.11.7)(react@19.2.7)': @@ -7029,7 +7132,7 @@ snapshots: '@react-editor-js/core': 2.1.0(@editorjs/editorjs@2.31.6)(react@19.2.7) react: 19.2.7 - '@react-types/shared@3.35.0(react@19.2.7)': + '@react-types/shared@3.36.0(react@19.2.7)': dependencies: react: 19.2.7 @@ -7066,17 +7169,17 @@ snapshots: transitivePeerDependencies: - supports-color - '@rollup/plugin-commonjs@28.0.1(rollup@4.62.0)': + '@rollup/plugin-commonjs@28.0.1(rollup@4.62.2)': dependencies: - '@rollup/pluginutils': 5.4.0(rollup@4.62.0) + '@rollup/pluginutils': 5.4.0(rollup@4.62.2) commondir: 1.0.1 estree-walker: 2.0.2 - fdir: 6.5.0(picomatch@4.0.4) + fdir: 6.5.0(picomatch@4.0.5) is-reference: 1.2.1 magic-string: 0.30.21 - picomatch: 4.0.4 + picomatch: 4.0.5 optionalDependencies: - rollup: 4.62.0 + rollup: 4.62.2 '@rollup/plugin-node-resolve@11.2.1(rollup@2.80.0)': dependencies: @@ -7101,122 +7204,106 @@ snapshots: picomatch: 2.3.2 rollup: 2.80.0 - '@rollup/pluginutils@5.4.0(rollup@4.62.0)': + '@rollup/pluginutils@5.4.0(rollup@4.62.2)': dependencies: '@types/estree': 1.0.9 estree-walker: 2.0.2 - picomatch: 4.0.4 + picomatch: 4.0.5 optionalDependencies: - rollup: 4.62.0 + rollup: 4.62.2 - '@rollup/rollup-android-arm-eabi@4.62.0': + '@rollup/rollup-android-arm-eabi@4.62.2': optional: true - '@rollup/rollup-android-arm64@4.62.0': + '@rollup/rollup-android-arm64@4.62.2': optional: true - '@rollup/rollup-darwin-arm64@4.62.0': + '@rollup/rollup-darwin-arm64@4.62.2': optional: true - '@rollup/rollup-darwin-x64@4.62.0': + '@rollup/rollup-darwin-x64@4.62.2': optional: true - '@rollup/rollup-freebsd-arm64@4.62.0': + '@rollup/rollup-freebsd-arm64@4.62.2': optional: true - '@rollup/rollup-freebsd-x64@4.62.0': + '@rollup/rollup-freebsd-x64@4.62.2': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.62.0': + '@rollup/rollup-linux-arm-gnueabihf@4.62.2': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.62.0': + '@rollup/rollup-linux-arm-musleabihf@4.62.2': optional: true - '@rollup/rollup-linux-arm64-gnu@4.62.0': + '@rollup/rollup-linux-arm64-gnu@4.62.2': optional: true - '@rollup/rollup-linux-arm64-musl@4.62.0': + '@rollup/rollup-linux-arm64-musl@4.62.2': optional: true - '@rollup/rollup-linux-loong64-gnu@4.62.0': + '@rollup/rollup-linux-loong64-gnu@4.62.2': optional: true - '@rollup/rollup-linux-loong64-musl@4.62.0': + '@rollup/rollup-linux-loong64-musl@4.62.2': optional: true - '@rollup/rollup-linux-ppc64-gnu@4.62.0': + '@rollup/rollup-linux-ppc64-gnu@4.62.2': optional: true - '@rollup/rollup-linux-ppc64-musl@4.62.0': + '@rollup/rollup-linux-ppc64-musl@4.62.2': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.62.0': + '@rollup/rollup-linux-riscv64-gnu@4.62.2': optional: true - '@rollup/rollup-linux-riscv64-musl@4.62.0': + '@rollup/rollup-linux-riscv64-musl@4.62.2': optional: true - '@rollup/rollup-linux-s390x-gnu@4.62.0': + '@rollup/rollup-linux-s390x-gnu@4.62.2': optional: true - '@rollup/rollup-linux-x64-gnu@4.62.0': + '@rollup/rollup-linux-x64-gnu@4.62.2': optional: true - '@rollup/rollup-linux-x64-musl@4.62.0': + '@rollup/rollup-linux-x64-musl@4.62.2': optional: true - '@rollup/rollup-openbsd-x64@4.62.0': + '@rollup/rollup-openbsd-x64@4.62.2': optional: true - '@rollup/rollup-openharmony-arm64@4.62.0': + '@rollup/rollup-openharmony-arm64@4.62.2': optional: true - '@rollup/rollup-win32-arm64-msvc@4.62.0': + '@rollup/rollup-win32-arm64-msvc@4.62.2': optional: true - '@rollup/rollup-win32-ia32-msvc@4.62.0': + '@rollup/rollup-win32-ia32-msvc@4.62.2': optional: true - '@rollup/rollup-win32-x64-gnu@4.62.0': + '@rollup/rollup-win32-x64-gnu@4.62.2': optional: true - '@rollup/rollup-win32-x64-msvc@4.62.0': + '@rollup/rollup-win32-x64-msvc@4.62.2': optional: true '@rtsao/scc@1.1.0': {} - '@sentry-internal/browser-utils@10.57.0': - dependencies: - '@sentry/core': 10.57.0 - - '@sentry-internal/feedback@10.57.0': - dependencies: - '@sentry/core': 10.57.0 - - '@sentry-internal/replay-canvas@10.57.0': - dependencies: - '@sentry-internal/replay': 10.57.0 - '@sentry/core': 10.57.0 - - '@sentry-internal/replay@10.57.0': - dependencies: - '@sentry-internal/browser-utils': 10.57.0 - '@sentry/core': 10.57.0 + '@sentry/babel-plugin-component-annotate@5.3.0': {} - '@sentry-internal/server-utils@10.57.0': + '@sentry/browser-utils@10.65.0': dependencies: - '@sentry/core': 10.57.0 + '@sentry/conventions': 0.15.1 + '@sentry/core': 10.65.0 - '@sentry/babel-plugin-component-annotate@5.3.0': {} - - '@sentry/browser@10.57.0': + '@sentry/browser@10.65.0': dependencies: - '@sentry-internal/browser-utils': 10.57.0 - '@sentry-internal/feedback': 10.57.0 - '@sentry-internal/replay': 10.57.0 - '@sentry-internal/replay-canvas': 10.57.0 - '@sentry/core': 10.57.0 + '@sentry/browser-utils': 10.65.0 + '@sentry/conventions': 0.15.1 + '@sentry/core': 10.65.0 + '@sentry/feedback': 10.65.0 + '@sentry/replay': 10.65.0 + '@sentry/replay-canvas': 10.65.0 '@sentry/bundler-plugin-core@5.3.0': dependencies: @@ -7231,6 +7318,22 @@ snapshots: - encoding - supports-color + '@sentry/bundler-plugins@10.65.0(rollup@4.62.2)(webpack@5.108.4(postcss@8.4.31))': + dependencies: + '@babel/core': 7.29.7 + '@sentry/cli': 2.58.6 + '@sentry/core': 10.65.0 + dotenv: 17.4.2 + find-up: 5.0.0 + glob: 13.0.6 + magic-string: 0.30.21 + optionalDependencies: + rollup: 4.62.2 + webpack: 5.108.4(postcss@8.4.31) + transitivePeerDependencies: + - encoding + - supports-color + '@sentry/cli-darwin@2.58.6': optional: true @@ -7275,23 +7378,31 @@ snapshots: - encoding - supports-color - '@sentry/core@10.57.0': {} + '@sentry/conventions@0.15.1': {} + + '@sentry/core@10.65.0': + dependencies: + '@sentry/conventions': 0.15.1 + + '@sentry/feedback@10.65.0': + dependencies: + '@sentry/core': 10.65.0 - '@sentry/nextjs@10.57.0(@opentelemetry/core@2.8.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.8.0(@opentelemetry/api@1.9.1))(next@16.2.9(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(react@19.2.7)(webpack@5.107.2(postcss@8.4.31))': + '@sentry/nextjs@10.65.0(@opentelemetry/core@2.9.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.9.0(@opentelemetry/api@1.9.1))(next@16.2.10(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(react@19.2.7)(webpack@5.108.4(postcss@8.4.31))': dependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/semantic-conventions': 1.41.1 - '@rollup/plugin-commonjs': 28.0.1(rollup@4.62.0) - '@sentry-internal/browser-utils': 10.57.0 + '@rollup/plugin-commonjs': 28.0.1(rollup@4.62.2) + '@sentry/browser-utils': 10.65.0 '@sentry/bundler-plugin-core': 5.3.0 - '@sentry/core': 10.57.0 - '@sentry/node': 10.57.0 - '@sentry/opentelemetry': 10.57.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.8.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.8.0(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.41.1) - '@sentry/react': 10.57.0(react@19.2.7) - '@sentry/vercel-edge': 10.57.0 - '@sentry/webpack-plugin': 5.3.0(webpack@5.107.2(postcss@8.4.31)) - next: 16.2.9(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) - rollup: 4.62.0 + '@sentry/conventions': 0.15.1 + '@sentry/core': 10.65.0 + '@sentry/node': 10.65.0(@opentelemetry/core@2.9.0(@opentelemetry/api@1.9.1)) + '@sentry/opentelemetry': 10.65.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.9.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.9.0(@opentelemetry/api@1.9.1)) + '@sentry/react': 10.65.0(react@19.2.7) + '@sentry/vercel-edge': 10.65.0 + '@sentry/webpack-plugin': 5.4.0(rollup@4.62.2)(webpack@5.108.4(postcss@8.4.31)) + next: 16.2.10(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + rollup: 4.62.2 stacktrace-parser: 0.1.11 transitivePeerDependencies: - '@opentelemetry/core' @@ -7302,73 +7413,95 @@ snapshots: - supports-color - webpack - '@sentry/node-core@10.57.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.8.0(@opentelemetry/api@1.9.1))(@opentelemetry/instrumentation@0.214.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.8.0(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.41.1)': + '@sentry/node-core@10.65.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.9.0(@opentelemetry/api@1.9.1))(@opentelemetry/instrumentation@0.220.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.9.0(@opentelemetry/api@1.9.1))': dependencies: - '@sentry/core': 10.57.0 - '@sentry/opentelemetry': 10.57.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.8.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.8.0(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.41.1) - import-in-the-middle: 3.0.2 + '@sentry/conventions': 0.15.1 + '@sentry/core': 10.65.0 + '@sentry/opentelemetry': 10.65.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.9.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.9.0(@opentelemetry/api@1.9.1)) + import-in-the-middle: 3.3.1 optionalDependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/core': 2.8.0(@opentelemetry/api@1.9.1) - '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) - '@opentelemetry/sdk-trace-base': 2.8.0(@opentelemetry/api@1.9.1) - '@opentelemetry/semantic-conventions': 1.41.1 + '@opentelemetry/core': 2.9.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation': 0.220.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-trace-base': 2.9.0(@opentelemetry/api@1.9.1) - '@sentry/node@10.57.0': + '@sentry/node@10.65.0(@opentelemetry/core@2.9.0(@opentelemetry/api@1.9.1))': dependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/core': 2.8.0(@opentelemetry/api@1.9.1) - '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) - '@opentelemetry/sdk-trace-base': 2.8.0(@opentelemetry/api@1.9.1) - '@opentelemetry/semantic-conventions': 1.41.1 - '@sentry-internal/server-utils': 10.57.0 - '@sentry/core': 10.57.0 - '@sentry/node-core': 10.57.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.8.0(@opentelemetry/api@1.9.1))(@opentelemetry/instrumentation@0.214.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.8.0(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.41.1) - '@sentry/opentelemetry': 10.57.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.8.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.8.0(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.41.1) - import-in-the-middle: 3.0.2 + '@opentelemetry/instrumentation': 0.220.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-trace-base': 2.9.0(@opentelemetry/api@1.9.1) + '@sentry/conventions': 0.15.1 + '@sentry/core': 10.65.0 + '@sentry/node-core': 10.65.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.9.0(@opentelemetry/api@1.9.1))(@opentelemetry/instrumentation@0.220.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.9.0(@opentelemetry/api@1.9.1)) + '@sentry/opentelemetry': 10.65.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.9.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.9.0(@opentelemetry/api@1.9.1)) + '@sentry/server-utils': 10.65.0 + import-in-the-middle: 3.3.1 transitivePeerDependencies: + - '@opentelemetry/core' - '@opentelemetry/exporter-trace-otlp-http' - supports-color - '@sentry/opentelemetry@10.57.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.8.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.8.0(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.41.1)': + '@sentry/opentelemetry@10.65.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.9.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.9.0(@opentelemetry/api@1.9.1))': dependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/core': 2.8.0(@opentelemetry/api@1.9.1) - '@opentelemetry/sdk-trace-base': 2.8.0(@opentelemetry/api@1.9.1) - '@opentelemetry/semantic-conventions': 1.41.1 - '@sentry/core': 10.57.0 + '@opentelemetry/core': 2.9.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-trace-base': 2.9.0(@opentelemetry/api@1.9.1) + '@sentry/conventions': 0.15.1 + '@sentry/core': 10.65.0 - '@sentry/react@10.57.0(react@19.2.7)': + '@sentry/react@10.65.0(react@19.2.7)': dependencies: - '@sentry/browser': 10.57.0 - '@sentry/core': 10.57.0 + '@sentry/browser': 10.65.0 + '@sentry/conventions': 0.15.1 + '@sentry/core': 10.65.0 react: 19.2.7 - '@sentry/vercel-edge@10.57.0': + '@sentry/replay-canvas@10.65.0': + dependencies: + '@sentry/core': 10.65.0 + '@sentry/replay': 10.65.0 + + '@sentry/replay@10.65.0': + dependencies: + '@sentry/browser-utils': 10.65.0 + '@sentry/core': 10.65.0 + + '@sentry/server-utils@10.65.0': + dependencies: + '@apm-js-collab/code-transformer': 0.15.0 + '@apm-js-collab/code-transformer-bundler-plugins': 0.5.0 + '@apm-js-collab/tracing-hooks': 0.10.1 + '@sentry/conventions': 0.15.1 + '@sentry/core': 10.65.0 + magic-string: 0.30.21 + transitivePeerDependencies: + - supports-color + + '@sentry/vercel-edge@10.65.0': dependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/resources': 2.8.0(@opentelemetry/api@1.9.1) - '@sentry/core': 10.57.0 + '@sentry/core': 10.65.0 - '@sentry/webpack-plugin@5.3.0(webpack@5.107.2(postcss@8.4.31))': + '@sentry/webpack-plugin@5.4.0(rollup@4.62.2)(webpack@5.108.4(postcss@8.4.31))': dependencies: - '@sentry/bundler-plugin-core': 5.3.0 - webpack: 5.107.2(postcss@8.4.31) + '@sentry/bundler-plugins': 10.65.0(rollup@4.62.2)(webpack@5.108.4(postcss@8.4.31)) + webpack: 5.108.4(postcss@8.4.31) transitivePeerDependencies: - encoding + - rollup - supports-color '@softonus/prettier-plugin-duplicate-remover@1.1.2': {} - '@stylistic/eslint-plugin@5.10.0(eslint@10.5.0(jiti@2.7.0))': + '@stylistic/eslint-plugin@5.10.0(eslint@10.7.0(jiti@2.7.0))': dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.5.0(jiti@2.7.0)) - '@typescript-eslint/types': 8.61.0 - eslint: 10.5.0(jiti@2.7.0) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.7.0(jiti@2.7.0)) + '@typescript-eslint/types': 8.63.0 + eslint: 10.7.0(jiti@2.7.0) eslint-visitor-keys: 4.2.1 espree: 10.4.0 estraverse: 5.3.0 - picomatch: 4.0.4 + picomatch: 4.0.5 '@surma/rollup-plugin-off-main-thread@2.2.3': dependencies: @@ -7394,28 +7527,28 @@ snapshots: '@tokenizer/token@0.3.0': {} - '@tybys/wasm-util@0.10.2': + '@tybys/wasm-util@0.10.3': dependencies: tslib: 2.8.1 optional: true '@types/accepts@1.3.7': dependencies: - '@types/node': 24.13.2 + '@types/node': 24.13.3 '@types/body-parser@1.19.6': dependencies: '@types/connect': 3.4.38 - '@types/node': 24.13.2 + '@types/node': 24.13.3 '@types/co-body@6.1.3': dependencies: - '@types/node': 24.13.2 + '@types/node': 24.13.3 '@types/qs': 6.15.1 '@types/connect@3.4.38': dependencies: - '@types/node': 24.13.2 + '@types/node': 24.13.3 '@types/content-disposition@0.5.9': {} @@ -7424,7 +7557,7 @@ snapshots: '@types/connect': 3.4.38 '@types/express': 5.0.6 '@types/keygrip': 1.0.6 - '@types/node': 24.13.2 + '@types/node': 24.13.3 '@types/debug@4.1.13': dependencies: @@ -7442,9 +7575,9 @@ snapshots: '@types/estree@1.0.9': {} - '@types/express-serve-static-core@5.1.1': + '@types/express-serve-static-core@5.1.2': dependencies: - '@types/node': 24.13.2 + '@types/node': 24.13.3 '@types/qs': 6.15.1 '@types/range-parser': 1.2.7 '@types/send': 1.2.1 @@ -7452,19 +7585,19 @@ snapshots: '@types/express@5.0.6': dependencies: '@types/body-parser': 1.19.6 - '@types/express-serve-static-core': 5.1.1 + '@types/express-serve-static-core': 5.1.2 '@types/serve-static': 2.2.0 '@types/formidable@3.5.1': dependencies: - '@types/node': 24.13.2 + '@types/node': 24.13.3 '@types/glob@7.2.0': dependencies: '@types/minimatch': 6.0.0 - '@types/node': 24.13.2 + '@types/node': 24.13.3 - '@types/hast@3.0.4': + '@types/hast@3.0.5': dependencies: '@types/unist': 3.0.3 @@ -7479,7 +7612,7 @@ snapshots: '@types/jsonwebtoken@9.0.10': dependencies: '@types/ms': 2.1.0 - '@types/node': 24.13.2 + '@types/node': 24.13.3 '@types/keygrip@1.0.6': {} @@ -7496,7 +7629,7 @@ snapshots: '@types/http-errors': 2.0.5 '@types/keygrip': 1.0.6 '@types/koa-compose': 3.2.9 - '@types/node': 24.13.2 + '@types/node': 24.13.3 '@types/less@3.0.8': {} @@ -7516,10 +7649,10 @@ snapshots: '@types/next-pwa@5.6.9(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)': dependencies: - '@types/node': 24.13.2 + '@types/node': 24.13.3 '@types/react': 19.2.17 '@types/react-dom': 19.2.3(@types/react@19.2.17) - next: 16.2.9(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + next: 16.2.10(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) workbox-build: 6.6.0 transitivePeerDependencies: - '@babel/core' @@ -7533,11 +7666,7 @@ snapshots: - sass - supports-color - '@types/node@22.19.21': - dependencies: - undici-types: 6.21.0 - - '@types/node@24.13.2': + '@types/node@24.13.3': dependencies: undici-types: 7.18.2 @@ -7563,16 +7692,16 @@ snapshots: '@types/resolve@1.17.1': dependencies: - '@types/node': 24.13.2 + '@types/node': 24.13.3 '@types/send@1.2.1': dependencies: - '@types/node': 24.13.2 + '@types/node': 24.13.3 '@types/serve-static@2.2.0': dependencies: '@types/http-errors': 2.0.5 - '@types/node': 24.13.2 + '@types/node': 24.13.3 '@types/trusted-types@2.0.7': {} @@ -7584,98 +7713,98 @@ snapshots: '@types/warning@3.0.4': {} - '@typescript-eslint/eslint-plugin@8.61.0(@typescript-eslint/parser@8.61.0(eslint@10.5.0(jiti@2.7.0))(typescript@5.9.3))(eslint@10.5.0(jiti@2.7.0))(typescript@5.9.3)': + '@typescript-eslint/eslint-plugin@8.63.0(@typescript-eslint/parser@8.63.0(eslint@10.7.0(jiti@2.7.0))(typescript@5.9.3))(eslint@10.7.0(jiti@2.7.0))(typescript@5.9.3)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.61.0(eslint@10.5.0(jiti@2.7.0))(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.61.0 - '@typescript-eslint/type-utils': 8.61.0(eslint@10.5.0(jiti@2.7.0))(typescript@5.9.3) - '@typescript-eslint/utils': 8.61.0(eslint@10.5.0(jiti@2.7.0))(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.61.0 - eslint: 10.5.0(jiti@2.7.0) - ignore: 7.0.5 + '@typescript-eslint/parser': 8.63.0(eslint@10.7.0(jiti@2.7.0))(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.63.0 + '@typescript-eslint/type-utils': 8.63.0(eslint@10.7.0(jiti@2.7.0))(typescript@5.9.3) + '@typescript-eslint/utils': 8.63.0(eslint@10.7.0(jiti@2.7.0))(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.63.0 + eslint: 10.7.0(jiti@2.7.0) + ignore: 7.0.6 natural-compare: 1.4.0 ts-api-utils: 2.5.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.61.0(eslint@10.5.0(jiti@2.7.0))(typescript@5.9.3)': + '@typescript-eslint/parser@8.63.0(eslint@10.7.0(jiti@2.7.0))(typescript@5.9.3)': dependencies: - '@typescript-eslint/scope-manager': 8.61.0 - '@typescript-eslint/types': 8.61.0 - '@typescript-eslint/typescript-estree': 8.61.0(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.61.0 + '@typescript-eslint/scope-manager': 8.63.0 + '@typescript-eslint/types': 8.63.0 + '@typescript-eslint/typescript-estree': 8.63.0(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.63.0 debug: 4.4.3 - eslint: 10.5.0(jiti@2.7.0) + eslint: 10.7.0(jiti@2.7.0) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.61.0(typescript@5.9.3)': + '@typescript-eslint/project-service@8.63.0(typescript@5.9.3)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.61.0(typescript@5.9.3) - '@typescript-eslint/types': 8.61.0 + '@typescript-eslint/tsconfig-utils': 8.63.0(typescript@5.9.3) + '@typescript-eslint/types': 8.63.0 debug: 4.4.3 typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.61.0': + '@typescript-eslint/scope-manager@8.63.0': dependencies: - '@typescript-eslint/types': 8.61.0 - '@typescript-eslint/visitor-keys': 8.61.0 + '@typescript-eslint/types': 8.63.0 + '@typescript-eslint/visitor-keys': 8.63.0 - '@typescript-eslint/tsconfig-utils@8.61.0(typescript@5.9.3)': + '@typescript-eslint/tsconfig-utils@8.63.0(typescript@5.9.3)': dependencies: typescript: 5.9.3 - '@typescript-eslint/type-utils@8.61.0(eslint@10.5.0(jiti@2.7.0))(typescript@5.9.3)': + '@typescript-eslint/type-utils@8.63.0(eslint@10.7.0(jiti@2.7.0))(typescript@5.9.3)': dependencies: - '@typescript-eslint/types': 8.61.0 - '@typescript-eslint/typescript-estree': 8.61.0(typescript@5.9.3) - '@typescript-eslint/utils': 8.61.0(eslint@10.5.0(jiti@2.7.0))(typescript@5.9.3) + '@typescript-eslint/types': 8.63.0 + '@typescript-eslint/typescript-estree': 8.63.0(typescript@5.9.3) + '@typescript-eslint/utils': 8.63.0(eslint@10.7.0(jiti@2.7.0))(typescript@5.9.3) debug: 4.4.3 - eslint: 10.5.0(jiti@2.7.0) + eslint: 10.7.0(jiti@2.7.0) ts-api-utils: 2.5.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.61.0': {} + '@typescript-eslint/types@8.63.0': {} - '@typescript-eslint/typescript-estree@8.61.0(typescript@5.9.3)': + '@typescript-eslint/typescript-estree@8.63.0(typescript@5.9.3)': dependencies: - '@typescript-eslint/project-service': 8.61.0(typescript@5.9.3) - '@typescript-eslint/tsconfig-utils': 8.61.0(typescript@5.9.3) - '@typescript-eslint/types': 8.61.0 - '@typescript-eslint/visitor-keys': 8.61.0 + '@typescript-eslint/project-service': 8.63.0(typescript@5.9.3) + '@typescript-eslint/tsconfig-utils': 8.63.0(typescript@5.9.3) + '@typescript-eslint/types': 8.63.0 + '@typescript-eslint/visitor-keys': 8.63.0 debug: 4.4.3 minimatch: 10.2.5 - semver: 7.8.4 + semver: 7.8.5 tinyglobby: 0.2.17 ts-api-utils: 2.5.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.61.0(eslint@10.5.0(jiti@2.7.0))(typescript@5.9.3)': + '@typescript-eslint/utils@8.63.0(eslint@10.7.0(jiti@2.7.0))(typescript@5.9.3)': dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.5.0(jiti@2.7.0)) - '@typescript-eslint/scope-manager': 8.61.0 - '@typescript-eslint/types': 8.61.0 - '@typescript-eslint/typescript-estree': 8.61.0(typescript@5.9.3) - eslint: 10.5.0(jiti@2.7.0) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.7.0(jiti@2.7.0)) + '@typescript-eslint/scope-manager': 8.63.0 + '@typescript-eslint/types': 8.63.0 + '@typescript-eslint/typescript-estree': 8.63.0(typescript@5.9.3) + eslint: 10.7.0(jiti@2.7.0) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.61.0': + '@typescript-eslint/visitor-keys@8.63.0': dependencies: - '@typescript-eslint/types': 8.61.0 + '@typescript-eslint/types': 8.63.0 eslint-visitor-keys: 5.0.1 - '@ungap/structured-clone@1.3.1': {} + '@ungap/structured-clone@1.3.3': {} '@unrs/resolver-binding-android-arm-eabi@1.12.2': optional: true @@ -7735,7 +7864,7 @@ snapshots: dependencies: '@emnapi/core': 1.10.0 '@emnapi/runtime': 1.10.0 - '@napi-rs/wasm-runtime': 1.1.5(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) + '@napi-rs/wasm-runtime': 1.1.6(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) optional: true '@unrs/resolver-binding-win32-arm64-msvc@1.12.2': @@ -7747,11 +7876,11 @@ snapshots: '@unrs/resolver-binding-win32-x64-msvc@1.12.2': optional: true - '@vue/reactivity@3.5.38': + '@vue/reactivity@3.5.39': dependencies: - '@vue/shared': 3.5.38 + '@vue/shared': 3.5.39 - '@vue/shared@3.5.38': {} + '@vue/shared@3.5.39': {} '@webassemblyjs/ast@1.14.1': dependencies: @@ -7838,10 +7967,6 @@ snapshots: mime-types: 2.1.35 negotiator: 0.6.3 - acorn-import-attributes@1.9.5(acorn@8.17.0): - dependencies: - acorn: 8.17.0 - acorn-import-phases@1.0.4(acorn@8.17.0): dependencies: acorn: 8.17.0 @@ -7886,7 +8011,7 @@ snapshots: ajv@8.20.0: dependencies: fast-deep-equal: 3.1.3 - fast-uri: 3.1.2 + fast-uri: 3.1.3 json-schema-traverse: 1.0.0 require-from-string: 2.0.2 @@ -8003,14 +8128,14 @@ snapshots: axobject-query@4.1.0: {} - babel-loader@8.4.1(@babel/core@7.29.7)(webpack@5.107.2(postcss@8.4.31)): + babel-loader@8.4.1(@babel/core@7.29.7)(webpack@5.108.4(postcss@8.4.31)): dependencies: '@babel/core': 7.29.7 find-cache-dir: 3.3.2 loader-utils: 2.0.4 make-dir: 3.1.0 schema-utils: 2.7.1 - webpack: 5.107.2(postcss@8.4.31) + webpack: 5.108.4(postcss@8.4.31) babel-plugin-polyfill-corejs2@0.4.17(@babel/core@7.29.7): dependencies: @@ -8044,20 +8169,20 @@ snapshots: base64-arraybuffer@1.0.2: {} - baseline-browser-mapping@2.10.37: {} + baseline-browser-mapping@2.10.43: {} big.js@5.2.2: {} - brace-expansion@1.1.15: + brace-expansion@1.1.16: dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 - brace-expansion@2.1.1: + brace-expansion@2.1.2: dependencies: balanced-match: 1.0.2 - brace-expansion@5.0.6: + brace-expansion@5.0.7: dependencies: balanced-match: 4.0.4 @@ -8067,13 +8192,13 @@ snapshots: browser-fs-access@0.37.0: {} - browserslist@4.28.2: + browserslist@4.28.6: dependencies: - baseline-browser-mapping: 2.10.37 - caniuse-lite: 1.0.30001799 - electron-to-chromium: 1.5.372 - node-releases: 2.0.47 - update-browserslist-db: 1.2.3(browserslist@4.28.2) + baseline-browser-mapping: 2.10.43 + caniuse-lite: 1.0.30001805 + electron-to-chromium: 1.5.389 + node-releases: 2.0.51 + update-browserslist-db: 1.2.3(browserslist@4.28.6) buffer-equal-constant-time@1.0.1: {} @@ -8100,7 +8225,7 @@ snapshots: call-bind-apply-helpers: 1.0.2 get-intrinsic: 1.3.0 - caniuse-lite@1.0.30001799: {} + caniuse-lite@1.0.30001805: {} ccount@2.0.1: {} @@ -8120,10 +8245,10 @@ snapshots: clean-stack@2.2.0: {} - clean-webpack-plugin@4.0.0(webpack@5.107.2(postcss@8.4.31)): + clean-webpack-plugin@4.0.0(webpack@5.108.4(postcss@8.4.31)): dependencies: del: 4.1.1 - webpack: 5.107.2(postcss@8.4.31) + webpack: 5.108.4(postcss@8.4.31) cli-cursor@5.0.0: dependencies: @@ -8132,7 +8257,7 @@ snapshots: cli-truncate@5.2.0: dependencies: slice-ansi: 8.0.0 - string-width: 8.2.1 + string-width: 8.2.2 client-only@0.0.1: {} @@ -8148,7 +8273,7 @@ snapshots: dependencies: '@hapi/bourne': 3.0.0 inflation: 2.1.0 - qs: 6.15.2 + qs: 6.15.3 raw-body: 2.5.3 type-is: 1.6.18 @@ -8192,18 +8317,18 @@ snapshots: dependencies: is-what: 4.1.16 - copy-webpack-plugin@14.0.0(webpack@5.107.2(postcss@8.4.31)): + copy-webpack-plugin@14.0.0(webpack@5.108.4(postcss@8.4.31)): dependencies: glob-parent: 6.0.2 normalize-path: 3.0.0 schema-utils: 4.3.3 - serialize-javascript: 7.0.5 + serialize-javascript: 7.0.7 tinyglobby: 0.2.17 - webpack: 5.107.2(postcss@8.4.31) + webpack: 5.108.4(postcss@8.4.31) core-js-compat@3.49.0: dependencies: - browserslist: 4.28.2 + browserslist: 4.28.6 core-js@3.49.0: {} @@ -8219,7 +8344,7 @@ snapshots: dependencies: '@cspell/cspell-types': 10.0.1 comment-json: 5.0.0 - smol-toml: 1.6.1 + smol-toml: 1.7.0 yaml: 2.9.0 cspell-dictionary@10.0.1: @@ -8228,12 +8353,12 @@ snapshots: '@cspell/cspell-pipe': 10.0.1 '@cspell/cspell-types': 10.0.1 cspell-trie-lib: 10.0.1(@cspell/cspell-types@10.0.1) - fast-equals: 6.0.0 + fast-equals: 6.0.2 cspell-glob@10.0.1: dependencies: '@cspell/url': 10.0.1 - picomatch: 4.0.4 + picomatch: 4.0.5 cspell-grammar@10.0.1: dependencies: @@ -8384,6 +8509,8 @@ snapshots: dotenv@16.6.1: {} + dotenv@17.4.2: {} + dunder-proto@1.0.1: dependencies: call-bind-apply-helpers: 1.0.2 @@ -8405,7 +8532,7 @@ snapshots: regenerator-runtime: 0.14.1 turndown: 7.2.4 turndown-plugin-gfm: 1.0.2 - web-utility: 4.6.6(typescript@5.9.3) + web-utility: 4.7.2(typescript@5.9.3) transitivePeerDependencies: - element-internals-polyfill - typescript @@ -8416,7 +8543,7 @@ snapshots: dependencies: jake: 10.9.4 - electron-to-chromium@1.5.372: {} + electron-to-chromium@1.5.389: {} emoji-regex@10.6.0: {} @@ -8426,7 +8553,7 @@ snapshots: encodeurl@2.0.0: {} - enhanced-resolve@5.24.0: + enhanced-resolve@5.24.2: dependencies: graceful-fs: 4.2.11 tapable: 2.3.3 @@ -8442,6 +8569,13 @@ snapshots: prr: 1.0.1 optional: true + es-abstract-get@1.0.0: + dependencies: + es-errors: 1.3.0 + es-object-atoms: 1.1.2 + is-callable: 1.2.7 + object-inspect: 1.13.4 + es-abstract@1.24.2: dependencies: array-buffer-byte-length: 1.0.2 @@ -8456,7 +8590,7 @@ snapshots: es-errors: 1.3.0 es-object-atoms: 1.1.2 es-set-tostringtag: 2.1.0 - es-to-primitive: 1.3.0 + es-to-primitive: 1.3.4 function.prototype.name: 1.2.0 get-intrinsic: 1.3.0 get-proto: 1.0.1 @@ -8503,7 +8637,7 @@ snapshots: es-errors@1.3.0: {} - es-iterator-helpers@1.3.3: + es-iterator-helpers@1.4.0: dependencies: call-bind: 1.0.9 call-bound: 1.0.4 @@ -8522,7 +8656,7 @@ snapshots: iterator.prototype: 1.1.5 math-intrinsics: 1.1.0 - es-module-lexer@2.1.0: {} + es-module-lexer@2.3.0: {} es-object-atoms@1.1.2: dependencies: @@ -8539,8 +8673,11 @@ snapshots: dependencies: hasown: 2.0.4 - es-to-primitive@1.3.0: + es-to-primitive@1.3.4: dependencies: + es-abstract-get: 1.0.0 + es-define-property: 1.0.1 + es-errors: 1.3.0 is-callable: 1.2.7 is-date-object: 1.1.0 is-symbol: 1.1.1 @@ -8567,18 +8704,18 @@ snapshots: escape-string-regexp@5.0.0: {} - eslint-config-next@16.2.9(eslint@10.5.0(jiti@2.7.0))(typescript@5.9.3): + eslint-config-next@16.2.10(eslint@10.7.0(jiti@2.7.0))(typescript@5.9.3): dependencies: - '@next/eslint-plugin-next': 16.2.9 - eslint: 10.5.0(jiti@2.7.0) + '@next/eslint-plugin-next': 16.2.10 + eslint: 10.7.0(jiti@2.7.0) eslint-import-resolver-node: 0.3.10 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@10.5.0(jiti@2.7.0)) - eslint-plugin-import: 2.32.0(eslint-import-resolver-typescript@3.10.1)(eslint@10.5.0(jiti@2.7.0)) - eslint-plugin-jsx-a11y: 6.10.2(eslint@10.5.0(jiti@2.7.0)) - eslint-plugin-react: 7.37.5(eslint@10.5.0(jiti@2.7.0)) - eslint-plugin-react-hooks: 7.1.1(eslint@10.5.0(jiti@2.7.0)) + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@10.7.0(jiti@2.7.0)) + eslint-plugin-import: 2.32.0(eslint-import-resolver-typescript@3.10.1)(eslint@10.7.0(jiti@2.7.0)) + eslint-plugin-jsx-a11y: 6.10.2(eslint@10.7.0(jiti@2.7.0)) + eslint-plugin-react: 7.37.5(eslint@10.7.0(jiti@2.7.0)) + eslint-plugin-react-hooks: 7.1.1(eslint@10.7.0(jiti@2.7.0)) globals: 16.4.0 - typescript-eslint: 8.61.0(eslint@10.5.0(jiti@2.7.0))(typescript@5.9.3) + typescript-eslint: 8.63.0(eslint@10.7.0(jiti@2.7.0))(typescript@5.9.3) optionalDependencies: typescript: 5.9.3 transitivePeerDependencies: @@ -8587,9 +8724,9 @@ snapshots: - eslint-plugin-import-x - supports-color - eslint-config-prettier@10.1.8(eslint@10.5.0(jiti@2.7.0)): + eslint-config-prettier@10.1.8(eslint@10.7.0(jiti@2.7.0)): dependencies: - eslint: 10.5.0(jiti@2.7.0) + eslint: 10.7.0(jiti@2.7.0) eslint-import-resolver-node@0.3.10: dependencies: @@ -8599,32 +8736,32 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@10.5.0(jiti@2.7.0)): + eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@10.7.0(jiti@2.7.0)): dependencies: '@nolyfill/is-core-module': 1.0.39 debug: 4.4.3 - eslint: 10.5.0(jiti@2.7.0) + eslint: 10.7.0(jiti@2.7.0) get-tsconfig: 4.14.0 is-bun-module: 2.0.0 stable-hash: 0.0.5 tinyglobby: 0.2.17 unrs-resolver: 1.12.2 optionalDependencies: - eslint-plugin-import: 2.32.0(eslint-import-resolver-typescript@3.10.1)(eslint@10.5.0(jiti@2.7.0)) + eslint-plugin-import: 2.32.0(eslint-import-resolver-typescript@3.10.1)(eslint@10.7.0(jiti@2.7.0)) transitivePeerDependencies: - supports-color - eslint-module-utils@2.13.0(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.10.1)(eslint@10.5.0(jiti@2.7.0)): + eslint-module-utils@2.14.0(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.10.1)(eslint@10.7.0(jiti@2.7.0)): dependencies: debug: 3.2.7 optionalDependencies: - eslint: 10.5.0(jiti@2.7.0) + eslint: 10.7.0(jiti@2.7.0) eslint-import-resolver-node: 0.3.10 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@10.5.0(jiti@2.7.0)) + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@10.7.0(jiti@2.7.0)) transitivePeerDependencies: - supports-color - eslint-plugin-import@2.32.0(eslint-import-resolver-typescript@3.10.1)(eslint@10.5.0(jiti@2.7.0)): + eslint-plugin-import@2.32.0(eslint-import-resolver-typescript@3.10.1)(eslint@10.7.0(jiti@2.7.0)): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.9 @@ -8633,9 +8770,9 @@ snapshots: array.prototype.flatmap: 1.3.3 debug: 3.2.7 doctrine: 2.1.0 - eslint: 10.5.0(jiti@2.7.0) + eslint: 10.7.0(jiti@2.7.0) eslint-import-resolver-node: 0.3.10 - eslint-module-utils: 2.13.0(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.10.1)(eslint@10.5.0(jiti@2.7.0)) + eslint-module-utils: 2.14.0(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.10.1)(eslint@10.7.0(jiti@2.7.0)) hasown: 2.0.4 is-core-module: 2.16.2 is-glob: 4.0.3 @@ -8651,7 +8788,7 @@ snapshots: - eslint-import-resolver-webpack - supports-color - eslint-plugin-jsx-a11y@6.10.2(eslint@10.5.0(jiti@2.7.0)): + eslint-plugin-jsx-a11y@6.10.2(eslint@10.7.0(jiti@2.7.0)): dependencies: aria-query: 5.3.2 array-includes: 3.1.9 @@ -8661,7 +8798,7 @@ snapshots: axobject-query: 4.1.0 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 - eslint: 10.5.0(jiti@2.7.0) + eslint: 10.7.0(jiti@2.7.0) hasown: 2.0.4 jsx-ast-utils: 3.3.5 language-tags: 1.0.9 @@ -8670,26 +8807,26 @@ snapshots: safe-regex-test: 1.1.0 string.prototype.includes: 2.0.1 - eslint-plugin-react-hooks@7.1.1(eslint@10.5.0(jiti@2.7.0)): + eslint-plugin-react-hooks@7.1.1(eslint@10.7.0(jiti@2.7.0)): dependencies: '@babel/core': 7.29.7 '@babel/parser': 7.29.7 - eslint: 10.5.0(jiti@2.7.0) + eslint: 10.7.0(jiti@2.7.0) hermes-parser: 0.25.1 zod: 4.4.3 zod-validation-error: 4.0.2(zod@4.4.3) transitivePeerDependencies: - supports-color - eslint-plugin-react@7.37.5(eslint@10.5.0(jiti@2.7.0)): + eslint-plugin-react@7.37.5(eslint@10.7.0(jiti@2.7.0)): dependencies: array-includes: 3.1.9 array.prototype.findlast: 1.2.5 array.prototype.flatmap: 1.3.3 array.prototype.tosorted: 1.1.4 doctrine: 2.1.0 - es-iterator-helpers: 1.3.3 - eslint: 10.5.0(jiti@2.7.0) + es-iterator-helpers: 1.4.0 + eslint: 10.7.0(jiti@2.7.0) estraverse: 5.3.0 hasown: 2.0.4 jsx-ast-utils: 3.3.5 @@ -8703,9 +8840,9 @@ snapshots: string.prototype.matchall: 4.0.12 string.prototype.repeat: 1.0.0 - eslint-plugin-simple-import-sort@13.0.0(eslint@10.5.0(jiti@2.7.0)): + eslint-plugin-simple-import-sort@13.0.0(eslint@10.7.0(jiti@2.7.0)): dependencies: - eslint: 10.5.0(jiti@2.7.0) + eslint: 10.7.0(jiti@2.7.0) eslint-scope@5.1.1: dependencies: @@ -8725,9 +8862,9 @@ snapshots: eslint-visitor-keys@5.0.1: {} - eslint@10.5.0(jiti@2.7.0): + eslint@10.7.0(jiti@2.7.0): dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.5.0(jiti@2.7.0)) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.7.0(jiti@2.7.0)) '@eslint-community/regexpp': 4.12.2 '@eslint/config-array': 0.23.5 '@eslint/config-helpers': 0.6.0 @@ -8841,7 +8978,7 @@ snapshots: fast-diff@1.3.0: {} - fast-equals@6.0.0: {} + fast-equals@6.0.2: {} fast-glob@3.3.1: dependencies: @@ -8863,7 +9000,7 @@ snapshots: fast-levenshtein@2.0.6: {} - fast-uri@3.1.2: {} + fast-uri@3.1.3: {} fastq@1.20.1: dependencies: @@ -8873,9 +9010,9 @@ snapshots: dependencies: format: 0.2.2 - fdir@6.5.0(picomatch@4.0.4): + fdir@6.5.0(picomatch@4.0.5): optionalDependencies: - picomatch: 4.0.4 + picomatch: 4.0.5 file-entry-cache@8.0.0: dependencies: @@ -9009,8 +9146,6 @@ snapshots: dependencies: is-glob: 4.0.3 - glob-to-regexp@0.4.1: {} - glob@13.0.6: dependencies: minimatch: 10.2.5 @@ -9032,7 +9167,7 @@ snapshots: globals@16.4.0: {} - globals@17.6.0: {} + globals@17.7.0: {} globalthis@1.0.4: dependencies: @@ -9086,7 +9221,7 @@ snapshots: dependencies: '@types/estree': 1.0.9 '@types/estree-jsx': 1.0.5 - '@types/hast': 3.0.4 + '@types/hast': 3.0.5 comma-separated-tokens: 2.0.3 devlop: 1.1.0 estree-util-attach-comments: 3.0.0 @@ -9106,7 +9241,7 @@ snapshots: hast-util-to-jsx-runtime@2.3.6: dependencies: '@types/estree': 1.0.9 - '@types/hast': 3.0.4 + '@types/hast': 3.0.5 '@types/unist': 3.0.3 comma-separated-tokens: 2.0.3 devlop: 1.1.0 @@ -9125,7 +9260,7 @@ snapshots: hast-util-whitespace@3.0.0: dependencies: - '@types/hast': 3.0.4 + '@types/hast': 3.0.5 hermes-estree@0.25.1: {} @@ -9179,7 +9314,7 @@ snapshots: safer-buffer: 2.1.2 optional: true - idb-keyval@6.2.5: {} + idb-keyval@6.3.0: {} idb@7.1.1: {} @@ -9204,7 +9339,7 @@ snapshots: react-editor-js: 2.1.0(@editorjs/editorjs@2.31.6)(@editorjs/paragraph@2.11.7)(react@19.2.7) react-element-to-jsx-string: 17.0.1(react-dom@19.2.7(react@19.2.7))(react-is@16.13.1)(react@19.2.7) react-live: 4.1.8(react-dom@19.2.7(react@19.2.7))(react@19.2.7) - web-utility: 4.6.6(typescript@5.9.3) + web-utility: 4.7.2(typescript@5.9.3) transitivePeerDependencies: - '@types/react' - element-internals-polyfill @@ -9216,18 +9351,17 @@ snapshots: ignore@5.3.2: {} - ignore@7.0.5: {} + ignore@7.0.6: {} image-size@0.5.5: optional: true import-fresh@4.0.0: {} - import-in-the-middle@3.0.2: + import-in-the-middle@3.3.1: dependencies: - acorn: 8.17.0 - acorn-import-attributes: 1.9.5(acorn@8.17.0) cjs-module-lexer: 2.2.0 + es-module-lexer: 2.3.0 module-details-from-path: 1.0.4 import-meta-resolve@4.2.0: {} @@ -9291,7 +9425,7 @@ snapshots: is-bun-module@2.0.0: dependencies: - semver: 7.8.4 + semver: 7.8.5 is-callable@1.2.7: {} @@ -9451,13 +9585,13 @@ snapshots: jest-worker@26.6.2: dependencies: - '@types/node': 24.13.2 + '@types/node': 24.13.3 merge-stream: 2.0.0 supports-color: 7.2.0 jest-worker@27.5.1: dependencies: - '@types/node': 24.13.2 + '@types/node': 24.13.3 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -9500,7 +9634,7 @@ snapshots: lodash.isstring: 4.0.1 lodash.once: 4.1.1 ms: 2.1.3 - semver: 7.8.4 + semver: 7.8.5 jsx-ast-utils@3.3.5: dependencies: @@ -9567,7 +9701,7 @@ snapshots: core-js: 3.49.0 regenerator-runtime: 0.14.1 web-streams-polyfill: 4.3.0 - web-utility: 4.6.6(typescript@5.9.3) + web-utility: 4.7.2(typescript@5.9.3) transitivePeerDependencies: - element-internals-polyfill - typescript @@ -9578,14 +9712,14 @@ snapshots: dependencies: language-subtag-registry: 0.3.23 - less-loader@13.0.0(less@4.6.4)(webpack@5.107.2(postcss@8.4.31)): + less-loader@13.0.0(less@4.6.7)(webpack@5.108.4(postcss@8.4.31)): dependencies: '@types/less': 3.0.8 - less: 4.6.4 + less: 4.6.7 optionalDependencies: - webpack: 5.107.2(postcss@8.4.31) + webpack: 5.108.4(postcss@8.4.31) - less@4.6.4: + less@4.6.7: dependencies: copy-anything: 3.0.5 parse-node-version: 1.0.1 @@ -9593,7 +9727,7 @@ snapshots: errno: 0.1.8 graceful-fs: 4.2.11 image-size: 0.5.5 - make-dir: 2.1.0 + make-dir: 5.1.0 mime: 1.6.0 needle: 3.5.0 source-map: 0.6.1 @@ -9607,16 +9741,16 @@ snapshots: lines-and-columns@1.2.4: {} - lint-staged@17.0.7: + lint-staged@17.0.8: dependencies: - listr2: 10.2.1 - picomatch: 4.0.4 + listr2: 10.2.2 + picomatch: 4.0.5 string-argv: 0.3.2 tinyexec: 1.2.4 optionalDependencies: yaml: 2.9.0 - listr2@10.2.1: + listr2@10.2.2: dependencies: cli-truncate: 5.2.0 eventemitter3: 5.0.4 @@ -9682,11 +9816,11 @@ snapshots: lowlight@3.3.0: dependencies: - '@types/hast': 3.0.4 + '@types/hast': 3.0.5 devlop: 1.1.0 highlight.js: 11.11.1 - lru-cache@11.5.1: {} + lru-cache@11.5.2: {} lru-cache@5.1.1: dependencies: @@ -9700,23 +9834,20 @@ snapshots: dependencies: '@jridgewell/sourcemap-codec': 1.5.5 - make-dir@2.1.0: - dependencies: - pify: 4.0.1 - semver: 5.7.2 - optional: true - make-dir@3.1.0: dependencies: semver: 6.3.1 + make-dir@5.1.0: + optional: true + markdown-extensions@2.0.0: {} markdown-table@3.0.4: {} marked@15.0.12: {} - marked@18.0.5: {} + marked@18.0.6: {} math-intrinsics@1.1.0: {} @@ -9815,7 +9946,7 @@ snapshots: mdast-util-mdx-expression@2.0.1: dependencies: '@types/estree-jsx': 1.0.5 - '@types/hast': 3.0.4 + '@types/hast': 3.0.5 '@types/mdast': 4.0.4 devlop: 1.1.0 mdast-util-from-markdown: 2.0.3 @@ -9826,7 +9957,7 @@ snapshots: mdast-util-mdx-jsx@3.2.0: dependencies: '@types/estree-jsx': 1.0.5 - '@types/hast': 3.0.4 + '@types/hast': 3.0.5 '@types/mdast': 4.0.4 '@types/unist': 3.0.3 ccount: 2.0.1 @@ -9853,7 +9984,7 @@ snapshots: mdast-util-mdxjs-esm@2.0.1: dependencies: '@types/estree-jsx': 1.0.5 - '@types/hast': 3.0.4 + '@types/hast': 3.0.5 '@types/mdast': 4.0.4 devlop: 1.1.0 mdast-util-from-markdown: 2.0.3 @@ -9868,9 +9999,9 @@ snapshots: mdast-util-to-hast@13.2.1: dependencies: - '@types/hast': 3.0.4 + '@types/hast': 3.0.5 '@types/mdast': 4.0.4 - '@ungap/structured-clone': 1.3.1 + '@ungap/structured-clone': 1.3.3 devlop: 1.1.0 micromark-util-sanitize-uri: 2.0.1 trim-lines: 3.0.1 @@ -9902,6 +10033,8 @@ snapshots: merge2@1.4.1: {} + meriyah@6.1.4: {} + micromark-core-commonmark@2.0.3: dependencies: decode-named-character-reference: 1.3.0 @@ -10199,18 +10332,28 @@ snapshots: minimatch@10.2.5: dependencies: - brace-expansion: 5.0.6 + brace-expansion: 5.0.7 minimatch@3.1.5: dependencies: - brace-expansion: 1.1.15 + brace-expansion: 1.1.16 minimatch@5.1.9: dependencies: - brace-expansion: 2.1.1 + brace-expansion: 2.1.2 minimist@1.2.8: {} + minimizer-webpack-plugin@5.6.1(postcss@8.4.31)(webpack@5.108.4(postcss@8.4.31)): + dependencies: + '@jridgewell/trace-mapping': 0.3.31 + jest-worker: 27.5.1 + schema-utils: 4.3.3 + terser: 5.49.0 + webpack: 5.108.4(postcss@8.4.31) + optionalDependencies: + postcss: 8.4.31 + minipass@7.1.3: {} mobx-github@0.6.2(core-js@3.49.0)(typescript@5.9.3): @@ -10222,25 +10365,25 @@ snapshots: lodash: 4.18.1 mobx: 6.16.1 mobx-restful: 2.1.4(core-js@3.49.0)(mobx@6.16.1)(typescript@5.9.3) - web-utility: 4.6.6(typescript@5.9.3) + web-utility: 4.7.2(typescript@5.9.3) transitivePeerDependencies: - core-js - element-internals-polyfill - jsdom - typescript - mobx-i18n@0.7.2(mobx@6.16.1)(typescript@5.9.3): + mobx-i18n@0.7.5(mobx@6.16.1)(typescript@5.9.3): dependencies: '@swc/helpers': 0.5.23 - '@types/node': 22.19.21 + '@types/node': 24.13.3 mobx: 6.16.1 regenerator-runtime: 0.14.1 - web-utility: 4.6.6(typescript@5.9.3) + web-utility: 4.7.2(typescript@5.9.3) transitivePeerDependencies: - element-internals-polyfill - typescript - mobx-lark@2.8.1(core-js@3.49.0)(react@19.2.7)(typescript@5.9.3): + mobx-lark@2.10.0(core-js@3.49.0)(react@19.2.7)(typescript@5.9.3): dependencies: '@swc/helpers': 0.5.23 '@types/react': 19.2.17 @@ -10250,7 +10393,7 @@ snapshots: mobx-restful: 2.1.4(core-js@3.49.0)(mobx@6.16.1)(typescript@5.9.3) react: 19.2.7 regenerator-runtime: 0.14.1 - web-utility: 4.6.6(typescript@5.9.3) + web-utility: 4.7.2(typescript@5.9.3) transitivePeerDependencies: - core-js - element-internals-polyfill @@ -10263,7 +10406,7 @@ snapshots: lodash.isequalwith: 4.4.0 mobx: 6.16.1 react: 19.2.7 - web-utility: 4.6.6(typescript@5.9.3) + web-utility: 4.7.2(typescript@5.9.3) transitivePeerDependencies: - element-internals-polyfill - typescript @@ -10274,7 +10417,7 @@ snapshots: lodash.isequalwith: 4.4.0 mobx: 6.16.1 react: 19.2.7 - web-utility: 4.6.6(typescript@5.9.3) + web-utility: 4.7.2(typescript@5.9.3) transitivePeerDependencies: - element-internals-polyfill - typescript @@ -10301,7 +10444,7 @@ snapshots: classnames: 2.5.1 lodash: 4.18.1 mobx: 6.16.1 - mobx-i18n: 0.7.2(mobx@6.16.1)(typescript@5.9.3) + mobx-i18n: 0.7.5(mobx@6.16.1)(typescript@5.9.3) mobx-react: 9.2.2(mobx@6.16.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) mobx-react-helper: 0.5.1(mobx@6.16.1)(react@19.2.7)(typescript@5.9.3) mobx-restful: 2.1.4(core-js@3.49.0)(mobx@6.16.1)(typescript@5.9.3) @@ -10309,7 +10452,7 @@ snapshots: react-bootstrap: 2.10.10(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) react-bootstrap-editor: 2.1.1(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(typescript@5.9.3) regenerator-runtime: 0.14.1 - web-utility: 4.6.6(typescript@5.9.3) + web-utility: 4.7.2(typescript@5.9.3) transitivePeerDependencies: - '@types/react' - core-js @@ -10322,11 +10465,11 @@ snapshots: mobx-restful@2.1.4(core-js@3.49.0)(mobx@6.16.1)(typescript@5.9.3): dependencies: '@swc/helpers': 0.5.23 - idb-keyval: 6.2.5 + idb-keyval: 6.3.0 koajax: 3.3.0(core-js@3.49.0)(typescript@5.9.3) mobx: 6.16.1 regenerator-runtime: 0.14.1 - web-utility: 4.6.6(typescript@5.9.3) + web-utility: 4.7.2(typescript@5.9.3) transitivePeerDependencies: - core-js - element-internals-polyfill @@ -10361,14 +10504,14 @@ snapshots: neo-async@2.6.2: {} - next-pwa@5.6.0(@babel/core@7.29.7)(next@16.2.9(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(postcss@8.4.31)(webpack@5.107.2(postcss@8.4.31)): + next-pwa@5.6.0(@babel/core@7.29.7)(next@16.2.10(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(postcss@8.4.31)(webpack@5.108.4(postcss@8.4.31)): dependencies: - babel-loader: 8.4.1(@babel/core@7.29.7)(webpack@5.107.2(postcss@8.4.31)) - clean-webpack-plugin: 4.0.0(webpack@5.107.2(postcss@8.4.31)) + babel-loader: 8.4.1(@babel/core@7.29.7)(webpack@5.108.4(postcss@8.4.31)) + clean-webpack-plugin: 4.0.0(webpack@5.108.4(postcss@8.4.31)) globby: 11.1.0 - next: 16.2.9(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) - terser-webpack-plugin: 5.6.1(postcss@8.4.31)(webpack@5.107.2(postcss@8.4.31)) - workbox-webpack-plugin: 6.6.0(webpack@5.107.2(postcss@8.4.31)) + next: 16.2.10(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + terser-webpack-plugin: 5.6.1(postcss@8.4.31)(webpack@5.108.4(postcss@8.4.31)) + workbox-webpack-plugin: 6.6.0(webpack@5.108.4(postcss@8.4.31)) workbox-window: 6.6.0 transitivePeerDependencies: - '@babel/core' @@ -10388,57 +10531,57 @@ snapshots: - uglify-js - webpack - next-ssr-middleware@1.1.0(next@16.2.9(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(react@19.2.7)(typescript@5.9.3): + next-ssr-middleware@1.1.0(next@16.2.10(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(react@19.2.7)(typescript@5.9.3): dependencies: '@koa/bodyparser': 6.1.0(koa@3.2.1) - '@koa/router': 15.6.0(koa@3.2.1) + '@koa/router': 15.7.0(koa@3.2.1) '@types/jsonwebtoken': 9.0.10 '@types/koa': 3.0.3 '@types/react': 19.2.17 jsonwebtoken: 9.0.3 koa: 3.2.1 - next: 16.2.9(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + next: 16.2.10(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) react: 19.2.7 tslib: 2.8.1 - web-utility: 4.6.6(typescript@5.9.3) + web-utility: 4.7.2(typescript@5.9.3) transitivePeerDependencies: - element-internals-polyfill - supports-color - typescript - next-with-less@3.0.1(less-loader@13.0.0(less@4.6.4)(webpack@5.107.2(postcss@8.4.31)))(less@4.6.4)(next@16.2.9(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)): + next-with-less@3.0.1(less-loader@13.0.0(less@4.6.7)(webpack@5.108.4(postcss@8.4.31)))(less@4.6.7)(next@16.2.10(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)): dependencies: clone-deep: 4.0.1 - less: 4.6.4 - less-loader: 13.0.0(less@4.6.4)(webpack@5.107.2(postcss@8.4.31)) - next: 16.2.9(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + less: 4.6.7 + less-loader: 13.0.0(less@4.6.7)(webpack@5.108.4(postcss@8.4.31)) + next: 16.2.10(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) - next@16.2.9(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7): + next@16.2.10(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7): dependencies: - '@next/env': 16.2.9 + '@next/env': 16.2.10 '@swc/helpers': 0.5.15 - baseline-browser-mapping: 2.10.37 - caniuse-lite: 1.0.30001799 + baseline-browser-mapping: 2.10.43 + caniuse-lite: 1.0.30001805 postcss: 8.4.31 react: 19.2.7 react-dom: 19.2.7(react@19.2.7) styled-jsx: 5.1.6(@babel/core@7.29.7)(react@19.2.7) optionalDependencies: - '@next/swc-darwin-arm64': 16.2.9 - '@next/swc-darwin-x64': 16.2.9 - '@next/swc-linux-arm64-gnu': 16.2.9 - '@next/swc-linux-arm64-musl': 16.2.9 - '@next/swc-linux-x64-gnu': 16.2.9 - '@next/swc-linux-x64-musl': 16.2.9 - '@next/swc-win32-arm64-msvc': 16.2.9 - '@next/swc-win32-x64-msvc': 16.2.9 + '@next/swc-darwin-arm64': 16.2.10 + '@next/swc-darwin-x64': 16.2.10 + '@next/swc-linux-arm64-gnu': 16.2.10 + '@next/swc-linux-arm64-musl': 16.2.10 + '@next/swc-linux-x64-gnu': 16.2.10 + '@next/swc-linux-x64-musl': 16.2.10 + '@next/swc-win32-arm64-msvc': 16.2.10 + '@next/swc-win32-x64-msvc': 16.2.10 '@opentelemetry/api': 1.9.1 sharp: 0.34.5 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros - node-exports-info@1.6.0: + node-exports-info@1.6.2: dependencies: array.prototype.flatmap: 1.3.3 es-errors: 1.3.0 @@ -10449,7 +10592,7 @@ snapshots: dependencies: whatwg-url: 5.0.0 - node-releases@2.0.47: {} + node-releases@2.0.51: {} normalize-path@3.0.0: {} @@ -10581,7 +10724,7 @@ snapshots: path-scurry@2.0.2: dependencies: - lru-cache: 11.5.1 + lru-cache: 11.5.2 minipass: 7.1.3 path-to-regexp@8.4.2: {} @@ -10592,7 +10735,7 @@ snapshots: picomatch@2.3.2: {} - picomatch@4.0.4: {} + picomatch@4.0.5: {} pify@2.3.0: {} @@ -10628,16 +10771,16 @@ snapshots: prelude-ls@1.2.1: {} - prettier-plugin-css-order@2.2.0(postcss@8.4.31)(prettier@3.8.4): + prettier-plugin-css-order@2.2.0(postcss@8.4.31)(prettier@3.9.5): dependencies: css-declaration-sorter: 7.4.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.8.4 + prettier: 3.9.5 transitivePeerDependencies: - postcss - prettier@3.8.4: {} + prettier@3.9.5: {} pretty-bytes@5.6.0: {} @@ -10672,8 +10815,9 @@ snapshots: punycode@2.3.1: {} - qs@6.15.2: + qs@6.15.3: dependencies: + es-define-property: 1.0.1 side-channel: 1.1.1 queue-microtask@1.2.3: {} @@ -10689,18 +10833,18 @@ snapshots: iconv-lite: 0.4.24 unpipe: 1.0.0 - react-aria@3.49.0(react-dom@19.2.7(react@19.2.7))(react@19.2.7): + react-aria@3.50.0(react-dom@19.2.7(react@19.2.7))(react@19.2.7): dependencies: '@internationalized/date': 3.12.2 '@internationalized/number': 3.6.7 '@internationalized/string': 3.2.9 - '@react-types/shared': 3.35.0(react@19.2.7) + '@react-types/shared': 3.36.0(react@19.2.7) '@swc/helpers': 0.5.23 aria-hidden: 1.2.6 clsx: 2.1.1 react: 19.2.7 react-dom: 19.2.7(react@19.2.7) - react-stately: 3.47.0(react@19.2.7) + react-stately: 3.48.0(react@19.2.7) use-sync-external-store: 1.6.0(react@19.2.7) react-bootstrap-editor@2.1.1(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(typescript@5.9.3): @@ -10712,7 +10856,7 @@ snapshots: mobx-react-helper: 0.4.1(mobx@6.16.1)(react@19.2.7)(typescript@5.9.3) react: 19.2.7 react-dom: 19.2.7(react@19.2.7) - web-utility: 4.6.6(typescript@5.9.3) + web-utility: 4.7.2(typescript@5.9.3) transitivePeerDependencies: - element-internals-polyfill - react-native @@ -10773,12 +10917,12 @@ snapshots: sucrase: 3.35.1 use-editable: 2.3.3(react@19.2.7) - react-stately@3.47.0(react@19.2.7): + react-stately@3.48.0(react@19.2.7): dependencies: '@internationalized/date': 3.12.2 '@internationalized/number': 3.6.7 '@internationalized/string': 3.2.9 - '@react-types/shared': 3.35.0(react@19.2.7) + '@react-types/shared': 3.36.0(react@19.2.7) '@swc/helpers': 0.5.23 react: 19.2.7 use-sync-external-store: 1.6.0(react@19.2.7) @@ -10796,8 +10940,8 @@ snapshots: reactivity-store@0.4.0(react@19.2.7): dependencies: - '@vue/reactivity': 3.5.38 - '@vue/shared': 3.5.38 + '@vue/reactivity': 3.5.39 + '@vue/shared': 3.5.39 react: 19.2.7 use-sync-external-store: 1.6.0(react@19.2.7) @@ -10876,7 +11020,7 @@ snapshots: rehype-recma@1.0.0: dependencies: '@types/estree': 1.0.9 - '@types/hast': 3.0.4 + '@types/hast': 3.0.5 hast-util-to-estree: 3.1.3 transitivePeerDependencies: - supports-color @@ -10928,7 +11072,7 @@ snapshots: remark-rehype@11.1.2: dependencies: - '@types/hast': 3.0.4 + '@types/hast': 3.0.5 '@types/mdast': 4.0.4 mdast-util-to-hast: 13.2.1 unified: 11.0.5 @@ -10964,7 +11108,7 @@ snapshots: dependencies: es-errors: 1.3.0 is-core-module: 2.16.2 - node-exports-info: 1.6.0 + node-exports-info: 1.6.2 object-keys: 1.1.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 @@ -10988,41 +11132,41 @@ snapshots: jest-worker: 26.6.2 rollup: 2.80.0 serialize-javascript: 4.0.0 - terser: 5.48.0 + terser: 5.49.0 rollup@2.80.0: optionalDependencies: fsevents: 2.3.3 - rollup@4.62.0: + rollup@4.62.2: dependencies: '@types/estree': 1.0.9 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.62.0 - '@rollup/rollup-android-arm64': 4.62.0 - '@rollup/rollup-darwin-arm64': 4.62.0 - '@rollup/rollup-darwin-x64': 4.62.0 - '@rollup/rollup-freebsd-arm64': 4.62.0 - '@rollup/rollup-freebsd-x64': 4.62.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.62.0 - '@rollup/rollup-linux-arm-musleabihf': 4.62.0 - '@rollup/rollup-linux-arm64-gnu': 4.62.0 - '@rollup/rollup-linux-arm64-musl': 4.62.0 - '@rollup/rollup-linux-loong64-gnu': 4.62.0 - '@rollup/rollup-linux-loong64-musl': 4.62.0 - '@rollup/rollup-linux-ppc64-gnu': 4.62.0 - '@rollup/rollup-linux-ppc64-musl': 4.62.0 - '@rollup/rollup-linux-riscv64-gnu': 4.62.0 - '@rollup/rollup-linux-riscv64-musl': 4.62.0 - '@rollup/rollup-linux-s390x-gnu': 4.62.0 - '@rollup/rollup-linux-x64-gnu': 4.62.0 - '@rollup/rollup-linux-x64-musl': 4.62.0 - '@rollup/rollup-openbsd-x64': 4.62.0 - '@rollup/rollup-openharmony-arm64': 4.62.0 - '@rollup/rollup-win32-arm64-msvc': 4.62.0 - '@rollup/rollup-win32-ia32-msvc': 4.62.0 - '@rollup/rollup-win32-x64-gnu': 4.62.0 - '@rollup/rollup-win32-x64-msvc': 4.62.0 + '@rollup/rollup-android-arm-eabi': 4.62.2 + '@rollup/rollup-android-arm64': 4.62.2 + '@rollup/rollup-darwin-arm64': 4.62.2 + '@rollup/rollup-darwin-x64': 4.62.2 + '@rollup/rollup-freebsd-arm64': 4.62.2 + '@rollup/rollup-freebsd-x64': 4.62.2 + '@rollup/rollup-linux-arm-gnueabihf': 4.62.2 + '@rollup/rollup-linux-arm-musleabihf': 4.62.2 + '@rollup/rollup-linux-arm64-gnu': 4.62.2 + '@rollup/rollup-linux-arm64-musl': 4.62.2 + '@rollup/rollup-linux-loong64-gnu': 4.62.2 + '@rollup/rollup-linux-loong64-musl': 4.62.2 + '@rollup/rollup-linux-ppc64-gnu': 4.62.2 + '@rollup/rollup-linux-ppc64-musl': 4.62.2 + '@rollup/rollup-linux-riscv64-gnu': 4.62.2 + '@rollup/rollup-linux-riscv64-musl': 4.62.2 + '@rollup/rollup-linux-s390x-gnu': 4.62.2 + '@rollup/rollup-linux-x64-gnu': 4.62.2 + '@rollup/rollup-linux-x64-musl': 4.62.2 + '@rollup/rollup-openbsd-x64': 4.62.2 + '@rollup/rollup-openharmony-arm64': 4.62.2 + '@rollup/rollup-win32-arm64-msvc': 4.62.2 + '@rollup/rollup-win32-ia32-msvc': 4.62.2 + '@rollup/rollup-win32-x64-gnu': 4.62.2 + '@rollup/rollup-win32-x64-msvc': 4.62.2 fsevents: 2.3.3 run-parallel@1.2.0: @@ -11070,18 +11214,17 @@ snapshots: ajv-formats: 2.1.1 ajv-keywords: 5.1.0(ajv@8.20.0) - semver@5.7.2: - optional: true + semifies@1.0.0: {} semver@6.3.1: {} - semver@7.8.4: {} + semver@7.8.5: {} serialize-javascript@4.0.0: dependencies: randombytes: 2.1.0 - serialize-javascript@7.0.5: {} + serialize-javascript@7.0.7: {} set-function-length@1.2.2: dependencies: @@ -11115,7 +11258,7 @@ snapshots: dependencies: '@img/colour': 1.1.0 detect-libc: 2.1.2 - semver: 7.8.4 + semver: 7.8.5 optionalDependencies: '@img/sharp-darwin-arm64': 0.34.5 '@img/sharp-darwin-x64': 0.34.5 @@ -11191,7 +11334,7 @@ snapshots: ansi-styles: 6.2.3 is-fullwidth-code-point: 5.1.0 - smol-toml@1.6.1: {} + smol-toml@1.7.0: {} source-list-map@2.0.1: {} @@ -11237,7 +11380,7 @@ snapshots: get-east-asian-width: 1.6.0 strip-ansi: 7.2.0 - string-width@8.2.1: + string-width@8.2.2: dependencies: get-east-asian-width: 1.6.0 strip-ansi: 7.2.0 @@ -11366,17 +11509,17 @@ snapshots: type-fest: 0.16.0 unique-string: 2.0.0 - terser-webpack-plugin@5.6.1(postcss@8.4.31)(webpack@5.107.2(postcss@8.4.31)): + terser-webpack-plugin@5.6.1(postcss@8.4.31)(webpack@5.108.4(postcss@8.4.31)): dependencies: '@jridgewell/trace-mapping': 0.3.31 jest-worker: 27.5.1 schema-utils: 4.3.3 - terser: 5.48.0 - webpack: 5.107.2(postcss@8.4.31) + terser: 5.49.0 + webpack: 5.108.4(postcss@8.4.31) optionalDependencies: postcss: 8.4.31 - terser@5.48.0: + terser@5.49.0: dependencies: '@jridgewell/source-map': 0.3.11 acorn: 8.17.0 @@ -11399,8 +11542,8 @@ snapshots: tinyglobby@0.2.17: dependencies: - fdir: 6.5.0(picomatch@4.0.4) - picomatch: 4.0.4 + fdir: 6.5.0(picomatch@4.0.5) + picomatch: 4.0.5 to-regex-range@5.0.1: dependencies: @@ -11503,13 +11646,13 @@ snapshots: possible-typed-array-names: 1.1.0 reflect.getprototypeof: 1.0.10 - typescript-eslint@8.61.0(eslint@10.5.0(jiti@2.7.0))(typescript@5.9.3): + typescript-eslint@8.63.0(eslint@10.7.0(jiti@2.7.0))(typescript@5.9.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.61.0(@typescript-eslint/parser@8.61.0(eslint@10.5.0(jiti@2.7.0))(typescript@5.9.3))(eslint@10.5.0(jiti@2.7.0))(typescript@5.9.3) - '@typescript-eslint/parser': 8.61.0(eslint@10.5.0(jiti@2.7.0))(typescript@5.9.3) - '@typescript-eslint/typescript-estree': 8.61.0(typescript@5.9.3) - '@typescript-eslint/utils': 8.61.0(eslint@10.5.0(jiti@2.7.0))(typescript@5.9.3) - eslint: 10.5.0(jiti@2.7.0) + '@typescript-eslint/eslint-plugin': 8.63.0(@typescript-eslint/parser@8.63.0(eslint@10.7.0(jiti@2.7.0))(typescript@5.9.3))(eslint@10.7.0(jiti@2.7.0))(typescript@5.9.3) + '@typescript-eslint/parser': 8.63.0(eslint@10.7.0(jiti@2.7.0))(typescript@5.9.3) + '@typescript-eslint/typescript-estree': 8.63.0(typescript@5.9.3) + '@typescript-eslint/utils': 8.63.0(eslint@10.7.0(jiti@2.7.0))(typescript@5.9.3) + eslint: 10.7.0(jiti@2.7.0) typescript: 5.9.3 transitivePeerDependencies: - supports-color @@ -11537,11 +11680,9 @@ snapshots: dependencies: react: 19.2.7 - undici-types@6.21.0: {} - undici-types@7.18.2: {} - undici@8.4.1: {} + undici@8.7.0: {} unicode-canonical-property-names-ecmascript@2.0.1: {} @@ -11575,7 +11716,7 @@ snapshots: unist-util-mdx-define@1.1.2: dependencies: '@types/estree': 1.0.9 - '@types/hast': 3.0.4 + '@types/hast': 3.0.5 '@types/mdast': 4.0.4 estree-util-is-identifier-name: 3.0.0 estree-util-scope: 1.0.0 @@ -11638,9 +11779,9 @@ snapshots: upath@1.2.0: {} - update-browserslist-db@1.2.3(browserslist@4.28.2): + update-browserslist-db@1.2.3(browserslist@4.28.6): dependencies: - browserslist: 4.28.2 + browserslist: 4.28.6 escalade: 3.2.0 picocolors: 1.1.1 @@ -11686,7 +11827,7 @@ snapshots: web-streams-polyfill@4.3.0: {} - web-utility@4.6.6(typescript@5.9.3): + web-utility@4.7.2(typescript@5.9.3): dependencies: '@swc/helpers': 0.5.23 regenerator-runtime: 0.14.1 @@ -11701,9 +11842,9 @@ snapshots: source-list-map: 2.0.1 source-map: 0.6.1 - webpack-sources@3.5.0: {} + webpack-sources@3.5.1: {} - webpack@5.107.2(postcss@8.4.31): + webpack@5.108.4(postcss@8.4.31): dependencies: '@types/estree': 1.0.9 '@types/json-schema': 7.0.15 @@ -11712,22 +11853,21 @@ snapshots: '@webassemblyjs/wasm-parser': 1.14.1 acorn: 8.17.0 acorn-import-phases: 1.0.4(acorn@8.17.0) - browserslist: 4.28.2 + browserslist: 4.28.6 chrome-trace-event: 1.0.4 - enhanced-resolve: 5.24.0 - es-module-lexer: 2.1.0 + enhanced-resolve: 5.24.2 + es-module-lexer: 2.3.0 eslint-scope: 5.1.1 events: 3.3.0 - glob-to-regexp: 0.4.1 graceful-fs: 4.2.11 loader-runner: 4.3.2 mime-db: 1.54.0 + minimizer-webpack-plugin: 5.6.1(postcss@8.4.31)(webpack@5.108.4(postcss@8.4.31)) neo-async: 2.6.2 schema-utils: 4.3.3 tapable: 2.3.3 - terser-webpack-plugin: 5.6.1(postcss@8.4.31)(webpack@5.107.2(postcss@8.4.31)) watchpack: 2.5.2 - webpack-sources: 3.5.0 + webpack-sources: 3.5.1 transitivePeerDependencies: - '@minify-html/node' - '@swc/core' @@ -11908,12 +12048,12 @@ snapshots: workbox-sw@6.6.0: {} - workbox-webpack-plugin@6.6.0(webpack@5.107.2(postcss@8.4.31)): + workbox-webpack-plugin@6.6.0(webpack@5.108.4(postcss@8.4.31)): dependencies: fast-json-stable-stringify: 2.1.0 pretty-bytes: 5.6.0 upath: 1.2.0 - webpack: 5.107.2(postcss@8.4.31) + webpack: 5.108.4(postcss@8.4.31) webpack-sources: 1.4.3 workbox-build: 6.6.0 transitivePeerDependencies: @@ -11928,7 +12068,7 @@ snapshots: wrap-ansi@10.0.0: dependencies: ansi-styles: 6.2.3 - string-width: 8.2.1 + string-width: 8.2.2 strip-ansi: 7.2.0 wrap-ansi@9.0.2: From 949b86147fbcd6d0c627c6b82c506f990c36cb51 Mon Sep 17 00:00:00 2001 From: TechQuery Date: Wed, 15 Jul 2026 05:59:56 +0800 Subject: [PATCH 8/9] [migrate] replace Content API with Tree API of GitHub to reduce API Call times --- Dockerfile | 2 +- models/Wiki.ts | 16 +++- package.json | 10 +- pages/api/SSG.ts | 21 +++- pages/policy/[...slug].tsx | 11 ++- pages/policy/index.tsx | 9 +- pages/recipe/[...slug].tsx | 11 ++- pages/recipe/index.tsx | 9 +- pnpm-lock.yaml | 191 ++++++++++++++++++------------------- pnpm-workspace.yaml | 1 + 10 files changed, 157 insertions(+), 124 deletions(-) diff --git a/Dockerfile b/Dockerfile index 644486a..06e3f87 100644 --- a/Dockerfile +++ b/Dockerfile @@ -14,7 +14,7 @@ WORKDIR /app FROM base AS build RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm i --frozen-lockfile -RUN CI=true pnpm build +RUN pnpm build FROM base COPY --from=build /app/public ./public diff --git a/models/Wiki.ts b/models/Wiki.ts index d4448ae..d77cdb7 100644 --- a/models/Wiki.ts +++ b/models/Wiki.ts @@ -1,28 +1,34 @@ -import { Content, ContentModel } from 'mobx-github'; +import './Base'; + +import { Content, ContentModel, TreeModel } from 'mobx-github'; import { DocumentModel, WikiNodeModel } from 'mobx-lark'; import { DataObject } from 'mobx-restful'; import { lark } from '../pages/api/Lark/core'; -import './Base'; import { LarkWikiDomain, LarkWikiId } from './configuration'; export interface XContent extends Content { meta?: DataObject; + // eslint-disable-next-line no-restricted-syntax children?: XContent[]; } -export const policyContentStore = new ContentModel('fpsig', 'open-source-policy'); +export const policyTreeStore = new TreeModel('fpsig', 'open-source-policy'); + +export const policyContentStore = new ContentModel( + 'fpsig', + 'open-source-policy', +); +export const recipeTreeStore = new TreeModel('Gar-b-age', 'CookLikeHOC'); export const recipeContentStore = new ContentModel('Gar-b-age', 'CookLikeHOC'); export class MyWikiNodeModel extends WikiNodeModel { client = lark.client; } - export const wikiStore = new MyWikiNodeModel(LarkWikiDomain, LarkWikiId); export class MyDocumentModel extends DocumentModel { client = lark.client; } - export const documentStore = new MyDocumentModel(LarkWikiDomain); diff --git a/package.json b/package.json index a9e7164..1d3fafa 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,7 @@ "marked": "^18.0.6", "mime": "^4.1.0", "mobx": "^6.16.1", - "mobx-github": "^0.6.2", + "mobx-github": "^0.7.0", "mobx-i18n": "^0.7.5", "mobx-lark": "^2.10.0", "mobx-react": "^9.2.2", @@ -51,7 +51,7 @@ "prismjs": "^1.30.0", "react": "^19.2.7", "react-bootstrap": "^2.10.10", - "react-bootstrap-editor": "^2.1.1", + "react-bootstrap-editor": "^2.1.2", "react-dom": "^19.2.7", "react-editor-js": "^2.1.0", "remark-frontmatter": "^5.0.0", @@ -79,6 +79,7 @@ "@types/next-pwa": "^5.6.9", "@types/node": "^24.13.3", "@types/react": "^19.2.17", + "cross-env": "^10.1.0", "eslint": "^10.7.0", "eslint-config-next": "^16.2.10", "eslint-config-prettier": "^10.1.8", @@ -94,7 +95,8 @@ "typescript-eslint": "^8.63.0" }, "resolutions": { - "next": "$next" + "next": "$next", + "marked": "^15" }, "prettier": { "singleQuote": true, @@ -113,7 +115,7 @@ "prepare": "husky", "install": "next typegen", "dev": "next dev --webpack", - "build": "next build --webpack", + "build": "cross-env CI=true next build --webpack", "start": "next start", "test": "lint-staged && tsc --noEmit", "pack-image": "docker build -t open-source-bazaar/wiki:latest .", diff --git a/pages/api/SSG.ts b/pages/api/SSG.ts index c6d4788..e4305fc 100644 --- a/pages/api/SSG.ts +++ b/pages/api/SSG.ts @@ -1,6 +1,6 @@ import 'core-js/full/array/from-async'; -import { Content } from 'mobx-github'; +import { Content, Tree } from 'mobx-github'; import { DataObject } from 'mobx-restful'; import { GetStaticProps, GetStaticPropsResult } from 'next'; import { ParsedUrlQuery } from 'querystring'; @@ -8,6 +8,7 @@ import { Minute, Second } from 'web-utility'; import { parse } from 'yaml'; import { CI } from '../../models/configuration'; +import { XContent } from '../../models/Wiki'; export const skipBuilding = ( @@ -107,6 +108,24 @@ export function* traverseTree>( } } +export const treeToContents = (nodes: Tree[]) => + nodes + .filter(({ path }) => !!path) + .map(node => { + const path = node.path!; + const slashIndex = path.lastIndexOf('/'); + const name = slashIndex >= 0 ? path.slice(slashIndex + 1) : path, + parent_path = slashIndex >= 0 ? path.slice(0, slashIndex) : ''; + + return { + ...node, + type: node.type === 'tree' ? 'dir' : 'file', + path, + parent_path, + name, + } as XContent; + }); + export const filterMarkdownFiles = (nodes: Content[]) => nodes .filter( diff --git a/pages/policy/[...slug].tsx b/pages/policy/[...slug].tsx index 91a524d..98935b1 100644 --- a/pages/policy/[...slug].tsx +++ b/pages/policy/[...slug].tsx @@ -11,7 +11,12 @@ import { decodeBase64 } from 'web-utility'; import { PageHead } from '../../components/Layout/PageHead'; import { I18nContext } from '../../models/Translation'; -import { policyContentStore, XContent } from '../../models/Wiki'; +import { + policyContentStore, + policyTreeStore, + XContent, +} from '../../models/Wiki'; +import { filterMarkdownFiles,treeToContents } from '../api/SSG'; import { skipBuilding, splitFrontMatter } from '../api/SSG'; interface PolicyPageParams extends ParsedUrlQuery { @@ -19,9 +24,9 @@ interface PolicyPageParams extends ParsedUrlQuery { } export const getStaticPaths: GetStaticPaths = async () => { - const nodes = await policyContentStore.getAll(); + const tree = await policyTreeStore.getAll(); - const paths = nodes + const paths = filterMarkdownFiles(treeToContents(tree)) .filter(({ type }) => type === 'file') .map(({ path }) => ({ params: { slug: path.split('/') } })); diff --git a/pages/policy/index.tsx b/pages/policy/index.tsx index bb04117..b219cdb 100644 --- a/pages/policy/index.tsx +++ b/pages/policy/index.tsx @@ -7,13 +7,15 @@ import { treeFrom } from 'web-utility'; import { ContentTree } from '../../components/Layout/ContentTree'; import { PageHead } from '../../components/Layout/PageHead'; import { I18nContext } from '../../models/Translation'; -import { policyContentStore, XContent } from '../../models/Wiki'; -import { filterMarkdownFiles } from '../api/SSG'; +import { policyTreeStore, XContent } from '../../models/Wiki'; +import { filterMarkdownFiles,treeToContents } from '../api/SSG'; export const getStaticProps: GetStaticProps<{ nodes: XContent[]; }> = async () => { - const nodes = filterMarkdownFiles(await policyContentStore.getAll()); + const tree = await policyTreeStore.getAll(); + + const nodes = filterMarkdownFiles(treeToContents(tree)); return { props: JSON.parse(JSON.stringify({ nodes })), @@ -46,7 +48,6 @@ const PolicyIndexPage: FC<{ nodes: XContent[] }> = observer(({ nodes }) => { ) : ( diff --git a/pages/recipe/[...slug].tsx b/pages/recipe/[...slug].tsx index 4b47353..ed5a79a 100644 --- a/pages/recipe/[...slug].tsx +++ b/pages/recipe/[...slug].tsx @@ -11,7 +11,12 @@ import { decodeBase64 } from 'web-utility'; import { PageHead } from '../../components/Layout/PageHead'; import { I18nContext } from '../../models/Translation'; -import { recipeContentStore, XContent } from '../../models/Wiki'; +import { + recipeContentStore, + recipeTreeStore, + XContent, +} from '../../models/Wiki'; +import { filterMarkdownFiles,treeToContents } from '../api/SSG'; import { skipBuilding, splitFrontMatter } from '../api/SSG'; interface RecipePageParams extends ParsedUrlQuery { @@ -19,9 +24,9 @@ interface RecipePageParams extends ParsedUrlQuery { } export const getStaticPaths: GetStaticPaths = async () => { - const nodes = await recipeContentStore.getAll(); + const tree = await recipeTreeStore.getAll(); - const paths = nodes + const paths = filterMarkdownFiles(treeToContents(tree)) .filter( ({ type, name, path }) => type === 'file' && !name.startsWith('.') && !path.startsWith('index.'), diff --git a/pages/recipe/index.tsx b/pages/recipe/index.tsx index c2dc8eb..9591cd2 100644 --- a/pages/recipe/index.tsx +++ b/pages/recipe/index.tsx @@ -7,13 +7,15 @@ import { treeFrom } from 'web-utility'; import { ContentTree } from '../../components/Layout/ContentTree'; import { PageHead } from '../../components/Layout/PageHead'; import { I18nContext } from '../../models/Translation'; -import { recipeContentStore, XContent } from '../../models/Wiki'; -import { filterMarkdownFiles } from '../api/SSG'; +import { recipeTreeStore, XContent } from '../../models/Wiki'; +import { filterMarkdownFiles,treeToContents } from '../api/SSG'; export const getStaticProps: GetStaticProps<{ nodes: XContent[]; }> = async () => { - const nodes = filterMarkdownFiles(await recipeContentStore.getAll()).filter( + const tree = await recipeTreeStore.getAll(); + + const nodes = filterMarkdownFiles(treeToContents(tree)).filter( ({ path }) => !path.startsWith('index.'), ); @@ -66,7 +68,6 @@ const RecipeIndexPage: FC<{ nodes: XContent[] }> = observer(({ nodes }) => { ) : ( diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2b2e818..5f99e80 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -6,6 +6,7 @@ settings: overrides: next: ^16.2.10 + marked: ^15 importers: @@ -93,8 +94,8 @@ importers: specifier: ^4.18.1 version: 4.18.1 marked: - specifier: ^18.0.6 - version: 18.0.6 + specifier: ^15 + version: 15.0.12 mime: specifier: ^4.1.0 version: 4.1.0 @@ -102,8 +103,8 @@ importers: specifier: ^6.16.1 version: 6.16.1 mobx-github: - specifier: ^0.6.2 - version: 0.6.2(core-js@3.49.0)(typescript@5.9.3) + specifier: ^0.7.0 + version: 0.7.0(core-js@3.49.0)(typescript@5.9.3) mobx-i18n: specifier: ^0.7.5 version: 0.7.5(mobx@6.16.1)(typescript@5.9.3) @@ -144,8 +145,8 @@ importers: specifier: ^2.10.10 version: 2.10.10(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) react-bootstrap-editor: - specifier: ^2.1.1 - version: 2.1.1(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(typescript@5.9.3) + specifier: ^2.1.2 + version: 2.1.2(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(typescript@5.9.3) react-dom: specifier: ^19.2.7 version: 19.2.7(react@19.2.7) @@ -222,6 +223,9 @@ importers: '@types/react': specifier: ^19.2.17 version: 19.2.17 + cross-env: + specifier: ^10.1.0 + version: 10.1.0 eslint: specifier: ^10.7.0 version: 10.7.0(jiti@2.7.0) @@ -893,8 +897,8 @@ packages: '@cspell/dict-bash@4.2.3': resolution: {integrity: sha512-ljUZoKHbDqw5Sx0qpL2qTUlmkmr+vhZH/sCNrNaBZKTbdgiswErSnIF1jRbGmEitJNxHRHWsuZyVgnTGfVO1Yw==} - '@cspell/dict-companies@3.2.11': - resolution: {integrity: sha512-0cmafbcz2pTHXLd59eLR1gvDvN6aWAOM0+cIL4LLF9GX9yB2iKDNrKsvs4tJRqutoaTdwNFBbV0FYv+6iCtebQ==} + '@cspell/dict-companies@3.2.12': + resolution: {integrity: sha512-mjiz/N3zWOCsz5VfwMUydSl7uW0OU9H2PnbCNc3RV44Vj6Q59CSp6EYGSGZQxrXU1gpsuZUrwr6QCjNjFOOg5A==} '@cspell/dict-cpp@7.0.2': resolution: {integrity: sha512-dfbeERiVNeqmo/npivdR6rDiBCqZi3QtjH2Z0HFcXwpdj6i97dX1xaKyK2GUsO/p4u1TOv63Dmj5Vm48haDpuA==} @@ -911,8 +915,8 @@ packages: '@cspell/dict-dart@2.3.2': resolution: {integrity: sha512-sUiLW56t9gfZcu8iR/5EUg+KYyRD83Cjl3yjDEA2ApVuJvK1HhX+vn4e4k4YfjpUQMag8XO2AaRhARE09+/rqw==} - '@cspell/dict-data-science@2.0.14': - resolution: {integrity: sha512-jl6Ds4u5u5JT+yY30pWQpAbdCHfy3lCcNkLbpL/AZKoUaLEoXbaYsps9xQtvD7DyaiXxiLZkdH2yHHXtoFtZyg==} + '@cspell/dict-data-science@2.0.16': + resolution: {integrity: sha512-M72mxv5asuAnORurz4iXRJ+Tw9XBq6eu7D2Ne7biP0Z1RciKGNxXWu9JycA/KlVvK1hAlKj/fANlXhuEWpXKFg==} '@cspell/dict-django@4.1.6': resolution: {integrity: sha512-SdbSFDGy9ulETqNz15oWv2+kpWLlk8DJYd573xhIkeRdcXOjskRuxjSZPKfW7O3NxN/KEf3gm3IevVOiNuFS+w==} @@ -926,14 +930,14 @@ packages: '@cspell/dict-elixir@4.0.8': resolution: {integrity: sha512-CyfphrbMyl4Ms55Vzuj+mNmd693HjBFr9hvU+B2YbFEZprE5AG+EXLYTMRWrXbpds4AuZcvN3deM2XVB80BN/Q==} - '@cspell/dict-en-common-misspellings@2.1.12': - resolution: {integrity: sha512-14Eu6QGqyksqOd4fYPuRb58lK1Va7FQK9XxFsRKnZU8LhL3N+kj7YKDW+7aIaAN/0WGEqslGP6lGbQzNti8Akw==} + '@cspell/dict-en-common-misspellings@2.1.13': + resolution: {integrity: sha512-00rpydUxKNWY2xxrSx+h46aNWLvbkJdd57SsnEFt24fbs1fROhXZ6XSQu+gQz/zNuiCvFi4Ro3ej9DLbEdWQmQ==} - '@cspell/dict-en-gb-mit@3.1.24': - resolution: {integrity: sha512-Oowb/Uzkh7OmDRdCcETzMc9imEb4IpLlHJXoYjX8A8DS2X/54gqSjI915JFB8hKtFjBko5OM0BLQ+6cZhFEMmQ==} + '@cspell/dict-en-gb-mit@3.1.25': + resolution: {integrity: sha512-zGODptk24CMrXi49ieG2SUm94CKxEsVF0dYNF+1ZYH0MSsQDZ/PKDlrrbvtBqSupKdPSj0Z9sjOmMNfHHW9ZSg==} - '@cspell/dict-en_us@4.4.35': - resolution: {integrity: sha512-xWpxBCc/FzzMMo/A+0qwARVaIIhR0Ql8yhhv4rvsvg+GfQF+LG9yzg2GwTM5N2rjvzmM3nKuR9zxFZq2I6fJSg==} + '@cspell/dict-en_us@4.4.36': + resolution: {integrity: sha512-2yOhI/+7d1DbfvMljGW4jw8pLqDEsVmnvUXBOCFXtLU2BWgQkrqOJDCNseYjEiEbTp0OtdrWEWWPFSP1TNugQw==} '@cspell/dict-filetypes@3.0.18': resolution: {integrity: sha512-yU7RKD/x1IWmDLzWeiItMwgV+6bUcU/af23uS0+uGiFUbsY1qWV/D4rxlAAO6Z7no3J2z8aZOkYIOvUrJq0Rcw==} @@ -977,8 +981,8 @@ packages: '@cspell/dict-julia@1.1.1': resolution: {integrity: sha512-WylJR9TQ2cgwd5BWEOfdO3zvDB+L7kYFm0I9u0s9jKHWQ6yKmfKeMjU9oXxTBxIufhCXm92SKwwVNAC7gjv+yA==} - '@cspell/dict-k8s@1.0.12': - resolution: {integrity: sha512-2LcllTWgaTfYC7DmkMPOn9GsBWsA4DZdlun4po8s2ysTP7CPEnZc1ZfK6pZ2eI4TsZemlUQQ+NZxMe9/QutQxg==} + '@cspell/dict-k8s@1.0.13': + resolution: {integrity: sha512-ELGkS13k7K/NEfVimBSrxVTfqXvOF/Kvxj4I62YxRm8bvHbfoXgrGaOx28lPiNRz+dmu+yYtvuXbnURKtYbC6g==} '@cspell/dict-kotlin@1.1.1': resolution: {integrity: sha512-J3NzzfgmxRvEeOe3qUXnSJQCd38i/dpF9/t3quuWh6gXM+krsAXP75dY1CzDmS8mrJAlBdVBeAW5eAZTD8g86Q==} @@ -1009,8 +1013,8 @@ packages: '@cspell/dict-node@5.0.9': resolution: {integrity: sha512-hO+ga+uYZ/WA4OtiMEyKt5rDUlUyu3nXMf8KVEeqq2msYvAPdldKBGH7lGONg6R/rPhv53Rb+0Y1SLdoK1+7wQ==} - '@cspell/dict-npm@5.2.41': - resolution: {integrity: sha512-To3xsfRmMBYVXtWVEdUgV35M9a/JZ54dSuoY6m6D3uHKKL3I326Wmy4xifZ3PU8MQaWhyEH7zbIcUEtKwTQMcA==} + '@cspell/dict-npm@5.2.43': + resolution: {integrity: sha512-H2gYwtu59dNO9662Uq0usfuhyNd7lZJE1C61a/UXcpRyWWSrTo2Bz+vwGYp1bXZ1LmjXadqvwJ8ArFlGdiadNQ==} '@cspell/dict-php@4.1.1': resolution: {integrity: sha512-EXelI+4AftmdIGtA8HL8kr4WlUE11OqCSVlnIgZekmTkEGSZdYnkFdiJ5IANSALtlQ1mghKjz+OFqVs6yowgWA==} @@ -1021,8 +1025,8 @@ packages: '@cspell/dict-public-licenses@2.0.16': resolution: {integrity: sha512-EQRrPvEOmwhwWezV+W7LjXbIBjiy6y/shrET6Qcpnk3XANTzfvWflf9PnJ5kId/oKWvihFy0za0AV1JHd03pSQ==} - '@cspell/dict-python@4.2.27': - resolution: {integrity: sha512-Rj6xQgYS4X6ienjgAZF+njA0GRY4oSPouJWv0vfikCTn6EWlfk0V6Dy1HP3Migj1O+IC2NmespgVq+BZNSp8OA==} + '@cspell/dict-python@4.2.29': + resolution: {integrity: sha512-OnEt1a35iuQzc2Ize1qU/43ZyF10urRKAm+mlTz++vnAgDLBHpKfWakpSK50nyL5/1WvyQ8BaMjb52MBLEpTeA==} '@cspell/dict-r@2.1.1': resolution: {integrity: sha512-71Ka+yKfG4ZHEMEmDxc6+blFkeTTvgKbKAbwiwQAuKl3zpqs1Y0vUtwW2N4b3LgmSPhV3ODVY0y4m5ofqDuKMw==} @@ -1039,8 +1043,8 @@ packages: '@cspell/dict-shell@1.2.0': resolution: {integrity: sha512-PVctvT22lJ49niMiakO8xieY7ELCAzjSqhejWR7bAMb5AZ9F4WDEs+XdGMnoVHWeXq7K5rcepLPmEJb+37zzIw==} - '@cspell/dict-software-terms@5.2.2': - resolution: {integrity: sha512-0CaYd6TAsKtEoA7tNswm1iptEblTzEe3UG8beG2cpSTHk7afWIVMtJLgXDv0f/Li67Lf3Z1Jf3JeXR7GsJ2TRw==} + '@cspell/dict-software-terms@5.2.4': + resolution: {integrity: sha512-z6y/TGH3QNf5wB4pVvN/P3GfFEW/Whf6QAekNsIn06VKl95dnamfpkPWqV8rEtCixQFaKalb5+y9hRQXH3XQ1g==} '@cspell/dict-sql@2.2.1': resolution: {integrity: sha512-qDHF8MpAYCf4pWU8NKbnVGzkoxMNrFqBHyG/dgrlic5EQiKANCLELYtGlX5auIMDLmTf1inA0eNtv74tyRJ/vg==} @@ -1051,8 +1055,8 @@ packages: '@cspell/dict-swift@2.0.6': resolution: {integrity: sha512-PnpNbrIbex2aqU1kMgwEKvCzgbkHtj3dlFLPMqW1vSniop7YxaDTtvTUO4zA++ugYAEL+UK8vYrBwDPTjjvSnA==} - '@cspell/dict-terraform@1.1.3': - resolution: {integrity: sha512-gr6wxCydwSFyyBKhBA2xkENXtVFToheqYYGFvlMZXWjviynXmh+NK/JTvTCk/VHk3+lzbO9EEQKee6VjrAUSbA==} + '@cspell/dict-terraform@1.1.4': + resolution: {integrity: sha512-Ere42ilvMFvQA4GlcN0OKlruMPR6EsvaB+iTHzj2xc+NJGRK64V7yApUcWrOrSgTiM/vhWXPIsK3OMfiAiNdmA==} '@cspell/dict-typescript@3.2.3': resolution: {integrity: sha512-zXh1wYsNljQZfWWdSPYwQhpwiuW0KPW1dSd8idjMRvSD0aSvWWHoWlrMsmZeRl4qM4QCEAjua8+cjflm41cQBg==} @@ -1140,6 +1144,9 @@ packages: '@emnapi/wasi-threads@1.2.1': resolution: {integrity: sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==} + '@epic-web/invariant@1.0.0': + resolution: {integrity: sha512-lrTPqgvfFQtR/eY/qkIzp98OGdNJu0m5ji3q/nJI8v3SXkRKEnWiOxMmbvcSoAIzv/cGiuvRy57k4suKQSAdwA==} + '@eslint-community/eslint-utils@4.9.1': resolution: {integrity: sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -1525,8 +1532,8 @@ packages: resolution: {integrity: sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==} engines: {node: '>=12.4.0'} - '@octokit/openapi-types@26.0.0': - resolution: {integrity: sha512-7AtcfKtpo77j7Ts73b4OWhOZHTKo/gGY8bB3bNBQz4H+GRSWqx2yvj8TXRsbdTE0eRmYmXOEY66jM7mJ7LzfsA==} + '@octokit/openapi-types@27.0.0': + resolution: {integrity: sha512-whrdktVs1h6gtR+09+QsNk2+FO+49j6ga1c55YZudfEG+oKJVvJLQi3zkOm5JjiUXAagWK2tI2kTGKJ2Ys7MGA==} '@opentelemetry/api-logs@0.220.0': resolution: {integrity: sha512-CmVa4ImJ+ynfrPMNaAXHET6Bhb44SwzmfyVJFq9ni2jgXJR/l7C6gfVFddNmHP+ZOkP9cf4f9DBe68qVLTHc9w==} @@ -2598,8 +2605,8 @@ packages: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} - browser-fs-access@0.37.0: - resolution: {integrity: sha512-MKpvZrKtv6pBJ2ACd+VwfS9XauBKTMVZg2UBibypuK1gfiXM7euZjbdKmvRsyxeQRhfzNVQrzCSVGXs19/LP8Q==} + browser-fs-access@0.38.0: + resolution: {integrity: sha512-JveqW2w6pEZqFEEfMgCszXzYpE89dG+nPsmOdcs741mFFAROeL+iqjGEpR07RI+s0YY0EFr+4KnOoACprJTpOw==} browserslist@4.28.6: resolution: {integrity: sha512-FQBYNK15VMslhLHpA7+n+n1GOlF1kId2xcCg7/j95f24AOF6VDYMNH4mFxF7KuaTdv627faazpOAjFzMrfJOUw==} @@ -2761,6 +2768,11 @@ packages: core-js@3.49.0: resolution: {integrity: sha512-es1U2+YTtzpwkxVLwAFdSpaIMyQaq0PBgm3YD1W3Qpsn1NAmO3KSgZfu+oGSWVu6NvLHoHCV/aYcsE5wiB7ALg==} + cross-env@10.1.0: + resolution: {integrity: sha512-GsYosgnACZTADcmEyJctkJIoqAhHjttw7RsFrVoJNXbsWWqaq6Ym+7kZjq6mS45O0jij6vtiReppKQEtqWy6Dw==} + engines: {node: '>=20'} + hasBin: true + cross-spawn@7.0.6: resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} @@ -2931,9 +2943,8 @@ packages: editorjs-html@4.0.5: resolution: {integrity: sha512-ImQYxB3fNCJcd+nJ+Vbne/6PxidO1cYByNpu9nBDStVabfjVrMW65BuR+IEZfOii8VKYH+CW/lYDb2GDlzZtDg==} - edkit@1.2.7: - resolution: {integrity: sha512-dCOBN9MMbCaCdSqhnZTSHPe7lu53TQttttjVBxLE/TehsQasuxmqW3ckimVODFaJVci1A6w429j9bebpiU3zKg==} - deprecated: Don't use version with old API & bugs + edkit@1.3.0: + resolution: {integrity: sha512-Fn6N4V7KDJAz0ZnH0ajrjMmRaD01nMPLlmmPtiIj52o0C4DEo8V1Wf/2ibWvggzpcJK1mA+WJLBVNduVYVPrkw==} ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} @@ -2996,8 +3007,8 @@ packages: resolution: {integrity: sha512-c/A0P0oxkACDc+cKWw8evLXK83oBKgn0qPOqCYT4x9uolpCIJAcYvJC9QYKNDRPsTeGyCrQ326jrvgZWdCdK5Q==} engines: {node: '>= 0.4'} - es-module-lexer@2.3.0: - resolution: {integrity: sha512-KLdwQm2NvGLDkQDCGvmiQrhkd0JbMzXthwQAUgWjQuQdBLFa3eiBP5arXZyA+f8x+x7OXgud6bq2rxjGtHV2tw==} + es-module-lexer@2.3.1: + resolution: {integrity: sha512-shc1dbU90Yl/xq1QrC7QRtfcwURZuVRfPhZbDoldJ1cn1gzDvBaBWlv0eFolj5+0znnPJz5TXLxsN77X/12KTA==} es-object-atoms@1.1.2: resolution: {integrity: sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==} @@ -4006,11 +4017,6 @@ packages: engines: {node: '>= 18'} hasBin: true - marked@18.0.6: - resolution: {integrity: sha512-MrV5puXBfuiy6wl6DLaq3BtIJQAJToAd5zt/ZKhRfGRAuFPALE7/4Y7jnxRQoEgK/pBgurGqLyAuRgZ2xOjr6w==} - engines: {node: '>= 20'} - hasBin: true - math-intrinsics@1.1.0: resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} engines: {node: '>= 0.4'} @@ -4288,8 +4294,8 @@ packages: resolution: {integrity: sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==} engines: {node: '>=16 || 14 >=14.17'} - mobx-github@0.6.2: - resolution: {integrity: sha512-MlqjAKkb1DTZl8ruuOx+8GI/mFbL/C5uXxtW+D0UaCWTNutC5JCV/xzzfGBKZuBWX4Y+I9fBUzw7SVnYukNElA==} + mobx-github@0.7.0: + resolution: {integrity: sha512-qsEtdrlTz0OICm6rPoL9GjX/foID18aHLmM6t+90ZFwiQ0fwbhX91tgxumjgv5JhuLl3g5aekU0Q2294Y/Ql0A==} mobx-i18n@0.7.5: resolution: {integrity: sha512-Tf+K3wdaUGcws0cV80s5EJuS+NFzGrWMqwdcZO4/ZXygCw2b7tKGNn8IDz/FbjgkYSH5hgileIfhvKLkLZGIEw==} @@ -4301,12 +4307,6 @@ packages: peerDependencies: react: '>=16' - mobx-react-helper@0.4.1: - resolution: {integrity: sha512-+chcWzOznL5/c6n33iswIGKvFJI/afmWRMFZ5NjjJyD3DJuoGuaiayEEhL3FITVKpwOkPKF2K5Werz8vhk6xEA==} - peerDependencies: - mobx: '>=6.11' - react: '>=16' - mobx-react-helper@0.5.1: resolution: {integrity: sha512-8jwR6LbPmC5s0tcmPz6CjXs1uarAcKjeTD+Oqbd7Vk4Ce49yDxeUOxG07VAcWZVnjnJXE0n79oG3z9c2XEEWTw==} peerDependencies: @@ -4701,9 +4701,8 @@ packages: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-bootstrap-editor@2.1.1: - resolution: {integrity: sha512-vnAy1MSn4mAZp418cz3R7IiUWXGGwNfmWQYlPUa2MWGm6hTTxJVeKTp2jhrH3n8sbbtg2MN4/co44OP+sZn1pQ==} - deprecated: Don't use version with old API & bugs + react-bootstrap-editor@2.1.2: + resolution: {integrity: sha512-MLP4ocZujco4AAlkyLFL9qV4q1qBlzc7NY6BRHS1uXqC2eZcXCNPbewj/NCEAUIALuFdIsVid+aRbRaS5xIOIA==} peerDependencies: react: '>=16' react-dom: '>=16' @@ -5642,7 +5641,7 @@ snapshots: '@apm-js-collab/code-transformer-bundler-plugins@0.5.0': dependencies: '@apm-js-collab/code-transformer': 0.15.0 - es-module-lexer: 2.3.0 + es-module-lexer: 2.3.1 magic-string: 0.30.21 module-details-from-path: 1.0.4 @@ -6418,20 +6417,20 @@ snapshots: '@cspell/dict-al': 1.1.1 '@cspell/dict-aws': 4.0.17 '@cspell/dict-bash': 4.2.3 - '@cspell/dict-companies': 3.2.11 + '@cspell/dict-companies': 3.2.12 '@cspell/dict-cpp': 7.0.2 '@cspell/dict-cryptocurrencies': 5.0.5 '@cspell/dict-csharp': 4.0.8 '@cspell/dict-css': 4.1.2 '@cspell/dict-dart': 2.3.2 - '@cspell/dict-data-science': 2.0.14 + '@cspell/dict-data-science': 2.0.16 '@cspell/dict-django': 4.1.6 '@cspell/dict-docker': 1.1.17 '@cspell/dict-dotnet': 5.0.13 '@cspell/dict-elixir': 4.0.8 - '@cspell/dict-en-common-misspellings': 2.1.12 - '@cspell/dict-en-gb-mit': 3.1.24 - '@cspell/dict-en_us': 4.4.35 + '@cspell/dict-en-common-misspellings': 2.1.13 + '@cspell/dict-en-gb-mit': 3.1.25 + '@cspell/dict-en_us': 4.4.36 '@cspell/dict-filetypes': 3.0.18 '@cspell/dict-flutter': 1.1.1 '@cspell/dict-fonts': 4.0.6 @@ -6446,7 +6445,7 @@ snapshots: '@cspell/dict-html-symbol-entities': 4.0.5 '@cspell/dict-java': 5.0.12 '@cspell/dict-julia': 1.1.1 - '@cspell/dict-k8s': 1.0.12 + '@cspell/dict-k8s': 1.0.13 '@cspell/dict-kotlin': 1.1.1 '@cspell/dict-latex': 5.1.0 '@cspell/dict-lorem-ipsum': 4.0.5 @@ -6455,21 +6454,21 @@ snapshots: '@cspell/dict-markdown': 2.0.17(@cspell/dict-css@4.1.2)(@cspell/dict-html-symbol-entities@4.0.5)(@cspell/dict-html@4.0.15)(@cspell/dict-typescript@3.2.3) '@cspell/dict-monkeyc': 1.0.12 '@cspell/dict-node': 5.0.9 - '@cspell/dict-npm': 5.2.41 + '@cspell/dict-npm': 5.2.43 '@cspell/dict-php': 4.1.1 '@cspell/dict-powershell': 5.0.15 '@cspell/dict-public-licenses': 2.0.16 - '@cspell/dict-python': 4.2.27 + '@cspell/dict-python': 4.2.29 '@cspell/dict-r': 2.1.1 '@cspell/dict-ruby': 5.1.1 '@cspell/dict-rust': 4.1.2 '@cspell/dict-scala': 5.0.9 '@cspell/dict-shell': 1.2.0 - '@cspell/dict-software-terms': 5.2.2 + '@cspell/dict-software-terms': 5.2.4 '@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-terraform': 1.1.4 '@cspell/dict-typescript': 3.2.3 '@cspell/dict-vue': 3.0.5 '@cspell/dict-zig': 1.0.0 @@ -6496,7 +6495,7 @@ snapshots: dependencies: '@cspell/dict-shell': 1.2.0 - '@cspell/dict-companies@3.2.11': {} + '@cspell/dict-companies@3.2.12': {} '@cspell/dict-cpp@7.0.2': {} @@ -6508,7 +6507,7 @@ snapshots: '@cspell/dict-dart@2.3.2': {} - '@cspell/dict-data-science@2.0.14': {} + '@cspell/dict-data-science@2.0.16': {} '@cspell/dict-django@4.1.6': {} @@ -6518,11 +6517,11 @@ snapshots: '@cspell/dict-elixir@4.0.8': {} - '@cspell/dict-en-common-misspellings@2.1.12': {} + '@cspell/dict-en-common-misspellings@2.1.13': {} - '@cspell/dict-en-gb-mit@3.1.24': {} + '@cspell/dict-en-gb-mit@3.1.25': {} - '@cspell/dict-en_us@4.4.35': {} + '@cspell/dict-en_us@4.4.36': {} '@cspell/dict-filetypes@3.0.18': {} @@ -6552,7 +6551,7 @@ snapshots: '@cspell/dict-julia@1.1.1': {} - '@cspell/dict-k8s@1.0.12': {} + '@cspell/dict-k8s@1.0.13': {} '@cspell/dict-kotlin@1.1.1': {} @@ -6575,7 +6574,7 @@ snapshots: '@cspell/dict-node@5.0.9': {} - '@cspell/dict-npm@5.2.41': {} + '@cspell/dict-npm@5.2.43': {} '@cspell/dict-php@4.1.1': {} @@ -6583,9 +6582,9 @@ snapshots: '@cspell/dict-public-licenses@2.0.16': {} - '@cspell/dict-python@4.2.27': + '@cspell/dict-python@4.2.29': dependencies: - '@cspell/dict-data-science': 2.0.14 + '@cspell/dict-data-science': 2.0.16 '@cspell/dict-r@2.1.1': {} @@ -6597,7 +6596,7 @@ snapshots: '@cspell/dict-shell@1.2.0': {} - '@cspell/dict-software-terms@5.2.2': {} + '@cspell/dict-software-terms@5.2.4': {} '@cspell/dict-sql@2.2.1': {} @@ -6605,7 +6604,7 @@ snapshots: '@cspell/dict-swift@2.0.6': {} - '@cspell/dict-terraform@1.1.3': {} + '@cspell/dict-terraform@1.1.4': {} '@cspell/dict-typescript@3.2.3': {} @@ -6710,6 +6709,8 @@ snapshots: tslib: 2.8.1 optional: true + '@epic-web/invariant@1.0.0': {} + '@eslint-community/eslint-utils@4.9.1(eslint@10.7.0(jiti@2.7.0))': dependencies: eslint: 10.7.0(jiti@2.7.0) @@ -7053,7 +7054,7 @@ snapshots: '@nolyfill/is-core-module@1.0.39': {} - '@octokit/openapi-types@26.0.0': {} + '@octokit/openapi-types@27.0.0': {} '@opentelemetry/api-logs@0.220.0': dependencies: @@ -8190,7 +8191,7 @@ snapshots: dependencies: fill-range: 7.1.1 - browser-fs-access@0.37.0: {} + browser-fs-access@0.38.0: {} browserslist@4.28.6: dependencies: @@ -8332,6 +8333,11 @@ snapshots: core-js@3.49.0: {} + cross-env@10.1.0: + dependencies: + '@epic-web/invariant': 1.0.0 + cross-spawn: 7.0.6 + cross-spawn@7.0.6: dependencies: path-key: 3.1.1 @@ -8523,11 +8529,11 @@ snapshots: editorjs-html@4.0.5: {} - edkit@1.2.7(typescript@5.9.3): + edkit@1.3.0(typescript@5.9.3): dependencies: '@swc/helpers': 0.5.23 '@types/turndown': 5.0.6 - browser-fs-access: 0.37.0 + browser-fs-access: 0.38.0 marked: 15.0.12 regenerator-runtime: 0.14.1 turndown: 7.2.4 @@ -8656,7 +8662,7 @@ snapshots: iterator.prototype: 1.1.5 math-intrinsics: 1.1.0 - es-module-lexer@2.3.0: {} + es-module-lexer@2.3.1: {} es-object-atoms@1.1.2: dependencies: @@ -9361,7 +9367,7 @@ snapshots: import-in-the-middle@3.3.1: dependencies: cjs-module-lexer: 2.2.0 - es-module-lexer: 2.3.0 + es-module-lexer: 2.3.1 module-details-from-path: 1.0.4 import-meta-resolve@4.2.0: {} @@ -9847,8 +9853,6 @@ snapshots: marked@15.0.12: {} - marked@18.0.6: {} - math-intrinsics@1.1.0: {} mdast-util-find-and-replace@3.0.2: @@ -10356,9 +10360,9 @@ snapshots: minipass@7.1.3: {} - mobx-github@0.6.2(core-js@3.49.0)(typescript@5.9.3): + mobx-github@0.7.0(core-js@3.49.0)(typescript@5.9.3): dependencies: - '@octokit/openapi-types': 26.0.0 + '@octokit/openapi-types': 27.0.0 '@swc/helpers': 0.5.23 '@types/lodash': 4.17.24 koajax: 3.3.0(core-js@3.49.0)(typescript@5.9.3) @@ -10400,17 +10404,6 @@ snapshots: - jsdom - typescript - mobx-react-helper@0.4.1(mobx@6.16.1)(react@19.2.7)(typescript@5.9.3): - dependencies: - '@swc/helpers': 0.5.23 - lodash.isequalwith: 4.4.0 - mobx: 6.16.1 - react: 19.2.7 - web-utility: 4.7.2(typescript@5.9.3) - transitivePeerDependencies: - - element-internals-polyfill - - typescript - mobx-react-helper@0.5.1(mobx@6.16.1)(react@19.2.7)(typescript@5.9.3): dependencies: '@swc/helpers': 0.5.23 @@ -10450,7 +10443,7 @@ snapshots: mobx-restful: 2.1.4(core-js@3.49.0)(mobx@6.16.1)(typescript@5.9.3) react: 19.2.7 react-bootstrap: 2.10.10(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) - react-bootstrap-editor: 2.1.1(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(typescript@5.9.3) + react-bootstrap-editor: 2.1.2(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(typescript@5.9.3) regenerator-runtime: 0.14.1 web-utility: 4.7.2(typescript@5.9.3) transitivePeerDependencies: @@ -10847,13 +10840,13 @@ snapshots: react-stately: 3.48.0(react@19.2.7) use-sync-external-store: 1.6.0(react@19.2.7) - react-bootstrap-editor@2.1.1(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(typescript@5.9.3): + react-bootstrap-editor@2.1.2(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(typescript@5.9.3): dependencies: '@swc/helpers': 0.5.23 - edkit: 1.2.7(typescript@5.9.3) + edkit: 1.3.0(typescript@5.9.3) mobx: 6.16.1 mobx-react: 9.2.2(mobx@6.16.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) - mobx-react-helper: 0.4.1(mobx@6.16.1)(react@19.2.7)(typescript@5.9.3) + mobx-react-helper: 0.5.1(mobx@6.16.1)(react@19.2.7)(typescript@5.9.3) react: 19.2.7 react-dom: 19.2.7(react@19.2.7) web-utility: 4.7.2(typescript@5.9.3) @@ -11856,7 +11849,7 @@ snapshots: browserslist: 4.28.6 chrome-trace-event: 1.0.4 enhanced-resolve: 5.24.2 - es-module-lexer: 2.3.0 + es-module-lexer: 2.3.1 eslint-scope: 5.1.1 events: 3.3.0 graceful-fs: 4.2.11 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index ef0b883..a13a18d 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -3,6 +3,7 @@ packages: autoInstallPeers: false overrides: next: $next + marked: ^15 allowBuilds: '@sentry/cli': true core-js: true From 9e88314b0ca44dba5924750aa3be725763bb81a8 Mon Sep 17 00:00:00 2001 From: South Drifter Date: Tue, 14 Jul 2026 23:01:06 +0000 Subject: [PATCH 9/9] [migrate] replace Babel with SWC based on patched Next.js to compile ES decorator [remove] useless Rich-text Editor example page & packages --- README.md | 9 +- babel.config.js | 26 -- components/Form/BlockEditor.tsx | 37 -- components/Form/HTMLEditor.tsx | 24 -- components/Navigator/MainNavigator.tsx | 4 +- next.config.ts | 107 ++--- package.json | 37 +- packages.d.ts | 6 - pages/api/rich-edit.json | 16 - pages/component.tsx | 71 ---- patches/next@16.2.10.patch | 42 ++ pnpm-lock.yaml | 522 +++++++------------------ pnpm-workspace.yaml | 5 +- translation/en-US.ts | 15 +- translation/zh-CN.ts | 9 +- translation/zh-TW.ts | 9 +- 16 files changed, 281 insertions(+), 658 deletions(-) delete mode 100644 babel.config.js delete mode 100644 components/Form/BlockEditor.tsx delete mode 100644 components/Form/HTMLEditor.tsx delete mode 100644 pages/api/rich-edit.json delete mode 100644 pages/component.tsx create mode 100644 patches/next@16.2.10.patch diff --git a/README.md b/README.md index b59f85c..93e0e42 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# wiki +# Open Source Bazaar wiki [Lark][0] project scaffold based on [TypeScript][2], [React][1], [Next.js][3], [Bootstrap][4] & [Workbox][5]. And this project bootstrapped with [`create-next-app`][6]. @@ -22,10 +22,9 @@ 1. [Markdown articles](pages/article/) 2. [Lark wiki](pages/wiki/) -3. [Editor components](pages/component.tsx) -4. [Pagination table](pages/pagination.tsx) -5. [Scroll list](pages/scroll-list.tsx) -6. [Not Found page (NGO)](pages/_error.tsx) +3. [Pagination table](pages/pagination.tsx) +4. [Scroll list](pages/scroll-list.tsx) +5. [Not Found page (NGO)](pages/_error.tsx) - Global: https://notfound.org/ - Chinese: https://www.dnpw.org/cn/pa-notfound.html diff --git a/babel.config.js b/babel.config.js deleted file mode 100644 index 605a645..0000000 --- a/babel.config.js +++ /dev/null @@ -1,26 +0,0 @@ -module.exports = { - presets: [ - // https://babeljs.io/docs/babel-preset-react - [ - '@babel/preset-react', - { - runtime: 'automatic', - development: process.env.BABEL_ENV === 'development', - }, - ], - ], - plugins: [ - // https://github.com/babel/babel/issues/16262#issuecomment-1962832499 - [ - '@babel/plugin-transform-typescript', - { - allowDeclareFields: true, - allowNamespaces: true, - allExtensions: true, - isTSX: true, - }, - ], - // https://babeljs.io/docs/babel-plugin-proposal-decorators#note-compatibility-with-babelplugin-transform-class-properties - ['@babel/plugin-proposal-decorators', { version: '2023-05' }], - ], -}; diff --git a/components/Form/BlockEditor.tsx b/components/Form/BlockEditor.tsx deleted file mode 100644 index 5afec96..0000000 --- a/components/Form/BlockEditor.tsx +++ /dev/null @@ -1,37 +0,0 @@ -import Code from '@editorjs/code'; -import Header from '@editorjs/header'; -import Image from '@editorjs/image'; -import LinkTool from '@editorjs/link'; -import List from '@editorjs/list'; -import Quote from '@editorjs/quote'; -import { Editor as Core, EditorProps } from 'idea-react'; - -import { upload } from '../../models/Base'; - -async function uploadByFile(file: File) { - try { - const url = await upload(file); - - return { success: 1, file: { url } }; - } catch (error) { - console.error(error); - - return { success: 0 }; - } -} - -const Tools = { - list: List, - code: Code, - linkTool: LinkTool, - image: { - class: Image, - config: { uploader: { uploadByFile } }, - }, - header: Header, - quote: Quote, -}; - -export default function Editor(props: Omit) { - return ; -} diff --git a/components/Form/HTMLEditor.tsx b/components/Form/HTMLEditor.tsx deleted file mode 100644 index 7172f81..0000000 --- a/components/Form/HTMLEditor.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import { - AudioTool, - CopyMarkdownTool, - Editor, - EditorProps, - IFrameTool, - ImageTool, - OriginalTools, - VideoTool, -} from 'react-bootstrap-editor'; -import { Constructor } from 'web-utility'; - -import { upload } from '../../models/Base'; - -const ExcludeTools = [IFrameTool, AudioTool, VideoTool]; - -const CustomTools = OriginalTools.filter( - Tool => !ExcludeTools.includes(Tool as Constructor), -); -ImageTool.prototype.save = upload; - -export default function HTMLEditor(props: EditorProps) { - return ; -} diff --git a/components/Navigator/MainNavigator.tsx b/components/Navigator/MainNavigator.tsx index f2332ca..99bf89c 100644 --- a/components/Navigator/MainNavigator.tsx +++ b/components/Navigator/MainNavigator.tsx @@ -30,7 +30,9 @@ export const MainNavigator: FC = observer(() => { {t('wiki')} - {t('component')} + {t('recipe')} + + {t('policy')} {t('pagination')} diff --git a/next.config.ts b/next.config.ts index 38ca501..e391282 100644 --- a/next.config.ts +++ b/next.config.ts @@ -2,13 +2,14 @@ import NextMDX from '@next/mdx'; import { withSentryConfig } from '@sentry/nextjs'; import CopyPlugin from 'copy-webpack-plugin'; import { readdirSync, statSync } from 'fs'; +import { NextConfig } from 'next'; import setPWA from 'next-pwa'; // @ts-expect-error no official types import withLess from 'next-with-less'; import RemarkFrontMatter from 'remark-frontmatter'; import RemarkGfm from 'remark-gfm'; import RemarkMdxFrontMatter from 'remark-mdx-frontmatter'; -import webpack from 'webpack'; +import { NormalModuleReplacementPlugin } from 'webpack'; const { NODE_ENV, CI, SENTRY_AUTH_TOKEN, SENTRY_ORG, SENTRY_PROJECT } = process.env; @@ -28,55 +29,73 @@ const withPWA = setPWA({ disable: isDev, }); +const webpack: NextConfig['webpack'] = config => { + config.plugins.push( + new NormalModuleReplacementPlugin(/^node:/, resource => { + resource.request = resource.request.replace(/^node:/, ''); + }), + ); + + if ( + statSync('pages/article', { + throwIfNoEntry: false, + })?.isDirectory() && + readdirSync('pages/article')[0] + ) + config.plugins.push( + new CopyPlugin({ + patterns: [ + { + from: 'pages/article', + to: 'static/article', + }, + ], + }), + ); + + return config; +}; + +const rewrites: NextConfig['rewrites'] = async () => ({ + beforeFiles: [ + { + source: '/proxy/github.com/:path*', + destination: 'https://github.com/:path*', + }, + { + source: '/proxy/raw.githubusercontent.com/:path*', + destination: 'https://raw.githubusercontent.com/:path*', + }, + { + source: '/recipe/images/:path*', + destination: + 'https://raw.githubusercontent.com/Gar-b-age/CookLikeHOC/main/images/:path*', + }, + ], + afterFiles: [], + fallback: [ + { + source: '/article/:path*', + destination: `/_next/static/article/:path*`, + has: [ + { + type: 'header', + key: 'Accept', + value: '.*(image|audio|video|application)/.*', + }, + ], + }, + ], +}); + const nextConfig = withPWA( withLess( withMDX({ output: CI ? 'standalone' : undefined, pageExtensions: ['ts', 'tsx', 'js', 'jsx', 'md', 'mdx'], transpilePackages: ['@sentry/browser'], - - webpack: config => { - config.plugins.push( - new webpack.NormalModuleReplacementPlugin(/^node:/, resource => { - resource.request = resource.request.replace(/^node:/, ''); - }), - ); - - if ( - statSync('pages/article', { - throwIfNoEntry: false, - })?.isDirectory() && - readdirSync('pages/article')[0] - ) - config.plugins.push( - new CopyPlugin({ - patterns: [ - { - from: 'pages/article', - to: 'static/article', - }, - ], - }), - ); - return config; - }, - rewrites: async () => ({ - beforeFiles: [], - afterFiles: [], - fallback: [ - { - source: '/article/:path*', - destination: `/_next/static/article/:path*`, - has: [ - { - type: 'header', - key: 'Accept', - value: '.*(image|audio|video|application)/.*', - }, - ], - }, - ], - }), + webpack, + rewrites, }), ), ); diff --git a/package.json b/package.json index 1d3fafa..0babc22 100644 --- a/package.json +++ b/package.json @@ -7,23 +7,14 @@ "node": ">=22" }, "dependencies": { - "@editorjs/code": "^2.9.4", - "@editorjs/editorjs": "^2.31.6", - "@editorjs/header": "^2.8.9", - "@editorjs/image": "^2.10.3", - "@editorjs/link": "^2.6.2", - "@editorjs/list": "^2.0.9", - "@editorjs/paragraph": "^2.11.7", - "@editorjs/quote": "^2.7.6", - "@git-diff-view/file": "^0.1.6", - "@git-diff-view/react": "^0.1.6", + "@git-diff-view/file": "^0.1.7", + "@git-diff-view/react": "^0.1.7", "@mdx-js/loader": "^3.1.1", "@mdx-js/react": "^3.1.1", - "@next/mdx": "^16.2.10", + "@next/mdx": "16.2.10", "@sentry/nextjs": "^10.65.0", "copy-webpack-plugin": "^14.0.0", "core-js": "^3.49.0", - "editorjs-html": "^4.0.5", "file-type": "^22.0.1", "formidable": "^3.5.4", "idea-react": "^2.2.2", @@ -34,7 +25,7 @@ "less": "^4.6.7", "less-loader": "^13.0.0", "lodash": "^4.18.1", - "marked": "^18.0.6", + "marked": "^15.0.12", "mime": "^4.1.0", "mobx": "^6.16.1", "mobx-github": "^0.7.0", @@ -44,16 +35,13 @@ "mobx-react-helper": "^0.5.1", "mobx-restful": "^2.1.4", "mobx-restful-table": "^2.6.3", - "next": "^16.2.10", + "next": "16.2.10", "next-pwa": "~5.6.0", "next-ssr-middleware": "^1.1.0", "next-with-less": "^3.0.1", - "prismjs": "^1.30.0", "react": "^19.2.7", "react-bootstrap": "^2.10.10", - "react-bootstrap-editor": "^2.1.2", "react-dom": "^19.2.7", - "react-editor-js": "^2.1.0", "remark-frontmatter": "^5.0.0", "remark-gfm": "^4.0.1", "remark-mdx-frontmatter": "^5.2.0", @@ -63,12 +51,9 @@ "yaml": "^2.9.0" }, "devDependencies": { - "@babel/plugin-proposal-decorators": "^7.29.7", - "@babel/plugin-transform-typescript": "^7.29.7", - "@babel/preset-react": "^7.29.7", "@cspell/eslint-plugin": "^10.0.1", "@eslint/js": "^10.0.1", - "@next/eslint-plugin-next": "^16.2.10", + "@next/eslint-plugin-next": "16.2.10", "@softonus/prettier-plugin-duplicate-remover": "^1.1.2", "@stylistic/eslint-plugin": "^5.10.0", "@types/eslint-config-prettier": "^6.11.3", @@ -81,7 +66,7 @@ "@types/react": "^19.2.17", "cross-env": "^10.1.0", "eslint": "^10.7.0", - "eslint-config-next": "^16.2.10", + "eslint-config-next": "16.2.10", "eslint-config-prettier": "^10.1.8", "eslint-plugin-react": "^7.37.5", "eslint-plugin-simple-import-sort": "^13.0.0", @@ -92,11 +77,10 @@ "prettier": "^3.9.5", "prettier-plugin-css-order": "^2.2.0", "typescript": "~5.9.3", - "typescript-eslint": "^8.63.0" + "typescript-eslint": "^8.64.0" }, "resolutions": { - "next": "$next", - "marked": "^15" + "next": "$next" }, "prettier": { "singleQuote": true, @@ -113,7 +97,8 @@ }, "scripts": { "prepare": "husky", - "install": "next typegen", + "install": "pnpx git-utility download https://github.com/Open-Source-Bazaar/key-vault main Open-Source-Bazaar.github.io || true", + "postinstall": "next typegen", "dev": "next dev --webpack", "build": "cross-env CI=true next build --webpack", "start": "next start", diff --git a/packages.d.ts b/packages.d.ts index b43fd90..aab83e2 100644 --- a/packages.d.ts +++ b/packages.d.ts @@ -3,9 +3,3 @@ declare module '*.less' { export default map; } - -declare module '@editorjs/*' { - const Plugin: import('@editorjs/editorjs').ToolConstructable; - - export default Plugin; -} diff --git a/pages/api/rich-edit.json b/pages/api/rich-edit.json deleted file mode 100644 index e11a7a2..0000000 --- a/pages/api/rich-edit.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "time": 1640560412325, - "blocks": [ - { - "id": "-dav4FSc-x", - "type": "header", - "data": { "text": "编辑演示", "level": 2 } - }, - { - "id": "-rN-eVAbuC", - "type": "paragraph", - "data": { "text": "something awesome..." } - } - ], - "version": "2.22.2" -} diff --git a/pages/component.tsx b/pages/component.tsx deleted file mode 100644 index 2fa1219..0000000 --- a/pages/component.tsx +++ /dev/null @@ -1,71 +0,0 @@ -// eslint-disable-next-line simple-import-sort/imports -import dynamic from 'next/dynamic'; -import { textJoin } from 'mobx-i18n'; -import { observer } from 'mobx-react'; -import { FC, PropsWithChildren, useContext } from 'react'; -import { Container } from 'react-bootstrap'; -import { CodeBlock, EditorHTML } from 'idea-react'; - -import 'prismjs/components/prism-javascript'; -import 'prismjs/components/prism-jsx'; -import 'prismjs/components/prism-typescript'; -import 'prismjs/components/prism-tsx'; - -import { PageHead } from '../components/Layout/PageHead'; -import { I18nContext } from '../models/Translation'; -import RichEditData from './api/rich-edit.json'; - -const HTMLEditor = dynamic(() => import('../components/Form/HTMLEditor'), { - ssr: false, -}); -HTMLEditor.displayName = 'HTMLEditor'; - -const BlockEditor = dynamic(() => import('../components/Form/BlockEditor'), { - ssr: false, -}); -BlockEditor.displayName = 'BlockEditor'; - -const Example: FC> = ({ - title, - children, -}) => ( - <> -

{title}

- {children} - {children} - -); - -const ComponentPage = observer(() => { - const { t } = useContext(I18nContext); - - const title = textJoin(t('component'), t('examples')); - - return ( - <> - - - - - -

{title}

- - - - - - - - - - - - -
- - ); -}); -export default ComponentPage; diff --git a/patches/next@16.2.10.patch b/patches/next@16.2.10.patch new file mode 100644 index 0000000..b253b02 --- /dev/null +++ b/patches/next@16.2.10.patch @@ -0,0 +1,42 @@ +diff --git a/dist/build/swc/options.js b/dist/build/swc/options.js +index 8da2935285177960b5ae8b89070979d720ad15af..305dbb07c625b1afd7cb37bbcc2b51f7d14715dd 100644 +--- a/dist/build/swc/options.js ++++ b/dist/build/swc/options.js +@@ -57,7 +57,7 @@ function getParserOptions({ filename, jsConfig, ...rest }) { + ...rest, + syntax: hasTsSyntax ? 'typescript' : 'ecmascript', + dynamicImport: true, +- decorators: enableDecorators, ++ decorators: true, + // Exclude regular TypeScript files from React transformation to prevent e.g. generic parameters and angle-bracket type assertion from being interpreted as JSX tags. + [hasTsSyntax ? 'tsx' : 'jsx']: !isTSFile, + importAssertions: true +@@ -102,6 +102,7 @@ function getBaseSWCOptions({ filename, jest, development, hasReactRefresh, globa + } : {}, + legacyDecorator: enableDecorators, + decoratorMetadata: emitDecoratorMetadata, ++ decoratorVersion: '2022-03', + useDefineForClassFields: useDefineForClassFields, + react: { + importSource: (jsConfig == null ? void 0 : (_jsConfig_compilerOptions4 = jsConfig.compilerOptions) == null ? void 0 : _jsConfig_compilerOptions4.jsxImportSource) ?? ((compilerOptions == null ? void 0 : compilerOptions.emotion) && !isReactServerLayer ? '@emotion/react' : 'react'), +diff --git a/dist/esm/build/swc/options.js b/dist/esm/build/swc/options.js +index 6d5922e81ec99e3f89028bcad957492994b02d77..ccc298359e6d252dde631e0179b2fd511d89385f 100644 +--- a/dist/esm/build/swc/options.js ++++ b/dist/esm/build/swc/options.js +@@ -26,7 +26,7 @@ export function getParserOptions({ filename, jsConfig, ...rest }) { + ...rest, + syntax: hasTsSyntax ? 'typescript' : 'ecmascript', + dynamicImport: true, +- decorators: enableDecorators, ++ decorators: true, + // Exclude regular TypeScript files from React transformation to prevent e.g. generic parameters and angle-bracket type assertion from being interpreted as JSX tags. + [hasTsSyntax ? 'tsx' : 'jsx']: !isTSFile, + importAssertions: true +@@ -71,6 +71,7 @@ function getBaseSWCOptions({ filename, jest, development, hasReactRefresh, globa + } : {}, + legacyDecorator: enableDecorators, + decoratorMetadata: emitDecoratorMetadata, ++ decoratorVersion: '2022-03', + useDefineForClassFields: useDefineForClassFields, + react: { + importSource: (jsConfig == null ? void 0 : (_jsConfig_compilerOptions4 = jsConfig.compilerOptions) == null ? void 0 : _jsConfig_compilerOptions4.jsxImportSource) ?? ((compilerOptions == null ? void 0 : compilerOptions.emotion) && !isReactServerLayer ? '@emotion/react' : 'react'), diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5f99e80..54060f7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -5,43 +5,23 @@ settings: excludeLinksFromLockfile: false overrides: - next: ^16.2.10 - marked: ^15 + next: 16.2.10 + +patchedDependencies: + next@16.2.10: + hash: 2656f13eae5e46358e749a46a5d0d1a8e007c34856c8b9c28076813a569204cc + path: patches/next@16.2.10.patch importers: .: dependencies: - '@editorjs/code': - specifier: ^2.9.4 - version: 2.9.4 - '@editorjs/editorjs': - specifier: ^2.31.6 - version: 2.31.6 - '@editorjs/header': - specifier: ^2.8.9 - version: 2.8.9 - '@editorjs/image': - specifier: ^2.10.3 - version: 2.10.3 - '@editorjs/link': - specifier: ^2.6.2 - version: 2.6.2 - '@editorjs/list': - specifier: ^2.0.9 - version: 2.0.9 - '@editorjs/paragraph': - specifier: ^2.11.7 - version: 2.11.7 - '@editorjs/quote': - specifier: ^2.7.6 - version: 2.7.6 '@git-diff-view/file': - specifier: ^0.1.6 - version: 0.1.6 + specifier: ^0.1.7 + version: 0.1.7 '@git-diff-view/react': - specifier: ^0.1.6 - version: 0.1.6(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + specifier: ^0.1.7 + version: 0.1.7(react-dom@19.2.7(react@19.2.7))(react@19.2.7) '@mdx-js/loader': specifier: ^3.1.1 version: 3.1.1(webpack@5.108.4(postcss@8.4.31)) @@ -49,20 +29,17 @@ importers: specifier: ^3.1.1 version: 3.1.1(@types/react@19.2.17)(react@19.2.7) '@next/mdx': - specifier: ^16.2.10 + specifier: 16.2.10 version: 16.2.10(@mdx-js/loader@3.1.1(webpack@5.108.4(postcss@8.4.31)))(@mdx-js/react@3.1.1(@types/react@19.2.17)(react@19.2.7)) '@sentry/nextjs': specifier: ^10.65.0 - version: 10.65.0(@opentelemetry/core@2.9.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.9.0(@opentelemetry/api@1.9.1))(next@16.2.10(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(react@19.2.7)(webpack@5.108.4(postcss@8.4.31)) + version: 10.65.0(@opentelemetry/core@2.9.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.9.0(@opentelemetry/api@1.9.1))(next@16.2.10(patch_hash=2656f13eae5e46358e749a46a5d0d1a8e007c34856c8b9c28076813a569204cc)(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(react@19.2.7)(webpack@5.108.4(postcss@8.4.31)) copy-webpack-plugin: specifier: ^14.0.0 version: 14.0.0(webpack@5.108.4(postcss@8.4.31)) core-js: specifier: ^3.49.0 version: 3.49.0 - editorjs-html: - specifier: ^4.0.5 - version: 4.0.5 file-type: specifier: ^22.0.1 version: 22.0.1 @@ -94,7 +71,7 @@ importers: specifier: ^4.18.1 version: 4.18.1 marked: - specifier: ^15 + specifier: ^15.0.12 version: 15.0.12 mime: specifier: ^4.1.0 @@ -124,35 +101,26 @@ importers: specifier: ^2.6.3 version: 2.6.3(@types/react@19.2.17)(core-js@3.49.0)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(typescript@5.9.3) next: - specifier: ^16.2.10 - version: 16.2.10(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + specifier: 16.2.10 + version: 16.2.10(patch_hash=2656f13eae5e46358e749a46a5d0d1a8e007c34856c8b9c28076813a569204cc)(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) next-pwa: specifier: ~5.6.0 - version: 5.6.0(@babel/core@7.29.7)(next@16.2.10(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(postcss@8.4.31)(webpack@5.108.4(postcss@8.4.31)) + version: 5.6.0(@babel/core@7.29.7)(next@16.2.10(patch_hash=2656f13eae5e46358e749a46a5d0d1a8e007c34856c8b9c28076813a569204cc)(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(postcss@8.4.31)(webpack@5.108.4(postcss@8.4.31)) next-ssr-middleware: specifier: ^1.1.0 - version: 1.1.0(next@16.2.10(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(react@19.2.7)(typescript@5.9.3) + version: 1.1.0(next@16.2.10(patch_hash=2656f13eae5e46358e749a46a5d0d1a8e007c34856c8b9c28076813a569204cc)(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(react@19.2.7)(typescript@5.9.3) next-with-less: specifier: ^3.0.1 - version: 3.0.1(less-loader@13.0.0(less@4.6.7)(webpack@5.108.4(postcss@8.4.31)))(less@4.6.7)(next@16.2.10(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)) - prismjs: - specifier: ^1.30.0 - version: 1.30.0 + version: 3.0.1(less-loader@13.0.0(less@4.6.7)(webpack@5.108.4(postcss@8.4.31)))(less@4.6.7)(next@16.2.10(patch_hash=2656f13eae5e46358e749a46a5d0d1a8e007c34856c8b9c28076813a569204cc)(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)) react: specifier: ^19.2.7 version: 19.2.7 react-bootstrap: specifier: ^2.10.10 version: 2.10.10(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) - react-bootstrap-editor: - specifier: ^2.1.2 - version: 2.1.2(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(typescript@5.9.3) react-dom: specifier: ^19.2.7 version: 19.2.7(react@19.2.7) - react-editor-js: - specifier: ^2.1.0 - version: 2.1.0(@editorjs/editorjs@2.31.6)(@editorjs/paragraph@2.11.7)(react@19.2.7) remark-frontmatter: specifier: ^5.0.0 version: 5.0.0 @@ -175,15 +143,6 @@ importers: specifier: ^2.9.0 version: 2.9.0 devDependencies: - '@babel/plugin-proposal-decorators': - specifier: ^7.29.7 - version: 7.29.7(@babel/core@7.29.7) - '@babel/plugin-transform-typescript': - specifier: ^7.29.7 - version: 7.29.7(@babel/core@7.29.7) - '@babel/preset-react': - specifier: ^7.29.7 - version: 7.29.7(@babel/core@7.29.7) '@cspell/eslint-plugin': specifier: ^10.0.1 version: 10.0.1(eslint@10.7.0(jiti@2.7.0)) @@ -191,7 +150,7 @@ importers: specifier: ^10.0.1 version: 10.0.1(eslint@10.7.0(jiti@2.7.0)) '@next/eslint-plugin-next': - specifier: ^16.2.10 + specifier: 16.2.10 version: 16.2.10 '@softonus/prettier-plugin-duplicate-remover': specifier: ^1.1.2 @@ -230,7 +189,7 @@ importers: specifier: ^10.7.0 version: 10.7.0(jiti@2.7.0) eslint-config-next: - specifier: ^16.2.10 + specifier: 16.2.10 version: 16.2.10(eslint@10.7.0(jiti@2.7.0))(typescript@5.9.3) eslint-config-prettier: specifier: ^10.1.8 @@ -263,8 +222,8 @@ importers: specifier: ~5.9.3 version: 5.9.3 typescript-eslint: - specifier: ^8.63.0 - version: 8.63.0(eslint@10.7.0(jiti@2.7.0))(typescript@5.9.3) + specifier: ^8.64.0 + version: 8.64.0(eslint@10.7.0(jiti@2.7.0))(typescript@5.9.3) packages: @@ -429,24 +388,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-proposal-decorators@7.29.7': - resolution: {integrity: sha512-EtU0Hi3GvrTqD56xKmZvV/uCXK2ZbwVNPNLAquVItcAZpUhkXwWlo3Fmj0c2LxgSf2I8IDULeAepwNP1OefLXg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2': resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-decorators@7.29.7': - resolution: {integrity: sha512-9MTTLbF39X6sqM92JPEsoI7++26hjZvzkxKZy64aMhWLH2mPkJ/Q3AV4QLmls3R14FpSpkOwQQfUh962JGQxxg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-import-assertions@7.29.7': resolution: {integrity: sha512-/An1OCBN93thpBAGyfsK2pcf0jvju1SAtKkL2Ny++B5Sy6sqgzXDQH1cZxWbF96Wuk+bn41MDA9bLd4VVAw6rw==} engines: {node: '>=6.9.0'} @@ -459,18 +406,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-jsx@7.29.7': - resolution: {integrity: sha512-TSu8+mHCoEaaCDEZ0I3+6mvTBYR4PCxQwf2z9/r5Tbztv6NaLR3B9thGTTxX2WGuGHJqRiAbKPeGTJ5XWXVg6A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-typescript@7.29.7': - resolution: {integrity: sha512-ngr+82Sh0xMz25TPCZi+nC2iTzjfCdWS2ONXTp/PtSCHCgaCNBpdMqgvJ2ccdLlClVZ7sisIgB914j/JFe+RZA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-unicode-sets-regex@7.18.6': resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} engines: {node: '>=6.9.0'} @@ -711,30 +646,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-display-name@7.29.7': - resolution: {integrity: sha512-+1wdDMGNb4UPeY3Q4L5yLiYe6TXPXubs4NjrgRFw13hPRLJfEMw2Q5OXkee6/IfdqePIeW4Jjwe3aBh7SdKz4Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-react-jsx-development@7.29.7': - resolution: {integrity: sha512-Xfy3UVMF04+ypnFbkhvfqtmvwfe92qwQdbGZVonhE+6v35GzlofmOnA1szaZqzb9xYWr0nl1e5EMmzi0DNON1g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-react-jsx@7.29.7': - resolution: {integrity: sha512-WsZulLVBUHXVj2cUcPVx6UE21TpalB6bHbSFErKT0Ib++ax24jjXe73FqlWvdylFOjiuPHYi6VCcgRad1ItN+A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-react-pure-annotations@7.29.7': - resolution: {integrity: sha512-H5E+HBgDpr6Q5t+Aj11tL7XkIui1jhbIoArVQnqjgXo5/3YxkN7ZEBcWF4RQlB0T4rrxJQbXS6kiFV6B7XTqUA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-regenerator@7.29.7': resolution: {integrity: sha512-rNNFV0DBAJp988xW2DOntfDoYn1eR8GGF5AT5vYc+rjyfaQkM242c9tZUHHPe7KYaiJizXPWhQTzzdbXySyhBw==} engines: {node: '>=6.9.0'} @@ -783,12 +694,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-typescript@7.29.7': - resolution: {integrity: sha512-jK52h8LaLc7JarhQV2ofeFMts4H7vnOXnqZNA6fYglBTZewRBE51KWt3BUltW1P+KoPsYkHoJeXePuz4zo2LMw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-unicode-escapes@7.29.7': resolution: {integrity: sha512-jCfXxSjf94lf4E0hKE0AByxF6F3/pVFqRdUUNkDJhsY0m1ZKjnN6ZYyMeHNpzflxb/0q5b7t3p+BE+SLF1WOtA==} engines: {node: '>=6.9.0'} @@ -824,12 +729,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 - '@babel/preset-react@7.29.7': - resolution: {integrity: sha512-C+PV1TFUPTmBQGoPBL8j2QmLpZ117YTCwxIZeJOM96GbYMFSc7/pOXU5lVykwnZxyTqQxRsvoRk6f2FktZgGHA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/runtime@7.29.7': resolution: {integrity: sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw==} engines: {node: '>=6.9.0'} @@ -855,12 +754,6 @@ packages: '@codexteam/icons@0.0.4': resolution: {integrity: sha512-V8N/TY2TGyas4wLrPIFq7bcow68b3gu8DfDt1+rrHPtXxcexadKauRJL6eQgfG7Z0LCrN4boLRawR4S9gjIh/Q==} - '@codexteam/icons@0.0.5': - resolution: {integrity: sha512-s6H2KXhLz2rgbMZSkRm8dsMJvyUNZsEjxobBEg9ztdrb1B2H3pEzY6iTwI4XUPJWJ3c3qRKwV4TrO3J5jUdoQA==} - - '@codexteam/icons@0.3.3': - resolution: {integrity: sha512-cp7mkZPgmBuSxigTm3Vb+DtVHYeX7qXfQd7o05vcLD8Ag5WvRlol2QSn5P10k0CDAJwmkH9nQGQLBycErS9lsQ==} - '@cspell/cspell-bundled-dicts@10.0.1': resolution: {integrity: sha512-WvkSDNX4Uyyj/ZgbPO6L38iFNMfK1EqsH1FteRiI2qLz6QZMXRFrIt12OqiWIplzZDDaVpBH9FCJOPJll0fjCQ==} engines: {node: '>=22.18.0'} @@ -1096,42 +989,18 @@ packages: '@editorjs/caret@1.1.0': resolution: {integrity: sha512-dzUjrPV7mtqM0HR/7IwT1/1PfyMxUfe5MRXo9joFmBRDIcrQ5ikbqVxSL9+Hy5tQ+BUWBwqLUgX1UKTJylWW9Q==} - '@editorjs/code@2.9.4': - resolution: {integrity: sha512-c0zyWodNqjL/0WI67sZvACIOFU9IAHG0UeeIpjss8pZGGNBum+UWkh7nKULK0SYvaOrdPdlWWqjuFU1TFA5jUA==} - - '@editorjs/dom@0.0.5': - resolution: {integrity: sha512-SZ78Gwpkp3EUhjBIp0lSojeQ35V9acF8SubJsMeOH/vlOUE40GOnvvwWZnF05lO7bIB0dOHhhJy4N7IIAWxP2w==} - '@editorjs/dom@1.1.0': resolution: {integrity: sha512-aH8OeS3DXCDG2WP6yt/uS6Z9PstrA3Re930boIilxtMdF7Ht+pKJrq3OJnd7OCMPVO/y7UOAmtHNesVx6v4K2g==} '@editorjs/editorjs@2.31.6': resolution: {integrity: sha512-j2nxuFCD3DnoJDUD0hPO5tirpuQ6sWmmuHATl3EI7fG1it3Ml7jk0WJtu3E+TRLBd7zfNeJhDThbP3LnBEn2GA==} - '@editorjs/header@2.8.9': - resolution: {integrity: sha512-eBL9/PLDKiE9ADZycmgps3PLz9Lw8w6rPFXr0mfHuhHQI/ynP/q1vLpyruBrRCflTLD2Dlj5nYPoJjL5mP/MFw==} - - '@editorjs/helpers@0.0.4': - resolution: {integrity: sha512-ieg3dzo2m1/ELze/RMNADiAiC5amXxIlVXoJ5vvXITOu/p/dPsrF+Oi3h5gBYvtGk9vg5LJUSG5YWU0tBUO1tw==} - '@editorjs/helpers@1.2.2': resolution: {integrity: sha512-saDNARvY3xd70H4KE0eBq2hlV0Z7SpfI1/1iVqyVt5PqhlEOIR5rWJFH4c63BHTa6BfiR/+PMl1n7X/X7SlptQ==} - '@editorjs/image@2.10.3': - resolution: {integrity: sha512-ekCsGICZOIdghF/U2T34H7CItqaWAoJDXbkRD+x8l/LIo/7Ozf7KovYm21qz+CluArgV4RurVFHqwlz+O0vfJA==} - - '@editorjs/link@2.6.2': - resolution: {integrity: sha512-3cPx6M4ZvwDDvsi0E0fvMR3rvveAV/C0GRo1JLeZJ9cG9QgyoNolj4eu5Eqx3/r1XTC/he54qYEIZ/Dc4Lr4Ow==} - - '@editorjs/list@2.0.9': - resolution: {integrity: sha512-rUTgDSt5wygD3Dp24bNyp6vvye/Xf4UWju0ZuvWeP13Z4cu2z1Jb5JFSTEhCou72XUGuf4xVhtsd8cm/bwUS1g==} - '@editorjs/paragraph@2.11.7': resolution: {integrity: sha512-qD6bbWvRc4VvP0mXDOm+hOhzzhUYR9ZjcAvgCuKWcCbUMpCvhVF1s8NX40zdjekPi6JEnuHTamCncTrSzVsVhw==} - '@editorjs/quote@2.7.6': - resolution: {integrity: sha512-D01KUMSDj2r+6Z+xjDkQqI+y6URpeHCvj0+P4pah+GtkG040lWjFb2H4pgHFXuol2cbfyAoraYSw85fuPheCvw==} - '@emnapi/core@1.10.0': resolution: {integrity: sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==} @@ -1186,17 +1055,17 @@ packages: resolution: {integrity: sha512-+CNAzxglkrpNf/kKywqQfk74QjtceuOE7Qm+AF8miRvPF/wmmK5+OJOgVh3AVTT3RP2mH3+FOaxlE5v72owk0A==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@git-diff-view/core@0.1.6': - resolution: {integrity: sha512-q2Ch8jURF6pL7VeNpOgHBRVY9gsGLXCOYpKXHG3BqpXe0kv6GNSUux8SmAYsDrakBzfgDClODxDtsM2rfiWpnA==} + '@git-diff-view/core@0.1.7': + resolution: {integrity: sha512-ZW/kumNoUQ8+DgawYhcrABa7TOALYzn3pe723uTHSy6/r35qAwgswJxF1bkdV9Zr+KHuhlFeRLiVhjij59qdIA==} - '@git-diff-view/file@0.1.6': - resolution: {integrity: sha512-VSsByONBl98c4SVyoN8I1twooEZCh63AbH79tcpvCAzt7nJ5Ulmr1UIS8qAaMDDZiEgXq13JlkZkQh9vpc6xZQ==} + '@git-diff-view/file@0.1.7': + resolution: {integrity: sha512-Od+D+FTqgGPfQllv6qkeanyjcF/MGyNJHc5t1gxr7mym5ojjsq1TaeabQ59Jep2MMYTwVAtZUSlQVRDVwURIjw==} - '@git-diff-view/lowlight@0.1.6': - resolution: {integrity: sha512-YIsiAc2aWAePWaDNi3k8xI0Vs/ZItt5J6nrftTIFbMFN3GwDOsyJFm2L7o8XWKTJkV2yItaz28KUI9CWj0MVZA==} + '@git-diff-view/lowlight@0.1.7': + resolution: {integrity: sha512-Rkv2ERr83xTSsjlrJxjYVWndREEARG11viTrJ7qyUU+lnPPmSNF1aemp1lKiOLs6sNCeJJdIMhxLFJtKfmRIZw==} - '@git-diff-view/react@0.1.6': - resolution: {integrity: sha512-koABBon5bNKh6/WnWSxggK9ojw+cvWAPnY2/ciOkwlR+8dm0h6A7Qa5kP2HFDxqYHwZ2imkGMcSLgXMOnWHRFA==} + '@git-diff-view/react@0.1.7': + resolution: {integrity: sha512-EMBFgeSpP3nF8hJwy/3bz8sZpxmyuWV20925oTGhslWXpIgg6AZg+KMRmQkz/WjX0D/2LrC3gQZJLE/5x6mfnw==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 @@ -1573,8 +1442,8 @@ packages: peerDependencies: '@opentelemetry/api': '>=1.3.0 <1.10.0' - '@opentelemetry/semantic-conventions@1.41.1': - resolution: {integrity: sha512-/UhIkaZgPutTFmQ7RnIJGgDXZmtEJ7Dvi86xNTFWcnRxVRNk/aotsqDJYeEvDP+FSMB2SdW+pQzNMcWP0rwuNA==} + '@opentelemetry/semantic-conventions@1.43.0': + resolution: {integrity: sha512-eSYWTm620tTk45EKSedaUL8MFYI8hW164hIXsgIHyxu3VobUB3fFCu5t0hQby6OoWRPsG1KkKUG2M5UadiLiVg==} engines: {node: '>=14'} '@paralleldrive/cuid2@2.3.1': @@ -1918,7 +1787,7 @@ packages: resolution: {integrity: sha512-9gDKQAAXcWh210fMI/ZNCa7940HYt7dGjnJVP0Tk9ozUR57W4C9vXvHJDTYPJrFxYxTHw7lwxWGervk8a6Tf4g==} engines: {node: '>=18'} peerDependencies: - next: ^16.2.10 + next: 16.2.10 '@sentry/node-core@10.65.0': resolution: {integrity: sha512-U01X9mPT+jZnsLPmPWfBU67Ka+t/Sdd9RGAuvGoKdrI6N47a/9PDkM9oCW+kj0fmZwogZHTgSnzJU5oi3pImgA==} @@ -2158,63 +2027,63 @@ packages: '@types/warning@3.0.4': resolution: {integrity: sha512-CqN8MnISMwQbLJXO3doBAV4Yw9hx9/Pyr2rZ78+NfaCnhyRA/nKrpyk6E7mKw17ZOaQdLpK9GiUjrqLzBlN3sg==} - '@typescript-eslint/eslint-plugin@8.63.0': - resolution: {integrity: sha512-rvwSgqT+DHpWdzfSzPatRLm02a0GlESt++9iy3hLCDY4BgkaLcl8LBi9Yh7XGFBpwcBE/K3024QuXWTpbz4FfQ==} + '@typescript-eslint/eslint-plugin@8.64.0': + resolution: {integrity: sha512-CGvQPBxN3wZLu6Rz2kFUpZeoCm78xUic92ck39KPePkO1NPOwjCqdQnm5Q87tpWw9vcBvW8XLrDXjH9PWYtJ3Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.63.0 + '@typescript-eslint/parser': ^8.64.0 eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/parser@8.63.0': - resolution: {integrity: sha512-gwh4gvvlaVDKKxyfxMG+Gnu1u9X0OQBwyGLkbwB65dIzBKnxeRiJlNFqlI3zwVhNXJIs6qV7mlFCn/BIajlVig==} + '@typescript-eslint/parser@8.64.0': + resolution: {integrity: sha512-KA0OshtlcCCXmbfqyZkM5pV3/WNraJf7DkJRLpyrmwPtud57H5BDX7C3k0LPSPxpprfRL+cJDGabF10mvNCoCw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/project-service@8.63.0': - resolution: {integrity: sha512-e5dh0/UI0ok53AlZ5wRkXCB32z/f2jUZqPR/ygAw5WYaSw8j9EoJWlS7wQjr/dmOaqWjnPIn2m+HhVPCMWGZVQ==} + '@typescript-eslint/project-service@8.64.0': + resolution: {integrity: sha512-tk4WpOJ6IEbGrVHaNmM0YRrwAD3exZlIK3iadQNAxh4YKk6jvUQ4ecq18n+v7+meh+cJ3j+D8nbk8sRKhlwLQg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/scope-manager@8.63.0': - resolution: {integrity: sha512-uUyfMWCnDSN8bCpcrY8nGP2BLkQ9Xn0GsipcONcpIDWhwhO4ZSyHvyS14U3X75mzxWxL3I2UZIrenTzdzcJO8A==} + '@typescript-eslint/scope-manager@8.64.0': + resolution: {integrity: sha512-CXEaFdYXjSTgKhisNkwCcJwTP8Pl+fmRrEQrri4nm3vU743bALrxzLmq7fHG/7e6a5xO0lDYeURpZmBuhHk54w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/tsconfig-utils@8.63.0': - resolution: {integrity: sha512-sUAbkulqBAsncKnbRP3+7CtQFRKicexnj7ZwNC6ddCR7EmrXvjvdCYMJbUIqMd6lwoEriZjwLo08aS5tSjVMHg==} + '@typescript-eslint/tsconfig-utils@8.64.0': + resolution: {integrity: sha512-2yo8rRNKuzbVWQp5kslhANqZ2uDAeROQHBRZNPu8JDsHmeFNj/XJJhX/FhNUWmkHHvoNsKa6+tHJiig87EzsQw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/type-utils@8.63.0': - resolution: {integrity: sha512-Nzzh/OGxVCOjObjaj1CQF2RUasyYy2Jfuh+zZ3PjLzG2fYRriAiZLib9UKtO+CpQAS3YHiAS+ckZDclwqI1TPA==} + '@typescript-eslint/type-utils@8.64.0': + resolution: {integrity: sha512-XWG4Fmmv/6SvyS9nH8jWrKs6terwJvE8cyRt1CzYYqzp9OrPhCT4cMc/f7C6RZCwG+qMmiffJS1/qJP8G1URtg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/types@8.63.0': - resolution: {integrity: sha512-xyLtl9DUBBFrcJS4x2pIqGLH68/tC2uOa4Z7pUteW09D3bXnnXUom4dyPikzWgB7llmIc1zoeI3aoUdC4rPK/Q==} + '@typescript-eslint/types@8.64.0': + resolution: {integrity: sha512-qjhfuTfLXjA4IOzXvz0rTjT01BqEiIgPoUeMwiEjnaHKJMTNo8rH5pYW1a2L/0Dnux2fPC85AeyJoWaGa8WxTA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.63.0': - resolution: {integrity: sha512-ygBkU+B7ex5UI/gKhaqexWev79uISfIv7XQCRNYO/jmD8rGLPyWLAb3KMRT6nd8Gt9bmUBi9+iX6tBdYfOY81Q==} + '@typescript-eslint/typescript-estree@8.64.0': + resolution: {integrity: sha512-Pztpsn1aCE1oWDvDEfUk31nngvvF7vUB5SwHFEaZIFpvw7WJtqUHHL4plBZDA9HfWJJjL13BdG0YrJInTUvoVA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/utils@8.63.0': - resolution: {integrity: sha512-fUKaeAvrTuQg/Tgt3nliAUSZHJM6DlCcfyEmxCvlX8kieWSStBX+5O5Fnidtc3i2JrH+9c/GL4RY2iasd/GPTA==} + '@typescript-eslint/utils@8.64.0': + resolution: {integrity: sha512-aJUGVB3+U0htrrCjoA8qukw8cm8fNCGAxK/tVoS70k8aeb7DETKeFozRiVFIwEeN9WJLsjaP3ph8I60tY2XZoQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/visitor-keys@8.63.0': - resolution: {integrity: sha512-UexrHGnGTpbuQHct2ExOc2ZcFbGUS9FOesCxxqdBGcpI1BxYu/LZ6U8Aq6/72XtF/qRBk9nhuGHFJIXXMhPMdw==} + '@typescript-eslint/visitor-keys@8.64.0': + resolution: {integrity: sha512-mrtuL8Nsn6gi2H4mo5KMTp823M+3Q19Ew/i+Zlikq20tIMm99C3Ez0dCmkWWnxut20esQvTg8aUSEhMcAOXhEw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@ungap/structured-clone@1.3.3': @@ -2943,8 +2812,8 @@ packages: editorjs-html@4.0.5: resolution: {integrity: sha512-ImQYxB3fNCJcd+nJ+Vbne/6PxidO1cYByNpu9nBDStVabfjVrMW65BuR+IEZfOii8VKYH+CW/lYDb2GDlzZtDg==} - edkit@1.3.0: - resolution: {integrity: sha512-Fn6N4V7KDJAz0ZnH0ajrjMmRaD01nMPLlmmPtiIj52o0C4DEo8V1Wf/2ibWvggzpcJK1mA+WJLBVNduVYVPrkw==} + edkit@1.3.1: + resolution: {integrity: sha512-4dLMZZ2XCmo1M8HHsO9NikK1H9zoDDIeAo7ypirxNASTWT2aDt8guoCfpH1uIleDcoRdI6og7MZo4u1XItqD6w==} ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} @@ -2954,8 +2823,8 @@ packages: engines: {node: '>=0.10.0'} hasBin: true - electron-to-chromium@1.5.389: - resolution: {integrity: sha512-cEto7aeOqBfU1D+c5py5pE+ooscKE75JifxLBdFUZsqAxRS6y7kebtxAZvICszSl05gPjYHDTjY+lXpyGvpJbg==} + electron-to-chromium@1.5.391: + resolution: {integrity: sha512-YmCu4856jkgKT1Nh6fwRdeVrM6Ydf/fBnq51tpmSfX+jOcUMTxh31yH6hjKScRenhB2oDSvA9oooxcpjogPeig==} emoji-regex@10.6.0: resolution: {integrity: sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==} @@ -4361,8 +4230,8 @@ packages: mz@2.7.0: resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} - nanoid@3.3.12: - resolution: {integrity: sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==} + nanoid@3.3.16: + resolution: {integrity: sha512-bzlKTyNJ7+LdGIIwy8ijFpIqEQIvafahV7eYykJ8Cvh42EdJeODoJ6gUJXpQJvej1BddH8OqTXZNE/KfbWAu8Q==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true @@ -4389,12 +4258,12 @@ packages: next-pwa@5.6.0: resolution: {integrity: sha512-XV8g8C6B7UmViXU8askMEYhWwQ4qc/XqJGnexbLV68hzKaGHZDMtHsm2TNxFcbR7+ypVuth/wwpiIlMwpRJJ5A==} peerDependencies: - next: ^16.2.10 + next: 16.2.10 next-ssr-middleware@1.1.0: resolution: {integrity: sha512-eYKTZExd+4yq4Cs2lrQ+XJlgegKAgmCvigy9Ro3ScaHjUNevyXovHO/bbdTYIvr4DtYDbZPJkw4VbYAaVZ5x7w==} peerDependencies: - next: ^16.2.10 + next: 16.2.10 react: '>=18' next-with-less@3.0.1: @@ -4402,7 +4271,7 @@ packages: peerDependencies: less: '*' less-loader: '>= 7.0.0' - next: ^16.2.10 + next: 16.2.10 next@16.2.10: resolution: {integrity: sha512-2som5AVXb3kE6Yjine3/mNbBayYF58eguBWIVVUdr1y/L426xyVEgYxgBG+1QC34P2x5E+tcDup6XkuOAX3dCA==} @@ -4701,11 +4570,11 @@ packages: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-bootstrap-editor@2.1.2: - resolution: {integrity: sha512-MLP4ocZujco4AAlkyLFL9qV4q1qBlzc7NY6BRHS1uXqC2eZcXCNPbewj/NCEAUIALuFdIsVid+aRbRaS5xIOIA==} + react-bootstrap-editor@2.1.3: + resolution: {integrity: sha512-v2jYOUa7i0C6oqZAHablkVJkC3O3b94/jyikp1xxTrbpK+uTsfe+dSgdqqkpjNknDHpEu0ATgzQWPSrDvJ//FQ==} peerDependencies: react: '>=16' - react-dom: '>=16' + react-dom: '>=16.4.2' react-bootstrap@2.10.10: resolution: {integrity: sha512-gMckKUqn8aK/vCnfwoBpBVFUGT9SVQxwsYrp9yDHt0arXMamxALerliKBxr1TPbntirK/HGrUAHYbAeQTa9GHQ==} @@ -5329,8 +5198,8 @@ packages: resolution: {integrity: sha512-phPGCwqr2+Qo0fwniCE8e4pKnGu/yFb5nD5Y8bf0EEeiI5GklnACYA9GFy/DrAeRrKHXvHn+1SUsOWgJp6RO+g==} engines: {node: '>= 0.4'} - typescript-eslint@8.63.0: - resolution: {integrity: sha512-xgwXyzG4sK9ALkBxbyGkTMMOS+imnW65iPhxCQMK83KhxyoDNW7l+IDqEf9vMdoUidHpOoS967RCq4eMiTexwQ==} + typescript-eslint@8.64.0: + resolution: {integrity: sha512-0qg+pDNMnqYzqH9AnNK+39tejHvsShUOUUoRUgtnTGE7QuMZhiFDnozq8nHJVq+Wae6NMLKNWLg5WmkcC/ndyQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 @@ -5863,24 +5732,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-proposal-decorators@7.29.7(@babel/core@7.29.7)': - dependencies: - '@babel/core': 7.29.7 - '@babel/helper-create-class-features-plugin': 7.29.7(@babel/core@7.29.7) - '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-syntax-decorators': 7.29.7(@babel/core@7.29.7) - transitivePeerDependencies: - - supports-color - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.29.7)': dependencies: '@babel/core': 7.29.7 - '@babel/plugin-syntax-decorators@7.29.7(@babel/core@7.29.7)': - dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-syntax-import-assertions@7.29.7(@babel/core@7.29.7)': dependencies: '@babel/core': 7.29.7 @@ -5891,16 +5746,6 @@ snapshots: '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.29.7)': - dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.29.7 - - '@babel/plugin-syntax-typescript@7.29.7(@babel/core@7.29.7)': - dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.29.7)': dependencies: '@babel/core': 7.29.7 @@ -6173,35 +6018,6 @@ snapshots: '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-react-display-name@7.29.7(@babel/core@7.29.7)': - dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.29.7 - - '@babel/plugin-transform-react-jsx-development@7.29.7(@babel/core@7.29.7)': - dependencies: - '@babel/core': 7.29.7 - '@babel/plugin-transform-react-jsx': 7.29.7(@babel/core@7.29.7) - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-react-jsx@7.29.7(@babel/core@7.29.7)': - dependencies: - '@babel/core': 7.29.7 - '@babel/helper-annotate-as-pure': 7.29.7 - '@babel/helper-module-imports': 7.29.7 - '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-syntax-jsx': 7.29.7(@babel/core@7.29.7) - '@babel/types': 7.29.7 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-react-pure-annotations@7.29.7(@babel/core@7.29.7)': - dependencies: - '@babel/core': 7.29.7 - '@babel/helper-annotate-as-pure': 7.29.7 - '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-regenerator@7.29.7(@babel/core@7.29.7)': dependencies: '@babel/core': 7.29.7 @@ -6246,17 +6062,6 @@ snapshots: '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-typescript@7.29.7(@babel/core@7.29.7)': - dependencies: - '@babel/core': 7.29.7 - '@babel/helper-annotate-as-pure': 7.29.7 - '@babel/helper-create-class-features-plugin': 7.29.7(@babel/core@7.29.7) - '@babel/helper-plugin-utils': 7.29.7 - '@babel/helper-skip-transparent-expression-wrappers': 7.29.7 - '@babel/plugin-syntax-typescript': 7.29.7(@babel/core@7.29.7) - transitivePeerDependencies: - - supports-color - '@babel/plugin-transform-unicode-escapes@7.29.7(@babel/core@7.29.7)': dependencies: '@babel/core': 7.29.7 @@ -6364,18 +6169,6 @@ snapshots: '@babel/types': 7.29.7 esutils: 2.0.3 - '@babel/preset-react@7.29.7(@babel/core@7.29.7)': - dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.29.7 - '@babel/helper-validator-option': 7.29.7 - '@babel/plugin-transform-react-display-name': 7.29.7(@babel/core@7.29.7) - '@babel/plugin-transform-react-jsx': 7.29.7(@babel/core@7.29.7) - '@babel/plugin-transform-react-jsx-development': 7.29.7(@babel/core@7.29.7) - '@babel/plugin-transform-react-pure-annotations': 7.29.7(@babel/core@7.29.7) - transitivePeerDependencies: - - supports-color - '@babel/runtime@7.29.7': {} '@babel/template@7.29.7': @@ -6407,10 +6200,6 @@ snapshots: '@codexteam/icons@0.0.4': {} - '@codexteam/icons@0.0.5': {} - - '@codexteam/icons@0.3.3': {} - '@cspell/cspell-bundled-dicts@10.0.1': dependencies: '@cspell/dict-ada': 4.1.1 @@ -6637,14 +6426,6 @@ snapshots: dependencies: '@editorjs/dom': 1.1.0 - '@editorjs/code@2.9.4': - dependencies: - '@codexteam/icons': 0.3.3 - - '@editorjs/dom@0.0.5': - dependencies: - '@editorjs/helpers': 0.0.4 - '@editorjs/dom@1.1.0': dependencies: '@editorjs/helpers': 1.2.2 @@ -6655,39 +6436,14 @@ snapshots: codex-notifier: 1.1.2 codex-tooltip: 1.0.6 - '@editorjs/header@2.8.9': - dependencies: - '@codexteam/icons': 0.0.5 - '@editorjs/editorjs': 2.31.6 - - '@editorjs/helpers@0.0.4': {} - '@editorjs/helpers@1.2.2': dependencies: codex-tooltip: 1.0.6 - '@editorjs/image@2.10.3': - dependencies: - '@codexteam/icons': 0.3.3 - - '@editorjs/link@2.6.2': - dependencies: - '@babel/runtime': 7.29.7 - '@codexteam/icons': 0.0.4 - - '@editorjs/list@2.0.9': - dependencies: - '@codexteam/icons': 0.3.3 - '@editorjs/paragraph@2.11.7': dependencies: '@codexteam/icons': 0.0.4 - '@editorjs/quote@2.7.6': - dependencies: - '@codexteam/icons': 0.3.3 - '@editorjs/dom': 0.0.5 - '@emnapi/core@1.10.0': dependencies: '@emnapi/wasi-threads': 1.2.1 @@ -6745,30 +6501,30 @@ snapshots: '@eslint/core': 1.2.1 levn: 0.4.1 - '@git-diff-view/core@0.1.6': + '@git-diff-view/core@0.1.7': dependencies: - '@git-diff-view/lowlight': 0.1.6 + '@git-diff-view/lowlight': 0.1.7 fast-diff: 1.3.0 highlight.js: 11.11.1 lowlight: 3.3.0 - '@git-diff-view/file@0.1.6': + '@git-diff-view/file@0.1.7': dependencies: - '@git-diff-view/core': 0.1.6 + '@git-diff-view/core': 0.1.7 diff: 8.0.4 fast-diff: 1.3.0 highlight.js: 11.11.1 lowlight: 3.3.0 - '@git-diff-view/lowlight@0.1.6': + '@git-diff-view/lowlight@0.1.7': dependencies: '@types/hast': 3.0.5 highlight.js: 11.11.1 lowlight: 3.3.0 - '@git-diff-view/react@0.1.6(react-dom@19.2.7(react@19.2.7))(react@19.2.7)': + '@git-diff-view/react@0.1.7(react-dom@19.2.7(react@19.2.7))(react@19.2.7)': dependencies: - '@git-diff-view/core': 0.1.6 + '@git-diff-view/core': 0.1.7 '@types/hast': 3.0.5 fast-diff: 1.3.0 highlight.js: 11.11.1 @@ -7065,7 +6821,7 @@ snapshots: '@opentelemetry/core@2.9.0(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/semantic-conventions': 1.41.1 + '@opentelemetry/semantic-conventions': 1.43.0 '@opentelemetry/instrumentation@0.220.0(@opentelemetry/api@1.9.1)': dependencies: @@ -7080,7 +6836,7 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.1 '@opentelemetry/core': 2.9.0(@opentelemetry/api@1.9.1) - '@opentelemetry/semantic-conventions': 1.41.1 + '@opentelemetry/semantic-conventions': 1.43.0 '@opentelemetry/sdk-trace-base@2.9.0(@opentelemetry/api@1.9.1)': dependencies: @@ -7088,16 +6844,16 @@ snapshots: '@opentelemetry/core': 2.9.0(@opentelemetry/api@1.9.1) '@opentelemetry/resources': 2.9.0(@opentelemetry/api@1.9.1) '@opentelemetry/sdk-trace': 2.9.0(@opentelemetry/api@1.9.1) - '@opentelemetry/semantic-conventions': 1.41.1 + '@opentelemetry/semantic-conventions': 1.43.0 '@opentelemetry/sdk-trace@2.9.0(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 '@opentelemetry/core': 2.9.0(@opentelemetry/api@1.9.1) '@opentelemetry/resources': 2.9.0(@opentelemetry/api@1.9.1) - '@opentelemetry/semantic-conventions': 1.41.1 + '@opentelemetry/semantic-conventions': 1.43.0 - '@opentelemetry/semantic-conventions@1.41.1': {} + '@opentelemetry/semantic-conventions@1.43.0': {} '@paralleldrive/cuid2@2.3.1': dependencies: @@ -7389,7 +7145,7 @@ snapshots: dependencies: '@sentry/core': 10.65.0 - '@sentry/nextjs@10.65.0(@opentelemetry/core@2.9.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.9.0(@opentelemetry/api@1.9.1))(next@16.2.10(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(react@19.2.7)(webpack@5.108.4(postcss@8.4.31))': + '@sentry/nextjs@10.65.0(@opentelemetry/core@2.9.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.9.0(@opentelemetry/api@1.9.1))(next@16.2.10(patch_hash=2656f13eae5e46358e749a46a5d0d1a8e007c34856c8b9c28076813a569204cc)(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(react@19.2.7)(webpack@5.108.4(postcss@8.4.31))': dependencies: '@opentelemetry/api': 1.9.1 '@rollup/plugin-commonjs': 28.0.1(rollup@4.62.2) @@ -7402,7 +7158,7 @@ snapshots: '@sentry/react': 10.65.0(react@19.2.7) '@sentry/vercel-edge': 10.65.0 '@sentry/webpack-plugin': 5.4.0(rollup@4.62.2)(webpack@5.108.4(postcss@8.4.31)) - next: 16.2.10(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + next: 16.2.10(patch_hash=2656f13eae5e46358e749a46a5d0d1a8e007c34856c8b9c28076813a569204cc)(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) rollup: 4.62.2 stacktrace-parser: 0.1.11 transitivePeerDependencies: @@ -7497,7 +7253,7 @@ snapshots: '@stylistic/eslint-plugin@5.10.0(eslint@10.7.0(jiti@2.7.0))': dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@10.7.0(jiti@2.7.0)) - '@typescript-eslint/types': 8.63.0 + '@typescript-eslint/types': 8.64.0 eslint: 10.7.0(jiti@2.7.0) eslint-visitor-keys: 4.2.1 espree: 10.4.0 @@ -7653,7 +7409,7 @@ snapshots: '@types/node': 24.13.3 '@types/react': 19.2.17 '@types/react-dom': 19.2.3(@types/react@19.2.17) - next: 16.2.10(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + next: 16.2.10(patch_hash=2656f13eae5e46358e749a46a5d0d1a8e007c34856c8b9c28076813a569204cc)(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) workbox-build: 6.6.0 transitivePeerDependencies: - '@babel/core' @@ -7714,14 +7470,14 @@ snapshots: '@types/warning@3.0.4': {} - '@typescript-eslint/eslint-plugin@8.63.0(@typescript-eslint/parser@8.63.0(eslint@10.7.0(jiti@2.7.0))(typescript@5.9.3))(eslint@10.7.0(jiti@2.7.0))(typescript@5.9.3)': + '@typescript-eslint/eslint-plugin@8.64.0(@typescript-eslint/parser@8.64.0(eslint@10.7.0(jiti@2.7.0))(typescript@5.9.3))(eslint@10.7.0(jiti@2.7.0))(typescript@5.9.3)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.63.0(eslint@10.7.0(jiti@2.7.0))(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.63.0 - '@typescript-eslint/type-utils': 8.63.0(eslint@10.7.0(jiti@2.7.0))(typescript@5.9.3) - '@typescript-eslint/utils': 8.63.0(eslint@10.7.0(jiti@2.7.0))(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.63.0 + '@typescript-eslint/parser': 8.64.0(eslint@10.7.0(jiti@2.7.0))(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.64.0 + '@typescript-eslint/type-utils': 8.64.0(eslint@10.7.0(jiti@2.7.0))(typescript@5.9.3) + '@typescript-eslint/utils': 8.64.0(eslint@10.7.0(jiti@2.7.0))(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.64.0 eslint: 10.7.0(jiti@2.7.0) ignore: 7.0.6 natural-compare: 1.4.0 @@ -7730,41 +7486,41 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.63.0(eslint@10.7.0(jiti@2.7.0))(typescript@5.9.3)': + '@typescript-eslint/parser@8.64.0(eslint@10.7.0(jiti@2.7.0))(typescript@5.9.3)': dependencies: - '@typescript-eslint/scope-manager': 8.63.0 - '@typescript-eslint/types': 8.63.0 - '@typescript-eslint/typescript-estree': 8.63.0(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.63.0 + '@typescript-eslint/scope-manager': 8.64.0 + '@typescript-eslint/types': 8.64.0 + '@typescript-eslint/typescript-estree': 8.64.0(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.64.0 debug: 4.4.3 eslint: 10.7.0(jiti@2.7.0) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.63.0(typescript@5.9.3)': + '@typescript-eslint/project-service@8.64.0(typescript@5.9.3)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.63.0(typescript@5.9.3) - '@typescript-eslint/types': 8.63.0 + '@typescript-eslint/tsconfig-utils': 8.64.0(typescript@5.9.3) + '@typescript-eslint/types': 8.64.0 debug: 4.4.3 typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.63.0': + '@typescript-eslint/scope-manager@8.64.0': dependencies: - '@typescript-eslint/types': 8.63.0 - '@typescript-eslint/visitor-keys': 8.63.0 + '@typescript-eslint/types': 8.64.0 + '@typescript-eslint/visitor-keys': 8.64.0 - '@typescript-eslint/tsconfig-utils@8.63.0(typescript@5.9.3)': + '@typescript-eslint/tsconfig-utils@8.64.0(typescript@5.9.3)': dependencies: typescript: 5.9.3 - '@typescript-eslint/type-utils@8.63.0(eslint@10.7.0(jiti@2.7.0))(typescript@5.9.3)': + '@typescript-eslint/type-utils@8.64.0(eslint@10.7.0(jiti@2.7.0))(typescript@5.9.3)': dependencies: - '@typescript-eslint/types': 8.63.0 - '@typescript-eslint/typescript-estree': 8.63.0(typescript@5.9.3) - '@typescript-eslint/utils': 8.63.0(eslint@10.7.0(jiti@2.7.0))(typescript@5.9.3) + '@typescript-eslint/types': 8.64.0 + '@typescript-eslint/typescript-estree': 8.64.0(typescript@5.9.3) + '@typescript-eslint/utils': 8.64.0(eslint@10.7.0(jiti@2.7.0))(typescript@5.9.3) debug: 4.4.3 eslint: 10.7.0(jiti@2.7.0) ts-api-utils: 2.5.0(typescript@5.9.3) @@ -7772,14 +7528,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.63.0': {} + '@typescript-eslint/types@8.64.0': {} - '@typescript-eslint/typescript-estree@8.63.0(typescript@5.9.3)': + '@typescript-eslint/typescript-estree@8.64.0(typescript@5.9.3)': dependencies: - '@typescript-eslint/project-service': 8.63.0(typescript@5.9.3) - '@typescript-eslint/tsconfig-utils': 8.63.0(typescript@5.9.3) - '@typescript-eslint/types': 8.63.0 - '@typescript-eslint/visitor-keys': 8.63.0 + '@typescript-eslint/project-service': 8.64.0(typescript@5.9.3) + '@typescript-eslint/tsconfig-utils': 8.64.0(typescript@5.9.3) + '@typescript-eslint/types': 8.64.0 + '@typescript-eslint/visitor-keys': 8.64.0 debug: 4.4.3 minimatch: 10.2.5 semver: 7.8.5 @@ -7789,20 +7545,20 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.63.0(eslint@10.7.0(jiti@2.7.0))(typescript@5.9.3)': + '@typescript-eslint/utils@8.64.0(eslint@10.7.0(jiti@2.7.0))(typescript@5.9.3)': dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@10.7.0(jiti@2.7.0)) - '@typescript-eslint/scope-manager': 8.63.0 - '@typescript-eslint/types': 8.63.0 - '@typescript-eslint/typescript-estree': 8.63.0(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.64.0 + '@typescript-eslint/types': 8.64.0 + '@typescript-eslint/typescript-estree': 8.64.0(typescript@5.9.3) eslint: 10.7.0(jiti@2.7.0) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.63.0': + '@typescript-eslint/visitor-keys@8.64.0': dependencies: - '@typescript-eslint/types': 8.63.0 + '@typescript-eslint/types': 8.64.0 eslint-visitor-keys: 5.0.1 '@ungap/structured-clone@1.3.3': {} @@ -8197,7 +7953,7 @@ snapshots: dependencies: baseline-browser-mapping: 2.10.43 caniuse-lite: 1.0.30001805 - electron-to-chromium: 1.5.389 + electron-to-chromium: 1.5.391 node-releases: 2.0.51 update-browserslist-db: 1.2.3(browserslist@4.28.6) @@ -8529,7 +8285,7 @@ snapshots: editorjs-html@4.0.5: {} - edkit@1.3.0(typescript@5.9.3): + edkit@1.3.1(typescript@5.9.3): dependencies: '@swc/helpers': 0.5.23 '@types/turndown': 5.0.6 @@ -8549,7 +8305,7 @@ snapshots: dependencies: jake: 10.9.4 - electron-to-chromium@1.5.389: {} + electron-to-chromium@1.5.391: {} emoji-regex@10.6.0: {} @@ -8721,7 +8477,7 @@ snapshots: eslint-plugin-react: 7.37.5(eslint@10.7.0(jiti@2.7.0)) eslint-plugin-react-hooks: 7.1.1(eslint@10.7.0(jiti@2.7.0)) globals: 16.4.0 - typescript-eslint: 8.63.0(eslint@10.7.0(jiti@2.7.0))(typescript@5.9.3) + typescript-eslint: 8.64.0(eslint@10.7.0(jiti@2.7.0))(typescript@5.9.3) optionalDependencies: typescript: 5.9.3 transitivePeerDependencies: @@ -10443,7 +10199,7 @@ snapshots: mobx-restful: 2.1.4(core-js@3.49.0)(mobx@6.16.1)(typescript@5.9.3) react: 19.2.7 react-bootstrap: 2.10.10(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) - react-bootstrap-editor: 2.1.2(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(typescript@5.9.3) + react-bootstrap-editor: 2.1.3(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(typescript@5.9.3) regenerator-runtime: 0.14.1 web-utility: 4.7.2(typescript@5.9.3) transitivePeerDependencies: @@ -10481,7 +10237,7 @@ snapshots: object-assign: 4.1.1 thenify-all: 1.6.0 - nanoid@3.3.12: {} + nanoid@3.3.16: {} napi-postinstall@0.3.4: {} @@ -10497,12 +10253,12 @@ snapshots: neo-async@2.6.2: {} - next-pwa@5.6.0(@babel/core@7.29.7)(next@16.2.10(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(postcss@8.4.31)(webpack@5.108.4(postcss@8.4.31)): + next-pwa@5.6.0(@babel/core@7.29.7)(next@16.2.10(patch_hash=2656f13eae5e46358e749a46a5d0d1a8e007c34856c8b9c28076813a569204cc)(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(postcss@8.4.31)(webpack@5.108.4(postcss@8.4.31)): dependencies: babel-loader: 8.4.1(@babel/core@7.29.7)(webpack@5.108.4(postcss@8.4.31)) clean-webpack-plugin: 4.0.0(webpack@5.108.4(postcss@8.4.31)) globby: 11.1.0 - next: 16.2.10(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + next: 16.2.10(patch_hash=2656f13eae5e46358e749a46a5d0d1a8e007c34856c8b9c28076813a569204cc)(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) terser-webpack-plugin: 5.6.1(postcss@8.4.31)(webpack@5.108.4(postcss@8.4.31)) workbox-webpack-plugin: 6.6.0(webpack@5.108.4(postcss@8.4.31)) workbox-window: 6.6.0 @@ -10524,7 +10280,7 @@ snapshots: - uglify-js - webpack - next-ssr-middleware@1.1.0(next@16.2.10(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(react@19.2.7)(typescript@5.9.3): + next-ssr-middleware@1.1.0(next@16.2.10(patch_hash=2656f13eae5e46358e749a46a5d0d1a8e007c34856c8b9c28076813a569204cc)(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(react@19.2.7)(typescript@5.9.3): dependencies: '@koa/bodyparser': 6.1.0(koa@3.2.1) '@koa/router': 15.7.0(koa@3.2.1) @@ -10533,7 +10289,7 @@ snapshots: '@types/react': 19.2.17 jsonwebtoken: 9.0.3 koa: 3.2.1 - next: 16.2.10(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + next: 16.2.10(patch_hash=2656f13eae5e46358e749a46a5d0d1a8e007c34856c8b9c28076813a569204cc)(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) react: 19.2.7 tslib: 2.8.1 web-utility: 4.7.2(typescript@5.9.3) @@ -10542,14 +10298,14 @@ snapshots: - supports-color - typescript - next-with-less@3.0.1(less-loader@13.0.0(less@4.6.7)(webpack@5.108.4(postcss@8.4.31)))(less@4.6.7)(next@16.2.10(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)): + next-with-less@3.0.1(less-loader@13.0.0(less@4.6.7)(webpack@5.108.4(postcss@8.4.31)))(less@4.6.7)(next@16.2.10(patch_hash=2656f13eae5e46358e749a46a5d0d1a8e007c34856c8b9c28076813a569204cc)(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)): dependencies: clone-deep: 4.0.1 less: 4.6.7 less-loader: 13.0.0(less@4.6.7)(webpack@5.108.4(postcss@8.4.31)) - next: 16.2.10(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + next: 16.2.10(patch_hash=2656f13eae5e46358e749a46a5d0d1a8e007c34856c8b9c28076813a569204cc)(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) - next@16.2.10(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7): + next@16.2.10(patch_hash=2656f13eae5e46358e749a46a5d0d1a8e007c34856c8b9c28076813a569204cc)(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7): dependencies: '@next/env': 16.2.10 '@swc/helpers': 0.5.15 @@ -10758,7 +10514,7 @@ snapshots: postcss@8.4.31: dependencies: - nanoid: 3.3.12 + nanoid: 3.3.16 picocolors: 1.1.1 source-map-js: 1.2.1 @@ -10840,10 +10596,10 @@ snapshots: react-stately: 3.48.0(react@19.2.7) use-sync-external-store: 1.6.0(react@19.2.7) - react-bootstrap-editor@2.1.2(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(typescript@5.9.3): + react-bootstrap-editor@2.1.3(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(typescript@5.9.3): dependencies: '@swc/helpers': 0.5.23 - edkit: 1.3.0(typescript@5.9.3) + edkit: 1.3.1(typescript@5.9.3) mobx: 6.16.1 mobx-react: 9.2.2(mobx@6.16.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) mobx-react-helper: 0.5.1(mobx@6.16.1)(react@19.2.7)(typescript@5.9.3) @@ -11639,12 +11395,12 @@ snapshots: possible-typed-array-names: 1.1.0 reflect.getprototypeof: 1.0.10 - typescript-eslint@8.63.0(eslint@10.7.0(jiti@2.7.0))(typescript@5.9.3): + typescript-eslint@8.64.0(eslint@10.7.0(jiti@2.7.0))(typescript@5.9.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.63.0(@typescript-eslint/parser@8.63.0(eslint@10.7.0(jiti@2.7.0))(typescript@5.9.3))(eslint@10.7.0(jiti@2.7.0))(typescript@5.9.3) - '@typescript-eslint/parser': 8.63.0(eslint@10.7.0(jiti@2.7.0))(typescript@5.9.3) - '@typescript-eslint/typescript-estree': 8.63.0(typescript@5.9.3) - '@typescript-eslint/utils': 8.63.0(eslint@10.7.0(jiti@2.7.0))(typescript@5.9.3) + '@typescript-eslint/eslint-plugin': 8.64.0(@typescript-eslint/parser@8.64.0(eslint@10.7.0(jiti@2.7.0))(typescript@5.9.3))(eslint@10.7.0(jiti@2.7.0))(typescript@5.9.3) + '@typescript-eslint/parser': 8.64.0(eslint@10.7.0(jiti@2.7.0))(typescript@5.9.3) + '@typescript-eslint/typescript-estree': 8.64.0(typescript@5.9.3) + '@typescript-eslint/utils': 8.64.0(eslint@10.7.0(jiti@2.7.0))(typescript@5.9.3) eslint: 10.7.0(jiti@2.7.0) typescript: 5.9.3 transitivePeerDependencies: diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index a13a18d..ef91c76 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -3,7 +3,8 @@ packages: autoInstallPeers: false overrides: next: $next - marked: ^15 +patchedDependencies: + next@16.2.10: patches/next@16.2.10.patch allowBuilds: '@sentry/cli': true core-js: true @@ -12,4 +13,4 @@ allowBuilds: unrs-resolver: true publicHoistPattern: - '*import-in-the-middle*' - - '*require-in-the-middle*' \ No newline at end of file + - '*require-in-the-middle*' diff --git a/translation/en-US.ts b/translation/en-US.ts index 4a8eaf3..28590fb 100644 --- a/translation/en-US.ts +++ b/translation/en-US.ts @@ -6,7 +6,6 @@ export default { upstream_projects: 'Upstream projects', home_page: 'Home Page', source_code: 'Source Code', - component: 'Component', pagination: 'Pagination', powered_by: 'Powered by', documentation: 'Documentation', @@ -42,6 +41,10 @@ export default { load_more: 'Load more...', no_more: 'No more', + // Search + keywords: 'Keywords', + search_results: 'Search Results', + // MDX Article article: 'Article', wiki: 'Wiki', @@ -53,21 +56,19 @@ export default { 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.', + docs_auto_load_from_github: + 'Documents will be automatically loaded from a GitHub repository.', policy: 'Policy', creation_date: 'Creation Date', publication_date: 'Publication Date', edit_on_github: 'Edit on GitHub', view_original: 'View Original', - github_document_description: 'This is a document page based on a GitHub repository.', + github_document_description: + 'This is a document page based on a GitHub repository.', view_or_edit_on_github: 'View or edit this content on GitHub', // Recipe recipe: 'Recipe', servings: 'Servings', preparation_time: 'Preparation time', - - // Search - keywords: 'Keywords', - search_results: 'Search Results', } as const; diff --git a/translation/zh-CN.ts b/translation/zh-CN.ts index 0532c3f..8697fec 100644 --- a/translation/zh-CN.ts +++ b/translation/zh-CN.ts @@ -6,7 +6,6 @@ export default { upstream_projects: '上游项目', home_page: '主页', source_code: '源代码', - component: '组件', pagination: '分页', powered_by: '强力驱动自', documentation: '文档', @@ -40,6 +39,10 @@ export default { load_more: '加载更多……', no_more: '没有更多', + // Search + keywords: '关键词', + search_results: '搜索结果', + // MDX Article article: '文章', wiki: '知识库', @@ -64,8 +67,4 @@ export default { recipe: '菜谱', servings: '份数', preparation_time: '准备时间', - - // Search - keywords: '关键词', - search_results: '搜索结果', } as const; diff --git a/translation/zh-TW.ts b/translation/zh-TW.ts index d67f37c..ceaee1e 100644 --- a/translation/zh-TW.ts +++ b/translation/zh-TW.ts @@ -6,7 +6,6 @@ export default { upstream_projects: '上游專案', home_page: '主頁', source_code: '源代碼', - component: '元件', pagination: '分頁', powered_by: '強力驅動自', documentation: '文檔', @@ -40,6 +39,10 @@ export default { load_more: '加載更多……', no_more: '沒有更多', + // Search + keywords: '關鍵詞', + search_results: '搜尋結果', + // MDX Article article: '文章', wiki: '知識庫', @@ -64,8 +67,4 @@ export default { recipe: '菜譜', servings: '份數', preparation_time: '準備時間', - - // Search - keywords: '關鍵詞', - search_results: '搜尋結果', } as const;