2025-04-17 20:36:11 +08:00
lockfileVersion : '9.0'
2025-04-17 12:02:23 +08:00
settings :
autoInstallPeers : true
excludeLinksFromLockfile : false
2025-04-17 20:36:11 +08:00
importers :
. :
dependencies :
'@ant-design/icons' :
specifier : ^6.0.0
version : 6.0 .0 (react-dom@19.1.0(react@19.1.0))(react@19.1.0)
2025-04-23 21:16:58 +08:00
'@hookform/resolvers' :
specifier : ^5.0.1
version : 5.0 .1 (react-hook-form@7.56.1(react@19.1.0))
2025-04-24 15:40:49 +08:00
'@radix-ui/react-accordion' :
specifier : ^1.2.8
version : 1.2 .8 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-checkbox' :
specifier : ^1.2.3
version : 1.2 .3 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-collapsible' :
specifier : ^1.1.8
version : 1.1 .8 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
2025-04-22 11:04:03 +08:00
'@radix-ui/react-dialog' :
specifier : ^1.1.10
version : 1.1 .10 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
2025-04-20 11:18:05 +08:00
'@radix-ui/react-dropdown-menu' :
specifier : ^2.1.11
version : 2.1 .11 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
2026-01-24 17:49:13 +08:00
'@radix-ui/react-hover-card' :
specifier : ^1.1.6
version : 1.1 .15 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
2025-04-28 10:07:36 +08:00
'@radix-ui/react-icons' :
specifier : ^1.3.2
version : 1.3 .2 (react@19.1.0)
2025-04-22 11:04:03 +08:00
'@radix-ui/react-label' :
specifier : ^2.1.4
version : 2.1 .4 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
2025-04-26 00:20:49 +08:00
'@radix-ui/react-popover' :
specifier : ^1.1.11
version : 1.1 .11 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
2025-04-17 20:36:11 +08:00
'@radix-ui/react-scroll-area' :
specifier : ^1.2.4
version : 1.2 .4 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
2025-04-24 15:40:49 +08:00
'@radix-ui/react-select' :
specifier : ^2.2.2
version : 2.2 .2 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
2025-04-22 11:04:03 +08:00
'@radix-ui/react-separator' :
specifier : ^1.1.4
version : 1.1 .4 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
2025-05-02 17:23:45 +08:00
'@radix-ui/react-slider' :
specifier : ^1.3.2
version : 1.3 .2 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
2025-04-17 20:36:11 +08:00
'@radix-ui/react-slot' :
specifier : ^1.2.0
version : 1.2 .0 (@types/react@19.1.2)(react@19.1.0)
2025-04-24 15:50:41 +08:00
'@radix-ui/react-switch' :
specifier : ^1.2.2
version : 1.2 .2 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
2025-04-17 20:36:11 +08:00
'@radix-ui/react-tabs' :
specifier : ^1.1.4
version : 1.1 .4 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-tooltip' :
specifier : ^1.2.0
version : 1.2 .0 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
2025-05-28 14:13:46 +08:00
'@rc-component/mentions' :
specifier : ^1.2.0
version : 1.2 .0 (react-dom@19.1.0(react@19.1.0))(react@19.1.0)
2025-04-17 20:36:11 +08:00
'@t3-oss/env-nextjs' :
specifier : ^0.11.0
version : 0.11 .1 (typescript@5.8.3)(zod@3.24.3)
2025-04-26 00:20:49 +08:00
'@tailwindcss/typography' :
specifier : ^0.5.16
version : 0.5 .16 (tailwindcss@4.1.4)
2025-05-28 14:13:46 +08:00
'@tiptap/extension-document' :
specifier : ^2.12.0
version : 2.12 .0 (@tiptap/core@2.11.7(@tiptap/pm@2.11.7))
'@tiptap/extension-mention' :
specifier : ^2.12.0
version : 2.12 .0 (@tiptap/core@2.11.7(@tiptap/pm@2.11.7))(@tiptap/pm@2.11.7)(@tiptap/suggestion@2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))(@tiptap/pm@2.11.7))
2025-04-27 10:39:02 +08:00
'@tiptap/extension-table' :
specifier : ^2.11.7
version : 2.11 .7 (@tiptap/core@2.11.7(@tiptap/pm@2.11.7))(@tiptap/pm@2.11.7)
'@tiptap/extension-table-cell' :
specifier : ^2.11.7
version : 2.11 .7 (@tiptap/core@2.11.7(@tiptap/pm@2.11.7))
'@tiptap/extension-table-header' :
specifier : ^2.11.7
version : 2.11 .7 (@tiptap/core@2.11.7(@tiptap/pm@2.11.7))
'@tiptap/extension-table-row' :
specifier : ^2.11.7
version : 2.11 .7 (@tiptap/core@2.11.7(@tiptap/pm@2.11.7))
2025-05-28 14:13:46 +08:00
'@tiptap/extension-text' :
specifier : ^2.12.0
version : 2.12 .0 (@tiptap/core@2.11.7(@tiptap/pm@2.11.7))
2025-04-27 00:19:13 +08:00
'@tiptap/react' :
specifier : ^2.11.7
version : 2.11 .7 (@tiptap/core@2.11.7(@tiptap/pm@2.11.7))(@tiptap/pm@2.11.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
'@types/dompurify' :
specifier : ^3.2.0
version : 3.2 .0
2025-07-12 15:18:28 +08:00
'@types/js-cookie' :
specifier : ^3.0.6
version : 3.0 .6
2025-04-29 14:12:36 +08:00
'@xyflow/react' :
specifier : ^12.6.0
2025-04-29 15:47:01 +08:00
version : 12.6 .0 (@types/react@19.1.2)(immer@10.1.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
2025-04-17 20:36:11 +08:00
best-effort-json-parser :
specifier : ^1.1.3
version : 1.1 .3
class-variance-authority :
specifier : ^0.7.1
version : 0.7 .1
clsx :
specifier : ^2.1.1
version : 2.1 .1
2025-04-26 00:20:49 +08:00
cmdk :
specifier : ^1.1.1
version : 1.1 .1 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
docx :
specifier : ^9.5.1
version : 9.5 .1
dompurify :
specifier : ^3.3.1
version : 3.3 .1
file-saver :
specifier : ^2.0.5
version : 2.0 .5
2025-04-17 20:36:11 +08:00
framer-motion :
specifier : ^12.6.5
version : 12.7 .4 (react-dom@19.1.0(react@19.1.0))(react@19.1.0)
hast :
specifier : ^1.0.0
version : 1.0 .0
2025-04-26 00:20:49 +08:00
highlight.js :
specifier : ^11.11.1
version : 11.11 .1
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
html2canvas :
specifier : ^1.4.1
version : 1.4 .1
2025-04-29 15:47:01 +08:00
immer :
specifier : ^10.1.1
version : 10.1 .1
2025-07-12 15:18:28 +08:00
js-cookie :
specifier : ^3.0.5
version : 3.0 .5
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
jspdf :
2026-02-06 10:29:43 +08:00
specifier : ^4.1.0
version : 4.1 .0
2025-04-17 20:36:11 +08:00
katex :
specifier : ^0.16.21
version : 0.16 .21
2025-04-26 00:20:49 +08:00
lowlight :
specifier : ^3.3.0
version : 3.3 .0
2025-04-17 20:36:11 +08:00
lru-cache :
specifier : ^11.1.0
version : 11.1 .0
lucide-react :
specifier : ^0.487.0
version : 0.487 .0 (react@19.1.0)
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
marked :
specifier : ^17.0.1
version : 17.0 .1
2025-04-17 20:36:11 +08:00
motion :
2025-05-12 23:15:43 +08:00
specifier : ^12.7.4
2025-04-17 20:36:11 +08:00
version : 12.7 .4 (react-dom@19.1.0(react@19.1.0))(react@19.1.0)
nanoid :
specifier : ^5.1.5
version : 5.1 .5
next :
2026-02-09 15:43:04 +08:00
specifier : ^15.5.10
version : 15.5 .10 (@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
2025-07-12 15:18:28 +08:00
next-intl :
specifier : ^4.3.1
2026-02-09 15:43:04 +08:00
version : 4.3 .1 (next@15.5.10(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0)(typescript@5.8.3)
2025-04-20 11:18:05 +08:00
next-themes :
specifier : ^0.4.6
version : 0.4 .6 (react-dom@19.1.0(react@19.1.0))(react@19.1.0)
2025-04-26 00:20:49 +08:00
novel :
specifier : ^1.0.2
2025-04-29 15:47:01 +08:00
version : 1.0 .2 (@tiptap/extension-code-block@2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))(@tiptap/pm@2.11.7))(@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(highlight.js@11.11.1)(immer@10.1.1)(lowlight@3.3.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
2025-04-17 20:36:11 +08:00
react :
specifier : ^19.0.0
version : 19.1 .0
react-dom :
specifier : ^19.0.0
version : 19.1 .0 (react@19.1.0)
2025-04-23 21:16:58 +08:00
react-hook-form :
specifier : ^7.56.1
version : 7.56 .1 (react@19.1.0)
2025-04-17 20:36:11 +08:00
react-markdown :
specifier : ^10.1.0
version : 10.1 .0 (@types/react@19.1.2)(react@19.1.0)
react-syntax-highlighter :
specifier : ^15.6.1
version : 15.6 .1 (react@19.1.0)
rehype-katex :
specifier : ^7.0.1
version : 7.0 .1
remark-gfm :
specifier : ^4.0.1
version : 4.0 .1
remark-math :
specifier : ^6.0.0
version : 6.0 .0
2025-04-26 00:20:49 +08:00
sonner :
specifier : ^2.0.3
version : 2.0 .3 (react-dom@19.1.0(react@19.1.0))(react@19.1.0)
2025-04-17 20:36:11 +08:00
tailwind-merge :
specifier : ^3.2.0
version : 3.2 .0
2025-05-28 14:13:46 +08:00
tippy.js :
specifier : ^6.3.7
version : 6.3 .7
2025-04-26 00:20:49 +08:00
tiptap-markdown :
specifier : ^0.8.10
version : 0.8 .10 (@tiptap/core@2.11.7(@tiptap/pm@2.11.7))
2025-04-17 20:36:11 +08:00
tw-animate-css :
specifier : ^1.2.5
version : 1.2 .5
unist-util-visit :
specifier : ^5.0.0
version : 5.0 .0
2025-04-26 00:20:49 +08:00
use-debounce :
specifier : ^10.0.4
version : 10.0 .4 (react@19.1.0)
2025-04-17 20:36:11 +08:00
use-stick-to-bottom :
specifier : ^1.1.0
version : 1.1 .0 (react@19.1.0)
zod :
2025-04-23 21:16:58 +08:00
specifier : ^3.24.3
2025-04-17 20:36:11 +08:00
version : 3.24 .3
zustand :
specifier : ^5.0.3
2025-04-29 15:47:01 +08:00
version : 5.0 .3 (@types/react@19.1.2)(immer@10.1.1)(react@19.1.0)(use-sync-external-store@1.5.0(react@19.1.0))
2025-04-17 20:36:11 +08:00
devDependencies :
'@eslint/eslintrc' :
specifier : ^3.3.1
version : 3.3 .1
'@tailwindcss/postcss' :
specifier : ^4.0.15
version : 4.1 .4
2025-10-25 20:46:43 +08:00
'@testing-library/dom' :
specifier : ^10.4.1
version : 10.4 .1
'@testing-library/react' :
specifier : ^16.3.0
version : 16.3 .0 (@testing-library/dom@10.4.1)(@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
'@types/file-saver' :
specifier : ^2.0.7
version : 2.0 .7
2025-04-17 20:36:11 +08:00
'@types/hast' :
specifier : ^3.0.4
version : 3.0 .4
2025-10-25 20:46:43 +08:00
'@types/jest' :
specifier : ^30.0.0
version : 30.0 .0
2025-04-17 20:36:11 +08:00
'@types/node' :
specifier : ^20.14.10
version : 20.17 .30
'@types/react' :
specifier : ^19.0.0
version : 19.1 .2
'@types/react-dom' :
specifier : ^19.0.0
version : 19.1 .1 (@types/react@19.1.2)
'@types/react-syntax-highlighter' :
specifier : ^15.5.13
version : 15.5 .13
2025-06-05 11:53:49 +08:00
dotenv-cli :
specifier : ^8.0.0
version : 8.0 .0
2025-04-17 20:36:11 +08:00
eslint :
specifier : ^9.23.0
version : 9.24 .0 (jiti@2.4.2)
eslint-config-next :
specifier : ^15.2.3
version : 15.3 .0 (eslint@9.24.0(jiti@2.4.2))(typescript@5.8.3)
2025-10-25 20:46:43 +08:00
identity-obj-proxy :
specifier : ^3.0.0
version : 3.0 .0
jest :
specifier : ^30.2.0
version : 30.2 .0 (@types/node@20.17.30)
jest-environment-jsdom :
specifier : ^30.2.0
version : 30.2 .0
2025-04-17 20:36:11 +08:00
postcss :
specifier : ^8.5.3
version : 8.5 .3
prettier :
specifier : ^3.5.3
version : 3.5 .3
prettier-plugin-tailwindcss :
specifier : ^0.6.11
version : 0.6 .11 (prettier@3.5.3)
2025-04-22 13:52:56 +08:00
raw-loader :
specifier : ^4.0.2
version : 4.0 .2 (webpack@5.99.6)
2025-04-17 20:36:11 +08:00
tailwindcss :
specifier : ^4.0.15
version : 4.1 .4
2025-10-25 20:46:43 +08:00
ts-jest :
specifier : ^29.4.5
version : 29.4 .5 (@babel/core@7.28.5)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@30.2.0(@types/node@20.17.30))(typescript@5.8.3)
2025-04-17 20:36:11 +08:00
typescript :
specifier : ^5.8.2
version : 5.8 .3
typescript-eslint :
specifier : ^8.27.0
version : 8.30 .1 (eslint@9.24.0(jiti@2.4.2))(typescript@5.8.3)
2025-04-17 12:02:23 +08:00
packages :
2025-04-17 20:36:11 +08:00
'@alloc/quick-lru@5.2.0' :
2025-04-17 12:02:23 +08:00
resolution : {integrity : sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==}
engines : {node : '>=10' }
2025-04-17 20:36:11 +08:00
'@ant-design/colors@8.0.0' :
2025-04-17 12:02:23 +08:00
resolution : {integrity : sha512-6YzkKCw30EI/E9kHOIXsQDHmMvTllT8STzjMb4K2qzit33RW2pqCJP0sk+hidBntXxE+Vz4n1+RvCTfBw6OErw==}
2025-04-17 20:36:11 +08:00
'@ant-design/fast-color@3.0.0' :
2025-04-17 12:02:23 +08:00
resolution : {integrity : sha512-eqvpP7xEDm2S7dUzl5srEQCBTXZMmY3ekf97zI+M2DHOYyKdJGH0qua0JACHTqbkRnD/KHFQP9J1uMJ/XWVzzA==}
engines : {node : '>=8.x' }
2025-04-17 20:36:11 +08:00
'@ant-design/icons-svg@4.4.2' :
2025-04-17 12:02:23 +08:00
resolution : {integrity : sha512-vHbT+zJEVzllwP+CM+ul7reTEfBR0vgxFe7+lREAsAA7YGsYpboiq2sQNeQeRvh09GfQgs/GyFEvZpJ9cLXpXA==}
2025-04-17 20:36:11 +08:00
'@ant-design/icons@6.0.0' :
2025-04-17 12:02:23 +08:00
resolution : {integrity : sha512-o0aCCAlHc1o4CQcapAwWzHeaW2x9F49g7P3IDtvtNXgHowtRWYb7kiubt8sQPFvfVIVU/jLw2hzeSlNt0FU+Uw==}
engines : {node : '>=8' }
peerDependencies :
react : '>=16.0.0'
react-dom : '>=16.0.0'
2025-10-25 20:46:43 +08:00
'@asamuzakjp/css-color@3.2.0' :
resolution : {integrity : sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw==}
'@babel/code-frame@7.27.1' :
resolution : {integrity : sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==}
engines : {node : '>=6.9.0' }
'@babel/compat-data@7.28.5' :
resolution : {integrity : sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA==}
engines : {node : '>=6.9.0' }
'@babel/core@7.28.5' :
resolution : {integrity : sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==}
engines : {node : '>=6.9.0' }
'@babel/generator@7.28.5' :
resolution : {integrity : sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==}
engines : {node : '>=6.9.0' }
'@babel/helper-compilation-targets@7.27.2' :
resolution : {integrity : sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==}
engines : {node : '>=6.9.0' }
'@babel/helper-globals@7.28.0' :
resolution : {integrity : sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==}
engines : {node : '>=6.9.0' }
'@babel/helper-module-imports@7.27.1' :
resolution : {integrity : sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==}
engines : {node : '>=6.9.0' }
'@babel/helper-module-transforms@7.28.3' :
resolution : {integrity : sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==}
engines : {node : '>=6.9.0' }
peerDependencies :
'@babel/core' : ^7.0.0
'@babel/helper-plugin-utils@7.27.1' :
resolution : {integrity : sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==}
engines : {node : '>=6.9.0' }
'@babel/helper-string-parser@7.27.1' :
resolution : {integrity : sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==}
engines : {node : '>=6.9.0' }
'@babel/helper-validator-identifier@7.28.5' :
resolution : {integrity : sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==}
engines : {node : '>=6.9.0' }
'@babel/helper-validator-option@7.27.1' :
resolution : {integrity : sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==}
engines : {node : '>=6.9.0' }
'@babel/helpers@7.28.4' :
resolution : {integrity : sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==}
engines : {node : '>=6.9.0' }
'@babel/parser@7.28.5' :
resolution : {integrity : sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==}
engines : {node : '>=6.0.0' }
hasBin : true
'@babel/plugin-syntax-async-generators@7.8.4' :
resolution : {integrity : sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==}
peerDependencies :
'@babel/core' : ^7.0.0-0
'@babel/plugin-syntax-bigint@7.8.3' :
resolution : {integrity : sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==}
peerDependencies :
'@babel/core' : ^7.0.0-0
'@babel/plugin-syntax-class-properties@7.12.13' :
resolution : {integrity : sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==}
peerDependencies :
'@babel/core' : ^7.0.0-0
'@babel/plugin-syntax-class-static-block@7.14.5' :
resolution : {integrity : sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==}
engines : {node : '>=6.9.0' }
peerDependencies :
'@babel/core' : ^7.0.0-0
'@babel/plugin-syntax-import-attributes@7.27.1' :
resolution : {integrity : sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==}
engines : {node : '>=6.9.0' }
peerDependencies :
'@babel/core' : ^7.0.0-0
'@babel/plugin-syntax-import-meta@7.10.4' :
resolution : {integrity : sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==}
peerDependencies :
'@babel/core' : ^7.0.0-0
'@babel/plugin-syntax-json-strings@7.8.3' :
resolution : {integrity : sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==}
peerDependencies :
'@babel/core' : ^7.0.0-0
'@babel/plugin-syntax-jsx@7.27.1' :
resolution : {integrity : sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==}
engines : {node : '>=6.9.0' }
peerDependencies :
'@babel/core' : ^7.0.0-0
'@babel/plugin-syntax-logical-assignment-operators@7.10.4' :
resolution : {integrity : sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==}
peerDependencies :
'@babel/core' : ^7.0.0-0
'@babel/plugin-syntax-nullish-coalescing-operator@7.8.3' :
resolution : {integrity : sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==}
peerDependencies :
'@babel/core' : ^7.0.0-0
'@babel/plugin-syntax-numeric-separator@7.10.4' :
resolution : {integrity : sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==}
peerDependencies :
'@babel/core' : ^7.0.0-0
'@babel/plugin-syntax-object-rest-spread@7.8.3' :
resolution : {integrity : sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==}
peerDependencies :
'@babel/core' : ^7.0.0-0
'@babel/plugin-syntax-optional-catch-binding@7.8.3' :
resolution : {integrity : sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==}
peerDependencies :
'@babel/core' : ^7.0.0-0
'@babel/plugin-syntax-optional-chaining@7.8.3' :
resolution : {integrity : sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==}
peerDependencies :
'@babel/core' : ^7.0.0-0
'@babel/plugin-syntax-private-property-in-object@7.14.5' :
resolution : {integrity : sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==}
engines : {node : '>=6.9.0' }
peerDependencies :
'@babel/core' : ^7.0.0-0
'@babel/plugin-syntax-top-level-await@7.14.5' :
resolution : {integrity : sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==}
engines : {node : '>=6.9.0' }
peerDependencies :
'@babel/core' : ^7.0.0-0
'@babel/plugin-syntax-typescript@7.27.1' :
resolution : {integrity : sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==}
engines : {node : '>=6.9.0' }
peerDependencies :
'@babel/core' : ^7.0.0-0
2025-04-17 20:36:11 +08:00
'@babel/runtime@7.27.0' :
2025-04-17 12:02:23 +08:00
resolution : {integrity : sha512-VtPOkrdPHZsKc/clNqyi9WUA8TINkZ4cGk63UUE3u4pmB2k+ZMQRDuIOagv8UVd6j7k0T3+RRIb7beKTebNbcw==}
engines : {node : '>=6.9.0' }
2026-02-06 10:29:43 +08:00
'@babel/runtime@7.28.6' :
resolution : {integrity : sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA==}
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
engines : {node : '>=6.9.0' }
2025-10-25 20:46:43 +08:00
'@babel/template@7.27.2' :
resolution : {integrity : sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==}
engines : {node : '>=6.9.0' }
'@babel/traverse@7.28.5' :
resolution : {integrity : sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==}
engines : {node : '>=6.9.0' }
'@babel/types@7.28.5' :
resolution : {integrity : sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==}
engines : {node : '>=6.9.0' }
'@bcoe/v8-coverage@0.2.3' :
resolution : {integrity : sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==}
2025-04-26 00:20:49 +08:00
'@cfcs/core@0.0.6' :
resolution : {integrity : sha512-FxfJMwoLB8MEMConeXUCqtMGqxdtePQxRBOiGip9ULcYYam3WfCgoY6xdnMaSkYvRvmosp5iuG+TiPofm65+Pw==}
2025-10-25 20:46:43 +08:00
'@csstools/color-helpers@5.1.0' :
resolution : {integrity : sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA==}
engines : {node : '>=18' }
'@csstools/css-calc@2.1.4' :
resolution : {integrity : sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ==}
engines : {node : '>=18' }
peerDependencies :
'@csstools/css-parser-algorithms' : ^3.0.5
'@csstools/css-tokenizer' : ^3.0.4
'@csstools/css-color-parser@3.1.0' :
resolution : {integrity : sha512-nbtKwh3a6xNVIp/VRuXV64yTKnb1IjTAEEh3irzS+HkKjAOYLTGNb9pmVNntZ8iVBHcWDA2Dof0QtPgFI1BaTA==}
engines : {node : '>=18' }
peerDependencies :
'@csstools/css-parser-algorithms' : ^3.0.5
'@csstools/css-tokenizer' : ^3.0.4
'@csstools/css-parser-algorithms@3.0.5' :
resolution : {integrity : sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==}
engines : {node : '>=18' }
peerDependencies :
'@csstools/css-tokenizer' : ^3.0.4
'@csstools/css-tokenizer@3.0.4' :
resolution : {integrity : sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==}
engines : {node : '>=18' }
2025-04-26 00:20:49 +08:00
'@daybrush/utils@1.13.0' :
resolution : {integrity : sha512-ALK12C6SQNNHw1enXK+UO8bdyQ+jaWNQ1Af7Z3FNxeAwjYhQT7do+TRE4RASAJ3ObaS2+TJ7TXR3oz2Gzbw0PQ==}
'@egjs/agent@2.4.4' :
resolution : {integrity : sha512-cvAPSlUILhBBOakn2krdPnOGv5hAZq92f1YHxYcfu0p7uarix2C6Ia3AVizpS1SGRZGiEkIS5E+IVTLg1I2Iog==}
'@egjs/children-differ@1.0.1' :
resolution : {integrity : sha512-DRvyqMf+CPCOzAopQKHtW+X8iN6Hy6SFol+/7zCUiE5y4P/OB8JP8FtU4NxtZwtafvSL4faD5KoQYPj3JHzPFQ==}
'@egjs/component@3.0.5' :
resolution : {integrity : sha512-cLcGizTrrUNA2EYE3MBmEDt2tQv1joVP1Q3oDisZ5nw0MZDx2kcgEXM+/kZpfa/PAkFvYVhRUZwytIQWoN3V/w==}
'@egjs/list-differ@1.0.1' :
resolution : {integrity : sha512-OTFTDQcWS+1ZREOdCWuk5hCBgYO4OsD30lXcOCyVOAjXMhgL5rBRDnt/otb6Nz8CzU0L/igdcaQBDLWc4t9gvg==}
2025-04-17 20:36:11 +08:00
'@emnapi/core@1.4.1' :
2025-04-17 14:26:41 +08:00
resolution : {integrity : sha512-4JFstCTaToCFrPqrGzgkF8N2NHjtsaY4uRh6brZQ5L9e4wbMieX8oDT8N7qfVFTQecHFEtkj4ve49VIZ3mKVqw==}
2025-04-17 12:02:23 +08:00
2025-10-25 20:46:43 +08:00
'@emnapi/core@1.6.0' :
resolution : {integrity : sha512-zq/ay+9fNIJJtJiZxdTnXS20PllcYMX3OE23ESc4HK/bdYu3cOWYVhsOhVnXALfU/uqJIxn5NBPd9z4v+SfoSg==}
2026-02-09 15:43:04 +08:00
'@emnapi/runtime@1.8.1' :
resolution : {integrity : sha512-mehfKSMWjjNol8659Z8KxEMrdSJDDot5SXMq00dM8BN4o+CLNXQ0xH2V7EchNHV4RmbZLmmPdEaXZc5H2FXmDg==}
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
'@emnapi/wasi-threads@1.0.1' :
2025-04-17 12:02:23 +08:00
resolution : {integrity : sha512-iIBu7mwkq4UQGeMEM8bLwNK962nXdhodeScX4slfQnRhEMMzvYivHhutCIk8uojvmASXXPC2WNEjwxFWk72Oqw==}
2025-10-25 20:46:43 +08:00
'@emnapi/wasi-threads@1.1.0' :
resolution : {integrity : sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==}
2025-04-17 20:36:11 +08:00
'@eslint-community/eslint-utils@4.6.1' :
2025-04-17 14:26:41 +08:00
resolution : {integrity : sha512-KTsJMmobmbrFLe3LDh0PC2FXpcSYJt/MLjlkh/9LEnmKYLSYmT/0EW9JWANjeoemiuZrmogti0tW5Ch+qNUYDw==}
2025-04-17 12:02:23 +08:00
engines : {node : ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies :
eslint : ^6.0.0 || ^7.0.0 || >=8.0.0
2025-04-17 20:36:11 +08:00
'@eslint-community/regexpp@4.12.1' :
2025-04-17 12:02:23 +08:00
resolution : {integrity : sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==}
engines : {node : ^12.0.0 || ^14.0.0 || >=16.0.0}
2025-04-17 20:36:11 +08:00
'@eslint/config-array@0.20.0' :
2025-04-17 12:02:23 +08:00
resolution : {integrity : sha512-fxlS1kkIjx8+vy2SjuCB94q3htSNrufYTXubwiBFeaQHbH6Ipi43gFJq2zCMt6PHhImH3Xmr0NksKDvchWlpQQ==}
engines : {node : ^18.18.0 || ^20.9.0 || >=21.1.0}
2025-04-17 20:36:11 +08:00
'@eslint/config-helpers@0.2.1' :
2025-04-17 12:02:23 +08:00
resolution : {integrity : sha512-RI17tsD2frtDu/3dmI7QRrD4bedNKPM08ziRYaC5AhkGrzIAJelm9kJU1TznK+apx6V+cqRz8tfpEeG3oIyjxw==}
engines : {node : ^18.18.0 || ^20.9.0 || >=21.1.0}
2025-04-17 20:36:11 +08:00
'@eslint/core@0.12.0' :
2025-04-17 12:02:23 +08:00
resolution : {integrity : sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg==}
engines : {node : ^18.18.0 || ^20.9.0 || >=21.1.0}
2025-04-17 20:36:11 +08:00
'@eslint/core@0.13.0' :
2025-04-17 12:02:23 +08:00
resolution : {integrity : sha512-yfkgDw1KR66rkT5A8ci4irzDysN7FRpq3ttJolR88OqQikAWqwA8j5VZyas+vjyBNFIJ7MfybJ9plMILI2UrCw==}
engines : {node : ^18.18.0 || ^20.9.0 || >=21.1.0}
2025-04-17 20:36:11 +08:00
'@eslint/eslintrc@3.3.1' :
2025-04-17 12:02:23 +08:00
resolution : {integrity : sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==}
engines : {node : ^18.18.0 || ^20.9.0 || >=21.1.0}
2025-04-17 20:36:11 +08:00
'@eslint/js@9.24.0' :
2025-04-17 12:02:23 +08:00
resolution : {integrity : sha512-uIY/y3z0uvOGX8cp1C2fiC4+ZmBhp6yZWkojtHL1YEMnRt1Y63HB9TM17proGEmeG7HeUY+UP36F0aknKYTpYA==}
engines : {node : ^18.18.0 || ^20.9.0 || >=21.1.0}
2025-04-17 20:36:11 +08:00
'@eslint/object-schema@2.1.6' :
2025-04-17 12:02:23 +08:00
resolution : {integrity : sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==}
engines : {node : ^18.18.0 || ^20.9.0 || >=21.1.0}
2025-04-17 20:36:11 +08:00
'@eslint/plugin-kit@0.2.8' :
2025-04-17 12:02:23 +08:00
resolution : {integrity : sha512-ZAoA40rNMPwSm+AeHpCq8STiNAwzWLJuP8Xv4CHIc9wv/PSuExjMrmjfYNj682vW0OOiZ1HKxzvjQr9XZIisQA==}
engines : {node : ^18.18.0 || ^20.9.0 || >=21.1.0}
2025-04-17 20:36:11 +08:00
'@floating-ui/core@1.6.9' :
2025-04-17 12:02:23 +08:00
resolution : {integrity : sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw==}
2025-04-17 20:36:11 +08:00
'@floating-ui/dom@1.6.13' :
2025-04-17 12:02:23 +08:00
resolution : {integrity : sha512-umqzocjDgNRGTuO7Q8CU32dkHkECqI8ZdMZ5Swb6QAM0t5rnlrN3lGo1hdpscRd3WS8T6DKYK4ephgIH9iRh3w==}
2025-04-17 20:36:11 +08:00
'@floating-ui/react-dom@2.1.2' :
2025-04-17 12:02:23 +08:00
resolution : {integrity : sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==}
peerDependencies :
react : '>=16.8.0'
react-dom : '>=16.8.0'
2025-04-17 20:36:11 +08:00
'@floating-ui/utils@0.2.9' :
2025-04-17 12:02:23 +08:00
resolution : {integrity : sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==}
2025-07-12 15:18:28 +08:00
'@formatjs/ecma402-abstract@2.3.4' :
resolution : {integrity : sha512-qrycXDeaORzIqNhBOx0btnhpD1c+/qFIHAN9znofuMJX6QBwtbrmlpWfD4oiUUD2vJUOIYFA/gYtg2KAMGG7sA==}
'@formatjs/fast-memoize@2.2.7' :
resolution : {integrity : sha512-Yabmi9nSvyOMrlSeGGWDiH7rf3a7sIwplbvo/dlz9WCIjzIQAfy1RMf4S0X3yG724n5Ghu2GmEl5NJIV6O9sZQ==}
'@formatjs/icu-messageformat-parser@2.11.2' :
resolution : {integrity : sha512-AfiMi5NOSo2TQImsYAg8UYddsNJ/vUEv/HaNqiFjnI3ZFfWihUtD5QtuX6kHl8+H+d3qvnE/3HZrfzgdWpsLNA==}
'@formatjs/icu-skeleton-parser@1.8.14' :
resolution : {integrity : sha512-i4q4V4qslThK4Ig8SxyD76cp3+QJ3sAqr7f6q9VVfeGtxG9OhiAk3y9XF6Q41OymsKzsGQ6OQQoJNY4/lI8TcQ==}
'@formatjs/intl-localematcher@0.5.10' :
resolution : {integrity : sha512-af3qATX+m4Rnd9+wHcjJ4w2ijq+rAVP3CCinJQvFv1kgSu1W6jypUmvleJxcewdxmutM8dmIRZFxO/IQBZmP2Q==}
'@formatjs/intl-localematcher@0.6.1' :
resolution : {integrity : sha512-ePEgLgVCqi2BBFnTMWPfIghu6FkbZnnBVhO2sSxvLfrdFw7wCHAHiDoM2h4NRgjbaY7+B7HgOLZGkK187pZTZg==}
2025-04-23 21:16:58 +08:00
'@hookform/resolvers@5.0.1' :
resolution : {integrity : sha512-u/+Jp83luQNx9AdyW2fIPGY6Y7NG68eN2ZW8FOJYL+M0i4s49+refdJdOp/A9n9HFQtQs3HIDHQvX3ZET2o7YA==}
peerDependencies :
react-hook-form : ^7.55.0
2025-04-17 20:36:11 +08:00
'@humanfs/core@0.19.1' :
2025-04-17 12:02:23 +08:00
resolution : {integrity : sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==}
engines : {node : '>=18.18.0' }
2025-04-17 20:36:11 +08:00
'@humanfs/node@0.16.6' :
2025-04-17 12:02:23 +08:00
resolution : {integrity : sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==}
engines : {node : '>=18.18.0' }
2025-04-17 20:36:11 +08:00
'@humanwhocodes/module-importer@1.0.1' :
2025-04-17 12:02:23 +08:00
resolution : {integrity : sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
engines : {node : '>=12.22' }
2025-04-17 20:36:11 +08:00
'@humanwhocodes/retry@0.3.1' :
2025-04-17 12:02:23 +08:00
resolution : {integrity : sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==}
engines : {node : '>=18.18' }
2025-04-17 20:36:11 +08:00
'@humanwhocodes/retry@0.4.2' :
2025-04-17 12:02:23 +08:00
resolution : {integrity : sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==}
engines : {node : '>=18.18' }
2025-12-05 14:30:00 +08:00
'@img/colour@1.0.0' :
resolution : {integrity : sha512-A5P/LfWGFSl6nsckYtjw9da+19jB8hkJ6ACTGcDfEJ0aE+l2n2El7dsVM7UVHZQ9s2lmYMWlrS21YLy2IR1LUw==}
engines : {node : '>=18' }
'@img/sharp-darwin-arm64@0.34.5' :
resolution : {integrity : sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==}
2025-04-17 12:02:23 +08:00
engines : {node : ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu : [ arm64]
os : [ darwin]
2025-12-05 14:30:00 +08:00
'@img/sharp-darwin-x64@0.34.5' :
resolution : {integrity : sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==}
2025-04-17 12:02:23 +08:00
engines : {node : ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu : [ x64]
os : [ darwin]
2025-12-05 14:30:00 +08:00
'@img/sharp-libvips-darwin-arm64@1.2.4' :
resolution : {integrity : sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==}
2025-04-20 11:18:05 +08:00
cpu : [ arm64]
os : [ darwin]
2025-12-05 14:30:00 +08:00
'@img/sharp-libvips-darwin-x64@1.2.4' :
resolution : {integrity : sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==}
2025-04-20 11:18:05 +08:00
cpu : [ x64]
os : [ darwin]
2025-12-05 14:30:00 +08:00
'@img/sharp-libvips-linux-arm64@1.2.4' :
resolution : {integrity : sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==}
2025-04-20 11:18:05 +08:00
cpu : [ arm64]
os : [ linux]
2025-12-05 14:30:00 +08:00
'@img/sharp-libvips-linux-arm@1.2.4' :
resolution : {integrity : sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==}
2025-04-20 11:18:05 +08:00
cpu : [ arm]
os : [ linux]
2025-12-05 14:30:00 +08:00
'@img/sharp-libvips-linux-ppc64@1.2.4' :
resolution : {integrity : sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==}
2025-04-20 11:18:05 +08:00
cpu : [ ppc64]
os : [ linux]
2025-12-05 14:30:00 +08:00
'@img/sharp-libvips-linux-riscv64@1.2.4' :
resolution : {integrity : sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==}
cpu : [ riscv64]
os : [ linux]
'@img/sharp-libvips-linux-s390x@1.2.4' :
resolution : {integrity : sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==}
2025-04-20 11:18:05 +08:00
cpu : [ s390x]
os : [ linux]
2025-12-05 14:30:00 +08:00
'@img/sharp-libvips-linux-x64@1.2.4' :
resolution : {integrity : sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==}
2025-04-17 12:02:23 +08:00
cpu : [ x64]
os : [ linux]
2025-12-05 14:30:00 +08:00
'@img/sharp-libvips-linuxmusl-arm64@1.2.4' :
resolution : {integrity : sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==}
2025-04-20 11:18:05 +08:00
cpu : [ arm64]
os : [ linux]
2025-12-05 14:30:00 +08:00
'@img/sharp-libvips-linuxmusl-x64@1.2.4' :
resolution : {integrity : sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==}
2025-04-20 11:18:05 +08:00
cpu : [ x64]
os : [ linux]
2025-12-05 14:30:00 +08:00
'@img/sharp-linux-arm64@0.34.5' :
resolution : {integrity : sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==}
2025-04-17 12:02:23 +08:00
engines : {node : ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu : [ arm64]
os : [ linux]
2025-12-05 14:30:00 +08:00
'@img/sharp-linux-arm@0.34.5' :
resolution : {integrity : sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==}
2025-04-17 12:02:23 +08:00
engines : {node : ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu : [ arm]
os : [ linux]
2025-12-05 14:30:00 +08:00
'@img/sharp-linux-ppc64@0.34.5' :
resolution : {integrity : sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==}
2025-09-04 22:26:33 +08:00
engines : {node : ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu : [ ppc64]
os : [ linux]
2025-12-05 14:30:00 +08:00
'@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]
'@img/sharp-linux-s390x@0.34.5' :
resolution : {integrity : sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==}
2025-04-17 12:02:23 +08:00
engines : {node : ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu : [ s390x]
os : [ linux]
2025-12-05 14:30:00 +08:00
'@img/sharp-linux-x64@0.34.5' :
resolution : {integrity : sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==}
2025-04-17 12:02:23 +08:00
engines : {node : ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu : [ x64]
os : [ linux]
2025-12-05 14:30:00 +08:00
'@img/sharp-linuxmusl-arm64@0.34.5' :
resolution : {integrity : sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==}
2025-04-17 12:02:23 +08:00
engines : {node : ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu : [ arm64]
os : [ linux]
2025-12-05 14:30:00 +08:00
'@img/sharp-linuxmusl-x64@0.34.5' :
resolution : {integrity : sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==}
2025-04-17 12:02:23 +08:00
engines : {node : ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu : [ x64]
os : [ linux]
2025-12-05 14:30:00 +08:00
'@img/sharp-wasm32@0.34.5' :
resolution : {integrity : sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==}
2025-04-17 12:02:23 +08:00
engines : {node : ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu : [ wasm32]
2025-12-05 14:30:00 +08:00
'@img/sharp-win32-arm64@0.34.5' :
resolution : {integrity : sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==}
2025-09-04 22:26:33 +08:00
engines : {node : ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu : [ arm64]
os : [ win32]
2025-12-05 14:30:00 +08:00
'@img/sharp-win32-ia32@0.34.5' :
resolution : {integrity : sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==}
2025-04-17 12:02:23 +08:00
engines : {node : ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu : [ ia32]
os : [ win32]
2025-12-05 14:30:00 +08:00
'@img/sharp-win32-x64@0.34.5' :
resolution : {integrity : sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==}
2025-04-17 12:02:23 +08:00
engines : {node : ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu : [ x64]
os : [ win32]
2025-10-25 20:46:43 +08:00
'@isaacs/cliui@8.0.2' :
resolution : {integrity : sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
engines : {node : '>=12' }
'@istanbuljs/load-nyc-config@1.1.0' :
resolution : {integrity : sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==}
engines : {node : '>=8' }
'@istanbuljs/schema@0.1.3' :
resolution : {integrity : sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==}
engines : {node : '>=8' }
'@jest/console@30.2.0' :
resolution : {integrity : sha512-+O1ifRjkvYIkBqASKWgLxrpEhQAAE7hY77ALLUufSk5717KfOShg6IbqLmdsLMPdUiFvA2kTs0R7YZy+l0IzZQ==}
engines : {node : ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
'@jest/core@30.2.0' :
resolution : {integrity : sha512-03W6IhuhjqTlpzh/ojut/pDB2LPRygyWX8ExpgHtQA8H/3K7+1vKmcINx5UzeOX1se6YEsBsOHQ1CRzf3fOwTQ==}
engines : {node : ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
peerDependencies :
node-notifier : ^8.0.1 || ^9.0.0 || ^10.0.0
peerDependenciesMeta :
node-notifier :
optional : true
'@jest/diff-sequences@30.0.1' :
resolution : {integrity : sha512-n5H8QLDJ47QqbCNn5SuFjCRDrOLEZ0h8vAHCK5RL9Ls7Xa8AQLa/YxAc9UjFqoEDM48muwtBGjtMY5cr0PLDCw==}
engines : {node : ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
'@jest/environment-jsdom-abstract@30.2.0' :
resolution : {integrity : sha512-kazxw2L9IPuZpQ0mEt9lu9Z98SqR74xcagANmMBU16X0lS23yPc0+S6hGLUz8kVRlomZEs/5S/Zlpqwf5yu6OQ==}
engines : {node : ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
peerDependencies :
canvas : ^3.0.0
jsdom : '*'
peerDependenciesMeta :
canvas :
optional : true
'@jest/environment@30.2.0' :
resolution : {integrity : sha512-/QPTL7OBJQ5ac09UDRa3EQes4gt1FTEG/8jZ/4v5IVzx+Cv7dLxlVIvfvSVRiiX2drWyXeBjkMSR8hvOWSog5g==}
engines : {node : ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
'@jest/expect-utils@30.2.0' :
resolution : {integrity : sha512-1JnRfhqpD8HGpOmQp180Fo9Zt69zNtC+9lR+kT7NVL05tNXIi+QC8Csz7lfidMoVLPD3FnOtcmp0CEFnxExGEA==}
engines : {node : ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
'@jest/expect@30.2.0' :
resolution : {integrity : sha512-V9yxQK5erfzx99Sf+7LbhBwNWEZ9eZay8qQ9+JSC0TrMR1pMDHLMY+BnVPacWU6Jamrh252/IKo4F1Xn/zfiqA==}
engines : {node : ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
'@jest/fake-timers@30.2.0' :
resolution : {integrity : sha512-HI3tRLjRxAbBy0VO8dqqm7Hb2mIa8d5bg/NJkyQcOk7V118ObQML8RC5luTF/Zsg4474a+gDvhce7eTnP4GhYw==}
engines : {node : ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
'@jest/get-type@30.1.0' :
resolution : {integrity : sha512-eMbZE2hUnx1WV0pmURZY9XoXPkUYjpc55mb0CrhtdWLtzMQPFvu/rZkTLZFTsdaVQa+Tr4eWAteqcUzoawq/uA==}
engines : {node : ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
'@jest/globals@30.2.0' :
resolution : {integrity : sha512-b63wmnKPaK+6ZZfpYhz9K61oybvbI1aMcIs80++JI1O1rR1vaxHUCNqo3ITu6NU0d4V34yZFoHMn/uoKr/Rwfw==}
engines : {node : ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
'@jest/pattern@30.0.1' :
resolution : {integrity : sha512-gWp7NfQW27LaBQz3TITS8L7ZCQ0TLvtmI//4OwlQRx4rnWxcPNIYjxZpDcN4+UlGxgm3jS5QPz8IPTCkb59wZA==}
engines : {node : ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
'@jest/reporters@30.2.0' :
resolution : {integrity : sha512-DRyW6baWPqKMa9CzeiBjHwjd8XeAyco2Vt8XbcLFjiwCOEKOvy82GJ8QQnJE9ofsxCMPjH4MfH8fCWIHHDKpAQ==}
engines : {node : ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
peerDependencies :
node-notifier : ^8.0.1 || ^9.0.0 || ^10.0.0
peerDependenciesMeta :
node-notifier :
optional : true
'@jest/schemas@30.0.5' :
resolution : {integrity : sha512-DmdYgtezMkh3cpU8/1uyXakv3tJRcmcXxBOcO0tbaozPwpmh4YMsnWrQm9ZmZMfa5ocbxzbFk6O4bDPEc/iAnA==}
engines : {node : ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
'@jest/snapshot-utils@30.2.0' :
resolution : {integrity : sha512-0aVxM3RH6DaiLcjj/b0KrIBZhSX1373Xci4l3cW5xiUWPctZ59zQ7jj4rqcJQ/Z8JuN/4wX3FpJSa3RssVvCug==}
engines : {node : ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
'@jest/source-map@30.0.1' :
resolution : {integrity : sha512-MIRWMUUR3sdbP36oyNyhbThLHyJ2eEDClPCiHVbrYAe5g3CHRArIVpBw7cdSB5fr+ofSfIb2Tnsw8iEHL0PYQg==}
engines : {node : ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
'@jest/test-result@30.2.0' :
resolution : {integrity : sha512-RF+Z+0CCHkARz5HT9mcQCBulb1wgCP3FBvl9VFokMX27acKphwyQsNuWH3c+ojd1LeWBLoTYoxF0zm6S/66mjg==}
engines : {node : ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
'@jest/test-sequencer@30.2.0' :
resolution : {integrity : sha512-wXKgU/lk8fKXMu/l5Hog1R61bL4q5GCdT6OJvdAFz1P+QrpoFuLU68eoKuVc4RbrTtNnTL5FByhWdLgOPSph+Q==}
engines : {node : ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
'@jest/transform@30.2.0' :
resolution : {integrity : sha512-XsauDV82o5qXbhalKxD7p4TZYYdwcaEXC77PPD2HixEFF+6YGppjrAAQurTl2ECWcEomHBMMNS9AH3kcCFx8jA==}
engines : {node : ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
'@jest/types@30.2.0' :
resolution : {integrity : sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg==}
engines : {node : ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
2025-09-04 22:26:33 +08:00
'@jridgewell/gen-mapping@0.3.13' :
resolution : {integrity : sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==}
2025-04-22 13:52:56 +08:00
2025-10-25 20:46:43 +08:00
'@jridgewell/remapping@2.3.5' :
resolution : {integrity : sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==}
2025-04-22 13:52:56 +08:00
'@jridgewell/resolve-uri@3.1.2' :
resolution : {integrity : sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
engines : {node : '>=6.0.0' }
2025-09-04 22:26:33 +08:00
'@jridgewell/source-map@0.3.11' :
resolution : {integrity : sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==}
2025-04-22 13:52:56 +08:00
2025-09-04 22:26:33 +08:00
'@jridgewell/sourcemap-codec@1.5.5' :
resolution : {integrity : sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==}
2025-04-22 13:52:56 +08:00
2025-09-04 22:26:33 +08:00
'@jridgewell/trace-mapping@0.3.30' :
resolution : {integrity : sha512-GQ7Nw5G2lTu/BtHTKfXhKHok2WGetd4XYcVKGx00SjAk8GMwgJM3zr6zORiPGuOE+/vkc90KtTosSSvaCjKb2Q==}
2025-04-22 13:52:56 +08:00
2025-12-05 14:30:00 +08:00
'@jridgewell/trace-mapping@0.3.31' :
resolution : {integrity : sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==}
2025-10-25 20:46:43 +08:00
'@napi-rs/wasm-runtime@0.2.12' :
resolution : {integrity : sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==}
2025-04-17 20:36:11 +08:00
'@napi-rs/wasm-runtime@0.2.9' :
2025-04-17 14:26:41 +08:00
resolution : {integrity : sha512-OKRBiajrrxB9ATokgEQoG87Z25c67pCpYcCwmXYX8PBftC9pBfN18gnm/fh1wurSLEKIAt+QRFLFCQISrb66Jg==}
2025-04-17 12:02:23 +08:00
2026-02-09 15:43:04 +08:00
'@next/env@15.5.10' :
resolution : {integrity : sha512-plg+9A/KoZcTS26fe15LHg+QxReTazrIOoKKUC3Uz4leGGeNPgLHdevVraAAOX0snnUs3WkRx3eUQpj9mreG6A==}
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
'@next/eslint-plugin-next@15.3.0' :
2025-04-17 12:02:23 +08:00
resolution : {integrity : sha512-511UUcpWw5GWTyKfzW58U2F/bYJyjLE9e3SlnGK/zSXq7RqLlqFO8B9bitJjumLpj317fycC96KZ2RZsjGNfBw==}
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
'@next/swc-darwin-arm64@15.5.7' :
resolution : {integrity : sha512-IZwtxCEpI91HVU/rAUOOobWSZv4P2DeTtNaCdHqLcTJU4wdNXgAySvKa/qJCgR5m6KI8UsKDXtO2B31jcaw1Yw==}
2025-04-17 12:02:23 +08:00
engines : {node : '>= 10' }
cpu : [ arm64]
os : [ darwin]
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
'@next/swc-darwin-x64@15.5.7' :
resolution : {integrity : sha512-UP6CaDBcqaCBuiq/gfCEJw7sPEoX1aIjZHnBWN9v9qYHQdMKvCKcAVs4OX1vIjeE+tC5EIuwDTVIoXpUes29lg==}
2025-04-17 12:02:23 +08:00
engines : {node : '>= 10' }
cpu : [ x64]
os : [ darwin]
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
'@next/swc-linux-arm64-gnu@15.5.7' :
resolution : {integrity : sha512-NCslw3GrNIw7OgmRBxHtdWFQYhexoUCq+0oS2ccjyYLtcn1SzGzeM54jpTFonIMUjNbHmpKpziXnpxhSWLcmBA==}
2025-04-17 12:02:23 +08:00
engines : {node : '>= 10' }
cpu : [ arm64]
os : [ linux]
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
'@next/swc-linux-arm64-musl@15.5.7' :
resolution : {integrity : sha512-nfymt+SE5cvtTrG9u1wdoxBr9bVB7mtKTcj0ltRn6gkP/2Nu1zM5ei8rwP9qKQP0Y//umK+TtkKgNtfboBxRrw==}
2025-04-17 12:02:23 +08:00
engines : {node : '>= 10' }
cpu : [ arm64]
os : [ linux]
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
'@next/swc-linux-x64-gnu@15.5.7' :
resolution : {integrity : sha512-hvXcZvCaaEbCZcVzcY7E1uXN9xWZfFvkNHwbe/n4OkRhFWrs1J1QV+4U1BN06tXLdaS4DazEGXwgqnu/VMcmqw==}
2025-04-17 12:02:23 +08:00
engines : {node : '>= 10' }
cpu : [ x64]
os : [ linux]
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
'@next/swc-linux-x64-musl@15.5.7' :
resolution : {integrity : sha512-4IUO539b8FmF0odY6/SqANJdgwn1xs1GkPO5doZugwZ3ETF6JUdckk7RGmsfSf7ws8Qb2YB5It33mvNL/0acqA==}
2025-04-17 12:02:23 +08:00
engines : {node : '>= 10' }
cpu : [ x64]
os : [ linux]
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
'@next/swc-win32-arm64-msvc@15.5.7' :
resolution : {integrity : sha512-CpJVTkYI3ZajQkC5vajM7/ApKJUOlm6uP4BknM3XKvJ7VXAvCqSjSLmM0LKdYzn6nBJVSjdclx8nYJSa3xlTgQ==}
2025-04-17 12:02:23 +08:00
engines : {node : '>= 10' }
cpu : [ arm64]
os : [ win32]
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
'@next/swc-win32-x64-msvc@15.5.7' :
resolution : {integrity : sha512-gMzgBX164I6DN+9/PGA+9dQiwmTkE4TloBNx8Kv9UiGARsr9Nba7IpcBRA1iTV9vwlYnrE3Uy6I7Aj6qLjQuqw==}
2025-04-17 12:02:23 +08:00
engines : {node : '>= 10' }
cpu : [ x64]
os : [ win32]
2025-04-17 20:36:11 +08:00
'@nodelib/fs.scandir@2.1.5' :
2025-04-17 12:02:23 +08:00
resolution : {integrity : sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
engines : {node : '>= 8' }
2025-04-17 20:36:11 +08:00
'@nodelib/fs.stat@2.0.5' :
2025-04-17 12:02:23 +08:00
resolution : {integrity : sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
engines : {node : '>= 8' }
2025-04-17 20:36:11 +08:00
'@nodelib/fs.walk@1.2.8' :
2025-04-17 12:02:23 +08:00
resolution : {integrity : sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
engines : {node : '>= 8' }
2025-04-17 20:36:11 +08:00
'@nolyfill/is-core-module@1.0.39' :
2025-04-17 12:02:23 +08:00
resolution : {integrity : sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==}
engines : {node : '>=12.4.0' }
2025-04-26 00:20:49 +08:00
'@opentelemetry/api@1.9.0' :
resolution : {integrity : sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==}
engines : {node : '>=8.0.0' }
2025-10-25 20:46:43 +08:00
'@pkgjs/parseargs@0.11.0' :
resolution : {integrity : sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
engines : {node : '>=14' }
'@pkgr/core@0.2.9' :
resolution : {integrity : sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==}
engines : {node : ^12.20.0 || ^14.18.0 || >=16.0.0}
2025-04-26 00:20:49 +08:00
'@popperjs/core@2.11.8' :
resolution : {integrity : sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==}
2025-04-17 20:36:11 +08:00
'@radix-ui/number@1.1.1' :
resolution : {integrity : sha512-MkKCwxlXTgz6CFoJx3pCwn07GKp36+aZyu/u2Ln2VrA5DcdyCZkASEDBTd8x5whTQQL5CiYf4prXKLcgQdv29g==}
'@radix-ui/primitive@1.1.2' :
2025-04-17 12:02:23 +08:00
resolution : {integrity : sha512-XnbHrrprsNqZKQhStrSwgRUQzoCI1glLzdw79xiZPoofhGICeZRSQ3dIxAKH1gb3OHfNf4d6f+vAv3kil2eggA==}
2026-01-24 17:49:13 +08:00
'@radix-ui/primitive@1.1.3' :
resolution : {integrity : sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg==}
2025-04-24 15:40:49 +08:00
'@radix-ui/react-accordion@1.2.8' :
resolution : {integrity : sha512-c7OKBvO36PfQIUGIjj1Wko0hH937pYFU2tR5zbIJDUsmTzHoZVHHt4bmb7OOJbzTaWJtVELKWojBHa7OcnUHmQ==}
peerDependencies :
'@types/react' : '*'
'@types/react-dom' : '*'
react : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
react-dom : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta :
'@types/react' :
optional : true
'@types/react-dom' :
optional : true
2025-04-17 20:36:11 +08:00
'@radix-ui/react-arrow@1.1.3' :
2025-04-17 12:02:23 +08:00
resolution : {integrity : sha512-2dvVU4jva0qkNZH6HHWuSz5FN5GeU5tymvCgutF8WaXz9WnD1NgUhy73cqzkjkN4Zkn8lfTPv5JIfrC221W+Nw==}
peerDependencies :
'@types/react' : '*'
'@types/react-dom' : '*'
react : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
react-dom : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta :
'@types/react' :
optional : true
'@types/react-dom' :
optional : true
2025-04-20 11:18:05 +08:00
'@radix-ui/react-arrow@1.1.4' :
resolution : {integrity : sha512-qz+fxrqgNxG0dYew5l7qR3c7wdgRu1XVUHGnGYX7rg5HM4p9SWaRmJwfgR3J0SgyUKayLmzQIun+N6rWRgiRKw==}
peerDependencies :
'@types/react' : '*'
'@types/react-dom' : '*'
react : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
react-dom : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta :
'@types/react' :
optional : true
'@types/react-dom' :
optional : true
2026-01-24 17:49:13 +08:00
'@radix-ui/react-arrow@1.1.7' :
resolution : {integrity : sha512-F+M1tLhO+mlQaOWspE8Wstg+z6PwxwRd8oQ8IXceWz92kfAmalTRf0EjrouQeo7QssEPfCn05B4Ihs1K9WQ/7w==}
peerDependencies :
'@types/react' : '*'
'@types/react-dom' : '*'
react : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
react-dom : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta :
'@types/react' :
optional : true
'@types/react-dom' :
optional : true
2025-04-24 15:40:49 +08:00
'@radix-ui/react-checkbox@1.2.3' :
resolution : {integrity : sha512-pHVzDYsnaDmBlAuwim45y3soIN8H4R7KbkSVirGhXO+R/kO2OLCe0eucUEbddaTcdMHHdzcIGHtZSMSQlA+apw==}
peerDependencies :
'@types/react' : '*'
'@types/react-dom' : '*'
react : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
react-dom : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta :
'@types/react' :
optional : true
'@types/react-dom' :
optional : true
'@radix-ui/react-collapsible@1.1.8' :
resolution : {integrity : sha512-hxEsLvK9WxIAPyxdDRULL4hcaSjMZCfP7fHB0Z1uUnDoDBat1Zh46hwYfa69DeZAbJrPckjf0AGAtEZyvDyJbw==}
peerDependencies :
'@types/react' : '*'
'@types/react-dom' : '*'
react : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
react-dom : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta :
'@types/react' :
optional : true
'@types/react-dom' :
optional : true
2025-04-17 20:36:11 +08:00
'@radix-ui/react-collection@1.1.3' :
2025-04-17 12:02:23 +08:00
resolution : {integrity : sha512-mM2pxoQw5HJ49rkzwOs7Y6J4oYH22wS8BfK2/bBxROlI4xuR0c4jEenQP63LlTlDkO6Buj2Vt+QYAYcOgqtrXA==}
peerDependencies :
'@types/react' : '*'
'@types/react-dom' : '*'
react : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
react-dom : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta :
'@types/react' :
optional : true
'@types/react-dom' :
optional : true
2025-04-20 11:18:05 +08:00
'@radix-ui/react-collection@1.1.4' :
resolution : {integrity : sha512-cv4vSf7HttqXilDnAnvINd53OTl1/bjUYVZrkFnA7nwmY9Ob2POUy0WY0sfqBAe1s5FyKsyceQlqiEGPYNTadg==}
peerDependencies :
'@types/react' : '*'
'@types/react-dom' : '*'
react : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
react-dom : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta :
'@types/react' :
optional : true
'@types/react-dom' :
optional : true
2025-04-17 20:36:11 +08:00
'@radix-ui/react-compose-refs@1.1.2' :
2025-04-17 12:02:23 +08:00
resolution : {integrity : sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==}
peerDependencies :
'@types/react' : '*'
react : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta :
'@types/react' :
optional : true
2025-04-17 20:36:11 +08:00
'@radix-ui/react-context@1.1.2' :
2025-04-17 12:02:23 +08:00
resolution : {integrity : sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==}
peerDependencies :
'@types/react' : '*'
react : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta :
'@types/react' :
optional : true
2025-04-22 11:04:03 +08:00
'@radix-ui/react-dialog@1.1.10' :
resolution : {integrity : sha512-m6pZb0gEM5uHPSb+i2nKKGQi/HMSVjARMsLMWQfKDP+eJ6B+uqryHnXhpnohTWElw+vEcMk/o4wJODtdRKHwqg==}
peerDependencies :
'@types/react' : '*'
'@types/react-dom' : '*'
react : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
react-dom : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta :
'@types/react' :
optional : true
'@types/react-dom' :
optional : true
2025-04-17 20:36:11 +08:00
'@radix-ui/react-direction@1.1.1' :
2025-04-17 12:02:23 +08:00
resolution : {integrity : sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw==}
peerDependencies :
'@types/react' : '*'
react : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta :
'@types/react' :
optional : true
2026-01-24 17:49:13 +08:00
'@radix-ui/react-dismissable-layer@1.1.11' :
resolution : {integrity : sha512-Nqcp+t5cTB8BinFkZgXiMJniQH0PsUt2k51FUhbdfeKvc4ACcG2uQniY/8+h1Yv6Kza4Q7lD7PQV0z0oicE0Mg==}
peerDependencies :
'@types/react' : '*'
'@types/react-dom' : '*'
react : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
react-dom : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta :
'@types/react' :
optional : true
'@types/react-dom' :
optional : true
2025-04-17 20:36:11 +08:00
'@radix-ui/react-dismissable-layer@1.1.6' :
2025-04-17 12:02:23 +08:00
resolution : {integrity : sha512-7gpgMT2gyKym9Jz2ZhlRXSg2y6cNQIK8d/cqBZ0RBCaps8pFryCWXiUKI+uHGFrhMrbGUP7U6PWgiXzIxoyF3Q==}
peerDependencies :
'@types/react' : '*'
'@types/react-dom' : '*'
react : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
react-dom : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta :
'@types/react' :
optional : true
'@types/react-dom' :
optional : true
2025-04-20 11:18:05 +08:00
'@radix-ui/react-dismissable-layer@1.1.7' :
resolution : {integrity : sha512-j5+WBUdhccJsmH5/H0K6RncjDtoALSEr6jbkaZu+bjw6hOPOhHycr6vEUujl+HBK8kjUfWcoCJXxP6e4lUlMZw==}
peerDependencies :
'@types/react' : '*'
'@types/react-dom' : '*'
react : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
react-dom : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta :
'@types/react' :
optional : true
'@types/react-dom' :
optional : true
'@radix-ui/react-dropdown-menu@2.1.11' :
resolution : {integrity : sha512-wbPE3cFBfLl+S+LCxChWQGX0k14zUxgvep1HEnLhJ9mNhjyO3ETzRviAeKZ3XomT/iVRRZAWFsnFZ3N0wI8OmA==}
peerDependencies :
'@types/react' : '*'
'@types/react-dom' : '*'
react : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
react-dom : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta :
'@types/react' :
optional : true
'@types/react-dom' :
optional : true
'@radix-ui/react-focus-guards@1.1.2' :
resolution : {integrity : sha512-fyjAACV62oPV925xFCrH8DR5xWhg9KYtJT4s3u54jxp+L/hbpTY2kIeEFFbFe+a/HCE94zGQMZLIpVTPVZDhaA==}
peerDependencies :
'@types/react' : '*'
react : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta :
'@types/react' :
optional : true
'@radix-ui/react-focus-scope@1.1.4' :
resolution : {integrity : sha512-r2annK27lIW5w9Ho5NyQgqs0MmgZSTIKXWpVCJaLC1q2kZrZkcqnmHkCHMEmv8XLvsLlurKMPT+kbKkRkm/xVA==}
peerDependencies :
'@types/react' : '*'
'@types/react-dom' : '*'
react : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
react-dom : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta :
'@types/react' :
optional : true
'@types/react-dom' :
optional : true
2026-01-24 17:49:13 +08:00
'@radix-ui/react-hover-card@1.1.15' :
resolution : {integrity : sha512-qgTkjNT1CfKMoP0rcasmlH2r1DAiYicWsDsufxl940sT2wHNEWWv6FMWIQXWhVdmC1d/HYfbhQx60KYyAtKxjg==}
peerDependencies :
'@types/react' : '*'
'@types/react-dom' : '*'
react : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
react-dom : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta :
'@types/react' :
optional : true
'@types/react-dom' :
optional : true
2025-04-28 10:07:36 +08:00
'@radix-ui/react-icons@1.3.2' :
resolution : {integrity : sha512-fyQIhGDhzfc9pK2kH6Pl9c4BDJGfMkPqkyIgYDthyNYoNg3wVhoJMMh19WS4Up/1KMPFVpNsT2q3WmXn2N1m6g==}
peerDependencies :
react : ^16.x || ^17.x || ^18.x || ^19.0.0 || ^19.0.0-rc
2025-04-17 20:36:11 +08:00
'@radix-ui/react-id@1.1.1' :
2025-04-17 12:02:23 +08:00
resolution : {integrity : sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==}
peerDependencies :
'@types/react' : '*'
react : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta :
'@types/react' :
optional : true
2025-04-22 11:04:03 +08:00
'@radix-ui/react-label@2.1.4' :
resolution : {integrity : sha512-wy3dqizZnZVV4ja0FNnUhIWNwWdoldXrneEyUcVtLYDAt8ovGS4ridtMAOGgXBBIfggL4BOveVWsjXDORdGEQg==}
peerDependencies :
'@types/react' : '*'
'@types/react-dom' : '*'
react : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
react-dom : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta :
'@types/react' :
optional : true
'@types/react-dom' :
optional : true
2025-04-20 11:18:05 +08:00
'@radix-ui/react-menu@2.1.11' :
resolution : {integrity : sha512-sbFI4Qaw02J0ogmR9tOMsSqsdrGNpUanlPYAqTE2JJafow8ecHtykg4fSTjNHBdDl4deiKMK+RhTEwyVhP7UDA==}
peerDependencies :
'@types/react' : '*'
'@types/react-dom' : '*'
react : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
react-dom : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta :
'@types/react' :
optional : true
'@types/react-dom' :
optional : true
2025-04-26 00:20:49 +08:00
'@radix-ui/react-popover@1.1.11' :
resolution : {integrity : sha512-yFMfZkVA5G3GJnBgb2PxrrcLKm1ZLWXrbYVgdyTl//0TYEIHS9LJbnyz7WWcZ0qCq7hIlJZpRtxeSeIG5T5oJw==}
peerDependencies :
'@types/react' : '*'
'@types/react-dom' : '*'
react : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
react-dom : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta :
'@types/react' :
optional : true
'@types/react-dom' :
optional : true
2025-04-17 20:36:11 +08:00
'@radix-ui/react-popper@1.2.3' :
2025-04-17 12:02:23 +08:00
resolution : {integrity : sha512-iNb9LYUMkne9zIahukgQmHlSBp9XWGeQQ7FvUGNk45ywzOb6kQa+Ca38OphXlWDiKvyneo9S+KSJsLfLt8812A==}
peerDependencies :
'@types/react' : '*'
'@types/react-dom' : '*'
react : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
react-dom : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta :
'@types/react' :
optional : true
'@types/react-dom' :
optional : true
2025-04-20 11:18:05 +08:00
'@radix-ui/react-popper@1.2.4' :
resolution : {integrity : sha512-3p2Rgm/a1cK0r/UVkx5F/K9v/EplfjAeIFCGOPYPO4lZ0jtg4iSQXt/YGTSLWaf4x7NG6Z4+uKFcylcTZjeqDA==}
peerDependencies :
'@types/react' : '*'
'@types/react-dom' : '*'
react : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
react-dom : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta :
'@types/react' :
optional : true
'@types/react-dom' :
optional : true
2026-01-24 17:49:13 +08:00
'@radix-ui/react-popper@1.2.8' :
resolution : {integrity : sha512-0NJQ4LFFUuWkE7Oxf0htBKS6zLkkjBH+hM1uk7Ng705ReR8m/uelduy1DBo0PyBXPKVnBA6YBlU94MBGXrSBCw==}
peerDependencies :
'@types/react' : '*'
'@types/react-dom' : '*'
react : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
react-dom : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta :
'@types/react' :
optional : true
'@types/react-dom' :
optional : true
2025-04-17 20:36:11 +08:00
'@radix-ui/react-portal@1.1.5' :
2025-04-17 12:02:23 +08:00
resolution : {integrity : sha512-ps/67ZqsFm+Mb6lSPJpfhRLrVL2i2fntgCmGMqqth4eaGUf+knAuuRtWVJrNjUhExgmdRqftSgzpf0DF0n6yXA==}
peerDependencies :
'@types/react' : '*'
'@types/react-dom' : '*'
react : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
react-dom : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta :
'@types/react' :
optional : true
'@types/react-dom' :
optional : true
2025-04-20 11:18:05 +08:00
'@radix-ui/react-portal@1.1.6' :
resolution : {integrity : sha512-XmsIl2z1n/TsYFLIdYam2rmFwf9OC/Sh2avkbmVMDuBZIe7hSpM0cYnWPAo7nHOVx8zTuwDZGByfcqLdnzp3Vw==}
peerDependencies :
'@types/react' : '*'
'@types/react-dom' : '*'
react : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
react-dom : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta :
'@types/react' :
optional : true
'@types/react-dom' :
optional : true
2026-01-24 17:49:13 +08:00
'@radix-ui/react-portal@1.1.9' :
resolution : {integrity : sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ==}
peerDependencies :
'@types/react' : '*'
'@types/react-dom' : '*'
react : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
react-dom : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta :
'@types/react' :
optional : true
'@types/react-dom' :
optional : true
2025-04-17 20:36:11 +08:00
'@radix-ui/react-presence@1.1.3' :
2025-04-17 12:02:23 +08:00
resolution : {integrity : sha512-IrVLIhskYhH3nLvtcBLQFZr61tBG7wx7O3kEmdzcYwRGAEBmBicGGL7ATzNgruYJ3xBTbuzEEq9OXJM3PAX3tA==}
peerDependencies :
'@types/react' : '*'
'@types/react-dom' : '*'
react : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
react-dom : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta :
'@types/react' :
optional : true
'@types/react-dom' :
optional : true
2025-04-24 15:40:49 +08:00
'@radix-ui/react-presence@1.1.4' :
resolution : {integrity : sha512-ueDqRbdc4/bkaQT3GIpLQssRlFgWaL/U2z/S31qRwwLWoxHLgry3SIfCwhxeQNbirEUXFa+lq3RL3oBYXtcmIA==}
peerDependencies :
'@types/react' : '*'
'@types/react-dom' : '*'
react : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
react-dom : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta :
'@types/react' :
optional : true
'@types/react-dom' :
optional : true
2026-01-24 17:49:13 +08:00
'@radix-ui/react-presence@1.1.5' :
resolution : {integrity : sha512-/jfEwNDdQVBCNvjkGit4h6pMOzq8bHkopq458dPt2lMjx+eBQUohZNG9A7DtO/O5ukSbxuaNGXMjHicgwy6rQQ==}
peerDependencies :
'@types/react' : '*'
'@types/react-dom' : '*'
react : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
react-dom : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta :
'@types/react' :
optional : true
'@types/react-dom' :
optional : true
2025-04-17 20:36:11 +08:00
'@radix-ui/react-primitive@2.0.3' :
2025-04-17 12:02:23 +08:00
resolution : {integrity : sha512-Pf/t/GkndH7CQ8wE2hbkXA+WyZ83fhQQn5DDmwDiDo6AwN/fhaH8oqZ0jRjMrO2iaMhDi6P1HRx6AZwyMinY1g==}
peerDependencies :
'@types/react' : '*'
'@types/react-dom' : '*'
react : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
react-dom : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta :
'@types/react' :
optional : true
'@types/react-dom' :
optional : true
2025-04-20 11:18:05 +08:00
'@radix-ui/react-primitive@2.1.0' :
resolution : {integrity : sha512-/J/FhLdK0zVcILOwt5g+dH4KnkonCtkVJsa2G6JmvbbtZfBEI1gMsO3QMjseL4F/SwfAMt1Vc/0XKYKq+xJ1sw==}
peerDependencies :
'@types/react' : '*'
'@types/react-dom' : '*'
react : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
react-dom : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta :
'@types/react' :
optional : true
'@types/react-dom' :
optional : true
2026-01-24 17:49:13 +08:00
'@radix-ui/react-primitive@2.1.3' :
resolution : {integrity : sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==}
peerDependencies :
'@types/react' : '*'
'@types/react-dom' : '*'
react : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
react-dom : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta :
'@types/react' :
optional : true
'@types/react-dom' :
optional : true
2025-04-17 20:36:11 +08:00
'@radix-ui/react-roving-focus@1.1.3' :
2025-04-17 12:02:23 +08:00
resolution : {integrity : sha512-ufbpLUjZiOg4iYgb2hQrWXEPYX6jOLBbR27bDyAff5GYMRrCzcze8lukjuXVUQvJ6HZe8+oL+hhswDcjmcgVyg==}
peerDependencies :
'@types/react' : '*'
'@types/react-dom' : '*'
react : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
react-dom : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta :
'@types/react' :
optional : true
'@types/react-dom' :
optional : true
2025-04-20 11:18:05 +08:00
'@radix-ui/react-roving-focus@1.1.7' :
resolution : {integrity : sha512-C6oAg451/fQT3EGbWHbCQjYTtbyjNO1uzQgMzwyivcHT3GKNEmu1q3UuREhN+HzHAVtv3ivMVK08QlC+PkYw9Q==}
peerDependencies :
'@types/react' : '*'
'@types/react-dom' : '*'
react : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
react-dom : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta :
'@types/react' :
optional : true
'@types/react-dom' :
optional : true
2025-04-17 20:36:11 +08:00
'@radix-ui/react-scroll-area@1.2.4' :
resolution : {integrity : sha512-G9rdWTQjOR4sk76HwSdROhPU0jZWpfozn9skU1v4N0/g9k7TmswrJn8W8WMU+aYktnLLpk5LX6fofj2bGe5NFQ==}
peerDependencies :
'@types/react' : '*'
'@types/react-dom' : '*'
react : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
react-dom : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta :
'@types/react' :
optional : true
'@types/react-dom' :
optional : true
2025-04-24 15:40:49 +08:00
'@radix-ui/react-select@2.2.2' :
resolution : {integrity : sha512-HjkVHtBkuq+r3zUAZ/CvNWUGKPfuicGDbgtZgiQuFmNcV5F+Tgy24ep2nsAW2nFgvhGPJVqeBZa6KyVN0EyrBA==}
peerDependencies :
'@types/react' : '*'
'@types/react-dom' : '*'
react : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
react-dom : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta :
'@types/react' :
optional : true
'@types/react-dom' :
optional : true
2025-04-22 11:04:03 +08:00
'@radix-ui/react-separator@1.1.4' :
resolution : {integrity : sha512-2fTm6PSiUm8YPq9W0E4reYuv01EE3aFSzt8edBiXqPHshF8N9+Kymt/k0/R+F3dkY5lQyB/zPtrP82phskLi7w==}
peerDependencies :
'@types/react' : '*'
'@types/react-dom' : '*'
react : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
react-dom : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta :
'@types/react' :
optional : true
'@types/react-dom' :
optional : true
2025-05-02 17:23:45 +08:00
'@radix-ui/react-slider@1.3.2' :
resolution : {integrity : sha512-oQnqfgSiYkxZ1MrF6672jw2/zZvpB+PJsrIc3Zm1zof1JHf/kj7WhmROw7JahLfOwYQ5/+Ip0rFORgF1tjSiaQ==}
peerDependencies :
'@types/react' : '*'
'@types/react-dom' : '*'
react : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
react-dom : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta :
'@types/react' :
optional : true
'@types/react-dom' :
optional : true
2025-04-17 20:36:11 +08:00
'@radix-ui/react-slot@1.2.0' :
2025-04-17 12:02:23 +08:00
resolution : {integrity : sha512-ujc+V6r0HNDviYqIK3rW4ffgYiZ8g5DEHrGJVk4x7kTlLXRDILnKX9vAUYeIsLOoDpDJ0ujpqMkjH4w2ofuo6w==}
peerDependencies :
'@types/react' : '*'
react : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta :
'@types/react' :
optional : true
2026-01-24 17:49:13 +08:00
'@radix-ui/react-slot@1.2.3' :
resolution : {integrity : sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==}
peerDependencies :
'@types/react' : '*'
react : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta :
'@types/react' :
optional : true
2025-04-24 15:50:41 +08:00
'@radix-ui/react-switch@1.2.2' :
resolution : {integrity : sha512-7Z8n6L+ifMIIYZ83f28qWSceUpkXuslI2FJ34+kDMTiyj91ENdpdQ7VCidrzj5JfwfZTeano/BnGBbu/jqa5rQ==}
peerDependencies :
'@types/react' : '*'
'@types/react-dom' : '*'
react : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
react-dom : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta :
'@types/react' :
optional : true
'@types/react-dom' :
optional : true
2025-04-17 20:36:11 +08:00
'@radix-ui/react-tabs@1.1.4' :
2025-04-17 12:02:23 +08:00
resolution : {integrity : sha512-fuHMHWSf5SRhXke+DbHXj2wVMo+ghVH30vhX3XVacdXqDl+J4XWafMIGOOER861QpBx1jxgwKXL2dQnfrsd8MQ==}
peerDependencies :
'@types/react' : '*'
'@types/react-dom' : '*'
react : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
react-dom : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta :
'@types/react' :
optional : true
'@types/react-dom' :
optional : true
2025-04-17 20:36:11 +08:00
'@radix-ui/react-tooltip@1.2.0' :
2025-04-17 12:02:23 +08:00
resolution : {integrity : sha512-b1Sdc75s7zN9B8ONQTGBSHL3XS8+IcjcOIY51fhM4R1Hx8s0YbgqgyNZiri4qcYMVZK8hfCZVBiyCm7N9rs0rw==}
peerDependencies :
'@types/react' : '*'
'@types/react-dom' : '*'
react : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
react-dom : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta :
'@types/react' :
optional : true
'@types/react-dom' :
optional : true
2025-04-17 20:36:11 +08:00
'@radix-ui/react-use-callback-ref@1.1.1' :
2025-04-17 12:02:23 +08:00
resolution : {integrity : sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==}
peerDependencies :
'@types/react' : '*'
react : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta :
'@types/react' :
optional : true
2025-04-17 20:36:11 +08:00
'@radix-ui/react-use-controllable-state@1.1.1' :
2025-04-17 12:02:23 +08:00
resolution : {integrity : sha512-YnEXIy8/ga01Y1PN0VfaNH//MhA91JlEGVBDxDzROqwrAtG5Yr2QGEPz8A/rJA3C7ZAHryOYGaUv8fLSW2H/mg==}
peerDependencies :
'@types/react' : '*'
react : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta :
'@types/react' :
optional : true
2025-04-20 11:18:05 +08:00
'@radix-ui/react-use-controllable-state@1.2.2' :
resolution : {integrity : sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==}
peerDependencies :
'@types/react' : '*'
react : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta :
'@types/react' :
optional : true
'@radix-ui/react-use-effect-event@0.0.2' :
resolution : {integrity : sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA==}
peerDependencies :
'@types/react' : '*'
react : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta :
'@types/react' :
optional : true
2025-04-17 20:36:11 +08:00
'@radix-ui/react-use-escape-keydown@1.1.1' :
2025-04-17 12:02:23 +08:00
resolution : {integrity : sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g==}
peerDependencies :
'@types/react' : '*'
react : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta :
'@types/react' :
optional : true
2025-04-17 20:36:11 +08:00
'@radix-ui/react-use-layout-effect@1.1.1' :
2025-04-17 12:02:23 +08:00
resolution : {integrity : sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==}
peerDependencies :
'@types/react' : '*'
react : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta :
'@types/react' :
optional : true
2025-04-24 15:40:49 +08:00
'@radix-ui/react-use-previous@1.1.1' :
resolution : {integrity : sha512-2dHfToCj/pzca2Ck724OZ5L0EVrr3eHRNsG/b3xQJLA2hZpVCS99bLAX+hm1IHXDEnzU6by5z/5MIY794/a8NQ==}
peerDependencies :
'@types/react' : '*'
react : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta :
'@types/react' :
optional : true
2025-04-17 20:36:11 +08:00
'@radix-ui/react-use-rect@1.1.1' :
2025-04-17 12:02:23 +08:00
resolution : {integrity : sha512-QTYuDesS0VtuHNNvMh+CjlKJ4LJickCMUAqjlE3+j8w+RlRpwyX3apEQKGFzbZGdo7XNG1tXa+bQqIE7HIXT2w==}
peerDependencies :
'@types/react' : '*'
react : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta :
'@types/react' :
optional : true
2025-04-17 20:36:11 +08:00
'@radix-ui/react-use-size@1.1.1' :
2025-04-17 12:02:23 +08:00
resolution : {integrity : sha512-ewrXRDTAqAXlkl6t/fkXWNAhFX9I+CkKlw6zjEwk86RSPKwZr3xpBRso655aqYafwtnbpHLj6toFzmd6xdVptQ==}
peerDependencies :
'@types/react' : '*'
react : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta :
'@types/react' :
optional : true
2025-04-17 20:36:11 +08:00
'@radix-ui/react-visually-hidden@1.1.3' :
2025-04-17 12:02:23 +08:00
resolution : {integrity : sha512-oXSF3ZQRd5fvomd9hmUCb2EHSZbPp3ZSHAHJJU/DlF9XoFkJBBW8RHU/E8WEH+RbSfJd/QFA0sl8ClJXknBwHQ==}
peerDependencies :
'@types/react' : '*'
'@types/react-dom' : '*'
react : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
react-dom : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta :
'@types/react' :
optional : true
'@types/react-dom' :
optional : true
2025-04-24 15:40:49 +08:00
'@radix-ui/react-visually-hidden@1.2.0' :
resolution : {integrity : sha512-rQj0aAWOpCdCMRbI6pLQm8r7S2BM3YhTa0SzOYD55k+hJA8oo9J+H+9wLM9oMlZWOX/wJWPTzfDfmZkf7LvCfg==}
peerDependencies :
'@types/react' : '*'
'@types/react-dom' : '*'
react : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
react-dom : ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta :
'@types/react' :
optional : true
'@types/react-dom' :
optional : true
2025-04-17 20:36:11 +08:00
'@radix-ui/rect@1.1.1' :
2025-04-17 12:02:23 +08:00
resolution : {integrity : sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw==}
2025-05-28 14:13:46 +08:00
'@rc-component/input@1.0.1' :
resolution : {integrity : sha512-omxsjWpB+RamzDDB0NzgV6qI7Ok/U6nrN2KLL/hLZJcI7sZZgLYAN+Xs1pN7OYBnUeyn25PizcntEE0nofHv8Q==}
peerDependencies :
react : '>=16.0.0'
react-dom : '>=16.0.0'
'@rc-component/mentions@1.2.0' :
resolution : {integrity : sha512-dSr9mX5bQWDegeVLr+NoffjZO5paG/nzM5f+RVslpznfVqR5d3c+xan+f6ZqZWHJqJOfROqNGAkUb8pqqAV7wQ==}
peerDependencies :
react : '>=16.9.0'
react-dom : '>=16.9.0'
'@rc-component/menu@1.1.3' :
resolution : {integrity : sha512-NN/J0nJFwwDfQBycl9mordDTBdSai5Ie4nxaGkH2eHVa37KjyhpU98EtcVb/ss393I7SZTDCvoylS3MQOjgYkw==}
peerDependencies :
react : '>=16.9.0'
react-dom : '>=16.9.0'
'@rc-component/motion@1.1.4' :
resolution : {integrity : sha512-rz3+kqQ05xEgIAB9/UKQZKCg5CO/ivGNU78QWYKVfptmbjJKynZO4KXJ7pJD3oMxE9aW94LD/N3eppXWeysTjw==}
peerDependencies :
react : '>=16.9.0'
react-dom : '>=16.9.0'
'@rc-component/portal@2.0.0' :
resolution : {integrity : sha512-337ADhBfgH02S8OujUl33OT+8zVJ67eyuUq11j/dE71rXKYNihMsggW8R2VfI2aL3SciDp8gAFsmPVoPkxLUGw==}
engines : {node : '>=12.x' }
peerDependencies :
react : '>=18.0.0'
react-dom : '>=18.0.0'
'@rc-component/resize-observer@1.0.0' :
resolution : {integrity : sha512-inR8Ka87OOwtrDJzdVp2VuEVlc5nK20lHolvkwFUnXwV50p+nLhKny1NvNTCKvBmS/pi/rTn/1Hvsw10sRRnXA==}
peerDependencies :
react : '>=16.9.0'
react-dom : '>=16.9.0'
'@rc-component/textarea@1.0.0' :
resolution : {integrity : sha512-GuXakeRWZuWUnF2sqfC8RjtzfAh5UI89dPk6r5SgosyQGfQIueuN8LkWmFq5OKTOJIlc82MOjHiPBigKB9+KGw==}
peerDependencies :
react : '>=16.9.0'
react-dom : '>=16.9.0'
'@rc-component/trigger@3.4.0' :
resolution : {integrity : sha512-Vu+RS7bGAHHNtzP6EzrMwH+xiZl+SHQgR98oAUXtoQIy4+4lsSppwQPcl6Q7ORZuZevil1BSw4GHXNWD8BJOXw==}
engines : {node : '>=8.x' }
peerDependencies :
react : '>=18.0.0'
react-dom : '>=18.0.0'
2025-04-17 20:36:11 +08:00
'@rc-component/util@1.2.1' :
2025-04-17 12:02:23 +08:00
resolution : {integrity : sha512-AUVu6jO+lWjQnUOOECwu8iR0EdElQgWW5NBv5vP/Uf9dWbAX3udhMutRlkVXjuac2E40ghkFy+ve00mc/3Fymg==}
peerDependencies :
react : '>=18.0.0'
react-dom : '>=18.0.0'
2025-04-26 00:20:49 +08:00
'@remirror/core-constants@3.0.0' :
resolution : {integrity : sha512-42aWfPrimMfDKDi4YegyS7x+/0tlzaqwPQCULLanv3DMIlu96KTJR0fM5isWX2UViOqlGnX6YFgqWepcX+XMNg==}
2025-04-17 20:36:11 +08:00
'@rtsao/scc@1.1.0' :
2025-04-17 12:02:23 +08:00
resolution : {integrity : sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==}
2025-04-17 20:36:11 +08:00
'@rushstack/eslint-patch@1.11.0' :
2025-04-17 12:02:23 +08:00
resolution : {integrity : sha512-zxnHvoMQVqewTJr/W4pKjF0bMGiKJv1WX7bSrkl46Hg0QjESbzBROWK0Wg4RphzSOS5Jiy7eFimmM3UgMrMZbQ==}
2025-04-26 00:20:49 +08:00
'@scena/dragscroll@1.4.0' :
resolution : {integrity : sha512-3O8daaZD9VXA9CP3dra6xcgt/qrm0mg0xJCwiX6druCteQ9FFsXffkF8PrqxY4Z4VJ58fFKEa0RlKqbsi/XnRA==}
'@scena/event-emitter@1.0.5' :
resolution : {integrity : sha512-AzY4OTb0+7ynefmWFQ6hxDdk0CySAq/D4efljfhtRHCOP7MBF9zUfhKG3TJiroVjASqVgkRJFdenS8ArZo6Olg==}
'@scena/matrix@1.1.1' :
resolution : {integrity : sha512-JVKBhN0tm2Srl+Yt+Ywqu0oLgLcdemDQlD1OxmN9jaCTwaFPZ7tY8n6dhVgMEaR9qcR7r+kAlMXnSfNyYdE+Vg==}
2025-07-12 15:18:28 +08:00
'@schummar/icu-type-parser@1.21.5' :
resolution : {integrity : sha512-bXHSaW5jRTmke9Vd0h5P7BtWZG9Znqb8gSDxZnxaGSJnGwPLDPfS+3g0BKzeWqzgZPsIVZkM7m2tbo18cm5HBw==}
2025-10-25 20:46:43 +08:00
'@sinclair/typebox@0.34.41' :
resolution : {integrity : sha512-6gS8pZzSXdyRHTIqoqSVknxolr1kzfy4/CeDnrzsVz8TTIWUbOBr6gnzOmTYJ3eXQNh4IYHIGi5aIL7sOZ2G/g==}
'@sinonjs/commons@3.0.1' :
resolution : {integrity : sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==}
'@sinonjs/fake-timers@13.0.5' :
resolution : {integrity : sha512-36/hTbH2uaWuGVERyC6da9YwGWnzUZXuPro/F2LfsdOsLnCojz/iSH8MxUt/FD2S5XBSVPhmArFUXcpCQ2Hkiw==}
2025-04-23 21:16:58 +08:00
'@standard-schema/utils@0.3.0' :
resolution : {integrity : sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g==}
2025-04-17 20:36:11 +08:00
'@swc/helpers@0.5.15' :
2025-04-17 12:02:23 +08:00
resolution : {integrity : sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==}
2026-02-09 15:43:04 +08:00
'@swc/helpers@0.5.18' :
resolution : {integrity : sha512-TXTnIcNJQEKwThMMqBXsZ4VGAza6bvN4pa41Rkqoio6QBKMvo+5lexeTMScGCIxtzgQJzElcvIltani+adC5PQ==}
2025-09-04 22:26:33 +08:00
2025-04-17 20:36:11 +08:00
'@t3-oss/env-core@0.11.1' :
2025-04-17 14:26:41 +08:00
resolution : {integrity : sha512-MaxOwEoG1ntCFoKJsS7nqwgcxLW1SJw238AJwfJeaz3P/8GtkxXZsPPolsz1AdYvUTbe3XvqZ/VCdfjt+3zmKw==}
2025-04-17 12:02:23 +08:00
peerDependencies :
typescript : '>=5.0.0'
2025-04-17 14:26:41 +08:00
zod : ^3.0.0
2025-04-17 12:02:23 +08:00
peerDependenciesMeta :
typescript :
optional : true
2025-04-17 20:36:11 +08:00
'@t3-oss/env-nextjs@0.11.1' :
2025-04-17 14:26:41 +08:00
resolution : {integrity : sha512-rx2XL9+v6wtOqLNJbD5eD8OezKlQD1BtC0WvvtHwBgK66jnF5+wGqtgkKK4Ygie1LVmoDClths2T4tdFmRvGrQ==}
2025-04-17 12:02:23 +08:00
peerDependencies :
typescript : '>=5.0.0'
2025-04-17 14:26:41 +08:00
zod : ^3.0.0
2025-04-17 12:02:23 +08:00
peerDependenciesMeta :
typescript :
optional : true
2025-04-17 20:36:11 +08:00
'@tailwindcss/node@4.1.4' :
2025-04-17 14:26:41 +08:00
resolution : {integrity : sha512-MT5118zaiO6x6hNA04OWInuAiP1YISXql8Z+/Y8iisV5nuhM8VXlyhRuqc2PEviPszcXI66W44bCIk500Oolhw==}
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
'@tailwindcss/oxide-android-arm64@4.1.4' :
2025-04-17 14:26:41 +08:00
resolution : {integrity : sha512-xMMAe/SaCN/vHfQYui3fqaBDEXMu22BVwQ33veLc8ep+DNy7CWN52L+TTG9y1K397w9nkzv+Mw+mZWISiqhmlA==}
2025-04-17 12:02:23 +08:00
engines : {node : '>= 10' }
cpu : [ arm64]
os : [ android]
2025-04-17 20:36:11 +08:00
'@tailwindcss/oxide-darwin-arm64@4.1.4' :
2025-04-17 14:26:41 +08:00
resolution : {integrity : sha512-JGRj0SYFuDuAGilWFBlshcexev2hOKfNkoX+0QTksKYq2zgF9VY/vVMq9m8IObYnLna0Xlg+ytCi2FN2rOL0Sg==}
2025-04-17 12:02:23 +08:00
engines : {node : '>= 10' }
cpu : [ arm64]
os : [ darwin]
2025-04-17 20:36:11 +08:00
'@tailwindcss/oxide-darwin-x64@4.1.4' :
2025-04-17 14:26:41 +08:00
resolution : {integrity : sha512-sdDeLNvs3cYeWsEJ4H1DvjOzaGios4QbBTNLVLVs0XQ0V95bffT3+scptzYGPMjm7xv4+qMhCDrkHwhnUySEzA==}
2025-04-17 12:02:23 +08:00
engines : {node : '>= 10' }
cpu : [ x64]
os : [ darwin]
2025-04-17 20:36:11 +08:00
'@tailwindcss/oxide-freebsd-x64@4.1.4' :
2025-04-17 14:26:41 +08:00
resolution : {integrity : sha512-VHxAqxqdghM83HslPhRsNhHo91McsxRJaEnShJOMu8mHmEj9Ig7ToHJtDukkuLWLzLboh2XSjq/0zO6wgvykNA==}
2025-04-17 12:02:23 +08:00
engines : {node : '>= 10' }
cpu : [ x64]
os : [ freebsd]
2025-04-17 20:36:11 +08:00
'@tailwindcss/oxide-linux-arm-gnueabihf@4.1.4' :
2025-04-17 14:26:41 +08:00
resolution : {integrity : sha512-OTU/m/eV4gQKxy9r5acuesqaymyeSCnsx1cFto/I1WhPmi5HDxX1nkzb8KYBiwkHIGg7CTfo/AcGzoXAJBxLfg==}
2025-04-17 12:02:23 +08:00
engines : {node : '>= 10' }
cpu : [ arm]
os : [ linux]
2025-04-17 20:36:11 +08:00
'@tailwindcss/oxide-linux-arm64-gnu@4.1.4' :
2025-04-17 14:26:41 +08:00
resolution : {integrity : sha512-hKlLNvbmUC6z5g/J4H+Zx7f7w15whSVImokLPmP6ff1QqTVE+TxUM9PGuNsjHvkvlHUtGTdDnOvGNSEUiXI1Ww==}
2025-04-17 12:02:23 +08:00
engines : {node : '>= 10' }
cpu : [ arm64]
os : [ linux]
2025-04-17 20:36:11 +08:00
'@tailwindcss/oxide-linux-arm64-musl@4.1.4' :
2025-04-17 14:26:41 +08:00
resolution : {integrity : sha512-X3As2xhtgPTY/m5edUtddmZ8rCruvBvtxYLMw9OsZdH01L2gS2icsHRwxdU0dMItNfVmrBezueXZCHxVeeb7Aw==}
2025-04-17 12:02:23 +08:00
engines : {node : '>= 10' }
cpu : [ arm64]
os : [ linux]
2025-04-17 20:36:11 +08:00
'@tailwindcss/oxide-linux-x64-gnu@4.1.4' :
2025-04-17 14:26:41 +08:00
resolution : {integrity : sha512-2VG4DqhGaDSmYIu6C4ua2vSLXnJsb/C9liej7TuSO04NK+JJJgJucDUgmX6sn7Gw3Cs5ZJ9ZLrnI0QRDOjLfNQ==}
2025-04-17 12:02:23 +08:00
engines : {node : '>= 10' }
cpu : [ x64]
os : [ linux]
2025-04-17 20:36:11 +08:00
'@tailwindcss/oxide-linux-x64-musl@4.1.4' :
2025-04-17 14:26:41 +08:00
resolution : {integrity : sha512-v+mxVgH2kmur/X5Mdrz9m7TsoVjbdYQT0b4Z+dr+I4RvreCNXyCFELZL/DO0M1RsidZTrm6O1eMnV6zlgEzTMQ==}
2025-04-17 12:02:23 +08:00
engines : {node : '>= 10' }
cpu : [ x64]
os : [ linux]
2025-04-17 20:36:11 +08:00
'@tailwindcss/oxide-wasm32-wasi@4.1.4' :
2025-04-17 14:26:41 +08:00
resolution : {integrity : sha512-2TLe9ir+9esCf6Wm+lLWTMbgklIjiF0pbmDnwmhR9MksVOq+e8aP3TSsXySnBDDvTTVd/vKu1aNttEGj3P6l8Q==}
engines : {node : '>=14.0.0' }
cpu : [ wasm32]
bundledDependencies :
- '@napi-rs/wasm-runtime'
- '@emnapi/core'
- '@emnapi/runtime'
- '@tybys/wasm-util'
- '@emnapi/wasi-threads'
- tslib
2025-04-17 20:36:11 +08:00
'@tailwindcss/oxide-win32-arm64-msvc@4.1.4' :
2025-04-17 14:26:41 +08:00
resolution : {integrity : sha512-VlnhfilPlO0ltxW9/BgfLI5547PYzqBMPIzRrk4W7uupgCt8z6Trw/tAj6QUtF2om+1MH281Pg+HHUJoLesmng==}
2025-04-17 12:02:23 +08:00
engines : {node : '>= 10' }
cpu : [ arm64]
os : [ win32]
2025-04-17 20:36:11 +08:00
'@tailwindcss/oxide-win32-x64-msvc@4.1.4' :
2025-04-17 14:26:41 +08:00
resolution : {integrity : sha512-+7S63t5zhYjslUGb8NcgLpFXD+Kq1F/zt5Xv5qTv7HaFTG/DHyHD9GA6ieNAxhgyA4IcKa/zy7Xx4Oad2/wuhw==}
2025-04-17 12:02:23 +08:00
engines : {node : '>= 10' }
cpu : [ x64]
os : [ win32]
2025-04-17 20:36:11 +08:00
'@tailwindcss/oxide@4.1.4' :
2025-04-17 14:26:41 +08:00
resolution : {integrity : sha512-p5wOpXyOJx7mKh5MXh5oKk+kqcz8T+bA3z/5VWWeQwFrmuBItGwz8Y2CHk/sJ+dNb9B0nYFfn0rj/cKHZyjahQ==}
2025-04-17 12:02:23 +08:00
engines : {node : '>= 10' }
2025-04-17 14:26:41 +08:00
2025-04-17 20:36:11 +08:00
'@tailwindcss/postcss@4.1.4' :
2025-04-17 14:26:41 +08:00
resolution : {integrity : sha512-bjV6sqycCEa+AQSt2Kr7wpGF1bOZJ5wsqnLEkqSbM/JEHxx/yhMH8wHmdkPyApF9xhHeMSwnnkDUUMMM/hYnXw==}
2025-04-17 12:02:23 +08:00
2025-04-26 00:20:49 +08:00
'@tailwindcss/typography@0.5.16' :
resolution : {integrity : sha512-0wDLwCVF5V3x3b1SGXPCDcdsbDHMBe+lkFzBRaHeLvNi+nrrnZ1lA18u+OTWO8iSWU2GxUOCvlXtDuqftc1oiA==}
peerDependencies :
tailwindcss : '>=3.0.0 || insiders || >=4.0.0-alpha.20 || >=4.0.0-beta.1'
2025-10-25 20:46:43 +08:00
'@testing-library/dom@10.4.1' :
resolution : {integrity : sha512-o4PXJQidqJl82ckFaXUeoAW+XysPLauYI43Abki5hABd853iMhitooc6znOnczgbTYmEP6U6/y1ZyKAIsvMKGg==}
engines : {node : '>=18' }
'@testing-library/react@16.3.0' :
resolution : {integrity : sha512-kFSyxiEDwv1WLl2fgsq6pPBbw5aWKrsY2/noi1Id0TK0UParSF62oFQFGHXIyaG4pp2tEub/Zlel+fjjZILDsw==}
engines : {node : '>=18' }
peerDependencies :
'@testing-library/dom' : ^10.0.0
'@types/react' : ^18.0.0 || ^19.0.0
'@types/react-dom' : ^18.0.0 || ^19.0.0
react : ^18.0.0 || ^19.0.0
react-dom : ^18.0.0 || ^19.0.0
peerDependenciesMeta :
'@types/react' :
optional : true
'@types/react-dom' :
optional : true
2025-04-26 00:20:49 +08:00
'@tiptap/core@2.11.7' :
resolution : {integrity : sha512-zN+NFFxLsxNEL8Qioc+DL6b8+Tt2bmRbXH22Gk6F6nD30x83eaUSFlSv3wqvgyCq3I1i1NO394So+Agmayx6rQ==}
peerDependencies :
'@tiptap/pm' : ^2.7.0
'@tiptap/extension-blockquote@2.11.7' :
resolution : {integrity : sha512-liD8kWowl3CcYCG9JQlVx1eSNc/aHlt6JpVsuWvzq6J8APWX693i3+zFqyK2eCDn0k+vW62muhSBe3u09hA3Zw==}
peerDependencies :
'@tiptap/core' : ^2.7.0
'@tiptap/extension-bold@2.11.7' :
resolution : {integrity : sha512-VTR3JlldBixXbjpLTFme/Bxf1xeUgZZY3LTlt5JDlCW3CxO7k05CIa+kEZ8LXpog5annytZDUVtWqxrNjmsuHQ==}
peerDependencies :
'@tiptap/core' : ^2.7.0
'@tiptap/extension-bubble-menu@2.11.7' :
resolution : {integrity : sha512-0vYqSUSSap3kk3/VT4tFE1/6StX70I3/NKQ4J68ZSFgkgyB3ZVlYv7/dY3AkEukjsEp3yN7m8Gw8ei2eEwyzwg==}
peerDependencies :
'@tiptap/core' : ^2.7.0
'@tiptap/pm' : ^2.7.0
'@tiptap/extension-bullet-list@2.11.7' :
resolution : {integrity : sha512-WbPogE2/Q3e3/QYgbT1Sj4KQUfGAJNc5pvb7GrUbvRQsAh7HhtuO8hqdDwH8dEdD/cNUehgt17TO7u8qV6qeBw==}
peerDependencies :
'@tiptap/core' : ^2.7.0
'@tiptap/extension-character-count@2.11.7' :
resolution : {integrity : sha512-gcVbKou+uxzg8N0BBKceLwtpWvN8g2TIjTuCdyAcAPukX63DqVWOkofFHn1RqZbstJmtF4pTGZs9OH/GJrp27Q==}
peerDependencies :
'@tiptap/core' : ^2.7.0
'@tiptap/pm' : ^2.7.0
'@tiptap/extension-code-block-lowlight@2.11.7' :
resolution : {integrity : sha512-+eUMxvDgoYmAvkuJ2ljV2COyeH6HwH8LqCNWma+mFZCRDAoXNeqSHbBtI0Vzy4PqchfmxcmKERc99xEzoS9XUQ==}
peerDependencies :
'@tiptap/core' : ^2.7.0
'@tiptap/extension-code-block' : ^2.7.0
'@tiptap/pm' : ^2.7.0
highlight.js : ^11
lowlight : ^2 || ^3
'@tiptap/extension-code-block@2.11.7' :
resolution : {integrity : sha512-To/y/2H04VWqiANy53aXjV7S6fA86c2759RsH1hTIe57jA1KyE7I5tlAofljOLZK/covkGmPeBddSPHGJbz++Q==}
peerDependencies :
'@tiptap/core' : ^2.7.0
'@tiptap/pm' : ^2.7.0
'@tiptap/extension-code@2.11.7' :
resolution : {integrity : sha512-VpPO1Uy/eF4hYOpohS/yMOcE1C07xmMj0/D989D9aS1x95jWwUVrSkwC+PlWMUBx9PbY2NRsg1ZDwVvlNKZ6yQ==}
peerDependencies :
'@tiptap/core' : ^2.7.0
'@tiptap/extension-color@2.11.7' :
resolution : {integrity : sha512-2CWb0Qnh8Crf9OwnnWB+M1QJtWrbn6IMSwuOzk+tSzdWSazjN8h6XAZVemr0qMdAA/SyUigzorStiPxN6o3/vQ==}
peerDependencies :
'@tiptap/core' : ^2.7.0
'@tiptap/extension-text-style' : ^2.7.0
2025-05-28 14:13:46 +08:00
'@tiptap/extension-document@2.12.0' :
resolution : {integrity : sha512-sA1Q+mxDIv0Y3qQTBkYGwknNbDcGFiJ/fyAFholXpqbrcRx3GavwR/o0chBdsJZlFht0x7AWGwUYWvIo7wYilA==}
2025-04-26 00:20:49 +08:00
peerDependencies :
'@tiptap/core' : ^2.7.0
'@tiptap/extension-dropcursor@2.11.7' :
resolution : {integrity : sha512-63mL+nxQILizsr5NbmgDeOjFEWi34BLt7evwL6UUZEVM15K8V1G8pD9Y0kCXrZYpHWz0tqFRXdrhDz0Ppu8oVw==}
peerDependencies :
'@tiptap/core' : ^2.7.0
'@tiptap/pm' : ^2.7.0
'@tiptap/extension-floating-menu@2.11.7' :
resolution : {integrity : sha512-DG54WoUu2vxHRVzKZiR5I5RMOYj45IlxQMkBAx1wjS0ch41W8DUYEeipvMMjCeKtEI+emz03xYUcOAP9LRmg+w==}
peerDependencies :
'@tiptap/core' : ^2.7.0
'@tiptap/pm' : ^2.7.0
'@tiptap/extension-gapcursor@2.11.7' :
resolution : {integrity : sha512-EceesmPG7FyjXZ8EgeJPUov9G1mAf2AwdypxBNH275g6xd5dmU/KvjoFZjmQ0X1ve7mS+wNupVlGxAEUYoveew==}
peerDependencies :
'@tiptap/core' : ^2.7.0
'@tiptap/pm' : ^2.7.0
'@tiptap/extension-hard-break@2.11.7' :
resolution : {integrity : sha512-zTkZSA6q+F5sLOdCkiC2+RqJQN0zdsJqvFIOVFL/IDVOnq6PZO5THzwRRLvOSnJJl3edRQCl/hUgS0L5sTInGQ==}
peerDependencies :
'@tiptap/core' : ^2.7.0
'@tiptap/extension-heading@2.11.7' :
resolution : {integrity : sha512-8kWh7y4Rd2fwxfWOhFFWncHdkDkMC1Z60yzIZWjIu72+6yQxvo8w3yeb7LI7jER4kffbMmadgcfhCHC/fkObBA==}
peerDependencies :
'@tiptap/core' : ^2.7.0
'@tiptap/extension-highlight@2.11.7' :
resolution : {integrity : sha512-c/NH4kIpNOWCUQv8RkFNDyOcgt+2pYFpDf0QBJmzhAuv4BIeS2bDmDtuNS7VgoWRZH+xxCNXfvm2BG+kjtipEg==}
peerDependencies :
'@tiptap/core' : ^2.7.0
'@tiptap/extension-history@2.11.7' :
resolution : {integrity : sha512-Cu5x3aS13I040QSRoLdd+w09G4OCVfU+azpUqxufZxeNs9BIJC+0jowPLeOxKDh6D5GGT2A8sQtxc6a/ssbs8g==}
peerDependencies :
'@tiptap/core' : ^2.7.0
'@tiptap/pm' : ^2.7.0
'@tiptap/extension-horizontal-rule@2.11.7' :
resolution : {integrity : sha512-uVmQwD2dzZ5xwmvUlciy0ItxOdOfQjH6VLmu80zyJf8Yu7mvwP8JyxoXUX0vd1xHpwAhgQ9/ozjIWYGIw79DPQ==}
peerDependencies :
'@tiptap/core' : ^2.7.0
'@tiptap/pm' : ^2.7.0
'@tiptap/extension-image@2.11.7' :
resolution : {integrity : sha512-YvCmTDB7Oo+A56tR4S/gcNaYpqU4DDlSQcRp5IQvmQV5EekSe0lnEazGDoqOCwsit9qQhj4MPQJhKrnaWrJUrg==}
peerDependencies :
'@tiptap/core' : ^2.7.0
'@tiptap/extension-italic@2.11.7' :
resolution : {integrity : sha512-r985bkQfG0HMpmCU0X0p/Xe7U1qgRm2mxvcp6iPCuts2FqxaCoyfNZ8YnMsgVK1mRhM7+CQ5SEg2NOmQNtHvPw==}
peerDependencies :
'@tiptap/core' : ^2.7.0
'@tiptap/extension-link@2.11.7' :
resolution : {integrity : sha512-qKIowE73aAUrnQCIifYP34xXOHOsZw46cT/LBDlb0T60knVfQoKVE4ku08fJzAV+s6zqgsaaZ4HVOXkQYLoW7g==}
peerDependencies :
'@tiptap/core' : ^2.7.0
'@tiptap/pm' : ^2.7.0
'@tiptap/extension-list-item@2.11.7' :
resolution : {integrity : sha512-6ikh7Y+qAbkSuIHXPIINqfzmWs5uIGrylihdZ9adaIyvrN1KSnWIqrZIk/NcZTg5YFIJlXrnGSRSjb/QM3WUhw==}
peerDependencies :
'@tiptap/core' : ^2.7.0
2025-05-28 14:13:46 +08:00
'@tiptap/extension-mention@2.12.0' :
resolution : {integrity : sha512-+b/fqOU+pRWWAo0ZfyInkhkvV0Ub5RpNrYZ45v2nn5PjbXbxyxNQ51zT6cGk2F6Jmc6UBmlR8iqqNTIQY9ieEg==}
peerDependencies :
'@tiptap/core' : ^2.7.0
'@tiptap/pm' : ^2.7.0
'@tiptap/suggestion' : ^2.7.0
2025-04-26 00:20:49 +08:00
'@tiptap/extension-ordered-list@2.11.7' :
resolution : {integrity : sha512-bLGCHDMB0vbJk7uu8bRg8vES3GsvxkX7Cgjgm/6xysHFbK98y0asDtNxkW1VvuRreNGz4tyB6vkcVCfrxl4jKw==}
peerDependencies :
'@tiptap/core' : ^2.7.0
'@tiptap/extension-paragraph@2.11.7' :
resolution : {integrity : sha512-Pl3B4q6DJqTvvAdraqZaNP9Hh0UWEHL5nNdxhaRNuhKaUo7lq8wbDSIxIW3lvV0lyCs0NfyunkUvSm1CXb6d4Q==}
peerDependencies :
'@tiptap/core' : ^2.7.0
'@tiptap/extension-placeholder@2.11.7' :
resolution : {integrity : sha512-/06zXV4HIjYoiaUq1fVJo/RcU8pHbzx21evOpeG/foCfNpMI4xLU/vnxdUi6/SQqpZMY0eFutDqod1InkSOqsg==}
peerDependencies :
'@tiptap/core' : ^2.7.0
'@tiptap/pm' : ^2.7.0
'@tiptap/extension-strike@2.11.7' :
resolution : {integrity : sha512-D6GYiW9F24bvAY7XMOARNZbC8YGPzdzWdXd8VOOJABhf4ynMi/oW4NNiko+kZ67jn3EGaKoz32VMJzNQgYi1HA==}
peerDependencies :
'@tiptap/core' : ^2.7.0
2025-04-27 10:39:02 +08:00
'@tiptap/extension-table-cell@2.11.7' :
resolution : {integrity : sha512-JMOkSYRckc5SJP86yGGiHzCxCR8ecrRENvTWAKib6qer2tutxs5u42W+Z8uTcHC2dRz7Fv54snOkDoqPwkf6cw==}
peerDependencies :
'@tiptap/core' : ^2.7.0
'@tiptap/extension-table-header@2.11.7' :
resolution : {integrity : sha512-wPRKpliS5QQXgsp//ZjXrHMdLICMkjg2fUrQinOiBa7wDL5C7Y+SehtuK4s2tjeAkyAdj+nepfftyBRIlUSMXg==}
peerDependencies :
'@tiptap/core' : ^2.7.0
'@tiptap/extension-table-row@2.11.7' :
resolution : {integrity : sha512-K254RiXWGXGjz5Cm835hqfQiwnYXm8aw6oOa3isDh4A1B+1Ev4DB2vEDKMrgaOor3nbTsSYmAx2iEMrZSbpaRg==}
peerDependencies :
'@tiptap/core' : ^2.7.0
'@tiptap/extension-table@2.11.7' :
resolution : {integrity : sha512-rfwWkNXz/EZuhc8lylsCWPbx0Xr5FlIhreWFyeoXYrDEO3x4ytYcVOpNmbabJYP2semfM0PvPR5o84zfFkLZyg==}
peerDependencies :
'@tiptap/core' : ^2.7.0
'@tiptap/pm' : ^2.7.0
2025-04-26 00:20:49 +08:00
'@tiptap/extension-task-item@2.11.7' :
resolution : {integrity : sha512-m+UyE85nnqhQ4epLMYqdwaQj6DoqGGUNE0gyJOtJB1qhBi7GM7yPEDoiX82ByaQetWjoZIduRuQSRfgkD0MEeA==}
peerDependencies :
'@tiptap/core' : ^2.7.0
'@tiptap/pm' : ^2.7.0
'@tiptap/extension-task-list@2.11.7' :
resolution : {integrity : sha512-rgpkLvKxeSWibMpZazR5PkISSwz90Wnpe/KqIWLu/s3UuRE0Sc5kA8ZOva4ZAvcpSWEJ1cNn1OqllwHsj0NxwQ==}
peerDependencies :
'@tiptap/core' : ^2.7.0
'@tiptap/extension-text-style@2.11.7' :
resolution : {integrity : sha512-LHO6DBg/9SkCQFdWlVfw9nolUmw+Cid94WkTY+7IwrpyG2+ZGQxnKpCJCKyeaFNbDoYAtvu0vuTsSXeCkgShcA==}
peerDependencies :
'@tiptap/core' : ^2.7.0
2025-05-28 14:13:46 +08:00
'@tiptap/extension-text@2.12.0' :
resolution : {integrity : sha512-0ytN9V1tZYTXdiYDQg4FB2SQ56JAJC9r/65snefb9ztl+gZzDrIvih7CflHs1ic9PgyjexfMLeH+VzuMccNyZw==}
2025-04-26 00:20:49 +08:00
peerDependencies :
'@tiptap/core' : ^2.7.0
'@tiptap/extension-underline@2.11.7' :
resolution : {integrity : sha512-NtoQw6PGijOAtXC6G+0Aq0/Z5wwEjPhNHs8nsjXogfWIgaj/aI4/zfBnA06eI3WT+emMYQTl0fTc4CUPnLVU8g==}
peerDependencies :
'@tiptap/core' : ^2.7.0
'@tiptap/extension-youtube@2.11.7' :
resolution : {integrity : sha512-Cf8rziGNIVdsQXGO6nIYcpG5wP6RO+7VkpLZcVYo2I2KvEaXv+3Nb3mG4X+F7AClPfCEIE4G2EIVCsh3DCZ96A==}
peerDependencies :
'@tiptap/core' : ^2.7.0
'@tiptap/pm@2.11.7' :
resolution : {integrity : sha512-7gEEfz2Q6bYKXM07vzLUD0vqXFhC5geWRA6LCozTiLdVFDdHWiBrvb2rtkL5T7mfLq03zc1QhH7rI3F6VntOEA==}
'@tiptap/react@2.11.7' :
resolution : {integrity : sha512-gQZEUkAoPsBptnB4T2gAtiUxswjVGhfsM9vOElQco+b11DYmy110T2Zuhg+2YGvB/CG3RoWJx34808P0FX1ijA==}
peerDependencies :
'@tiptap/core' : ^2.7.0
'@tiptap/pm' : ^2.7.0
react : ^17.0.0 || ^18.0.0 || ^19.0.0
react-dom : ^17.0.0 || ^18.0.0 || ^19.0.0
'@tiptap/starter-kit@2.11.7' :
resolution : {integrity : sha512-K+q51KwNU/l0kqRuV5e1824yOLVftj6kGplGQLvJG56P7Rb2dPbM/JeaDbxQhnHT/KDGamG0s0Po0M3pPY163A==}
'@tiptap/suggestion@2.11.7' :
resolution : {integrity : sha512-I1ckVAEErpErPn/H9ZdDmTb5zuPNPiKj3krxCtJDUU4+3we0cgJY9NQFXl9//mrug3UIngH0ZQO+arbZfIk75A==}
peerDependencies :
'@tiptap/core' : ^2.7.0
'@tiptap/pm' : ^2.7.0
2025-10-25 20:46:43 +08:00
'@tybys/wasm-util@0.10.1' :
resolution : {integrity : sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==}
2025-04-17 20:36:11 +08:00
'@tybys/wasm-util@0.9.0' :
2025-04-17 12:02:23 +08:00
resolution : {integrity : sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==}
2025-10-25 20:46:43 +08:00
'@types/aria-query@5.0.4' :
resolution : {integrity : sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==}
'@types/babel__core@7.20.5' :
resolution : {integrity : sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==}
'@types/babel__generator@7.27.0' :
resolution : {integrity : sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==}
'@types/babel__template@7.4.4' :
resolution : {integrity : sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==}
'@types/babel__traverse@7.28.0' :
resolution : {integrity : sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==}
2025-04-29 14:12:36 +08:00
'@types/d3-color@3.1.3' :
resolution : {integrity : sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==}
'@types/d3-drag@3.0.7' :
resolution : {integrity : sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ==}
'@types/d3-interpolate@3.0.4' :
resolution : {integrity : sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==}
'@types/d3-selection@3.0.11' :
resolution : {integrity : sha512-bhAXu23DJWsrI45xafYpkQ4NtcKMwWnAC/vKrd2l+nxMFuvOT3XMYTIj2opv8vq8AO5Yh7Qac/nSeP/3zjTK0w==}
'@types/d3-transition@3.0.9' :
resolution : {integrity : sha512-uZS5shfxzO3rGlu0cC3bjmMFKsXv+SmZZcgp0KD22ts4uGXp5EVYGzu/0YdwZeKmddhcAccYtREJKkPfXkZuCg==}
'@types/d3-zoom@3.0.8' :
resolution : {integrity : sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw==}
2025-04-17 20:36:11 +08:00
'@types/debug@4.1.12' :
2025-04-17 12:02:23 +08:00
resolution : {integrity : sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==}
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
'@types/dompurify@3.2.0' :
resolution : {integrity : sha512-Fgg31wv9QbLDA0SpTOXO3MaxySc4DKGLi8sna4/Utjo4r3ZRPdCt4UQee8BWr+Q5z21yifghREPJGYaEOEIACg==}
deprecated : This is a stub types definition. dompurify provides its own type definitions, so you do not need this installed.
2025-04-22 13:52:56 +08:00
'@types/eslint-scope@3.7.7' :
resolution : {integrity : sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==}
'@types/eslint@9.6.1' :
resolution : {integrity : sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==}
2025-04-17 20:36:11 +08:00
'@types/estree-jsx@1.0.5' :
2025-04-17 12:02:23 +08:00
resolution : {integrity : sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==}
2025-04-17 20:36:11 +08:00
'@types/estree@1.0.7' :
2025-04-17 12:02:23 +08:00
resolution : {integrity : sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==}
2025-09-04 22:26:33 +08:00
'@types/estree@1.0.8' :
resolution : {integrity : sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==}
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
'@types/file-saver@2.0.7' :
resolution : {integrity : sha512-dNKVfHd/jk0SkR/exKGj2ggkB45MAkzvWCaqLUUgkyjITkGNzH8H+yUwr+BLJUBjZOe9w8X3wgmXhZDRg1ED6A==}
2025-04-17 20:36:11 +08:00
'@types/hast@2.3.10' :
2025-04-17 12:02:23 +08:00
resolution : {integrity : sha512-McWspRw8xx8J9HurkVBfYj0xKoE25tOFlHGdx4MJ5xORQrMGZNqJhVQWaIbm6Oyla5kYOXtDiopzKRJzEOkwJw==}
2025-04-17 20:36:11 +08:00
'@types/hast@3.0.4' :
2025-04-17 12:02:23 +08:00
resolution : {integrity : sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==}
2025-10-25 20:46:43 +08:00
'@types/istanbul-lib-coverage@2.0.6' :
resolution : {integrity : sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==}
'@types/istanbul-lib-report@3.0.3' :
resolution : {integrity : sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==}
'@types/istanbul-reports@3.0.4' :
resolution : {integrity : sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==}
'@types/jest@30.0.0' :
resolution : {integrity : sha512-XTYugzhuwqWjws0CVz8QpM36+T+Dz5mTEBKhNs/esGLnCIlGdRy+Dq78NRjd7ls7r8BC8ZRMOrKlkO1hU0JOwA==}
2025-07-12 15:18:28 +08:00
'@types/js-cookie@3.0.6' :
resolution : {integrity : sha512-wkw9yd1kEXOPnvEeEV1Go1MmxtBJL0RR79aOTAApecWFVu7w0NNXNqhcWgvw2YgZDYadliXkl14pa3WXw5jlCQ==}
2025-10-25 20:46:43 +08:00
'@types/jsdom@21.1.7' :
resolution : {integrity : sha512-yOriVnggzrnQ3a9OKOCxaVuSug3w3/SbOj5i7VwXWZEyUNl3bLF9V3MfxGbZKuwqJOQyRfqXyROBB1CoZLFWzA==}
2025-04-17 20:36:11 +08:00
'@types/json-schema@7.0.15' :
2025-04-17 12:02:23 +08:00
resolution : {integrity : sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
2025-04-17 20:36:11 +08:00
'@types/json5@0.0.29' :
2025-04-17 12:02:23 +08:00
resolution : {integrity : sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==}
2025-04-17 20:36:11 +08:00
'@types/katex@0.16.7' :
2025-04-17 12:02:23 +08:00
resolution : {integrity : sha512-HMwFiRujE5PjrgwHQ25+bsLJgowjGjm5Z8FVSf0N6PwgJrwxH0QxzHYDcKsTfV3wva0vzrpqMTJS2jXPr5BMEQ==}
2025-04-26 00:20:49 +08:00
'@types/linkify-it@3.0.5' :
resolution : {integrity : sha512-yg6E+u0/+Zjva+buc3EIb+29XEg4wltq7cSmd4Uc2EE/1nUVmxyzpX6gUXD0V8jIrG0r7YeOGVIbYRkxeooCtw==}
'@types/linkify-it@5.0.0' :
resolution : {integrity : sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==}
'@types/markdown-it@13.0.9' :
resolution : {integrity : sha512-1XPwR0+MgXLWfTn9gCsZ55AHOKW1WN+P9vr0PaQh5aerR9LLQXUbjfEAFhjmEmyoYFWAyuN2Mqkn40MZ4ukjBw==}
'@types/markdown-it@14.1.2' :
resolution : {integrity : sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==}
2025-04-17 20:36:11 +08:00
'@types/mdast@4.0.4' :
2025-04-17 12:02:23 +08:00
resolution : {integrity : sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==}
2025-04-26 00:20:49 +08:00
'@types/mdurl@1.0.5' :
resolution : {integrity : sha512-6L6VymKTzYSrEf4Nev4Xa1LCHKrlTlYCBMTlQKFuddo1CvQcE52I0mwfOJayueUC7MJuXOeHTcIU683lzd0cUA==}
'@types/mdurl@2.0.0' :
resolution : {integrity : sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==}
2025-04-17 20:36:11 +08:00
'@types/ms@2.1.0' :
2025-04-17 12:02:23 +08:00
resolution : {integrity : sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==}
2025-04-17 20:36:11 +08:00
'@types/node@20.17.30' :
2025-04-17 12:02:23 +08:00
resolution : {integrity : sha512-7zf4YyHA+jvBNfVrk2Gtvs6x7E8V+YDW05bNfG2XkWDJfYRXrTiP/DsB2zSYTaHX0bGIujTBQdMVAhb+j7mwpg==}
2025-09-04 22:26:33 +08:00
'@types/node@20.19.13' :
resolution : {integrity : sha512-yCAeZl7a0DxgNVteXFHt9+uyFbqXGy/ShC4BlcHkoE0AfGXYv/BUiplV72DjMYXHDBXFjhvr6DD1NiRVfB4j8g==}
2026-02-09 15:43:04 +08:00
'@types/node@20.19.33' :
resolution : {integrity : sha512-Rs1bVAIdBs5gbTIKza/tgpMuG1k3U/UMJLWecIMxNdJFDMzcM5LOiLVRYh3PilWEYDIeUDv7bpiHPLPsbydGcw==}
2025-12-05 14:30:00 +08:00
2025-04-26 00:20:49 +08:00
'@types/node@22.15.2' :
resolution : {integrity : sha512-uKXqKN9beGoMdBfcaTY1ecwz6ctxuJAcUlwE55938g0ZJ8lRxwAZqRz2AJ4pzpt5dHdTPMB863UZ0ESiFUcP7A==}
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
'@types/node@24.10.3' :
resolution : {integrity : sha512-gqkrWUsS8hcm0r44yn7/xZeV1ERva/nLgrLxFRUGb7aoNMIJfZJ3AC261zDQuOAKC7MiXai1WCpYc48jAHoShQ==}
'@types/pako@2.0.4' :
resolution : {integrity : sha512-VWDCbrLeVXJM9fihYodcLiIv0ku+AlOa/TQ1SvYOaBuyrSKgEcro95LJyIsJ4vSo6BXIxOKxiJAat04CmST9Fw==}
'@types/raf@3.4.3' :
resolution : {integrity : sha512-c4YAvMedbPZ5tEyxzQdMoOhhJ4RD3rngZIdwC2/qDN3d7JpEhB6fiBRKVY1lg5B7Wk+uPBjn5f39j1/2MY1oOw==}
2025-04-17 20:36:11 +08:00
'@types/react-dom@19.1.1' :
2025-04-17 14:26:41 +08:00
resolution : {integrity : sha512-jFf/woGTVTjUJsl2O7hcopJ1r0upqoq/vIOoCj0yLh3RIXxWcljlpuZ+vEBRXsymD1jhfeJrlyTy/S1UW+4y1w==}
2025-04-17 12:02:23 +08:00
peerDependencies :
'@types/react' : ^19.0.0
2025-04-17 20:36:11 +08:00
'@types/react-syntax-highlighter@15.5.13' :
2025-04-17 12:02:23 +08:00
resolution : {integrity : sha512-uLGJ87j6Sz8UaBAooU0T6lWJ0dBmjZgN1PZTrj05TNql2/XpC6+4HhMT5syIdFUUt+FASfCeLLv4kBygNU+8qA==}
2025-04-17 20:36:11 +08:00
'@types/react@19.1.2' :
2025-04-17 14:26:41 +08:00
resolution : {integrity : sha512-oxLPMytKchWGbnQM9O7D67uPa9paTNxO7jVoNMXgkkErULBPhPARCfkKL9ytcIJJRGjbsVwW4ugJzyFFvm/Tiw==}
2025-04-17 12:02:23 +08:00
2025-10-25 20:46:43 +08:00
'@types/stack-utils@2.0.3' :
resolution : {integrity : sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==}
'@types/tough-cookie@4.0.5' :
resolution : {integrity : sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==}
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
'@types/trusted-types@2.0.7' :
resolution : {integrity : sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==}
2025-04-17 20:36:11 +08:00
'@types/unist@2.0.11' :
2025-04-17 12:02:23 +08:00
resolution : {integrity : sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==}
2025-04-17 20:36:11 +08:00
'@types/unist@3.0.3' :
2025-04-17 12:02:23 +08:00
resolution : {integrity : sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==}
2025-04-26 00:20:49 +08:00
'@types/use-sync-external-store@0.0.6' :
resolution : {integrity : sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg==}
2025-10-25 20:46:43 +08:00
'@types/yargs-parser@21.0.3' :
resolution : {integrity : sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==}
'@types/yargs@17.0.34' :
resolution : {integrity : sha512-KExbHVa92aJpw9WDQvzBaGVE2/Pz+pLZQloT2hjL8IqsZnV62rlPOYvNnLmf/L2dyllfVUOVBj64M0z/46eR2A==}
2025-04-17 20:36:11 +08:00
'@typescript-eslint/eslint-plugin@8.30.1' :
2025-04-17 14:26:41 +08:00
resolution : {integrity : sha512-v+VWphxMjn+1t48/jO4t950D6KR8JaJuNXzi33Ve6P8sEmPr5k6CEXjdGwT6+LodVnEa91EQCtwjWNUCPweo+Q==}
2025-04-17 12:02:23 +08:00
engines : {node : ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies :
'@typescript-eslint/parser' : ^8.0.0 || ^8.0.0-alpha.0
eslint : ^8.57.0 || ^9.0.0
typescript : '>=4.8.4 <5.9.0'
2025-04-17 20:36:11 +08:00
'@typescript-eslint/parser@8.30.1' :
2025-04-17 14:26:41 +08:00
resolution : {integrity : sha512-H+vqmWwT5xoNrXqWs/fesmssOW70gxFlgcMlYcBaWNPIEWDgLa4W9nkSPmhuOgLnXq9QYgkZ31fhDyLhleCsAg==}
2025-04-17 12:02:23 +08:00
engines : {node : ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies :
eslint : ^8.57.0 || ^9.0.0
typescript : '>=4.8.4 <5.9.0'
2025-04-17 20:36:11 +08:00
'@typescript-eslint/scope-manager@8.30.1' :
2025-04-17 14:26:41 +08:00
resolution : {integrity : sha512-+C0B6ChFXZkuaNDl73FJxRYT0G7ufVPOSQkqkpM/U198wUwUFOtgo1k/QzFh1KjpBitaK7R1tgjVz6o9HmsRPg==}
engines : {node : ^18.18.0 || ^20.9.0 || >=21.1.0}
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
'@typescript-eslint/type-utils@8.30.1' :
2025-04-17 14:26:41 +08:00
resolution : {integrity : sha512-64uBF76bfQiJyHgZISC7vcNz3adqQKIccVoKubyQcOnNcdJBvYOILV1v22Qhsw3tw3VQu5ll8ND6hycgAR5fEA==}
engines : {node : ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies :
eslint : ^8.57.0 || ^9.0.0
typescript : '>=4.8.4 <5.9.0'
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
'@typescript-eslint/types@8.30.1' :
2025-04-17 14:26:41 +08:00
resolution : {integrity : sha512-81KawPfkuulyWo5QdyG/LOKbspyyiW+p4vpn4bYO7DM/hZImlVnFwrpCTnmNMOt8CvLRr5ojI9nU1Ekpw4RcEw==}
engines : {node : ^18.18.0 || ^20.9.0 || >=21.1.0}
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
'@typescript-eslint/typescript-estree@8.30.1' :
2025-04-17 14:26:41 +08:00
resolution : {integrity : sha512-kQQnxymiUy9tTb1F2uep9W6aBiYODgq5EMSk6Nxh4Z+BDUoYUSa029ISs5zTzKBFnexQEh71KqwjKnRz58lusQ==}
engines : {node : ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies :
typescript : '>=4.8.4 <5.9.0'
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
'@typescript-eslint/utils@8.30.1' :
2025-04-17 14:26:41 +08:00
resolution : {integrity : sha512-T/8q4R9En2tcEsWPQgB5BQ0XJVOtfARcUvOa8yJP3fh9M/mXraLxZrkCfGb6ChrO/V3W+Xbd04RacUEqk1CFEQ==}
engines : {node : ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies :
eslint : ^8.57.0 || ^9.0.0
typescript : '>=4.8.4 <5.9.0'
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
'@typescript-eslint/visitor-keys@8.30.1' :
2025-04-17 14:26:41 +08:00
resolution : {integrity : sha512-aEhgas7aJ6vZnNFC7K4/vMGDGyOiqWcYZPpIWrTKuTAlsvDNKy2GFDqh9smL+iq069ZvR0YzEeq0B8NJlLzjFA==}
engines : {node : ^18.18.0 || ^20.9.0 || >=21.1.0}
2025-04-17 20:36:11 +08:00
'@ungap/structured-clone@1.3.0' :
2025-04-17 14:26:41 +08:00
resolution : {integrity : sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==}
2025-04-17 12:02:23 +08:00
2025-10-25 20:46:43 +08:00
'@unrs/resolver-binding-android-arm-eabi@1.11.1' :
resolution : {integrity : sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw==}
cpu : [ arm]
os : [ android]
'@unrs/resolver-binding-android-arm64@1.11.1' :
resolution : {integrity : sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g==}
cpu : [ arm64]
os : [ android]
'@unrs/resolver-binding-darwin-arm64@1.11.1' :
resolution : {integrity : sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g==}
cpu : [ arm64]
os : [ darwin]
2025-04-17 20:36:11 +08:00
'@unrs/resolver-binding-darwin-arm64@1.5.0' :
2025-04-17 14:26:41 +08:00
resolution : {integrity : sha512-YmocNlEcX/AgJv8gI41bhjMOTcKcea4D2nRIbZj+MhRtSH5+vEU8r/pFuTuoF+JjVplLsBueU+CILfBPVISyGQ==}
cpu : [ arm64]
os : [ darwin]
2025-04-17 12:02:23 +08:00
2025-10-25 20:46:43 +08:00
'@unrs/resolver-binding-darwin-x64@1.11.1' :
resolution : {integrity : sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ==}
cpu : [ x64]
os : [ darwin]
2025-04-17 20:36:11 +08:00
'@unrs/resolver-binding-darwin-x64@1.5.0' :
2025-04-17 14:26:41 +08:00
resolution : {integrity : sha512-qpUrXgH4e/0xu1LOhPEdfgSY3vIXOxDQv370NEL8npN8h40HcQDA+Pl2r4HBW6tTXezWIjxUFcP7tj529RZtDw==}
cpu : [ x64]
os : [ darwin]
2025-04-17 12:02:23 +08:00
2025-10-25 20:46:43 +08:00
'@unrs/resolver-binding-freebsd-x64@1.11.1' :
resolution : {integrity : sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw==}
cpu : [ x64]
os : [ freebsd]
2025-04-17 20:36:11 +08:00
'@unrs/resolver-binding-freebsd-x64@1.5.0' :
2025-04-17 14:26:41 +08:00
resolution : {integrity : sha512-3tX8r8vgjvZzaJZB4jvxUaaFCDCb3aWDCpZN3EjhGnnwhztslI05KSG5NY/jNjlcZ5QWZ7dEZZ/rNBFsmTaSPw==}
cpu : [ x64]
os : [ freebsd]
2025-04-17 12:02:23 +08:00
2025-10-25 20:46:43 +08:00
'@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1' :
resolution : {integrity : sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw==}
cpu : [ arm]
os : [ linux]
2025-04-17 20:36:11 +08:00
'@unrs/resolver-binding-linux-arm-gnueabihf@1.5.0' :
2025-04-17 14:26:41 +08:00
resolution : {integrity : sha512-FH+ixzBKaUU9fWOj3TYO+Yn/eO6kYvMLV9eNJlJlkU7OgrxkCmiMS6wUbyT0KA3FOZGxnEQ2z3/BHgYm2jqeLA==}
cpu : [ arm]
os : [ linux]
2025-04-17 12:02:23 +08:00
2025-10-25 20:46:43 +08:00
'@unrs/resolver-binding-linux-arm-musleabihf@1.11.1' :
resolution : {integrity : sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw==}
cpu : [ arm]
os : [ linux]
2025-04-17 20:36:11 +08:00
'@unrs/resolver-binding-linux-arm-musleabihf@1.5.0' :
2025-04-17 14:26:41 +08:00
resolution : {integrity : sha512-pxCgXMgwB/4PfqFQg73lMhmWwcC0j5L+dNXhZoz/0ek0iS/oAWl65fxZeT/OnU7fVs52MgdP2q02EipqJJXHSg==}
cpu : [ arm]
os : [ linux]
2025-04-17 12:02:23 +08:00
2025-10-25 20:46:43 +08:00
'@unrs/resolver-binding-linux-arm64-gnu@1.11.1' :
resolution : {integrity : sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==}
cpu : [ arm64]
os : [ linux]
2025-04-17 20:36:11 +08:00
'@unrs/resolver-binding-linux-arm64-gnu@1.5.0' :
2025-04-17 14:26:41 +08:00
resolution : {integrity : sha512-FX2FV7vpLE/+Z0NZX9/1pwWud5Wocm/2PgpUXbT5aSV3QEB10kBPJAzssOQylvdj8mOHoKl5pVkXpbCwww/T2g==}
cpu : [ arm64]
os : [ linux]
2025-04-17 12:02:23 +08:00
2025-10-25 20:46:43 +08:00
'@unrs/resolver-binding-linux-arm64-musl@1.11.1' :
resolution : {integrity : sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==}
cpu : [ arm64]
os : [ linux]
2025-04-17 20:36:11 +08:00
'@unrs/resolver-binding-linux-arm64-musl@1.5.0' :
2025-04-17 14:26:41 +08:00
resolution : {integrity : sha512-+gF97xst1BZb28T3nwwzEtq2ewCoMDGKsenYsZuvpmNrW0019G1iUAunZN+FG55L21y+uP7zsGX06OXDQ/viKw==}
cpu : [ arm64]
os : [ linux]
2025-04-17 12:02:23 +08:00
2025-10-25 20:46:43 +08:00
'@unrs/resolver-binding-linux-ppc64-gnu@1.11.1' :
resolution : {integrity : sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==}
cpu : [ ppc64]
os : [ linux]
2025-04-17 20:36:11 +08:00
'@unrs/resolver-binding-linux-ppc64-gnu@1.5.0' :
2025-04-17 14:26:41 +08:00
resolution : {integrity : sha512-5bEmVcQw9js8JYM2LkUBw5SeELSIxX+qKf9bFrfFINKAp4noZ//hUxLpbF7u/3gTBN1GsER6xOzIZlw/VTdXtA==}
cpu : [ ppc64]
os : [ linux]
2025-04-17 20:36:11 +08:00
2025-10-25 20:46:43 +08:00
'@unrs/resolver-binding-linux-riscv64-gnu@1.11.1' :
resolution : {integrity : sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==}
cpu : [ riscv64]
os : [ linux]
2025-04-17 20:36:11 +08:00
'@unrs/resolver-binding-linux-riscv64-gnu@1.5.0' :
resolution : {integrity : sha512-GGk/8TPUsf1Q99F+lzMdjE6sGL26uJCwQ9TlvBs8zR3cLQNw/MIumPN7zrs3GFGySjnwXc8gA6J3HKbejywmqA==}
cpu : [ riscv64]
os : [ linux]
2025-10-25 20:46:43 +08:00
'@unrs/resolver-binding-linux-riscv64-musl@1.11.1' :
resolution : {integrity : sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==}
cpu : [ riscv64]
os : [ linux]
'@unrs/resolver-binding-linux-s390x-gnu@1.11.1' :
resolution : {integrity : sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==}
cpu : [ s390x]
os : [ linux]
2025-04-17 20:36:11 +08:00
'@unrs/resolver-binding-linux-s390x-gnu@1.5.0' :
resolution : {integrity : sha512-5uRkFYYVNAeVaA4W/CwugjFN3iDOHCPqsBLCCOoJiMfFMMz4evBRsg+498OFa9w6VcTn2bD5aI+RRayaIgk2Sw==}
cpu : [ s390x]
os : [ linux]
2025-10-25 20:46:43 +08:00
'@unrs/resolver-binding-linux-x64-gnu@1.11.1' :
resolution : {integrity : sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==}
cpu : [ x64]
os : [ linux]
2025-04-17 20:36:11 +08:00
'@unrs/resolver-binding-linux-x64-gnu@1.5.0' :
resolution : {integrity : sha512-j905CZH3nehYy6NimNqC2B14pxn4Ltd7guKMyPTzKehbFXTUgihQS/ZfHQTdojkMzbSwBOSgq1dOrY+IpgxDsA==}
cpu : [ x64]
os : [ linux]
2025-10-25 20:46:43 +08:00
'@unrs/resolver-binding-linux-x64-musl@1.11.1' :
resolution : {integrity : sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==}
cpu : [ x64]
os : [ linux]
2025-04-17 20:36:11 +08:00
'@unrs/resolver-binding-linux-x64-musl@1.5.0' :
resolution : {integrity : sha512-dmLevQTuzQRwu5A+mvj54R5aye5I4PVKiWqGxg8tTaYP2k2oTs/3Mo8mgnhPk28VoYCi0fdFYpgzCd4AJndQvQ==}
cpu : [ x64]
os : [ linux]
2025-10-25 20:46:43 +08:00
'@unrs/resolver-binding-wasm32-wasi@1.11.1' :
resolution : {integrity : sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==}
engines : {node : '>=14.0.0' }
cpu : [ wasm32]
2025-04-17 20:36:11 +08:00
'@unrs/resolver-binding-wasm32-wasi@1.5.0' :
resolution : {integrity : sha512-LtJMhwu7avhoi+kKfAZOKN773RtzLBVVF90YJbB0wyMpUj9yQPeA+mteVUI9P70OG/opH47FeV5AWeaNWWgqJg==}
engines : {node : '>=14.0.0' }
cpu : [ wasm32]
2025-10-25 20:46:43 +08:00
'@unrs/resolver-binding-win32-arm64-msvc@1.11.1' :
resolution : {integrity : sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw==}
cpu : [ arm64]
os : [ win32]
2025-04-17 20:36:11 +08:00
'@unrs/resolver-binding-win32-arm64-msvc@1.5.0' :
resolution : {integrity : sha512-FTZBxLL4SO1mgIM86KykzJmPeTPisBDHQV6xtfDXbTMrentuZ6SdQKJUV5BWaoUK3p8kIULlrCcucqdCnk8Npg==}
cpu : [ arm64]
os : [ win32]
2025-10-25 20:46:43 +08:00
'@unrs/resolver-binding-win32-ia32-msvc@1.11.1' :
resolution : {integrity : sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ==}
cpu : [ ia32]
os : [ win32]
2025-04-17 20:36:11 +08:00
'@unrs/resolver-binding-win32-ia32-msvc@1.5.0' :
resolution : {integrity : sha512-i5bB7vJ1waUsFciU/FKLd4Zw0VnAkvhiJ4//jYQXyDUuiLKodmtQZVTcOPU7pp97RrNgCFtXfC1gnvj/DHPJTw==}
cpu : [ ia32]
os : [ win32]
2025-10-25 20:46:43 +08:00
'@unrs/resolver-binding-win32-x64-msvc@1.11.1' :
resolution : {integrity : sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g==}
cpu : [ x64]
os : [ win32]
2025-04-17 20:36:11 +08:00
'@unrs/resolver-binding-win32-x64-msvc@1.5.0' :
resolution : {integrity : sha512-wAvXp4k7jhioi4SebXW/yfzzYwsUCr9kIX4gCsUFKpCTUf8Mi7vScJXI3S+kupSUf0LbVHudR8qBbe2wFMSNUw==}
cpu : [ x64]
os : [ win32]
2025-04-22 13:52:56 +08:00
'@webassemblyjs/ast@1.14.1' :
resolution : {integrity : sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==}
'@webassemblyjs/floating-point-hex-parser@1.13.2' :
resolution : {integrity : sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==}
'@webassemblyjs/helper-api-error@1.13.2' :
resolution : {integrity : sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==}
'@webassemblyjs/helper-buffer@1.14.1' :
resolution : {integrity : sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==}
'@webassemblyjs/helper-numbers@1.13.2' :
resolution : {integrity : sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==}
'@webassemblyjs/helper-wasm-bytecode@1.13.2' :
resolution : {integrity : sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==}
'@webassemblyjs/helper-wasm-section@1.14.1' :
resolution : {integrity : sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==}
'@webassemblyjs/ieee754@1.13.2' :
resolution : {integrity : sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==}
'@webassemblyjs/leb128@1.13.2' :
resolution : {integrity : sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==}
'@webassemblyjs/utf8@1.13.2' :
resolution : {integrity : sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==}
'@webassemblyjs/wasm-edit@1.14.1' :
resolution : {integrity : sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==}
'@webassemblyjs/wasm-gen@1.14.1' :
resolution : {integrity : sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==}
'@webassemblyjs/wasm-opt@1.14.1' :
resolution : {integrity : sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==}
'@webassemblyjs/wasm-parser@1.14.1' :
resolution : {integrity : sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==}
'@webassemblyjs/wast-printer@1.14.1' :
resolution : {integrity : sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==}
'@xtuc/ieee754@1.2.0' :
resolution : {integrity : sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==}
'@xtuc/long@4.2.2' :
resolution : {integrity : sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==}
2025-04-29 14:12:36 +08:00
'@xyflow/react@12.6.0' :
resolution : {integrity : sha512-YzsSK4SlpC6e9Ki1g6O9B1UH7xvz/bzWF+tJ+vWDD8Am5xJmFn0jYnCEuqvzvH8dRKb1NFBmyuqEGqWN39xXsA==}
peerDependencies :
react : '>=17'
react-dom : '>=17'
'@xyflow/system@0.0.57' :
resolution : {integrity : sha512-1YpBo0WgmZLR5wQw9Jvk3Tu0gISi/oYc4uSimrDuAsA/G2rGleulLrKkM59uuT/QU5m6DYC2VdBDAzjSNMGuBA==}
2025-04-17 20:36:11 +08:00
acorn-jsx@5.3.2 :
resolution : {integrity : sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
peerDependencies :
acorn : ^6.0.0 || ^7.0.0 || ^8.0.0
acorn@8.14.1 :
resolution : {integrity : sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==}
engines : {node : '>=0.4.0' }
hasBin : true
2025-09-04 22:26:33 +08:00
acorn@8.15.0 :
resolution : {integrity : sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==}
engines : {node : '>=0.4.0' }
hasBin : true
2025-10-25 20:46:43 +08:00
agent-base@7.1.4 :
resolution : {integrity : sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==}
engines : {node : '>= 14' }
2025-04-22 13:52:56 +08:00
ajv-formats@2.1.1 :
resolution : {integrity : sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==}
peerDependencies :
ajv : ^8.0.0
peerDependenciesMeta :
ajv :
optional : true
ajv-keywords@3.5.2 :
resolution : {integrity : sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==}
peerDependencies :
ajv : ^6.9.1
ajv-keywords@5.1.0 :
resolution : {integrity : sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==}
peerDependencies :
ajv : ^8.8.2
2025-04-17 20:36:11 +08:00
ajv@6.12.6 :
resolution : {integrity : sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
2025-04-22 13:52:56 +08:00
ajv@8.17.1 :
resolution : {integrity : sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==}
2025-10-25 20:46:43 +08:00
ansi-escapes@4.3.2 :
resolution : {integrity : sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==}
engines : {node : '>=8' }
ansi-regex@5.0.1 :
resolution : {integrity : sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
engines : {node : '>=8' }
ansi-regex@6.2.2 :
resolution : {integrity : sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==}
engines : {node : '>=12' }
2025-04-17 20:36:11 +08:00
ansi-styles@4.3.0 :
resolution : {integrity : sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
engines : {node : '>=8' }
2025-10-25 20:46:43 +08:00
ansi-styles@5.2.0 :
resolution : {integrity : sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==}
engines : {node : '>=10' }
ansi-styles@6.2.3 :
resolution : {integrity : sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==}
engines : {node : '>=12' }
anymatch@3.1.3 :
resolution : {integrity : sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
engines : {node : '>= 8' }
argparse@1.0.10 :
resolution : {integrity : sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==}
2025-04-17 20:36:11 +08:00
argparse@2.0.1 :
resolution : {integrity : sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
2025-04-20 11:18:05 +08:00
aria-hidden@1.2.4 :
resolution : {integrity : sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==}
engines : {node : '>=10' }
2025-10-25 20:46:43 +08:00
aria-query@5.3.0 :
resolution : {integrity : sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==}
2025-04-17 20:36:11 +08:00
aria-query@5.3.2 :
resolution : {integrity : sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==}
engines : {node : '>= 0.4' }
array-buffer-byte-length@1.0.2 :
resolution : {integrity : sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==}
engines : {node : '>= 0.4' }
array-includes@3.1.8 :
resolution : {integrity : sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==}
engines : {node : '>= 0.4' }
array.prototype.findlast@1.2.5 :
resolution : {integrity : sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==}
engines : {node : '>= 0.4' }
array.prototype.findlastindex@1.2.6 :
resolution : {integrity : sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==}
engines : {node : '>= 0.4' }
array.prototype.flat@1.3.3 :
resolution : {integrity : sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==}
engines : {node : '>= 0.4' }
array.prototype.flatmap@1.3.3 :
resolution : {integrity : sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==}
engines : {node : '>= 0.4' }
array.prototype.tosorted@1.1.4 :
resolution : {integrity : sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==}
engines : {node : '>= 0.4' }
arraybuffer.prototype.slice@1.0.4 :
resolution : {integrity : sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==}
engines : {node : '>= 0.4' }
ast-types-flow@0.0.8 :
resolution : {integrity : sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==}
async-function@1.0.0 :
resolution : {integrity : sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==}
engines : {node : '>= 0.4' }
available-typed-arrays@1.0.7 :
resolution : {integrity : sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==}
engines : {node : '>= 0.4' }
axe-core@4.10.3 :
resolution : {integrity : sha512-Xm7bpRXnDSX2YE2YFfBk2FnF0ep6tmG7xPh8iHee8MIcrgq762Nkce856dYtJYLkuIoYZvGfTs/PbZhideTcEg==}
engines : {node : '>=4' }
axobject-query@4.1.0 :
resolution : {integrity : sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==}
engines : {node : '>= 0.4' }
2025-10-25 20:46:43 +08:00
babel-jest@30.2.0 :
resolution : {integrity : sha512-0YiBEOxWqKkSQWL9nNGGEgndoeL0ZpWrbLMNL5u/Kaxrli3Eaxlt3ZtIDktEvXt4L/R9r3ODr2zKwGM/2BjxVw==}
engines : {node : ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
peerDependencies :
'@babel/core' : ^7.11.0 || ^8.0.0-0
babel-plugin-istanbul@7.0.1 :
resolution : {integrity : sha512-D8Z6Qm8jCvVXtIRkBnqNHX0zJ37rQcFJ9u8WOS6tkYOsRdHBzypCstaxWiu5ZIlqQtviRYbgnRLSoCEvjqcqbA==}
engines : {node : '>=12' }
babel-plugin-jest-hoist@30.2.0 :
resolution : {integrity : sha512-ftzhzSGMUnOzcCXd6WHdBGMyuwy15Wnn0iyyWGKgBDLxf9/s5ABuraCSpBX2uG0jUg4rqJnxsLc5+oYBqoxVaA==}
engines : {node : ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
babel-preset-current-node-syntax@1.2.0 :
resolution : {integrity : sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg==}
peerDependencies :
'@babel/core' : ^7.0.0 || ^8.0.0-0
babel-preset-jest@30.2.0 :
resolution : {integrity : sha512-US4Z3NOieAQumwFnYdUWKvUKh8+YSnS/gB3t6YBiz0bskpu7Pine8pPCheNxlPEW4wnUkma2a94YuW2q3guvCQ==}
engines : {node : ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
peerDependencies :
'@babel/core' : ^7.11.0 || ^8.0.0-beta.1
2025-04-17 20:36:11 +08:00
bail@2.0.2 :
resolution : {integrity : sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==}
balanced-match@1.0.2 :
resolution : {integrity : sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
base64-arraybuffer@1.0.2 :
resolution : {integrity : sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==}
engines : {node : '>= 0.6.0' }
2026-02-06 10:29:43 +08:00
baseline-browser-mapping@2.9.19 :
resolution : {integrity : sha512-ipDqC8FrAl/76p2SSWKSI+H9tFwm7vYqXQrItCuiVPt26Km0jS+NzSsBWAaBusvSbQcfJG+JitdMm+wZAgTYqg==}
2025-12-05 14:30:00 +08:00
hasBin : true
2025-04-17 20:36:11 +08:00
best-effort-json-parser@1.1.3 :
resolution : {integrity : sha512-O3LfmiLJ5UQOGqrrl6ynCdfDgK50cd0nxy0JacFZ7ARhfhjdksTfScHAJ0580RNgNejLjRvu/7Yj9znY0sqeFA==}
2025-04-22 13:52:56 +08:00
big.js@5.2.2 :
resolution : {integrity : sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==}
2025-04-17 20:36:11 +08:00
brace-expansion@1.1.11 :
resolution : {integrity : sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
brace-expansion@2.0.1 :
resolution : {integrity : sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
braces@3.0.3 :
resolution : {integrity : sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
engines : {node : '>=8' }
2025-09-04 22:26:33 +08:00
browserslist@4.25.4 :
resolution : {integrity : sha512-4jYpcjabC606xJ3kw2QwGEZKX0Aw7sgQdZCvIK9dhVSPh76BKo+C+btT1RRofH7B+8iNpEbgGNVWiLki5q93yg==}
2025-04-22 13:52:56 +08:00
engines : {node : ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
hasBin : true
2025-12-05 14:30:00 +08:00
browserslist@4.28.1 :
resolution : {integrity : sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==}
engines : {node : ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
hasBin : true
2025-10-25 20:46:43 +08:00
bs-logger@0.2.6 :
resolution : {integrity : sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==}
engines : {node : '>= 6' }
bser@2.1.1 :
resolution : {integrity : sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==}
2025-04-22 13:52:56 +08:00
buffer-from@1.1.2 :
resolution : {integrity : sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
2025-04-17 20:36:11 +08:00
call-bind-apply-helpers@1.0.2 :
resolution : {integrity : sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==}
engines : {node : '>= 0.4' }
call-bind@1.0.8 :
resolution : {integrity : sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==}
engines : {node : '>= 0.4' }
call-bound@1.0.4 :
resolution : {integrity : sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==}
engines : {node : '>= 0.4' }
callsites@3.1.0 :
resolution : {integrity : sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
engines : {node : '>=6' }
2025-10-25 20:46:43 +08:00
camelcase@5.3.1 :
resolution : {integrity : sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==}
engines : {node : '>=6' }
camelcase@6.3.0 :
resolution : {integrity : sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==}
engines : {node : '>=10' }
2026-02-09 15:43:04 +08:00
caniuse-lite@1.0.30001769 :
resolution : {integrity : sha512-BCfFL1sHijQlBGWBMuJyhZUhzo7wer5sVj9hqekB/7xn0Ypy+pER/edCYQm4exbXj4WiySGp40P8UuTh6w1srg==}
2026-01-06 09:07:18 +08:00
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
canvg@3.0.11 :
resolution : {integrity : sha512-5ON+q7jCTgMp9cjpu4Jo6XbvfYwSB2Ow3kzHKfIyJfaCAOHLbdKPQqGKgfED/R5B+3TFFfe8pegYA+b423SRyA==}
engines : {node : '>=10.0.0' }
2025-04-17 20:36:11 +08:00
ccount@2.0.1 :
resolution : {integrity : sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==}
chalk@4.1.2 :
resolution : {integrity : sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
engines : {node : '>=10' }
2025-10-25 20:46:43 +08:00
char-regex@1.0.2 :
resolution : {integrity : sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==}
engines : {node : '>=10' }
2025-04-17 20:36:11 +08:00
character-entities-html4@2.1.0 :
resolution : {integrity : sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==}
character-entities-legacy@1.1.4 :
resolution : {integrity : sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==}
character-entities-legacy@3.0.0 :
resolution : {integrity : sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==}
character-entities@1.2.4 :
resolution : {integrity : sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==}
character-entities@2.0.2 :
resolution : {integrity : sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==}
character-reference-invalid@1.1.4 :
resolution : {integrity : sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==}
character-reference-invalid@2.0.1 :
resolution : {integrity : sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==}
2025-04-22 13:52:56 +08:00
chrome-trace-event@1.0.4 :
resolution : {integrity : sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==}
engines : {node : '>=6.0' }
2025-10-25 20:46:43 +08:00
ci-info@4.3.1 :
resolution : {integrity : sha512-Wdy2Igu8OcBpI2pZePZ5oWjPC38tmDVx5WKUXKwlLYkA0ozo85sLsLvkBbBn/sZaSCMFOGZJ14fvW9t5/d7kdA==}
engines : {node : '>=8' }
cjs-module-lexer@2.1.0 :
resolution : {integrity : sha512-UX0OwmYRYQQetfrLEZeewIFFI+wSTofC+pMBLNuH3RUuu/xzG1oz84UCEDOSoQlN3fZ4+AzmV50ZYvGqkMh9yA==}
2025-04-17 20:36:11 +08:00
class-variance-authority@0.7.1 :
resolution : {integrity : sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==}
2025-04-29 14:12:36 +08:00
classcat@5.0.5 :
resolution : {integrity : sha512-JhZUT7JFcQy/EzW605k/ktHtncoo9vnyW/2GspNYwFlN1C/WmjuV/xtS04e9SOkL2sTdw0VAZ2UGCcQ9lR6p6w==}
2025-04-17 20:36:11 +08:00
classnames@2.5.1 :
resolution : {integrity : sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==}
client-only@0.0.1 :
resolution : {integrity : sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==}
2025-10-25 20:46:43 +08:00
cliui@8.0.1 :
resolution : {integrity : sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==}
engines : {node : '>=12' }
clsx@2.1.1 :
2025-04-17 20:36:11 +08:00
resolution : {integrity : sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==}
engines : {node : '>=6' }
2025-04-26 00:20:49 +08:00
cmdk@1.1.1 :
resolution : {integrity : sha512-Vsv7kFaXm+ptHDMZ7izaRsP70GgrW9NBNGswt9OZaVBLlE0SNpDq8eu/VGXyF9r7M0azK3Wy7OlYXsuyYLFzHg==}
peerDependencies :
react : ^18 || ^19 || ^19.0.0-rc
react-dom : ^18 || ^19 || ^19.0.0-rc
2025-10-25 20:46:43 +08:00
co@4.6.0 :
resolution : {integrity : sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==}
engines : {iojs: '>= 1.0.0', node : '>= 0.12.0' }
collect-v8-coverage@1.0.3 :
resolution : {integrity : sha512-1L5aqIkwPfiodaMgQunkF1zRhNqifHBmtbbbxcr6yVxxBnliw4TDOW6NxpO8DJLgJ16OT+Y4ztZqP6p/FtXnAw==}
2025-04-17 20:36:11 +08:00
color-convert@2.0.1 :
resolution : {integrity : sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
engines : {node : '>=7.0.0' }
color-name@1.1.4 :
resolution : {integrity : sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
comma-separated-tokens@1.0.8 :
resolution : {integrity : sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==}
comma-separated-tokens@2.0.3 :
resolution : {integrity : sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==}
2025-04-22 13:52:56 +08:00
commander@2.20.3 :
resolution : {integrity : sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
2025-04-17 20:36:11 +08:00
commander@8.3.0 :
resolution : {integrity : sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==}
engines : {node : '>= 12' }
concat-map@0.0.1 :
resolution : {integrity : sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
2025-10-25 20:46:43 +08:00
convert-source-map@2.0.0 :
resolution : {integrity : sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
2026-02-06 10:29:43 +08:00
core-js@3.48.0 :
resolution : {integrity : sha512-zpEHTy1fjTMZCKLHUZoVeylt9XrzaIN2rbPXEt0k+q7JE5CkCZdo6bNq55bn24a69CH7ErAVLKijxJja4fw+UQ==}
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
core-util-is@1.0.3 :
resolution : {integrity : sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
2025-04-26 00:20:49 +08:00
crelt@1.0.6 :
resolution : {integrity : sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==}
2025-04-17 20:36:11 +08:00
cross-spawn@7.0.6 :
resolution : {integrity : sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==}
engines : {node : '>= 8' }
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
css-line-break@2.1.0 :
resolution : {integrity : sha512-FHcKFCZcAha3LwfVBhCQbW2nCNbkZXn7KVUJcsT5/P8YmfsVja0FMPJr0B903j/E69HUphKiV9iQArX8SDYA4w==}
2025-04-26 00:20:49 +08:00
css-styled@1.0.8 :
resolution : {integrity : sha512-tCpP7kLRI8dI95rCh3Syl7I+v7PP+2JYOzWkl0bUEoSbJM+u8ITbutjlQVf0NC2/g4ULROJPi16sfwDIO8/84g==}
css-to-mat@1.1.1 :
resolution : {integrity : sha512-kvpxFYZb27jRd2vium35G7q5XZ2WJ9rWjDUMNT36M3Hc41qCrLXFM5iEKMGXcrPsKfXEN+8l/riB4QzwwwiEyQ==}
cssesc@3.0.0 :
resolution : {integrity : sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
engines : {node : '>=4' }
hasBin : true
2025-10-25 20:46:43 +08:00
cssstyle@4.6.0 :
resolution : {integrity : sha512-2z+rWdzbbSZv6/rhtvzvqeZQHrBaqgogqt85sqFNbabZOuFbCVFb8kPeEtZjiKkbrm395irpNKiYeFeLiQnFPg==}
engines : {node : '>=18' }
2025-04-17 20:36:11 +08:00
csstype@3.1.3 :
resolution : {integrity : sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
2025-04-29 14:12:36 +08:00
d3-color@3.1.0 :
resolution : {integrity : sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==}
engines : {node : '>=12' }
d3-dispatch@3.0.1 :
resolution : {integrity : sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==}
engines : {node : '>=12' }
d3-drag@3.0.0 :
resolution : {integrity : sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==}
engines : {node : '>=12' }
d3-ease@3.0.1 :
resolution : {integrity : sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==}
engines : {node : '>=12' }
d3-interpolate@3.0.1 :
resolution : {integrity : sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==}
engines : {node : '>=12' }
d3-selection@3.0.0 :
resolution : {integrity : sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==}
engines : {node : '>=12' }
d3-timer@3.0.1 :
resolution : {integrity : sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==}
engines : {node : '>=12' }
d3-transition@3.0.1 :
resolution : {integrity : sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==}
engines : {node : '>=12' }
peerDependencies :
d3-selection : 2 - 3
d3-zoom@3.0.0 :
resolution : {integrity : sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==}
engines : {node : '>=12' }
2025-04-17 20:36:11 +08:00
damerau-levenshtein@1.0.8 :
resolution : {integrity : sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==}
2025-10-25 20:46:43 +08:00
data-urls@5.0.0 :
resolution : {integrity : sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==}
engines : {node : '>=18' }
2025-04-17 20:36:11 +08:00
data-view-buffer@1.0.2 :
resolution : {integrity : sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==}
engines : {node : '>= 0.4' }
data-view-byte-length@1.0.2 :
resolution : {integrity : sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==}
engines : {node : '>= 0.4' }
data-view-byte-offset@1.0.1 :
resolution : {integrity : sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==}
engines : {node : '>= 0.4' }
debug@3.2.7 :
resolution : {integrity : sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
peerDependencies :
supports-color : '*'
peerDependenciesMeta :
supports-color :
optional : true
debug@4.4.0 :
resolution : {integrity : sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==}
engines : {node : '>=6.0' }
peerDependencies :
supports-color : '*'
peerDependenciesMeta :
supports-color :
optional : true
2025-07-12 15:18:28 +08:00
decimal.js@10.5.0 :
resolution : {integrity : sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw==}
2025-04-17 20:36:11 +08:00
decode-named-character-reference@1.1.0 :
resolution : {integrity : sha512-Wy+JTSbFThEOXQIR2L6mxJvEs+veIzpmqD7ynWxMXGpnk3smkHQOp6forLdHsKpAMW9iJpaBBIxz285t1n1C3w==}
2025-10-25 20:46:43 +08:00
dedent@1.7.0 :
resolution : {integrity : sha512-HGFtf8yhuhGhqO07SV79tRp+br4MnbdjeVxotpn1QBl30pcLLCQjX5b2295ll0fv8RKDKsmWYrl05usHM9CewQ==}
peerDependencies :
babel-plugin-macros : ^3.1.0
peerDependenciesMeta :
babel-plugin-macros :
optional : true
2025-04-17 20:36:11 +08:00
deep-is@0.1.4 :
resolution : {integrity : sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
2025-10-25 20:46:43 +08:00
deepmerge@4.3.1 :
resolution : {integrity : sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
engines : {node : '>=0.10.0' }
2025-04-17 20:36:11 +08:00
define-data-property@1.1.4 :
resolution : {integrity : sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==}
engines : {node : '>= 0.4' }
define-properties@1.2.1 :
resolution : {integrity : sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==}
engines : {node : '>= 0.4' }
dequal@2.0.3 :
resolution : {integrity : sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==}
engines : {node : '>=6' }
2025-12-05 14:30:00 +08:00
detect-libc@2.1.2 :
resolution : {integrity : sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==}
2025-04-17 20:36:11 +08:00
engines : {node : '>=8' }
2025-10-25 20:46:43 +08:00
detect-newline@3.1.0 :
resolution : {integrity : sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==}
engines : {node : '>=8' }
2025-04-20 11:18:05 +08:00
detect-node-es@1.1.0 :
resolution : {integrity : sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==}
2025-04-17 20:36:11 +08:00
devlop@1.1.0 :
resolution : {integrity : sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==}
doctrine@2.1.0 :
resolution : {integrity : sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==}
engines : {node : '>=0.10.0' }
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
docx@9.5.1 :
resolution : {integrity : sha512-ABDI7JEirFD2+bHhOBlsGZxaG1UgZb2M/QMKhLSDGgVNhxDesTCDcP+qoDnDGjZ4EOXTRfUjUgwHVuZ6VSTfWQ==}
engines : {node : '>=10' }
2025-10-25 20:46:43 +08:00
dom-accessibility-api@0.5.16 :
resolution : {integrity : sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==}
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
dompurify@3.3.1 :
resolution : {integrity : sha512-qkdCKzLNtrgPFP1Vo+98FRzJnBRGe4ffyCea9IwHB1fyxPOeNTHpLKYGd4Uk9xvNoH0ZoOjwZxNptyMwqrId1Q==}
2025-06-05 11:53:49 +08:00
dotenv-cli@8.0.0 :
resolution : {integrity : sha512-aLqYbK7xKOiTMIRf1lDPbI+Y+Ip/wo5k3eyp6ePysVaSqbyxjyK3dK35BTxG+rmd7djf5q2UPs4noPNH+cj0Qw==}
hasBin : true
dotenv-expand@10.0.0 :
resolution : {integrity : sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A==}
engines : {node : '>=12' }
dotenv@16.5.0 :
resolution : {integrity : sha512-m/C+AwOAr9/W1UOIZUo232ejMNnJAJtYQjUbHoNTBNTJSvqzzDh7vnrei3o3r3m9blf6ZoDkvcw0VmozNRFJxg==}
engines : {node : '>=12' }
2025-04-17 20:36:11 +08:00
dunder-proto@1.0.1 :
resolution : {integrity : sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==}
engines : {node : '>= 0.4' }
2025-10-25 20:46:43 +08:00
eastasianwidth@0.2.0 :
resolution : {integrity : sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
2025-09-04 22:26:33 +08:00
electron-to-chromium@1.5.214 :
resolution : {integrity : sha512-TpvUNdha+X3ybfU78NoQatKvQEm1oq3lf2QbnmCEdw+Bd9RuIAY+hJTvq1avzHM0f7EJfnH3vbCnbzKzisc/9Q==}
2025-04-22 13:52:56 +08:00
2026-02-06 10:29:43 +08:00
electron-to-chromium@1.5.286 :
resolution : {integrity : sha512-9tfDXhJ4RKFNerfjdCcZfufu49vg620741MNs26a9+bhLThdB+plgMeou98CAaHu/WATj2iHOOHTp1hWtABj2A==}
2025-12-05 14:30:00 +08:00
2025-10-25 20:46:43 +08:00
emittery@0.13.1 :
resolution : {integrity : sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==}
engines : {node : '>=12' }
emoji-regex@8.0.0 :
resolution : {integrity : sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
2025-04-17 20:36:11 +08:00
emoji-regex@9.2.2 :
resolution : {integrity : sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
2025-04-22 13:52:56 +08:00
emojis-list@3.0.0 :
resolution : {integrity : sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==}
engines : {node : '>= 4' }
2025-04-17 20:36:11 +08:00
enhanced-resolve@5.18.1 :
resolution : {integrity : sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==}
engines : {node : '>=10.13.0' }
2026-02-06 10:29:43 +08:00
enhanced-resolve@5.19.0 :
resolution : {integrity : sha512-phv3E1Xl4tQOShqSte26C7Fl84EwUdZsyOuSSk9qtAGyyQs2s3jJzComh+Abf4g187lUUAvH+H26omrqia2aGg==}
2025-09-04 22:26:33 +08:00
engines : {node : '>=10.13.0' }
2025-04-17 20:36:11 +08:00
entities@4.5.0 :
resolution : {integrity : sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
engines : {node : '>=0.12' }
2025-10-25 20:46:43 +08:00
error-ex@1.3.4 :
resolution : {integrity : sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==}
2025-04-17 20:36:11 +08:00
es-abstract@1.23.9 :
resolution : {integrity : sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==}
engines : {node : '>= 0.4' }
es-define-property@1.0.1 :
resolution : {integrity : sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==}
engines : {node : '>= 0.4' }
es-errors@1.3.0 :
resolution : {integrity : sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==}
engines : {node : '>= 0.4' }
es-iterator-helpers@1.2.1 :
resolution : {integrity : sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==}
engines : {node : '>= 0.4' }
2025-09-04 22:26:33 +08:00
es-module-lexer@1.7.0 :
resolution : {integrity : sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==}
2025-04-22 13:52:56 +08:00
2025-04-17 20:36:11 +08:00
es-object-atoms@1.1.1 :
resolution : {integrity : sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==}
engines : {node : '>= 0.4' }
es-set-tostringtag@2.1.0 :
resolution : {integrity : sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==}
engines : {node : '>= 0.4' }
es-shim-unscopables@1.1.0 :
resolution : {integrity : sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==}
engines : {node : '>= 0.4' }
es-to-primitive@1.3.0 :
resolution : {integrity : sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==}
engines : {node : '>= 0.4' }
2025-04-22 13:52:56 +08:00
escalade@3.2.0 :
resolution : {integrity : sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==}
engines : {node : '>=6' }
2025-10-25 20:46:43 +08:00
escape-string-regexp@2.0.0 :
resolution : {integrity : sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==}
engines : {node : '>=8' }
2025-04-17 20:36:11 +08:00
escape-string-regexp@4.0.0 :
resolution : {integrity : sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
engines : {node : '>=10' }
escape-string-regexp@5.0.0 :
resolution : {integrity : sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==}
engines : {node : '>=12' }
eslint-config-next@15.3.0 :
resolution : {integrity : sha512-+Z3M1W9MnJjX3W4vI9CHfKlEyhTWOUHvc5dB89FyRnzPsUkJlLWZOi8+1pInuVcSztSM4MwBFB0hIHf4Rbwu4g==}
peerDependencies :
eslint : ^7.23.0 || ^8.0.0 || ^9.0.0
typescript : '>=3.3.1'
peerDependenciesMeta :
typescript :
optional : true
eslint-import-resolver-node@0.3.9 :
resolution : {integrity : sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==}
eslint-import-resolver-typescript@3.10.0 :
resolution : {integrity : sha512-aV3/dVsT0/H9BtpNwbaqvl+0xGMRGzncLyhm793NFGvbwGGvzyAykqWZ8oZlZuGwuHkwJjhWJkG1cM3ynvd2pQ==}
engines : {node : ^14.18.0 || >=16.0.0}
peerDependencies :
eslint : '*'
eslint-plugin-import : '*'
eslint-plugin-import-x : '*'
peerDependenciesMeta :
eslint-plugin-import :
optional : true
eslint-plugin-import-x :
optional : true
eslint-module-utils@2.12.0 :
resolution : {integrity : sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==}
engines : {node : '>=4' }
peerDependencies :
'@typescript-eslint/parser' : '*'
eslint : '*'
eslint-import-resolver-node : '*'
eslint-import-resolver-typescript : '*'
eslint-import-resolver-webpack : '*'
peerDependenciesMeta :
'@typescript-eslint/parser' :
optional : true
eslint :
optional : true
eslint-import-resolver-node :
optional : true
eslint-import-resolver-typescript :
optional : true
eslint-import-resolver-webpack :
optional : true
eslint-plugin-import@2.31.0 :
resolution : {integrity : sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==}
engines : {node : '>=4' }
peerDependencies :
'@typescript-eslint/parser' : '*'
eslint : ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9
peerDependenciesMeta :
'@typescript-eslint/parser' :
optional : true
eslint-plugin-jsx-a11y@6.10.2 :
resolution : {integrity : sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==}
engines : {node : '>=4.0' }
peerDependencies :
eslint : ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9
eslint-plugin-react-hooks@5.2.0 :
resolution : {integrity : sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==}
engines : {node : '>=10' }
peerDependencies :
eslint : ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0
eslint-plugin-react@7.37.5 :
resolution : {integrity : sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==}
engines : {node : '>=4' }
peerDependencies :
eslint : ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7
2025-04-22 13:52:56 +08:00
eslint-scope@5.1.1 :
resolution : {integrity : sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==}
engines : {node : '>=8.0.0' }
2025-04-17 20:36:11 +08:00
eslint-scope@8.3.0 :
resolution : {integrity : sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==}
engines : {node : ^18.18.0 || ^20.9.0 || >=21.1.0}
eslint-visitor-keys@3.4.3 :
resolution : {integrity : sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
engines : {node : ^12.22.0 || ^14.17.0 || >=16.0.0}
eslint-visitor-keys@4.2.0 :
resolution : {integrity : sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==}
engines : {node : ^18.18.0 || ^20.9.0 || >=21.1.0}
eslint@9.24.0 :
resolution : {integrity : sha512-eh/jxIEJyZrvbWRe4XuVclLPDYSYYYgLy5zXGGxD6j8zjSAxFEzI2fL/8xNq6O2yKqVt+eF2YhV+hxjV6UKXwQ==}
engines : {node : ^18.18.0 || ^20.9.0 || >=21.1.0}
hasBin : true
peerDependencies :
jiti : '*'
peerDependenciesMeta :
jiti :
optional : true
espree@10.3.0 :
resolution : {integrity : sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==}
engines : {node : ^18.18.0 || ^20.9.0 || >=21.1.0}
2025-10-25 20:46:43 +08:00
esprima@4.0.1 :
resolution : {integrity : sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
engines : {node : '>=4' }
hasBin : true
2025-04-17 20:36:11 +08:00
esquery@1.6.0 :
resolution : {integrity : sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==}
engines : {node : '>=0.10' }
esrecurse@4.3.0 :
resolution : {integrity : sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
engines : {node : '>=4.0' }
2025-04-22 13:52:56 +08:00
estraverse@4.3.0 :
resolution : {integrity : sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==}
engines : {node : '>=4.0' }
2025-04-17 20:36:11 +08:00
estraverse@5.3.0 :
resolution : {integrity : sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
engines : {node : '>=4.0' }
estree-util-is-identifier-name@3.0.0 :
resolution : {integrity : sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==}
esutils@2.0.3 :
resolution : {integrity : sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
engines : {node : '>=0.10.0' }
2025-04-22 13:52:56 +08:00
events@3.3.0 :
resolution : {integrity : sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==}
engines : {node : '>=0.8.x' }
2025-10-25 20:46:43 +08:00
execa@5.1.1 :
resolution : {integrity : sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==}
engines : {node : '>=10' }
exit-x@0.2.2 :
resolution : {integrity : sha512-+I6B/IkJc1o/2tiURyz/ivu/O0nKNEArIUB5O7zBrlDVJr22SCLH3xTeEry428LvFhRzIA1g8izguxJ/gbNcVQ==}
engines : {node : '>= 0.8.0' }
expect@30.2.0 :
resolution : {integrity : sha512-u/feCi0GPsI+988gU2FLcsHyAHTU0MX1Wg68NhAnN7z/+C5wqG+CY8J53N9ioe8RXgaoz0nBR/TYMf3AycUuPw==}
engines : {node : ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
2025-04-17 20:36:11 +08:00
extend@3.0.2 :
resolution : {integrity : sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==}
fast-deep-equal@3.1.3 :
resolution : {integrity : sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
fast-glob@3.3.1 :
resolution : {integrity : sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==}
engines : {node : '>=8.6.0' }
fast-glob@3.3.3 :
resolution : {integrity : sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==}
engines : {node : '>=8.6.0' }
fast-json-stable-stringify@2.1.0 :
resolution : {integrity : sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
fast-levenshtein@2.0.6 :
resolution : {integrity : sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
fast-png@6.4.0 :
resolution : {integrity : sha512-kAqZq1TlgBjZcLr5mcN6NP5Rv4V2f22z00c3g8vRrwkcqjerx7BEhPbOnWCPqaHUl2XWQBJQvOT/FQhdMT7X/Q==}
2025-09-04 22:26:33 +08:00
fast-uri@3.1.0 :
resolution : {integrity : sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==}
2025-04-22 13:52:56 +08:00
2025-04-17 20:36:11 +08:00
fastq@1.19.1 :
resolution : {integrity : sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==}
fault@1.0.4 :
resolution : {integrity : sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA==}
2025-10-25 20:46:43 +08:00
fb-watchman@2.0.2 :
resolution : {integrity : sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==}
2025-04-17 20:36:11 +08:00
fdir@6.4.3 :
resolution : {integrity : sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==}
peerDependencies :
picomatch : ^3 || ^4
peerDependenciesMeta :
picomatch :
optional : true
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
fflate@0.8.2 :
resolution : {integrity : sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==}
2025-04-17 20:36:11 +08:00
file-entry-cache@8.0.0 :
resolution : {integrity : sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==}
engines : {node : '>=16.0.0' }
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
file-saver@2.0.5 :
resolution : {integrity : sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==}
2025-04-17 20:36:11 +08:00
fill-range@7.1.1 :
resolution : {integrity : sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
engines : {node : '>=8' }
2025-10-25 20:46:43 +08:00
find-up@4.1.0 :
resolution : {integrity : sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==}
engines : {node : '>=8' }
2025-04-17 20:36:11 +08:00
find-up@5.0.0 :
resolution : {integrity : sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
engines : {node : '>=10' }
flat-cache@4.0.1 :
resolution : {integrity : sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==}
engines : {node : '>=16' }
flatted@3.3.3 :
resolution : {integrity : sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==}
for-each@0.3.5 :
resolution : {integrity : sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==}
engines : {node : '>= 0.4' }
2025-10-25 20:46:43 +08:00
foreground-child@3.3.1 :
resolution : {integrity : sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==}
engines : {node : '>=14' }
2025-04-17 20:36:11 +08:00
format@0.2.2 :
resolution : {integrity : sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==}
engines : {node : '>=0.4.x' }
framer-motion@12.7.4 :
resolution : {integrity : sha512-jX0bPsTmU0oPZTYz/dVyD0dmOyEOEJvdn0TaZBE5I8g2GvVnnQnW9f65cJnoVfUkY3WZWNXGXnPbVA9YnaIfVA==}
peerDependencies :
'@emotion/is-prop-valid' : '*'
react : ^18.0.0 || ^19.0.0
react-dom : ^18.0.0 || ^19.0.0
peerDependenciesMeta :
'@emotion/is-prop-valid' :
optional : true
react :
optional : true
react-dom :
optional : true
2025-04-26 00:20:49 +08:00
framework-utils@1.1.0 :
resolution : {integrity : sha512-KAfqli5PwpFJ8o3psRNs8svpMGyCSAe8nmGcjQ0zZBWN2H6dZDnq+ABp3N3hdUmFeMrLtjOCTXD4yplUJIWceg==}
2025-10-25 20:46:43 +08:00
fs.realpath@1.0.0 :
resolution : {integrity : sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
fsevents@2.3.3 :
resolution : {integrity : sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
engines : {node : ^8.16.0 || ^10.6.0 || >=11.0.0}
os : [ darwin]
2025-04-17 20:36:11 +08:00
function-bind@1.1.2 :
resolution : {integrity : sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
function.prototype.name@1.1.8 :
resolution : {integrity : sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==}
engines : {node : '>= 0.4' }
functions-have-names@1.2.3 :
resolution : {integrity : sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==}
2025-10-25 20:46:43 +08:00
gensync@1.0.0-beta.2 :
resolution : {integrity : sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
engines : {node : '>=6.9.0' }
2025-04-26 00:20:49 +08:00
gesto@1.19.4 :
resolution : {integrity : sha512-hfr/0dWwh0Bnbb88s3QVJd1ZRJeOWcgHPPwmiH6NnafDYvhTsxg+SLYu+q/oPNh9JS3V+nlr6fNs8kvPAtcRDQ==}
2025-10-25 20:46:43 +08:00
get-caller-file@2.0.5 :
resolution : {integrity : sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
engines : {node : 6 .* || 8.* || >= 10.*}
2025-04-17 20:36:11 +08:00
get-intrinsic@1.3.0 :
resolution : {integrity : sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==}
engines : {node : '>= 0.4' }
2025-04-20 11:18:05 +08:00
get-nonce@1.0.1 :
resolution : {integrity : sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==}
engines : {node : '>=6' }
2025-10-25 20:46:43 +08:00
get-package-type@0.1.0 :
resolution : {integrity : sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==}
engines : {node : '>=8.0.0' }
2025-04-17 20:36:11 +08:00
get-proto@1.0.1 :
resolution : {integrity : sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==}
engines : {node : '>= 0.4' }
2025-10-25 20:46:43 +08:00
get-stream@6.0.1 :
resolution : {integrity : sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==}
engines : {node : '>=10' }
2025-04-17 20:36:11 +08:00
get-symbol-description@1.1.0 :
resolution : {integrity : sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==}
engines : {node : '>= 0.4' }
get-tsconfig@4.10.0 :
resolution : {integrity : sha512-kGzZ3LWWQcGIAmg6iWvXn0ei6WDtV26wzHRMwDSzmAbcXrTEXxHy6IehI6/4eT6VRKyMP1eF1VqwrVUmE/LR7A==}
glob-parent@5.1.2 :
resolution : {integrity : sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
engines : {node : '>= 6' }
glob-parent@6.0.2 :
resolution : {integrity : sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
engines : {node : '>=10.13.0' }
2025-04-22 13:52:56 +08:00
glob-to-regexp@0.4.1 :
resolution : {integrity : sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==}
2025-10-25 20:46:43 +08:00
glob@10.4.5 :
resolution : {integrity : sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==}
2026-02-06 10:29:43 +08:00
deprecated : Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me
2025-10-25 20:46:43 +08:00
hasBin : true
glob@7.2.3 :
resolution : {integrity : sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
2026-02-06 10:29:43 +08:00
deprecated : Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me
2025-10-25 20:46:43 +08:00
2025-04-17 20:36:11 +08:00
globals@14.0.0 :
resolution : {integrity : sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==}
engines : {node : '>=18' }
globalthis@1.0.4 :
resolution : {integrity : sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==}
engines : {node : '>= 0.4' }
gopd@1.2.0 :
resolution : {integrity : sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==}
engines : {node : '>= 0.4' }
graceful-fs@4.2.11 :
resolution : {integrity : sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
graphemer@1.4.0 :
resolution : {integrity : sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
2025-10-25 20:46:43 +08:00
handlebars@4.7.8 :
resolution : {integrity : sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==}
engines : {node : '>=0.4.7' }
hasBin : true
harmony-reflect@1.6.2 :
resolution : {integrity : sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g==}
2025-04-17 20:36:11 +08:00
has-bigints@1.1.0 :
resolution : {integrity : sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==}
engines : {node : '>= 0.4' }
has-flag@4.0.0 :
resolution : {integrity : sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
engines : {node : '>=8' }
has-property-descriptors@1.0.2 :
resolution : {integrity : sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==}
has-proto@1.2.0 :
resolution : {integrity : sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==}
engines : {node : '>= 0.4' }
has-symbols@1.1.0 :
resolution : {integrity : sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==}
engines : {node : '>= 0.4' }
has-tostringtag@1.0.2 :
resolution : {integrity : sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==}
engines : {node : '>= 0.4' }
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
hash.js@1.1.7 :
resolution : {integrity : sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==}
2025-04-17 20:36:11 +08:00
hasown@2.0.2 :
resolution : {integrity : sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
engines : {node : '>= 0.4' }
hast-util-from-dom@5.0.1 :
resolution : {integrity : sha512-N+LqofjR2zuzTjCPzyDUdSshy4Ma6li7p/c3pA78uTwzFgENbgbUrm2ugwsOdcjI1muO+o6Dgzp9p8WHtn/39Q==}
hast-util-from-html-isomorphic@2.0.0 :
resolution : {integrity : sha512-zJfpXq44yff2hmE0XmwEOzdWin5xwH+QIhMLOScpX91e/NSGPsAzNCvLQDIEPyO2TXi+lBmU6hjLIhV8MwP2kw==}
hast-util-from-html@2.0.3 :
resolution : {integrity : sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw==}
hast-util-from-parse5@8.0.3 :
resolution : {integrity : sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg==}
hast-util-is-element@3.0.0 :
resolution : {integrity : sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==}
hast-util-parse-selector@2.2.5 :
resolution : {integrity : sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==}
hast-util-parse-selector@4.0.0 :
resolution : {integrity : sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==}
hast-util-to-jsx-runtime@2.3.6 :
resolution : {integrity : sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==}
hast-util-to-text@4.0.2 :
resolution : {integrity : sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==}
hast-util-whitespace@3.0.0 :
resolution : {integrity : sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==}
hast@1.0.0 :
resolution : {integrity : sha512-vFUqlRV5C+xqP76Wwq2SrM0kipnmpxJm7OfvVXpB35Fp+Fn4MV+ozr+JZr5qFvyR1q/U+Foim2x+3P+x9S1PLA==}
deprecated : Renamed to rehype
hastscript@6.0.0 :
resolution : {integrity : sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==}
hastscript@9.0.1 :
resolution : {integrity : sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==}
highlight.js@10.7.3 :
resolution : {integrity : sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==}
2025-04-26 00:20:49 +08:00
highlight.js@11.11.1 :
resolution : {integrity : sha512-Xwwo44whKBVCYoliBQwaPvtd/2tYFkRQtXDWj1nackaV2JPXx3L0+Jvd8/qCJ2p+ML0/XVkJ2q+Mr+UVdpJK5w==}
engines : {node : '>=12.0.0' }
2025-04-17 20:36:11 +08:00
highlightjs-vue@1.0.0 :
resolution : {integrity : sha512-PDEfEF102G23vHmPhLyPboFCD+BkMGu+GuJe2d9/eH4FsCwvgBpnc9n0pGE+ffKdph38s6foEZiEjdgHdzp+IA==}
2025-10-25 20:46:43 +08:00
html-encoding-sniffer@4.0.0 :
resolution : {integrity : sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==}
engines : {node : '>=18' }
html-escaper@2.0.2 :
resolution : {integrity : sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==}
2025-04-17 20:36:11 +08:00
html-url-attributes@3.0.1 :
resolution : {integrity : sha512-ol6UPyBWqsrO6EJySPz2O7ZSr856WDrEzM5zMqp+FJJLGMW35cLYmmZnl0vztAZxRUoNZJFTCohfjuIJ8I4QBQ==}
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
html2canvas@1.4.1 :
resolution : {integrity : sha512-fPU6BHNpsyIhr8yyMpTLLxAbkaK8ArIBcmZIRiBLiDhjeqvXolaEmDGmELFuX9I4xDcaKKcJl+TKZLqruBbmWA==}
engines : {node : '>=8.0.0' }
2025-10-25 20:46:43 +08:00
http-proxy-agent@7.0.2 :
resolution : {integrity : sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==}
engines : {node : '>= 14' }
https-proxy-agent@7.0.6 :
resolution : {integrity : sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==}
engines : {node : '>= 14' }
human-signals@2.1.0 :
resolution : {integrity : sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==}
engines : {node : '>=10.17.0' }
iconv-lite@0.6.3 :
resolution : {integrity : sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==}
engines : {node : '>=0.10.0' }
identity-obj-proxy@3.0.0 :
resolution : {integrity : sha512-00n6YnVHKrinT9t0d9+5yZC6UBNJANpYEQvL2LlX6Ab9lnmxzIRcEmTPuyGScvl1+jKuCICX1Z0Ab1pPKKdikA==}
engines : {node : '>=4' }
2025-04-17 20:36:11 +08:00
ignore@5.3.2 :
resolution : {integrity : sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==}
engines : {node : '>= 4' }
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
immediate@3.0.6 :
resolution : {integrity : sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==}
2025-04-29 15:47:01 +08:00
immer@10.1.1 :
resolution : {integrity : sha512-s2MPrmjovJcoMaHtx6K11Ra7oD05NT97w1IC5zpMkT6Atjr7H8LjaDd81iIxUYpMKSRRNMJE703M1Fhr/TctHw==}
2025-04-17 20:36:11 +08:00
import-fresh@3.3.1 :
resolution : {integrity : sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==}
engines : {node : '>=6' }
2025-10-25 20:46:43 +08:00
import-local@3.2.0 :
resolution : {integrity : sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==}
engines : {node : '>=8' }
hasBin : true
2025-04-17 20:36:11 +08:00
imurmurhash@0.1.4 :
resolution : {integrity : sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
engines : {node : '>=0.8.19' }
2025-10-25 20:46:43 +08:00
inflight@1.0.6 :
resolution : {integrity : sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
deprecated : This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
inherits@2.0.4 :
resolution : {integrity : sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
2025-04-17 20:36:11 +08:00
inline-style-parser@0.2.4 :
resolution : {integrity : sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==}
internal-slot@1.1.0 :
resolution : {integrity : sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==}
engines : {node : '>= 0.4' }
2025-07-12 15:18:28 +08:00
intl-messageformat@10.7.16 :
resolution : {integrity : sha512-UmdmHUmp5CIKKjSoE10la5yfU+AYJAaiYLsodbjL4lji83JNvgOQUjGaGhGrpFCb0Uh7sl7qfP1IyILa8Z40ug==}
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
iobuffer@5.4.0 :
resolution : {integrity : sha512-DRebOWuqDvxunfkNJAlc3IzWIPD5xVxwUNbHr7xKB8E6aLJxIPfNX3CoMJghcFjpv6RWQsrcJbghtEwSPoJqMA==}
2025-04-17 20:36:11 +08:00
is-alphabetical@1.0.4 :
resolution : {integrity : sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==}
is-alphabetical@2.0.1 :
resolution : {integrity : sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==}
is-alphanumerical@1.0.4 :
resolution : {integrity : sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==}
is-alphanumerical@2.0.1 :
resolution : {integrity : sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==}
is-array-buffer@3.0.5 :
resolution : {integrity : sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==}
engines : {node : '>= 0.4' }
2025-10-25 20:46:43 +08:00
is-arrayish@0.2.1 :
resolution : {integrity : sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==}
2025-04-17 20:36:11 +08:00
is-async-function@2.1.1 :
resolution : {integrity : sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==}
engines : {node : '>= 0.4' }
is-bigint@1.1.0 :
resolution : {integrity : sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==}
engines : {node : '>= 0.4' }
is-boolean-object@1.2.2 :
resolution : {integrity : sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==}
engines : {node : '>= 0.4' }
is-bun-module@2.0.0 :
resolution : {integrity : sha512-gNCGbnnnnFAUGKeZ9PdbyeGYJqewpmc2aKHUEMO5nQPWU9lOmv7jcmQIv+qHD8fXW6W7qfuCwX4rY9LNRjXrkQ==}
is-callable@1.2.7 :
resolution : {integrity : sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==}
engines : {node : '>= 0.4' }
is-core-module@2.16.1 :
resolution : {integrity : sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==}
engines : {node : '>= 0.4' }
is-data-view@1.0.2 :
resolution : {integrity : sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==}
engines : {node : '>= 0.4' }
is-date-object@1.1.0 :
resolution : {integrity : sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==}
engines : {node : '>= 0.4' }
is-decimal@1.0.4 :
resolution : {integrity : sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==}
is-decimal@2.0.1 :
resolution : {integrity : sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==}
is-extglob@2.1.1 :
resolution : {integrity : sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
engines : {node : '>=0.10.0' }
is-finalizationregistry@1.1.1 :
resolution : {integrity : sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==}
engines : {node : '>= 0.4' }
2025-10-25 20:46:43 +08:00
is-fullwidth-code-point@3.0.0 :
resolution : {integrity : sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
engines : {node : '>=8' }
is-generator-fn@2.1.0 :
resolution : {integrity : sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==}
engines : {node : '>=6' }
2025-04-17 20:36:11 +08:00
is-generator-function@1.1.0 :
resolution : {integrity : sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==}
engines : {node : '>= 0.4' }
is-glob@4.0.3 :
resolution : {integrity : sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
engines : {node : '>=0.10.0' }
is-hexadecimal@1.0.4 :
resolution : {integrity : sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==}
is-hexadecimal@2.0.1 :
resolution : {integrity : sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==}
is-map@2.0.3 :
resolution : {integrity : sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==}
engines : {node : '>= 0.4' }
is-number-object@1.1.1 :
resolution : {integrity : sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==}
engines : {node : '>= 0.4' }
is-number@7.0.0 :
resolution : {integrity : sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
engines : {node : '>=0.12.0' }
is-plain-obj@4.1.0 :
resolution : {integrity : sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==}
engines : {node : '>=12' }
2025-10-25 20:46:43 +08:00
is-potential-custom-element-name@1.0.1 :
resolution : {integrity : sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==}
2025-04-17 20:36:11 +08:00
is-regex@1.2.1 :
resolution : {integrity : sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==}
engines : {node : '>= 0.4' }
is-set@2.0.3 :
resolution : {integrity : sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==}
engines : {node : '>= 0.4' }
is-shared-array-buffer@1.0.4 :
resolution : {integrity : sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==}
engines : {node : '>= 0.4' }
2025-10-25 20:46:43 +08:00
is-stream@2.0.1 :
resolution : {integrity : sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==}
engines : {node : '>=8' }
2025-04-17 20:36:11 +08:00
is-string@1.1.1 :
resolution : {integrity : sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==}
engines : {node : '>= 0.4' }
is-symbol@1.1.1 :
resolution : {integrity : sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==}
engines : {node : '>= 0.4' }
is-typed-array@1.1.15 :
resolution : {integrity : sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==}
engines : {node : '>= 0.4' }
is-weakmap@2.0.2 :
resolution : {integrity : sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==}
engines : {node : '>= 0.4' }
is-weakref@1.1.1 :
resolution : {integrity : sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==}
engines : {node : '>= 0.4' }
is-weakset@2.0.4 :
resolution : {integrity : sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==}
engines : {node : '>= 0.4' }
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
isarray@1.0.0 :
resolution : {integrity : sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==}
2025-04-17 20:36:11 +08:00
isarray@2.0.5 :
resolution : {integrity : sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==}
isexe@2.0.0 :
resolution : {integrity : sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
2025-10-25 20:46:43 +08:00
istanbul-lib-coverage@3.2.2 :
resolution : {integrity : sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==}
engines : {node : '>=8' }
istanbul-lib-instrument@6.0.3 :
resolution : {integrity : sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==}
engines : {node : '>=10' }
istanbul-lib-report@3.0.1 :
resolution : {integrity : sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==}
engines : {node : '>=10' }
istanbul-lib-source-maps@5.0.6 :
resolution : {integrity : sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==}
engines : {node : '>=10' }
istanbul-reports@3.2.0 :
resolution : {integrity : sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==}
engines : {node : '>=8' }
2025-04-17 20:36:11 +08:00
iterator.prototype@1.1.5 :
resolution : {integrity : sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==}
engines : {node : '>= 0.4' }
2025-10-25 20:46:43 +08:00
jackspeak@3.4.3 :
resolution : {integrity : sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==}
jest-changed-files@30.2.0 :
resolution : {integrity : sha512-L8lR1ChrRnSdfeOvTrwZMlnWV8G/LLjQ0nG9MBclwWZidA2N5FviRki0Bvh20WRMOX31/JYvzdqTJrk5oBdydQ==}
engines : {node : ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
jest-circus@30.2.0 :
resolution : {integrity : sha512-Fh0096NC3ZkFx05EP2OXCxJAREVxj1BcW/i6EWqqymcgYKWjyyDpral3fMxVcHXg6oZM7iULer9wGRFvfpl+Tg==}
engines : {node : ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
jest-cli@30.2.0 :
resolution : {integrity : sha512-Os9ukIvADX/A9sLt6Zse3+nmHtHaE6hqOsjQtNiugFTbKRHYIYtZXNGNK9NChseXy7djFPjndX1tL0sCTlfpAA==}
engines : {node : ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
hasBin : true
peerDependencies :
node-notifier : ^8.0.1 || ^9.0.0 || ^10.0.0
peerDependenciesMeta :
node-notifier :
optional : true
jest-config@30.2.0 :
resolution : {integrity : sha512-g4WkyzFQVWHtu6uqGmQR4CQxz/CH3yDSlhzXMWzNjDx843gYjReZnMRanjRCq5XZFuQrGDxgUaiYWE8BRfVckA==}
engines : {node : ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
peerDependencies :
'@types/node' : '*'
esbuild-register : '>=3.4.0'
ts-node : '>=9.0.0'
peerDependenciesMeta :
'@types/node' :
optional : true
esbuild-register :
optional : true
ts-node :
optional : true
jest-diff@30.2.0 :
resolution : {integrity : sha512-dQHFo3Pt4/NLlG5z4PxZ/3yZTZ1C7s9hveiOj+GCN+uT109NC2QgsoVZsVOAvbJ3RgKkvyLGXZV9+piDpWbm6A==}
engines : {node : ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
jest-docblock@30.2.0 :
resolution : {integrity : sha512-tR/FFgZKS1CXluOQzZvNH3+0z9jXr3ldGSD8bhyuxvlVUwbeLOGynkunvlTMxchC5urrKndYiwCFC0DLVjpOCA==}
engines : {node : ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
jest-each@30.2.0 :
resolution : {integrity : sha512-lpWlJlM7bCUf1mfmuqTA8+j2lNURW9eNafOy99knBM01i5CQeY5UH1vZjgT9071nDJac1M4XsbyI44oNOdhlDQ==}
engines : {node : ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
jest-environment-jsdom@30.2.0 :
resolution : {integrity : sha512-zbBTiqr2Vl78pKp/laGBREYzbZx9ZtqPjOK4++lL4BNDhxRnahg51HtoDrk9/VjIy9IthNEWdKVd7H5bqBhiWQ==}
engines : {node : ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
peerDependencies :
canvas : ^3.0.0
peerDependenciesMeta :
canvas :
optional : true
jest-environment-node@30.2.0 :
resolution : {integrity : sha512-ElU8v92QJ9UrYsKrxDIKCxu6PfNj4Hdcktcn0JX12zqNdqWHB0N+hwOnnBBXvjLd2vApZtuLUGs1QSY+MsXoNA==}
engines : {node : ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
jest-haste-map@30.2.0 :
resolution : {integrity : sha512-sQA/jCb9kNt+neM0anSj6eZhLZUIhQgwDt7cPGjumgLM4rXsfb9kpnlacmvZz3Q5tb80nS+oG/if+NBKrHC+Xw==}
engines : {node : ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
jest-leak-detector@30.2.0 :
resolution : {integrity : sha512-M6jKAjyzjHG0SrQgwhgZGy9hFazcudwCNovY/9HPIicmNSBuockPSedAP9vlPK6ONFJ1zfyH/M2/YYJxOz5cdQ==}
engines : {node : ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
jest-matcher-utils@30.2.0 :
resolution : {integrity : sha512-dQ94Nq4dbzmUWkQ0ANAWS9tBRfqCrn0bV9AMYdOi/MHW726xn7eQmMeRTpX2ViC00bpNaWXq+7o4lIQ3AX13Hg==}
engines : {node : ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
jest-message-util@30.2.0 :
resolution : {integrity : sha512-y4DKFLZ2y6DxTWD4cDe07RglV88ZiNEdlRfGtqahfbIjfsw1nMCPx49Uev4IA/hWn3sDKyAnSPwoYSsAEdcimw==}
engines : {node : ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
jest-mock@30.2.0 :
resolution : {integrity : sha512-JNNNl2rj4b5ICpmAcq+WbLH83XswjPbjH4T7yvGzfAGCPh1rw+xVNbtk+FnRslvt9lkCcdn9i1oAoKUuFsOxRw==}
engines : {node : ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
jest-pnp-resolver@1.2.3 :
resolution : {integrity : sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==}
engines : {node : '>=6' }
peerDependencies :
jest-resolve : '*'
peerDependenciesMeta :
jest-resolve :
optional : true
jest-regex-util@30.0.1 :
resolution : {integrity : sha512-jHEQgBXAgc+Gh4g0p3bCevgRCVRkB4VB70zhoAE48gxeSr1hfUOsM/C2WoJgVL7Eyg//hudYENbm3Ne+/dRVVA==}
engines : {node : ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
jest-resolve-dependencies@30.2.0 :
resolution : {integrity : sha512-xTOIGug/0RmIe3mmCqCT95yO0vj6JURrn1TKWlNbhiAefJRWINNPgwVkrVgt/YaerPzY3iItufd80v3lOrFJ2w==}
engines : {node : ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
jest-resolve@30.2.0 :
resolution : {integrity : sha512-TCrHSxPlx3tBY3hWNtRQKbtgLhsXa1WmbJEqBlTBrGafd5fiQFByy2GNCEoGR+Tns8d15GaL9cxEzKOO3GEb2A==}
engines : {node : ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
jest-runner@30.2.0 :
resolution : {integrity : sha512-PqvZ2B2XEyPEbclp+gV6KO/F1FIFSbIwewRgmROCMBo/aZ6J1w8Qypoj2pEOcg3G2HzLlaP6VUtvwCI8dM3oqQ==}
engines : {node : ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
jest-runtime@30.2.0 :
resolution : {integrity : sha512-p1+GVX/PJqTucvsmERPMgCPvQJpFt4hFbM+VN3n8TMo47decMUcJbt+rgzwrEme0MQUA/R+1de2axftTHkKckg==}
engines : {node : ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
jest-snapshot@30.2.0 :
resolution : {integrity : sha512-5WEtTy2jXPFypadKNpbNkZ72puZCa6UjSr/7djeecHWOu7iYhSXSnHScT8wBz3Rn8Ena5d5RYRcsyKIeqG1IyA==}
engines : {node : ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
jest-util@30.2.0 :
resolution : {integrity : sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA==}
engines : {node : ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
jest-validate@30.2.0 :
resolution : {integrity : sha512-FBGWi7dP2hpdi8nBoWxSsLvBFewKAg0+uSQwBaof4Y4DPgBabXgpSYC5/lR7VmnIlSpASmCi/ntRWPbv7089Pw==}
engines : {node : ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
jest-watcher@30.2.0 :
resolution : {integrity : sha512-PYxa28dxJ9g777pGm/7PrbnMeA0Jr7osHP9bS7eJy9DuAjMgdGtxgf0uKMyoIsTWAkIbUW5hSDdJ3urmgXBqxg==}
engines : {node : ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
2025-04-22 13:52:56 +08:00
jest-worker@27.5.1 :
resolution : {integrity : sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==}
engines : {node : '>= 10.13.0' }
2025-10-25 20:46:43 +08:00
jest-worker@30.2.0 :
resolution : {integrity : sha512-0Q4Uk8WF7BUwqXHuAjc23vmopWJw5WH7w2tqBoUOZpOjW/ZnR44GXXd1r82RvnmI2GZge3ivrYXk/BE2+VtW2g==}
engines : {node : ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
jest@30.2.0 :
resolution : {integrity : sha512-F26gjC0yWN8uAA5m5Ss8ZQf5nDHWGlN/xWZIh8S5SRbsEKBovwZhxGd6LJlbZYxBgCYOtreSUyb8hpXyGC5O4A==}
engines : {node : ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
hasBin : true
peerDependencies :
node-notifier : ^8.0.1 || ^9.0.0 || ^10.0.0
peerDependenciesMeta :
node-notifier :
optional : true
2025-04-17 20:36:11 +08:00
jiti@2.4.2 :
resolution : {integrity : sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==}
hasBin : true
2025-04-26 00:20:49 +08:00
jotai@2.12.3 :
resolution : {integrity : sha512-DpoddSkmPGXMFtdfnoIHfueFeGP643nqYUWC6REjUcME+PG2UkAtYnLbffRDw3OURI9ZUTcRWkRGLsOvxuWMCg==}
engines : {node : '>=12.20.0' }
peerDependencies :
'@types/react' : '>=17.0.0'
react : '>=17.0.0'
peerDependenciesMeta :
'@types/react' :
optional : true
react :
optional : true
2025-07-12 15:18:28 +08:00
js-cookie@3.0.5 :
resolution : {integrity : sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==}
engines : {node : '>=14' }
2025-04-17 20:36:11 +08:00
js-tokens@4.0.0 :
resolution : {integrity : sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
2025-10-25 20:46:43 +08:00
js-yaml@3.14.1 :
resolution : {integrity : sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==}
hasBin : true
2025-04-17 20:36:11 +08:00
js-yaml@4.1.0 :
resolution : {integrity : sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
hasBin : true
2025-10-25 20:46:43 +08:00
jsdom@26.1.0 :
resolution : {integrity : sha512-Cvc9WUhxSMEo4McES3P7oK3QaXldCfNWp7pl2NNeiIFlCoLr3kfq9kb1fxftiwk1FLV7CvpvDfonxtzUDeSOPg==}
engines : {node : '>=18' }
peerDependencies :
canvas : ^3.0.0
peerDependenciesMeta :
canvas :
optional : true
jsesc@3.1.0 :
resolution : {integrity : sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==}
engines : {node : '>=6' }
hasBin : true
2025-04-17 20:36:11 +08:00
json-buffer@3.0.1 :
resolution : {integrity : sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
2025-04-22 13:52:56 +08:00
json-parse-even-better-errors@2.3.1 :
resolution : {integrity : sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}
2025-04-17 20:36:11 +08:00
json-schema-traverse@0.4.1 :
resolution : {integrity : sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
2025-04-22 13:52:56 +08:00
json-schema-traverse@1.0.0 :
resolution : {integrity : sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==}
2025-04-17 20:36:11 +08:00
json-stable-stringify-without-jsonify@1.0.1 :
resolution : {integrity : sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
json5@1.0.2 :
resolution : {integrity : sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==}
hasBin : true
2025-04-22 13:52:56 +08:00
json5@2.2.3 :
resolution : {integrity : sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
engines : {node : '>=6' }
hasBin : true
2026-02-06 10:29:43 +08:00
jspdf@4.1.0 :
resolution : {integrity : sha512-xd1d/XRkwqnsq6FP3zH1Q+Ejqn2ULIJeDZ+FTKpaabVpZREjsJKRJwuokTNgdqOU+fl55KgbvgZ1pRTSWCP2kQ==}
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
2025-04-17 20:36:11 +08:00
jsx-ast-utils@3.3.5 :
resolution : {integrity : sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==}
engines : {node : '>=4.0' }
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
jszip@3.10.1 :
resolution : {integrity : sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==}
2025-04-17 20:36:11 +08:00
katex@0.16.21 :
resolution : {integrity : sha512-XvqR7FgOHtWupfMiigNzmh+MgUVmDGU2kXZm899ZkPfcuoPuFxyHmXsgATDpFZDAXCI8tvinaVcDo8PIIJSo4A==}
hasBin : true
2025-04-26 00:20:49 +08:00
keycode@2.2.1 :
resolution : {integrity : sha512-Rdgz9Hl9Iv4QKi8b0OlCRQEzp4AgVxyCtz5S/+VIHezDmrDhkp2N2TqBWOLz0/gbeREXOOiI9/4b8BY9uw2vFg==}
keycon@1.4.0 :
resolution : {integrity : sha512-p1NAIxiRMH3jYfTeXRs2uWbVJ1WpEjpi8ktzUyBJsX7/wn2qu2VRXktneBLNtKNxJmlUYxRi9gOJt1DuthXR7A==}
2025-04-17 20:36:11 +08:00
keyv@4.5.4 :
resolution : {integrity : sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
language-subtag-registry@0.3.23 :
resolution : {integrity : sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==}
language-tags@1.0.9 :
resolution : {integrity : sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==}
engines : {node : '>=0.10' }
2025-10-25 20:46:43 +08:00
leven@3.1.0 :
resolution : {integrity : sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==}
engines : {node : '>=6' }
2025-04-17 20:36:11 +08:00
levn@0.4.1 :
resolution : {integrity : sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
engines : {node : '>= 0.8.0' }
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
lie@3.3.0 :
resolution : {integrity : sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==}
2025-04-17 20:36:11 +08:00
lightningcss-darwin-arm64@1.29.2 :
resolution : {integrity : sha512-cK/eMabSViKn/PG8U/a7aCorpeKLMlK0bQeNHmdb7qUnBkNPnL+oV5DjJUo0kqWsJUapZsM4jCfYItbqBDvlcA==}
engines : {node : '>= 12.0.0' }
cpu : [ arm64]
os : [ darwin]
lightningcss-darwin-x64@1.29.2 :
resolution : {integrity : sha512-j5qYxamyQw4kDXX5hnnCKMf3mLlHvG44f24Qyi2965/Ycz829MYqjrVg2H8BidybHBp9kom4D7DR5VqCKDXS0w==}
engines : {node : '>= 12.0.0' }
cpu : [ x64]
os : [ darwin]
lightningcss-freebsd-x64@1.29.2 :
resolution : {integrity : sha512-wDk7M2tM78Ii8ek9YjnY8MjV5f5JN2qNVO+/0BAGZRvXKtQrBC4/cn4ssQIpKIPP44YXw6gFdpUF+Ps+RGsCwg==}
engines : {node : '>= 12.0.0' }
cpu : [ x64]
os : [ freebsd]
lightningcss-linux-arm-gnueabihf@1.29.2 :
resolution : {integrity : sha512-IRUrOrAF2Z+KExdExe3Rz7NSTuuJ2HvCGlMKoquK5pjvo2JY4Rybr+NrKnq0U0hZnx5AnGsuFHjGnNT14w26sg==}
engines : {node : '>= 12.0.0' }
cpu : [ arm]
os : [ linux]
lightningcss-linux-arm64-gnu@1.29.2 :
resolution : {integrity : sha512-KKCpOlmhdjvUTX/mBuaKemp0oeDIBBLFiU5Fnqxh1/DZ4JPZi4evEH7TKoSBFOSOV3J7iEmmBaw/8dpiUvRKlQ==}
engines : {node : '>= 12.0.0' }
cpu : [ arm64]
os : [ linux]
lightningcss-linux-arm64-musl@1.29.2 :
resolution : {integrity : sha512-Q64eM1bPlOOUgxFmoPUefqzY1yV3ctFPE6d/Vt7WzLW4rKTv7MyYNky+FWxRpLkNASTnKQUaiMJ87zNODIrrKQ==}
engines : {node : '>= 12.0.0' }
cpu : [ arm64]
os : [ linux]
lightningcss-linux-x64-gnu@1.29.2 :
resolution : {integrity : sha512-0v6idDCPG6epLXtBH/RPkHvYx74CVziHo6TMYga8O2EiQApnUPZsbR9nFNrg2cgBzk1AYqEd95TlrsL7nYABQg==}
engines : {node : '>= 12.0.0' }
cpu : [ x64]
os : [ linux]
lightningcss-linux-x64-musl@1.29.2 :
resolution : {integrity : sha512-rMpz2yawkgGT8RULc5S4WiZopVMOFWjiItBT7aSfDX4NQav6M44rhn5hjtkKzB+wMTRlLLqxkeYEtQ3dd9696w==}
engines : {node : '>= 12.0.0' }
cpu : [ x64]
os : [ linux]
lightningcss-win32-arm64-msvc@1.29.2 :
resolution : {integrity : sha512-nL7zRW6evGQqYVu/bKGK+zShyz8OVzsCotFgc7judbt6wnB2KbiKKJwBE4SGoDBQ1O94RjW4asrCjQL4i8Fhbw==}
engines : {node : '>= 12.0.0' }
cpu : [ arm64]
os : [ win32]
lightningcss-win32-x64-msvc@1.29.2 :
resolution : {integrity : sha512-EdIUW3B2vLuHmv7urfzMI/h2fmlnOQBk1xlsDxkN1tCWKjNFjfLhGxYk8C8mzpSfr+A6jFFIi8fU6LbQGsRWjA==}
engines : {node : '>= 12.0.0' }
cpu : [ x64]
os : [ win32]
lightningcss@1.29.2 :
resolution : {integrity : sha512-6b6gd/RUXKaw5keVdSEtqFVdzWnU5jMxTUjA2bVcMNPLwSQ08Sv/UodBVtETLCn7k4S1Ibxwh7k68IwLZPgKaA==}
engines : {node : '>= 12.0.0' }
2025-10-25 20:46:43 +08:00
lines-and-columns@1.2.4 :
resolution : {integrity : sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
2025-04-26 00:20:49 +08:00
linkify-it@5.0.0 :
resolution : {integrity : sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==}
linkifyjs@4.2.0 :
resolution : {integrity : sha512-pCj3PrQyATaoTYKHrgWRF3SJwsm61udVh+vuls/Rl6SptiDhgE7ziUIudAedRY9QEfynmM7/RmLEfPUyw1HPCw==}
2025-12-05 14:30:00 +08:00
loader-runner@4.3.1 :
resolution : {integrity : sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q==}
2025-04-22 13:52:56 +08:00
engines : {node : '>=6.11.5' }
loader-utils@2.0.4 :
resolution : {integrity : sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==}
engines : {node : '>=8.9.0' }
2025-10-25 20:46:43 +08:00
locate-path@5.0.0 :
resolution : {integrity : sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==}
engines : {node : '>=8' }
2025-04-17 20:36:11 +08:00
locate-path@6.0.0 :
resolution : {integrity : sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
engines : {node : '>=10' }
2025-04-26 00:20:49 +08:00
lodash.castarray@4.4.0 :
resolution : {integrity : sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==}
lodash.isplainobject@4.0.6 :
resolution : {integrity : sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==}
2025-10-25 20:46:43 +08:00
lodash.memoize@4.1.2 :
resolution : {integrity : sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==}
2025-04-17 20:36:11 +08:00
lodash.merge@4.6.2 :
resolution : {integrity : sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
longest-streak@3.1.0 :
resolution : {integrity : sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==}
loose-envify@1.4.0 :
resolution : {integrity : sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
hasBin : true
lowlight@1.20.0 :
resolution : {integrity : sha512-8Ktj+prEb1RoCPkEOrPMYUN/nCggB7qAWe3a7OpMjWQkh3l2RD5wKRQ+o8Q8YuI9RG/xs95waaI/E6ym/7NsTw==}
2025-04-26 00:20:49 +08:00
lowlight@3.3.0 :
resolution : {integrity : sha512-0JNhgFoPvP6U6lE/UdVsSq99tn6DhjjpAj5MxG49ewd2mOBVtwWYIT8ClyABhq198aXXODMU6Ox8DrGy/CpTZQ==}
2025-10-25 20:46:43 +08:00
lru-cache@10.4.3 :
resolution : {integrity : sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==}
2025-04-17 20:36:11 +08:00
lru-cache@11.1.0 :
resolution : {integrity : sha512-QIXZUBJUx+2zHUdQujWejBkcD9+cs94tLn0+YL8UrCh+D5sCXZ4c7LaEH48pNwRY3MLDgqUFyhlCyjJPf1WP0A==}
engines : {node : 20 || >=22}
2025-10-25 20:46:43 +08:00
lru-cache@5.1.1 :
resolution : {integrity : sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
2025-04-17 20:36:11 +08:00
lucide-react@0.487.0 :
resolution : {integrity : sha512-aKqhOQ+YmFnwq8dWgGjOuLc8V1R9/c/yOd+zDY4+ohsR2Jo05lSGc3WsstYPIzcTpeosN7LoCkLReUUITvaIvw==}
peerDependencies :
react : ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0
2025-10-25 20:46:43 +08:00
lz-string@1.5.0 :
resolution : {integrity : sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==}
hasBin : true
make-dir@4.0.0 :
resolution : {integrity : sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==}
engines : {node : '>=10' }
make-error@1.3.6 :
resolution : {integrity : sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==}
makeerror@1.0.12 :
resolution : {integrity : sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==}
2025-04-26 00:20:49 +08:00
markdown-it-task-lists@2.1.1 :
resolution : {integrity : sha512-TxFAc76Jnhb2OUu+n3yz9RMu4CwGfaT788br6HhEDlvWfdeJcLUsxk1Hgw2yJio0OXsxv7pyIPmvECY7bMbluA==}
markdown-it@14.1.0 :
resolution : {integrity : sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==}
hasBin : true
2025-04-17 20:36:11 +08:00
markdown-table@3.0.4 :
resolution : {integrity : sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==}
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
marked@17.0.1 :
resolution : {integrity : sha512-boeBdiS0ghpWcSwoNm/jJBwdpFaMnZWRzjA6SkUMYb40SVaN1x7mmfGKp0jvexGcx+7y2La5zRZsYFZI6Qpypg==}
engines : {node : '>= 20' }
hasBin : true
2025-04-17 20:36:11 +08:00
math-intrinsics@1.1.0 :
resolution : {integrity : sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==}
engines : {node : '>= 0.4' }
mdast-util-find-and-replace@3.0.2 :
resolution : {integrity : sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==}
mdast-util-from-markdown@2.0.2 :
resolution : {integrity : sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==}
mdast-util-gfm-autolink-literal@2.0.1 :
resolution : {integrity : sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==}
mdast-util-gfm-footnote@2.1.0 :
resolution : {integrity : sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==}
mdast-util-gfm-strikethrough@2.0.0 :
resolution : {integrity : sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==}
mdast-util-gfm-table@2.0.0 :
resolution : {integrity : sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==}
mdast-util-gfm-task-list-item@2.0.0 :
resolution : {integrity : sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==}
mdast-util-gfm@3.1.0 :
resolution : {integrity : sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==}
mdast-util-math@3.0.0 :
resolution : {integrity : sha512-Tl9GBNeG/AhJnQM221bJR2HPvLOSnLE/T9cJI9tlc6zwQk2nPk/4f0cHkOdEixQPC/j8UtKDdITswvLAy1OZ1w==}
mdast-util-mdx-expression@2.0.1 :
resolution : {integrity : sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==}
mdast-util-mdx-jsx@3.2.0 :
resolution : {integrity : sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==}
mdast-util-mdxjs-esm@2.0.1 :
resolution : {integrity : sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==}
mdast-util-phrasing@4.1.0 :
resolution : {integrity : sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==}
mdast-util-to-hast@13.2.0 :
resolution : {integrity : sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==}
mdast-util-to-markdown@2.1.2 :
resolution : {integrity : sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==}
mdast-util-to-string@4.0.0 :
resolution : {integrity : sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==}
2025-04-26 00:20:49 +08:00
mdurl@2.0.0 :
resolution : {integrity : sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==}
2025-04-22 13:52:56 +08:00
merge-stream@2.0.0 :
resolution : {integrity : sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
2025-04-17 20:36:11 +08:00
merge2@1.4.1 :
resolution : {integrity : sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
engines : {node : '>= 8' }
micromark-core-commonmark@2.0.3 :
resolution : {integrity : sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==}
micromark-extension-gfm-autolink-literal@2.1.0 :
resolution : {integrity : sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==}
micromark-extension-gfm-footnote@2.1.0 :
resolution : {integrity : sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==}
micromark-extension-gfm-strikethrough@2.1.0 :
resolution : {integrity : sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==}
micromark-extension-gfm-table@2.1.1 :
resolution : {integrity : sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==}
micromark-extension-gfm-tagfilter@2.0.0 :
resolution : {integrity : sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==}
micromark-extension-gfm-task-list-item@2.1.0 :
resolution : {integrity : sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==}
micromark-extension-gfm@3.0.0 :
resolution : {integrity : sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==}
micromark-extension-math@3.1.0 :
resolution : {integrity : sha512-lvEqd+fHjATVs+2v/8kg9i5Q0AP2k85H0WUOwpIVvUML8BapsMvh1XAogmQjOCsLpoKRCVQqEkQBB3NhVBcsOg==}
micromark-factory-destination@2.0.1 :
resolution : {integrity : sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==}
micromark-factory-label@2.0.1 :
resolution : {integrity : sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==}
micromark-factory-space@2.0.1 :
resolution : {integrity : sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==}
micromark-factory-title@2.0.1 :
resolution : {integrity : sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==}
micromark-factory-whitespace@2.0.1 :
resolution : {integrity : sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==}
micromark-util-character@2.1.1 :
resolution : {integrity : sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==}
micromark-util-chunked@2.0.1 :
resolution : {integrity : sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==}
micromark-util-classify-character@2.0.1 :
resolution : {integrity : sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==}
micromark-util-combine-extensions@2.0.1 :
resolution : {integrity : sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==}
micromark-util-decode-numeric-character-reference@2.0.2 :
resolution : {integrity : sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==}
micromark-util-decode-string@2.0.1 :
resolution : {integrity : sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==}
micromark-util-encode@2.0.1 :
resolution : {integrity : sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==}
micromark-util-html-tag-name@2.0.1 :
resolution : {integrity : sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==}
micromark-util-normalize-identifier@2.0.1 :
resolution : {integrity : sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==}
micromark-util-resolve-all@2.0.1 :
resolution : {integrity : sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==}
micromark-util-sanitize-uri@2.0.1 :
resolution : {integrity : sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==}
micromark-util-subtokenize@2.1.0 :
resolution : {integrity : sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==}
micromark-util-symbol@2.0.1 :
resolution : {integrity : sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==}
micromark-util-types@2.0.2 :
resolution : {integrity : sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==}
micromark@4.0.2 :
resolution : {integrity : sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==}
micromatch@4.0.8 :
resolution : {integrity : sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==}
engines : {node : '>=8.6' }
2025-04-22 13:52:56 +08:00
mime-db@1.52.0 :
resolution : {integrity : sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
engines : {node : '>= 0.6' }
mime-types@2.1.35 :
resolution : {integrity : sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
engines : {node : '>= 0.6' }
2025-10-25 20:46:43 +08:00
mimic-fn@2.1.0 :
resolution : {integrity : sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==}
engines : {node : '>=6' }
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
minimalistic-assert@1.0.1 :
resolution : {integrity : sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==}
2025-04-17 20:36:11 +08:00
minimatch@3.1.2 :
resolution : {integrity : sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
minimatch@9.0.5 :
resolution : {integrity : sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==}
engines : {node : '>=16 || 14 >=14.17' }
minimist@1.2.8 :
resolution : {integrity : sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
2025-10-25 20:46:43 +08:00
minipass@7.1.2 :
resolution : {integrity : sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==}
engines : {node : '>=16 || 14 >=14.17' }
2025-04-17 20:36:11 +08:00
motion-dom@12.7.4 :
resolution : {integrity : sha512-1ZUHAoSUMMxP6jPqyxlk9XUfb6NxMsnWPnH2YGhrOhTURLcXWbETi6eemoKb60Pe32NVJYduL4B62VQSO5Jq8Q==}
motion-utils@12.7.2 :
resolution : {integrity : sha512-XhZwqctxyJs89oX00zn3OGCuIIpVevbTa+u82usWBC6pSHUd2AoNWiYa7Du8tJxJy9TFbZ82pcn5t7NOm1PHAw==}
motion@12.7.4 :
resolution : {integrity : sha512-MBGrMbYageHw4iZJn+pGTr7abq5n53jCxYkhFC1It3vYukQPRWg5zij46MnwYGpLR8KG465MLHSASXot9edYOw==}
peerDependencies :
'@emotion/is-prop-valid' : '*'
react : ^18.0.0 || ^19.0.0
react-dom : ^18.0.0 || ^19.0.0
peerDependenciesMeta :
'@emotion/is-prop-valid' :
optional : true
react :
optional : true
react-dom :
optional : true
ms@2.1.3 :
resolution : {integrity : sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
nanoid@3.3.11 :
resolution : {integrity : sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==}
engines : {node : ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
hasBin : true
nanoid@5.1.5 :
resolution : {integrity : sha512-Ir/+ZpE9fDsNH0hQ3C68uyThDXzYcim2EqcZ8zn8Chtt1iylPT9xXJB0kPCnqzgcEGikO9RxSrh63MsmVCU7Fw==}
engines : {node : ^18 || >=20}
hasBin : true
2025-10-25 20:46:43 +08:00
napi-postinstall@0.3.4 :
resolution : {integrity : sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==}
engines : {node : ^12.20.0 || ^14.18.0 || >=16.0.0}
hasBin : true
2025-04-17 20:36:11 +08:00
natural-compare@1.4.0 :
resolution : {integrity : sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
2025-07-12 15:18:28 +08:00
negotiator@1.0.0 :
resolution : {integrity : sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==}
engines : {node : '>= 0.6' }
2025-04-22 13:52:56 +08:00
neo-async@2.6.2 :
resolution : {integrity : sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==}
2025-07-12 15:18:28 +08:00
next-intl@4.3.1 :
resolution : {integrity : sha512-FylHpOoQw5MpOyJt4cw8pNEGba7r3jKDSqt112fmBqXVceGR5YncmqpxS5MvSHsWRwbjqpOV8OsZCIY/4f4HWg==}
peerDependencies :
next : ^12.0.0 || ^13.0.0 || ^14.0.0 || ^15.0.0
react : ^16.8.0 || ^17.0.0 || ^18.0.0 || >=19.0.0-rc <19.0.0 || ^19.0.0
typescript : ^5.0.0
peerDependenciesMeta :
typescript :
optional : true
2025-04-20 11:18:05 +08:00
next-themes@0.4.6 :
resolution : {integrity : sha512-pZvgD5L0IEvX5/9GWyHMf3m8BKiVQwsCMHfoFosXtXBMnaS0ZnIJ9ST4b4NqLVKDEm8QBxoNNGNaBv2JNF6XNA==}
peerDependencies :
react : ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc
react-dom : ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc
2026-02-09 15:43:04 +08:00
next@15.5.10 :
resolution : {integrity : sha512-r0X65PNwyDDyOrWNKpQoZvOatw7BcsTPRKdwEqtc9cj3wv7mbBIk9tKed4klRaFXJdX0rugpuMTHslDrAU1bBg==}
2025-04-17 20:36:11 +08:00
engines : {node : ^18.18.0 || ^19.8.0 || >= 20.0.0}
hasBin : true
peerDependencies :
'@opentelemetry/api' : ^1.1.0
2025-09-04 22:26:33 +08:00
'@playwright/test' : ^1.51.1
2025-04-17 20:36:11 +08:00
babel-plugin-react-compiler : '*'
react : ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0
react-dom : ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0
sass : ^1.3.0
peerDependenciesMeta :
'@opentelemetry/api' :
optional : true
'@playwright/test' :
optional : true
babel-plugin-react-compiler :
optional : true
sass :
optional : true
2025-10-25 20:46:43 +08:00
node-int64@0.4.0 :
resolution : {integrity : sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==}
2025-04-22 13:52:56 +08:00
node-releases@2.0.19 :
resolution : {integrity : sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==}
2025-12-05 14:30:00 +08:00
node-releases@2.0.27 :
resolution : {integrity : sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==}
2025-10-25 20:46:43 +08:00
normalize-path@3.0.0 :
resolution : {integrity : sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
engines : {node : '>=0.10.0' }
2025-04-26 00:20:49 +08:00
novel@1.0.2 :
resolution : {integrity : sha512-lyMtoBsRCqgrQaNhlc8Ngpp+npJEQjPoGBLcnYlEr8mEf+lXZV7/m6CbEpGRfma+HZQVlU3YJOs4gCmzbLG+ow==}
peerDependencies :
react : '>=18'
2025-10-25 20:46:43 +08:00
npm-run-path@4.0.1 :
resolution : {integrity : sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==}
engines : {node : '>=8' }
nwsapi@2.2.22 :
resolution : {integrity : sha512-ujSMe1OWVn55euT1ihwCI1ZcAaAU3nxUiDwfDQldc51ZXaB9m2AyOn6/jh1BLe2t/G8xd6uKG1UBF2aZJeg2SQ==}
2025-04-17 20:36:11 +08:00
object-assign@4.1.1 :
resolution : {integrity : sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
engines : {node : '>=0.10.0' }
object-inspect@1.13.4 :
resolution : {integrity : sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==}
engines : {node : '>= 0.4' }
object-keys@1.1.1 :
resolution : {integrity : sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
engines : {node : '>= 0.4' }
object.assign@4.1.7 :
resolution : {integrity : sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==}
engines : {node : '>= 0.4' }
object.entries@1.1.9 :
resolution : {integrity : sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==}
engines : {node : '>= 0.4' }
object.fromentries@2.0.8 :
resolution : {integrity : sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==}
engines : {node : '>= 0.4' }
object.groupby@1.0.3 :
resolution : {integrity : sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==}
engines : {node : '>= 0.4' }
object.values@1.2.1 :
resolution : {integrity : sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==}
engines : {node : '>= 0.4' }
2025-10-25 20:46:43 +08:00
once@1.4.0 :
resolution : {integrity : sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
onetime@5.1.2 :
resolution : {integrity : sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==}
engines : {node : '>=6' }
2025-04-17 20:36:11 +08:00
optionator@0.9.4 :
resolution : {integrity : sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==}
engines : {node : '>= 0.8.0' }
2025-04-26 00:20:49 +08:00
orderedmap@2.1.1 :
resolution : {integrity : sha512-TvAWxi0nDe1j/rtMcWcIj94+Ffe6n7zhow33h40SKxmsmozs6dz/e+EajymfoFcHd7sxNn8yHM8839uixMOV6g==}
overlap-area@1.1.0 :
resolution : {integrity : sha512-3dlJgJCaVeXH0/eZjYVJvQiLVVrPO4U1ZGqlATtx6QGO3b5eNM6+JgUKa7oStBTdYuGTk7gVoABCW6Tp+dhRdw==}
2025-04-17 20:36:11 +08:00
own-keys@1.0.1 :
resolution : {integrity : sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==}
engines : {node : '>= 0.4' }
2025-10-25 20:46:43 +08:00
p-limit@2.3.0 :
resolution : {integrity : sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==}
engines : {node : '>=6' }
2025-04-17 20:36:11 +08:00
p-limit@3.1.0 :
resolution : {integrity : sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
engines : {node : '>=10' }
2025-10-25 20:46:43 +08:00
p-locate@4.1.0 :
resolution : {integrity : sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==}
engines : {node : '>=8' }
2025-04-17 20:36:11 +08:00
p-locate@5.0.0 :
resolution : {integrity : sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
engines : {node : '>=10' }
2025-10-25 20:46:43 +08:00
p-try@2.2.0 :
resolution : {integrity : sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==}
engines : {node : '>=6' }
package-json-from-dist@1.0.1 :
resolution : {integrity : sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==}
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
pako@1.0.11 :
resolution : {integrity : sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==}
pako@2.1.0 :
resolution : {integrity : sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==}
2025-04-17 20:36:11 +08:00
parent-module@1.0.1 :
resolution : {integrity : sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
engines : {node : '>=6' }
parse-entities@2.0.0 :
resolution : {integrity : sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==}
parse-entities@4.0.2 :
resolution : {integrity : sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==}
2025-10-25 20:46:43 +08:00
parse-json@5.2.0 :
resolution : {integrity : sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==}
engines : {node : '>=8' }
2025-04-17 20:36:11 +08:00
parse5@7.2.1 :
resolution : {integrity : sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==}
path-exists@4.0.0 :
resolution : {integrity : sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
engines : {node : '>=8' }
2025-10-25 20:46:43 +08:00
path-is-absolute@1.0.1 :
resolution : {integrity : sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
engines : {node : '>=0.10.0' }
2025-04-17 20:36:11 +08:00
path-key@3.1.1 :
resolution : {integrity : sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
engines : {node : '>=8' }
path-parse@1.0.7 :
resolution : {integrity : sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
2025-10-25 20:46:43 +08:00
path-scurry@1.11.1 :
resolution : {integrity : sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==}
engines : {node : '>=16 || 14 >=14.18' }
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
performance-now@2.1.0 :
resolution : {integrity : sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==}
2025-04-17 20:36:11 +08:00
picocolors@1.1.1 :
resolution : {integrity : sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
picomatch@2.3.1 :
resolution : {integrity : sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
engines : {node : '>=8.6' }
picomatch@4.0.2 :
resolution : {integrity : sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==}
engines : {node : '>=12' }
2025-10-25 20:46:43 +08:00
pirates@4.0.7 :
resolution : {integrity : sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==}
engines : {node : '>= 6' }
pkg-dir@4.2.0 :
resolution : {integrity : sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==}
engines : {node : '>=8' }
2025-04-17 20:36:11 +08:00
possible-typed-array-names@1.1.0 :
resolution : {integrity : sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==}
engines : {node : '>= 0.4' }
2025-04-26 00:20:49 +08:00
postcss-selector-parser@6.0.10 :
resolution : {integrity : sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==}
engines : {node : '>=4' }
2025-04-17 20:36:11 +08:00
postcss@8.4.31 :
resolution : {integrity : sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==}
engines : {node : ^10 || ^12 || >=14}
postcss@8.5.3 :
resolution : {integrity : sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==}
engines : {node : ^10 || ^12 || >=14}
prelude-ls@1.2.1 :
resolution : {integrity : sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
engines : {node : '>= 0.8.0' }
prettier-plugin-tailwindcss@0.6.11 :
resolution : {integrity : sha512-YxaYSIvZPAqhrrEpRtonnrXdghZg1irNg4qrjboCXrpybLWVs55cW2N3juhspVJiO0JBvYJT8SYsJpc8OQSnsA==}
engines : {node : '>=14.21.3' }
peerDependencies :
'@ianvs/prettier-plugin-sort-imports' : '*'
'@prettier/plugin-pug' : '*'
'@shopify/prettier-plugin-liquid' : '*'
'@trivago/prettier-plugin-sort-imports' : '*'
'@zackad/prettier-plugin-twig' : '*'
prettier : ^3.0
prettier-plugin-astro : '*'
prettier-plugin-css-order : '*'
prettier-plugin-import-sort : '*'
prettier-plugin-jsdoc : '*'
prettier-plugin-marko : '*'
prettier-plugin-multiline-arrays : '*'
prettier-plugin-organize-attributes : '*'
prettier-plugin-organize-imports : '*'
prettier-plugin-sort-imports : '*'
prettier-plugin-style-order : '*'
prettier-plugin-svelte : '*'
peerDependenciesMeta :
'@ianvs/prettier-plugin-sort-imports' :
optional : true
'@prettier/plugin-pug' :
optional : true
'@shopify/prettier-plugin-liquid' :
optional : true
'@trivago/prettier-plugin-sort-imports' :
optional : true
'@zackad/prettier-plugin-twig' :
optional : true
prettier-plugin-astro :
optional : true
prettier-plugin-css-order :
optional : true
prettier-plugin-import-sort :
optional : true
prettier-plugin-jsdoc :
optional : true
prettier-plugin-marko :
optional : true
prettier-plugin-multiline-arrays :
optional : true
prettier-plugin-organize-attributes :
optional : true
prettier-plugin-organize-imports :
optional : true
prettier-plugin-sort-imports :
optional : true
prettier-plugin-style-order :
optional : true
prettier-plugin-svelte :
optional : true
prettier@3.5.3 :
resolution : {integrity : sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==}
engines : {node : '>=14' }
hasBin : true
2025-10-25 20:46:43 +08:00
pretty-format@27.5.1 :
resolution : {integrity : sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==}
engines : {node : ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
pretty-format@30.2.0 :
resolution : {integrity : sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==}
engines : {node : ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
2025-04-17 20:36:11 +08:00
prismjs@1.27.0 :
resolution : {integrity : sha512-t13BGPUlFDR7wRB5kQDG4jjl7XeuH6jbJGt11JHPL96qwsEHNX2+68tFXqc1/k+/jALsbSWJKUOT/hcYAZ5LkA==}
engines : {node : '>=6' }
prismjs@1.30.0 :
resolution : {integrity : sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==}
engines : {node : '>=6' }
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
process-nextick-args@2.0.1 :
resolution : {integrity : sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==}
2025-04-17 20:36:11 +08:00
prop-types@15.8.1 :
resolution : {integrity : sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==}
property-information@5.6.0 :
resolution : {integrity : sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==}
property-information@7.0.0 :
resolution : {integrity : sha512-7D/qOz/+Y4X/rzSB6jKxKUsQnphO046ei8qxG59mtM3RG3DHgTK81HrxrmoDVINJb8NKT5ZsRbwHvQ6B68Iyhg==}
2025-04-26 00:20:49 +08:00
prosemirror-changeset@2.2.1 :
resolution : {integrity : sha512-J7msc6wbxB4ekDFj+n9gTW/jav/p53kdlivvuppHsrZXCaQdVgRghoZbSS3kwrRyAstRVQ4/+u5k7YfLgkkQvQ==}
prosemirror-collab@1.3.1 :
resolution : {integrity : sha512-4SnynYR9TTYaQVXd/ieUvsVV4PDMBzrq2xPUWutHivDuOshZXqQ5rGbZM84HEaXKbLdItse7weMGOUdDVcLKEQ==}
prosemirror-commands@1.7.1 :
resolution : {integrity : sha512-rT7qZnQtx5c0/y/KlYaGvtG411S97UaL6gdp6RIZ23DLHanMYLyfGBV5DtSnZdthQql7W+lEVbpSfwtO8T+L2w==}
prosemirror-dropcursor@1.8.2 :
resolution : {integrity : sha512-CCk6Gyx9+Tt2sbYk5NK0nB1ukHi2ryaRgadV/LvyNuO3ena1payM2z6Cg0vO1ebK8cxbzo41ku2DE5Axj1Zuiw==}
prosemirror-gapcursor@1.3.2 :
resolution : {integrity : sha512-wtjswVBd2vaQRrnYZaBCbyDqr232Ed4p2QPtRIUK5FuqHYKGWkEwl08oQM4Tw7DOR0FsasARV5uJFvMZWxdNxQ==}
prosemirror-history@1.4.1 :
resolution : {integrity : sha512-2JZD8z2JviJrboD9cPuX/Sv/1ChFng+xh2tChQ2X4bB2HeK+rra/bmJ3xGntCcjhOqIzSDG6Id7e8RJ9QPXLEQ==}
prosemirror-inputrules@1.5.0 :
resolution : {integrity : sha512-K0xJRCmt+uSw7xesnHmcn72yBGTbY45vm8gXI4LZXbx2Z0jwh5aF9xrGQgrVPu0WbyFVFF3E/o9VhJYz6SQWnA==}
prosemirror-keymap@1.2.2 :
resolution : {integrity : sha512-EAlXoksqC6Vbocqc0GtzCruZEzYgrn+iiGnNjsJsH4mrnIGex4qbLdWWNza3AW5W36ZRrlBID0eM6bdKH4OStQ==}
prosemirror-markdown@1.13.2 :
resolution : {integrity : sha512-FPD9rHPdA9fqzNmIIDhhnYQ6WgNoSWX9StUZ8LEKapaXU9i6XgykaHKhp6XMyXlOWetmaFgGDS/nu/w9/vUc5g==}
prosemirror-menu@1.2.5 :
resolution : {integrity : sha512-qwXzynnpBIeg1D7BAtjOusR+81xCp53j7iWu/IargiRZqRjGIlQuu1f3jFi+ehrHhWMLoyOQTSRx/IWZJqOYtQ==}
prosemirror-model@1.25.1 :
resolution : {integrity : sha512-AUvbm7qqmpZa5d9fPKMvH1Q5bqYQvAZWOGRvxsB6iFLyycvC9MwNemNVjHVrWgjaoxAfY8XVg7DbvQ/qxvI9Eg==}
prosemirror-schema-basic@1.2.4 :
resolution : {integrity : sha512-ELxP4TlX3yr2v5rM7Sb70SqStq5NvI15c0j9j/gjsrO5vaw+fnnpovCLEGIcpeGfifkuqJwl4fon6b+KdrODYQ==}
prosemirror-schema-list@1.5.1 :
resolution : {integrity : sha512-927lFx/uwyQaGwJxLWCZRkjXG0p48KpMj6ueoYiu4JX05GGuGcgzAy62dfiV8eFZftgyBUvLx76RsMe20fJl+Q==}
prosemirror-state@1.4.3 :
resolution : {integrity : sha512-goFKORVbvPuAQaXhpbemJFRKJ2aixr+AZMGiquiqKxaucC6hlpHNZHWgz5R7dS4roHiwq9vDctE//CZ++o0W1Q==}
prosemirror-tables@1.7.1 :
resolution : {integrity : sha512-eRQ97Bf+i9Eby99QbyAiyov43iOKgWa7QCGly+lrDt7efZ1v8NWolhXiB43hSDGIXT1UXgbs4KJN3a06FGpr1Q==}
prosemirror-trailing-node@3.0.0 :
resolution : {integrity : sha512-xiun5/3q0w5eRnGYfNlW1uU9W6x5MoFKWwq/0TIRgt09lv7Hcser2QYV8t4muXbEr+Fwo0geYn79Xs4GKywrRQ==}
peerDependencies :
prosemirror-model : ^1.22.1
prosemirror-state : ^1.4.2
prosemirror-view : ^1.33.8
prosemirror-transform@1.10.4 :
resolution : {integrity : sha512-pwDy22nAnGqNR1feOQKHxoFkkUtepoFAd3r2hbEDsnf4wp57kKA36hXsB3njA9FtONBEwSDnDeCiJe+ItD+ykw==}
prosemirror-view@1.39.2 :
resolution : {integrity : sha512-BmOkml0QWNob165gyUxXi5K5CVUgVPpqMEAAml/qzgKn9boLUWVPzQ6LtzXw8Cn1GtRQX4ELumPxqtLTDaAKtg==}
punycode.js@2.3.1 :
resolution : {integrity : sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==}
engines : {node : '>=6' }
2025-04-17 20:36:11 +08:00
punycode@2.3.1 :
resolution : {integrity : sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
engines : {node : '>=6' }
2025-10-25 20:46:43 +08:00
pure-rand@7.0.1 :
resolution : {integrity : sha512-oTUZM/NAZS8p7ANR3SHh30kXB+zK2r2BPcEn/awJIbOvq82WoMN4p62AWWp3Hhw50G0xMsw1mhIBLqHw64EcNQ==}
2025-04-17 20:36:11 +08:00
queue-microtask@1.2.3 :
resolution : {integrity : sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
raf@3.4.1 :
resolution : {integrity : sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==}
2025-04-22 13:52:56 +08:00
randombytes@2.1.0 :
resolution : {integrity : sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==}
raw-loader@4.0.2 :
resolution : {integrity : sha512-ZnScIV3ag9A4wPX/ZayxL/jZH+euYb6FcUinPcgiQW0+UBtEv0O6Q3lGd3cqJ+GHH+rksEv3Pj99oxJ3u3VIKA==}
engines : {node : '>= 10.13.0' }
peerDependencies :
webpack : ^4.0.0 || ^5.0.0
2025-05-28 14:13:46 +08:00
rc-overflow@1.4.1 :
resolution : {integrity : sha512-3MoPQQPV1uKyOMVNd6SZfONi+f3st0r8PksexIdBTeIYbMX0Jr+k7pHEDvsXtR4BpCv90/Pv2MovVNhktKrwvw==}
peerDependencies :
react : '>=16.9.0'
react-dom : '>=16.9.0'
rc-resize-observer@1.4.3 :
resolution : {integrity : sha512-YZLjUbyIWox8E9i9C3Tm7ia+W7euPItNWSPX5sCcQTYbnwDb5uNpnLHQCG1f22oZWUhLw4Mv2tFmeWe68CDQRQ==}
peerDependencies :
react : '>=16.9.0'
react-dom : '>=16.9.0'
rc-util@5.44.4 :
resolution : {integrity : sha512-resueRJzmHG9Q6rI/DfK6Kdv9/Lfls05vzMs1Sk3M2P+3cJa+MakaZyWY8IPfehVuhPJFKrIY1IK4GqbiaiY5w==}
peerDependencies :
react : '>=16.9.0'
react-dom : '>=16.9.0'
2025-04-26 00:20:49 +08:00
react-css-styled@1.1.9 :
resolution : {integrity : sha512-M7fJZ3IWFaIHcZEkoFOnkjdiUFmwd8d+gTh2bpqMOcnxy/0Gsykw4dsL4QBiKsxcGow6tETUa4NAUcmJF+/nfw==}
2025-04-17 20:36:11 +08:00
react-dom@19.1.0 :
resolution : {integrity : sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==}
peerDependencies :
react : ^19.1.0
2025-04-23 21:16:58 +08:00
react-hook-form@7.56.1 :
resolution : {integrity : sha512-qWAVokhSpshhcEuQDSANHx3jiAEFzu2HAaaQIzi/r9FNPm1ioAvuJSD4EuZzWd7Al7nTRKcKPnBKO7sRn+zavQ==}
engines : {node : '>=18.0.0' }
peerDependencies :
react : ^16.8.0 || ^17 || ^18 || ^19
2025-04-17 20:36:11 +08:00
react-is@16.13.1 :
resolution : {integrity : sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
2025-10-25 20:46:43 +08:00
react-is@17.0.2 :
resolution : {integrity : sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==}
2025-04-17 20:36:11 +08:00
react-is@18.3.1 :
resolution : {integrity : sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==}
react-markdown@10.1.0 :
resolution : {integrity : sha512-qKxVopLT/TyA6BX3Ue5NwabOsAzm0Q7kAPwq6L+wWDwisYs7R8vZ0nRXqq6rkueboxpkjvLGU9fWifiX/ZZFxQ==}
peerDependencies :
'@types/react' : '>=18'
react : '>=18'
2025-04-26 00:20:49 +08:00
react-markdown@9.1.0 :
resolution : {integrity : sha512-xaijuJB0kzGiUdG7nc2MOMDUDBWPyGAjZtUrow9XxUeua8IqeP+VlIfAZ3bphpcLTnSZXz6z9jcVC/TCwbfgdw==}
peerDependencies :
'@types/react' : '>=18'
react : '>=18'
react-moveable@0.56.0 :
resolution : {integrity : sha512-FmJNmIOsOA36mdxbrc/huiE4wuXSRlmon/o+/OrfNhSiYYYL0AV5oObtPluEhb2Yr/7EfYWBHTxF5aWAvjg1SA==}
2025-04-20 11:18:05 +08:00
react-remove-scroll-bar@2.3.8 :
resolution : {integrity : sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==}
engines : {node : '>=10' }
peerDependencies :
'@types/react' : '*'
react : ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
peerDependenciesMeta :
'@types/react' :
optional : true
react-remove-scroll@2.6.3 :
resolution : {integrity : sha512-pnAi91oOk8g8ABQKGF5/M9qxmmOPxaAnopyTHYfqYEwJhyFrbbBtHuSgtKEoH0jpcxx5o3hXqH1mNd9/Oi+8iQ==}
engines : {node : '>=10' }
peerDependencies :
'@types/react' : '*'
react : ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
peerDependenciesMeta :
'@types/react' :
optional : true
2025-04-26 00:20:49 +08:00
react-selecto@1.26.3 :
resolution : {integrity : sha512-Ubik7kWSnZyQEBNro+1k38hZaI1tJarE+5aD/qsqCOA1uUBSjgKVBy3EWRzGIbdmVex7DcxznFZLec/6KZNvwQ==}
2025-04-20 11:18:05 +08:00
react-style-singleton@2.2.3 :
resolution : {integrity : sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==}
engines : {node : '>=10' }
peerDependencies :
'@types/react' : '*'
react : ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
peerDependenciesMeta :
'@types/react' :
optional : true
2025-04-17 20:36:11 +08:00
react-syntax-highlighter@15.6.1 :
resolution : {integrity : sha512-OqJ2/vL7lEeV5zTJyG7kmARppUjiB9h9udl4qHQjjgEos66z00Ia0OckwYfRxCSFrW8RJIBnsBwQsHZbVPspqg==}
peerDependencies :
react : '>= 0.14.0'
2025-04-26 00:20:49 +08:00
react-tweet@3.2.2 :
resolution : {integrity : sha512-hIkxAVPpN2RqWoDEbo3TTnN/pDcp9/Jb6pTgiA4EbXa9S+m2vHIvvZKHR+eS0PDIsYqe+zTmANRa5k6+/iwGog==}
peerDependencies :
react : ^18.0.0 || ^19.0.0
react-dom : ^18.0.0 || ^19.0.0
2025-04-17 20:36:11 +08:00
react@19.1.0 :
resolution : {integrity : sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==}
engines : {node : '>=0.10.0' }
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
readable-stream@2.3.8 :
resolution : {integrity : sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==}
2025-04-17 20:36:11 +08:00
reflect.getprototypeof@1.0.10 :
resolution : {integrity : sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==}
engines : {node : '>= 0.4' }
refractor@3.6.0 :
resolution : {integrity : sha512-MY9W41IOWxxk31o+YvFCNyNzdkc9M20NoZK5vq6jkv4I/uh2zkWcfudj0Q1fovjUQJrNewS9NMzeTtqPf+n5EA==}
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
regenerator-runtime@0.13.11 :
resolution : {integrity : sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==}
2025-04-17 20:36:11 +08:00
regenerator-runtime@0.14.1 :
resolution : {integrity : sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==}
regexp.prototype.flags@1.5.4 :
resolution : {integrity : sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==}
engines : {node : '>= 0.4' }
rehype-katex@7.0.1 :
resolution : {integrity : sha512-OiM2wrZ/wuhKkigASodFoo8wimG3H12LWQaH8qSPVJn9apWKFSH3YOCtbKpBorTVw/eI7cuT21XBbvwEswbIOA==}
remark-gfm@4.0.1 :
resolution : {integrity : sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==}
remark-math@6.0.0 :
resolution : {integrity : sha512-MMqgnP74Igy+S3WwnhQ7kqGlEerTETXMvJhrUzDikVZ2/uogJCb+WHUg97hK9/jcfc0dkD73s3LN8zU49cTEtA==}
remark-parse@11.0.0 :
resolution : {integrity : sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==}
remark-rehype@11.1.2 :
resolution : {integrity : sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==}
remark-stringify@11.0.0 :
resolution : {integrity : sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==}
2025-10-25 20:46:43 +08:00
require-directory@2.1.1 :
resolution : {integrity : sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
engines : {node : '>=0.10.0' }
2025-04-22 13:52:56 +08:00
require-from-string@2.0.2 :
resolution : {integrity : sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==}
engines : {node : '>=0.10.0' }
2025-05-28 14:13:46 +08:00
resize-observer-polyfill@1.5.1 :
resolution : {integrity : sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==}
2025-10-25 20:46:43 +08:00
resolve-cwd@3.0.0 :
resolution : {integrity : sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==}
engines : {node : '>=8' }
2025-04-17 20:36:11 +08:00
resolve-from@4.0.0 :
resolution : {integrity : sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
engines : {node : '>=4' }
2025-10-25 20:46:43 +08:00
resolve-from@5.0.0 :
resolution : {integrity : sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==}
engines : {node : '>=8' }
2025-04-17 20:36:11 +08:00
resolve-pkg-maps@1.0.0 :
resolution : {integrity : sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==}
resolve@1.22.10 :
resolution : {integrity : sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==}
engines : {node : '>= 0.4' }
hasBin : true
resolve@2.0.0-next.5 :
resolution : {integrity : sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==}
hasBin : true
reusify@1.1.0 :
resolution : {integrity : sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==}
engines : {iojs: '>=1.0.0', node : '>=0.10.0' }
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
rgbcolor@1.0.1 :
resolution : {integrity : sha512-9aZLIrhRaD97sgVhtJOW6ckOEh6/GnvQtdVNfdZ6s67+3/XwLS9lBcQYzEEhYVeUowN7pRzMLsyGhK2i/xvWbw==}
engines : {node : '>= 0.8.15' }
2025-04-26 00:20:49 +08:00
rope-sequence@1.3.4 :
resolution : {integrity : sha512-UT5EDe2cu2E/6O4igUr5PSFs23nvvukicWHx6GnOPlHAiiYbzNuCRQCuiUdHJQcqKalLKlrYJnjY0ySGsXNQXQ==}
2025-10-25 20:46:43 +08:00
rrweb-cssom@0.8.0 :
resolution : {integrity : sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==}
2025-04-17 20:36:11 +08:00
run-parallel@1.2.0 :
resolution : {integrity : sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
safe-array-concat@1.1.3 :
resolution : {integrity : sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==}
engines : {node : '>=0.4' }
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
safe-buffer@5.1.2 :
resolution : {integrity : sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==}
2025-04-22 13:52:56 +08:00
safe-buffer@5.2.1 :
resolution : {integrity : sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
2025-04-17 20:36:11 +08:00
safe-push-apply@1.0.0 :
resolution : {integrity : sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==}
engines : {node : '>= 0.4' }
safe-regex-test@1.1.0 :
resolution : {integrity : sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==}
engines : {node : '>= 0.4' }
2025-10-25 20:46:43 +08:00
safer-buffer@2.1.2 :
resolution : {integrity : sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
sax@1.4.3 :
resolution : {integrity : sha512-yqYn1JhPczigF94DMS+shiDMjDowYO6y9+wB/4WgO0Y19jWYk0lQ4tuG5KI7kj4FTp1wxPj5IFfcrz/s1c3jjQ==}
2025-10-25 20:46:43 +08:00
saxes@6.0.0 :
resolution : {integrity : sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==}
engines : {node : '>=v12.22.7' }
2025-04-17 20:36:11 +08:00
scheduler@0.26.0 :
resolution : {integrity : sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==}
2025-04-22 13:52:56 +08:00
schema-utils@3.3.0 :
resolution : {integrity : sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==}
engines : {node : '>= 10.13.0' }
2025-12-05 14:30:00 +08:00
schema-utils@4.3.3 :
resolution : {integrity : sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==}
2025-04-22 13:52:56 +08:00
engines : {node : '>= 10.13.0' }
2025-04-26 00:20:49 +08:00
selecto@1.26.3 :
resolution : {integrity : sha512-gZHgqMy5uyB6/2YDjv3Qqaf7bd2hTDOpPdxXlrez4R3/L0GiEWDCFaUfrflomgqdb3SxHF2IXY0Jw0EamZi7cw==}
2025-04-17 20:36:11 +08:00
semver@6.3.1 :
resolution : {integrity : sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
hasBin : true
2025-10-25 20:46:43 +08:00
semver@7.7.3 :
resolution : {integrity : sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==}
engines : {node : '>=10' }
hasBin : true
2026-02-09 15:43:04 +08:00
semver@7.7.4 :
resolution : {integrity : sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==}
engines : {node : '>=10' }
hasBin : true
2025-04-22 13:52:56 +08:00
serialize-javascript@6.0.2 :
resolution : {integrity : sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==}
2025-04-17 20:36:11 +08:00
set-function-length@1.2.2 :
resolution : {integrity : sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==}
engines : {node : '>= 0.4' }
set-function-name@2.0.2 :
resolution : {integrity : sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==}
engines : {node : '>= 0.4' }
set-proto@1.0.0 :
resolution : {integrity : sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==}
engines : {node : '>= 0.4' }
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
setimmediate@1.0.5 :
resolution : {integrity : sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==}
2025-12-05 14:30:00 +08:00
sharp@0.34.5 :
resolution : {integrity : sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==}
2025-04-17 20:36:11 +08:00
engines : {node : ^18.17.0 || ^20.3.0 || >=21.0.0}
shebang-command@2.0.0 :
resolution : {integrity : sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
engines : {node : '>=8' }
shebang-regex@3.0.0 :
resolution : {integrity : sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
engines : {node : '>=8' }
side-channel-list@1.0.0 :
resolution : {integrity : sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==}
engines : {node : '>= 0.4' }
side-channel-map@1.0.1 :
resolution : {integrity : sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==}
engines : {node : '>= 0.4' }
side-channel-weakmap@1.0.2 :
resolution : {integrity : sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==}
engines : {node : '>= 0.4' }
side-channel@1.1.0 :
resolution : {integrity : sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==}
engines : {node : '>= 0.4' }
2025-10-25 20:46:43 +08:00
signal-exit@3.0.7 :
resolution : {integrity : sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
signal-exit@4.1.0 :
resolution : {integrity : sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
engines : {node : '>=14' }
slash@3.0.0 :
resolution : {integrity : sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
engines : {node : '>=8' }
2025-04-26 00:20:49 +08:00
sonner@2.0.3 :
resolution : {integrity : sha512-njQ4Hht92m0sMqqHVDL32V2Oun9W1+PHO9NDv9FHfJjT3JT22IG4Jpo3FPQy+mouRKCXFWO+r67v6MrHX2zeIA==}
peerDependencies :
react : ^18.0.0 || ^19.0.0 || ^19.0.0-rc
react-dom : ^18.0.0 || ^19.0.0 || ^19.0.0-rc
2025-04-17 20:36:11 +08:00
source-map-js@1.2.1 :
resolution : {integrity : sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
engines : {node : '>=0.10.0' }
2025-10-25 20:46:43 +08:00
source-map-support@0.5.13 :
resolution : {integrity : sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==}
2025-04-22 13:52:56 +08:00
source-map-support@0.5.21 :
resolution : {integrity : sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
source-map@0.6.1 :
resolution : {integrity : sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
engines : {node : '>=0.10.0' }
2025-04-17 20:36:11 +08:00
space-separated-tokens@1.1.5 :
resolution : {integrity : sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==}
space-separated-tokens@2.0.2 :
resolution : {integrity : sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==}
2025-10-25 20:46:43 +08:00
sprintf-js@1.0.3 :
resolution : {integrity : sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
2025-04-17 20:36:11 +08:00
stable-hash@0.0.5 :
resolution : {integrity : sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA==}
2025-10-25 20:46:43 +08:00
stack-utils@2.0.6 :
resolution : {integrity : sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==}
engines : {node : '>=10' }
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
stackblur-canvas@2.7.0 :
resolution : {integrity : sha512-yf7OENo23AGJhBriGx0QivY5JP6Y1HbrrDI6WLt6C5auYZXlQrheoY8hD4ibekFKz1HOfE48Ww8kMWMnJD/zcQ==}
engines : {node : '>=0.1.14' }
2025-10-25 20:46:43 +08:00
string-length@4.0.2 :
resolution : {integrity : sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==}
engines : {node : '>=10' }
string-width@4.2.3 :
resolution : {integrity : sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
engines : {node : '>=8' }
string-width@5.1.2 :
resolution : {integrity : sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==}
engines : {node : '>=12' }
2025-04-17 20:36:11 +08:00
string.prototype.includes@2.0.1 :
resolution : {integrity : sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==}
engines : {node : '>= 0.4' }
string.prototype.matchall@4.0.12 :
resolution : {integrity : sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==}
engines : {node : '>= 0.4' }
string.prototype.repeat@1.0.0 :
resolution : {integrity : sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==}
string.prototype.trim@1.2.10 :
resolution : {integrity : sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==}
engines : {node : '>= 0.4' }
string.prototype.trimend@1.0.9 :
resolution : {integrity : sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==}
engines : {node : '>= 0.4' }
string.prototype.trimstart@1.0.8 :
resolution : {integrity : sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==}
engines : {node : '>= 0.4' }
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
string_decoder@1.1.1 :
resolution : {integrity : sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==}
2025-04-17 20:36:11 +08:00
stringify-entities@4.0.4 :
resolution : {integrity : sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==}
2025-10-25 20:46:43 +08:00
strip-ansi@6.0.1 :
resolution : {integrity : sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
engines : {node : '>=8' }
strip-ansi@7.1.2 :
resolution : {integrity : sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==}
engines : {node : '>=12' }
2025-04-17 20:36:11 +08:00
strip-bom@3.0.0 :
resolution : {integrity : sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==}
engines : {node : '>=4' }
2025-10-25 20:46:43 +08:00
strip-bom@4.0.0 :
resolution : {integrity : sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==}
engines : {node : '>=8' }
strip-final-newline@2.0.0 :
resolution : {integrity : sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==}
engines : {node : '>=6' }
2025-04-17 20:36:11 +08:00
strip-json-comments@3.1.1 :
resolution : {integrity : sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
engines : {node : '>=8' }
style-to-js@1.1.16 :
resolution : {integrity : sha512-/Q6ld50hKYPH3d/r6nr117TZkHR0w0kGGIVfpG9N6D8NymRPM9RqCUv4pRpJ62E5DqOYx2AFpbZMyCPnjQCnOw==}
style-to-object@1.0.8 :
resolution : {integrity : sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==}
styled-jsx@5.1.6 :
resolution : {integrity : sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==}
engines : {node : '>= 12.0.0' }
peerDependencies :
'@babel/core' : '*'
babel-plugin-macros : '*'
react : '>= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0'
peerDependenciesMeta :
'@babel/core' :
optional : true
babel-plugin-macros :
optional : true
supports-color@7.2.0 :
resolution : {integrity : sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
engines : {node : '>=8' }
2025-04-22 13:52:56 +08:00
supports-color@8.1.1 :
resolution : {integrity : sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==}
engines : {node : '>=10' }
2025-04-17 20:36:11 +08:00
supports-preserve-symlinks-flag@1.0.0 :
resolution : {integrity : sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
engines : {node : '>= 0.4' }
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
svg-pathdata@6.0.3 :
resolution : {integrity : sha512-qsjeeq5YjBZ5eMdFuUa4ZosMLxgr5RZ+F+Y1OrDhuOCEInRMA3x74XdBtggJcj9kOeInz0WE+LgCPDkZFlBYJw==}
engines : {node : '>=12.0.0' }
2025-04-26 00:20:49 +08:00
swr@2.3.3 :
resolution : {integrity : sha512-dshNvs3ExOqtZ6kJBaAsabhPdHyeY4P2cKwRCniDVifBMoG/SVI7tfLWqPXriVspf2Rg4tPzXJTnwaihIeFw2A==}
peerDependencies :
react : ^16.11.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
2025-10-25 20:46:43 +08:00
symbol-tree@3.2.4 :
resolution : {integrity : sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==}
synckit@0.11.11 :
resolution : {integrity : sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw==}
engines : {node : ^14.18.0 || >=16.0.0}
2025-04-17 20:36:11 +08:00
tailwind-merge@3.2.0 :
resolution : {integrity : sha512-FQT/OVqCD+7edmmJpsgCsY820RTD5AkBryuG5IUqR5YQZSdj5xlH5nLgH7YPths7WsLPSpSBNneJdM8aS8aeFA==}
tailwindcss@4.1.4 :
resolution : {integrity : sha512-1ZIUqtPITFbv/DxRmDr5/agPqJwF69d24m9qmM1939TJehgY539CtzeZRjbLt5G6fSy/7YqqYsfvoTEw9xUI2A==}
tapable@2.2.1 :
resolution : {integrity : sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==}
engines : {node : '>=6' }
2025-12-05 14:30:00 +08:00
tapable@2.3.0 :
resolution : {integrity : sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==}
2025-09-04 22:26:33 +08:00
engines : {node : '>=6' }
2026-01-06 09:07:18 +08:00
terser-webpack-plugin@5.3.16 :
resolution : {integrity : sha512-h9oBFCWrq78NyWWVcSwZarJkZ01c2AyGrzs1crmHZO3QUg9D61Wu4NPjBy69n7JqylFF5y+CsUZYmYEIZ3mR+Q==}
2025-04-22 13:52:56 +08:00
engines : {node : '>= 10.13.0' }
peerDependencies :
'@swc/core' : '*'
esbuild : '*'
uglify-js : '*'
webpack : ^5.1.0
peerDependenciesMeta :
'@swc/core' :
optional : true
esbuild :
optional : true
uglify-js :
optional : true
2026-02-06 10:29:43 +08:00
terser@5.46.0 :
resolution : {integrity : sha512-jTwoImyr/QbOWFFso3YoU3ik0jBBDJ6JTOQiy/J2YxVJdZCc+5u7skhNwiOR3FQIygFqVUPHl7qbbxtjW2K3Qg==}
2025-04-22 13:52:56 +08:00
engines : {node : '>=10' }
hasBin : true
2025-10-25 20:46:43 +08:00
test-exclude@6.0.0 :
resolution : {integrity : sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==}
engines : {node : '>=8' }
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
text-segmentation@1.0.3 :
resolution : {integrity : sha512-iOiPUo/BGnZ6+54OsWxZidGCsdU8YbE4PSpdPinp7DeMtUJNJBoJ/ouUSTJjHkh1KntHaltHl/gDs2FC4i5+Nw==}
2025-04-17 20:36:11 +08:00
tinyglobby@0.2.12 :
resolution : {integrity : sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==}
engines : {node : '>=12.0.0' }
2025-04-26 00:20:49 +08:00
tippy.js@6.3.7 :
resolution : {integrity : sha512-E1d3oP2emgJ9dRQZdf3Kkn0qJgI6ZLpyS5z6ZkY1DF3kaQaBsGZsndEpHwx+eC+tYM41HaSNvNtLx8tU57FzTQ==}
tiptap-extension-global-drag-handle@0.1.18 :
resolution : {integrity : sha512-jwFuy1K8DP3a4bFy76Hpc63w1Sil0B7uZ3mvhQomVvUFCU787Lg2FowNhn7NFzeyok761qY2VG+PZ/FDthWUdg==}
tiptap-markdown@0.8.10 :
resolution : {integrity : sha512-iDVkR2BjAqkTDtFX0h94yVvE2AihCXlF0Q7RIXSJPRSR5I0PA1TMuAg6FHFpmqTn4tPxJ0by0CK7PUMlnFLGEQ==}
peerDependencies :
'@tiptap/core' : ^2.0.3
2025-10-25 20:46:43 +08:00
tldts-core@6.1.86 :
resolution : {integrity : sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA==}
tldts@6.1.86 :
resolution : {integrity : sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ==}
hasBin : true
tmpl@1.0.5 :
resolution : {integrity : sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==}
2025-04-17 20:36:11 +08:00
to-regex-range@5.0.1 :
resolution : {integrity : sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
engines : {node : '>=8.0' }
2025-10-25 20:46:43 +08:00
tough-cookie@5.1.2 :
resolution : {integrity : sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==}
engines : {node : '>=16' }
tr46@5.1.1 :
resolution : {integrity : sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==}
engines : {node : '>=18' }
2025-04-17 20:36:11 +08:00
trim-lines@3.0.1 :
resolution : {integrity : sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==}
trough@2.2.0 :
resolution : {integrity : sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==}
ts-api-utils@2.1.0 :
resolution : {integrity : sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==}
engines : {node : '>=18.12' }
peerDependencies :
typescript : '>=4.8.4'
2025-10-25 20:46:43 +08:00
ts-jest@29.4.5 :
resolution : {integrity : sha512-HO3GyiWn2qvTQA4kTgjDcXiMwYQt68a1Y8+JuLRVpdIzm+UOLSHgl/XqR4c6nzJkq5rOkjc02O2I7P7l/Yof0Q==}
engines : {node : ^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0}
hasBin : true
peerDependencies :
'@babel/core' : '>=7.0.0-beta.0 <8'
'@jest/transform' : ^29.0.0 || ^30.0.0
'@jest/types' : ^29.0.0 || ^30.0.0
babel-jest : ^29.0.0 || ^30.0.0
esbuild : '*'
jest : ^29.0.0 || ^30.0.0
jest-util : ^29.0.0 || ^30.0.0
typescript : '>=4.3 <6'
peerDependenciesMeta :
'@babel/core' :
optional : true
'@jest/transform' :
optional : true
'@jest/types' :
optional : true
babel-jest :
optional : true
esbuild :
optional : true
jest-util :
optional : true
tsconfig-paths@3.15.0 :
resolution : {integrity : sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==}
tslib@2.8.1 :
resolution : {integrity : sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
tunnel-rat@0.1.2 :
resolution : {integrity : sha512-lR5VHmkPhzdhrM092lI2nACsLO4QubF0/yoOhzX7c+wIpbN1GjHNzCc91QlpxBi+cnx8vVJ+Ur6vL5cEoQPFpQ==}
tw-animate-css@1.2.5 :
resolution : {integrity : sha512-ABzjfgVo+fDbhRREGL4KQZUqqdPgvc5zVrLyeW9/6mVqvaDepXc7EvedA+pYmMnIOsUAQMwcWzNvom26J2qYvQ==}
2025-04-17 20:36:11 +08:00
type-check@0.4.0 :
resolution : {integrity : sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
engines : {node : '>= 0.8.0' }
2025-10-25 20:46:43 +08:00
type-detect@4.0.8 :
resolution : {integrity : sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==}
engines : {node : '>=4' }
type-fest@0.21.3 :
resolution : {integrity : sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==}
engines : {node : '>=10' }
type-fest@4.41.0 :
resolution : {integrity : sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==}
engines : {node : '>=16' }
2025-04-17 20:36:11 +08:00
typed-array-buffer@1.0.3 :
resolution : {integrity : sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==}
engines : {node : '>= 0.4' }
typed-array-byte-length@1.0.3 :
resolution : {integrity : sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==}
engines : {node : '>= 0.4' }
typed-array-byte-offset@1.0.4 :
resolution : {integrity : sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==}
engines : {node : '>= 0.4' }
typed-array-length@1.0.7 :
resolution : {integrity : sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==}
engines : {node : '>= 0.4' }
typescript-eslint@8.30.1 :
resolution : {integrity : sha512-D7lC0kcehVH7Mb26MRQi64LMyRJsj3dToJxM1+JVTl53DQSV5/7oUGWQLcKl1C1KnoVHxMMU2FNQMffr7F3Row==}
engines : {node : ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies :
eslint : ^8.57.0 || ^9.0.0
typescript : '>=4.8.4 <5.9.0'
typescript@5.8.3 :
resolution : {integrity : sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==}
engines : {node : '>=14.17' }
hasBin : true
2025-04-26 00:20:49 +08:00
uc.micro@2.1.0 :
resolution : {integrity : sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==}
2025-10-25 20:46:43 +08:00
uglify-js@3.19.3 :
resolution : {integrity : sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==}
engines : {node : '>=0.8.0' }
hasBin : true
2025-04-17 20:36:11 +08:00
unbox-primitive@1.1.0 :
resolution : {integrity : sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==}
engines : {node : '>= 0.4' }
undici-types@6.19.8 :
resolution : {integrity : sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==}
2025-04-26 00:20:49 +08:00
undici-types@6.21.0 :
resolution : {integrity : sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==}
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
undici-types@7.16.0 :
resolution : {integrity : sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==}
2025-04-17 20:36:11 +08:00
unified@11.0.5 :
resolution : {integrity : sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==}
unist-util-find-after@5.0.0 :
resolution : {integrity : sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==}
unist-util-is@6.0.0 :
resolution : {integrity : sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==}
unist-util-position@5.0.0 :
resolution : {integrity : sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==}
unist-util-remove-position@5.0.0 :
resolution : {integrity : sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==}
unist-util-stringify-position@4.0.0 :
resolution : {integrity : sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==}
unist-util-visit-parents@6.0.1 :
resolution : {integrity : sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==}
unist-util-visit@5.0.0 :
resolution : {integrity : sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==}
2025-10-25 20:46:43 +08:00
unrs-resolver@1.11.1 :
resolution : {integrity : sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==}
2025-04-17 20:36:11 +08:00
unrs-resolver@1.5.0 :
resolution : {integrity : sha512-6aia3Oy7SEe0MuUGQm2nsyob0L2+g57w178K5SE/3pvSGAIp28BB2O921fKx424Ahc/gQ6v0DXFbhcpyhGZdOA==}
2025-04-22 13:52:56 +08:00
update-browserslist-db@1.1.3 :
resolution : {integrity : sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==}
hasBin : true
peerDependencies :
browserslist : '>= 4.21.0'
2026-01-06 09:07:18 +08:00
update-browserslist-db@1.2.3 :
resolution : {integrity : sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==}
2025-12-05 14:30:00 +08:00
hasBin : true
peerDependencies :
browserslist : '>= 4.21.0'
2025-04-17 20:36:11 +08:00
uri-js@4.4.1 :
resolution : {integrity : sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
2025-04-20 11:18:05 +08:00
use-callback-ref@1.3.3 :
resolution : {integrity : sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==}
engines : {node : '>=10' }
peerDependencies :
'@types/react' : '*'
react : ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
peerDependenciesMeta :
'@types/react' :
optional : true
2025-04-26 00:20:49 +08:00
use-debounce@10.0.4 :
resolution : {integrity : sha512-6Cf7Yr7Wk7Kdv77nnJMf6de4HuDE4dTxKij+RqE9rufDsI6zsbjyAxcH5y2ueJCQAnfgKbzXbZHYlkFwmBlWkw==}
engines : {node : '>= 16.0.0' }
peerDependencies :
react : '*'
2025-07-12 15:18:28 +08:00
use-intl@4.3.1 :
resolution : {integrity : sha512-8Xn5RXzeHZhWqqZimi1wi2pKFqm0NxRUOB41k1QdjbPX+ysoeLW3Ey+fi603D/e5EGb0fYw8WzjgtUagJdlIvg==}
peerDependencies :
react : ^17.0.0 || ^18.0.0 || >=19.0.0-rc <19.0.0 || ^19.0.0
2025-04-20 11:18:05 +08:00
use-sidecar@1.1.3 :
resolution : {integrity : sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==}
engines : {node : '>=10' }
peerDependencies :
'@types/react' : '*'
react : ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
peerDependenciesMeta :
'@types/react' :
optional : true
2025-04-17 20:36:11 +08:00
use-stick-to-bottom@1.1.0 :
resolution : {integrity : sha512-cmSs/RzVXoJRsI6V5nLeRxPab8mDcHmqWwvEACbyft1jAKLPvI6/PGp46Z6GvXxQ9SPzIGTEQXKexNQLAW8pcg==}
peerDependencies :
react : ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
2025-04-26 00:20:49 +08:00
use-sync-external-store@1.5.0 :
resolution : {integrity : sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A==}
peerDependencies :
react : ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
util-deprecate@1.0.2 :
resolution : {integrity : sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
utrie@1.0.2 :
resolution : {integrity : sha512-1MLa5ouZiOmQzUbjbu9VmjLzn1QLXBhwpUa7kdLUQK+KQ5KA9I1vk5U4YHe/X2Ch7PYnJfWuWT+VbuxbGwljhw==}
2025-10-25 20:46:43 +08:00
v8-to-istanbul@9.3.0 :
resolution : {integrity : sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==}
engines : {node : '>=10.12.0' }
2025-04-17 20:36:11 +08:00
vfile-location@5.0.3 :
resolution : {integrity : sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==}
vfile-message@4.0.2 :
resolution : {integrity : sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==}
vfile@6.0.3 :
resolution : {integrity : sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==}
2025-04-26 00:20:49 +08:00
w3c-keyname@2.2.8 :
resolution : {integrity : sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==}
2025-10-25 20:46:43 +08:00
w3c-xmlserializer@5.0.0 :
resolution : {integrity : sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==}
engines : {node : '>=18' }
walker@1.0.8 :
resolution : {integrity : sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==}
2026-02-06 10:29:43 +08:00
watchpack@2.5.1 :
resolution : {integrity : sha512-Zn5uXdcFNIA1+1Ei5McRd+iRzfhENPCe7LeABkJtNulSxjma+l7ltNx55BWZkRlwRnpOgHqxnjyaDgJnNXnqzg==}
2025-04-22 13:52:56 +08:00
engines : {node : '>=10.13.0' }
2025-04-17 20:36:11 +08:00
web-namespaces@2.0.1 :
resolution : {integrity : sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==}
2025-10-25 20:46:43 +08:00
webidl-conversions@7.0.0 :
resolution : {integrity : sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==}
engines : {node : '>=12' }
2025-09-04 22:26:33 +08:00
webpack-sources@3.3.3 :
resolution : {integrity : sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==}
2025-04-22 13:52:56 +08:00
engines : {node : '>=10.13.0' }
webpack@5.99.6 :
resolution : {integrity : sha512-TJOLrJ6oeccsGWPl7ujCYuc0pIq2cNsuD6GZDma8i5o5Npvcco/z+NKvZSFsP0/x6SShVb0+X2JK/JHUjKY9dQ==}
engines : {node : '>=10.13.0' }
hasBin : true
peerDependencies :
webpack-cli : '*'
peerDependenciesMeta :
webpack-cli :
optional : true
2025-10-25 20:46:43 +08:00
whatwg-encoding@3.1.1 :
resolution : {integrity : sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==}
engines : {node : '>=18' }
2026-01-06 09:07:18 +08:00
deprecated : Use @exodus/bytes instead for a more spec-conformant and faster implementation
2025-10-25 20:46:43 +08:00
whatwg-mimetype@4.0.0 :
resolution : {integrity : sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==}
engines : {node : '>=18' }
whatwg-url@14.2.0 :
resolution : {integrity : sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==}
engines : {node : '>=18' }
2025-04-17 20:36:11 +08:00
which-boxed-primitive@1.1.1 :
resolution : {integrity : sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==}
engines : {node : '>= 0.4' }
which-builtin-type@1.2.1 :
resolution : {integrity : sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==}
engines : {node : '>= 0.4' }
which-collection@1.0.2 :
resolution : {integrity : sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==}
engines : {node : '>= 0.4' }
which-typed-array@1.1.19 :
resolution : {integrity : sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==}
engines : {node : '>= 0.4' }
which@2.0.2 :
resolution : {integrity : sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
engines : {node : '>= 8' }
hasBin : true
word-wrap@1.2.5 :
resolution : {integrity : sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==}
engines : {node : '>=0.10.0' }
2025-10-25 20:46:43 +08:00
wordwrap@1.0.0 :
resolution : {integrity : sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==}
wrap-ansi@7.0.0 :
resolution : {integrity : sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
engines : {node : '>=10' }
wrap-ansi@8.1.0 :
resolution : {integrity : sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==}
engines : {node : '>=12' }
wrappy@1.0.2 :
resolution : {integrity : sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
write-file-atomic@5.0.1 :
resolution : {integrity : sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==}
engines : {node : ^14.17.0 || ^16.13.0 || >=18.0.0}
ws@8.18.3 :
resolution : {integrity : sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==}
engines : {node : '>=10.0.0' }
peerDependencies :
bufferutil : ^4.0.1
utf-8-validate : '>=5.0.2'
peerDependenciesMeta :
bufferutil :
optional : true
utf-8-validate :
optional : true
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
xml-js@1.6.11 :
resolution : {integrity : sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==}
hasBin : true
2025-10-25 20:46:43 +08:00
xml-name-validator@5.0.0 :
resolution : {integrity : sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==}
engines : {node : '>=18' }
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
xml@1.0.1 :
resolution : {integrity : sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw==}
2025-10-25 20:46:43 +08:00
xmlchars@2.2.0 :
resolution : {integrity : sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==}
2025-04-17 20:36:11 +08:00
xtend@4.0.2 :
resolution : {integrity : sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==}
engines : {node : '>=0.4' }
2025-10-25 20:46:43 +08:00
y18n@5.0.8 :
resolution : {integrity : sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
engines : {node : '>=10' }
yallist@3.1.1 :
resolution : {integrity : sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
yargs-parser@21.1.1 :
resolution : {integrity : sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==}
engines : {node : '>=12' }
yargs@17.7.2 :
resolution : {integrity : sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==}
engines : {node : '>=12' }
2025-04-17 20:36:11 +08:00
yocto-queue@0.1.0 :
resolution : {integrity : sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
engines : {node : '>=10' }
zod@3.24.3 :
resolution : {integrity : sha512-HhY1oqzWCQWuUqvBFnsyrtZRhyPeR7SUGv+C4+MsisMuVfSPx8HpwWqH8tRahSlt6M3PiFAcoeFhZAqIXTxoSg==}
2025-04-26 00:20:49 +08:00
zustand@4.5.6 :
resolution : {integrity : sha512-ibr/n1hBzLLj5Y+yUcU7dYw8p6WnIVzdJbnX+1YpaScvZVF2ziugqHs+LAmHw4lWO9c/zRj+K1ncgWDQuthEdQ==}
engines : {node : '>=12.7.0' }
peerDependencies :
'@types/react' : '>=16.8'
immer : '>=9.0.6'
react : '>=16.8'
peerDependenciesMeta :
'@types/react' :
optional : true
immer :
optional : true
react :
optional : true
2025-04-17 20:36:11 +08:00
zustand@5.0.3 :
resolution : {integrity : sha512-14fwWQtU3pH4dE0dOpdMiWjddcH+QzKIgk1cl8epwSE7yag43k/AD/m4L6+K7DytAOr9gGBe3/EXj9g7cdostg==}
engines : {node : '>=12.20.0' }
peerDependencies :
'@types/react' : '>=18.0.0'
immer : '>=9.0.6'
react : '>=18.0.0'
use-sync-external-store : '>=1.2.0'
peerDependenciesMeta :
'@types/react' :
optional : true
immer :
optional : true
react :
optional : true
use-sync-external-store :
optional : true
zwitch@2.0.4 :
resolution : {integrity : sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==}
snapshots :
'@alloc/quick-lru@5.2.0' : {}
'@ant-design/colors@8.0.0' :
dependencies :
'@ant-design/fast-color' : 3.0 .0
'@ant-design/fast-color@3.0.0' : {}
'@ant-design/icons-svg@4.4.2' : {}
'@ant-design/icons@6.0.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)' :
dependencies :
'@ant-design/colors' : 8.0 .0
'@ant-design/icons-svg' : 4.4 .2
'@rc-component/util' : 1.2 .1 (react-dom@19.1.0(react@19.1.0))(react@19.1.0)
classnames : 2.5 .1
react : 19.1 .0
react-dom : 19.1 .0 (react@19.1.0)
2025-10-25 20:46:43 +08:00
'@asamuzakjp/css-color@3.2.0' :
dependencies :
'@csstools/css-calc' : 2.1 .4 (@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)
'@csstools/css-color-parser' : 3.1 .0 (@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)
'@csstools/css-parser-algorithms' : 3.0 .5 (@csstools/css-tokenizer@3.0.4)
'@csstools/css-tokenizer' : 3.0 .4
lru-cache : 10.4 .3
'@babel/code-frame@7.27.1' :
dependencies :
'@babel/helper-validator-identifier' : 7.28 .5
js-tokens : 4.0 .0
picocolors : 1.1 .1
'@babel/compat-data@7.28.5' : {}
'@babel/core@7.28.5' :
dependencies :
'@babel/code-frame' : 7.27 .1
'@babel/generator' : 7.28 .5
'@babel/helper-compilation-targets' : 7.27 .2
'@babel/helper-module-transforms' : 7.28 .3 (@babel/core@7.28.5)
'@babel/helpers' : 7.28 .4
'@babel/parser' : 7.28 .5
'@babel/template' : 7.27 .2
'@babel/traverse' : 7.28 .5
'@babel/types' : 7.28 .5
'@jridgewell/remapping' : 2.3 .5
convert-source-map : 2.0 .0
debug : 4.4 .0
gensync : 1.0 .0 -beta.2
json5 : 2.2 .3
semver : 6.3 .1
transitivePeerDependencies :
- supports-color
'@babel/generator@7.28.5' :
dependencies :
'@babel/parser' : 7.28 .5
'@babel/types' : 7.28 .5
'@jridgewell/gen-mapping' : 0.3 .13
'@jridgewell/trace-mapping' : 0.3 .30
jsesc : 3.1 .0
'@babel/helper-compilation-targets@7.27.2' :
dependencies :
'@babel/compat-data' : 7.28 .5
'@babel/helper-validator-option' : 7.27 .1
browserslist : 4.25 .4
lru-cache : 5.1 .1
semver : 6.3 .1
'@babel/helper-globals@7.28.0' : {}
'@babel/helper-module-imports@7.27.1' :
dependencies :
'@babel/traverse' : 7.28 .5
'@babel/types' : 7.28 .5
transitivePeerDependencies :
- supports-color
'@babel/helper-module-transforms@7.28.3(@babel/core@7.28.5)' :
dependencies :
'@babel/core' : 7.28 .5
'@babel/helper-module-imports' : 7.27 .1
'@babel/helper-validator-identifier' : 7.28 .5
'@babel/traverse' : 7.28 .5
transitivePeerDependencies :
- supports-color
'@babel/helper-plugin-utils@7.27.1' : {}
'@babel/helper-string-parser@7.27.1' : {}
'@babel/helper-validator-identifier@7.28.5' : {}
'@babel/helper-validator-option@7.27.1' : {}
'@babel/helpers@7.28.4' :
dependencies :
'@babel/template' : 7.27 .2
'@babel/types' : 7.28 .5
'@babel/parser@7.28.5' :
dependencies :
'@babel/types' : 7.28 .5
'@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.28.5)' :
dependencies :
'@babel/core' : 7.28 .5
'@babel/helper-plugin-utils' : 7.27 .1
'@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.28.5)' :
dependencies :
'@babel/core' : 7.28 .5
'@babel/helper-plugin-utils' : 7.27 .1
'@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.28.5)' :
dependencies :
'@babel/core' : 7.28 .5
'@babel/helper-plugin-utils' : 7.27 .1
'@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.28.5)' :
dependencies :
'@babel/core' : 7.28 .5
'@babel/helper-plugin-utils' : 7.27 .1
'@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.28.5)' :
dependencies :
'@babel/core' : 7.28 .5
'@babel/helper-plugin-utils' : 7.27 .1
'@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.28.5)' :
dependencies :
'@babel/core' : 7.28 .5
'@babel/helper-plugin-utils' : 7.27 .1
'@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.28.5)' :
dependencies :
'@babel/core' : 7.28 .5
'@babel/helper-plugin-utils' : 7.27 .1
'@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.28.5)' :
dependencies :
'@babel/core' : 7.28 .5
'@babel/helper-plugin-utils' : 7.27 .1
'@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.28.5)' :
dependencies :
'@babel/core' : 7.28 .5
'@babel/helper-plugin-utils' : 7.27 .1
'@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.28.5)' :
dependencies :
'@babel/core' : 7.28 .5
'@babel/helper-plugin-utils' : 7.27 .1
'@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.28.5)' :
dependencies :
'@babel/core' : 7.28 .5
'@babel/helper-plugin-utils' : 7.27 .1
'@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.28.5)' :
dependencies :
'@babel/core' : 7.28 .5
'@babel/helper-plugin-utils' : 7.27 .1
'@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.28.5)' :
dependencies :
'@babel/core' : 7.28 .5
'@babel/helper-plugin-utils' : 7.27 .1
'@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.28.5)' :
dependencies :
'@babel/core' : 7.28 .5
'@babel/helper-plugin-utils' : 7.27 .1
'@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.28.5)' :
dependencies :
'@babel/core' : 7.28 .5
'@babel/helper-plugin-utils' : 7.27 .1
'@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.28.5)' :
dependencies :
'@babel/core' : 7.28 .5
'@babel/helper-plugin-utils' : 7.27 .1
'@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.28.5)' :
dependencies :
'@babel/core' : 7.28 .5
'@babel/helper-plugin-utils' : 7.27 .1
2025-04-17 20:36:11 +08:00
'@babel/runtime@7.27.0' :
dependencies :
regenerator-runtime : 0.14 .1
2026-02-06 10:29:43 +08:00
'@babel/runtime@7.28.6' : {}
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
2025-10-25 20:46:43 +08:00
'@babel/template@7.27.2' :
dependencies :
'@babel/code-frame' : 7.27 .1
'@babel/parser' : 7.28 .5
'@babel/types' : 7.28 .5
'@babel/traverse@7.28.5' :
dependencies :
'@babel/code-frame' : 7.27 .1
'@babel/generator' : 7.28 .5
'@babel/helper-globals' : 7.28 .0
'@babel/parser' : 7.28 .5
'@babel/template' : 7.27 .2
'@babel/types' : 7.28 .5
debug : 4.4 .0
transitivePeerDependencies :
- supports-color
'@babel/types@7.28.5' :
dependencies :
'@babel/helper-string-parser' : 7.27 .1
'@babel/helper-validator-identifier' : 7.28 .5
'@bcoe/v8-coverage@0.2.3' : {}
2025-04-26 00:20:49 +08:00
'@cfcs/core@0.0.6' :
dependencies :
'@egjs/component' : 3.0 .5
2025-10-25 20:46:43 +08:00
'@csstools/color-helpers@5.1.0' : {}
'@csstools/css-calc@2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)' :
dependencies :
'@csstools/css-parser-algorithms' : 3.0 .5 (@csstools/css-tokenizer@3.0.4)
'@csstools/css-tokenizer' : 3.0 .4
'@csstools/css-color-parser@3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)' :
dependencies :
'@csstools/color-helpers' : 5.1 .0
'@csstools/css-calc' : 2.1 .4 (@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)
'@csstools/css-parser-algorithms' : 3.0 .5 (@csstools/css-tokenizer@3.0.4)
'@csstools/css-tokenizer' : 3.0 .4
'@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4)' :
dependencies :
'@csstools/css-tokenizer' : 3.0 .4
'@csstools/css-tokenizer@3.0.4' : {}
2025-04-26 00:20:49 +08:00
'@daybrush/utils@1.13.0' : {}
'@egjs/agent@2.4.4' : {}
'@egjs/children-differ@1.0.1' :
dependencies :
'@egjs/list-differ' : 1.0 .1
'@egjs/component@3.0.5' : {}
'@egjs/list-differ@1.0.1' : {}
2025-04-17 20:36:11 +08:00
'@emnapi/core@1.4.1' :
dependencies :
'@emnapi/wasi-threads' : 1.0 .1
tslib : 2.8 .1
optional : true
2025-10-25 20:46:43 +08:00
'@emnapi/core@1.6.0' :
dependencies :
'@emnapi/wasi-threads' : 1.1 .0
tslib : 2.8 .1
optional : true
2026-02-09 15:43:04 +08:00
'@emnapi/runtime@1.8.1' :
2025-04-17 20:36:11 +08:00
dependencies :
tslib : 2.8 .1
optional : true
'@emnapi/wasi-threads@1.0.1' :
dependencies :
tslib : 2.8 .1
optional : true
2025-10-25 20:46:43 +08:00
'@emnapi/wasi-threads@1.1.0' :
dependencies :
tslib : 2.8 .1
optional : true
2025-04-17 20:36:11 +08:00
'@eslint-community/eslint-utils@4.6.1(eslint@9.24.0(jiti@2.4.2))' :
dependencies :
eslint : 9.24 .0 (jiti@2.4.2)
eslint-visitor-keys : 3.4 .3
'@eslint-community/regexpp@4.12.1' : {}
'@eslint/config-array@0.20.0' :
dependencies :
'@eslint/object-schema' : 2.1 .6
debug : 4.4 .0
minimatch : 3.1 .2
transitivePeerDependencies :
- supports-color
'@eslint/config-helpers@0.2.1' : {}
'@eslint/core@0.12.0' :
dependencies :
'@types/json-schema' : 7.0 .15
'@eslint/core@0.13.0' :
dependencies :
'@types/json-schema' : 7.0 .15
'@eslint/eslintrc@3.3.1' :
dependencies :
ajv : 6.12 .6
debug : 4.4 .0
espree : 10.3 .0
globals : 14.0 .0
ignore : 5.3 .2
import-fresh : 3.3 .1
js-yaml : 4.1 .0
minimatch : 3.1 .2
strip-json-comments : 3.1 .1
transitivePeerDependencies :
- supports-color
'@eslint/js@9.24.0' : {}
'@eslint/object-schema@2.1.6' : {}
'@eslint/plugin-kit@0.2.8' :
dependencies :
'@eslint/core' : 0.13 .0
levn : 0.4 .1
'@floating-ui/core@1.6.9' :
dependencies :
'@floating-ui/utils' : 0.2 .9
'@floating-ui/dom@1.6.13' :
dependencies :
'@floating-ui/core' : 1.6 .9
'@floating-ui/utils' : 0.2 .9
'@floating-ui/react-dom@2.1.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0)' :
dependencies :
'@floating-ui/dom' : 1.6 .13
react : 19.1 .0
react-dom : 19.1 .0 (react@19.1.0)
'@floating-ui/utils@0.2.9' : {}
2025-07-12 15:18:28 +08:00
'@formatjs/ecma402-abstract@2.3.4' :
dependencies :
'@formatjs/fast-memoize' : 2.2 .7
'@formatjs/intl-localematcher' : 0.6 .1
decimal.js : 10.5 .0
tslib : 2.8 .1
'@formatjs/fast-memoize@2.2.7' :
dependencies :
tslib : 2.8 .1
'@formatjs/icu-messageformat-parser@2.11.2' :
dependencies :
'@formatjs/ecma402-abstract' : 2.3 .4
'@formatjs/icu-skeleton-parser' : 1.8 .14
tslib : 2.8 .1
'@formatjs/icu-skeleton-parser@1.8.14' :
dependencies :
'@formatjs/ecma402-abstract' : 2.3 .4
tslib : 2.8 .1
'@formatjs/intl-localematcher@0.5.10' :
dependencies :
tslib : 2.8 .1
'@formatjs/intl-localematcher@0.6.1' :
dependencies :
tslib : 2.8 .1
2025-04-23 21:16:58 +08:00
'@hookform/resolvers@5.0.1(react-hook-form@7.56.1(react@19.1.0))' :
dependencies :
'@standard-schema/utils' : 0.3 .0
react-hook-form : 7.56 .1 (react@19.1.0)
2025-04-17 20:36:11 +08:00
'@humanfs/core@0.19.1' : {}
'@humanfs/node@0.16.6' :
dependencies :
'@humanfs/core' : 0.19 .1
'@humanwhocodes/retry' : 0.3 .1
'@humanwhocodes/module-importer@1.0.1' : {}
'@humanwhocodes/retry@0.3.1' : {}
'@humanwhocodes/retry@0.4.2' : {}
2025-12-05 14:30:00 +08:00
'@img/colour@1.0.0' :
optional : true
'@img/sharp-darwin-arm64@0.34.5' :
2025-04-20 11:18:05 +08:00
optionalDependencies :
2025-12-05 14:30:00 +08:00
'@img/sharp-libvips-darwin-arm64' : 1.2 .4
2025-04-17 20:36:11 +08:00
optional : true
2025-12-05 14:30:00 +08:00
'@img/sharp-darwin-x64@0.34.5' :
2025-04-20 11:18:05 +08:00
optionalDependencies :
2025-12-05 14:30:00 +08:00
'@img/sharp-libvips-darwin-x64' : 1.2 .4
2025-04-20 11:18:05 +08:00
optional : true
2025-12-05 14:30:00 +08:00
'@img/sharp-libvips-darwin-arm64@1.2.4' :
2025-04-20 11:18:05 +08:00
optional : true
2025-12-05 14:30:00 +08:00
'@img/sharp-libvips-darwin-x64@1.2.4' :
2025-04-20 11:18:05 +08:00
optional : true
2025-12-05 14:30:00 +08:00
'@img/sharp-libvips-linux-arm64@1.2.4' :
2025-04-20 11:18:05 +08:00
optional : true
2025-12-05 14:30:00 +08:00
'@img/sharp-libvips-linux-arm@1.2.4' :
2025-04-20 11:18:05 +08:00
optional : true
2025-12-05 14:30:00 +08:00
'@img/sharp-libvips-linux-ppc64@1.2.4' :
2025-04-20 11:18:05 +08:00
optional : true
2025-12-05 14:30:00 +08:00
'@img/sharp-libvips-linux-riscv64@1.2.4' :
2025-04-17 20:36:11 +08:00
optional : true
2025-12-05 14:30:00 +08:00
'@img/sharp-libvips-linux-s390x@1.2.4' :
2025-04-17 20:36:11 +08:00
optional : true
2025-12-05 14:30:00 +08:00
'@img/sharp-libvips-linux-x64@1.2.4' :
2025-04-20 11:18:05 +08:00
optional : true
2025-12-05 14:30:00 +08:00
'@img/sharp-libvips-linuxmusl-arm64@1.2.4' :
2025-09-04 22:26:33 +08:00
optional : true
2025-12-05 14:30:00 +08:00
'@img/sharp-libvips-linuxmusl-x64@1.2.4' :
optional : true
'@img/sharp-linux-arm64@0.34.5' :
2025-09-04 22:26:33 +08:00
optionalDependencies :
2025-12-05 14:30:00 +08:00
'@img/sharp-libvips-linux-arm64' : 1.2 .4
2025-04-20 11:18:05 +08:00
optional : true
2025-12-05 14:30:00 +08:00
'@img/sharp-linux-arm@0.34.5' :
2025-04-20 11:18:05 +08:00
optionalDependencies :
2025-12-05 14:30:00 +08:00
'@img/sharp-libvips-linux-arm' : 1.2 .4
2025-04-17 20:36:11 +08:00
optional : true
2025-12-05 14:30:00 +08:00
'@img/sharp-linux-ppc64@0.34.5' :
2025-04-20 11:18:05 +08:00
optionalDependencies :
2025-12-05 14:30:00 +08:00
'@img/sharp-libvips-linux-ppc64' : 1.2 .4
2025-04-17 20:36:11 +08:00
optional : true
2025-12-05 14:30:00 +08:00
'@img/sharp-linux-riscv64@0.34.5' :
2025-04-20 11:18:05 +08:00
optionalDependencies :
2025-12-05 14:30:00 +08:00
'@img/sharp-libvips-linux-riscv64' : 1.2 .4
2025-04-17 20:36:11 +08:00
optional : true
2025-12-05 14:30:00 +08:00
'@img/sharp-linux-s390x@0.34.5' :
2025-04-17 20:36:11 +08:00
optionalDependencies :
2025-12-05 14:30:00 +08:00
'@img/sharp-libvips-linux-s390x' : 1.2 .4
2025-04-17 20:36:11 +08:00
optional : true
2025-12-05 14:30:00 +08:00
'@img/sharp-linux-x64@0.34.5' :
2025-04-20 11:18:05 +08:00
optionalDependencies :
2025-12-05 14:30:00 +08:00
'@img/sharp-libvips-linux-x64' : 1.2 .4
2025-04-17 20:36:11 +08:00
optional : true
2025-12-05 14:30:00 +08:00
'@img/sharp-linuxmusl-arm64@0.34.5' :
2025-04-20 11:18:05 +08:00
optionalDependencies :
2025-12-05 14:30:00 +08:00
'@img/sharp-libvips-linuxmusl-arm64' : 1.2 .4
2025-04-17 20:36:11 +08:00
optional : true
2025-12-05 14:30:00 +08:00
'@img/sharp-linuxmusl-x64@0.34.5' :
optionalDependencies :
'@img/sharp-libvips-linuxmusl-x64' : 1.2 .4
optional : true
'@img/sharp-wasm32@0.34.5' :
2025-04-17 20:36:11 +08:00
dependencies :
2026-02-09 15:43:04 +08:00
'@emnapi/runtime' : 1.8 .1
2025-04-17 20:36:11 +08:00
optional : true
2025-12-05 14:30:00 +08:00
'@img/sharp-win32-arm64@0.34.5' :
2025-04-17 20:36:11 +08:00
optional : true
2025-12-05 14:30:00 +08:00
'@img/sharp-win32-ia32@0.34.5' :
2025-04-17 20:36:11 +08:00
optional : true
2025-12-05 14:30:00 +08:00
'@img/sharp-win32-x64@0.34.5' :
2025-09-04 22:26:33 +08:00
optional : true
2025-10-25 20:46:43 +08:00
'@isaacs/cliui@8.0.2' :
dependencies :
string-width : 5.1 .2
string-width-cjs : string-width@4.2.3
strip-ansi : 7.1 .2
strip-ansi-cjs : strip-ansi@6.0.1
wrap-ansi : 8.1 .0
wrap-ansi-cjs : wrap-ansi@7.0.0
'@istanbuljs/load-nyc-config@1.1.0' :
dependencies :
camelcase : 5.3 .1
find-up : 4.1 .0
get-package-type : 0.1 .0
js-yaml : 3.14 .1
resolve-from : 5.0 .0
'@istanbuljs/schema@0.1.3' : {}
'@jest/console@30.2.0' :
dependencies :
'@jest/types' : 30.2 .0
'@types/node' : 20.19 .13
chalk : 4.1 .2
jest-message-util : 30.2 .0
jest-util : 30.2 .0
slash : 3.0 .0
'@jest/core@30.2.0' :
dependencies :
'@jest/console' : 30.2 .0
'@jest/pattern' : 30.0 .1
'@jest/reporters' : 30.2 .0
'@jest/test-result' : 30.2 .0
'@jest/transform' : 30.2 .0
'@jest/types' : 30.2 .0
'@types/node' : 20.19 .13
ansi-escapes : 4.3 .2
chalk : 4.1 .2
ci-info : 4.3 .1
exit-x : 0.2 .2
graceful-fs : 4.2 .11
jest-changed-files : 30.2 .0
jest-config : 30.2 .0 (@types/node@20.19.13)
jest-haste-map : 30.2 .0
jest-message-util : 30.2 .0
jest-regex-util : 30.0 .1
jest-resolve : 30.2 .0
jest-resolve-dependencies : 30.2 .0
jest-runner : 30.2 .0
jest-runtime : 30.2 .0
jest-snapshot : 30.2 .0
jest-util : 30.2 .0
jest-validate : 30.2 .0
jest-watcher : 30.2 .0
micromatch : 4.0 .8
pretty-format : 30.2 .0
slash : 3.0 .0
transitivePeerDependencies :
- babel-plugin-macros
- esbuild-register
- supports-color
- ts-node
'@jest/diff-sequences@30.0.1' : {}
'@jest/environment-jsdom-abstract@30.2.0(jsdom@26.1.0)' :
dependencies :
'@jest/environment' : 30.2 .0
'@jest/fake-timers' : 30.2 .0
'@jest/types' : 30.2 .0
'@types/jsdom' : 21.1 .7
'@types/node' : 20.19 .13
jest-mock : 30.2 .0
jest-util : 30.2 .0
jsdom : 26.1 .0
'@jest/environment@30.2.0' :
dependencies :
'@jest/fake-timers' : 30.2 .0
'@jest/types' : 30.2 .0
'@types/node' : 20.19 .13
jest-mock : 30.2 .0
'@jest/expect-utils@30.2.0' :
dependencies :
'@jest/get-type' : 30.1 .0
'@jest/expect@30.2.0' :
dependencies :
expect : 30.2 .0
jest-snapshot : 30.2 .0
transitivePeerDependencies :
- supports-color
'@jest/fake-timers@30.2.0' :
dependencies :
'@jest/types' : 30.2 .0
'@sinonjs/fake-timers' : 13.0 .5
'@types/node' : 20.19 .13
jest-message-util : 30.2 .0
jest-mock : 30.2 .0
jest-util : 30.2 .0
'@jest/get-type@30.1.0' : {}
'@jest/globals@30.2.0' :
dependencies :
'@jest/environment' : 30.2 .0
'@jest/expect' : 30.2 .0
'@jest/types' : 30.2 .0
jest-mock : 30.2 .0
transitivePeerDependencies :
- supports-color
'@jest/pattern@30.0.1' :
dependencies :
'@types/node' : 20.19 .13
jest-regex-util : 30.0 .1
'@jest/reporters@30.2.0' :
dependencies :
'@bcoe/v8-coverage' : 0.2 .3
'@jest/console' : 30.2 .0
'@jest/test-result' : 30.2 .0
'@jest/transform' : 30.2 .0
'@jest/types' : 30.2 .0
'@jridgewell/trace-mapping' : 0.3 .30
'@types/node' : 20.19 .13
chalk : 4.1 .2
collect-v8-coverage : 1.0 .3
exit-x : 0.2 .2
glob : 10.4 .5
graceful-fs : 4.2 .11
istanbul-lib-coverage : 3.2 .2
istanbul-lib-instrument : 6.0 .3
istanbul-lib-report : 3.0 .1
istanbul-lib-source-maps : 5.0 .6
istanbul-reports : 3.2 .0
jest-message-util : 30.2 .0
jest-util : 30.2 .0
jest-worker : 30.2 .0
slash : 3.0 .0
string-length : 4.0 .2
v8-to-istanbul : 9.3 .0
transitivePeerDependencies :
- supports-color
'@jest/schemas@30.0.5' :
dependencies :
'@sinclair/typebox' : 0.34 .41
'@jest/snapshot-utils@30.2.0' :
dependencies :
'@jest/types' : 30.2 .0
chalk : 4.1 .2
graceful-fs : 4.2 .11
natural-compare : 1.4 .0
'@jest/source-map@30.0.1' :
dependencies :
'@jridgewell/trace-mapping' : 0.3 .30
callsites : 3.1 .0
graceful-fs : 4.2 .11
'@jest/test-result@30.2.0' :
dependencies :
'@jest/console' : 30.2 .0
'@jest/types' : 30.2 .0
'@types/istanbul-lib-coverage' : 2.0 .6
collect-v8-coverage : 1.0 .3
'@jest/test-sequencer@30.2.0' :
dependencies :
'@jest/test-result' : 30.2 .0
graceful-fs : 4.2 .11
jest-haste-map : 30.2 .0
slash : 3.0 .0
'@jest/transform@30.2.0' :
dependencies :
'@babel/core' : 7.28 .5
'@jest/types' : 30.2 .0
'@jridgewell/trace-mapping' : 0.3 .30
babel-plugin-istanbul : 7.0 .1
chalk : 4.1 .2
convert-source-map : 2.0 .0
fast-json-stable-stringify : 2.1 .0
graceful-fs : 4.2 .11
jest-haste-map : 30.2 .0
jest-regex-util : 30.0 .1
jest-util : 30.2 .0
micromatch : 4.0 .8
pirates : 4.0 .7
slash : 3.0 .0
write-file-atomic : 5.0 .1
transitivePeerDependencies :
- supports-color
'@jest/types@30.2.0' :
dependencies :
'@jest/pattern' : 30.0 .1
'@jest/schemas' : 30.0 .5
'@types/istanbul-lib-coverage' : 2.0 .6
'@types/istanbul-reports' : 3.0 .4
'@types/node' : 20.19 .13
'@types/yargs' : 17.0 .34
chalk : 4.1 .2
2025-09-04 22:26:33 +08:00
'@jridgewell/gen-mapping@0.3.13' :
2025-04-22 13:52:56 +08:00
dependencies :
2025-09-04 22:26:33 +08:00
'@jridgewell/sourcemap-codec' : 1.5 .5
'@jridgewell/trace-mapping' : 0.3 .30
2025-04-22 13:52:56 +08:00
2025-10-25 20:46:43 +08:00
'@jridgewell/remapping@2.3.5' :
dependencies :
'@jridgewell/gen-mapping' : 0.3 .13
'@jridgewell/trace-mapping' : 0.3 .30
2025-04-22 13:52:56 +08:00
'@jridgewell/resolve-uri@3.1.2' : {}
2025-09-04 22:26:33 +08:00
'@jridgewell/source-map@0.3.11' :
2025-04-22 13:52:56 +08:00
dependencies :
2025-09-04 22:26:33 +08:00
'@jridgewell/gen-mapping' : 0.3 .13
2025-12-05 14:30:00 +08:00
'@jridgewell/trace-mapping' : 0.3 .31
2025-04-22 13:52:56 +08:00
2025-09-04 22:26:33 +08:00
'@jridgewell/sourcemap-codec@1.5.5' : {}
2025-04-22 13:52:56 +08:00
2025-09-04 22:26:33 +08:00
'@jridgewell/trace-mapping@0.3.30' :
2025-04-22 13:52:56 +08:00
dependencies :
'@jridgewell/resolve-uri' : 3.1 .2
2025-09-04 22:26:33 +08:00
'@jridgewell/sourcemap-codec' : 1.5 .5
2025-04-22 13:52:56 +08:00
2025-12-05 14:30:00 +08:00
'@jridgewell/trace-mapping@0.3.31' :
dependencies :
'@jridgewell/resolve-uri' : 3.1 .2
'@jridgewell/sourcemap-codec' : 1.5 .5
2025-10-25 20:46:43 +08:00
'@napi-rs/wasm-runtime@0.2.12' :
dependencies :
'@emnapi/core' : 1.6 .0
2026-02-09 15:43:04 +08:00
'@emnapi/runtime' : 1.8 .1
2025-10-25 20:46:43 +08:00
'@tybys/wasm-util' : 0.10 .1
optional : true
2025-04-17 20:36:11 +08:00
'@napi-rs/wasm-runtime@0.2.9' :
dependencies :
'@emnapi/core' : 1.4 .1
2026-02-09 15:43:04 +08:00
'@emnapi/runtime' : 1.8 .1
2025-04-17 20:36:11 +08:00
'@tybys/wasm-util' : 0.9 .0
optional : true
2026-02-09 15:43:04 +08:00
'@next/env@15.5.10' : {}
2025-04-17 20:36:11 +08:00
'@next/eslint-plugin-next@15.3.0' :
dependencies :
fast-glob : 3.3 .1
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
'@next/swc-darwin-arm64@15.5.7' :
2025-04-17 20:36:11 +08:00
optional : true
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
'@next/swc-darwin-x64@15.5.7' :
2025-04-17 20:36:11 +08:00
optional : true
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
'@next/swc-linux-arm64-gnu@15.5.7' :
2025-04-17 20:36:11 +08:00
optional : true
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
'@next/swc-linux-arm64-musl@15.5.7' :
2025-04-17 20:36:11 +08:00
optional : true
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
'@next/swc-linux-x64-gnu@15.5.7' :
2025-04-17 20:36:11 +08:00
optional : true
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
'@next/swc-linux-x64-musl@15.5.7' :
2025-04-17 20:36:11 +08:00
optional : true
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
'@next/swc-win32-arm64-msvc@15.5.7' :
2025-04-17 20:36:11 +08:00
optional : true
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
'@next/swc-win32-x64-msvc@15.5.7' :
2025-04-17 20:36:11 +08:00
optional : true
'@nodelib/fs.scandir@2.1.5' :
dependencies :
'@nodelib/fs.stat' : 2.0 .5
run-parallel : 1.2 .0
'@nodelib/fs.stat@2.0.5' : {}
'@nodelib/fs.walk@1.2.8' :
dependencies :
'@nodelib/fs.scandir' : 2.1 .5
fastq : 1.19 .1
'@nolyfill/is-core-module@1.0.39' : {}
2025-04-26 00:20:49 +08:00
'@opentelemetry/api@1.9.0' :
optional : true
2025-10-25 20:46:43 +08:00
'@pkgjs/parseargs@0.11.0' :
optional : true
'@pkgr/core@0.2.9' : {}
2025-04-26 00:20:49 +08:00
'@popperjs/core@2.11.8' : {}
'@radix-ui/number@1.1.1' : {}
2025-04-17 20:36:11 +08:00
'@radix-ui/primitive@1.1.2' : {}
2026-01-24 17:49:13 +08:00
'@radix-ui/primitive@1.1.3' : {}
2025-04-24 15:40:49 +08:00
'@radix-ui/react-accordion@1.2.8(@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)' :
dependencies :
'@radix-ui/primitive' : 1.1 .2
'@radix-ui/react-collapsible' : 1.1 .8 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-collection' : 1.1 .4 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-compose-refs' : 1.1 .2 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-context' : 1.1 .2 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-direction' : 1.1 .1 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-id' : 1.1 .1 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-primitive' : 2.1 .0 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-use-controllable-state' : 1.2 .2 (@types/react@19.1.2)(react@19.1.0)
react : 19.1 .0
react-dom : 19.1 .0 (react@19.1.0)
optionalDependencies :
'@types/react' : 19.1 .2
'@types/react-dom' : 19.1 .1 (@types/react@19.1.2)
2025-04-17 20:36:11 +08:00
'@radix-ui/react-arrow@1.1.3(@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)' :
dependencies :
'@radix-ui/react-primitive' : 2.0 .3 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
react : 19.1 .0
react-dom : 19.1 .0 (react@19.1.0)
optionalDependencies :
'@types/react' : 19.1 .2
'@types/react-dom' : 19.1 .1 (@types/react@19.1.2)
2025-04-20 11:18:05 +08:00
'@radix-ui/react-arrow@1.1.4(@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)' :
dependencies :
'@radix-ui/react-primitive' : 2.1 .0 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
react : 19.1 .0
react-dom : 19.1 .0 (react@19.1.0)
optionalDependencies :
'@types/react' : 19.1 .2
'@types/react-dom' : 19.1 .1 (@types/react@19.1.2)
2026-01-24 17:49:13 +08:00
'@radix-ui/react-arrow@1.1.7(@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)' :
dependencies :
'@radix-ui/react-primitive' : 2.1 .3 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
react : 19.1 .0
react-dom : 19.1 .0 (react@19.1.0)
optionalDependencies :
'@types/react' : 19.1 .2
'@types/react-dom' : 19.1 .1 (@types/react@19.1.2)
2025-04-24 15:40:49 +08:00
'@radix-ui/react-checkbox@1.2.3(@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)' :
dependencies :
'@radix-ui/primitive' : 1.1 .2
'@radix-ui/react-compose-refs' : 1.1 .2 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-context' : 1.1 .2 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-presence' : 1.1 .4 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-primitive' : 2.1 .0 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-use-controllable-state' : 1.2 .2 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-use-previous' : 1.1 .1 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-use-size' : 1.1 .1 (@types/react@19.1.2)(react@19.1.0)
react : 19.1 .0
react-dom : 19.1 .0 (react@19.1.0)
optionalDependencies :
'@types/react' : 19.1 .2
'@types/react-dom' : 19.1 .1 (@types/react@19.1.2)
'@radix-ui/react-collapsible@1.1.8(@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)' :
dependencies :
'@radix-ui/primitive' : 1.1 .2
'@radix-ui/react-compose-refs' : 1.1 .2 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-context' : 1.1 .2 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-id' : 1.1 .1 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-presence' : 1.1 .4 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-primitive' : 2.1 .0 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-use-controllable-state' : 1.2 .2 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-use-layout-effect' : 1.1 .1 (@types/react@19.1.2)(react@19.1.0)
react : 19.1 .0
react-dom : 19.1 .0 (react@19.1.0)
optionalDependencies :
'@types/react' : 19.1 .2
'@types/react-dom' : 19.1 .1 (@types/react@19.1.2)
2025-04-17 20:36:11 +08:00
'@radix-ui/react-collection@1.1.3(@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)' :
dependencies :
'@radix-ui/react-compose-refs' : 1.1 .2 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-context' : 1.1 .2 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-primitive' : 2.0 .3 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-slot' : 1.2 .0 (@types/react@19.1.2)(react@19.1.0)
react : 19.1 .0
react-dom : 19.1 .0 (react@19.1.0)
optionalDependencies :
'@types/react' : 19.1 .2
'@types/react-dom' : 19.1 .1 (@types/react@19.1.2)
2025-04-20 11:18:05 +08:00
'@radix-ui/react-collection@1.1.4(@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)' :
dependencies :
'@radix-ui/react-compose-refs' : 1.1 .2 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-context' : 1.1 .2 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-primitive' : 2.1 .0 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-slot' : 1.2 .0 (@types/react@19.1.2)(react@19.1.0)
react : 19.1 .0
react-dom : 19.1 .0 (react@19.1.0)
optionalDependencies :
'@types/react' : 19.1 .2
'@types/react-dom' : 19.1 .1 (@types/react@19.1.2)
2025-04-17 20:36:11 +08:00
'@radix-ui/react-compose-refs@1.1.2(@types/react@19.1.2)(react@19.1.0)' :
dependencies :
react : 19.1 .0
optionalDependencies :
'@types/react' : 19.1 .2
'@radix-ui/react-context@1.1.2(@types/react@19.1.2)(react@19.1.0)' :
dependencies :
react : 19.1 .0
optionalDependencies :
'@types/react' : 19.1 .2
2025-04-22 11:04:03 +08:00
'@radix-ui/react-dialog@1.1.10(@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)' :
dependencies :
'@radix-ui/primitive' : 1.1 .2
'@radix-ui/react-compose-refs' : 1.1 .2 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-context' : 1.1 .2 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-dismissable-layer' : 1.1 .7 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-focus-guards' : 1.1 .2 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-focus-scope' : 1.1 .4 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-id' : 1.1 .1 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-portal' : 1.1 .6 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-presence' : 1.1 .3 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-primitive' : 2.1 .0 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-slot' : 1.2 .0 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-use-controllable-state' : 1.2 .2 (@types/react@19.1.2)(react@19.1.0)
aria-hidden : 1.2 .4
react : 19.1 .0
react-dom : 19.1 .0 (react@19.1.0)
react-remove-scroll : 2.6 .3 (@types/react@19.1.2)(react@19.1.0)
optionalDependencies :
'@types/react' : 19.1 .2
'@types/react-dom' : 19.1 .1 (@types/react@19.1.2)
2025-04-17 20:36:11 +08:00
'@radix-ui/react-direction@1.1.1(@types/react@19.1.2)(react@19.1.0)' :
dependencies :
react : 19.1 .0
optionalDependencies :
'@types/react' : 19.1 .2
2026-01-24 17:49:13 +08:00
'@radix-ui/react-dismissable-layer@1.1.11(@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)' :
dependencies :
'@radix-ui/primitive' : 1.1 .3
'@radix-ui/react-compose-refs' : 1.1 .2 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-primitive' : 2.1 .3 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-use-callback-ref' : 1.1 .1 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-use-escape-keydown' : 1.1 .1 (@types/react@19.1.2)(react@19.1.0)
react : 19.1 .0
react-dom : 19.1 .0 (react@19.1.0)
optionalDependencies :
'@types/react' : 19.1 .2
'@types/react-dom' : 19.1 .1 (@types/react@19.1.2)
2025-04-17 20:36:11 +08:00
'@radix-ui/react-dismissable-layer@1.1.6(@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)' :
dependencies :
'@radix-ui/primitive' : 1.1 .2
'@radix-ui/react-compose-refs' : 1.1 .2 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-primitive' : 2.0 .3 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-use-callback-ref' : 1.1 .1 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-use-escape-keydown' : 1.1 .1 (@types/react@19.1.2)(react@19.1.0)
react : 19.1 .0
react-dom : 19.1 .0 (react@19.1.0)
optionalDependencies :
'@types/react' : 19.1 .2
'@types/react-dom' : 19.1 .1 (@types/react@19.1.2)
2025-04-20 11:18:05 +08:00
'@radix-ui/react-dismissable-layer@1.1.7(@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)' :
dependencies :
'@radix-ui/primitive' : 1.1 .2
'@radix-ui/react-compose-refs' : 1.1 .2 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-primitive' : 2.1 .0 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-use-callback-ref' : 1.1 .1 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-use-escape-keydown' : 1.1 .1 (@types/react@19.1.2)(react@19.1.0)
react : 19.1 .0
react-dom : 19.1 .0 (react@19.1.0)
optionalDependencies :
'@types/react' : 19.1 .2
'@types/react-dom' : 19.1 .1 (@types/react@19.1.2)
'@radix-ui/react-dropdown-menu@2.1.11(@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)' :
dependencies :
'@radix-ui/primitive' : 1.1 .2
'@radix-ui/react-compose-refs' : 1.1 .2 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-context' : 1.1 .2 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-id' : 1.1 .1 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-menu' : 2.1 .11 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-primitive' : 2.1 .0 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-use-controllable-state' : 1.2 .2 (@types/react@19.1.2)(react@19.1.0)
react : 19.1 .0
react-dom : 19.1 .0 (react@19.1.0)
optionalDependencies :
'@types/react' : 19.1 .2
'@types/react-dom' : 19.1 .1 (@types/react@19.1.2)
'@radix-ui/react-focus-guards@1.1.2(@types/react@19.1.2)(react@19.1.0)' :
dependencies :
react : 19.1 .0
optionalDependencies :
'@types/react' : 19.1 .2
'@radix-ui/react-focus-scope@1.1.4(@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)' :
dependencies :
'@radix-ui/react-compose-refs' : 1.1 .2 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-primitive' : 2.1 .0 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-use-callback-ref' : 1.1 .1 (@types/react@19.1.2)(react@19.1.0)
react : 19.1 .0
react-dom : 19.1 .0 (react@19.1.0)
optionalDependencies :
'@types/react' : 19.1 .2
'@types/react-dom' : 19.1 .1 (@types/react@19.1.2)
2026-01-24 17:49:13 +08:00
'@radix-ui/react-hover-card@1.1.15(@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)' :
dependencies :
'@radix-ui/primitive' : 1.1 .3
'@radix-ui/react-compose-refs' : 1.1 .2 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-context' : 1.1 .2 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-dismissable-layer' : 1.1 .11 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-popper' : 1.2 .8 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-portal' : 1.1 .9 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-presence' : 1.1 .5 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-primitive' : 2.1 .3 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-use-controllable-state' : 1.2 .2 (@types/react@19.1.2)(react@19.1.0)
react : 19.1 .0
react-dom : 19.1 .0 (react@19.1.0)
optionalDependencies :
'@types/react' : 19.1 .2
'@types/react-dom' : 19.1 .1 (@types/react@19.1.2)
2025-04-28 10:07:36 +08:00
'@radix-ui/react-icons@1.3.2(react@19.1.0)' :
dependencies :
react : 19.1 .0
2025-04-17 20:36:11 +08:00
'@radix-ui/react-id@1.1.1(@types/react@19.1.2)(react@19.1.0)' :
dependencies :
'@radix-ui/react-use-layout-effect' : 1.1 .1 (@types/react@19.1.2)(react@19.1.0)
react : 19.1 .0
optionalDependencies :
'@types/react' : 19.1 .2
2025-04-22 11:04:03 +08:00
'@radix-ui/react-label@2.1.4(@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)' :
dependencies :
'@radix-ui/react-primitive' : 2.1 .0 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
react : 19.1 .0
react-dom : 19.1 .0 (react@19.1.0)
optionalDependencies :
'@types/react' : 19.1 .2
'@types/react-dom' : 19.1 .1 (@types/react@19.1.2)
2025-04-20 11:18:05 +08:00
'@radix-ui/react-menu@2.1.11(@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)' :
dependencies :
'@radix-ui/primitive' : 1.1 .2
'@radix-ui/react-collection' : 1.1 .4 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-compose-refs' : 1.1 .2 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-context' : 1.1 .2 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-direction' : 1.1 .1 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-dismissable-layer' : 1.1 .7 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-focus-guards' : 1.1 .2 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-focus-scope' : 1.1 .4 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-id' : 1.1 .1 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-popper' : 1.2 .4 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-portal' : 1.1 .6 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-presence' : 1.1 .3 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-primitive' : 2.1 .0 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-roving-focus' : 1.1 .7 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-slot' : 1.2 .0 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-use-callback-ref' : 1.1 .1 (@types/react@19.1.2)(react@19.1.0)
aria-hidden : 1.2 .4
react : 19.1 .0
react-dom : 19.1 .0 (react@19.1.0)
react-remove-scroll : 2.6 .3 (@types/react@19.1.2)(react@19.1.0)
optionalDependencies :
'@types/react' : 19.1 .2
'@types/react-dom' : 19.1 .1 (@types/react@19.1.2)
2025-04-26 00:20:49 +08:00
'@radix-ui/react-popover@1.1.11(@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)' :
dependencies :
'@radix-ui/primitive' : 1.1 .2
'@radix-ui/react-compose-refs' : 1.1 .2 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-context' : 1.1 .2 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-dismissable-layer' : 1.1 .7 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-focus-guards' : 1.1 .2 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-focus-scope' : 1.1 .4 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-id' : 1.1 .1 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-popper' : 1.2 .4 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-portal' : 1.1 .6 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-presence' : 1.1 .4 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-primitive' : 2.1 .0 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-slot' : 1.2 .0 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-use-controllable-state' : 1.2 .2 (@types/react@19.1.2)(react@19.1.0)
aria-hidden : 1.2 .4
react : 19.1 .0
react-dom : 19.1 .0 (react@19.1.0)
react-remove-scroll : 2.6 .3 (@types/react@19.1.2)(react@19.1.0)
optionalDependencies :
'@types/react' : 19.1 .2
'@types/react-dom' : 19.1 .1 (@types/react@19.1.2)
2025-04-17 20:36:11 +08:00
'@radix-ui/react-popper@1.2.3(@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)' :
dependencies :
'@floating-ui/react-dom' : 2.1 .2 (react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-arrow' : 1.1 .3 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-compose-refs' : 1.1 .2 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-context' : 1.1 .2 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-primitive' : 2.0 .3 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-use-callback-ref' : 1.1 .1 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-use-layout-effect' : 1.1 .1 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-use-rect' : 1.1 .1 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-use-size' : 1.1 .1 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/rect' : 1.1 .1
react : 19.1 .0
react-dom : 19.1 .0 (react@19.1.0)
optionalDependencies :
'@types/react' : 19.1 .2
'@types/react-dom' : 19.1 .1 (@types/react@19.1.2)
2025-04-20 11:18:05 +08:00
'@radix-ui/react-popper@1.2.4(@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)' :
dependencies :
'@floating-ui/react-dom' : 2.1 .2 (react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-arrow' : 1.1 .4 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-compose-refs' : 1.1 .2 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-context' : 1.1 .2 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-primitive' : 2.1 .0 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-use-callback-ref' : 1.1 .1 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-use-layout-effect' : 1.1 .1 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-use-rect' : 1.1 .1 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-use-size' : 1.1 .1 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/rect' : 1.1 .1
react : 19.1 .0
react-dom : 19.1 .0 (react@19.1.0)
optionalDependencies :
'@types/react' : 19.1 .2
'@types/react-dom' : 19.1 .1 (@types/react@19.1.2)
2026-01-24 17:49:13 +08:00
'@radix-ui/react-popper@1.2.8(@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)' :
dependencies :
'@floating-ui/react-dom' : 2.1 .2 (react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-arrow' : 1.1 .7 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-compose-refs' : 1.1 .2 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-context' : 1.1 .2 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-primitive' : 2.1 .3 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-use-callback-ref' : 1.1 .1 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-use-layout-effect' : 1.1 .1 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-use-rect' : 1.1 .1 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-use-size' : 1.1 .1 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/rect' : 1.1 .1
react : 19.1 .0
react-dom : 19.1 .0 (react@19.1.0)
optionalDependencies :
'@types/react' : 19.1 .2
'@types/react-dom' : 19.1 .1 (@types/react@19.1.2)
2025-04-17 20:36:11 +08:00
'@radix-ui/react-portal@1.1.5(@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)' :
dependencies :
'@radix-ui/react-primitive' : 2.0 .3 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-use-layout-effect' : 1.1 .1 (@types/react@19.1.2)(react@19.1.0)
react : 19.1 .0
react-dom : 19.1 .0 (react@19.1.0)
optionalDependencies :
'@types/react' : 19.1 .2
'@types/react-dom' : 19.1 .1 (@types/react@19.1.2)
2025-04-20 11:18:05 +08:00
'@radix-ui/react-portal@1.1.6(@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)' :
dependencies :
'@radix-ui/react-primitive' : 2.1 .0 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-use-layout-effect' : 1.1 .1 (@types/react@19.1.2)(react@19.1.0)
react : 19.1 .0
react-dom : 19.1 .0 (react@19.1.0)
optionalDependencies :
'@types/react' : 19.1 .2
'@types/react-dom' : 19.1 .1 (@types/react@19.1.2)
2026-01-24 17:49:13 +08:00
'@radix-ui/react-portal@1.1.9(@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)' :
dependencies :
'@radix-ui/react-primitive' : 2.1 .3 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-use-layout-effect' : 1.1 .1 (@types/react@19.1.2)(react@19.1.0)
react : 19.1 .0
react-dom : 19.1 .0 (react@19.1.0)
optionalDependencies :
'@types/react' : 19.1 .2
'@types/react-dom' : 19.1 .1 (@types/react@19.1.2)
2025-04-17 20:36:11 +08:00
'@radix-ui/react-presence@1.1.3(@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)' :
dependencies :
'@radix-ui/react-compose-refs' : 1.1 .2 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-use-layout-effect' : 1.1 .1 (@types/react@19.1.2)(react@19.1.0)
react : 19.1 .0
react-dom : 19.1 .0 (react@19.1.0)
optionalDependencies :
'@types/react' : 19.1 .2
'@types/react-dom' : 19.1 .1 (@types/react@19.1.2)
2025-04-24 15:40:49 +08:00
'@radix-ui/react-presence@1.1.4(@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)' :
dependencies :
'@radix-ui/react-compose-refs' : 1.1 .2 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-use-layout-effect' : 1.1 .1 (@types/react@19.1.2)(react@19.1.0)
react : 19.1 .0
react-dom : 19.1 .0 (react@19.1.0)
optionalDependencies :
'@types/react' : 19.1 .2
'@types/react-dom' : 19.1 .1 (@types/react@19.1.2)
2026-01-24 17:49:13 +08:00
'@radix-ui/react-presence@1.1.5(@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)' :
dependencies :
'@radix-ui/react-compose-refs' : 1.1 .2 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-use-layout-effect' : 1.1 .1 (@types/react@19.1.2)(react@19.1.0)
react : 19.1 .0
react-dom : 19.1 .0 (react@19.1.0)
optionalDependencies :
'@types/react' : 19.1 .2
'@types/react-dom' : 19.1 .1 (@types/react@19.1.2)
2025-04-17 20:36:11 +08:00
'@radix-ui/react-primitive@2.0.3(@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)' :
dependencies :
'@radix-ui/react-slot' : 1.2 .0 (@types/react@19.1.2)(react@19.1.0)
react : 19.1 .0
react-dom : 19.1 .0 (react@19.1.0)
optionalDependencies :
'@types/react' : 19.1 .2
'@types/react-dom' : 19.1 .1 (@types/react@19.1.2)
2025-04-20 11:18:05 +08:00
'@radix-ui/react-primitive@2.1.0(@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)' :
dependencies :
'@radix-ui/react-slot' : 1.2 .0 (@types/react@19.1.2)(react@19.1.0)
react : 19.1 .0
react-dom : 19.1 .0 (react@19.1.0)
optionalDependencies :
'@types/react' : 19.1 .2
'@types/react-dom' : 19.1 .1 (@types/react@19.1.2)
2026-01-24 17:49:13 +08:00
'@radix-ui/react-primitive@2.1.3(@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)' :
dependencies :
'@radix-ui/react-slot' : 1.2 .3 (@types/react@19.1.2)(react@19.1.0)
react : 19.1 .0
react-dom : 19.1 .0 (react@19.1.0)
optionalDependencies :
'@types/react' : 19.1 .2
'@types/react-dom' : 19.1 .1 (@types/react@19.1.2)
2025-04-17 20:36:11 +08:00
'@radix-ui/react-roving-focus@1.1.3(@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)' :
dependencies :
'@radix-ui/primitive' : 1.1 .2
'@radix-ui/react-collection' : 1.1 .3 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-compose-refs' : 1.1 .2 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-context' : 1.1 .2 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-direction' : 1.1 .1 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-id' : 1.1 .1 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-primitive' : 2.0 .3 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-use-callback-ref' : 1.1 .1 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-use-controllable-state' : 1.1 .1 (@types/react@19.1.2)(react@19.1.0)
react : 19.1 .0
react-dom : 19.1 .0 (react@19.1.0)
optionalDependencies :
'@types/react' : 19.1 .2
'@types/react-dom' : 19.1 .1 (@types/react@19.1.2)
2025-04-20 11:18:05 +08:00
'@radix-ui/react-roving-focus@1.1.7(@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)' :
dependencies :
'@radix-ui/primitive' : 1.1 .2
'@radix-ui/react-collection' : 1.1 .4 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-compose-refs' : 1.1 .2 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-context' : 1.1 .2 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-direction' : 1.1 .1 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-id' : 1.1 .1 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-primitive' : 2.1 .0 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-use-callback-ref' : 1.1 .1 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-use-controllable-state' : 1.2 .2 (@types/react@19.1.2)(react@19.1.0)
react : 19.1 .0
react-dom : 19.1 .0 (react@19.1.0)
optionalDependencies :
'@types/react' : 19.1 .2
'@types/react-dom' : 19.1 .1 (@types/react@19.1.2)
2025-04-17 20:36:11 +08:00
'@radix-ui/react-scroll-area@1.2.4(@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)' :
dependencies :
'@radix-ui/number' : 1.1 .1
'@radix-ui/primitive' : 1.1 .2
'@radix-ui/react-compose-refs' : 1.1 .2 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-context' : 1.1 .2 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-direction' : 1.1 .1 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-presence' : 1.1 .3 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-primitive' : 2.0 .3 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-use-callback-ref' : 1.1 .1 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-use-layout-effect' : 1.1 .1 (@types/react@19.1.2)(react@19.1.0)
react : 19.1 .0
react-dom : 19.1 .0 (react@19.1.0)
2025-04-22 11:04:03 +08:00
optionalDependencies :
'@types/react' : 19.1 .2
'@types/react-dom' : 19.1 .1 (@types/react@19.1.2)
2025-04-24 15:40:49 +08:00
'@radix-ui/react-select@2.2.2(@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)' :
dependencies :
'@radix-ui/number' : 1.1 .1
'@radix-ui/primitive' : 1.1 .2
'@radix-ui/react-collection' : 1.1 .4 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-compose-refs' : 1.1 .2 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-context' : 1.1 .2 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-direction' : 1.1 .1 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-dismissable-layer' : 1.1 .7 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-focus-guards' : 1.1 .2 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-focus-scope' : 1.1 .4 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-id' : 1.1 .1 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-popper' : 1.2 .4 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-portal' : 1.1 .6 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-primitive' : 2.1 .0 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-slot' : 1.2 .0 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-use-callback-ref' : 1.1 .1 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-use-controllable-state' : 1.2 .2 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-use-layout-effect' : 1.1 .1 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-use-previous' : 1.1 .1 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-visually-hidden' : 1.2 .0 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
aria-hidden : 1.2 .4
react : 19.1 .0
react-dom : 19.1 .0 (react@19.1.0)
react-remove-scroll : 2.6 .3 (@types/react@19.1.2)(react@19.1.0)
optionalDependencies :
'@types/react' : 19.1 .2
'@types/react-dom' : 19.1 .1 (@types/react@19.1.2)
2025-04-22 11:04:03 +08:00
'@radix-ui/react-separator@1.1.4(@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)' :
dependencies :
'@radix-ui/react-primitive' : 2.1 .0 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
react : 19.1 .0
react-dom : 19.1 .0 (react@19.1.0)
2025-04-17 20:36:11 +08:00
optionalDependencies :
'@types/react' : 19.1 .2
'@types/react-dom' : 19.1 .1 (@types/react@19.1.2)
2025-05-02 17:23:45 +08:00
'@radix-ui/react-slider@1.3.2(@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)' :
dependencies :
'@radix-ui/number' : 1.1 .1
'@radix-ui/primitive' : 1.1 .2
'@radix-ui/react-collection' : 1.1 .4 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-compose-refs' : 1.1 .2 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-context' : 1.1 .2 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-direction' : 1.1 .1 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-primitive' : 2.1 .0 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-use-controllable-state' : 1.2 .2 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-use-layout-effect' : 1.1 .1 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-use-previous' : 1.1 .1 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-use-size' : 1.1 .1 (@types/react@19.1.2)(react@19.1.0)
react : 19.1 .0
react-dom : 19.1 .0 (react@19.1.0)
optionalDependencies :
'@types/react' : 19.1 .2
'@types/react-dom' : 19.1 .1 (@types/react@19.1.2)
2025-04-17 20:36:11 +08:00
'@radix-ui/react-slot@1.2.0(@types/react@19.1.2)(react@19.1.0)' :
dependencies :
'@radix-ui/react-compose-refs' : 1.1 .2 (@types/react@19.1.2)(react@19.1.0)
react : 19.1 .0
optionalDependencies :
'@types/react' : 19.1 .2
2026-01-24 17:49:13 +08:00
'@radix-ui/react-slot@1.2.3(@types/react@19.1.2)(react@19.1.0)' :
dependencies :
'@radix-ui/react-compose-refs' : 1.1 .2 (@types/react@19.1.2)(react@19.1.0)
react : 19.1 .0
optionalDependencies :
'@types/react' : 19.1 .2
2025-04-24 15:50:41 +08:00
'@radix-ui/react-switch@1.2.2(@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)' :
dependencies :
'@radix-ui/primitive' : 1.1 .2
'@radix-ui/react-compose-refs' : 1.1 .2 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-context' : 1.1 .2 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-primitive' : 2.1 .0 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-use-controllable-state' : 1.2 .2 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-use-previous' : 1.1 .1 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-use-size' : 1.1 .1 (@types/react@19.1.2)(react@19.1.0)
react : 19.1 .0
react-dom : 19.1 .0 (react@19.1.0)
optionalDependencies :
'@types/react' : 19.1 .2
'@types/react-dom' : 19.1 .1 (@types/react@19.1.2)
2025-04-17 20:36:11 +08:00
'@radix-ui/react-tabs@1.1.4(@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)' :
dependencies :
'@radix-ui/primitive' : 1.1 .2
'@radix-ui/react-context' : 1.1 .2 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-direction' : 1.1 .1 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-id' : 1.1 .1 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-presence' : 1.1 .3 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-primitive' : 2.0 .3 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-roving-focus' : 1.1 .3 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-use-controllable-state' : 1.1 .1 (@types/react@19.1.2)(react@19.1.0)
react : 19.1 .0
react-dom : 19.1 .0 (react@19.1.0)
optionalDependencies :
'@types/react' : 19.1 .2
'@types/react-dom' : 19.1 .1 (@types/react@19.1.2)
'@radix-ui/react-tooltip@1.2.0(@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)' :
dependencies :
'@radix-ui/primitive' : 1.1 .2
'@radix-ui/react-compose-refs' : 1.1 .2 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-context' : 1.1 .2 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-dismissable-layer' : 1.1 .6 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-id' : 1.1 .1 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-popper' : 1.2 .3 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-portal' : 1.1 .5 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-presence' : 1.1 .3 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-primitive' : 2.0 .3 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-slot' : 1.2 .0 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-use-controllable-state' : 1.1 .1 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-visually-hidden' : 1.1 .3 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
react : 19.1 .0
react-dom : 19.1 .0 (react@19.1.0)
optionalDependencies :
'@types/react' : 19.1 .2
'@types/react-dom' : 19.1 .1 (@types/react@19.1.2)
'@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.1.2)(react@19.1.0)' :
dependencies :
react : 19.1 .0
optionalDependencies :
'@types/react' : 19.1 .2
'@radix-ui/react-use-controllable-state@1.1.1(@types/react@19.1.2)(react@19.1.0)' :
dependencies :
'@radix-ui/react-use-callback-ref' : 1.1 .1 (@types/react@19.1.2)(react@19.1.0)
react : 19.1 .0
optionalDependencies :
'@types/react' : 19.1 .2
2025-04-20 11:18:05 +08:00
'@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.1.2)(react@19.1.0)' :
dependencies :
'@radix-ui/react-use-effect-event' : 0.0 .2 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-use-layout-effect' : 1.1 .1 (@types/react@19.1.2)(react@19.1.0)
react : 19.1 .0
optionalDependencies :
'@types/react' : 19.1 .2
'@radix-ui/react-use-effect-event@0.0.2(@types/react@19.1.2)(react@19.1.0)' :
dependencies :
'@radix-ui/react-use-layout-effect' : 1.1 .1 (@types/react@19.1.2)(react@19.1.0)
react : 19.1 .0
optionalDependencies :
'@types/react' : 19.1 .2
2025-04-17 20:36:11 +08:00
'@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.1.2)(react@19.1.0)' :
dependencies :
'@radix-ui/react-use-callback-ref' : 1.1 .1 (@types/react@19.1.2)(react@19.1.0)
react : 19.1 .0
optionalDependencies :
'@types/react' : 19.1 .2
'@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.1.2)(react@19.1.0)' :
dependencies :
react : 19.1 .0
optionalDependencies :
'@types/react' : 19.1 .2
2025-04-24 15:40:49 +08:00
'@radix-ui/react-use-previous@1.1.1(@types/react@19.1.2)(react@19.1.0)' :
dependencies :
react : 19.1 .0
optionalDependencies :
'@types/react' : 19.1 .2
2025-04-17 20:36:11 +08:00
'@radix-ui/react-use-rect@1.1.1(@types/react@19.1.2)(react@19.1.0)' :
dependencies :
'@radix-ui/rect' : 1.1 .1
react : 19.1 .0
optionalDependencies :
'@types/react' : 19.1 .2
'@radix-ui/react-use-size@1.1.1(@types/react@19.1.2)(react@19.1.0)' :
dependencies :
'@radix-ui/react-use-layout-effect' : 1.1 .1 (@types/react@19.1.2)(react@19.1.0)
react : 19.1 .0
optionalDependencies :
'@types/react' : 19.1 .2
'@radix-ui/react-visually-hidden@1.1.3(@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)' :
dependencies :
'@radix-ui/react-primitive' : 2.0 .3 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
react : 19.1 .0
2025-04-24 15:40:49 +08:00
react-dom : 19.1 .0 (react@19.1.0)
optionalDependencies :
'@types/react' : 19.1 .2
'@types/react-dom' : 19.1 .1 (@types/react@19.1.2)
'@radix-ui/react-visually-hidden@1.2.0(@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)' :
dependencies :
'@radix-ui/react-primitive' : 2.1 .0 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
react : 19.1 .0
2025-04-17 20:36:11 +08:00
react-dom : 19.1 .0 (react@19.1.0)
optionalDependencies :
'@types/react' : 19.1 .2
'@types/react-dom' : 19.1 .1 (@types/react@19.1.2)
'@radix-ui/rect@1.1.1' : {}
2025-05-28 14:13:46 +08:00
'@rc-component/input@1.0.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0)' :
dependencies :
'@rc-component/util' : 1.2 .1 (react-dom@19.1.0(react@19.1.0))(react@19.1.0)
classnames : 2.5 .1
react : 19.1 .0
react-dom : 19.1 .0 (react@19.1.0)
'@rc-component/mentions@1.2.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)' :
dependencies :
'@rc-component/input' : 1.0 .1 (react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@rc-component/menu' : 1.1 .3 (react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@rc-component/textarea' : 1.0 .0 (react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@rc-component/trigger' : 3.4 .0 (react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@rc-component/util' : 1.2 .1 (react-dom@19.1.0(react@19.1.0))(react@19.1.0)
classnames : 2.5 .1
react : 19.1 .0
react-dom : 19.1 .0 (react@19.1.0)
'@rc-component/menu@1.1.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0)' :
dependencies :
'@rc-component/motion' : 1.1 .4 (react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@rc-component/trigger' : 3.4 .0 (react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@rc-component/util' : 1.2 .1 (react-dom@19.1.0(react@19.1.0))(react@19.1.0)
classnames : 2.5 .1
rc-overflow : 1.4 .1 (react-dom@19.1.0(react@19.1.0))(react@19.1.0)
react : 19.1 .0
react-dom : 19.1 .0 (react@19.1.0)
'@rc-component/motion@1.1.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0)' :
dependencies :
'@rc-component/util' : 1.2 .1 (react-dom@19.1.0(react@19.1.0))(react@19.1.0)
classnames : 2.5 .1
react : 19.1 .0
react-dom : 19.1 .0 (react@19.1.0)
'@rc-component/portal@2.0.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)' :
dependencies :
'@rc-component/util' : 1.2 .1 (react-dom@19.1.0(react@19.1.0))(react@19.1.0)
classnames : 2.5 .1
react : 19.1 .0
react-dom : 19.1 .0 (react@19.1.0)
'@rc-component/resize-observer@1.0.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)' :
dependencies :
'@rc-component/util' : 1.2 .1 (react-dom@19.1.0(react@19.1.0))(react@19.1.0)
classnames : 2.5 .1
react : 19.1 .0
react-dom : 19.1 .0 (react@19.1.0)
'@rc-component/textarea@1.0.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)' :
dependencies :
'@rc-component/input' : 1.0 .1 (react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@rc-component/resize-observer' : 1.0 .0 (react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@rc-component/util' : 1.2 .1 (react-dom@19.1.0(react@19.1.0))(react@19.1.0)
classnames : 2.5 .1
react : 19.1 .0
react-dom : 19.1 .0 (react@19.1.0)
'@rc-component/trigger@3.4.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)' :
dependencies :
'@rc-component/motion' : 1.1 .4 (react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@rc-component/portal' : 2.0 .0 (react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@rc-component/resize-observer' : 1.0 .0 (react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@rc-component/util' : 1.2 .1 (react-dom@19.1.0(react@19.1.0))(react@19.1.0)
classnames : 2.5 .1
react : 19.1 .0
react-dom : 19.1 .0 (react@19.1.0)
2025-04-17 20:36:11 +08:00
'@rc-component/util@1.2.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0)' :
dependencies :
react : 19.1 .0
react-dom : 19.1 .0 (react@19.1.0)
react-is : 18.3 .1
2025-04-26 00:20:49 +08:00
'@remirror/core-constants@3.0.0' : {}
2025-04-17 20:36:11 +08:00
'@rtsao/scc@1.1.0' : {}
'@rushstack/eslint-patch@1.11.0' : {}
2025-04-26 00:20:49 +08:00
'@scena/dragscroll@1.4.0' :
dependencies :
'@daybrush/utils' : 1.13 .0
'@scena/event-emitter' : 1.0 .5
'@scena/event-emitter@1.0.5' :
dependencies :
'@daybrush/utils' : 1.13 .0
'@scena/matrix@1.1.1' :
dependencies :
'@daybrush/utils' : 1.13 .0
2025-07-12 15:18:28 +08:00
'@schummar/icu-type-parser@1.21.5' : {}
2025-10-25 20:46:43 +08:00
'@sinclair/typebox@0.34.41' : {}
2025-04-23 21:16:58 +08:00
2025-10-25 20:46:43 +08:00
'@sinonjs/commons@3.0.1' :
dependencies :
type-detect : 4.0 .8
'@sinonjs/fake-timers@13.0.5' :
dependencies :
'@sinonjs/commons' : 3.0 .1
'@standard-schema/utils@0.3.0' : {}
'@swc/helpers@0.5.15' :
2025-04-17 20:36:11 +08:00
dependencies :
tslib : 2.8 .1
2026-02-09 15:43:04 +08:00
'@swc/helpers@0.5.18' :
2025-09-04 22:26:33 +08:00
dependencies :
tslib : 2.8 .1
2025-04-17 20:36:11 +08:00
'@t3-oss/env-core@0.11.1(typescript@5.8.3)(zod@3.24.3)' :
dependencies :
zod : 3.24 .3
optionalDependencies :
typescript : 5.8 .3
'@t3-oss/env-nextjs@0.11.1(typescript@5.8.3)(zod@3.24.3)' :
dependencies :
'@t3-oss/env-core' : 0.11 .1 (typescript@5.8.3)(zod@3.24.3)
zod : 3.24 .3
optionalDependencies :
typescript : 5.8 .3
'@tailwindcss/node@4.1.4' :
dependencies :
enhanced-resolve : 5.18 .1
jiti : 2.4 .2
lightningcss : 1.29 .2
tailwindcss : 4.1 .4
'@tailwindcss/oxide-android-arm64@4.1.4' :
optional : true
'@tailwindcss/oxide-darwin-arm64@4.1.4' :
optional : true
'@tailwindcss/oxide-darwin-x64@4.1.4' :
optional : true
'@tailwindcss/oxide-freebsd-x64@4.1.4' :
optional : true
'@tailwindcss/oxide-linux-arm-gnueabihf@4.1.4' :
optional : true
'@tailwindcss/oxide-linux-arm64-gnu@4.1.4' :
optional : true
'@tailwindcss/oxide-linux-arm64-musl@4.1.4' :
optional : true
'@tailwindcss/oxide-linux-x64-gnu@4.1.4' :
optional : true
'@tailwindcss/oxide-linux-x64-musl@4.1.4' :
optional : true
'@tailwindcss/oxide-wasm32-wasi@4.1.4' :
optional : true
'@tailwindcss/oxide-win32-arm64-msvc@4.1.4' :
optional : true
'@tailwindcss/oxide-win32-x64-msvc@4.1.4' :
optional : true
'@tailwindcss/oxide@4.1.4' :
optionalDependencies :
'@tailwindcss/oxide-android-arm64' : 4.1 .4
'@tailwindcss/oxide-darwin-arm64' : 4.1 .4
'@tailwindcss/oxide-darwin-x64' : 4.1 .4
'@tailwindcss/oxide-freebsd-x64' : 4.1 .4
'@tailwindcss/oxide-linux-arm-gnueabihf' : 4.1 .4
'@tailwindcss/oxide-linux-arm64-gnu' : 4.1 .4
'@tailwindcss/oxide-linux-arm64-musl' : 4.1 .4
'@tailwindcss/oxide-linux-x64-gnu' : 4.1 .4
'@tailwindcss/oxide-linux-x64-musl' : 4.1 .4
'@tailwindcss/oxide-wasm32-wasi' : 4.1 .4
'@tailwindcss/oxide-win32-arm64-msvc' : 4.1 .4
'@tailwindcss/oxide-win32-x64-msvc' : 4.1 .4
'@tailwindcss/postcss@4.1.4' :
dependencies :
'@alloc/quick-lru' : 5.2 .0
'@tailwindcss/node' : 4.1 .4
'@tailwindcss/oxide' : 4.1 .4
postcss : 8.5 .3
tailwindcss : 4.1 .4
2025-04-26 00:20:49 +08:00
'@tailwindcss/typography@0.5.16(tailwindcss@4.1.4)' :
dependencies :
lodash.castarray : 4.4 .0
lodash.isplainobject : 4.0 .6
lodash.merge : 4.6 .2
postcss-selector-parser : 6.0 .10
tailwindcss : 4.1 .4
2025-10-25 20:46:43 +08:00
'@testing-library/dom@10.4.1' :
dependencies :
'@babel/code-frame' : 7.27 .1
'@babel/runtime' : 7.27 .0
'@types/aria-query' : 5.0 .4
aria-query : 5.3 .0
dom-accessibility-api : 0.5 .16
lz-string : 1.5 .0
picocolors : 1.1 .1
pretty-format : 27.5 .1
'@testing-library/react@16.3.0(@testing-library/dom@10.4.1)(@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)' :
dependencies :
'@babel/runtime' : 7.27 .0
'@testing-library/dom' : 10.4 .1
react : 19.1 .0
react-dom : 19.1 .0 (react@19.1.0)
optionalDependencies :
'@types/react' : 19.1 .2
'@types/react-dom' : 19.1 .1 (@types/react@19.1.2)
2025-04-26 00:20:49 +08:00
'@tiptap/core@2.11.7(@tiptap/pm@2.11.7)' :
dependencies :
'@tiptap/pm' : 2.11 .7
'@tiptap/extension-blockquote@2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))' :
dependencies :
'@tiptap/core' : 2.11 .7 (@tiptap/pm@2.11.7)
'@tiptap/extension-bold@2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))' :
dependencies :
'@tiptap/core' : 2.11 .7 (@tiptap/pm@2.11.7)
'@tiptap/extension-bubble-menu@2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))(@tiptap/pm@2.11.7)' :
dependencies :
'@tiptap/core' : 2.11 .7 (@tiptap/pm@2.11.7)
'@tiptap/pm' : 2.11 .7
tippy.js : 6.3 .7
'@tiptap/extension-bullet-list@2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))' :
dependencies :
'@tiptap/core' : 2.11 .7 (@tiptap/pm@2.11.7)
'@tiptap/extension-character-count@2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))(@tiptap/pm@2.11.7)' :
dependencies :
'@tiptap/core' : 2.11 .7 (@tiptap/pm@2.11.7)
'@tiptap/pm' : 2.11 .7
'@tiptap/extension-code-block-lowlight@2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))(@tiptap/extension-code-block@2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))(@tiptap/pm@2.11.7))(@tiptap/pm@2.11.7)(highlight.js@11.11.1)(lowlight@3.3.0)' :
dependencies :
'@tiptap/core' : 2.11 .7 (@tiptap/pm@2.11.7)
'@tiptap/extension-code-block' : 2.11 .7 (@tiptap/core@2.11.7(@tiptap/pm@2.11.7))(@tiptap/pm@2.11.7)
'@tiptap/pm' : 2.11 .7
highlight.js : 11.11 .1
lowlight : 3.3 .0
'@tiptap/extension-code-block@2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))(@tiptap/pm@2.11.7)' :
dependencies :
'@tiptap/core' : 2.11 .7 (@tiptap/pm@2.11.7)
'@tiptap/pm' : 2.11 .7
'@tiptap/extension-code@2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))' :
dependencies :
'@tiptap/core' : 2.11 .7 (@tiptap/pm@2.11.7)
'@tiptap/extension-color@2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))(@tiptap/extension-text-style@2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7)))' :
dependencies :
'@tiptap/core' : 2.11 .7 (@tiptap/pm@2.11.7)
'@tiptap/extension-text-style' : 2.11 .7 (@tiptap/core@2.11.7(@tiptap/pm@2.11.7))
2025-05-28 14:13:46 +08:00
'@tiptap/extension-document@2.12.0(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))' :
2025-04-26 00:20:49 +08:00
dependencies :
'@tiptap/core' : 2.11 .7 (@tiptap/pm@2.11.7)
'@tiptap/extension-dropcursor@2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))(@tiptap/pm@2.11.7)' :
dependencies :
'@tiptap/core' : 2.11 .7 (@tiptap/pm@2.11.7)
'@tiptap/pm' : 2.11 .7
'@tiptap/extension-floating-menu@2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))(@tiptap/pm@2.11.7)' :
dependencies :
'@tiptap/core' : 2.11 .7 (@tiptap/pm@2.11.7)
'@tiptap/pm' : 2.11 .7
tippy.js : 6.3 .7
'@tiptap/extension-gapcursor@2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))(@tiptap/pm@2.11.7)' :
dependencies :
'@tiptap/core' : 2.11 .7 (@tiptap/pm@2.11.7)
'@tiptap/pm' : 2.11 .7
'@tiptap/extension-hard-break@2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))' :
dependencies :
'@tiptap/core' : 2.11 .7 (@tiptap/pm@2.11.7)
'@tiptap/extension-heading@2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))' :
dependencies :
'@tiptap/core' : 2.11 .7 (@tiptap/pm@2.11.7)
'@tiptap/extension-highlight@2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))' :
dependencies :
'@tiptap/core' : 2.11 .7 (@tiptap/pm@2.11.7)
'@tiptap/extension-history@2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))(@tiptap/pm@2.11.7)' :
dependencies :
'@tiptap/core' : 2.11 .7 (@tiptap/pm@2.11.7)
'@tiptap/pm' : 2.11 .7
'@tiptap/extension-horizontal-rule@2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))(@tiptap/pm@2.11.7)' :
dependencies :
'@tiptap/core' : 2.11 .7 (@tiptap/pm@2.11.7)
'@tiptap/pm' : 2.11 .7
'@tiptap/extension-image@2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))' :
dependencies :
'@tiptap/core' : 2.11 .7 (@tiptap/pm@2.11.7)
'@tiptap/extension-italic@2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))' :
dependencies :
'@tiptap/core' : 2.11 .7 (@tiptap/pm@2.11.7)
'@tiptap/extension-link@2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))(@tiptap/pm@2.11.7)' :
dependencies :
'@tiptap/core' : 2.11 .7 (@tiptap/pm@2.11.7)
'@tiptap/pm' : 2.11 .7
linkifyjs : 4.2 .0
'@tiptap/extension-list-item@2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))' :
dependencies :
'@tiptap/core' : 2.11 .7 (@tiptap/pm@2.11.7)
2025-05-28 14:13:46 +08:00
'@tiptap/extension-mention@2.12.0(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))(@tiptap/pm@2.11.7)(@tiptap/suggestion@2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))(@tiptap/pm@2.11.7))' :
dependencies :
'@tiptap/core' : 2.11 .7 (@tiptap/pm@2.11.7)
'@tiptap/pm' : 2.11 .7
'@tiptap/suggestion' : 2.11 .7 (@tiptap/core@2.11.7(@tiptap/pm@2.11.7))(@tiptap/pm@2.11.7)
2025-04-26 00:20:49 +08:00
'@tiptap/extension-ordered-list@2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))' :
dependencies :
'@tiptap/core' : 2.11 .7 (@tiptap/pm@2.11.7)
'@tiptap/extension-paragraph@2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))' :
dependencies :
'@tiptap/core' : 2.11 .7 (@tiptap/pm@2.11.7)
'@tiptap/extension-placeholder@2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))(@tiptap/pm@2.11.7)' :
dependencies :
'@tiptap/core' : 2.11 .7 (@tiptap/pm@2.11.7)
'@tiptap/pm' : 2.11 .7
'@tiptap/extension-strike@2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))' :
dependencies :
'@tiptap/core' : 2.11 .7 (@tiptap/pm@2.11.7)
2025-04-27 10:39:02 +08:00
'@tiptap/extension-table-cell@2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))' :
dependencies :
'@tiptap/core' : 2.11 .7 (@tiptap/pm@2.11.7)
'@tiptap/extension-table-header@2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))' :
dependencies :
'@tiptap/core' : 2.11 .7 (@tiptap/pm@2.11.7)
'@tiptap/extension-table-row@2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))' :
dependencies :
'@tiptap/core' : 2.11 .7 (@tiptap/pm@2.11.7)
'@tiptap/extension-table@2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))(@tiptap/pm@2.11.7)' :
dependencies :
'@tiptap/core' : 2.11 .7 (@tiptap/pm@2.11.7)
'@tiptap/pm' : 2.11 .7
2025-04-26 00:20:49 +08:00
'@tiptap/extension-task-item@2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))(@tiptap/pm@2.11.7)' :
dependencies :
'@tiptap/core' : 2.11 .7 (@tiptap/pm@2.11.7)
'@tiptap/pm' : 2.11 .7
'@tiptap/extension-task-list@2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))' :
dependencies :
'@tiptap/core' : 2.11 .7 (@tiptap/pm@2.11.7)
'@tiptap/extension-text-style@2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))' :
dependencies :
'@tiptap/core' : 2.11 .7 (@tiptap/pm@2.11.7)
2025-05-28 14:13:46 +08:00
'@tiptap/extension-text@2.12.0(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))' :
2025-04-26 00:20:49 +08:00
dependencies :
'@tiptap/core' : 2.11 .7 (@tiptap/pm@2.11.7)
'@tiptap/extension-underline@2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))' :
dependencies :
'@tiptap/core' : 2.11 .7 (@tiptap/pm@2.11.7)
'@tiptap/extension-youtube@2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))' :
dependencies :
'@tiptap/core' : 2.11 .7 (@tiptap/pm@2.11.7)
'@tiptap/pm@2.11.7' :
dependencies :
prosemirror-changeset : 2.2 .1
prosemirror-collab : 1.3 .1
prosemirror-commands : 1.7 .1
prosemirror-dropcursor : 1.8 .2
prosemirror-gapcursor : 1.3 .2
prosemirror-history : 1.4 .1
prosemirror-inputrules : 1.5 .0
prosemirror-keymap : 1.2 .2
prosemirror-markdown : 1.13 .2
prosemirror-menu : 1.2 .5
prosemirror-model : 1.25 .1
prosemirror-schema-basic : 1.2 .4
prosemirror-schema-list : 1.5 .1
prosemirror-state : 1.4 .3
prosemirror-tables : 1.7 .1
prosemirror-trailing-node : 3.0 .0 (prosemirror-model@1.25.1)(prosemirror-state@1.4.3)(prosemirror-view@1.39.2)
prosemirror-transform : 1.10 .4
prosemirror-view : 1.39 .2
'@tiptap/react@2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))(@tiptap/pm@2.11.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)' :
dependencies :
'@tiptap/core' : 2.11 .7 (@tiptap/pm@2.11.7)
'@tiptap/extension-bubble-menu' : 2.11 .7 (@tiptap/core@2.11.7(@tiptap/pm@2.11.7))(@tiptap/pm@2.11.7)
'@tiptap/extension-floating-menu' : 2.11 .7 (@tiptap/core@2.11.7(@tiptap/pm@2.11.7))(@tiptap/pm@2.11.7)
'@tiptap/pm' : 2.11 .7
'@types/use-sync-external-store' : 0.0 .6
fast-deep-equal : 3.1 .3
react : 19.1 .0
react-dom : 19.1 .0 (react@19.1.0)
use-sync-external-store : 1.5 .0 (react@19.1.0)
'@tiptap/starter-kit@2.11.7' :
dependencies :
'@tiptap/core' : 2.11 .7 (@tiptap/pm@2.11.7)
'@tiptap/extension-blockquote' : 2.11 .7 (@tiptap/core@2.11.7(@tiptap/pm@2.11.7))
'@tiptap/extension-bold' : 2.11 .7 (@tiptap/core@2.11.7(@tiptap/pm@2.11.7))
'@tiptap/extension-bullet-list' : 2.11 .7 (@tiptap/core@2.11.7(@tiptap/pm@2.11.7))
'@tiptap/extension-code' : 2.11 .7 (@tiptap/core@2.11.7(@tiptap/pm@2.11.7))
'@tiptap/extension-code-block' : 2.11 .7 (@tiptap/core@2.11.7(@tiptap/pm@2.11.7))(@tiptap/pm@2.11.7)
2025-05-28 14:13:46 +08:00
'@tiptap/extension-document' : 2.12 .0 (@tiptap/core@2.11.7(@tiptap/pm@2.11.7))
2025-04-26 00:20:49 +08:00
'@tiptap/extension-dropcursor' : 2.11 .7 (@tiptap/core@2.11.7(@tiptap/pm@2.11.7))(@tiptap/pm@2.11.7)
'@tiptap/extension-gapcursor' : 2.11 .7 (@tiptap/core@2.11.7(@tiptap/pm@2.11.7))(@tiptap/pm@2.11.7)
'@tiptap/extension-hard-break' : 2.11 .7 (@tiptap/core@2.11.7(@tiptap/pm@2.11.7))
'@tiptap/extension-heading' : 2.11 .7 (@tiptap/core@2.11.7(@tiptap/pm@2.11.7))
'@tiptap/extension-history' : 2.11 .7 (@tiptap/core@2.11.7(@tiptap/pm@2.11.7))(@tiptap/pm@2.11.7)
'@tiptap/extension-horizontal-rule' : 2.11 .7 (@tiptap/core@2.11.7(@tiptap/pm@2.11.7))(@tiptap/pm@2.11.7)
'@tiptap/extension-italic' : 2.11 .7 (@tiptap/core@2.11.7(@tiptap/pm@2.11.7))
'@tiptap/extension-list-item' : 2.11 .7 (@tiptap/core@2.11.7(@tiptap/pm@2.11.7))
'@tiptap/extension-ordered-list' : 2.11 .7 (@tiptap/core@2.11.7(@tiptap/pm@2.11.7))
'@tiptap/extension-paragraph' : 2.11 .7 (@tiptap/core@2.11.7(@tiptap/pm@2.11.7))
'@tiptap/extension-strike' : 2.11 .7 (@tiptap/core@2.11.7(@tiptap/pm@2.11.7))
2025-05-28 14:13:46 +08:00
'@tiptap/extension-text' : 2.12 .0 (@tiptap/core@2.11.7(@tiptap/pm@2.11.7))
2025-04-26 00:20:49 +08:00
'@tiptap/extension-text-style' : 2.11 .7 (@tiptap/core@2.11.7(@tiptap/pm@2.11.7))
'@tiptap/pm' : 2.11 .7
'@tiptap/suggestion@2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))(@tiptap/pm@2.11.7)' :
dependencies :
'@tiptap/core' : 2.11 .7 (@tiptap/pm@2.11.7)
'@tiptap/pm' : 2.11 .7
2025-10-25 20:46:43 +08:00
'@tybys/wasm-util@0.10.1' :
dependencies :
tslib : 2.8 .1
optional : true
2025-04-17 20:36:11 +08:00
'@tybys/wasm-util@0.9.0' :
dependencies :
tslib : 2.8 .1
optional : true
2025-10-25 20:46:43 +08:00
'@types/aria-query@5.0.4' : {}
'@types/babel__core@7.20.5' :
dependencies :
'@babel/parser' : 7.28 .5
'@babel/types' : 7.28 .5
'@types/babel__generator' : 7.27 .0
'@types/babel__template' : 7.4 .4
'@types/babel__traverse' : 7.28 .0
'@types/babel__generator@7.27.0' :
dependencies :
'@babel/types' : 7.28 .5
'@types/babel__template@7.4.4' :
dependencies :
'@babel/parser' : 7.28 .5
'@babel/types' : 7.28 .5
'@types/babel__traverse@7.28.0' :
dependencies :
'@babel/types' : 7.28 .5
2025-04-29 14:12:36 +08:00
'@types/d3-color@3.1.3' : {}
'@types/d3-drag@3.0.7' :
dependencies :
'@types/d3-selection' : 3.0 .11
'@types/d3-interpolate@3.0.4' :
dependencies :
'@types/d3-color' : 3.1 .3
'@types/d3-selection@3.0.11' : {}
'@types/d3-transition@3.0.9' :
dependencies :
'@types/d3-selection' : 3.0 .11
'@types/d3-zoom@3.0.8' :
dependencies :
'@types/d3-interpolate' : 3.0 .4
'@types/d3-selection' : 3.0 .11
2025-04-17 20:36:11 +08:00
'@types/debug@4.1.12' :
dependencies :
'@types/ms' : 2.1 .0
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
'@types/dompurify@3.2.0' :
dependencies :
dompurify : 3.3 .1
2025-04-22 13:52:56 +08:00
'@types/eslint-scope@3.7.7' :
dependencies :
'@types/eslint' : 9.6 .1
2025-09-04 22:26:33 +08:00
'@types/estree' : 1.0 .8
2025-04-22 13:52:56 +08:00
'@types/eslint@9.6.1' :
dependencies :
2025-09-04 22:26:33 +08:00
'@types/estree' : 1.0 .8
2025-04-22 13:52:56 +08:00
'@types/json-schema' : 7.0 .15
2025-04-17 20:36:11 +08:00
'@types/estree-jsx@1.0.5' :
dependencies :
'@types/estree' : 1.0 .7
'@types/estree@1.0.7' : {}
2025-09-04 22:26:33 +08:00
'@types/estree@1.0.8' : {}
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
'@types/file-saver@2.0.7' : {}
2025-04-17 20:36:11 +08:00
'@types/hast@2.3.10' :
dependencies :
'@types/unist' : 2.0 .11
'@types/hast@3.0.4' :
dependencies :
'@types/unist' : 3.0 .3
2025-10-25 20:46:43 +08:00
'@types/istanbul-lib-coverage@2.0.6' : {}
'@types/istanbul-lib-report@3.0.3' :
dependencies :
'@types/istanbul-lib-coverage' : 2.0 .6
'@types/istanbul-reports@3.0.4' :
dependencies :
'@types/istanbul-lib-report' : 3.0 .3
'@types/jest@30.0.0' :
dependencies :
expect : 30.2 .0
pretty-format : 30.2 .0
2025-07-12 15:18:28 +08:00
'@types/js-cookie@3.0.6' : {}
2025-10-25 20:46:43 +08:00
'@types/jsdom@21.1.7' :
dependencies :
'@types/node' : 20.19 .13
'@types/tough-cookie' : 4.0 .5
parse5 : 7.2 .1
2025-04-17 20:36:11 +08:00
'@types/json-schema@7.0.15' : {}
'@types/json5@0.0.29' : {}
'@types/katex@0.16.7' : {}
2025-04-26 00:20:49 +08:00
'@types/linkify-it@3.0.5' : {}
'@types/linkify-it@5.0.0' : {}
'@types/markdown-it@13.0.9' :
dependencies :
'@types/linkify-it' : 3.0 .5
'@types/mdurl' : 1.0 .5
'@types/markdown-it@14.1.2' :
dependencies :
'@types/linkify-it' : 5.0 .0
'@types/mdurl' : 2.0 .0
2025-04-17 20:36:11 +08:00
'@types/mdast@4.0.4' :
dependencies :
'@types/unist' : 3.0 .3
2025-04-26 00:20:49 +08:00
'@types/mdurl@1.0.5' : {}
'@types/mdurl@2.0.0' : {}
2025-04-17 20:36:11 +08:00
'@types/ms@2.1.0' : {}
'@types/node@20.17.30' :
dependencies :
undici-types : 6.19 .8
2025-09-04 22:26:33 +08:00
'@types/node@20.19.13' :
dependencies :
undici-types : 6.21 .0
2026-02-09 15:43:04 +08:00
'@types/node@20.19.33' :
2025-12-05 14:30:00 +08:00
dependencies :
undici-types : 6.21 .0
2025-04-26 00:20:49 +08:00
'@types/node@22.15.2' :
dependencies :
undici-types : 6.21 .0
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
'@types/node@24.10.3' :
dependencies :
undici-types : 7.16 .0
'@types/pako@2.0.4' : {}
'@types/raf@3.4.3' :
optional : true
2025-04-17 20:36:11 +08:00
'@types/react-dom@19.1.1(@types/react@19.1.2)' :
dependencies :
'@types/react' : 19.1 .2
'@types/react-syntax-highlighter@15.5.13' :
dependencies :
'@types/react' : 19.1 .2
'@types/react@19.1.2' :
dependencies :
csstype : 3.1 .3
2025-10-25 20:46:43 +08:00
'@types/stack-utils@2.0.3' : {}
'@types/tough-cookie@4.0.5' : {}
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
'@types/trusted-types@2.0.7' :
optional : true
2025-04-17 20:36:11 +08:00
'@types/unist@2.0.11' : {}
'@types/unist@3.0.3' : {}
2025-04-26 00:20:49 +08:00
'@types/use-sync-external-store@0.0.6' : {}
2025-10-25 20:46:43 +08:00
'@types/yargs-parser@21.0.3' : {}
'@types/yargs@17.0.34' :
dependencies :
'@types/yargs-parser' : 21.0 .3
2025-04-17 20:36:11 +08:00
'@typescript-eslint/eslint-plugin@8.30.1(@typescript-eslint/parser@8.30.1(eslint@9.24.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.24.0(jiti@2.4.2))(typescript@5.8.3)' :
dependencies :
'@eslint-community/regexpp' : 4.12 .1
'@typescript-eslint/parser' : 8.30 .1 (eslint@9.24.0(jiti@2.4.2))(typescript@5.8.3)
'@typescript-eslint/scope-manager' : 8.30 .1
'@typescript-eslint/type-utils' : 8.30 .1 (eslint@9.24.0(jiti@2.4.2))(typescript@5.8.3)
'@typescript-eslint/utils' : 8.30 .1 (eslint@9.24.0(jiti@2.4.2))(typescript@5.8.3)
'@typescript-eslint/visitor-keys' : 8.30 .1
eslint : 9.24 .0 (jiti@2.4.2)
graphemer : 1.4 .0
ignore : 5.3 .2
natural-compare : 1.4 .0
ts-api-utils : 2.1 .0 (typescript@5.8.3)
typescript : 5.8 .3
transitivePeerDependencies :
- supports-color
'@typescript-eslint/parser@8.30.1(eslint@9.24.0(jiti@2.4.2))(typescript@5.8.3)' :
dependencies :
'@typescript-eslint/scope-manager' : 8.30 .1
'@typescript-eslint/types' : 8.30 .1
'@typescript-eslint/typescript-estree' : 8.30 .1 (typescript@5.8.3)
'@typescript-eslint/visitor-keys' : 8.30 .1
debug : 4.4 .0
eslint : 9.24 .0 (jiti@2.4.2)
typescript : 5.8 .3
transitivePeerDependencies :
- supports-color
'@typescript-eslint/scope-manager@8.30.1' :
dependencies :
'@typescript-eslint/types' : 8.30 .1
'@typescript-eslint/visitor-keys' : 8.30 .1
'@typescript-eslint/type-utils@8.30.1(eslint@9.24.0(jiti@2.4.2))(typescript@5.8.3)' :
dependencies :
'@typescript-eslint/typescript-estree' : 8.30 .1 (typescript@5.8.3)
'@typescript-eslint/utils' : 8.30 .1 (eslint@9.24.0(jiti@2.4.2))(typescript@5.8.3)
debug : 4.4 .0
eslint : 9.24 .0 (jiti@2.4.2)
ts-api-utils : 2.1 .0 (typescript@5.8.3)
typescript : 5.8 .3
transitivePeerDependencies :
- supports-color
'@typescript-eslint/types@8.30.1' : {}
'@typescript-eslint/typescript-estree@8.30.1(typescript@5.8.3)' :
dependencies :
'@typescript-eslint/types' : 8.30 .1
'@typescript-eslint/visitor-keys' : 8.30 .1
debug : 4.4 .0
fast-glob : 3.3 .3
is-glob : 4.0 .3
minimatch : 9.0 .5
2026-02-09 15:43:04 +08:00
semver : 7.7 .4
2025-04-17 20:36:11 +08:00
ts-api-utils : 2.1 .0 (typescript@5.8.3)
typescript : 5.8 .3
transitivePeerDependencies :
- supports-color
'@typescript-eslint/utils@8.30.1(eslint@9.24.0(jiti@2.4.2))(typescript@5.8.3)' :
dependencies :
'@eslint-community/eslint-utils' : 4.6 .1 (eslint@9.24.0(jiti@2.4.2))
'@typescript-eslint/scope-manager' : 8.30 .1
'@typescript-eslint/types' : 8.30 .1
'@typescript-eslint/typescript-estree' : 8.30 .1 (typescript@5.8.3)
eslint : 9.24 .0 (jiti@2.4.2)
typescript : 5.8 .3
transitivePeerDependencies :
- supports-color
'@typescript-eslint/visitor-keys@8.30.1' :
dependencies :
'@typescript-eslint/types' : 8.30 .1
eslint-visitor-keys : 4.2 .0
'@ungap/structured-clone@1.3.0' : {}
2025-10-25 20:46:43 +08:00
'@unrs/resolver-binding-android-arm-eabi@1.11.1' :
optional : true
'@unrs/resolver-binding-android-arm64@1.11.1' :
optional : true
'@unrs/resolver-binding-darwin-arm64@1.11.1' :
optional : true
2025-04-17 20:36:11 +08:00
'@unrs/resolver-binding-darwin-arm64@1.5.0' :
optional : true
2025-10-25 20:46:43 +08:00
'@unrs/resolver-binding-darwin-x64@1.11.1' :
optional : true
2025-04-17 20:36:11 +08:00
'@unrs/resolver-binding-darwin-x64@1.5.0' :
optional : true
2025-10-25 20:46:43 +08:00
'@unrs/resolver-binding-freebsd-x64@1.11.1' :
optional : true
2025-04-17 20:36:11 +08:00
'@unrs/resolver-binding-freebsd-x64@1.5.0' :
optional : true
2025-10-25 20:46:43 +08:00
'@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1' :
optional : true
2025-04-17 20:36:11 +08:00
'@unrs/resolver-binding-linux-arm-gnueabihf@1.5.0' :
optional : true
2025-10-25 20:46:43 +08:00
'@unrs/resolver-binding-linux-arm-musleabihf@1.11.1' :
optional : true
2025-04-17 20:36:11 +08:00
'@unrs/resolver-binding-linux-arm-musleabihf@1.5.0' :
optional : true
2025-10-25 20:46:43 +08:00
'@unrs/resolver-binding-linux-arm64-gnu@1.11.1' :
optional : true
2025-04-17 20:36:11 +08:00
'@unrs/resolver-binding-linux-arm64-gnu@1.5.0' :
optional : true
2025-10-25 20:46:43 +08:00
'@unrs/resolver-binding-linux-arm64-musl@1.11.1' :
optional : true
2025-04-17 20:36:11 +08:00
'@unrs/resolver-binding-linux-arm64-musl@1.5.0' :
2025-04-17 12:02:23 +08:00
optional : true
2025-10-25 20:46:43 +08:00
'@unrs/resolver-binding-linux-ppc64-gnu@1.11.1' :
optional : true
2025-04-17 20:36:11 +08:00
'@unrs/resolver-binding-linux-ppc64-gnu@1.5.0' :
2025-04-17 12:02:23 +08:00
optional : true
2025-10-25 20:46:43 +08:00
'@unrs/resolver-binding-linux-riscv64-gnu@1.11.1' :
optional : true
2025-04-17 20:36:11 +08:00
'@unrs/resolver-binding-linux-riscv64-gnu@1.5.0' :
2025-04-17 12:02:23 +08:00
optional : true
2025-10-25 20:46:43 +08:00
'@unrs/resolver-binding-linux-riscv64-musl@1.11.1' :
optional : true
'@unrs/resolver-binding-linux-s390x-gnu@1.11.1' :
optional : true
2025-04-17 20:36:11 +08:00
'@unrs/resolver-binding-linux-s390x-gnu@1.5.0' :
2025-04-17 12:02:23 +08:00
optional : true
2025-10-25 20:46:43 +08:00
'@unrs/resolver-binding-linux-x64-gnu@1.11.1' :
optional : true
2025-04-17 20:36:11 +08:00
'@unrs/resolver-binding-linux-x64-gnu@1.5.0' :
2025-04-17 12:02:23 +08:00
optional : true
2025-10-25 20:46:43 +08:00
'@unrs/resolver-binding-linux-x64-musl@1.11.1' :
optional : true
2025-04-17 20:36:11 +08:00
'@unrs/resolver-binding-linux-x64-musl@1.5.0' :
optional : true
2025-10-25 20:46:43 +08:00
'@unrs/resolver-binding-wasm32-wasi@1.11.1' :
dependencies :
'@napi-rs/wasm-runtime' : 0.2 .12
optional : true
2025-04-17 20:36:11 +08:00
'@unrs/resolver-binding-wasm32-wasi@1.5.0' :
2025-04-17 12:02:23 +08:00
dependencies :
2025-04-17 14:26:41 +08:00
'@napi-rs/wasm-runtime' : 0.2 .9
2025-04-17 12:02:23 +08:00
optional : true
2025-10-25 20:46:43 +08:00
'@unrs/resolver-binding-win32-arm64-msvc@1.11.1' :
optional : true
2025-04-17 20:36:11 +08:00
'@unrs/resolver-binding-win32-arm64-msvc@1.5.0' :
2025-04-17 12:02:23 +08:00
optional : true
2025-10-25 20:46:43 +08:00
'@unrs/resolver-binding-win32-ia32-msvc@1.11.1' :
optional : true
2025-04-17 20:36:11 +08:00
'@unrs/resolver-binding-win32-ia32-msvc@1.5.0' :
2025-04-17 12:02:23 +08:00
optional : true
2025-10-25 20:46:43 +08:00
'@unrs/resolver-binding-win32-x64-msvc@1.11.1' :
optional : true
2025-04-17 20:36:11 +08:00
'@unrs/resolver-binding-win32-x64-msvc@1.5.0' :
2025-04-17 12:02:23 +08:00
optional : true
2025-04-22 13:52:56 +08:00
'@webassemblyjs/ast@1.14.1' :
dependencies :
'@webassemblyjs/helper-numbers' : 1.13 .2
'@webassemblyjs/helper-wasm-bytecode' : 1.13 .2
'@webassemblyjs/floating-point-hex-parser@1.13.2' : {}
'@webassemblyjs/helper-api-error@1.13.2' : {}
'@webassemblyjs/helper-buffer@1.14.1' : {}
'@webassemblyjs/helper-numbers@1.13.2' :
dependencies :
'@webassemblyjs/floating-point-hex-parser' : 1.13 .2
'@webassemblyjs/helper-api-error' : 1.13 .2
'@xtuc/long' : 4.2 .2
'@webassemblyjs/helper-wasm-bytecode@1.13.2' : {}
'@webassemblyjs/helper-wasm-section@1.14.1' :
dependencies :
'@webassemblyjs/ast' : 1.14 .1
'@webassemblyjs/helper-buffer' : 1.14 .1
'@webassemblyjs/helper-wasm-bytecode' : 1.13 .2
'@webassemblyjs/wasm-gen' : 1.14 .1
'@webassemblyjs/ieee754@1.13.2' :
dependencies :
'@xtuc/ieee754' : 1.2 .0
'@webassemblyjs/leb128@1.13.2' :
dependencies :
'@xtuc/long' : 4.2 .2
'@webassemblyjs/utf8@1.13.2' : {}
'@webassemblyjs/wasm-edit@1.14.1' :
dependencies :
'@webassemblyjs/ast' : 1.14 .1
'@webassemblyjs/helper-buffer' : 1.14 .1
'@webassemblyjs/helper-wasm-bytecode' : 1.13 .2
'@webassemblyjs/helper-wasm-section' : 1.14 .1
'@webassemblyjs/wasm-gen' : 1.14 .1
'@webassemblyjs/wasm-opt' : 1.14 .1
'@webassemblyjs/wasm-parser' : 1.14 .1
'@webassemblyjs/wast-printer' : 1.14 .1
'@webassemblyjs/wasm-gen@1.14.1' :
dependencies :
'@webassemblyjs/ast' : 1.14 .1
'@webassemblyjs/helper-wasm-bytecode' : 1.13 .2
'@webassemblyjs/ieee754' : 1.13 .2
'@webassemblyjs/leb128' : 1.13 .2
'@webassemblyjs/utf8' : 1.13 .2
'@webassemblyjs/wasm-opt@1.14.1' :
dependencies :
'@webassemblyjs/ast' : 1.14 .1
'@webassemblyjs/helper-buffer' : 1.14 .1
'@webassemblyjs/wasm-gen' : 1.14 .1
'@webassemblyjs/wasm-parser' : 1.14 .1
'@webassemblyjs/wasm-parser@1.14.1' :
dependencies :
'@webassemblyjs/ast' : 1.14 .1
'@webassemblyjs/helper-api-error' : 1.13 .2
'@webassemblyjs/helper-wasm-bytecode' : 1.13 .2
'@webassemblyjs/ieee754' : 1.13 .2
'@webassemblyjs/leb128' : 1.13 .2
'@webassemblyjs/utf8' : 1.13 .2
'@webassemblyjs/wast-printer@1.14.1' :
dependencies :
'@webassemblyjs/ast' : 1.14 .1
'@xtuc/long' : 4.2 .2
'@xtuc/ieee754@1.2.0' : {}
'@xtuc/long@4.2.2' : {}
2025-04-29 15:47:01 +08:00
'@xyflow/react@12.6.0(@types/react@19.1.2)(immer@10.1.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)' :
2025-04-29 14:12:36 +08:00
dependencies :
'@xyflow/system' : 0.0 .57
classcat : 5.0 .5
react : 19.1 .0
react-dom : 19.1 .0 (react@19.1.0)
2025-04-29 15:47:01 +08:00
zustand : 4.5 .6 (@types/react@19.1.2)(immer@10.1.1)(react@19.1.0)
2025-04-29 14:12:36 +08:00
transitivePeerDependencies :
- '@types/react'
- immer
'@xyflow/system@0.0.57' :
dependencies :
'@types/d3-drag' : 3.0 .7
'@types/d3-selection' : 3.0 .11
'@types/d3-transition' : 3.0 .9
'@types/d3-zoom' : 3.0 .8
d3-drag : 3.0 .0
d3-selection : 3.0 .0
d3-zoom : 3.0 .0
2025-04-17 20:36:11 +08:00
acorn-jsx@5.3.2(acorn@8.14.1) :
2025-04-17 12:02:23 +08:00
dependencies :
acorn : 8.14 .1
2025-04-17 20:36:11 +08:00
acorn@8.14.1 : {}
2025-04-17 12:02:23 +08:00
2025-09-04 22:26:33 +08:00
acorn@8.15.0 : {}
2025-10-25 20:46:43 +08:00
agent-base@7.1.4 : {}
2025-04-22 13:52:56 +08:00
ajv-formats@2.1.1(ajv@8.17.1) :
optionalDependencies :
ajv : 8.17 .1
ajv-keywords@3.5.2(ajv@6.12.6) :
dependencies :
ajv : 6.12 .6
ajv-keywords@5.1.0(ajv@8.17.1) :
dependencies :
ajv : 8.17 .1
fast-deep-equal : 3.1 .3
2025-04-17 20:36:11 +08:00
ajv@6.12.6 :
2025-04-17 12:02:23 +08:00
dependencies :
fast-deep-equal : 3.1 .3
fast-json-stable-stringify : 2.1 .0
json-schema-traverse : 0.4 .1
uri-js : 4.4 .1
2025-04-22 13:52:56 +08:00
ajv@8.17.1 :
dependencies :
fast-deep-equal : 3.1 .3
2025-09-04 22:26:33 +08:00
fast-uri : 3.1 .0
2025-04-22 13:52:56 +08:00
json-schema-traverse : 1.0 .0
require-from-string : 2.0 .2
2025-10-25 20:46:43 +08:00
ansi-escapes@4.3.2 :
dependencies :
type-fest : 0.21 .3
ansi-regex@5.0.1 : {}
ansi-regex@6.2.2 : {}
2025-04-17 20:36:11 +08:00
ansi-styles@4.3.0 :
2025-04-17 12:02:23 +08:00
dependencies :
color-convert : 2.0 .1
2025-10-25 20:46:43 +08:00
ansi-styles@5.2.0 : {}
ansi-styles@6.2.3 : {}
anymatch@3.1.3 :
dependencies :
normalize-path : 3.0 .0
picomatch : 2.3 .1
argparse@1.0.10 :
dependencies :
sprintf-js : 1.0 .3
2025-04-17 20:36:11 +08:00
argparse@2.0.1 : {}
2025-04-17 12:02:23 +08:00
2025-04-20 11:18:05 +08:00
aria-hidden@1.2.4 :
dependencies :
tslib : 2.8 .1
2025-10-25 20:46:43 +08:00
aria-query@5.3.0 :
dependencies :
dequal : 2.0 .3
2025-04-17 20:36:11 +08:00
aria-query@5.3.2 : {}
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
array-buffer-byte-length@1.0.2 :
2025-04-17 12:02:23 +08:00
dependencies :
call-bound : 1.0 .4
is-array-buffer : 3.0 .5
2025-04-17 20:36:11 +08:00
array-includes@3.1.8 :
2025-04-17 12:02:23 +08:00
dependencies :
call-bind : 1.0 .8
define-properties : 1.2 .1
es-abstract : 1.23 .9
es-object-atoms : 1.1 .1
get-intrinsic : 1.3 .0
is-string : 1.1 .1
2025-04-17 20:36:11 +08:00
array.prototype.findlast@1.2.5 :
2025-04-17 12:02:23 +08:00
dependencies :
call-bind : 1.0 .8
define-properties : 1.2 .1
es-abstract : 1.23 .9
es-errors : 1.3 .0
es-object-atoms : 1.1 .1
es-shim-unscopables : 1.1 .0
2025-04-17 20:36:11 +08:00
array.prototype.findlastindex@1.2.6 :
2025-04-17 12:02:23 +08:00
dependencies :
call-bind : 1.0 .8
call-bound : 1.0 .4
define-properties : 1.2 .1
es-abstract : 1.23 .9
es-errors : 1.3 .0
es-object-atoms : 1.1 .1
es-shim-unscopables : 1.1 .0
2025-04-17 20:36:11 +08:00
array.prototype.flat@1.3.3 :
2025-04-17 12:02:23 +08:00
dependencies :
call-bind : 1.0 .8
define-properties : 1.2 .1
es-abstract : 1.23 .9
es-shim-unscopables : 1.1 .0
2025-04-17 20:36:11 +08:00
array.prototype.flatmap@1.3.3 :
2025-04-17 12:02:23 +08:00
dependencies :
call-bind : 1.0 .8
define-properties : 1.2 .1
es-abstract : 1.23 .9
es-shim-unscopables : 1.1 .0
2025-04-17 20:36:11 +08:00
array.prototype.tosorted@1.1.4 :
2025-04-17 12:02:23 +08:00
dependencies :
call-bind : 1.0 .8
define-properties : 1.2 .1
es-abstract : 1.23 .9
es-errors : 1.3 .0
es-shim-unscopables : 1.1 .0
2025-04-17 20:36:11 +08:00
arraybuffer.prototype.slice@1.0.4 :
2025-04-17 12:02:23 +08:00
dependencies :
array-buffer-byte-length : 1.0 .2
call-bind : 1.0 .8
define-properties : 1.2 .1
es-abstract : 1.23 .9
es-errors : 1.3 .0
get-intrinsic : 1.3 .0
is-array-buffer : 3.0 .5
2025-04-17 20:36:11 +08:00
ast-types-flow@0.0.8 : {}
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
async-function@1.0.0 : {}
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
available-typed-arrays@1.0.7 :
2025-04-17 12:02:23 +08:00
dependencies :
possible-typed-array-names : 1.1 .0
2025-04-17 20:36:11 +08:00
axe-core@4.10.3 : {}
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
axobject-query@4.1.0 : {}
2025-04-17 12:02:23 +08:00
2025-10-25 20:46:43 +08:00
babel-jest@30.2.0(@babel/core@7.28.5) :
dependencies :
'@babel/core' : 7.28 .5
'@jest/transform' : 30.2 .0
'@types/babel__core' : 7.20 .5
babel-plugin-istanbul : 7.0 .1
babel-preset-jest : 30.2 .0 (@babel/core@7.28.5)
chalk : 4.1 .2
graceful-fs : 4.2 .11
slash : 3.0 .0
transitivePeerDependencies :
- supports-color
babel-plugin-istanbul@7.0.1 :
dependencies :
'@babel/helper-plugin-utils' : 7.27 .1
'@istanbuljs/load-nyc-config' : 1.1 .0
'@istanbuljs/schema' : 0.1 .3
istanbul-lib-instrument : 6.0 .3
test-exclude : 6.0 .0
transitivePeerDependencies :
- supports-color
babel-plugin-jest-hoist@30.2.0 :
dependencies :
'@types/babel__core' : 7.20 .5
babel-preset-current-node-syntax@1.2.0(@babel/core@7.28.5) :
dependencies :
'@babel/core' : 7.28 .5
'@babel/plugin-syntax-async-generators' : 7.8 .4 (@babel/core@7.28.5)
'@babel/plugin-syntax-bigint' : 7.8 .3 (@babel/core@7.28.5)
'@babel/plugin-syntax-class-properties' : 7.12 .13 (@babel/core@7.28.5)
'@babel/plugin-syntax-class-static-block' : 7.14 .5 (@babel/core@7.28.5)
'@babel/plugin-syntax-import-attributes' : 7.27 .1 (@babel/core@7.28.5)
'@babel/plugin-syntax-import-meta' : 7.10 .4 (@babel/core@7.28.5)
'@babel/plugin-syntax-json-strings' : 7.8 .3 (@babel/core@7.28.5)
'@babel/plugin-syntax-logical-assignment-operators' : 7.10 .4 (@babel/core@7.28.5)
'@babel/plugin-syntax-nullish-coalescing-operator' : 7.8 .3 (@babel/core@7.28.5)
'@babel/plugin-syntax-numeric-separator' : 7.10 .4 (@babel/core@7.28.5)
'@babel/plugin-syntax-object-rest-spread' : 7.8 .3 (@babel/core@7.28.5)
'@babel/plugin-syntax-optional-catch-binding' : 7.8 .3 (@babel/core@7.28.5)
'@babel/plugin-syntax-optional-chaining' : 7.8 .3 (@babel/core@7.28.5)
'@babel/plugin-syntax-private-property-in-object' : 7.14 .5 (@babel/core@7.28.5)
'@babel/plugin-syntax-top-level-await' : 7.14 .5 (@babel/core@7.28.5)
babel-preset-jest@30.2.0(@babel/core@7.28.5) :
dependencies :
'@babel/core' : 7.28 .5
babel-plugin-jest-hoist : 30.2 .0
babel-preset-current-node-syntax : 1.2 .0 (@babel/core@7.28.5)
2025-04-17 20:36:11 +08:00
bail@2.0.2 : {}
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
balanced-match@1.0.2 : {}
2025-04-17 12:02:23 +08:00
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
base64-arraybuffer@1.0.2 : {}
2026-02-06 10:29:43 +08:00
baseline-browser-mapping@2.9.19 : {}
2025-12-05 14:30:00 +08:00
2025-04-17 20:36:11 +08:00
best-effort-json-parser@1.1.3 : {}
2025-04-17 12:02:23 +08:00
2025-04-22 13:52:56 +08:00
big.js@5.2.2 : {}
2025-04-17 20:36:11 +08:00
brace-expansion@1.1.11 :
2025-04-17 12:02:23 +08:00
dependencies :
balanced-match : 1.0 .2
concat-map : 0.0 .1
2025-04-17 20:36:11 +08:00
brace-expansion@2.0.1 :
2025-04-17 12:02:23 +08:00
dependencies :
balanced-match : 1.0 .2
2025-04-17 20:36:11 +08:00
braces@3.0.3 :
2025-04-17 12:02:23 +08:00
dependencies :
fill-range : 7.1 .1
2025-09-04 22:26:33 +08:00
browserslist@4.25.4 :
2025-04-22 13:52:56 +08:00
dependencies :
2026-02-09 15:43:04 +08:00
caniuse-lite : 1.0 .30001769
2025-09-04 22:26:33 +08:00
electron-to-chromium : 1.5 .214
2025-04-22 13:52:56 +08:00
node-releases : 2.0 .19
2025-09-04 22:26:33 +08:00
update-browserslist-db : 1.1 .3 (browserslist@4.25.4)
2025-04-22 13:52:56 +08:00
2025-12-05 14:30:00 +08:00
browserslist@4.28.1 :
dependencies :
2026-02-06 10:29:43 +08:00
baseline-browser-mapping : 2.9 .19
2026-02-09 15:43:04 +08:00
caniuse-lite : 1.0 .30001769
2026-02-06 10:29:43 +08:00
electron-to-chromium : 1.5 .286
2025-12-05 14:30:00 +08:00
node-releases : 2.0 .27
2026-01-06 09:07:18 +08:00
update-browserslist-db : 1.2 .3 (browserslist@4.28.1)
2025-12-05 14:30:00 +08:00
2025-10-25 20:46:43 +08:00
bs-logger@0.2.6 :
dependencies :
fast-json-stable-stringify : 2.1 .0
bser@2.1.1 :
dependencies :
node-int64 : 0.4 .0
2025-04-22 13:52:56 +08:00
buffer-from@1.1.2 : {}
2025-04-17 20:36:11 +08:00
call-bind-apply-helpers@1.0.2 :
2025-04-17 12:02:23 +08:00
dependencies :
es-errors : 1.3 .0
function-bind : 1.1 .2
2025-04-17 20:36:11 +08:00
call-bind@1.0.8 :
2025-04-17 12:02:23 +08:00
dependencies :
call-bind-apply-helpers : 1.0 .2
es-define-property : 1.0 .1
get-intrinsic : 1.3 .0
set-function-length : 1.2 .2
2025-04-17 20:36:11 +08:00
call-bound@1.0.4 :
2025-04-17 12:02:23 +08:00
dependencies :
call-bind-apply-helpers : 1.0 .2
get-intrinsic : 1.3 .0
2025-04-17 20:36:11 +08:00
callsites@3.1.0 : {}
2025-04-17 12:02:23 +08:00
2025-10-25 20:46:43 +08:00
camelcase@5.3.1 : {}
camelcase@6.3.0 : {}
2026-02-09 15:43:04 +08:00
caniuse-lite@1.0.30001769 : {}
2026-01-06 09:07:18 +08:00
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
canvg@3.0.11 :
dependencies :
2026-02-06 10:29:43 +08:00
'@babel/runtime' : 7.28 .6
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
'@types/raf' : 3.4 .3
2026-02-06 10:29:43 +08:00
core-js : 3.48 .0
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
raf : 3.4 .1
regenerator-runtime : 0.13 .11
rgbcolor : 1.0 .1
stackblur-canvas : 2.7 .0
svg-pathdata : 6.0 .3
optional : true
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
ccount@2.0.1 : {}
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
chalk@4.1.2 :
2025-04-17 12:02:23 +08:00
dependencies :
ansi-styles : 4.3 .0
supports-color : 7.2 .0
2025-10-25 20:46:43 +08:00
char-regex@1.0.2 : {}
2025-04-17 20:36:11 +08:00
character-entities-html4@2.1.0 : {}
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
character-entities-legacy@1.1.4 : {}
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
character-entities-legacy@3.0.0 : {}
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
character-entities@1.2.4 : {}
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
character-entities@2.0.2 : {}
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
character-reference-invalid@1.1.4 : {}
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
character-reference-invalid@2.0.1 : {}
2025-04-17 12:02:23 +08:00
2025-04-22 13:52:56 +08:00
chrome-trace-event@1.0.4 : {}
2025-10-25 20:46:43 +08:00
ci-info@4.3.1 : {}
cjs-module-lexer@2.1.0 : {}
2025-04-17 20:36:11 +08:00
class-variance-authority@0.7.1 :
2025-04-17 12:02:23 +08:00
dependencies :
clsx : 2.1 .1
2025-04-29 14:12:36 +08:00
classcat@5.0.5 : {}
2025-04-17 20:36:11 +08:00
classnames@2.5.1 : {}
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
client-only@0.0.1 : {}
2025-04-17 12:02:23 +08:00
2025-10-25 20:46:43 +08:00
cliui@8.0.1 :
dependencies :
string-width : 4.2 .3
strip-ansi : 6.0 .1
wrap-ansi : 7.0 .0
2025-04-17 20:36:11 +08:00
clsx@2.1.1 : {}
2025-04-17 12:02:23 +08:00
2025-04-26 00:20:49 +08:00
cmdk@1.1.1(@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) :
dependencies :
'@radix-ui/react-compose-refs' : 1.1 .2 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-dialog' : 1.1 .10 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@radix-ui/react-id' : 1.1 .1 (@types/react@19.1.2)(react@19.1.0)
'@radix-ui/react-primitive' : 2.1 .0 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
react : 19.1 .0
react-dom : 19.1 .0 (react@19.1.0)
transitivePeerDependencies :
- '@types/react'
- '@types/react-dom'
2025-10-25 20:46:43 +08:00
co@4.6.0 : {}
collect-v8-coverage@1.0.3 : {}
2025-04-17 20:36:11 +08:00
color-convert@2.0.1 :
2025-04-17 12:02:23 +08:00
dependencies :
color-name : 1.1 .4
2025-04-17 20:36:11 +08:00
color-name@1.1.4 : {}
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
comma-separated-tokens@1.0.8 : {}
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
comma-separated-tokens@2.0.3 : {}
2025-04-17 12:02:23 +08:00
2025-04-22 13:52:56 +08:00
commander@2.20.3 : {}
2025-04-17 20:36:11 +08:00
commander@8.3.0 : {}
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
concat-map@0.0.1 : {}
2025-04-17 12:02:23 +08:00
2025-10-25 20:46:43 +08:00
convert-source-map@2.0.0 : {}
2026-02-06 10:29:43 +08:00
core-js@3.48.0 :
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
optional : true
core-util-is@1.0.3 : {}
2025-04-26 00:20:49 +08:00
crelt@1.0.6 : {}
2025-04-17 20:36:11 +08:00
cross-spawn@7.0.6 :
2025-04-17 12:02:23 +08:00
dependencies :
path-key : 3.1 .1
shebang-command : 2.0 .0
which : 2.0 .2
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
css-line-break@2.1.0 :
dependencies :
utrie : 1.0 .2
2025-04-26 00:20:49 +08:00
css-styled@1.0.8 :
dependencies :
'@daybrush/utils' : 1.13 .0
css-to-mat@1.1.1 :
dependencies :
'@daybrush/utils' : 1.13 .0
'@scena/matrix' : 1.1 .1
cssesc@3.0.0 : {}
2025-10-25 20:46:43 +08:00
cssstyle@4.6.0 :
dependencies :
'@asamuzakjp/css-color' : 3.2 .0
rrweb-cssom : 0.8 .0
2025-04-17 20:36:11 +08:00
csstype@3.1.3 : {}
2025-04-17 12:02:23 +08:00
2025-04-29 14:12:36 +08:00
d3-color@3.1.0 : {}
d3-dispatch@3.0.1 : {}
d3-drag@3.0.0 :
dependencies :
d3-dispatch : 3.0 .1
d3-selection : 3.0 .0
d3-ease@3.0.1 : {}
d3-interpolate@3.0.1 :
dependencies :
d3-color : 3.1 .0
d3-selection@3.0.0 : {}
d3-timer@3.0.1 : {}
d3-transition@3.0.1(d3-selection@3.0.0) :
dependencies :
d3-color : 3.1 .0
d3-dispatch : 3.0 .1
d3-ease : 3.0 .1
d3-interpolate : 3.0 .1
d3-selection : 3.0 .0
d3-timer : 3.0 .1
d3-zoom@3.0.0 :
dependencies :
d3-dispatch : 3.0 .1
d3-drag : 3.0 .0
d3-interpolate : 3.0 .1
d3-selection : 3.0 .0
d3-transition : 3.0 .1 (d3-selection@3.0.0)
2025-04-17 20:36:11 +08:00
damerau-levenshtein@1.0.8 : {}
2025-04-17 12:02:23 +08:00
2025-10-25 20:46:43 +08:00
data-urls@5.0.0 :
dependencies :
whatwg-mimetype : 4.0 .0
whatwg-url : 14.2 .0
2025-04-17 20:36:11 +08:00
data-view-buffer@1.0.2 :
2025-04-17 12:02:23 +08:00
dependencies :
call-bound : 1.0 .4
es-errors : 1.3 .0
is-data-view : 1.0 .2
2025-04-17 20:36:11 +08:00
data-view-byte-length@1.0.2 :
2025-04-17 12:02:23 +08:00
dependencies :
call-bound : 1.0 .4
es-errors : 1.3 .0
is-data-view : 1.0 .2
2025-04-17 20:36:11 +08:00
data-view-byte-offset@1.0.1 :
2025-04-17 12:02:23 +08:00
dependencies :
call-bound : 1.0 .4
es-errors : 1.3 .0
is-data-view : 1.0 .2
2025-04-17 20:36:11 +08:00
debug@3.2.7 :
2025-04-17 12:02:23 +08:00
dependencies :
ms : 2.1 .3
2025-04-17 20:36:11 +08:00
debug@4.4.0 :
2025-04-17 12:02:23 +08:00
dependencies :
ms : 2.1 .3
2025-07-12 15:18:28 +08:00
decimal.js@10.5.0 : {}
2025-04-17 20:36:11 +08:00
decode-named-character-reference@1.1.0 :
2025-04-17 12:02:23 +08:00
dependencies :
character-entities : 2.0 .2
2025-10-25 20:46:43 +08:00
dedent@1.7.0 : {}
2025-04-17 20:36:11 +08:00
deep-is@0.1.4 : {}
2025-04-17 12:02:23 +08:00
2025-10-25 20:46:43 +08:00
deepmerge@4.3.1 : {}
2025-04-17 20:36:11 +08:00
define-data-property@1.1.4 :
2025-04-17 12:02:23 +08:00
dependencies :
es-define-property : 1.0 .1
es-errors : 1.3 .0
gopd : 1.2 .0
2025-04-17 20:36:11 +08:00
define-properties@1.2.1 :
2025-04-17 12:02:23 +08:00
dependencies :
define-data-property : 1.1 .4
has-property-descriptors : 1.0 .2
object-keys : 1.1 .1
2025-04-17 20:36:11 +08:00
dequal@2.0.3 : {}
2025-04-17 12:02:23 +08:00
2025-12-05 14:30:00 +08:00
detect-libc@2.1.2 : {}
2025-04-17 12:02:23 +08:00
2025-10-25 20:46:43 +08:00
detect-newline@3.1.0 : {}
2025-04-20 11:18:05 +08:00
detect-node-es@1.1.0 : {}
2025-04-17 20:36:11 +08:00
devlop@1.1.0 :
2025-04-17 12:02:23 +08:00
dependencies :
dequal : 2.0 .3
2025-04-17 20:36:11 +08:00
doctrine@2.1.0 :
2025-04-17 12:02:23 +08:00
dependencies :
esutils : 2.0 .3
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
docx@9.5.1 :
dependencies :
'@types/node' : 24.10 .3
hash.js : 1.1 .7
jszip : 3.10 .1
nanoid : 5.1 .5
xml : 1.0 .1
xml-js : 1.6 .11
2025-10-25 20:46:43 +08:00
dom-accessibility-api@0.5.16 : {}
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
dompurify@3.3.1 :
optionalDependencies :
'@types/trusted-types' : 2.0 .7
2025-06-05 11:53:49 +08:00
dotenv-cli@8.0.0 :
dependencies :
cross-spawn : 7.0 .6
dotenv : 16.5 .0
dotenv-expand : 10.0 .0
minimist : 1.2 .8
dotenv-expand@10.0.0 : {}
dotenv@16.5.0 : {}
2025-04-17 20:36:11 +08:00
dunder-proto@1.0.1 :
2025-04-17 12:02:23 +08:00
dependencies :
call-bind-apply-helpers : 1.0 .2
es-errors : 1.3 .0
gopd : 1.2 .0
2025-10-25 20:46:43 +08:00
eastasianwidth@0.2.0 : {}
2025-09-04 22:26:33 +08:00
electron-to-chromium@1.5.214 : {}
2025-04-22 13:52:56 +08:00
2026-02-06 10:29:43 +08:00
electron-to-chromium@1.5.286 : {}
2025-12-05 14:30:00 +08:00
2025-10-25 20:46:43 +08:00
emittery@0.13.1 : {}
emoji-regex@8.0.0 : {}
2025-04-17 20:36:11 +08:00
emoji-regex@9.2.2 : {}
2025-04-17 12:02:23 +08:00
2025-04-22 13:52:56 +08:00
emojis-list@3.0.0 : {}
2025-04-17 20:36:11 +08:00
enhanced-resolve@5.18.1 :
2025-04-17 12:02:23 +08:00
dependencies :
graceful-fs : 4.2 .11
tapable : 2.2 .1
2026-02-06 10:29:43 +08:00
enhanced-resolve@5.19.0 :
2025-09-04 22:26:33 +08:00
dependencies :
graceful-fs : 4.2 .11
2025-12-05 14:30:00 +08:00
tapable : 2.3 .0
2025-09-04 22:26:33 +08:00
2025-04-17 20:36:11 +08:00
entities@4.5.0 : {}
2025-04-17 12:02:23 +08:00
2025-10-25 20:46:43 +08:00
error-ex@1.3.4 :
dependencies :
is-arrayish : 0.2 .1
2025-04-17 20:36:11 +08:00
es-abstract@1.23.9 :
2025-04-17 12:02:23 +08:00
dependencies :
array-buffer-byte-length : 1.0 .2
arraybuffer.prototype.slice : 1.0 .4
available-typed-arrays : 1.0 .7
call-bind : 1.0 .8
call-bound : 1.0 .4
data-view-buffer : 1.0 .2
data-view-byte-length : 1.0 .2
data-view-byte-offset : 1.0 .1
es-define-property : 1.0 .1
es-errors : 1.3 .0
es-object-atoms : 1.1 .1
es-set-tostringtag : 2.1 .0
es-to-primitive : 1.3 .0
function.prototype.name : 1.1 .8
get-intrinsic : 1.3 .0
get-proto : 1.0 .1
get-symbol-description : 1.1 .0
globalthis : 1.0 .4
gopd : 1.2 .0
has-property-descriptors : 1.0 .2
has-proto : 1.2 .0
has-symbols : 1.1 .0
hasown : 2.0 .2
internal-slot : 1.1 .0
is-array-buffer : 3.0 .5
is-callable : 1.2 .7
is-data-view : 1.0 .2
is-regex : 1.2 .1
is-shared-array-buffer : 1.0 .4
is-string : 1.1 .1
is-typed-array : 1.1 .15
is-weakref : 1.1 .1
math-intrinsics : 1.1 .0
object-inspect : 1.13 .4
object-keys : 1.1 .1
object.assign : 4.1 .7
own-keys : 1.0 .1
regexp.prototype.flags : 1.5 .4
safe-array-concat : 1.1 .3
safe-push-apply : 1.0 .0
safe-regex-test : 1.1 .0
set-proto : 1.0 .0
string.prototype.trim : 1.2 .10
string.prototype.trimend : 1.0 .9
string.prototype.trimstart : 1.0 .8
typed-array-buffer : 1.0 .3
typed-array-byte-length : 1.0 .3
typed-array-byte-offset : 1.0 .4
typed-array-length : 1.0 .7
unbox-primitive : 1.1 .0
which-typed-array : 1.1 .19
2025-04-17 20:36:11 +08:00
es-define-property@1.0.1 : {}
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
es-errors@1.3.0 : {}
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
es-iterator-helpers@1.2.1 :
2025-04-17 12:02:23 +08:00
dependencies :
call-bind : 1.0 .8
call-bound : 1.0 .4
define-properties : 1.2 .1
es-abstract : 1.23 .9
es-errors : 1.3 .0
es-set-tostringtag : 2.1 .0
function-bind : 1.1 .2
get-intrinsic : 1.3 .0
globalthis : 1.0 .4
gopd : 1.2 .0
has-property-descriptors : 1.0 .2
has-proto : 1.2 .0
has-symbols : 1.1 .0
internal-slot : 1.1 .0
iterator.prototype : 1.1 .5
safe-array-concat : 1.1 .3
2025-09-04 22:26:33 +08:00
es-module-lexer@1.7.0 : {}
2025-04-22 13:52:56 +08:00
2025-04-17 20:36:11 +08:00
es-object-atoms@1.1.1 :
2025-04-17 12:02:23 +08:00
dependencies :
es-errors : 1.3 .0
2025-04-17 20:36:11 +08:00
es-set-tostringtag@2.1.0 :
2025-04-17 12:02:23 +08:00
dependencies :
es-errors : 1.3 .0
get-intrinsic : 1.3 .0
has-tostringtag : 1.0 .2
hasown : 2.0 .2
2025-04-17 20:36:11 +08:00
es-shim-unscopables@1.1.0 :
2025-04-17 12:02:23 +08:00
dependencies :
hasown : 2.0 .2
2025-04-17 20:36:11 +08:00
es-to-primitive@1.3.0 :
2025-04-17 12:02:23 +08:00
dependencies :
is-callable : 1.2 .7
is-date-object : 1.1 .0
is-symbol : 1.1 .1
2025-04-22 13:52:56 +08:00
escalade@3.2.0 : {}
2025-10-25 20:46:43 +08:00
escape-string-regexp@2.0.0 : {}
2025-04-17 20:36:11 +08:00
escape-string-regexp@4.0.0 : {}
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
escape-string-regexp@5.0.0 : {}
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
eslint-config-next@15.3.0(eslint@9.24.0(jiti@2.4.2))(typescript@5.8.3) :
2025-04-17 12:02:23 +08:00
dependencies :
'@next/eslint-plugin-next' : 15.3 .0
'@rushstack/eslint-patch' : 1.11 .0
2025-04-17 20:36:11 +08:00
'@typescript-eslint/eslint-plugin' : 8.30 .1 (@typescript-eslint/parser@8.30.1(eslint@9.24.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.24.0(jiti@2.4.2))(typescript@5.8.3)
'@typescript-eslint/parser' : 8.30 .1 (eslint@9.24.0(jiti@2.4.2))(typescript@5.8.3)
eslint : 9.24 .0 (jiti@2.4.2)
2025-04-17 12:02:23 +08:00
eslint-import-resolver-node : 0.3 .9
2025-04-17 20:36:11 +08:00
eslint-import-resolver-typescript : 3.10 .0 (eslint-plugin-import@2.31.0)(eslint@9.24.0(jiti@2.4.2))
eslint-plugin-import : 2.31 .0 (@typescript-eslint/parser@8.30.1(eslint@9.24.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.0)(eslint@9.24.0(jiti@2.4.2))
eslint-plugin-jsx-a11y : 6.10 .2 (eslint@9.24.0(jiti@2.4.2))
eslint-plugin-react : 7.37 .5 (eslint@9.24.0(jiti@2.4.2))
eslint-plugin-react-hooks : 5.2 .0 (eslint@9.24.0(jiti@2.4.2))
optionalDependencies :
2025-04-17 12:02:23 +08:00
typescript : 5.8 .3
transitivePeerDependencies :
- eslint-import-resolver-webpack
- eslint-plugin-import-x
- supports-color
2025-04-17 20:36:11 +08:00
eslint-import-resolver-node@0.3.9 :
2025-04-17 12:02:23 +08:00
dependencies :
debug : 3.2 .7
is-core-module : 2.16 .1
resolve : 1.22 .10
transitivePeerDependencies :
- supports-color
2025-04-17 20:36:11 +08:00
eslint-import-resolver-typescript@3.10.0(eslint-plugin-import@2.31.0)(eslint@9.24.0(jiti@2.4.2)) :
2025-04-17 12:02:23 +08:00
dependencies :
'@nolyfill/is-core-module' : 1.0 .39
debug : 4.4 .0
2025-04-17 20:36:11 +08:00
eslint : 9.24 .0 (jiti@2.4.2)
2025-04-17 12:02:23 +08:00
get-tsconfig : 4.10 .0
is-bun-module : 2.0 .0
stable-hash : 0.0 .5
tinyglobby : 0.2 .12
2025-04-17 14:26:41 +08:00
unrs-resolver : 1.5 .0
2025-04-17 20:36:11 +08:00
optionalDependencies :
eslint-plugin-import : 2.31 .0 (@typescript-eslint/parser@8.30.1(eslint@9.24.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.0)(eslint@9.24.0(jiti@2.4.2))
2025-04-17 12:02:23 +08:00
transitivePeerDependencies :
- supports-color
2025-04-17 20:36:11 +08:00
eslint-module-utils@2.12.0(@typescript-eslint/parser@8.30.1(eslint@9.24.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.0)(eslint@9.24.0(jiti@2.4.2)) :
2025-04-17 12:02:23 +08:00
dependencies :
debug : 3.2 .7
2025-04-17 20:36:11 +08:00
optionalDependencies :
'@typescript-eslint/parser' : 8.30 .1 (eslint@9.24.0(jiti@2.4.2))(typescript@5.8.3)
eslint : 9.24 .0 (jiti@2.4.2)
2025-04-17 12:02:23 +08:00
eslint-import-resolver-node : 0.3 .9
2025-04-17 20:36:11 +08:00
eslint-import-resolver-typescript : 3.10 .0 (eslint-plugin-import@2.31.0)(eslint@9.24.0(jiti@2.4.2))
2025-04-17 12:02:23 +08:00
transitivePeerDependencies :
- supports-color
2025-04-17 20:36:11 +08:00
eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.30.1(eslint@9.24.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.0)(eslint@9.24.0(jiti@2.4.2)) :
2025-04-17 12:02:23 +08:00
dependencies :
'@rtsao/scc' : 1.1 .0
array-includes : 3.1 .8
array.prototype.findlastindex : 1.2 .6
array.prototype.flat : 1.3 .3
array.prototype.flatmap : 1.3 .3
debug : 3.2 .7
doctrine : 2.1 .0
2025-04-17 20:36:11 +08:00
eslint : 9.24 .0 (jiti@2.4.2)
2025-04-17 12:02:23 +08:00
eslint-import-resolver-node : 0.3 .9
2025-04-17 20:36:11 +08:00
eslint-module-utils : 2.12 .0 (@typescript-eslint/parser@8.30.1(eslint@9.24.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.0)(eslint@9.24.0(jiti@2.4.2))
2025-04-17 12:02:23 +08:00
hasown : 2.0 .2
is-core-module : 2.16 .1
is-glob : 4.0 .3
minimatch : 3.1 .2
object.fromentries : 2.0 .8
object.groupby : 1.0 .3
object.values : 1.2 .1
semver : 6.3 .1
string.prototype.trimend : 1.0 .9
tsconfig-paths : 3.15 .0
2025-04-17 20:36:11 +08:00
optionalDependencies :
'@typescript-eslint/parser' : 8.30 .1 (eslint@9.24.0(jiti@2.4.2))(typescript@5.8.3)
2025-04-17 12:02:23 +08:00
transitivePeerDependencies :
- eslint-import-resolver-typescript
- eslint-import-resolver-webpack
- supports-color
2025-04-17 20:36:11 +08:00
eslint-plugin-jsx-a11y@6.10.2(eslint@9.24.0(jiti@2.4.2)) :
2025-04-17 12:02:23 +08:00
dependencies :
aria-query : 5.3 .2
array-includes : 3.1 .8
array.prototype.flatmap : 1.3 .3
ast-types-flow : 0.0 .8
axe-core : 4.10 .3
axobject-query : 4.1 .0
damerau-levenshtein : 1.0 .8
emoji-regex : 9.2 .2
2025-04-17 20:36:11 +08:00
eslint : 9.24 .0 (jiti@2.4.2)
2025-04-17 12:02:23 +08:00
hasown : 2.0 .2
jsx-ast-utils : 3.3 .5
language-tags : 1.0 .9
minimatch : 3.1 .2
object.fromentries : 2.0 .8
safe-regex-test : 1.1 .0
string.prototype.includes : 2.0 .1
2025-04-17 20:36:11 +08:00
eslint-plugin-react-hooks@5.2.0(eslint@9.24.0(jiti@2.4.2)) :
2025-04-17 12:02:23 +08:00
dependencies :
2025-04-17 20:36:11 +08:00
eslint : 9.24 .0 (jiti@2.4.2)
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
eslint-plugin-react@7.37.5(eslint@9.24.0(jiti@2.4.2)) :
2025-04-17 12:02:23 +08:00
dependencies :
array-includes : 3.1 .8
array.prototype.findlast : 1.2 .5
array.prototype.flatmap : 1.3 .3
array.prototype.tosorted : 1.1 .4
doctrine : 2.1 .0
es-iterator-helpers : 1.2 .1
2025-04-17 20:36:11 +08:00
eslint : 9.24 .0 (jiti@2.4.2)
2025-04-17 12:02:23 +08:00
estraverse : 5.3 .0
hasown : 2.0 .2
jsx-ast-utils : 3.3 .5
minimatch : 3.1 .2
object.entries : 1.1 .9
object.fromentries : 2.0 .8
object.values : 1.2 .1
prop-types : 15.8 .1
resolve : 2.0 .0 -next.5
semver : 6.3 .1
string.prototype.matchall : 4.0 .12
string.prototype.repeat : 1.0 .0
2025-04-22 13:52:56 +08:00
eslint-scope@5.1.1 :
dependencies :
esrecurse : 4.3 .0
estraverse : 4.3 .0
2025-04-17 20:36:11 +08:00
eslint-scope@8.3.0 :
2025-04-17 12:02:23 +08:00
dependencies :
2025-04-17 20:36:11 +08:00
esrecurse : 4.3 .0
estraverse : 5.3 .0
eslint-visitor-keys@3.4.3 : {}
eslint-visitor-keys@4.2.0 : {}
eslint@9.24.0(jiti@2.4.2) :
2025-04-17 12:02:23 +08:00
dependencies :
2025-04-17 20:36:11 +08:00
'@eslint-community/eslint-utils' : 4.6 .1 (eslint@9.24.0(jiti@2.4.2))
2025-04-17 12:02:23 +08:00
'@eslint-community/regexpp' : 4.12 .1
'@eslint/config-array' : 0.20 .0
'@eslint/config-helpers' : 0.2 .1
'@eslint/core' : 0.12 .0
'@eslint/eslintrc' : 3.3 .1
'@eslint/js' : 9.24 .0
'@eslint/plugin-kit' : 0.2 .8
'@humanfs/node' : 0.16 .6
'@humanwhocodes/module-importer' : 1.0 .1
'@humanwhocodes/retry' : 0.4 .2
'@types/estree' : 1.0 .7
'@types/json-schema' : 7.0 .15
ajv : 6.12 .6
chalk : 4.1 .2
cross-spawn : 7.0 .6
debug : 4.4 .0
escape-string-regexp : 4.0 .0
eslint-scope : 8.3 .0
eslint-visitor-keys : 4.2 .0
espree : 10.3 .0
esquery : 1.6 .0
esutils : 2.0 .3
fast-deep-equal : 3.1 .3
file-entry-cache : 8.0 .0
find-up : 5.0 .0
glob-parent : 6.0 .2
ignore : 5.3 .2
imurmurhash : 0.1 .4
is-glob : 4.0 .3
json-stable-stringify-without-jsonify : 1.0 .1
lodash.merge : 4.6 .2
minimatch : 3.1 .2
natural-compare : 1.4 .0
optionator : 0.9 .4
2025-04-17 20:36:11 +08:00
optionalDependencies :
jiti : 2.4 .2
2025-04-17 12:02:23 +08:00
transitivePeerDependencies :
- supports-color
2025-04-17 20:36:11 +08:00
espree@10.3.0 :
2025-04-17 12:02:23 +08:00
dependencies :
acorn : 8.14 .1
acorn-jsx : 5.3 .2 (acorn@8.14.1)
eslint-visitor-keys : 4.2 .0
2025-10-25 20:46:43 +08:00
esprima@4.0.1 : {}
2025-04-17 20:36:11 +08:00
esquery@1.6.0 :
2025-04-17 12:02:23 +08:00
dependencies :
estraverse : 5.3 .0
2025-04-17 20:36:11 +08:00
esrecurse@4.3.0 :
2025-04-17 12:02:23 +08:00
dependencies :
estraverse : 5.3 .0
2025-04-22 13:52:56 +08:00
estraverse@4.3.0 : {}
2025-04-17 20:36:11 +08:00
estraverse@5.3.0 : {}
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
estree-util-is-identifier-name@3.0.0 : {}
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
esutils@2.0.3 : {}
2025-04-17 12:02:23 +08:00
2025-04-22 13:52:56 +08:00
events@3.3.0 : {}
2025-10-25 20:46:43 +08:00
execa@5.1.1 :
dependencies :
cross-spawn : 7.0 .6
get-stream : 6.0 .1
human-signals : 2.1 .0
is-stream : 2.0 .1
merge-stream : 2.0 .0
npm-run-path : 4.0 .1
onetime : 5.1 .2
signal-exit : 3.0 .7
strip-final-newline : 2.0 .0
exit-x@0.2.2 : {}
expect@30.2.0 :
dependencies :
'@jest/expect-utils' : 30.2 .0
'@jest/get-type' : 30.1 .0
jest-matcher-utils : 30.2 .0
jest-message-util : 30.2 .0
jest-mock : 30.2 .0
jest-util : 30.2 .0
2025-04-17 20:36:11 +08:00
extend@3.0.2 : {}
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
fast-deep-equal@3.1.3 : {}
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
fast-glob@3.3.1 :
2025-04-17 12:02:23 +08:00
dependencies :
'@nodelib/fs.stat' : 2.0 .5
'@nodelib/fs.walk' : 1.2 .8
glob-parent : 5.1 .2
merge2 : 1.4 .1
micromatch : 4.0 .8
2025-04-17 20:36:11 +08:00
fast-glob@3.3.3 :
2025-04-17 12:02:23 +08:00
dependencies :
'@nodelib/fs.stat' : 2.0 .5
'@nodelib/fs.walk' : 1.2 .8
glob-parent : 5.1 .2
merge2 : 1.4 .1
micromatch : 4.0 .8
2025-04-17 20:36:11 +08:00
fast-json-stable-stringify@2.1.0 : {}
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
fast-levenshtein@2.0.6 : {}
2025-04-17 12:02:23 +08:00
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
fast-png@6.4.0 :
dependencies :
'@types/pako' : 2.0 .4
iobuffer : 5.4 .0
pako : 2.1 .0
2025-09-04 22:26:33 +08:00
fast-uri@3.1.0 : {}
2025-04-22 13:52:56 +08:00
2025-04-17 20:36:11 +08:00
fastq@1.19.1 :
2025-04-17 12:02:23 +08:00
dependencies :
reusify : 1.1 .0
2025-04-17 20:36:11 +08:00
fault@1.0.4 :
2025-04-17 12:02:23 +08:00
dependencies :
format : 0.2 .2
2025-10-25 20:46:43 +08:00
fb-watchman@2.0.2 :
dependencies :
bser : 2.1 .1
2025-04-17 20:36:11 +08:00
fdir@6.4.3(picomatch@4.0.2) :
optionalDependencies :
2025-04-17 12:02:23 +08:00
picomatch : 4.0 .2
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
fflate@0.8.2 : {}
2025-04-17 20:36:11 +08:00
file-entry-cache@8.0.0 :
2025-04-17 12:02:23 +08:00
dependencies :
flat-cache : 4.0 .1
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
file-saver@2.0.5 : {}
2025-04-17 20:36:11 +08:00
fill-range@7.1.1 :
2025-04-17 12:02:23 +08:00
dependencies :
to-regex-range : 5.0 .1
2025-10-25 20:46:43 +08:00
find-up@4.1.0 :
dependencies :
locate-path : 5.0 .0
path-exists : 4.0 .0
2025-04-17 20:36:11 +08:00
find-up@5.0.0 :
2025-04-17 12:02:23 +08:00
dependencies :
locate-path : 6.0 .0
path-exists : 4.0 .0
2025-04-17 20:36:11 +08:00
flat-cache@4.0.1 :
2025-04-17 12:02:23 +08:00
dependencies :
flatted : 3.3 .3
keyv : 4.5 .4
2025-04-17 20:36:11 +08:00
flatted@3.3.3 : {}
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
for-each@0.3.5 :
2025-04-17 12:02:23 +08:00
dependencies :
is-callable : 1.2 .7
2025-10-25 20:46:43 +08:00
foreground-child@3.3.1 :
dependencies :
cross-spawn : 7.0 .6
signal-exit : 4.1 .0
2025-04-17 20:36:11 +08:00
format@0.2.2 : {}
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
framer-motion@12.7.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) :
2025-04-17 12:02:23 +08:00
dependencies :
2025-04-17 20:36:11 +08:00
motion-dom : 12.7 .4
2025-04-17 14:26:41 +08:00
motion-utils : 12.7 .2
2025-04-17 20:36:11 +08:00
tslib : 2.8 .1
optionalDependencies :
2025-04-17 12:02:23 +08:00
react : 19.1 .0
react-dom : 19.1 .0 (react@19.1.0)
2025-04-26 00:20:49 +08:00
framework-utils@1.1.0 : {}
2025-10-25 20:46:43 +08:00
fs.realpath@1.0.0 : {}
fsevents@2.3.3 :
optional : true
2025-04-17 20:36:11 +08:00
function-bind@1.1.2 : {}
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
function.prototype.name@1.1.8 :
2025-04-17 12:02:23 +08:00
dependencies :
call-bind : 1.0 .8
call-bound : 1.0 .4
define-properties : 1.2 .1
functions-have-names : 1.2 .3
hasown : 2.0 .2
is-callable : 1.2 .7
2025-04-17 20:36:11 +08:00
functions-have-names@1.2.3 : {}
2025-04-17 12:02:23 +08:00
2025-10-25 20:46:43 +08:00
gensync@1.0.0-beta.2 : {}
2025-04-26 00:20:49 +08:00
gesto@1.19.4 :
dependencies :
'@daybrush/utils' : 1.13 .0
'@scena/event-emitter' : 1.0 .5
2025-10-25 20:46:43 +08:00
get-caller-file@2.0.5 : {}
2025-04-17 20:36:11 +08:00
get-intrinsic@1.3.0 :
2025-04-17 12:02:23 +08:00
dependencies :
call-bind-apply-helpers : 1.0 .2
es-define-property : 1.0 .1
es-errors : 1.3 .0
es-object-atoms : 1.1 .1
function-bind : 1.1 .2
get-proto : 1.0 .1
gopd : 1.2 .0
has-symbols : 1.1 .0
hasown : 2.0 .2
math-intrinsics : 1.1 .0
2025-04-20 11:18:05 +08:00
get-nonce@1.0.1 : {}
2025-10-25 20:46:43 +08:00
get-package-type@0.1.0 : {}
2025-04-17 20:36:11 +08:00
get-proto@1.0.1 :
2025-04-17 12:02:23 +08:00
dependencies :
dunder-proto : 1.0 .1
es-object-atoms : 1.1 .1
2025-10-25 20:46:43 +08:00
get-stream@6.0.1 : {}
2025-04-17 20:36:11 +08:00
get-symbol-description@1.1.0 :
2025-04-17 12:02:23 +08:00
dependencies :
call-bound : 1.0 .4
es-errors : 1.3 .0
get-intrinsic : 1.3 .0
2025-04-17 20:36:11 +08:00
get-tsconfig@4.10.0 :
2025-04-17 12:02:23 +08:00
dependencies :
resolve-pkg-maps : 1.0 .0
2025-04-17 20:36:11 +08:00
glob-parent@5.1.2 :
2025-04-17 12:02:23 +08:00
dependencies :
is-glob : 4.0 .3
2025-04-17 20:36:11 +08:00
glob-parent@6.0.2 :
2025-04-17 12:02:23 +08:00
dependencies :
is-glob : 4.0 .3
2025-04-22 13:52:56 +08:00
glob-to-regexp@0.4.1 : {}
2025-10-25 20:46:43 +08:00
glob@10.4.5 :
dependencies :
foreground-child : 3.3 .1
jackspeak : 3.4 .3
minimatch : 9.0 .5
minipass : 7.1 .2
package-json-from-dist : 1.0 .1
path-scurry : 1.11 .1
glob@7.2.3 :
dependencies :
fs.realpath : 1.0 .0
inflight : 1.0 .6
inherits : 2.0 .4
minimatch : 3.1 .2
once : 1.4 .0
path-is-absolute : 1.0 .1
2025-04-17 20:36:11 +08:00
globals@14.0.0 : {}
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
globalthis@1.0.4 :
2025-04-17 12:02:23 +08:00
dependencies :
define-properties : 1.2 .1
gopd : 1.2 .0
2025-04-17 20:36:11 +08:00
gopd@1.2.0 : {}
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
graceful-fs@4.2.11 : {}
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
graphemer@1.4.0 : {}
2025-04-17 12:02:23 +08:00
2025-10-25 20:46:43 +08:00
handlebars@4.7.8 :
dependencies :
minimist : 1.2 .8
neo-async : 2.6 .2
source-map : 0.6 .1
wordwrap : 1.0 .0
optionalDependencies :
uglify-js : 3.19 .3
harmony-reflect@1.6.2 : {}
2025-04-17 20:36:11 +08:00
has-bigints@1.1.0 : {}
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
has-flag@4.0.0 : {}
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
has-property-descriptors@1.0.2 :
2025-04-17 12:02:23 +08:00
dependencies :
es-define-property : 1.0 .1
2025-04-17 20:36:11 +08:00
has-proto@1.2.0 :
2025-04-17 12:02:23 +08:00
dependencies :
dunder-proto : 1.0 .1
2025-04-17 20:36:11 +08:00
has-symbols@1.1.0 : {}
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
has-tostringtag@1.0.2 :
2025-04-17 12:02:23 +08:00
dependencies :
has-symbols : 1.1 .0
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
hash.js@1.1.7 :
dependencies :
inherits : 2.0 .4
minimalistic-assert : 1.0 .1
2025-04-17 20:36:11 +08:00
hasown@2.0.2 :
2025-04-17 12:02:23 +08:00
dependencies :
function-bind : 1.1 .2
2025-04-17 20:36:11 +08:00
hast-util-from-dom@5.0.1 :
2025-04-17 12:02:23 +08:00
dependencies :
'@types/hast' : 3.0 .4
hastscript : 9.0 .1
web-namespaces : 2.0 .1
2025-04-17 20:36:11 +08:00
hast-util-from-html-isomorphic@2.0.0 :
2025-04-17 12:02:23 +08:00
dependencies :
'@types/hast' : 3.0 .4
hast-util-from-dom : 5.0 .1
hast-util-from-html : 2.0 .3
unist-util-remove-position : 5.0 .0
2025-04-17 20:36:11 +08:00
hast-util-from-html@2.0.3 :
2025-04-17 12:02:23 +08:00
dependencies :
'@types/hast' : 3.0 .4
devlop : 1.1 .0
hast-util-from-parse5 : 8.0 .3
parse5 : 7.2 .1
vfile : 6.0 .3
vfile-message : 4.0 .2
2025-04-17 20:36:11 +08:00
hast-util-from-parse5@8.0.3 :
2025-04-17 12:02:23 +08:00
dependencies :
'@types/hast' : 3.0 .4
'@types/unist' : 3.0 .3
devlop : 1.1 .0
hastscript : 9.0 .1
property-information : 7.0 .0
vfile : 6.0 .3
vfile-location : 5.0 .3
web-namespaces : 2.0 .1
2025-04-17 20:36:11 +08:00
hast-util-is-element@3.0.0 :
2025-04-17 12:02:23 +08:00
dependencies :
'@types/hast' : 3.0 .4
2025-04-17 20:36:11 +08:00
hast-util-parse-selector@2.2.5 : {}
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
hast-util-parse-selector@4.0.0 :
2025-04-17 12:02:23 +08:00
dependencies :
'@types/hast' : 3.0 .4
2025-04-17 20:36:11 +08:00
hast-util-to-jsx-runtime@2.3.6 :
2025-04-17 12:02:23 +08:00
dependencies :
'@types/estree' : 1.0 .7
'@types/hast' : 3.0 .4
'@types/unist' : 3.0 .3
comma-separated-tokens : 2.0 .3
devlop : 1.1 .0
estree-util-is-identifier-name : 3.0 .0
hast-util-whitespace : 3.0 .0
mdast-util-mdx-expression : 2.0 .1
mdast-util-mdx-jsx : 3.2 .0
mdast-util-mdxjs-esm : 2.0 .1
property-information : 7.0 .0
space-separated-tokens : 2.0 .2
style-to-js : 1.1 .16
unist-util-position : 5.0 .0
vfile-message : 4.0 .2
transitivePeerDependencies :
- supports-color
2025-04-17 20:36:11 +08:00
hast-util-to-text@4.0.2 :
2025-04-17 12:02:23 +08:00
dependencies :
'@types/hast' : 3.0 .4
'@types/unist' : 3.0 .3
hast-util-is-element : 3.0 .0
unist-util-find-after : 5.0 .0
2025-04-17 20:36:11 +08:00
hast-util-whitespace@3.0.0 :
2025-04-17 12:02:23 +08:00
dependencies :
'@types/hast' : 3.0 .4
2025-04-17 20:36:11 +08:00
hast@1.0.0 : {}
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
hastscript@6.0.0 :
2025-04-17 12:02:23 +08:00
dependencies :
'@types/hast' : 2.3 .10
comma-separated-tokens : 1.0 .8
hast-util-parse-selector : 2.2 .5
property-information : 5.6 .0
space-separated-tokens : 1.1 .5
2025-04-17 20:36:11 +08:00
hastscript@9.0.1 :
2025-04-17 12:02:23 +08:00
dependencies :
'@types/hast' : 3.0 .4
comma-separated-tokens : 2.0 .3
hast-util-parse-selector : 4.0 .0
property-information : 7.0 .0
space-separated-tokens : 2.0 .2
2025-04-17 20:36:11 +08:00
highlight.js@10.7.3 : {}
2025-04-17 12:02:23 +08:00
2025-04-26 00:20:49 +08:00
highlight.js@11.11.1 : {}
2025-04-17 20:36:11 +08:00
highlightjs-vue@1.0.0 : {}
2025-04-17 12:02:23 +08:00
2025-10-25 20:46:43 +08:00
html-encoding-sniffer@4.0.0 :
dependencies :
whatwg-encoding : 3.1 .1
html-escaper@2.0.2 : {}
2025-04-17 20:36:11 +08:00
html-url-attributes@3.0.1 : {}
2025-04-17 12:02:23 +08:00
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
html2canvas@1.4.1 :
dependencies :
css-line-break : 2.1 .0
text-segmentation : 1.0 .3
2025-10-25 20:46:43 +08:00
http-proxy-agent@7.0.2 :
dependencies :
agent-base : 7.1 .4
debug : 4.4 .0
transitivePeerDependencies :
- supports-color
https-proxy-agent@7.0.6 :
dependencies :
agent-base : 7.1 .4
debug : 4.4 .0
transitivePeerDependencies :
- supports-color
human-signals@2.1.0 : {}
iconv-lite@0.6.3 :
dependencies :
safer-buffer : 2.1 .2
identity-obj-proxy@3.0.0 :
dependencies :
harmony-reflect : 1.6 .2
2025-04-17 20:36:11 +08:00
ignore@5.3.2 : {}
2025-04-17 12:02:23 +08:00
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
immediate@3.0.6 : {}
2025-04-29 15:47:01 +08:00
immer@10.1.1 : {}
2025-04-17 20:36:11 +08:00
import-fresh@3.3.1 :
2025-04-17 12:02:23 +08:00
dependencies :
parent-module : 1.0 .1
resolve-from : 4.0 .0
2025-10-25 20:46:43 +08:00
import-local@3.2.0 :
dependencies :
pkg-dir : 4.2 .0
resolve-cwd : 3.0 .0
2025-04-17 20:36:11 +08:00
imurmurhash@0.1.4 : {}
2025-04-17 12:02:23 +08:00
2025-10-25 20:46:43 +08:00
inflight@1.0.6 :
dependencies :
once : 1.4 .0
wrappy : 1.0 .2
inherits@2.0.4 : {}
2025-04-17 20:36:11 +08:00
inline-style-parser@0.2.4 : {}
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
internal-slot@1.1.0 :
2025-04-17 12:02:23 +08:00
dependencies :
es-errors : 1.3 .0
hasown : 2.0 .2
side-channel : 1.1 .0
2025-07-12 15:18:28 +08:00
intl-messageformat@10.7.16 :
dependencies :
'@formatjs/ecma402-abstract' : 2.3 .4
'@formatjs/fast-memoize' : 2.2 .7
'@formatjs/icu-messageformat-parser' : 2.11 .2
tslib : 2.8 .1
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
iobuffer@5.4.0 : {}
2025-04-17 20:36:11 +08:00
is-alphabetical@1.0.4 : {}
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
is-alphabetical@2.0.1 : {}
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
is-alphanumerical@1.0.4 :
2025-04-17 12:02:23 +08:00
dependencies :
is-alphabetical : 1.0 .4
is-decimal : 1.0 .4
2025-04-17 20:36:11 +08:00
is-alphanumerical@2.0.1 :
2025-04-17 12:02:23 +08:00
dependencies :
is-alphabetical : 2.0 .1
is-decimal : 2.0 .1
2025-04-17 20:36:11 +08:00
is-array-buffer@3.0.5 :
2025-04-17 12:02:23 +08:00
dependencies :
call-bind : 1.0 .8
call-bound : 1.0 .4
get-intrinsic : 1.3 .0
2025-10-25 20:46:43 +08:00
is-arrayish@0.2.1 : {}
2025-04-17 20:36:11 +08:00
is-async-function@2.1.1 :
2025-04-17 12:02:23 +08:00
dependencies :
async-function : 1.0 .0
call-bound : 1.0 .4
get-proto : 1.0 .1
has-tostringtag : 1.0 .2
safe-regex-test : 1.1 .0
2025-04-17 20:36:11 +08:00
is-bigint@1.1.0 :
2025-04-17 12:02:23 +08:00
dependencies :
has-bigints : 1.1 .0
2025-04-17 20:36:11 +08:00
is-boolean-object@1.2.2 :
2025-04-17 12:02:23 +08:00
dependencies :
call-bound : 1.0 .4
has-tostringtag : 1.0 .2
2025-04-17 20:36:11 +08:00
is-bun-module@2.0.0 :
2025-04-17 12:02:23 +08:00
dependencies :
2026-02-09 15:43:04 +08:00
semver : 7.7 .4
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
is-callable@1.2.7 : {}
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
is-core-module@2.16.1 :
2025-04-17 12:02:23 +08:00
dependencies :
hasown : 2.0 .2
2025-04-17 20:36:11 +08:00
is-data-view@1.0.2 :
2025-04-17 12:02:23 +08:00
dependencies :
call-bound : 1.0 .4
get-intrinsic : 1.3 .0
is-typed-array : 1.1 .15
2025-04-17 20:36:11 +08:00
is-date-object@1.1.0 :
2025-04-17 12:02:23 +08:00
dependencies :
call-bound : 1.0 .4
has-tostringtag : 1.0 .2
2025-04-17 20:36:11 +08:00
is-decimal@1.0.4 : {}
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
is-decimal@2.0.1 : {}
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
is-extglob@2.1.1 : {}
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
is-finalizationregistry@1.1.1 :
2025-04-17 12:02:23 +08:00
dependencies :
call-bound : 1.0 .4
2025-10-25 20:46:43 +08:00
is-fullwidth-code-point@3.0.0 : {}
is-generator-fn@2.1.0 : {}
2025-04-17 20:36:11 +08:00
is-generator-function@1.1.0 :
2025-04-17 12:02:23 +08:00
dependencies :
call-bound : 1.0 .4
get-proto : 1.0 .1
has-tostringtag : 1.0 .2
safe-regex-test : 1.1 .0
2025-10-25 20:46:43 +08:00
is-glob@4.0.3 :
dependencies :
is-extglob : 2.1 .1
is-hexadecimal@1.0.4 : {}
is-hexadecimal@2.0.1 : {}
is-map@2.0.3 : {}
is-number-object@1.1.1 :
dependencies :
call-bound : 1.0 .4
has-tostringtag : 1.0 .2
is-number@7.0.0 : {}
is-plain-obj@4.1.0 : {}
is-potential-custom-element-name@1.0.1 : {}
is-regex@1.2.1 :
dependencies :
call-bound : 1.0 .4
gopd : 1.2 .0
has-tostringtag : 1.0 .2
hasown : 2.0 .2
is-set@2.0.3 : {}
is-shared-array-buffer@1.0.4 :
dependencies :
call-bound : 1.0 .4
is-stream@2.0.1 : {}
is-string@1.1.1 :
dependencies :
call-bound : 1.0 .4
has-tostringtag : 1.0 .2
is-symbol@1.1.1 :
dependencies :
call-bound : 1.0 .4
has-symbols : 1.1 .0
safe-regex-test : 1.1 .0
is-typed-array@1.1.15 :
dependencies :
which-typed-array : 1.1 .19
is-weakmap@2.0.2 : {}
is-weakref@1.1.1 :
dependencies :
call-bound : 1.0 .4
is-weakset@2.0.4 :
dependencies :
call-bound : 1.0 .4
get-intrinsic : 1.3 .0
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
isarray@1.0.0 : {}
2025-10-25 20:46:43 +08:00
isarray@2.0.5 : {}
isexe@2.0.0 : {}
istanbul-lib-coverage@3.2.2 : {}
istanbul-lib-instrument@6.0.3 :
dependencies :
'@babel/core' : 7.28 .5
'@babel/parser' : 7.28 .5
'@istanbuljs/schema' : 0.1 .3
istanbul-lib-coverage : 3.2 .2
2026-02-09 15:43:04 +08:00
semver : 7.7 .4
2025-10-25 20:46:43 +08:00
transitivePeerDependencies :
- supports-color
istanbul-lib-report@3.0.1 :
dependencies :
istanbul-lib-coverage : 3.2 .2
make-dir : 4.0 .0
supports-color : 7.2 .0
istanbul-lib-source-maps@5.0.6 :
dependencies :
'@jridgewell/trace-mapping' : 0.3 .30
debug : 4.4 .0
istanbul-lib-coverage : 3.2 .2
transitivePeerDependencies :
- supports-color
istanbul-reports@3.2.0 :
dependencies :
html-escaper : 2.0 .2
istanbul-lib-report : 3.0 .1
iterator.prototype@1.1.5 :
dependencies :
define-data-property : 1.1 .4
es-object-atoms : 1.1 .1
get-intrinsic : 1.3 .0
get-proto : 1.0 .1
has-symbols : 1.1 .0
set-function-name : 2.0 .2
jackspeak@3.4.3 :
dependencies :
'@isaacs/cliui' : 8.0 .2
optionalDependencies :
'@pkgjs/parseargs' : 0.11 .0
jest-changed-files@30.2.0 :
dependencies :
execa : 5.1 .1
jest-util : 30.2 .0
p-limit : 3.1 .0
jest-circus@30.2.0 :
dependencies :
'@jest/environment' : 30.2 .0
'@jest/expect' : 30.2 .0
'@jest/test-result' : 30.2 .0
'@jest/types' : 30.2 .0
'@types/node' : 20.19 .13
chalk : 4.1 .2
co : 4.6 .0
dedent : 1.7 .0
is-generator-fn : 2.1 .0
jest-each : 30.2 .0
jest-matcher-utils : 30.2 .0
jest-message-util : 30.2 .0
jest-runtime : 30.2 .0
jest-snapshot : 30.2 .0
jest-util : 30.2 .0
p-limit : 3.1 .0
pretty-format : 30.2 .0
pure-rand : 7.0 .1
slash : 3.0 .0
stack-utils : 2.0 .6
transitivePeerDependencies :
- babel-plugin-macros
- supports-color
jest-cli@30.2.0(@types/node@20.17.30) :
dependencies :
'@jest/core' : 30.2 .0
'@jest/test-result' : 30.2 .0
'@jest/types' : 30.2 .0
chalk : 4.1 .2
exit-x : 0.2 .2
import-local : 3.2 .0
jest-config : 30.2 .0 (@types/node@20.17.30)
jest-util : 30.2 .0
jest-validate : 30.2 .0
yargs : 17.7 .2
transitivePeerDependencies :
- '@types/node'
- babel-plugin-macros
- esbuild-register
- supports-color
- ts-node
jest-config@30.2.0(@types/node@20.17.30) :
dependencies :
'@babel/core' : 7.28 .5
'@jest/get-type' : 30.1 .0
'@jest/pattern' : 30.0 .1
'@jest/test-sequencer' : 30.2 .0
'@jest/types' : 30.2 .0
babel-jest : 30.2 .0 (@babel/core@7.28.5)
chalk : 4.1 .2
ci-info : 4.3 .1
deepmerge : 4.3 .1
glob : 10.4 .5
graceful-fs : 4.2 .11
jest-circus : 30.2 .0
jest-docblock : 30.2 .0
jest-environment-node : 30.2 .0
jest-regex-util : 30.0 .1
jest-resolve : 30.2 .0
jest-runner : 30.2 .0
jest-util : 30.2 .0
jest-validate : 30.2 .0
micromatch : 4.0 .8
parse-json : 5.2 .0
pretty-format : 30.2 .0
slash : 3.0 .0
strip-json-comments : 3.1 .1
optionalDependencies :
'@types/node' : 20.17 .30
transitivePeerDependencies :
- babel-plugin-macros
- supports-color
jest-config@30.2.0(@types/node@20.19.13) :
dependencies :
'@babel/core' : 7.28 .5
'@jest/get-type' : 30.1 .0
'@jest/pattern' : 30.0 .1
'@jest/test-sequencer' : 30.2 .0
'@jest/types' : 30.2 .0
babel-jest : 30.2 .0 (@babel/core@7.28.5)
chalk : 4.1 .2
ci-info : 4.3 .1
deepmerge : 4.3 .1
glob : 10.4 .5
graceful-fs : 4.2 .11
jest-circus : 30.2 .0
jest-docblock : 30.2 .0
jest-environment-node : 30.2 .0
jest-regex-util : 30.0 .1
jest-resolve : 30.2 .0
jest-runner : 30.2 .0
jest-util : 30.2 .0
jest-validate : 30.2 .0
micromatch : 4.0 .8
parse-json : 5.2 .0
pretty-format : 30.2 .0
slash : 3.0 .0
strip-json-comments : 3.1 .1
optionalDependencies :
'@types/node' : 20.19 .13
transitivePeerDependencies :
- babel-plugin-macros
- supports-color
jest-diff@30.2.0 :
dependencies :
'@jest/diff-sequences' : 30.0 .1
'@jest/get-type' : 30.1 .0
chalk : 4.1 .2
pretty-format : 30.2 .0
jest-docblock@30.2.0 :
dependencies :
detect-newline : 3.1 .0
jest-each@30.2.0 :
2025-04-17 12:02:23 +08:00
dependencies :
2025-10-25 20:46:43 +08:00
'@jest/get-type' : 30.1 .0
'@jest/types' : 30.2 .0
chalk : 4.1 .2
jest-util : 30.2 .0
pretty-format : 30.2 .0
2025-04-17 12:02:23 +08:00
2025-10-25 20:46:43 +08:00
jest-environment-jsdom@30.2.0 :
dependencies :
'@jest/environment' : 30.2 .0
'@jest/environment-jsdom-abstract' : 30.2 .0 (jsdom@26.1.0)
'@types/jsdom' : 21.1 .7
'@types/node' : 20.19 .13
jsdom : 26.1 .0
transitivePeerDependencies :
- bufferutil
- supports-color
- utf-8-validate
2025-04-17 12:02:23 +08:00
2025-10-25 20:46:43 +08:00
jest-environment-node@30.2.0 :
dependencies :
'@jest/environment' : 30.2 .0
'@jest/fake-timers' : 30.2 .0
'@jest/types' : 30.2 .0
'@types/node' : 20.19 .13
jest-mock : 30.2 .0
jest-util : 30.2 .0
jest-validate : 30.2 .0
2025-04-17 12:02:23 +08:00
2025-10-25 20:46:43 +08:00
jest-haste-map@30.2.0 :
dependencies :
'@jest/types' : 30.2 .0
'@types/node' : 20.19 .13
anymatch : 3.1 .3
fb-watchman : 2.0 .2
graceful-fs : 4.2 .11
jest-regex-util : 30.0 .1
jest-util : 30.2 .0
jest-worker : 30.2 .0
micromatch : 4.0 .8
walker : 1.0 .8
optionalDependencies :
fsevents : 2.3 .3
2025-04-17 12:02:23 +08:00
2025-10-25 20:46:43 +08:00
jest-leak-detector@30.2.0 :
2025-04-17 12:02:23 +08:00
dependencies :
2025-10-25 20:46:43 +08:00
'@jest/get-type' : 30.1 .0
pretty-format : 30.2 .0
2025-04-17 12:02:23 +08:00
2025-10-25 20:46:43 +08:00
jest-matcher-utils@30.2.0 :
dependencies :
'@jest/get-type' : 30.1 .0
chalk : 4.1 .2
jest-diff : 30.2 .0
pretty-format : 30.2 .0
2025-04-17 12:02:23 +08:00
2025-10-25 20:46:43 +08:00
jest-message-util@30.2.0 :
dependencies :
'@babel/code-frame' : 7.27 .1
'@jest/types' : 30.2 .0
'@types/stack-utils' : 2.0 .3
chalk : 4.1 .2
graceful-fs : 4.2 .11
micromatch : 4.0 .8
pretty-format : 30.2 .0
slash : 3.0 .0
stack-utils : 2.0 .6
2025-04-17 12:02:23 +08:00
2025-10-25 20:46:43 +08:00
jest-mock@30.2.0 :
2025-04-17 12:02:23 +08:00
dependencies :
2025-10-25 20:46:43 +08:00
'@jest/types' : 30.2 .0
'@types/node' : 20.19 .13
jest-util : 30.2 .0
2025-04-17 12:02:23 +08:00
2025-10-25 20:46:43 +08:00
jest-pnp-resolver@1.2.3(jest-resolve@30.2.0) :
optionalDependencies :
jest-resolve : 30.2 .0
2025-04-17 12:02:23 +08:00
2025-10-25 20:46:43 +08:00
jest-regex-util@30.0.1 : {}
2025-04-17 12:02:23 +08:00
2025-10-25 20:46:43 +08:00
jest-resolve-dependencies@30.2.0 :
2025-04-17 12:02:23 +08:00
dependencies :
2025-10-25 20:46:43 +08:00
jest-regex-util : 30.0 .1
jest-snapshot : 30.2 .0
transitivePeerDependencies :
- supports-color
2025-04-17 12:02:23 +08:00
2025-10-25 20:46:43 +08:00
jest-resolve@30.2.0 :
2025-04-17 12:02:23 +08:00
dependencies :
2025-10-25 20:46:43 +08:00
chalk : 4.1 .2
graceful-fs : 4.2 .11
jest-haste-map : 30.2 .0
jest-pnp-resolver : 1.2 .3 (jest-resolve@30.2.0)
jest-util : 30.2 .0
jest-validate : 30.2 .0
slash : 3.0 .0
unrs-resolver : 1.11 .1
jest-runner@30.2.0 :
dependencies :
'@jest/console' : 30.2 .0
'@jest/environment' : 30.2 .0
'@jest/test-result' : 30.2 .0
'@jest/transform' : 30.2 .0
'@jest/types' : 30.2 .0
'@types/node' : 20.19 .13
chalk : 4.1 .2
emittery : 0.13 .1
exit-x : 0.2 .2
graceful-fs : 4.2 .11
jest-docblock : 30.2 .0
jest-environment-node : 30.2 .0
jest-haste-map : 30.2 .0
jest-leak-detector : 30.2 .0
jest-message-util : 30.2 .0
jest-resolve : 30.2 .0
jest-runtime : 30.2 .0
jest-util : 30.2 .0
jest-watcher : 30.2 .0
jest-worker : 30.2 .0
p-limit : 3.1 .0
source-map-support : 0.5 .13
transitivePeerDependencies :
- supports-color
2025-04-17 12:02:23 +08:00
2025-10-25 20:46:43 +08:00
jest-runtime@30.2.0 :
2025-04-17 12:02:23 +08:00
dependencies :
2025-10-25 20:46:43 +08:00
'@jest/environment' : 30.2 .0
'@jest/fake-timers' : 30.2 .0
'@jest/globals' : 30.2 .0
'@jest/source-map' : 30.0 .1
'@jest/test-result' : 30.2 .0
'@jest/transform' : 30.2 .0
'@jest/types' : 30.2 .0
'@types/node' : 20.19 .13
chalk : 4.1 .2
cjs-module-lexer : 2.1 .0
collect-v8-coverage : 1.0 .3
glob : 10.4 .5
graceful-fs : 4.2 .11
jest-haste-map : 30.2 .0
jest-message-util : 30.2 .0
jest-mock : 30.2 .0
jest-regex-util : 30.0 .1
jest-resolve : 30.2 .0
jest-snapshot : 30.2 .0
jest-util : 30.2 .0
slash : 3.0 .0
strip-bom : 4.0 .0
transitivePeerDependencies :
- supports-color
2025-04-17 12:02:23 +08:00
2025-10-25 20:46:43 +08:00
jest-snapshot@30.2.0 :
dependencies :
'@babel/core' : 7.28 .5
'@babel/generator' : 7.28 .5
'@babel/plugin-syntax-jsx' : 7.27 .1 (@babel/core@7.28.5)
'@babel/plugin-syntax-typescript' : 7.27 .1 (@babel/core@7.28.5)
'@babel/types' : 7.28 .5
'@jest/expect-utils' : 30.2 .0
'@jest/get-type' : 30.1 .0
'@jest/snapshot-utils' : 30.2 .0
'@jest/transform' : 30.2 .0
'@jest/types' : 30.2 .0
babel-preset-current-node-syntax : 1.2 .0 (@babel/core@7.28.5)
chalk : 4.1 .2
expect : 30.2 .0
graceful-fs : 4.2 .11
jest-diff : 30.2 .0
jest-matcher-utils : 30.2 .0
jest-message-util : 30.2 .0
jest-util : 30.2 .0
pretty-format : 30.2 .0
2026-02-09 15:43:04 +08:00
semver : 7.7 .4
2025-10-25 20:46:43 +08:00
synckit : 0.11 .11
transitivePeerDependencies :
- supports-color
2025-04-17 12:02:23 +08:00
2025-10-25 20:46:43 +08:00
jest-util@30.2.0 :
2025-04-17 12:02:23 +08:00
dependencies :
2025-10-25 20:46:43 +08:00
'@jest/types' : 30.2 .0
'@types/node' : 20.19 .13
chalk : 4.1 .2
ci-info : 4.3 .1
graceful-fs : 4.2 .11
picomatch : 4.0 .2
2025-04-17 12:02:23 +08:00
2025-10-25 20:46:43 +08:00
jest-validate@30.2.0 :
2025-04-17 12:02:23 +08:00
dependencies :
2025-10-25 20:46:43 +08:00
'@jest/get-type' : 30.1 .0
'@jest/types' : 30.2 .0
camelcase : 6.3 .0
chalk : 4.1 .2
leven : 3.1 .0
pretty-format : 30.2 .0
2025-04-17 12:02:23 +08:00
2025-10-25 20:46:43 +08:00
jest-watcher@30.2.0 :
2025-04-17 12:02:23 +08:00
dependencies :
2025-10-25 20:46:43 +08:00
'@jest/test-result' : 30.2 .0
'@jest/types' : 30.2 .0
'@types/node' : 20.19 .13
ansi-escapes : 4.3 .2
chalk : 4.1 .2
emittery : 0.13 .1
jest-util : 30.2 .0
string-length : 4.0 .2
2025-04-17 12:02:23 +08:00
2025-04-22 13:52:56 +08:00
jest-worker@27.5.1 :
dependencies :
2026-02-09 15:43:04 +08:00
'@types/node' : 20.19 .33
2025-04-22 13:52:56 +08:00
merge-stream : 2.0 .0
supports-color : 8.1 .1
2025-10-25 20:46:43 +08:00
jest-worker@30.2.0 :
dependencies :
'@types/node' : 20.19 .13
'@ungap/structured-clone' : 1.3 .0
jest-util : 30.2 .0
merge-stream : 2.0 .0
supports-color : 8.1 .1
jest@30.2.0(@types/node@20.17.30) :
dependencies :
'@jest/core' : 30.2 .0
'@jest/types' : 30.2 .0
import-local : 3.2 .0
jest-cli : 30.2 .0 (@types/node@20.17.30)
transitivePeerDependencies :
- '@types/node'
- babel-plugin-macros
- esbuild-register
- supports-color
- ts-node
2025-04-17 20:36:11 +08:00
jiti@2.4.2 : {}
2025-04-17 12:02:23 +08:00
2025-04-26 00:20:49 +08:00
jotai@2.12.3(@types/react@19.1.2)(react@19.1.0) :
optionalDependencies :
'@types/react' : 19.1 .2
react : 19.1 .0
2025-07-12 15:18:28 +08:00
js-cookie@3.0.5 : {}
2025-04-17 20:36:11 +08:00
js-tokens@4.0.0 : {}
2025-04-17 12:02:23 +08:00
2025-10-25 20:46:43 +08:00
js-yaml@3.14.1 :
dependencies :
argparse : 1.0 .10
esprima : 4.0 .1
2025-04-17 20:36:11 +08:00
js-yaml@4.1.0 :
2025-04-17 12:02:23 +08:00
dependencies :
argparse : 2.0 .1
2025-10-25 20:46:43 +08:00
jsdom@26.1.0 :
dependencies :
cssstyle : 4.6 .0
data-urls : 5.0 .0
decimal.js : 10.5 .0
html-encoding-sniffer : 4.0 .0
http-proxy-agent : 7.0 .2
https-proxy-agent : 7.0 .6
is-potential-custom-element-name : 1.0 .1
nwsapi : 2.2 .22
parse5 : 7.2 .1
rrweb-cssom : 0.8 .0
saxes : 6.0 .0
symbol-tree : 3.2 .4
tough-cookie : 5.1 .2
w3c-xmlserializer : 5.0 .0
webidl-conversions : 7.0 .0
whatwg-encoding : 3.1 .1
whatwg-mimetype : 4.0 .0
whatwg-url : 14.2 .0
ws : 8.18 .3
xml-name-validator : 5.0 .0
transitivePeerDependencies :
- bufferutil
- supports-color
- utf-8-validate
jsesc@3.1.0 : {}
2025-04-17 20:36:11 +08:00
json-buffer@3.0.1 : {}
2025-04-17 12:02:23 +08:00
2025-04-22 13:52:56 +08:00
json-parse-even-better-errors@2.3.1 : {}
2025-04-17 20:36:11 +08:00
json-schema-traverse@0.4.1 : {}
2025-04-17 12:02:23 +08:00
2025-04-22 13:52:56 +08:00
json-schema-traverse@1.0.0 : {}
2025-04-17 20:36:11 +08:00
json-stable-stringify-without-jsonify@1.0.1 : {}
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
json5@1.0.2 :
2025-04-17 12:02:23 +08:00
dependencies :
minimist : 1.2 .8
2025-04-22 13:52:56 +08:00
json5@2.2.3 : {}
2026-02-06 10:29:43 +08:00
jspdf@4.1.0 :
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
dependencies :
2026-02-06 10:29:43 +08:00
'@babel/runtime' : 7.28 .6
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
fast-png : 6.4 .0
fflate : 0.8 .2
optionalDependencies :
canvg : 3.0 .11
2026-02-06 10:29:43 +08:00
core-js : 3.48 .0
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
dompurify : 3.3 .1
html2canvas : 1.4 .1
2025-04-17 20:36:11 +08:00
jsx-ast-utils@3.3.5 :
2025-04-17 12:02:23 +08:00
dependencies :
array-includes : 3.1 .8
array.prototype.flat : 1.3 .3
object.assign : 4.1 .7
object.values : 1.2 .1
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
jszip@3.10.1 :
dependencies :
lie : 3.3 .0
pako : 1.0 .11
readable-stream : 2.3 .8
setimmediate : 1.0 .5
2025-04-17 20:36:11 +08:00
katex@0.16.21 :
2025-04-17 12:02:23 +08:00
dependencies :
commander : 8.3 .0
2025-04-26 00:20:49 +08:00
keycode@2.2.1 : {}
keycon@1.4.0 :
dependencies :
'@cfcs/core' : 0.0 .6
'@daybrush/utils' : 1.13 .0
'@scena/event-emitter' : 1.0 .5
keycode : 2.2 .1
2025-04-17 20:36:11 +08:00
keyv@4.5.4 :
2025-04-17 12:02:23 +08:00
dependencies :
json-buffer : 3.0 .1
2025-04-17 20:36:11 +08:00
language-subtag-registry@0.3.23 : {}
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
language-tags@1.0.9 :
2025-04-17 12:02:23 +08:00
dependencies :
language-subtag-registry : 0.3 .23
2025-10-25 20:46:43 +08:00
leven@3.1.0 : {}
2025-04-17 20:36:11 +08:00
levn@0.4.1 :
2025-04-17 12:02:23 +08:00
dependencies :
prelude-ls : 1.2 .1
type-check : 0.4 .0
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
lie@3.3.0 :
dependencies :
immediate : 3.0 .6
2025-04-17 20:36:11 +08:00
lightningcss-darwin-arm64@1.29.2 :
2025-04-17 12:02:23 +08:00
optional : true
2025-04-17 20:36:11 +08:00
lightningcss-darwin-x64@1.29.2 :
2025-04-17 12:02:23 +08:00
optional : true
2025-04-17 20:36:11 +08:00
lightningcss-freebsd-x64@1.29.2 :
2025-04-17 12:02:23 +08:00
optional : true
2025-04-17 20:36:11 +08:00
lightningcss-linux-arm-gnueabihf@1.29.2 :
2025-04-17 12:02:23 +08:00
optional : true
2025-04-17 20:36:11 +08:00
lightningcss-linux-arm64-gnu@1.29.2 :
2025-04-17 12:02:23 +08:00
optional : true
2025-04-17 20:36:11 +08:00
lightningcss-linux-arm64-musl@1.29.2 :
2025-04-17 12:02:23 +08:00
optional : true
2025-04-17 20:36:11 +08:00
lightningcss-linux-x64-gnu@1.29.2 :
2025-04-17 12:02:23 +08:00
optional : true
2025-04-17 20:36:11 +08:00
lightningcss-linux-x64-musl@1.29.2 :
2025-04-17 12:02:23 +08:00
optional : true
2025-04-17 20:36:11 +08:00
lightningcss-win32-arm64-msvc@1.29.2 :
2025-04-17 12:02:23 +08:00
optional : true
2025-04-17 20:36:11 +08:00
lightningcss-win32-x64-msvc@1.29.2 :
optional : true
lightningcss@1.29.2 :
2025-04-17 12:02:23 +08:00
dependencies :
2025-12-05 14:30:00 +08:00
detect-libc : 2.1 .2
2025-04-17 12:02:23 +08:00
optionalDependencies :
lightningcss-darwin-arm64 : 1.29 .2
lightningcss-darwin-x64 : 1.29 .2
lightningcss-freebsd-x64 : 1.29 .2
lightningcss-linux-arm-gnueabihf : 1.29 .2
lightningcss-linux-arm64-gnu : 1.29 .2
lightningcss-linux-arm64-musl : 1.29 .2
lightningcss-linux-x64-gnu : 1.29 .2
lightningcss-linux-x64-musl : 1.29 .2
lightningcss-win32-arm64-msvc : 1.29 .2
lightningcss-win32-x64-msvc : 1.29 .2
2025-10-25 20:46:43 +08:00
lines-and-columns@1.2.4 : {}
2025-04-26 00:20:49 +08:00
linkify-it@5.0.0 :
dependencies :
uc.micro : 2.1 .0
linkifyjs@4.2.0 : {}
2025-12-05 14:30:00 +08:00
loader-runner@4.3.1 : {}
2025-04-22 13:52:56 +08:00
loader-utils@2.0.4 :
dependencies :
big.js : 5.2 .2
emojis-list : 3.0 .0
json5 : 2.2 .3
2025-10-25 20:46:43 +08:00
locate-path@5.0.0 :
dependencies :
p-locate : 4.1 .0
2025-04-17 20:36:11 +08:00
locate-path@6.0.0 :
2025-04-17 12:02:23 +08:00
dependencies :
p-locate : 5.0 .0
2025-04-26 00:20:49 +08:00
lodash.castarray@4.4.0 : {}
lodash.isplainobject@4.0.6 : {}
2025-10-25 20:46:43 +08:00
lodash.memoize@4.1.2 : {}
2025-04-17 20:36:11 +08:00
lodash.merge@4.6.2 : {}
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
longest-streak@3.1.0 : {}
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
loose-envify@1.4.0 :
2025-04-17 12:02:23 +08:00
dependencies :
js-tokens : 4.0 .0
2025-04-17 20:36:11 +08:00
lowlight@1.20.0 :
2025-04-17 12:02:23 +08:00
dependencies :
fault : 1.0 .4
highlight.js : 10.7 .3
2025-04-26 00:20:49 +08:00
lowlight@3.3.0 :
dependencies :
'@types/hast' : 3.0 .4
devlop : 1.1 .0
highlight.js : 11.11 .1
2025-10-25 20:46:43 +08:00
lru-cache@10.4.3 : {}
2025-04-17 20:36:11 +08:00
lru-cache@11.1.0 : {}
2025-04-17 12:02:23 +08:00
2025-10-25 20:46:43 +08:00
lru-cache@5.1.1 :
dependencies :
yallist : 3.1 .1
2025-04-17 20:36:11 +08:00
lucide-react@0.487.0(react@19.1.0) :
2025-04-17 12:02:23 +08:00
dependencies :
react : 19.1 .0
2025-10-25 20:46:43 +08:00
lz-string@1.5.0 : {}
make-dir@4.0.0 :
dependencies :
2026-02-09 15:43:04 +08:00
semver : 7.7 .4
2025-10-25 20:46:43 +08:00
make-error@1.3.6 : {}
makeerror@1.0.12 :
dependencies :
tmpl : 1.0 .5
2025-04-26 00:20:49 +08:00
markdown-it-task-lists@2.1.1 : {}
markdown-it@14.1.0 :
dependencies :
argparse : 2.0 .1
entities : 4.5 .0
linkify-it : 5.0 .0
mdurl : 2.0 .0
punycode.js : 2.3 .1
uc.micro : 2.1 .0
2025-04-17 20:36:11 +08:00
markdown-table@3.0.4 : {}
2025-04-17 12:02:23 +08:00
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
marked@17.0.1 : {}
2025-04-17 20:36:11 +08:00
math-intrinsics@1.1.0 : {}
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
mdast-util-find-and-replace@3.0.2 :
2025-04-17 12:02:23 +08:00
dependencies :
'@types/mdast' : 4.0 .4
escape-string-regexp : 5.0 .0
unist-util-is : 6.0 .0
unist-util-visit-parents : 6.0 .1
2025-04-17 20:36:11 +08:00
mdast-util-from-markdown@2.0.2 :
2025-04-17 12:02:23 +08:00
dependencies :
'@types/mdast' : 4.0 .4
'@types/unist' : 3.0 .3
decode-named-character-reference : 1.1 .0
devlop : 1.1 .0
mdast-util-to-string : 4.0 .0
micromark : 4.0 .2
micromark-util-decode-numeric-character-reference : 2.0 .2
micromark-util-decode-string : 2.0 .1
micromark-util-normalize-identifier : 2.0 .1
micromark-util-symbol : 2.0 .1
micromark-util-types : 2.0 .2
unist-util-stringify-position : 4.0 .0
transitivePeerDependencies :
- supports-color
2025-04-17 20:36:11 +08:00
mdast-util-gfm-autolink-literal@2.0.1 :
2025-04-17 12:02:23 +08:00
dependencies :
'@types/mdast' : 4.0 .4
ccount : 2.0 .1
devlop : 1.1 .0
mdast-util-find-and-replace : 3.0 .2
micromark-util-character : 2.1 .1
2025-04-17 20:36:11 +08:00
mdast-util-gfm-footnote@2.1.0 :
2025-04-17 12:02:23 +08:00
dependencies :
'@types/mdast' : 4.0 .4
devlop : 1.1 .0
mdast-util-from-markdown : 2.0 .2
mdast-util-to-markdown : 2.1 .2
micromark-util-normalize-identifier : 2.0 .1
transitivePeerDependencies :
- supports-color
2025-04-17 20:36:11 +08:00
mdast-util-gfm-strikethrough@2.0.0 :
2025-04-17 12:02:23 +08:00
dependencies :
'@types/mdast' : 4.0 .4
mdast-util-from-markdown : 2.0 .2
mdast-util-to-markdown : 2.1 .2
transitivePeerDependencies :
- supports-color
2025-04-17 20:36:11 +08:00
mdast-util-gfm-table@2.0.0 :
2025-04-17 12:02:23 +08:00
dependencies :
'@types/mdast' : 4.0 .4
devlop : 1.1 .0
markdown-table : 3.0 .4
mdast-util-from-markdown : 2.0 .2
mdast-util-to-markdown : 2.1 .2
transitivePeerDependencies :
- supports-color
2025-04-17 20:36:11 +08:00
mdast-util-gfm-task-list-item@2.0.0 :
2025-04-17 12:02:23 +08:00
dependencies :
'@types/mdast' : 4.0 .4
devlop : 1.1 .0
mdast-util-from-markdown : 2.0 .2
mdast-util-to-markdown : 2.1 .2
transitivePeerDependencies :
- supports-color
2025-04-17 20:36:11 +08:00
mdast-util-gfm@3.1.0 :
2025-04-17 12:02:23 +08:00
dependencies :
mdast-util-from-markdown : 2.0 .2
mdast-util-gfm-autolink-literal : 2.0 .1
mdast-util-gfm-footnote : 2.1 .0
mdast-util-gfm-strikethrough : 2.0 .0
mdast-util-gfm-table : 2.0 .0
mdast-util-gfm-task-list-item : 2.0 .0
mdast-util-to-markdown : 2.1 .2
transitivePeerDependencies :
- supports-color
2025-04-17 20:36:11 +08:00
mdast-util-math@3.0.0 :
2025-04-17 12:02:23 +08:00
dependencies :
'@types/hast' : 3.0 .4
'@types/mdast' : 4.0 .4
devlop : 1.1 .0
longest-streak : 3.1 .0
mdast-util-from-markdown : 2.0 .2
mdast-util-to-markdown : 2.1 .2
unist-util-remove-position : 5.0 .0
transitivePeerDependencies :
- supports-color
2025-04-17 20:36:11 +08:00
mdast-util-mdx-expression@2.0.1 :
2025-04-17 12:02:23 +08:00
dependencies :
'@types/estree-jsx' : 1.0 .5
'@types/hast' : 3.0 .4
'@types/mdast' : 4.0 .4
devlop : 1.1 .0
mdast-util-from-markdown : 2.0 .2
mdast-util-to-markdown : 2.1 .2
transitivePeerDependencies :
- supports-color
2025-04-17 20:36:11 +08:00
mdast-util-mdx-jsx@3.2.0 :
2025-04-17 12:02:23 +08:00
dependencies :
'@types/estree-jsx' : 1.0 .5
'@types/hast' : 3.0 .4
'@types/mdast' : 4.0 .4
'@types/unist' : 3.0 .3
ccount : 2.0 .1
devlop : 1.1 .0
mdast-util-from-markdown : 2.0 .2
mdast-util-to-markdown : 2.1 .2
parse-entities : 4.0 .2
stringify-entities : 4.0 .4
unist-util-stringify-position : 4.0 .0
vfile-message : 4.0 .2
transitivePeerDependencies :
- supports-color
2025-04-17 20:36:11 +08:00
mdast-util-mdxjs-esm@2.0.1 :
2025-04-17 12:02:23 +08:00
dependencies :
'@types/estree-jsx' : 1.0 .5
'@types/hast' : 3.0 .4
'@types/mdast' : 4.0 .4
devlop : 1.1 .0
mdast-util-from-markdown : 2.0 .2
mdast-util-to-markdown : 2.1 .2
transitivePeerDependencies :
- supports-color
2025-04-17 20:36:11 +08:00
mdast-util-phrasing@4.1.0 :
2025-04-17 12:02:23 +08:00
dependencies :
'@types/mdast' : 4.0 .4
unist-util-is : 6.0 .0
2025-04-17 20:36:11 +08:00
mdast-util-to-hast@13.2.0 :
2025-04-17 12:02:23 +08:00
dependencies :
'@types/hast' : 3.0 .4
'@types/mdast' : 4.0 .4
'@ungap/structured-clone' : 1.3 .0
devlop : 1.1 .0
micromark-util-sanitize-uri : 2.0 .1
trim-lines : 3.0 .1
unist-util-position : 5.0 .0
unist-util-visit : 5.0 .0
vfile : 6.0 .3
2025-04-17 20:36:11 +08:00
mdast-util-to-markdown@2.1.2 :
2025-04-17 12:02:23 +08:00
dependencies :
'@types/mdast' : 4.0 .4
'@types/unist' : 3.0 .3
longest-streak : 3.1 .0
mdast-util-phrasing : 4.1 .0
mdast-util-to-string : 4.0 .0
micromark-util-classify-character : 2.0 .1
micromark-util-decode-string : 2.0 .1
unist-util-visit : 5.0 .0
zwitch : 2.0 .4
2025-04-17 20:36:11 +08:00
mdast-util-to-string@4.0.0 :
2025-04-17 12:02:23 +08:00
dependencies :
'@types/mdast' : 4.0 .4
2025-04-26 00:20:49 +08:00
mdurl@2.0.0 : {}
2025-04-22 13:52:56 +08:00
merge-stream@2.0.0 : {}
2025-04-17 20:36:11 +08:00
merge2@1.4.1 : {}
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
micromark-core-commonmark@2.0.3 :
2025-04-17 12:02:23 +08:00
dependencies :
decode-named-character-reference : 1.1 .0
devlop : 1.1 .0
micromark-factory-destination : 2.0 .1
micromark-factory-label : 2.0 .1
micromark-factory-space : 2.0 .1
micromark-factory-title : 2.0 .1
micromark-factory-whitespace : 2.0 .1
micromark-util-character : 2.1 .1
micromark-util-chunked : 2.0 .1
micromark-util-classify-character : 2.0 .1
micromark-util-html-tag-name : 2.0 .1
micromark-util-normalize-identifier : 2.0 .1
micromark-util-resolve-all : 2.0 .1
micromark-util-subtokenize : 2.1 .0
micromark-util-symbol : 2.0 .1
micromark-util-types : 2.0 .2
2025-04-17 20:36:11 +08:00
micromark-extension-gfm-autolink-literal@2.1.0 :
2025-04-17 12:02:23 +08:00
dependencies :
micromark-util-character : 2.1 .1
micromark-util-sanitize-uri : 2.0 .1
micromark-util-symbol : 2.0 .1
micromark-util-types : 2.0 .2
2025-04-17 20:36:11 +08:00
micromark-extension-gfm-footnote@2.1.0 :
2025-04-17 12:02:23 +08:00
dependencies :
devlop : 1.1 .0
micromark-core-commonmark : 2.0 .3
micromark-factory-space : 2.0 .1
micromark-util-character : 2.1 .1
micromark-util-normalize-identifier : 2.0 .1
micromark-util-sanitize-uri : 2.0 .1
micromark-util-symbol : 2.0 .1
micromark-util-types : 2.0 .2
2025-04-17 20:36:11 +08:00
micromark-extension-gfm-strikethrough@2.1.0 :
2025-04-17 12:02:23 +08:00
dependencies :
devlop : 1.1 .0
micromark-util-chunked : 2.0 .1
micromark-util-classify-character : 2.0 .1
micromark-util-resolve-all : 2.0 .1
micromark-util-symbol : 2.0 .1
micromark-util-types : 2.0 .2
2025-04-17 20:36:11 +08:00
micromark-extension-gfm-table@2.1.1 :
2025-04-17 12:02:23 +08:00
dependencies :
devlop : 1.1 .0
micromark-factory-space : 2.0 .1
micromark-util-character : 2.1 .1
micromark-util-symbol : 2.0 .1
micromark-util-types : 2.0 .2
2025-04-17 20:36:11 +08:00
micromark-extension-gfm-tagfilter@2.0.0 :
2025-04-17 12:02:23 +08:00
dependencies :
micromark-util-types : 2.0 .2
2025-04-17 20:36:11 +08:00
micromark-extension-gfm-task-list-item@2.1.0 :
2025-04-17 12:02:23 +08:00
dependencies :
devlop : 1.1 .0
micromark-factory-space : 2.0 .1
micromark-util-character : 2.1 .1
micromark-util-symbol : 2.0 .1
micromark-util-types : 2.0 .2
2025-04-17 20:36:11 +08:00
micromark-extension-gfm@3.0.0 :
2025-04-17 12:02:23 +08:00
dependencies :
micromark-extension-gfm-autolink-literal : 2.1 .0
micromark-extension-gfm-footnote : 2.1 .0
micromark-extension-gfm-strikethrough : 2.1 .0
micromark-extension-gfm-table : 2.1 .1
micromark-extension-gfm-tagfilter : 2.0 .0
micromark-extension-gfm-task-list-item : 2.1 .0
micromark-util-combine-extensions : 2.0 .1
micromark-util-types : 2.0 .2
2025-04-17 20:36:11 +08:00
micromark-extension-math@3.1.0 :
2025-04-17 12:02:23 +08:00
dependencies :
'@types/katex' : 0.16 .7
devlop : 1.1 .0
2025-04-17 14:26:41 +08:00
katex : 0.16 .21
2025-04-17 12:02:23 +08:00
micromark-factory-space : 2.0 .1
micromark-util-character : 2.1 .1
micromark-util-symbol : 2.0 .1
micromark-util-types : 2.0 .2
2025-04-17 20:36:11 +08:00
micromark-factory-destination@2.0.1 :
2025-04-17 12:02:23 +08:00
dependencies :
micromark-util-character : 2.1 .1
micromark-util-symbol : 2.0 .1
micromark-util-types : 2.0 .2
2025-04-17 20:36:11 +08:00
micromark-factory-label@2.0.1 :
2025-04-17 12:02:23 +08:00
dependencies :
devlop : 1.1 .0
micromark-util-character : 2.1 .1
micromark-util-symbol : 2.0 .1
micromark-util-types : 2.0 .2
2025-04-17 20:36:11 +08:00
micromark-factory-space@2.0.1 :
2025-04-17 12:02:23 +08:00
dependencies :
micromark-util-character : 2.1 .1
micromark-util-types : 2.0 .2
2025-04-17 20:36:11 +08:00
micromark-factory-title@2.0.1 :
2025-04-17 12:02:23 +08:00
dependencies :
micromark-factory-space : 2.0 .1
micromark-util-character : 2.1 .1
micromark-util-symbol : 2.0 .1
micromark-util-types : 2.0 .2
2025-04-17 20:36:11 +08:00
micromark-factory-whitespace@2.0.1 :
2025-04-17 12:02:23 +08:00
dependencies :
micromark-factory-space : 2.0 .1
micromark-util-character : 2.1 .1
micromark-util-symbol : 2.0 .1
micromark-util-types : 2.0 .2
2025-04-17 20:36:11 +08:00
micromark-util-character@2.1.1 :
2025-04-17 12:02:23 +08:00
dependencies :
micromark-util-symbol : 2.0 .1
micromark-util-types : 2.0 .2
2025-04-17 20:36:11 +08:00
micromark-util-chunked@2.0.1 :
2025-04-17 12:02:23 +08:00
dependencies :
micromark-util-symbol : 2.0 .1
2025-04-17 20:36:11 +08:00
micromark-util-classify-character@2.0.1 :
2025-04-17 12:02:23 +08:00
dependencies :
micromark-util-character : 2.1 .1
micromark-util-symbol : 2.0 .1
micromark-util-types : 2.0 .2
2025-04-17 20:36:11 +08:00
micromark-util-combine-extensions@2.0.1 :
2025-04-17 12:02:23 +08:00
dependencies :
micromark-util-chunked : 2.0 .1
micromark-util-types : 2.0 .2
2025-04-17 20:36:11 +08:00
micromark-util-decode-numeric-character-reference@2.0.2 :
2025-04-17 12:02:23 +08:00
dependencies :
micromark-util-symbol : 2.0 .1
2025-04-17 20:36:11 +08:00
micromark-util-decode-string@2.0.1 :
2025-04-17 12:02:23 +08:00
dependencies :
decode-named-character-reference : 1.1 .0
micromark-util-character : 2.1 .1
micromark-util-decode-numeric-character-reference : 2.0 .2
micromark-util-symbol : 2.0 .1
2025-04-17 20:36:11 +08:00
micromark-util-encode@2.0.1 : {}
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
micromark-util-html-tag-name@2.0.1 : {}
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
micromark-util-normalize-identifier@2.0.1 :
2025-04-17 12:02:23 +08:00
dependencies :
micromark-util-symbol : 2.0 .1
2025-04-17 20:36:11 +08:00
micromark-util-resolve-all@2.0.1 :
2025-04-17 12:02:23 +08:00
dependencies :
micromark-util-types : 2.0 .2
2025-04-17 20:36:11 +08:00
micromark-util-sanitize-uri@2.0.1 :
2025-04-17 12:02:23 +08:00
dependencies :
micromark-util-character : 2.1 .1
micromark-util-encode : 2.0 .1
micromark-util-symbol : 2.0 .1
2025-04-17 20:36:11 +08:00
micromark-util-subtokenize@2.1.0 :
2025-04-17 12:02:23 +08:00
dependencies :
devlop : 1.1 .0
micromark-util-chunked : 2.0 .1
micromark-util-symbol : 2.0 .1
micromark-util-types : 2.0 .2
2025-04-17 20:36:11 +08:00
micromark-util-symbol@2.0.1 : {}
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
micromark-util-types@2.0.2 : {}
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
micromark@4.0.2 :
2025-04-17 12:02:23 +08:00
dependencies :
'@types/debug' : 4.1 .12
debug : 4.4 .0
decode-named-character-reference : 1.1 .0
devlop : 1.1 .0
micromark-core-commonmark : 2.0 .3
micromark-factory-space : 2.0 .1
micromark-util-character : 2.1 .1
micromark-util-chunked : 2.0 .1
micromark-util-combine-extensions : 2.0 .1
micromark-util-decode-numeric-character-reference : 2.0 .2
micromark-util-encode : 2.0 .1
micromark-util-normalize-identifier : 2.0 .1
micromark-util-resolve-all : 2.0 .1
micromark-util-sanitize-uri : 2.0 .1
micromark-util-subtokenize : 2.1 .0
micromark-util-symbol : 2.0 .1
micromark-util-types : 2.0 .2
transitivePeerDependencies :
- supports-color
2025-04-17 20:36:11 +08:00
micromatch@4.0.8 :
2025-04-17 12:02:23 +08:00
dependencies :
braces : 3.0 .3
picomatch : 2.3 .1
2025-04-22 13:52:56 +08:00
mime-db@1.52.0 : {}
mime-types@2.1.35 :
dependencies :
mime-db : 1.52 .0
2025-10-25 20:46:43 +08:00
mimic-fn@2.1.0 : {}
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
minimalistic-assert@1.0.1 : {}
2025-04-17 20:36:11 +08:00
minimatch@3.1.2 :
2025-04-17 12:02:23 +08:00
dependencies :
brace-expansion : 1.1 .11
2025-04-17 20:36:11 +08:00
minimatch@9.0.5 :
2025-04-17 12:02:23 +08:00
dependencies :
brace-expansion : 2.0 .1
2025-04-17 20:36:11 +08:00
minimist@1.2.8 : {}
2025-04-17 12:02:23 +08:00
2025-10-25 20:46:43 +08:00
minipass@7.1.2 : {}
2025-04-17 20:36:11 +08:00
motion-dom@12.7.4 :
2025-04-17 12:02:23 +08:00
dependencies :
2025-04-17 14:26:41 +08:00
motion-utils : 12.7 .2
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
motion-utils@12.7.2 : {}
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
motion@12.7.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) :
2025-04-17 12:02:23 +08:00
dependencies :
2025-04-17 20:36:11 +08:00
framer-motion : 12.7 .4 (react-dom@19.1.0(react@19.1.0))(react@19.1.0)
tslib : 2.8 .1
optionalDependencies :
2025-04-17 12:02:23 +08:00
react : 19.1 .0
react-dom : 19.1 .0 (react@19.1.0)
2025-04-17 20:36:11 +08:00
ms@2.1.3 : {}
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
nanoid@3.3.11 : {}
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
nanoid@5.1.5 : {}
2025-04-17 12:02:23 +08:00
2025-10-25 20:46:43 +08:00
napi-postinstall@0.3.4 : {}
2025-04-17 20:36:11 +08:00
natural-compare@1.4.0 : {}
2025-04-17 12:02:23 +08:00
2025-07-12 15:18:28 +08:00
negotiator@1.0.0 : {}
2025-04-22 13:52:56 +08:00
neo-async@2.6.2 : {}
2026-02-09 15:43:04 +08:00
next-intl@4.3.1(next@15.5.10(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0)(typescript@5.8.3) :
2025-07-12 15:18:28 +08:00
dependencies :
'@formatjs/intl-localematcher' : 0.5 .10
negotiator : 1.0 .0
2026-02-09 15:43:04 +08:00
next : 15.5 .10 (@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
2025-07-12 15:18:28 +08:00
react : 19.1 .0
use-intl : 4.3 .1 (react@19.1.0)
optionalDependencies :
typescript : 5.8 .3
2025-04-20 11:18:05 +08:00
next-themes@0.4.6(react-dom@19.1.0(react@19.1.0))(react@19.1.0) :
dependencies :
react : 19.1 .0
react-dom : 19.1 .0 (react@19.1.0)
2026-02-09 15:43:04 +08:00
next@15.5.10(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) :
2025-04-17 12:02:23 +08:00
dependencies :
2026-02-09 15:43:04 +08:00
'@next/env' : 15.5 .10
2025-04-17 12:02:23 +08:00
'@swc/helpers' : 0.5 .15
2026-02-09 15:43:04 +08:00
caniuse-lite : 1.0 .30001769
2025-04-17 12:02:23 +08:00
postcss : 8.4 .31
react : 19.1 .0
react-dom : 19.1 .0 (react@19.1.0)
2025-10-25 20:46:43 +08:00
styled-jsx : 5.1 .6 (@babel/core@7.28.5)(react@19.1.0)
2025-04-17 12:02:23 +08:00
optionalDependencies :
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
'@next/swc-darwin-arm64' : 15.5 .7
'@next/swc-darwin-x64' : 15.5 .7
'@next/swc-linux-arm64-gnu' : 15.5 .7
'@next/swc-linux-arm64-musl' : 15.5 .7
'@next/swc-linux-x64-gnu' : 15.5 .7
'@next/swc-linux-x64-musl' : 15.5 .7
'@next/swc-win32-arm64-msvc' : 15.5 .7
'@next/swc-win32-x64-msvc' : 15.5 .7
2025-04-26 00:20:49 +08:00
'@opentelemetry/api' : 1.9 .0
2025-12-05 14:30:00 +08:00
sharp : 0.34 .5
2025-04-17 12:02:23 +08:00
transitivePeerDependencies :
- '@babel/core'
- babel-plugin-macros
2025-10-25 20:46:43 +08:00
node-int64@0.4.0 : {}
2025-04-22 13:52:56 +08:00
node-releases@2.0.19 : {}
2025-12-05 14:30:00 +08:00
node-releases@2.0.27 : {}
2025-10-25 20:46:43 +08:00
normalize-path@3.0.0 : {}
2025-04-29 15:47:01 +08:00
novel@1.0.2(@tiptap/extension-code-block@2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))(@tiptap/pm@2.11.7))(@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(highlight.js@11.11.1)(immer@10.1.1)(lowlight@3.3.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) :
2025-04-26 00:20:49 +08:00
dependencies :
'@radix-ui/react-slot' : 1.2 .0 (@types/react@19.1.2)(react@19.1.0)
'@tiptap/core' : 2.11 .7 (@tiptap/pm@2.11.7)
'@tiptap/extension-character-count' : 2.11 .7 (@tiptap/core@2.11.7(@tiptap/pm@2.11.7))(@tiptap/pm@2.11.7)
'@tiptap/extension-code-block-lowlight' : 2.11 .7 (@tiptap/core@2.11.7(@tiptap/pm@2.11.7))(@tiptap/extension-code-block@2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7))(@tiptap/pm@2.11.7))(@tiptap/pm@2.11.7)(highlight.js@11.11.1)(lowlight@3.3.0)
'@tiptap/extension-color' : 2.11 .7 (@tiptap/core@2.11.7(@tiptap/pm@2.11.7))(@tiptap/extension-text-style@2.11.7(@tiptap/core@2.11.7(@tiptap/pm@2.11.7)))
'@tiptap/extension-highlight' : 2.11 .7 (@tiptap/core@2.11.7(@tiptap/pm@2.11.7))
'@tiptap/extension-horizontal-rule' : 2.11 .7 (@tiptap/core@2.11.7(@tiptap/pm@2.11.7))(@tiptap/pm@2.11.7)
'@tiptap/extension-image' : 2.11 .7 (@tiptap/core@2.11.7(@tiptap/pm@2.11.7))
'@tiptap/extension-link' : 2.11 .7 (@tiptap/core@2.11.7(@tiptap/pm@2.11.7))(@tiptap/pm@2.11.7)
'@tiptap/extension-placeholder' : 2.11 .7 (@tiptap/core@2.11.7(@tiptap/pm@2.11.7))(@tiptap/pm@2.11.7)
'@tiptap/extension-task-item' : 2.11 .7 (@tiptap/core@2.11.7(@tiptap/pm@2.11.7))(@tiptap/pm@2.11.7)
'@tiptap/extension-task-list' : 2.11 .7 (@tiptap/core@2.11.7(@tiptap/pm@2.11.7))
'@tiptap/extension-text-style' : 2.11 .7 (@tiptap/core@2.11.7(@tiptap/pm@2.11.7))
'@tiptap/extension-underline' : 2.11 .7 (@tiptap/core@2.11.7(@tiptap/pm@2.11.7))
'@tiptap/extension-youtube' : 2.11 .7 (@tiptap/core@2.11.7(@tiptap/pm@2.11.7))
'@tiptap/pm' : 2.11 .7
'@tiptap/react' : 2.11 .7 (@tiptap/core@2.11.7(@tiptap/pm@2.11.7))(@tiptap/pm@2.11.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
'@tiptap/starter-kit' : 2.11 .7
'@tiptap/suggestion' : 2.11 .7 (@tiptap/core@2.11.7(@tiptap/pm@2.11.7))(@tiptap/pm@2.11.7)
'@types/node' : 22.15 .2
cmdk : 1.1 .1 (@types/react-dom@19.1.1(@types/react@19.1.2))(@types/react@19.1.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
jotai : 2.12 .3 (@types/react@19.1.2)(react@19.1.0)
katex : 0.16 .21
react : 19.1 .0
react-markdown : 9.1 .0 (@types/react@19.1.2)(react@19.1.0)
react-moveable : 0.56 .0
react-tweet : 3.2 .2 (react-dom@19.1.0(react@19.1.0))(react@19.1.0)
tippy.js : 6.3 .7
tiptap-extension-global-drag-handle : 0.1 .18
2025-04-29 15:47:01 +08:00
tunnel-rat : 0.1 .2 (@types/react@19.1.2)(immer@10.1.1)(react@19.1.0)
2025-04-26 00:20:49 +08:00
transitivePeerDependencies :
- '@tiptap/extension-code-block'
- '@types/react'
- '@types/react-dom'
- highlight.js
- immer
- lowlight
- react-dom
- supports-color
2025-10-25 20:46:43 +08:00
npm-run-path@4.0.1 :
dependencies :
path-key : 3.1 .1
nwsapi@2.2.22 : {}
2025-04-17 20:36:11 +08:00
object-assign@4.1.1 : {}
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
object-inspect@1.13.4 : {}
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
object-keys@1.1.1 : {}
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
object.assign@4.1.7 :
2025-04-17 12:02:23 +08:00
dependencies :
call-bind : 1.0 .8
call-bound : 1.0 .4
define-properties : 1.2 .1
es-object-atoms : 1.1 .1
has-symbols : 1.1 .0
object-keys : 1.1 .1
2025-04-17 20:36:11 +08:00
object.entries@1.1.9 :
2025-04-17 12:02:23 +08:00
dependencies :
call-bind : 1.0 .8
call-bound : 1.0 .4
define-properties : 1.2 .1
es-object-atoms : 1.1 .1
2025-04-17 20:36:11 +08:00
object.fromentries@2.0.8 :
2025-04-17 12:02:23 +08:00
dependencies :
call-bind : 1.0 .8
define-properties : 1.2 .1
es-abstract : 1.23 .9
es-object-atoms : 1.1 .1
2025-04-17 20:36:11 +08:00
object.groupby@1.0.3 :
2025-04-17 12:02:23 +08:00
dependencies :
call-bind : 1.0 .8
define-properties : 1.2 .1
es-abstract : 1.23 .9
2025-04-17 20:36:11 +08:00
object.values@1.2.1 :
2025-04-17 12:02:23 +08:00
dependencies :
call-bind : 1.0 .8
call-bound : 1.0 .4
define-properties : 1.2 .1
es-object-atoms : 1.1 .1
2025-10-25 20:46:43 +08:00
once@1.4.0 :
dependencies :
wrappy : 1.0 .2
onetime@5.1.2 :
dependencies :
mimic-fn : 2.1 .0
2025-04-17 20:36:11 +08:00
optionator@0.9.4 :
2025-04-17 12:02:23 +08:00
dependencies :
deep-is : 0.1 .4
fast-levenshtein : 2.0 .6
levn : 0.4 .1
prelude-ls : 1.2 .1
type-check : 0.4 .0
word-wrap : 1.2 .5
2025-04-26 00:20:49 +08:00
orderedmap@2.1.1 : {}
overlap-area@1.1.0 :
dependencies :
'@daybrush/utils' : 1.13 .0
2025-04-17 20:36:11 +08:00
own-keys@1.0.1 :
2025-04-17 12:02:23 +08:00
dependencies :
get-intrinsic : 1.3 .0
object-keys : 1.1 .1
safe-push-apply : 1.0 .0
2025-10-25 20:46:43 +08:00
p-limit@2.3.0 :
dependencies :
p-try : 2.2 .0
2025-04-17 20:36:11 +08:00
p-limit@3.1.0 :
2025-04-17 12:02:23 +08:00
dependencies :
yocto-queue : 0.1 .0
2025-10-25 20:46:43 +08:00
p-locate@4.1.0 :
dependencies :
p-limit : 2.3 .0
2025-04-17 20:36:11 +08:00
p-locate@5.0.0 :
2025-04-17 12:02:23 +08:00
dependencies :
p-limit : 3.1 .0
2025-10-25 20:46:43 +08:00
p-try@2.2.0 : {}
package-json-from-dist@1.0.1 : {}
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
pako@1.0.11 : {}
pako@2.1.0 : {}
2025-04-17 20:36:11 +08:00
parent-module@1.0.1 :
dependencies :
callsites : 3.1 .0
parse-entities@2.0.0 :
dependencies :
character-entities : 1.2 .4
character-entities-legacy : 1.1 .4
character-reference-invalid : 1.1 .4
is-alphanumerical : 1.0 .4
is-decimal : 1.0 .4
is-hexadecimal : 1.0 .4
parse-entities@4.0.2 :
dependencies :
'@types/unist' : 2.0 .11
character-entities-legacy : 3.0 .0
character-reference-invalid : 2.0 .1
decode-named-character-reference : 1.1 .0
is-alphanumerical : 2.0 .1
is-decimal : 2.0 .1
is-hexadecimal : 2.0 .1
2025-10-25 20:46:43 +08:00
parse-json@5.2.0 :
dependencies :
'@babel/code-frame' : 7.27 .1
error-ex : 1.3 .4
json-parse-even-better-errors : 2.3 .1
lines-and-columns : 1.2 .4
2025-04-17 20:36:11 +08:00
parse5@7.2.1 :
dependencies :
entities : 4.5 .0
path-exists@4.0.0 : {}
2025-10-25 20:46:43 +08:00
path-is-absolute@1.0.1 : {}
2025-04-17 20:36:11 +08:00
path-key@3.1.1 : {}
path-parse@1.0.7 : {}
2025-10-25 20:46:43 +08:00
path-scurry@1.11.1 :
dependencies :
lru-cache : 10.4 .3
minipass : 7.1 .2
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
performance-now@2.1.0 :
optional : true
2025-04-17 20:36:11 +08:00
picocolors@1.1.1 : {}
picomatch@2.3.1 : {}
picomatch@4.0.2 : {}
2025-10-25 20:46:43 +08:00
pirates@4.0.7 : {}
pkg-dir@4.2.0 :
dependencies :
find-up : 4.1 .0
2025-04-17 20:36:11 +08:00
possible-typed-array-names@1.1.0 : {}
2025-04-26 00:20:49 +08:00
postcss-selector-parser@6.0.10 :
dependencies :
cssesc : 3.0 .0
util-deprecate : 1.0 .2
2025-04-17 20:36:11 +08:00
postcss@8.4.31 :
dependencies :
nanoid : 3.3 .11
picocolors : 1.1 .1
source-map-js : 1.2 .1
postcss@8.5.3 :
dependencies :
nanoid : 3.3 .11
picocolors : 1.1 .1
source-map-js : 1.2 .1
prelude-ls@1.2.1 : {}
prettier-plugin-tailwindcss@0.6.11(prettier@3.5.3) :
2025-04-17 12:02:23 +08:00
dependencies :
prettier : 3.5 .3
2025-04-17 20:36:11 +08:00
prettier@3.5.3 : {}
2025-04-17 12:02:23 +08:00
2025-10-25 20:46:43 +08:00
pretty-format@27.5.1 :
dependencies :
ansi-regex : 5.0 .1
ansi-styles : 5.2 .0
react-is : 17.0 .2
pretty-format@30.2.0 :
dependencies :
'@jest/schemas' : 30.0 .5
ansi-styles : 5.2 .0
react-is : 18.3 .1
2025-04-17 20:36:11 +08:00
prismjs@1.27.0 : {}
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
prismjs@1.30.0 : {}
2025-04-17 12:02:23 +08:00
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
process-nextick-args@2.0.1 : {}
2025-04-17 20:36:11 +08:00
prop-types@15.8.1 :
2025-04-17 12:02:23 +08:00
dependencies :
loose-envify : 1.4 .0
object-assign : 4.1 .1
react-is : 16.13 .1
2025-04-17 20:36:11 +08:00
property-information@5.6.0 :
2025-04-17 12:02:23 +08:00
dependencies :
xtend : 4.0 .2
2025-04-17 20:36:11 +08:00
property-information@7.0.0 : {}
2025-04-17 12:02:23 +08:00
2025-04-26 00:20:49 +08:00
prosemirror-changeset@2.2.1 :
dependencies :
prosemirror-transform : 1.10 .4
prosemirror-collab@1.3.1 :
dependencies :
prosemirror-state : 1.4 .3
prosemirror-commands@1.7.1 :
dependencies :
prosemirror-model : 1.25 .1
prosemirror-state : 1.4 .3
prosemirror-transform : 1.10 .4
prosemirror-dropcursor@1.8.2 :
dependencies :
prosemirror-state : 1.4 .3
prosemirror-transform : 1.10 .4
prosemirror-view : 1.39 .2
prosemirror-gapcursor@1.3.2 :
dependencies :
prosemirror-keymap : 1.2 .2
prosemirror-model : 1.25 .1
prosemirror-state : 1.4 .3
prosemirror-view : 1.39 .2
prosemirror-history@1.4.1 :
dependencies :
prosemirror-state : 1.4 .3
prosemirror-transform : 1.10 .4
prosemirror-view : 1.39 .2
rope-sequence : 1.3 .4
prosemirror-inputrules@1.5.0 :
dependencies :
prosemirror-state : 1.4 .3
prosemirror-transform : 1.10 .4
prosemirror-keymap@1.2.2 :
dependencies :
prosemirror-state : 1.4 .3
w3c-keyname : 2.2 .8
prosemirror-markdown@1.13.2 :
dependencies :
'@types/markdown-it' : 14.1 .2
markdown-it : 14.1 .0
prosemirror-model : 1.25 .1
prosemirror-menu@1.2.5 :
dependencies :
crelt : 1.0 .6
prosemirror-commands : 1.7 .1
prosemirror-history : 1.4 .1
prosemirror-state : 1.4 .3
prosemirror-model@1.25.1 :
dependencies :
orderedmap : 2.1 .1
prosemirror-schema-basic@1.2.4 :
dependencies :
prosemirror-model : 1.25 .1
prosemirror-schema-list@1.5.1 :
dependencies :
prosemirror-model : 1.25 .1
prosemirror-state : 1.4 .3
prosemirror-transform : 1.10 .4
prosemirror-state@1.4.3 :
dependencies :
prosemirror-model : 1.25 .1
prosemirror-transform : 1.10 .4
prosemirror-view : 1.39 .2
prosemirror-tables@1.7.1 :
dependencies :
prosemirror-keymap : 1.2 .2
prosemirror-model : 1.25 .1
prosemirror-state : 1.4 .3
prosemirror-transform : 1.10 .4
prosemirror-view : 1.39 .2
prosemirror-trailing-node@3.0.0(prosemirror-model@1.25.1)(prosemirror-state@1.4.3)(prosemirror-view@1.39.2) :
dependencies :
'@remirror/core-constants' : 3.0 .0
escape-string-regexp : 4.0 .0
prosemirror-model : 1.25 .1
prosemirror-state : 1.4 .3
prosemirror-view : 1.39 .2
prosemirror-transform@1.10.4 :
dependencies :
prosemirror-model : 1.25 .1
prosemirror-view@1.39.2 :
dependencies :
prosemirror-model : 1.25 .1
prosemirror-state : 1.4 .3
prosemirror-transform : 1.10 .4
punycode.js@2.3.1 : {}
2025-04-17 20:36:11 +08:00
punycode@2.3.1 : {}
2025-04-17 12:02:23 +08:00
2025-10-25 20:46:43 +08:00
pure-rand@7.0.1 : {}
2025-04-17 20:36:11 +08:00
queue-microtask@1.2.3 : {}
2025-04-17 12:02:23 +08:00
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
raf@3.4.1 :
dependencies :
performance-now : 2.1 .0
optional : true
2025-04-22 13:52:56 +08:00
randombytes@2.1.0 :
dependencies :
safe-buffer : 5.2 .1
raw-loader@4.0.2(webpack@5.99.6) :
dependencies :
loader-utils : 2.0 .4
schema-utils : 3.3 .0
webpack : 5.99 .6
2025-05-28 14:13:46 +08:00
rc-overflow@1.4.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) :
dependencies :
2026-02-06 10:29:43 +08:00
'@babel/runtime' : 7.28 .6
2025-05-28 14:13:46 +08:00
classnames : 2.5 .1
rc-resize-observer : 1.4 .3 (react-dom@19.1.0(react@19.1.0))(react@19.1.0)
rc-util : 5.44 .4 (react-dom@19.1.0(react@19.1.0))(react@19.1.0)
react : 19.1 .0
react-dom : 19.1 .0 (react@19.1.0)
rc-resize-observer@1.4.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) :
dependencies :
2026-02-06 10:29:43 +08:00
'@babel/runtime' : 7.28 .6
2025-05-28 14:13:46 +08:00
classnames : 2.5 .1
rc-util : 5.44 .4 (react-dom@19.1.0(react@19.1.0))(react@19.1.0)
react : 19.1 .0
react-dom : 19.1 .0 (react@19.1.0)
resize-observer-polyfill : 1.5 .1
rc-util@5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) :
dependencies :
2026-02-06 10:29:43 +08:00
'@babel/runtime' : 7.28 .6
2025-05-28 14:13:46 +08:00
react : 19.1 .0
react-dom : 19.1 .0 (react@19.1.0)
react-is : 18.3 .1
2025-04-26 00:20:49 +08:00
react-css-styled@1.1.9 :
dependencies :
css-styled : 1.0 .8
framework-utils : 1.1 .0
2025-04-17 20:36:11 +08:00
react-dom@19.1.0(react@19.1.0) :
2025-04-17 12:02:23 +08:00
dependencies :
react : 19.1 .0
scheduler : 0.26 .0
2025-04-23 21:16:58 +08:00
react-hook-form@7.56.1(react@19.1.0) :
dependencies :
react : 19.1 .0
2025-04-17 20:36:11 +08:00
react-is@16.13.1 : {}
2025-04-17 12:02:23 +08:00
2025-10-25 20:46:43 +08:00
react-is@17.0.2 : {}
2025-04-17 20:36:11 +08:00
react-is@18.3.1 : {}
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
react-markdown@10.1.0(@types/react@19.1.2)(react@19.1.0) :
2025-04-17 12:02:23 +08:00
dependencies :
'@types/hast' : 3.0 .4
'@types/mdast' : 4.0 .4
2025-04-17 14:26:41 +08:00
'@types/react' : 19.1 .2
2025-04-17 12:02:23 +08:00
devlop : 1.1 .0
hast-util-to-jsx-runtime : 2.3 .6
html-url-attributes : 3.0 .1
mdast-util-to-hast : 13.2 .0
react : 19.1 .0
remark-parse : 11.0 .0
remark-rehype : 11.1 .2
unified : 11.0 .5
unist-util-visit : 5.0 .0
vfile : 6.0 .3
transitivePeerDependencies :
- supports-color
2025-04-26 00:20:49 +08:00
react-markdown@9.1.0(@types/react@19.1.2)(react@19.1.0) :
dependencies :
'@types/hast' : 3.0 .4
'@types/mdast' : 4.0 .4
'@types/react' : 19.1 .2
devlop : 1.1 .0
hast-util-to-jsx-runtime : 2.3 .6
html-url-attributes : 3.0 .1
mdast-util-to-hast : 13.2 .0
react : 19.1 .0
remark-parse : 11.0 .0
remark-rehype : 11.1 .2
unified : 11.0 .5
unist-util-visit : 5.0 .0
vfile : 6.0 .3
transitivePeerDependencies :
- supports-color
react-moveable@0.56.0 :
dependencies :
'@daybrush/utils' : 1.13 .0
'@egjs/agent' : 2.4 .4
'@egjs/children-differ' : 1.0 .1
'@egjs/list-differ' : 1.0 .1
'@scena/dragscroll' : 1.4 .0
'@scena/event-emitter' : 1.0 .5
'@scena/matrix' : 1.1 .1
css-to-mat : 1.1 .1
framework-utils : 1.1 .0
gesto : 1.19 .4
overlap-area : 1.1 .0
react-css-styled : 1.1 .9
react-selecto : 1.26 .3
2025-04-20 11:18:05 +08:00
react-remove-scroll-bar@2.3.8(@types/react@19.1.2)(react@19.1.0) :
dependencies :
react : 19.1 .0
react-style-singleton : 2.2 .3 (@types/react@19.1.2)(react@19.1.0)
tslib : 2.8 .1
optionalDependencies :
'@types/react' : 19.1 .2
react-remove-scroll@2.6.3(@types/react@19.1.2)(react@19.1.0) :
dependencies :
react : 19.1 .0
react-remove-scroll-bar : 2.3 .8 (@types/react@19.1.2)(react@19.1.0)
react-style-singleton : 2.2 .3 (@types/react@19.1.2)(react@19.1.0)
tslib : 2.8 .1
use-callback-ref : 1.3 .3 (@types/react@19.1.2)(react@19.1.0)
use-sidecar : 1.1 .3 (@types/react@19.1.2)(react@19.1.0)
optionalDependencies :
'@types/react' : 19.1 .2
2025-04-26 00:20:49 +08:00
react-selecto@1.26.3 :
dependencies :
selecto : 1.26 .3
2025-04-20 11:18:05 +08:00
react-style-singleton@2.2.3(@types/react@19.1.2)(react@19.1.0) :
dependencies :
get-nonce : 1.0 .1
react : 19.1 .0
tslib : 2.8 .1
optionalDependencies :
'@types/react' : 19.1 .2
2025-04-17 20:36:11 +08:00
react-syntax-highlighter@15.6.1(react@19.1.0) :
2025-04-17 12:02:23 +08:00
dependencies :
'@babel/runtime' : 7.27 .0
highlight.js : 10.7 .3
highlightjs-vue : 1.0 .0
lowlight : 1.20 .0
prismjs : 1.30 .0
react : 19.1 .0
refractor : 3.6 .0
2025-04-26 00:20:49 +08:00
react-tweet@3.2.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) :
dependencies :
2026-02-09 15:43:04 +08:00
'@swc/helpers' : 0.5 .18
2025-04-26 00:20:49 +08:00
clsx : 2.1 .1
react : 19.1 .0
react-dom : 19.1 .0 (react@19.1.0)
swr : 2.3 .3 (react@19.1.0)
2025-04-17 20:36:11 +08:00
react@19.1.0 : {}
2025-04-17 12:02:23 +08:00
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
readable-stream@2.3.8 :
dependencies :
core-util-is : 1.0 .3
inherits : 2.0 .4
isarray : 1.0 .0
process-nextick-args : 2.0 .1
safe-buffer : 5.1 .2
string_decoder : 1.1 .1
util-deprecate : 1.0 .2
2025-04-17 20:36:11 +08:00
reflect.getprototypeof@1.0.10 :
2025-04-17 12:02:23 +08:00
dependencies :
call-bind : 1.0 .8
define-properties : 1.2 .1
es-abstract : 1.23 .9
es-errors : 1.3 .0
es-object-atoms : 1.1 .1
get-intrinsic : 1.3 .0
get-proto : 1.0 .1
which-builtin-type : 1.2 .1
2025-04-17 20:36:11 +08:00
refractor@3.6.0 :
2025-04-17 12:02:23 +08:00
dependencies :
hastscript : 6.0 .0
parse-entities : 2.0 .0
prismjs : 1.27 .0
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
regenerator-runtime@0.13.11 :
optional : true
2025-04-17 20:36:11 +08:00
regenerator-runtime@0.14.1 : {}
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
regexp.prototype.flags@1.5.4 :
2025-04-17 12:02:23 +08:00
dependencies :
call-bind : 1.0 .8
define-properties : 1.2 .1
es-errors : 1.3 .0
get-proto : 1.0 .1
gopd : 1.2 .0
set-function-name : 2.0 .2
2025-04-17 20:36:11 +08:00
rehype-katex@7.0.1 :
2025-04-17 12:02:23 +08:00
dependencies :
'@types/hast' : 3.0 .4
'@types/katex' : 0.16 .7
hast-util-from-html-isomorphic : 2.0 .0
hast-util-to-text : 4.0 .2
2025-04-17 14:26:41 +08:00
katex : 0.16 .21
2025-04-17 12:02:23 +08:00
unist-util-visit-parents : 6.0 .1
vfile : 6.0 .3
2025-04-17 20:36:11 +08:00
remark-gfm@4.0.1 :
2025-04-17 12:02:23 +08:00
dependencies :
'@types/mdast' : 4.0 .4
mdast-util-gfm : 3.1 .0
micromark-extension-gfm : 3.0 .0
remark-parse : 11.0 .0
remark-stringify : 11.0 .0
unified : 11.0 .5
transitivePeerDependencies :
- supports-color
2025-04-17 20:36:11 +08:00
remark-math@6.0.0 :
2025-04-17 12:02:23 +08:00
dependencies :
'@types/mdast' : 4.0 .4
mdast-util-math : 3.0 .0
micromark-extension-math : 3.1 .0
unified : 11.0 .5
transitivePeerDependencies :
- supports-color
2025-04-17 20:36:11 +08:00
remark-parse@11.0.0 :
2025-04-17 12:02:23 +08:00
dependencies :
'@types/mdast' : 4.0 .4
mdast-util-from-markdown : 2.0 .2
micromark-util-types : 2.0 .2
unified : 11.0 .5
transitivePeerDependencies :
- supports-color
2025-04-17 20:36:11 +08:00
remark-rehype@11.1.2 :
2025-04-17 12:02:23 +08:00
dependencies :
'@types/hast' : 3.0 .4
'@types/mdast' : 4.0 .4
mdast-util-to-hast : 13.2 .0
unified : 11.0 .5
vfile : 6.0 .3
2025-04-17 20:36:11 +08:00
remark-stringify@11.0.0 :
2025-04-17 12:02:23 +08:00
dependencies :
'@types/mdast' : 4.0 .4
mdast-util-to-markdown : 2.1 .2
unified : 11.0 .5
2025-10-25 20:46:43 +08:00
require-directory@2.1.1 : {}
2025-04-22 13:52:56 +08:00
require-from-string@2.0.2 : {}
2025-05-28 14:13:46 +08:00
resize-observer-polyfill@1.5.1 : {}
2025-10-25 20:46:43 +08:00
resolve-cwd@3.0.0 :
dependencies :
resolve-from : 5.0 .0
2025-04-17 20:36:11 +08:00
resolve-from@4.0.0 : {}
2025-04-17 12:02:23 +08:00
2025-10-25 20:46:43 +08:00
resolve-from@5.0.0 : {}
2025-04-17 20:36:11 +08:00
resolve-pkg-maps@1.0.0 : {}
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
resolve@1.22.10 :
2025-04-17 12:02:23 +08:00
dependencies :
is-core-module : 2.16 .1
path-parse : 1.0 .7
supports-preserve-symlinks-flag : 1.0 .0
2025-04-17 20:36:11 +08:00
resolve@2.0.0-next.5 :
2025-04-17 12:02:23 +08:00
dependencies :
is-core-module : 2.16 .1
path-parse : 1.0 .7
supports-preserve-symlinks-flag : 1.0 .0
2025-04-17 20:36:11 +08:00
reusify@1.1.0 : {}
2025-04-17 12:02:23 +08:00
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
rgbcolor@1.0.1 :
optional : true
2025-04-26 00:20:49 +08:00
rope-sequence@1.3.4 : {}
2025-10-25 20:46:43 +08:00
rrweb-cssom@0.8.0 : {}
2025-04-17 20:36:11 +08:00
run-parallel@1.2.0 :
2025-04-17 12:02:23 +08:00
dependencies :
queue-microtask : 1.2 .3
2025-04-17 20:36:11 +08:00
safe-array-concat@1.1.3 :
2025-04-17 12:02:23 +08:00
dependencies :
call-bind : 1.0 .8
call-bound : 1.0 .4
get-intrinsic : 1.3 .0
has-symbols : 1.1 .0
isarray : 2.0 .5
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
safe-buffer@5.1.2 : {}
2025-04-22 13:52:56 +08:00
safe-buffer@5.2.1 : {}
2025-04-17 20:36:11 +08:00
safe-push-apply@1.0.0 :
2025-04-17 12:02:23 +08:00
dependencies :
es-errors : 1.3 .0
isarray : 2.0 .5
2025-04-17 20:36:11 +08:00
safe-regex-test@1.1.0 :
2025-04-17 12:02:23 +08:00
dependencies :
call-bound : 1.0 .4
es-errors : 1.3 .0
is-regex : 1.2 .1
2025-10-25 20:46:43 +08:00
safer-buffer@2.1.2 : {}
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
sax@1.4.3 : {}
2025-10-25 20:46:43 +08:00
saxes@6.0.0 :
dependencies :
xmlchars : 2.2 .0
2025-04-17 20:36:11 +08:00
scheduler@0.26.0 : {}
2025-04-17 12:02:23 +08:00
2025-04-22 13:52:56 +08:00
schema-utils@3.3.0 :
dependencies :
'@types/json-schema' : 7.0 .15
ajv : 6.12 .6
ajv-keywords : 3.5 .2 (ajv@6.12.6)
2025-12-05 14:30:00 +08:00
schema-utils@4.3.3 :
2025-04-22 13:52:56 +08:00
dependencies :
'@types/json-schema' : 7.0 .15
ajv : 8.17 .1
ajv-formats : 2.1 .1 (ajv@8.17.1)
ajv-keywords : 5.1 .0 (ajv@8.17.1)
2025-04-26 00:20:49 +08:00
selecto@1.26.3 :
dependencies :
'@daybrush/utils' : 1.13 .0
'@egjs/children-differ' : 1.0 .1
'@scena/dragscroll' : 1.4 .0
'@scena/event-emitter' : 1.0 .5
css-styled : 1.0 .8
css-to-mat : 1.1 .1
framework-utils : 1.1 .0
gesto : 1.19 .4
keycon : 1.4 .0
overlap-area : 1.1 .0
2025-04-17 20:36:11 +08:00
semver@6.3.1 : {}
2025-04-17 12:02:23 +08:00
2025-10-25 20:46:43 +08:00
semver@7.7.3 : {}
2026-02-09 15:43:04 +08:00
semver@7.7.4 : {}
2025-04-22 13:52:56 +08:00
serialize-javascript@6.0.2 :
dependencies :
randombytes : 2.1 .0
2025-04-17 20:36:11 +08:00
set-function-length@1.2.2 :
2025-04-17 12:02:23 +08:00
dependencies :
define-data-property : 1.1 .4
es-errors : 1.3 .0
function-bind : 1.1 .2
get-intrinsic : 1.3 .0
gopd : 1.2 .0
has-property-descriptors : 1.0 .2
2025-04-17 20:36:11 +08:00
set-function-name@2.0.2 :
2025-04-17 12:02:23 +08:00
dependencies :
define-data-property : 1.1 .4
es-errors : 1.3 .0
functions-have-names : 1.2 .3
has-property-descriptors : 1.0 .2
2025-04-17 20:36:11 +08:00
set-proto@1.0.0 :
2025-04-17 12:02:23 +08:00
dependencies :
dunder-proto : 1.0 .1
es-errors : 1.3 .0
es-object-atoms : 1.1 .1
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
setimmediate@1.0.5 : {}
2025-12-05 14:30:00 +08:00
sharp@0.34.5 :
2025-04-17 12:02:23 +08:00
dependencies :
2025-12-05 14:30:00 +08:00
'@img/colour' : 1.0 .0
detect-libc : 2.1 .2
2026-02-09 15:43:04 +08:00
semver : 7.7 .4
2025-04-17 12:02:23 +08:00
optionalDependencies :
2025-12-05 14:30:00 +08:00
'@img/sharp-darwin-arm64' : 0.34 .5
'@img/sharp-darwin-x64' : 0.34 .5
'@img/sharp-libvips-darwin-arm64' : 1.2 .4
'@img/sharp-libvips-darwin-x64' : 1.2 .4
'@img/sharp-libvips-linux-arm' : 1.2 .4
'@img/sharp-libvips-linux-arm64' : 1.2 .4
'@img/sharp-libvips-linux-ppc64' : 1.2 .4
'@img/sharp-libvips-linux-riscv64' : 1.2 .4
'@img/sharp-libvips-linux-s390x' : 1.2 .4
'@img/sharp-libvips-linux-x64' : 1.2 .4
'@img/sharp-libvips-linuxmusl-arm64' : 1.2 .4
'@img/sharp-libvips-linuxmusl-x64' : 1.2 .4
'@img/sharp-linux-arm' : 0.34 .5
'@img/sharp-linux-arm64' : 0.34 .5
'@img/sharp-linux-ppc64' : 0.34 .5
'@img/sharp-linux-riscv64' : 0.34 .5
'@img/sharp-linux-s390x' : 0.34 .5
'@img/sharp-linux-x64' : 0.34 .5
'@img/sharp-linuxmusl-arm64' : 0.34 .5
'@img/sharp-linuxmusl-x64' : 0.34 .5
'@img/sharp-wasm32' : 0.34 .5
'@img/sharp-win32-arm64' : 0.34 .5
'@img/sharp-win32-ia32' : 0.34 .5
'@img/sharp-win32-x64' : 0.34 .5
2025-04-17 12:02:23 +08:00
optional : true
2025-04-17 20:36:11 +08:00
shebang-command@2.0.0 :
2025-04-17 12:02:23 +08:00
dependencies :
shebang-regex : 3.0 .0
2025-04-17 20:36:11 +08:00
shebang-regex@3.0.0 : {}
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
side-channel-list@1.0.0 :
2025-04-17 12:02:23 +08:00
dependencies :
es-errors : 1.3 .0
object-inspect : 1.13 .4
2025-04-17 20:36:11 +08:00
side-channel-map@1.0.1 :
2025-04-17 12:02:23 +08:00
dependencies :
call-bound : 1.0 .4
es-errors : 1.3 .0
get-intrinsic : 1.3 .0
object-inspect : 1.13 .4
2025-04-17 20:36:11 +08:00
side-channel-weakmap@1.0.2 :
2025-04-17 12:02:23 +08:00
dependencies :
call-bound : 1.0 .4
es-errors : 1.3 .0
get-intrinsic : 1.3 .0
object-inspect : 1.13 .4
side-channel-map : 1.0 .1
2025-04-17 20:36:11 +08:00
side-channel@1.1.0 :
2025-04-17 12:02:23 +08:00
dependencies :
es-errors : 1.3 .0
object-inspect : 1.13 .4
side-channel-list : 1.0 .0
side-channel-map : 1.0 .1
side-channel-weakmap : 1.0 .2
2025-10-25 20:46:43 +08:00
signal-exit@3.0.7 : {}
signal-exit@4.1.0 : {}
slash@3.0.0 : {}
2025-04-26 00:20:49 +08:00
sonner@2.0.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) :
dependencies :
react : 19.1 .0
react-dom : 19.1 .0 (react@19.1.0)
2025-04-17 20:36:11 +08:00
source-map-js@1.2.1 : {}
2025-04-17 12:02:23 +08:00
2025-10-25 20:46:43 +08:00
source-map-support@0.5.13 :
dependencies :
buffer-from : 1.1 .2
source-map : 0.6 .1
2025-04-22 13:52:56 +08:00
source-map-support@0.5.21 :
dependencies :
buffer-from : 1.1 .2
source-map : 0.6 .1
source-map@0.6.1 : {}
2025-04-17 20:36:11 +08:00
space-separated-tokens@1.1.5 : {}
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
space-separated-tokens@2.0.2 : {}
2025-04-17 12:02:23 +08:00
2025-10-25 20:46:43 +08:00
sprintf-js@1.0.3 : {}
2025-04-17 20:36:11 +08:00
stable-hash@0.0.5 : {}
2025-04-17 12:02:23 +08:00
2025-10-25 20:46:43 +08:00
stack-utils@2.0.6 :
dependencies :
escape-string-regexp : 2.0 .0
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
stackblur-canvas@2.7.0 :
optional : true
2025-10-25 20:46:43 +08:00
string-length@4.0.2 :
dependencies :
char-regex : 1.0 .2
strip-ansi : 6.0 .1
string-width@4.2.3 :
dependencies :
emoji-regex : 8.0 .0
is-fullwidth-code-point : 3.0 .0
strip-ansi : 6.0 .1
string-width@5.1.2 :
dependencies :
eastasianwidth : 0.2 .0
emoji-regex : 9.2 .2
strip-ansi : 7.1 .2
2025-04-17 20:36:11 +08:00
string.prototype.includes@2.0.1 :
2025-04-17 12:02:23 +08:00
dependencies :
call-bind : 1.0 .8
define-properties : 1.2 .1
es-abstract : 1.23 .9
2025-04-17 20:36:11 +08:00
string.prototype.matchall@4.0.12 :
2025-04-17 12:02:23 +08:00
dependencies :
call-bind : 1.0 .8
call-bound : 1.0 .4
define-properties : 1.2 .1
es-abstract : 1.23 .9
es-errors : 1.3 .0
es-object-atoms : 1.1 .1
get-intrinsic : 1.3 .0
gopd : 1.2 .0
has-symbols : 1.1 .0
internal-slot : 1.1 .0
regexp.prototype.flags : 1.5 .4
set-function-name : 2.0 .2
side-channel : 1.1 .0
2025-04-17 20:36:11 +08:00
string.prototype.repeat@1.0.0 :
2025-04-17 12:02:23 +08:00
dependencies :
define-properties : 1.2 .1
es-abstract : 1.23 .9
2025-04-17 20:36:11 +08:00
string.prototype.trim@1.2.10 :
2025-04-17 12:02:23 +08:00
dependencies :
call-bind : 1.0 .8
call-bound : 1.0 .4
define-data-property : 1.1 .4
define-properties : 1.2 .1
es-abstract : 1.23 .9
es-object-atoms : 1.1 .1
has-property-descriptors : 1.0 .2
2025-04-17 20:36:11 +08:00
string.prototype.trimend@1.0.9 :
2025-04-17 12:02:23 +08:00
dependencies :
call-bind : 1.0 .8
call-bound : 1.0 .4
define-properties : 1.2 .1
es-object-atoms : 1.1 .1
2025-04-17 20:36:11 +08:00
string.prototype.trimstart@1.0.8 :
2025-04-17 12:02:23 +08:00
dependencies :
call-bind : 1.0 .8
define-properties : 1.2 .1
es-object-atoms : 1.1 .1
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
string_decoder@1.1.1 :
dependencies :
safe-buffer : 5.1 .2
2025-04-17 20:36:11 +08:00
stringify-entities@4.0.4 :
2025-04-17 12:02:23 +08:00
dependencies :
character-entities-html4 : 2.1 .0
character-entities-legacy : 3.0 .0
2025-10-25 20:46:43 +08:00
strip-ansi@6.0.1 :
dependencies :
ansi-regex : 5.0 .1
strip-ansi@7.1.2 :
dependencies :
ansi-regex : 6.2 .2
2025-04-17 20:36:11 +08:00
strip-bom@3.0.0 : {}
2025-04-17 12:02:23 +08:00
2025-10-25 20:46:43 +08:00
strip-bom@4.0.0 : {}
strip-final-newline@2.0.0 : {}
2025-04-17 20:36:11 +08:00
strip-json-comments@3.1.1 : {}
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
style-to-js@1.1.16 :
2025-04-17 12:02:23 +08:00
dependencies :
style-to-object : 1.0 .8
2025-04-17 20:36:11 +08:00
style-to-object@1.0.8 :
2025-04-17 12:02:23 +08:00
dependencies :
inline-style-parser : 0.2 .4
2025-10-25 20:46:43 +08:00
styled-jsx@5.1.6(@babel/core@7.28.5)(react@19.1.0) :
2025-04-17 12:02:23 +08:00
dependencies :
client-only : 0.0 .1
react : 19.1 .0
2025-10-25 20:46:43 +08:00
optionalDependencies :
'@babel/core' : 7.28 .5
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
supports-color@7.2.0 :
2025-04-17 12:02:23 +08:00
dependencies :
has-flag : 4.0 .0
2025-04-22 13:52:56 +08:00
supports-color@8.1.1 :
dependencies :
has-flag : 4.0 .0
2025-04-17 20:36:11 +08:00
supports-preserve-symlinks-flag@1.0.0 : {}
2025-04-17 12:02:23 +08:00
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
svg-pathdata@6.0.3 :
optional : true
2025-04-26 00:20:49 +08:00
swr@2.3.3(react@19.1.0) :
dependencies :
dequal : 2.0 .3
react : 19.1 .0
use-sync-external-store : 1.5 .0 (react@19.1.0)
2025-10-25 20:46:43 +08:00
symbol-tree@3.2.4 : {}
synckit@0.11.11 :
dependencies :
'@pkgr/core' : 0.2 .9
2025-04-17 20:36:11 +08:00
tailwind-merge@3.2.0 : {}
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
tailwindcss@4.1.4 : {}
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
tapable@2.2.1 : {}
2025-04-17 12:02:23 +08:00
2025-12-05 14:30:00 +08:00
tapable@2.3.0 : {}
2025-09-04 22:26:33 +08:00
2026-01-06 09:07:18 +08:00
terser-webpack-plugin@5.3.16(webpack@5.99.6) :
2025-04-22 13:52:56 +08:00
dependencies :
2025-12-05 14:30:00 +08:00
'@jridgewell/trace-mapping' : 0.3 .31
2025-04-22 13:52:56 +08:00
jest-worker : 27.5 .1
2025-12-05 14:30:00 +08:00
schema-utils : 4.3 .3
2025-04-22 13:52:56 +08:00
serialize-javascript : 6.0 .2
2026-02-06 10:29:43 +08:00
terser : 5.46 .0
2025-04-22 13:52:56 +08:00
webpack : 5.99 .6
2026-02-06 10:29:43 +08:00
terser@5.46.0 :
2025-04-22 13:52:56 +08:00
dependencies :
2025-09-04 22:26:33 +08:00
'@jridgewell/source-map' : 0.3 .11
acorn : 8.15 .0
2025-04-22 13:52:56 +08:00
commander : 2.20 .3
source-map-support : 0.5 .21
2025-10-25 20:46:43 +08:00
test-exclude@6.0.0 :
dependencies :
'@istanbuljs/schema' : 0.1 .3
glob : 7.2 .3
minimatch : 3.1 .2
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
text-segmentation@1.0.3 :
dependencies :
utrie : 1.0 .2
2025-04-17 20:36:11 +08:00
tinyglobby@0.2.12 :
2025-04-17 12:02:23 +08:00
dependencies :
fdir : 6.4 .3 (picomatch@4.0.2)
picomatch : 4.0 .2
2025-04-26 00:20:49 +08:00
tippy.js@6.3.7 :
dependencies :
'@popperjs/core' : 2.11 .8
tiptap-extension-global-drag-handle@0.1.18 : {}
tiptap-markdown@0.8.10(@tiptap/core@2.11.7(@tiptap/pm@2.11.7)) :
dependencies :
'@tiptap/core' : 2.11 .7 (@tiptap/pm@2.11.7)
'@types/markdown-it' : 13.0 .9
markdown-it : 14.1 .0
markdown-it-task-lists : 2.1 .1
prosemirror-markdown : 1.13 .2
2025-10-25 20:46:43 +08:00
tldts-core@6.1.86 : {}
tldts@6.1.86 :
dependencies :
tldts-core : 6.1 .86
tmpl@1.0.5 : {}
2025-04-17 20:36:11 +08:00
to-regex-range@5.0.1 :
2025-04-17 12:02:23 +08:00
dependencies :
is-number : 7.0 .0
2025-10-25 20:46:43 +08:00
tough-cookie@5.1.2 :
dependencies :
tldts : 6.1 .86
tr46@5.1.1 :
dependencies :
punycode : 2.3 .1
2025-04-17 20:36:11 +08:00
trim-lines@3.0.1 : {}
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
trough@2.2.0 : {}
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
ts-api-utils@2.1.0(typescript@5.8.3) :
2025-04-17 12:02:23 +08:00
dependencies :
typescript : 5.8 .3
2025-10-25 20:46:43 +08:00
ts-jest@29.4.5(@babel/core@7.28.5)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.28.5))(jest-util@30.2.0)(jest@30.2.0(@types/node@20.17.30))(typescript@5.8.3) :
dependencies :
bs-logger : 0.2 .6
fast-json-stable-stringify : 2.1 .0
handlebars : 4.7 .8
jest : 30.2 .0 (@types/node@20.17.30)
json5 : 2.2 .3
lodash.memoize : 4.1 .2
make-error : 1.3 .6
semver : 7.7 .3
type-fest : 4.41 .0
typescript : 5.8 .3
yargs-parser : 21.1 .1
optionalDependencies :
'@babel/core' : 7.28 .5
'@jest/transform' : 30.2 .0
'@jest/types' : 30.2 .0
babel-jest : 30.2 .0 (@babel/core@7.28.5)
jest-util : 30.2 .0
2025-04-17 20:36:11 +08:00
tsconfig-paths@3.15.0 :
2025-04-17 12:02:23 +08:00
dependencies :
'@types/json5' : 0.0 .29
json5 : 1.0 .2
minimist : 1.2 .8
strip-bom : 3.0 .0
2025-04-17 20:36:11 +08:00
tslib@2.8.1 : {}
2025-04-17 12:02:23 +08:00
2025-04-29 15:47:01 +08:00
tunnel-rat@0.1.2(@types/react@19.1.2)(immer@10.1.1)(react@19.1.0) :
2025-04-26 00:20:49 +08:00
dependencies :
2025-04-29 15:47:01 +08:00
zustand : 4.5 .6 (@types/react@19.1.2)(immer@10.1.1)(react@19.1.0)
2025-04-26 00:20:49 +08:00
transitivePeerDependencies :
- '@types/react'
- immer
- react
2025-04-17 20:36:11 +08:00
tw-animate-css@1.2.5 : {}
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
type-check@0.4.0 :
2025-04-17 12:02:23 +08:00
dependencies :
prelude-ls : 1.2 .1
2025-10-25 20:46:43 +08:00
type-detect@4.0.8 : {}
type-fest@0.21.3 : {}
type-fest@4.41.0 : {}
2025-04-17 20:36:11 +08:00
typed-array-buffer@1.0.3 :
2025-04-17 12:02:23 +08:00
dependencies :
call-bound : 1.0 .4
es-errors : 1.3 .0
is-typed-array : 1.1 .15
2025-04-17 20:36:11 +08:00
typed-array-byte-length@1.0.3 :
2025-04-17 12:02:23 +08:00
dependencies :
call-bind : 1.0 .8
for-each : 0.3 .5
gopd : 1.2 .0
has-proto : 1.2 .0
is-typed-array : 1.1 .15
2025-04-17 20:36:11 +08:00
typed-array-byte-offset@1.0.4 :
2025-04-17 12:02:23 +08:00
dependencies :
available-typed-arrays : 1.0 .7
call-bind : 1.0 .8
for-each : 0.3 .5
gopd : 1.2 .0
has-proto : 1.2 .0
is-typed-array : 1.1 .15
reflect.getprototypeof : 1.0 .10
2025-04-17 20:36:11 +08:00
typed-array-length@1.0.7 :
2025-04-17 12:02:23 +08:00
dependencies :
call-bind : 1.0 .8
for-each : 0.3 .5
gopd : 1.2 .0
is-typed-array : 1.1 .15
possible-typed-array-names : 1.1 .0
reflect.getprototypeof : 1.0 .10
2025-04-17 20:36:11 +08:00
typescript-eslint@8.30.1(eslint@9.24.0(jiti@2.4.2))(typescript@5.8.3) :
2025-04-17 12:02:23 +08:00
dependencies :
2025-04-17 20:36:11 +08:00
'@typescript-eslint/eslint-plugin' : 8.30 .1 (@typescript-eslint/parser@8.30.1(eslint@9.24.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.24.0(jiti@2.4.2))(typescript@5.8.3)
'@typescript-eslint/parser' : 8.30 .1 (eslint@9.24.0(jiti@2.4.2))(typescript@5.8.3)
'@typescript-eslint/utils' : 8.30 .1 (eslint@9.24.0(jiti@2.4.2))(typescript@5.8.3)
eslint : 9.24 .0 (jiti@2.4.2)
2025-04-17 12:02:23 +08:00
typescript : 5.8 .3
transitivePeerDependencies :
- supports-color
2025-04-17 20:36:11 +08:00
typescript@5.8.3 : {}
2025-04-17 12:02:23 +08:00
2025-04-26 00:20:49 +08:00
uc.micro@2.1.0 : {}
2025-10-25 20:46:43 +08:00
uglify-js@3.19.3 :
optional : true
2025-04-17 20:36:11 +08:00
unbox-primitive@1.1.0 :
2025-04-17 12:02:23 +08:00
dependencies :
call-bound : 1.0 .4
has-bigints : 1.1 .0
has-symbols : 1.1 .0
which-boxed-primitive : 1.1 .1
2025-04-17 20:36:11 +08:00
undici-types@6.19.8 : {}
2025-04-17 12:02:23 +08:00
2025-04-26 00:20:49 +08:00
undici-types@6.21.0 : {}
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
undici-types@7.16.0 : {}
2025-04-17 20:36:11 +08:00
unified@11.0.5 :
2025-04-17 12:02:23 +08:00
dependencies :
'@types/unist' : 3.0 .3
bail : 2.0 .2
devlop : 1.1 .0
extend : 3.0 .2
is-plain-obj : 4.1 .0
trough : 2.2 .0
vfile : 6.0 .3
2025-04-17 20:36:11 +08:00
unist-util-find-after@5.0.0 :
2025-04-17 12:02:23 +08:00
dependencies :
'@types/unist' : 3.0 .3
unist-util-is : 6.0 .0
2025-04-17 20:36:11 +08:00
unist-util-is@6.0.0 :
2025-04-17 12:02:23 +08:00
dependencies :
'@types/unist' : 3.0 .3
2025-04-17 20:36:11 +08:00
unist-util-position@5.0.0 :
2025-04-17 12:02:23 +08:00
dependencies :
'@types/unist' : 3.0 .3
2025-04-17 20:36:11 +08:00
unist-util-remove-position@5.0.0 :
2025-04-17 12:02:23 +08:00
dependencies :
'@types/unist' : 3.0 .3
unist-util-visit : 5.0 .0
2025-04-17 20:36:11 +08:00
unist-util-stringify-position@4.0.0 :
2025-04-17 12:02:23 +08:00
dependencies :
'@types/unist' : 3.0 .3
2025-04-17 20:36:11 +08:00
unist-util-visit-parents@6.0.1 :
2025-04-17 12:02:23 +08:00
dependencies :
'@types/unist' : 3.0 .3
unist-util-is : 6.0 .0
2025-04-17 20:36:11 +08:00
unist-util-visit@5.0.0 :
2025-04-17 12:02:23 +08:00
dependencies :
'@types/unist' : 3.0 .3
unist-util-is : 6.0 .0
unist-util-visit-parents : 6.0 .1
2025-10-25 20:46:43 +08:00
unrs-resolver@1.11.1 :
dependencies :
napi-postinstall : 0.3 .4
optionalDependencies :
'@unrs/resolver-binding-android-arm-eabi' : 1.11 .1
'@unrs/resolver-binding-android-arm64' : 1.11 .1
'@unrs/resolver-binding-darwin-arm64' : 1.11 .1
'@unrs/resolver-binding-darwin-x64' : 1.11 .1
'@unrs/resolver-binding-freebsd-x64' : 1.11 .1
'@unrs/resolver-binding-linux-arm-gnueabihf' : 1.11 .1
'@unrs/resolver-binding-linux-arm-musleabihf' : 1.11 .1
'@unrs/resolver-binding-linux-arm64-gnu' : 1.11 .1
'@unrs/resolver-binding-linux-arm64-musl' : 1.11 .1
'@unrs/resolver-binding-linux-ppc64-gnu' : 1.11 .1
'@unrs/resolver-binding-linux-riscv64-gnu' : 1.11 .1
'@unrs/resolver-binding-linux-riscv64-musl' : 1.11 .1
'@unrs/resolver-binding-linux-s390x-gnu' : 1.11 .1
'@unrs/resolver-binding-linux-x64-gnu' : 1.11 .1
'@unrs/resolver-binding-linux-x64-musl' : 1.11 .1
'@unrs/resolver-binding-wasm32-wasi' : 1.11 .1
'@unrs/resolver-binding-win32-arm64-msvc' : 1.11 .1
'@unrs/resolver-binding-win32-ia32-msvc' : 1.11 .1
'@unrs/resolver-binding-win32-x64-msvc' : 1.11 .1
2025-04-17 20:36:11 +08:00
unrs-resolver@1.5.0 :
2025-04-17 12:02:23 +08:00
optionalDependencies :
2025-04-17 14:26:41 +08:00
'@unrs/resolver-binding-darwin-arm64' : 1.5 .0
'@unrs/resolver-binding-darwin-x64' : 1.5 .0
'@unrs/resolver-binding-freebsd-x64' : 1.5 .0
'@unrs/resolver-binding-linux-arm-gnueabihf' : 1.5 .0
'@unrs/resolver-binding-linux-arm-musleabihf' : 1.5 .0
'@unrs/resolver-binding-linux-arm64-gnu' : 1.5 .0
'@unrs/resolver-binding-linux-arm64-musl' : 1.5 .0
'@unrs/resolver-binding-linux-ppc64-gnu' : 1.5 .0
'@unrs/resolver-binding-linux-riscv64-gnu' : 1.5 .0
'@unrs/resolver-binding-linux-s390x-gnu' : 1.5 .0
'@unrs/resolver-binding-linux-x64-gnu' : 1.5 .0
'@unrs/resolver-binding-linux-x64-musl' : 1.5 .0
'@unrs/resolver-binding-wasm32-wasi' : 1.5 .0
'@unrs/resolver-binding-win32-arm64-msvc' : 1.5 .0
'@unrs/resolver-binding-win32-ia32-msvc' : 1.5 .0
'@unrs/resolver-binding-win32-x64-msvc' : 1.5 .0
2025-09-04 22:26:33 +08:00
update-browserslist-db@1.1.3(browserslist@4.25.4) :
2025-04-22 13:52:56 +08:00
dependencies :
2025-09-04 22:26:33 +08:00
browserslist : 4.25 .4
2025-04-22 13:52:56 +08:00
escalade : 3.2 .0
picocolors : 1.1 .1
2026-01-06 09:07:18 +08:00
update-browserslist-db@1.2.3(browserslist@4.28.1) :
2025-12-05 14:30:00 +08:00
dependencies :
browserslist : 4.28 .1
escalade : 3.2 .0
picocolors : 1.1 .1
2025-04-17 20:36:11 +08:00
uri-js@4.4.1 :
2025-04-17 12:02:23 +08:00
dependencies :
punycode : 2.3 .1
2025-04-20 11:18:05 +08:00
use-callback-ref@1.3.3(@types/react@19.1.2)(react@19.1.0) :
dependencies :
react : 19.1 .0
tslib : 2.8 .1
optionalDependencies :
'@types/react' : 19.1 .2
2025-04-26 00:20:49 +08:00
use-debounce@10.0.4(react@19.1.0) :
dependencies :
react : 19.1 .0
2025-07-12 15:18:28 +08:00
use-intl@4.3.1(react@19.1.0) :
dependencies :
'@formatjs/fast-memoize' : 2.2 .7
'@schummar/icu-type-parser' : 1.21 .5
intl-messageformat : 10.7 .16
react : 19.1 .0
2025-04-20 11:18:05 +08:00
use-sidecar@1.1.3(@types/react@19.1.2)(react@19.1.0) :
dependencies :
detect-node-es : 1.1 .0
react : 19.1 .0
tslib : 2.8 .1
optionalDependencies :
'@types/react' : 19.1 .2
2025-04-17 20:36:11 +08:00
use-stick-to-bottom@1.1.0(react@19.1.0) :
2025-04-17 12:02:23 +08:00
dependencies :
react : 19.1 .0
2025-04-26 00:20:49 +08:00
use-sync-external-store@1.5.0(react@19.1.0) :
dependencies :
react : 19.1 .0
util-deprecate@1.0.2 : {}
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
utrie@1.0.2 :
dependencies :
base64-arraybuffer : 1.0 .2
2025-10-25 20:46:43 +08:00
v8-to-istanbul@9.3.0 :
dependencies :
'@jridgewell/trace-mapping' : 0.3 .30
'@types/istanbul-lib-coverage' : 2.0 .6
convert-source-map : 2.0 .0
2025-04-17 20:36:11 +08:00
vfile-location@5.0.3 :
2025-04-17 12:02:23 +08:00
dependencies :
'@types/unist' : 3.0 .3
vfile : 6.0 .3
2025-04-17 20:36:11 +08:00
vfile-message@4.0.2 :
2025-04-17 12:02:23 +08:00
dependencies :
'@types/unist' : 3.0 .3
unist-util-stringify-position : 4.0 .0
2025-04-17 20:36:11 +08:00
vfile@6.0.3 :
2025-04-17 12:02:23 +08:00
dependencies :
'@types/unist' : 3.0 .3
vfile-message : 4.0 .2
2025-04-26 00:20:49 +08:00
w3c-keyname@2.2.8 : {}
2025-10-25 20:46:43 +08:00
w3c-xmlserializer@5.0.0 :
dependencies :
xml-name-validator : 5.0 .0
walker@1.0.8 :
dependencies :
makeerror : 1.0 .12
2026-02-06 10:29:43 +08:00
watchpack@2.5.1 :
2025-04-22 13:52:56 +08:00
dependencies :
glob-to-regexp : 0.4 .1
graceful-fs : 4.2 .11
2025-04-17 20:36:11 +08:00
web-namespaces@2.0.1 : {}
2025-04-17 12:02:23 +08:00
2025-10-25 20:46:43 +08:00
webidl-conversions@7.0.0 : {}
2025-09-04 22:26:33 +08:00
webpack-sources@3.3.3 : {}
2025-04-22 13:52:56 +08:00
webpack@5.99.6 :
dependencies :
'@types/eslint-scope' : 3.7 .7
2025-09-04 22:26:33 +08:00
'@types/estree' : 1.0 .8
2025-04-22 13:52:56 +08:00
'@webassemblyjs/ast' : 1.14 .1
'@webassemblyjs/wasm-edit' : 1.14 .1
'@webassemblyjs/wasm-parser' : 1.14 .1
2025-09-04 22:26:33 +08:00
acorn : 8.15 .0
2025-12-05 14:30:00 +08:00
browserslist : 4.28 .1
2025-04-22 13:52:56 +08:00
chrome-trace-event : 1.0 .4
2026-02-06 10:29:43 +08:00
enhanced-resolve : 5.19 .0
2025-09-04 22:26:33 +08:00
es-module-lexer : 1.7 .0
2025-04-22 13:52:56 +08:00
eslint-scope : 5.1 .1
events : 3.3 .0
glob-to-regexp : 0.4 .1
graceful-fs : 4.2 .11
json-parse-even-better-errors : 2.3 .1
2025-12-05 14:30:00 +08:00
loader-runner : 4.3 .1
2025-04-22 13:52:56 +08:00
mime-types : 2.1 .35
neo-async : 2.6 .2
2025-12-05 14:30:00 +08:00
schema-utils : 4.3 .3
tapable : 2.3 .0
2026-01-06 09:07:18 +08:00
terser-webpack-plugin : 5.3 .16 (webpack@5.99.6)
2026-02-06 10:29:43 +08:00
watchpack : 2.5 .1
2025-09-04 22:26:33 +08:00
webpack-sources : 3.3 .3
2025-04-22 13:52:56 +08:00
transitivePeerDependencies :
- '@swc/core'
- esbuild
- uglify-js
2025-10-25 20:46:43 +08:00
whatwg-encoding@3.1.1 :
dependencies :
iconv-lite : 0.6 .3
whatwg-mimetype@4.0.0 : {}
whatwg-url@14.2.0 :
dependencies :
tr46 : 5.1 .1
webidl-conversions : 7.0 .0
2025-04-17 20:36:11 +08:00
which-boxed-primitive@1.1.1 :
2025-04-17 12:02:23 +08:00
dependencies :
is-bigint : 1.1 .0
is-boolean-object : 1.2 .2
is-number-object : 1.1 .1
is-string : 1.1 .1
is-symbol : 1.1 .1
2025-04-17 20:36:11 +08:00
which-builtin-type@1.2.1 :
2025-04-17 12:02:23 +08:00
dependencies :
call-bound : 1.0 .4
function.prototype.name : 1.1 .8
has-tostringtag : 1.0 .2
is-async-function : 2.1 .1
is-date-object : 1.1 .0
is-finalizationregistry : 1.1 .1
is-generator-function : 1.1 .0
is-regex : 1.2 .1
is-weakref : 1.1 .1
isarray : 2.0 .5
which-boxed-primitive : 1.1 .1
which-collection : 1.0 .2
which-typed-array : 1.1 .19
2025-04-17 20:36:11 +08:00
which-collection@1.0.2 :
2025-04-17 12:02:23 +08:00
dependencies :
is-map : 2.0 .3
is-set : 2.0 .3
is-weakmap : 2.0 .2
is-weakset : 2.0 .4
2025-04-17 20:36:11 +08:00
which-typed-array@1.1.19 :
2025-04-17 12:02:23 +08:00
dependencies :
available-typed-arrays : 1.0 .7
call-bind : 1.0 .8
call-bound : 1.0 .4
for-each : 0.3 .5
get-proto : 1.0 .1
gopd : 1.2 .0
has-tostringtag : 1.0 .2
2025-04-17 20:36:11 +08:00
which@2.0.2 :
2025-04-17 12:02:23 +08:00
dependencies :
isexe : 2.0 .0
2025-04-17 20:36:11 +08:00
word-wrap@1.2.5 : {}
2025-04-17 12:02:23 +08:00
2025-10-25 20:46:43 +08:00
wordwrap@1.0.0 : {}
wrap-ansi@7.0.0 :
dependencies :
ansi-styles : 4.3 .0
string-width : 4.2 .3
strip-ansi : 6.0 .1
wrap-ansi@8.1.0 :
dependencies :
ansi-styles : 6.2 .3
string-width : 5.1 .2
strip-ansi : 7.1 .2
wrappy@1.0.2 : {}
write-file-atomic@5.0.1 :
dependencies :
imurmurhash : 0.1 .4
signal-exit : 4.1 .0
ws@8.18.3 : {}
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
xml-js@1.6.11 :
dependencies :
sax : 1.4 .3
2025-10-25 20:46:43 +08:00
xml-name-validator@5.0.0 : {}
feat(web): add multi-format report export (Markdown, HTML, PDF, Word,… (#756)
* feat(web): add multi-format report export (Markdown, HTML, PDF, Word, Image)
* fix: correct import order for docx (lint error)
* fix(web): address Copilot review comments for multi-format export
- Add i18n support for dropdown menu items (en/zh)
- Add DOMPurify for HTML sanitization (XSS protection)
- Fix async handling for canvas.toBlob with Promise wrapper
- Add toast notifications for export errors
- Fix Tooltip + DropdownMenuTrigger nesting (accessibility)
- Ensure container cleanup in finally block
* fix(web): enhance markdown parsing for PDF and Word export
- Add list support (bullet and numbered) for PDF export
- Add parseInlineMarkdown helper for Word export to handle bold, italic, code, links
- Add list support for Word export (bullet and numbered)
- Address Copilot review comments from PR #756
* fix(web): address PR review feedback for multi-format export
- Extract PDF formatting magic numbers into PDF_CONSTANTS
- Add Tooltip wrapper for download dropdown button
- Reduce triggerDownload cleanup timeout from 1000ms to 100ms
- Use marked.Lexer.lexInline for robust markdown parsing
- Add console.warn for image export cleanup errors
- Add numbering config for Word document ordered lists
- Fix CSS class typo: px-5pb-20 -> px-5 pb-20
- Remove unreachable dead code in parseInlineMarkdown
---------
Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
2025-12-16 09:06:24 +08:00
xml@1.0.1 : {}
2025-10-25 20:46:43 +08:00
xmlchars@2.2.0 : {}
2025-04-17 20:36:11 +08:00
xtend@4.0.2 : {}
2025-04-17 12:02:23 +08:00
2025-10-25 20:46:43 +08:00
y18n@5.0.8 : {}
yallist@3.1.1 : {}
yargs-parser@21.1.1 : {}
yargs@17.7.2 :
dependencies :
cliui : 8.0 .1
escalade : 3.2 .0
get-caller-file : 2.0 .5
require-directory : 2.1 .1
string-width : 4.2 .3
y18n : 5.0 .8
yargs-parser : 21.1 .1
2025-04-17 20:36:11 +08:00
yocto-queue@0.1.0 : {}
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
zod@3.24.3 : {}
2025-04-17 12:02:23 +08:00
2025-04-29 15:47:01 +08:00
zustand@4.5.6(@types/react@19.1.2)(immer@10.1.1)(react@19.1.0) :
2025-04-26 00:20:49 +08:00
dependencies :
use-sync-external-store : 1.5 .0 (react@19.1.0)
optionalDependencies :
'@types/react' : 19.1 .2
2025-04-29 15:47:01 +08:00
immer : 10.1 .1
2025-04-26 00:20:49 +08:00
react : 19.1 .0
2025-04-29 15:47:01 +08:00
zustand@5.0.3(@types/react@19.1.2)(immer@10.1.1)(react@19.1.0)(use-sync-external-store@1.5.0(react@19.1.0)) :
2025-04-17 20:36:11 +08:00
optionalDependencies :
2025-04-17 14:26:41 +08:00
'@types/react' : 19.1 .2
2025-04-29 15:47:01 +08:00
immer : 10.1 .1
2025-04-17 12:02:23 +08:00
react : 19.1 .0
2025-04-26 00:20:49 +08:00
use-sync-external-store : 1.5 .0 (react@19.1.0)
2025-04-17 12:02:23 +08:00
2025-04-17 20:36:11 +08:00
zwitch@2.0.4 : {}