diff --git a/models/configuration.ts b/models/configuration.ts index c9c8f16..049ae81 100644 --- a/models/configuration.ts +++ b/models/configuration.ts @@ -7,6 +7,7 @@ export const Name = process.env.NEXT_PUBLIC_SITE_NAME, DefaultImage = process.env.NEXT_PUBLIC_LOGO!; export const { + CI, SMTP_HOST, SMTP_PORT = 465, SMTP_USER, diff --git a/next.config.ts b/next.config.ts index 53b2eac..d80ba42 100644 --- a/next.config.ts +++ b/next.config.ts @@ -38,20 +38,31 @@ const rewrites: NextConfig['rewrites'] = async () => ({ source: '/proxy/geo.datav.aliyun.com/:path*', destination: 'https://geo.datav.aliyun.com/:path*', }, - { - source: '/recipe/images/:path*', - destination: 'https://raw.githubusercontent.com/Gar-b-age/CookLikeHOC/main/images/:path*', - }, ], afterFiles: [], }); +const redirects: NextConfig['redirects'] = async () => + ['/wiki', '/recipe', '/policy'].flatMap(route => [ + { + source: route, + destination: `https://wiki.fcc-cd.dev${route}`, + permanent: true, + }, + { + source: `${route}/:path*`, + destination: `https://wiki.fcc-cd.dev${route}/:path*`, + permanent: true, + }, + ]); + export default withPWA( withLess( withMDX({ pageExtensions: ['js', 'jsx', 'ts', 'tsx', 'md', 'mdx'], output: CI ? 'standalone' : undefined, rewrites, + redirects, }), ), ); diff --git a/package.json b/package.json index 42cea0b..b1d1346 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ "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": "next build --webpack", + "build": "cross-env CI=true next build --webpack", "start": "next start", "test": "lint-staged && git add . && tsc --noEmit" }, @@ -27,10 +27,10 @@ "koa-jwt": "^4.0.4", "koajax": "^3.3.0", "license-filter": "^0.2.5", - "marked": "^18.0.6", + "marked": "^15.0.12", "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", @@ -66,6 +66,7 @@ "@types/nodemailer": "^8.0.1", "@types/react": "^19.2.17", "@types/react-dom": "^19.2.3", + "cross-env": "^10.1.0", "eslint": "^10.7.0", "eslint-config-next": "16.2.10", "eslint-config-prettier": "^10.1.8", @@ -82,17 +83,11 @@ "prettier-plugin-css-order": "^2.2.0", "sass": "^1.101.0", "typescript": "~5.9.3", - "typescript-eslint": "^8.63.0" + "typescript-eslint": "^8.64.0" }, "resolutions": { - "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", @@ -104,6 +99,6 @@ ] }, "lint-staged": { - "*.{html,md,less,scss,json,yml,js,mjs,ts,tsx}": "prettier --write" + "*.{html,md,less,json,yml,js,mjs,ts,tsx}": "prettier --write" } } diff --git a/pages/NGO/[year]/index.tsx b/pages/NGO/[year]/index.tsx index 4ea24fe..8f9fc1e 100644 --- a/pages/NGO/[year]/index.tsx +++ b/pages/NGO/[year]/index.tsx @@ -1,9 +1,8 @@ import { observer } from 'mobx-react'; import dynamic from 'next/dynamic'; -import { GetStaticPaths, GetStaticProps } from 'next'; +import { GetStaticPaths } from 'next'; import { FC, useContext } from 'react'; import { Button, Container } from 'react-bootstrap'; -import { Minute, Second } from 'web-utility'; import { PageHead } from '../../../components/Layout/PageHead'; import { CityStatisticMap } from '../../../components/Map/CityStatisticMap'; @@ -15,6 +14,7 @@ import { } from '../../../models/Organization'; import { I18nContext } from '../../../models/Translation'; import { lark } from '../../api/Lark/core'; +import { skipBuilding } from '../../api/SSG'; const OrganizationCharts = dynamic(() => import('../../../components/Organization/Charts'), { ssr: false, @@ -41,12 +41,10 @@ export const getStaticPaths: GetStaticPaths<{ year: string }> = async () => { }; }; -export const getStaticProps: GetStaticProps = async ({ - params, -}) => { - const { year } = params!; +export const getStaticProps = skipBuilding( + async ({ params }) => { + const { year } = params!; - try { await lark.getAccessToken(); const organizationStore = new OrganizationModel(); @@ -55,12 +53,8 @@ export const getStaticProps: GetStaticProps = observer(({ year, statistic }) => { const { t } = useContext(I18nContext); diff --git a/pages/NGO/[year]/landscape.tsx b/pages/NGO/[year]/landscape.tsx index 710083a..a5ddf9b 100644 --- a/pages/NGO/[year]/landscape.tsx +++ b/pages/NGO/[year]/landscape.tsx @@ -1,8 +1,7 @@ import { observer } from 'mobx-react'; -import { GetStaticPaths, GetStaticProps } from 'next'; +import { GetStaticPaths } from 'next'; import { FC, useContext } from 'react'; import { Container } from 'react-bootstrap'; -import { Minute, Second } from 'web-utility'; import { PageHead } from '../../../components/Layout/PageHead'; import { @@ -12,6 +11,7 @@ import { import { OrganizationModel, OrganizationYearStatisticModel } from '../../../models/Organization'; import { I18nContext } from '../../../models/Translation'; import { lark } from '../../api/Lark/core'; +import { skipBuilding } from '../../api/SSG'; export const getStaticPaths: GetStaticPaths<{ year: string }> = async () => { await lark.getAccessToken(); @@ -29,13 +29,10 @@ export const getStaticPaths: GetStaticPaths<{ year: string }> = async () => { }; }; -export const getStaticProps: GetStaticProps< - Pick, - { year: string } -> = async ({ params }) => { - const { year } = params!; +export const getStaticProps = skipBuilding, { year: string }>( + async ({ params }) => { + const { year } = params!; - try { await lark.getAccessToken(); const organizationStore = new OrganizationModel(); @@ -44,12 +41,8 @@ export const getStaticProps: GetStaticProps< const typeMap = await organizationStore.groupAllByType({ startYear: year }); return { props: JSON.parse(JSON.stringify({ typeMap })) }; - } catch (error) { - console.error(error); - - return { notFound: true, revalidate: Minute / Second }; - } -}; + }, +); const LandscapePage: FC = observer(props => { const { t } = useContext(I18nContext); diff --git a/pages/api/SSG.ts b/pages/api/SSG.ts new file mode 100644 index 0000000..539a832 --- /dev/null +++ b/pages/api/SSG.ts @@ -0,0 +1,25 @@ +import { DataObject } from 'mobx-restful'; +import { GetStaticProps, GetStaticPropsResult } from 'next'; +import { ParsedUrlQuery } from 'querystring'; +import { Minute, Second } from 'web-utility'; + +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; + } + }; diff --git a/pages/api/core.ts b/pages/api/core.ts index dcb71c0..0f87e1b 100644 --- a/pages/api/core.ts +++ b/pages/api/core.ts @@ -1,13 +1,9 @@ -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 { parse } from 'yaml'; import { LarkAppMeta } from '../../models/configuration'; @@ -60,92 +56,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) { - 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/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..59e99a6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -5,12 +5,11 @@ settings: excludeLinksFromLockfile: false overrides: - mobx-react-helper: ^0.5.1 next: 16.2.10 patchedDependencies: next@16.2.10: - hash: 3ruvu6fsawejy2nd3hex2n2nbe + hash: 2656f13eae5e46358e749a46a5d0d1a8e007c34856c8b9c28076813a569204cc path: patches/next@16.2.10.patch importers: @@ -60,8 +59,8 @@ importers: specifier: ^0.2.5 version: 0.2.5 marked: - specifier: ^18.0.6 - version: 18.0.6 + specifier: ^15.0.12 + version: 15.0.12 mime: specifier: ^4.1.0 version: 4.1.0 @@ -69,8 +68,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) @@ -94,13 +93,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 @@ -171,6 +170,9 @@ importers: '@types/react-dom': specifier: ^19.2.3 version: 19.2.3(@types/react@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) @@ -206,7 +208,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 @@ -220,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: @@ -777,8 +779,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==} @@ -795,8 +797,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==} @@ -810,14 +812,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==} @@ -861,8 +863,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==} @@ -893,8 +895,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==} @@ -905,8 +907,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==} @@ -923,8 +925,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==} @@ -935,8 +937,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==} @@ -1000,6 +1002,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} @@ -1098,89 +1103,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 +1332,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==} @@ -1358,8 +1383,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==} '@parcel/watcher-android-arm64@2.5.6': resolution: {integrity: sha512-YQxSS34tPF/6ZG7r/Ih9xy+kP/WwediEUsqmtf0cuCV5TPPKw/PQHRhueUo6JdeFJaqV3pyjm0GdYjZotbRt/A==} @@ -1390,36 +1415,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==} @@ -1719,63 +1750,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': @@ -1820,51 +1851,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==} @@ -2086,11 +2127,11 @@ 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.5: - resolution: {integrity: sha512-Cu2E6QejHWzuDMTkuwgpABFgDfZrXLQq5V13YOACZx4mFAG4IwGTbTfHPMr4WtxlHoXSM8FIuRwYYCz5XiabaQ==} + browserslist@4.28.6: + resolution: {integrity: sha512-FQBYNK15VMslhLHpA7+n+n1GOlF1kId2xcCg7/j95f24AOF6VDYMNH4mFxF7KuaTdv627faazpOAjFzMrfJOUw==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -2120,8 +2161,8 @@ packages: resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} engines: {node: '>= 0.4'} - caniuse-lite@1.0.30001803: - resolution: {integrity: sha512-g/uHREV2ZpK9qMalCsWaxmA6ol+DX8GYhuf3T40RKoP+oL7vhRJh8LNt73PCjpnR6l14FzfPrB5Yux4PKm2meg==} + caniuse-lite@1.0.30001805: + resolution: {integrity: sha512-52noaS3DubycKSXaU30TwPGIp+POyQSUVa5jBEq3vkRkY0kjyb3LQgvhU6WGyCcyXqVLWO0Cw0Q6BSdD0kUfVA==} ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} @@ -2240,6 +2281,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'} @@ -2403,8 +2449,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==} + edkit@1.3.1: + resolution: {integrity: sha512-4dLMZZ2XCmo1M8HHsO9NikK1H9zoDDIeAo7ypirxNASTWT2aDt8guoCfpH1uIleDcoRdI6og7MZo4u1XItqD6w==} ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} @@ -2414,8 +2460,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==} @@ -3433,11 +3479,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'} @@ -3622,8 +3663,8 @@ packages: minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - 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==} @@ -3689,8 +3730,8 @@ packages: mz@2.7.0: resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} - nanoid@3.3.15: - resolution: {integrity: sha512-y7Wygv/7mEOvxTuEQDB8StXdMRBWf1kR/tlhAzBRUFkB2jfcLOAxO/SHmOO2zgz1pVgK29/kyupn059/bCHdjA==} + nanoid@3.3.16: + resolution: {integrity: sha512-bzlKTyNJ7+LdGIIwy8ijFpIqEQIvafahV7eYykJ8Cvh42EdJeODoJ6gUJXpQJvej1BddH8OqTXZNE/KfbWAu8Q==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true @@ -4017,11 +4058,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.1: - resolution: {integrity: sha512-vnAy1MSn4mAZp418cz3R7IiUWXGGwNfmWQYlPUa2MWGm6hTTxJVeKTp2jhrH3n8sbbtg2MN4/co44OP+sZn1pQ==} + 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==} @@ -4631,8 +4672,8 @@ packages: typed.js@2.1.0: resolution: {integrity: sha512-bDuXEf7YcaKN4g08NMTUM6G90XU25CK3bh6U0THC/Mod/QPKlEt9g/EjvbYB8x2Qwr2p6J6I3NrsoYaVnY6wsQ==} - 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 @@ -4959,7 +5000,7 @@ snapshots: dependencies: '@babel/compat-data': 7.29.7 '@babel/helper-validator-option': 7.29.7 - browserslist: 4.28.5 + browserslist: 4.28.6 lru-cache: 5.1.1 semver: 6.3.1 @@ -5590,20 +5631,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 @@ -5618,7 +5659,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 @@ -5627,21 +5668,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 @@ -5668,7 +5709,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': {} @@ -5680,7 +5721,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': {} @@ -5690,11 +5731,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': {} @@ -5724,7 +5765,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': {} @@ -5747,7 +5788,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': {} @@ -5755,9 +5796,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': {} @@ -5769,7 +5810,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': {} @@ -5777,7 +5818,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': {} @@ -5849,6 +5890,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) @@ -6167,7 +6210,7 @@ snapshots: '@nolyfill/is-core-module@1.0.39': {} - '@octokit/openapi-types@26.0.0': {} + '@octokit/openapi-types@27.0.0': {} '@parcel/watcher-android-arm64@2.5.6': optional: true @@ -6333,7 +6376,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 @@ -6491,7 +6534,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' @@ -6556,14 +6599,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 @@ -6572,41 +6615,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) @@ -6614,14 +6657,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 @@ -6631,20 +6674,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': {} @@ -6934,15 +6977,15 @@ snapshots: dependencies: fill-range: 7.1.1 - browser-fs-access@0.37.0: {} + browser-fs-access@0.38.0: {} - browserslist@4.28.5: + browserslist@4.28.6: dependencies: baseline-browser-mapping: 2.10.43 - caniuse-lite: 1.0.30001803 - electron-to-chromium: 1.5.389 + caniuse-lite: 1.0.30001805 + electron-to-chromium: 1.5.391 node-releases: 2.0.51 - update-browserslist-db: 1.2.3(browserslist@4.28.5) + update-browserslist-db: 1.2.3(browserslist@4.28.6) buffer-equal-constant-time@1.0.1: {} @@ -6969,7 +7012,7 @@ snapshots: call-bind-apply-helpers: 1.0.2 get-intrinsic: 1.3.0 - caniuse-lite@1.0.30001803: {} + caniuse-lite@1.0.30001805: {} ccount@2.0.1: {} @@ -7062,10 +7105,15 @@ snapshots: core-js-compat@3.49.0: dependencies: - browserslist: 4.28.5 + browserslist: 4.28.6 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 @@ -7261,11 +7309,11 @@ snapshots: editorjs-html@4.0.5: {} - edkit@1.2.7(typescript@5.9.3): + edkit@1.3.1(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 @@ -7281,7 +7329,7 @@ snapshots: dependencies: jake: 10.9.4 - electron-to-chromium@1.5.389: {} + electron-to-chromium@1.5.391: {} emoji-regex@10.6.0: {} @@ -7446,7 +7494,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: @@ -8544,8 +8592,6 @@ snapshots: marked@15.0.12: {} - marked@18.0.6: {} - math-intrinsics@1.1.0: {} mdast-util-from-markdown@2.0.3: @@ -8917,9 +8963,9 @@ snapshots: minimist@1.2.8: {} - 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) @@ -9000,7 +9046,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.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: @@ -9052,7 +9098,7 @@ snapshots: object-assign: 4.1.1 thenify-all: 1.6.0 - nanoid@3.3.15: {} + nanoid@3.3.16: {} napi-postinstall@0.3.4: {} @@ -9066,12 +9112,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 +9139,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 +9148,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,19 +9157,19 @@ 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 baseline-browser-mapping: 2.10.43 - caniuse-lite: 1.0.30001803 + caniuse-lite: 1.0.30001805 postcss: 8.4.31 react: 19.2.7 react-dom: 19.2.7(react@19.2.7) @@ -9340,7 +9386,7 @@ snapshots: postcss@8.4.31: dependencies: - nanoid: 3.3.15 + nanoid: 3.3.16 picocolors: 1.1.1 source-map-js: 1.2.1 @@ -9418,10 +9464,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.1(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.2.7(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) @@ -10168,12 +10214,12 @@ snapshots: typed.js@2.1.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): 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: @@ -10299,9 +10345,9 @@ snapshots: upath@1.2.0: {} - update-browserslist-db@1.2.3(browserslist@4.28.5): + update-browserslist-db@1.2.3(browserslist@4.28.6): dependencies: - browserslist: 4.28.5 + browserslist: 4.28.6 escalade: 3.2.0 picocolors: 1.1.1 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 5eb0857..4a722c7 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -2,8 +2,9 @@ packages: - . 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