{"_id":"@canonical/analytics-events","_rev":"17-a2186b61ea7a76fef5725aa8bf0696e4","name":"@canonical/analytics-events","dist-tags":{"latest":"1.1.2"},"versions":{"1.0.0":{"name":"@canonical/analytics-events","version":"1.0.0","keywords":["analytics","events","tracking"],"author":{"name":"Canonical Webteam"},"license":"ISC","_id":"@canonical/analytics-events@1.0.0","maintainers":[{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},{"name":"frankban","email":"frankban@gmail.com"},{"name":"huwshimi","email":"huw@ikmail.com"},{"name":"anthonydillon","email":"me@anthonydillon.com"},{"name":"steverydz","email":"steverydz@gmail.com"},{"name":"amylily1011","email":"amy.lily@canonical.com"},{"name":"bartaz","email":"bartek.szopka@canonical.com"},{"name":"jpmartinspt","email":"joao.figueiredo.martins@canonical.com"},{"name":"petesfrench","email":"peterfrench94@gmail.com"},{"name":"jmuzina","email":"jmuzina@pm.me"},{"name":"mtruj","email":"mariapaula.trujillo@canonical.com"},{"name":"edlerd","email":"david.edler@canonical.com"},{"name":"canonical-organization","email":"is-admin@canonical.com"},{"name":"edisile-canonical","email":"eduard.manta@canonical.com"},{"name":"steciuk-canonical","email":"adam.steciuk@canonical.com"},{"name":"akbarik","email":"kz.akbar@gmail.com"},{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},{"name":"engr-ali","email":"its.muhammad.ali.mughal@gmail.com"},{"name":"ando.gq","email":"tom@ando.sh"},{"name":"ninfa_jeon","email":"urvashi.sharma271099@gmail.com"},{"name":"ndv99","email":"n.devilliers1999@gmail.com"},{"name":"goulin-canonical","email":"goulin.khoge@canonical.com"},{"name":"immortalcodes","email":"21112002mj@gmail.com"},{"name":"alvaromateo","email":"alvaro.mateoalvarez@canonical.com"},{"name":"onibenjo-canonical","email":"benjaminaderopo.oni@canonical.com"}],"homepage":"https://github.com/canonical/canonicalwebteam.analytics-events#readme","bugs":{"url":"https://github.com/canonical/canonicalwebteam.analytics-events/issues"},"dist":{"shasum":"f56d19bbc99fd6525713b7cf1bfab25322365e25","tarball":"https://registry.npmjs.org/@canonical/analytics-events/-/analytics-events-1.0.0.tgz","fileCount":11,"integrity":"sha512-zM0a5t1XNOmYSlBgRC9vm/nxtAp43JrT42KuQhv91KOvEDllqFjxh2rx9WLarqTOySr7HQ/qutAi//Alxlye9Q==","signatures":[{"sig":"MEQCIDVRlzwhfnxai+5yv3xUPOCcQZPKdZXJWSEOvN2mOHW4AiAs7ZUW5nmlBiKHvBOXJx2PvlxpKohdI2mYcY3rIAcD5A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14335},"main":"dist/index.js","types":"dist/types/index.d.ts","module":"dist/index.js","gitHead":"69209be70de9bc139a0696583c57f99a4b593d25","scripts":{"dev":"npm run build && npx serve . -l 3000","lint":"biome check src","build":"esbuild src/index.ts --bundle --format=esm --outfile=dist/index.js && tsc --emitDeclarationOnly","format":"biome format --write src","lint:fix":"biome check --write src","prepublishOnly":"npm run build"},"_npmUser":{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},"repository":{"url":"git+https://github.com/canonical/canonicalwebteam.analytics-events.git","type":"git"},"_npmVersion":"10.9.3","description":"Lightweight analytics event tracking","directories":{},"_nodeVersion":"22.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"serve":"^14.2.5","esbuild":"^0.27.2","typescript":"^5.9.3","@biomejs/biome":"^2.3.11"},"_npmOperationalInternal":{"tmp":"tmp/analytics-events_1.0.0_1771840698022_0.9222935593033423","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@canonical/analytics-events","version":"1.0.1","keywords":["analytics","events","tracking"],"author":{"name":"Canonical Webteam"},"license":"ISC","_id":"@canonical/analytics-events@1.0.1","maintainers":[{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},{"name":"frankban","email":"frankban@gmail.com"},{"name":"huwshimi","email":"huw@ikmail.com"},{"name":"anthonydillon","email":"me@anthonydillon.com"},{"name":"steverydz","email":"steverydz@gmail.com"},{"name":"amylily1011","email":"amy.lily@canonical.com"},{"name":"bartaz","email":"bartek.szopka@canonical.com"},{"name":"jpmartinspt","email":"joao.figueiredo.martins@canonical.com"},{"name":"petesfrench","email":"peterfrench94@gmail.com"},{"name":"jmuzina","email":"jmuzina@pm.me"},{"name":"mtruj","email":"mariapaula.trujillo@canonical.com"},{"name":"edlerd","email":"david.edler@canonical.com"},{"name":"canonical-organization","email":"is-admin@canonical.com"},{"name":"edisile-canonical","email":"eduard.manta@canonical.com"},{"name":"steciuk-canonical","email":"adam.steciuk@canonical.com"},{"name":"akbarik","email":"kz.akbar@gmail.com"},{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},{"name":"engr-ali","email":"its.muhammad.ali.mughal@gmail.com"},{"name":"ando.gq","email":"tom@ando.sh"},{"name":"ninfa_jeon","email":"urvashi.sharma271099@gmail.com"},{"name":"ndv99","email":"n.devilliers1999@gmail.com"},{"name":"goulin-canonical","email":"goulin.khoge@canonical.com"},{"name":"immortalcodes","email":"21112002mj@gmail.com"},{"name":"alvaromateo","email":"alvaro.mateoalvarez@canonical.com"},{"name":"onibenjo-canonical","email":"benjaminaderopo.oni@canonical.com"}],"homepage":"https://github.com/canonical/canonicalwebteam.analytics-events#readme","bugs":{"url":"https://github.com/canonical/canonicalwebteam.analytics-events/issues"},"dist":{"shasum":"d7046e57fbcbdcadf7ba4a31748d2c9eb80dcc44","tarball":"https://registry.npmjs.org/@canonical/analytics-events/-/analytics-events-1.0.1.tgz","fileCount":11,"integrity":"sha512-ZGSNn4Ji53M33wHU6ZmA9JDGbw782Oa6RO0znI5CXzVm7r94APqGj57c55CYebzuggSn8VKvwXt9maprP/laGQ==","signatures":[{"sig":"MEYCIQDX4CN0e++wHENsR543cqe/0RTk4d5xQV6g/QQZ0TC1vQIhAMO/ocAFuNN9ZwiM3U6Pd32QX7KZme2+gBAdC6iAHm29","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14149},"main":"dist/index.js","types":"dist/types/index.d.ts","module":"dist/index.js","gitHead":"8aaec18f7d86c9b0b92f094fd36fa7a45b32e9c2","scripts":{"dev":"npm run build && npx serve . -l 3000","lint":"biome check src","build":"esbuild src/index.ts --bundle --format=esm --outfile=dist/index.js && tsc --emitDeclarationOnly","format":"biome format --write src","lint:fix":"biome check --write src","prepublishOnly":"npm run build"},"_npmUser":{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},"repository":{"url":"git+https://github.com/canonical/canonicalwebteam.analytics-events.git","type":"git"},"_npmVersion":"10.9.3","description":"Lightweight analytics event tracking","directories":{},"_nodeVersion":"22.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"serve":"^14.2.5","esbuild":"^0.27.2","typescript":"^5.9.3","@biomejs/biome":"^2.3.11"},"_npmOperationalInternal":{"tmp":"tmp/analytics-events_1.0.1_1771850958814_0.3657597656264304","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@canonical/analytics-events","version":"1.0.2","keywords":["analytics","events","tracking"],"author":{"name":"Canonical Webteam"},"license":"ISC","_id":"@canonical/analytics-events@1.0.2","maintainers":[{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},{"name":"frankban","email":"frankban@gmail.com"},{"name":"huwshimi","email":"huw@ikmail.com"},{"name":"anthonydillon","email":"me@anthonydillon.com"},{"name":"steverydz","email":"steverydz@gmail.com"},{"name":"amylily1011","email":"amy.lily@canonical.com"},{"name":"bartaz","email":"bartek.szopka@canonical.com"},{"name":"jpmartinspt","email":"joao.figueiredo.martins@canonical.com"},{"name":"petesfrench","email":"peterfrench94@gmail.com"},{"name":"jmuzina","email":"jmuzina@pm.me"},{"name":"mtruj","email":"mariapaula.trujillo@canonical.com"},{"name":"edlerd","email":"david.edler@canonical.com"},{"name":"canonical-organization","email":"is-admin@canonical.com"},{"name":"edisile-canonical","email":"eduard.manta@canonical.com"},{"name":"steciuk-canonical","email":"adam.steciuk@canonical.com"},{"name":"akbarik","email":"kz.akbar@gmail.com"},{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},{"name":"engr-ali","email":"its.muhammad.ali.mughal@gmail.com"},{"name":"ando.gq","email":"tom@ando.sh"},{"name":"ninfa_jeon","email":"urvashi.sharma271099@gmail.com"},{"name":"ndv99","email":"n.devilliers1999@gmail.com"},{"name":"goulin-canonical","email":"goulin.khoge@canonical.com"},{"name":"immortalcodes","email":"21112002mj@gmail.com"},{"name":"alvaromateo","email":"alvaro.mateoalvarez@canonical.com"},{"name":"onibenjo-canonical","email":"benjaminaderopo.oni@canonical.com"}],"homepage":"https://github.com/canonical/canonicalwebteam.analytics-events#readme","bugs":{"url":"https://github.com/canonical/canonicalwebteam.analytics-events/issues"},"dist":{"shasum":"2bb6187fe4071b6a132d0997ebc9efdbec7257bc","tarball":"https://registry.npmjs.org/@canonical/analytics-events/-/analytics-events-1.0.2.tgz","fileCount":11,"integrity":"sha512-PqSwOK+sW5dhTU41a39or90DFYEboLXsyS03n4oBFp78n83rEGLFoUPSFToHpJZ8HxZuYdSsGV2WpnKwvrSSlQ==","signatures":[{"sig":"MEQCIAG/mMrvpH6s3CHATrqXJ38Ggdr7tv+yYImajidM7sS4AiAST0UP0CPXNlz211dvogSdaqfwCFXBODewh7qpwltmKw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14313},"main":"dist/index.js","types":"dist/types/index.d.ts","module":"dist/index.js","gitHead":"440e7e27b365659d103c106966f321e89dd4868e","scripts":{"dev":"npm run build && npx serve . -l 3000","lint":"biome check src","build":"esbuild src/index.ts --bundle --format=esm --outfile=dist/index.js && tsc --emitDeclarationOnly","format":"biome format --write src","lint:fix":"biome check --write src","prepublishOnly":"npm run build"},"_npmUser":{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},"repository":{"url":"git+https://github.com/canonical/canonicalwebteam.analytics-events.git","type":"git"},"_npmVersion":"10.9.3","description":"Lightweight analytics event tracking","directories":{},"_nodeVersion":"22.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"serve":"^14.2.5","esbuild":"^0.27.2","typescript":"^5.9.3","@biomejs/biome":"^2.3.11"},"_npmOperationalInternal":{"tmp":"tmp/analytics-events_1.0.2_1771854276627_0.2577228211650795","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@canonical/analytics-events","version":"1.0.3","keywords":["analytics","events","tracking"],"author":{"name":"Canonical Webteam"},"license":"ISC","_id":"@canonical/analytics-events@1.0.3","maintainers":[{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},{"name":"frankban","email":"frankban@gmail.com"},{"name":"huwshimi","email":"huw@ikmail.com"},{"name":"anthonydillon","email":"me@anthonydillon.com"},{"name":"steverydz","email":"steverydz@gmail.com"},{"name":"amylily1011","email":"amy.lily@canonical.com"},{"name":"bartaz","email":"bartek.szopka@canonical.com"},{"name":"jpmartinspt","email":"joao.figueiredo.martins@canonical.com"},{"name":"petesfrench","email":"peterfrench94@gmail.com"},{"name":"jmuzina","email":"jmuzina@pm.me"},{"name":"mtruj","email":"mariapaula.trujillo@canonical.com"},{"name":"edlerd","email":"david.edler@canonical.com"},{"name":"canonical-organization","email":"is-admin@canonical.com"},{"name":"edisile-canonical","email":"eduard.manta@canonical.com"},{"name":"steciuk-canonical","email":"adam.steciuk@canonical.com"},{"name":"akbarik","email":"kz.akbar@gmail.com"},{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},{"name":"engr-ali","email":"its.muhammad.ali.mughal@gmail.com"},{"name":"ando.gq","email":"tom@ando.sh"},{"name":"ninfa_jeon","email":"urvashi.sharma271099@gmail.com"},{"name":"ndv99","email":"n.devilliers1999@gmail.com"},{"name":"goulin-canonical","email":"goulin.khoge@canonical.com"},{"name":"immortalcodes","email":"21112002mj@gmail.com"},{"name":"alvaromateo","email":"alvaro.mateoalvarez@canonical.com"},{"name":"onibenjo-canonical","email":"benjaminaderopo.oni@canonical.com"}],"homepage":"https://github.com/canonical/canonicalwebteam.analytics-events#readme","bugs":{"url":"https://github.com/canonical/canonicalwebteam.analytics-events/issues"},"dist":{"shasum":"e58bfa75f3a5fb1d334c0a68c7b8d6970f61e05d","tarball":"https://registry.npmjs.org/@canonical/analytics-events/-/analytics-events-1.0.3.tgz","fileCount":11,"integrity":"sha512-WGgewJV9HZPp5uXhHkYpfwV0H9MhoP/D+I4MTSD2TQfs3yN/JBCrwkg418L6PUYKRBykdlPFyeA6fvjdlf60zQ==","signatures":[{"sig":"MEQCIG8NxJW8vsrFNNMhxg/lV+wkNZ5GQqV9NoWFkBeLlS9CAiAnp28q6xsMb6z0E/pR7Y/uvHGOkriB6nOoD6dHCdUWFw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14307},"main":"dist/index.js","types":"dist/types/index.d.ts","module":"dist/index.js","gitHead":"2a0c1c49f75a00dbf5d2bf242a43d3c6b79daee6","scripts":{"dev":"npm run build && npx serve . -l 3000","lint":"biome check src","build":"esbuild src/index.ts --bundle --format=esm --outfile=dist/index.js && tsc --emitDeclarationOnly","format":"biome format --write src","lint:fix":"biome check --write src","prepublishOnly":"npm run build"},"_npmUser":{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},"repository":{"url":"git+https://github.com/canonical/canonicalwebteam.analytics-events.git","type":"git"},"_npmVersion":"10.9.3","description":"Lightweight analytics event tracking","directories":{},"_nodeVersion":"22.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"serve":"^14.2.5","esbuild":"^0.27.2","typescript":"^5.9.3","@biomejs/biome":"^2.3.11"},"_npmOperationalInternal":{"tmp":"tmp/analytics-events_1.0.3_1771932819001_0.12777268556003274","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@canonical/analytics-events","version":"1.0.4","keywords":["analytics","events","tracking"],"author":{"name":"Canonical Webteam"},"license":"ISC","_id":"@canonical/analytics-events@1.0.4","maintainers":[{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},{"name":"frankban","email":"frankban@gmail.com"},{"name":"huwshimi","email":"huw@ikmail.com"},{"name":"anthonydillon","email":"me@anthonydillon.com"},{"name":"steverydz","email":"steverydz@gmail.com"},{"name":"amylily1011","email":"amy.lily@canonical.com"},{"name":"bartaz","email":"bartek.szopka@canonical.com"},{"name":"jpmartinspt","email":"joao.figueiredo.martins@canonical.com"},{"name":"petesfrench","email":"peterfrench94@gmail.com"},{"name":"jmuzina","email":"jmuzina@pm.me"},{"name":"mtruj","email":"mariapaula.trujillo@canonical.com"},{"name":"edlerd","email":"david.edler@canonical.com"},{"name":"canonical-organization","email":"is-admin@canonical.com"},{"name":"edisile-canonical","email":"eduard.manta@canonical.com"},{"name":"steciuk-canonical","email":"adam.steciuk@canonical.com"},{"name":"akbarik","email":"kz.akbar@gmail.com"},{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},{"name":"engr-ali","email":"its.muhammad.ali.mughal@gmail.com"},{"name":"ando.gq","email":"tom@ando.sh"},{"name":"ninfa_jeon","email":"urvashi.sharma271099@gmail.com"},{"name":"ndv99","email":"n.devilliers1999@gmail.com"},{"name":"goulin-canonical","email":"goulin.khoge@canonical.com"},{"name":"immortalcodes","email":"21112002mj@gmail.com"},{"name":"alvaromateo","email":"alvaro.mateoalvarez@canonical.com"},{"name":"onibenjo-canonical","email":"benjaminaderopo.oni@canonical.com"}],"homepage":"https://github.com/canonical/canonicalwebteam.analytics-events#readme","bugs":{"url":"https://github.com/canonical/canonicalwebteam.analytics-events/issues"},"dist":{"shasum":"27440161a7970f2f2a990dd0597e70685706c3b4","tarball":"https://registry.npmjs.org/@canonical/analytics-events/-/analytics-events-1.0.4.tgz","fileCount":12,"integrity":"sha512-+ChQJHpwpBQxuSdVwNv1YSGSzX6z6QeCmfxKqo8K02Hk2nJGuIdwEfi4yIa/KxVOhxaFLO7fy7ACSsBkTGeGRA==","signatures":[{"sig":"MEQCIGuZhIeKHB4IOCr1B39aAksE5+jHZ2SURqethbzLxz4iAiBVtJXuJ2btaikWsf0TWkjtVMQgas4yeRd9wqBRZdhMcg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15642},"main":"dist/index.js","types":"dist/types/index.d.ts","module":"dist/index.js","gitHead":"17087852e0f261ba0d5f41ecab8565d2fda9e00a","scripts":{"dev":"npm run build && npx serve . -l 3000","lint":"biome check src","build":"esbuild src/index.ts --bundle --format=esm --outfile=dist/index.js && tsc --emitDeclarationOnly","format":"biome format --write src","lint:fix":"biome check --write src","prepublishOnly":"npm run build"},"_npmUser":{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},"repository":{"url":"git+https://github.com/canonical/canonicalwebteam.analytics-events.git","type":"git"},"_npmVersion":"10.9.3","description":"Lightweight analytics event tracking","directories":{},"_nodeVersion":"22.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"serve":"^14.2.5","esbuild":"^0.27.2","typescript":"^5.9.3","@biomejs/biome":"^2.3.11"},"_npmOperationalInternal":{"tmp":"tmp/analytics-events_1.0.4_1772090719947_0.11404679907150017","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@canonical/analytics-events","version":"1.0.5","keywords":["analytics","events","tracking"],"author":{"name":"Canonical Webteam"},"license":"ISC","_id":"@canonical/analytics-events@1.0.5","maintainers":[{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},{"name":"frankban","email":"frankban@gmail.com"},{"name":"huwshimi","email":"huw@ikmail.com"},{"name":"anthonydillon","email":"me@anthonydillon.com"},{"name":"steverydz","email":"steverydz@gmail.com"},{"name":"amylily1011","email":"amy.lily@canonical.com"},{"name":"bartaz","email":"bartek.szopka@canonical.com"},{"name":"jpmartinspt","email":"joao.figueiredo.martins@canonical.com"},{"name":"petesfrench","email":"peterfrench94@gmail.com"},{"name":"mariadias143","email":"marianovadias@gmail.com"},{"name":"jmuzina","email":"jmuzina@pm.me"},{"name":"mtruj","email":"mariapaula.trujillo@canonical.com"},{"name":"edlerd","email":"david.edler@canonical.com"},{"name":"canonical-organization","email":"is-admin@canonical.com"},{"name":"edisile-canonical","email":"eduard.manta@canonical.com"},{"name":"steciuk-canonical","email":"adam.steciuk@canonical.com"},{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},{"name":"engr-ali","email":"its.muhammad.ali.mughal@gmail.com"},{"name":"ando.gq","email":"tom@ando.sh"},{"name":"ninfa_jeon","email":"urvashi.sharma271099@gmail.com"},{"name":"ndv99","email":"n.devilliers1999@gmail.com"},{"name":"goulin-canonical","email":"goulin.khoge@canonical.com"},{"name":"immortalcodes","email":"21112002mj@gmail.com"},{"name":"alvaromateo","email":"alvaro.mateoalvarez@canonical.com"},{"name":"onibenjo-canonical","email":"benjaminaderopo.oni@canonical.com"}],"homepage":"https://github.com/canonical/canonicalwebteam.analytics-events#readme","bugs":{"url":"https://github.com/canonical/canonicalwebteam.analytics-events/issues"},"dist":{"shasum":"88a18381a657196ea5f21b5932a41c5afce69999","tarball":"https://registry.npmjs.org/@canonical/analytics-events/-/analytics-events-1.0.5.tgz","fileCount":13,"integrity":"sha512-GMFbPJ83FcN+ItLcc1czYp0HUA96uLfu+35B0NWEVCL/Wy/CRc0o8Ab1DgAyjBw16reIP+SkAg9k/NBwNj1Tjg==","signatures":[{"sig":"MEQCIDjaf1JncUit8t8ZQutnuS78IC6C3mYrpXd+GtaTA5vaAiBDPqIK4Y5cVULA2/xBNQ9pHBHo81VA/BM89OdKYUjXrw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":17594},"main":"dist/index.js","types":"dist/types/index.d.ts","module":"dist/index.js","gitHead":"e2571f2e8ae67906b6f5f0794716fccb178c958b","scripts":{"dev":"npm run build && npx serve . -l 3000","lint":"biome check src","build":"esbuild src/index.ts --bundle --format=esm --outfile=dist/index.js && tsc --emitDeclarationOnly","format":"biome format --write src","lint:fix":"biome check --write src","prepublishOnly":"npm run build"},"_npmUser":{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},"repository":{"url":"git+https://github.com/canonical/canonicalwebteam.analytics-events.git","type":"git"},"_npmVersion":"10.9.3","description":"Lightweight analytics event tracking","directories":{},"_nodeVersion":"22.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"serve":"^14.2.5","esbuild":"^0.27.2","typescript":"^5.9.3","@biomejs/biome":"^2.3.11"},"_npmOperationalInternal":{"tmp":"tmp/analytics-events_1.0.5_1773384213159_0.012113179056744361","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@canonical/analytics-events","version":"1.1.0","keywords":["analytics","events","tracking"],"author":{"name":"Canonical Webteam"},"license":"ISC","_id":"@canonical/analytics-events@1.1.0","maintainers":[{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},{"name":"frankban","email":"frankban@gmail.com"},{"name":"huwshimi","email":"huw@ikmail.com"},{"name":"anthonydillon","email":"me@anthonydillon.com"},{"name":"steverydz","email":"steverydz@gmail.com"},{"name":"amylily1011","email":"amy.lily@canonical.com"},{"name":"bartaz","email":"bartek.szopka@canonical.com"},{"name":"jpmartinspt","email":"joao.figueiredo.martins@canonical.com"},{"name":"petesfrench","email":"peterfrench94@gmail.com"},{"name":"mariadias143","email":"marianovadias@gmail.com"},{"name":"jmuzina","email":"jmuzina@pm.me"},{"name":"mtruj","email":"mariapaula.trujillo@canonical.com"},{"name":"edlerd","email":"david.edler@canonical.com"},{"name":"abehnia","email":"ardavan.behnia@canonical.com"},{"name":"canonical-organization","email":"is-admin@canonical.com"},{"name":"edisile-canonical","email":"eduard.manta@canonical.com"},{"name":"steciuk-canonical","email":"adam.steciuk@canonical.com"},{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},{"name":"engr-ali","email":"its.muhammad.ali.mughal@gmail.com"},{"name":"ando.gq","email":"tom@ando.sh"},{"name":"ninfa_jeon","email":"urvashi.sharma271099@gmail.com"},{"name":"ndv99","email":"n.devilliers1999@gmail.com"},{"name":"goulin-canonical","email":"goulin.khoge@canonical.com"},{"name":"immortalcodes","email":"21112002mj@gmail.com"},{"name":"alvaromateo","email":"alvaro.mateoalvarez@canonical.com"},{"name":"onibenjo-canonical","email":"benjaminaderopo.oni@canonical.com"}],"homepage":"https://github.com/canonical/canonicalwebteam.analytics-events#readme","bugs":{"url":"https://github.com/canonical/canonicalwebteam.analytics-events/issues"},"dist":{"shasum":"8d8ca6ca3c9691332a0f9b1661735bdae60174ff","tarball":"https://registry.npmjs.org/@canonical/analytics-events/-/analytics-events-1.1.0.tgz","fileCount":16,"integrity":"sha512-kQ7s8bILF/TqcS4h4Lgqw/fMwQgpQrEDMuMVjxxdgS2d5s8PiIwuNiGu/hqfChkSwErC/Xl6u2NilW63iDGSPA==","signatures":[{"sig":"MEUCIHVUmILjyEWZNpdDRFUeNauqXVxxJ/P2y+Tn4TOLnEt5AiEAgV5cXvMIW/mogVO6yyqQqNCx/gFDa/sy9jL1m+D4OYA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23059},"main":"dist/index.js","types":"dist/types/index.d.ts","module":"dist/index.js","gitHead":"5269fbcb2c18a7edb58bf8ab643dc4ecd5e43c40","scripts":{"dev":"npm run build && npx serve . -l 3000","lint":"biome check src","build":"esbuild src/index.ts --bundle --format=esm --outfile=dist/index.js && tsc --emitDeclarationOnly","format":"biome format --write src","lint:fix":"biome check --write src","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:aa846167-c3d2-412e-9dff-002c27a83d1f"}},"repository":{"url":"git+https://github.com/canonical/canonicalwebteam.analytics-events.git","type":"git"},"_npmVersion":"11.17.0","description":"Lightweight analytics event tracking","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"serve":"^14.2.5","esbuild":"^0.27.2","typescript":"^5.9.3","@biomejs/biome":"^2.3.11"},"_npmOperationalInternal":{"tmp":"tmp/analytics-events_1.1.0_1782231110542_0.5423077259441644","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@canonical/analytics-events","version":"1.1.1","keywords":["analytics","events","tracking"],"author":{"name":"Canonical Webteam"},"license":"ISC","_id":"@canonical/analytics-events@1.1.1","maintainers":[{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},{"name":"frankban","email":"frankban@gmail.com"},{"name":"huwshimi","email":"huw@ikmail.com"},{"name":"anthonydillon","email":"me@anthonydillon.com"},{"name":"steverydz","email":"steverydz@gmail.com"},{"name":"amylily1011","email":"amy.lily@canonical.com"},{"name":"bartaz","email":"bartek.szopka@canonical.com"},{"name":"jpmartinspt","email":"joao.figueiredo.martins@canonical.com"},{"name":"petesfrench","email":"peterfrench94@gmail.com"},{"name":"mariadias143","email":"marianovadias@gmail.com"},{"name":"jmuzina","email":"jmuzina@pm.me"},{"name":"mtruj","email":"mariapaula.trujillo@canonical.com"},{"name":"edlerd","email":"david.edler@canonical.com"},{"name":"abehnia","email":"ardavan.behnia@canonical.com"},{"name":"canonical-organization","email":"is-admin@canonical.com"},{"name":"edisile-canonical","email":"eduard.manta@canonical.com"},{"name":"steciuk-canonical","email":"adam.steciuk@canonical.com"},{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},{"name":"engr-ali","email":"its.muhammad.ali.mughal@gmail.com"},{"name":"ando.gq","email":"tom@ando.sh"},{"name":"ninfa_jeon","email":"urvashi.sharma271099@gmail.com"},{"name":"ndv99","email":"n.devilliers1999@gmail.com"},{"name":"goulin-canonical","email":"goulin.khoge@canonical.com"},{"name":"immortalcodes","email":"21112002mj@gmail.com"},{"name":"alvaromateo","email":"alvaro.mateoalvarez@canonical.com"},{"name":"onibenjo-canonical","email":"benjaminaderopo.oni@canonical.com"}],"homepage":"https://github.com/canonical/canonicalwebteam.analytics-events#readme","bugs":{"url":"https://github.com/canonical/canonicalwebteam.analytics-events/issues"},"dist":{"shasum":"0e508481de3af994cbe7e0fef2be081df5b9efc1","tarball":"https://registry.npmjs.org/@canonical/analytics-events/-/analytics-events-1.1.1.tgz","fileCount":16,"integrity":"sha512-nEvJkrvetwMzMfINqgYSXCBfBTAsnLuvzFRGHvhUuICFpXB6iVN2uTP0OlGoxj0qpsOIS8/dv15yCZQgz/CKFA==","signatures":[{"sig":"MEUCIE3xWKzNKQYZdkcAj5DGj0+FNjd7io7Q7lEE0yl16bJ1AiEAzvVg5214mILRSsY136vwEPIYOdaJpLzvvvPWLTiYd1k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23045},"main":"dist/index.js","types":"dist/types/index.d.ts","module":"dist/index.js","gitHead":"accc4e24f5721a28f407264ee1d9b4a101f29691","scripts":{"dev":"npm run build && npx serve . -l 3000","lint":"biome check src","build":"esbuild src/index.ts --bundle --format=esm --outfile=dist/index.js && tsc --emitDeclarationOnly","format":"biome format --write src","lint:fix":"biome check --write src","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:aa846167-c3d2-412e-9dff-002c27a83d1f"}},"repository":{"url":"git+https://github.com/canonical/canonicalwebteam.analytics-events.git","type":"git"},"_npmVersion":"11.17.0","description":"Lightweight analytics event tracking","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"serve":"^14.2.5","esbuild":"^0.27.2","typescript":"^5.9.3","@biomejs/biome":"^2.3.11"},"_npmOperationalInternal":{"tmp":"tmp/analytics-events_1.1.1_1782300792232_0.7757397915296453","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@canonical/analytics-events","version":"1.1.2","keywords":["analytics","events","tracking"],"author":{"name":"Canonical Webteam"},"license":"ISC","_id":"@canonical/analytics-events@1.1.2","maintainers":[{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},{"name":"frankban","email":"frankban@gmail.com"},{"name":"huwshimi","email":"huw@ikmail.com"},{"name":"anthonydillon","email":"me@anthonydillon.com"},{"name":"steverydz","email":"steverydz@gmail.com"},{"name":"amylily1011","email":"amy.lily@canonical.com"},{"name":"bartaz","email":"bartek.szopka@canonical.com"},{"name":"jpmartinspt","email":"joao.figueiredo.martins@canonical.com"},{"name":"petesfrench","email":"peterfrench94@gmail.com"},{"name":"jmuzina","email":"jmuzina@pm.me"},{"name":"mtruj","email":"mariapaula.trujillo@canonical.com"},{"name":"edlerd","email":"david.edler@canonical.com"},{"name":"abehnia","email":"ardavan.behnia@canonical.com"},{"name":"canonical-organization","email":"is-admin@canonical.com"},{"name":"edisile-canonical","email":"eduard.manta@canonical.com"},{"name":"steciuk-canonical","email":"adam.steciuk@canonical.com"},{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},{"name":"engr-ali","email":"its.muhammad.ali.mughal@gmail.com"},{"name":"ando.gq","email":"tom@ando.sh"},{"name":"ninfa_jeon","email":"urvashi.sharma271099@gmail.com"},{"name":"ndv99","email":"n.devilliers1999@gmail.com"},{"name":"goulin-canonical","email":"goulin.khoge@canonical.com"},{"name":"immortalcodes","email":"21112002mj@gmail.com"},{"name":"alvaromateo","email":"alvaro.mateoalvarez@canonical.com"},{"name":"onibenjo-canonical","email":"benjaminaderopo.oni@canonical.com"}],"homepage":"https://github.com/canonical/canonicalwebteam.analytics-events#readme","bugs":{"url":"https://github.com/canonical/canonicalwebteam.analytics-events/issues"},"dist":{"shasum":"ca37290b015bb0c0553e2fefd6c319ebce8d823f","tarball":"https://registry.npmjs.org/@canonical/analytics-events/-/analytics-events-1.1.2.tgz","fileCount":16,"integrity":"sha512-YlDcavEm2cWL9CyT/gyf4btqFC699zyACeUzDbyI+AzM45lNZtaLuyY+cIaZsq2eaYsXqYFskdIRtlkC/NQEcA==","signatures":[{"sig":"MEQCIB/KDYtTo49VcYK4kwEU6IRLALFYyirrNMNbZf3u/AsSAiAUN372UyZ0JW1WOgJN6rpUwvmchEgPEumGrzZszSZPPg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23369},"main":"dist/index.js","types":"dist/types/index.d.ts","module":"dist/index.js","gitHead":"8e90d66a2a81d76f4e13e40f2ba3cd8b2c1aa2d7","scripts":{"dev":"npm run build && npx serve . -l 3000","lint":"biome check src","build":"esbuild src/index.ts --bundle --format=esm --outfile=dist/index.js && tsc --emitDeclarationOnly","format":"biome format --write src","lint:fix":"biome check --write src","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:aa846167-c3d2-412e-9dff-002c27a83d1f"}},"repository":{"url":"git+https://github.com/canonical/canonicalwebteam.analytics-events.git","type":"git"},"_npmVersion":"12.0.2","description":"Lightweight analytics event tracking","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"serve":"^14.2.5","esbuild":"^0.27.2","typescript":"^5.9.3","@biomejs/biome":"^2.3.11"},"_npmOperationalInternal":{"tmp":"tmp/analytics-events_1.1.2_1786631033508_0.018790895590123924","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2026-02-23T09:58:17.959Z","modified":"2026-09-09T10:46:27.113Z","1.0.0":"2026-02-23T09:58:18.169Z","1.0.1":"2026-02-23T12:49:18.971Z","1.0.2":"2026-02-23T13:44:36.754Z","1.0.3":"2026-02-24T11:33:39.130Z","1.0.4":"2026-02-26T07:25:20.104Z","1.0.5":"2026-03-13T06:43:33.301Z","1.1.0":"2026-06-23T16:11:50.733Z","1.1.1":"2026-06-24T11:33:12.382Z","1.1.2":"2026-08-13T14:23:53.657Z"},"bugs":{"url":"https://github.com/canonical/canonicalwebteam.analytics-events/issues"},"author":{"name":"Canonical Webteam"},"license":"ISC","homepage":"https://github.com/canonical/canonicalwebteam.analytics-events#readme","keywords":["analytics","events","tracking"],"repository":{"url":"git+https://github.com/canonical/canonicalwebteam.analytics-events.git","type":"git"},"description":"Lightweight analytics event tracking","maintainers":[{"email":"ilayda.cavusoglupars@canonical.com","name":"ilayda21"},{"email":"frankban@gmail.com","name":"frankban"},{"email":"huw@ikmail.com","name":"huwshimi"},{"email":"me@anthonydillon.com","name":"anthonydillon"},{"email":"steverydz@gmail.com","name":"steverydz"},{"email":"bartek.szopka@canonical.com","name":"bartaz"},{"email":"joao.figueiredo.martins@canonical.com","name":"jpmartinspt"},{"email":"peterfrench94@gmail.com","name":"petesfrench"},{"email":"jmuzina@pm.me","name":"jmuzina"},{"email":"mariapaula.trujillo@canonical.com","name":"mtruj"},{"email":"david.edler@canonical.com","name":"edlerd"},{"email":"ardavan.behnia@canonical.com","name":"abehnia"},{"email":"is-admin@canonical.com","name":"canonical-organization"},{"email":"eduard.manta@canonical.com","name":"edisile-canonical"},{"email":"adam.steciuk@canonical.com","name":"steciuk-canonical"},{"email":"abbie.sims@canonical.com","name":"abbiesims"},{"email":"atakan99saglam@gmail.com","name":"ataku_b"},{"email":"adrian.villa.g@gmail.com","name":"ad.vl"},{"email":"its.muhammad.ali.mughal@gmail.com","name":"engr-ali"},{"email":"urvashi.sharma271099@gmail.com","name":"ninfa_jeon"},{"email":"n.devilliers1999@gmail.com","name":"ndv99"},{"email":"goulin.khoge@canonical.com","name":"goulin-canonical"},{"email":"21112002mj@gmail.com","name":"immortalcodes"},{"email":"alvaro.mateoalvarez@canonical.com","name":"alvaromateo"},{"email":"benjaminaderopo.oni@canonical.com","name":"onibenjo-canonical"}],"readme":"# Analytics Events\n\nLightweight event-based analytics library for tracking user interactions.\n\n### Features\n\n- Click tracking with 500ms throttle\n- Hover tracking (fires after 1s threshold, reports actual duration)\n- View tracking (fires after 5s visibility at 75% threshold)\n- Page view tracking (fires immediately, no threshold)\n- Custom event tracking via JS (no DOM element needed)\n- Session tracking via sessionStorage (persists across page reloads)\n- Event batching (10 events or 10s timeout, flushes on page hide)\n- Custom attributes via `data-analytics-*`\n- Pluggable destinations: an HTTP backend or Google Analytics 4 (GA4)\n\n### Install\n\n```bash\nnpm install @canonical/analytics-events\n```\n\n### Usage\n\n```html\n<button data-analytics-click data-analytics-target=\"signup_btn\">\n  Sign Up\n</button>\n\n<div data-analytics-hover data-analytics-target=\"promo_banner\">\n  Hover me\n</div>\n\n<section data-analytics-view data-analytics-target=\"hero_section\">\n  Track when this section is viewed\n</section>\n\n<script type=\"module\">\n  import { initAnalytics, trackPageView, trackEvent } from '@canonical/analytics-events';\n\n  // Send to GA4 via the site's existing Google Tag Manager\n  initAnalytics({\n    appName: 'snapcraft',\n    gtm: true\n  });\n\n  // ...or send to an HTTP backend instead\n  // initAnalytics({\n  //   appName: 'snapcraft',\n  //   endpoint: 'https://marketplace-analytics.canonical.com/analytics/events'\n  // });\n\n  // Track a page view immediately (HTTP destination; ignored for GA4/GTM)\n  trackPageView('snap_details_page');\n\n  // Track a custom event programmatically (no DOM element needed)\n  trackEvent('chart_tab_switch', { tab: 'architectures', snap: 'firefox' });\n</script>\n```\n\n### Attributes\n\n| Attribute | Description |\n|-----------|-------------|\n| `data-analytics-click` | Enable click tracking on element |\n| `data-analytics-hover` | Enable hover tracking on element |\n| `data-analytics-view` | Enable view tracking on element |\n| `data-analytics-view-threshold` | Visibility ratio to trigger view (default: 0.75) |\n| `data-analytics-target` | Identifier for the element (required) |\n| `data-analytics-*` | Custom attributes included in payload |\n\n### API\n\n#### `initAnalytics(options)`\n\nInitializes all declarative tracking (click, hover, view) and configures the destination.\n\n| Option | Type | Description |\n|--------|------|-------------|\n| `appName` | `string` | Application identifier (e.g. `\"snapcraft\"`) |\n| `endpoint` | `string` | URL to POST event batches to (HTTP backend) |\n| `gtm` | `boolean` | Send to GA4 via an existing GTM container |\n\nProvide **one** destination. Precedence is `gtm` -> `endpoint`; if none is set, declarative tracking is not initialized and events are not delivered.\n\n### Destinations\n\nThe package can deliver events to different destinations:\n\n- **HTTP backend** (`endpoint`) — batches events (10 events or 10s) and POSTs them via `navigator.sendBeacon` / `fetch`. The payload is the [structure below](#payload-structure).\n- **Google Analytics 4 via GTM** (`gtm: true`) — pushes each event onto the page's existing `dataLayer` as `{ event: \"analytics_event\", ga_event_name, ...params }`. The site's Google Tag Manager container then forwards them to GA4. Configure GTM with a trigger on the `analytics_event` custom event and a GA4 event tag whose event name is the `ga_event_name` data-layer variable. This reuses the site's existing GTM/GA setup — no second Google loader.\n\n#### How events map to GA4\n\n| Event type | GA4 event name | Notes |\n|-----------|----------------|-------|\n| `page_view` | — | Not sent; GA4 collects page views automatically |\n| `custom` | the `target` value | e.g. `chart_tab_switch` |\n| `click` | `ui_click` | `target` is sent as a parameter |\n| `view` | `ui_view` | `target` is sent as a parameter |\n| `hover` | `ui_hover` | `target` is sent as a parameter |\n\nPage views use GA4's **automatic** page-view tracking (enhanced measurement) —\nthe package does not send its own, and the GA4/GTM destination ignores\n`page_view` events (including those from `trackPageView`). Declarative types are\nprefixed (`ui_click`, etc.) to avoid\nclashing with GA4's built-in event names. Event and parameter names are\ntruncated to GA4's limits (names <= 40 chars, string values <= 100 chars).\n\n#### Parameters\n\nAll event attributes are forwarded to GA4 as event parameters (alongside\n`event_type` and `app_name`). Only the package's internal fields — `session_id`\nand `url` — are not sent (GA4 has its own session model and captures\n`page_location` automatically).\n\nThe package is intentionally generic: it does **not** filter application-specific\nfields. If a consuming app collects high-cardinality or sensitive attributes\n(e.g. free-text queries, per-request IDs) that should not go to GA4, it is\nresponsible for not attaching them on the GA4 destination.\n\n#### `trackPageView(target)`\n\nFires a `page_view` event immediately. Use this for tracking page visits where you need every visit counted regardless of how quickly the user navigates away.\n\n| Parameter | Type | Description |\n|-----------|------|-------------|\n| `target` | `string` | Identifier for the page (e.g. `\"snap_details_page\"`) |\n\n#### `trackEvent(target, attributes?)`\n\nFires a `custom` event programmatically from JavaScript. Use this when you need to track interactions that can't be captured with HTML `data-analytics-*` attributes (e.g. dynamic UI changes, JS-driven actions, form submissions).\n\n| Parameter | Type | Description |\n|-----------|------|-------------|\n| `target` | `string` | Identifier for the event (e.g. `\"chart_tab_switch\"`) |\n| `attributes` | `Record<string, string \\| number>` | Optional key-value pairs sent with the event |\n\n```js\n// ES module import\nimport { trackEvent } from '@canonical/analytics-events';\ntrackEvent('video_play', { video_id: 'intro', duration: 120 });\n\n// Global (script tag)\nwindow.Analytics.trackEvent('filter_applied', { category: 'games' });\n```\n\n### Payload Structure\n\nThis is the batch payload sent to the HTTP `endpoint` destination. (For GA4, see\n[How events map to GA4](#how-events-map-to-ga4) above.)\n\n```js\n{\n  app_name: \"snapcraft\",\n  events: [\n    {\n      event_type: \"click\" | \"hover\" | \"view\" | \"page_view\" | \"custom\",\n      session_id: \"session_abc123...\",\n      target: \"signup_btn\",\n      url: \"https://example.com/page\",\n      attributes: {\n        // custom data-analytics-* attributes\n        duration_ms: 2500,       // hover and view only\n        visibility_ratio: 0.85   // view only\n      }\n    }\n  ]\n}\n```\n\n### Development\n\n```bash\nnpm install\nnpm run build    # Build for production\nnpm run lint     # Check code\nnpm run lint:fix # Fix lint issues\n```\n\n---\n\n## Test App\n\nA demo page is included in `test-app/` to test tracking locally.\n\n```bash\nnpm install\nnpm run build\nnpm run dev\n```\n\nOpen `http://localhost:3000/test-app/` in your browser. Interact with elements and open the Event Log to see captured events.\n","readmeFilename":"README.md"}