diff --git a/packages/notion-utils/package.json b/packages/notion-utils/package.json index ed3adc92..aaf1966c 100644 --- a/packages/notion-utils/package.json +++ b/packages/notion-utils/package.json @@ -25,7 +25,6 @@ "test:unit": "vitest run" }, "dependencies": { - "is-url-superb": "catalog:", "memoize": "catalog:", "normalize-url": "catalog:", "notion-types": "workspace:*", diff --git a/packages/notion-utils/src/get-page-image-urls.ts b/packages/notion-utils/src/get-page-image-urls.ts index e708b114..7cd07f4c 100644 --- a/packages/notion-utils/src/get-page-image-urls.ts +++ b/packages/notion-utils/src/get-page-image-urls.ts @@ -2,7 +2,6 @@ import type * as types from 'notion-types' import { getBlockIcon } from './get-block-icon' import { getBlockValue } from './get-block-value' -import { isUrl } from './is-url' /** * Gets URLs of all images contained on the given page. @@ -65,7 +64,7 @@ export const getPageImageUrls = ( } const pageIcon = getBlockIcon(block, recordMap) - if (pageIcon && isUrl(pageIcon)) { + if (pageIcon && URL.canParse(pageIcon)) { images.push({ block, url: pageIcon diff --git a/packages/notion-utils/src/index.ts b/packages/notion-utils/src/index.ts index 15937e78..ab0e3556 100644 --- a/packages/notion-utils/src/index.ts +++ b/packages/notion-utils/src/index.ts @@ -23,7 +23,6 @@ export * from './get-page-tweet-urls' export * from './get-text-content' export * from './group-block-content' export * from './id-to-uuid' -export * from './is-url' export * from './map-image-url' export * from './map-page-url' export * from './merge-record-maps' diff --git a/packages/notion-utils/src/is-url.ts b/packages/notion-utils/src/is-url.ts deleted file mode 100644 index 4ac6ad83..00000000 --- a/packages/notion-utils/src/is-url.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as isUrl } from 'is-url-superb' diff --git a/packages/notion-x-to-md/package.json b/packages/notion-x-to-md/package.json index d931f8ad..2152c176 100644 --- a/packages/notion-x-to-md/package.json +++ b/packages/notion-x-to-md/package.json @@ -28,7 +28,6 @@ "test:unit": "vitest run" }, "dependencies": { - "commander": "^14.0.3", "date-fns": "catalog:", "format-number": "catalog:", "notion-client": "workspace:*", @@ -37,6 +36,9 @@ "p-map": "catalog:", "tweet-to-md": "^1.0.5" }, + "devDependencies": { + "@types/node": "catalog:" + }, "keywords": [ "notion", "md", diff --git a/packages/notion-x-to-md/src/cli.ts b/packages/notion-x-to-md/src/cli.ts index 31f8a1f6..e62824a0 100644 --- a/packages/notion-x-to-md/src/cli.ts +++ b/packages/notion-x-to-md/src/cli.ts @@ -1,18 +1,37 @@ #!/usr/bin/env node -import { program } from 'commander' +import { parseArgs } from 'node:util' + import { NotionAPI } from 'notion-client' import { notionPageToMarkdown } from './notion-page-to-markdown' -program - .name('notion-x-to-md') - .description('Converts a Notion page to Markdown') - .argument('', 'Notion page ID or URL (must be publicly accessible)') - .action(async (page: string) => { - const api = new NotionAPI() - const recordMap = await api.getPage(page) - const markdown = await notionPageToMarkdown(recordMap) - console.log(markdown) - }) - -await program.parseAsync() +const { values, positionals } = parseArgs({ + options: { + help: { + type: 'boolean', + short: 'h' + } + }, + allowPositionals: true +}) + +if (values.help) { + console.log(`notion-x-to-md Converts a Notion page to Markdown + +notion-x-to-md + Notion page ID or URL (must be publicly accessible) +`) + process.exit(0) +} + +const page = positionals.at(0) + +if (!page) { + console.error('No page specified') + process.exit(1) +} + +const api = new NotionAPI() +const recordMap = await api.getPage(page) +const markdown = await notionPageToMarkdown(recordMap) +console.log(markdown) diff --git a/packages/notion-x-to-md/src/icon.ts b/packages/notion-x-to-md/src/icon.ts index a3d7e1e4..06bed440 100644 --- a/packages/notion-x-to-md/src/icon.ts +++ b/packages/notion-x-to-md/src/icon.ts @@ -4,7 +4,7 @@ import { type ExtendedRecordMap, type PageBlock } from 'notion-types' -import { getBlockIcon, isUrl } from 'notion-utils' +import { getBlockIcon } from 'notion-utils' const isIconBlock = (value: Block): value is PageBlock | CalloutBlock => { return ( @@ -26,7 +26,7 @@ export function getIcon( return '📁' } - if (isUrl(icon) || icon.startsWith('/icons/')) { + if (URL.canParse(icon) || icon.startsWith('/icons/')) { return '❔' } diff --git a/packages/notion-x-to-md/tsconfig.json b/packages/notion-x-to-md/tsconfig.json index d3ec686a..206ed7f1 100644 --- a/packages/notion-x-to-md/tsconfig.json +++ b/packages/notion-x-to-md/tsconfig.json @@ -1,7 +1,9 @@ { "extends": "../../tsconfig", "compilerOptions": { - "outDir": "build" + "outDir": "build", + "types": ["node"], + "module": "esnext" }, "include": ["src", "*.config.ts"] } diff --git a/packages/react-notion-x/package.json b/packages/react-notion-x/package.json index 5b84a2cc..f5e59d7f 100644 --- a/packages/react-notion-x/package.json +++ b/packages/react-notion-x/package.json @@ -92,7 +92,6 @@ "@types/react": "catalog:", "@types/react-dom": "catalog:", "@types/react-modal": "catalog:", - "clipboard-copy": "catalog:", "date-fns": "catalog:", "format-number": "catalog:", "lodash.throttle": "catalog:", diff --git a/packages/react-notion-x/src/block.tsx b/packages/react-notion-x/src/block.tsx index d17fd087..2c50f07b 100644 --- a/packages/react-notion-x/src/block.tsx +++ b/packages/react-notion-x/src/block.tsx @@ -28,7 +28,7 @@ import { TabBlock } from './components/tab-block' import { Text } from './components/text' import { useNotionContext } from './context' import { LinkIcon } from './icons/link-icon' -import { cs, isUrl } from './utils' +import { cs } from './utils' export interface BlockProps { block: types.Block @@ -142,7 +142,7 @@ export function Block(props: BlockProps) { } const pageIcon = getBlockIcon(block, recordMap) ?? defaultPageIcon - const isPageIconUrl = pageIcon && isUrl(pageIcon) + const isPageIconUrl = pageIcon && URL.canParse(pageIcon) const toc = getPageTableOfContents( block as types.PageBlock, diff --git a/packages/react-notion-x/src/components/asset-wrapper.tsx b/packages/react-notion-x/src/components/asset-wrapper.tsx index 7d575292..5d6920b8 100644 --- a/packages/react-notion-x/src/components/asset-wrapper.tsx +++ b/packages/react-notion-x/src/components/asset-wrapper.tsx @@ -26,7 +26,7 @@ export function AssetWrapper({ const id = parsePageId(caption, { uuid: true }) const isPage = caption.charAt(0) === '/' && id - if (isPage || isValidURL(caption)) { + if (isPage || URL.canParse(caption)) { isURL = true } } @@ -78,20 +78,6 @@ export function AssetWrapper({ return figure } -function isValidURL(str: string) { - // TODO: replace this with a more well-tested package - const pattern = new RegExp( - '^(https?:\\/\\/)?' + // protocol - '((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|' + // domain name - '((\\d{1,3}\\.){3}\\d{1,3}))' + // OR ip (v4) address - '(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*' + // port and path - '(\\?[;&a-z\\d%_.~+=-]*)?' + // query string - '(\\#[-a-z\\d_]*)?$', - 'i' - ) - return !!pattern.test(str) -} - function extractHostname(url?: string) { try { const hostname = new URL(url!).hostname diff --git a/packages/react-notion-x/src/components/page-icon.tsx b/packages/react-notion-x/src/components/page-icon.tsx index 688032c6..a0361b4f 100644 --- a/packages/react-notion-x/src/components/page-icon.tsx +++ b/packages/react-notion-x/src/components/page-icon.tsx @@ -4,7 +4,7 @@ import React from 'react' import { useNotionContext } from '../context' import { DefaultPageIcon } from '../icons/default-page-icon' -import { cs, isUrl } from '../utils' +import { cs } from '../utils' import { LazyImage } from './lazy-image' const isIconBlock = (value: Block): value is PageBlock | CalloutBlock => { @@ -37,7 +37,7 @@ export function PageIconImpl({ const icon = getBlockIcon(block, recordMap)?.trim() || defaultIcon const title = getBlockTitle(block, recordMap) - if (icon && isUrl(icon)) { + if (icon && URL.canParse(icon)) { const url = mapImageUrl(icon, block) isImage = true diff --git a/packages/react-notion-x/src/third-party/code.tsx b/packages/react-notion-x/src/third-party/code.tsx index 1f936d5c..1d197917 100644 --- a/packages/react-notion-x/src/third-party/code.tsx +++ b/packages/react-notion-x/src/third-party/code.tsx @@ -10,7 +10,6 @@ import 'prismjs/components/prism-jsx.min.js' import 'prismjs/components/prism-tsx.min.js' import 'prismjs/components/prism-typescript.min.js' -import copyToClipboard from 'clipboard-copy' import { type CodeBlock } from 'notion-types' import { getBlockTitle } from 'notion-utils' // eslint-disable-next-line import/no-duplicates, no-duplicate-imports @@ -62,8 +61,8 @@ export function Code({ } }, [codeRef]) - const onClickCopyToClipboard = React.useCallback(() => { - void copyToClipboard(content) + const onClickCopyToClipboard = React.useCallback(async () => { + await navigator.clipboard.writeText(content) setIsCopied(true) if (copyTimeout.current) { diff --git a/packages/react-notion-x/src/utils.ts b/packages/react-notion-x/src/utils.ts index 3c664bee..f93d0b16 100644 --- a/packages/react-notion-x/src/utils.ts +++ b/packages/react-notion-x/src/utils.ts @@ -1,4 +1,4 @@ -export { formatDate, formatNotionDateTime, isUrl } from 'notion-utils' +export { formatDate, formatNotionDateTime } from 'notion-utils' export const cs = (...classes: Array) => classes.filter((a) => !!a).join(' ') diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a8d5e393..e143a9c7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -42,9 +42,6 @@ catalogs: classnames: specifier: ^2.5.1 version: 2.5.1 - clipboard-copy: - specifier: ^4.0.1 - version: 4.0.1 cross-env: specifier: ^10.1.0 version: 10.1.0 @@ -57,9 +54,6 @@ catalogs: format-number: specifier: ^3.0.0 version: 3.0.0 - is-url-superb: - specifier: ^6.1.0 - version: 6.1.0 katex: specifier: 0.16.21 version: 0.16.21 @@ -321,9 +315,6 @@ importers: packages/notion-utils: dependencies: - is-url-superb: - specifier: 'catalog:' - version: 6.1.0 memoize: specifier: 'catalog:' version: 10.1.0 @@ -339,9 +330,6 @@ importers: packages/notion-x-to-md: dependencies: - commander: - specifier: ^14.0.3 - version: 14.0.3 date-fns: specifier: 'catalog:' version: 4.1.0 @@ -363,6 +351,10 @@ importers: tweet-to-md: specifier: ^1.0.5 version: 1.0.5 + devDependencies: + '@types/node': + specifier: 'catalog:' + version: 25.5.0 packages/react-notion-x: dependencies: @@ -418,9 +410,6 @@ importers: '@types/react-modal': specifier: 'catalog:' version: 3.16.3 - clipboard-copy: - specifier: 'catalog:' - version: 4.0.1 date-fns: specifier: 'catalog:' version: 4.1.0 @@ -514,9 +503,6 @@ packages: resolution: {integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==} engines: {node: '>=6.9.0'} - '@emnapi/runtime@1.8.1': - resolution: {integrity: sha512-mehfKSMWjjNol8659Z8KxEMrdSJDDot5SXMq00dM8BN4o+CLNXQ0xH2V7EchNHV4RmbZLmmPdEaXZc5H2FXmDg==} - '@emnapi/runtime@1.9.1': resolution: {integrity: sha512-VYi5+ZVLhpgK4hQ0TAjiQiZ6ol0oe4mBx7mVv7IflsiEp0OWoVsp/+f9Vc1hOhE0TtkORVrI1GvzyreqpgWtkA==} @@ -861,10 +847,6 @@ packages: resolution: {integrity: sha512-4IlJx0X0qftVsN5E+/vGujTRIFtwuLbNsVUe7TO6zYPDR1O6nFwvwhIKEKSrl6dZchmYBITazxKoUYOjdtjlRg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.39.2': - resolution: {integrity: sha512-q1mjIoW1VX4IvSocvM/vbTiveKC4k9eLrajNEuSsmjymSDEbpGddtpfOoN7YGAqBK3NG+uqo8ia4PDTt8buCYA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.39.4': resolution: {integrity: sha512-nE7DEIchvtiFTwBw4Lfbu59PG+kCofhjsKaCWzxTpt4lfRjRMqG6uMBzKXuEcyXhOHoUp9riAm7/aWYGhXZ9cw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -1278,277 +1260,139 @@ packages: '@quansync/fs@1.0.0': resolution: {integrity: sha512-4TJ3DFtlf1L5LDMaM6CanJ/0lckGNtJcMjQ1NAV6zDmA0tEHKZtxNKin8EgPaVX1YzljbxckyT2tJrpQKAtngQ==} - '@rollup/rollup-android-arm-eabi@4.57.1': - resolution: {integrity: sha512-A6ehUVSiSaaliTxai040ZpZ2zTevHYbvu/lDoeAteHI8QnaosIzm4qwtezfRg1jOYaUmnzLX1AOD6Z+UJjtifg==} - cpu: [arm] - os: [android] - '@rollup/rollup-android-arm-eabi@4.60.0': resolution: {integrity: sha512-WOhNW9K8bR3kf4zLxbfg6Pxu2ybOUbB2AjMDHSQx86LIF4rH4Ft7vmMwNt0loO0eonglSNy4cpD3MKXXKQu0/A==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.57.1': - resolution: {integrity: sha512-dQaAddCY9YgkFHZcFNS/606Exo8vcLHwArFZ7vxXq4rigo2bb494/xKMMwRRQW6ug7Js6yXmBZhSBRuBvCCQ3w==} - cpu: [arm64] - os: [android] - '@rollup/rollup-android-arm64@4.60.0': resolution: {integrity: sha512-u6JHLll5QKRvjciE78bQXDmqRqNs5M/3GVqZeMwvmjaNODJih/WIrJlFVEihvV0MiYFmd+ZyPr9wxOVbPAG2Iw==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.57.1': - resolution: {integrity: sha512-crNPrwJOrRxagUYeMn/DZwqN88SDmwaJ8Cvi/TN1HnWBU7GwknckyosC2gd0IqYRsHDEnXf328o9/HC6OkPgOg==} - cpu: [arm64] - os: [darwin] - '@rollup/rollup-darwin-arm64@4.60.0': resolution: {integrity: sha512-qEF7CsKKzSRc20Ciu2Zw1wRrBz4g56F7r/vRwY430UPp/nt1x21Q/fpJ9N5l47WWvJlkNCPJz3QRVw008fi7yA==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.57.1': - resolution: {integrity: sha512-Ji8g8ChVbKrhFtig5QBV7iMaJrGtpHelkB3lsaKzadFBe58gmjfGXAOfI5FV0lYMH8wiqsxKQ1C9B0YTRXVy4w==} - cpu: [x64] - os: [darwin] - '@rollup/rollup-darwin-x64@4.60.0': resolution: {integrity: sha512-WADYozJ4QCnXCH4wPB+3FuGmDPoFseVCUrANmA5LWwGmC6FL14BWC7pcq+FstOZv3baGX65tZ378uT6WG8ynTw==} cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.57.1': - resolution: {integrity: sha512-R+/WwhsjmwodAcz65guCGFRkMb4gKWTcIeLy60JJQbXrJ97BOXHxnkPFrP+YwFlaS0m+uWJTstrUA9o+UchFug==} - cpu: [arm64] - os: [freebsd] - '@rollup/rollup-freebsd-arm64@4.60.0': resolution: {integrity: sha512-6b8wGHJlDrGeSE3aH5mGNHBjA0TTkxdoNHik5EkvPHCt351XnigA4pS7Wsj/Eo9Y8RBU6f35cjN9SYmCFBtzxw==} cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.57.1': - resolution: {integrity: sha512-IEQTCHeiTOnAUC3IDQdzRAGj3jOAYNr9kBguI7MQAAZK3caezRrg0GxAb6Hchg4lxdZEI5Oq3iov/w/hnFWY9Q==} - cpu: [x64] - os: [freebsd] - '@rollup/rollup-freebsd-x64@4.60.0': resolution: {integrity: sha512-h25Ga0t4jaylMB8M/JKAyrvvfxGRjnPQIR8lnCayyzEjEOx2EJIlIiMbhpWxDRKGKF8jbNH01NnN663dH638mA==} cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.57.1': - resolution: {integrity: sha512-F8sWbhZ7tyuEfsmOxwc2giKDQzN3+kuBLPwwZGyVkLlKGdV1nvnNwYD0fKQ8+XS6hp9nY7B+ZeK01EBUE7aHaw==} - cpu: [arm] - os: [linux] - libc: [glibc] - '@rollup/rollup-linux-arm-gnueabihf@4.60.0': resolution: {integrity: sha512-RzeBwv0B3qtVBWtcuABtSuCzToo2IEAIQrcyB/b2zMvBWVbjo8bZDjACUpnaafaxhTw2W+imQbP2BD1usasK4g==} cpu: [arm] os: [linux] libc: [glibc] - '@rollup/rollup-linux-arm-musleabihf@4.57.1': - resolution: {integrity: sha512-rGfNUfn0GIeXtBP1wL5MnzSj98+PZe/AXaGBCRmT0ts80lU5CATYGxXukeTX39XBKsxzFpEeK+Mrp9faXOlmrw==} - cpu: [arm] - os: [linux] - libc: [musl] - '@rollup/rollup-linux-arm-musleabihf@4.60.0': resolution: {integrity: sha512-Sf7zusNI2CIU1HLzuu9Tc5YGAHEZs5Lu7N1ssJG4Tkw6e0MEsN7NdjUDDfGNHy2IU+ENyWT+L2obgWiguWibWQ==} cpu: [arm] os: [linux] libc: [musl] - '@rollup/rollup-linux-arm64-gnu@4.57.1': - resolution: {integrity: sha512-MMtej3YHWeg/0klK2Qodf3yrNzz6CGjo2UntLvk2RSPlhzgLvYEB3frRvbEF2wRKh1Z2fDIg9KRPe1fawv7C+g==} - cpu: [arm64] - os: [linux] - libc: [glibc] - '@rollup/rollup-linux-arm64-gnu@4.60.0': resolution: {integrity: sha512-DX2x7CMcrJzsE91q7/O02IJQ5/aLkVtYFryqCjduJhUfGKG6yJV8hxaw8pZa93lLEpPTP/ohdN4wFz7yp/ry9A==} cpu: [arm64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-arm64-musl@4.57.1': - resolution: {integrity: sha512-1a/qhaaOXhqXGpMFMET9VqwZakkljWHLmZOX48R0I/YLbhdxr1m4gtG1Hq7++VhVUmf+L3sTAf9op4JlhQ5u1Q==} - cpu: [arm64] - os: [linux] - libc: [musl] - '@rollup/rollup-linux-arm64-musl@4.60.0': resolution: {integrity: sha512-09EL+yFVbJZlhcQfShpswwRZ0Rg+z/CsSELFCnPt3iK+iqwGsI4zht3secj5vLEs957QvFFXnzAT0FFPIxSrkQ==} cpu: [arm64] os: [linux] libc: [musl] - '@rollup/rollup-linux-loong64-gnu@4.57.1': - resolution: {integrity: sha512-QWO6RQTZ/cqYtJMtxhkRkidoNGXc7ERPbZN7dVW5SdURuLeVU7lwKMpo18XdcmpWYd0qsP1bwKPf7DNSUinhvA==} - cpu: [loong64] - os: [linux] - libc: [glibc] - '@rollup/rollup-linux-loong64-gnu@4.60.0': resolution: {integrity: sha512-i9IcCMPr3EXm8EQg5jnja0Zyc1iFxJjZWlb4wr7U2Wx/GrddOuEafxRdMPRYVaXjgbhvqalp6np07hN1w9kAKw==} cpu: [loong64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-loong64-musl@4.57.1': - resolution: {integrity: sha512-xpObYIf+8gprgWaPP32xiN5RVTi/s5FCR+XMXSKmhfoJjrpRAjCuuqQXyxUa/eJTdAE6eJ+KDKaoEqjZQxh3Gw==} - cpu: [loong64] - os: [linux] - libc: [musl] - '@rollup/rollup-linux-loong64-musl@4.60.0': resolution: {integrity: sha512-DGzdJK9kyJ+B78MCkWeGnpXJ91tK/iKA6HwHxF4TAlPIY7GXEvMe8hBFRgdrR9Ly4qebR/7gfUs9y2IoaVEyog==} cpu: [loong64] os: [linux] libc: [musl] - '@rollup/rollup-linux-ppc64-gnu@4.57.1': - resolution: {integrity: sha512-4BrCgrpZo4hvzMDKRqEaW1zeecScDCR+2nZ86ATLhAoJ5FQ+lbHVD3ttKe74/c7tNT9c6F2viwB3ufwp01Oh2w==} - cpu: [ppc64] - os: [linux] - libc: [glibc] - '@rollup/rollup-linux-ppc64-gnu@4.60.0': resolution: {integrity: sha512-RwpnLsqC8qbS8z1H1AxBA1H6qknR4YpPR9w2XX0vo2Sz10miu57PkNcnHVaZkbqyw/kUWfKMI73jhmfi9BRMUQ==} cpu: [ppc64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-ppc64-musl@4.57.1': - resolution: {integrity: sha512-NOlUuzesGauESAyEYFSe3QTUguL+lvrN1HtwEEsU2rOwdUDeTMJdO5dUYl/2hKf9jWydJrO9OL/XSSf65R5+Xw==} - cpu: [ppc64] - os: [linux] - libc: [musl] - '@rollup/rollup-linux-ppc64-musl@4.60.0': resolution: {integrity: sha512-Z8pPf54Ly3aqtdWC3G4rFigZgNvd+qJlOE52fmko3KST9SoGfAdSRCwyoyG05q1HrrAblLbk1/PSIV+80/pxLg==} cpu: [ppc64] os: [linux] libc: [musl] - '@rollup/rollup-linux-riscv64-gnu@4.57.1': - resolution: {integrity: sha512-ptA88htVp0AwUUqhVghwDIKlvJMD/fmL/wrQj99PRHFRAG6Z5nbWoWG4o81Nt9FT+IuqUQi+L31ZKAFeJ5Is+A==} - cpu: [riscv64] - os: [linux] - libc: [glibc] - '@rollup/rollup-linux-riscv64-gnu@4.60.0': resolution: {integrity: sha512-3a3qQustp3COCGvnP4SvrMHnPQ9d1vzCakQVRTliaz8cIp/wULGjiGpbcqrkv0WrHTEp8bQD/B3HBjzujVWLOA==} cpu: [riscv64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-riscv64-musl@4.57.1': - resolution: {integrity: sha512-S51t7aMMTNdmAMPpBg7OOsTdn4tySRQvklmL3RpDRyknk87+Sp3xaumlatU+ppQ+5raY7sSTcC2beGgvhENfuw==} - cpu: [riscv64] - os: [linux] - libc: [musl] - '@rollup/rollup-linux-riscv64-musl@4.60.0': resolution: {integrity: sha512-pjZDsVH/1VsghMJ2/kAaxt6dL0psT6ZexQVrijczOf+PeP2BUqTHYejk3l6TlPRydggINOeNRhvpLa0AYpCWSQ==} cpu: [riscv64] os: [linux] libc: [musl] - '@rollup/rollup-linux-s390x-gnu@4.57.1': - resolution: {integrity: sha512-Bl00OFnVFkL82FHbEqy3k5CUCKH6OEJL54KCyx2oqsmZnFTR8IoNqBF+mjQVcRCT5sB6yOvK8A37LNm/kPJiZg==} - cpu: [s390x] - os: [linux] - libc: [glibc] - '@rollup/rollup-linux-s390x-gnu@4.60.0': resolution: {integrity: sha512-3ObQs0BhvPgiUVZrN7gqCSvmFuMWvWvsjG5ayJ3Lraqv+2KhOsp+pUbigqbeWqueGIsnn+09HBw27rJ+gYK4VQ==} cpu: [s390x] os: [linux] libc: [glibc] - '@rollup/rollup-linux-x64-gnu@4.57.1': - resolution: {integrity: sha512-ABca4ceT4N+Tv/GtotnWAeXZUZuM/9AQyCyKYyKnpk4yoA7QIAuBt6Hkgpw8kActYlew2mvckXkvx0FfoInnLg==} - cpu: [x64] - os: [linux] - libc: [glibc] - '@rollup/rollup-linux-x64-gnu@4.60.0': resolution: {integrity: sha512-EtylprDtQPdS5rXvAayrNDYoJhIz1/vzN2fEubo3yLE7tfAw+948dO0g4M0vkTVFhKojnF+n6C8bDNe+gDRdTg==} cpu: [x64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-x64-musl@4.57.1': - resolution: {integrity: sha512-HFps0JeGtuOR2convgRRkHCekD7j+gdAuXM+/i6kGzQtFhlCtQkpwtNzkNj6QhCDp7DRJ7+qC/1Vg2jt5iSOFw==} - cpu: [x64] - os: [linux] - libc: [musl] - '@rollup/rollup-linux-x64-musl@4.60.0': resolution: {integrity: sha512-k09oiRCi/bHU9UVFqD17r3eJR9bn03TyKraCrlz5ULFJGdJGi7VOmm9jl44vOJvRJ6P7WuBi/s2A97LxxHGIdw==} cpu: [x64] os: [linux] libc: [musl] - '@rollup/rollup-openbsd-x64@4.57.1': - resolution: {integrity: sha512-H+hXEv9gdVQuDTgnqD+SQffoWoc0Of59AStSzTEj/feWTBAnSfSD3+Dql1ZruJQxmykT/JVY0dE8Ka7z0DH1hw==} - cpu: [x64] - os: [openbsd] - '@rollup/rollup-openbsd-x64@4.60.0': resolution: {integrity: sha512-1o/0/pIhozoSaDJoDcec+IVLbnRtQmHwPV730+AOD29lHEEo4F5BEUB24H0OBdhbBBDwIOSuf7vgg0Ywxdfiiw==} cpu: [x64] os: [openbsd] - '@rollup/rollup-openharmony-arm64@4.57.1': - resolution: {integrity: sha512-4wYoDpNg6o/oPximyc/NG+mYUejZrCU2q+2w6YZqrAs2UcNUChIZXjtafAiiZSUc7On8v5NyNj34Kzj/Ltk6dQ==} - cpu: [arm64] - os: [openharmony] - '@rollup/rollup-openharmony-arm64@4.60.0': resolution: {integrity: sha512-pESDkos/PDzYwtyzB5p/UoNU/8fJo68vcXM9ZW2V0kjYayj1KaaUfi1NmTUTUpMn4UhU4gTuK8gIaFO4UGuMbA==} cpu: [arm64] os: [openharmony] - '@rollup/rollup-win32-arm64-msvc@4.57.1': - resolution: {integrity: sha512-O54mtsV/6LW3P8qdTcamQmuC990HDfR71lo44oZMZlXU4tzLrbvTii87Ni9opq60ds0YzuAlEr/GNwuNluZyMQ==} - cpu: [arm64] - os: [win32] - '@rollup/rollup-win32-arm64-msvc@4.60.0': resolution: {integrity: sha512-hj1wFStD7B1YBeYmvY+lWXZ7ey73YGPcViMShYikqKT1GtstIKQAtfUI6yrzPjAy/O7pO0VLXGmUVWXQMaYgTQ==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.57.1': - resolution: {integrity: sha512-P3dLS+IerxCT/7D2q2FYcRdWRl22dNbrbBEtxdWhXrfIMPP9lQhb5h4Du04mdl5Woq05jVCDPCMF7Ub0NAjIew==} - cpu: [ia32] - os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.60.0': resolution: {integrity: sha512-SyaIPFoxmUPlNDq5EHkTbiKzmSEmq/gOYFI/3HHJ8iS/v1mbugVa7dXUzcJGQfoytp9DJFLhHH4U3/eTy2Bq4w==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-gnu@4.57.1': - resolution: {integrity: sha512-VMBH2eOOaKGtIJYleXsi2B8CPVADrh+TyNxJ4mWPnKfLB/DBUmzW+5m1xUrcwWoMfSLagIRpjUFeW5CO5hyciQ==} - cpu: [x64] - os: [win32] - '@rollup/rollup-win32-x64-gnu@4.60.0': resolution: {integrity: sha512-RdcryEfzZr+lAr5kRm2ucN9aVlCCa2QNq4hXelZxb8GG0NJSazq44Z3PCCc8wISRuCVnGs0lQJVX5Vp6fKA+IA==} cpu: [x64] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.57.1': - resolution: {integrity: sha512-mxRFDdHIWRxg3UfIIAwCm6NzvxG0jDX/wBN6KsQFTvKFqqg9vTrWUE68qEjHt19A5wwx5X5aUi2zuZT7YR0jrA==} - cpu: [x64] - os: [win32] - '@rollup/rollup-win32-x64-msvc@4.60.0': resolution: {integrity: sha512-PrsWNQ8BuE00O3Xsx3ALh2Df8fAj9+cvvX9AIA6o4KpATR98c9mud4XtDWVvsEuyia5U4tVSTKygawyJkjm60w==} cpu: [x64] @@ -1770,11 +1614,6 @@ packages: engines: {node: '>=0.4.0'} hasBin: true - acorn@8.15.0: - resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} - engines: {node: '>=0.4.0'} - hasBin: true - acorn@8.16.0: resolution: {integrity: sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==} engines: {node: '>=0.4.0'} @@ -1889,10 +1728,6 @@ packages: engines: {node: '>=6.0.0'} hasBin: true - baseline-browser-mapping@2.9.19: - resolution: {integrity: sha512-ipDqC8FrAl/76p2SSWKSI+H9tFwm7vYqXQrItCuiVPt26Km0jS+NzSsBWAaBusvSbQcfJG+JitdMm+wZAgTYqg==} - hasBin: true - bl@4.1.0: resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} @@ -1959,9 +1794,6 @@ packages: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} - caniuse-lite@1.0.30001769: - resolution: {integrity: sha512-BCfFL1sHijQlBGWBMuJyhZUhzo7wer5sVj9hqekB/7xn0Ypy+pER/edCYQm4exbXj4WiySGp40P8UuTh6w1srg==} - caniuse-lite@1.0.30001781: resolution: {integrity: sha512-RdwNCyMsNBftLjW6w01z8bKEvT6e/5tpPVEgtn22TiLGlstHOVecsX2KHFkD5e/vRnIE4EGzpuIODb3mtswtkw==} @@ -2009,9 +1841,6 @@ packages: client-only@0.0.1: resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} - clipboard-copy@4.0.1: - resolution: {integrity: sha512-wOlqdqziE/NNTUJsfSgXmBMIrYmfd5V0HCGsR8uAKHcg+h9NENWINcfRjtWGU77wDHC8B8ijV4hMTGYbrKovng==} - clsx@2.1.1: resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} engines: {node: '>=6'} @@ -2185,10 +2014,6 @@ packages: destr@2.0.5: resolution: {integrity: sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==} - detect-libc@2.0.4: - resolution: {integrity: sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==} - engines: {node: '>=8'} - detect-libc@2.1.2: resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} engines: {node: '>=8'} @@ -2800,10 +2625,6 @@ packages: resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} engines: {node: '>= 0.4'} - is-url-superb@6.1.0: - resolution: {integrity: sha512-LXdhGlYqUPdvEyIhWPEEwYYK3yrUiPcBjmFGlZNv1u5GtIL5qQRf7ddDyPNAvsMFqdzS923FROpTQU97tLe3JQ==} - engines: {node: '>=12'} - is-weakmap@2.0.2: resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} engines: {node: '>= 0.4'} @@ -3014,9 +2835,6 @@ packages: resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} engines: {node: '>=10'} - minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - minimatch@3.1.5: resolution: {integrity: sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==} @@ -3258,10 +3076,6 @@ packages: resolution: {integrity: sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==} engines: {node: '>=8.6'} - picomatch@4.0.2: - resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} - engines: {node: '>=12'} - picomatch@4.0.4: resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==} engines: {node: '>=12'} @@ -3486,11 +3300,6 @@ packages: deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true - rollup@4.57.1: - resolution: {integrity: sha512-oQL6lgK3e2QZeQ7gcgIkS2YZPg5slw37hYufJ3edKlfQSGGm8ICoxswK15ntSzF/a8+h7ekRy7k7oWc3BQ7y8A==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true - rollup@4.60.0: resolution: {integrity: sha512-yqjxruMGBQJ2gG4HtjZtAfXArHomazDHoFwFFmZZl0r7Pdo7qCIXKqKHZc8yeoMgzJJ+pO6pEEHa+V7uzWlrAQ==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} @@ -4208,11 +4017,6 @@ snapshots: '@babel/helper-string-parser': 7.27.1 '@babel/helper-validator-identifier': 7.28.5 - '@emnapi/runtime@1.8.1': - dependencies: - tslib: 2.8.1 - optional: true - '@emnapi/runtime@1.9.1': dependencies: tslib: 2.8.1 @@ -4413,8 +4217,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@9.39.2': {} - '@eslint/js@9.39.4': {} '@eslint/object-schema@2.1.7': {} @@ -4426,7 +4228,7 @@ snapshots: '@fisch0920/config@1.4.0(@typescript-eslint/parser@8.55.0(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(prettier@3.8.1)(typescript@5.9.3)(vitest@4.1.2(@types/node@25.5.0)(jsdom@16.7.0(canvas@2.11.2))(vite@7.1.5(@types/node@25.5.0)(jiti@2.6.1)(terser@5.36.0)(tsx@4.21.0)(yaml@2.8.2)))(zod@4.3.6)': dependencies: - '@eslint/js': 9.39.2 + '@eslint/js': 9.39.4 '@total-typescript/ts-reset': 0.6.1 '@vitest/eslint-plugin': 1.6.7(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)(vitest@4.1.2(@types/node@25.5.0)(jsdom@16.7.0(canvas@2.11.2))(vite@7.1.5(@types/node@25.5.0)(jiti@2.6.1)(terser@5.36.0)(tsx@4.21.0)(yaml@2.8.2))) eslint: 9.39.4(jiti@2.6.1) @@ -4616,7 +4418,7 @@ snapshots: '@img/sharp-wasm32@0.33.5': dependencies: - '@emnapi/runtime': 1.8.1 + '@emnapi/runtime': 1.9.1 optional: true '@img/sharp-wasm32@0.34.5': @@ -4734,153 +4536,78 @@ snapshots: dependencies: quansync: 1.0.0 - '@rollup/rollup-android-arm-eabi@4.57.1': - optional: true - '@rollup/rollup-android-arm-eabi@4.60.0': optional: true - '@rollup/rollup-android-arm64@4.57.1': - optional: true - '@rollup/rollup-android-arm64@4.60.0': optional: true - '@rollup/rollup-darwin-arm64@4.57.1': - optional: true - '@rollup/rollup-darwin-arm64@4.60.0': optional: true - '@rollup/rollup-darwin-x64@4.57.1': - optional: true - '@rollup/rollup-darwin-x64@4.60.0': optional: true - '@rollup/rollup-freebsd-arm64@4.57.1': - optional: true - '@rollup/rollup-freebsd-arm64@4.60.0': optional: true - '@rollup/rollup-freebsd-x64@4.57.1': - optional: true - '@rollup/rollup-freebsd-x64@4.60.0': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.57.1': - optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.60.0': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.57.1': - optional: true - '@rollup/rollup-linux-arm-musleabihf@4.60.0': optional: true - '@rollup/rollup-linux-arm64-gnu@4.57.1': - optional: true - '@rollup/rollup-linux-arm64-gnu@4.60.0': optional: true - '@rollup/rollup-linux-arm64-musl@4.57.1': - optional: true - '@rollup/rollup-linux-arm64-musl@4.60.0': optional: true - '@rollup/rollup-linux-loong64-gnu@4.57.1': - optional: true - '@rollup/rollup-linux-loong64-gnu@4.60.0': optional: true - '@rollup/rollup-linux-loong64-musl@4.57.1': - optional: true - '@rollup/rollup-linux-loong64-musl@4.60.0': optional: true - '@rollup/rollup-linux-ppc64-gnu@4.57.1': - optional: true - '@rollup/rollup-linux-ppc64-gnu@4.60.0': optional: true - '@rollup/rollup-linux-ppc64-musl@4.57.1': - optional: true - '@rollup/rollup-linux-ppc64-musl@4.60.0': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.57.1': - optional: true - '@rollup/rollup-linux-riscv64-gnu@4.60.0': optional: true - '@rollup/rollup-linux-riscv64-musl@4.57.1': - optional: true - '@rollup/rollup-linux-riscv64-musl@4.60.0': optional: true - '@rollup/rollup-linux-s390x-gnu@4.57.1': - optional: true - '@rollup/rollup-linux-s390x-gnu@4.60.0': optional: true - '@rollup/rollup-linux-x64-gnu@4.57.1': - optional: true - '@rollup/rollup-linux-x64-gnu@4.60.0': optional: true - '@rollup/rollup-linux-x64-musl@4.57.1': - optional: true - '@rollup/rollup-linux-x64-musl@4.60.0': optional: true - '@rollup/rollup-openbsd-x64@4.57.1': - optional: true - '@rollup/rollup-openbsd-x64@4.60.0': optional: true - '@rollup/rollup-openharmony-arm64@4.57.1': - optional: true - '@rollup/rollup-openharmony-arm64@4.60.0': optional: true - '@rollup/rollup-win32-arm64-msvc@4.57.1': - optional: true - '@rollup/rollup-win32-arm64-msvc@4.60.0': optional: true - '@rollup/rollup-win32-ia32-msvc@4.57.1': - optional: true - '@rollup/rollup-win32-ia32-msvc@4.60.0': optional: true - '@rollup/rollup-win32-x64-gnu@4.57.1': - optional: true - '@rollup/rollup-win32-x64-gnu@4.60.0': optional: true - '@rollup/rollup-win32-x64-msvc@4.57.1': - optional: true - '@rollup/rollup-win32-x64-msvc@4.60.0': optional: true @@ -5124,8 +4851,6 @@ snapshots: acorn@7.4.1: optional: true - acorn@8.15.0: {} - acorn@8.16.0: {} agent-base@6.0.2: @@ -5258,8 +4983,6 @@ snapshots: baseline-browser-mapping@2.10.12: {} - baseline-browser-mapping@2.9.19: {} - bl@4.1.0: dependencies: buffer: 5.7.1 @@ -5285,8 +5008,8 @@ snapshots: browserslist@4.28.1: dependencies: - baseline-browser-mapping: 2.9.19 - caniuse-lite: 1.0.30001769 + baseline-browser-mapping: 2.10.12 + caniuse-lite: 1.0.30001781 electron-to-chromium: 1.5.286 node-releases: 2.0.27 update-browserslist-db: 1.2.3(browserslist@4.28.1) @@ -5342,8 +5065,6 @@ snapshots: callsites@3.1.0: {} - caniuse-lite@1.0.30001769: {} - caniuse-lite@1.0.30001781: {} canvas@2.11.2: @@ -5391,8 +5112,6 @@ snapshots: client-only@0.0.1: {} - clipboard-copy@4.0.1: {} - clsx@2.1.1: optional: true @@ -5562,10 +5281,7 @@ snapshots: destr@2.0.5: {} - detect-libc@2.0.4: {} - - detect-libc@2.1.2: - optional: true + detect-libc@2.1.2: {} doctrine@2.1.0: dependencies: @@ -5807,7 +5523,7 @@ snapshots: hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 - minimatch: 3.1.2 + minimatch: 3.1.5 object.fromentries: 2.0.8 object.groupby: 1.0.3 object.values: 1.2.1 @@ -5841,7 +5557,7 @@ snapshots: hasown: 2.0.2 jsx-ast-utils: 3.3.5 language-tags: 1.0.9 - minimatch: 3.1.2 + minimatch: 3.1.5 object.fromentries: 2.0.8 safe-regex-test: 1.1.0 string.prototype.includes: 2.0.1 @@ -5869,7 +5585,7 @@ snapshots: estraverse: 5.3.0 hasown: 2.0.2 jsx-ast-utils: 3.3.5 - minimatch: 3.1.2 + minimatch: 3.1.5 object.entries: 1.1.9 object.fromentries: 2.0.8 object.values: 1.2.1 @@ -6054,7 +5770,7 @@ snapshots: dependencies: magic-string: 0.30.21 mlly: 1.8.0 - rollup: 4.57.1 + rollup: 4.60.0 flat-cache@4.0.1: dependencies: @@ -6405,8 +6121,6 @@ snapshots: dependencies: which-typed-array: 1.1.20 - is-url-superb@6.1.0: {} - is-weakmap@2.0.2: {} is-weakref@1.1.1: @@ -6609,10 +6323,6 @@ snapshots: mimic-response@3.1.0: optional: true - minimatch@3.1.2: - dependencies: - brace-expansion: 1.1.12 - minimatch@3.1.5: dependencies: brace-expansion: 1.1.12 @@ -6645,7 +6355,7 @@ snapshots: mlly@1.8.0: dependencies: - acorn: 8.15.0 + acorn: 8.16.0 pathe: 2.0.3 pkg-types: 1.3.1 ufo: 1.6.3 @@ -6722,7 +6432,7 @@ snapshots: ansi-styles: 6.2.1 cross-spawn: 7.0.6 memorystream: 0.3.1 - picomatch: 4.0.2 + picomatch: 4.0.4 pidtree: 0.6.0 read-package-json-fast: 4.0.0 shell-quote: 1.8.2 @@ -6866,8 +6576,6 @@ snapshots: picomatch@2.3.2: {} - picomatch@4.0.2: {} - picomatch@4.0.4: {} pidtree@0.6.0: {} @@ -7092,37 +6800,6 @@ snapshots: glob: 7.2.3 optional: true - rollup@4.57.1: - dependencies: - '@types/estree': 1.0.8 - optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.57.1 - '@rollup/rollup-android-arm64': 4.57.1 - '@rollup/rollup-darwin-arm64': 4.57.1 - '@rollup/rollup-darwin-x64': 4.57.1 - '@rollup/rollup-freebsd-arm64': 4.57.1 - '@rollup/rollup-freebsd-x64': 4.57.1 - '@rollup/rollup-linux-arm-gnueabihf': 4.57.1 - '@rollup/rollup-linux-arm-musleabihf': 4.57.1 - '@rollup/rollup-linux-arm64-gnu': 4.57.1 - '@rollup/rollup-linux-arm64-musl': 4.57.1 - '@rollup/rollup-linux-loong64-gnu': 4.57.1 - '@rollup/rollup-linux-loong64-musl': 4.57.1 - '@rollup/rollup-linux-ppc64-gnu': 4.57.1 - '@rollup/rollup-linux-ppc64-musl': 4.57.1 - '@rollup/rollup-linux-riscv64-gnu': 4.57.1 - '@rollup/rollup-linux-riscv64-musl': 4.57.1 - '@rollup/rollup-linux-s390x-gnu': 4.57.1 - '@rollup/rollup-linux-x64-gnu': 4.57.1 - '@rollup/rollup-linux-x64-musl': 4.57.1 - '@rollup/rollup-openbsd-x64': 4.57.1 - '@rollup/rollup-openharmony-arm64': 4.57.1 - '@rollup/rollup-win32-arm64-msvc': 4.57.1 - '@rollup/rollup-win32-ia32-msvc': 4.57.1 - '@rollup/rollup-win32-x64-gnu': 4.57.1 - '@rollup/rollup-win32-x64-msvc': 4.57.1 - fsevents: 2.3.3 - rollup@4.60.0: dependencies: '@types/estree': 1.0.8 @@ -7226,7 +6903,7 @@ snapshots: sharp@0.33.5: dependencies: color: 4.2.3 - detect-libc: 2.0.4 + detect-libc: 2.1.2 semver: 7.7.4 optionalDependencies: '@img/sharp-darwin-arm64': 0.33.5 @@ -7579,7 +7256,7 @@ snapshots: picocolors: 1.1.1 postcss-load-config: 6.0.1(jiti@2.6.1)(postcss@8.5.8)(tsx@4.21.0)(yaml@2.8.2) resolve-from: 5.0.0 - rollup: 4.57.1 + rollup: 4.60.0 source-map: 0.7.6 sucrase: 3.35.1 tinyexec: 0.3.2 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 50136a1b..8d2e5ffc 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -16,13 +16,11 @@ catalog: '@types/react-modal': ^3.16.3 bumpp: ^11.0.1 classnames: ^2.5.1 - clipboard-copy: ^4.0.1 cross-env: ^10.1.0 date-fns: ^4.1.0 del-cli: ^7.0.0 eslint: ^9.35.0 format-number: ^3.0.0 - is-url-superb: ^6.1.0 katex: 0.16.21 ky: ^1.14.3 lodash.throttle: ^4.1.1