{"_id":"@codeankitanime/eventlogger","_rev":"7-1dded5703e4496f019a8f5aaf0e79818","name":"@codeankitanime/eventlogger","dist-tags":{"latest":"1.2.0"},"versions":{"1.0.0":{"name":"@codeankitanime/eventlogger","version":"1.0.0","keywords":["event","logger","frontend","tracker","heatmap"],"author":{"name":"Ankit Jatav"},"license":"MIT","_id":"@codeankitanime/eventlogger@1.0.0","maintainers":[{"name":"codeankitanime","email":"mail.ankitkicode@gmail.com"}],"dist":{"shasum":"72cfb7bff5e820e78ed8065073c0d9d99e48bc5d","tarball":"https://registry.npmjs.org/@codeankitanime/eventlogger/-/eventlogger-1.0.0.tgz","fileCount":3,"integrity":"sha512-krzy0sN5FiqractTnc1kS4X2xbNCnEK+3l/3Abn8BYCBe0Ehd1gIYf+c9dY33zZ8Ej1OYkvLfHGiyNlkwQRCPg==","signatures":[{"sig":"MEUCIQCu4vErJFmvYtdwYYbGzSTOaWmeKv0SsYk/3/LSdIeiXQIgOxYggR9OK/Ikb4fa24zy++NM0kLtqmOxZEI5wNwNmmY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2227},"main":"src/index.js","type":"module","scripts":{"test":"echo \"No tests specified\" && exit 0","start":"node src/index.js"},"_npmUser":{"name":"codeankitanime","email":"mail.ankitkicode@gmail.com"},"_npmVersion":"10.8.3","description":"Frontend logger to track user events (click, scroll, input) and send to backend","directories":{},"_nodeVersion":"20.14.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/eventlogger_1.0.0_1748343349824_0.29703197290229255","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@codeankitanime/eventlogger","version":"1.0.1","keywords":["event","logger","frontend","tracker","heatmap"],"author":{"name":"Ankit Jatav"},"license":"MIT","_id":"@codeankitanime/eventlogger@1.0.1","maintainers":[{"name":"codeankitanime","email":"mail.ankitkicode@gmail.com"}],"dist":{"shasum":"c67bc73f1ef5c2daabcad770615e83372b53dd12","tarball":"https://registry.npmjs.org/@codeankitanime/eventlogger/-/eventlogger-1.0.1.tgz","fileCount":4,"integrity":"sha512-DEpWBBeEPQl3dszo+F6fQok5dRUGnsukCwXANI/Zk/xQq2CiQuPyN2rWuhPUO/Z1MC9aoIo3AKGVeqI/88JDgA==","signatures":[{"sig":"MEUCIBJGRnctWWrR17poOG6INaR1mdFBZz0aTzL7S2JETsibAiEAqjJZc36hJYsaVZ7z8hja3ONDRxm6Ul48kHGvjhzPd9I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2184},"main":"src/index.js","type":"module","scripts":{"test":"echo \"No tests specified\" && exit 0","start":"node src/index.js"},"_npmUser":{"name":"codeankitanime","email":"mail.ankitkicode@gmail.com"},"_npmVersion":"10.8.3","description":"Frontend logger to track user events (click, scroll, input) and send to backend","directories":{},"_nodeVersion":"20.14.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/eventlogger_1.0.1_1748344513747_0.9121845471247634","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@codeankitanime/eventlogger","version":"1.0.2","keywords":["event","logger","frontend","tracker","heatmap"],"author":{"name":"Ankit Jatav"},"license":"MIT","_id":"@codeankitanime/eventlogger@1.0.2","maintainers":[{"name":"codeankitanime","email":"mail.ankitkicode@gmail.com"}],"dist":{"shasum":"02725326f48488d8a7cfd0acc68b91e744896d61","tarball":"https://registry.npmjs.org/@codeankitanime/eventlogger/-/eventlogger-1.0.2.tgz","fileCount":4,"integrity":"sha512-tY3gGMbFsujJAgwO0hFW1FFBBAtLu4MZH+Q+Kp3l9iyQNA4p87d+8bqhKiEM0EsH5SDhF79E52J8CeDLXLCBAQ==","signatures":[{"sig":"MEYCIQC2bTQKfN+wofBZzErjh/G/Ys4nwMffz0Nxzl+AUmsbFwIhANkZ2P9CP+XDV5iVEcVag9z9o2WYd+OAc+VANaXSEoM3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3744},"main":"src/index.js","type":"module","scripts":{"test":"echo \"No tests specified\" && exit 0","start":"node src/index.js"},"_npmUser":{"name":"codeankitanime","email":"mail.ankitkicode@gmail.com"},"_npmVersion":"10.8.3","description":"Frontend logger to track user events (click, scroll, input) and send to backend","directories":{},"_nodeVersion":"20.14.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/eventlogger_1.0.2_1748345054088_0.40365406964735273","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@codeankitanime/eventlogger","version":"1.0.3","keywords":["event-tracker","front-end-logger","analytics","user-tracking","click-tracking","browser-events","session-tracking","javascript-logger","react-logger","interaction-logger","geo-tracking","ip-tracking","user-activity","frontend-analytics","custom-analytics","logging","event-logging","web-logger"],"author":{"name":"Ankit Jatav"},"license":"MIT","_id":"@codeankitanime/eventlogger@1.0.3","maintainers":[{"name":"codeankitanime","email":"mail.ankitkicode@gmail.com"}],"dist":{"shasum":"a5e1605a0192b1098cb6518b135c9d6fc68c8015","tarball":"https://registry.npmjs.org/@codeankitanime/eventlogger/-/eventlogger-1.0.3.tgz","fileCount":6,"integrity":"sha512-szO77zygE7qFL+fFM+b4en2x9cPanfcf3FfuKCSZalaM6eAONU6FuUZlrJ1LE/azRCNxbtbNTg33PsnF24Ekpg==","signatures":[{"sig":"MEQCIE7thbjsLGM8ji/DERA09oaKumMsZLLbHv5MdQto5PwHAiBouJL8US0wILPnUN2WyWBqvIUuFzTkNlDPsJg5J01DPA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7909},"main":"src/index.js","type":"module","gitHead":"45878ed50e4c54271d84d4d5c7f62190006dab6e","scripts":{"test":"echo \"No tests specified\" && exit 0","start":"node src/index.js"},"_npmUser":{"name":"codeankitanime","email":"mail.ankitkicode@gmail.com"},"_npmVersion":"10.8.3","description":"A lightweight JavaScript event tracker that logs user interactions (clicks, inputs, scrolls, etc.) along with browser, OS, and optional geolocation/IP metadata. Ideal for building custom front-end analytics.","directories":{},"_nodeVersion":"20.14.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/eventlogger_1.0.3_1749627116391_0.37790498385200944","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@codeankitanime/eventlogger","version":"1.0.4","keywords":["event-tracker","front-end-logger","analytics","user-tracking","click-tracking","browser-events","session-tracking","javascript-logger","react-logger","interaction-logger","geo-tracking","ip-tracking","user-activity","frontend-analytics","custom-analytics","logging","event-logging","web-logger"],"author":{"name":"Ankit Jatav"},"license":"MIT","_id":"@codeankitanime/eventlogger@1.0.4","maintainers":[{"name":"codeankitanime","email":"mail.ankitkicode@gmail.com"}],"dist":{"shasum":"cfc2c71a677352874f4f7c1d8eb8d15744c40c4f","tarball":"https://registry.npmjs.org/@codeankitanime/eventlogger/-/eventlogger-1.0.4.tgz","fileCount":6,"integrity":"sha512-AlnCloBZZ9KtnMGDiO91YmYZ1cDO36RIa3BlAgEqhWU0LszFIVLSBHvnqY73YAU0zzSeR45PjSzz25WqokHqtA==","signatures":[{"sig":"MEYCIQDc27uKNxy3U70fLU9cdYKwvgxyI2AaXGUWF/3zbSAIOAIhAJXdplWjEK+1c3Jk+RARIBVGulSv/6u/OCUyo0wz6R4Q","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7924},"main":"src/index.js","type":"module","gitHead":"4d13fb9af988cb922c87d5262f2193c006c784f7","scripts":{"test":"echo \"No tests specified\" && exit 0","start":"node src/index.js"},"_npmUser":{"name":"codeankitanime","email":"mail.ankitkicode@gmail.com"},"_npmVersion":"10.8.3","description":"A lightweight JavaScript event tracker that logs user interactions (clicks, inputs, scrolls, etc.) along with browser, OS, and optional geolocation/IP metadata. Ideal for building custom front-end analytics.","directories":{},"_nodeVersion":"20.14.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/eventlogger_1.0.4_1749631991564_0.7453040810562763","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@codeankitanime/eventlogger","version":"1.1.0","keywords":["event-tracker","front-end-logger","analytics","user-tracking","click-tracking","browser-events","session-tracking","javascript-logger","react-logger","interaction-logger","geo-tracking","ip-tracking","user-activity","frontend-analytics","custom-analytics","logging","event-logging","web-logger"],"author":{"name":"Ankit Jatav"},"license":"MIT","_id":"@codeankitanime/eventlogger@1.1.0","maintainers":[{"name":"codeankitanime","email":"mail.ankitkicode@gmail.com"}],"dist":{"shasum":"4878ff23d7cbf7aa40c31708c2ffedd5ea5f58a6","tarball":"https://registry.npmjs.org/@codeankitanime/eventlogger/-/eventlogger-1.1.0.tgz","fileCount":6,"integrity":"sha512-8lyU0tMjRJ4LXJPEKmJ8nvy7hXxVjqBIE4+0KZzwwZurxhR8pe7okL9K1dAn5haC4jsbwjSm+JIwsHzkajxUkg==","signatures":[{"sig":"MEUCIHjLt9amBlzSg0DLAQg/mlzSZA+8od8jsKR0+S9PW9w0AiEAoUcXmaRDyMj3mVaQ/Dh3YC6kYJwmbFwI3I4HQwi5uO8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8478},"main":"src/index.js","type":"module","gitHead":"4d13fb9af988cb922c87d5262f2193c006c784f7","scripts":{"test":"echo \"No tests specified\" && exit 0","start":"node src/index.js"},"_npmUser":{"name":"codeankitanime","email":"mail.ankitkicode@gmail.com"},"_npmVersion":"10.8.3","description":"A lightweight JavaScript event tracker that logs user interactions (clicks, inputs, scrolls, etc.) along with browser, OS, and optional geolocation/IP metadata. Ideal for building custom front-end analytics.","directories":{},"_nodeVersion":"20.14.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/eventlogger_1.1.0_1749637969810_0.9596723600809032","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@codeankitanime/eventlogger","version":"1.2.0","description":"A lightweight JavaScript event tracker that logs user interactions (clicks, inputs, scrolls, etc.) along with browser, OS, and optional geolocation/IP metadata. Ideal for building custom front-end analytics.","main":"src/index.js","scripts":{"start":"node src/index.js","test":"echo \"No tests specified\" && exit 0"},"type":"module","keywords":["event-tracker","front-end-logger","analytics","user-tracking","click-tracking","browser-events","session-tracking","javascript-logger","react-logger","interaction-logger","geo-tracking","ip-tracking","user-activity","frontend-analytics","custom-analytics","logging","event-logging","web-logger"],"author":{"name":"Ankit Jatav"},"license":"MIT","_id":"@codeankitanime/eventlogger@1.2.0","gitHead":"3ac9e507a168890ad021a0a6da7a35616647fe29","_nodeVersion":"20.14.0","_npmVersion":"10.8.3","dist":{"integrity":"sha512-zDtvA3/3t6FpCpJApHVSG/aSK2rc9CKCf28KwcWoFB4c4WV7ur7m9LB1e3A8hjhuFcGxunJ2JU47FHzBMXxUKg==","shasum":"b882e2ee7dcd5cf968348039e5bbe6a69530af84","tarball":"https://registry.npmjs.org/@codeankitanime/eventlogger/-/eventlogger-1.2.0.tgz","fileCount":6,"unpackedSize":8657,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCN7onO1xmvUBsUrHs7GBq1DiNWIXZUsVelZl8zKITwfwIhAPUIXRL8XzE1LvWbYoVOSx+yoicjEyZko1mQjVMW+KT8"}]},"_npmUser":{"name":"codeankitanime","email":"mail.ankitkicode@gmail.com"},"directories":{},"maintainers":[{"name":"codeankitanime","email":"mail.ankitkicode@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/eventlogger_1.2.0_1749644102745_0.3978743666483249"},"_hasShrinkwrap":false}},"time":{"created":"2025-05-27T10:55:49.707Z","modified":"2025-06-11T12:15:03.125Z","1.0.0":"2025-05-27T10:55:50.080Z","1.0.1":"2025-05-27T11:15:13.933Z","1.0.2":"2025-05-27T11:24:14.287Z","1.0.3":"2025-06-11T07:31:56.658Z","1.0.4":"2025-06-11T08:53:11.732Z","1.1.0":"2025-06-11T10:32:50.013Z","1.2.0":"2025-06-11T12:15:02.964Z"},"author":{"name":"Ankit Jatav"},"license":"MIT","keywords":["event-tracker","front-end-logger","analytics","user-tracking","click-tracking","browser-events","session-tracking","javascript-logger","react-logger","interaction-logger","geo-tracking","ip-tracking","user-activity","frontend-analytics","custom-analytics","logging","event-logging","web-logger"],"description":"A lightweight JavaScript event tracker that logs user interactions (clicks, inputs, scrolls, etc.) along with browser, OS, and optional geolocation/IP metadata. Ideal for building custom front-end analytics.","maintainers":[{"name":"codeankitanime","email":"mail.ankitkicode@gmail.com"}],"readme":"# event-logger\n\nA lightweight front-end event tracking utility with system and location metadata.\n\n## Features\n\n- Tracks: click, scroll, input, keydown, mousemove, focus, blur\n- Collects metadata: OS, browser, device type, geolocation (if permitted)\n- Optionally adds geolocation (HTML5) and IP-based location (via backend)\n\n## Installation\n\n```bash\nnpm install event-logger\n\n```\n\n## Tech Stack\n- **MongoDB**: Document-oriented NoSQL database for storing user interaction data.\n- **Express**: Web application framework for Node.js, designed for building APIs and handling requests.\n- **React**: Front-end library for building user interfaces, used to create interactive components for capturing events.\n- **Node.js**: JavaScript runtime for executing server-side code.\n\n\n\n## Usage\n\n- The Front End Logger captures various user events such as clicks, scrolls, and navigation.\n- Simply integrate the logger component into your React application and configure it according to your needs.\n- You can view the captured events from the MongoDB database or create a dashboard to visualize the data.\n\n```bash\nimport { initEventLogger } from 'event-logger';\n\ninitEventLogger({\n  events: ['click', 'input'],\n  flushInterval: 5000,\n  onFlush: (data) => {\n    console.log(data); // contains meta and events\n  }\n});\n\n```\n\n\n## Note\n-For full IP/location info, use a backend API and append the result to the meta   field.\n**Backend Example (/api/get-meta-info)**\n\n```bash\n// Express backend route\napp.get('/api/get-ip-info', (req, res) => {\n  const ip = req.headers['x-forwarded-for'] || req.connection.remoteAddress;\n  const geo = geoip.lookup(ip);\n\n  res.json({\n    ip,\n    location: geo\n      ? `${geo.city || 'Unknown'}, ${geo.region || ''}, ${geo.country || ''}`\n      : 'Unknown'\n  });\n});\n```\n## Than Intigration \n```bash \nimport { initEventLogger } from 'event-logger';\n\nasync function setupLogger() {\n  const res = await fetch('/api/get-meta-info');\n  const backendMeta = await res.json();\n\n  initEventLogger({\n    events: ['click', 'input', 'scroll'],\n    flushInterval: 5000,\n    onFlush: (data) => {\n      const fullMeta = {\n        ...data.meta,\n        ...backendMeta\n      };\n\n      const payload = {\n        meta: fullMeta,\n        events: data.events\n      };\n\n      console.log('Flushed Payload:', payload);\n\n      // Optional: send to your logging service\n      // fetch('/api/log', {\n      //   method: 'POST',\n      //   headers: { 'Content-Type': 'application/json' },\n      //   body: JSON.stringify(payload)\n      // });\n    }\n  });\n}\n\nsetupLogger();\n```\n\n## Author\n**Ankit** - [Your GitHub Profile](https://github.com/ankitkicode)\n\n## License\nThis project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.\n\n","readmeFilename":"README.md"}