{"_id":"@allem-sdk/analytics","_rev":"4-5ee7aae11048f2935c64e93a07bec018","name":"@allem-sdk/analytics","dist-tags":{"latest":"0.1.3"},"versions":{"0.1.0":{"name":"@allem-sdk/analytics","version":"0.1.0","keywords":["allem-sdk","react","hooks","analytics","tracking","mixpanel","segment"],"author":{"name":"Ahmed Allem"},"license":"MIT","_id":"@allem-sdk/analytics@0.1.0","maintainers":[{"name":"kingofmit","email":"allem.ahmed@gmail.com"}],"homepage":"https://github.com/kingofmit/allem-sdk#readme","bugs":{"url":"https://github.com/kingofmit/allem-sdk/issues"},"dist":{"shasum":"4d9c6524a68c19d8f1f6674b3634d4a19518a587","tarball":"https://registry.npmjs.org/@allem-sdk/analytics/-/analytics-0.1.0.tgz","fileCount":8,"integrity":"sha512-UqG1NL3zD0JZug8hUy08uSBYFHt+p1yDTRq5ZqSZbCE+//OIumbHtiBtAA8fXhBsS9C+MdLguRfh0E1ikhgUzg==","signatures":[{"sig":"MEYCIQDwauBbDdU4PmBDL/whvQjeLytSF+/UqC0PBsnJgxyQVAIhAIpqZbBih/e9LmucOzM6ePCaPDMf+Ah0FmZjHzVRNV97","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13846},"main":"./dist/index.js","_from":"file:allem-sdk-analytics-0.1.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rm -rf dist"},"_npmUser":{"name":"kingofmit","email":"allem.ahmed@gmail.com"},"_resolved":"/private/var/folders/4v/rph2hgm54rqf12vzbjxpn5kc0000gn/T/89a8314b4228543f33d6c8b0453a7e88/allem-sdk-analytics-0.1.0.tgz","_integrity":"sha512-UqG1NL3zD0JZug8hUy08uSBYFHt+p1yDTRq5ZqSZbCE+//OIumbHtiBtAA8fXhBsS9C+MdLguRfh0E1ikhgUzg==","repository":{"url":"git+https://github.com/kingofmit/allem-sdk.git","type":"git","directory":"packages/analytics"},"_npmVersion":"11.12.1","description":"Provider-agnostic analytics hooks for React","directories":{},"sideEffects":false,"_nodeVersion":"26.0.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","jsdom":"^25.0.0","react":"^19.0.0","vitest":"^3.0.0","react-dom":"^19.0.0","typescript":"^5.8.0","@types/react":"^19.0.0","@testing-library/react":"^16.0.0"},"peerDependencies":{"react":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/analytics_0.1.0_1779452649168_0.8545117608049675","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@allem-sdk/analytics","version":"0.1.1","keywords":["allem-sdk","react","hooks","analytics","tracking","mixpanel","segment"],"author":{"name":"Ahmed Allem"},"license":"MIT","_id":"@allem-sdk/analytics@0.1.1","maintainers":[{"name":"kingofmit","email":"allem.ahmed@gmail.com"}],"homepage":"https://github.com/kingofmit/allem-sdk#readme","bugs":{"url":"https://github.com/kingofmit/allem-sdk/issues"},"dist":{"shasum":"8302498942c693981884929ba542e11892bb0985","tarball":"https://registry.npmjs.org/@allem-sdk/analytics/-/analytics-0.1.1.tgz","fileCount":8,"integrity":"sha512-R5mea47WECYC3qaWtH2/Tl/qK2tUCX8IUrTmfp6b9LHVQb0/qwHOCaf3F+E/mBIQPiSdVQbuzLBzg2WHcof9DQ==","signatures":[{"sig":"MEUCIAoPCK/FvbkBfvVVPjRQ0hp+nk+T4K020nKVrRBTG+eSAiEAtKDkGp+ULbaLeX9llUE2kVtHRIqUV0AgVJV6SIQVbNk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13844},"main":"./dist/index.js","_from":"file:allem-sdk-analytics-0.1.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rm -rf dist"},"_npmUser":{"name":"kingofmit","email":"allem.ahmed@gmail.com"},"_resolved":"/private/var/folders/4v/rph2hgm54rqf12vzbjxpn5kc0000gn/T/7c85fd5ca41509a411e80fc0d2db257c/allem-sdk-analytics-0.1.1.tgz","_integrity":"sha512-R5mea47WECYC3qaWtH2/Tl/qK2tUCX8IUrTmfp6b9LHVQb0/qwHOCaf3F+E/mBIQPiSdVQbuzLBzg2WHcof9DQ==","repository":{"url":"git+https://github.com/kingofmit/allem-sdk.git","type":"git","directory":"packages/analytics"},"_npmVersion":"11.12.1","description":"Provider-agnostic analytics hooks for React","directories":{},"sideEffects":false,"_nodeVersion":"26.0.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","jsdom":"^25.0.0","react":"^19.0.0","vitest":"^3.0.0","react-dom":"^19.0.0","typescript":"^5.8.0","@types/react":"^19.0.0","@testing-library/react":"^16.0.0"},"peerDependencies":{"react":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/analytics_0.1.1_1779454886630_0.2836651779439574","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@allem-sdk/analytics","version":"0.1.2","keywords":["allem-sdk","react","react-hooks","analytics","tracking","mixpanel","segment","posthog","amplitude","event-tracking","page-view","typescript","nextjs"],"author":{"name":"Ahmed Allem"},"license":"MIT","_id":"@allem-sdk/analytics@0.1.2","maintainers":[{"name":"kingofmit","email":"allem.ahmed@gmail.com"}],"homepage":"https://github.com/kingofmit/allem-sdk#readme","bugs":{"url":"https://github.com/kingofmit/allem-sdk/issues"},"dist":{"shasum":"0ebf0c9f3c6344170fdc6ee4ccdc8a43e88e4e8f","tarball":"https://registry.npmjs.org/@allem-sdk/analytics/-/analytics-0.1.2.tgz","fileCount":8,"integrity":"sha512-7Wnbl55+8JnLDC2TwH/z4+Fy/nXvH9p04CmsUN2xPiUuMz1S7AlMJrKnaSC0kFCZ+8qH0uG5w3wugeDU9F7bxw==","signatures":[{"sig":"MEQCIH2OqfgFMeUjAZMgaWNAsHqCcncKPirOZ5v2+MSI9FzmAiAcWJomAVX1NchhYvvg2fWnRxZblAJw7nE5f6lxunUFEQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14215},"main":"./dist/index.js","_from":"file:allem-sdk-analytics-0.1.2.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rm -rf dist"},"_npmUser":{"name":"kingofmit","email":"allem.ahmed@gmail.com"},"_resolved":"/private/var/folders/4v/rph2hgm54rqf12vzbjxpn5kc0000gn/T/fb9f8c2e83550e85ec3c66e448c7029f/allem-sdk-analytics-0.1.2.tgz","_integrity":"sha512-7Wnbl55+8JnLDC2TwH/z4+Fy/nXvH9p04CmsUN2xPiUuMz1S7AlMJrKnaSC0kFCZ+8qH0uG5w3wugeDU9F7bxw==","repository":{"url":"git+https://github.com/kingofmit/allem-sdk.git","type":"git","directory":"packages/analytics"},"_npmVersion":"11.12.1","description":"Provider-agnostic analytics hooks for React. Works with Mixpanel, Segment, PostHog, Amplitude, and any custom adapter. useTrack, usePageView, useIdentify.","directories":{},"sideEffects":false,"_nodeVersion":"26.0.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","jsdom":"^25.0.0","react":"^19.0.0","vitest":"^3.0.0","react-dom":"^19.0.0","typescript":"^5.8.0","@types/react":"^19.0.0","@testing-library/react":"^16.0.0"},"peerDependencies":{"react":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/analytics_0.1.2_1779499471910_0.10121226353903334","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@allem-sdk/analytics","version":"0.1.3","description":"Provider-agnostic analytics hooks for React. Works with Mixpanel, Segment, PostHog, Amplitude, and any custom adapter. useTrack, usePageView, useIdentify.","license":"MIT","author":{"name":"Ahmed Allem"},"main":"./dist/index.js","module":"./dist/index.mjs","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"sideEffects":false,"devDependencies":{"@testing-library/react":"^16.0.0","@types/react":"^19.0.0","jsdom":"^25.0.0","react":"^19.0.0","react-dom":"^19.0.0","tsup":"^8.4.0","typescript":"^5.8.0","vitest":"^3.0.0"},"peerDependencies":{"react":">=18.0.0"},"repository":{"type":"git","url":"git+https://github.com/kingofmit/allem-sdk.git","directory":"packages/analytics"},"keywords":["allem-sdk","react","react-hooks","analytics","tracking","mixpanel","segment","posthog","amplitude","event-tracking","page-view","typescript","nextjs"],"publishConfig":{"access":"public"},"scripts":{"build":"tsup","dev":"tsup --watch","clean":"rm -rf dist","test":"vitest run"},"_id":"@allem-sdk/analytics@0.1.3","bugs":{"url":"https://github.com/kingofmit/allem-sdk/issues"},"homepage":"https://github.com/kingofmit/allem-sdk#readme","_integrity":"sha512-Qs2Cu3swgVFsKJEb+lydaXrY/oVRu8QNBIoou2XSG+jyAJ5gUwd+rVW8aUSsRiZVxOqdLsDEhdftaL2adtHVwQ==","_resolved":"/private/var/folders/4v/rph2hgm54rqf12vzbjxpn5kc0000gn/T/62b3cb37c1e7020353f9b357ad387557/allem-sdk-analytics-0.1.3.tgz","_from":"file:allem-sdk-analytics-0.1.3.tgz","_nodeVersion":"26.0.0","_npmVersion":"11.12.1","dist":{"integrity":"sha512-Qs2Cu3swgVFsKJEb+lydaXrY/oVRu8QNBIoou2XSG+jyAJ5gUwd+rVW8aUSsRiZVxOqdLsDEhdftaL2adtHVwQ==","shasum":"69e2696abc2f0ebde6af3e9a5a6528a6f191fd3d","tarball":"https://registry.npmjs.org/@allem-sdk/analytics/-/analytics-0.1.3.tgz","fileCount":8,"unpackedSize":23069,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIArKToJbOWKZTtxFMe6djHQqct7ptN05he4s+LMTYqKJAiEA+X0O83zrpUExOzqkn+/Z4xcE/GSnXJxQTWfX2FwQ1L8="}]},"_npmUser":{"name":"kingofmit","email":"allem.ahmed@gmail.com"},"directories":{},"maintainers":[{"name":"kingofmit","email":"allem.ahmed@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/analytics_0.1.3_1779571359707_0.5613577651896673"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-22T12:24:09.075Z","modified":"2026-05-23T21:22:39.997Z","0.1.0":"2026-05-22T12:24:09.412Z","0.1.1":"2026-05-22T13:01:26.814Z","0.1.2":"2026-05-23T01:24:32.048Z","0.1.3":"2026-05-23T21:22:39.853Z"},"bugs":{"url":"https://github.com/kingofmit/allem-sdk/issues"},"author":{"name":"Ahmed Allem"},"license":"MIT","homepage":"https://github.com/kingofmit/allem-sdk#readme","keywords":["allem-sdk","react","react-hooks","analytics","tracking","mixpanel","segment","posthog","amplitude","event-tracking","page-view","typescript","nextjs"],"repository":{"type":"git","url":"git+https://github.com/kingofmit/allem-sdk.git","directory":"packages/analytics"},"description":"Provider-agnostic analytics hooks for React. Works with Mixpanel, Segment, PostHog, Amplitude, and any custom adapter. useTrack, usePageView, useIdentify.","maintainers":[{"name":"kingofmit","email":"allem.ahmed@gmail.com"}],"readme":"<p align=\"center\">\n  <img src=\"https://raw.githubusercontent.com/kingofmit/allem-sdk/main/.github/AllemSDK.png\" alt=\"Allem SDK\" />\n</p>\n\n<p align=\"center\">\n  <a href=\"https://www.npmjs.com/package/@allem-sdk/analytics\"><img src=\"https://img.shields.io/npm/v/@allem-sdk/analytics.svg\" alt=\"npm version\" /></a>\n  <a href=\"https://github.com/kingofmit/allem-sdk/blob/main/LICENSE\"><img src=\"https://img.shields.io/badge/license-MIT-blue.svg\" alt=\"License\" /></a>\n  <img src=\"https://img.shields.io/badge/react-19-61dafb\" alt=\"React 19\" />\n  <img src=\"https://img.shields.io/badge/typescript-strict-blue\" alt=\"TypeScript\" />\n</p>\n\n# @allem-sdk/analytics\n\nProvider-agnostic analytics hooks for React. Bring your own analytics provider (Mixpanel, Segment, PostHog, etc.) via a simple adapter interface. Supports multiple adapters simultaneously.\n\n## Installation\n\n```bash\nnpm install @allem-sdk/analytics\n```\n\n## Usage\n\n```tsx\nimport { AnalyticsProvider, useTrack, usePageView, useIdentify } from \"@allem-sdk/analytics\";\n\n// Define adapters for your providers (use one or many)\nconst mixpanelAdapter = {\n  track: (event, properties) => mixpanel.track(event, properties),\n  page: (name, properties) => mixpanel.track_pageview({ page: name, ...properties }),\n  identify: (userId, traits) => mixpanel.identify(userId),\n};\n\nconst posthogAdapter = {\n  track: (event, properties) => posthog.capture(event, properties),\n  page: (name, properties) => posthog.capture(\"$pageview\", { page: name, ...properties }),\n  identify: (userId, traits) => posthog.identify(userId, traits),\n};\n\nfunction App() {\n  return (\n    <AnalyticsProvider adapters={[mixpanelAdapter, posthogAdapter]}>\n      <MyApp />\n    </AnalyticsProvider>\n  );\n}\n\nfunction ProductPage({ product }) {\n  const track = useTrack();\n  usePageView(\"Product Page\", { productId: product.id });\n\n  return (\n    <button onClick={() => track(\"Add to Cart\", { productId: product.id })}>\n      Add to Cart\n    </button>\n  );\n}\n```\n\n## Built-in Adapters\n\nPre-built adapters for popular analytics providers:\n\n```tsx\nimport { mixpanelAdapter, posthogAdapter, segmentAdapter, consoleAdapter } from \"@allem-sdk/analytics\";\n```\n\n| Adapter | Usage | Description |\n|---------|-------|-------------|\n| `mixpanelAdapter(mixpanel)` | Pass your initialized Mixpanel instance | Tracks events, page views, and identifies users with `people.set` |\n| `posthogAdapter(posthog)` | Pass your initialized PostHog instance | Uses `capture` for events and `$pageview` for pages |\n| `segmentAdapter(analytics)` | Pass `window.analytics` or Analytics.js instance | Direct mapping to Segment's `track`, `page`, `identify` |\n| `consoleAdapter(prefix?)` | No dependencies | Logs all events to console. Great for development. |\n\n```tsx\nimport mixpanel from \"mixpanel-browser\";\nimport posthog from \"posthog-js\";\n\nmixpanel.init(\"YOUR_TOKEN\");\nposthog.init(\"YOUR_KEY\", { api_host: \"https://app.posthog.com\" });\n\n// Use one or many adapters simultaneously\n<AnalyticsProvider adapters={[mixpanelAdapter(mixpanel), posthogAdapter(posthog), consoleAdapter()]}>\n  <App />\n</AnalyticsProvider>\n```\n\n## Exports\n\n| Export | Type | Description |\n|--------|------|-------------|\n| `AnalyticsProvider` | Component | Context provider accepting one or multiple adapters |\n| `useTrack` | Hook | Returns a `track(event, properties)` function |\n| `usePageView` | Hook | Tracks a page view on mount |\n| `useIdentify` | Hook | Returns an `identify(userId, traits)` function |\n| `mixpanelAdapter` | Factory | Adapter for Mixpanel |\n| `posthogAdapter` | Factory | Adapter for PostHog |\n| `segmentAdapter` | Factory | Adapter for Segment / Analytics.js |\n| `consoleAdapter` | Factory | Console-logging adapter for development |\n\n## Part of [Allem SDK](https://github.com/kingofmit/allem-sdk)\n\nThis package can be used standalone or as part of the full SDK. Install `allem-sdk` to get all packages in one install.\n\n## Support\n\nIf you find Allem SDK useful, consider supporting its development:\n\n<a href=\"https://buymeacoffee.com/kingofmit\" target=\"_blank\"><img src=\"https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png\" alt=\"Buy Me A Coffee\" height=\"50\" /></a>\n\n## License\n\n[MIT](https://github.com/kingofmit/allem-sdk/blob/main/LICENSE) - [Ahmed Allem](https://kingallem.com)\n","readmeFilename":"README.md"}