{"_id":"@bloom-and-co/mdviewer","_rev":"7-9ad46ea9f9dd334e7c5df6d859aa8af9","name":"@bloom-and-co/mdviewer","dist-tags":{"latest":"0.1.6"},"versions":{"0.1.0":{"name":"@bloom-and-co/mdviewer","version":"0.1.0","keywords":["markdown","viewer","development","server","hot-reload","markdown-viewer","local-server","gfm","mermaid","syntax-highlighting"],"author":{"name":"Yuichiro MASUI","email":"y.masui@bloom-and-co.com"},"license":"Apache-2.0","_id":"@bloom-and-co/mdviewer@0.1.0","maintainers":[{"name":"masuidrive","email":"masui@masuidrive.jp"}],"homepage":"https://github.com/YOUR_USERNAME/mdviewer#readme","bugs":{"url":"https://github.com/YOUR_USERNAME/mdviewer/issues"},"bin":{"mdviewer":"dist/index.js"},"dist":{"shasum":"73e13b095f513b901e4545e107955660bdf1fbc3","tarball":"https://registry.npmjs.org/@bloom-and-co/mdviewer/-/mdviewer-0.1.0.tgz","fileCount":55,"integrity":"sha512-eOHTHn4JnP9hMIMVXHveEJloo8U5yG+VQGw9chD61GM1/GVuqzVmQfUuuNh61OupkFtRPWla4ZrXP9HPeghfbg==","signatures":[{"sig":"MEUCIQDFCcAEWMnc/dw86qkg83tDM3UBI5QM2ROu6vGsse3/SQIgEGkdqevGtATOGrBKz2IgQ1JQBC5OFT+5wUjIviWUpfg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":135141},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"dc6157836fd611a5466e189c2de0957a64b2fabe","scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","start":"node dist/index.js","test:watch":"jest --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"masuidrive","email":"masui@masuidrive.jp"},"repository":{"url":"git+https://github.com/YOUR_USERNAME/mdviewer.git","type":"git"},"_npmVersion":"10.9.0","description":"Markdown file viewer with hot reload for local development","directories":{},"_nodeVersion":"22.12.0","dependencies":{"marked":"^11.0.0","prismjs":"^1.29.0","chokidar":"^4.0.0","mime-types":"^2.1.35","marked-gfm-heading-id":"^3.1.3"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.0","ts-node":"^10.9.0","typescript":"^5.3.0","@types/jest":"^29.5.0","@types/node":"^20.0.0","@types/prismjs":"^1.26.3","@types/mime-types":"^2.1.4"},"optionalDependencies":{"fsevents":"^2.3.3"},"_npmOperationalInternal":{"tmp":"tmp/mdviewer_0.1.0_1763016816894_0.3655600370360854","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@bloom-and-co/mdviewer","version":"0.1.1","keywords":["markdown","viewer","development","server","hot-reload","markdown-viewer","local-server","gfm","mermaid","syntax-highlighting"],"author":{"name":"Yuichiro MASUI","email":"y.masui@bloom-and-co.com"},"license":"Apache-2.0","_id":"@bloom-and-co/mdviewer@0.1.1","maintainers":[{"name":"masuidrive","email":"masui@masuidrive.jp"}],"homepage":"https://github.com/YOUR_USERNAME/mdviewer#readme","bugs":{"url":"https://github.com/YOUR_USERNAME/mdviewer/issues"},"bin":{"mdviewer":"dist/index.js"},"dist":{"shasum":"13a504612280175f3566473a8f63067304342a13","tarball":"https://registry.npmjs.org/@bloom-and-co/mdviewer/-/mdviewer-0.1.1.tgz","fileCount":55,"integrity":"sha512-cU98Dimp40az1VZqIRwQ4qLVCcU/nNM2BInUdOb/ROVQZ49I/VV24tbV/GBO+Ggeq4QeHWagAmHvNSld58hYZQ==","signatures":[{"sig":"MEYCIQDG7oSAQZzuuZbekll/8ZrFjPTTNWc3YgkAqLzp+wHpywIhALllxoQKULCXqDAqoRaBvVL5xYN5mRCW/miypD1YywS3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":135141},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"dc6157836fd611a5466e189c2de0957a64b2fabe","scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","start":"node dist/index.js","test:watch":"jest --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"masuidrive","email":"masui@masuidrive.jp"},"repository":{"url":"git+https://github.com/YOUR_USERNAME/mdviewer.git","type":"git"},"_npmVersion":"10.9.0","description":"Markdown file viewer with hot reload for local development","directories":{},"_nodeVersion":"22.12.0","dependencies":{"marked":"^11.0.0","prismjs":"^1.29.0","chokidar":"^4.0.0","mime-types":"^2.1.35","marked-gfm-heading-id":"^3.1.3"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.0","ts-node":"^10.9.0","typescript":"^5.3.0","@types/jest":"^29.5.0","@types/node":"^20.0.0","@types/prismjs":"^1.26.3","@types/mime-types":"^2.1.4"},"optionalDependencies":{"fsevents":"^2.3.3"},"_npmOperationalInternal":{"tmp":"tmp/mdviewer_0.1.1_1763017585572_0.5310087944711255","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@bloom-and-co/mdviewer","version":"0.1.2","keywords":["markdown","viewer","development","server","hot-reload","markdown-viewer","local-server","gfm","mermaid","syntax-highlighting"],"author":{"name":"Yuichiro MASUI","email":"y.masui@bloom-and-co.com"},"license":"Apache-2.0","_id":"@bloom-and-co/mdviewer@0.1.2","maintainers":[{"name":"masuidrive","email":"masui@masuidrive.jp"}],"homepage":"https://github.com/YOUR_USERNAME/mdviewer#readme","bugs":{"url":"https://github.com/YOUR_USERNAME/mdviewer/issues"},"bin":{"mdviewer":"dist/index.js"},"dist":{"shasum":"6fcd46aa7d289097013e898b6dfdaba497774635","tarball":"https://registry.npmjs.org/@bloom-and-co/mdviewer/-/mdviewer-0.1.2.tgz","fileCount":55,"integrity":"sha512-bHNTmKCr87TtLx6g84jX9tcq6C0e1m/ooupEqXt/PsoWCkFkF3XO8LJ8fDSfxIxckkmLEV1bvEmz8j+53s8dLQ==","signatures":[{"sig":"MEQCIEXnFqBRBoB+ILVD+7oPgC4Kwxq1nzowbbt7JVpxO/ScAiA+gnTPUni/pm4RtRvXSuvK6/gyj9+AqCYaDLGl32QEog==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":135143},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"3b3f195646274fdc9d88668abd0b655f883fbed5","scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","start":"node dist/index.js","test:watch":"jest --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"masuidrive","email":"masui@masuidrive.jp"},"repository":{"url":"git+https://github.com/YOUR_USERNAME/mdviewer.git","type":"git"},"_npmVersion":"10.9.0","description":"Markdown file viewer with hot reload for local development","directories":{},"_nodeVersion":"22.12.0","dependencies":{"marked":"^11.0.0","prismjs":"^1.29.0","chokidar":"^4.0.0","mime-types":"^2.1.35","marked-gfm-heading-id":"^3.1.3"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.0","ts-node":"^10.9.0","typescript":"^5.3.0","@types/jest":"^29.5.0","@types/node":"^20.0.0","@types/prismjs":"^1.26.3","@types/mime-types":"^2.1.4"},"optionalDependencies":{"fsevents":"^2.3.3"},"_npmOperationalInternal":{"tmp":"tmp/mdviewer_0.1.2_1763018548405_0.563256324614791","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@bloom-and-co/mdviewer","version":"0.1.3","keywords":["markdown","viewer","development","server","hot-reload","markdown-viewer","local-server","gfm","mermaid","syntax-highlighting"],"author":{"name":"Yuichiro MASUI","email":"y.masui@bloom-and-co.com"},"license":"Apache-2.0","_id":"@bloom-and-co/mdviewer@0.1.3","maintainers":[{"name":"masuidrive","email":"masui@masuidrive.jp"}],"homepage":"https://github.com/bloom-and-co/mdviewer#readme","bugs":{"url":"https://github.com/bloom-and-co/mdviewer/issues"},"bin":{"mdviewer":"dist/index.js"},"dist":{"shasum":"c4fd1a6065efae8d80eebac7bf52958301a8a8b8","tarball":"https://registry.npmjs.org/@bloom-and-co/mdviewer/-/mdviewer-0.1.3.tgz","fileCount":55,"integrity":"sha512-Va1/owzGlae9LDgCvCnZfWFvx8lg/ENKK7d5+xhp7aT7+NRj5gfr9pLONV5egrc+Sfy5HITKEO2G0gWWFtvWew==","signatures":[{"sig":"MEQCIH62Ij3SPRq3+rpOL3rXm97jiswTLcOu6XCk3YxIRqcsAiBGX58MbWja67YFt9h5ZFMqE5o/XUPWwO6XlKZdltNfPg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":135140},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"97074fa930a14f097c7612d9c197d6070a4e0425","scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","start":"node dist/index.js","test:watch":"jest --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"masuidrive","email":"masui@masuidrive.jp"},"repository":{"url":"git+https://github.com/bloom-and-co/mdviewer.git","type":"git"},"_npmVersion":"10.9.0","description":"Markdown file viewer with hot reload for local development","directories":{},"_nodeVersion":"22.12.0","dependencies":{"marked":"^11.0.0","prismjs":"^1.29.0","chokidar":"^4.0.0","mime-types":"^2.1.35","marked-gfm-heading-id":"^3.1.3"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.0","ts-node":"^10.9.0","typescript":"^5.3.0","@types/jest":"^29.5.0","@types/node":"^20.0.0","@types/prismjs":"^1.26.3","@types/mime-types":"^2.1.4"},"optionalDependencies":{"fsevents":"^2.3.3"},"_npmOperationalInternal":{"tmp":"tmp/mdviewer_0.1.3_1763018631229_0.1673687442142433","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@bloom-and-co/mdviewer","version":"0.1.4","keywords":["markdown","viewer","development","server","hot-reload","markdown-viewer","local-server","gfm","mermaid","syntax-highlighting"],"author":{"name":"Yuichiro MASUI","email":"y.masui@bloom-and-co.com"},"license":"Apache-2.0","_id":"@bloom-and-co/mdviewer@0.1.4","maintainers":[{"name":"masuidrive","email":"masui@masuidrive.jp"}],"homepage":"https://github.com/bloom-and-co/mdviewer#readme","bugs":{"url":"https://github.com/bloom-and-co/mdviewer/issues"},"bin":{"mdviewer":"dist/index.js"},"dist":{"shasum":"887c2b5abd3c5cf63b40bb93b3449a4aef573566","tarball":"https://registry.npmjs.org/@bloom-and-co/mdviewer/-/mdviewer-0.1.4.tgz","fileCount":55,"integrity":"sha512-DNr3XBIkhdc1wZIUARcRhhOmeEVSTv7hU97Z7wNPjXdwyHw48pySXZjArdi8Spka4xWETLg5x4ME3c/sps1CYQ==","signatures":[{"sig":"MEUCIQDt07Cikhm61tkfH4B3CyJ7H44kvDyAjYBNcCMTbD3XkQIgeooqf0dvrb23JT8VpQgJAGsEd9XuXD091qwJvI3PUYs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":135112},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"1b98fb2e49c318a48d4380702aff68c82194a4f5","scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","start":"node dist/index.js","test:watch":"jest --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"masuidrive","email":"masui@masuidrive.jp"},"repository":{"url":"git+https://github.com/bloom-and-co/mdviewer.git","type":"git"},"_npmVersion":"10.9.0","description":"Markdown file viewer with hot reload for local development","directories":{},"_nodeVersion":"22.12.0","dependencies":{"marked":"^11.0.0","prismjs":"^1.29.0","chokidar":"^4.0.0","fsevents":"^2.3.3","mime-types":"^2.1.35","marked-gfm-heading-id":"^3.1.3"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.0","ts-node":"^10.9.0","typescript":"^5.3.0","@types/jest":"^29.5.0","@types/node":"^20.0.0","@types/prismjs":"^1.26.3","@types/mime-types":"^2.1.4"},"_npmOperationalInternal":{"tmp":"tmp/mdviewer_0.1.4_1763019084786_0.13563245220815423","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@bloom-and-co/mdviewer","version":"0.1.5","keywords":["markdown","viewer","development","server","hot-reload","markdown-viewer","local-server","gfm","mermaid","syntax-highlighting"],"author":{"name":"Yuichiro MASUI","email":"y.masui@bloom-and-co.com"},"license":"Apache-2.0","_id":"@bloom-and-co/mdviewer@0.1.5","maintainers":[{"name":"masuidrive","email":"masui@masuidrive.jp"}],"homepage":"https://github.com/bloom-and-co/mdviewer#readme","bugs":{"url":"https://github.com/bloom-and-co/mdviewer/issues"},"bin":{"mdviewer":"dist/index.js"},"dist":{"shasum":"398822092470448f359fe2494ed9ab849e6d3411","tarball":"https://registry.npmjs.org/@bloom-and-co/mdviewer/-/mdviewer-0.1.5.tgz","fileCount":55,"integrity":"sha512-SZjmnjKCfVzYyKOAFfbjTY+VgTNUPZqMrBrItaFpRwzMVk3LI7zNebcXp72/Z4x2xIG2I2z1ht11bbLe359x6w==","signatures":[{"sig":"MEUCIQDNuzuGwBu6cYOJkQwnTGynhcwiOLXDKRniP6rJACi4hgIgJuBvAz3ldiHGv/dWXBkHNGp0fUuvDEJ9QjxipcNW644=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":135144},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"f44932e7f74e09d5b99aa740ae9de11a3093c1f6","scripts":{"dev":"tsc --watch","test":"jest","build":"tsc","start":"node dist/index.js","test:watch":"jest --watch","test:coverage":"jest --coverage","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"masuidrive","email":"masui@masuidrive.jp"},"repository":{"url":"git+https://github.com/bloom-and-co/mdviewer.git","type":"git"},"_npmVersion":"10.9.0","description":"Markdown file viewer with hot reload for local development","directories":{},"_nodeVersion":"22.12.0","dependencies":{"marked":"^11.0.0","prismjs":"^1.29.0","chokidar":"^4.0.0","mime-types":"^2.1.35","marked-gfm-heading-id":"^3.1.3"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.0","ts-node":"^10.9.0","typescript":"^5.3.0","@types/jest":"^29.5.0","@types/node":"^20.0.0","@types/prismjs":"^1.26.3","@types/mime-types":"^2.1.4"},"optionalDependencies":{"fsevents":"^2.3.3"},"_npmOperationalInternal":{"tmp":"tmp/mdviewer_0.1.5_1763020010958_0.7337166095205545","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@bloom-and-co/mdviewer","version":"0.1.6","description":"Markdown file viewer with hot reload for local development","main":"dist/index.js","bin":{"mdviewer":"dist/index.js"},"scripts":{"build":"tsc","test":"jest","test:watch":"jest --watch","test:coverage":"jest --coverage","start":"node dist/index.js","dev":"tsc --watch","prepublishOnly":"npm run build && npm test"},"repository":{"type":"git","url":"git+https://github.com/bloom-and-co/mdviewer.git"},"bugs":{"url":"https://github.com/bloom-and-co/mdviewer/issues"},"homepage":"https://github.com/bloom-and-co/mdviewer#readme","keywords":["markdown","viewer","development","server","hot-reload","markdown-viewer","local-server","gfm","mermaid","syntax-highlighting"],"author":{"name":"Yuichiro MASUI","email":"y.masui@bloom-and-co.com"},"license":"Apache-2.0","engines":{"node":">=20.0.0"},"dependencies":{"chokidar":"^4.0.0","marked":"^11.0.0","marked-gfm-heading-id":"^3.1.3","mime-types":"^2.1.35","prismjs":"^1.29.0"},"optionalDependencies":{"fsevents":"^2.3.3"},"devDependencies":{"@types/jest":"^29.5.0","@types/mime-types":"^2.1.4","@types/node":"^20.0.0","@types/prismjs":"^1.26.3","jest":"^29.7.0","ts-jest":"^29.1.0","ts-node":"^10.9.0","typescript":"^5.3.0"},"_id":"@bloom-and-co/mdviewer@0.1.6","gitHead":"c87d9316613ddbb0b4d2fc8b51c80afaf707a0a2","types":"./dist/index.d.ts","_nodeVersion":"22.12.0","_npmVersion":"10.9.0","dist":{"integrity":"sha512-6VFEQx1C96PBn4nRxqpOoLoauK/6zcizOkdAS+zm/8zTyCqTBtZA4Ojg0wwMHmXzry8zDpre5JW7ZbWacHdtyw==","shasum":"29758c7c92c77f3bebbec8e0540b00f9e21a8ba2","tarball":"https://registry.npmjs.org/@bloom-and-co/mdviewer/-/mdviewer-0.1.6.tgz","fileCount":55,"unpackedSize":135166,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIDQGqG23isPwY5TjH8KLuWmJl54vBzakXi0/adRBtxBQAiBBlFFAtaHS1v2o6C7qkeni7I545sBjpUj0gj6uXlSt2A=="}]},"_npmUser":{"name":"masuidrive","email":"masui@masuidrive.jp"},"directories":{},"maintainers":[{"name":"masuidrive","email":"masui@masuidrive.jp"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mdviewer_0.1.6_1763020344959_0.8788506960697229"},"_hasShrinkwrap":false}},"time":{"created":"2025-11-13T06:53:36.782Z","modified":"2025-11-13T07:52:25.303Z","0.1.0":"2025-11-13T06:53:37.088Z","0.1.1":"2025-11-13T07:06:25.742Z","0.1.2":"2025-11-13T07:22:28.593Z","0.1.3":"2025-11-13T07:23:51.409Z","0.1.4":"2025-11-13T07:31:24.970Z","0.1.5":"2025-11-13T07:46:51.156Z","0.1.6":"2025-11-13T07:52:25.130Z"},"bugs":{"url":"https://github.com/bloom-and-co/mdviewer/issues"},"author":{"name":"Yuichiro MASUI","email":"y.masui@bloom-and-co.com"},"license":"Apache-2.0","homepage":"https://github.com/bloom-and-co/mdviewer#readme","keywords":["markdown","viewer","development","server","hot-reload","markdown-viewer","local-server","gfm","mermaid","syntax-highlighting"],"repository":{"type":"git","url":"git+https://github.com/bloom-and-co/mdviewer.git"},"description":"Markdown file viewer with hot reload for local development","maintainers":[{"name":"masuidrive","email":"masui@masuidrive.jp"}],"readme":"# Markdown Viewer\n\nA lightweight development server for viewing Markdown files with hot reload functionality.\n\n## Features\n\n- 🚀 Quick start with `npx @bloom-and-co/mdviewer`\n- 📝 GitHub Flavored Markdown (GFM) support\n- 🎨 Syntax highlighting for code blocks\n- 📊 Mermaid diagram support\n- 🔄 Hot reload on file changes (automatic browser refresh)\n- 🔒 Security features (path traversal protection, hidden file protection)\n- ⚡ Fast and lightweight\n\n## Requirements\n\n- Node.js 20.0.0 or higher\n- macOS users: `fsevents` package for optimal file watching performance\n  - Automatically installed as an optional dependency\n  - Hot Reload will be disabled if not available (polling is not used for performance reasons)\n\n## Installation\n\n```bash\nnpm install -g @bloom-and-co/mdviewer\n```\n\nOr use directly with npx:\n\n```bash\nnpx @bloom-and-co/mdviewer\n```\n\n## Usage\n\nStart the server in the current directory:\n\n```bash\nmdviewer\n```\n\nStart the server in a specific directory:\n\n```bash\nmdviewer /path/to/docs\n```\n\nSpecify a custom port:\n\n```bash\nPORT=8080 mdviewer\n```\n\n## Development\n\n### Setup\n\n```bash\nnpm install\n```\n\n### Build\n\n```bash\nnpm run build\n```\n\n### Test\n\n```bash\nnpm test\n```\n\n### Watch mode\n\n```bash\nnpm run dev\n```\n\n## Project Structure\n\n```\nmdviewer/\n├── src/              # TypeScript source files\n├── tests/            # Test files\n├── dist/             # Compiled JavaScript (generated)\n├── package.json      # Project configuration\n├── tsconfig.json     # TypeScript configuration\n└── jest.config.js    # Jest configuration\n```\n\n## Technology Stack\n\n- **Runtime**: Node.js 20+\n- **Language**: TypeScript 5+ (strict mode)\n- **Markdown Parser**: marked v11+ with marked-gfm\n- **Syntax Highlighting**: Prism.js v1.29+\n- **File Watching**: chokidar v4+ (native file events, no polling)\n- **Testing**: Jest v29+\n\n## Hot Reload\n\nHot Reload automatically refreshes your browser when files change. A green indicator in the top-right corner shows the connection status:\n\n- **Green \"Hot Reload\"**: Connected and watching for changes\n- **Yellow \"Reconnecting...\"**: Attempting to reconnect\n- **Red \"Disconnected\"**: Connection lost (max retries exceeded)\n\n### Platform Support\n\n- **macOS**: Requires `fsevents` for native file system events\n- **Linux**: Uses `inotify` (built into kernel)\n- **Windows**: Uses `ReadDirectoryChangesW` (built into OS)\n\n### File Event Detection\n\nHot Reload monitors:\n- ✅ File creation (new files)\n- ✅ File modification (content changes)\n- ✅ File deletion (may be unreliable in some environments)\n\nHidden files (starting with `.`) are automatically ignored.\n\n### Troubleshooting\n\nIf Hot Reload is not working:\n\n1. **macOS users**: Ensure `fsevents` is installed\n   ```bash\n   npm install fsevents\n   ```\n\n2. **Check the indicator**: If you don't see the green indicator, Hot Reload is disabled\n\n3. **File system limitations**: Some environments (Docker, network drives) may have limited file event support\n\n## License\n\nMIT\n","readmeFilename":"README.md"}