{"_id":"@algoholics/aegis-core","_rev":"8-366ff5250a1f72e7c58c71c80450e37f","name":"@algoholics/aegis-core","dist-tags":{"latest":"1.0.8"},"versions":{"1.0.0":{"name":"@algoholics/aegis-core","version":"1.0.0","license":"MIT","_id":"@algoholics/aegis-core@1.0.0","maintainers":[{"name":"algoholics","email":"shinrai.dev@gmail.com"}],"dist":{"shasum":"3bdec41791bab21149eeca425606f27757e1df6f","tarball":"https://registry.npmjs.org/@algoholics/aegis-core/-/aegis-core-1.0.0.tgz","fileCount":8,"integrity":"sha512-CpFpULM/jdc5fr2ns5i0Hsw0ZlES9hXdeYuRVgA7wr0MuRD2CGcnn1nDhy4nFJU61cfiYsVc+WvBj/zJMYuJYA==","signatures":[{"sig":"MEUCIQD7njsvYLXMpjoQGA2o61shRrRF/YVredtKE7cNJFQ9dAIgXQ/Yq2WYaGDK3FJy/MxCBI8D4DrhEC6wLpF8bIejO/s=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":92262},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"03ca13804d8be3c0163b760bf62fa0cb4eec21ae","scripts":{"link":"tsc","build":"tsup index.ts --format cjs,esm --dts"},"_npmUser":{"name":"algoholics","email":"shinrai.dev@gmail.com"},"_npmVersion":"9.7.1","description":"Aegis Core","directories":{},"_nodeVersion":"19.7.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.2.4","typescript":"^5.5.4"},"_npmOperationalInternal":{"tmp":"tmp/aegis-core_1.0.0_1725809637463_0.09435885949542988","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"@algoholics/aegis-core","version":"1.0.1","license":"MIT","_id":"@algoholics/aegis-core@1.0.1","maintainers":[{"name":"algoholics","email":"shinrai.dev@gmail.com"}],"dist":{"shasum":"3483767253ef6b1a8942470c33e04c9b10f4ff4d","tarball":"https://registry.npmjs.org/@algoholics/aegis-core/-/aegis-core-1.0.1.tgz","fileCount":8,"integrity":"sha512-Efcci2dKyQiLXwl4YO/c/Quax4bGFkY9nmngqHT24qlySLGrHotkOnOKMu2RIODEbRb+VpX+xKSpH2V3GkXMZA==","signatures":[{"sig":"MEUCIBm6BkA7yjkAQtP/yDdkBVPiTD0cHUyayXYGzgEkl3TiAiEA6JqC6AXEB/iahFJCtmfJIX5ZFBhnqWzU4IeIHF+vy+E=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":92340},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"03ca13804d8be3c0163b760bf62fa0cb4eec21ae","scripts":{"link":"tsc","build":"tsup index.ts --format cjs,esm --dts"},"_npmUser":{"name":"algoholics","email":"shinrai.dev@gmail.com"},"_npmVersion":"9.7.1","description":"Aegis Core","directories":{},"_nodeVersion":"19.7.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.2.4","typescript":"^5.5.4"},"_npmOperationalInternal":{"tmp":"tmp/aegis-core_1.0.1_1725811039297_0.870549165391153","host":"s3://npm-registry-packages"}},"1.0.2":{"name":"@algoholics/aegis-core","version":"1.0.2","license":"MIT","_id":"@algoholics/aegis-core@1.0.2","maintainers":[{"name":"algoholics","email":"shinrai.dev@gmail.com"}],"dist":{"shasum":"93953491be96e59d2072641ea1997804eedbeb8a","tarball":"https://registry.npmjs.org/@algoholics/aegis-core/-/aegis-core-1.0.2.tgz","fileCount":8,"integrity":"sha512-38vYFmC60EBONl80kh2eOUY05P43UXF9taxSaEOLhqhpZW2fWafoVW+GDfb9Jmseo7CIWeiFDd3EPEjn7ZGKQw==","signatures":[{"sig":"MEUCIQCzUUJgh0KfcI1HkuOAOmgqPrGc6g+hUJJyEeMAU5IjmwIgTK5ttTCj5PP0UFnBcD5jsybwlB1GOxZyvTBWk6rKva0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":92083},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"03ca13804d8be3c0163b760bf62fa0cb4eec21ae","scripts":{"link":"tsc","build":"tsup index.ts --format cjs,esm --dts"},"_npmUser":{"name":"algoholics","email":"shinrai.dev@gmail.com"},"_npmVersion":"9.7.1","description":"Aegis Core","directories":{},"_nodeVersion":"19.7.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.2.4","typescript":"^5.5.4"},"_npmOperationalInternal":{"tmp":"tmp/aegis-core_1.0.2_1725812262140_0.5432182817053803","host":"s3://npm-registry-packages"}},"1.0.3":{"name":"@algoholics/aegis-core","version":"1.0.3","license":"MIT","_id":"@algoholics/aegis-core@1.0.3","maintainers":[{"name":"algoholics","email":"shinrai.dev@gmail.com"}],"dist":{"shasum":"b789c59a925289419dbc9fd2897cf0df7fe83978","tarball":"https://registry.npmjs.org/@algoholics/aegis-core/-/aegis-core-1.0.3.tgz","fileCount":8,"integrity":"sha512-u+1WHSwoWpdBUUooPSP+EouXrXPgh4hJvAWGSU2JRQbiB8iMJXlOq1pw8XuiP4RfVuX8nCqJw0Y9Jx8ezyH1hA==","signatures":[{"sig":"MEUCIQDRFiwo6B3HNqYQsre3aeLgv264r1iqwa8FQSYR0Nb2XQIgDVPQ3d8Yo5mOs/hhi6KajHnSO1tD/7BRq/eF+oK/Txg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":91757},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"03ca13804d8be3c0163b760bf62fa0cb4eec21ae","scripts":{"link":"tsc","build":"tsup index.ts --format cjs,esm --dts"},"_npmUser":{"name":"algoholics","email":"shinrai.dev@gmail.com"},"_npmVersion":"9.7.1","description":"Aegis Core","directories":{},"_nodeVersion":"19.7.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.2.4","typescript":"^5.5.4"},"_npmOperationalInternal":{"tmp":"tmp/aegis-core_1.0.3_1725814346448_0.6905366181191315","host":"s3://npm-registry-packages"}},"1.0.4":{"name":"@algoholics/aegis-core","version":"1.0.4","license":"MIT","_id":"@algoholics/aegis-core@1.0.4","maintainers":[{"name":"algoholics","email":"shinrai.dev@gmail.com"}],"dist":{"shasum":"4d2bbff6cd19eb8b64227d588f7e6fa8a3970053","tarball":"https://registry.npmjs.org/@algoholics/aegis-core/-/aegis-core-1.0.4.tgz","fileCount":8,"integrity":"sha512-rPTt/AvVYaphBHmKArLYtjQX+TjrVX9tZV/L+8ZzCmPN/p9nU5TCkpACmiooZklLqlej7QX5XEwfgVtiBujH6A==","signatures":[{"sig":"MEUCIQCHYzbM+vWsu9sHSjZPYhkBxoJBdsq6A4ubKSXpy2IHSAIgBV4SOo4xctlLgVBWjieBqOILG+Lb2/ignS8WUsqGDVc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":91733},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"03ca13804d8be3c0163b760bf62fa0cb4eec21ae","scripts":{"link":"tsc","build":"tsup index.ts --format cjs,esm --dts"},"_npmUser":{"name":"algoholics","email":"shinrai.dev@gmail.com"},"_npmVersion":"9.7.1","description":"Aegis Core","directories":{},"_nodeVersion":"19.7.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.2.4","typescript":"^5.5.4"},"_npmOperationalInternal":{"tmp":"tmp/aegis-core_1.0.4_1725814610742_0.28898228262229586","host":"s3://npm-registry-packages"}},"1.0.5":{"name":"@algoholics/aegis-core","version":"1.0.5","license":"MIT","_id":"@algoholics/aegis-core@1.0.5","maintainers":[{"name":"algoholics","email":"shinrai.dev@gmail.com"}],"dist":{"shasum":"31a7b2d1ee99304f7a311588d3678db917ed7a19","tarball":"https://registry.npmjs.org/@algoholics/aegis-core/-/aegis-core-1.0.5.tgz","fileCount":8,"integrity":"sha512-UMYTc11T05DY1PgKoGLzCUh+sy/9gpgILwNh3TWzXw06A+Vqmrk2wk/fhdmahnOn1BJEfOVQLzJdfdVFC4BYlA==","signatures":[{"sig":"MEQCICE6CiHNSvXa9mji3V5aIatHntd/Wstw4tjj3o5dkEwEAiAS/9Agf06Z9PNqQ/R9MTcITYyIhDExAoSAuQzMHArkhA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":91730},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"03ca13804d8be3c0163b760bf62fa0cb4eec21ae","scripts":{"link":"tsc","build":"tsup index.ts --format cjs,esm --dts"},"_npmUser":{"name":"algoholics","email":"shinrai.dev@gmail.com"},"_npmVersion":"9.7.1","description":"Aegis Core","directories":{},"_nodeVersion":"19.7.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.2.4","typescript":"^5.5.4"},"_npmOperationalInternal":{"tmp":"tmp/aegis-core_1.0.5_1725814768520_0.725103848235854","host":"s3://npm-registry-packages"}},"1.0.6":{"name":"@algoholics/aegis-core","version":"1.0.6","license":"MIT","_id":"@algoholics/aegis-core@1.0.6","maintainers":[{"name":"algoholics","email":"shinrai.dev@gmail.com"}],"dist":{"shasum":"464fa3a1a9de57c409418bf5c430966765b6ff81","tarball":"https://registry.npmjs.org/@algoholics/aegis-core/-/aegis-core-1.0.6.tgz","fileCount":9,"integrity":"sha512-C5U05SdJzNfkxcImkYvyXXSi5YKBzqqAxHbfgBdjL79TCXQvkwGt1LDaCWXzyNaZDMNaqoE589rGlTP3m5dNJA==","signatures":[{"sig":"MEUCIGvbTxb3Q7zTE+hQsX1NHXdHSdzFJYe8/Qw8rVcRblbFAiEA9JSAGvpxi7Qp35zSFNm4PnWC6G+3jIhizcZGaituNA4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":94923},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"067ce63955fa558e231607a0d3e5e85793982680","scripts":{"link":"tsc","build":"tsup index.ts --format cjs,esm --dts"},"_npmUser":{"name":"algoholics","email":"shinrai.dev@gmail.com"},"_npmVersion":"9.7.1","description":"Aegis Core","directories":{},"_nodeVersion":"19.7.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.2.4","typescript":"^5.5.4"},"_npmOperationalInternal":{"tmp":"tmp/aegis-core_1.0.6_1725949803454_0.7982551058200289","host":"s3://npm-registry-packages"}},"1.0.7":{"name":"@algoholics/aegis-core","version":"1.0.7","license":"MIT","_id":"@algoholics/aegis-core@1.0.7","maintainers":[{"name":"algoholics","email":"shinrai.dev@gmail.com"}],"dist":{"shasum":"64645f25da11eae8e09b7732a8944b40af8e18d9","tarball":"https://registry.npmjs.org/@algoholics/aegis-core/-/aegis-core-1.0.7.tgz","fileCount":9,"integrity":"sha512-vxZYFI1oN7h68cjiIueLKaWYAmYCbgX2HHPnrk1JTjA1eMLcwn7sRd6gGGY+ljnN6KvjGKFMwqRw++m2Svoxqw==","signatures":[{"sig":"MEUCIFra3rZ7fCuTL6f3JvXqldTRLgkjnQlD6jOmSKM0DxviAiEA5f1F1gUfmWh51Oqb1KYgPzX9ScQf8LoGh0tt2iMYGaE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":95188},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"067ce63955fa558e231607a0d3e5e85793982680","scripts":{"link":"tsc","build":"tsup index.ts --format cjs,esm --dts"},"_npmUser":{"name":"algoholics","email":"shinrai.dev@gmail.com"},"_npmVersion":"9.7.1","description":"Aegis Core","directories":{},"_nodeVersion":"19.7.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.2.4","typescript":"^5.5.4"},"_npmOperationalInternal":{"tmp":"tmp/aegis-core_1.0.7_1727175769395_0.511444073292108","host":"s3://npm-registry-packages"}},"1.0.8":{"name":"@algoholics/aegis-core","license":"MIT","version":"1.0.8","description":"Aegis Core","main":"dist/index.js","module":"dist/index.mjs","types":"dist/index.d.ts","scripts":{"build":"tsup index.ts --format cjs,esm --dts","link":"tsc"},"devDependencies":{"tsup":"^8.2.4","typescript":"^5.5.4"},"gitHead":"067ce63955fa558e231607a0d3e5e85793982680","_id":"@algoholics/aegis-core@1.0.8","_nodeVersion":"19.7.0","_npmVersion":"9.7.1","dist":{"integrity":"sha512-Id+yfsbASFhoxfdpIb+CHMcVG3b81hDZb7zU7OolpQiMCa+qhaJKhi09kBA7l8ltLM8i/cQ3TpZU6ijE+FlvKQ==","shasum":"c6c74ec552eee0cf62c596bc3dbb21c35600e074","tarball":"https://registry.npmjs.org/@algoholics/aegis-core/-/aegis-core-1.0.8.tgz","fileCount":9,"unpackedSize":94943,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDxYmx3uuYge4rZo3341O3PvB5uINirjO2QP+sEOVlFdAIhAIC3P3RyrWH471fsAPQOrPCLfcpF/dVR4/1AxkNDkzZI"}]},"_npmUser":{"name":"algoholics","email":"shinrai.dev@gmail.com"},"directories":{},"maintainers":[{"name":"algoholics","email":"shinrai.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/aegis-core_1.0.8_1727176568651_0.3512537533176161"},"_hasShrinkwrap":false}},"time":{"created":"2024-09-08T15:33:57.332Z","modified":"2024-09-24T11:16:09.067Z","1.0.0":"2024-09-08T15:33:57.710Z","1.0.1":"2024-09-08T15:57:19.531Z","1.0.2":"2024-09-08T16:17:42.303Z","1.0.3":"2024-09-08T16:52:26.626Z","1.0.4":"2024-09-08T16:56:50.928Z","1.0.5":"2024-09-08T16:59:28.715Z","1.0.6":"2024-09-10T06:30:03.612Z","1.0.7":"2024-09-24T11:02:49.630Z","1.0.8":"2024-09-24T11:16:08.891Z"},"license":"MIT","description":"Aegis Core","maintainers":[{"name":"algoholics","email":"shinrai.dev@gmail.com"}],"readme":"# Aegis Core\n\n## Description\n\nThe Aegis Core NPM package adds core passive tracking functionality to any framework website. It provides various tracking methods like mouse movement, keystroke dynamics, browser properties, device information, network details, and touch gestures. Additionally, it allows sending buffered tracking data to the backend.\n\n## Installation\n\nTo install the package, run the following command:\n[NPM package](https://www.npmjs.com/package/@algoholics/aegis-core)\n\n```bash\nnpm i @algoholics/aegis-core\n```\n\n## Usage\n\nTo use the package, import the `createTrackerInstance` factory function and create a tracker instance by providing either an `apiKey` or an `engineURL`:\n\n```javascript\nimport { createTrackerInstance } from '@algoholics/aegis-core';\n\nconst tracker = createTrackerInstance({ apiKey: 'your-api-key' });\n// or\nconst tracker = createTrackerInstance({ engineURL: 'https://your-engine-url.com' });\n```\n\n### TrackerInstance Methods\n\n1. **trackMouseMovement**: Tracks and buffers mouse movements, including speed and distance.\n\n   ```javascript\n   tracker.trackMouseMovement();\n   ```\n2. **trackKeystrokeDynamics**: Tracks keystroke dynamics (key press duration and count).\n\n   ```javascript\n   tracker.trackKeystrokeDynamics();\n   ```\n3. **getBrowserProperties**: Retrieves and buffers browser properties, such as user agent, window size, and timezone.\n\n   ```javascript\n   tracker.getBrowserProperties();\n   ```\n4. **getDeviceInfo**: Retrieves and buffers device information like screen dimensions and whether the device is mobile.\n\n   ```javascript\n   tracker.getDeviceInfo();\n   ```\n5. **getNetworkDetails**: Retrieves and buffers network details such as connection type, round-trip time (RTT), and downlink speed.\n\n   ```javascript\n   tracker.getNetworkDetails();\n   ```\n6. **trackTouchGestures**: Tracks touch gestures on mobile devices, including touch start, move, and end events.\n\n   ```javascript\n   tracker.trackTouchGestures();\n   ```\n7. **sendToBackend**: Sends the buffered data to the backend server specified by either the `apiKey` or `engineURL`. Data is automatically cleared from local storage after sending.\n\n   ```javascript\n   const response = await tracker.sendToBackend();\n   ```\n\n### Example\n\n```javascript\nimport { createTrackerInstance } from '@algoholics/aegis-core';\n\nconst tracker = createTrackerInstance({ apiKey: 'your-api-key' });\n\ntracker.trackMouseMovement();\ntracker.trackKeystrokeDynamics();\ntracker.getBrowserProperties();\ntracker.getDeviceInfo();\ntracker.getNetworkDetails();\ntracker.trackTouchGestures();\n\n// Send data to the backend when ready\nconst response = await tracker.sendToBackend();\nconsole.log(response);\n```\n\n### API Details\n\n- **`apiKey`**: Used to authenticate the tracking instance with a backend.\n- **`engineURL`**:  Infer URL to the self hosted python engine using [Aegis-Engine](https://github.com/killerz3/aegis-engine)\n- **`addToBuffer(data)`**: Adds tracking data to the buffer and saves it in localStorage.\n- **`saveToStorage()`**: Persists the buffered data into localStorage.\n- **`sendToBackend()`**: Sends all buffered data to the backend and clears the local storage after a successful response.\n","readmeFilename":"README.md"}