{"_id":"streamdown-vue","_rev":"34-df210796b9801c46371c4ae2b911517a","name":"streamdown-vue","dist-tags":{"latest":"1.0.34"},"versions":{"0.1.0":{"name":"streamdown-vue","version":"0.1.0","keywords":["vue","markdown","streaming","streamdown","katex","mermaid","syntax-highlighting"],"author":{"url":"<YOUR URL>","email":"YOUR NAME"},"license":"MIT","_id":"streamdown-vue@0.1.0","maintainers":[{"name":"saluana","email":"bgb277@gmail.com"}],"homepage":"https://github.com/Saluana/streamdown-vue#readme","bugs":{"url":"https://github.com/Saluana/streamdown-vue/issues"},"dist":{"shasum":"e4e03771a85f31a2d0adcecb77396994e711b01d","tarball":"https://registry.npmjs.org/streamdown-vue/-/streamdown-vue-0.1.0.tgz","fileCount":19,"integrity":"sha512-OUeQCIFqIgoCNoe9DS9iJoN8aaFwgC2HxVH2Ox2dNwBhhH92eefNmX5KpVJmR1WEysJmpzU9+EEK8491d+vP0g==","signatures":[{"sig":"MEUCIQC0W5anO3k5qIbs29pM5IiHOqDFVdfE0+Lm9ba5udhWeQIgOdFSOHelChIfgSSoyOhxTPoPVTzMWcmfHqu/xoNqDl4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1624979},"main":"dist/index.cjs.js","type":"module","types":"dist/index.d.ts","module":"dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"}},"gitHead":"45abad7435d1dc187b2475935f54a86be7c14f85","scripts":{"test":"bun run build && bun run test:run","build":"bun run clean && bun run build:types && bun run build:vite","clean":"rm -rf dist","test:run":"bun test","build:vite":"vite build","build:types":"tsc -p tsconfig.build.json","prepublishOnly":"bun run build && bun run test"},"_npmUser":{"name":"saluana","email":"bgb277@gmail.com"},"repository":{"url":"git+https://github.com/Saluana/streamdown-vue.git","type":"git"},"_npmVersion":"10.2.4","description":"Streamdown-style streaming Markdown renderer for Vue 3/Nuxt 3 with Shiki, KaTeX, Mermaid, and secure streaming helpers.","directories":{},"sideEffects":false,"_nodeVersion":"20.11.1","dependencies":{"katex":"^0.16.22","shiki":"^3.12.1","marked":"^16.2.1","mermaid":"^11.10.1","unified":"^11.0.5","remark-gfm":"^4.0.1","remark-math":"^6.0.0","rehype-katex":"^7.0.1","remark-parse":"^11.0.0","remark-rehype":"^11.1.2","lucide-vue-next":"^0.542.0","hast-util-to-text":"^4.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.21","vite":"^7.1.4","vite-plugin-dts":"^4.5.4","@vitejs/plugin-vue":"^6.0.1","@vue/server-renderer":"^3.5.21"},"peerDependencies":{"vue":"^3.0.0","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/streamdown-vue_0.1.0_1756855272431_0.11974744206482013","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"streamdown-vue","version":"1.0.0","keywords":["vue","markdown","streaming","streamdown","katex","mermaid","syntax-highlighting"],"author":{"name":"@Saluana"},"license":"MIT","_id":"streamdown-vue@1.0.0","maintainers":[{"name":"saluana","email":"bgb277@gmail.com"}],"homepage":"https://github.com/Saluana/streamdown-vue#readme","bugs":{"url":"https://github.com/Saluana/streamdown-vue/issues"},"dist":{"shasum":"f242a6ed6f595c6eb29de0ed4c27f84237bb6254","tarball":"https://registry.npmjs.org/streamdown-vue/-/streamdown-vue-1.0.0.tgz","fileCount":19,"integrity":"sha512-YIBGWR5SD/PmoGnTLBaxXF72oikMM70x8JpyP0HQsjaP9ccxPITZgERtAzrSawWb8YzcZbO2CwjTzBPIGHx97g==","signatures":[{"sig":"MEUCIQDx2l19zh1xitDVMZdulMYC7kDMbYN3ojlFj5Pp1Qj0sgIgbEGyHihzNHPT3b5pouVPc8EKG5nI0OkU+MnWBdXFiTA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1678188},"main":"dist/index.cjs.js","type":"module","types":"dist/index.d.ts","module":"dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"}},"gitHead":"8bc57a89c15e394c4dc95c1e2430451cd435b2dd","scripts":{"dev":"vite examples/basic","test":"bun run build && bun run test:run","build":"bun run clean && bun run build:types && bun run build:vite","clean":"rm -rf dist","test:run":"bun test","build:vite":"vite build","build:types":"tsc -p tsconfig.build.json","prepublishOnly":"bun run build && bun run test"},"_npmUser":{"name":"saluana","email":"bgb277@gmail.com"},"repository":{"url":"git+https://github.com/Saluana/streamdown-vue.git","type":"git"},"_npmVersion":"10.8.2","description":"Streamdown-style streaming Markdown renderer for Vue 3/Nuxt 3 with Shiki, KaTeX, Mermaid, and secure streaming helpers.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.2","dependencies":{"katex":"^0.16.22","shiki":"^3.12.1","marked":"^16.2.1","mermaid":"^11.10.1","unified":"^11.0.5","remark-gfm":"^4.0.1","remark-math":"^6.0.0","rehype-katex":"^7.0.1","remark-parse":"^11.0.0","remark-rehype":"^11.1.2","lucide-vue-next":"^0.542.0","hast-util-to-text":"^4.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.21","vite":"^7.1.4","@vue/test-utils":"2","vite-plugin-dts":"^4.5.4","@vitejs/plugin-vue":"^6.0.1","@vue/server-renderer":"^3.5.21"},"peerDependencies":{"vue":"^3.5.21","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/streamdown-vue_1.0.0_1756863059929_0.9837647461708137","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"streamdown-vue","version":"1.0.1","keywords":["vue","markdown","streaming","streamdown","katex","mermaid","syntax-highlighting"],"author":{"name":"@Saluana"},"license":"MIT","_id":"streamdown-vue@1.0.1","maintainers":[{"name":"saluana","email":"bgb277@gmail.com"}],"homepage":"https://github.com/Saluana/streamdown-vue#readme","bugs":{"url":"https://github.com/Saluana/streamdown-vue/issues"},"dist":{"shasum":"0ff9019325b5a6bd90dc3f26c01da02d90a93640","tarball":"https://registry.npmjs.org/streamdown-vue/-/streamdown-vue-1.0.1.tgz","fileCount":19,"integrity":"sha512-hqd+gIPkgCdPMl/0sUCN0+4TIUe/XsX0jdYiVut/AiPXL8CV0Ec64DC0HuX82Am/j4GGUsySAM0fVDNJd75dCQ==","signatures":[{"sig":"MEUCIDBR4Q7GqsoNjOm4IAXFmSjCDTtTQrjATaRjp/Nkzrw8AiEAk7aBVzDK7mw5ESMe+r+LwZ/0Dj8COvD3L08987FHGxQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1661436},"main":"dist/index.cjs.js","type":"module","types":"dist/index.d.ts","module":"dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"}},"gitHead":"f5aeb07041debbf41b282321765682954d639051","scripts":{"dev":"vite examples/basic","test":"bun run build && bun run test:run","build":"bun run clean && bun run build:types && bun run build:vite","clean":"rm -rf dist","test:run":"bun test","build:vite":"vite build","build:types":"tsc -p tsconfig.build.json","prepublishOnly":"bun run build && bun run test"},"_npmUser":{"name":"saluana","email":"bgb277@gmail.com"},"repository":{"url":"git+https://github.com/Saluana/streamdown-vue.git","type":"git"},"_npmVersion":"10.8.2","description":"Streamdown-style streaming Markdown renderer for Vue 3/Nuxt 3 with Shiki, KaTeX, Mermaid, and secure streaming helpers.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.2","dependencies":{"katex":"^0.16.22","shiki":"^3.12.1","marked":"^16.2.1","mermaid":"^11.10.1","unified":"^11.0.5","remark-gfm":"^4.0.1","remark-math":"^6.0.0","rehype-katex":"^7.0.1","remark-parse":"^11.0.0","remark-rehype":"^11.1.2","lucide-vue-next":"^0.542.0","hast-util-to-text":"^4.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.21","vite":"^7.1.4","@vue/test-utils":"2","vite-plugin-dts":"^4.5.4","@vitejs/plugin-vue":"^6.0.1","@vue/server-renderer":"^3.5.21"},"peerDependencies":{"vue":"^3.5.21","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/streamdown-vue_1.0.1_1756864442786_0.9512746828667293","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"streamdown-vue","version":"1.0.2","keywords":["vue","markdown","streaming","streamdown","katex","mermaid","syntax-highlighting"],"author":{"name":"@Saluana"},"license":"MIT","_id":"streamdown-vue@1.0.2","maintainers":[{"name":"saluana","email":"bgb277@gmail.com"}],"homepage":"https://github.com/Saluana/streamdown-vue#readme","bugs":{"url":"https://github.com/Saluana/streamdown-vue/issues"},"dist":{"shasum":"f14d3125ed191ceda227d28985fc1bf229f089bd","tarball":"https://registry.npmjs.org/streamdown-vue/-/streamdown-vue-1.0.2.tgz","fileCount":18,"integrity":"sha512-hTojS4DOgoW9KVES5UylhJx/ii4MxhAvC9eEtElwegiHL7PavrttYD8xHU5CmwsaZDzLUOhqKS56QFE56/BIyw==","signatures":[{"sig":"MEYCIQDhd9Y42ypEhWzl/r/VLBOSz3BMDPVjwMaSs2RomKkuQwIhAKR0xf9rq4yoJl2Gem0DspH2aEtbIZBmYNtukcNhf21q","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":203385},"main":"dist/index.cjs.js","type":"module","types":"dist/index.d.ts","module":"dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"}},"gitHead":"f7bf1b14c6076a827425ca3ab131e3b09194d426","scripts":{"dev":"vite examples/basic","test":"bun run build && bun run test:run","build":"bun run clean && bun run build:types && bun run build:vite","clean":"rm -rf dist","test:run":"bun test","build:vite":"vite build","build:types":"tsc -p tsconfig.build.json","prepublishOnly":"bun run build && bun run test"},"_npmUser":{"name":"saluana","email":"bgb277@gmail.com"},"repository":{"url":"git+https://github.com/Saluana/streamdown-vue.git","type":"git"},"_npmVersion":"10.8.2","description":"Streamdown-style streaming Markdown renderer for Vue 3/Nuxt 3 with Shiki, KaTeX, Mermaid, and secure streaming helpers.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.2","dependencies":{"katex":"^0.16.22","shiki":"^3.12.1","marked":"^16.2.1","mermaid":"^11.10.1","unified":"^11.0.5","remark-gfm":"^4.0.1","remark-math":"^6.0.0","rehype-katex":"^7.0.1","remark-parse":"^11.0.0","remark-rehype":"^11.1.2","lucide-vue-next":"^0.542.0","hast-util-to-text":"^4.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.21","vite":"^7.1.4","@vue/test-utils":"2","vite-plugin-dts":"^4.5.4","@vitejs/plugin-vue":"^6.0.1","@vue/server-renderer":"^3.5.21"},"peerDependencies":{"vue":"^3.5.21","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/streamdown-vue_1.0.2_1756871532067_0.46578762154199604","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"streamdown-vue","version":"1.0.3","keywords":["vue","markdown","streaming","streamdown","katex","mermaid","syntax-highlighting"],"author":{"name":"@Saluana"},"license":"MIT","_id":"streamdown-vue@1.0.3","maintainers":[{"name":"saluana","email":"bgb277@gmail.com"}],"homepage":"https://github.com/Saluana/streamdown-vue#readme","bugs":{"url":"https://github.com/Saluana/streamdown-vue/issues"},"dist":{"shasum":"1947691ce2f7d10590a99bf49ddf4db93cbe747c","tarball":"https://registry.npmjs.org/streamdown-vue/-/streamdown-vue-1.0.3.tgz","fileCount":6,"integrity":"sha512-tTtlwu20gP7CrWkCW23Knq33zDRo5dC5zXnUiKn1A97FeLjuUzXbMYsu7o9kkbTo5bNAoUYwPygAIbZV7YKFUA==","signatures":[{"sig":"MEQCIDh0huO8esS4UVQIdFkrkRqyIsTmyABzD05eptu9yOLuAiBQgrguNXn+aJP4EpPZPtVhorZoRFlNNRK2EcEhr1nQPQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":60237},"main":"dist/index.cjs.js","type":"module","types":"dist/index.d.ts","module":"dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"}},"gitHead":"f7bf1b14c6076a827425ca3ab131e3b09194d426","scripts":{"dev":"vite examples/basic","test":"bun run build && bun run test:run","build":"bun run clean && bun run build:types && bun run build:vite","clean":"rm -rf dist","test:run":"bun test","build:vite":"vite build","build:types":"tsc -p tsconfig.build.json","prepublishOnly":"bun run build && bun run test"},"_npmUser":{"name":"saluana","email":"bgb277@gmail.com"},"repository":{"url":"git+https://github.com/Saluana/streamdown-vue.git","type":"git"},"_npmVersion":"10.8.2","description":"Streamdown-style streaming Markdown renderer for Vue 3/Nuxt 3 with Shiki, KaTeX, Mermaid, and secure streaming helpers.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.2","dependencies":{"katex":"^0.16.22","shiki":"^3.12.1","marked":"^16.2.1","mermaid":"^11.10.1","unified":"^11.0.5","remark-gfm":"^4.0.1","remark-math":"^6.0.0","rehype-katex":"^7.0.1","remark-parse":"^11.0.0","remark-rehype":"^11.1.2","lucide-vue-next":"^0.542.0","hast-util-to-text":"^4.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.21","vite":"^7.1.4","@vue/test-utils":"2","vite-plugin-dts":"^4.5.4","@vitejs/plugin-vue":"^6.0.1","@vue/server-renderer":"^3.5.21"},"peerDependencies":{"vue":"^3.5.21","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/streamdown-vue_1.0.3_1756872389750_0.14218441967830087","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"streamdown-vue","version":"1.0.4","keywords":["vue","markdown","streaming","streamdown","katex","mermaid","syntax-highlighting"],"author":{"name":"@Saluana"},"license":"Apache-2.0","_id":"streamdown-vue@1.0.4","maintainers":[{"name":"saluana","email":"bgb277@gmail.com"}],"homepage":"https://github.com/Saluana/streamdown-vue#readme","bugs":{"url":"https://github.com/Saluana/streamdown-vue/issues"},"dist":{"shasum":"8f7ac95539868587d7d9f52c05f1a31803be6b1b","tarball":"https://registry.npmjs.org/streamdown-vue/-/streamdown-vue-1.0.4.tgz","fileCount":6,"integrity":"sha512-LAeqW7YUWID51q8bkxpxYeanl7Vi4wpd/TG722Ke7HEqtgyLNvxJSiGI5YtVV5FyINILWGw29y/0CziAOzVkJQ==","signatures":[{"sig":"MEYCIQDhhq3JtJ3LMwbHZ9M+PJLSJwCFCgZ0ZEHFIDTc6N0B/QIhANn+HtVRzZ+UPSnpy4dYhVmN362eZUlz7zCwu3oaW4wn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":59729},"main":"dist/index.cjs.js","type":"module","types":"dist/index.d.ts","module":"dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"}},"gitHead":"d18641b6d04ddfc86c69be5605930eaaf83ccf0b","scripts":{"dev":"vite examples/basic","test":"bun run build && bun run test:run","build":"bun run clean && bun run build:types && bun run build:vite","clean":"rm -rf dist","test:run":"bun test","build:vite":"vite build","build:types":"tsc -p tsconfig.build.json","prepublishOnly":"bun run build && bun run test"},"_npmUser":{"name":"saluana","email":"bgb277@gmail.com"},"repository":{"url":"git+https://github.com/Saluana/streamdown-vue.git","type":"git"},"_npmVersion":"10.8.2","description":"Streamdown-style streaming Markdown renderer for Vue 3/Nuxt 3 with Shiki, KaTeX, Mermaid, and secure streaming helpers.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.2","dependencies":{"katex":"^0.16.22","shiki":"^3.12.1","marked":"^16.2.1","mermaid":"^11.10.1","unified":"^11.0.5","remark-gfm":"^4.0.1","remark-math":"^6.0.0","rehype-katex":"^7.0.1","remark-parse":"^11.0.0","remark-rehype":"^11.1.2","lucide-vue-next":"^0.542.0","hast-util-to-text":"^4.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.21","vite":"^7.1.4","@vue/test-utils":"2","vite-plugin-dts":"^4.5.4","@vitejs/plugin-vue":"^6.0.1","@vue/server-renderer":"^3.5.21"},"peerDependencies":{"vue":"^3.5.21","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/streamdown-vue_1.0.4_1756872811825_0.3081970186028953","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"streamdown-vue","version":"1.0.5","keywords":["vue","markdown","streaming","streamdown","katex","mermaid","syntax-highlighting"],"author":{"name":"@Saluana"},"license":"Apache-2.0","_id":"streamdown-vue@1.0.5","maintainers":[{"name":"saluana","email":"bgb277@gmail.com"}],"homepage":"https://github.com/Saluana/streamdown-vue#readme","bugs":{"url":"https://github.com/Saluana/streamdown-vue/issues"},"dist":{"shasum":"61efe9c6b1194d5d7a7efd8faa0ecf3cd67fc833","tarball":"https://registry.npmjs.org/streamdown-vue/-/streamdown-vue-1.0.5.tgz","fileCount":6,"integrity":"sha512-MrLKKnARd76oksx0t1ZAMd5NTEtxRE/RcPnn7nicdmYJEoqUup6rO0IsealZ1aGEyXI+K6XMZ9abhXxfljaqnw==","signatures":[{"sig":"MEQCIEL/0wThyDmdVreV7Kt5xkyT2KGaZkAlgxeQukggfkXAAiBQ2Dx2yaAe6wzu/hB6dJx2K3yJK+WvxSB8sEh0fnSp+w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":61271},"main":"dist/index.cjs.js","type":"module","types":"dist/index.d.ts","module":"dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"}},"gitHead":"a190b0eaab6cd7e77860d98af4ebc48784f06aea","scripts":{"dev":"vite examples/basic","test":"bun run build && bun run test:run","build":"bun run clean && bun run build:types && bun run build:vite","clean":"rm -rf dist","test:run":"bun test","build:vite":"vite build","build:types":"tsc -p tsconfig.build.json","prepublishOnly":"bun run build && bun run test"},"_npmUser":{"name":"saluana","email":"bgb277@gmail.com"},"repository":{"url":"git+https://github.com/Saluana/streamdown-vue.git","type":"git"},"_npmVersion":"10.8.2","description":"Streamdown-style streaming Markdown renderer for Vue 3/Nuxt 3 with Shiki, KaTeX, Mermaid, and secure streaming helpers.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.2","dependencies":{"katex":"^0.16.22","shiki":"^3.12.1","marked":"^16.2.1","mermaid":"^11.10.1","unified":"^11.0.5","remark-gfm":"^4.0.1","remark-math":"^6.0.0","rehype-katex":"^7.0.1","remark-parse":"^11.0.0","remark-rehype":"^11.1.2","lucide-vue-next":"^0.542.0","hast-util-to-text":"^4.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.21","vite":"^7.1.4","@vue/test-utils":"2","vite-plugin-dts":"^4.5.4","@vitejs/plugin-vue":"^6.0.1","@vue/server-renderer":"^3.5.21"},"peerDependencies":{"vue":"^3.5.21","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/streamdown-vue_1.0.5_1756947482855_0.5758326239787428","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"streamdown-vue","version":"1.0.6","keywords":["vue","markdown","streaming","streamdown","katex","mermaid","syntax-highlighting"],"author":{"name":"@Saluana"},"license":"Apache-2.0","_id":"streamdown-vue@1.0.6","maintainers":[{"name":"saluana","email":"bgb277@gmail.com"}],"homepage":"https://github.com/Saluana/streamdown-vue#readme","bugs":{"url":"https://github.com/Saluana/streamdown-vue/issues"},"dist":{"shasum":"b1e049589513263a61faacda91b641b85fb87711","tarball":"https://registry.npmjs.org/streamdown-vue/-/streamdown-vue-1.0.6.tgz","fileCount":6,"integrity":"sha512-oCBomJkPlxEnFRx0u/tiOpsOcaJKT8zRT6ZRLcWVEz9rTzJqPHyAbcrrnS4lJYtMkPMEKwCmwGJrq1X6Fz5Nhg==","signatures":[{"sig":"MEUCIQDJBAyoct/ziiJSJDttKxy3FVmLjoHDj4PaoiX06VsBcwIgaSVtvatdraDFJMbqL9Qj2BFn4SWwyKljqAZgEd6/7pI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":62325},"main":"dist/index.cjs.js","type":"module","types":"dist/index.d.ts","module":"dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"}},"gitHead":"a190b0eaab6cd7e77860d98af4ebc48784f06aea","scripts":{"dev":"vite examples/basic","test":"bun run build && bun run test:run","build":"bun run clean && bun run build:types && bun run build:vite","clean":"rm -rf dist","test:run":"bun test","build:vite":"vite build","build:types":"tsc -p tsconfig.build.json","prepublishOnly":"bun run build && bun run test"},"_npmUser":{"name":"saluana","email":"bgb277@gmail.com"},"repository":{"url":"git+https://github.com/Saluana/streamdown-vue.git","type":"git"},"_npmVersion":"10.8.2","description":"Streamdown-style streaming Markdown renderer for Vue 3/Nuxt 3 with Shiki, KaTeX, Mermaid, and secure streaming helpers.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.2","dependencies":{"katex":"^0.16.22","shiki":"^3.12.1","marked":"^16.2.1","mermaid":"^11.10.1","unified":"^11.0.5","remark-gfm":"^4.0.1","remark-math":"^6.0.0","rehype-katex":"^7.0.1","remark-parse":"^11.0.0","remark-rehype":"^11.1.2","lucide-vue-next":"^0.542.0","hast-util-to-text":"^4.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.21","vite":"^7.1.4","@vue/test-utils":"2","vite-plugin-dts":"^4.5.4","@vitejs/plugin-vue":"^6.0.1","@vue/server-renderer":"^3.5.21"},"peerDependencies":{"vue":"^3.5.21","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/streamdown-vue_1.0.6_1756948068389_0.828975317486476","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"streamdown-vue","version":"1.0.7","keywords":["vue","markdown","streaming","streamdown","katex","mermaid","syntax-highlighting"],"author":{"name":"@Saluana"},"license":"Apache-2.0","_id":"streamdown-vue@1.0.7","maintainers":[{"name":"saluana","email":"bgb277@gmail.com"}],"homepage":"https://github.com/Saluana/streamdown-vue#readme","bugs":{"url":"https://github.com/Saluana/streamdown-vue/issues"},"dist":{"shasum":"8bf5e35a6d824dbe8db8b94786033262696dd399","tarball":"https://registry.npmjs.org/streamdown-vue/-/streamdown-vue-1.0.7.tgz","fileCount":6,"integrity":"sha512-KNMfWpRVXpKMXq8finDFV6/yco1c1qYszpmpEhC2hhaaOmkQtuI8gViIJ/vyj1FbwALQZ9fOPVlLmwmo6nRQLQ==","signatures":[{"sig":"MEUCIGtZx0RM25+a/wFBQApd7euaY5SRV3L9/Lm6Fl6S0tOsAiEAu3q9wNmGNSKPtZGKls57L+TfXXgywKA3XoJZ3ft4v8M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":63903},"main":"dist/index.cjs.js","type":"module","types":"dist/index.d.ts","module":"dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"}},"gitHead":"98defd16fbfc8502a4f79681e2c5da3c89570755","scripts":{"dev":"vite examples/basic","test":"bun run build && bun run test:run","build":"bun run clean && bun run build:types && bun run build:vite","clean":"rm -rf dist","test:run":"bun test","build:vite":"vite build","build:types":"tsc -p tsconfig.build.json","prepublishOnly":"bun run build && bun run test"},"_npmUser":{"name":"saluana","email":"bgb277@gmail.com"},"repository":{"url":"git+https://github.com/Saluana/streamdown-vue.git","type":"git"},"_npmVersion":"10.8.2","description":"Streamdown-style streaming Markdown renderer for Vue 3/Nuxt 3 with Shiki, KaTeX, Mermaid, and secure streaming helpers.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.2","dependencies":{"katex":"^0.16.22","shiki":"^3.12.1","marked":"^16.2.1","mermaid":"^11.10.1","unified":"^11.0.5","remark-gfm":"^4.0.1","remark-math":"^6.0.0","rehype-katex":"^7.0.1","remark-parse":"^11.0.0","remark-rehype":"^11.1.2","lucide-vue-next":"^0.542.0","hast-util-to-text":"^4.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.21","vite":"^7.1.4","@vue/test-utils":"2","vite-plugin-dts":"^4.5.4","@vitejs/plugin-vue":"^6.0.1","@vue/server-renderer":"^3.5.21"},"peerDependencies":{"vue":"^3.5.21","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/streamdown-vue_1.0.7_1756948886288_0.010403565024509787","host":"s3://npm-registry-packages-npm-production"}},"1.0.8":{"name":"streamdown-vue","version":"1.0.8","keywords":["vue","markdown","streaming","streamdown","katex","mermaid","syntax-highlighting"],"author":{"name":"@Saluana"},"license":"Apache-2.0","_id":"streamdown-vue@1.0.8","maintainers":[{"name":"saluana","email":"bgb277@gmail.com"}],"homepage":"https://github.com/Saluana/streamdown-vue#readme","bugs":{"url":"https://github.com/Saluana/streamdown-vue/issues"},"dist":{"shasum":"fc127f7bd84b2d91afbd0b5a4cb8c21930f86c81","tarball":"https://registry.npmjs.org/streamdown-vue/-/streamdown-vue-1.0.8.tgz","fileCount":6,"integrity":"sha512-WonmUdLovdm1JRDJyie00NoS/OLpah/+8A2cHi8tPb4xhCBY0OvnjqX7f9rJoz0l31DCHaMMyn9sBWVED1cKow==","signatures":[{"sig":"MEUCIQDkCTTecoSlE/QZ4H+P58BWNMxEvBelpBS7xVkyATfTWQIgZpA8Ac7HhU0Lfbhu29IafEZEF94F2wMtlPSspCeAQQg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":65993},"main":"dist/index.cjs.js","type":"module","types":"dist/index.d.ts","module":"dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"}},"gitHead":"fec699d4b4ceafa35c524f104edcc0ee1715f872","scripts":{"dev":"vite examples/basic","test":"bun run build && bun run test:run","build":"bun run clean && bun run build:types && bun run build:vite","clean":"rm -rf dist","test:run":"bun test","build:vite":"vite build","build:types":"tsc -p tsconfig.build.json","prepublishOnly":"bun run build && bun run test"},"_npmUser":{"name":"saluana","email":"bgb277@gmail.com"},"repository":{"url":"git+https://github.com/Saluana/streamdown-vue.git","type":"git"},"_npmVersion":"10.8.2","description":"Streamdown-style streaming Markdown renderer for Vue 3/Nuxt 3 with Shiki, KaTeX, Mermaid, and secure streaming helpers.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.2","dependencies":{"katex":"^0.16.22","shiki":"^3.12.1","marked":"^16.2.1","mermaid":"^11.10.1","unified":"^11.0.5","remark-gfm":"^4.0.1","remark-math":"^6.0.0","rehype-katex":"^7.0.1","remark-parse":"^11.0.0","remark-rehype":"^11.1.2","lucide-vue-next":"^0.542.0","hast-util-to-text":"^4.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.21","vite":"^7.1.4","@vue/test-utils":"2","vite-plugin-dts":"^4.5.4","@vitejs/plugin-vue":"^6.0.1","@vue/server-renderer":"^3.5.21"},"peerDependencies":{"vue":"^3.5.21","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/streamdown-vue_1.0.8_1756950592487_0.7114452954912016","host":"s3://npm-registry-packages-npm-production"}},"1.0.9":{"name":"streamdown-vue","version":"1.0.9","keywords":["vue","markdown","streaming","streamdown","katex","mermaid","syntax-highlighting"],"author":{"name":"@Saluana"},"license":"Apache-2.0","_id":"streamdown-vue@1.0.9","maintainers":[{"name":"saluana","email":"bgb277@gmail.com"}],"homepage":"https://github.com/Saluana/streamdown-vue#readme","bugs":{"url":"https://github.com/Saluana/streamdown-vue/issues"},"dist":{"shasum":"84e2e28e6663df61bfbd080d05f64b6021f349f2","tarball":"https://registry.npmjs.org/streamdown-vue/-/streamdown-vue-1.0.9.tgz","fileCount":6,"integrity":"sha512-g4rz/VLIDUQQ3CDgpyT0vq0FzsgeD3UFRmhVxUbiZyt59G96LMI5RCfLEAP6tCiEoaUYC0nYffqDYzkdZMYMaQ==","signatures":[{"sig":"MEUCIEVeGUJMYk93OVZzrR+fSYSiPxuAsjOckVlUzzHl43+6AiEAh8dtB97WTwlgF0wetjsCiXPwN4R3oaueoED3IGhVrUw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":69881},"main":"dist/index.cjs.js","type":"module","types":"dist/index.d.ts","module":"dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"}},"gitHead":"e56d1c3ce57025d9cd16f68f1f4c40ecfdd497bb","scripts":{"dev":"vite examples/basic","test":"bun run build && bun run test:run","build":"bun run clean && bun run build:types && bun run build:vite","clean":"rm -rf dist","test:run":"bun test","build:vite":"vite build","build:types":"tsc -p tsconfig.build.json","prepublishOnly":"bun run build && bun run test"},"_npmUser":{"name":"saluana","email":"bgb277@gmail.com"},"repository":{"url":"git+https://github.com/Saluana/streamdown-vue.git","type":"git"},"_npmVersion":"10.8.2","description":"Streamdown-style streaming Markdown renderer for Vue 3/Nuxt 3 with Shiki, KaTeX, Mermaid, and secure streaming helpers.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.2","dependencies":{"katex":"^0.16.22","shiki":"^3.12.1","marked":"^16.2.1","mermaid":"^11.10.1","unified":"^11.0.5","remark-gfm":"^4.0.1","remark-math":"^6.0.0","rehype-katex":"^7.0.1","remark-parse":"^11.0.0","remark-rehype":"^11.1.2","lucide-vue-next":"^0.542.0","hast-util-to-text":"^4.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.21","vite":"^7.1.4","@vue/test-utils":"2","vite-plugin-dts":"^4.5.4","@vitejs/plugin-vue":"^6.0.1","@vue/server-renderer":"^3.5.21"},"peerDependencies":{"vue":"^3.5.21","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/streamdown-vue_1.0.9_1756951931835_0.09847296973948438","host":"s3://npm-registry-packages-npm-production"}},"1.0.10":{"name":"streamdown-vue","version":"1.0.10","keywords":["vue","markdown","streaming","streamdown","katex","mermaid","syntax-highlighting"],"author":{"name":"@Saluana"},"license":"Apache-2.0","_id":"streamdown-vue@1.0.10","maintainers":[{"name":"saluana","email":"bgb277@gmail.com"}],"homepage":"https://github.com/Saluana/streamdown-vue#readme","bugs":{"url":"https://github.com/Saluana/streamdown-vue/issues"},"dist":{"shasum":"ea727ee853b128e478f86a045bae411ea9ec4a01","tarball":"https://registry.npmjs.org/streamdown-vue/-/streamdown-vue-1.0.10.tgz","fileCount":6,"integrity":"sha512-xUY4uJ93GUg6iZmCarAvoJKOwNnmxTQ9UtfF8IU7GO+2CnoS4+iz1BBJs0ufTYMD0BkEzOunkEWBq80ZTFcqFg==","signatures":[{"sig":"MEUCIDRkxPTU0ZZ3DhAmx/xfTumUn0sxg/Dzr6FZ1ieg/dP+AiEAmbiZKvBXeKn7yZhDnbp3+TpC8LLtyigGtfBHgng6MIY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":70422},"main":"dist/index.cjs.js","type":"module","types":"dist/index.d.ts","module":"dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"}},"gitHead":"e56d1c3ce57025d9cd16f68f1f4c40ecfdd497bb","scripts":{"dev":"vite examples/basic","test":"bun run build && bun run test:run","build":"bun run clean && bun run build:types && bun run build:vite","clean":"rm -rf dist","test:run":"bun test","build:vite":"vite build","build:types":"tsc -p tsconfig.build.json","prepublishOnly":"bun run build && bun run test"},"_npmUser":{"name":"saluana","email":"bgb277@gmail.com"},"repository":{"url":"git+https://github.com/Saluana/streamdown-vue.git","type":"git"},"_npmVersion":"10.8.2","description":"Streamdown-style streaming Markdown renderer for Vue 3/Nuxt 3 with Shiki, KaTeX, Mermaid, and secure streaming helpers.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.2","dependencies":{"katex":"^0.16.22","shiki":"^3.12.1","marked":"^16.2.1","mermaid":"^11.10.1","unified":"^11.0.5","remark-gfm":"^4.0.1","remark-math":"^6.0.0","rehype-katex":"^7.0.1","remark-parse":"^11.0.0","remark-rehype":"^11.1.2","lucide-vue-next":"^0.542.0","hast-util-to-text":"^4.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.21","vite":"^7.1.4","@vue/test-utils":"2","vite-plugin-dts":"^4.5.4","@vitejs/plugin-vue":"^6.0.1","@vue/server-renderer":"^3.5.21"},"peerDependencies":{"vue":"^3.5.21","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/streamdown-vue_1.0.10_1756952390879_0.7728712944789955","host":"s3://npm-registry-packages-npm-production"}},"1.0.11":{"name":"streamdown-vue","version":"1.0.11","keywords":["vue","markdown","streaming","streamdown","katex","mermaid","syntax-highlighting"],"author":{"name":"@Saluana"},"license":"Apache-2.0","_id":"streamdown-vue@1.0.11","maintainers":[{"name":"saluana","email":"bgb277@gmail.com"}],"homepage":"https://github.com/Saluana/streamdown-vue#readme","bugs":{"url":"https://github.com/Saluana/streamdown-vue/issues"},"dist":{"shasum":"630eea1d5fd588add917286bbb2f17f6e304a4d1","tarball":"https://registry.npmjs.org/streamdown-vue/-/streamdown-vue-1.0.11.tgz","fileCount":6,"integrity":"sha512-gdGJH34gT0grVQuFongcumxJuWTUVn7GYXUZmZPSe3tR9tA+k/X2Y1FOIWeg5p5CEPTEXkHUK9EuzIek5EjvdQ==","signatures":[{"sig":"MEYCIQCTAL8AalDdOLf314ysdtPympFOnG8NwDScwl4WZcU74gIhAKq5kQRENJ3BHiscTF3gmD0fh68Fs85FT75qmFgdbdub","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":70578},"main":"dist/index.cjs.js","type":"module","types":"dist/index.d.ts","module":"dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"}},"gitHead":"e56d1c3ce57025d9cd16f68f1f4c40ecfdd497bb","scripts":{"dev":"vite examples/basic","test":"bun run build && bun run test:run","build":"bun run clean && bun run build:types && bun run build:vite","clean":"rm -rf dist","test:run":"bun test","build:vite":"vite build","build:types":"tsc -p tsconfig.build.json","prepublishOnly":"bun run build && bun run test"},"_npmUser":{"name":"saluana","email":"bgb277@gmail.com"},"repository":{"url":"git+https://github.com/Saluana/streamdown-vue.git","type":"git"},"_npmVersion":"10.8.2","description":"Streamdown-style streaming Markdown renderer for Vue 3/Nuxt 3 with Shiki, KaTeX, Mermaid, and secure streaming helpers.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.2","dependencies":{"katex":"^0.16.22","shiki":"^3.12.1","marked":"^16.2.1","mermaid":"^11.10.1","unified":"^11.0.5","remark-gfm":"^4.0.1","remark-math":"^6.0.0","rehype-katex":"^7.0.1","remark-parse":"^11.0.0","remark-rehype":"^11.1.2","lucide-vue-next":"^0.542.0","hast-util-to-text":"^4.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.21","vite":"^7.1.4","@vue/test-utils":"2","vite-plugin-dts":"^4.5.4","@vitejs/plugin-vue":"^6.0.1","@vue/server-renderer":"^3.5.21"},"peerDependencies":{"vue":"^3.5.21","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/streamdown-vue_1.0.11_1756953046892_0.215825707592727","host":"s3://npm-registry-packages-npm-production"}},"1.0.12":{"name":"streamdown-vue","version":"1.0.12","keywords":["vue","markdown","streaming","streamdown","katex","mermaid","syntax-highlighting"],"author":{"name":"@Saluana"},"license":"Apache-2.0","_id":"streamdown-vue@1.0.12","maintainers":[{"name":"saluana","email":"bgb277@gmail.com"}],"homepage":"https://github.com/Saluana/streamdown-vue#readme","bugs":{"url":"https://github.com/Saluana/streamdown-vue/issues"},"dist":{"shasum":"c8234829d80d94a1f811d1c7649e3ff56ce6bb30","tarball":"https://registry.npmjs.org/streamdown-vue/-/streamdown-vue-1.0.12.tgz","fileCount":6,"integrity":"sha512-VKeVQQ+6lsVIXiMcnEpFB1yv2j7XlrN8ZfeuMwa1m7kBnwRv4WdDQfvkuhVsyXPpRkhYsxYX+iuiNoCaaz2d3Q==","signatures":[{"sig":"MEYCIQDlxJ/h1+gOaUM4MbxeYuTKAIrZxenkLQlbyEY4O7fL5QIhAKAdm3es3VN4zNT1p8622FtsKRJ3PChu72YyiIvnfh78","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":70582},"main":"dist/index.cjs.js","type":"module","types":"dist/index.d.ts","module":"dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"}},"gitHead":"6f3352bf3a41e13c11d0f0c20d7895dd1d9b64f8","scripts":{"dev":"vite examples/basic","test":"bun run build && bun run test:run","build":"bun run clean && bun run build:types && bun run build:vite","clean":"rm -rf dist","test:run":"bun test","build:vite":"vite build","build:types":"tsc -p tsconfig.build.json","prepublishOnly":"bun run build && bun run test"},"_npmUser":{"name":"saluana","email":"bgb277@gmail.com"},"repository":{"url":"git+https://github.com/Saluana/streamdown-vue.git","type":"git"},"_npmVersion":"10.8.2","description":"Streamdown-style streaming Markdown renderer for Vue 3/Nuxt 3 with Shiki, KaTeX, Mermaid, and secure streaming helpers.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.2","dependencies":{"katex":"^0.16.22","shiki":"^3.12.1","marked":"^16.2.1","mermaid":"^11.10.1","unified":"^11.0.5","remark-gfm":"^4.0.1","remark-math":"^6.0.0","rehype-katex":"^7.0.1","remark-parse":"^11.0.0","remark-rehype":"^11.1.2","lucide-vue-next":"^0.542.0","hast-util-to-text":"^4.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.21","vite":"^7.1.4","@vue/test-utils":"2","vite-plugin-dts":"^4.5.4","@vitejs/plugin-vue":"^6.0.1","@vue/server-renderer":"^3.5.21"},"peerDependencies":{"vue":"^3.5.21","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/streamdown-vue_1.0.12_1756954436829_0.2413436687199133","host":"s3://npm-registry-packages-npm-production"}},"1.0.13":{"name":"streamdown-vue","version":"1.0.13","keywords":["vue","markdown","streaming","streamdown","katex","mermaid","syntax-highlighting"],"author":{"name":"@Saluana"},"license":"Apache-2.0","_id":"streamdown-vue@1.0.13","maintainers":[{"name":"saluana","email":"bgb277@gmail.com"}],"homepage":"https://github.com/Saluana/streamdown-vue#readme","bugs":{"url":"https://github.com/Saluana/streamdown-vue/issues"},"dist":{"shasum":"0a6eed7b6e5facda6c42c28144e4d40595f3bb35","tarball":"https://registry.npmjs.org/streamdown-vue/-/streamdown-vue-1.0.13.tgz","fileCount":6,"integrity":"sha512-0JCdvEk6hLT3NCmlwZs6R/na3lfIh0x4AAFR+xMwFfCvT1kZwFJs89gkNLpKnpS8nUUAKApZ96NVuIrWfrcryA==","signatures":[{"sig":"MEUCICjIuvmkVtqiIX49A+C2RZrZuZnvYhADgnyhxfgzg6IiAiEA8B78dLsUQaw1oAfydaUwgll3cJTBwgCPA/eqcAA/UyM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":72804},"main":"dist/index.cjs.js","type":"module","types":"dist/index.d.ts","module":"dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"}},"gitHead":"7b4113f109d36409b9980ad9dbd0bdc03db16a42","scripts":{"dev":"vite examples/basic","test":"bun run build && bun run test:run","build":"bun run clean && bun run build:types && bun run build:vite","clean":"rm -rf dist","test:run":"bun test","build:vite":"vite build","build:types":"tsc -p tsconfig.build.json","prepublishOnly":"bun run build && bun run test"},"_npmUser":{"name":"saluana","email":"bgb277@gmail.com"},"repository":{"url":"git+https://github.com/Saluana/streamdown-vue.git","type":"git"},"_npmVersion":"10.8.2","description":"Streamdown-style streaming Markdown renderer for Vue 3/Nuxt 3 with Shiki, KaTeX, Mermaid, and secure streaming helpers.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.2","dependencies":{"katex":"^0.16.22","shiki":"^3.12.1","marked":"^16.2.1","mermaid":"^11.10.1","unified":"^11.0.5","remark-gfm":"^4.0.1","remark-math":"^6.0.0","rehype-katex":"^7.0.1","remark-parse":"^11.0.0","remark-rehype":"^11.1.2","lucide-vue-next":"^0.542.0","hast-util-to-text":"^4.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.21","vite":"^7.1.4","@vue/test-utils":"2","vite-plugin-dts":"^4.5.4","@vitejs/plugin-vue":"^6.0.1","@vue/server-renderer":"^3.5.21"},"peerDependencies":{"vue":"^3.5.21","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/streamdown-vue_1.0.13_1757633640664_0.03160992642187721","host":"s3://npm-registry-packages-npm-production"}},"1.0.15":{"name":"streamdown-vue","version":"1.0.15","keywords":["vue","markdown","streaming","streamdown","katex","mermaid","syntax-highlighting"],"author":{"name":"@Saluana"},"license":"Apache-2.0","_id":"streamdown-vue@1.0.15","maintainers":[{"name":"saluana","email":"bgb277@gmail.com"}],"homepage":"https://github.com/Saluana/streamdown-vue#readme","bugs":{"url":"https://github.com/Saluana/streamdown-vue/issues"},"dist":{"shasum":"38b09d6036fe80e2f4825a12f9d6fee72a143b85","tarball":"https://registry.npmjs.org/streamdown-vue/-/streamdown-vue-1.0.15.tgz","fileCount":6,"integrity":"sha512-SWcvdhmimUQySiu8p2nkrz+INc+jGOZ6e2ffOzAf9lfZXu6hikIFUJIj/ZP73glFeFM0QjmIAlzoW0Yy719fbA==","signatures":[{"sig":"MEQCIFqmUP7CnsEsrA+t4EHVduNOptIyXAFQQLR882ODY9P5AiAlS6mwha390xLnMCl8BLaFL/xvSOI+kILY9TA3RzOpJQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":91337},"main":"dist/index.cjs.js","type":"module","types":"dist/index.d.ts","module":"dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"}},"gitHead":"205d138d6689aa2d94e1ba0c44ca5912a6b6e26c","scripts":{"dev":"vite examples/basic","test":"bun run build && bun run test:run","build":"bun run clean && bun run build:types && bun run build:vite","clean":"rm -rf dist","test:run":"bun test","build:vite":"vite build","build:types":"tsc -p tsconfig.build.json","prepublishOnly":"bun run build && bun run test"},"_npmUser":{"name":"saluana","email":"bgb277@gmail.com"},"repository":{"url":"git+https://github.com/Saluana/streamdown-vue.git","type":"git"},"_npmVersion":"10.8.2","description":"Streamdown-style streaming Markdown renderer for Vue 3/Nuxt 3 with Shiki, KaTeX, Mermaid, and secure streaming helpers.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.2","dependencies":{"katex":"^0.16.22","shiki":"^3.12.1","marked":"^16.2.1","mermaid":"^11.10.1","unified":"^11.0.5","remark-gfm":"^4.0.1","remark-math":"^6.0.0","rehype-katex":"^7.0.1","remark-parse":"^11.0.0","remark-rehype":"^11.1.2","lucide-vue-next":"^0.542.0","hast-util-to-text":"^4.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.21","vite":"^7.1.4","@vue/test-utils":"2","vite-plugin-dts":"^4.5.4","@vitejs/plugin-vue":"^6.0.1","@vue/server-renderer":"^3.5.21"},"peerDependencies":{"vue":"^3.5.21","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/streamdown-vue_1.0.15_1757636289162_0.29599418870022376","host":"s3://npm-registry-packages-npm-production"}},"1.0.16":{"name":"streamdown-vue","version":"1.0.16","keywords":["vue","markdown","streaming","streamdown","katex","mermaid","syntax-highlighting"],"author":{"name":"@Saluana"},"license":"Apache-2.0","_id":"streamdown-vue@1.0.16","maintainers":[{"name":"saluana","email":"bgb277@gmail.com"}],"homepage":"https://github.com/Saluana/streamdown-vue#readme","bugs":{"url":"https://github.com/Saluana/streamdown-vue/issues"},"dist":{"shasum":"1000c2a4f73fc258dd3f2d52228f2dae36cf2833","tarball":"https://registry.npmjs.org/streamdown-vue/-/streamdown-vue-1.0.16.tgz","fileCount":6,"integrity":"sha512-tymRHB8ELNWjdm43/lLnijD+vUu9631lq0man2jNVchVnaPyKNFL2uvePud2H1+wcVBJFQ5kycnvzsNhmNvKGw==","signatures":[{"sig":"MEYCIQC/bOXEIT7f8sb7B7/iUXyWYGHsuwWrde4D4QyanslerwIhAJO8XQZXDlICJJShoDfLnRNKzAq2pbr0TcniMSKsTwqi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":91431},"main":"dist/index.cjs.js","type":"module","types":"dist/index.d.ts","module":"dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"}},"gitHead":"7249eef91885630b17449f77e77edddaad72a755","scripts":{"dev":"vite examples/basic","test":"bun run build && bun run test:run","build":"bun run clean && bun run build:types && bun run build:vite","clean":"rm -rf dist","test:run":"bun test","build:vite":"vite build","build:types":"tsc -p tsconfig.build.json","prepublishOnly":"bun run build && bun run test"},"_npmUser":{"name":"saluana","email":"bgb277@gmail.com"},"repository":{"url":"git+https://github.com/Saluana/streamdown-vue.git","type":"git"},"_npmVersion":"10.8.2","description":"Streamdown-style streaming Markdown renderer for Vue 3/Nuxt 3 with Shiki, KaTeX, Mermaid, and secure streaming helpers.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.2","dependencies":{"katex":"^0.16.22","shiki":"^3.12.1","marked":"^16.2.1","mermaid":"^11.10.1","unified":"^11.0.5","remark-gfm":"^4.0.1","remark-math":"^6.0.0","rehype-katex":"^7.0.1","remark-parse":"^11.0.0","remark-rehype":"^11.1.2","lucide-vue-next":"^0.542.0","hast-util-to-text":"^4.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.21","vite":"^7.1.4","@vue/test-utils":"2","vite-plugin-dts":"^4.5.4","@vitejs/plugin-vue":"^6.0.1","@vue/server-renderer":"^3.5.21"},"peerDependencies":{"vue":"^3.5.21","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/streamdown-vue_1.0.16_1757717433947_0.9266093483206175","host":"s3://npm-registry-packages-npm-production"}},"1.0.17":{"name":"streamdown-vue","version":"1.0.17","keywords":["vue","markdown","streaming","streamdown","katex","mermaid","syntax-highlighting"],"author":{"name":"@Saluana"},"license":"Apache-2.0","_id":"streamdown-vue@1.0.17","maintainers":[{"name":"saluana","email":"bgb277@gmail.com"}],"homepage":"https://github.com/Saluana/streamdown-vue#readme","bugs":{"url":"https://github.com/Saluana/streamdown-vue/issues"},"dist":{"shasum":"f05c3e25251a07e5cdbfb0e5b8641422d070d2dd","tarball":"https://registry.npmjs.org/streamdown-vue/-/streamdown-vue-1.0.17.tgz","fileCount":6,"integrity":"sha512-ZavmppsOhlA/y9yZbVrZ0jqxx2vSMdZxTtClwTTt4RXBKoFHEL2qVGE7tM/vCWc8trUpU7xoql1T2vBxBsy98Q==","signatures":[{"sig":"MEUCIBTRFlOU/hdqbQzfqRvkGG+jbeFtU3WffbY1PIYEHI/iAiEA1tpWGGDlv03KLeAkkImIKd3APklZpwodNW6Vo9Tk1Jo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":91431},"main":"dist/index.cjs.js","type":"module","types":"dist/index.d.ts","module":"dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"}},"gitHead":"3d1e8a8315e95442a9b00e45a2f6d6f68118cca2","scripts":{"dev":"vite examples/basic","test":"bun run build && bun run test:run","build":"bun run clean && bun run build:types && bun run build:vite","clean":"rm -rf dist","test:run":"bun test","build:vite":"vite build","build:types":"tsc -p tsconfig.build.json","prepublishOnly":"bun run build && bun run test"},"_npmUser":{"name":"saluana","email":"bgb277@gmail.com"},"repository":{"url":"git+https://github.com/Saluana/streamdown-vue.git","type":"git"},"_npmVersion":"10.8.2","description":"Streamdown-style streaming Markdown renderer for Vue 3/Nuxt 3 with Shiki, KaTeX, Mermaid, and secure streaming helpers.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.2","dependencies":{"katex":"^0.16.22","shiki":"^3.12.1","marked":"^16.2.1","mermaid":"^11.10.1","unified":"^11.0.5","remark-gfm":"^4.0.1","remark-math":"^6.0.0","rehype-katex":"^7.0.1","remark-parse":"^11.0.0","remark-rehype":"^11.1.2","lucide-vue-next":"^0.542.0","hast-util-to-text":"^4.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.21","vite":"^7.1.4","@vue/test-utils":"2","vite-plugin-dts":"^4.5.4","@vitejs/plugin-vue":"^6.0.1","@vue/server-renderer":"^3.5.21"},"peerDependencies":{"vue":"^3.5.21","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/streamdown-vue_1.0.17_1757718489388_0.2557792404196835","host":"s3://npm-registry-packages-npm-production"}},"1.0.18":{"name":"streamdown-vue","version":"1.0.18","keywords":["vue","markdown","streaming","streamdown","katex","mermaid","syntax-highlighting"],"author":{"name":"@Saluana"},"license":"Apache-2.0","_id":"streamdown-vue@1.0.18","maintainers":[{"name":"saluana","email":"bgb277@gmail.com"}],"homepage":"https://github.com/Saluana/streamdown-vue#readme","bugs":{"url":"https://github.com/Saluana/streamdown-vue/issues"},"dist":{"shasum":"375b605fed93b97b0e3e677ce6696bc803d01309","tarball":"https://registry.npmjs.org/streamdown-vue/-/streamdown-vue-1.0.18.tgz","fileCount":6,"integrity":"sha512-9BWjV3Xt260DKwfyPlQKt5zSPS2/AtIVGsUbF7s6MYyHlD9pnUj+Xvnwp1+QcxKCczZdNjCIwl7YAzFfvP6v5Q==","signatures":[{"sig":"MEYCIQDBcz1Q9ZQ/Mj8sQwA8EKiRqc7Xd6jJl1l0G+ZNhYjlIgIhANVDTbTc2WORbsuCRo5A3MAFlPq+doJz2XRiqSHPtNOB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":91826},"main":"dist/index.cjs.js","type":"module","types":"dist/index.d.ts","module":"dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"}},"gitHead":"ec11f4d4ee761263f511502e121c0bb17449786b","scripts":{"dev":"vite examples/basic","test":"bun run build && bun run test:run","build":"bun run clean && bun run build:types && bun run build:vite","clean":"rm -rf dist","test:run":"bun test","build:vite":"vite build","build:types":"tsc -p tsconfig.build.json","prepublishOnly":"bun run build && bun run test"},"_npmUser":{"name":"saluana","email":"bgb277@gmail.com"},"repository":{"url":"git+https://github.com/Saluana/streamdown-vue.git","type":"git"},"_npmVersion":"10.8.2","description":"Streamdown-style streaming Markdown renderer for Vue 3/Nuxt 3 with Shiki, KaTeX, Mermaid, and secure streaming helpers.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.2","dependencies":{"katex":"^0.16.22","shiki":"^3.12.1","marked":"^16.2.1","mermaid":"^11.10.1","unified":"^11.0.5","remark-gfm":"^4.0.1","remark-math":"^6.0.0","rehype-katex":"^7.0.1","remark-parse":"^11.0.0","remark-rehype":"^11.1.2","lucide-vue-next":"^0.542.0","hast-util-to-text":"^4.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.21","vite":"^7.1.4","@vue/test-utils":"2","vite-plugin-dts":"^4.5.4","@vitejs/plugin-vue":"^6.0.1","@vue/server-renderer":"^3.5.21"},"peerDependencies":{"vue":"^3.5.21","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/streamdown-vue_1.0.18_1757718929593_0.4158455743864504","host":"s3://npm-registry-packages-npm-production"}},"1.0.19":{"name":"streamdown-vue","version":"1.0.19","keywords":["vue","markdown","streaming","streamdown","katex","mermaid","syntax-highlighting"],"author":{"name":"@Saluana"},"license":"Apache-2.0","_id":"streamdown-vue@1.0.19","maintainers":[{"name":"saluana","email":"bgb277@gmail.com"}],"homepage":"https://github.com/Saluana/streamdown-vue#readme","bugs":{"url":"https://github.com/Saluana/streamdown-vue/issues"},"dist":{"shasum":"126ffd2f2a39982b643f178d9b1a5cba85d22647","tarball":"https://registry.npmjs.org/streamdown-vue/-/streamdown-vue-1.0.19.tgz","fileCount":6,"integrity":"sha512-Eemk0UgMvirPbLWeJYbirjKToL0+KbwTP/WWNEVlFp30PC11gSqqSOXfX+d2a0HEpXRXO1LmrhDECD03Py3HEg==","signatures":[{"sig":"MEUCIEPdqP5D8G2jc9d6ktYthPCMz3ELYcYTEdQ07RgaYzWXAiEAm1LNm3qKsXGh9KusfqYo+k2obutdj5q8tcP7liWHgNY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":92725},"main":"dist/index.cjs.js","type":"module","types":"dist/index.d.ts","module":"dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"}},"gitHead":"8efaed23b0cb0285e2f10ffd72056ea0e8ceaa16","scripts":{"dev":"vite examples/basic","test":"bun run build && bun run test:run","build":"bun run clean && bun run build:types && bun run build:vite","clean":"rm -rf dist","test:run":"bun test","build:vite":"vite build","build:types":"tsc -p tsconfig.build.json","prepublishOnly":"bun run build && bun run test"},"_npmUser":{"name":"saluana","email":"bgb277@gmail.com"},"repository":{"url":"git+https://github.com/Saluana/streamdown-vue.git","type":"git"},"_npmVersion":"10.8.2","description":"Streamdown-style streaming Markdown renderer for Vue 3/Nuxt 3 with Shiki, KaTeX, Mermaid, and secure streaming helpers.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.2","dependencies":{"katex":"^0.16.22","shiki":"^3.12.1","marked":"^16.2.1","mermaid":"^11.10.1","unified":"^11.0.5","remark-gfm":"^4.0.1","remark-math":"^6.0.0","rehype-katex":"^7.0.1","remark-parse":"^11.0.0","remark-rehype":"^11.1.2","lucide-vue-next":"^0.542.0","hast-util-to-text":"^4.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.21","vite":"^7.1.4","@vue/test-utils":"2","vite-plugin-dts":"^4.5.4","@vitejs/plugin-vue":"^6.0.1","@vue/server-renderer":"^3.5.21"},"peerDependencies":{"vue":"^3.5.21","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/streamdown-vue_1.0.19_1757719578147_0.7913317383522505","host":"s3://npm-registry-packages-npm-production"}},"1.0.20":{"name":"streamdown-vue","version":"1.0.20","keywords":["vue","markdown","streaming","streamdown","katex","mermaid","syntax-highlighting"],"author":{"name":"@Saluana"},"license":"Apache-2.0","_id":"streamdown-vue@1.0.20","maintainers":[{"name":"saluana","email":"bgb277@gmail.com"}],"homepage":"https://github.com/Saluana/streamdown-vue#readme","bugs":{"url":"https://github.com/Saluana/streamdown-vue/issues"},"dist":{"shasum":"4105b7f4fe8c521d3ab36425c29f2e96aae5d44f","tarball":"https://registry.npmjs.org/streamdown-vue/-/streamdown-vue-1.0.20.tgz","fileCount":6,"integrity":"sha512-UlVgmQipyyZZVXoxRnq3OMmQP7uSgj7mTXw1GVSxo140F7lWJ8sgOgFeJ0IxTWh01GNWch/D8ZJHdtzF+nHjEw==","signatures":[{"sig":"MEUCIHqRFkR+TTcEZ1GDj9Tu1mjX0pTw+Sn/Rwe8H9zqGtnWAiEA2+ELmgDrj8XBAzFmi3eZLPDu2dKtAobtTuR7HlceCyQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":92725},"main":"dist/index.cjs.js","type":"module","types":"dist/index.d.ts","module":"dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"}},"gitHead":"8efaed23b0cb0285e2f10ffd72056ea0e8ceaa16","scripts":{"dev":"vite examples/basic","test":"bun run build && bun run test:run","build":"bun run clean && bun run build:types && bun run build:vite","clean":"rm -rf dist","test:run":"bun test","build:vite":"vite build","build:types":"tsc -p tsconfig.build.json","prepublishOnly":"bun run build && bun run test"},"_npmUser":{"name":"saluana","email":"bgb277@gmail.com"},"repository":{"url":"git+https://github.com/Saluana/streamdown-vue.git","type":"git"},"_npmVersion":"10.8.2","description":"Streamdown-style streaming Markdown renderer for Vue 3/Nuxt 3 with Shiki, KaTeX, Mermaid, and secure streaming helpers.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.2","dependencies":{"katex":"^0.16.22","shiki":"^3.12.1","marked":"^16.2.1","mermaid":"^11.10.1","unified":"^11.0.5","remark-gfm":"^4.0.1","remark-math":"^6.0.0","rehype-katex":"^7.0.1","remark-parse":"^11.0.0","remark-rehype":"^11.1.2","lucide-vue-next":"^0.542.0","hast-util-to-text":"^4.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.21","vite":"^7.1.4","@vue/test-utils":"2","vite-plugin-dts":"^4.5.4","@vitejs/plugin-vue":"^6.0.1","@vue/server-renderer":"^3.5.21"},"peerDependencies":{"vue":"^3.5.21","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/streamdown-vue_1.0.20_1757719871186_0.7541055352512913","host":"s3://npm-registry-packages-npm-production"}},"1.0.21":{"name":"streamdown-vue","version":"1.0.21","keywords":["vue","markdown","streaming","streamdown","katex","mermaid","syntax-highlighting"],"author":{"name":"@Saluana"},"license":"Apache-2.0","_id":"streamdown-vue@1.0.21","maintainers":[{"name":"saluana","email":"bgb277@gmail.com"}],"homepage":"https://github.com/Saluana/streamdown-vue#readme","bugs":{"url":"https://github.com/Saluana/streamdown-vue/issues"},"dist":{"shasum":"aa1f946ce91c7db53c1d21e989321374beafca94","tarball":"https://registry.npmjs.org/streamdown-vue/-/streamdown-vue-1.0.21.tgz","fileCount":6,"integrity":"sha512-hdO32hark7ljqyu2nX95zeSVfEiH4pdPOjdbZ3QRy+odkS65IqUKUbu3UFvXiHD0mrFaEnPJTsJy3tTT33w21w==","signatures":[{"sig":"MEUCIQD9gTYAqy8H027yCaZz1bAtVRcUzmWNwJeCFpo468bifwIgYQXLl3sbVeV7FSpzhzX6s9e3ZkUQgNt4+Un05GOjlg4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":97545},"main":"dist/index.cjs.js","type":"module","types":"dist/index.d.ts","module":"dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"}},"gitHead":"30af933e5b212afbbd35f05f49e97c36b1332bc3","scripts":{"dev":"vite examples/basic","test":"bun run build && bun run test:run","build":"bun run clean && bun run build:types && bun run build:vite","clean":"rm -rf dist","test:run":"bun test","build:vite":"vite build","build:types":"tsc -p tsconfig.build.json","prepublishOnly":"bun run build && bun run test"},"_npmUser":{"name":"saluana","email":"bgb277@gmail.com"},"repository":{"url":"git+https://github.com/Saluana/streamdown-vue.git","type":"git"},"_npmVersion":"10.8.2","description":"Streamdown-style streaming Markdown renderer for Vue 3/Nuxt 3 with Shiki, KaTeX, Mermaid, and secure streaming helpers.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.2","dependencies":{"katex":"^0.16.22","shiki":"^3.12.1","marked":"^16.2.1","mermaid":"^11.10.1","unified":"^11.0.5","remark-gfm":"^4.0.1","remark-math":"^6.0.0","rehype-katex":"^7.0.1","remark-parse":"^11.0.0","remark-rehype":"^11.1.2","lucide-vue-next":"^0.542.0","hast-util-to-text":"^4.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.21","vite":"^7.1.4","@vue/test-utils":"2","vite-plugin-dts":"^4.5.4","@vitejs/plugin-vue":"^6.0.1","@vue/server-renderer":"^3.5.21"},"peerDependencies":{"vue":"^3.5.21","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/streamdown-vue_1.0.21_1757983011470_0.6750614765493472","host":"s3://npm-registry-packages-npm-production"}},"1.0.22":{"name":"streamdown-vue","version":"1.0.22","keywords":["vue","markdown","streaming","streamdown","katex","mermaid","syntax-highlighting"],"author":{"name":"@Saluana"},"license":"Apache-2.0","_id":"streamdown-vue@1.0.22","maintainers":[{"name":"saluana","email":"bgb277@gmail.com"}],"homepage":"https://github.com/Saluana/streamdown-vue#readme","bugs":{"url":"https://github.com/Saluana/streamdown-vue/issues"},"dist":{"shasum":"9387f75b18e5974895dd4a94c883ffdba3a93041","tarball":"https://registry.npmjs.org/streamdown-vue/-/streamdown-vue-1.0.22.tgz","fileCount":6,"integrity":"sha512-AGjOG4TiM7w8cXJB3Pi8UFCp2q5Zd2epE5oFD9+xfvrpNA8mxjwg4DD+GhPXHxAVKrHiieViXjJKHpbFWHvWeg==","signatures":[{"sig":"MEQCICpnn+BQR97JhFlwzMPtoSeMYQHgeu51TQ9sKu7TcloEAiBvt/gSmAk/CSdxUvE/EOAMlutU27UtY+/txP3MZK3+lA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":101091},"main":"dist/index.cjs.js","type":"module","types":"dist/index.d.ts","module":"dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"}},"gitHead":"99ae1b8f93e64cee18c92e3992db430ca3e3b7bd","scripts":{"dev":"vite examples/basic","test":"bun run build && bun run test:run","build":"bun run clean && bun run build:types && bun run build:vite","clean":"rm -rf dist","test:run":"bun test","build:vite":"vite build","build:types":"tsc -p tsconfig.build.json","prepublishOnly":"bun run build && bun run test"},"_npmUser":{"name":"saluana","email":"bgb277@gmail.com"},"repository":{"url":"git+https://github.com/Saluana/streamdown-vue.git","type":"git"},"_npmVersion":"10.8.2","description":"Streamdown-style streaming Markdown renderer for Vue 3/Nuxt 3 with Shiki, KaTeX, Mermaid, and secure streaming helpers.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.2","dependencies":{"katex":"^0.16.22","shiki":"^3.12.1","marked":"^16.2.1","mermaid":"^11.10.1","unified":"^11.0.5","remark-gfm":"^4.0.1","remark-math":"^6.0.0","rehype-katex":"^7.0.1","remark-parse":"^11.0.0","remark-rehype":"^11.1.2","lucide-vue-next":"^0.542.0","hast-util-to-text":"^4.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.21","vite":"^7.1.4","@vue/test-utils":"2","vite-plugin-dts":"^4.5.4","@vitejs/plugin-vue":"^6.0.1","@vue/server-renderer":"^3.5.21"},"peerDependencies":{"vue":"^3.5.21","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/streamdown-vue_1.0.22_1761497666943_0.2590764582288958","host":"s3://npm-registry-packages-npm-production"}},"1.0.23":{"name":"streamdown-vue","version":"1.0.23","keywords":["vue","markdown","streaming","streamdown","katex","mermaid","syntax-highlighting"],"author":{"name":"@Saluana"},"license":"Apache-2.0","_id":"streamdown-vue@1.0.23","maintainers":[{"name":"saluana","email":"bgb277@gmail.com"}],"homepage":"https://github.com/Saluana/streamdown-vue#readme","bugs":{"url":"https://github.com/Saluana/streamdown-vue/issues"},"dist":{"shasum":"1e46f49f0e4846b6f82c6a54932d8007720b688e","tarball":"https://registry.npmjs.org/streamdown-vue/-/streamdown-vue-1.0.23.tgz","fileCount":6,"integrity":"sha512-jvxD0VtemxbdpvA9siN5BE+lWMvrbraCTLv8JGVSAOQe5wVfsACa6Y1Tph3M1RLfBHmHapylUTnNHF9LGOlNcQ==","signatures":[{"sig":"MEQCIEisniriTS5q8t7aEc5Woe2so8jOLRQnR7Tl4Ly5Se6EAiB6EicZ6LE9Tt9b7L2qZavl5Kgen1keXgLpWZaYI1kS3g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":102993},"main":"dist/index.cjs.js","type":"module","types":"dist/index.d.ts","module":"dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"}},"gitHead":"99ae1b8f93e64cee18c92e3992db430ca3e3b7bd","scripts":{"dev":"vite examples/basic","test":"bun run build && bun run test:run","build":"bun run clean && bun run build:types && bun run build:vite","clean":"rm -rf dist","test:run":"bun test","build:vite":"vite build","build:types":"tsc -p tsconfig.build.json","prepublishOnly":"bun run build && bun run test"},"_npmUser":{"name":"saluana","email":"bgb277@gmail.com"},"repository":{"url":"git+https://github.com/Saluana/streamdown-vue.git","type":"git"},"_npmVersion":"10.8.2","description":"Streamdown-style streaming Markdown renderer for Vue 3/Nuxt 3 with Shiki, KaTeX, Mermaid, and secure streaming helpers.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.2","dependencies":{"katex":"^0.16.22","shiki":"^3.12.1","marked":"^16.2.1","mermaid":"^11.10.1","unified":"^11.0.5","remark-gfm":"^4.0.1","remark-math":"^6.0.0","rehype-katex":"^7.0.1","remark-parse":"^11.0.0","remark-rehype":"^11.1.2","lucide-vue-next":"^0.542.0","hast-util-to-text":"^4.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.21","vite":"^7.1.4","@vue/test-utils":"2","vite-plugin-dts":"^4.5.4","@vitejs/plugin-vue":"^6.0.1","@vue/server-renderer":"^3.5.21"},"peerDependencies":{"vue":"^3.5.21","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/streamdown-vue_1.0.23_1761499042210_0.8015600570238404","host":"s3://npm-registry-packages-npm-production"}},"1.0.25":{"name":"streamdown-vue","version":"1.0.25","keywords":["vue","markdown","streaming","streamdown","katex","mermaid","syntax-highlighting"],"author":{"name":"@Saluana"},"license":"Apache-2.0","_id":"streamdown-vue@1.0.25","maintainers":[{"name":"saluana","email":"bgb277@gmail.com"}],"homepage":"https://github.com/Saluana/streamdown-vue#readme","bugs":{"url":"https://github.com/Saluana/streamdown-vue/issues"},"dist":{"shasum":"60130e77eca5aa65832dd3fb07f3bc049332ff0c","tarball":"https://registry.npmjs.org/streamdown-vue/-/streamdown-vue-1.0.25.tgz","fileCount":11,"integrity":"sha512-bfzpYcXWD5BS7CWSOUBdSkv9gLRNM+nwf8iKKeLOs08v4YCBgztB5JGl0rocjtEBE6viciX8HQQVsA84HQ8ERw==","signatures":[{"sig":"MEYCIQC3xMUwwSFSh3ou29xPFORo76T73aykY43gZgwQZv+srgIhANJLWwldhm/I87U9eDkMGpuOf2pl9RK3nFy9m/wEHbTy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":122343},"main":"dist/index.cjs.js","type":"module","types":"dist/index.d.ts","module":"dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"},"./core":{"types":"./dist/core.d.ts","import":"./dist/core.es.js","require":"./dist/core.cjs.js"}},"gitHead":"99ae1b8f93e64cee18c92e3992db430ca3e3b7bd","scripts":{"dev":"vite examples/basic","test":"bun run build && bun run test:run","build":"bun run clean && bun run build:types && bun run build:vite","clean":"rm -rf dist","test:run":"bun test","build:vite":"vite build","build:types":"tsc -p tsconfig.build.json","prepublishOnly":"bun run build && bun run test"},"_npmUser":{"name":"saluana","email":"bgb277@gmail.com"},"repository":{"url":"git+https://github.com/Saluana/streamdown-vue.git","type":"git"},"_npmVersion":"10.8.2","description":"Streamdown-style streaming Markdown renderer for Vue 3/Nuxt 3 with Shiki, KaTeX, Mermaid, and secure streaming helpers.","directories":{},"sideEffects":["./dist/index.es.js","./dist/index.cjs.js"],"_nodeVersion":"20.19.2","dependencies":{"katex":"^0.16.22","shiki":"^3.12.1","marked":"^16.2.1","mermaid":"^11.10.1","unified":"^11.0.5","remark-gfm":"^4.0.1","remark-math":"^6.0.0","rehype-katex":"^7.0.1","remark-parse":"^11.0.0","remark-rehype":"^11.1.2","@shikijs/langs":"^3.12.1","@shikijs/themes":"^3.12.1","lucide-vue-next":"^0.542.0","hast-util-to-text":"^4.0.2","vite-bundle-visualizer":"^1.2.1","@shikijs/engine-javascript":"^3.12.1"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.21","vite":"^7.1.4","@vue/test-utils":"2","vite-plugin-dts":"^4.5.4","@vitejs/plugin-vue":"^6.0.1","@vue/server-renderer":"^3.5.21"},"peerDependencies":{"vue":"^3.5.21","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/streamdown-vue_1.0.25_1761617169921_0.703987484541688","host":"s3://npm-registry-packages-npm-production"}},"1.0.26":{"name":"streamdown-vue","version":"1.0.26","keywords":["vue","markdown","streaming","streamdown","katex","mermaid","syntax-highlighting"],"author":{"name":"@Saluana"},"license":"Apache-2.0","_id":"streamdown-vue@1.0.26","maintainers":[{"name":"saluana","email":"bgb277@gmail.com"}],"homepage":"https://github.com/Saluana/streamdown-vue#readme","bugs":{"url":"https://github.com/Saluana/streamdown-vue/issues"},"dist":{"shasum":"5e49cf91b38f254fd6990567003105df81e26ab5","tarball":"https://registry.npmjs.org/streamdown-vue/-/streamdown-vue-1.0.26.tgz","fileCount":12,"integrity":"sha512-o4fYlx5yZ0leWZg87DDHZgkRnf/FVUpIqbPTTVRUvwYD6nljJ6EX+FcTw6tX0J6vS949ZkaWyRlfhXfVflGVwg==","signatures":[{"sig":"MEUCIQCrGPerqXkVL6feadHLCaI+foT3ARxLGdPCsaAy5intGQIgCt1QnnCXDUf5pvLTJ6u4ht2J8S2N4ShVfSUOxADIYOg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":135219},"main":"dist/index.cjs.js","type":"module","types":"dist/index.d.ts","module":"dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"},"./core":{"types":"./dist/core.d.ts","import":"./dist/core.es.js","require":"./dist/core.cjs.js"},"./style.css":"./src/style.css"},"gitHead":"7ebf9dc2ded8bd5289370b4f98169aefff298d68","scripts":{"dev":"vite examples/basic","test":"bun run build && bun run test:run","build":"bun run clean && bun run build:types && bun run build:vite","clean":"rm -rf dist","test:run":"bun test","build:vite":"vite build","build:types":"tsc -p tsconfig.build.json","prepublishOnly":"bun run build && bun run test"},"_npmUser":{"name":"saluana","email":"bgb277@gmail.com"},"repository":{"url":"git+https://github.com/Saluana/streamdown-vue.git","type":"git"},"_npmVersion":"10.8.2","description":"Streamdown-style streaming Markdown renderer for Vue 3/Nuxt 3 with Shiki, KaTeX, Mermaid, and secure streaming helpers.","directories":{},"sideEffects":["./dist/index.es.js","./dist/index.cjs.js"],"_nodeVersion":"20.19.2","dependencies":{"katex":"^0.16.22","shiki":"^3.12.1","marked":"^16.2.1","mermaid":"^11.10.1","unified":"^11.0.5","remark-gfm":"^4.0.1","remark-math":"^6.0.0","rehype-katex":"^7.0.1","remark-parse":"^11.0.0","remark-rehype":"^11.1.2","@shikijs/langs":"^3.12.1","@shikijs/themes":"^3.12.1","lucide-vue-next":"^0.542.0","hast-util-to-text":"^4.0.2","vite-bundle-visualizer":"^1.2.1","@shikijs/engine-javascript":"^3.12.1"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.21","vite":"^7.1.4","@vue/test-utils":"2","vite-plugin-dts":"^4.5.4","@vitejs/plugin-vue":"^6.0.1","@vue/server-renderer":"^3.5.21"},"peerDependencies":{"vue":"^3.5.21","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/streamdown-vue_1.0.26_1763921627651_0.1090580882368768","host":"s3://npm-registry-packages-npm-production"}},"1.0.27":{"name":"streamdown-vue","version":"1.0.27","keywords":["vue","markdown","streaming","streamdown","katex","mermaid","syntax-highlighting"],"author":{"name":"@Saluana"},"license":"Apache-2.0","_id":"streamdown-vue@1.0.27","maintainers":[{"name":"saluana","email":"bgb277@gmail.com"}],"homepage":"https://github.com/Saluana/streamdown-vue#readme","bugs":{"url":"https://github.com/Saluana/streamdown-vue/issues"},"dist":{"shasum":"6be6edf12715254e25489caab8e461da51787dad","tarball":"https://registry.npmjs.org/streamdown-vue/-/streamdown-vue-1.0.27.tgz","fileCount":12,"integrity":"sha512-l+ZhQ3ZEKuwxA/r8UBKVgrETUegXcnpWHyNyNk7QSDfQ01y0FCLia85fNNtRJFPK5L/nsHi4V6RnMiPj6FkMmA==","signatures":[{"sig":"MEYCIQCoGbE6LhYikSj5x4BDAdrpNumaUaFqCPfJclytUs1m8gIhAJZRM4iI6v5Mj4EXAPrKKBPJMvq4bwg42afxZ55h/aIF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":132694},"main":"dist/index.cjs.js","type":"module","types":"dist/index.d.ts","module":"dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"},"./core":{"types":"./dist/core.d.ts","import":"./dist/core.es.js","require":"./dist/core.cjs.js"},"./style.css":"./dist/style.css"},"gitHead":"7ebf9dc2ded8bd5289370b4f98169aefff298d68","scripts":{"dev":"vite examples/basic","test":"bun run build && bun run test:run","build":"bun run clean && bun run build:types && bun run build:vite && bun run build:css","clean":"rm -rf dist","test:run":"bun test","build:css":"node build-css.mjs","build:vite":"vite build","build:types":"tsc -p tsconfig.build.json","prepublishOnly":"bun run build && bun run test"},"_npmUser":{"name":"saluana","email":"bgb277@gmail.com"},"repository":{"url":"git+https://github.com/Saluana/streamdown-vue.git","type":"git"},"_npmVersion":"10.8.2","description":"Streamdown-style streaming Markdown renderer for Vue 3/Nuxt 3 with Shiki, KaTeX, Mermaid, and secure streaming helpers.","directories":{},"sideEffects":["./dist/index.es.js","./dist/index.cjs.js"],"_nodeVersion":"20.19.2","dependencies":{"katex":"^0.16.22","shiki":"^3.12.1","marked":"^16.2.1","mermaid":"^11.10.1","unified":"^11.0.5","remark-gfm":"^4.0.1","remark-math":"^6.0.0","rehype-katex":"^7.0.1","remark-parse":"^11.0.0","remark-rehype":"^11.1.2","@shikijs/langs":"^3.12.1","@shikijs/themes":"^3.12.1","lucide-vue-next":"^0.542.0","hast-util-to-text":"^4.0.2","vite-bundle-visualizer":"^1.2.1","@shikijs/engine-javascript":"^3.12.1"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.21","vite":"^7.1.4","lightningcss":"^1.30.2","@vue/test-utils":"2","vite-plugin-dts":"^4.5.4","@vitejs/plugin-vue":"^6.0.1","@vue/server-renderer":"^3.5.21"},"peerDependencies":{"vue":"^3.5.21","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/streamdown-vue_1.0.27_1763921972680_0.1744858439594954","host":"s3://npm-registry-packages-npm-production"}},"1.0.28":{"name":"streamdown-vue","version":"1.0.28","keywords":["vue","markdown","streaming","streamdown","katex","mermaid","syntax-highlighting"],"author":{"name":"@Saluana"},"license":"Apache-2.0","_id":"streamdown-vue@1.0.28","maintainers":[{"name":"saluana","email":"bgb277@gmail.com"}],"homepage":"https://github.com/Saluana/streamdown-vue#readme","bugs":{"url":"https://github.com/Saluana/streamdown-vue/issues"},"dist":{"shasum":"1ad4fe02d09a4057fa8b6560485542db09886a89","tarball":"https://registry.npmjs.org/streamdown-vue/-/streamdown-vue-1.0.28.tgz","fileCount":12,"integrity":"sha512-ZqG758DfXJ9jvxzZrqU6Z5/EbHXbpVMo0Sdo9D4fdQyp94p1pVtU5WD0gjiF3yV2ye36fONL+SolyPkcmBwntg==","signatures":[{"sig":"MEUCIGP4hP3lmmr5dfy6NvErhVGiUSQQtw8SB5b4OKhdXsUUAiEAkcZLcIDgFX4S4MVU0Jg6NoVmGo3JRoYdRYhtL1DiOqk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":135974},"main":"dist/index.cjs.js","type":"module","types":"dist/index.d.ts","module":"dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"},"./core":{"types":"./dist/core.d.ts","import":"./dist/core.es.js","require":"./dist/core.cjs.js"},"./style.css":"./dist/style.css"},"gitHead":"f3bfa803586e55feed78199f00bb6fff61ebcd6d","scripts":{"dev":"vite examples/basic","test":"bun run build && bun run test:run","build":"bun run clean && bun run build:types && bun run build:vite && bun run build:css","clean":"rm -rf dist","test:run":"bun test","build:css":"node build-css.mjs","build:vite":"vite build","build:types":"tsc -p tsconfig.build.json","prepublishOnly":"bun run build && bun run test"},"_npmUser":{"name":"saluana","email":"bgb277@gmail.com"},"repository":{"url":"git+https://github.com/Saluana/streamdown-vue.git","type":"git"},"_npmVersion":"10.8.2","description":"Streamdown-style streaming Markdown renderer for Vue 3/Nuxt 3 with Shiki, KaTeX, Mermaid, and secure streaming helpers.","directories":{},"sideEffects":["./dist/index.es.js","./dist/index.cjs.js"],"_nodeVersion":"20.19.2","dependencies":{"katex":"^0.16.22","shiki":"^3.12.1","marked":"^16.2.1","mermaid":"^11.10.1","unified":"^11.0.5","remark-gfm":"^4.0.1","remark-math":"^6.0.0","rehype-katex":"^7.0.1","remark-parse":"^11.0.0","remark-rehype":"^11.1.2","@shikijs/langs":"^3.12.1","@shikijs/themes":"^3.12.1","lucide-vue-next":"^0.542.0","hast-util-to-text":"^4.0.2","vite-bundle-visualizer":"^1.2.1","@shikijs/engine-javascript":"^3.12.1"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.21","vite":"^7.1.4","lightningcss":"^1.30.2","@vue/test-utils":"2","vite-plugin-dts":"^4.5.4","@vitejs/plugin-vue":"^6.0.1","@vue/server-renderer":"^3.5.21"},"peerDependencies":{"vue":"^3.5.21","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/streamdown-vue_1.0.28_1763932913557_0.17057357033775622","host":"s3://npm-registry-packages-npm-production"}},"1.0.29":{"name":"streamdown-vue","version":"1.0.29","keywords":["vue","markdown","streaming","streamdown","katex","mermaid","syntax-highlighting"],"author":{"name":"@Saluana"},"license":"Apache-2.0","_id":"streamdown-vue@1.0.29","maintainers":[{"name":"saluana","email":"bgb277@gmail.com"}],"homepage":"https://github.com/Saluana/streamdown-vue#readme","bugs":{"url":"https://github.com/Saluana/streamdown-vue/issues"},"dist":{"shasum":"686630195560e0d43715b50dd765dd71660edb43","tarball":"https://registry.npmjs.org/streamdown-vue/-/streamdown-vue-1.0.29.tgz","fileCount":12,"integrity":"sha512-0QEelqFvLcCMkI5Oy23c/qOsVl+JOG4wXVox3P9zH59Hc88APslVdwBD4TTMweRTSZYeV1GOUYRF6PYWudRZsA==","signatures":[{"sig":"MEYCIQDUYR+WzTpXjsDDBJivBeRg695ucZRKHk9YbWJtmZPddQIhALPTRdrG7o0+aKz9mFTLZKs1rnLCTTfC7bfRzcXHVj0a","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":135974},"main":"dist/index.cjs.js","type":"module","types":"dist/index.d.ts","module":"dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs.js"},"./core":{"types":"./dist/core.d.ts","import":"./dist/core.es.js","require":"./dist/core.cjs.js"},"./style.css":"./dist/style.css"},"gitHead":"d9db3c5ad9536bd7738df9963189febdbee1b7ed","scripts":{"dev":"vite examples/basic","test":"bun run build && bun run test:run","build":"bun run clean && bun run build:types && bun run build:vite && bun run build:css","clean":"rm -rf dist","test:run":"bun test","build:css":"node build-css.mjs","build:vite":"vite build","build:types":"tsc -p tsconfig.build.json","prepublishOnly":"bun run build && bun run test"},"_npmUser":{"name":"saluana","email":"bgb277@gmail.com"},"repository":{"url":"git+https://github.com/Saluana/streamdown-vue.git","type":"git"},"_npmVersion":"10.8.2","description":"Streamdown-style streaming Markdown renderer for Vue 3/Nuxt 3 with Shiki, KaTeX, Mermaid, and secure streaming helpers.","directories":{},"sideEffects":["./dist/index.es.js","./dist/index.cjs.js"],"_nodeVersion":"20.19.2","dependencies":{"katex":"^0.16.22","shiki":"^3.12.1","marked":"^16.2.1","mermaid":"^11.10.1","unified":"^11.0.5","remark-gfm":"^4.0.1","remark-math":"^6.0.0","rehype-katex":"^7.0.1","remark-parse":"^11.0.0","remark-rehype":"^11.1.2","@shikijs/langs":"^3.12.1","@shikijs/themes":"^3.12.1","lucide-vue-next":"^0.542.0","hast-util-to-text":"^4.0.2","@shikijs/engine-javascript":"^3.12.1"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.21","vite":"^7.1.4","lightningcss":"^1.30.2","@vue/test-utils":"2","vite-plugin-dts":"^4.5.4","@vitejs/plugin-vue":"^6.0.1","@vue/server-renderer":"^3.5.21","vite-bundle-visualizer":"^1.2.1"},"peerDependencies":{"vue":"^3.5.21","typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/streamdown-vue_1.0.29_1763933592566_0.5191676043209663","host":"s3://npm-registry-packages-npm-production"}},"1.0.30":{"name":"streamdown-vue","version":"1.0.30","keywords":["vue","markdown","streaming","streamdown","katex","mermaid","syntax-highlighting"],"author":{"name":"@Saluana"},"license":"Apache-2.0","_id":"streamdown-vue@1.0.30","maintainers":[{"name":"saluana","email":"bgb277@gmail.com"}],"homepage":"https://github.com/Saluana/streamdown-vue#readme","bugs":{"url":"https://github.com/Saluana/streamdown-vue/issues"},"dist":{"shasum":"1a8416b1514626aa8d3552d31f45f554205409ec","tarball":"https://registry.npmjs.org/streamdown-vue/-/streamdown-vue-1.0.30.tgz","fileCount":30,"integrity":"sha512-MscR1V55LW8gtAqBGHosXChkFaRhmOSSWJBPWV452lugBuMiA8FjZ5im0O1Zwu+ZVdc326zv4B08gkb8Ae8zTQ==","signatures":[{"sig":"MEUCIQCHH1c8M5gXomjDxz1/1GndIymMQx+ONFM1ikfrOxBcKQIgHQ+GYPz6miQYPfYxhtHPZ4A+4QxqCYZ/mKgMnIn1Jh0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":128952},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs"},"./core":{"types":"./dist/core.d.ts","import":"./dist/core.es.js","require":"./dist/core.cjs"},"./style.css":"./dist/style.css"},"gitHead":"efeb6f3505969f6b0fee733aa3ba66eda07579b3","scripts":{"dev":"vite examples/basic --config vite.config.ts","test":"bun run build && bun run test:run && bun run test:package","build":"bun run clean && bun run build:types && bun run build:vite && bun run build:css","clean":"rm -rf dist","test:run":"bun test","build:css":"node build-css.mjs","typecheck":"tsc -p tsconfig.json","build:vite":"vite build","build:types":"tsc -p tsconfig.build.json","test:package":"node tests/package-consumer-smoke.mjs","dev:hydration":"vite examples/hydration --config vite.config.ts","prepublishOnly":"bun run test"},"_npmUser":{"name":"saluana","email":"bgb277@gmail.com"},"repository":{"url":"git+https://github.com/Saluana/streamdown-vue.git","type":"git"},"_npmVersion":"11.17.0","description":"Streamdown-style streaming Markdown renderer for Vue 3/Nuxt 3 with Shiki, KaTeX, Mermaid, and secure streaming helpers.","directories":{},"sideEffects":["./dist/index.es.js","./dist/index.cjs"],"_nodeVersion":"26.5.1","dependencies":{"katex":"^0.18.5","shiki":"^4.4.3","marked":"^18.0.11","mermaid":"^11.17.2","unified":"^11.0.5","remark-gfm":"^4.0.1","@lucide/vue":"^1.38.0","remark-math":"^6.0.0","rehype-katex":"^7.0.1","remark-parse":"^11.0.0","remark-rehype":"^11.1.2","@shikijs/langs":"^4.4.3","@shikijs/themes":"^4.4.3","hast-util-to-text":"^4.0.2","@shikijs/engine-javascript":"^4.4.3"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.42","vite":"^8.2.2","bun-types":"^1.4.0","typescript":"^6.0.2","@types/node":"^26.4.0","lightningcss":"^1.33.0","@vue/test-utils":"^2.5.0","@vitejs/plugin-vue":"^6.0.8","@vue/server-renderer":"^3.5.42","vite-bundle-visualizer":"^1.2.1"},"peerDependencies":{"vue":"^3.5.21","typescript":">=5.0.0 <8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/streamdown-vue_1.0.30_1788223375872_0.7613494213331768","host":"s3://npm-registry-packages-npm-production"}},"1.0.31":{"name":"streamdown-vue","version":"1.0.31","keywords":["vue","markdown","streaming","streamdown","katex","mermaid","syntax-highlighting"],"author":{"name":"@Saluana"},"license":"Apache-2.0","_id":"streamdown-vue@1.0.31","maintainers":[{"name":"saluana","email":"bgb277@gmail.com"}],"homepage":"https://github.com/Saluana/streamdown-vue#readme","bugs":{"url":"https://github.com/Saluana/streamdown-vue/issues"},"dist":{"shasum":"2e12a317d10481ab3a68ce395b6ab325df025af0","tarball":"https://registry.npmjs.org/streamdown-vue/-/streamdown-vue-1.0.31.tgz","fileCount":30,"integrity":"sha512-tS7ZxDm4uGAio6bDnzVjevr0Gr//hQYQQbh7w1hohUUEVtmB824rL0ZIFxn6ET34PnQck+5Tck0chxTcTAYCEA==","signatures":[{"sig":"MEUCIFKsH20CFsdxrz9xzxF1AaY542cm1brbXe+MPp6P3LdcAiEAhkHOkkV1dHD0I8oiZCWzV3J7C4yeNYPA7qUuCki1VKM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":130413},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs"},"./core":{"types":"./dist/core.d.ts","import":"./dist/core.es.js","require":"./dist/core.cjs"},"./style.css":"./dist/style.css"},"gitHead":"6bf372f8f13e9dfddaa4213e0a00a568b3af8cec","scripts":{"dev":"vite examples/basic --config vite.config.ts","test":"bun run build && bun run test:run && bun run test:package","build":"bun run clean && bun run build:types && bun run build:vite && bun run build:css","clean":"rm -rf dist","test:run":"bun test","build:css":"node build-css.mjs","typecheck":"tsc -p tsconfig.json","build:vite":"vite build","build:types":"tsc -p tsconfig.build.json","test:package":"node tests/package-consumer-smoke.mjs","dev:hydration":"vite examples/hydration --config vite.config.ts","prepublishOnly":"bun run test"},"_npmUser":{"name":"saluana","email":"bgb277@gmail.com"},"repository":{"url":"git+https://github.com/Saluana/streamdown-vue.git","type":"git"},"_npmVersion":"11.17.0","description":"Streamdown-style streaming Markdown renderer for Vue 3/Nuxt 3 with Shiki, KaTeX, Mermaid, and secure streaming helpers.","directories":{},"sideEffects":["./dist/index.es.js","./dist/index.cjs"],"_nodeVersion":"26.5.1","dependencies":{"katex":"^0.18.5","shiki":"^4.4.3","marked":"^18.0.11","mermaid":"^11.17.2","unified":"^11.0.5","remark-gfm":"^4.0.1","@lucide/vue":"^1.38.0","remark-math":"^6.0.0","rehype-katex":"^7.0.1","remark-parse":"^11.0.0","remark-rehype":"^11.1.2","@shikijs/langs":"^4.4.3","@shikijs/themes":"^4.4.3","hast-util-to-text":"^4.0.2","@shikijs/engine-javascript":"^4.4.3"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.42","vite":"^8.2.2","bun-types":"^1.4.0","typescript":"^6.0.2","@types/node":"^26.4.0","lightningcss":"^1.33.0","@vue/test-utils":"^2.5.0","@vitejs/plugin-vue":"^6.0.8","@vue/server-renderer":"^3.5.42","vite-bundle-visualizer":"^1.2.1"},"peerDependencies":{"vue":"^3.5.21","typescript":">=5.0.0 <8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/streamdown-vue_1.0.31_1788825543562_0.08777975914092995","host":"s3://npm-registry-packages-npm-production"}},"1.0.32":{"name":"streamdown-vue","version":"1.0.32","keywords":["vue","markdown","streaming","streamdown","katex","mermaid","syntax-highlighting"],"author":{"name":"@Saluana"},"license":"Apache-2.0","_id":"streamdown-vue@1.0.32","maintainers":[{"name":"saluana","email":"bgb277@gmail.com"}],"homepage":"https://github.com/Saluana/streamdown-vue#readme","bugs":{"url":"https://github.com/Saluana/streamdown-vue/issues"},"dist":{"shasum":"ce874a1d1941790746f5308a62fdcd0ae1111e99","tarball":"https://registry.npmjs.org/streamdown-vue/-/streamdown-vue-1.0.32.tgz","fileCount":30,"integrity":"sha512-DSU8X0gzcbyAAyCyOeexZqnMMSYmDY/EXTX8WnaIEiG2Cw1Zu6OQMZ/w1hRwN6YNoqO7mzgBXmmuClnA8cP4Lg==","signatures":[{"sig":"MEUCIBDHwWK/QqR6GgF+bjnRzMdmQ2v1Z1L84rLxDb+NaeK2AiEAhfvRX53+z4d1yDuN9bFvyFw5BONmmpIuhMlzN6eS98c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":130413},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs"},"./core":{"types":"./dist/core.d.ts","import":"./dist/core.es.js","require":"./dist/core.cjs"},"./style.css":"./dist/style.css"},"gitHead":"f246405e3171266abc8971b1a85ba43dd1d2703f","scripts":{"dev":"vite examples/basic --config vite.config.ts","test":"bun run build && bun run test:run && bun run test:package","build":"bun run clean && bun run build:types && bun run build:vite && bun run build:css","clean":"rm -rf dist","test:run":"bun test","build:css":"node build-css.mjs","typecheck":"tsc -p tsconfig.json","build:vite":"vite build","build:types":"tsc -p tsconfig.build.json","test:package":"node tests/package-consumer-smoke.mjs","dev:hydration":"vite examples/hydration --config vite.config.ts","prepublishOnly":"bun run test"},"_npmUser":{"name":"saluana","email":"bgb277@gmail.com"},"repository":{"url":"git+https://github.com/Saluana/streamdown-vue.git","type":"git"},"_npmVersion":"11.17.0","description":"Streamdown-style streaming Markdown renderer for Vue 3/Nuxt 3 with Shiki, KaTeX, Mermaid, and secure streaming helpers.","directories":{},"sideEffects":["./dist/index.es.js","./dist/index.cjs"],"_nodeVersion":"26.5.1","dependencies":{"katex":"^0.18.7","shiki":"^4.4.3","marked":"^18.0.11","mermaid":"^11.17.2","unified":"^11.0.5","remark-gfm":"^4.0.1","@lucide/vue":"^1.42.0","remark-math":"^6.0.0","rehype-katex":"^7.0.1","remark-parse":"^11.0.0","remark-rehype":"^11.1.2","@shikijs/langs":"^4.4.3","@shikijs/themes":"^4.4.3","hast-util-to-text":"^4.0.2","@shikijs/engine-javascript":"^4.4.3"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.42","vite":"^8.2.2","bun-types":"^1.4.2","typescript":"^6.0.2","@types/node":"^26.4.1","lightningcss":"^1.33.0","@vue/test-utils":"^2.5.0","@vitejs/plugin-vue":"^6.0.8","@vue/server-renderer":"^3.5.42","vite-bundle-visualizer":"^1.2.1"},"peerDependencies":{"vue":"^3.5.21","typescript":">=5.0.0 <8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/streamdown-vue_1.0.32_1788825676230_0.726353151564326","host":"s3://npm-registry-packages-npm-production"}},"1.0.33":{"name":"streamdown-vue","version":"1.0.33","keywords":["vue","markdown","streaming","streamdown","katex","mermaid","syntax-highlighting"],"author":{"name":"@Saluana"},"license":"Apache-2.0","_id":"streamdown-vue@1.0.33","maintainers":[{"name":"saluana","email":"bgb277@gmail.com"}],"homepage":"https://github.com/Saluana/streamdown-vue#readme","bugs":{"url":"https://github.com/Saluana/streamdown-vue/issues"},"dist":{"shasum":"e0bbb4d0950326f561b9966d181bf9f7cf6a16ab","tarball":"https://registry.npmjs.org/streamdown-vue/-/streamdown-vue-1.0.33.tgz","fileCount":30,"integrity":"sha512-RYEABTDAmekoPMA6eJ3UAP9Ezv/vrx3cxbBY+HJcqSERssoi2BWnGFiHr3C63DZlUSt4C4t08PDpR4Cyh8d31A==","signatures":[{"sig":"MEYCIQDoOEN8oVHYc8ikmWSJjKR91jskgaLjInyLl7/A3Qdw9QIhAIC3p2OlkZDzvRGD+g1e5Io0Evr78hTfqVj5rE1CSXAo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":137020},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs"},"./core":{"types":"./dist/core.d.ts","import":"./dist/core.es.js","require":"./dist/core.cjs"},"./style.css":"./dist/style.css"},"gitHead":"1b4dbf6fe942ab4c890d2a4cf4d56d7c1cc31d94","scripts":{"dev":"vite examples/basic --config vite.config.ts","test":"bun run build && bun run test:run && bun run test:package","build":"bun run clean && bun run build:types && bun run build:vite && bun run build:css","clean":"rm -rf dist","test:run":"bun test","build:css":"node build-css.mjs","typecheck":"tsc -p tsconfig.json","build:vite":"vite build","build:types":"tsc -p tsconfig.build.json","test:package":"node tests/package-consumer-smoke.mjs","dev:hydration":"vite examples/hydration --config vite.config.ts","profile:cache":"node scripts/profile-parse-cache.mjs","prepublishOnly":"bun run test","dev:performance":"vite examples/performance --config vite.config.ts --host 127.0.0.1"},"_npmUser":{"name":"saluana","email":"bgb277@gmail.com"},"repository":{"url":"git+https://github.com/Saluana/streamdown-vue.git","type":"git"},"_npmVersion":"11.17.0","description":"Streamdown-style streaming Markdown renderer for Vue 3/Nuxt 3 with Shiki, KaTeX, Mermaid, and secure streaming helpers.","directories":{},"sideEffects":["./dist/index.es.js","./dist/index.cjs"],"_nodeVersion":"26.5.1","dependencies":{"katex":"^0.18.7","shiki":"^4.4.3","marked":"^18.0.11","mermaid":"^11.17.2","unified":"^11.0.5","remark-gfm":"^4.0.1","@lucide/vue":"^1.42.0","remark-math":"^6.0.0","rehype-katex":"^7.0.1","remark-parse":"^11.0.0","remark-rehype":"^11.1.2","@shikijs/langs":"^4.4.3","@shikijs/themes":"^4.4.3","hast-util-to-text":"^4.0.2","@shikijs/engine-javascript":"^4.4.3"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.42","vite":"^8.2.2","bun-types":"^1.4.2","playwright":"1.61.1","typescript":"^6.0.2","@types/node":"^26.4.1","lightningcss":"^1.33.0","@vue/test-utils":"^2.5.0","@vitejs/plugin-vue":"^6.0.8","@vue/server-renderer":"^3.5.42","vite-bundle-visualizer":"^1.2.1"},"peerDependencies":{"vue":"^3.5.21","typescript":">=5.0.0 <8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/streamdown-vue_1.0.33_1789264229940_0.3904655306002054","host":"s3://npm-registry-packages-npm-production"}},"1.0.34":{"_id":"streamdown-vue@1.0.34","bugs":{"url":"https://github.com/Saluana/streamdown-vue/issues"},"dist":{"shasum":"46c2a3fe5e8d21ce70aec880e695590e92daa6c9","tarball":"https://registry.npmjs.org/streamdown-vue/-/streamdown-vue-1.0.34.tgz","fileCount":30,"integrity":"sha512-uZKGW7rWIm+9sqhEFNG1JcG2bKQuh/OO/ZTroKDjRQVUWDDaXeAWP4hJ0L19IMcsL6Rv0qQkyLhh9Hxr+KT76A==","signatures":[{"sig":"MEUCIDDTLtUGxnQmNsdWYCBYXREilNgRMJ/Re3kpG/VQtGGRAiEAmyqfMZMEGB1huw/lY4rfMaFuR0fLfnVGquY7IdqZwhU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIAyIvjJzziV/FQTYlfhAurT1/V6RhwVcc0PvYsMx+/cuAiEApUnh6b5zSwCCFrQUx7h/fcc4cmyZO+4ZdnhLexbNWLM="}],"unpackedSize":140200},"main":"dist/index.cjs","name":"streamdown-vue","type":"module","types":"dist/index.d.ts","author":{"name":"@Saluana"},"module":"dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.cjs"},"./core":{"types":"./dist/core.d.ts","import":"./dist/core.es.js","require":"./dist/core.cjs"},"./style.css":"./dist/style.css"},"gitHead":"a14f9ea4cc76b289599abb2b33e8bac483b32c0b","license":"Apache-2.0","scripts":{"dev":"vite examples/basic --config vite.config.ts","test":"bun run build && bun run test:run && bun run test:package","build":"bun run clean && bun run build:types && bun run build:vite && bun run build:css","clean":"rm -rf dist","test:run":"bun test","build:css":"node build-css.mjs","typecheck":"tsc -p tsconfig.json","build:vite":"vite build","build:types":"tsc -p tsconfig.build.json","test:package":"node tests/package-consumer-smoke.mjs","dev:hydration":"vite examples/hydration --config vite.config.ts","profile:cache":"node scripts/profile-parse-cache.mjs","prepublishOnly":"bun run test","dev:performance":"vite examples/performance --config vite.config.ts --host 127.0.0.1"},"version":"1.0.34","_npmUser":{"name":"saluana","email":"bgb277@gmail.com"},"homepage":"https://github.com/Saluana/streamdown-vue#readme","keywords":["vue","markdown","streaming","streamdown","katex","mermaid","syntax-highlighting"],"repository":{"url":"git+https://github.com/Saluana/streamdown-vue.git","type":"git"},"_npmVersion":"11.17.0","description":"Streamdown-style streaming Markdown renderer for Vue 3/Nuxt 3 with Shiki, KaTeX, Mermaid, and secure streaming helpers.","directories":{},"maintainers":[{"name":"saluana","email":"bgb277@gmail.com"}],"sideEffects":["./dist/index.es.js","./dist/index.cjs"],"_nodeVersion":"26.5.1","dependencies":{"katex":"^0.18.7","shiki":"^4.4.3","marked":"^18.0.11","mermaid":"^11.17.2","unified":"^11.0.5","remark-gfm":"^4.0.1","@lucide/vue":"^1.42.0","remark-math":"^6.0.0","rehype-katex":"^7.0.1","remark-parse":"^11.0.0","remark-rehype":"^11.1.2","@shikijs/langs":"^4.4.3","@shikijs/themes":"^4.4.3","hast-util-to-text":"^4.0.2","@shikijs/engine-javascript":"^4.4.3"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.42","vite":"^8.2.2","bun-types":"^1.4.2","playwright":"1.61.1","typescript":"^6.0.2","@types/node":"^26.4.1","lightningcss":"^1.33.0","@vue/test-utils":"^2.5.0","@vitejs/plugin-vue":"^6.0.8","@vue/server-renderer":"^3.5.42","vite-bundle-visualizer":"^1.2.1"},"peerDependencies":{"vue":"^3.5.21","typescript":">=5.0.0 <8.0.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/streamdown-vue_1.0.34_1790043809836_0.40884412291047645"}}},"time":{"created":"2025-09-02T23:21:12.430Z","modified":"2026-09-22T02:23:30.183Z","0.1.0":"2025-09-02T23:21:12.688Z","1.0.0":"2025-09-03T01:31:00.182Z","1.0.1":"2025-09-03T01:54:03.033Z","1.0.2":"2025-09-03T03:52:12.263Z","1.0.3":"2025-09-03T04:06:29.936Z","1.0.4":"2025-09-03T04:13:31.998Z","1.0.5":"2025-09-04T00:58:03.074Z","1.0.6":"2025-09-04T01:07:48.570Z","1.0.7":"2025-09-04T01:21:26.479Z","1.0.8":"2025-09-04T01:49:52.692Z","1.0.9":"2025-09-04T02:12:12.034Z","1.0.10":"2025-09-04T02:19:51.053Z","1.0.11":"2025-09-04T02:30:47.097Z","1.0.12":"2025-09-04T02:53:57.037Z","1.0.13":"2025-09-11T23:34:00.863Z","1.0.15":"2025-09-12T00:18:09.371Z","1.0.16":"2025-09-12T22:50:34.118Z","1.0.17":"2025-09-12T23:08:09.587Z","1.0.18":"2025-09-12T23:15:29.806Z","1.0.19":"2025-09-12T23:26:18.348Z","1.0.20":"2025-09-12T23:31:11.365Z","1.0.21":"2025-09-16T00:36:51.686Z","1.0.22":"2025-10-26T16:54:27.132Z","1.0.23":"2025-10-26T17:17:22.387Z","1.0.25":"2025-10-28T02:06:10.111Z","1.0.26":"2025-11-23T18:13:47.896Z","1.0.27":"2025-11-23T18:19:32.872Z","1.0.28":"2025-11-23T21:21:53.764Z","1.0.29":"2025-11-23T21:33:12.781Z","1.0.30":"2026-09-01T00:42:56.011Z","1.0.31":"2026-09-07T23:59:03.693Z","1.0.32":"2026-09-08T00:01:16.371Z","1.0.33":"2026-09-13T01:50:30.076Z","1.0.34":"2026-09-22T02:23:29.919Z"},"bugs":{"url":"https://github.com/Saluana/streamdown-vue/issues"},"author":{"name":"@Saluana"},"license":"Apache-2.0","homepage":"https://github.com/Saluana/streamdown-vue#readme","keywords":["vue","markdown","streaming","streamdown","katex","mermaid","syntax-highlighting"],"repository":{"url":"git+https://github.com/Saluana/streamdown-vue.git","type":"git"},"description":"Streamdown-style streaming Markdown renderer for Vue 3/Nuxt 3 with Shiki, KaTeX, Mermaid, and secure streaming helpers.","maintainers":[{"name":"saluana","email":"bgb277@gmail.com"}],"readme":"# streamdown-vue\n\n`streamdown-vue` brings [Streamdown](https://github.com/vercel/streamdown)-style streaming Markdown to Vue 3 & Nuxt 3. It ships a `<StreamMarkdown>` component that incrementally renders Markdown as it arrives (token‑by‑token, chunk‑by‑chunk), plus helper utilities to keep partially received text valid.\n\n---\n\n## Table of Contents\n\n1. Features\n2. Installation\n3. Quick Start (Basic SSR + CSR)\n4. Default Styling & Customization\n5. Deep Dive Tutorial (Streaming from an AI / SSE source)\n6. Props Reference (All `<StreamMarkdown>` props)\n7. Component Slots & Overrides\n8. Built‑in Components & Data Attributes\n9. Security Model (Link/Image hardening)\n10. Syntax Highlighting (Shiki), Copy / Download & Extensible Actions\n11. Mermaid Diagrams\n12. Math & LaTeX Fixes\n13. Utilities (`parseBlocks`, `parseIncompleteMarkdown`, LaTeX helpers)\n14. Performance Tips\n15. Nuxt 3 Usage & SSR Notes\n16. Recipe Gallery\n17. FAQ\n18. Development & Contributing\n\n---\n\n## 1. Features\n\n-   GitHub‑flavored Markdown (tables, task lists, strikethrough) via `remark-gfm`\n-   KaTeX math (`remark-math` + `rehype-katex`) with extra repairs (matrices, stray `$`)\n-   Shiki syntax highlighting (light + dark themes) with reactive copy & download buttons\n    and an extensible action bar (add your own buttons globally or per-instance)\n-   Mermaid diagrams with caching, async render & graceful error recovery\n-   Incremental rendering + repair of incomplete Markdown tokens while streaming\n-   Secure allow‑list based hardening of link & image URLs (blocks `javascript:` etc.)\n-   Component override layer (swap any tag / embed custom Vue components)\n-   Data attributes for each semantic element (`data-streamdown=\"...\"`) for styling/testing\n-   Designed for SSR (Vue / Nuxt) & fast hydration; tree‑shakable, side‑effects minimized\n\n---\n\n## 2. Installation\n\n### Bun\n\n```bash\nbun add streamdown-vue\n```\n\n### npm / pnpm / yarn\n\n```bash\nnpm install streamdown-vue\n# pnpm add streamdown-vue\n# yarn add streamdown-vue\n```\n\nYou must also install peer deps `vue` (and optionally `typescript`).\n\nInclude KaTeX stylesheet once (if you use math):\n\n```ts\nimport 'katex/dist/katex.min.css';\n```\n\n---\n\n## 3. Quick Start\n\n`main.ts`:\n\n```ts\nimport { createApp } from 'vue';\nimport App from './App.vue';\nimport 'katex/dist/katex.min.css';\ncreateApp(App).mount('#app');\n```\n\n`App.vue`:\n\n```vue\n<template>\n    <StreamMarkdown class=\"prose\" :content=\"markdown\" />\n</template>\n<script setup lang=\"ts\">\nimport { StreamMarkdown } from 'streamdown-vue';\nconst markdown = `# Hello\\n\\nSome *markdown* with $e^{i\\\\pi}+1=0$.`;\n</script>\n```\n\nSSR (server) minimal snippet:\n\n```ts\nimport { renderToString } from '@vue/server-renderer';\nimport { createSSRApp, h } from 'vue';\nimport { StreamMarkdown } from 'streamdown-vue';\n\nconst app = createSSRApp({\n    render: () => h(StreamMarkdown, { content: '# SSR' }),\n});\nconst html = await renderToString(app);\n```\n\n---\n\n## 4. Default Styling & Customization\n\n### Importing the Default Stylesheet\n\n`streamdown-vue` ships with an optional built-in stylesheet that provides clean, neutral, and compact styling for all markdown elements. To use it:\n\n```ts\nimport 'streamdown-vue/style.css';\n```\n\n**What's included:**\n- Neutral color scheme with automatic dark mode support\n- Compact, professional styling for tables and code blocks\n- Subtle, transparent scrollbars\n- Properly styled buttons, headings, lists, and blockquotes\n- Line number styling (when enabled)\n- All styles are scoped to `.streamdown-vue` to avoid conflicts\n\n**Example:**\n\n```ts\n// main.ts\nimport { createApp } from 'vue';\nimport App from './App.vue';\nimport 'streamdown-vue/style.css'; // ← Import default styles\nimport 'katex/dist/katex.min.css';\n\ncreateApp(App).mount('#app');\n```\n\n### Customizing with CSS Variables\n\nAll styles use CSS variables prefixed with `--sd-*` that you can override. See the [full list of variables in style.css](./src/style.css).\n\n```css\n:root {\n  /* Colors */\n  --sd-primary: #3b82f6;              /* Accent color for links, headings */\n  --sd-primary-variant: #2563eb;      /* Hover states */\n  --sd-on-surface: #1f2937;           /* Text color */\n  --sd-surface-container: #f3f4f6;    /* Code block backgrounds */\n  --sd-border-color: #e5e7eb;         /* Borders */\n  \n  /* Typography */\n  --sd-font-family-base: system-ui, sans-serif;\n  --sd-font-family-mono: ui-monospace, monospace;\n  --sd-font-size-base: 16px;\n  --sd-line-height-base: 1.7;\n  \n  /* Dimensions */\n  --sd-border-width: 1px;\n  --sd-border-radius: 0.375rem;\n}\n```\n\n**Example - Custom Brand Colors:**\n\n```css\n:root {\n  --sd-primary: #8b5cf6;        /* Purple accent */\n  --sd-primary-variant: #7c3aed;\n}\n```\n\n### Dark Mode\n\nDark mode is automatic via `@media (prefers-color-scheme: dark)` or by adding the `.dark` class to your `<html>` element:\n\n```ts\n// Toggle dark mode\nconst toggleDark = () => {\n  document.documentElement.classList.toggle('dark');\n};\n```\n\nYou can customize dark mode colors:\n\n```css\n:root.dark {\n  --sd-primary: #60a5fa;              /* Lighter blue for dark mode */\n  --sd-on-surface: #f3f4f6;           /* Light text */\n  --sd-surface-container: #374151;    /* Dark gray backgrounds */\n  --sd-border-color: #374151;\n}\n```\n\n### Completely Custom Styling\n\nIf you prefer to write your own styles from scratch, simply **don't import** `streamdown-vue/style.css`. All markdown elements have `data-streamdown` attributes for easy targeting:\n\n```css\n/* Your custom styles */\n.streamdown-vue [data-streamdown='code-block'] {\n  /* Custom code block styling */\n}\n\n.streamdown-vue [data-streamdown='table'] {\n  /* Custom table styling */\n}\n```\n\nSee section 9 (Built-in Components & Data Attributes) for a complete list of available attributes.\n\n---\n\n## 5. Deep Dive Tutorial – Live Streaming (AI / SSE)\n\nWhen receiving tokens / partial chunks you typically want to:\n\n1. Append new text chunk into a buffer.\n2. Repair the partial Markdown (`parseIncompleteMarkdown`).\n3. Split into safe blocks for re-render (`parseBlocks`).\n4. Feed the concatenated repaired text to `<StreamMarkdown>`.\n\nComposable example (client side):\n\n```ts\n// useStreamedMarkdown.ts\nimport { ref } from 'vue';\nimport { parseBlocks, parseIncompleteMarkdown } from 'streamdown-vue';\n\nexport function useStreamedMarkdown() {\n    const rawBuffer = ref('');\n    const rendered = ref('');\n    const blocks = ref<string[]>([]);\n\n    const pushChunk = (text: string) => {\n        rawBuffer.value += text;\n        // repair incomplete tokens (unclosed **, `, $$, etc.)\n        const repaired = parseIncompleteMarkdown(rawBuffer.value);\n        blocks.value = parseBlocks(repaired);\n        rendered.value = blocks.value.join('');\n    };\n\n    return { rawBuffer, rendered, blocks, pushChunk };\n}\n```\n\nUsing Server-Sent Events (SSE):\n\n```ts\nconst { rendered, pushChunk } = useStreamedMarkdown();\nconst es = new EventSource('/api/chat');\nes.onmessage = (e) => {\n    pushChunk(e.data);\n};\nes.onerror = () => es.close();\n```\n\nTemplate:\n\n```vue\n<StreamMarkdown :content=\"rendered\" />\n```\n\nWhy repair first? Without repair, a trailing `**` or lone ``` will invalidate the final tree and cause flicker or lost highlighting. Repairing keeps intermediate renders stable.\n\n---\n\n## 6. Props Reference\n\n| Prop                       | Type                       | Default                  | Description                                                                                                                                                                     |\n| -------------------------- | -------------------------- | ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `content`                  | `string`                   | `''`                     | The full (or partially streamed) markdown source.                                                                                                                               |\n| `class` / `className`      | `string`                   | `''`                     | Optional wrapper classes; both accepted (React-style alias).                                                                                                                    |\n| `components`               | `Record<string,Component>` | `{}`                     | Map to override built-ins (e.g. `{ p: MyP }`).                                                                                                                                  |\n| `remarkPlugins`            | `any[]`                    | `[]`                     | Extra remark plugins. Supports `(plugin)` or `[plugin, options]`. If you supply `remark-math` yourself, the built‑in one (which disables single‑dollar inline math) is skipped. |\n| `rehypePlugins`            | `any[]`                    | `[]`                     | Extra rehype plugins.                                                                                                                                                           |\n| `defaultOrigin`            | `string?`                  | `undefined`              | Base URL used to resolve relative links/images before allow‑list checks.                                                                                                        |\n| `allowedImagePrefixes`     | `string[]`                 | `['https://','http://']` | Allowed (lowercased) URL prefixes for `<img>`. Blocked => image dropped.                                                                                                        |\n| `allowedLinkPrefixes`      | `string[]`                 | `['https://','http://']` | Allowed prefixes for `<a href>`. Blocked => link text only.                                                                                                                     |\n| `parseIncompleteMarkdown`  | `boolean`                  | `true`                   | (Future toggle) Auto apply repair internally. Currently you repair outside using utility; prop reserved.                                                                        |\n| `shikiTheme`               | `ShikiThemeConfig`         | `undefined`              | Shiki theme (string) or dual theme object `{ light: '...', dark: '...' }`. If undefined, follows system preference (`github-light`/`github-dark`).                            |\n| `codeBlockActions`         | `Component[]`              | `[]`                     | Array of Vue components appended as action buttons in every code block header.                                                                                                  |\n| `codeBlockShowLineNumbers` | `boolean`                  | `false`                  | Show line numbers in all code fences.                                                                                                                                           |\n| `codeBlockSelectable`      | `boolean`                  | `true`                   | Whether code text is selectable (adds `select-none` when false).                                                                                                                |\n| `codeBlockHideCopy`        | `boolean`                  | `false`                  | Globally hide built‑in copy buttons (you can add your own via actions).                                                                                                         |\n| `codeBlockHideDownload`    | `boolean`                  | `false`                  | Globally hide built‑in download buttons.                                                                                                                                        |\n\nAll unrecognised props are ignored (no arbitrary HTML injection for safety).\n\n---\n\n## 7. Component Slots & Overrides\n\n`<StreamMarkdown>` does not expose custom slots for content fragments (the pipeline is AST-driven). To customize rendering you override tags via the `components` prop:\n\n```ts\nimport type { Component } from 'vue';\nimport { StreamMarkdown } from 'streamdown-vue';\n\nconst FancyP: Component = {\n    setup(_, { slots }) { return () => h('p', { class: 'text-pink-600 font-serif' }, slots.default?.()); }\n};\n\n<StreamMarkdown :components=\"{ p: FancyP }\" :content=\"md\" />\n```\n\nIf a tag is missing from `components` it falls back to the built-in map.\n\n---\n\n## 8. Built‑in Components & Data Attributes\n\nEach semantic node receives a `data-streamdown=\"name\"` attribute to make styling and querying reliable, even if classes are overridden:\n\n| Element / Component        | Data Attribute      | Notes / Styling Hook                                                   |\n| -------------------------- | ------------------- | ---------------------------------------------------------------------- |\n| Paragraph `<p>`            | `p`                 | Base text blocks                                                       |\n| Anchor `<a>`               | `a`                 | Hardened links (target+rel enforced)                                   |\n| Inline code `<code>`       | `inline-code`       | Single backtick spans                                                  |\n| Code block wrapper         | `code-block`        | Outer container (header + body)                                        |\n| Code block header bar      | `code-block-header` | Holds language label + copy button                                     |\n| Code language badge        | `code-lang`         | Language label span                                                    |\n| Empty language placeholder | `code-lang-empty`   | Present when no language specified (reserved space)                    |\n| Copy button                | `copy-button`       | The actionable copy control                                            |\n| Code block body container  | `code-body`         | Wraps highlighted `<pre>`; horizontal scroll applied here              |\n| Code block <pre> element   | `pre`               | Added automatically to inner `<pre>` for targeting styles              |\n| Code block <code> element  | `code`              | Added automatically to inner `<code>`                                  |\n| Code line number span      | `code-line-number`  | Present when line numbers enabled                                      |\n| Unordered list `<ul>`      | `ul`                |                                                                        |\n| Ordered list `<ol>`        | `ol`                |                                                                        |\n| List item `<li>`           | `li`                |                                                                        |\n| Horizontal rule `<hr>`     | `hr`                |                                                                        |\n| Strong `<strong>`          | `strong`            | Bold emphasis                                                          |\n| Emphasis `<em>`            | `em`                | Italic emphasis                                                        |\n| Headings `<h1>`–`<h6>`     | `h1` … `h6`         | Each level individually tagged                                         |\n| Blockquote `<blockquote>`  | `blockquote`        |                                                                        |\n| Table `<table>`            | `table`             | Logical table element                                                  |\n| Table wrapper `<div>`      | `table-wrapper`     | Scroll container around table                                          |\n| Table head `<thead>`       | `thead`             |                                                                        |\n| Table body `<tbody>`       | `tbody`             |                                                                        |\n| Table row `<tr>`           | `tr`                |                                                                        |\n| Table header cell `<th>`   | `th`                |                                                                        |\n| Table data cell `<td>`     | `td`                |                                                                        |\n| Image `<img>`              | `img`               | Only if src passes hardening                                           |\n| Mermaid wrapper            | `mermaid`           | Replaced with rendered SVG / diagram                                   |\n| KaTeX output               | `katex`             | Class emitted by KaTeX (not set by us but styled via global KaTeX CSS) |\n\n### 8.1 Styling via Data Attributes\n\nBecause every semantic node has a stable `data-streamdown` marker, you can author zero‑collision styles (or component library themes) without relying on brittle tag chains. Example – customize the code block body and header:\n\n```css\n/* Remove borders & add extra bottom padding inside code body */\n.message-body :deep([data-streamdown='code-body']) pre {\n    border: none;\n    margin-bottom: 0;\n    padding-bottom: 30px;\n}\n\n/* Header bar tweaks */\n.message-body :deep([data-streamdown='code-block-header']) {\n    background: linear-gradient(to right, #f5f5f5, #e8e8e8);\n    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;\n}\n\n/* Language badge */\n.message-body :deep([data-streamdown='code-lang']) {\n    text-transform: uppercase;\n    letter-spacing: 0.5px;\n}\n\n/* Table wrapper scroll shadows */\n.message-body :deep([data-streamdown='table-wrapper']) {\n    position: relative;\n}\n.message-body :deep([data-streamdown='table-wrapper']::after) {\n    content: '';\n    position: absolute;\n    top: 0;\n    right: 0;\n    bottom: 0;\n    width: 12px;\n    pointer-events: none;\n    background: linear-gradient(\n        to right,\n        rgba(255, 255, 255, 0),\n        rgba(0, 0, 0, 0.08)\n    );\n}\n```\n\nTips:\n\n1. Scope via a parent (e.g. `.message-body`) or component root to avoid leaking styles.\n2. Use `:deep()` (Vue SFC) / `::v-deep` where needed to pierce scoped boundaries.\n3. Prefer attribute selectors over tag names so overrides survive internal structural changes.\n4. For dark mode, pair selectors with media queries or a `.dark` ancestor.\n\nTesting example (Vitest / Bun):\n\n```ts\nexpect(html).toContain('data-streamdown=\"inline-code\"');\n```\n\n---\n\n## 9. Security Model\n\nOnly absolute URLs starting with an allowed prefix pass. Steps:\n\n1. Resolve relative (`/x`) against `defaultOrigin` if provided.\n2. Lowercase & check `javascript:` scheme (blocked).\n3. Check each allowed prefix (case-insensitive).\n4. If any fail, the element is dropped (link/text downgraded, image removed).\n\nExample – allow only your CDN images & HTTPS links:\n\n```vue\n<StreamMarkdown\n    :allowed-link-prefixes=\"['https://']\"\n    :allowed-image-prefixes=\"['https://cdn.example.com/']\"\n    default-origin=\"https://example.com\"\n    :content=\"md\"\n/>\n```\n\n---\n\n## 10. Syntax Highlighting (Shiki), Copy / Download & Extensible Actions\n\nCode fences are rendered by the internal `CodeBlock` component:\n\n````md\n```ts\nconst x: number = 1;\n```\n````\n\nOverride with your custom block:\n\n```ts\nimport { defineComponent, h } from 'vue';\nimport { useShikiHighlighter } from 'streamdown-vue';\n\nconst MyCode = defineComponent({\n    props: { code: { type: String, required: true }, language: { type: String, default: '' } },\n    async setup(props) {\n        const highlighter = await useShikiHighlighter();\n        const html = highlighter.codeToHtml(props.code, { lang: props.language || 'text', themes: { light: 'github-light', dark: 'github-dark' } });\n        return () => h('div', { class: 'my-code', innerHTML: html });\n    }\n});\n\n<StreamMarkdown :components=\"{ codeblock: MyCode }\" />\n```\n\n> **Need a deeper walkthrough?** The [Shiki Language Bundling Guide](./docs/shiki-language-guide.md) covers both the batteries-included entry and the minimal core workflow.\n\n### 10.1 Changing the Shiki Theme\n\nYou can switch the built‑in highlighting theme via the `shikiTheme` prop.\n\n**Default Behavior:** If you do not provide a theme, it defaults to `undefined`. This triggers automatic system preference detection:\n- `github-light` when the user's system is in light mode\n- `github-dark` when the user's system is in dark mode (via `prefers-color-scheme: dark`)\n\nTo force a specific theme:\n\n```vue\n<StreamMarkdown :content=\"md\" shiki-theme=\"github-dark\" />\n```\n\nAny valid Shiki theme name you have available can be passed.\n\n### 10.2 Dual Theme Support (Automatic Theme Switching)\n\nInstead of manually watching theme changes and reactively updating the prop, you can provide both light and dark themes for instant CSS-based theme switching:\n\n```vue\n<!-- Dual theme (recommended) - instant switching via CSS -->\n<StreamMarkdown \n  :shiki-theme=\"{ light: 'github-light', dark: 'github-dark' }\" \n  :content=\"md\" \n/>\n```\n\nWhen using dual themes:\n- Shiki generates CSS variables for both themes in a single render\n- Theme switching happens instantly via CSS class changes (no component re-render needed)\n- Add/remove `.dark` class on a parent element or rely on `@media (prefers-color-scheme: dark)`\n- No need to watch theme changes reactively\n- More efficient - eliminates unnecessary re-renders when toggling themes\n\n**Comparison:**\n\n```vue\n<!-- Single theme (old approach) - requires reactive updates & re-renders -->\n<StreamMarkdown \n  :shiki-theme=\"isDark ? 'github-dark' : 'github-light'\" \n  :content=\"md\" \n/>\n\n<!-- Dual theme (new, recommended) - automatic via CSS -->\n<StreamMarkdown \n  :shiki-theme=\"{ light: 'github-light', dark: 'github-dark' }\" \n  :content=\"md\" \n/>\n```\n\nThe dual theme approach is the recommended pattern for applications with theme switching.\n\n> Note: The default build registers a compact set of common languages (TS/JS/JSON/Bash/Python/Diff/Markdown/Vue/HTML/CSS/Go/Rust/YAML). Add or remove grammars by calling `registerShikiLanguage(s)` before your first render (details below).\n\n### 10.3 Controlling the Shiki bundle\n\n- **`registerDefaultShikiLanguages()`** – invoked automatically when you import from `streamdown-vue`; registers the curated language set.\n- **`registerShikiLanguage(s)`** – call this in your own entry point to add or override grammars (local files or CDN-based loaders).\n- **`excludeShikiLanguages([...])`** – remove specific loaders after the defaults register (e.g. drop Rust if you never show it).\n- **`clearRegisteredShikiLanguages()`** – wipe the registry entirely before registering your own minimal set (used internally by the core entry).\n- **`streamdown-vue/core` entry** – ships without defaults so only the grammars you register are ever referenced (perfect for bundle-sensitive apps).\n\nRegistering only the languages you need (core build):\n\n```ts\nimport {\n    StreamMarkdown,\n    registerShikiLanguages,\n} from 'streamdown-vue/core';\n\nregisterShikiLanguages([\n    { id: 'typescript', loader: () => import('@shikijs/langs/typescript') },\n    { id: 'json', loader: () => import('@shikijs/langs/json') },\n    { id: 'bash', loader: () => import('@shikijs/langs/bash') },\n]);\n```\n\nThe default (non-core) entry automatically registers the curated set listed below. If you only ever highlight a smaller subset, switch to the core entry, register those languages, and your bundler will never even see the unused grammars.\n\n#### Lazy languages (load a grammar on its first fence)\n\nRegistered grammars are loaded when the highlighter is created — every loader runs at once, before the first code block renders. For a wide language list that means dozens of grammar chunks (megabytes raw) on the first fence, even if the conversation only ever contains one language. Mark a language `lazy: true` and its loader runs the first time a fence with that language shows up (the way `@streamdown/code` in Vercel's streamdown loads grammars): one chunk per language, nothing fetched for languages that never appear. The fence line always arrives before the block body, so the grammar downloads while the code is still streaming.\n\n```ts\nregisterShikiLanguages([\n    // Hot languages: loaded with the highlighter, highlighted from the first token.\n    { id: 'typescript', aliases: ['ts'], loader: () => import('@shikijs/langs/typescript') },\n    { id: 'json', loader: () => import('@shikijs/langs/json') },\n    // Long tail: loaded on demand, one chunk per language.\n    { id: 'cpp', aliases: ['c++'], lazy: true, loader: () => import('@shikijs/langs/cpp') },\n    { id: 'ruby', lazy: true, loader: () => import('@shikijs/langs/ruby') },\n]);\n```\n\nA lazy fence renders as a plain `<pre><code>` for the few milliseconds the grammar takes to arrive and is re-highlighted as soon as it lands. `isLazyShikiLanguage(id)` reports how a language was registered; `unregisterShikiLanguage` / `clearRegisteredShikiLanguages` drop the flag together with the loader.\n\n### 10.4 Preloaded Shiki Languages\n\nThe built-in highlighter eagerly loads the grammars you register (unless marked `lazy: true`, see above). The default bundle calls `registerDefaultShikiLanguages()` which wires up the following set:\n\n| Canonical ID | Aliases        | Human-readable language |\n| ------------ | -------------- | ----------------------- |\n| `typescript` | `ts`           | TypeScript              |\n| `tsx`        | —              | TypeScript JSX          |\n| `javascript` | `js`           | JavaScript              |\n| `jsx`        | —              | JavaScript JSX          |\n| `json`       | —              | JSON                    |\n| `bash`       | —              | Bash / shell script     |\n| `shell`      | `shellscript`, `sh`, `zsh` | Generic shell script    |\n| `python`     | `py`           | Python                  |\n| `diff`       | —              | Unified diff            |\n| `markdown`   | `md`           | Markdown                |\n| `vue`        | `markdown-vue` | Vue SFC                 |\n| `html`       | `html-derivative` | HTML / derivatives  |\n| `css`        | —              | CSS                     |\n| `go`         | —              | Go                      |\n| `rust`       | —              | Rust                    |\n| `yaml`       | `yml`          | YAML                    |\n| `cpp`        | `c++`          | C++ *(CDN)* |\n| `java`       | —              | Java *(CDN)* |\n| `c`          | —              | C *(CDN)* |\n| `csharp`     | `cs`, `c#`     | C# *(CDN)* |\n| `php`        | —              | PHP *(CDN)* |\n| `ruby`       | —              | Ruby *(CDN)* |\n| `kotlin`     | —              | Kotlin *(CDN)* |\n| `swift`      | —              | Swift *(CDN)* |\n| `sql`        | —              | SQL *(CDN)* |\n\nIf you rarely show, for instance, Rust or Go snippets, simply omit them when calling `registerShikiLanguages`. Fences that reference an unregistered language fall back to plain `<pre><code>` (with a development warning) instead of pulling in extra grammars.\n\n### 10.5 Built‑in CodeBlock Features\n\n`CodeBlock` now provides:\n\n| Feature                    | Prop / Mechanism              | Default | Notes                                                                                  |\n| -------------------------- | ----------------------------- | ------- | -------------------------------------------------------------------------------------- |\n| Copy button                | `hideCopy` (boolean)          | `false` | Uses Clipboard API; auto‑binds code via context.                                       |\n| Download button            | `hideDownload` (boolean)      | `false` | Generates file with inferred extension (lightweight mapping).                          |\n| Line numbers               | `showLineNumbers` (boolean)   | `false` | Injects `<span class=\"code-line-number\" data-streamdown=\"code-line-number\">` prefixes. |\n| Selectability toggle       | `selectable` (boolean)        | `true`  | Adds `select-none` on `<pre>` when disabled.                                           |\n| Per‑block custom actions   | `:actions=\"[MyBtn]\"`          | `[]`    | Array of components/render fns appended right of header.                               |\n| Slot actions               | `<template #actions>`         | —       | Slot for ad‑hoc buttons (highest flexibility).                                         |\n| Global actions             | App `provide`                 | —       | Provide once: `app.provide(GLOBAL_CODE_BLOCK_ACTIONS, [MyBtn])`.                       |\n| Context access for actions | `inject(CODE_BLOCK_META_KEY)` | —       | Retrieve `{ code, language }` without prop drilling.                                   |\n\n### 10.6 Adding Custom Action Buttons (Without Forking)\n\nYou normally only use `<StreamMarkdown>`; customize all code blocks via pass‑through props:\n\n```vue\n<StreamMarkdown\n    :content=\"md\"\n    :code-block-actions=\"[MyShareButton]\"\n    code-block-show-line-numbers\n    code-block-hide-download\n/>\n```\n\nOr override the internal code block entirely through `components` map (key: `codeblock`):\n\n```ts\nconst Minimal = defineComponent({\n    props: { code: String, language: String },\n    setup(p) { return () => h('pre', [h('code', p.code)]) }\n});\n\n<StreamMarkdown :components=\"{ codeblock: Minimal }\" :content=\"md\" />\n```\n\nPer instance:\n\n```vue\n<CodeBlock\n    :code=\"snippet\"\n    language=\"ts\"\n    :actions=\"[MyShareButton, MyRunButton]\"\n/>\n```\n\nOr via named slot:\n\n```vue\n<CodeBlock :code=\"snippet\" language=\"ts\">\n    <template #actions>\n        <MyShareButton />\n        <MyRunButton />\n    </template>\n</CodeBlock>\n```\n\nGlobally (main.ts):\n\n```ts\nimport { GLOBAL_CODE_BLOCK_ACTIONS } from 'streamdown-vue';\napp.provide(GLOBAL_CODE_BLOCK_ACTIONS, [MyShareButton]);\n```\n\nInside a custom button component you can access the current code & language without props:\n\n```ts\nimport { defineComponent, inject } from 'vue';\nimport { CODE_BLOCK_META_KEY } from 'streamdown-vue';\n\nexport const MyShareButton = defineComponent({\n    setup() {\n        const meta = inject(CODE_BLOCK_META_KEY)!; // { code, language }\n        const share = () => navigator.share?.({ text: meta.code });\n        return () => <button onClick={share}>Share</button>;\n    },\n});\n```\n\n### 10.7 Hiding Built‑ins\n\nIf you want a fully custom action bar:\n\n```vue\n<CodeBlock\n    :code=\"snippet\"\n    language=\"ts\"\n    hide-copy\n    hide-download\n    :actions=\"[MyShareButton]\"\n/>\n```\n\n### 10.8 Styling Line Numbers\n\nLine numbers render as `<span class=\"code-line-number\" data-line-number data-streamdown=\"code-line-number\">`. Example Tailwind tweaks:\n\n```css\n[data-streamdown='code-body'] .code-line-number {\n    @apply text-gray-400 dark:text-gray-500 select-none;\n}\n```\n\nThe default copy & download buttons can be selectively hidden while still using custom actions.\n\nThe default copy button uses the Clipboard API and toggles its success icon only after the write completes; the download button creates a UTF-8 text Blob and triggers a synthetic click.\n\n---\n\n## 11. Mermaid Diagrams\n\nFenced block:\n\n````md\n```mermaid\ngraph TD;A-->B;B-->C;\n```\n````\n\nThe `MermaidBlock` component handles:\n\n-   Deduplicated initialization\n-   Simple hash based caching\n-   Error fallback (last good diagram)\n-   Copy diagram source\n\nYou can override it via `components` if you need advanced theming.\n\n---\n\n## 12. Math & LaTeX Helpers\n\n### 12.1 Default behavior\n\n`StreamMarkdown` automatically injects `remark-math` + `rehype-katex` _unless you supply your own_ via the `remarkPlugins` prop. The built‑in configuration intentionally sets `singleDollarTextMath: false` so that plain currency like `$390K` or `$80–140K` is **not** misinterpreted as inline math (a common issue during streaming where a later `$` closes a huge unintended span).\n\nSupported by default:\n\n-   Display math: `$$ ... $$`\n-   (If you add them) Inline math via `\\( ... \\)` or by providing your own `remark-math` with single‑dollar enabled.\n\n### 12.2 Opting into single‑dollar inline math\n\nIf you really want `$x + y$` style inline math, provide your own configured plugin tuple. When you do this the built‑in math plugin is skipped:\n\n```ts\nimport remarkMath from 'remark-math';\n\n<StreamMarkdown\n    :content=\"md\"\n    :remark-plugins=\"[[remarkMath, { singleDollarTextMath: true }]]\"\n/>\n```\n\n### 12.3 Optional helper utilities\n\nWe still expose some light repair helpers you can (optionally) run yourself before streaming completes:\n\n| Helper              | Purpose (opt‑in)                                                       |\n| ------------------- | ---------------------------------------------------------------------- |\n| `fixDollarSignMath` | (Optional) Escape truly stray `$` you decide are currency, if desired. |\n| `fixMatrix`         | Ensure matrix environments have proper row `\\\\` line breaks.           |\n\nExample (opt‑in):\n\n```ts\nimport { fixMatrix, fixDollarSignMath } from 'streamdown-vue';\n\nconst safe = fixMatrix(fixDollarSignMath(markdown));\n```\n\nIn streaming scenarios prefer leaving dollar signs untouched; the default config already avoids accidental inline math.\n\n---\n\n## 13. Utilities\n\n### `parseIncompleteMarkdown(text: string)`\n\nRepairs incomplete constructs (unclosed `**`, `_`, `` ` ``, `~~`, `$$` blocks, links/images) so partial buffers still render.\n\n### `parseBlocks(text: string)`\n\nTokenizes markdown into stable block strings; combining repaired buffer pieces reduces re‑parsing cost vs re‑feeding the whole document each keystroke.\n\nUsage inside a stream loop (see Tutorial above). Both exported from package root.\n\n---\n\n## 14. Performance Tips\n\n-   Debounce UI updates: apply repairs & re-render at ~30–60fps (e.g. `requestAnimationFrame`).\n-   Reuse a single `<StreamMarkdown>` instance; change only `content` prop.\n-   Avoid running large custom remark/rehype plugins on every partial—they run on full text.\n-   If highlighting is heavy for enormous fences, lazy-replace code block component after final chunk.\n-   Use server-side rendering for initial payload to reduce Total Blocking Time.\n\nBenchmarks and the reproducible Chromium streaming profile are documented in `docs/performance.md`. Run the browser profile with `bun run profile:cache`.\n\n### Streaming parse cache (automatic)\n\n`<StreamMarkdown>` keeps a small per-instance cache so append-only streaming updates do not re-run Unified/remark/rehype/KaTeX for completed blocks whose final parser input is unchanged. The cache is internal: there is no new prop, and the component still creates fresh VNodes (with current hardening, themes, code controls, and custom components) on every render.\n\n-   The last non-whitespace block is always reparsed; a block is only reused after a real following boundary exists.\n-   Reuse stops at the first changed or uncertain block; the rest of the document reparses normally.\n-   The cache is bypassed for the whole document when it contains link reference definitions or footnotes (later definitions can reinterpret earlier blocks), when any custom `remarkPlugins`/`rehypePlugins` are present, after non-append edits or truncation, and when `parseIncompleteMarkdown` changes.\n-   Only the current document's parsed trees are retained, and they are released on reset and unmount. Cached trees are treated as read-only.\n-   Cached and bypassed rendering are compared at every chunk in `__tests__/parse-cache.test.ts`; keep them green when changing preprocessing, block splitting/merging, or the processor pipeline.\n\n---\n\n## 15. Nuxt 3 Usage & SSR Notes\n\nThis section shows end‑to‑end integration in a Nuxt 3 project: installation, global registration, a streaming composable, and a server route that emits incremental Markdown.\n\n### 15.1 Install\n\n```bash\nnpm i streamdown-vue\n# or: bun add streamdown-vue\n```\n\n### 15.2 Add a Client Plugin (Shiki + KaTeX)\n\nCreate `plugins/streamdown.client.ts` (client only so Shiki & Mermaid load in browser):\n\n```ts\n// plugins/streamdown.client.ts\nimport 'katex/dist/katex.min.css'; // once globally\n// (Optional) warm the Shiki highlighter so first code block is instant\nimport { useShikiHighlighter } from 'streamdown-vue';\nuseShikiHighlighter();\n```\n\nNuxt auto‑registers anything in `plugins/`. No manual config required unless you disabled auto import.\n\n### 15.3 Basic Page Usage\n\n```vue\n<!-- pages/index.vue -->\n<template>\n    <div class=\"prose mx-auto p-6\">\n        <StreamMarkdown :content=\"md\" />\n    </div>\n    <footer class=\"text-xs opacity-60 mt-8\">\n        Rendered with streamdown-vue\n    </footer>\n</template>\n<script setup lang=\"ts\">\nimport { StreamMarkdown } from 'streamdown-vue';\nconst md =\n    '# Welcome to Nuxt\\\\n\\\\nThis **Markdown** is rendered *streamdown style*.';\n</script>\n```\n\n### 15.4 Global Component (Optional)\n\nIf you prefer auto‑import without explicit import each time, add an alias export file:\n\n```ts\n// components/StreamMarkdown.client.ts\nexport { StreamMarkdown as default } from 'streamdown-vue';\n```\n\nNow `<StreamMarkdown />` is available automatically (Nuxt scans `components/`).\n\n### 15.5 Secure Link / Image Allow‑Lists\n\nIn any page/component:\n\n```vue\n<StreamMarkdown\n    :content=\"md\"\n    :allowed-link-prefixes=\"['https://', '/']\"\n    :allowed-image-prefixes=\"['https://cdn.myapp.com/']\"\n    default-origin=\"https://myapp.com\"\n/>\n```\n\nRelative links (e.g. `/about`) will resolve against `defaultOrigin` then be validated.\n\n### 15.6 Streaming From a Server Route (SSE Style)\n\nCreate a route that emits partial Markdown pieces:\n\n```ts\n// server/api/chat.get.ts\nexport default defineEventHandler(async (event) => {\n    const encoder = new TextEncoder();\n    const parts = [\n        '# Chat Log\\n',\n        '\\nHello **world',\n        '** from',\n        ' streamed',\n        ' markdown.',\n    ];\n    const stream = new ReadableStream({\n        start(controller) {\n            let i = 0;\n            const tick = () => {\n                if (i < parts.length) {\n                    controller.enqueue(encoder.encode(parts[i++]));\n                    setTimeout(tick, 300);\n                } else controller.close();\n            };\n            tick();\n        },\n    });\n    setHeader(event, 'Content-Type', 'text/plain; charset=utf-8');\n    return stream; // Nuxt will send as a stream\n});\n```\n\n### 15.7 Client Composable to Consume Streaming Markdown\n\n```ts\n// composables/useStreamedMarkdown.ts\nimport { ref } from 'vue';\nimport { parseBlocks, parseIncompleteMarkdown } from 'streamdown-vue';\n\nexport function useStreamedMarkdown(url: string) {\n    const rendered = ref('');\n    const raw = ref('');\n\n    const start = async () => {\n        const res = await fetch(url);\n        const reader = res.body!.getReader();\n        let buf = '';\n        const decoder = new TextDecoder();\n        while (true) {\n            const { value, done } = await reader.read();\n            if (done) break;\n            buf += decoder.decode(value, { stream: true });\n            // repair, split, join\n            const repaired = parseIncompleteMarkdown(buf);\n            rendered.value = parseBlocks(repaired).join('');\n            raw.value = buf;\n        }\n    };\n\n    return { rendered, raw, start };\n}\n```\n\n### 15.8 Streaming Page Example\n\n```vue\n<!-- pages/stream.vue -->\n<template>\n    <button @click=\"start\" class=\"border px-3 py-1 mb-4\">Start Stream</button>\n    <StreamMarkdown :content=\"rendered\" class=\"prose\" />\n</template>\n<script setup lang=\"ts\">\nimport { StreamMarkdown } from 'streamdown-vue';\nimport { useStreamedMarkdown } from '@/composables/useStreamedMarkdown';\nconst { rendered, start } = useStreamedMarkdown('/api/chat');\n</script>\n```\n\n### 15.9 SSR Caveats\n\n-   The stream loop runs only client-side; on first SSR render you may want a placeholder skeleton.\n-   Shiki highlighting of large code blocks happens client-side; if you need critical highlighted code for SEO, pre-process the markdown on the server and send the HTML (future enhancement: server highlight hook).\n-   Ensure Mermaid is only executed client-side (the provided plugin pattern handles this since the component executes render logic on mount).\n\n### 15.10 Troubleshooting\n\n| Symptom                            | Fix                                                                                                                          |\n| ---------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- |\n| Copy / Download button not showing | Ensure default `CodeBlock` not overridden or your custom block renders desired buttons (remove `hideCopy` / `hideDownload`). |\n| Links stripped                     | Adjust `allowed-link-prefixes` / set `default-origin` to resolve relative paths first.                                       |\n| Images missing                     | Add CDN prefix to `allowed-image-prefixes`.                                                                                  |\n| Flash of unstyled math             | Confirm KaTeX CSS loaded in client plugin before first render.                                                               |\n| High CPU on huge streams           | Throttle updates (wrap repair/render in `requestAnimationFrame` or batch by char count).                                     |\n\nThat’s it—Nuxt integration is essentially drop‑in plus an optional streaming composable.\n\n---\n\n## 16. Recipe Gallery\n\n| Goal                                  | Snippet                                                     |\n| ------------------------------------- | ----------------------------------------------------------- |\n| AI Chat                               | Combine streaming buffer + `<StreamMarkdown>` (tutorial §4) |\n| Restrict to CDN images                | Set `:allowed-image-prefixes`                               |\n| Override `<table>` style              | `:components=\"{ table: MyTable }\"`                          |\n| Add custom remark plugin              | `:remark-plugins=\"[myRemark]\"`                              |\n| Append footer paragraph automatically | remark plugin injecting node                                |\n| Basic local Vue example               | See `examples/basic` in repo                                |\n\nCustom remark plugin skeleton:\n\n```ts\nconst remarkAppend = () => (tree: any) => {\n    tree.children.push({ type: 'paragraph', children: [{ type: 'text', value: 'Tail note.' }] });\n};\n<StreamMarkdown :remark-plugins=\"[remarkAppend]\" />\n```\n\n---\n\n## 17. FAQ\n\n**Why repair outside instead of inside the component?** Control & transparency. You can decide when to re-render; the component focuses on a deterministic AST transform.\n\n**Can I disable KaTeX or Mermaid?** For now they are bundled if you use their fences. Future option could allow toggling; PRs welcome.\n\n**Does it sanitize HTML?** Inline HTML is not allowed (passed through remark/rehype with `allowDangerousHtml: false`). Add a sanitizer plugin if you purposely enable raw HTML.\n\n**Dark mode highlighting?** Use the dual theme format: `:shiki-theme=\"{ light: 'github-light', dark: 'github-dark' }\"` for instant CSS-based theme switching without re-renders, or pass a single theme string for traditional reactive theme switching.\n\n---\n\n## 18. Development & Contributing\n\n```bash\nbun install\nbun test              # run unit and rendering tests (fast)\nbun run typecheck     # check source, tests, and examples\nbun run build         # build declarations, ESM/CJS bundles, and CSS\nbun run test          # full release gate, including a packed consumer smoke\n```\n\nPRs for: improved matrix handling, plugin toggles, directive support, performance instrumentation are appreciated.\n\n---\n\n## License\n\n[![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](LICENSE)\n\nLicensed under the Apache License, Version 2.0.\n\n---\n\n### At a Glance – Minimal Streaming Loop\n\n```ts\nlet buffer = '';\nfor await (const chunk of stream) {\n    buffer += chunk;\n    buffer = parseIncompleteMarkdown(buffer);\n    const blocks = parseBlocks(buffer);\n    state.markdown = blocks.join('');\n}\n```\n\nHappy streaming! 🚀\n","readmeFilename":"README.md"}