{"_id":"@astralibx/email-analytics","_rev":"16-bbdd9a5d691affe58497b97c46adb94e","name":"@astralibx/email-analytics","dist-tags":{"latest":"2.5.4"},"versions":{"2.0.0":{"name":"@astralibx/email-analytics","version":"2.0.0","keywords":["email","analytics","event-tracking","aggregation","time-series","statistics"],"license":"MIT","_id":"@astralibx/email-analytics@2.0.0","maintainers":[{"name":"astralib","email":"1997hariprakash@gmail.com"}],"dist":{"shasum":"4c87bcb66aac5a0c9b7229e19eec774fc6d896ca","tarball":"https://registry.npmjs.org/@astralibx/email-analytics/-/email-analytics-2.0.0.tgz","fileCount":8,"integrity":"sha512-RuHLDklyxP6D+Q8pe41wrTN09walimdm8Tkc5xP5csxJqGuN9GYAdtFUgM4gR/7dm5/YO4X2sR2R5csy4UZj/g==","signatures":[{"sig":"MEYCIQCHZfEt81j2NKVoweeBXwAI1lL8sXK8knmMffDo93kr8gIhAMQrAqofhbMck4ETKlGYu174yuIk3syYi2v2mHfoat2P","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":241642},"main":"dist/index.cjs","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.cjs"}}},"gitHead":"90bb2bf5252faf77153e13838a24685ff946689d","scripts":{"dev":"tsup --watch","lint":"eslint src/","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"astralib","email":"1997hariprakash@gmail.com"},"_npmVersion":"10.9.4","description":"Email analytics with event recording, aggregation, time-series, and querying","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^3.23.0","@astralibx/core":"*"},"_hasShrinkwrap":false,"devDependencies":{"express":"^5.0.0","mongoose":"^8.12.1","typescript":"^5.8.2","@types/node":"^22.0.0","@types/express":"^5.0.0","@vitest/coverage-v8":"^3.0.0"},"peerDependencies":{"express":"^4.18.0 || ^5.0.0","mongoose":"^7.0.0 || ^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/email-analytics_2.0.0_1773484872420_0.9392355427751249","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"@astralibx/email-analytics","version":"2.0.1","keywords":["email","analytics","event-tracking","aggregation","time-series","statistics"],"license":"MIT","_id":"@astralibx/email-analytics@2.0.1","maintainers":[{"name":"astralib","email":"1997hariprakash@gmail.com"}],"dist":{"shasum":"7841ca73ea0e320f0687656b7ad73cd7f3e80a91","tarball":"https://registry.npmjs.org/@astralibx/email-analytics/-/email-analytics-2.0.1.tgz","fileCount":8,"integrity":"sha512-EaMsuXwVu26Sl+LLGTJxHTb0uiSErqOivEqm23lrYN3Va5WXrAnWIDhK78QHwfPO9MVp7MurFicAl4GYJBaqHg==","signatures":[{"sig":"MEUCIA4UcsHSnRKmMKV/KRGUFP7QTPSanqonGuAmy5H1r3RmAiEA1YrWS+7DWkGJR0Q6oXRJDJF+c3HWkDRx1JLcBQZRdig=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":242946},"main":"dist/index.cjs","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.cjs"}}},"gitHead":"8ce48711b5e81900520d103431334d8c727e1632","scripts":{"dev":"tsup --watch","lint":"eslint src/","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"astralib","email":"1997hariprakash@gmail.com"},"_npmVersion":"10.9.4","description":"Email analytics with event recording, aggregation, time-series, and querying","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^3.23.0","@astralibx/core":"*"},"_hasShrinkwrap":false,"devDependencies":{"express":"^5.0.0","mongoose":"^8.12.1","typescript":"^5.8.2","@types/node":"^22.0.0","@types/express":"^5.0.0","@vitest/coverage-v8":"^3.0.0"},"peerDependencies":{"express":"^4.18.0 || ^5.0.0","mongoose":"^7.0.0 || ^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/email-analytics_2.0.1_1773486356991_0.4442561093996342","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"@astralibx/email-analytics","version":"2.0.2","keywords":["email","analytics","event-tracking","aggregation","time-series","statistics"],"license":"MIT","_id":"@astralibx/email-analytics@2.0.2","maintainers":[{"name":"astralib","email":"1997hariprakash@gmail.com"}],"dist":{"shasum":"14edc698b0c92c07fd911e1a7850237302d84441","tarball":"https://registry.npmjs.org/@astralibx/email-analytics/-/email-analytics-2.0.2.tgz","fileCount":8,"integrity":"sha512-XPYxyAxLSuOHrYAGb6u7JiNyoPZ3oOZ4bFMll5KB7PcuiKZIWklgk35xG4PPme4rzY5UmIdyB3GLgR9CaqPmIA==","signatures":[{"sig":"MEQCIGPv2OEQVcsgHvVe4Hg3Xi5PnsAQpJaEXncYlhz4gLZeAiA34iDUpqqbGB3Bz8y0nmNvpPW8Us4lBTh17e+NKba5wA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":242732},"main":"dist/index.cjs","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.cjs"}}},"gitHead":"bc63efa7497c5471a74cf36dddf6b24fdaea846a","scripts":{"dev":"tsup --watch","lint":"eslint src/","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"astralib","email":"1997hariprakash@gmail.com"},"_npmVersion":"10.9.4","description":"Email analytics with event recording, aggregation, time-series, and querying","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^3.23.0","@astralibx/core":"*"},"_hasShrinkwrap":false,"devDependencies":{"express":"^5.0.0","mongoose":"^8.12.1","typescript":"^5.8.2","@types/node":"^22.0.0","@types/express":"^5.0.0","@vitest/coverage-v8":"^3.0.0"},"peerDependencies":{"express":"^4.18.0 || ^5.0.0","mongoose":"^7.0.0 || ^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/email-analytics_2.0.2_1773538299409_0.27916769937581853","host":"s3://npm-registry-packages-npm-production"}},"2.0.3":{"name":"@astralibx/email-analytics","version":"2.0.3","keywords":["email","analytics","event-tracking","aggregation","time-series","statistics"],"license":"MIT","_id":"@astralibx/email-analytics@2.0.3","maintainers":[{"name":"astralib","email":"1997hariprakash@gmail.com"}],"dist":{"shasum":"b6a7f7677c39aea2abe4fddcb89b05b7bf499a92","tarball":"https://registry.npmjs.org/@astralibx/email-analytics/-/email-analytics-2.0.3.tgz","fileCount":8,"integrity":"sha512-c5Mb98bLXMajCrwn5Wl49d3zFHiqrdUpdcA12QDHWZNC2QqfQJXiLbNmUpQ0Tu8bxxXSGrEcl41VP7DspTvfew==","signatures":[{"sig":"MEUCIQC0Ya39GslTeGgeLxRucxsTer6tkzaYDXTlmJVAZ0pKrQIgD6/v0Q0LC3Qw3ci5rk2bx1aZjHZZFieqA7U11Ls9Iro=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":242732},"main":"dist/index.cjs","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.cjs"}}},"gitHead":"6873cc5ab41179f97ac3613cacff82e8bae91fc7","scripts":{"dev":"tsup --watch","lint":"eslint src/","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"astralib","email":"1997hariprakash@gmail.com"},"_npmVersion":"10.9.4","description":"Email analytics with event recording, aggregation, time-series, and querying","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^3.23.0","@astralibx/core":"*"},"_hasShrinkwrap":false,"devDependencies":{"express":"^5.0.0","mongoose":"^8.12.1","typescript":"^5.8.2","@types/node":"^22.0.0","@types/express":"^5.0.0","@vitest/coverage-v8":"^3.0.0"},"peerDependencies":{"express":"^4.18.0 || ^5.0.0","mongoose":"^7.0.0 || ^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/email-analytics_2.0.3_1773540103271_0.5737969599958235","host":"s3://npm-registry-packages-npm-production"}},"2.0.4":{"name":"@astralibx/email-analytics","version":"2.0.4","keywords":["email","analytics","event-tracking","aggregation","time-series","statistics"],"license":"MIT","_id":"@astralibx/email-analytics@2.0.4","maintainers":[{"name":"astralib","email":"1997hariprakash@gmail.com"}],"dist":{"shasum":"d7ffd54e337ea8c3b8da6aa035f14dce2dcc6c34","tarball":"https://registry.npmjs.org/@astralibx/email-analytics/-/email-analytics-2.0.4.tgz","fileCount":8,"integrity":"sha512-W9RKJp3rXHEvkpc5HMEP1Sx+P/NGlzy4+6Q6pziuid7cXFG3gNwZPfGPKzansomDtFWyE58kEaiuTrbxH7Kh7w==","signatures":[{"sig":"MEUCIHPEPgFzQHlfBqfVFffL7pWQKFuXIGA9EViQOWu2IFUXAiEAzobN0RCg0wRZ6GejKVZgj5MeHzqA/cq1JJIQuRdDuTA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":243021},"main":"dist/index.cjs","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.cjs"}}},"gitHead":"1fa36fe6e7ea052c036db9beafddb56604792989","scripts":{"dev":"tsup --watch","lint":"eslint src/","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"astralib","email":"1997hariprakash@gmail.com"},"_npmVersion":"10.9.4","description":"Email analytics with event recording, aggregation, time-series, and querying","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^3.23.0","@astralibx/core":"*"},"_hasShrinkwrap":false,"devDependencies":{"express":"^5.0.0","mongoose":"^8.12.1","typescript":"^5.8.2","@types/node":"^22.0.0","@types/express":"^5.0.0","@vitest/coverage-v8":"^3.0.0"},"peerDependencies":{"express":"^4.18.0 || ^5.0.0","mongoose":"^7.0.0 || ^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/email-analytics_2.0.4_1773546210826_0.35491480190327684","host":"s3://npm-registry-packages-npm-production"}},"2.0.5":{"name":"@astralibx/email-analytics","version":"2.0.5","keywords":["email","analytics","event-tracking","aggregation","time-series","statistics"],"license":"MIT","_id":"@astralibx/email-analytics@2.0.5","maintainers":[{"name":"astralib","email":"1997hariprakash@gmail.com"}],"dist":{"shasum":"bf034f04f0b7e3bb61ad5faf43e47878e826133b","tarball":"https://registry.npmjs.org/@astralibx/email-analytics/-/email-analytics-2.0.5.tgz","fileCount":8,"integrity":"sha512-X3qX5oAIIV7FrA/dohllp/MlaHLsJND7WGdpLcqUfgrBleTNMwGFc2ga5SQYaAs4hulDkIFCIdQfeOfkAhd8HA==","signatures":[{"sig":"MEUCIQDpydW4Vyl4aQxYu15clU852JCQkAu2U2pl1EvyqvkVWwIgFIgR2k7Wo+qombShR8quTIbrmsVXMfd1mdTBRKGZCQU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":243024},"main":"dist/index.cjs","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.cjs"}}},"gitHead":"d7ab6788c230bddad77a9a36c2d0a5a154088941","scripts":{"dev":"tsup --watch","lint":"eslint src/","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"astralib","email":"1997hariprakash@gmail.com"},"_npmVersion":"10.9.4","description":"Email analytics with event recording, aggregation, time-series, and querying","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^3.23.0","@astralibx/core":"*"},"_hasShrinkwrap":false,"devDependencies":{"express":"^5.0.0","mongoose":"^8.12.1","typescript":"^5.8.2","@types/node":"^22.0.0","@types/express":"^5.0.0","@vitest/coverage-v8":"^3.0.0"},"peerDependencies":{"express":"^4.18.0 || ^5.0.0","mongoose":"^7.0.0 || ^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/email-analytics_2.0.5_1773549352464_0.12145057185824593","host":"s3://npm-registry-packages-npm-production"}},"2.0.6":{"name":"@astralibx/email-analytics","version":"2.0.6","keywords":["email","analytics","event-tracking","aggregation","time-series","statistics"],"license":"MIT","_id":"@astralibx/email-analytics@2.0.6","maintainers":[{"name":"astralib","email":"1997hariprakash@gmail.com"}],"homepage":"https://github.com/Hariprakash1997/astralib#readme","bugs":{"url":"https://github.com/Hariprakash1997/astralib/issues"},"dist":{"shasum":"7cac19aa5a404d5c03b12c324b191c73642c0f36","tarball":"https://registry.npmjs.org/@astralibx/email-analytics/-/email-analytics-2.0.6.tgz","fileCount":8,"integrity":"sha512-VifHO7kjep+jlE3GcE4rOgDxZo45sCb/m/gFkvEkiMpTwoSBT0Ou/hodp+rK5Dy7LYAUepjprhAcHjA5lOnsPw==","signatures":[{"sig":"MEUCIFwVVVtSYdlHOfWncLGFLpi7Kf2JykYu2Pw55bs9gmTnAiEAvw/zbkdJxBEBO3aRTTXeDputzwVQMmjYwtw19V3upFA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":243172},"main":"dist/index.cjs","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.cjs"}}},"gitHead":"69c122eb51c8a0eb112faa1dbe0a690e6163cc8b","scripts":{"dev":"tsup --watch","lint":"eslint src/","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"astralib","email":"1997hariprakash@gmail.com"},"repository":{"url":"git+https://github.com/Hariprakash1997/astralib.git","type":"git","directory":"packages/email-analytics"},"_npmVersion":"10.9.4","description":"Email analytics with event recording, aggregation, time-series, and querying","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^3.23.0","@astralibx/core":"*"},"_hasShrinkwrap":false,"devDependencies":{"express":"^5.0.0","mongoose":"^8.12.1","typescript":"^5.8.2","@types/node":"^22.0.0","@types/express":"^5.0.0","@vitest/coverage-v8":"^3.0.0"},"peerDependencies":{"express":"^4.18.0 || ^5.0.0","mongoose":"^7.0.0 || ^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/email-analytics_2.0.6_1773587159280_0.7559652204341125","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"@astralibx/email-analytics","version":"2.1.0","keywords":["email","analytics","event-tracking","aggregation","time-series","statistics"],"license":"MIT","_id":"@astralibx/email-analytics@2.1.0","maintainers":[{"name":"astralib","email":"1997hariprakash@gmail.com"}],"homepage":"https://github.com/Hariprakash1997/astralib#readme","bugs":{"url":"https://github.com/Hariprakash1997/astralib/issues"},"dist":{"shasum":"b26ae6ba9e3b84cb2cfe436beed048dedfcec34d","tarball":"https://registry.npmjs.org/@astralibx/email-analytics/-/email-analytics-2.1.0.tgz","fileCount":8,"integrity":"sha512-PyDW9QppdyK/FeNgtBoyDTeULXUjwXSZCgWJLqE993Yu+dLT5mORPGJ2YYpq9p8m7B5oSyBu2svOGmYATH71kw==","signatures":[{"sig":"MEUCIQCbr/IDrPy3sCcfQNV4qaGjUnUiEG4Pc4iU5Zoo9gF7mQIgYYibjo4+4l7qMPXUY8yfDIc30CYtkCDKZxW7U2McZ98=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":279033},"main":"dist/index.cjs","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.cjs"}}},"gitHead":"34207d19f1371a8025ec160528771c401d3655d7","scripts":{"dev":"tsup --watch","lint":"eslint src/","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"astralib","email":"1997hariprakash@gmail.com"},"repository":{"url":"git+https://github.com/Hariprakash1997/astralib.git","type":"git","directory":"packages/email-analytics"},"_npmVersion":"10.9.4","description":"Email analytics with event recording, aggregation, time-series, and querying","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^3.23.0","@astralibx/core":"*"},"_hasShrinkwrap":false,"devDependencies":{"express":"^5.0.0","mongoose":"^8.12.1","typescript":"^5.8.2","@types/node":"^22.0.0","@types/express":"^5.0.0","@vitest/coverage-v8":"^3.0.0"},"peerDependencies":{"express":"^4.18.0 || ^5.0.0","mongoose":"^7.0.0 || ^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/email-analytics_2.1.0_1773630911159_0.8830228146133938","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"@astralibx/email-analytics","version":"2.2.0","keywords":["email","analytics","event-tracking","aggregation","time-series","statistics"],"license":"MIT","_id":"@astralibx/email-analytics@2.2.0","maintainers":[{"name":"astralib","email":"1997hariprakash@gmail.com"}],"homepage":"https://github.com/Hariprakash1997/astralib#readme","bugs":{"url":"https://github.com/Hariprakash1997/astralib/issues"},"dist":{"shasum":"f3a5fcbf4170deaa29d8c44652a31c92fb549cc9","tarball":"https://registry.npmjs.org/@astralibx/email-analytics/-/email-analytics-2.2.0.tgz","fileCount":8,"integrity":"sha512-wc07tq06By9ybLSfnnfwCha2ER7hbPHtwuSP26+55qSXNkKH8ibq3pCaVpsIg9nPbhTTusUGvBkUq+7253PZbQ==","signatures":[{"sig":"MEQCIBp5JPiO9NIDenrLhgza5p6AFJVKAJkgGfXuRAs5xgXcAiAznR4gjnBah5Dm5mp0IGQPV9zL4yq0yf8YHPCJ6fHYsw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":295405},"main":"dist/index.cjs","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.cjs"}}},"gitHead":"d9e18791e91ee363a9f1cc3dc521dfbc8daae4f4","scripts":{"dev":"tsup --watch","lint":"eslint src/","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"astralib","email":"1997hariprakash@gmail.com"},"repository":{"url":"git+https://github.com/Hariprakash1997/astralib.git","type":"git","directory":"packages/email-analytics"},"_npmVersion":"10.9.4","description":"Email analytics with event recording, aggregation, time-series, and querying","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^3.23.0","@astralibx/core":"*"},"_hasShrinkwrap":false,"devDependencies":{"express":"^5.0.0","mongoose":"^8.12.1","typescript":"^5.8.2","@types/node":"^22.0.0","@types/express":"^5.0.0","@vitest/coverage-v8":"^3.0.0"},"peerDependencies":{"express":"^4.18.0 || ^5.0.0","mongoose":"^7.0.0 || ^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/email-analytics_2.2.0_1773669874825_0.2913165847094774","host":"s3://npm-registry-packages-npm-production"}},"2.3.0":{"name":"@astralibx/email-analytics","version":"2.3.0","keywords":["email","analytics","event-tracking","aggregation","time-series","statistics"],"license":"MIT","_id":"@astralibx/email-analytics@2.3.0","maintainers":[{"name":"astralib","email":"1997hariprakash@gmail.com"}],"homepage":"https://github.com/Hariprakash1997/astralib#readme","bugs":{"url":"https://github.com/Hariprakash1997/astralib/issues"},"dist":{"shasum":"4ff362d5c3a13466cbba2e2e930968b08bafca57","tarball":"https://registry.npmjs.org/@astralibx/email-analytics/-/email-analytics-2.3.0.tgz","fileCount":8,"integrity":"sha512-qS1APjCh2mUnZg82W5iLwmwuAPkubybkLjDITbd8mirTVAsuKoU0cnrIAht7UARugdJSOrMVbz3PqB2B4g+wrA==","signatures":[{"sig":"MEUCIQCrD9vN3gOXTyd40JSJhZAE4qPqyDbcgMnffhj7AHpqHwIgCYXktP3e9dj4CnAI/nNICvToBJbVgfQ4BaTeP07HFwY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":295405},"main":"dist/index.cjs","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.cjs"}}},"gitHead":"5170469866f6a25acd492d3ca545a9fdad9c8042","scripts":{"dev":"tsup --watch","lint":"eslint src/","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"astralib","email":"1997hariprakash@gmail.com"},"repository":{"url":"git+https://github.com/Hariprakash1997/astralib.git","type":"git","directory":"packages/email-analytics"},"_npmVersion":"10.9.4","description":"Email analytics with event recording, aggregation, time-series, and querying","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^3.23.0","@astralibx/core":"*"},"_hasShrinkwrap":false,"devDependencies":{"express":"^5.0.0","mongoose":"^8.12.1","typescript":"^5.8.2","@types/node":"^22.0.0","@types/express":"^5.0.0","@vitest/coverage-v8":"^3.0.0"},"peerDependencies":{"express":"^4.18.0 || ^5.0.0","mongoose":"^7.0.0 || ^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/email-analytics_2.3.0_1773674589114_0.6194323476345449","host":"s3://npm-registry-packages-npm-production"}},"2.4.0":{"name":"@astralibx/email-analytics","version":"2.4.0","keywords":["email","analytics","event-tracking","aggregation","time-series","statistics"],"license":"MIT","_id":"@astralibx/email-analytics@2.4.0","maintainers":[{"name":"astralib","email":"1997hariprakash@gmail.com"}],"homepage":"https://github.com/Hariprakash1997/astralib#readme","bugs":{"url":"https://github.com/Hariprakash1997/astralib/issues"},"dist":{"shasum":"f84bfb19600a987b958ea43fe5ebded1f64810b0","tarball":"https://registry.npmjs.org/@astralibx/email-analytics/-/email-analytics-2.4.0.tgz","fileCount":8,"integrity":"sha512-+HaEZeMU4pcrjY1YEpcw3GNniwfjnt/xFf50NJ88ctNtfXTBvopM72Cc7huj8Hk4ljj/1d7IXPF6L2NO6dvDTw==","signatures":[{"sig":"MEQCIHwPLazNG5HzJiomA9ZFRynqu+6Y7k6GFRuIHN7BiPWPAiBH1uznto0edKFl1DX5ucxZYJtB+oa1hP3eKPPUf/AgcA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":325836},"main":"dist/index.cjs","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.cjs"}}},"gitHead":"7b31566b4e1292e820e38c3c891a8e38c6ad13d4","scripts":{"dev":"tsup --watch","lint":"eslint src/","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"astralib","email":"1997hariprakash@gmail.com"},"repository":{"url":"git+https://github.com/Hariprakash1997/astralib.git","type":"git","directory":"packages/email-analytics"},"_npmVersion":"10.9.4","description":"Email analytics with event recording, aggregation, time-series, and querying","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^3.23.0","@astralibx/core":"*"},"_hasShrinkwrap":false,"devDependencies":{"express":"^5.0.0","mongoose":"^8.12.1","typescript":"^5.8.2","@types/node":"^22.0.0","@types/express":"^5.0.0","@vitest/coverage-v8":"^3.0.0"},"peerDependencies":{"express":"^4.18.0 || ^5.0.0","mongoose":"^7.0.0 || ^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/email-analytics_2.4.0_1773719530860_0.07204389889993612","host":"s3://npm-registry-packages-npm-production"}},"2.5.0":{"name":"@astralibx/email-analytics","version":"2.5.0","keywords":["email","analytics","event-tracking","aggregation","time-series","statistics"],"license":"MIT","_id":"@astralibx/email-analytics@2.5.0","maintainers":[{"name":"astralib","email":"1997hariprakash@gmail.com"}],"homepage":"https://github.com/Hariprakash1997/astralib#readme","bugs":{"url":"https://github.com/Hariprakash1997/astralib/issues"},"dist":{"shasum":"7fc5cd01a12a3aa326e96a9471405ec1dd59c1b6","tarball":"https://registry.npmjs.org/@astralibx/email-analytics/-/email-analytics-2.5.0.tgz","fileCount":8,"integrity":"sha512-JVsherYEsWOjnKqEMpcKAUUipN3T24t14RsEclID0nW0Ns3GtX4OBd/4xMy84tiq4YKTG9iy89/p2bb14Zx32Q==","signatures":[{"sig":"MEUCIEzZ7DG4uJ+XXvQx32sZbJ04tVAs6I5sKFxFkW7pNE7KAiEAwBK8DXg0U8HrHK/3OMME+6PHlveZkdr8zdexP2hzwwk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":325836},"main":"dist/index.cjs","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.cjs"}}},"gitHead":"df956e4b9f30b71fc0ee0eba6b811eee2092bf52","scripts":{"dev":"tsup --watch","lint":"eslint src/","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"astralib","email":"1997hariprakash@gmail.com"},"repository":{"url":"git+https://github.com/Hariprakash1997/astralib.git","type":"git","directory":"packages/email/analytics"},"_npmVersion":"10.9.4","description":"Email analytics with event recording, aggregation, time-series, and querying","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^3.23.0","@astralibx/core":"*"},"_hasShrinkwrap":false,"devDependencies":{"express":"^5.0.0","mongoose":"^8.12.1","typescript":"^5.8.2","@types/node":"^22.0.0","@types/express":"^5.0.0","@vitest/coverage-v8":"^3.0.0"},"peerDependencies":{"express":"^4.18.0 || ^5.0.0","mongoose":"^7.0.0 || ^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/email-analytics_2.5.0_1773730923341_0.7178876090201165","host":"s3://npm-registry-packages-npm-production"}},"2.5.1":{"name":"@astralibx/email-analytics","version":"2.5.1","keywords":["email","analytics","event-tracking","aggregation","time-series","statistics"],"license":"MIT","_id":"@astralibx/email-analytics@2.5.1","maintainers":[{"name":"astralib","email":"1997hariprakash@gmail.com"}],"homepage":"https://github.com/Hariprakash1997/astralib#readme","bugs":{"url":"https://github.com/Hariprakash1997/astralib/issues"},"dist":{"shasum":"8ecd7e86bafe13961f755741bd005e18a187760d","tarball":"https://registry.npmjs.org/@astralibx/email-analytics/-/email-analytics-2.5.1.tgz","fileCount":8,"integrity":"sha512-TSGA0c72fXtL7SZs51qH/psM+fsi3VNkXAHf0EyuQ1Z1q4rv9z/2xb5WhPWzDqMiNrv2nSQnkxxQmtP1vvgT2w==","signatures":[{"sig":"MEYCIQCETKS/fRe67HzE2e34NNqubj4GumZGnRUN2VdxqHHySwIhAOQzHCzzuk70rGU1BZsXuhtx6wuowrkySAzJc59UaIGY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":325836},"main":"dist/index.cjs","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.cjs"}}},"gitHead":"fd42f0db8c9fd08982aee61f94304819cd425d54","scripts":{"dev":"tsup --watch","lint":"eslint src/","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"astralib","email":"1997hariprakash@gmail.com"},"repository":{"url":"git+https://github.com/Hariprakash1997/astralib.git","type":"git","directory":"packages/email/analytics"},"_npmVersion":"10.9.4","description":"Email analytics with event recording, aggregation, time-series, and querying","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^3.23.0","@astralibx/core":"*"},"_hasShrinkwrap":false,"devDependencies":{"express":"^5.0.0","mongoose":"^8.12.1","typescript":"^5.8.2","@types/node":"^22.0.0","@types/express":"^5.0.0","@vitest/coverage-v8":"^3.0.0"},"peerDependencies":{"express":"^4.18.0 || ^5.0.0","mongoose":"^7.0.0 || ^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/email-analytics_2.5.1_1773733706963_0.3864100039213403","host":"s3://npm-registry-packages-npm-production"}},"2.5.2":{"name":"@astralibx/email-analytics","version":"2.5.2","keywords":["email","analytics","event-tracking","aggregation","time-series","statistics"],"license":"MIT","_id":"@astralibx/email-analytics@2.5.2","maintainers":[{"name":"astralib","email":"1997hariprakash@gmail.com"}],"homepage":"https://github.com/Hariprakash1997/astralib#readme","bugs":{"url":"https://github.com/Hariprakash1997/astralib/issues"},"dist":{"shasum":"aedb229c5ea0d94a5a2cfd0f8db0117ad056c28e","tarball":"https://registry.npmjs.org/@astralibx/email-analytics/-/email-analytics-2.5.2.tgz","fileCount":8,"integrity":"sha512-HUbdAP/oHJ9blv4mxkPOKx0KqKNt29k5p1ybIn9fUGPbMQWu53Cdf0aaLVVGwqilPQ9fSDtoXCE3bNvpi2iDpA==","signatures":[{"sig":"MEQCIFXfJ19TVk7WruOC1rz+oEEK1t93wdy4tSxMW5zGER0NAiBQUClRJwe+AT1OvcUojfT14+KCXIMbBkCTtkRfkgzG9w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":326860},"main":"dist/index.cjs","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.cjs"}}},"gitHead":"b96fb6e63feccf19591d627ddda0c3d04f165ad2","scripts":{"dev":"tsup --watch","lint":"eslint src/","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"astralib","email":"1997hariprakash@gmail.com"},"repository":{"url":"git+https://github.com/Hariprakash1997/astralib.git","type":"git","directory":"packages/email/analytics"},"_npmVersion":"10.9.4","description":"Email analytics with event recording, aggregation, time-series, and querying","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^3.23.0","@astralibx/core":"*"},"_hasShrinkwrap":false,"devDependencies":{"express":"^5.0.0","mongoose":"^8.12.1","typescript":"^5.8.2","@types/node":"^22.0.0","@types/express":"^5.0.0","@vitest/coverage-v8":"^3.0.0"},"peerDependencies":{"express":"^4.18.0 || ^5.0.0","mongoose":"^7.0.0 || ^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/email-analytics_2.5.2_1773814059621_0.4036525530379891","host":"s3://npm-registry-packages-npm-production"}},"2.5.3":{"name":"@astralibx/email-analytics","version":"2.5.3","keywords":["email","analytics","event-tracking","aggregation","time-series","statistics"],"license":"MIT","_id":"@astralibx/email-analytics@2.5.3","maintainers":[{"name":"astralib","email":"1997hariprakash@gmail.com"}],"homepage":"https://github.com/Hariprakash1997/astralib#readme","bugs":{"url":"https://github.com/Hariprakash1997/astralib/issues"},"dist":{"shasum":"182162f0a2c669800805c638bc80e0a57b6ea558","tarball":"https://registry.npmjs.org/@astralibx/email-analytics/-/email-analytics-2.5.3.tgz","fileCount":8,"integrity":"sha512-KgjjZtRcN8NzgYgaKnnt1JrudX9ljGd/4fM0v/iTAL6zhavmE0iXbBPPGRXp0HrruLXxsYJpwhYZlNCc3GjhqA==","signatures":[{"sig":"MEQCIDSDa7BbQgfB0KJKzvGIicZR4dQh4WHAowF7I5ngC67sAiB7VPEL7ZbLzuzDo5BevDX/qP0FJvKR7qX6l4PYNS1Lew==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":326860},"main":"dist/index.cjs","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.cjs"}}},"gitHead":"4d4032239c93df075c2b2bef12163417a68ba99c","scripts":{"dev":"tsup --watch","lint":"eslint src/","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"astralib","email":"1997hariprakash@gmail.com"},"repository":{"url":"git+https://github.com/Hariprakash1997/astralib.git","type":"git","directory":"packages/email/analytics"},"_npmVersion":"10.9.4","description":"Email analytics with event recording, aggregation, time-series, and querying","directories":{},"_nodeVersion":"22.22.1","dependencies":{"zod":"^3.23.0","@astralibx/core":"*"},"_hasShrinkwrap":false,"devDependencies":{"express":"^5.0.0","mongoose":"^8.12.1","typescript":"^5.8.2","@types/node":"^22.0.0","@types/express":"^5.0.0","@vitest/coverage-v8":"^3.0.0"},"peerDependencies":{"express":"^4.18.0 || ^5.0.0","mongoose":"^7.0.0 || ^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/email-analytics_2.5.3_1773825413957_0.7324391234660705","host":"s3://npm-registry-packages-npm-production"}},"2.5.4":{"name":"@astralibx/email-analytics","version":"2.5.4","description":"Email analytics with event recording, aggregation, time-series, and querying","repository":{"type":"git","url":"git+https://github.com/Hariprakash1997/astralib.git","directory":"packages/email/analytics"},"main":"dist/index.cjs","module":"dist/index.mjs","types":"dist/index.d.ts","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.cjs"}}},"scripts":{"build":"tsup","dev":"tsup --watch","test":"vitest run","test:watch":"vitest","test:coverage":"vitest run --coverage","lint":"eslint src/","clean":"rm -rf dist"},"keywords":["email","analytics","event-tracking","aggregation","time-series","statistics"],"license":"MIT","dependencies":{"@astralibx/core":"*","zod":"^3.23.0"},"peerDependencies":{"express":"^4.18.0 || ^5.0.0","mongoose":"^7.0.0 || ^8.0.0"},"devDependencies":{"@types/express":"^5.0.0","@types/node":"^22.0.0","@vitest/coverage-v8":"^3.0.0","express":"^5.0.0","mongoose":"^8.12.1","typescript":"^5.8.2"},"_id":"@astralibx/email-analytics@2.5.4","gitHead":"c09e61ad1f66611cab260c4df471e3cffeb87958","bugs":{"url":"https://github.com/Hariprakash1997/astralib/issues"},"homepage":"https://github.com/Hariprakash1997/astralib#readme","_nodeVersion":"22.22.1","_npmVersion":"10.9.4","dist":{"integrity":"sha512-3b8LDwkg2lH9zceMhjacDmV+u5XaXUJT3Uvb+7o4BM+heZg9lll7fzlOF5ay/j3LnjVU+sIT9xKA3ttFmnPvsA==","shasum":"7c48612eeec18e3fe069402249997a4ebce91e44","tarball":"https://registry.npmjs.org/@astralibx/email-analytics/-/email-analytics-2.5.4.tgz","fileCount":8,"unpackedSize":327280,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQD7G9hanKp/CZ1w6Jywvq5O7SwG2GSHmz4djHf5rsITnQIhAP06X9uMC9EqtvVTyC80NGe7aIMHHkrzuPxqLN+V21eA"}]},"_npmUser":{"name":"astralib","email":"1997hariprakash@gmail.com"},"directories":{},"maintainers":[{"name":"astralib","email":"1997hariprakash@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/email-analytics_2.5.4_1774147453749_0.5362716833999166"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-14T10:41:12.302Z","modified":"2026-03-22T02:44:14.080Z","2.0.0":"2026-03-14T10:41:12.577Z","2.0.1":"2026-03-14T11:05:57.170Z","2.0.2":"2026-03-15T01:31:39.542Z","2.0.3":"2026-03-15T02:01:43.438Z","2.0.4":"2026-03-15T03:43:30.977Z","2.0.5":"2026-03-15T04:35:52.625Z","2.0.6":"2026-03-15T15:05:59.433Z","2.1.0":"2026-03-16T03:15:11.295Z","2.2.0":"2026-03-16T14:04:34.983Z","2.3.0":"2026-03-16T15:23:09.295Z","2.4.0":"2026-03-17T03:52:11.003Z","2.5.0":"2026-03-17T07:02:03.495Z","2.5.1":"2026-03-17T07:48:27.133Z","2.5.2":"2026-03-18T06:07:39.787Z","2.5.3":"2026-03-18T09:16:54.103Z","2.5.4":"2026-03-22T02:44:13.923Z"},"bugs":{"url":"https://github.com/Hariprakash1997/astralib/issues"},"license":"MIT","homepage":"https://github.com/Hariprakash1997/astralib#readme","keywords":["email","analytics","event-tracking","aggregation","time-series","statistics"],"repository":{"type":"git","url":"git+https://github.com/Hariprakash1997/astralib.git","directory":"packages/email/analytics"},"description":"Email analytics with event recording, aggregation, time-series, and querying","maintainers":[{"name":"astralib","email":"1997hariprakash@gmail.com"}],"readme":"# @astralibx/email-analytics\n\nEvent-level email tracking with automatic daily aggregation and pre-built query APIs. Record individual send/deliver/bounce/open/click events, aggregate them into daily stats by account, rule, or template, and query time-series data through REST endpoints or the programmatic API.\n\n## Install\n\n```bash\nnpm install @astralibx/email-analytics\n```\n\n**Peer dependencies** (install separately):\n\n```bash\nnpm install mongoose express\n```\n\n## Quick Start\n\n```typescript\nimport mongoose from 'mongoose';\nimport express from 'express';\nimport { createEmailAnalytics } from '@astralibx/email-analytics';\n\nconst conn = mongoose.createConnection('mongodb://localhost:27017/myapp');\n\nconst analytics = createEmailAnalytics({\n  db: { connection: conn, collectionPrefix: 'myapp_' },\n  options: {\n    eventTTLDays: 90,\n    timezone: 'Asia/Kolkata',\n  },\n});\n\n// Mount REST routes\nconst app = express();\napp.use('/api/analytics', analytics.routes);\n\n// Record an event programmatically\nawait analytics.events.record({\n  type: 'sent',\n  accountId: '507f1f77bcf86cd799439011',\n  recipientEmail: 'user@example.com',\n  ruleId: '507f1f77bcf86cd799439012',\n});\n\n// Run daily aggregation\nawait analytics.aggregator.aggregateDaily();\n\n// Query overview stats\nconst overview = await analytics.query.getOverview(\n  new Date('2025-01-01'),\n  new Date('2025-01-31'),\n);\n```\n\n## Features\n\n- **Event Recording** -- single and batch insert with automatic timestamps; supports `externalUserId` for external system user tracking and `channel` for CTA attribution (whatsapp, telegram, sms, web, etc.) ([docs](https://github.com/Hariprakash1997/astralib/blob/main/packages/email/analytics/docs/event-recording.md))\n- **Daily Aggregation** -- rolls up raw events into per-day stats by account, rule, template, and overall ([docs](https://github.com/Hariprakash1997/astralib/blob/main/packages/email/analytics/docs/aggregation.md))\n- **Range Aggregation** -- backfill or re-aggregate any date range ([docs](https://github.com/Hariprakash1997/astralib/blob/main/packages/email/analytics/docs/aggregation.md))\n- **Time-Series Queries** -- overview, timeline (daily/weekly/monthly), per-account, per-rule, per-template ([docs](https://github.com/Hariprakash1997/astralib/blob/main/packages/email/analytics/docs/querying.md))\n- **Variant Analytics** -- per-variant (subjectIndex/bodyIndex) performance stats via `GET /variants` endpoint for A/B test analysis ([docs](https://github.com/Hariprakash1997/astralib/blob/main/packages/email/analytics/docs/api-routes.md))\n- **REST API** -- endpoints with date-range query params, including `GET /channels` for channel breakdown, `GET /variants` for variant performance, and `POST /track` for public event ingestion with CORS ([docs](https://github.com/Hariprakash1997/astralib/blob/main/packages/email/analytics/docs/api-routes.md))\n- **TTL Cleanup** -- MongoDB TTL index auto-expires old events; manual purge also available ([docs](https://github.com/Hariprakash1997/astralib/blob/main/packages/email/analytics/docs/event-recording.md#ttl-and-cleanup))\n- **Programmatic API** -- use services directly without HTTP ([docs](https://github.com/Hariprakash1997/astralib/blob/main/packages/email/analytics/docs/programmatic-api.md))\n- **Error Handling** -- typed error classes for validation, date range, and aggregation failures ([docs](https://github.com/Hariprakash1997/astralib/blob/main/packages/email/analytics/docs/error-handling.md))\n\n## Integration with Other Packages\n\nWire hooks from `@astralibx/email-account-manager` and `@astralibx/email-rule-engine` to automatically record analytics events. See the [integration guide](https://github.com/Hariprakash1997/astralib/blob/main/packages/email/analytics/docs/integration.md) for full examples.\n\n```typescript\nimport { createEmailAccountManager } from '@astralibx/email-account-manager';\nimport { createEmailRuleEngine } from '@astralibx/email-rule-engine';\nimport { createEmailAnalytics } from '@astralibx/email-analytics';\n\nconst analytics = createEmailAnalytics({ db: { connection: conn } });\nconst accountManager = createEmailAccountManager({ db: { connection: conn } });\n\n// Record events via rule engine hooks config\nconst ruleEngine = createEmailRuleEngine({\n  db: { connection: conn },\n  hooks: {\n    onSend: async ({ ruleId, ruleName, email, status }) => {\n      await analytics.events.record({\n        type: status === 'sent' ? 'sent' : 'failed',\n        accountId: '...', // from your send context\n        recipientEmail: email,\n        ruleId,\n      });\n    },\n  },\n});\n```\n\n## Getting Started Guide\n\n1. [Configuration](https://github.com/Hariprakash1997/astralib/blob/main/packages/email/analytics/docs/configuration.md) — Set up database and timezone\n2. [Event Recording](https://github.com/Hariprakash1997/astralib/blob/main/packages/email/analytics/docs/event-recording.md) — Record email events (sent, delivered, bounced, etc.)\n3. [Aggregation](https://github.com/Hariprakash1997/astralib/blob/main/packages/email/analytics/docs/aggregation.md) — Aggregate events into queryable stats (**must be scheduled via cron**)\n4. [Querying](https://github.com/Hariprakash1997/astralib/blob/main/packages/email/analytics/docs/querying.md) — Query aggregated stats by date range, account, rule, or template\n5. [Integration](https://github.com/Hariprakash1997/astralib/blob/main/packages/email/analytics/docs/integration.md) — Wire analytics to email-rule-engine and email-account-manager hooks\n\nReference: [API Routes](https://github.com/Hariprakash1997/astralib/blob/main/packages/email/analytics/docs/api-routes.md) | [Programmatic API](https://github.com/Hariprakash1997/astralib/blob/main/packages/email/analytics/docs/programmatic-api.md) | [Types](https://github.com/Hariprakash1997/astralib/blob/main/packages/email/analytics/docs/types.md) | [Error Handling](https://github.com/Hariprakash1997/astralib/blob/main/packages/email/analytics/docs/error-handling.md)\n\n> **Important:** Events must be aggregated before querying. Schedule `aggregateDaily()` via cron (hourly recommended). Without aggregation, query endpoints return empty results.\n\n## Exported Types\n\n```typescript\n// Core types\nexport type { EmailAnalyticsConfig } from './types/config.types';\nexport type { EmailEvent, CreateEventInput } from './types/event.types';\nexport type { DailyStats, AccountStats, RuleStats, TemplateStats, OverviewStats, TimelineEntry, VariantStats } from './types/stats.types';\n\n// Constants\nexport { EVENT_TYPE, EVENT_CHANNEL, AGGREGATION_INTERVAL, STATS_GROUP_BY } from './constants';\nexport type { EventType, EventChannel, AggregationInterval, StatsGroupBy } from './constants';\n\n// Errors\nexport { AlxAnalyticsError, ConfigValidationError, InvalidDateRangeError, AggregationError } from './errors';\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md"}