{"_id":"@4k4m1m3/log-analyzer","_rev":"2-72961d8b1c3455b36400f7a4d277d7cf","name":"@4k4m1m3/log-analyzer","dist-tags":{"latest":"0.2.0"},"versions":{"0.1.0":{"name":"@4k4m1m3/log-analyzer","version":"0.1.0","keywords":["log","parser","syslog","apache","nginx","security","typescript"],"author":{"name":"Wuilmer Bolivar"},"license":"MIT","_id":"@4k4m1m3/log-analyzer@0.1.0","maintainers":[{"name":"wuilmerbolivar","email":"wuilmeralexanderbolivar@gmail.com"}],"homepage":"https://github.com/4k4m1m3-org/log-analyzer#readme","bugs":{"url":"https://github.com/4k4m1m3-org/log-analyzer/issues"},"dist":{"shasum":"48da500924f787e4d55b01d0c235cf2dce34efc6","tarball":"https://registry.npmjs.org/@4k4m1m3/log-analyzer/-/log-analyzer-0.1.0.tgz","fileCount":32,"integrity":"sha512-UwUdCl2wiWgVu8eg9VmjPLtXKpCNSh+B9DINx8Og3UDzd+fV1AD2r0Kzf/YB6+OD5tDZK5zqjArDpTLnIEJQOw==","signatures":[{"sig":"MEQCIF4QLHpCYZy69vXpve1FN6NB2Zwd/YDO5EDRsrsnyJvrAiBMebYepW9/Ky1clb2ZYbQVnQ4cNGvgIDPnc1F3jor5oQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22467},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"2bce1e524ad1cd5417f93b3db34032e0d32e941b","scripts":{"dev":"tsc --watch","lint":"eslint .","test":"vitest run","build":"tsc","prepare":"npm run build","test:watch":"vitest"},"_npmUser":{"name":"wuilmerbolivar","email":"wuilmeralexanderbolivar@gmail.com"},"repository":{"url":"git+https://github.com/4k4m1m3-org/log-analyzer.git","type":"git"},"_npmVersion":"11.16.0","description":"Lightweight TypeScript log parser for Linux, Apache and Nginx.","directories":{},"_nodeVersion":"24.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.7.0","vitest":"^4.1.10","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^26.1.1","typescript-eslint":"^8.65.0"},"_npmOperationalInternal":{"tmp":"tmp/log-analyzer_0.1.0_1784858415600_0.4812514745641614","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@4k4m1m3/log-analyzer","version":"0.2.0","description":"Lightweight TypeScript log parser for Linux, Apache and Nginx.","keywords":["log","parser","syslog","apache","nginx","security","typescript"],"repository":{"type":"git","url":"git+https://github.com/4k4m1m3-org/log-analyzer.git"},"homepage":"https://github.com/4k4m1m3-org/log-analyzer#readme","bugs":{"url":"https://github.com/4k4m1m3-org/log-analyzer/issues"},"license":"MIT","author":{"name":"Wuilmer Bolivar"},"type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"build":"tsc","dev":"tsc --watch","test":"vitest run","test:watch":"vitest","lint":"eslint .","prepare":"npm run build"},"publishConfig":{"access":"public"},"devDependencies":{"@eslint/js":"^10.0.1","@types/node":"^26.1.1","eslint":"^10.7.0","typescript":"^6.0.3","typescript-eslint":"^8.65.0","vitest":"^4.1.10"},"gitHead":"e616e48e5ecedd3423a872a2cf1bccb96b8c05ab","_id":"@4k4m1m3/log-analyzer@0.2.0","_nodeVersion":"24.15.0","_npmVersion":"11.16.0","dist":{"integrity":"sha512-83dS2+3Q1CJrJjAFvOTvCU4klCJ8UBSUj8E0x5YjOmjAG4n2JaHV68+N0/M9Xam1z6entKAGngqJIobzACS7lQ==","shasum":"85a93cfbf4b7d0dc7fbc72268162d832fe57cc1d","tarball":"https://registry.npmjs.org/@4k4m1m3/log-analyzer/-/log-analyzer-0.2.0.tgz","fileCount":49,"unpackedSize":38097,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIHbeMljr6kY93RxZ4eTU50pfruIcl/tBgfFMVSLngBSRAiAlK4QjcAyCAmB34iY7DM+0XYZY5xpY3aBxXYF4cZJwbg=="}]},"_npmUser":{"name":"wuilmerbolivar","email":"4k4m1m3@gmail.com"},"directories":{},"maintainers":[{"name":"wuilmerbolivar","email":"4k4m1m3@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/log-analyzer_0.2.0_1784924879564_0.0889000128241828"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-24T02:00:15.398Z","modified":"2026-07-24T20:27:59.870Z","0.1.0":"2026-07-24T02:00:15.727Z","0.2.0":"2026-07-24T20:27:59.702Z"},"bugs":{"url":"https://github.com/4k4m1m3-org/log-analyzer/issues"},"author":{"name":"Wuilmer Bolivar"},"license":"MIT","homepage":"https://github.com/4k4m1m3-org/log-analyzer#readme","keywords":["log","parser","syslog","apache","nginx","security","typescript"],"repository":{"type":"git","url":"git+https://github.com/4k4m1m3-org/log-analyzer.git"},"description":"Lightweight TypeScript log parser for Linux, Apache and Nginx.","maintainers":[{"name":"wuilmerbolivar","email":"4k4m1m3@gmail.com"}],"readme":"# @4k4m1m3/log-analyzer\n\n[![npm version](https://img.shields.io/npm/v/@4k4m1m3/log-analyzer)](https://www.npmjs.com/package/@4k4m1m3/log-analyzer)\n\n[![npm downloads](https://img.shields.io/npm/dm/@4k4m1m3/log-analyzer)](https://www.npmjs.com/package/@4k4m1m3/log-analyzer)\n\n[![GitHub stars](https://img.shields.io/github/stars/4k4m1m3-org/log-analyzer?style=social)](https://github.com/4k4m1m3-org/log-analyzer)\n\n![Tests](https://github.com/4k4m1m3-org/log-analyzer/actions/workflows/test.yml/badge.svg)\n\n🔎 Lightweight TypeScript log parser for security monitoring, infrastructure analysis and automation workflows.\n\n\n## 📌 About the project\n\n`@4k4m1m3/log-analyzer` is a lightweight TypeScript library designed to normalize different log formats into a common structure.\n\nThe goal is to simplify log processing, automation workflows and security event analysis by providing a simple and predictable API.\n\nThis project was created to explore log normalization concepts used in:\n\n- Security monitoring platforms\n- SIEM pipelines\n- SOC automation workflows\n- Infrastructure observability\n\n\nThis package is part of the 4k4m1m3 security learning ecosystem and is connected with the Homelab SOC project:\n\n🌐 https://4k4m1m3.com/homelab-soc/\n\n\n## 🚀 Features\n\n- Written in TypeScript\n- Zero runtime dependencies\n- Simple and predictable API\n- Automatic log format detection\n- Normalized event structure\n- Strong TypeScript support\n- Designed for security and infrastructure environments\n- Easy integration with monitoring and SIEM workflows\n\n\n## 📦 Installation\n\nInstall using npm:\n\n```bash\nnpm install @4k4m1m3/log-analyzer\n````\n\n## ⚡ Quick Start\n\n```typescript\nimport { analyze } from \"@4k4m1m3/log-analyzer\";\n\nconst log =\n  \"Jul 23 18:45:11 ubuntu sshd[1234]: Accepted password for root\";\n\nconst result = analyze(log);\n\nconsole.log(result);\n```\n\nOutput:\n\n```json\n{\n  \"ok\": true,\n  \"entry\": {\n    \"source\": \"linux-syslog\",\n    \"timestamp\": \"2026-07-23T23:45:11.000Z\",\n    \"severity\": \"info\",\n    \"message\": \"Accepted password for root\",\n    \"raw\": \"Jul 23 18:45:11 ubuntu sshd[1234]: Accepted password for root\"\n  }\n}\n```\n\n## 📚 Supported Log Formats\n\nCurrent version: `0.1.0`\n\nSupported:\n\n✅ Linux Syslog\n\n✅ HTTP Access Logs (Apache/Nginx compatible)\n\nFuture releases will introduce more dedicated parsers and additional log sources.\n\n## 🔍 API Reference\n\n### analyze(log: string)\n\nReceives a raw log line and attempts to automatically detect and parse the format.\n\nSuccessful response:\n\n```typescript\n{\n  ok: true,\n  entry: {\n    source: string,\n    timestamp: Date,\n    severity: string,\n    message: string,\n    raw: string\n  }\n}\n```\n\nFailed response:\n\n```typescript\n{\n  ok: false,\n  error: string,\n  raw: string\n}\n```\n\n## 🧪 Examples\n\n### 🐧 Linux Syslog\n\nInput:\n\n```text\nJul 23 18:45:11 ubuntu sshd[1234]: Accepted password for root\n```\n\nOutput:\n\n```json\n{\n  \"source\": \"linux-syslog\",\n  \"severity\": \"info\",\n  \"message\": \"Accepted password for root\"\n}\n```\n\n---\n\n### 🌐 HTTP Access Log\n\nInput:\n\n```text\n127.0.0.1 - - [23/Jul/2026:18:45:11 +0000] \"GET /admin HTTP/1.1\" 404 512\n```\n\nOutput:\n\n```json\n{\n  \"source\": \"http-access\",\n  \"severity\": \"warning\",\n  \"message\": \"GET /admin HTTP/1.1\"\n}\n```\n\n## 🗺️ Roadmap\n\nThe project is under active development.\n\n### Version 0.2.0\n\nPlanned:\n\n* Dedicated Apache Access Log parser\n* Dedicated Nginx Access Log parser\n* Improved parser accuracy\n* Expanded automated test coverage\n\n### Version 0.3.0\n\nPlanned:\n\n* Additional infrastructure log formats\n* Improved metadata extraction\n* More structured security fields\n* Better event classification\n\n### Future ideas\n\nExploration areas:\n\n* 🔌 Custom parser plugins\n* 🌎 Community parser ecosystem\n* 🛡️ Security event enrichment\n* 📊 SIEM integration helpers\n* 🎯 MITRE ATT&CK metadata mapping\n* 🤖 SOC automation workflows\n\n## 🛠️ Development\n\nClone repository:\n\n```bash\ngit clone https://github.com/4k4m1m3-org/log-analyzer.git\n```\n\nInstall dependencies:\n\n```bash\nnpm install\n```\n\nBuild:\n\n```bash\nnpm run build\n```\n\nRun tests:\n\n```bash\nnpm test\n```\n\n## 🧪 Testing\n\nThe project uses Vitest for automated testing.\n\nCurrent test coverage includes:\n\n✅ Linux Syslog parsing\n\n✅ HTTP Access Log parsing\n\n✅ Successful log analysis\n\n✅ Unsupported log handling\n\n✅ Empty input handling\n\n## 🤝 Contributing\n\nContributions, ideas and feature requests are welcome.\n\nIf you are interested in:\n\n* Adding new parsers\n* Improving detection logic\n* Extending security capabilities\n* Integrating with monitoring platforms\n\nFeel free to open an issue or submit a pull request.\n\n## 🔗 Related Projects\n\n🏠 Homelab SOC\n\n[https://4k4m1m3.com/homelab-soc/](https://4k4m1m3.com/homelab-soc/)\n\n## 📄 License\n\nMIT License\n\nCopyright (c) 2026 Wuilmer Bolivar\n\n","readmeFilename":"README.MD"}