diff --git a/package.json b/package.json index 42cea0b..810da71 100644 --- a/package.json +++ b/package.json @@ -88,11 +88,6 @@ "mobx-react-helper": "$mobx-react-helper", "next": "$next" }, - "pnpm": { - "patchedDependencies": { - "next@16.2.10": "patches/next@16.2.10.patch" - } - }, "prettier": { "singleQuote": true, "trailingComma": "all", diff --git a/pages/policy/[...slug].tsx b/pages/policy/[...slug].tsx deleted file mode 100644 index d6fbb84..0000000 --- a/pages/policy/[...slug].tsx +++ /dev/null @@ -1,137 +0,0 @@ -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 deleted file mode 100644 index 86e8f3c..0000000 --- a/pages/policy/index.tsx +++ /dev/null @@ -1,61 +0,0 @@ -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 deleted file mode 100644 index 9a83f62..0000000 --- a/pages/recipe/[...slug].tsx +++ /dev/null @@ -1,140 +0,0 @@ -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 deleted file mode 100644 index d508412..0000000 --- a/pages/recipe/index.tsx +++ /dev/null @@ -1,75 +0,0 @@ -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/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/index.tsx b/pages/wiki/index.tsx deleted file mode 100644 index 4286806..0000000 --- a/pages/wiki/index.tsx +++ /dev/null @@ -1,53 +0,0 @@ -import { WikiNode } from 'mobx-lark'; -import { observer } from 'mobx-react'; -import { GetStaticProps } from 'next'; -import { FC, useContext } from 'react'; -import { Container } from 'react-bootstrap'; -import { treeFrom } from 'web-utility'; - -import { PageHead } from '../../components/Layout/PageHead'; -import { I18nContext } from '../../models/Translation'; -import { wikiStore } from '../../models/Wiki'; -import { lark } from '../api/Lark/core'; - -export const getStaticProps: GetStaticProps = async () => { - await lark.getAccessToken(); - - const nodes = await wikiStore.getAll(); - - return { props: { nodes } }; -}; - -interface XWikiNode extends WikiNode { - // eslint-disable-next-line no-restricted-syntax - children?: XWikiNode[]; -} - -const renderTree = (children?: XWikiNode[]) => - children && ( -
    - {children.map(({ node_token, title, children }) => ( -
  1. - {title} - - {renderTree(children)} -
  2. - ))} -
- ); - -const WikiIndexPage: FC<{ nodes: XWikiNode[] }> = observer(({ nodes }) => { - const { t } = useContext(I18nContext); - - return ( - - - -

{t('wiki')}

- - {renderTree(treeFrom(nodes, 'node_token', 'parent_node_token', 'children'))} -
- ); -}); - -export default WikiIndexPage; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9c47178..aebc0df 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,7 +10,7 @@ overrides: patchedDependencies: next@16.2.10: - hash: 3ruvu6fsawejy2nd3hex2n2nbe + hash: 2656f13eae5e46358e749a46a5d0d1a8e007c34856c8b9c28076813a569204cc path: patches/next@16.2.10.patch importers: @@ -94,13 +94,13 @@ importers: version: 0.8.1(core-js@3.49.0)(typescript@5.9.3) next: specifier: 16.2.10 - version: 16.2.10(patch_hash=3ruvu6fsawejy2nd3hex2n2nbe)(@babel/core@7.29.7)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(sass@1.101.0) + version: 16.2.10(patch_hash=2656f13eae5e46358e749a46a5d0d1a8e007c34856c8b9c28076813a569204cc)(@babel/core@7.29.7)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(sass@1.101.0) next-pwa: specifier: ^5.6.0 - version: 5.6.0(@babel/core@7.29.7)(next@16.2.10(patch_hash=3ruvu6fsawejy2nd3hex2n2nbe)(@babel/core@7.29.7)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(sass@1.101.0))(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)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(sass@1.101.0))(postcss@8.4.31) next-ssr-middleware: specifier: ^1.1.0 - version: 1.1.0(next@16.2.10(patch_hash=3ruvu6fsawejy2nd3hex2n2nbe)(@babel/core@7.29.7)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(sass@1.101.0))(react@19.2.7)(typescript@5.9.3) + version: 1.1.0(next@16.2.10(patch_hash=2656f13eae5e46358e749a46a5d0d1a8e007c34856c8b9c28076813a569204cc)(@babel/core@7.29.7)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(sass@1.101.0))(react@19.2.7)(typescript@5.9.3) nodemailer: specifier: ^9.0.3 version: 9.0.3 @@ -206,7 +206,7 @@ importers: version: 17.0.8 next-with-less: specifier: ^3.0.1 - version: 3.0.1(less-loader@13.0.0(less@4.6.7))(less@4.6.7)(next@16.2.10(patch_hash=3ruvu6fsawejy2nd3hex2n2nbe)(@babel/core@7.29.7)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(sass@1.101.0)) + version: 3.0.1(less-loader@13.0.0(less@4.6.7))(less@4.6.7)(next@16.2.10(patch_hash=2656f13eae5e46358e749a46a5d0d1a8e007c34856c8b9c28076813a569204cc)(@babel/core@7.29.7)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(sass@1.101.0)) prettier: specifier: ^3.9.5 version: 3.9.5 @@ -1098,89 +1098,105 @@ packages: resolution: {integrity: sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==} cpu: [arm64] os: [linux] + libc: [glibc] '@img/sharp-libvips-linux-arm@1.2.4': resolution: {integrity: sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==} cpu: [arm] os: [linux] + libc: [glibc] '@img/sharp-libvips-linux-ppc64@1.2.4': resolution: {integrity: sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==} cpu: [ppc64] os: [linux] + libc: [glibc] '@img/sharp-libvips-linux-riscv64@1.2.4': resolution: {integrity: sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==} cpu: [riscv64] os: [linux] + libc: [glibc] '@img/sharp-libvips-linux-s390x@1.2.4': resolution: {integrity: sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==} cpu: [s390x] os: [linux] + libc: [glibc] '@img/sharp-libvips-linux-x64@1.2.4': resolution: {integrity: sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==} cpu: [x64] os: [linux] + libc: [glibc] '@img/sharp-libvips-linuxmusl-arm64@1.2.4': resolution: {integrity: sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==} cpu: [arm64] os: [linux] + libc: [musl] '@img/sharp-libvips-linuxmusl-x64@1.2.4': resolution: {integrity: sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==} cpu: [x64] os: [linux] + libc: [musl] '@img/sharp-linux-arm64@0.34.5': resolution: {integrity: sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] + libc: [glibc] '@img/sharp-linux-arm@0.34.5': resolution: {integrity: sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm] os: [linux] + libc: [glibc] '@img/sharp-linux-ppc64@0.34.5': resolution: {integrity: sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [ppc64] os: [linux] + libc: [glibc] '@img/sharp-linux-riscv64@0.34.5': resolution: {integrity: sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [riscv64] os: [linux] + libc: [glibc] '@img/sharp-linux-s390x@0.34.5': resolution: {integrity: sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [s390x] os: [linux] + libc: [glibc] '@img/sharp-linux-x64@0.34.5': resolution: {integrity: sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] + libc: [glibc] '@img/sharp-linuxmusl-arm64@0.34.5': resolution: {integrity: sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] + libc: [musl] '@img/sharp-linuxmusl-x64@0.34.5': resolution: {integrity: sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] + libc: [musl] '@img/sharp-wasm32@0.34.5': resolution: {integrity: sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==} @@ -1311,24 +1327,28 @@ packages: engines: {node: '>= 10'} cpu: [arm64] os: [linux] + libc: [glibc] '@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.10': resolution: {integrity: sha512-iCVJnwvrPYECvA6WM/7+oo+OiTvedIKLxtCLAZP4xZR3nXa1zmzZyLPbYCmWvpd4CvMYF1EMTafd0ii3DygLvA==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [glibc] '@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.10': resolution: {integrity: sha512-DwAnhLX76HQiFFQNgWlcK+JzlnD1rZ+UK/WY0ZMI/deXpvgnesjNYrqcfo1JzBuz4Kf7o3brIBL0glI1junatA==} @@ -1390,36 +1410,42 @@ packages: engines: {node: '>= 10.0.0'} cpu: [arm] os: [linux] + libc: [glibc] '@parcel/watcher-linux-arm-musl@2.5.6': resolution: {integrity: sha512-Ve3gUCG57nuUUSyjBq/MAM0CzArtuIOxsBdQ+ftz6ho8n7s1i9E1Nmk/xmP323r2YL0SONs1EuwqBp2u1k5fxg==} engines: {node: '>= 10.0.0'} cpu: [arm] os: [linux] + libc: [musl] '@parcel/watcher-linux-arm64-glibc@2.5.6': resolution: {integrity: sha512-f2g/DT3NhGPdBmMWYoxixqYr3v/UXcmLOYy16Bx0TM20Tchduwr4EaCbmxh1321TABqPGDpS8D/ggOTaljijOA==} engines: {node: '>= 10.0.0'} cpu: [arm64] os: [linux] + libc: [glibc] '@parcel/watcher-linux-arm64-musl@2.5.6': resolution: {integrity: sha512-qb6naMDGlbCwdhLj6hgoVKJl2odL34z2sqkC7Z6kzir8b5W65WYDpLB6R06KabvZdgoHI/zxke4b3zR0wAbDTA==} engines: {node: '>= 10.0.0'} cpu: [arm64] os: [linux] + libc: [musl] '@parcel/watcher-linux-x64-glibc@2.5.6': resolution: {integrity: sha512-kbT5wvNQlx7NaGjzPFu8nVIW1rWqV780O7ZtkjuWaPUgpv2NMFpjYERVi0UYj1msZNyCzGlaCWEtzc+exjMGbQ==} engines: {node: '>= 10.0.0'} cpu: [x64] os: [linux] + libc: [glibc] '@parcel/watcher-linux-x64-musl@2.5.6': resolution: {integrity: sha512-1JRFeC+h7RdXwldHzTsmdtYR/Ku8SylLgTU/reMuqdVD7CtLwf0VR1FqeprZ0eHQkO0vqsbvFLXUmYm/uNKJBg==} engines: {node: '>= 10.0.0'} cpu: [x64] os: [linux] + libc: [musl] '@parcel/watcher-win32-arm64@2.5.6': resolution: {integrity: sha512-3ukyebjc6eGlw9yRt678DxVF7rjXatWiHvTXqphZLvo7aC5NdEgFufVwjFfY51ijYEWpXbqF5jtrK275z52D4Q==} @@ -1820,51 +1846,61 @@ packages: resolution: {integrity: sha512-zJc0H99FEPoFfSrNpa91HYfxzfAJCr502oxNK1cfdC9hlaFI43RT+JFCann9JUgZmLzzntChHyn13Sgn9ljHNg==} cpu: [arm64] os: [linux] + libc: [glibc] '@unrs/resolver-binding-linux-arm64-musl@1.12.2': resolution: {integrity: sha512-KQ3Lki6l+Pz1k/eBipN41ES+YUK30beLGb9YqcB1O542cyLCNE6GaxrfcY3T6EezmGGk84wb5XyO9loTM9tkcA==} cpu: [arm64] os: [linux] + libc: [musl] '@unrs/resolver-binding-linux-loong64-gnu@1.12.2': resolution: {integrity: sha512-3SJGEh1DborhG6pyxvhPzCT4bbSIVihsvgJc13P1bHG7KLdNDaF9T3gsTwFc7Jw/5Y5/iWOjkEx7Zy0NvCGX3Q==} cpu: [loong64] os: [linux] + libc: [glibc] '@unrs/resolver-binding-linux-loong64-musl@1.12.2': resolution: {integrity: sha512-jiuG/Obbel7uw1PwHNFfrkiKhLAF6mnyZ6aWlOAVN9WqKm8v0OFGnciJIHu8+CMvXLQ8AD51LPzAoUfT21D5Ew==} cpu: [loong64] os: [linux] + libc: [musl] '@unrs/resolver-binding-linux-ppc64-gnu@1.12.2': resolution: {integrity: sha512-q7xRvVpmcfeL+LlZg8Pbbo6QaTZwDU5BaGZbwfhkEsXJn3Was8xYfE0RBH266xZt0rM6B7i8xAYIvjthuUIWHg==} cpu: [ppc64] os: [linux] + libc: [glibc] '@unrs/resolver-binding-linux-riscv64-gnu@1.12.2': resolution: {integrity: sha512-0CVdx6lcnT3Q9inOH8tsMIOJ6ImndllMjqJHg8RLVdB7Vq4SfkEXl9mCSsVNuNA4MCYycRicCUxPCabVHJRr6A==} cpu: [riscv64] os: [linux] + libc: [glibc] '@unrs/resolver-binding-linux-riscv64-musl@1.12.2': resolution: {integrity: sha512-iOwlRo9vnp6R6ohHQS11n0NnfdXx/omhkocmIfaPRpQhKZ+3BDMkkdRVh53qjkFkpPddf+FETA28NwGN7l5l+w==} cpu: [riscv64] os: [linux] + libc: [musl] '@unrs/resolver-binding-linux-s390x-gnu@1.12.2': resolution: {integrity: sha512-HYJtLfXq94q8iZNFT1lknx258wlkkWhZeUXJRqzKBBUJ00CvZ+N33zgbCqimLjsyw5Va6uUxhVa12mI+kaveEw==} cpu: [s390x] os: [linux] + libc: [glibc] '@unrs/resolver-binding-linux-x64-gnu@1.12.2': resolution: {integrity: sha512-mPsUhunKKDih5O96Y6enDQyHc1SqBPlY1E/SfMWDM3EdJ95Z9CArPeCVwCCqbP45ljvivdEk8Fxn+SIb1rDAJQ==} cpu: [x64] os: [linux] + libc: [glibc] '@unrs/resolver-binding-linux-x64-musl@1.12.2': resolution: {integrity: sha512-azrt6+5ydLd8Vt210AAFis/lZevSfPw93EJRIJG+xPu4WCJ8K0kppCTpMyLPcKT7H15M4Jnt2tMp5bOvCkRC6A==} cpu: [x64] os: [linux] + libc: [musl] '@unrs/resolver-binding-openharmony-arm64@1.12.2': resolution: {integrity: sha512-YZ9hP4O0X9PQb8eO980qmLNGH4zT3I9+SZTdt0Pr0YyuGQhYKoOZkV02VzrzyOZJ5xIJ3UFIenKkUkGg8GjgWQ==} @@ -6491,7 +6527,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(patch_hash=3ruvu6fsawejy2nd3hex2n2nbe)(@babel/core@7.29.7)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(sass@1.101.0) + next: 16.2.10(patch_hash=2656f13eae5e46358e749a46a5d0d1a8e007c34856c8b9c28076813a569204cc)(@babel/core@7.29.7)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(sass@1.101.0) workbox-build: 6.6.0 transitivePeerDependencies: - '@babel/core' @@ -9066,12 +9102,12 @@ snapshots: negotiator@0.6.3: {} - next-pwa@5.6.0(@babel/core@7.29.7)(next@16.2.10(patch_hash=3ruvu6fsawejy2nd3hex2n2nbe)(@babel/core@7.29.7)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(sass@1.101.0))(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)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(sass@1.101.0))(postcss@8.4.31): dependencies: babel-loader: 8.4.1(@babel/core@7.29.7) clean-webpack-plugin: 4.0.0 globby: 11.1.0 - next: 16.2.10(patch_hash=3ruvu6fsawejy2nd3hex2n2nbe)(@babel/core@7.29.7)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(sass@1.101.0) + next: 16.2.10(patch_hash=2656f13eae5e46358e749a46a5d0d1a8e007c34856c8b9c28076813a569204cc)(@babel/core@7.29.7)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(sass@1.101.0) terser-webpack-plugin: 5.6.1(postcss@8.4.31) workbox-webpack-plugin: 6.6.0 workbox-window: 6.6.0 @@ -9093,7 +9129,7 @@ snapshots: - uglify-js - webpack - next-ssr-middleware@1.1.0(next@16.2.10(patch_hash=3ruvu6fsawejy2nd3hex2n2nbe)(@babel/core@7.29.7)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(sass@1.101.0))(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)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(sass@1.101.0))(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) @@ -9102,7 +9138,7 @@ snapshots: '@types/react': 19.2.17 jsonwebtoken: 9.0.3 koa: 3.2.1 - next: 16.2.10(patch_hash=3ruvu6fsawejy2nd3hex2n2nbe)(@babel/core@7.29.7)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(sass@1.101.0) + next: 16.2.10(patch_hash=2656f13eae5e46358e749a46a5d0d1a8e007c34856c8b9c28076813a569204cc)(@babel/core@7.29.7)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(sass@1.101.0) react: 19.2.7 tslib: 2.8.1 web-utility: 4.7.2(typescript@5.9.3) @@ -9111,14 +9147,14 @@ snapshots: - supports-color - typescript - next-with-less@3.0.1(less-loader@13.0.0(less@4.6.7))(less@4.6.7)(next@16.2.10(patch_hash=3ruvu6fsawejy2nd3hex2n2nbe)(@babel/core@7.29.7)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(sass@1.101.0)): + next-with-less@3.0.1(less-loader@13.0.0(less@4.6.7))(less@4.6.7)(next@16.2.10(patch_hash=2656f13eae5e46358e749a46a5d0d1a8e007c34856c8b9c28076813a569204cc)(@babel/core@7.29.7)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(sass@1.101.0)): dependencies: clone-deep: 4.0.1 less: 4.6.7 less-loader: 13.0.0(less@4.6.7) - next: 16.2.10(patch_hash=3ruvu6fsawejy2nd3hex2n2nbe)(@babel/core@7.29.7)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(sass@1.101.0) + next: 16.2.10(patch_hash=2656f13eae5e46358e749a46a5d0d1a8e007c34856c8b9c28076813a569204cc)(@babel/core@7.29.7)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(sass@1.101.0) - next@16.2.10(patch_hash=3ruvu6fsawejy2nd3hex2n2nbe)(@babel/core@7.29.7)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(sass@1.101.0): + next@16.2.10(patch_hash=2656f13eae5e46358e749a46a5d0d1a8e007c34856c8b9c28076813a569204cc)(@babel/core@7.29.7)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(sass@1.101.0): dependencies: '@next/env': 16.2.10 '@swc/helpers': 0.5.15 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 5eb0857..d9ccffa 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -4,6 +4,8 @@ autoInstallPeers: false overrides: mobx-react-helper: '$mobx-react-helper' next: '$next' +patchedDependencies: + next@16.2.10: patches/next@16.2.10.patch allowBuilds: '@parcel/watcher': true core-js: true