{"_id":"markdown-to-slack-blocks","_rev":"12-22faed2438bf7062dadcfabb43a49748","name":"markdown-to-slack-blocks","dist-tags":{"latest":"1.6.1"},"versions":{"1.0.0":{"name":"markdown-to-slack-blocks","version":"1.0.0","keywords":["slack","markdown","block-kit","converter","rich-text","parser"],"author":{"name":"udi"},"license":"MIT","_id":"markdown-to-slack-blocks@1.0.0","maintainers":[{"name":"allx","email":"allxmail@gmail.com"}],"homepage":"https://github.com/udivankin/markdown-to-slack-blocks#readme","bugs":{"url":"https://github.com/udivankin/markdown-to-slack-blocks/issues"},"dist":{"shasum":"4e4a8c04dfbbc7de35a239447b353bda5a52faca","tarball":"https://registry.npmjs.org/markdown-to-slack-blocks/-/markdown-to-slack-blocks-1.0.0.tgz","fileCount":15,"integrity":"sha512-V2GAhl5zNwuyP384Y9BqnV5j1BJS4p8uaeC1lXZWIG3FA+hq/0XKv084VvH+BSWJ3uCahlfDrey9k44CL4zqcQ==","signatures":[{"sig":"MEUCIQCeHPN+MEu1t/IQUWeQQUSbsiC2K4ZBfpXtTYFma7+j5AIgejBUp+CMlzcpJ+T0MFc00QEVhZE2nSzO4FeZ7B4VMjU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":33544},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"2e945ac682544aa22bbbbbd8804d8374ee4b7eaa","scripts":{"test":"vitest","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run clean && npm run build && npm test"},"_npmUser":{"name":"allx","email":"allxmail@gmail.com"},"repository":{"url":"git+https://github.com/udivankin/markdown-to-slack-blocks.git","type":"git"},"_npmVersion":"10.9.2","description":"Convert Markdown to Slack Block Kit JSON format","directories":{},"_nodeVersion":"22.14.0","dependencies":{"mdast-util-gfm":"3.1.0","mdast-util-to-string":"4.0.0","micromark-extension-gfm":"3.0.0","mdast-util-from-markdown":"2.0.2"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"9.39.1","vitest":"4.0.15","typescript":"5.9.3","@types/node":"24.10.1"},"_npmOperationalInternal":{"tmp":"tmp/markdown-to-slack-blocks_1.0.0_1765110506655_0.05540141659990616","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"markdown-to-slack-blocks","version":"1.1.0","keywords":["slack","markdown","block-kit","converter","rich-text","parser"],"author":{"name":"allx"},"license":"MIT","_id":"markdown-to-slack-blocks@1.1.0","maintainers":[{"name":"allx","email":"allxmail@gmail.com"}],"homepage":"https://github.com/udivankin/markdown-to-slack-blocks#readme","bugs":{"url":"https://github.com/udivankin/markdown-to-slack-blocks/issues"},"dist":{"shasum":"b39faf0060c78cb3c7dc84586bd89097f64b6960","tarball":"https://registry.npmjs.org/markdown-to-slack-blocks/-/markdown-to-slack-blocks-1.1.0.tgz","fileCount":18,"integrity":"sha512-1p9jFID65RTjMGmRbUUihXceiMA1uepEy5+FY2vtyhyB7r9rplkkbAVyN6dPwcGoShRCANmHXDXRoDDLVmYxzw==","signatures":[{"sig":"MEQCIAyoPnMkHH3aZ8UpTnuqmcQdHOwtdkB/QTADJFNUP3/mAiBZqX+50hXGm/X/Gpv0a0RDdAocXbvaHtU0Exxu1SXmOw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":42761},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"f2a5a0c3a5b99c561b4fee047752b0986a0e498a","scripts":{"test":"vitest","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run clean && npm run build && npm test"},"_npmUser":{"name":"allx","email":"allxmail@gmail.com"},"repository":{"url":"git+https://github.com/udivankin/markdown-to-slack-blocks.git","type":"git"},"_npmVersion":"10.9.2","description":"Convert Markdown to Slack Block Kit JSON format","directories":{},"_nodeVersion":"22.14.0","dependencies":{"mdast-util-gfm":"3.1.0","mdast-util-to-string":"4.0.0","micromark-extension-gfm":"3.0.0","mdast-util-from-markdown":"2.0.2"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"9.39.1","vitest":"4.0.15","typescript":"5.9.3","@types/node":"24.10.1"},"_npmOperationalInternal":{"tmp":"tmp/markdown-to-slack-blocks_1.1.0_1765122528441_0.7289585850655234","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"markdown-to-slack-blocks","version":"1.2.0","keywords":["slack","markdown","block-kit","converter","rich-text","parser"],"author":{"name":"allx"},"license":"MIT","_id":"markdown-to-slack-blocks@1.2.0","maintainers":[{"name":"allx","email":"allxmail@gmail.com"}],"homepage":"https://github.com/udivankin/markdown-to-slack-blocks#readme","bugs":{"url":"https://github.com/udivankin/markdown-to-slack-blocks/issues"},"dist":{"shasum":"17f62624861230f1a8d8f9564b0600b9592f7e80","tarball":"https://registry.npmjs.org/markdown-to-slack-blocks/-/markdown-to-slack-blocks-1.2.0.tgz","fileCount":18,"integrity":"sha512-e7boMUCOK3+3U8888OXSFj72CCqMw7lHpnsqH5bYl00R7YOTDrtHjirreczYFXw/GhDkn5yz96/68Tpo14AZbw==","signatures":[{"sig":"MEQCIEEXTW934/x05MwTRbY0hw93vV1ugezB7h+iRs9pR31oAiAfsvpOZpXCe5iFZqmJnH6PYKwmvObwQuomJhojLgWqHg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":49177},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"f2a5a0c3a5b99c561b4fee047752b0986a0e498a","scripts":{"test":"vitest","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run clean && npm run build && npm test"},"_npmUser":{"name":"allx","email":"allxmail@gmail.com"},"repository":{"url":"git+https://github.com/udivankin/markdown-to-slack-blocks.git","type":"git"},"_npmVersion":"10.9.2","description":"Convert Markdown to Slack Block Kit JSON format","directories":{},"_nodeVersion":"22.14.0","dependencies":{"mdast-util-gfm":"3.1.0","mdast-util-to-string":"4.0.0","micromark-extension-gfm":"3.0.0","mdast-util-from-markdown":"2.0.2"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"9.39.1","vitest":"4.0.15","typescript":"5.9.3","@types/node":"24.10.1"},"_npmOperationalInternal":{"tmp":"tmp/markdown-to-slack-blocks_1.2.0_1765140235479_0.33156501445060993","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"markdown-to-slack-blocks","version":"1.2.1","keywords":["slack","markdown","block-kit","converter","rich-text","parser"],"author":{"name":"allx"},"license":"MIT","_id":"markdown-to-slack-blocks@1.2.1","maintainers":[{"name":"allx","email":"allxmail@gmail.com"}],"homepage":"https://github.com/udivankin/markdown-to-slack-blocks#readme","bugs":{"url":"https://github.com/udivankin/markdown-to-slack-blocks/issues"},"dist":{"shasum":"2b2643ee867e689615bc26ab5946e8559c0773f3","tarball":"https://registry.npmjs.org/markdown-to-slack-blocks/-/markdown-to-slack-blocks-1.2.1.tgz","fileCount":18,"integrity":"sha512-3GFj85taFdLsocVePoiBPNV+YUWZqorriHOn7rDDYzkM+m9HNKBmBYeINlRuXzXrPfc2OtO7qsSKJ2UpK6jwoA==","signatures":[{"sig":"MEYCIQCpCaqnEWi4G/Zq8v/QOd84kdXHsVUS297kDCJLxTUhfQIhAOZxxWLfyA9VydiL8aCSaJQnCGLLqW/ZXl4SK0Q6Qtbi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":49293},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"8c16a8dbaf21501d1a8df86792bdc9e545d2b293","scripts":{"test":"vitest","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run clean && npm run build && npm test","generate-fixtures":"npx tsx scripts/generate-fixtures.ts"},"_npmUser":{"name":"allx","email":"allxmail@gmail.com"},"repository":{"url":"git+https://github.com/udivankin/markdown-to-slack-blocks.git","type":"git"},"_npmVersion":"10.9.2","description":"Convert Markdown to Slack Block Kit JSON format","directories":{},"_nodeVersion":"22.14.0","dependencies":{"mdast-util-gfm":"3.1.0","mdast-util-to-string":"4.0.0","micromark-extension-gfm":"3.0.0","mdast-util-from-markdown":"2.0.2"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"9.39.1","vitest":"4.0.15","typescript":"5.9.3","@types/node":"24.10.1"},"_npmOperationalInternal":{"tmp":"tmp/markdown-to-slack-blocks_1.2.1_1765175236936_0.8488982507047456","host":"s3://npm-registry-packages-npm-production"}},"1.2.2":{"name":"markdown-to-slack-blocks","version":"1.2.2","keywords":["slack","markdown","block-kit","converter","rich-text","parser"],"author":{"name":"allx"},"license":"MIT","_id":"markdown-to-slack-blocks@1.2.2","maintainers":[{"name":"allx","email":"allxmail@gmail.com"}],"homepage":"https://github.com/udivankin/markdown-to-slack-blocks#readme","bugs":{"url":"https://github.com/udivankin/markdown-to-slack-blocks/issues"},"dist":{"shasum":"1f3104cfc7bbe540787faeb81d88006089d092bb","tarball":"https://registry.npmjs.org/markdown-to-slack-blocks/-/markdown-to-slack-blocks-1.2.2.tgz","fileCount":18,"integrity":"sha512-zMBrWu1wxdZbDVarB6u4q7oU3UDXO6xuwe+iAAOnY3NrQmwGv/FthrupNZuMVLk4Qj5rA7SzW3oGyKSEbep9kg==","signatures":[{"sig":"MEYCIQC5g+FyUQ5qhq/v7f7M/t2wLQjY2Ik//HUAea76c9A1tQIhALP3V8WtIJvVVhoOHLzqRIA7GCxJ1NgYYMF/OIzsMcYF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":53545},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"3e7b77b4900f055e4e27df03813094ca27139b10","scripts":{"test":"vitest","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run clean && npm run build && npm test","generate-fixtures":"npx tsx scripts/generate-fixtures.ts"},"_npmUser":{"name":"allx","email":"allxmail@gmail.com"},"repository":{"url":"git+https://github.com/udivankin/markdown-to-slack-blocks.git","type":"git"},"_npmVersion":"10.9.2","description":"Convert Markdown to Slack Block Kit JSON format","directories":{},"_nodeVersion":"22.14.0","dependencies":{"mdast-util-gfm":"3.1.0","mdast-util-to-string":"4.0.0","micromark-extension-gfm":"3.0.0","mdast-util-from-markdown":"2.0.2"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"9.39.1","vitest":"4.0.15","typescript":"5.9.3","@types/node":"24.10.1"},"_npmOperationalInternal":{"tmp":"tmp/markdown-to-slack-blocks_1.2.2_1765190457704_0.7869450599744603","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"markdown-to-slack-blocks","version":"1.3.0","keywords":["slack","markdown","block-kit","converter","rich-text","parser"],"author":{"name":"allx"},"license":"MIT","_id":"markdown-to-slack-blocks@1.3.0","maintainers":[{"name":"allx","email":"allxmail@gmail.com"}],"homepage":"https://github.com/udivankin/markdown-to-slack-blocks#readme","bugs":{"url":"https://github.com/udivankin/markdown-to-slack-blocks/issues"},"dist":{"shasum":"ed93fe495d364b01a4330e4eb77b0a67ddabf36d","tarball":"https://registry.npmjs.org/markdown-to-slack-blocks/-/markdown-to-slack-blocks-1.3.0.tgz","fileCount":18,"integrity":"sha512-KSWIjodhSoIPiPPQYFAjMobB+0v5nE/gAM6SvV6yVJ6c+8RIYFaxOAKr+JuU6pK3UuZJfN5XhJ4P+/x6lC/Z8w==","signatures":[{"sig":"MEQCIFy2NqgRzGmTDQIDWdZ6MPWNgcQ7mCtmidzXijnKlgqrAiB4XicZdLJix10rNJajz3ZSEfc9FoMi0E5+6SdqlfeQKw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":57972},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"3e7b77b4900f055e4e27df03813094ca27139b10","scripts":{"test":"vitest","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run clean && npm run build && npm test","generate-fixtures":"npx tsx scripts/generate-fixtures.ts"},"_npmUser":{"name":"allx","email":"allxmail@gmail.com"},"repository":{"url":"git+https://github.com/udivankin/markdown-to-slack-blocks.git","type":"git"},"_npmVersion":"10.9.2","description":"Convert Markdown to Slack Block Kit JSON format","directories":{},"_nodeVersion":"22.14.0","dependencies":{"mdast-util-gfm":"3.1.0","mdast-util-to-string":"4.0.0","micromark-extension-gfm":"3.0.0","mdast-util-from-markdown":"2.0.2"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"9.39.1","vitest":"4.0.15","typescript":"5.9.3","@types/node":"24.10.1"},"_npmOperationalInternal":{"tmp":"tmp/markdown-to-slack-blocks_1.3.0_1765369367758_0.5004433759131268","host":"s3://npm-registry-packages-npm-production"}},"1.3.1":{"name":"markdown-to-slack-blocks","version":"1.3.1","keywords":["slack","markdown","block-kit","converter","rich-text","parser"],"author":{"name":"allx"},"license":"MIT","_id":"markdown-to-slack-blocks@1.3.1","maintainers":[{"name":"allx","email":"allxmail@gmail.com"}],"homepage":"https://github.com/udivankin/markdown-to-slack-blocks#readme","bugs":{"url":"https://github.com/udivankin/markdown-to-slack-blocks/issues"},"dist":{"shasum":"245e9fc2a99056bf6493ad4dec3a41c4ae40e6ea","tarball":"https://registry.npmjs.org/markdown-to-slack-blocks/-/markdown-to-slack-blocks-1.3.1.tgz","fileCount":18,"integrity":"sha512-hiBburbvp2b5iKjESnj1IiE6lyeX2xvoR2hb1yPUHRv56P6ealJvvhcjjxY6hrB673dhkbmU1D1pzPVRq8raXQ==","signatures":[{"sig":"MEUCIQDdx6Q07nTRhMSxcXcQADaD6/flPhElqClbYOj7AF5wYQIgNkXFO8tfzbeHv0B0qdSGf6ZVbRuL/7bJycUESf1tgTA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":58808},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"915ab3a6251c8e58cafa5212236c5ce410131720","scripts":{"test":"vitest","build":"tsc","clean":"rm -rf dist","prepublishOnly":"npm run clean && npm run build && npm test","generate-fixtures":"npx tsx scripts/generate-fixtures.ts"},"_npmUser":{"name":"allx","email":"allxmail@gmail.com"},"repository":{"url":"git+https://github.com/udivankin/markdown-to-slack-blocks.git","type":"git"},"_npmVersion":"10.9.2","description":"Convert Markdown to Slack Block Kit JSON format","directories":{},"_nodeVersion":"22.14.0","dependencies":{"mdast-util-gfm":"3.1.0","mdast-util-to-string":"4.0.0","micromark-extension-gfm":"3.0.0","mdast-util-from-markdown":"2.0.2"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"9.39.1","vitest":"4.0.15","typescript":"5.9.3","@types/node":"24.10.1"},"_npmOperationalInternal":{"tmp":"tmp/markdown-to-slack-blocks_1.3.1_1765393534875_0.7840921610071803","host":"s3://npm-registry-packages-npm-production"}},"1.3.2":{"name":"markdown-to-slack-blocks","version":"1.3.2","keywords":["slack","markdown","block-kit","converter","rich-text","parser"],"author":{"name":"allx"},"license":"MIT","_id":"markdown-to-slack-blocks@1.3.2","maintainers":[{"name":"allx","email":"allxmail@gmail.com"}],"homepage":"https://github.com/udivankin/markdown-to-slack-blocks#readme","bugs":{"url":"https://github.com/udivankin/markdown-to-slack-blocks/issues"},"dist":{"shasum":"c2ea62fedf16ada393aeffb84bf1e33009ee7877","tarball":"https://registry.npmjs.org/markdown-to-slack-blocks/-/markdown-to-slack-blocks-1.3.2.tgz","fileCount":18,"integrity":"sha512-vTM8CD0otK+C2GQj3RV35IbnSVoursiLkJZqAlH+FixES+W9C9Gju7wUCrIV8IGmeoWbtzOOxkf8ggQD6h4Ijw==","signatures":[{"sig":"MEQCIDvVHLdwpyAg+MNvo/K+HLOid3YV++L6ljeMlKAxnKcdAiAVWuBvyVv+/icj4Jyk1w2uiHyLzckYT4+rquVqxZ1Y6Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":61458},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"adc6e23df3b5bbd602048b6656bfc5ae4f665d6f","scripts":{"lint":"biome lint --write","test":"vitest","build":"tsc","clean":"rm -rf dist","format":"biome format --write","prepublishOnly":"npm run clean && npm run build && npm test","generate-fixtures":"npx tsx scripts/generate-fixtures.ts"},"_npmUser":{"name":"allx","email":"allxmail@gmail.com"},"repository":{"url":"git+https://github.com/udivankin/markdown-to-slack-blocks.git","type":"git"},"_npmVersion":"10.9.2","description":"Convert Markdown to Slack Block Kit JSON format","directories":{},"_nodeVersion":"22.14.0","dependencies":{"mdast-util-gfm":"3.1.0","mdast-util-to-string":"4.0.0","micromark-extension-gfm":"3.0.0","mdast-util-from-markdown":"2.0.2"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"9.39.1","vitest":"4.0.15","typescript":"5.9.3","@types/node":"24.10.1","@biomejs/biome":"2.3.8"},"_npmOperationalInternal":{"tmp":"tmp/markdown-to-slack-blocks_1.3.2_1765445332707_0.21626975789156377","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"markdown-to-slack-blocks","version":"1.4.0","keywords":["slack","markdown","block-kit","converter","rich-text","parser"],"author":{"name":"allx"},"license":"MIT","_id":"markdown-to-slack-blocks@1.4.0","maintainers":[{"name":"allx","email":"allxmail@gmail.com"}],"homepage":"https://github.com/udivankin/markdown-to-slack-blocks#readme","bugs":{"url":"https://github.com/udivankin/markdown-to-slack-blocks/issues"},"dist":{"shasum":"d6eab5319a26035e6f8639d27f038bfe9556809e","tarball":"https://registry.npmjs.org/markdown-to-slack-blocks/-/markdown-to-slack-blocks-1.4.0.tgz","fileCount":18,"integrity":"sha512-uNSB6VeyC2agz0ec+jQu5AaTcBLhgoLW+B8vvzWti/1D9gYrCgBQ9DxC7SNoma3IUQNEAdB4D2sQE7mNUuTxjw==","signatures":[{"sig":"MEUCIDCpGzb4dXUdDNW6ia4WVCOJ6KoASUWJBtr+Q9q9ZBmOAiEAp/tiMuSUxvskeAVdLg/DQ5OGj72+HLycaLivdzXxdVg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":62757},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"26853db715c5d63ad20cc445313126b61c2ae989","scripts":{"lint":"biome lint --write","test":"vitest --run","build":"tsc","clean":"rm -rf dist","format":"biome format --write","test-watch":"vitest","prepublishOnly":"npm run clean && npm run build && npm test","generate-fixtures":"npx tsx scripts/generate-fixtures.ts"},"_npmUser":{"name":"allx","email":"allxmail@gmail.com"},"repository":{"url":"git+https://github.com/udivankin/markdown-to-slack-blocks.git","type":"git"},"_npmVersion":"10.9.2","description":"Convert Markdown to Slack Block Kit JSON format","directories":{},"_nodeVersion":"22.14.0","dependencies":{"mdast-util-gfm":"3.1.0","mdast-util-to-string":"4.0.0","micromark-extension-gfm":"3.0.0","mdast-util-from-markdown":"2.0.2"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"9.39.1","vitest":"4.0.15","typescript":"5.9.3","@types/node":"24.10.1","@biomejs/biome":"2.3.8"},"_npmOperationalInternal":{"tmp":"tmp/markdown-to-slack-blocks_1.4.0_1766088917345_0.8522134123507104","host":"s3://npm-registry-packages-npm-production"}},"1.4.1":{"name":"markdown-to-slack-blocks","version":"1.4.1","keywords":["slack","markdown","block-kit","converter","rich-text","parser"],"author":{"name":"allx"},"license":"MIT","_id":"markdown-to-slack-blocks@1.4.1","maintainers":[{"name":"allx","email":"allxmail@gmail.com"}],"homepage":"https://github.com/udivankin/markdown-to-slack-blocks#readme","bugs":{"url":"https://github.com/udivankin/markdown-to-slack-blocks/issues"},"dist":{"shasum":"68c2b9bbdb073f00e7910816d3773b60d2a8a7a5","tarball":"https://registry.npmjs.org/markdown-to-slack-blocks/-/markdown-to-slack-blocks-1.4.1.tgz","fileCount":18,"integrity":"sha512-73R6lXTrkwtbBxHwJUcU2UZo4RCnTyuwKsFadOMC3YC9/UXTP52fH6A/298wylnsiN4nPdOacqrr1seSeVK8Tg==","signatures":[{"sig":"MEUCIQCdQ4SRF5I1O+rxH4t6+mWkjN/d+ZC9zVhTtZD/JrA2cQIgVp/dXPfl4o700KS1380+44c183gHIkIEFSlan1ybHik=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":63532},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"3d83275e4f262264b9658c448fcc40338a9ced80","scripts":{"lint":"biome lint --write","test":"vitest --run","build":"tsc","clean":"rm -rf dist","format":"biome format --write","test-watch":"vitest","prepublishOnly":"npm run clean && npm run build && npm test","generate-fixtures":"npx tsx scripts/generate-fixtures.ts"},"_npmUser":{"name":"allx","email":"allxmail@gmail.com"},"repository":{"url":"git+https://github.com/udivankin/markdown-to-slack-blocks.git","type":"git"},"_npmVersion":"11.6.2","description":"Convert Markdown to Slack Block Kit JSON format","directories":{},"_nodeVersion":"24.13.0","dependencies":{"mdast-util-gfm":"3.1.0","mdast-util-to-string":"4.0.0","micromark-extension-gfm":"3.0.0","mdast-util-from-markdown":"2.0.2"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"9.39.1","vitest":"4.0.15","typescript":"5.9.3","@types/node":"24.10.1","@biomejs/biome":"2.3.8"},"_npmOperationalInternal":{"tmp":"tmp/markdown-to-slack-blocks_1.4.1_1770751635185_0.9907331784265025","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"markdown-to-slack-blocks","version":"1.5.0","keywords":["slack","markdown","block-kit","converter","rich-text","parser"],"author":{"name":"allx"},"license":"MIT","_id":"markdown-to-slack-blocks@1.5.0","maintainers":[{"name":"allx","email":"allxmail@gmail.com"}],"homepage":"https://github.com/udivankin/markdown-to-slack-blocks#readme","bugs":{"url":"https://github.com/udivankin/markdown-to-slack-blocks/issues"},"dist":{"shasum":"9fb04410c59e042f37d26a09a3121cc23e7923d8","tarball":"https://registry.npmjs.org/markdown-to-slack-blocks/-/markdown-to-slack-blocks-1.5.0.tgz","fileCount":18,"integrity":"sha512-WQNohdRplZAFvY9emLvfv6GkzUyUvKlJP7Bw2YHwnIY6qXn1tQtVsqKPu22I5EiSuMlGrM/2bzdCiZO5rn/sJQ==","signatures":[{"sig":"MEUCIQCaGw9V8yeoRHw26lGs/qUqp9uyxDO42n/Se9eZbpxjXwIgOvulOEwRPDITDCNO9exq9OIn+lq7vojWQAf5MjorAiU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":81810},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"cb439743ae5cc6ca80d3085393632e4c3c2e1621","scripts":{"lint":"biome lint --write","test":"vitest --run","build":"tsc","clean":"rm -rf dist","format":"biome format --write","test-watch":"vitest","prepublishOnly":"npm run clean && npm run build && npm test","generate-fixtures":"npx tsx scripts/generate-fixtures.ts"},"_npmUser":{"name":"allx","email":"allxmail@gmail.com"},"repository":{"url":"git+https://github.com/udivankin/markdown-to-slack-blocks.git","type":"git"},"_npmVersion":"10.9.2","description":"Convert Markdown to Slack Block Kit JSON format and vice versa.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"mdast-util-gfm":"3.1.0","mdast-util-to-string":"4.0.0","micromark-extension-gfm":"3.0.0","mdast-util-from-markdown":"2.0.3"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"9.39.1","vitest":"4.1.2","typescript":"5.9.3","@types/node":"24.10.1","@biomejs/biome":"2.3.8"},"_npmOperationalInternal":{"tmp":"tmp/markdown-to-slack-blocks_1.5.0_1774961290741_0.6213900763801632","host":"s3://npm-registry-packages-npm-production"}},"1.6.1":{"name":"markdown-to-slack-blocks","version":"1.6.1","description":"A powerful, type-safe library to convert Markdown (incl. GFM tables, code, mentions, and LLM output) into Slack Block Kit JSON — and back. Supports Slack's native data_table block with dynamic cell typing.","main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","require":"./dist/index.js","import":"./dist/index.js"}},"scripts":{"build":"tsc","type-check":"tsc --noEmit","clean":"rm -rf dist","format":"biome format --write","lint":"biome lint --write","prepublishOnly":"npm run clean && npm run build && npm test","test":"vitest --run","test-watch":"vitest","generate-fixtures":"npx tsx scripts/generate-fixtures.ts"},"keywords":["slack","markdown","block-kit","blockkit","slack-block-kit","slack-blocks","slack-api","slack-bot","slack-message","markdown-to-slack","markdown-parser","converter","rich-text","rich-text-block","data-table","data_table","table","mrkdwn","gfm","parser","chatops","llm","typescript"],"author":{"name":"allx"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/udivankin/markdown-to-slack-blocks.git"},"homepage":"https://github.com/udivankin/markdown-to-slack-blocks#readme","bugs":{"url":"https://github.com/udivankin/markdown-to-slack-blocks/issues"},"engines":{"node":">=18.0.0"},"dependencies":{"mdast-util-from-markdown":"2.0.3","mdast-util-gfm":"3.1.0","mdast-util-to-string":"4.0.0","micromark-extension-gfm":"3.0.0"},"devDependencies":{"@biomejs/biome":"2.3.8","@types/node":"24.10.1","eslint":"9.39.1","typescript":"5.9.3","vitest":"4.1.2"},"gitHead":"8de471ca73439cb02074c31d4ed1bc21df481b00","_id":"markdown-to-slack-blocks@1.6.1","_nodeVersion":"24.16.0","_npmVersion":"11.13.0","dist":{"integrity":"sha512-6aOn3WtsotbVHhKVYGbgx7STC0Fvyn04nCYajUDO6YyVEiJRKu+yDnelZ04yBC46F/S4vg7xbQVh8t/6xL3QMA==","shasum":"162b84bf4ae94c968fa6769384e23bc911376797","tarball":"https://registry.npmjs.org/markdown-to-slack-blocks/-/markdown-to-slack-blocks-1.6.1.tgz","fileCount":18,"unpackedSize":90797,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/markdown-to-slack-blocks@1.6.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDPVupi3Z/0ILOS+PVeeL2VoO3dVavWNxp42jWXaD28UAIhANicN3BEMqS3dBp1ZMGfom+HRiY2rwps4H2k2M+vRuXw"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b988af12-694d-442a-8b0e-27a6234c1315"}},"directories":{},"maintainers":[{"name":"allx","email":"allxmail@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/markdown-to-slack-blocks_1.6.1_1781889893475_0.2971574418744145"},"_hasShrinkwrap":false}},"time":{"created":"2025-12-07T12:28:26.654Z","modified":"2026-06-19T17:24:53.885Z","1.0.0":"2025-12-07T12:28:26.791Z","1.1.0":"2025-12-07T15:48:48.589Z","1.2.0":"2025-12-07T20:43:55.623Z","1.2.1":"2025-12-08T06:27:17.087Z","1.2.2":"2025-12-08T10:40:57.835Z","1.3.0":"2025-12-10T12:22:47.919Z","1.3.1":"2025-12-10T19:05:35.049Z","1.3.2":"2025-12-11T09:28:52.851Z","1.4.0":"2025-12-18T20:15:17.491Z","1.4.1":"2026-02-10T19:27:15.334Z","1.5.0":"2026-03-31T12:48:10.874Z","1.6.1":"2026-06-19T17:24:53.597Z"},"bugs":{"url":"https://github.com/udivankin/markdown-to-slack-blocks/issues"},"author":{"name":"allx"},"license":"MIT","homepage":"https://github.com/udivankin/markdown-to-slack-blocks#readme","keywords":["slack","markdown","block-kit","blockkit","slack-block-kit","slack-blocks","slack-api","slack-bot","slack-message","markdown-to-slack","markdown-parser","converter","rich-text","rich-text-block","data-table","data_table","table","mrkdwn","gfm","parser","chatops","llm","typescript"],"repository":{"type":"git","url":"git+https://github.com/udivankin/markdown-to-slack-blocks.git"},"description":"A powerful, type-safe library to convert Markdown (incl. GFM tables, code, mentions, and LLM output) into Slack Block Kit JSON — and back. Supports Slack's native data_table block with dynamic cell typing.","maintainers":[{"name":"allx","email":"allxmail@gmail.com"}],"readme":"# Markdown to Slack Blocks\n\n[![npm version](https://img.shields.io/npm/v/markdown-to-slack-blocks?logo=npm&color=cb3837)](https://www.npmjs.com/package/markdown-to-slack-blocks)\n[![npm downloads](https://img.shields.io/npm/dm/markdown-to-slack-blocks?logo=npm&color=cb3837)](https://www.npmjs.com/package/markdown-to-slack-blocks)\n[![CI](https://github.com/udivankin/markdown-to-slack-blocks/actions/workflows/ci.yml/badge.svg)](https://github.com/udivankin/markdown-to-slack-blocks/actions/workflows/ci.yml)\n[![TypeScript](https://img.shields.io/npm/types/markdown-to-slack-blocks?logo=typescript&logoColor=white&color=3178c6)](https://www.typescriptlang.org/)\n[![Minzipped size](https://img.shields.io/bundlephobia/minzip/markdown-to-slack-blocks?color=44cc11)](https://bundlephobia.com/package/markdown-to-slack-blocks)\n[![Node.js](https://img.shields.io/node/v/markdown-to-slack-blocks?logo=node.js&logoColor=white&color=339933)](https://nodejs.org/)\n[![License: MIT](https://img.shields.io/npm/l/markdown-to-slack-blocks?color=blue)](./LICENSE)\n\nA powerful library to convert Markdown text into Slack's Block Kit JSON format (and back).\n\nTurn Markdown — including content generated by LLMs — into ready-to-post Slack [Block Kit](https://api.slack.com/block-kit) messages, with full support for rich text, code blocks, tables, mentions, and more. The conversion is bidirectional: render Slack blocks back to Markdown or plain text whenever you need a fallback.\n\n## Motivation\n\nWhile Slack does offer native [markdown support in blocks](https://api.slack.com/reference/surfaces/formatting#basics), there are significant limitations. The following markdown features are **not supported** by Slack's native markdown:\n\n- **Code blocks with syntax highlighting** — Slack renders code blocks but ignores language hints\n- **Horizontal rules** — No native support for `---` or `***` dividers\n- **Tables** — Markdown tables are not rendered\n- **Task lists** — Checkbox-style lists (`- [ ]`, `- [x]`) are not recognized\n\nThis library is particularly useful for apps that leverage **platform AI features** where you expect a **markdown response from an LLM**. Instead of sending raw markdown that Slack can't fully render, this library converts it to proper Block Kit JSON that displays correctly.\n\n### Additional Features\n\nBeyond basic markdown conversion, this library provides:\n\n- **Mention Support**: User, channel, user group, and team mentions (`@username`, `#channel`) are automatically detected and converted to Slack's native mention format when ID mappings are provided. Without mappings, mentions are rendered as plain text in some cases.\n- **Native Slack Dates**: Support for Slack's date formatting syntax, allowing dynamic date rendering that respects user timezones.\n- **Color Detection**: Optional color detection that converts color values (hex, rgb, named colors) into Slack's native color elements for rich visual formatting.\n\n## How It Works\n\nThis library uses a two-step conversion process:\n\n1. **Markdown → AST**: The markdown string is parsed into an Abstract Syntax Tree (AST) using [mdast-util-from-markdown](https://github.com/syntax-tree/mdast-util-from-markdown), with GitHub Flavored Markdown (GFM) support via [mdast-util-gfm](https://github.com/syntax-tree/mdast-util-gfm).\n\n2. **AST → Slack Blocks**: The AST is traversed and converted into Slack's Block Kit JSON format, mapping markdown elements to their corresponding Slack block types and rich text elements.\n\n### Key Libraries\n\n- **[mdast-util-from-markdown](https://github.com/syntax-tree/mdast-util-from-markdown)** — Parses markdown into an AST\n- **[mdast-util-gfm](https://github.com/syntax-tree/mdast-util-gfm)** — Adds GitHub Flavored Markdown support (tables, strikethrough, task lists)\n- **[micromark-extension-gfm](https://github.com/micromark/micromark-extension-gfm)** — Micromark extension for GFM syntax\n- **[mdast-util-to-string](https://github.com/syntax-tree/mdast-util-to-string)** — Extracts plain text from AST nodes\n\n## Supported Output\n\n### Blocks\n\n| Block Type | Description |\n|------------|-------------|\n| `rich_text` | Primary block type for formatted text content |\n| `header` | H1 headings rendered as header blocks |\n| `divider` | Horizontal rules converted to divider blocks |\n| `image` | Standalone images |\n| `section` | Text sections with optional accessories |\n| `context` | Smaller context text and images |\n| `data_table` | Slack's native data table (default for Markdown tables); cell types are chosen automatically per cell |\n| `table` | Legacy table block (opt-in via `tableBlockType: \"table\"`); every cell is a `rich_text` block |\n\n### Rich Text Elements\n\n| Element Type | Description |\n|--------------|-------------|\n| `rich_text_section` | Container for inline text elements |\n| `rich_text_list` | Ordered and unordered lists (supports nesting) |\n| `rich_text_preformatted` | Code blocks |\n| `rich_text_quote` | Blockquotes |\n\n### Rich Text Section Elements\n\n| Element Type | Description |\n|--------------|-------------|\n| `text` | Plain text with optional styling (bold, italic, strike, code) |\n| `link` | Hyperlinks |\n| `emoji` | Emoji shortcodes (`:emoji_name:`) |\n| `user` | User mentions (`@username`) |\n| `channel` | Channel mentions (`#channel`) |\n| `usergroup` | User group mentions |\n| `team` | Team mentions |\n| `broadcast` | Broadcast mentions (`@here`, `@channel`, `@everyone`) |\n| `date` | Formatted date objects |\n| `color` | Color values (when `detectColors` is enabled) |\n\n### Text Styles\n\n| Style | Markdown Syntax |\n|-------|-----------------|\n| **Bold** | `**text**` or `__text__` |\n| *Italic* | `*text*` or `_text_` |\n| ~~Strikethrough~~ | `~~text~~` |\n| `Code` | `` `text` `` |\n\n## Features\n\n- **Standard Markdown Support**: Converts headings, lists, bold, italic, code blocks, blockquotes, and links.\n- **Tables**: GFM tables become Slack's native `data_table` block, with each cell typed dynamically (`raw_text`, `raw_number`, or `rich_text`).\n- **Bidirectional**: Convert Markdown → Block Kit and Block Kit → Markdown/plain text for fallbacks.\n- **Slack-Specific Extensions**: Support for user mentions, channel mentions, user groups, and team mentions.\n- **LLM-Ready**: Designed to clean up Markdown returned by LLMs into valid Block Kit JSON.\n- **Configurable**: Options to customize behavior, such as color detection and table block type.\n- **Type-Safe**: Written in TypeScript with full type definitions.\n\n## Installation\n\n```bash\nnpm install markdown-to-slack-blocks\n```\n\n## Usage\n\n```typescript\nimport { markdownToBlocks } from 'markdown-to-slack-blocks';\n\nconst markdown = `\n# Hello World\nThis is a **bold** statement.\n`;\n\nconst blocks = markdownToBlocks(markdown);\nconsole.log(JSON.stringify(blocks, null, 2));\n```\n\n### Options\n\nYou can pass an options object to `markdownToBlocks`, otherwise the mentions will be rendered as text in some blocks (e.g. tables):\n\n```typescript\nconst options = {\n    mentions: {\n        users: { 'username': 'U123456' },\n        channels: { 'general': 'C123456' },\n        userGroups: { 'engineers': 'S123456' },\n        teams: { 'myteam': 'T123456' }\n    },\n    detectColors: true,\n    preferSectionBlocks: true // default: true\n};\n\nconst blocks = markdownToBlocks(markdown, options);\n```\n\n### Validation\n\nThe library validates that the IDs provided in the `mentions` option adhere to Slack's ID format:\n- **User IDs**: Must start with `U` or `W`.\n- **Channel IDs**: Must start with `C`.\n- **User Group IDs**: Must start with `S`.\n- **Team IDs**: Must start with `T`.\n\nAll IDs must be alphanumeric.\n\n### Tables\n\nMarkdown (GFM) tables are converted to Slack's native [`data_table`](https://api.slack.com/reference/block-kit/blocks#table) block by default. The cell type for every cell is chosen **dynamically, based on its content**, so the output is as faithful and lightweight as possible:\n\n| Cell content | Emitted cell type |\n|--------------|-------------------|\n| Plain, unstyled text | `raw_text` |\n| A pure number (e.g. `10`, `-3.5`) | `raw_number` (keeps `value` for sorting/formatting) |\n| Styled text, links, mentions, emoji, … | `rich_text` |\n\n```typescript\nconst markdown = `\n| Name  | Amount | Stage         |\n| ----- | ------ | ------------- |\n| Alpha | 10     | **Negotiation** |\n| Bravo | 2.5    | Waiting on *review* |\n`;\n\nconst blocks = markdownToBlocks(markdown);\n```\n\n```jsonc\n{\n  \"type\": \"data_table\",\n  \"caption\": \"Data table\",\n  \"rows\": [\n    [\n      { \"type\": \"raw_text\", \"text\": \"Name\" },\n      { \"type\": \"raw_text\", \"text\": \"Amount\" },\n      { \"type\": \"raw_text\", \"text\": \"Stage\" }\n    ],\n    [\n      { \"type\": \"raw_text\", \"text\": \"Alpha\" },\n      { \"type\": \"raw_number\", \"value\": 10, \"text\": \"10\" },\n      {\n        \"type\": \"rich_text\",\n        \"elements\": [\n          {\n            \"type\": \"rich_text_section\",\n            \"elements\": [{ \"type\": \"text\", \"text\": \"Negotiation\", \"style\": { \"bold\": true } }]\n          }\n        ]\n      }\n    ]\n  ]\n}\n```\n\n**Options:**\n\n```typescript\nmarkdownToBlocks(markdown, {\n  tableBlockType: \"data_table\", // default; use \"table\" for the legacy rich_text-cell block\n  tableCaption: \"Data table\",   // default caption; pass \"\" to omit it\n});\n```\n\n`blocksToMarkdown` and `blocksToPlainText` render both `data_table` and legacy `table` blocks back to Markdown tables, so tables round-trip cleanly.\n\n### Handling Large Messages\n\nSlack limits messages to **~45 blocks** and **~12KB** of JSON. Use `splitBlocks` to split large outputs into several messages, or `splitBlocksWithText` if you also need a plain-text fallback for `postMessage`:\n\n```typescript\nimport { markdownToBlocks, splitBlocks, splitBlocksWithText } from 'markdown-to-slack-blocks';\n\nconst blocks = markdownToBlocks(veryLongMarkdown);\n\n// Blocks-only batches\nconst batches = splitBlocks(blocks);\nfor (const batch of batches) {\n    await slack.postMessage({ channel, blocks: batch });\n}\n\n// Batches with text fallback\nconst batchesWithText = splitBlocksWithText(blocks);\nfor (const batch of batchesWithText) {\n    await slack.postMessage({ channel, text: batch.text, blocks: batch.blocks });\n}\n```\n\n**Options:**\n```typescript\nsplitBlocks(blocks, { maxBlocks: 40, maxCharacters: 12000 });\nsplitBlocksWithText(blocks, { maxBlocks: 40, maxCharacters: 12000 });\n```\n\nSplitting happens at natural boundaries: between blocks first, then within `rich_text` elements, and finally within large code blocks by line. `splitBlocksWithText` additionally generates a concise plaintext summary per batch (headers, sections, rich text, tables, etc.) suitable for Slack's `text` field.\n\n### Plain text rendering\n\nIf you already have a block array and need a lightweight plaintext fallback (for example to populate the `text` field in `chat.postMessage`), use `blocksToPlainText`:\n\n```typescript\nimport { blocksToPlainText } from 'markdown-to-slack-blocks';\n\nconst text = blocksToPlainText(blocks);\n// -> \"Hello world\" or similar, depending on your blocks\n```\n\nThe function walks the rendered blocks and returns a joined string that keeps list markers, quotes, tables (as `cell | cell` rows), mentions, dates (using the provided fallback or ISO string), and basic formatting markers where possible. The output is best-effort and is intended for concise fallbacks rather than full fidelity rendering.\n\n### Markdown rendering\n\nIf you need a best-effort Markdown representation of an existing block array, use `blocksToMarkdown`:\n\n```typescript\nimport { blocksToMarkdown } from 'markdown-to-slack-blocks';\n\nconst markdown = blocksToMarkdown(blocks);\n// -> \"# Title\\n\\nParagraph with **bold** text\" or similar\n```\n\nIf you want Slack IDs rendered back to visible mention names (which might be useful for LLMs), pass the inverse mention map:\n\n```typescript\nconst markdown = blocksToMarkdown(blocks, {\n    mentions: {\n        users: { 'U123456': 'username' },\n        channels: { 'C123456': 'general' },\n        userGroups: { 'S123456': 'engineers' },\n        teams: { 'T123456': 'myteam' }\n    }\n});\n```\n\nWith these options, mentions like `<@U123456>` or `<#C123456>` are rendered as `@username` and `#general` where possible. The same ID format validation applies to these reverse mention maps.\n\nThe renderer converts `rich_text`, section `mrkdwn`, code blocks, quotes, lists, tables, images, and Slack entities back into normalized Markdown. Because Slack blocks do not preserve every detail of the original source, the output is canonicalized rather than byte-for-byte identical to the input, but it round-trips cleanly for this library's generated blocks.\n","readmeFilename":"README.md"}