mirror of
https://github.com/THU-MAIC/OpenMAIC.git
synced 2026-11-09 09:14:36 +08:00
* feat(export): add external-asset reference scanner for HTML inlining * feat(export): add cached asset fetcher and data-uri encoder Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(export): recursively inline url() refs inside stylesheets Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(export): orchestrate inlining of links, scripts, images, and inline css Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * refactor(export): drop dead escapeAttr, harden importmap skip in scanner * feat(export): inline importmap modules incl three/addons graph closure Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * refactor(export): extract shared module to break inline-assets import cycle Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(export): inline interactive-scene assets into .maic.zip at export Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(export): inline interactive assets in Resource Pack export too * docs: document offline export asset inlining * style: prettier formatting * fix(test): resolve tsc type errors in export-classroom-inline test * fix(export): keep importmap prefix fallback on partial failure, chunk base64, preserve media attr, log pptx inline failures Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * perf(export): parallelize asset fetching, share fetcher across scenes, promise-cache Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix(export): retry transient asset fetches, bound concurrency, warn user on partial inline Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * perf(export): inline only woff2 fonts, drop woff/ttf siblings to halve size Within @font-face blocks that have a woff2 url(), rewrite sibling woff/ttf/otf/eot refs to url(about:invalid) instead of inlining them. Falls back to full inline for ttf-only blocks. Drops katex output from ~1.79MB to ~0.71MB (~3x fewer font fetches). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * i18n(export): translate partial-inline warning and surface failed asset hosts Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(proxy-media): follow redirects with per-hop SSRF revalidation (#398) Replace blanket redirect rejection with a bounded 5-hop follow loop that re-validates every Location target through validateUrlForSSRF before fetching, preventing redirect-to-internal SSRF while allowing CDN redirects (e.g. cdn.tailwindcss.com 302→/3.4.17). * feat(export): route asset inlining through proxy-media to bypass CORS Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix(export): keep importmap prefix fallback, forward proxy 4xx, cap proxy size, re-export FetchAsset * style: prettier formatting for proxy-media + proxied-fetch * fix(export): report CSS-nested asset failures in inline report Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> Co-authored-by: 杨慎 <117187635+cosarah@users.noreply.github.com>