analyjs
v0.0.1-experimental
Published
Data Analyzer User For Website, Free, Open-source, And Easy To Use.
Maintainers
Readme
AnaLy.js v1.0
Overview
AnaLy.js is a lightweight and privacy-aware JavaScript library designed for browser and device snapshotting.
It provides structured insights into client environments, including browser information, operating system, locale, hardware capabilities, network signals, media devices, input devices, and JavaScript feature support—while offering configurable anonymization controls to respect user privacy.
AnaLy.js is suitable for analytics preprocessing, telemetry, diagnostics, and research-oriented client profiling.
Key Features
- Comprehensive browser and device snapshot generation
- Privacy-first design with configurable anonymization options
- Supports synchronous and asynchronous snapshot workflows
- One-time and realtime data delivery
- Debounced network transmission to reduce overhead
- Built-in privacy and security heuristics detection
- Compatible with ESM, CommonJS, and UMD environments
Installation
npm install analyjs
# or
yarn add analyjs
# or
pnpm add analyjsUsage
ESM (Recommended)
import AnaLy from "analyjs";
// Synchronous snapshot
const snapshot = AnaLy.getSnapshot({ customField: "example" });
// Asynchronous snapshot
AnaLy.getSnapshotAsync({ customField: "example" }).then(console.log);
// Send snapshot data to a server
AnaLy.sendData("https://your-server.com/endpoint", { extra: "info" });
// Enable realtime tracking
AnaLy.setupRealtime("https://your-server.com/endpoint", { userId: 123 });
// Stop realtime tracking
AnaLy.stopRealtime();
// Initialize with configuration
AnaLy.init({
autoSend: true,
url: "https://your-server.com/endpoint"
});
// Log full snapshot to console
AnaLy.logAll();CommonJS
const AnaLy = require("analyjs");
const snapshot = AnaLy.getSnapshot();
AnaLy.getSnapshotAsync().then(console.log);UMD / Browser
<script src="https://cdn.kyrt.my.id/libs/jsutils/[email protected]"></script>
<script>
const snapshot = AnaLy.getSnapshot();
console.log(snapshot);
</script>Configuration
| Option | Type | Default | Description |
|------|------|---------|-------------|
| anonymizeIP | boolean | true | Hide or anonymize IP address |
| anonymizeUA | boolean | false | Hide or anonymize user-agent |
| anonymizeHardware | boolean | true | Hide CPU cores, memory, and GPU details |
| autoSend | boolean | false | Automatically send snapshot on initialization |
| url | string | null | null | Target server URL for data submission |
| debounceMs | number | 1200 | Debounce delay for realtime sending |
| verbose | boolean | false | Enable verbose debug logging |
| preferAsyncSnapshotForSend | boolean | true | Use async snapshot when auto-sending |
| includeOnInit | boolean | true | Send initial snapshot during init() |
API Reference
Snapshot Methods
getSnapshot(extra?, config?)getSnapshotAsync(extra?, config?)
Networking
sendData(url, extra?, options?)setupRealtime(url, extra?, config?)stopRealtime()
Lifecycle
init(config?)logAll(extra?, config?)
Low-level Detectors
detectBrowser()detectOS()detectJSFeatures()detectHardware()detectLocale()detectMediaDevices()detectStorageEstimate()
License
© 2025 OpenDN Foundation
Released under the MIT License.
