{"_id":"@ai-of-mine/fast-mermaid-validator-mcp","_rev":"30-0e47fca28085c03e73976863e3ce0ee7","name":"@ai-of-mine/fast-mermaid-validator-mcp","dist-tags":{"beta":"1.3.6","lts":"1.4.2","latest":"1.5.4"},"versions":{"1.0.30":{"name":"@ai-of-mine/fast-mermaid-validator-mcp","version":"1.0.30","keywords":["mermaid","diagram","validation","api","markdown","svg","mcp","model-context-protocol","grammar-parsing","syntax-validation","developer-tools","jison","langium","enterprise"],"author":{"name":"Gregorio Elias Roecker Momm","email":"gregoriomomm@gmail.com"},"license":"Apache-2.0","_id":"@ai-of-mine/fast-mermaid-validator-mcp@1.0.30","maintainers":[{"name":"user-ai-of-mine","email":"gregoriomomm@gmail.com"}],"homepage":"https://github.com/ai-of-mine/fast-mermaid-validator-mcp#readme","bugs":{"url":"https://github.com/ai-of-mine/fast-mermaid-validator-mcp/issues"},"bin":{"fast-mermaid-validator-mcp":"src/server.js"},"dist":{"shasum":"7933d249b17a772d5613853a078442109075bb53","tarball":"https://registry.npmjs.org/@ai-of-mine/fast-mermaid-validator-mcp/-/fast-mermaid-validator-mcp-1.0.30.tgz","fileCount":300,"integrity":"sha512-EvgTybsCdu7FyS3ChRGWxWjutql9tIGNs+H5gGVDNEgh7eV7oJ0XRWdPyN24VG7m7zoTQUbhFUrvkfs07Y/aUw==","signatures":[{"sig":"MEYCIQDy3T5gW0GHb4ZKEpAQY7WjwvX7KiiIoCvoHwAyg9utiAIhAJBMegwGg/89SQJGMkoqcc7FUpGlmavHJ9FeUfFK/b84","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1606540},"main":"src/server.js","engines":{"npm":">=9.0.0","node":">=18.0.0"},"gitHead":"3cacaca56e3dde7bd0b5f85e8d32c582e833dd97","scripts":{"dev":"nodemon src/server.js","docs":"swagger-jsdoc -d docs/swagger.js src/routes/*.js -o docs/swagger.json","lint":"eslint src/ --ext .js","test":"npm run test:unit && npm run test:integration","audit":"npm audit","build":"npm run build:grammars","clean":"npm run clean:generated && npm run clean:dist && npm run clean:mcp","start":"node src/server.js","dev:mcp":"npm run build:mcp && nodemon dist/mcp/server.js","prepare":"npm run build || true","audit:ci":"audit-ci --config audit-ci.json","lint:fix":"eslint src/ --ext .js --fix","prebuild":"npm run build:mcp","test:api":"jest --testPathPattern=test/api","test:mcp":"npm run build:mcp && node test/mcp/test-mcp-integration.js","audit:fix":"npm audit fix","build:mcp":"tsc -p tsconfig.mcp.json","clean:mcp":"rm -rf dist/mcp","start:mcp":"npm run build:mcp && node dist/mcp/server.js","test:unit":"jest --testPathPattern=test/unit --passWithNoTests","clean:dist":"rm -rf dist build","deps:check":"npm-check-updates","docker:run":"docker run -p 8000:8000 mermaid-validator-mcp","preinstall":"npm run build:grammars || true","test:watch":"jest --watch","build:antlr":"node scripts/compile-grammars.js --antlr-only","build:jison":"node scripts/compile-grammars.js --jison-only","build:types":"node scripts/compile-grammars.js --types-only","deps:update":"npm-check-updates -u","postinstall":"npm run build || true","test:upload":"node test/integration/upload-endpoints.js","dev:mcp-http":"npm run build:mcp && nodemon dist/mcp/server-http.js","docker:build":"docker build -t mermaid-validator-mcp .","build:langium":"node scripts/compile-grammars.js --langium-only","license:check":"license-checker","security:full":"npm run audit && npm run security:snyk && npm run security:retire","security:snyk":"snyk test","test:coverage":"jest --coverage","test:validate":"node test/integration/validate-endpoints.js","validate:deps":"dependency-check package.json","version:major":"node scripts/increment-version.js major","version:minor":"node scripts/increment-version.js minor","version:patch":"node scripts/increment-version.js patch","build:grammars":"node scripts/compile-grammars.js --jison-only","dev:mcp-secure":"npm run build:mcp && nodemon dist/mcp/server-secure.js","prepublishOnly":"npm run build:grammars && (npm run build:mcp || true)","start:mcp-http":"npm run build:mcp && node dist/mcp/server-http.js","clean:generated":"rm -rf src/generated","security:retire":"retire","start:mcp-secure":"npm run build:mcp && node dist/mcp/server-secure.js","test:integration":"node test/integration/validate-endpoints.js && node test/integration/upload-endpoints.js","docker:build:auto":"npm run version:patch && make docker-build-manual"},"_npmUser":{"name":"user-ai-of-mine","email":"gregoriomomm@gmail.com"},"repository":{"url":"git+https://github.com/ai-of-mine/fast-mermaid-validator-mcp.git","type":"git"},"_npmVersion":"11.6.0","description":"High-performance API and Model Context Protocol (MCP) server for validating Mermaid diagrams with comprehensive security features, multiple transport options, and enterprise-grade capabilities","directories":{},"_nodeVersion":"24.8.0","dependencies":{"joi":"^17.11.0","zod":"^3.25.76","cors":"^2.8.5","uuid":"^9.0.1","jison":"^0.4.18","yauzl":"^2.10.0","helmet":"^7.1.0","morgan":"^1.10.0","multer":"^2.0.2","express":"^4.18.2","langium":"^3.3.1","winston":"^3.11.0","chevrotain":"^11.0.3","mime-types":"^2.1.35","compression":"^1.7.4","swagger-jsdoc":"^6.2.8","express-validator":"^7.0.1","express-rate-limit":"^7.5.1","swagger-ui-express":"^5.0.0","@modelcontextprotocol/sdk":"^1.18.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","snyk":"^1.1290.0","axios":"^1.12.2","eslint":"^8.57.1","retire":"^4.0.3","nodemon":"^3.0.2","audit-ci":"^7.0.1","form-data":"^4.0.4","supertest":"^6.3.3","@eslint/js":"^9.35.0","typescript":"^5.7.2","@types/node":"^24.3.1","@types/uuid":"^10.0.0","langium-cli":"^4.0.0","@types/express":"^5.0.3","license-checker":"^25.0.1","dependency-check":"^4.1.0","npm-check-updates":"^16.14.12","eslint-plugin-import":"^2.29.0","eslint-config-airbnb-base":"^15.0.0"},"_npmOperationalInternal":{"tmp":"tmp/fast-mermaid-validator-mcp_1.0.30_1759376216439_0.18211679857187657","host":"s3://npm-registry-packages-npm-production"}},"1.0.31":{"name":"@ai-of-mine/fast-mermaid-validator-mcp","version":"1.0.31","keywords":["mermaid","diagram","validation","api","markdown","svg","mcp","model-context-protocol","grammar-parsing","syntax-validation","developer-tools","jison","langium","enterprise"],"author":{"name":"Gregorio Elias Roecker Momm","email":"gregoriomomm@gmail.com"},"license":"Apache-2.0","_id":"@ai-of-mine/fast-mermaid-validator-mcp@1.0.31","maintainers":[{"name":"user-ai-of-mine","email":"gregoriomomm@gmail.com"}],"homepage":"https://github.com/ai-of-mine/fast-mermaid-validator-mcp#readme","bugs":{"url":"https://github.com/ai-of-mine/fast-mermaid-validator-mcp/issues"},"bin":{"fast-mermaid-validator-mcp":"src/server.js"},"dist":{"shasum":"cfb559801f205afa18f917341be21fd04c6f6afb","tarball":"https://registry.npmjs.org/@ai-of-mine/fast-mermaid-validator-mcp/-/fast-mermaid-validator-mcp-1.0.31.tgz","fileCount":300,"integrity":"sha512-ikQ4g4Vh8NiAALegWCZcxlKNHt2al4tImp6r62yXAXhpWAK2vwyG53U4kBbYhSV4gxRNQLdg9mbQOOmsZzLFXA==","signatures":[{"sig":"MEYCIQDbbY0P55hJF9zmxIDFijPZpCYkqnzS/oACvhQ7q5GLVQIhAKDUrV4nj+iHaqy/nKeFkDnepwOUxNQlWAAZ0dQhv3nN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1606660},"main":"src/server.js","engines":{"npm":">=9.0.0","node":">=18.0.0"},"gitHead":"a348376138a9d8e0c64190f9d809b07d0b709c83","scripts":{"dev":"nodemon src/server.js","docs":"swagger-jsdoc -d docs/swagger.js src/routes/*.js -o docs/swagger.json","lint":"eslint src/ --ext .js","test":"npm run test:unit && npm run test:integration","audit":"npm audit","build":"npm run build:grammars","clean":"npm run clean:generated && npm run clean:dist && npm run clean:mcp","start":"node src/server.js","dev:mcp":"npm run build:mcp && nodemon dist/mcp/server.js","prepare":"npm run build || true","audit:ci":"audit-ci --config audit-ci.json","lint:fix":"eslint src/ --ext .js --fix","prebuild":"npm run build:mcp","test:api":"jest --testPathPattern=test/api","test:mcp":"npm run build:mcp && node test/mcp/test-mcp-integration.js","audit:fix":"npm audit fix","build:mcp":"tsc -p tsconfig.mcp.json","clean:mcp":"rm -rf dist/mcp","start:mcp":"npm run build:mcp && node dist/mcp/server.js","test:unit":"jest --testPathPattern=test/unit --passWithNoTests","clean:dist":"rm -rf dist build","deps:check":"npm-check-updates","docker:run":"docker run -p 8000:8000 mermaid-validator-mcp","preinstall":"npm run build:grammars || true","test:watch":"jest --watch","build:antlr":"node scripts/compile-grammars.js --antlr-only","build:jison":"node scripts/compile-grammars.js --jison-only","build:types":"node scripts/compile-grammars.js --types-only","deps:update":"npm-check-updates -u","postinstall":"npm run build || true","test:upload":"node test/integration/upload-endpoints.js","dev:mcp-http":"npm run build:mcp && nodemon dist/mcp/server-http.js","docker:build":"docker build -t mermaid-validator-mcp .","build:langium":"node scripts/compile-grammars.js --langium-only","license:check":"license-checker","security:full":"npm run audit && npm run security:snyk && npm run security:retire","security:snyk":"snyk test","test:coverage":"jest --coverage","test:validate":"node test/integration/validate-endpoints.js","validate:deps":"dependency-check package.json","version:major":"node scripts/increment-version.js major","version:minor":"node scripts/increment-version.js minor","version:patch":"node scripts/increment-version.js patch","build:grammars":"node scripts/compile-grammars.js --jison-only","dev:mcp-secure":"npm run build:mcp && nodemon dist/mcp/server-secure.js","prepublishOnly":"npm run build:grammars && (npm run build:mcp || true)","start:mcp-http":"npm run build:mcp && node dist/mcp/server-http.js","clean:generated":"rm -rf src/generated","security:retire":"retire","start:mcp-secure":"npm run build:mcp && node dist/mcp/server-secure.js","test:integration":"node test/integration/validate-endpoints.js && node test/integration/upload-endpoints.js","docker:build:auto":"npm run version:patch && make docker-build-manual"},"_npmUser":{"name":"user-ai-of-mine","email":"gregoriomomm@gmail.com"},"repository":{"url":"git+https://github.com/ai-of-mine/fast-mermaid-validator-mcp.git","type":"git"},"_npmVersion":"11.6.0","description":"High-performance API and Model Context Protocol (MCP) server for validating Mermaid diagrams with comprehensive security features, multiple transport options, and enterprise-grade capabilities","directories":{},"_nodeVersion":"24.8.0","dependencies":{"joi":"^17.11.0","zod":"^3.25.76","cors":"^2.8.5","uuid":"^9.0.1","jison":"^0.4.18","yauzl":"^2.10.0","helmet":"^7.1.0","morgan":"^1.10.0","multer":"^2.0.2","express":"^4.18.2","langium":"^3.3.1","winston":"^3.11.0","chevrotain":"^11.0.3","mime-types":"^2.1.35","compression":"^1.7.4","swagger-jsdoc":"^6.2.8","express-validator":"^7.0.1","express-rate-limit":"^7.5.1","swagger-ui-express":"^5.0.0","@modelcontextprotocol/sdk":"^1.18.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","snyk":"^1.1290.0","axios":"^1.12.2","eslint":"^8.57.1","retire":"^4.0.3","nodemon":"^3.0.2","audit-ci":"^7.0.1","form-data":"^4.0.4","supertest":"^6.3.3","@eslint/js":"^9.35.0","typescript":"^5.7.2","@types/node":"^24.3.1","@types/uuid":"^10.0.0","langium-cli":"^4.0.0","@types/express":"^5.0.3","license-checker":"^25.0.1","dependency-check":"^4.1.0","npm-check-updates":"^16.14.12","eslint-plugin-import":"^2.29.0","eslint-config-airbnb-base":"^15.0.0"},"_npmOperationalInternal":{"tmp":"tmp/fast-mermaid-validator-mcp_1.0.31_1759432189287_0.14064515794095933","host":"s3://npm-registry-packages-npm-production"}},"1.0.32":{"name":"@ai-of-mine/fast-mermaid-validator-mcp","version":"1.0.32","keywords":["mermaid","mermaid-js","mermaid-validator","diagram-validation","mcp","model-context-protocol","claude","llm-tools","diagram","syntax-validation","flowchart","sequence-diagram","class-diagram","state-diagram","er-diagram","uml","project-management","documentation","markdown","ci-cd","testing","linting","typescript","nodejs","rest-api","headless","fast","high-performance","grammar-parsing","antlr","jison","langium","developer-tools"],"author":{"name":"Gregorio Elias Roecker Momm","email":"gregoriomomm@gmail.com"},"license":"Apache-2.0","_id":"@ai-of-mine/fast-mermaid-validator-mcp@1.0.32","maintainers":[{"name":"user-ai-of-mine","email":"gregoriomomm@gmail.com"}],"homepage":"https://github.com/ai-of-mine/fast-mermaid-validator-mcp#readme","bugs":{"url":"https://github.com/ai-of-mine/fast-mermaid-validator-mcp/issues"},"bin":{"fast-mermaid-validator-mcp":"src/server.js"},"dist":{"shasum":"66e3af65003cc519357013ecd010a9d8c26f9882","tarball":"https://registry.npmjs.org/@ai-of-mine/fast-mermaid-validator-mcp/-/fast-mermaid-validator-mcp-1.0.32.tgz","fileCount":300,"integrity":"sha512-BBh81Q8HdfJw+KoekTVnPhb3zq7fmqRJA/qY43lqiWLj49fBmj7i1K+UtKTyp4lOr7ig0d8yAsev7NHtKIfvmQ==","signatures":[{"sig":"MEYCIQDHmE9BuGPHOESvlOJ3wVckRw5mB24+ZiN4q3ppp4LrkAIhAKie4VZK44mcVAxb7CSMS2GSIRLCOxHDEL4fqwH7UQqC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1607017},"main":"src/server.js","engines":{"npm":">=9.0.0","node":">=18.0.0"},"gitHead":"82c8dd6836dfd943d11f4e0ab3303eba635f0993","scripts":{"dev":"nodemon src/server.js","docs":"swagger-jsdoc -d docs/swagger.js src/routes/*.js -o docs/swagger.json","lint":"eslint src/ --ext .js","test":"npm run test:unit && npm run test:integration","audit":"npm audit","build":"npm run build:grammars","clean":"npm run clean:generated && npm run clean:dist && npm run clean:mcp","start":"node src/server.js","dev:mcp":"npm run build:mcp && nodemon dist/mcp/server.js","prepare":"npm run build || true","audit:ci":"audit-ci --config audit-ci.json","lint:fix":"eslint src/ --ext .js --fix","prebuild":"npm run build:mcp","test:api":"jest --testPathPattern=test/api","test:mcp":"npm run build:mcp && node test/mcp/test-mcp-integration.js","audit:fix":"npm audit fix","build:mcp":"tsc -p tsconfig.mcp.json","clean:mcp":"rm -rf dist/mcp","start:mcp":"npm run build:mcp && node dist/mcp/server.js","test:unit":"jest --testPathPattern=test/unit --passWithNoTests","clean:dist":"rm -rf dist build","deps:check":"npm-check-updates","docker:run":"docker run -p 8000:8000 mermaid-validator-mcp","preinstall":"npm run build:grammars || true","test:watch":"jest --watch","build:antlr":"node scripts/compile-grammars.js --antlr-only","build:jison":"node scripts/compile-grammars.js --jison-only","build:types":"node scripts/compile-grammars.js --types-only","deps:update":"npm-check-updates -u","postinstall":"npm run build || true","test:upload":"node test/integration/upload-endpoints.js","dev:mcp-http":"npm run build:mcp && nodemon dist/mcp/server-http.js","docker:build":"docker build -t mermaid-validator-mcp .","build:langium":"node scripts/compile-grammars.js --langium-only","license:check":"license-checker","security:full":"npm run audit && npm run security:snyk && npm run security:retire","security:snyk":"snyk test","test:coverage":"jest --coverage","test:validate":"node test/integration/validate-endpoints.js","validate:deps":"dependency-check package.json","version:major":"node scripts/increment-version.js major","version:minor":"node scripts/increment-version.js minor","version:patch":"node scripts/increment-version.js patch","build:grammars":"node scripts/compile-grammars.js --jison-only","dev:mcp-secure":"npm run build:mcp && nodemon dist/mcp/server-secure.js","prepublishOnly":"npm run build:grammars && (npm run build:mcp || true)","start:mcp-http":"npm run build:mcp && node dist/mcp/server-http.js","clean:generated":"rm -rf src/generated","security:retire":"retire","start:mcp-secure":"npm run build:mcp && node dist/mcp/server-secure.js","test:integration":"node test/integration/validate-endpoints.js && node test/integration/upload-endpoints.js","docker:build:auto":"npm run version:patch && make docker-build-manual"},"_npmUser":{"name":"user-ai-of-mine","email":"gregoriomomm@gmail.com"},"repository":{"url":"git+https://github.com/ai-of-mine/fast-mermaid-validator-mcp.git","type":"git"},"_npmVersion":"11.6.0","description":"High-performance API and Model Context Protocol (MCP) server for validating Mermaid diagrams with comprehensive security features, multiple transport options, and enterprise-grade capabilities","directories":{},"_nodeVersion":"24.8.0","dependencies":{"joi":"^17.11.0","zod":"^3.25.76","cors":"^2.8.5","uuid":"^9.0.1","jison":"^0.4.18","yauzl":"^2.10.0","helmet":"^7.1.0","morgan":"^1.10.0","multer":"^2.0.2","express":"^4.18.2","langium":"^3.3.1","winston":"^3.11.0","chevrotain":"^11.0.3","mime-types":"^2.1.35","compression":"^1.7.4","swagger-jsdoc":"^6.2.8","express-validator":"^7.0.1","express-rate-limit":"^7.5.1","swagger-ui-express":"^5.0.0","@modelcontextprotocol/sdk":"^1.18.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","snyk":"^1.1290.0","axios":"^1.12.2","eslint":"^8.57.1","retire":"^4.0.3","nodemon":"^3.0.2","audit-ci":"^7.0.1","form-data":"^4.0.4","supertest":"^6.3.3","@eslint/js":"^9.35.0","typescript":"^5.7.2","@types/node":"^24.3.1","@types/uuid":"^10.0.0","langium-cli":"^4.0.0","@types/express":"^5.0.3","license-checker":"^25.0.1","dependency-check":"^4.1.0","npm-check-updates":"^16.14.12","eslint-plugin-import":"^2.29.0","eslint-config-airbnb-base":"^15.0.0"},"_npmOperationalInternal":{"tmp":"tmp/fast-mermaid-validator-mcp_1.0.32_1760383078580_0.7738336879345076","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@ai-of-mine/fast-mermaid-validator-mcp","version":"1.1.1","keywords":["mermaid","mermaid-js","mermaid-validator","diagram-validation","mcp","model-context-protocol","claude","llm-tools","diagram","syntax-validation","flowchart","sequence-diagram","class-diagram","state-diagram","er-diagram","uml","project-management","documentation","markdown","ci-cd","testing","linting","typescript","nodejs","rest-api","headless","fast","high-performance","grammar-parsing","antlr","jison","langium","developer-tools"],"author":{"name":"Gregorio Elias Roecker Momm","email":"gregoriomomm@gmail.com"},"license":"Apache-2.0","_id":"@ai-of-mine/fast-mermaid-validator-mcp@1.1.1","maintainers":[{"name":"user-ai-of-mine","email":"gregoriomomm@gmail.com"}],"homepage":"https://github.com/ai-of-mine/fast-mermaid-validator-mcp#readme","bugs":{"url":"https://github.com/ai-of-mine/fast-mermaid-validator-mcp/issues"},"bin":{"fast-mermaid-validator-mcp":"src/server.js"},"dist":{"shasum":"539e71121fc6bf9dab592260a8047b7d4f6d2d33","tarball":"https://registry.npmjs.org/@ai-of-mine/fast-mermaid-validator-mcp/-/fast-mermaid-validator-mcp-1.1.1.tgz","fileCount":300,"integrity":"sha512-cSkr5m4ReBj3YmgMm34OfUYJcwdDFwRJaRpR87daUHjezEzVA86m15iFbZf09yVrj1t9MUuIKHJ9tUjegFwjFw==","signatures":[{"sig":"MEUCIAilsgEwZuEXwC5DwDl9YTNWK8OIqzOg8XgA95+0UgjmAiEAkxSjvRdyHuM8yUBCWprZh+T8PoTU9qC0Wl7pCyjlSb8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1603932},"main":"src/server.js","engines":{"npm":">=10.0.0","node":">=20.0.0"},"gitHead":"87364a3edb1bae3a3eae9c5b13855bf140f96ecc","scripts":{"dev":"nodemon src/server.js","docs":"swagger-jsdoc -d docs/swagger.js src/routes/*.js -o docs/swagger.json","lint":"eslint src/","test":"npm run test:unit && npm run test:integration","audit":"npm audit","build":"npm run build:grammars","clean":"npm run clean:generated && npm run clean:dist && npm run clean:mcp","start":"node src/server.js","dev:mcp":"npm run build:mcp && nodemon dist/mcp/server.js","prepare":"npm run build || true","audit:ci":"audit-ci --config audit-ci.json","lint:fix":"eslint src/ --fix","prebuild":"npm run build:mcp","test:api":"jest --testPathPatterns=test/api","test:mcp":"npm run build:mcp && node test/mcp/test-mcp-integration.js","audit:fix":"npm audit fix","build:mcp":"tsc -p tsconfig.mcp.json","clean:mcp":"rm -rf dist/mcp","start:mcp":"npm run build:mcp && node dist/mcp/server.js","test:unit":"jest --testPathPatterns=test/unit --passWithNoTests","clean:dist":"rm -rf dist build","deps:check":"npm-check-updates","docker:run":"docker run -p 8000:8000 mermaid-validator-mcp","preinstall":"npm run build:grammars || true","test:watch":"jest --watch","build:antlr":"node scripts/compile-grammars.js --antlr-only","build:jison":"node scripts/compile-grammars.js --jison-only","build:types":"node scripts/compile-grammars.js --types-only","deps:update":"npm-check-updates -u","postinstall":"npm run build || true","test:upload":"node test/integration/upload-endpoints.js","dev:mcp-http":"npm run build:mcp && nodemon dist/mcp/server-http.js","docker:build":"docker build -t mermaid-validator-mcp .","build:langium":"node scripts/compile-grammars.js --langium-only","license:check":"license-checker","security:full":"npm run audit && npm run security:snyk && npm run security:retire","security:snyk":"snyk test","test:coverage":"jest --coverage","test:validate":"node test/integration/validate-endpoints.js","validate:deps":"dependency-check package.json","version:major":"node scripts/increment-version.js major","version:minor":"node scripts/increment-version.js minor","version:patch":"node scripts/increment-version.js patch","build:grammars":"node scripts/compile-grammars.js --jison-only","dev:mcp-secure":"npm run build:mcp && nodemon dist/mcp/server-secure.js","prepublishOnly":"npm run build:grammars && (npm run build:mcp || true)","start:mcp-http":"npm run build:mcp && node dist/mcp/server-http.js","clean:generated":"rm -rf src/generated","security:retire":"retire","start:mcp-secure":"npm run build:mcp && node dist/mcp/server-secure.js","test:integration":"node test/integration/validate-endpoints.js && node test/integration/upload-endpoints.js","docker:build:auto":"npm run version:patch && make docker-build-manual"},"_npmUser":{"name":"user-ai-of-mine","email":"gregoriomomm@gmail.com"},"repository":{"url":"git+https://github.com/ai-of-mine/fast-mermaid-validator-mcp.git","type":"git"},"_npmVersion":"11.3.0","description":"High-performance API and Model Context Protocol (MCP) server for validating Mermaid diagrams with comprehensive security features, multiple transport options, and enterprise-grade capabilities","directories":{},"_nodeVersion":"23.7.0","dependencies":{"joi":"^18.2.1","zod":"^4.4.3","cors":"^2.8.6","uuid":"^14.0.0","jison":"^0.4.18","yauzl":"^3.3.1","helmet":"^8.2.0","morgan":"^1.10.1","multer":"^2.1.1","express":"^5.2.1","langium":"^4.2.4","winston":"^3.19.0","chevrotain":"^12.0.0","mime-types":"^3.0.2","compression":"^1.8.1","swagger-jsdoc":"^6.3.0","express-validator":"^7.3.2","express-rate-limit":"^8.5.2","swagger-ui-express":"^5.0.1","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","snyk":"^1.1305.0","axios":"^1.16.1","eslint":"^9.39.4","retire":"^5.4.3","globals":"^16.4.0","nodemon":"^3.1.14","audit-ci":"^7.1.0","form-data":"^4.0.5","supertest":"^7.2.2","@eslint/js":"^9.39.4","typescript":"^6.0.3","@types/node":"^25.9.1","@types/uuid":"^10.0.0","langium-cli":"^4.2.1","@types/express":"^5.0.6","license-checker":"^25.0.1","dependency-check":"^4.1.0","npm-check-updates":"^22.2.1","eslint-plugin-import":"^2.32.0"},"_npmOperationalInternal":{"tmp":"tmp/fast-mermaid-validator-mcp_1.1.1_1779838947762_0.4320106368507517","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@ai-of-mine/fast-mermaid-validator-mcp","version":"1.2.0","keywords":["mermaid","mermaid-js","mermaid-validator","diagram-validation","mcp","model-context-protocol","claude","llm-tools","diagram","syntax-validation","flowchart","sequence-diagram","class-diagram","state-diagram","er-diagram","uml","project-management","documentation","markdown","ci-cd","testing","linting","typescript","nodejs","rest-api","headless","fast","high-performance","grammar-parsing","antlr","jison","langium","developer-tools"],"author":{"name":"Gregorio Elias Roecker Momm","email":"gregoriomomm@gmail.com"},"license":"Apache-2.0","_id":"@ai-of-mine/fast-mermaid-validator-mcp@1.2.0","maintainers":[{"name":"user-ai-of-mine","email":"gregoriomomm@gmail.com"}],"homepage":"https://github.com/ai-of-mine/fast-mermaid-validator-mcp#readme","bugs":{"url":"https://github.com/ai-of-mine/fast-mermaid-validator-mcp/issues"},"bin":{"fast-mermaid-validator-mcp":"src/server.js"},"dist":{"shasum":"f2f239bb0639eabefe02309460a72b62115f9ca9","tarball":"https://registry.npmjs.org/@ai-of-mine/fast-mermaid-validator-mcp/-/fast-mermaid-validator-mcp-1.2.0.tgz","fileCount":301,"integrity":"sha512-Ccfe+xLcEET4/dLsDLQ2f4MCl9P1uMd84Ye7ZvK0t1M0p4uuPDeIgakgJKUaYGB0SMCGaulcA/eaOHJWvaaFnQ==","signatures":[{"sig":"MEUCIQD3Re64b39wDD7JgCR2ugugT2MGeTZFhvUmkRNj5q0RlAIgNR2VxPwySuE6SIOxEJoiKqT2XuZV4gUzOuMCtJXcKX8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1589280},"main":"src/server.js","engines":{"npm":">=10.0.0","node":">=20.0.0"},"gitHead":"0e126c4c09c5eb68985f367d34caa86738384846","scripts":{"dev":"nodemon src/server.js","docs":"swagger-jsdoc -d docs/swagger.js src/routes/*.js -o docs/swagger.json","lint":"eslint src/","test":"npm run test:unit && npm run test:integration","audit":"npm audit","build":"npm run build:grammars","clean":"npm run clean:generated && npm run clean:dist && npm run clean:mcp","start":"node src/server.js","dev:mcp":"npm run build:mcp && nodemon dist/mcp/server.js","prepare":"npm run build || true","audit:ci":"audit-ci --config audit-ci.json","lint:fix":"eslint src/ --fix","prebuild":"npm run build:mcp","test:api":"jest --testPathPatterns=test/api","test:mcp":"npm run build:mcp && node test/mcp/test-mcp-integration.js","audit:fix":"npm audit fix","build:mcp":"tsc -p tsconfig.mcp.json","clean:mcp":"rm -rf dist/mcp","start:mcp":"npm run build:mcp && node dist/mcp/server.js","test:unit":"jest --testPathPatterns=test/unit --passWithNoTests","clean:dist":"rm -rf dist build","deps:check":"npm-check-updates","docker:run":"docker run -p 8000:8000 mermaid-validator-mcp","preinstall":"npm run build:grammars || true","test:watch":"jest --watch","build:antlr":"node scripts/compile-grammars.js --antlr-only","build:jison":"node scripts/compile-grammars.js --jison-only","build:types":"node scripts/compile-grammars.js --types-only","deps:update":"npm-check-updates -u","postinstall":"npm run build || true","test:upload":"node test/integration/upload-endpoints.js","dev:mcp-http":"npm run build:mcp && nodemon dist/mcp/server-http.js","docker:build":"docker build -t mermaid-validator-mcp .","build:langium":"node scripts/compile-grammars.js --langium-only","license:check":"license-checker","security:full":"npm run audit && npm run security:snyk && npm run security:retire","security:snyk":"snyk test","test:coverage":"jest --coverage","test:validate":"node test/integration/validate-endpoints.js","validate:deps":"dependency-check package.json","version:major":"node scripts/increment-version.js major","version:minor":"node scripts/increment-version.js minor","version:patch":"node scripts/increment-version.js patch","build:grammars":"node scripts/compile-grammars.js --jison-only","dev:mcp-secure":"npm run build:mcp && nodemon dist/mcp/server-secure.js","prepublishOnly":"npm run build:grammars && (npm run build:mcp || true)","start:mcp-http":"npm run build:mcp && node dist/mcp/server-http.js","clean:generated":"rm -rf src/generated","security:retire":"retire","start:mcp-secure":"npm run build:mcp && node dist/mcp/server-secure.js","test:integration":"node test/integration/validate-endpoints.js && node test/integration/upload-endpoints.js","docker:build:auto":"npm run version:patch && make docker-build-manual"},"_npmUser":{"name":"user-ai-of-mine","email":"gregoriomomm@gmail.com"},"repository":{"url":"git+https://github.com/ai-of-mine/fast-mermaid-validator-mcp.git","type":"git"},"_npmVersion":"11.3.0","description":"High-performance API and Model Context Protocol (MCP) server for validating Mermaid diagrams with comprehensive security features, multiple transport options, and enterprise-grade capabilities","directories":{},"_nodeVersion":"23.7.0","dependencies":{"joi":"^18.2.1","zod":"^4.4.3","cors":"^2.8.6","uuid":"^14.0.0","jison":"^0.4.18","yauzl":"^3.3.1","helmet":"^8.2.0","morgan":"^1.10.1","multer":"^2.1.1","express":"^5.2.1","langium":"^4.2.4","winston":"^3.19.0","chevrotain":"^12.0.0","mime-types":"^3.0.2","compression":"^1.8.1","swagger-jsdoc":"^6.3.0","express-validator":"^7.3.2","express-rate-limit":"^8.5.2","swagger-ui-express":"^5.0.1","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","snyk":"^1.1305.0","axios":"^1.16.1","eslint":"^9.39.4","retire":"^5.4.3","globals":"^16.4.0","nodemon":"^3.1.14","audit-ci":"^7.1.0","form-data":"^4.0.5","supertest":"^7.2.2","@eslint/js":"^9.39.4","typescript":"^6.0.3","@types/node":"^25.9.1","@types/uuid":"^10.0.0","langium-cli":"^4.2.1","@types/express":"^5.0.6","license-checker":"^25.0.1","dependency-check":"^4.1.0","npm-check-updates":"^22.2.1","eslint-plugin-import":"^2.32.0"},"_npmOperationalInternal":{"tmp":"tmp/fast-mermaid-validator-mcp_1.2.0_1779845475199_0.39888770821864683","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@ai-of-mine/fast-mermaid-validator-mcp","version":"1.2.1","keywords":["mermaid","mermaid-js","mermaid-validator","diagram-validation","mcp","model-context-protocol","claude","llm-tools","diagram","syntax-validation","flowchart","sequence-diagram","class-diagram","state-diagram","er-diagram","uml","project-management","documentation","markdown","ci-cd","testing","linting","typescript","nodejs","rest-api","headless","fast","high-performance","grammar-parsing","antlr","jison","langium","developer-tools"],"author":{"name":"Gregorio Elias Roecker Momm","email":"gregoriomomm@gmail.com"},"license":"Apache-2.0","_id":"@ai-of-mine/fast-mermaid-validator-mcp@1.2.1","maintainers":[{"name":"user-ai-of-mine","email":"gregoriomomm@gmail.com"}],"homepage":"https://github.com/ai-of-mine/fast-mermaid-validator-mcp#readme","bugs":{"url":"https://github.com/ai-of-mine/fast-mermaid-validator-mcp/issues"},"bin":{"fast-mermaid-validator-mcp":"src/server.js"},"dist":{"shasum":"c98da739be34c50f2291086587eec6b346aabbc9","tarball":"https://registry.npmjs.org/@ai-of-mine/fast-mermaid-validator-mcp/-/fast-mermaid-validator-mcp-1.2.1.tgz","fileCount":303,"integrity":"sha512-JXxmCofrLoCT3HM6rFjGLfCLp+ZP0qu7X9WTipl2IUn5zcZ57UQEo6X60ZrhCNrg3eK/FuZcLeRZsZQ/F1pBZQ==","signatures":[{"sig":"MEQCIHIYG2GS0NvYtq/ObS3Qd5qZA4qzqYa0AxsRT2uayg9vAiA+V1fhe49nM46FKTjK2LiEaCXTWj1Awk0/UdaiGfRgPw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1601748},"main":"src/server.js","engines":{"npm":">=10.0.0","node":">=20.0.0"},"gitHead":"a2a7e7d795c5f6b6dae2f9ae757a1f300535506c","scripts":{"dev":"nodemon src/server.js","docs":"swagger-jsdoc -d docs/swagger.js src/routes/*.js -o docs/swagger.json","lint":"eslint src/","test":"npm run test:unit && npm run test:integration","audit":"npm audit","build":"npm run build:grammars","clean":"npm run clean:generated && npm run clean:dist && npm run clean:mcp","start":"node src/server.js","dev:mcp":"npm run build:mcp && nodemon dist/mcp/server.js","prepare":"npm run build || true","audit:ci":"audit-ci --config audit-ci.json","lint:fix":"eslint src/ --fix","prebuild":"npm run build:mcp","test:api":"jest --testPathPatterns=test/api","test:mcp":"npm run build:mcp && node test/mcp/test-mcp-integration.js","audit:fix":"npm audit fix","build:mcp":"tsc -p tsconfig.mcp.json","clean:mcp":"rm -rf dist/mcp","start:mcp":"npm run build:mcp && node dist/mcp/server.js","test:unit":"jest --testPathPatterns=test/unit --passWithNoTests","clean:dist":"rm -rf dist build","deps:check":"npm-check-updates","docker:run":"docker run -p 8000:8000 mermaid-validator-mcp","preinstall":"npm run build:grammars || true","test:watch":"jest --watch","build:antlr":"node scripts/compile-grammars.js --antlr-only","build:jison":"node scripts/compile-grammars.js --jison-only","build:types":"node scripts/compile-grammars.js --types-only","deps:update":"npm-check-updates -u","postinstall":"npm run build || true","test:upload":"node test/integration/upload-endpoints.js","dev:mcp-http":"npm run build:mcp && nodemon dist/mcp/server-http.js","docker:build":"docker build -t mermaid-validator-mcp .","build:langium":"node scripts/compile-grammars.js --langium-only","license:check":"license-checker","security:full":"npm run audit && npm run security:snyk && npm run security:retire","security:snyk":"snyk test","test:coverage":"jest --coverage","test:validate":"node test/integration/validate-endpoints.js","validate:deps":"dependency-check package.json","version:major":"node scripts/increment-version.js major","version:minor":"node scripts/increment-version.js minor","version:patch":"node scripts/increment-version.js patch","build:grammars":"node scripts/compile-grammars.js --jison-only","dev:mcp-secure":"npm run build:mcp && nodemon dist/mcp/server-secure.js","prepublishOnly":"npm run build:grammars && (npm run build:mcp || true)","start:mcp-http":"npm run build:mcp && node dist/mcp/server-http.js","clean:generated":"rm -rf src/generated","security:retire":"retire","start:mcp-secure":"npm run build:mcp && node dist/mcp/server-secure.js","test:integration":"node test/integration/validate-endpoints.js && node test/integration/upload-endpoints.js","docker:build:auto":"npm run version:patch && make docker-build-manual"},"_npmUser":{"name":"user-ai-of-mine","email":"gregoriomomm@gmail.com"},"overrides":{"glob":"^13.0.0"},"repository":{"url":"git+https://github.com/ai-of-mine/fast-mermaid-validator-mcp.git","type":"git"},"_npmVersion":"11.3.0","description":"High-performance API and Model Context Protocol (MCP) server for validating Mermaid diagrams with comprehensive security features, multiple transport options, and enterprise-grade capabilities","directories":{},"_nodeVersion":"23.7.0","dependencies":{"joi":"^18.2.1","zod":"^4.4.3","cors":"^2.8.6","uuid":"^14.0.0","jison":"^0.4.18","yauzl":"^3.3.1","helmet":"^8.2.0","morgan":"^1.10.1","multer":"^2.1.1","express":"^5.2.1","langium":"^4.2.4","winston":"^3.19.0","chevrotain":"^12.0.0","mime-types":"^3.0.2","compression":"^1.8.1","swagger-jsdoc":"^6.3.0","express-validator":"^7.3.2","express-rate-limit":"^8.5.2","swagger-ui-express":"^5.0.1","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","snyk":"^1.1305.0","axios":"^1.16.1","eslint":"^9.39.4","retire":"^5.4.3","globals":"^16.4.0","nodemon":"^3.1.14","audit-ci":"^7.1.0","form-data":"^4.0.5","supertest":"^7.2.2","@eslint/js":"^9.39.4","typescript":"~5.9.3","@types/node":"^25.9.1","@types/uuid":"^10.0.0","langium-cli":"^4.2.1","@types/express":"^5.0.6","license-checker":"^25.0.1","dependency-check":"^4.1.0","npm-check-updates":"^22.2.1","eslint-plugin-import":"^2.32.0"},"_npmOperationalInternal":{"tmp":"tmp/fast-mermaid-validator-mcp_1.2.1_1779853626846_0.47639801898454226","host":"s3://npm-registry-packages-npm-production"}},"1.2.2":{"name":"@ai-of-mine/fast-mermaid-validator-mcp","version":"1.2.2","keywords":["mermaid","mermaid-js","mermaid-validator","diagram-validation","mcp","model-context-protocol","claude","llm-tools","diagram","syntax-validation","flowchart","sequence-diagram","class-diagram","state-diagram","er-diagram","uml","project-management","documentation","markdown","ci-cd","testing","linting","typescript","nodejs","rest-api","headless","fast","high-performance","grammar-parsing","antlr","jison","langium","developer-tools"],"author":{"name":"Gregorio Elias Roecker Momm","email":"gregoriomomm@gmail.com"},"license":"Apache-2.0","_id":"@ai-of-mine/fast-mermaid-validator-mcp@1.2.2","maintainers":[{"name":"user-ai-of-mine","email":"gregoriomomm@gmail.com"}],"homepage":"https://github.com/ai-of-mine/fast-mermaid-validator-mcp#readme","bugs":{"url":"https://github.com/ai-of-mine/fast-mermaid-validator-mcp/issues"},"bin":{"fast-mermaid-validator-mcp":"src/server.js"},"dist":{"shasum":"94443f01d465730b1645f48b04af851977d1c0db","tarball":"https://registry.npmjs.org/@ai-of-mine/fast-mermaid-validator-mcp/-/fast-mermaid-validator-mcp-1.2.2.tgz","fileCount":300,"integrity":"sha512-V8d30N7eqo9JsSTupxzUxHfK0eqhUTjyFjTkMkraeCSgYhRSI0W7Tq4u00abWqEV85MtLCm/ilEBFsDvQbdpzA==","signatures":[{"sig":"MEYCIQDFnh6BwQlS8pN5Vb0VREFgtCaYUFRlHVfC6djIhk0rDQIhAL/PDvvv7LtucQJQF6N3M0EiX2gf1vvlcndHERLwM+f8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1572316},"main":"src/server.js","engines":{"npm":">=10.0.0","node":">=20.0.0"},"gitHead":"21b8e7818537991fbdcfcdbc153edb30537aeaab","scripts":{"dev":"nodemon src/server.js","docs":"swagger-jsdoc -d docs/swagger.js src/routes/*.js -o docs/swagger.json","lint":"eslint src/","test":"npm run test:unit && npm run test:integration","audit":"npm audit","build":"npm run build:grammars","clean":"npm run clean:generated && npm run clean:dist && npm run clean:mcp","start":"node src/server.js","dev:mcp":"npm run build:mcp && nodemon dist/mcp/server.js","prepare":"npm run build || true","audit:ci":"audit-ci --config audit-ci.json","lint:fix":"eslint src/ --fix","prebuild":"npm run build:mcp","test:api":"jest --testPathPatterns=test/api","test:mcp":"npm run build:mcp && node test/mcp/test-mcp-integration.js","audit:fix":"npm audit fix","build:mcp":"tsc -p tsconfig.mcp.json","clean:mcp":"rm -rf dist/mcp","start:mcp":"npm run build:mcp && node dist/mcp/server.js","test:unit":"jest --testPathPatterns=test/unit --passWithNoTests","clean:dist":"rm -rf dist build","deps:check":"npm-check-updates","docker:run":"docker run -p 8000:8000 mermaid-validator-mcp","preinstall":"npm run build:grammars || true","test:watch":"jest --watch","build:antlr":"node scripts/compile-grammars.js --antlr-only","build:jison":"node scripts/compile-grammars.js --jison-only","build:types":"node scripts/compile-grammars.js --types-only","deps:update":"npm-check-updates -u","postinstall":"npm run build || true","test:upload":"node test/integration/upload-endpoints.js","dev:mcp-http":"npm run build:mcp && nodemon dist/mcp/server-http.js","docker:build":"docker build -t mermaid-validator-mcp .","build:langium":"node scripts/compile-grammars.js --langium-only","license:check":"license-checker","security:full":"npm run audit && npm run security:snyk && npm run security:retire","security:snyk":"snyk test","test:coverage":"jest --coverage","test:validate":"node test/integration/validate-endpoints.js","validate:deps":"dependency-check package.json","version:major":"node scripts/increment-version.js major","version:minor":"node scripts/increment-version.js minor","version:patch":"node scripts/increment-version.js patch","build:grammars":"node scripts/compile-grammars.js --jison-only","dev:mcp-secure":"npm run build:mcp && nodemon dist/mcp/server-secure.js","prepublishOnly":"npm run build:grammars && (npm run build:mcp || true)","start:mcp-http":"npm run build:mcp && node dist/mcp/server-http.js","clean:generated":"rm -rf src/generated","security:retire":"retire","start:mcp-secure":"npm run build:mcp && node dist/mcp/server-secure.js","test:integration":"node test/integration/validate-endpoints.js && node test/integration/upload-endpoints.js","docker:build:auto":"npm run version:patch && make docker-build-manual"},"_npmUser":{"name":"user-ai-of-mine","email":"gregoriomomm@gmail.com"},"overrides":{"glob":"^13.0.0"},"repository":{"url":"git+https://github.com/ai-of-mine/fast-mermaid-validator-mcp.git","type":"git"},"_npmVersion":"11.3.0","description":"High-performance API and Model Context Protocol (MCP) server for validating Mermaid diagrams with comprehensive security features, multiple transport options, and enterprise-grade capabilities","directories":{},"_nodeVersion":"23.7.0","dependencies":{"joi":"^18.2.1","zod":"^4.4.3","cors":"^2.8.6","uuid":"^14.0.0","jison":"^0.4.18","yauzl":"^3.3.1","helmet":"^8.2.0","morgan":"^1.10.1","multer":"^2.1.1","express":"^5.2.1","langium":"^4.2.4","winston":"^3.19.0","chevrotain":"^12.0.0","mime-types":"^3.0.2","compression":"^1.8.1","swagger-jsdoc":"^6.3.0","express-validator":"^7.3.2","express-rate-limit":"^8.5.2","swagger-ui-express":"^5.0.1","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","snyk":"^1.1305.0","axios":"^1.16.1","eslint":"^9.39.4","retire":"^5.4.3","globals":"^16.4.0","nodemon":"^3.1.14","audit-ci":"^7.1.0","form-data":"^4.0.5","supertest":"^7.2.2","@eslint/js":"^9.39.4","typescript":"~5.9.3","@types/node":"^25.9.1","@types/uuid":"^10.0.0","langium-cli":"^4.2.1","@types/express":"^5.0.6","license-checker":"^25.0.1","dependency-check":"^4.1.0","npm-check-updates":"^22.2.1","eslint-plugin-import":"^2.32.0"},"_npmOperationalInternal":{"tmp":"tmp/fast-mermaid-validator-mcp_1.2.2_1779854895573_0.982168807131099","host":"s3://npm-registry-packages-npm-production"}},"1.3.0-beta.1":{"name":"@ai-of-mine/fast-mermaid-validator-mcp","version":"1.3.0-beta.1","keywords":["mermaid","mermaid-js","mermaid-validator","diagram-validation","mcp","model-context-protocol","claude","llm-tools","diagram","syntax-validation","flowchart","sequence-diagram","class-diagram","state-diagram","er-diagram","uml","project-management","documentation","markdown","ci-cd","testing","linting","typescript","nodejs","rest-api","headless","fast","high-performance","grammar-parsing","antlr","jison","langium","developer-tools"],"author":{"name":"Gregorio Elias Roecker Momm","email":"gregoriomomm@gmail.com"},"license":"Apache-2.0","_id":"@ai-of-mine/fast-mermaid-validator-mcp@1.3.0-beta.1","maintainers":[{"name":"user-ai-of-mine","email":"gregoriomomm@gmail.com"}],"homepage":"https://github.com/ai-of-mine/fast-mermaid-validator-mcp#readme","bugs":{"url":"https://github.com/ai-of-mine/fast-mermaid-validator-mcp/issues"},"bin":{"fast-mermaid-validator-mcp":"src/server.js"},"dist":{"shasum":"df9581d4db25239f11d3d3f940d9b1c9e3a503e8","tarball":"https://registry.npmjs.org/@ai-of-mine/fast-mermaid-validator-mcp/-/fast-mermaid-validator-mcp-1.3.0-beta.1.tgz","fileCount":303,"integrity":"sha512-JCPxfifWWCHiPPMZz8dnBXjAxoiLWCQBHHFuIuybM5LqaBBQqSaC6WQM0kY+4MW6JGHoXHUNBrwEsb5vWdW1oQ==","signatures":[{"sig":"MEQCICKO/ijrwnAddP7Gsl9XZcl+9anerxyVKQYfm9ktrMrxAiBKZ+YHiAloNfv5p9Qh/78Hsn/lVfTBVrvNLgDu2ziKUw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1604964},"main":"src/server.js","engines":{"npm":">=10.0.0","node":">=20.0.0"},"gitHead":"b44e32b0d3d69b556940b672d4048d48400c1a16","scripts":{"dev":"nodemon src/server.js","docs":"swagger-jsdoc -d docs/swagger.js src/routes/*.js -o docs/swagger.json","lint":"eslint src/","test":"npm run test:unit && npm run test:integration","audit":"npm audit","build":"npm run build:grammars","clean":"npm run clean:generated && npm run clean:dist && npm run clean:mcp","start":"node src/server.js","dev:mcp":"npm run build:mcp && nodemon dist/mcp/server.js","prepare":"npm run build || true","audit:ci":"audit-ci --config audit-ci.json","lint:fix":"eslint src/ --fix","prebuild":"npm run build:mcp","test:api":"jest --testPathPatterns=test/api","test:mcp":"npm run build:mcp && node test/mcp/test-mcp-integration.js","audit:fix":"npm audit fix","build:mcp":"tsc -p tsconfig.mcp.json","clean:mcp":"rm -rf dist/mcp","start:mcp":"npm run build:mcp && node dist/mcp/server.js","test:unit":"jest --testPathPatterns=test/unit --passWithNoTests","clean:dist":"rm -rf dist build","deps:check":"npm-check-updates","docker:run":"docker run -p 8000:8000 mermaid-validator-mcp","preinstall":"npm run build:grammars || true","test:watch":"jest --watch","build:antlr":"node scripts/compile-grammars.js --antlr-only","build:jison":"node scripts/compile-grammars.js --jison-only","build:types":"node scripts/compile-grammars.js --types-only","deps:update":"npm-check-updates -u","postinstall":"npm run build || true","test:upload":"node test/integration/upload-endpoints.js","dev:mcp-http":"npm run build:mcp && nodemon dist/mcp/server-http.js","docker:build":"docker build -t mermaid-validator-mcp .","build:langium":"node scripts/compile-grammars.js --langium-only","license:check":"license-checker","security:full":"npm run audit && npm run security:snyk && npm run security:retire","security:snyk":"snyk test","test:coverage":"jest --coverage","test:validate":"node test/integration/validate-endpoints.js","validate:deps":"dependency-check package.json","version:major":"node scripts/increment-version.js major","version:minor":"node scripts/increment-version.js minor","version:patch":"node scripts/increment-version.js patch","build:grammars":"node scripts/compile-grammars.js --jison-only","dev:mcp-secure":"npm run build:mcp && nodemon dist/mcp/server-secure.js","prepublishOnly":"npm run build:grammars && (npm run build:mcp || true)","start:mcp-http":"npm run build:mcp && node dist/mcp/server-http.js","clean:generated":"rm -rf src/generated","security:retire":"retire","start:mcp-secure":"npm run build:mcp && node dist/mcp/server-secure.js","test:integration":"node test/integration/validate-endpoints.js && node test/integration/upload-endpoints.js","docker:build:auto":"npm run version:patch && make docker-build-manual"},"_npmUser":{"name":"user-ai-of-mine","email":"gregoriomomm@gmail.com"},"overrides":{"glob":"^13.0.0"},"repository":{"url":"git+https://github.com/ai-of-mine/fast-mermaid-validator-mcp.git","type":"git"},"_npmVersion":"11.3.0","description":"High-performance API and Model Context Protocol (MCP) server for validating Mermaid diagrams with comprehensive security features, multiple transport options, and enterprise-grade capabilities","directories":{},"_nodeVersion":"23.7.0","dependencies":{"joi":"^18.2.1","zod":"^4.4.3","cors":"^2.8.6","uuid":"^14.0.0","jison":"^0.4.18","yauzl":"^3.3.1","helmet":"^8.2.0","morgan":"^1.10.1","multer":"^2.1.1","express":"^5.2.1","langium":"^4.2.4","winston":"^3.19.0","chevrotain":"^12.0.0","mime-types":"^3.0.2","compression":"^1.8.1","swagger-jsdoc":"^6.3.0","express-validator":"^7.3.2","express-rate-limit":"^8.5.2","swagger-ui-express":"^5.0.1","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^30.4.2","snyk":"^1.1305.0","axios":"^1.16.1","eslint":"^9.39.4","retire":"^5.4.3","globals":"^16.4.0","nodemon":"^3.1.14","audit-ci":"^7.1.0","form-data":"^4.0.5","supertest":"^7.2.2","@eslint/js":"^9.39.4","typescript":"~5.9.3","@types/node":"^25.9.1","@types/uuid":"^10.0.0","langium-cli":"^4.2.1","@types/express":"^5.0.6","license-checker":"^25.0.1","dependency-check":"^4.1.0","npm-check-updates":"^22.2.1","eslint-plugin-import":"^2.32.0"},"_npmOperationalInternal":{"tmp":"tmp/fast-mermaid-validator-mcp_1.3.0-beta.1_1779855298557_0.8192382132014508","host":"s3://npm-registry-packages-npm-production"}},"1.2.3":{"name":"@ai-of-mine/fast-mermaid-validator-mcp","version":"1.2.3","keywords":["mermaid","mermaid-js","mermaid-validator","diagram-validation","mcp","model-context-protocol","claude","llm-tools","diagram","syntax-validation","flowchart","sequence-diagram","class-diagram","state-diagram","er-diagram","uml","project-management","documentation","markdown","ci-cd","testing","linting","typescript","nodejs","rest-api","headless","fast","high-performance","grammar-parsing","antlr","jison","langium","developer-tools"],"author":{"name":"Gregorio Elias Roecker Momm","email":"gregoriomomm@gmail.com"},"license":"Apache-2.0","_id":"@ai-of-mine/fast-mermaid-validator-mcp@1.2.3","maintainers":[{"name":"user-ai-of-mine","email":"gregoriomomm@gmail.com"}],"homepage":"https://github.com/ai-of-mine/fast-mermaid-validator-mcp#readme","bugs":{"url":"https://github.com/ai-of-mine/fast-mermaid-validator-mcp/issues"},"bin":{"fast-mermaid-validator-mcp":"src/server.js"},"dist":{"shasum":"55bd2fc622e74f41b9390dc974029e7fd67bbc9a","tarball":"https://registry.npmjs.org/@ai-of-mine/fast-mermaid-validator-mcp/-/fast-mermaid-validator-mcp-1.2.3.tgz","fileCount":860,"integrity":"sha512-4wU9SQjYEFVf0JkdCf2FSjWB6U3zuCnwOn3VFor6oNBb9rIeQRnO+LfLxmAa+MCLq0p4EOzZ+dWwq3H7ykibCg==","signatures":[{"sig":"MEYCIQD2IaohFiLinx/gKP+7fKQ70M4OwW3p1+WufpJW98eUiQIhAMBA7LGOwyAMB/Yx3VPmtPiKCEDkGtrJhfCMfgVU3a79","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6599946},"main":"src/server.js","engines":{"npm":">=10.0.0","node":">=20.0.0"},"gitHead":"ab90708f0db01131ed74dea6d2023d3178e09a4a","scripts":{"dev":"nodemon src/server.js","docs":"swagger-jsdoc -d docs/swagger.js src/routes/*.js -o docs/swagger.json","lint":"eslint src/","test":"npm run test:unit && npm run test:integration","audit":"npm audit","build":"npm run build:grammars","clean":"npm run clean:generated && npm run clean:dist && npm run clean:mcp","start":"node src/server.js","dev:mcp":"npm run build:mcp && nodemon dist/mcp/server.js","prepare":"npm run build || true","audit:ci":"audit-ci --config audit-ci.json","lint:fix":"eslint src/ --fix","prebuild":"npm run build:mcp","test:api":"jest --testPathPatterns=test/api","test:mcp":"npm run build:mcp && node test/mcp/test-mcp-integration.js","audit:fix":"npm audit fix","build:mcp":"tsc -p tsconfig.mcp.json","clean:mcp":"rm -rf dist/mcp","start:mcp":"npm run build:mcp && node dist/mcp/server.js","test:unit":"jest --testPathPatterns=test/unit --passWithNoTests","clean:dist":"rm -rf dist build","deps:check":"npm-check-updates","docker:run":"docker run -p 8000:8000 mermaid-validator-mcp","preinstall":"npm run build:grammars || true","test:watch":"jest --watch","build:antlr":"node scripts/compile-grammars.js --antlr-only","build:jison":"node scripts/compile-grammars.js --jison-only","build:types":"node scripts/compile-grammars.js --types-only","deps:update":"npm-check-updates -u","postinstall":"npm run build || true","test:upload":"node test/integration/upload-endpoints.js","dev:mcp-http":"npm run build:mcp && nodemon dist/mcp/server-http.js","docker:build":"docker build -t mermaid-validator-mcp .","build:langium":"node scripts/compile-grammars.js --langium-only","license:check":"license-checker","security:full":"npm run audit && npm run security:snyk && npm run security:retire","security:snyk":"snyk test","test:coverage":"jest --coverage","test:validate":"node test/integration/validate-endpoints.js","validate:deps":"dependency-check package.json","version:major":"node scripts/increment-version.js major","version:minor":"node scripts/increment-version.js minor","version:patch":"node scripts/increment-version.js patch","build:grammars":"node scripts/compile-grammars.js --jison-only","dev:mcp-secure":"npm run build:mcp && nodemon dist/mcp/server-secure.js","prepublishOnly":"npm run build:grammars && (npm run build:mcp || true)","start:mcp-http":"npm run build:mcp && node dist/mcp/server-http.js","clean:generated":"rm -rf src/generated","security:retire":"retire","start:mcp-secure":"npm run build:mcp && node dist/mcp/server-secure.js","test:integration":"node test/integration/validate-endpoints.js && node test/integration/upload-endpoints.js","docker:build:auto":"npm run version:patch && make docker-build-manual"},"_npmUser":{"name":"user-ai-of-mine","email":"gregoriomomm@gmail.com"},"overrides":{"glob":"^13.0.0"},"repository":{"url":"git+https://github.com/ai-of-mine/fast-mermaid-validator-mcp.git","type":"git"},"_npmVersion":"11.3.0","description":"High-performance API and Model Context Protocol (MCP) server for validating Mermaid diagrams with comprehensive security features, multiple transport options, and enterprise-grade capabilities","directories":{},"_nodeVersion":"23.7.0","dependencies":{"joi":"^18.2.1","zod":"^4.4.3","cors":"^2.8.6","uuid":"^14.0.0","jison":"^0.4.18","yauzl":"^3.3.1","helmet":"^8.2.0","morgan":"^1.10.1","multer":"^2.1.1","express":"^5.2.1","langium":"^4.2.4","winston":"^3.19.0","chevrotain":"^12.0.0","mime-types":"^3.0.2","compression":"^1.8.1","express-validator":"^7.3.2","express-rate-limit":"^8.5.2","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","snyk":"^1.1305.0","axios":"^1.16.1","eslint":"^9.39.4","retire":"^5.4.3","globals":"^16.4.0","nodemon":"^3.1.14","audit-ci":"^7.1.0","form-data":"^4.0.5","supertest":"^7.2.2","@eslint/js":"^9.39.4","typescript":"~5.9.3","@types/node":"^25.9.1","@types/uuid":"^10.0.0","langium-cli":"^4.2.1","swagger-jsdoc":"^6.3.0","@types/express":"^5.0.6","license-checker":"^25.0.1","dependency-check":"^4.1.0","npm-check-updates":"^22.2.1","swagger-ui-express":"^5.0.1","eslint-plugin-import":"^2.32.0"},"bundleDependencies":["jison"],"_npmOperationalInternal":{"tmp":"tmp/fast-mermaid-validator-mcp_1.2.3_1779892289005_0.13126137332474186","host":"s3://npm-registry-packages-npm-production"}},"1.3.0-beta.2":{"name":"@ai-of-mine/fast-mermaid-validator-mcp","version":"1.3.0-beta.2","keywords":["mermaid","mermaid-js","mermaid-validator","diagram-validation","mcp","model-context-protocol","claude","llm-tools","diagram","syntax-validation","flowchart","sequence-diagram","class-diagram","state-diagram","er-diagram","uml","project-management","documentation","markdown","ci-cd","testing","linting","typescript","nodejs","rest-api","headless","fast","high-performance","grammar-parsing","antlr","jison","langium","developer-tools"],"author":{"name":"Gregorio Elias Roecker Momm","email":"gregoriomomm@gmail.com"},"license":"Apache-2.0","_id":"@ai-of-mine/fast-mermaid-validator-mcp@1.3.0-beta.2","maintainers":[{"name":"user-ai-of-mine","email":"gregoriomomm@gmail.com"}],"homepage":"https://github.com/ai-of-mine/fast-mermaid-validator-mcp#readme","bugs":{"url":"https://github.com/ai-of-mine/fast-mermaid-validator-mcp/issues"},"bin":{"fast-mermaid-validator-mcp":"src/server.js"},"dist":{"shasum":"0ef130ea7478141a4cc8e6fa1c3f74624ddb3231","tarball":"https://registry.npmjs.org/@ai-of-mine/fast-mermaid-validator-mcp/-/fast-mermaid-validator-mcp-1.3.0-beta.2.tgz","fileCount":863,"integrity":"sha512-hsjyczIhwpzQmuavyHYWGnwoJbqn4le+q5bTIa8qj84Wq1Jc54eTonsxV2AyW8xZX2mk1bVZZutNNG2pGBEDMg==","signatures":[{"sig":"MEUCIB8sV+QLt2XGIGgLIgtEXV0htkmzNfOh+nlQqOrjnKqpAiEAkhwphjgPuqqjAQf7CEBpMbjuvJ+Yc0JVhx5VX2mbb88=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6632594},"main":"src/server.js","engines":{"npm":">=10.0.0","node":">=20.0.0"},"gitHead":"ef60897c3fc1401fda220b19b7d19a8230dac178","scripts":{"dev":"nodemon src/server.js","docs":"swagger-jsdoc -d docs/swagger.js src/routes/*.js -o docs/swagger.json","lint":"eslint src/","test":"npm run test:unit && npm run test:integration","audit":"npm audit","build":"npm run build:grammars","clean":"npm run clean:generated && npm run clean:dist && npm run clean:mcp","start":"node src/server.js","dev:mcp":"npm run build:mcp && nodemon dist/mcp/server.js","prepare":"npm run build || true","audit:ci":"audit-ci --config audit-ci.json","lint:fix":"eslint src/ --fix","prebuild":"npm run build:mcp","test:api":"jest --testPathPatterns=test/api","test:mcp":"npm run build:mcp && node test/mcp/test-mcp-integration.js","audit:fix":"npm audit fix","build:mcp":"tsc -p tsconfig.mcp.json","clean:mcp":"rm -rf dist/mcp","start:mcp":"npm run build:mcp && node dist/mcp/server.js","test:unit":"jest --testPathPatterns=test/unit --passWithNoTests","clean:dist":"rm -rf dist build","deps:check":"npm-check-updates","docker:run":"docker run -p 8000:8000 mermaid-validator-mcp","preinstall":"npm run build:grammars || true","test:watch":"jest --watch","build:antlr":"node scripts/compile-grammars.js --antlr-only","build:jison":"node scripts/compile-grammars.js --jison-only","build:types":"node scripts/compile-grammars.js --types-only","deps:update":"npm-check-updates -u","postinstall":"npm run build || true","test:upload":"node test/integration/upload-endpoints.js","dev:mcp-http":"npm run build:mcp && nodemon dist/mcp/server-http.js","docker:build":"docker build -t mermaid-validator-mcp .","build:langium":"node scripts/compile-grammars.js --langium-only","license:check":"license-checker","security:full":"npm run audit && npm run security:snyk && npm run security:retire","security:snyk":"snyk test","test:coverage":"jest --coverage","test:validate":"node test/integration/validate-endpoints.js","validate:deps":"dependency-check package.json","version:major":"node scripts/increment-version.js major","version:minor":"node scripts/increment-version.js minor","version:patch":"node scripts/increment-version.js patch","build:grammars":"node scripts/compile-grammars.js --jison-only","dev:mcp-secure":"npm run build:mcp && nodemon dist/mcp/server-secure.js","prepublishOnly":"npm run build:grammars && (npm run build:mcp || true)","start:mcp-http":"npm run build:mcp && node dist/mcp/server-http.js","clean:generated":"rm -rf src/generated","security:retire":"retire","start:mcp-secure":"npm run build:mcp && node dist/mcp/server-secure.js","test:integration":"node test/integration/validate-endpoints.js && node test/integration/upload-endpoints.js","docker:build:auto":"npm run version:patch && make docker-build-manual"},"_npmUser":{"name":"user-ai-of-mine","email":"gregoriomomm@gmail.com"},"overrides":{"glob":"^13.0.0"},"repository":{"url":"git+https://github.com/ai-of-mine/fast-mermaid-validator-mcp.git","type":"git"},"_npmVersion":"11.3.0","description":"High-performance API and Model Context Protocol (MCP) server for validating Mermaid diagrams with comprehensive security features, multiple transport options, and enterprise-grade capabilities","directories":{},"_nodeVersion":"23.7.0","dependencies":{"joi":"^18.2.1","zod":"^4.4.3","cors":"^2.8.6","uuid":"^14.0.0","jison":"^0.4.18","yauzl":"^3.3.1","helmet":"^8.2.0","morgan":"^1.10.1","multer":"^2.1.1","express":"^5.2.1","langium":"^4.2.4","winston":"^3.19.0","chevrotain":"^12.0.0","mime-types":"^3.0.2","compression":"^1.8.1","express-validator":"^7.3.2","express-rate-limit":"^8.5.2","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^30.4.2","snyk":"^1.1305.0","axios":"^1.16.1","eslint":"^9.39.4","retire":"^5.4.3","globals":"^16.4.0","nodemon":"^3.1.14","audit-ci":"^7.1.0","form-data":"^4.0.5","supertest":"^7.2.2","@eslint/js":"^9.39.4","typescript":"~5.9.3","@types/node":"^25.9.1","@types/uuid":"^10.0.0","langium-cli":"^4.2.1","swagger-jsdoc":"^6.3.0","@types/express":"^5.0.6","license-checker":"^25.0.1","dependency-check":"^4.1.0","npm-check-updates":"^22.2.1","swagger-ui-express":"^5.0.1","eslint-plugin-import":"^2.32.0"},"bundleDependencies":["jison"],"_npmOperationalInternal":{"tmp":"tmp/fast-mermaid-validator-mcp_1.3.0-beta.2_1779892776607_0.04885347598207135","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@ai-of-mine/fast-mermaid-validator-mcp","version":"1.3.0","keywords":["mermaid","mermaid-js","mermaid-validator","diagram-validation","mcp","model-context-protocol","claude","llm-tools","diagram","syntax-validation","flowchart","sequence-diagram","class-diagram","state-diagram","er-diagram","uml","project-management","documentation","markdown","ci-cd","testing","linting","typescript","nodejs","rest-api","headless","fast","high-performance","grammar-parsing","antlr","jison","langium","developer-tools"],"author":{"name":"Gregorio Elias Roecker Momm","email":"gregoriomomm@gmail.com"},"license":"Apache-2.0","_id":"@ai-of-mine/fast-mermaid-validator-mcp@1.3.0","maintainers":[{"name":"user-ai-of-mine","email":"gregoriomomm@gmail.com"}],"homepage":"https://github.com/ai-of-mine/fast-mermaid-validator-mcp#readme","bugs":{"url":"https://github.com/ai-of-mine/fast-mermaid-validator-mcp/issues"},"bin":{"fast-mermaid-validator-mcp":"src/server.js"},"dist":{"shasum":"30314b5a963d9561735218b05e24386f8b2a738f","tarball":"https://registry.npmjs.org/@ai-of-mine/fast-mermaid-validator-mcp/-/fast-mermaid-validator-mcp-1.3.0.tgz","fileCount":868,"integrity":"sha512-kEJUJ3FoCGo7BRXe73ttucHVAo2MJ7xcc/W7tGnJjwnPIDov13pQF7cWiBiUGTlbscDUvpxTc5kcsJyc3v4JNw==","signatures":[{"sig":"MEUCIGCJbjgXJ/BrgamxTgiwFGPC920EuMtSIiFa4cEYZLcIAiEA5GljQgbKHIgB6wni4uugIy9AI2Yk/L9FnED9lkam+MI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6651525},"main":"src/server.js","engines":{"npm":">=10.0.0","node":">=20.0.0"},"gitHead":"5c9ef512cd4605d8666b6d9bc39c7bf8987b6668","scripts":{"dev":"nodemon src/server.js","docs":"swagger-jsdoc -d docs/swagger.js src/routes/*.js -o docs/swagger.json","lint":"eslint src/","test":"npm run test:unit && npm run test:integration","audit":"npm audit","build":"npm run build:grammars","clean":"npm run clean:generated && npm run clean:dist && npm run clean:mcp","start":"node src/server.js","dev:mcp":"npm run build:mcp && nodemon dist/mcp/server.js","prepare":"npm run build || true","audit:ci":"audit-ci --config audit-ci.json","lint:fix":"eslint src/ --fix","prebuild":"npm run build:mcp","test:api":"jest --testPathPatterns=test/api","test:mcp":"npm run build:mcp && node test/mcp/test-mcp-integration.js","audit:fix":"npm audit fix","build:mcp":"tsc -p tsconfig.mcp.json","clean:mcp":"rm -rf dist/mcp","start:mcp":"npm run build:mcp && node dist/mcp/server.js","test:unit":"jest --testPathPatterns=test/unit --passWithNoTests","clean:dist":"rm -rf dist build","deps:check":"npm-check-updates","docker:run":"docker run -p 8000:8000 mermaid-validator-mcp","preinstall":"npm run build:grammars || true","test:watch":"jest --watch","build:antlr":"node scripts/compile-grammars.js --antlr-only","build:jison":"node scripts/compile-grammars.js --jison-only","build:types":"node scripts/compile-grammars.js --types-only","deps:update":"npm-check-updates -u","postinstall":"npm run build || true","test:upload":"node test/integration/upload-endpoints.js","dev:mcp-http":"npm run build:mcp && nodemon dist/mcp/server-http.js","docker:build":"docker build -t mermaid-validator-mcp .","build:langium":"node scripts/compile-grammars.js --langium-only","license:check":"license-checker","security:full":"npm run audit && npm run security:snyk && npm run security:retire","security:snyk":"snyk test","test:coverage":"jest --coverage","test:validate":"node test/integration/validate-endpoints.js","validate:deps":"dependency-check package.json","version:major":"node scripts/increment-version.js major","version:minor":"node scripts/increment-version.js minor","version:patch":"node scripts/increment-version.js patch","build:grammars":"node scripts/compile-grammars.js --jison-only","dev:mcp-secure":"npm run build:mcp && nodemon dist/mcp/server-secure.js","prepublishOnly":"npm run build:grammars && (npm run build:mcp || true)","start:mcp-http":"npm run build:mcp && node dist/mcp/server-http.js","clean:generated":"rm -rf src/generated","security:retire":"retire","start:mcp-secure":"npm run build:mcp && node dist/mcp/server-secure.js","test:integration":"node test/integration/validate-endpoints.js && node test/integration/upload-endpoints.js","docker:build:auto":"npm run version:patch && make docker-build-manual"},"_npmUser":{"name":"user-ai-of-mine","email":"gregoriomomm@gmail.com"},"overrides":{"glob":"^13.0.0"},"repository":{"url":"git+https://github.com/ai-of-mine/fast-mermaid-validator-mcp.git","type":"git"},"_npmVersion":"11.3.0","description":"High-performance API and Model Context Protocol (MCP) server for validating Mermaid diagrams with comprehensive security features, multiple transport options, and enterprise-grade capabilities","directories":{},"_nodeVersion":"23.7.0","dependencies":{"joi":"^18.2.1","zod":"^4.4.3","cors":"^2.8.6","uuid":"^14.0.0","jison":"^0.4.18","yauzl":"^3.3.1","helmet":"^8.2.0","morgan":"^1.10.1","multer":"^2.1.1","express":"^5.2.1","langium":"^4.2.4","winston":"^3.19.0","chevrotain":"^12.0.0","mime-types":"^3.0.2","compression":"^1.8.1","express-validator":"^7.3.2","express-rate-limit":"^8.5.2","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","snyk":"^1.1305.0","axios":"^1.16.1","eslint":"^9.39.4","retire":"^5.4.3","globals":"^16.4.0","nodemon":"^3.1.14","audit-ci":"^7.1.0","form-data":"^4.0.5","supertest":"^7.2.2","@eslint/js":"^9.39.4","typescript":"~5.9.3","@types/node":"^25.9.1","@types/uuid":"^10.0.0","langium-cli":"^4.2.1","swagger-jsdoc":"^6.3.0","@types/express":"^5.0.6","license-checker":"^25.0.1","dependency-check":"^4.1.0","npm-check-updates":"^22.2.1","swagger-ui-express":"^5.0.1","eslint-plugin-import":"^2.32.0"},"bundleDependencies":["jison"],"_npmOperationalInternal":{"tmp":"tmp/fast-mermaid-validator-mcp_1.3.0_1779896878703_0.8088694698368606","host":"s3://npm-registry-packages-npm-production"}},"1.3.1":{"name":"@ai-of-mine/fast-mermaid-validator-mcp","version":"1.3.1","keywords":["mermaid","mermaid-js","mermaid-validator","diagram-validation","mcp","model-context-protocol","claude","llm-tools","diagram","syntax-validation","flowchart","sequence-diagram","class-diagram","state-diagram","er-diagram","uml","project-management","documentation","markdown","ci-cd","testing","linting","typescript","nodejs","rest-api","headless","fast","high-performance","grammar-parsing","antlr","jison","langium","developer-tools"],"author":{"name":"Gregorio Elias Roecker Momm","email":"gregoriomomm@gmail.com"},"license":"Apache-2.0","_id":"@ai-of-mine/fast-mermaid-validator-mcp@1.3.1","maintainers":[{"name":"user-ai-of-mine","email":"gregoriomomm@gmail.com"}],"homepage":"https://github.com/ai-of-mine/fast-mermaid-validator-mcp#readme","bugs":{"url":"https://github.com/ai-of-mine/fast-mermaid-validator-mcp/issues"},"bin":{"fast-mermaid-validator-mcp":"src/server.js"},"dist":{"shasum":"469128715308499a68fa3d9cd9d12737482fba4d","tarball":"https://registry.npmjs.org/@ai-of-mine/fast-mermaid-validator-mcp/-/fast-mermaid-validator-mcp-1.3.1.tgz","fileCount":868,"integrity":"sha512-pRighABZ29VY3ut1jADJUd2z1IPgtMmqpEQNqeEkkmwOEZtEWF0C7y7xdRhl5fGvZwQ6UohhI4WMFgc5M7lNDg==","signatures":[{"sig":"MEQCIBkZj632yB5w/d8NzOlHgvRSAQaxUF9Zvdz06yuEJLVkAiB3gcjG6metIuQ0BoCWBdZtzwxHmVm+VtaMMrEpmKPtWA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6652176},"main":"src/server.js","engines":{"npm":">=10.0.0","node":">=20.0.0"},"gitHead":"464761f13f5b63e29beee2ba8c5fb3b0f91256e2","scripts":{"dev":"nodemon src/server.js","docs":"swagger-jsdoc -d docs/swagger.js src/routes/*.js -o docs/swagger.json","lint":"eslint src/","test":"npm run test:unit && npm run test:integration","audit":"npm audit","build":"npm run build:grammars","clean":"npm run clean:generated && npm run clean:dist && npm run clean:mcp","start":"node src/server.js","dev:mcp":"npm run build:mcp && nodemon dist/mcp/server.js","prepare":"npm run build || true","audit:ci":"audit-ci --config audit-ci.json","lint:fix":"eslint src/ --fix","prebuild":"npm run build:mcp","test:api":"jest --testPathPatterns=test/api","test:mcp":"npm run build:mcp && node test/mcp/test-mcp-integration.js","audit:fix":"npm audit fix","build:mcp":"tsc -p tsconfig.mcp.json","clean:mcp":"rm -rf dist/mcp","start:mcp":"npm run build:mcp && node dist/mcp/server.js","test:unit":"jest --testPathPatterns=test/unit --passWithNoTests","clean:dist":"rm -rf dist build","deps:check":"npx --yes npm-check-updates","docker:run":"docker run -p 8000:8000 mermaid-validator-mcp","preinstall":"npm run build:grammars || true","test:watch":"jest --watch","build:antlr":"node scripts/compile-grammars.js --antlr-only","build:jison":"node scripts/compile-grammars.js --jison-only","build:types":"node scripts/compile-grammars.js --types-only","deps:update":"npx --yes npm-check-updates -u","postinstall":"npm run build || true","test:upload":"node test/integration/upload-endpoints.js","dev:mcp-http":"npm run build:mcp && nodemon dist/mcp/server-http.js","docker:build":"docker build -t mermaid-validator-mcp .","build:langium":"node scripts/compile-grammars.js --langium-only","license:check":"npx --yes license-checker","security:full":"npm run audit && npm run security:snyk && npm run security:retire","security:snyk":"npx --yes snyk test","test:coverage":"jest --coverage","test:validate":"node test/integration/validate-endpoints.js","version:major":"node scripts/increment-version.js major","version:minor":"node scripts/increment-version.js minor","version:patch":"node scripts/increment-version.js patch","build:grammars":"node scripts/compile-grammars.js --jison-only","dev:mcp-secure":"npm run build:mcp && nodemon dist/mcp/server-secure.js","prepublishOnly":"npm run build:grammars && (npm run build:mcp || true)","start:mcp-http":"npm run build:mcp && node dist/mcp/server-http.js","clean:generated":"rm -rf src/generated","security:retire":"npx --yes retire","start:mcp-secure":"npm run build:mcp && node dist/mcp/server-secure.js","test:integration":"node test/integration/validate-endpoints.js && node test/integration/upload-endpoints.js","docker:build:auto":"npm run version:patch && make docker-build-manual"},"_npmUser":{"name":"user-ai-of-mine","email":"gregoriomomm@gmail.com"},"overrides":{"glob":"^13.0.0"},"repository":{"url":"git+https://github.com/ai-of-mine/fast-mermaid-validator-mcp.git","type":"git"},"_npmVersion":"11.3.0","description":"High-performance API and Model Context Protocol (MCP) server for validating Mermaid diagrams with comprehensive security features, multiple transport options, and enterprise-grade capabilities","directories":{},"_nodeVersion":"23.7.0","dependencies":{"joi":"^18.2.1","zod":"^4.4.3","cors":"^2.8.6","uuid":"^14.0.0","jison":"^0.4.18","yauzl":"^3.3.1","helmet":"^8.2.0","morgan":"^1.10.1","multer":"^2.1.1","express":"^5.2.1","langium":"^4.2.4","winston":"^3.19.0","chevrotain":"^12.0.0","mime-types":"^3.0.2","compression":"^1.8.1","express-validator":"^7.3.2","express-rate-limit":"^8.5.2","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","axios":"^1.16.1","eslint":"^9.39.4","globals":"^16.4.0","nodemon":"^3.1.14","audit-ci":"^7.1.0","form-data":"^4.0.5","supertest":"^7.2.2","@eslint/js":"^9.39.4","typescript":"~5.9.3","@types/node":"^25.9.1","@types/uuid":"^10.0.0","langium-cli":"^4.2.1","swagger-jsdoc":"^6.3.0","@types/express":"^5.0.6","swagger-ui-express":"^5.0.1","eslint-plugin-import":"^2.32.0"},"bundleDependencies":["jison"],"_npmOperationalInternal":{"tmp":"tmp/fast-mermaid-validator-mcp_1.3.1_1779911513480_0.23124957660793632","host":"s3://npm-registry-packages-npm-production"}},"1.3.2":{"name":"@ai-of-mine/fast-mermaid-validator-mcp","version":"1.3.2","keywords":["mermaid","mermaid-js","mermaid-validator","diagram-validation","mcp","model-context-protocol","claude","llm-tools","diagram","syntax-validation","flowchart","sequence-diagram","class-diagram","state-diagram","er-diagram","uml","project-management","documentation","markdown","ci-cd","testing","linting","typescript","nodejs","rest-api","headless","fast","high-performance","grammar-parsing","antlr","jison","langium","developer-tools"],"author":{"name":"Gregorio Elias Roecker Momm","email":"gregoriomomm@gmail.com"},"license":"Apache-2.0","_id":"@ai-of-mine/fast-mermaid-validator-mcp@1.3.2","maintainers":[{"name":"user-ai-of-mine","email":"gregoriomomm@gmail.com"}],"homepage":"https://github.com/ai-of-mine/fast-mermaid-validator-mcp#readme","bugs":{"url":"https://github.com/ai-of-mine/fast-mermaid-validator-mcp/issues"},"bin":{"fast-mermaid-validator-mcp":"src/server.js"},"dist":{"shasum":"bf85ad32f12958099428e12eb117901a7731b54e","tarball":"https://registry.npmjs.org/@ai-of-mine/fast-mermaid-validator-mcp/-/fast-mermaid-validator-mcp-1.3.2.tgz","fileCount":868,"integrity":"sha512-riuag+7T+k7dN3JlQ64vApTbO1lICvrN7oBpEOkU306KrQcc8oELu9zZ3iExixcSZXOwAnYNAMZOm9/NC5bEZQ==","signatures":[{"sig":"MEYCIQDl8OGxVi8n95AIu7MQ42heRhTbbfbSr4ZvdiN72UY0dgIhAPhPJjeaHIaFbQVIcCQJd3SfBSvB6QRmO1wSynJsFVSb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6652176},"main":"src/server.js","engines":{"npm":">=10.0.0","node":">=20.0.0"},"gitHead":"464761f13f5b63e29beee2ba8c5fb3b0f91256e2","scripts":{"dev":"nodemon src/server.js","docs":"swagger-jsdoc -d docs/swagger.js src/routes/*.js -o docs/swagger.json","lint":"eslint src/","test":"npm run test:unit && npm run test:integration","audit":"npm audit","build":"npm run build:grammars","clean":"npm run clean:generated && npm run clean:dist && npm run clean:mcp","start":"node src/server.js","dev:mcp":"npm run build:mcp && nodemon dist/mcp/server.js","prepare":"npm run build || true","audit:ci":"audit-ci --config audit-ci.json","lint:fix":"eslint src/ --fix","prebuild":"npm run build:mcp","test:api":"jest --testPathPatterns=test/api","test:mcp":"npm run build:mcp && node test/mcp/test-mcp-integration.js","audit:fix":"npm audit fix","build:mcp":"tsc -p tsconfig.mcp.json","clean:mcp":"rm -rf dist/mcp","start:mcp":"npm run build:mcp && node dist/mcp/server.js","test:unit":"jest --testPathPatterns=test/unit --passWithNoTests","clean:dist":"rm -rf dist build","deps:check":"npx --yes npm-check-updates","docker:run":"docker run -p 8000:8000 mermaid-validator-mcp","preinstall":"npm run build:grammars || true","test:watch":"jest --watch","build:antlr":"node scripts/compile-grammars.js --antlr-only","build:jison":"node scripts/compile-grammars.js --jison-only","build:types":"node scripts/compile-grammars.js --types-only","deps:update":"npx --yes npm-check-updates -u","postinstall":"npm run build || true","test:upload":"node test/integration/upload-endpoints.js","dev:mcp-http":"npm run build:mcp && nodemon dist/mcp/server-http.js","docker:build":"docker build -t mermaid-validator-mcp .","build:langium":"node scripts/compile-grammars.js --langium-only","license:check":"npx --yes license-checker","security:full":"npm run audit && npm run security:snyk && npm run security:retire","security:snyk":"npx --yes snyk test","test:coverage":"jest --coverage","test:validate":"node test/integration/validate-endpoints.js","version:major":"node scripts/increment-version.js major","version:minor":"node scripts/increment-version.js minor","version:patch":"node scripts/increment-version.js patch","build:grammars":"node scripts/compile-grammars.js --jison-only","dev:mcp-secure":"npm run build:mcp && nodemon dist/mcp/server-secure.js","prepublishOnly":"npm run build:grammars && (npm run build:mcp || true)","start:mcp-http":"npm run build:mcp && node dist/mcp/server-http.js","clean:generated":"rm -rf src/generated","security:retire":"npx --yes retire","start:mcp-secure":"npm run build:mcp && node dist/mcp/server-secure.js","test:integration":"node test/integration/validate-endpoints.js && node test/integration/upload-endpoints.js","docker:build:auto":"npm run version:patch && make docker-build-manual"},"_npmUser":{"name":"user-ai-of-mine","email":"gregoriomomm@gmail.com"},"overrides":{"glob":"^13.0.0"},"repository":{"url":"git+https://github.com/ai-of-mine/fast-mermaid-validator-mcp.git","type":"git"},"_npmVersion":"11.3.0","description":"High-performance API and Model Context Protocol (MCP) server for validating Mermaid diagrams with comprehensive security features, multiple transport options, and enterprise-grade capabilities","directories":{},"_nodeVersion":"23.7.0","dependencies":{"joi":"^18.2.1","zod":"^4.4.3","cors":"^2.8.6","uuid":"^14.0.0","jison":"^0.4.18","yauzl":"^3.3.1","helmet":"^8.2.0","morgan":"^1.10.1","multer":"^2.1.1","express":"^5.2.1","langium":"^4.2.4","winston":"^3.19.0","chevrotain":"^12.0.0","mime-types":"^3.0.2","compression":"^1.8.1","swagger-jsdoc":"^6.3.0","express-validator":"^7.3.2","express-rate-limit":"^8.5.2","swagger-ui-express":"^5.0.1","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","axios":"^1.16.1","eslint":"^9.39.4","globals":"^16.4.0","nodemon":"^3.1.14","audit-ci":"^7.1.0","form-data":"^4.0.5","supertest":"^7.2.2","@eslint/js":"^9.39.4","typescript":"~5.9.3","@types/node":"^25.9.1","@types/uuid":"^10.0.0","langium-cli":"^4.2.1","@types/express":"^5.0.6","eslint-plugin-import":"^2.32.0"},"bundleDependencies":["jison"],"_npmOperationalInternal":{"tmp":"tmp/fast-mermaid-validator-mcp_1.3.2_1779912320877_0.7816408430999002","host":"s3://npm-registry-packages-npm-production"}},"1.3.3":{"name":"@ai-of-mine/fast-mermaid-validator-mcp","version":"1.3.3","keywords":["mermaid","mermaid-js","mermaid-validator","diagram-validation","mcp","model-context-protocol","claude","llm-tools","diagram","syntax-validation","flowchart","sequence-diagram","class-diagram","state-diagram","er-diagram","uml","project-management","documentation","markdown","ci-cd","testing","linting","typescript","nodejs","rest-api","headless","fast","high-performance","grammar-parsing","antlr","jison","langium","developer-tools"],"author":{"name":"Gregorio Elias Roecker Momm","email":"gregoriomomm@gmail.com"},"license":"Apache-2.0","_id":"@ai-of-mine/fast-mermaid-validator-mcp@1.3.3","maintainers":[{"name":"user-ai-of-mine","email":"gregoriomomm@gmail.com"}],"homepage":"https://github.com/ai-of-mine/fast-mermaid-validator-mcp#readme","bugs":{"url":"https://github.com/ai-of-mine/fast-mermaid-validator-mcp/issues"},"bin":{"fast-mermaid-validator-mcp":"src/server.js"},"dist":{"shasum":"a6327e8f61aec7488e73c15004f2613524b6d89f","tarball":"https://registry.npmjs.org/@ai-of-mine/fast-mermaid-validator-mcp/-/fast-mermaid-validator-mcp-1.3.3.tgz","fileCount":868,"integrity":"sha512-/xa5DRkmeyHjcAxQhZ4qq+N/5rh5QOJCTbjm+VvqnmOkKaXa4QzOILsLkaHNsrBS7o5PkBJNX1B5P74aLevSaw==","signatures":[{"sig":"MEUCIQD2G8T+7WP4/Su1DuOVaUGDvbCUel/6JiB0kboriDN6oAIgOMBP8n+IBdleuwiCop0jFYRdxMiI7dJ/MR5KbY0QLaI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6653085},"main":"src/server.js","engines":{"npm":">=10.0.0","node":">=20.0.0"},"gitHead":"9edecd0d6eb3546c5bd5041e53749b3ee2f530e5","scripts":{"dev":"nodemon src/server.js","docs":"swagger-jsdoc -d docs/swagger.js src/routes/*.js -o docs/swagger.json","lint":"eslint src/","test":"npm run test:unit && npm run test:integration","audit":"npm audit","build":"npm run build:grammars","clean":"npm run clean:generated && npm run clean:dist && npm run clean:mcp","start":"node src/server.js","dev:mcp":"npm run build:mcp && nodemon dist/mcp/server.js","prepare":"npm run build || true","audit:ci":"audit-ci --config audit-ci.json","lint:fix":"eslint src/ --fix","prebuild":"npm run build:mcp","test:api":"jest --testPathPatterns=test/api","test:mcp":"npm run build:mcp && node test/mcp/test-mcp-integration.js","audit:fix":"npm audit fix","build:mcp":"tsc -p tsconfig.mcp.json","clean:mcp":"rm -rf dist/mcp","start:mcp":"npm run build:mcp && node dist/mcp/server.js","test:unit":"jest --testPathPatterns=test/unit --passWithNoTests","clean:dist":"rm -rf dist build","deps:check":"npx --yes npm-check-updates","docker:run":"docker run -p 8000:8000 mermaid-validator-mcp","preinstall":"npm run build:grammars || true","test:watch":"jest --watch","build:antlr":"node scripts/compile-grammars.js --antlr-only","build:jison":"node scripts/compile-grammars.js --jison-only","build:types":"node scripts/compile-grammars.js --types-only","deps:update":"npx --yes npm-check-updates -u","postinstall":"npm run build || true","test:upload":"node test/integration/upload-endpoints.js","dev:mcp-http":"npm run build:mcp && nodemon dist/mcp/server-http.js","docker:build":"docker build -t mermaid-validator-mcp .","build:langium":"node scripts/compile-grammars.js --langium-only","license:check":"npx --yes license-checker","security:full":"npm run audit && npm run security:snyk && npm run security:retire","security:snyk":"npx --yes snyk test","test:coverage":"jest --coverage","test:validate":"node test/integration/validate-endpoints.js","version:major":"node scripts/increment-version.js major","version:minor":"node scripts/increment-version.js minor","version:patch":"node scripts/increment-version.js patch","build:grammars":"node scripts/compile-grammars.js --jison-only","dev:mcp-secure":"npm run build:mcp && nodemon dist/mcp/server-secure.js","prepublishOnly":"npm run build:grammars && (npm run build:mcp || true)","start:mcp-http":"npm run build:mcp && node dist/mcp/server-http.js","clean:generated":"rm -rf src/generated","security:retire":"npx --yes retire","start:mcp-secure":"npm run build:mcp && node dist/mcp/server-secure.js","test:integration":"node test/integration/validate-endpoints.js && node test/integration/upload-endpoints.js","docker:build:auto":"npm run version:patch && make docker-build-manual"},"_npmUser":{"name":"user-ai-of-mine","email":"gregoriomomm@gmail.com"},"overrides":{"glob":"^13.0.0"},"repository":{"url":"git+https://github.com/ai-of-mine/fast-mermaid-validator-mcp.git","type":"git"},"_npmVersion":"11.3.0","description":"High-performance API and Model Context Protocol (MCP) server for validating Mermaid diagrams with comprehensive security features, multiple transport options, and enterprise-grade capabilities","directories":{},"_nodeVersion":"23.7.0","dependencies":{"joi":"^18.2.1","zod":"^4.4.3","cors":"^2.8.6","uuid":"^14.0.0","jison":"^0.4.18","yauzl":"^3.3.1","helmet":"^8.2.0","morgan":"^1.10.1","multer":"^2.1.1","express":"^5.2.1","langium":"^4.2.4","winston":"^3.19.0","chevrotain":"^12.0.0","mime-types":"^3.0.2","compression":"^1.8.1","swagger-jsdoc":"^6.3.0","express-validator":"^7.3.2","express-rate-limit":"^8.5.2","swagger-ui-express":"^5.0.1","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","axios":"^1.16.1","eslint":"^9.39.4","globals":"^16.4.0","nodemon":"^3.1.14","audit-ci":"^7.1.0","form-data":"^4.0.5","supertest":"^7.2.2","@eslint/js":"^9.39.4","typescript":"~5.9.3","@types/node":"^25.9.1","@types/uuid":"^10.0.0","langium-cli":"^4.2.1","@types/express":"^5.0.6","eslint-plugin-import":"^2.32.0"},"bundleDependencies":["jison"],"_npmOperationalInternal":{"tmp":"tmp/fast-mermaid-validator-mcp_1.3.3_1779925226569_0.8075282975163485","host":"s3://npm-registry-packages-npm-production"}},"1.3.4":{"name":"@ai-of-mine/fast-mermaid-validator-mcp","version":"1.3.4","keywords":["mermaid","mermaid-js","mermaid-validator","diagram-validation","mcp","model-context-protocol","claude","llm-tools","diagram","syntax-validation","flowchart","sequence-diagram","class-diagram","state-diagram","er-diagram","uml","project-management","documentation","markdown","ci-cd","testing","linting","typescript","nodejs","rest-api","headless","fast","high-performance","grammar-parsing","antlr","jison","langium","developer-tools"],"author":{"name":"Gregorio Elias Roecker Momm","email":"gregoriomomm@gmail.com"},"license":"Apache-2.0","_id":"@ai-of-mine/fast-mermaid-validator-mcp@1.3.4","maintainers":[{"name":"user-ai-of-mine","email":"gregoriomomm@gmail.com"}],"homepage":"https://github.com/ai-of-mine/fast-mermaid-validator-mcp#readme","bugs":{"url":"https://github.com/ai-of-mine/fast-mermaid-validator-mcp/issues"},"bin":{"fast-mermaid-validator-mcp":"src/server.js"},"dist":{"shasum":"d92c2f6379cf59f4d00f4be6d0f52288c0697df5","tarball":"https://registry.npmjs.org/@ai-of-mine/fast-mermaid-validator-mcp/-/fast-mermaid-validator-mcp-1.3.4.tgz","fileCount":868,"integrity":"sha512-bTwypIpNiAZQlI9ETM97LNWAW8rEV24Bu0p1HJfZ0UUGspfltanYhMP15NUcmwixv4Hu948Y9jHhRyrG/7blkw==","signatures":[{"sig":"MEUCIQC/cRz6lFVcWp/ud4+5AIJjN9W0QqpDTSTpubo+vI4OnQIgFdFT7/fEtXr/ORPryo7VibNf7MjkcojgEeAowMpSS78=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6653416},"main":"src/server.js","engines":{"npm":">=10.0.0","node":">=20.0.0"},"gitHead":"c84db76a0ed5b9c86dce5494dc3fa638085e7bd8","scripts":{"dev":"nodemon src/server.js","docs":"swagger-jsdoc -d docs/swagger.js src/routes/*.js -o docs/swagger.json","lint":"eslint src/","test":"npm run test:unit && npm run test:integration","audit":"npm audit","build":"npm run build:grammars","clean":"npm run clean:generated && npm run clean:dist && npm run clean:mcp","start":"node src/server.js","dev:mcp":"npm run build:mcp && nodemon dist/mcp/server.js","prepare":"npm run build || true","audit:ci":"audit-ci --config audit-ci.json","lint:fix":"eslint src/ --fix","prebuild":"npm run build:mcp","test:api":"jest --testPathPatterns=test/api","test:mcp":"npm run build:mcp && node test/mcp/test-mcp-integration.js","audit:fix":"npm audit fix","build:mcp":"tsc -p tsconfig.mcp.json","clean:mcp":"rm -rf dist/mcp","start:mcp":"npm run build:mcp && node dist/mcp/server.js","test:unit":"jest --testPathPatterns=test/unit --passWithNoTests","clean:dist":"rm -rf dist build","deps:check":"npx --yes npm-check-updates","docker:run":"docker run -p 8000:8000 mermaid-validator-mcp","preinstall":"npm run build:grammars || true","test:watch":"jest --watch","build:antlr":"node scripts/compile-grammars.js --antlr-only","build:jison":"node scripts/compile-grammars.js --jison-only","build:types":"node scripts/compile-grammars.js --types-only","deps:update":"npx --yes npm-check-updates -u","postinstall":"npm run build || true","test:upload":"node test/integration/upload-endpoints.js","dev:mcp-http":"npm run build:mcp && nodemon dist/mcp/server-http.js","docker:build":"docker build -t mermaid-validator-mcp .","build:langium":"node scripts/compile-grammars.js --langium-only","license:check":"npx --yes license-checker","security:full":"npm run audit && npm run security:snyk && npm run security:retire","security:snyk":"npx --yes snyk test","test:coverage":"jest --coverage","test:validate":"node test/integration/validate-endpoints.js","version:major":"node scripts/increment-version.js major","version:minor":"node scripts/increment-version.js minor","version:patch":"node scripts/increment-version.js patch","build:grammars":"node scripts/compile-grammars.js --jison-only","dev:mcp-secure":"npm run build:mcp && nodemon dist/mcp/server-secure.js","prepublishOnly":"npm run build:grammars && (npm run build:mcp || true)","start:mcp-http":"npm run build:mcp && node dist/mcp/server-http.js","clean:generated":"rm -rf src/generated","security:retire":"npx --yes retire","start:mcp-secure":"npm run build:mcp && node dist/mcp/server-secure.js","test:integration":"node test/integration/validate-endpoints.js && node test/integration/upload-endpoints.js","docker:build:auto":"npm run version:patch && make docker-build-manual"},"_npmUser":{"name":"user-ai-of-mine","email":"gregoriomomm@gmail.com"},"overrides":{"glob":"^13.0.0"},"repository":{"url":"git+https://github.com/ai-of-mine/fast-mermaid-validator-mcp.git","type":"git"},"_npmVersion":"11.3.0","description":"High-performance API and Model Context Protocol (MCP) server for validating Mermaid diagrams with comprehensive security features, multiple transport options, and enterprise-grade capabilities","directories":{},"_nodeVersion":"23.7.0","dependencies":{"joi":"^18.2.1","zod":"^4.4.3","cors":"^2.8.6","uuid":"^14.0.0","jison":"^0.4.18","yauzl":"^3.3.1","helmet":"^8.2.0","morgan":"^1.10.1","multer":"^2.1.1","express":"^5.2.1","langium":"^4.2.4","winston":"^3.19.0","chevrotain":"^12.0.0","mime-types":"^3.0.2","compression":"^1.8.1","swagger-jsdoc":"^6.3.0","express-validator":"^7.3.2","express-rate-limit":"^8.5.2","swagger-ui-express":"^5.0.1","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","axios":"^1.16.1","eslint":"^9.39.4","globals":"^16.4.0","nodemon":"^3.1.14","audit-ci":"^7.1.0","form-data":"^4.0.5","supertest":"^7.2.2","@eslint/js":"^9.39.4","typescript":"~5.9.3","@types/node":"^25.9.1","@types/uuid":"^10.0.0","langium-cli":"^4.2.1","@types/express":"^5.0.6","eslint-plugin-import":"^2.32.0"},"bundleDependencies":["jison"],"_npmOperationalInternal":{"tmp":"tmp/fast-mermaid-validator-mcp_1.3.4_1779925859589_0.10210801427582306","host":"s3://npm-registry-packages-npm-production"}},"1.3.6":{"name":"@ai-of-mine/fast-mermaid-validator-mcp","version":"1.3.6","keywords":["mermaid","mermaid-js","mermaid-validator","diagram-validation","mcp","model-context-protocol","claude","llm-tools","diagram","syntax-validation","flowchart","sequence-diagram","class-diagram","state-diagram","er-diagram","uml","project-management","documentation","markdown","ci-cd","testing","linting","typescript","nodejs","rest-api","headless","fast","high-performance","grammar-parsing","antlr","jison","langium","developer-tools"],"author":{"name":"Gregorio Elias Roecker Momm","email":"gregoriomomm@gmail.com"},"license":"Apache-2.0","_id":"@ai-of-mine/fast-mermaid-validator-mcp@1.3.6","maintainers":[{"name":"user-ai-of-mine","email":"gregoriomomm@gmail.com"}],"homepage":"https://github.com/ai-of-mine/fast-mermaid-validator-mcp#readme","bugs":{"url":"https://github.com/ai-of-mine/fast-mermaid-validator-mcp/issues"},"bin":{"fast-mermaid-validator-mcp":"src/server.js"},"dist":{"shasum":"34e207525c9646a3c707ff5406f51d38b24af8ec","tarball":"https://registry.npmjs.org/@ai-of-mine/fast-mermaid-validator-mcp/-/fast-mermaid-validator-mcp-1.3.6.tgz","fileCount":869,"integrity":"sha512-qLzbBOVCmpMYMhM81Fd2Pz5g5ujHNpi4LqG+Sfv0vs8KOmdPLqsiCnZTPsYchEE9WiWYfPXwc6enXX8kqshp1Q==","signatures":[{"sig":"MEUCIHFkEhaJDMhB3Ozi2oVhrMXtJCc7pEjfqfag9Mc+uC/TAiEAqx1QK3iT+Wg/koPTQ38p3keEjIv9TwUQmeryC1FytGY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6657991},"main":"src/server.js","engines":{"npm":">=10.0.0","node":">=20.0.0"},"gitHead":"b5364634d44aaff3346d05184285e4a4e42e435d","scripts":{"dev":"nodemon src/server.js","docs":"swagger-jsdoc -d docs/swagger.js src/routes/*.js -o docs/swagger.json","lint":"eslint src/","test":"npm run test:unit && npm run test:integration","audit":"npm audit","build":"npm run build:grammars","clean":"npm run clean:generated && npm run clean:dist && npm run clean:mcp","start":"node src/server.js","dev:mcp":"npm run build:mcp && nodemon dist/mcp/server.js","prepare":"npm run build || true","audit:ci":"audit-ci --config audit-ci.json","lint:fix":"eslint src/ --fix","prebuild":"npm run build:mcp","test:api":"jest --testPathPatterns=test/api","test:mcp":"npm run build:mcp && node test/mcp/test-mcp-integration.js","audit:fix":"npm audit fix","build:mcp":"tsc -p tsconfig.mcp.json","clean:mcp":"rm -rf dist/mcp","start:mcp":"npm run build:mcp && node dist/mcp/server.js","test:unit":"jest --testPathPatterns=test/unit --passWithNoTests","clean:dist":"rm -rf dist build","deps:check":"npx --yes npm-check-updates","docker:run":"docker run -p 8000:8000 mermaid-validator-mcp","preinstall":"npm run build:grammars || true","test:watch":"jest --watch","build:antlr":"node scripts/compile-grammars.js --antlr-only","build:jison":"node scripts/compile-grammars.js --jison-only","build:types":"node scripts/compile-grammars.js --types-only","deps:update":"npx --yes npm-check-updates -u","postinstall":"npm run build || true","test:upload":"node test/integration/upload-endpoints.js","dev:mcp-http":"npm run build:mcp && nodemon dist/mcp/server-http.js","docker:build":"docker build -t mermaid-validator-mcp .","build:langium":"node scripts/compile-grammars.js --langium-only","license:check":"npx --yes license-checker","security:full":"npm run audit && npm run security:snyk && npm run security:retire","security:snyk":"npx --yes snyk test","test:coverage":"jest --coverage","test:validate":"node test/integration/validate-endpoints.js","version:major":"node scripts/increment-version.js major","version:minor":"node scripts/increment-version.js minor","version:patch":"node scripts/increment-version.js patch","build:grammars":"node scripts/compile-grammars.js --jison-only","dev:mcp-secure":"npm run build:mcp && nodemon dist/mcp/server-secure.js","prepublishOnly":"npm run build:grammars && (npm run build:mcp || true)","start:mcp-http":"npm run build:mcp && node dist/mcp/server-http.js","clean:generated":"rm -rf src/generated","security:retire":"npx --yes retire","start:mcp-secure":"npm run build:mcp && node dist/mcp/server-secure.js","test:integration":"node test/integration/validate-endpoints.js && node test/integration/upload-endpoints.js","docker:build:auto":"npm run version:patch && make docker-build-manual"},"_npmUser":{"name":"user-ai-of-mine","email":"gregoriomomm@gmail.com"},"overrides":{"glob":"^13.0.0"},"repository":{"url":"git+https://github.com/ai-of-mine/fast-mermaid-validator-mcp.git","type":"git"},"_npmVersion":"11.7.0","description":"High-performance API and Model Context Protocol (MCP) server for validating Mermaid diagrams with comprehensive security features, multiple transport options, and enterprise-grade capabilities","directories":{},"_nodeVersion":"25.3.0","dependencies":{"joi":"^18.2.1","zod":"^4.4.3","cors":"^2.8.6","uuid":"^14.0.0","jison":"^0.4.18","yauzl":"^3.3.1","helmet":"^8.2.0","morgan":"^1.10.1","multer":"^2.1.1","express":"^5.2.1","langium":"^4.2.4","winston":"^3.19.0","chevrotain":"^12.0.0","mime-types":"^3.0.2","compression":"^1.8.1","swagger-jsdoc":"^6.3.0","express-validator":"^7.3.2","express-rate-limit":"^8.5.2","swagger-ui-express":"^5.0.1","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","axios":"^1.16.1","eslint":"^9.39.4","globals":"^16.4.0","nodemon":"^3.1.14","audit-ci":"^7.1.0","form-data":"^4.0.5","supertest":"^7.2.2","@eslint/js":"^9.39.4","typescript":"~5.9.3","@types/node":"^25.9.1","@types/uuid":"^10.0.0","langium-cli":"^4.2.1","@types/express":"^5.0.6","eslint-plugin-import":"^2.32.0"},"bundleDependencies":["jison"],"_npmOperationalInternal":{"tmp":"tmp/fast-mermaid-validator-mcp_1.3.6_1779928211197_0.6113911140311006","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@ai-of-mine/fast-mermaid-validator-mcp","version":"1.4.0","keywords":["mermaid","mermaid-js","mermaid-validator","diagram-validation","mcp","model-context-protocol","claude","llm-tools","diagram","syntax-validation","flowchart","sequence-diagram","class-diagram","state-diagram","er-diagram","uml","project-management","documentation","markdown","ci-cd","testing","linting","typescript","nodejs","rest-api","headless","fast","high-performance","grammar-parsing","antlr","jison","langium","developer-tools"],"author":{"name":"Gregorio Elias Roecker Momm","email":"gregoriomomm@gmail.com"},"license":"Apache-2.0","_id":"@ai-of-mine/fast-mermaid-validator-mcp@1.4.0","maintainers":[{"name":"user-ai-of-mine","email":"gregoriomomm@gmail.com"}],"homepage":"https://github.com/ai-of-mine/fast-mermaid-validator-mcp#readme","bugs":{"url":"https://github.com/ai-of-mine/fast-mermaid-validator-mcp/issues"},"bin":{"fast-mermaid-validator-mcp":"src/server.js"},"dist":{"shasum":"23766eab2861fc087929cb0ea9bb6357f93171cb","tarball":"https://registry.npmjs.org/@ai-of-mine/fast-mermaid-validator-mcp/-/fast-mermaid-validator-mcp-1.4.0.tgz","fileCount":869,"integrity":"sha512-Bl8u7YVWv618faTNmz+yIVzanCHZivN4BNKJYZXiHlzd+4j8YqgQLy7vu450AcP5xp7nkh94E4fiMj0TfRNnsQ==","signatures":[{"sig":"MEUCIAymHOMLYzQ8TSL/3kbvE3Xjr2vVdwJfMC3cg9iH17MuAiEA/3ibwsb+6fTEq/rhH2pZerbw6ITqX2olnkU4qbscrb4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6687521},"main":"src/server.js","engines":{"npm":">=10.0.0","node":">=20.0.0"},"gitHead":"f214cd82128cecec743426330b9a3aabf2378834","scripts":{"dev":"nodemon src/server.js","docs":"swagger-jsdoc -d docs/swagger.js src/routes/*.js -o docs/swagger.json","lint":"eslint src/","test":"npm run test:unit && npm run test:integration && npm run test:regression","audit":"npm audit","build":"npm run build:grammars","clean":"npm run clean:generated && npm run clean:dist && npm run clean:mcp","start":"node src/server.js","dev:mcp":"npm run build:mcp && nodemon dist/mcp/server.js","prepare":"npm run build || true","audit:ci":"audit-ci --config audit-ci.json","lint:fix":"eslint src/ --fix","prebuild":"npm run build:mcp","test:api":"jest --testPathPatterns=test/api","test:mcp":"npm run build:mcp && node test/mcp/test-mcp-integration.js","audit:fix":"npm audit fix","build:mcp":"tsc -p tsconfig.mcp.json","clean:mcp":"rm -rf dist/mcp","start:mcp":"npm run build:mcp && node dist/mcp/server.js","test:unit":"jest --testPathPatterns=test/unit --passWithNoTests","clean:dist":"rm -rf dist build","deps:check":"npx --yes npm-check-updates","docker:run":"docker run -p 8000:8000 mermaid-validator-mcp","preinstall":"npm run build:grammars || true","test:watch":"jest --watch","build:antlr":"node scripts/compile-grammars.js --antlr-only","build:jison":"node scripts/compile-grammars.js --jison-only","build:types":"node scripts/compile-grammars.js --types-only","deps:update":"npx --yes npm-check-updates -u","postinstall":"npm run build || true","test:upload":"node test/integration/upload-endpoints.js","dev:mcp-http":"npm run build:mcp && nodemon dist/mcp/server-http.js","docker:build":"docker build -t mermaid-validator-mcp .","build:langium":"node scripts/compile-grammars.js --langium-only","license:check":"npx --yes license-checker","security:full":"npm run audit && npm run security:snyk && npm run security:retire","security:snyk":"npx --yes snyk test","test:coverage":"jest --coverage","test:validate":"node test/integration/validate-endpoints.js","version:major":"node scripts/increment-version.js major","version:minor":"node scripts/increment-version.js minor","version:patch":"node scripts/increment-version.js patch","build:grammars":"node scripts/compile-grammars.js --jison-only","dev:mcp-secure":"npm run build:mcp && nodemon dist/mcp/server-secure.js","prepublishOnly":"npm run build:grammars && (npm run build:mcp || true)","start:mcp-http":"npm run build:mcp && node dist/mcp/server-http.js","clean:generated":"rm -rf src/generated","security:retire":"npx --yes retire","test:regression":"node test/regression/v1.4.0-bugfixes.test.js","start:mcp-secure":"npm run build:mcp && node dist/mcp/server-secure.js","test:integration":"node test/integration/validate-endpoints.js && node test/integration/upload-endpoints.js","docker:build:auto":"npm run version:patch && make docker-build-manual"},"_npmUser":{"name":"user-ai-of-mine","email":"gregoriomomm@gmail.com"},"overrides":{"glob":"^13.0.0"},"repository":{"url":"git+https://github.com/ai-of-mine/fast-mermaid-validator-mcp.git","type":"git"},"_npmVersion":"11.3.0","description":"High-performance API and Model Context Protocol (MCP) server for validating Mermaid diagrams with comprehensive security features, multiple transport options, and enterprise-grade capabilities","directories":{},"_nodeVersion":"23.7.0","dependencies":{"joi":"^18.2.1","zod":"^4.4.3","cors":"^2.8.6","uuid":"^14.0.0","jison":"^0.4.18","yauzl":"^3.3.1","helmet":"^8.2.0","morgan":"^1.10.1","multer":"^2.1.1","express":"^5.2.1","langium":"^4.2.4","winston":"^3.19.0","chevrotain":"^12.0.0","mime-types":"^3.0.2","compression":"^1.8.1","swagger-jsdoc":"^6.3.0","express-validator":"^7.3.2","express-rate-limit":"^8.5.2","swagger-ui-express":"^5.0.1","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","axios":"^1.16.1","eslint":"^9.39.4","globals":"^16.4.0","nodemon":"^3.1.14","audit-ci":"^7.1.0","form-data":"^4.0.5","supertest":"^7.2.2","@eslint/js":"^9.39.4","typescript":"~5.9.3","@types/node":"^25.9.1","@types/uuid":"^10.0.0","langium-cli":"^4.2.1","@types/express":"^5.0.6","eslint-plugin-import":"^2.32.0"},"bundleDependencies":["jison"],"_npmOperationalInternal":{"tmp":"tmp/fast-mermaid-validator-mcp_1.4.0_1779994986938_0.31130617413892114","host":"s3://npm-registry-packages-npm-production"}},"1.4.1":{"name":"@ai-of-mine/fast-mermaid-validator-mcp","version":"1.4.1","keywords":["mermaid","mermaid-js","mermaid-validator","diagram-validation","mcp","model-context-protocol","claude","llm-tools","diagram","syntax-validation","flowchart","sequence-diagram","class-diagram","state-diagram","er-diagram","uml","project-management","documentation","markdown","ci-cd","testing","linting","typescript","nodejs","rest-api","headless","fast","high-performance","grammar-parsing","antlr","jison","langium","developer-tools"],"author":{"name":"Gregorio Elias Roecker Momm","email":"gregoriomomm@gmail.com"},"license":"Apache-2.0","_id":"@ai-of-mine/fast-mermaid-validator-mcp@1.4.1","maintainers":[{"name":"user-ai-of-mine","email":"gregoriomomm@gmail.com"}],"homepage":"https://github.com/ai-of-mine/fast-mermaid-validator-mcp#readme","bugs":{"url":"https://github.com/ai-of-mine/fast-mermaid-validator-mcp/issues"},"bin":{"fast-mermaid-validator-mcp":"src/server.js"},"dist":{"shasum":"479f2722da9e1ff023a0021e165371304503b15e","tarball":"https://registry.npmjs.org/@ai-of-mine/fast-mermaid-validator-mcp/-/fast-mermaid-validator-mcp-1.4.1.tgz","fileCount":869,"integrity":"sha512-PwAQnIw3PzeXziI3DIWkheGEmmmroxLKRNafrwrvy/A2vGL8YLdxmBtsUo7wSXzpyRtKXvt3DuAeamKuxvYG4w==","signatures":[{"sig":"MEUCIQDGVK1sgHrsTV7Wr2YT5/URtIEN4X8d505fOyalTA/c3QIgPP2ButDPboBWdkykXH1dLOZyUbzH/45TnrrjO49+N7o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6687821},"main":"src/server.js","engines":{"npm":">=10.0.0","node":">=20.0.0"},"gitHead":"f1e58057df1c9df4d73467a61e3256f4aa0db9bb","scripts":{"dev":"nodemon src/server.js","docs":"swagger-jsdoc -d docs/swagger.js src/routes/*.js -o docs/swagger.json","lint":"eslint src/","test":"npm run test:unit && npm run test:integration && npm run test:regression","audit":"npm audit","build":"npm run build:grammars","clean":"npm run clean:generated && npm run clean:dist && npm run clean:mcp","start":"node src/server.js","dev:mcp":"npm run build:mcp && nodemon dist/mcp/server.js","prepare":"npm run build || true","audit:ci":"audit-ci --config audit-ci.json","lint:fix":"eslint src/ --fix","prebuild":"npm run build:mcp","test:api":"jest --testPathPatterns=test/api","test:mcp":"npm run build:mcp && node test/mcp/test-mcp-integration.js","audit:fix":"npm audit fix","build:mcp":"tsc -p tsconfig.mcp.json","clean:mcp":"rm -rf dist/mcp","start:mcp":"npm run build:mcp && node dist/mcp/server.js","test:unit":"jest --testPathPatterns=test/unit --passWithNoTests","clean:dist":"rm -rf dist build","deps:check":"npx --yes npm-check-updates","docker:run":"docker run -p 8000:8000 mermaid-validator-mcp","preinstall":"npm run build:grammars || true","test:watch":"jest --watch","build:antlr":"node scripts/compile-grammars.js --antlr-only","build:jison":"node scripts/compile-grammars.js --jison-only","build:types":"node scripts/compile-grammars.js --types-only","deps:update":"npx --yes npm-check-updates -u","postinstall":"npm run build || true","test:upload":"node test/integration/upload-endpoints.js","dev:mcp-http":"npm run build:mcp && nodemon dist/mcp/server-http.js","docker:build":"docker build -t mermaid-validator-mcp .","build:langium":"node scripts/compile-grammars.js --langium-only","license:check":"npx --yes license-checker","security:full":"npm run audit && npm run security:snyk && npm run security:retire","security:snyk":"npx --yes snyk test","test:coverage":"jest --coverage","test:validate":"node test/integration/validate-endpoints.js","version:major":"node scripts/increment-version.js major","version:minor":"node scripts/increment-version.js minor","version:patch":"node scripts/increment-version.js patch","build:grammars":"node scripts/compile-grammars.js --jison-only","dev:mcp-secure":"npm run build:mcp && nodemon dist/mcp/server-secure.js","prepublishOnly":"npm run build:grammars && (npm run build:mcp || true)","start:mcp-http":"npm run build:mcp && node dist/mcp/server-http.js","clean:generated":"rm -rf src/generated","security:retire":"npx --yes retire","test:regression":"node test/regression/v1.4.0-bugfixes.test.js","start:mcp-secure":"npm run build:mcp && node dist/mcp/server-secure.js","test:integration":"node test/integration/validate-endpoints.js && node test/integration/upload-endpoints.js","docker:build:auto":"npm run version:patch && make docker-build-manual"},"_npmUser":{"name":"user-ai-of-mine","email":"gregoriomomm@gmail.com"},"overrides":{"glob":"^13.0.0"},"repository":{"url":"git+https://github.com/ai-of-mine/fast-mermaid-validator-mcp.git","type":"git"},"_npmVersion":"11.3.0","description":"High-performance API and Model Context Protocol (MCP) server for validating Mermaid diagrams with comprehensive security features, multiple transport options, and enterprise-grade capabilities","directories":{},"_nodeVersion":"23.7.0","dependencies":{"joi":"^18.2.1","zod":"^4.4.3","cors":"^2.8.6","uuid":"^14.0.0","jison":"^0.4.18","yauzl":"^3.3.1","helmet":"^8.2.0","morgan":"^1.10.1","multer":"^2.1.1","express":"^5.2.1","langium":"^4.2.4","winston":"^3.19.0","chevrotain":"^12.0.0","mime-types":"^3.0.2","compression":"^1.8.1","swagger-jsdoc":"^6.3.0","express-validator":"^7.3.2","express-rate-limit":"^8.5.2","swagger-ui-express":"^5.0.1","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","axios":"^1.16.1","eslint":"^9.39.4","globals":"^16.4.0","nodemon":"^3.1.14","audit-ci":"^7.1.0","form-data":"^4.0.5","supertest":"^7.2.2","@eslint/js":"^9.39.4","typescript":"~5.9.3","@types/node":"^25.9.1","@types/uuid":"^10.0.0","langium-cli":"^4.2.1","@types/express":"^5.0.6","eslint-plugin-import":"^2.32.0"},"bundleDependencies":["jison"],"_npmOperationalInternal":{"tmp":"tmp/fast-mermaid-validator-mcp_1.4.1_1779995404768_0.7023764187850476","host":"s3://npm-registry-packages-npm-production"}},"1.4.2":{"name":"@ai-of-mine/fast-mermaid-validator-mcp","version":"1.4.2","keywords":["mermaid","mermaid-js","mermaid-validator","diagram-validation","mcp","model-context-protocol","claude","llm-tools","diagram","syntax-validation","flowchart","sequence-diagram","class-diagram","state-diagram","er-diagram","uml","project-management","documentation","markdown","ci-cd","testing","linting","typescript","nodejs","rest-api","headless","fast","high-performance","grammar-parsing","antlr","jison","langium","developer-tools"],"author":{"name":"Gregorio Elias Roecker Momm","email":"gregoriomomm@gmail.com"},"license":"Apache-2.0","_id":"@ai-of-mine/fast-mermaid-validator-mcp@1.4.2","maintainers":[{"name":"user-ai-of-mine","email":"gregoriomomm@gmail.com"}],"homepage":"https://github.com/ai-of-mine/fast-mermaid-validator-mcp#readme","bugs":{"url":"https://github.com/ai-of-mine/fast-mermaid-validator-mcp/issues"},"bin":{"fast-mermaid-validator-mcp":"src/server.js"},"dist":{"shasum":"5d85bccad979cac292ff45eeca566cd72c4228fe","tarball":"https://registry.npmjs.org/@ai-of-mine/fast-mermaid-validator-mcp/-/fast-mermaid-validator-mcp-1.4.2.tgz","fileCount":869,"integrity":"sha512-c6DYFpew8ruD2lnsQf+ZdSQAR0aYXOt5rVn28HFL++Ynqnl83q0ayA2bT+DHoity8FLqh9NKseAl/gMgyVw8+A==","signatures":[{"sig":"MEYCIQDdGEAkW2U2qjpn7zrcZnlYLCX2xadpwbkhBrAYEnh2sQIhAMhyt9BxDkh9kDP8cWFXe8aDss0CzLg2eG8RtpNwiO7j","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6688007},"main":"src/server.js","engines":{"npm":">=10.0.0","node":">=20.0.0"},"gitHead":"85a84efb2385a98a0b8f3f8bea52026dc4433107","scripts":{"dev":"nodemon src/server.js","docs":"swagger-jsdoc -d docs/swagger.js src/routes/*.js -o docs/swagger.json","lint":"eslint src/","test":"npm run test:unit && npm run test:integration && npm run test:regression","audit":"npm audit","build":"npm run build:grammars","clean":"npm run clean:generated && npm run clean:dist && npm run clean:mcp","start":"node src/server.js","dev:mcp":"npm run build:mcp && nodemon dist/mcp/server.js","prepare":"npm run build || true","audit:ci":"audit-ci --config audit-ci.json","lint:fix":"eslint src/ --fix","prebuild":"npm run build:mcp","test:api":"jest --testPathPatterns=test/api","test:mcp":"npm run build:mcp && node test/mcp/test-mcp-integration.js","audit:fix":"npm audit fix","build:mcp":"tsc -p tsconfig.mcp.json","clean:mcp":"rm -rf dist/mcp","start:mcp":"npm run build:mcp && node dist/mcp/server.js","test:full":"node test/regression/full-coverage.test.js","test:unit":"jest --testPathPatterns=test/unit --passWithNoTests","clean:dist":"rm -rf dist build","deps:check":"npx --yes npm-check-updates","docker:run":"docker run -p 8000:8000 mermaid-validator-mcp","preinstall":"npm run build:grammars || true","test:watch":"jest --watch","build:antlr":"node scripts/compile-grammars.js --antlr-only","build:jison":"node scripts/compile-grammars.js --jison-only","build:types":"node scripts/compile-grammars.js --types-only","deps:update":"npx --yes npm-check-updates -u","postinstall":"npm run build || true","test:upload":"node test/integration/upload-endpoints.js","dev:mcp-http":"npm run build:mcp && nodemon dist/mcp/server-http.js","docker:build":"docker build -t mermaid-validator-mcp .","build:langium":"node scripts/compile-grammars.js --langium-only","license:check":"npx --yes license-checker","security:full":"npm run audit && npm run security:snyk && npm run security:retire","security:snyk":"npx --yes snyk test","test:coverage":"jest --coverage","test:validate":"node test/integration/validate-endpoints.js","version:major":"node scripts/increment-version.js major","version:minor":"node scripts/increment-version.js minor","version:patch":"node scripts/increment-version.js patch","build:grammars":"node scripts/compile-grammars.js --jison-only","dev:mcp-secure":"npm run build:mcp && nodemon dist/mcp/server-secure.js","prepublishOnly":"npm run build:grammars && (npm run build:mcp || true)","start:mcp-http":"npm run build:mcp && node dist/mcp/server-http.js","clean:generated":"rm -rf src/generated","security:retire":"npx --yes retire","test:regression":"node test/regression/v1.4.0-bugfixes.test.js","start:mcp-secure":"npm run build:mcp && node dist/mcp/server-secure.js","test:integration":"node test/integration/validate-endpoints.js && node test/integration/upload-endpoints.js","docker:build:auto":"npm run version:patch && make docker-build-manual"},"_npmUser":{"name":"user-ai-of-mine","email":"gregoriomomm@gmail.com"},"overrides":{"glob":"^13.0.0"},"repository":{"url":"git+https://github.com/ai-of-mine/fast-mermaid-validator-mcp.git","type":"git"},"_npmVersion":"11.3.0","description":"High-performance API and Model Context Protocol (MCP) server for validating Mermaid diagrams with comprehensive security features, multiple transport options, and enterprise-grade capabilities","directories":{},"_nodeVersion":"23.7.0","dependencies":{"joi":"^18.2.1","zod":"^4.4.3","cors":"^2.8.6","uuid":"^14.0.0","jison":"^0.4.18","yauzl":"^3.3.1","helmet":"^8.2.0","morgan":"^1.10.1","multer":"^2.1.1","express":"^5.2.1","langium":"^4.2.4","winston":"^3.19.0","chevrotain":"^12.0.0","mime-types":"^3.0.2","compression":"^1.8.1","swagger-jsdoc":"^6.3.0","express-validator":"^7.3.2","express-rate-limit":"^8.5.2","swagger-ui-express":"^5.0.1","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","axios":"^1.16.1","eslint":"^9.39.4","globals":"^16.4.0","nodemon":"^3.1.14","audit-ci":"^7.1.0","form-data":"^4.0.5","supertest":"^7.2.2","@eslint/js":"^9.39.4","typescript":"~5.9.3","@types/node":"^25.9.1","@types/uuid":"^10.0.0","langium-cli":"^4.2.1","@types/express":"^5.0.6","eslint-plugin-import":"^2.32.0"},"bundleDependencies":["jison"],"_npmOperationalInternal":{"tmp":"tmp/fast-mermaid-validator-mcp_1.4.2_1779996293140_0.8017678591787067","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"@ai-of-mine/fast-mermaid-validator-mcp","version":"1.5.0","keywords":["mermaid","mermaid-js","mermaid-validator","diagram-validation","mcp","model-context-protocol","claude","llm-tools","diagram","syntax-validation","flowchart","sequence-diagram","class-diagram","state-diagram","er-diagram","uml","project-management","documentation","markdown","ci-cd","testing","linting","typescript","nodejs","rest-api","headless","fast","high-performance","grammar-parsing","antlr","jison","langium","developer-tools"],"author":{"name":"Gregorio Elias Roecker Momm","email":"gregoriomomm@gmail.com"},"license":"Apache-2.0","_id":"@ai-of-mine/fast-mermaid-validator-mcp@1.5.0","maintainers":[{"name":"user-ai-of-mine","email":"gregoriomomm@gmail.com"}],"homepage":"https://github.com/ai-of-mine/fast-mermaid-validator-mcp#readme","bugs":{"url":"https://github.com/ai-of-mine/fast-mermaid-validator-mcp/issues"},"bin":{"fast-mermaid-validator-mcp":"src/server.js"},"dist":{"shasum":"c45ba5f1dc3413718b96fcb9c9127609e106d146","tarball":"https://registry.npmjs.org/@ai-of-mine/fast-mermaid-validator-mcp/-/fast-mermaid-validator-mcp-1.5.0.tgz","fileCount":941,"integrity":"sha512-0TTDIaf9P9flLU6nG+DiCOFC3U2P50FeD5GBHGElwd8a6gtClK9cne14D2fc7bMxRjqIPjhbEAhTzoLLigvImQ==","signatures":[{"sig":"MEQCICZxdCB82o+wU+YpydSA1hM9FkXY3pvxreIENOiElKT9AiAm2LyBQ5gSm4MNYKt2xLV/eF95IPC48N9j/+oV6taQtQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8090341},"main":"src/server.js","engines":{"npm":">=10.0.0","node":">=20.0.0"},"gitHead":"ea805c13df4183548479727ed3bfe500beb85fb0","scripts":{"dev":"nodemon src/server.js","docs":"swagger-jsdoc -d docs/swagger.js src/routes/*.js -o docs/swagger.json","lint":"eslint src/","test":"npm run test:unit && npm run test:integration && npm run test:regression","audit":"npm audit","build":"npm run build:grammars","clean":"npm run clean:generated && npm run clean:dist && npm run clean:mcp","start":"node src/server.js","dev:mcp":"npm run build:mcp && nodemon dist/mcp/server.js","prepare":"npm run build || true","audit:ci":"audit-ci --config audit-ci.json","lint:fix":"eslint src/ --fix","prebuild":"npm run build:mcp","test:api":"jest --testPathPatterns=test/api","test:mcp":"npm run build:mcp && node test/mcp/test-mcp-integration.js","audit:fix":"npm audit fix","build:mcp":"tsc -p tsconfig.mcp.json","clean:mcp":"rm -rf dist/mcp","start:mcp":"npm run build:mcp && node dist/mcp/server.js","test:full":"node test/regression/full-coverage.test.js","test:unit":"jest --testPathPatterns=test/unit --passWithNoTests","clean:dist":"rm -rf dist build","deps:check":"npx --yes npm-check-updates","docker:run":"docker run -p 8000:8000 mermaid-validator-mcp","preinstall":"npm run build:grammars || true","test:watch":"jest --watch","build:antlr":"node scripts/compile-grammars.js --antlr-only","build:jison":"node scripts/compile-grammars.js --jison-only","build:types":"node scripts/compile-grammars.js --types-only","deps:update":"npx --yes npm-check-updates -u","postinstall":"npm run build || true","test:upload":"node test/integration/upload-endpoints.js","dev:mcp-http":"npm run build:mcp && nodemon dist/mcp/server-http.js","docker:build":"docker build -t mermaid-validator-mcp .","build:langium":"node scripts/compile-grammars.js --langium-only","license:check":"npx --yes license-checker","security:full":"npm run audit && npm run security:snyk && npm run security:retire","security:snyk":"npx --yes snyk test","test:coverage":"jest --coverage","test:validate":"node test/integration/validate-endpoints.js","version:major":"node scripts/increment-version.js major","version:minor":"node scripts/increment-version.js minor","version:patch":"node scripts/increment-version.js patch","build:grammars":"node scripts/compile-grammars.js --jison-only","dev:mcp-secure":"npm run build:mcp && nodemon dist/mcp/server-secure.js","prepublishOnly":"npm run build:grammars && (npm run build:mcp || true)","start:mcp-http":"npm run build:mcp && node dist/mcp/server-http.js","clean:generated":"rm -rf src/generated","security:retire":"npx --yes retire","test:regression":"node test/regression/v1.4.0-bugfixes.test.js","start:mcp-secure":"npm run build:mcp && node dist/mcp/server-secure.js","test:integration":"node test/integration/validate-endpoints.js && node test/integration/upload-endpoints.js","docker:build:auto":"npm run version:patch && make docker-build-manual"},"_npmUser":{"name":"user-ai-of-mine","email":"gregoriomomm@gmail.com"},"overrides":{"glob":"^13.0.0"},"repository":{"url":"git+https://github.com/ai-of-mine/fast-mermaid-validator-mcp.git","type":"git"},"_npmVersion":"11.3.0","description":"High-performance API and Model Context Protocol (MCP) server for validating Mermaid diagrams with comprehensive security features, multiple transport options, and enterprise-grade capabilities","directories":{},"_nodeVersion":"23.7.0","dependencies":{"joi":"^18.2.1","zod":"^4.4.3","cors":"^2.8.6","uuid":"^14.0.0","jison":"^0.4.18","yauzl":"^3.3.1","helmet":"^8.2.0","morgan":"^1.10.1","multer":"^2.1.1","express":"^5.2.1","langium":"^4.2.4","winston":"^3.19.0","chevrotain":"^12.0.0","mime-types":"^3.0.2","compression":"^1.8.1","swagger-jsdoc":"^6.3.0","express-validator":"^7.3.2","express-rate-limit":"^8.5.2","swagger-ui-express":"^5.0.1","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","axios":"^1.16.1","eslint":"^9.39.4","globals":"^16.4.0","nodemon":"^3.1.14","audit-ci":"^7.1.0","form-data":"^4.0.5","supertest":"^7.2.2","@eslint/js":"^9.39.4","typescript":"~5.9.3","@types/node":"^25.9.1","@types/uuid":"^10.0.0","langium-cli":"^4.2.1","@types/express":"^5.0.6","eslint-plugin-import":"^2.32.0"},"bundleDependencies":["jison"],"_npmOperationalInternal":{"tmp":"tmp/fast-mermaid-validator-mcp_1.5.0_1780000741718_0.001941028360967545","host":"s3://npm-registry-packages-npm-production"}},"1.5.1":{"name":"@ai-of-mine/fast-mermaid-validator-mcp","version":"1.5.1","keywords":["mermaid","mermaid-js","mermaid-validator","diagram-validation","mcp","model-context-protocol","claude","llm-tools","diagram","syntax-validation","flowchart","sequence-diagram","class-diagram","state-diagram","er-diagram","uml","project-management","documentation","markdown","ci-cd","testing","linting","typescript","nodejs","rest-api","headless","fast","high-performance","grammar-parsing","antlr","jison","langium","developer-tools"],"author":{"name":"Gregorio Elias Roecker Momm","email":"gregoriomomm@gmail.com"},"license":"Apache-2.0","_id":"@ai-of-mine/fast-mermaid-validator-mcp@1.5.1","maintainers":[{"name":"user-ai-of-mine","email":"gregoriomomm@gmail.com"}],"homepage":"https://github.com/ai-of-mine/fast-mermaid-validator-mcp#readme","bugs":{"url":"https://github.com/ai-of-mine/fast-mermaid-validator-mcp/issues"},"bin":{"fast-mermaid-validator-mcp":"src/server.js"},"dist":{"shasum":"1cf56000d24ab3796b0579bd9196634e2311ccf2","tarball":"https://registry.npmjs.org/@ai-of-mine/fast-mermaid-validator-mcp/-/fast-mermaid-validator-mcp-1.5.1.tgz","fileCount":941,"integrity":"sha512-ITPadXz/StRCRj0/f4W7IX5Xn9sAjHrY+x0ltiqso9rq4JSkTgs+VSRLzrLIjeiX/r4zfhf2gUaqCnU/E1AoqA==","signatures":[{"sig":"MEYCIQCVOngOa6B0gsestxKKk/HnBnnMFcWlEAhU0aFhHwBS2AIhAOZcqUOiriRXJa7ri18pzH/863r8twj6x2qz/e3BjCD9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8091371},"main":"src/server.js","engines":{"npm":">=10.0.0","node":">=20.0.0"},"gitHead":"6f03c2ea04590b7eb223c0c9f8421fad771755d1","scripts":{"dev":"nodemon src/server.js","docs":"swagger-jsdoc -d docs/swagger.js src/routes/*.js -o docs/swagger.json","lint":"eslint src/","test":"npm run test:unit && npm run test:integration && npm run test:regression","audit":"npm audit","build":"npm run build:grammars","clean":"npm run clean:generated && npm run clean:dist && npm run clean:mcp","start":"node src/server.js","dev:mcp":"npm run build:mcp && nodemon dist/mcp/server.js","prepare":"npm run build || true","audit:ci":"audit-ci --config audit-ci.json","lint:fix":"eslint src/ --fix","prebuild":"npm run build:mcp","test:api":"jest --testPathPatterns=test/api","test:mcp":"npm run build:mcp && node test/mcp/test-mcp-integration.js","audit:fix":"npm audit fix","build:mcp":"tsc -p tsconfig.mcp.json","clean:mcp":"rm -rf dist/mcp","start:mcp":"npm run build:mcp && node dist/mcp/server.js","test:full":"node test/regression/full-coverage.test.js","test:unit":"jest --testPathPatterns=test/unit --passWithNoTests","clean:dist":"rm -rf dist build","deps:check":"npx --yes npm-check-updates","docker:run":"docker run -p 8000:8000 mermaid-validator-mcp","preinstall":"npm run build:grammars || true","test:watch":"jest --watch","build:antlr":"node scripts/compile-grammars.js --antlr-only","build:jison":"node scripts/compile-grammars.js --jison-only","build:types":"node scripts/compile-grammars.js --types-only","deps:update":"npx --yes npm-check-updates -u","postinstall":"npm run build || true","test:upload":"node test/integration/upload-endpoints.js","dev:mcp-http":"npm run build:mcp && nodemon dist/mcp/server-http.js","docker:build":"docker build -t mermaid-validator-mcp .","build:langium":"node scripts/compile-grammars.js --langium-only","license:check":"npx --yes license-checker","security:full":"npm run audit && npm run security:snyk && npm run security:retire","security:snyk":"npx --yes snyk test","test:coverage":"jest --coverage","test:validate":"node test/integration/validate-endpoints.js","version:major":"node scripts/increment-version.js major","version:minor":"node scripts/increment-version.js minor","version:patch":"node scripts/increment-version.js patch","build:grammars":"node scripts/compile-grammars.js --jison-only","dev:mcp-secure":"npm run build:mcp && nodemon dist/mcp/server-secure.js","prepublishOnly":"npm run build:grammars && (npm run build:mcp || true)","start:mcp-http":"npm run build:mcp && node dist/mcp/server-http.js","clean:generated":"rm -rf src/generated","security:retire":"npx --yes retire","test:regression":"node test/regression/v1.4.0-bugfixes.test.js","start:mcp-secure":"npm run build:mcp && node dist/mcp/server-secure.js","test:integration":"node test/integration/validate-endpoints.js && node test/integration/upload-endpoints.js","docker:build:auto":"npm run version:patch && make docker-build-manual"},"_npmUser":{"name":"user-ai-of-mine","email":"gregoriomomm@gmail.com"},"overrides":{"glob":"^13.0.0"},"repository":{"url":"git+https://github.com/ai-of-mine/fast-mermaid-validator-mcp.git","type":"git"},"_npmVersion":"11.3.0","description":"High-performance API and Model Context Protocol (MCP) server for validating Mermaid diagrams with comprehensive security features, multiple transport options, and enterprise-grade capabilities","directories":{},"_nodeVersion":"23.7.0","dependencies":{"joi":"^18.2.1","zod":"^4.4.3","cors":"^2.8.6","uuid":"^14.0.0","jison":"^0.4.18","yauzl":"^3.3.1","helmet":"^8.2.0","morgan":"^1.10.1","multer":"^2.1.1","express":"^5.2.1","langium":"^4.2.4","winston":"^3.19.0","chevrotain":"^12.0.0","mime-types":"^3.0.2","compression":"^1.8.1","swagger-jsdoc":"^6.3.0","express-validator":"^7.3.2","express-rate-limit":"^8.5.2","swagger-ui-express":"^5.0.1","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","axios":"^1.16.1","eslint":"^9.39.4","globals":"^16.4.0","nodemon":"^3.1.14","audit-ci":"^7.1.0","form-data":"^4.0.5","supertest":"^7.2.2","@eslint/js":"^9.39.4","typescript":"~5.9.3","@types/node":"^25.9.1","@types/uuid":"^10.0.0","langium-cli":"^4.2.1","@types/express":"^5.0.6","eslint-plugin-import":"^2.32.0"},"bundleDependencies":["jison"],"_npmOperationalInternal":{"tmp":"tmp/fast-mermaid-validator-mcp_1.5.1_1780006635997_0.06757720315042381","host":"s3://npm-registry-packages-npm-production"}},"1.5.2":{"name":"@ai-of-mine/fast-mermaid-validator-mcp","version":"1.5.2","keywords":["mermaid","mermaid-js","mermaid-validator","diagram-validation","mcp","model-context-protocol","claude","llm-tools","diagram","syntax-validation","flowchart","sequence-diagram","class-diagram","state-diagram","er-diagram","uml","project-management","documentation","markdown","ci-cd","testing","linting","typescript","nodejs","rest-api","headless","fast","high-performance","grammar-parsing","antlr","jison","langium","developer-tools"],"author":{"name":"Gregorio Elias Roecker Momm","email":"gregoriomomm@gmail.com"},"license":"Apache-2.0","_id":"@ai-of-mine/fast-mermaid-validator-mcp@1.5.2","maintainers":[{"name":"user-ai-of-mine","email":"gregoriomomm@gmail.com"}],"homepage":"https://github.com/ai-of-mine/fast-mermaid-validator-mcp#readme","bugs":{"url":"https://github.com/ai-of-mine/fast-mermaid-validator-mcp/issues"},"bin":{"fast-mermaid-validator-mcp":"src/server.js"},"dist":{"shasum":"84e36664159f484bc0a8097999dfa566de79f537","tarball":"https://registry.npmjs.org/@ai-of-mine/fast-mermaid-validator-mcp/-/fast-mermaid-validator-mcp-1.5.2.tgz","fileCount":943,"integrity":"sha512-izd63/md4ynBjLeERlPYGPYdFcGa0V+zPgfNe68G85S3MM8hehxpQ0cHk8A0XmwwjDBoYSddz7JBx4Xm6FrnUQ==","signatures":[{"sig":"MEUCIDIWMqtuk3lBz+RYQqiYaZvHQiPIWqkoZEfbu/jNXL8lAiEAl9tyNUj9bb8Qr+yFmOzCjnnspiSGzurGVU0o0BTLaFI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8137491},"main":"src/server.js","engines":{"npm":">=10.0.0","node":">=20.0.0"},"gitHead":"b4a92701720db8c84f583d2790fa7846afd2291b","scripts":{"dev":"nodemon src/server.js","docs":"swagger-jsdoc -d docs/swagger.js src/routes/*.js -o docs/swagger.json","lint":"eslint src/","test":"npm run test:unit && npm run test:integration && npm run test:regression","audit":"npm audit","build":"npm run build:grammars","clean":"npm run clean:generated && npm run clean:dist && npm run clean:mcp","start":"node src/server.js","dev:mcp":"npm run build:mcp && nodemon dist/mcp/server.js","prepare":"npm run build || true","audit:ci":"audit-ci --config audit-ci.json","lint:fix":"eslint src/ --fix","prebuild":"npm run build:mcp","test:api":"jest --testPathPatterns=test/api","test:mcp":"npm run build:mcp && node test/mcp/test-mcp-integration.js","audit:fix":"npm audit fix","build:mcp":"tsc -p tsconfig.mcp.json","clean:mcp":"rm -rf dist/mcp","start:mcp":"npm run build:mcp && node dist/mcp/server.js","test:full":"node test/regression/full-coverage.test.js","test:unit":"jest --testPathPatterns=test/unit --passWithNoTests","clean:dist":"rm -rf dist build","deps:check":"npx --yes npm-check-updates","docker:run":"docker run -p 8000:8000 mermaid-validator-mcp","preinstall":"npm run build:grammars || true","test:watch":"jest --watch","build:antlr":"node scripts/compile-grammars.js --antlr-only","build:jison":"node scripts/compile-grammars.js --jison-only","build:types":"node scripts/compile-grammars.js --types-only","deps:update":"npx --yes npm-check-updates -u","postinstall":"npm run build || true","test:upload":"node test/integration/upload-endpoints.js","dev:mcp-http":"npm run build:mcp && nodemon dist/mcp/server-http.js","docker:build":"docker build -t mermaid-validator-mcp .","docs:openapi":"node scripts/generate-openapi.js","build:langium":"node scripts/compile-grammars.js --langium-only","license:check":"npx --yes license-checker","security:full":"npm run audit && npm run security:snyk && npm run security:retire","security:snyk":"npx --yes snyk test","test:coverage":"jest --coverage","test:validate":"node test/integration/validate-endpoints.js","version:major":"node scripts/increment-version.js major","version:minor":"node scripts/increment-version.js minor","version:patch":"node scripts/increment-version.js patch","build:grammars":"node scripts/compile-grammars.js --jison-only","dev:mcp-secure":"npm run build:mcp && nodemon dist/mcp/server-secure.js","prepublishOnly":"npm run build:grammars && (npm run build:mcp || true)","start:mcp-http":"npm run build:mcp && node dist/mcp/server-http.js","clean:generated":"rm -rf src/generated","security:retire":"npx --yes retire","test:regression":"node test/regression/v1.4.0-bugfixes.test.js","start:mcp-secure":"npm run build:mcp && node dist/mcp/server-secure.js","test:integration":"node test/integration/validate-endpoints.js && node test/integration/upload-endpoints.js","docker:build:auto":"npm run version:patch && make docker-build-manual"},"_npmUser":{"name":"user-ai-of-mine","email":"gregoriomomm@gmail.com"},"overrides":{"glob":"^13.0.0"},"repository":{"url":"git+https://github.com/ai-of-mine/fast-mermaid-validator-mcp.git","type":"git"},"_npmVersion":"11.3.0","description":"High-performance API and Model Context Protocol (MCP) server for validating Mermaid diagrams with comprehensive security features, multiple transport options, and enterprise-grade capabilities","directories":{},"_nodeVersion":"23.7.0","dependencies":{"joi":"^18.2.1","zod":"^4.4.3","cors":"^2.8.6","uuid":"^14.0.0","jison":"^0.4.18","yauzl":"^3.3.1","helmet":"^8.2.0","morgan":"^1.10.1","multer":"^2.1.1","express":"^5.2.1","langium":"^4.2.4","winston":"^3.19.0","chevrotain":"^12.0.0","mime-types":"^3.0.2","compression":"^1.8.1","express-validator":"^7.3.2","express-rate-limit":"^8.5.2","swagger-ui-express":"^5.0.1","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","axios":"^1.16.1","eslint":"^9.39.4","globals":"^16.4.0","nodemon":"^3.1.14","audit-ci":"^7.1.0","form-data":"^4.0.5","supertest":"^7.2.2","@eslint/js":"^9.39.4","typescript":"~5.9.3","@types/node":"^25.9.1","@types/uuid":"^10.0.0","langium-cli":"^4.2.1","swagger-jsdoc":"^6.3.0","@types/express":"^5.0.6","eslint-plugin-import":"^2.32.0"},"bundleDependencies":["jison"],"_npmOperationalInternal":{"tmp":"tmp/fast-mermaid-validator-mcp_1.5.2_1780007953434_0.805088574546099","host":"s3://npm-registry-packages-npm-production"}},"1.5.3":{"name":"@ai-of-mine/fast-mermaid-validator-mcp","version":"1.5.3","keywords":["mermaid","mermaid-js","mermaid-validator","diagram-validation","mcp","model-context-protocol","claude","llm-tools","diagram","syntax-validation","flowchart","sequence-diagram","class-diagram","state-diagram","er-diagram","uml","project-management","documentation","markdown","ci-cd","testing","linting","typescript","nodejs","rest-api","headless","fast","high-performance","grammar-parsing","antlr","jison","langium","developer-tools"],"author":{"name":"Gregorio Elias Roecker Momm","email":"gregoriomomm@gmail.com"},"license":"Apache-2.0","_id":"@ai-of-mine/fast-mermaid-validator-mcp@1.5.3","maintainers":[{"name":"user-ai-of-mine","email":"gregoriomomm@gmail.com"}],"homepage":"https://github.com/ai-of-mine/fast-mermaid-validator-mcp#readme","bugs":{"url":"https://github.com/ai-of-mine/fast-mermaid-validator-mcp/issues"},"bin":{"fast-mermaid-validator-mcp":"src/server.js"},"dist":{"shasum":"52b7045bf35f6069be53efecd59d018aa974c1e5","tarball":"https://registry.npmjs.org/@ai-of-mine/fast-mermaid-validator-mcp/-/fast-mermaid-validator-mcp-1.5.3.tgz","fileCount":943,"integrity":"sha512-+AVg1keCmeci1eMR7Ic+qQzVOgdlBALOQqQTK5rpfu+GkxvVTxm2yvr2HyhxictGHL7jWRQIUU2Y25wzpc0d7w==","signatures":[{"sig":"MEUCIQCwgY6iNiSdefs623sZG8aFBi++NVoIezWu3p8pE8OpIQIgYFdn58nW8KwYslXtGQuhVxYmB5qC3O18wGrcX/S1Ep4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8138894},"main":"src/server.js","engines":{"npm":">=10.0.0","node":">=20.0.0"},"gitHead":"aef3e9417fa1ee2159fb010d392953ce47d9178f","scripts":{"dev":"nodemon src/server.js","docs":"swagger-jsdoc -d docs/swagger.js src/routes/*.js -o docs/swagger.json","lint":"eslint src/","test":"npm run test:unit && npm run test:integration && npm run test:regression","audit":"npm audit","build":"npm run build:grammars","clean":"npm run clean:generated && npm run clean:dist && npm run clean:mcp","start":"node src/server.js","dev:mcp":"npm run build:mcp && nodemon dist/mcp/server.js","prepare":"npm run build || true","audit:ci":"audit-ci --config audit-ci.json","lint:fix":"eslint src/ --fix","prebuild":"npm run build:mcp","test:api":"jest --testPathPatterns=test/api","test:mcp":"npm run build:mcp && node test/mcp/test-mcp-integration.js","audit:fix":"npm audit fix","build:mcp":"tsc -p tsconfig.mcp.json","clean:mcp":"rm -rf dist/mcp","start:mcp":"npm run build:mcp && node dist/mcp/server.js","test:full":"node test/regression/full-coverage.test.js","test:unit":"jest --testPathPatterns=test/unit --passWithNoTests","clean:dist":"rm -rf dist build","deps:check":"npx --yes npm-check-updates","docker:run":"docker run -p 8000:8000 mermaid-validator-mcp","preinstall":"npm run build:grammars || true","test:watch":"jest --watch","build:antlr":"node scripts/compile-grammars.js --antlr-only","build:jison":"node scripts/compile-grammars.js --jison-only","build:types":"node scripts/compile-grammars.js --types-only","deps:update":"npx --yes npm-check-updates -u","postinstall":"npm run build || true","test:upload":"node test/integration/upload-endpoints.js","dev:mcp-http":"npm run build:mcp && nodemon dist/mcp/server-http.js","docker:build":"docker build -t mermaid-validator-mcp .","docs:openapi":"node scripts/generate-openapi.js","build:langium":"node scripts/compile-grammars.js --langium-only","license:check":"npx --yes license-checker","security:full":"npm run audit && npm run security:snyk && npm run security:retire","security:snyk":"npx --yes snyk test","test:coverage":"jest --coverage","test:validate":"node test/integration/validate-endpoints.js","version:major":"node scripts/increment-version.js major","version:minor":"node scripts/increment-version.js minor","version:patch":"node scripts/increment-version.js patch","build:grammars":"node scripts/compile-grammars.js --jison-only","dev:mcp-secure":"npm run build:mcp && nodemon dist/mcp/server-secure.js","prepublishOnly":"npm run build:grammars && (npm run build:mcp || true)","start:mcp-http":"npm run build:mcp && node dist/mcp/server-http.js","clean:generated":"rm -rf src/generated","security:retire":"npx --yes retire","test:regression":"node test/regression/v1.4.0-bugfixes.test.js","start:mcp-secure":"npm run build:mcp && node dist/mcp/server-secure.js","test:integration":"node test/integration/validate-endpoints.js && node test/integration/upload-endpoints.js","docker:build:auto":"npm run version:patch && make docker-build-manual"},"_npmUser":{"name":"user-ai-of-mine","email":"gregoriomomm@gmail.com"},"overrides":{"glob":"^13.0.0"},"repository":{"url":"git+https://github.com/ai-of-mine/fast-mermaid-validator-mcp.git","type":"git"},"_npmVersion":"11.3.0","description":"High-performance API and Model Context Protocol (MCP) server for validating Mermaid diagrams with comprehensive security features, multiple transport options, and enterprise-grade capabilities","directories":{},"_nodeVersion":"23.7.0","dependencies":{"joi":"^18.2.1","zod":"^4.4.3","cors":"^2.8.6","uuid":"^14.0.0","jison":"^0.4.18","yauzl":"^3.3.1","helmet":"^8.2.0","morgan":"^1.10.1","multer":"^2.1.1","express":"^5.2.1","langium":"^4.2.4","winston":"^3.19.0","chevrotain":"^12.0.0","mime-types":"^3.0.2","compression":"^1.8.1","express-validator":"^7.3.2","express-rate-limit":"^8.5.2","swagger-ui-express":"^5.0.1","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","axios":"^1.16.1","eslint":"^9.39.4","globals":"^16.4.0","nodemon":"^3.1.14","audit-ci":"^7.1.0","form-data":"^4.0.5","supertest":"^7.2.2","@eslint/js":"^9.39.4","typescript":"~5.9.3","@types/node":"^25.9.1","@types/uuid":"^10.0.0","langium-cli":"^4.2.1","swagger-jsdoc":"^6.3.0","@types/express":"^5.0.6","eslint-plugin-import":"^2.32.0"},"bundleDependencies":["jison"],"_npmOperationalInternal":{"tmp":"tmp/fast-mermaid-validator-mcp_1.5.3_1780009243819_0.9789388034771165","host":"s3://npm-registry-packages-npm-production"}},"1.5.4":{"name":"@ai-of-mine/fast-mermaid-validator-mcp","version":"1.5.4","description":"High-performance API and Model Context Protocol (MCP) server for validating Mermaid diagrams with comprehensive security features, multiple transport options, and enterprise-grade capabilities","main":"src/server.js","bin":{"fast-mermaid-validator-mcp":"src/server.js"},"scripts":{"start":"node src/server.js","dev":"nodemon src/server.js","build":"npm run build:grammars","build:grammars":"node scripts/compile-grammars.js --jison-only","build:jison":"node scripts/compile-grammars.js --jison-only","build:antlr":"node scripts/compile-grammars.js --antlr-only","build:langium":"node scripts/compile-grammars.js --langium-only","build:types":"node scripts/compile-grammars.js --types-only","build:mcp":"tsc -p tsconfig.mcp.json","start:mcp":"npm run build:mcp && node dist/mcp/server.js","start:mcp-http":"npm run build:mcp && node dist/mcp/server-http.js","start:mcp-secure":"npm run build:mcp && node dist/mcp/server-secure.js","dev:mcp":"npm run build:mcp && nodemon dist/mcp/server.js","dev:mcp-http":"npm run build:mcp && nodemon dist/mcp/server-http.js","dev:mcp-secure":"npm run build:mcp && nodemon dist/mcp/server-secure.js","test:mcp":"npm run build:mcp && node test/mcp/test-mcp-integration.js","prebuild":"npm run build:mcp","clean":"npm run clean:generated && npm run clean:dist && npm run clean:mcp","clean:generated":"rm -rf src/generated","clean:dist":"rm -rf dist build","clean:mcp":"rm -rf dist/mcp","test":"npm run test:unit && npm run test:integration && npm run test:regression","test:unit":"jest --testPathPatterns=test/unit --passWithNoTests","test:integration":"node test/integration/validate-endpoints.js && node test/integration/upload-endpoints.js","test:regression":"node test/regression/v1.4.0-bugfixes.test.js","test:full":"node test/regression/full-coverage.test.js","test:api":"jest --testPathPatterns=test/api","test:watch":"jest --watch","test:coverage":"jest --coverage","test:validate":"node test/integration/validate-endpoints.js","test:upload":"node test/integration/upload-endpoints.js","lint":"eslint src/","lint:fix":"eslint src/ --fix","docker:build":"docker build -t mermaid-validator-mcp .","docker:run":"docker run -p 8000:8000 mermaid-validator-mcp","docs":"swagger-jsdoc -d docs/swagger.js src/routes/*.js -o docs/swagger.json","docs:openapi":"node scripts/generate-openapi.js","audit":"npm audit","audit:fix":"npm audit fix","audit:ci":"audit-ci --config audit-ci.json","security:snyk":"npx --yes snyk test","security:retire":"npx --yes retire","security:full":"npm run audit && npm run security:snyk && npm run security:retire","deps:check":"npx --yes npm-check-updates","deps:update":"npx --yes npm-check-updates -u","license:check":"npx --yes license-checker","version:patch":"node scripts/increment-version.js patch","version:minor":"node scripts/increment-version.js minor","version:major":"node scripts/increment-version.js major","docker:build:auto":"npm run version:patch && make docker-build-manual","preinstall":"npm run build:grammars || true","postinstall":"npm run build || true","prepare":"npm run build || true","prepublishOnly":"npm run build:grammars && (npm run build:mcp || true)"},"engines":{"node":">=20.0.0","npm":">=10.0.0"},"keywords":["mermaid","mermaid-js","mermaid-validator","diagram-validation","mcp","model-context-protocol","claude","llm-tools","diagram","syntax-validation","flowchart","sequence-diagram","class-diagram","state-diagram","er-diagram","uml","project-management","documentation","markdown","ci-cd","testing","linting","typescript","nodejs","rest-api","headless","fast","high-performance","grammar-parsing","antlr","jison","langium","developer-tools"],"author":{"name":"Gregorio Elias Roecker Momm","email":"gregoriomomm@gmail.com"},"license":"Apache-2.0","homepage":"https://github.com/ai-of-mine/fast-mermaid-validator-mcp#readme","repository":{"type":"git","url":"git+https://github.com/ai-of-mine/fast-mermaid-validator-mcp.git"},"bugs":{"url":"https://github.com/ai-of-mine/fast-mermaid-validator-mcp/issues"},"dependencies":{"@modelcontextprotocol/sdk":"^1.29.0","chevrotain":"^12.0.0","compression":"^1.8.1","cors":"^2.8.6","express":"^5.2.1","express-rate-limit":"^8.5.2","express-validator":"^7.3.2","helmet":"^8.2.0","jison":"^0.4.18","joi":"^18.2.1","langium":"^4.2.4","mime-types":"^3.0.2","morgan":"^1.10.1","multer":"^2.1.1","swagger-ui-express":"^5.0.1","uuid":"^14.0.0","winston":"^3.19.0","yauzl":"^3.3.1","zod":"^4.4.3"},"overrides":{"glob":"^13.0.0"},"bundleDependencies":["jison"],"devDependencies":{"@eslint/js":"^9.39.4","@types/express":"^5.0.6","@types/node":"^25.9.1","@types/uuid":"^10.0.0","audit-ci":"^7.1.0","axios":"^1.16.1","eslint":"^9.39.4","eslint-plugin-import":"^2.32.0","globals":"^16.4.0","form-data":"^4.0.5","jest":"^30.4.2","langium-cli":"^4.2.1","nodemon":"^3.1.14","supertest":"^7.2.2","swagger-jsdoc":"^6.3.0","typescript":"~5.9.3"},"_id":"@ai-of-mine/fast-mermaid-validator-mcp@1.5.4","gitHead":"c431844ed233706cd677bc065183e5eabc135645","_nodeVersion":"23.7.0","_npmVersion":"11.3.0","dist":{"integrity":"sha512-fCAUsp7aC19OKneJ2JCw99x9OacNVIt+FJg36z5YSyNcVVd/Kk98E1aFCROl5JFy5T9NgxmhjHS8xIassbSbSw==","shasum":"5c65152e5cd89ac32dde7f75e06c25cfea076de5","tarball":"https://registry.npmjs.org/@ai-of-mine/fast-mermaid-validator-mcp/-/fast-mermaid-validator-mcp-1.5.4.tgz","fileCount":943,"unpackedSize":8138894,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQD/CcH/l2dyNqMSX3/KskMLp8SADWHZ+Q/gw79dpOl46AIgdSVCl6mnvE5vlwnW0sSRpMPYZPzkCEYqLVjmwUX8ArY="}]},"_npmUser":{"name":"user-ai-of-mine","email":"gregoriomomm@gmail.com"},"directories":{},"maintainers":[{"name":"user-ai-of-mine","email":"gregoriomomm@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/fast-mermaid-validator-mcp_1.5.4_1780009498322_0.13624368039812396"},"_hasShrinkwrap":false}},"time":{"created":"2025-10-02T03:36:56.305Z","modified":"2026-05-28T23:04:58.684Z","1.0.30":"2025-10-02T03:36:56.750Z","1.0.31":"2025-10-02T19:09:49.532Z","1.0.32":"2025-10-13T19:17:58.791Z","1.1.1":"2026-05-26T23:42:27.962Z","1.2.0":"2026-05-27T01:31:15.357Z","1.2.1":"2026-05-27T03:47:07.146Z","1.2.2":"2026-05-27T04:08:15.753Z","1.3.0-beta.1":"2026-05-27T04:14:58.713Z","1.2.3":"2026-05-27T14:31:29.200Z","1.3.0-beta.2":"2026-05-27T14:39:36.810Z","1.3.0":"2026-05-27T15:47:58.860Z","1.3.1":"2026-05-27T19:51:53.640Z","1.3.2":"2026-05-27T20:05:21.130Z","1.3.3":"2026-05-27T23:40:26.760Z","1.3.4":"2026-05-27T23:50:59.872Z","1.3.6":"2026-05-28T00:30:11.445Z","1.4.0":"2026-05-28T19:03:07.154Z","1.4.1":"2026-05-28T19:10:05.040Z","1.4.2":"2026-05-28T19:24:53.338Z","1.5.0":"2026-05-28T20:39:01.946Z","1.5.1":"2026-05-28T22:17:16.216Z","1.5.2":"2026-05-28T22:39:13.626Z","1.5.3":"2026-05-28T23:00:44.052Z","1.5.4":"2026-05-28T23:04:58.544Z"},"bugs":{"url":"https://github.com/ai-of-mine/fast-mermaid-validator-mcp/issues"},"author":{"name":"Gregorio Elias Roecker Momm","email":"gregoriomomm@gmail.com"},"license":"Apache-2.0","homepage":"https://github.com/ai-of-mine/fast-mermaid-validator-mcp#readme","keywords":["mermaid","mermaid-js","mermaid-validator","diagram-validation","mcp","model-context-protocol","claude","llm-tools","diagram","syntax-validation","flowchart","sequence-diagram","class-diagram","state-diagram","er-diagram","uml","project-management","documentation","markdown","ci-cd","testing","linting","typescript","nodejs","rest-api","headless","fast","high-performance","grammar-parsing","antlr","jison","langium","developer-tools"],"repository":{"type":"git","url":"git+https://github.com/ai-of-mine/fast-mermaid-validator-mcp.git"},"description":"High-performance API and Model Context Protocol (MCP) server for validating Mermaid diagrams with comprehensive security features, multiple transport options, and enterprise-grade capabilities","maintainers":[{"name":"user-ai-of-mine","email":"gregoriomomm@gmail.com"}],"readme":"# Mermaid Validator API\n\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](./LICENSE)\n[![npm version](https://img.shields.io/npm/v/@ai-of-mine/fast-mermaid-validator-mcp)](https://www.npmjs.com/package/@ai-of-mine/fast-mermaid-validator-mcp)\n[![Node.js](https://img.shields.io/badge/Node.js-≥20-brightgreen)](https://nodejs.org/)\n[![Docker](https://img.shields.io/badge/Docker-Multi--arch-blue)](https://hub.docker.com/r/gregoriomomm/fast-mermaid-validator-mcp/tags)\n[![Open Source](https://img.shields.io/badge/Open%20Source-Apache%202.0-red)](./CONTRIBUTING.md)\n\nHigh-performance API and **Model Context Protocol (MCP) server** for validating Mermaid diagrams with comprehensive security features, multiple transport options, and enterprise-grade capabilities.\n\n**Author**: Gregorio Elias Roecker Momm (gregoriomomm@gmail.com)\n\n## 🆕 **v1.2.0 — Streamable HTTP MCP transport (stateless)**\n\nThe MCP HTTP server is now backed by the official `StreamableHTTPServerTransport`\nfrom `@modelcontextprotocol/sdk@^1.29.0`, replacing the previous custom SSE\nimplementation. It is **MCP-spec-compliant** and runs in **stateless mode** by\ndefault — every request is independent, so the server fits cleanly behind load\nbalancers and in serverless runtimes.\n\n- ✅ **Default container CMD**: stateless Streamable HTTP MCP on port `8080`\n- ✅ **Three image variants** (multi-arch amd64+arm64):\n  `:1.2.0` (alpine, ~282 MB), `:1.2.0-distroless` (~200 MB, no shell),\n  `:1.2.0-ubi` (~304 MB, FIPS-friendly)\n- ✅ **REST API still ships in the same image** — override `CMD` to start it\n- ✅ **Stateful mode opt-in** via `MCP_STATEFUL=true`\n- ✅ **42 of 46 npm security advisories cleared** since v1.0.32\n  (the residual 4 are in the jison parser-generator chain — see\n  [RELEASE_NOTES_v1.1.1.md](./RELEASE_NOTES_v1.1.1.md) for exploitability\n  analysis and the `audit-ci.json` allowlist)\n- ✅ **Node engine: `>=20`** (was 18); ESLint 9 + flat config; Jest 30; uuid 14\n- ✅ **Express 5** with patched path-to-regexp\n- ✅ **Integration tests**: 25 passed / 0 failed / 1 skipped (`exampleDiagram`,\n  with `skip: 'reason'` so it doesn't false-positive)\n\n**Endpoints**\n\n| Endpoint | Default port | What |\n|---|---|---|\n| `/mcp`         | 8080 | Streamable HTTP MCP (POST/GET/DELETE) |\n| `/health`      | 8080 | MCP server liveness probe |\n| `/info`        | 8080 | MCP server metadata (name, version, transport, mode) |\n| `/api/v1/validate`     | 8000 | REST API: validate diagrams (JSON) |\n| `/api/v1/upload/file`  | 8000 | REST API: upload files (multipart) |\n| `/api/v1/health`       | 8000 | REST API liveness probe |\n\n**MCP commands (npm install path)**\n\n```bash\nnpx @ai-of-mine/fast-mermaid-validator-mcp --mcp-http     # Streamable HTTP (stateless), port 8080\nnpx @ai-of-mine/fast-mermaid-validator-mcp --mcp-stdio    # stdio (for Claude Desktop / Claude Code)\nnpx @ai-of-mine/fast-mermaid-validator-mcp --mcp-secure   # Streamable HTTP + HMAC/rate-limit\nnpx @ai-of-mine/fast-mermaid-validator-mcp                # REST API (default), port 8000\n```\n\n## 🚀 **Dual Architecture: REST API + MCP Server**\n\nThis project provides **two complementary interfaces**:\n\n1. **🌐 REST API**: Traditional HTTP API for web applications and direct integrations\n2. **🤖 MCP Server**: Model Context Protocol server for LLM integrations (Claude Desktop, etc.)\n\n### **Quick Start**\n\n```bash\n# Install from npm (recommended)\nnpm install @ai-of-mine/fast-mermaid-validator-mcp\n\n# Start REST API server (default)\nnpx @ai-of-mine/fast-mermaid-validator-mcp\n\n# Start MCP HTTP server\nnpx @ai-of-mine/fast-mermaid-validator-mcp --mcp-http\n\n# Start MCP stdio server\nnpx @ai-of-mine/fast-mermaid-validator-mcp --mcp-stdio\n\n# Start MCP secure server\nnpx @ai-of-mine/fast-mermaid-validator-mcp --mcp-secure\n\n# Show help\nnpx @ai-of-mine/fast-mermaid-validator-mcp --help\n```\n\n**Alternative: Install from source**\n```bash\ngit clone https://github.com/ai-of-mine/fast-mermaid-validator-mcp.git\ncd mermaid-validator-mcp\nnpm install\nnpm run build:mcp\n\n# Use npm scripts\nnpm start              # REST API server\nnpm run start:mcp      # MCP stdio\nnpm run start:mcp-http # MCP HTTP\nnpm run start:mcp-secure # MCP secure\n```\n\n**Test MCP HTTP server:**\n```bash\nnpx @modelcontextprotocol/inspector http://localhost:8080/mcp\n```\n![alt text](mcp_inspector.png)\n## 🎯 **Core Features**\n\n### **Validation Capabilities**\n- **28 Mermaid Diagram Types**: Complete support with real grammar parsing\n- **Multi-format Support**: Markdown files, ZIP archives, direct input\n- **Real Grammar Validation**: Jison, ANTLR, and Langium parsers\n- **High Performance**: Optimized with minimal dependencies\n\n### **MCP Server Features**\n- **Multiple Transports**: Stdio, HTTP streamable, Server-Sent Events (SSE)\n- **3 MCP Tools**: validate-diagrams, validate-files, get-validation-stats\n- **2 MCP Resources**: config://limits, info://diagram-types\n- **Full Protocol Compliance**: JSON-RPC 2.0, MCP specification 2024-11-05\n\n### **Security & Enterprise**\n- **Security Compliant**: Complete audit logging and security best practices\n- **Authentication**: API key and Bearer token support\n- **Rate Limiting**: Configurable request throttling\n- **Input Validation**: Comprehensive sanitization and validation\n- **Container Ready**: Docker deployment with optimized images\n\n## Supported Diagram Types (28 Total)\n\n### Jison-based Validation (23 types)\n- **Flowchart**: `flowchart`, `graph` - Flow diagrams and process charts ✅\n- **Sequence**: `sequenceDiagram` - UML sequence diagrams ✅\n- **Class**: `classDiagram` - UML class diagrams ✅\n- **State**: `stateDiagram`, `stateDiagram-v2` - UML state diagrams ✅\n- **ER**: `erDiagram` - Entity relationship diagrams ✅\n- **Gantt**: `gantt` - Project timeline charts ✅\n- **User Journey**: `journey` - User experience journey maps ✅\n- **Requirement**: `requirement`, `requirementDiagram` - Requirements engineering diagrams ✅\n- **Sankey**: `sankey-beta` - Sankey flow diagrams ✅\n- **XY Chart**: `xychart-beta` - Line and bar charts ✅\n- **Kanban**: `kanban` - Kanban boards ✅\n- **Block**: `block`, `block-beta` - Block diagrams ✅\n- **C4**: `c4`, `C4Context` - C4 architecture diagrams ✅\n- **Mindmap**: `mindmap` - Mind maps ✅\n- **Quadrant**: `quadrant`, `quadrantChart` - Four-quadrant charts ✅\n- **Timeline**: `timeline` - Timeline diagrams ✅\n- **Example**: `exampleDiagram` - Example/test diagrams ✅\n\n### Langium-based Validation (5 types)\n- **Packet**: `packet`, `packet-beta` - Packet diagrams ✅\n- **Architecture**: `architecture`, `architecture-beta` - Architecture diagrams ✅\n- **Treemap**: `treemap` - Treemap diagrams ✅\n\n**Validation Results:** 28/28 types supported with real grammar parsing\n\n## 🤖 **MCP Server Documentation**\n\nFor complete MCP server documentation, see: **[docs/api/README-MCP.md](docs/api/README-MCP.md)**\n\n### **Quick MCP Commands**\n\n```bash\n# Stdio transport (for Claude Desktop)\nnpm run start:mcp\n\n# HTTP streamable transport (for web integrations)\nnpm run start:mcp-http\n\n# Secure transport (production ready)\nnpm run start:mcp-secure\n\n# Test with MCP Inspector\nnpx @modelcontextprotocol/inspector http://localhost:8080/mcp\n```\n\n### **MCP Tools Available**\n- **validate_mermaid**: Direct diagram validation with comprehensive error reporting\n- **validate_file**: File content validation (Markdown, ZIP support) with base64 encoding\n- **get_examples**: Get sample diagrams for all 28+ supported diagram types\n\n### **MCP Resources Available**\n- **config://limits**: Validation limits and configuration\n- **info://diagram-types**: All 28 supported diagram types\n\n## 🛠️ **Claude Code Integration**\n\n### **Adding to Claude Code**\n\n1. **Install and start the MCP server:**\n   ```bash\n   # Install from npm\n   npm install @ai-of-mine/fast-mermaid-validator-mcp\n\n   # Or from source\n   git clone https://github.com/ai-of-mine/fast-mermaid-validator-mcp.git\n   cd mermaid-validator-mcp\n   npm install\n   npm run build:mcp\n   npm run start:mcp-http  # HTTP transport for Claude Code\n   ```\n\n2. **Configure Claude Code using the CLI:**\n   ```bash\n   claude mcp add --transport http -s project mermaid-validator http://localhost:8080/mcp\n   ```\n\n   This creates a `.mcp.json` file in your project:\n   ```json\n   {\n     \"mcpServers\": {\n       \"mermaid-validator\": {\n         \"type\": \"http\",\n         \"url\": \"http://localhost:8080/mcp\"\n       }\n     }\n   }\n   ```\n\n3. **Available Tools in Claude Code:**\n\n   **🔍 validate_file** - *Validate ZIP Archives and Markdown Files*\n   ```\n   Process Base64-encoded ZIP archives containing multiple markdown files,\n   or individual markdown files. Automatically extracts ZIP contents,\n   finds ```mermaid code blocks, and validates all diagrams.\n\n   Perfect for: Documentation validation, CI/CD checks, bulk processing\n   ```\n\n   **🔧 validate_mermaid** - *Validate Individual Mermaid Diagrams*\n   ```\n   Validate raw Mermaid diagram code blocks directly.\n   Supports all 28+ diagram types with detailed syntax checking.\n   Returns comprehensive error information with line numbers.\n\n   Perfect for: Single diagram validation, syntax checking, error debugging\n   ```\n\n   **📊 get_examples** - *Get Sample Diagrams*\n   ```\n   Retrieve sample Mermaid diagrams for all supported diagram types.\n   Perfect for learning syntax, testing validation, and development.\n   ```\n\n### **Usage Examples with Claude Code**\n\n**Validate a documentation repository:**\n```\nUse the validate_file tool with this ZIP file containing our documentation:\n[Upload ZIP file with multiple .md files]\n```\n\n**Check a single diagram:**\n```\nUse validate_mermaid to check this flowchart:\nflowchart TD\n    A[Start] --> B{Decision}\n    B -->|Yes| C[Action 1]\n    B -->|No| D[Action 2]\n```\n\n**Get sample diagrams:**\n```\nUse get_examples to show sample diagrams for all supported types\n```\n\n**Developer Workflow Example:**\n```\n1. \"Show me examples of flowchart diagrams\"\n2. \"Validate this sequence diagram: [paste diagram]\"\n3. \"Check all diagrams in this documentation folder: [upload ZIP]\"\n4. \"Fix the syntax errors you found and re-validate\"\n```\n\n### **Supported Integrations**\n- ✅ **Claude Code** (HTTP transport)\n- ✅ **MCP Inspector** (SSE/HTTP)\n- ✅ **Claude Desktop** (stdio transport)\n- ✅ **Custom MCP clients** (all transports)\n\n## 🌐 **REST API Documentation**\n\n### Quick Start\n\nStart the API server:\n```bash\nnpx @ai-of-mine/fast-mermaid-validator-mcp\n```\n\nThe server runs on `http://localhost:8000` by default.\n\n## API Endpoints\n\n### 1. Direct Diagram Validation\n```bash\nPOST /api/v1/validate\nContent-Type: application/json\n```\n\n**Examples:**\n\n**Valid Flowchart:**\n```bash\ncurl -X POST http://localhost:8000/api/v1/validate \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"diagram\": \"flowchart TD\\n    A[Start] --> B[Process]\\n    B --> C[End]\"\n  }'\n```\n\n**Invalid Flowchart:**\n```bash\ncurl -X POST http://localhost:8000/api/v1/validate \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"diagram\": \"flowchart TD\\n    A[Start -->> B[Invalid]\"\n  }'\n```\n\n**Valid Sequence Diagram:**\n```bash\ncurl -X POST http://localhost:8000/api/v1/validate \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"diagram\": \"sequenceDiagram\\n    Alice->>Bob: Hello\\n    Bob-->>Alice: Hi there\"\n  }'\n```\n\n### 2. File Upload Validation\n```bash\nPOST /api/v1/upload/file\nContent-Type: multipart/form-data\n```\n\n**Parameters:**\n- `file`: One or multiple markdown files (`.md`, `.markdown`, `.txt`) or ZIP archives (`.zip`)\n- `timeout`: Optional timeout in milliseconds\n\n**Examples:**\n\n**Single File Upload:**\n```bash\ncurl -X POST http://localhost:8000/api/v1/upload/file \\\n  -F \"file=@diagram.md\"\n```\n\n**Multiple Files Upload:**\n```bash\ncurl -X POST http://localhost:8000/api/v1/upload/file \\\n  -F \"file=@diagram1.md\" \\\n  -F \"file=@diagram2.md\" \\\n  -F \"file=@diagram3.md\"\n```\n\n**Upload ZIP Archive:**\n```bash\ncurl -X POST http://localhost:8000/api/v1/upload/file \\\n  -F \"file=@diagrams.zip\"\n```\n\n**With Validation Timeout:**\n```bash\ncurl -X POST http://localhost:8000/api/v1/upload/file \\\n  -F \"file=@diagram.md\" \\\n  -F \"timeout=60000\"\n```\n\n**Response:**\n```json\n{\n  \"requestId\": \"db4d2fd2-d16c-42b5-b09f-a4e67408ea06\",\n  \"timestamp\": \"2025-09-12T00:40:02.595Z\",\n  \"processingTime\": 2,\n  \"validator\": \"custom_grammar_parser\",\n  \"totalFiles\": 1,\n  \"processedFiles\": 1,\n  \"totalDiagrams\": 1,\n  \"validDiagrams\": 0,\n  \"invalidDiagrams\": 1,\n  \"fileProcessing\": {\n    \"totalFiles\": 1,\n    \"processedFiles\": 1,\n    \"errors\": [],\n    \"processingTime\": 1\n  },\n  \"files\": [\n    {\n      \"fileName\": \"sequence_test.md\",\n      \"size\": 152,\n      \"totalDiagrams\": 1,\n      \"validDiagrams\": 0,\n      \"invalidDiagrams\": 1,\n      \"results\": [\n        {\n          \"diagramId\": \"diagram_1\",\n          \"valid\": false,\n          \"errors\": [\n            {\n              \"type\": \"syntax_error\",\n              \"message\": \"Parse error on line 2: Expecting 'TEXT', got 'ID'\",\n              \"line\": 2,\n              \"column\": 1\n            }\n          ],\n          \"warnings\": [],\n          \"metadata\": {\n            \"diagramType\": \"sequenceDiagram\",\n            \"validationMethod\": \"real_jison_grammar\",\n            \"contentLength\": 112,\n            \"lineCount\": 5,\n            \"processingTime\": 1\n          }\n        }\n      ],\n      \"errors\": []\n    }\n  ],\n  \"validationOptions\": {\n    \"timeout\": 30000\n  }\n}\n```\n\n**Multiple Files Upload:**\n```bash\ncurl -X POST http://localhost:8000/api/v1/upload/file \\\n  -F \"file=@valid_diagrams.md\" \\\n  -F \"file=@invalid_diagrams.md\"\n```\n\n**Response:**\n```json\n{\n  \"requestId\": \"f47ac10b-58cc-4372-a567-0e02b2c3d479\",\n  \"timestamp\": \"2025-09-12T00:40:05.123Z\",\n  \"processingTime\": 15,\n  \"validator\": \"custom_grammar_parser\",\n  \"totalFiles\": 2,\n  \"processedFiles\": 2,\n  \"totalDiagrams\": 5,\n  \"validDiagrams\": 3,\n  \"invalidDiagrams\": 2,\n  \"fileProcessing\": {\n    \"totalFiles\": 2,\n    \"processedFiles\": 2,\n    \"errors\": [],\n    \"processingTime\": 8\n  },\n  \"files\": [\n    {\n      \"fileName\": \"valid_diagrams.md\",\n      \"size\": 456,\n      \"totalDiagrams\": 3,\n      \"validDiagrams\": 3,\n      \"invalidDiagrams\": 0,\n      \"results\": [\n        {\n          \"diagramId\": \"diagram_1\",\n          \"valid\": true,\n          \"errors\": [],\n          \"warnings\": [],\n          \"metadata\": {\n            \"diagramType\": \"flowchart\",\n            \"validationMethod\": \"real_jison_grammar\",\n            \"contentLength\": 45,\n            \"lineCount\": 3,\n            \"processingTime\": 2\n          }\n        }\n      ],\n      \"errors\": []\n    },\n    {\n      \"fileName\": \"invalid_diagrams.md\", \n      \"size\": 234,\n      \"totalDiagrams\": 2,\n      \"validDiagrams\": 0,\n      \"invalidDiagrams\": 2,\n      \"results\": [\n        {\n          \"diagramId\": \"diagram_1\",\n          \"valid\": false,\n          \"errors\": [\n            {\n              \"type\": \"syntax_error\",\n              \"message\": \"Parse error: Invalid syntax on line 1\",\n              \"line\": 1\n            }\n          ],\n          \"metadata\": {\n            \"diagramType\": \"flowchart\",\n            \"validationMethod\": \"real_jison_grammar\"\n          }\n        }\n      ],\n      \"errors\": []\n    }\n  ],\n  \"validationOptions\": {\n    \"timeout\": 30000\n  }\n}\n```\n\n**ZIP Archive Upload:**\n```bash\ncurl -X POST http://localhost:8000/api/v1/upload/file \\\n  -F \"file=@diagrams.zip;type=application/zip\"\n```\n\n**Response:**\n```json\n{\n  \"requestId\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\",\n  \"timestamp\": \"2025-09-12T00:40:10.456Z\",\n  \"processingTime\": 25,\n  \"validator\": \"custom_grammar_parser\",\n  \"totalFiles\": 1,\n  \"processedFiles\": 1,\n  \"totalDiagrams\": 8,\n  \"validDiagrams\": 6,\n  \"invalidDiagrams\": 2,\n  \"fileProcessing\": {\n    \"totalFiles\": 1,\n    \"processedFiles\": 1,\n    \"errors\": [],\n    \"processingTime\": 12\n  },\n  \"files\": [\n    {\n      \"fileName\": \"diagrams.zip\",\n      \"size\": 2048,\n      \"totalDiagrams\": 8,\n      \"validDiagrams\": 6,\n      \"invalidDiagrams\": 2,\n      \"results\": [\n        {\n          \"diagramId\": \"diagram_1\",\n          \"valid\": true,\n          \"errors\": [],\n          \"metadata\": {\n            \"diagramType\": \"flowchart\",\n            \"sourceFile\": \"diagrams.zip/flowchart.md\",\n            \"validationMethod\": \"real_jison_grammar\"\n          }\n        },\n        {\n          \"diagramId\": \"diagram_2\",\n          \"valid\": true,\n          \"errors\": [],\n          \"metadata\": {\n            \"diagramType\": \"sequenceDiagram\", \n            \"sourceFile\": \"diagrams.zip/sequence.md\",\n            \"validationMethod\": \"real_jison_grammar\"\n          }\n        }\n      ],\n      \"errors\": []\n    }\n  ]\n}\n```\n\n**Error Response Example:**\n```json\n{\n  \"error\": \"File validation failed\",\n  \"message\": \"File size exceeds maximum allowed (10MB)\",\n  \"requestId\": \"error-123-456\",\n  \"timestamp\": \"2025-09-12T00:40:15.789Z\"\n}\n```\n\n**Test Results - All 25 Diagram Types:**\n```bash\n# Comprehensive test with all supported diagram types\ncurl -X POST http://localhost:8000/api/v1/validate \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"diagrams\": [\n    {\"content\": \"flowchart TD\\n    A[Start] --> B[Process]\\n    B --> C[End]\", \"type\": \"flowchart\"},\n    {\"content\": \"sequenceDiagram\\n    participant A\\n    participant B\\n    A->>B: Hello\", \"type\": \"sequenceDiagram\"},\n    {\"content\": \"classDiagram\\n    class Animal\\n    Animal : +name string\", \"type\": \"classDiagram\"},\n    {\"content\": \"stateDiagram-v2\\n    [*] --> Still\\n    Still --> [*]\", \"type\": \"stateDiagram-v2\"},\n    {\"content\": \"erDiagram\\n    CUSTOMER {\\n        string name\\n    }\", \"type\": \"erDiagram\"},\n    {\"content\": \"gantt\\n    title A Gantt\\n    dateFormat YYYY-MM-DD\\n    section Section\\n    A task: 2014-01-01, 30d\", \"type\": \"gantt\"},\n    {\"content\": \"journey\\n    title My day\\n    section Go to work\\n      Make tea: 5: Me\", \"type\": \"journey\"},\n    {\"content\": \"requirementDiagram\\n    requirement test_req {\\n    id: 1\\n    text: test\\n    }\", \"type\": \"requirement\"},\n    {\"content\": \"xychart-beta\\n    title Sales\\n    x-axis [jan, feb]\\n    bar [5000, 6000]\", \"type\": \"xychart-beta\"},\n    {\"content\": \"kanban\\n    Todo\\n        Task 1\\n    Done\\n        Task 2\", \"type\": \"kanban\"},\n    {\"content\": \"C4Context\\n    Person(user, \\\"User\\\")\", \"type\": \"c4\"},\n    {\"content\": \"mindmap\\n  root((idea))\\n    branch1\\n    branch2\", \"type\": \"mindmap\"},\n    {\"content\": \"quadrantChart\\n    title Chart\\n    x-axis Low --> High\\n    quadrant-1 Expand\", \"type\": \"quadrant\"},\n    {\"content\": \"timeline\\n    title History\\n    2020 : Event 1\\n    2021 : Event 2\", \"type\": \"timeline\"},\n    {\"content\": \"pie title Data\\n    \\\"A\\\" : 50\\n    \\\"B\\\" : 30\", \"type\": \"pie\"},\n    {\"content\": \"gitGraph\\n    commit\\n    commit\\n    branch dev\\n    commit\", \"type\": \"gitGraph\"},\n    {\"content\": \"info\\n    showInfo\", \"type\": \"info\"},\n    {\"content\": \"architecture-beta\\n    service db(database)[DB]\", \"type\": \"architecture\"},\n    {\"content\": \"radar\\n    title Analysis\\n    \\\"Metric\\\" : [8, 6]\", \"type\": \"radar\"},\n    {\"content\": \"packet-beta\\n    0-15: Source Port\", \"type\": \"packet\"},\n    {\"content\": \"treemap-beta\\n    title Tree\\n    Branch\\n        Leaf: 100\", \"type\": \"treemap\"}\n  ]}'\n\n# Result: 21/23 diagrams validated successfully\n# ✅ All Jison parsers working (18 types)\n# ✅ All Langium parsers working (7 types)\n# ❌ 2 expected syntax failures in test data\n```\n\n### Health Check\n```bash\nGET /api/v1/health\n```\n\n**Response:**\n```json\n{\n  \"status\": \"healthy\",\n  \"timestamp\": \"2025-09-13T02:40:00.000Z\",\n  \"uptime\": 3600.5,\n  \"version\": \"1.0.15\",\n  \"environment\": \"production\"\n}\n```\n\n### Direct Validation (Alternative Method)\n```bash\nPOST /api/v1/validate\nContent-Type: application/json\n```\n\n**Request:**\n```json\n{\n  \"diagrams\": [\n    {\n      \"content\": \"flowchart TD\\\\n    A --> B\",\n      \"type\": \"flowchart\"\n    },\n    {\n      \"content\": \"pie title Sample\\\\n    \\\"A\\\" : 50\\\\n    \\\"B\\\" : 30\",\n      \"type\": \"pie\"\n    }\n  ],\n  \"options\": {\n    \"generateSvg\": false,\n    \"timeout\": 30000\n  }\n}\n```\n\n**Response:**\n```json\n{\n  \"requestId\": \"6e7ffdb8-b023-4c6b-8576-1cc60229c381\",\n  \"timestamp\": \"2025-09-11T06:21:45.793Z\",\n  \"totalDiagrams\": 2,\n  \"validDiagrams\": 2,\n  \"invalidDiagrams\": 0,\n  \"processingTime\": 33,\n  \"validator\": \"custom_grammar_parser\",\n  \"results\": [\n    {\n      \"diagramId\": \"direct_1\",\n      \"valid\": true,\n      \"errors\": [],\n      \"warnings\": [],\n      \"metadata\": {\n        \"diagramType\": \"flowchart\",\n        \"validationMethod\": \"real_jison_grammar\",\n        \"contentLength\": 25,\n        \"lineCount\": 2,\n        \"processingTime\": 3,\n        \"customValidator\": true\n      }\n    },\n    {\n      \"diagramId\": \"direct_2\", \n      \"valid\": true,\n      \"errors\": [],\n      \"warnings\": [],\n      \"metadata\": {\n        \"diagramType\": \"pie\",\n        \"validationMethod\": \"langium_grammar\",\n        \"contentLength\": 35,\n        \"lineCount\": 3,\n        \"processingTime\": 1,\n        \"customValidator\": true\n      }\n    }\n  ]\n}\n```\n\n### Validation Statistics\n```bash\nGET /api/v1/validate/stats\n```\n\n**Response:**\n```json\n{\n  \"supportedDiagramTypes\": [\n    \"flowchart\", \"graph\", \"sequenceDiagram\", \"classDiagram\", \n    \"stateDiagram\", \"stateDiagram-v2\", \"erDiagram\", \"gantt\", \n    \"journey\", \"requirement\", \"sankey-beta\", \"xychart-beta\", \n    \"kanban\", \"block\", \"c4\", \"mindmap\", \"quadrant\", \"timeline\",\n    \"pie\", \"gitGraph\", \"info\", \"architecture\", \"radar\", \n    \"packet\", \"treemap\"\n  ],\n  \"validationMethods\": {\n    \"jison\": 18,\n    \"langium\": 7,\n    \"total\": 25\n  },\n  \"limits\": {\n    \"maxFileSize\": 10485760,\n    \"maxFiles\": 20,\n    \"maxDiagramsPerFile\": 50,\n    \"maxTotalDiagrams\": 200,\n    \"validationTimeout\": 30000\n  },\n  \"features\": {\n    \"realGrammarValidation\": true,\n    \"markdownSupport\": true,\n    \"multiFileValidation\": true,\n    \"diagramGrammarParsers\": true,\n    \"jisonParsers\": true,\n    \"langiumParsers\": true\n  }\n}\n```\n\n## 🚀 **Quick Start**\n\n### Using Docker / Podman (Recommended)\n\nAll images on Docker Hub are multi-arch (linux/amd64 + linux/arm64).\nDefault `CMD` is the **stateless Streamable HTTP MCP server on port 8080**.\n\n```bash\n# Default — Streamable HTTP MCP, port 8080\npodman run --rm -p 8080:8080 gregoriomomm/fast-mermaid-validator-mcp:1.2.0\n\n# Most secure (no shell, no pkg mgr inside; ~200 MB)\npodman run --rm -p 8080:8080 gregoriomomm/fast-mermaid-validator-mcp:1.2.0-distroless\n\n# IBM / RHEL / OpenShift / FIPS-friendly (~304 MB)\npodman run --rm -p 8080:8080 gregoriomomm/fast-mermaid-validator-mcp:1.2.0-ubi\n\n# Override to run the REST API instead (port 8000)\npodman run --rm -p 8000:8000 \\\n  gregoriomomm/fast-mermaid-validator-mcp:1.2.0 \\\n  node src/server.js\n\n# Verify\ncurl -s http://localhost:8080/health | jq      # MCP /health\ncurl -s http://localhost:8080/info | jq        # MCP /info\n\n# Send an MCP tools/list request\ncurl -s -X POST http://localhost:8080/mcp \\\n  -H 'Content-Type: application/json' \\\n  -H 'Accept: application/json, text/event-stream' \\\n  -d '{\"jsonrpc\":\"2.0\",\"method\":\"tools/list\",\"id\":1}'\n\n# Send a tool call to validate a diagram\ncurl -s -X POST http://localhost:8080/mcp \\\n  -H 'Content-Type: application/json' \\\n  -H 'Accept: application/json, text/event-stream' \\\n  -d '{\"jsonrpc\":\"2.0\",\"method\":\"tools/call\",\"params\":{\"name\":\"validate-diagrams\",\"arguments\":{\"diagrams\":[{\"type\":\"flowchart\",\"content\":\"graph TD\\nA-->B\"}]}},\"id\":2}'\n```\n\nBuild from source:\n```bash\ngit clone https://github.com/ai-of-mine/fast-mermaid-validator-mcp.git\ncd fast-mermaid-validator-mcp\nnpm install\nnpm run build:mcp\ndocker build -t fast-mermaid-validator-mcp:local .                   # alpine\ndocker build -f Dockerfile.distroless -t ...:local-distroless .      # distroless\ndocker build -f Dockerfile.ubi        -t ...:local-ubi .             # UBI\n```\n\n### Using Node.js\n\n```bash\n# Install from npm\nnpm install @ai-of-mine/fast-mermaid-validator-mcp\n\n# Or install development dependencies from source\ngit clone https://github.com/ai-of-mine/fast-mermaid-validator-mcp.git\ncd mermaid-validator-mcp\nnpm install\n\n# Start development server\nnpm run dev\n\n# Start production server\nnpm start\n```\n\n### Environment Variables\n\n### **🆕 Configurable Limits**\n\n```bash\n# Server Configuration\nPORT=8000\nHOST=0.0.0.0\nNODE_ENV=production\n\n# Server Performance Optimization\nSERVER_TIMEOUT=30000           # Server timeout in milliseconds\nKEEP_ALIVE_TIMEOUT=5000        # Keep-alive timeout\nHEADERS_TIMEOUT=6000           # Headers timeout (must be > keep-alive)\nMAX_CONNECTIONS=1000           # Maximum concurrent connections\nMAX_HEADERS_COUNT=2000         # Maximum headers per request\nMAX_REQUESTS_PER_SOCKET=0      # Max requests per socket (0 = unlimited)\n\n# Security (Rate limiting delegated to API Gateway)\nCORS_ORIGIN=*\nHSTS_MAX_AGE=31536000          # HTTPS Strict Transport Security\n\n# File Upload Limits (All configurable, use -1 for unlimited)\nMAX_FILE_SIZE=104857600        # 100MB (was 10MB)\nMAX_FILES=100000               # 100k files (was 20)\nMAX_TOTAL_DIAGRAMS=1000000     # 1M diagrams (was 200)\nMAX_DIAGRAMS_PER_FILE=10000    # 10k per file (was 50)\n\n# Validation Limits (All configurable, use -1 for unlimited)\nVALIDATION_TIMEOUT=30000\nMAX_DIAGRAM_CONTENT_LENGTH=1048576  # 1MB per diagram (was 50KB)\nMAX_TIMEOUT_MS=60000               # Max validation timeout\nMAX_FILENAME_LENGTH=255            # Max filename length\n\n# Mermaid Parser Limits (All configurable, use -1 for unlimited)\nMERMAID_MAX_TEXT_SIZE=1048576      # 1MB (was 50KB)\nMERMAID_MAX_EDGES=10000            # 10k edges (was 500)\nMERMAID_MAX_VERTICES=5000          # 5k vertices (was 200)\n\n# Logging\nLOG_LEVEL=info\nLOG_TO_FILE=true\nLOG_FILE=logs/app.log\nLOG_MAX_FILES=5\nLOG_MAX_SIZE=10m\n\n# Health Monitoring\nMEMORY_THRESHOLD=90\nDISK_THRESHOLD=90\n\n# Cleanup\nTEMP_DIR=./tmp\nCLEANUP_INTERVAL=3600000       # 1 hour cleanup interval\n```\n\n### **🚀 Unlimited Mode**\nSet any limit to `-1` to disable it completely:\n```bash\n# Unlimited processing configuration\nMAX_FILES=-1                   # Process unlimited files\nMAX_FILE_SIZE=-1               # Accept any file size\nMAX_DIAGRAM_CONTENT_LENGTH=-1  # Process any diagram size\nMERMAID_MAX_TEXT_SIZE=-1       # No text size limits\nMERMAID_MAX_EDGES=-1           # No edge count limits\nMERMAID_MAX_VERTICES=-1        # No vertex count limits\n```\n\n📋 **See [docs/CONFIGURATION.md](docs/CONFIGURATION.md) for complete configuration guide.**\n\n## Deployment\n\n### Prerequisites\n- Kubernetes cluster with kubectl access\n- Container registry access (Docker Hub, GitHub Container Registry, etc.)\n- Docker/Podman for building images\n- Helm 3.x (for Helm deployments)\n\n### Make Commands\n\n#### Development\n```bash\nmake install        # Install dependencies\nmake dev           # Start development server\nmake test          # Run tests\nmake lint          # Code linting\nmake security      # Security checks\n```\n\n#### Build & Deploy\n```bash\nmake deployment-amd64    # Build AMD64 deployment\nmake deployment-arm64    # Build ARM64 deployment (local)\nmake push-amd64         # Push AMD64 to registry\nmake push-arm64         # Push ARM64 to registry\n```\n\n#### Kubernetes (Kustomize)\n```bash\nmake k8s-deploy-dev     # Deploy to mmjc-dev namespace\nmake k8s-deploy-test    # Deploy to mmjc-test namespace\nmake k8s-status-dev     # Check dev deployment status\nmake k8s-status-test    # Check test deployment status\nmake k8s-logs-dev       # View dev logs\nmake k8s-logs-test      # View test logs\n```\n\n#### Kubernetes (Helm)\n```bash\nmake helm-install-dev   # Install Helm chart (dev)\nmake helm-install-test  # Install Helm chart (test)\nmake helm-uninstall-dev # Uninstall Helm chart (dev)\nmake helm-uninstall-test # Uninstall Helm chart (test)\n```\n\n### Docker Development\n```bash\ndocker-compose --profile dev up\n```\n\n### Production Deployment\n```bash\ndocker-compose --profile production up\n```\n\n### With Monitoring\n```bash\ndocker-compose --profile monitoring up\n```\n\n### Environment Configuration\n\n| Variable | Description | Default |\n|----------|-------------|---------|\n| NODE_ENV | Application environment | production |\n| PORT | Server port | 8000 |\n| LOG_LEVEL | Logging level | info |\n\nSee `DEPLOYMENT.md` for comprehensive deployment instructions.\n\n## Monitoring\n\n### Health Endpoints\n- `GET /api/v1/health` - Basic health check\n- `GET /api/v1/health/detailed` - Detailed system information\n- `GET /api/v1/health/live` - Kubernetes liveness probe\n- `GET /api/v1/health/ready` - Kubernetes readiness probe\n\n### Metrics (with Prometheus)\n- Request rate and response times\n- Error rates by endpoint\n- Memory and CPU usage\n- File processing statistics\n- Validation success/failure rates\n\n### Grafana Dashboards\n- API performance metrics\n- System resource utilization\n- Error rate monitoring\n- Request volume trends\n\n## Security Features\n\n- **Rate Limiting**: Configurable per-IP request limits (100 requests per 15 minutes)\n- **Input Validation**: Comprehensive request validation with express-validator\n- **File Security**: Dual MIME type and file extension validation for robust upload security\n- **Content Security**: CSP headers, XSS protection, and security headers via Helmet\n- **CORS Protection**: Configurable cross-origin policies with whitelist support\n- **Process Security**: Non-root container execution with dedicated nodejs user\n- **Resource Limits**: Memory and disk usage monitoring with configurable thresholds\n- **Upload Protection**: File size limits, suspicious filename detection, and malware prevention\n\n## Testing\n\n```bash\n# Run all tests\nnpm test\n\n# Run with coverage\nnpm run test:coverage\n\n# Run in watch mode\nnpm run test:watch\n\n# Lint code\nnpm run lint\n```\n\n## API Documentation\n\nInteractive API documentation is available at `/docs` when running in development mode.\n\n## Performance\n\n- **Custom Grammar Parser**: Fast validation without browser dependencies\n- **Concurrent Processing**: Multiple diagrams processed in parallel\n- **Memory Efficient**: Automatic cleanup of temporary files\n- **Minimal Dependencies**: Reduced attack surface and faster startup\n- **Response Compression**: Built-in compression for faster responses\n\n## Configuration\n\nSee `src/config/config.js` for all available configuration options. Most settings can be controlled via environment variables for easy deployment customization.\n\n## 📋 **Claude Code Usage Examples**\n\nFor comprehensive examples of using this validator with Claude Code, see:\n- **[CLAUDE_CODE_USAGE_EXAMPLE.md](CLAUDE_CODE_USAGE_EXAMPLE.md)** - Original validation examples\n- **[LATEST_CHANGES.md](LATEST_CHANGES.md)** - Latest features and capabilities\n- **[docs/CONFIGURATION.md](docs/CONFIGURATION.md)** - Complete configuration guide\n- **[docs/PERFORMANCE_TESTING.md](docs/PERFORMANCE_TESTING.md)** - Load testing methodology\n- **[docs/LOAD_TESTING_EVIDENCE.md](docs/LOAD_TESTING_EVIDENCE.md)** - Performance evidence\n\n### **Validation Results Summary**\n\nRecent validation of the `examples/` folder:\n- **Total Files Processed:** 9\n- **Total Diagrams Found:** 43\n- **Valid Diagrams:** 32 (74% success rate)\n- **Invalid Diagrams:** 11\n\n### **Common Issues and Fixes**\n\n**1. Quoted Text in Node Labels**\n```mermaid\n# ❌ Invalid (causes parser error)\nflowchart TD\n    A --> B[Error: \"No COMMAREA Received\"]\n\n# ✅ Fixed (remove quotes)\nflowchart TD\n    A --> B[Error: No COMMAREA Received]\n```\n\n**2. Diagram Type Syntax**\n```mermaid\n# ❌ Invalid\nquadrant\n    title Chart\n\n# ✅ Fixed\nquadrantChart\n    title Chart\n```\n\n**3. Beta Suffix Requirements**\n```mermaid\n# ❌ Invalid\ntreemap\n    title Tree\n\n# ✅ Fixed\ntreemap-beta\n    title Tree\n```\n\n### **Developer Workflow with Latest Features**\n1. **Discovery**: `claude validate all diagrams in examples folder`\n2. **Batch Processing**: Validates 43 diagrams across 9 files with unlimited processing\n3. **Error Analysis**: Comprehensive error reporting with line numbers and context\n4. **Systematic Fixes**: Apply corrections based on detailed error messages\n5. **Re-validation**: Instant re-validation with optimized performance\n6. **Enterprise Scale**: Process 100MB files, 100k+ diagrams with zero limits\n\n### **Performance Capabilities**\n- **Single Pod**: 500+ concurrent connections (with nginx proxy)\n- **Cluster Scale**: Auto-scale to 10,000+ concurrent connections\n- **Processing**: 145 req/sec sustained throughput\n- **Zero-Error Experience**: Aggressive HPA prevents connection failures\n- **Enterprise Limits**: 100MB files, 1MB diagrams, unlimited processing\n\n## License\n\nApache License 2.0 — see [LICENSE](LICENSE) for the full text.\n\n## Author\n\nGregorio Elias Roecker Momm","readmeFilename":"README.md"}