{"_id":"@atmosfer/impressions","_rev":"12-e6359faecbd95707a1260d8b2aa34481","name":"@atmosfer/impressions","dist-tags":{"latest":"0.1.12"},"versions":{"0.1.0":{"name":"@atmosfer/impressions","version":"0.1.0","license":"ISC","_id":"@atmosfer/impressions@0.1.0","maintainers":[{"name":"kutaysari","email":"h.kutay.1@gmail.com"}],"dist":{"shasum":"3de86ba509c1c6142c87256bb7359d574e897b2b","tarball":"https://registry.npmjs.org/@atmosfer/impressions/-/impressions-0.1.0.tgz","fileCount":7,"integrity":"sha512-S/ArBD380udNl7SwFgEF0M/tGu0q7aDej2jwJ67L9L1DiF3PjBJRHROJ4O3JkYkby96JvQjjPwk9F6cW2EYU9g==","signatures":[{"sig":"MEUCIQDQT+u6gO1xuB/jiBn7TgBAlEvSKimFtIRzmOfdPWebPwIgV0spazMXYEOWPa+ZXoejXg4zTmsohwneCNv3EUtCx/M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30362},"main":"dist/index.cjs","types":"dist/index.d.ts","module":"dist/index.js","scripts":{"dev":"tsup --watch","build":"tsup"},"_npmUser":{"name":"kutaysari","email":"h.kutay.1@gmail.com"},"_npmVersion":"11.6.2","description":"","directories":{},"sideEffects":false,"_nodeVersion":"25.2.1","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.9.3","@types/node":"^25.0.3","@types/react":"^19.2.7"},"peerDependencies":{"react":">=18"},"_npmOperationalInternal":{"tmp":"tmp/impressions_0.1.0_1766250780698_0.4197546201286051","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@atmosfer/impressions","version":"0.1.1","license":"ISC","_id":"@atmosfer/impressions@0.1.1","maintainers":[{"name":"kutaysari","email":"h.kutay.1@gmail.com"}],"dist":{"shasum":"dd4933e268a80e133ab0a331379d842b7ea8342f","tarball":"https://registry.npmjs.org/@atmosfer/impressions/-/impressions-0.1.1.tgz","fileCount":7,"integrity":"sha512-WHfxvBUTKee5+svQPurrifOZOdPHjhOyUZs7A5pQoOxc55uWRKetg3hKH7WCNZqm0b2s2ai4YKJKfRdYQDDJDg==","signatures":[{"sig":"MEUCIG9D28sUS/XcMM+uT8R0biuX/6p4twxHiPUeWhLrkxKhAiEAsvm/CUqDRigyUh++kShEU0qeyRodgcQONLiHU9l7tIo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30326},"main":"dist/index.cjs","types":"dist/index.d.ts","module":"dist/index.js","scripts":{"dev":"tsup --watch","build":"tsup"},"_npmUser":{"name":"kutaysari","email":"h.kutay.1@gmail.com"},"_npmVersion":"11.6.2","description":"","directories":{},"sideEffects":false,"_nodeVersion":"25.2.1","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.9.3","@types/node":"^25.0.3","@types/react":"^19.2.7"},"peerDependencies":{"react":">=18"},"_npmOperationalInternal":{"tmp":"tmp/impressions_0.1.1_1766256584831_0.5554107712996521","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@atmosfer/impressions","version":"0.1.2","license":"ISC","_id":"@atmosfer/impressions@0.1.2","maintainers":[{"name":"kutaysari","email":"h.kutay.1@gmail.com"}],"dist":{"shasum":"f814002484d085f9fa2eef30aea32c1cac689fca","tarball":"https://registry.npmjs.org/@atmosfer/impressions/-/impressions-0.1.2.tgz","fileCount":7,"integrity":"sha512-yW3stFU4U2A+MFhKvPQ6qsjlwRUx4weM+JO0ZCdg61R3fmK/wUKIgevX6H6DmPU98qwR9FRbJ7CiG9JqMTR+rw==","signatures":[{"sig":"MEUCIQDus/3wjHtN1XwPZc6sh0yl8z8dZ1hfilpYDsrqoUSr4AIgOZECiHDGy2OMQz20dMjkhwfjv1GX5N17pd7lYv1vsSk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29760},"main":"dist/index.cjs","types":"dist/index.d.ts","module":"dist/index.js","gitHead":"f17b42baa5b0d88196e105a203fd6df09c85af56","scripts":{"dev":"tsup --watch","build":"tsup"},"_npmUser":{"name":"kutaysari","email":"h.kutay.1@gmail.com"},"_npmVersion":"11.6.2","description":"","directories":{},"sideEffects":false,"_nodeVersion":"25.2.1","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.9.3","@types/node":"^25.0.3","@types/react":"^19.2.7"},"peerDependencies":{"react":">=18"},"_npmOperationalInternal":{"tmp":"tmp/impressions_0.1.2_1766314572414_0.7891752002200476","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@atmosfer/impressions","version":"0.1.3","license":"ISC","_id":"@atmosfer/impressions@0.1.3","maintainers":[{"name":"kutaysari","email":"h.kutay.1@gmail.com"}],"dist":{"shasum":"9d021eb8d8b030b78e9e01d541da0e65c262c27c","tarball":"https://registry.npmjs.org/@atmosfer/impressions/-/impressions-0.1.3.tgz","fileCount":7,"integrity":"sha512-GVNJPEGrIDXmXevfECWhCq374t/67ffw7RJS1AU/vUtuuhbERKpDzvod8iXaiLkJc+Q+FSS1s+boWYj2FWW6dg==","signatures":[{"sig":"MEYCIQDkKxf31JCl95pxzqxU+4XHKNfn0uVIpHbcfKzmWwLoxQIhAJYohtHAPXd3e7YfE1QyZiES6QPJnDKe1ueaN9Yp4xbj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29760},"main":"dist/index.cjs","types":"dist/index.d.ts","module":"dist/index.js","gitHead":"a8a6d4682b075471be92cd829b443766a4a736d5","scripts":{"dev":"tsup --watch","build":"tsup"},"_npmUser":{"name":"kutaysari","email":"h.kutay.1@gmail.com"},"_npmVersion":"11.6.2","description":"","directories":{},"sideEffects":false,"_nodeVersion":"25.2.1","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.9.3","@types/node":"^25.0.3","@types/react":"^19.2.7"},"peerDependencies":{"react":">=18"},"_npmOperationalInternal":{"tmp":"tmp/impressions_0.1.3_1767900016271_0.6319648035081522","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@atmosfer/impressions","version":"0.1.4","license":"ISC","_id":"@atmosfer/impressions@0.1.4","maintainers":[{"name":"kutaysari","email":"h.kutay.1@gmail.com"}],"dist":{"shasum":"c14144a26cf6058a2b485299d23f6c578a591398","tarball":"https://registry.npmjs.org/@atmosfer/impressions/-/impressions-0.1.4.tgz","fileCount":8,"integrity":"sha512-bQP32UjVjZzJVlZQ/VMZZb8EolMXAl6au+o0HQXJM5eBokAgyBFsnwJFPKrTDwSGtI93Meq+mqpq4llH2UVNCA==","signatures":[{"sig":"MEQCIF6De55AVtA21uqjW3qj1YZUqxc42ym1xaCbeGP7s/EoAiBFgnaLv8QnY91+mDzioPazBoZkhbw72cGbvo7wvKcagw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":34730},"main":"dist/index.cjs","types":"dist/index.d.ts","module":"dist/index.js","gitHead":"0e7a46f9871b7b262146a5c53f4ae2373de854cb","scripts":{"dev":"tsup --watch","build":"tsup"},"_npmUser":{"name":"kutaysari","email":"h.kutay.1@gmail.com"},"_npmVersion":"11.6.2","description":"Lightweight impressions tracker with a small React hook wrapper. The tracker captures page views and custom events, enriches them with basic page/device context, and sends them to a configured endpoint.","directories":{},"sideEffects":false,"_nodeVersion":"25.2.1","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.9.3","@types/node":"^25.0.3","@types/react":"^19.2.7"},"peerDependencies":{"react":">=18"},"_npmOperationalInternal":{"tmp":"tmp/impressions_0.1.4_1767900321447_0.9568812577053225","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@atmosfer/impressions","version":"0.1.5","license":"ISC","_id":"@atmosfer/impressions@0.1.5","maintainers":[{"name":"kutaysari","email":"h.kutay.1@gmail.com"}],"dist":{"shasum":"febc8629071dc330e50c5a4418643e300401a412","tarball":"https://registry.npmjs.org/@atmosfer/impressions/-/impressions-0.1.5.tgz","fileCount":8,"integrity":"sha512-EZhnvdmLmA769pyv1hiYNEmskbU+AIljMZaPlqhWSNvt9p8CF3Yzo+9/qZIbAYkghnsTjgCD1qQgdVGpxwLDkw==","signatures":[{"sig":"MEYCIQC/LffWRlQG76RmnUQpANuH0JJuEKeHwlYLqbFZnzfKlgIhAKKXop3k8Bw1ntiNeq1yTx+xz6kEF15nzNqvHjPWX+DG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":34730},"main":"dist/index.cjs","types":"dist/index.d.ts","module":"dist/index.js","gitHead":"00edc3aaf8c1f2c94a6c6ff07e021716f1c38124","scripts":{"dev":"tsup --watch","build":"tsup"},"_npmUser":{"name":"kutaysari","email":"h.kutay.1@gmail.com"},"_npmVersion":"11.6.2","description":"Lightweight impressions tracker with a small React hook wrapper. The tracker captures page views and custom events, enriches them with basic page/device context, and sends them to a configured endpoint.","directories":{},"sideEffects":false,"_nodeVersion":"25.2.1","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.9.3","@types/node":"^25.0.3","@types/react":"^19.2.7"},"peerDependencies":{"react":">=18"},"_npmOperationalInternal":{"tmp":"tmp/impressions_0.1.5_1767900993662_0.2515317464915652","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@atmosfer/impressions","version":"0.1.6","license":"ISC","_id":"@atmosfer/impressions@0.1.6","maintainers":[{"name":"kutaysari","email":"h.kutay.1@gmail.com"}],"dist":{"shasum":"74ba539cadf404532c0518438ad4e68965679533","tarball":"https://registry.npmjs.org/@atmosfer/impressions/-/impressions-0.1.6.tgz","fileCount":8,"integrity":"sha512-zIVUe9rahIPMtahdfdwJ2dfzShxyBjfjQsF9w2YmuUpkshhzLV1UD1DznJpzi0n8qr23GRqIdmVWDZYj2qw9fQ==","signatures":[{"sig":"MEYCIQD+jD+KgQ2m0U/i3BItAgZ8YToVc17k5ozzmgPqNsCeqQIhANzbdKz/5kRIMgoSDp7zn23gmwcctKdPdwqY6TbLM8p5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":36226},"main":"dist/index.cjs","types":"dist/index.d.ts","module":"dist/index.js","gitHead":"6d33d5bc6e875873dedea1069fd0fb02dc7baff2","scripts":{"dev":"tsup --watch","build":"tsup"},"_npmUser":{"name":"kutaysari","email":"h.kutay.1@gmail.com"},"_npmVersion":"11.6.2","description":"Lightweight impressions tracker with a small React hook wrapper. The tracker captures page views and custom events, enriches them with basic page/device context, and sends them to a configured endpoint.","directories":{},"sideEffects":false,"_nodeVersion":"25.2.1","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.9.3","@types/node":"^25.0.3","@types/react":"^19.2.7"},"peerDependencies":{"react":">=18"},"_npmOperationalInternal":{"tmp":"tmp/impressions_0.1.6_1767901242169_0.6603132876897018","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@atmosfer/impressions","version":"0.1.7","license":"ISC","_id":"@atmosfer/impressions@0.1.7","maintainers":[{"name":"kutaysari","email":"h.kutay.1@gmail.com"}],"dist":{"shasum":"a2bac4d0706f86605b34f936239886ea1b2f148b","tarball":"https://registry.npmjs.org/@atmosfer/impressions/-/impressions-0.1.7.tgz","fileCount":8,"integrity":"sha512-xEskSQKlvMkB33gRukYfO1G/DSnbNgvLQ5r51y75GLW+euvHa3AUsMPFGJUCzmLodda4qnOGXzFxyJ/84XdeIA==","signatures":[{"sig":"MEUCIQDvWbUtrByfgWt32iveUcNOC5XCiOJRzeGznh1M00Cq7wIgGnvGwIZyqVje5r9LMnDFIHa4mLolpiVsWtlsd18Bd8A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":34068},"main":"dist/index.cjs","types":"dist/index.d.ts","module":"dist/index.js","gitHead":"d08a1d3488ba28410461d7f133e7006717ff6bfb","scripts":{"dev":"tsup --watch","build":"tsup"},"_npmUser":{"name":"kutaysari","email":"h.kutay.1@gmail.com"},"_npmVersion":"11.6.2","description":"Lightweight impressions tracker with a small React hook wrapper. The tracker captures page views and custom events, enriches them with basic page/device context, and sends them to a configured endpoint.","directories":{},"sideEffects":false,"_nodeVersion":"25.2.1","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.9.3","@types/node":"^25.0.3","@types/react":"^19.2.7"},"peerDependencies":{"react":">=18"},"_npmOperationalInternal":{"tmp":"tmp/impressions_0.1.7_1767903494727_0.3194152745067764","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"@atmosfer/impressions","version":"0.1.8","license":"ISC","_id":"@atmosfer/impressions@0.1.8","maintainers":[{"name":"kutaysari","email":"h.kutay.1@gmail.com"}],"dist":{"shasum":"517e4a3bce3ce87d4fdecbc976039f4ce75cf4fc","tarball":"https://registry.npmjs.org/@atmosfer/impressions/-/impressions-0.1.8.tgz","fileCount":8,"integrity":"sha512-wCinmB2GI4xXtnpBT0atuv6k3Ztod644pVA8HsbMWkq1LLqhRr3PB4Q0E63oPeY8TqG37BIc97Rz5qAv1gGNqw==","signatures":[{"sig":"MEYCIQD4RnB3lxN9YyRwEJUv1jgQBmHqulZ3ddPlVIPvfjxp5QIhAKWKrDLXHTF+xlHzOFKXyBUgFDXXN5kOGCuXaZyDYfKl","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":34068},"main":"dist/index.cjs","types":"dist/index.d.ts","module":"dist/index.js","gitHead":"0ab552a375332c010eee9543ab5e8596459a9c8f","scripts":{"dev":"tsup --watch","build":"tsup"},"_npmUser":{"name":"kutaysari","email":"h.kutay.1@gmail.com"},"_npmVersion":"11.6.2","description":"Lightweight impressions tracker with a small React hook wrapper. The tracker captures page views and custom events, enriches them with basic page/device context, and sends them to a configured endpoint.","directories":{},"sideEffects":false,"_nodeVersion":"25.2.1","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.9.3","@types/node":"^25.0.3","@types/react":"^19.2.7"},"peerDependencies":{"react":">=18"},"_npmOperationalInternal":{"tmp":"tmp/impressions_0.1.8_1767904122852_0.4410756389699959","host":"s3://npm-registry-packages-npm-production"}},"0.1.10":{"name":"@atmosfer/impressions","version":"0.1.10","license":"ISC","_id":"@atmosfer/impressions@0.1.10","maintainers":[{"name":"kutaysari","email":"h.kutay.1@gmail.com"}],"dist":{"shasum":"282d1967ecbf5072aa8b04c6c506d6fd82db9f60","tarball":"https://registry.npmjs.org/@atmosfer/impressions/-/impressions-0.1.10.tgz","fileCount":8,"integrity":"sha512-ZXQ3aJssJUcpU/FtI9W8/SEFkUXVKkTVR9Hz3h+FQ1gABj7S3yZ6T7moAIqfEnaye2+YB766KdjR7Z3gJGLTpg==","signatures":[{"sig":"MEUCIQDcuZ8vLQyve6r0Db+rV8rOzDt9NywXmFNYOVgN4YHkZQIgGwX1Za/zTUU7j3u0O1FrTRMyBfOdFRjyTxWPpdbQv/c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":41137},"main":"dist/index.cjs","types":"dist/index.d.ts","module":"dist/index.js","gitHead":"37ed066e1fd1b1f5b60a2f53208516940a7d72b4","scripts":{"dev":"tsup --watch","build":"tsup"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:11bb89a3-b9a2-48bd-a32f-b0d2835b9efa"}},"_npmVersion":"11.7.0","description":"Lightweight impressions tracker with a small React hook wrapper. The tracker captures page views and custom events, enriches them with basic page/device context, and sends them to a configured endpoint.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.6","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.9.3","@types/node":"^25.0.3","@types/react":"^19.2.7"},"peerDependencies":{"react":">=18"},"_npmOperationalInternal":{"tmp":"tmp/impressions_0.1.10_1767905892914_0.6137034270413328","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"@atmosfer/impressions","version":"0.1.9","license":"ISC","_id":"@atmosfer/impressions@0.1.9","maintainers":[{"name":"kutaysari","email":"h.kutay.1@gmail.com"}],"dist":{"shasum":"75e8ccd1026dd467abc8e49fba095ee2419a1319","tarball":"https://registry.npmjs.org/@atmosfer/impressions/-/impressions-0.1.9.tgz","fileCount":8,"integrity":"sha512-pEOPxKEswHrlApFwymde2qX52byENCnPo3cJXAo10oFdbhFKrZ4Vg/zodsHTE+6XVMST4lsbmhNY9++qBSnpbA==","signatures":[{"sig":"MEYCIQDcTiQlCh4QItIqsnKo215aWcEnjJtRlwefrGx300QFaQIhANCDgjpdDo8ZmEpjxkplsMkuPlc/er6S+4Q/PhVfVsU9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":41136},"main":"dist/index.cjs","types":"dist/index.d.ts","module":"dist/index.js","gitHead":"cbb9bf2c17f581fddd8a0f2553026d3ccf485c5d","scripts":{"dev":"tsup --watch","build":"tsup"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:11bb89a3-b9a2-48bd-a32f-b0d2835b9efa"}},"_npmVersion":"11.7.0","description":"Lightweight impressions tracker with a small React hook wrapper. The tracker captures page views and custom events, enriches them with basic page/device context, and sends them to a configured endpoint.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.6","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^5.9.3","@types/node":"^25.0.3","@types/react":"^19.2.7"},"peerDependencies":{"react":">=18"},"_npmOperationalInternal":{"tmp":"tmp/impressions_0.1.9_1767905893834_0.5138163907978341","host":"s3://npm-registry-packages-npm-production"}},"0.1.12":{"name":"@atmosfer/impressions","version":"0.1.12","description":"Lightweight impressions tracker with a small React hook wrapper. The tracker captures page views and custom events, enriches them with basic page/device context, and sends them to a configured endpoint.","main":"dist/index.cjs","module":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"tsup","dev":"tsup --watch"},"license":"ISC","sideEffects":false,"peerDependencies":{"react":">=18"},"devDependencies":{"@types/node":"^25.0.3","@types/react":"^19.2.7","tsup":"^8.5.1","typescript":"^5.9.3"},"gitHead":"5089a0c61ac97adfb85d91e93c2db0f97e298ad6","_id":"@atmosfer/impressions@0.1.12","_nodeVersion":"20.19.6","_npmVersion":"11.7.0","dist":{"integrity":"sha512-P+YroAPpRHFnL9FfTL2Wv/KW0/+RAEJuVUyn0VL0rrhzx4gt3Tmk6kuoceXz29TWVMD86hxujb1UjDmV3+lAoA==","shasum":"cec14a50dcac80507e1f3a1f4c4e82464b8d22fe","tarball":"https://registry.npmjs.org/@atmosfer/impressions/-/impressions-0.1.12.tgz","fileCount":8,"unpackedSize":41137,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIH5uFRid6UmfxGhSWQkFPN7a+ctRxL7q+8UH8ELN0x7tAiAcYq4/Se6VjL858XBEwGk/fcYpOfDJgdnBFSQzXVuNYw=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:11bb89a3-b9a2-48bd-a32f-b0d2835b9efa"}},"directories":{},"maintainers":[{"name":"kutaysari","email":"h.kutay.1@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/impressions_0.1.12_1767906259308_0.5781046221052217"},"_hasShrinkwrap":false}},"time":{"created":"2025-12-20T17:13:00.636Z","modified":"2026-01-08T21:04:19.630Z","0.1.0":"2025-12-20T17:13:00.964Z","0.1.1":"2025-12-20T18:49:44.981Z","0.1.2":"2025-12-21T10:56:12.595Z","0.1.3":"2026-01-08T19:20:16.432Z","0.1.4":"2026-01-08T19:25:21.610Z","0.1.5":"2026-01-08T19:36:33.818Z","0.1.6":"2026-01-08T19:40:42.324Z","0.1.7":"2026-01-08T20:18:14.866Z","0.1.8":"2026-01-08T20:28:43.008Z","0.1.10":"2026-01-08T20:58:13.065Z","0.1.9":"2026-01-08T20:58:13.974Z","0.1.12":"2026-01-08T21:04:19.445Z"},"license":"ISC","description":"Lightweight impressions tracker with a small React hook wrapper. The tracker captures page views and custom events, enriches them with basic page/device context, and sends them to a configured endpoint.","maintainers":[{"name":"kutaysari","email":"h.kutay.1@gmail.com"}],"readme":"# @atmosfer/impressions\n\nLightweight impressions tracker with a small React hook wrapper. The tracker\ncaptures page views and custom events, enriches them with basic page/device\ncontext, and sends them to a configured endpoint.\n\n## Install\n\n```bash\nnpm install @atmosfer/impressions\n```\n\nPeer dependency: React 18+ (for the hook).\n\n## Usage (vanilla)\n\n```ts\nimport { createTracker } from \"@atmosfer/impressions\";\n\nconst tracker = createTracker({\n  endpoint: \"https://example.com/impressions\",\n  restaurantId: \"resto_123\",\n  tableNo: 12,\n  headers: { \"x-api-key\": \"secret\" },\n  debug: true,\n});\n\n// Track a page view\nawait tracker.page();\n\n// Track a custom event\nawait tracker.track(\"menu_opened\", { section: \"drinks\" });\n```\n\n## Usage (React)\n\n```tsx\nimport { useImpressions } from \"@atmosfer/impressions\";\n\nexport function MenuPage() {\n  const tracker = useImpressions({\n    endpoint: \"https://example.com/impressions\",\n    restaurantId: \"resto_123\",\n    tableNo: 12,\n  });\n\n  return (\n    <button onClick={() => void tracker.track(\"cta_click\", { id: \"order\" })}>\n      Order now\n    </button>\n  );\n}\n```\n\n## API\n\n### createTracker(config)\n\nCreates a tracker instance. In non-browser environments (no `window`), the\ntracker becomes a no-op, which keeps SSR safe.\n\nConfig fields:\n- `endpoint` (string, required): where events are POSTed.\n- `restaurantId` (string, required): logical tenant identifier.\n- `tableNo` (number, optional): table number context.\n- `headers` (object, optional): extra headers for the POST request.\n- `debug` (boolean, optional): logs events to console when true.\n- `disable` (boolean, optional): start in disabled mode.\n- `anonIdKey` (string, optional): localStorage key for anonymous user id.\n\nReturns a `Tracker` with:\n- `page(detail?)`: send a `page_view`.\n- `track(eventType, detail?)`: send a custom event.\n- `setContext({ restaurantId, tableNo })`: update context.\n- `disable()` / `enable()`: toggle event sending.\n\n### useImpressions(config, options?)\n\nReact hook that memoizes a tracker and sends a `page_view` when the page\nbecomes visible.\n\nOptions:\n- `trackOnMount` (boolean, optional): send a single `page_view` when the page\n  first becomes visible. Defaults to `true`.\n- `trackOnPagehide` (boolean, optional): send a `page_view` on `pagehide`.\n- `trackOnSpaNavigation` (boolean, optional): send a `page_view` on SPA\n  navigation (`pushState`, `replaceState`, `popstate`).\n\n## Event payload\n\nEach event is sent as JSON:\n\n```json\n{\n  \"schema_version\": 1,\n  \"event_id\": \"uuid\",\n  \"ts\": \"2025-01-01T00:00:00.000Z\",\n  \"restaurant_id\": \"resto_123\",\n  \"table_no\": 12,\n  \"event_type\": \"page_view\",\n  \"event_detail\": {\n    \"path\": \"/menu?utm_source=qr\",\n    \"referrer\": \"https://example.com\",\n    \"utm\": { \"source\": \"qr\", \"medium\": null, \"campaign\": null },\n    \"anon_id\": \"uuid\",\n    \"language\": \"en-US\",\n    \"timezone\": \"Europe/Istanbul\",\n    \"device\": { \"type\": \"mobile\" },\n    \"screen\": { \"w\": 390, \"h\": 844 },\n    \"page\": { \"title\": \"Menu\" }\n  }\n}\n```\n\nAdditional detail fields passed to `page()` or `track()` are merged into\n`event_detail`.\n\n## Build\n\n```bash\nnpm run build\n```\n","readmeFilename":"README.md"}