{"_id":"@athoscommerce/beacon","_rev":"12-b5e24a24464edd10467fb8b2fd58e9a3","name":"@athoscommerce/beacon","dist-tags":{"latest":"1.3.0"},"versions":{"1.0.0":{"name":"@athoscommerce/beacon","version":"1.0.0","author":{"name":"athoscommerce"},"license":"MIT","_id":"@athoscommerce/beacon@1.0.0","maintainers":[{"name":"athos-nebo","email":"machine@athoscommerce.com"},{"name":"kevindevin","email":"kevin@searchspring.com"}],"homepage":"https://github.com/athoscommerce/beacon.js#readme","bugs":{"url":"https://github.com/athoscommerce/beacon.js/issues"},"dist":{"shasum":"d394f63ca3cd52071cd522be38bcc68fe6103d5a","tarball":"https://registry.npmjs.org/@athoscommerce/beacon/-/beacon-1.0.0.tgz","fileCount":590,"integrity":"sha512-w2wZY55E9L0C8KtrZpzqgT6yRq9y1Y4bQy2w6Sa2t+yqspxUzqd2WCexto/8Ew1xT24WHCjGuiXBeTj/I5rcZA==","signatures":[{"sig":"MEQCIHmaQ60LjqpFn+hdqaLh7+7EjchVU04YR+euXQ9NSgxGAiBdlQeLD8w8xy7jSWUbo+ozbWvo5xb8iAaUQaT4Q8ZBiA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1701686},"main":"dist/cjs/src/index.js","types":"./dist/cjs/src/index.d.ts","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"module":"dist/esm/src/index.js","gitHead":"12fd11a2d4b154c856cc3bf71672db41d7621648","scripts":{"dev":"tsc --watch","lint":"eslint 'src/**/*.{js,jsx,ts,tsx}'","test":"jest","build":"rm -rf ./dist && npm run generate && tsc && tsc -p tsconfig.cjs.json && npm run build:cdn","commit":"cz","format":"prettier --write 'src/**/*.{js,jsx,ts,tsx}' '!src/client/**'","analyze":"webpack --config webpack.prod.js --analyze","prepare":"husky","version":"standard-version -a","generate":"rm -fr ./src/client && openapi-generator-cli generate -i ./beacon.v2.snap.types.oas.yaml -g typescript-fetch -o ./src/client","build:cdn":"webpack --config webpack.prod.js","dev:server":"http-server ./public","test:watch":"jest --watch","postpublish":"git push && git push --tags"},"_npmUser":{"name":"athos-nebo","email":"machine@athoscommerce.com"},"prettier":"@searchspring/prettier","repository":{"url":"git+https://github.com/athoscommerce/beacon.js.git","type":"git"},"_npmVersion":"10.8.2","description":"Javascript library for utilizing Athos Commerce beacon tracking.","directories":{},"lint-staged":{"*.{js,ts,tsx}":["prettier --write","eslint"]},"_nodeVersion":"20.20.0","browserslist":{"universal":"extends @searchspring/browserslist-config-snap/universal"},"dependencies":{"uuid":"9.0.1","@searchspring/snap-toolbox":"0.73.7"},"_hasShrinkwrap":false,"devDependencies":{"jest":"29.7.0","husky":"9.1.7","jsdom":"26.0.0","eslint":"9.23.0","ts-jest":"^29.3.0","typedoc":"0.28.1","webpack":"^5.77.0","prettier":"3.5.3","ts-loader":"9.4.2","typescript":"5.8.2","@babel/core":"^7.21.4","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","http-server":"^14.1.1","lint-staged":"15.5.0","webpack-cli":"^5.0.1","babel-loader":"^9.1.2","whatwg-fetch":"^3.6.20","@babel/runtime":"^7.21.0","standard-version":"9.5.0","@babel/preset-env":"^7.21.4","@searchspring/prettier":"1.0.2","eslint-config-prettier":"10.1.1","jest-environment-jsdom":"^29.7.0","webpack-bundle-analyzer":"^4.8.0","cz-conventional-changelog":"3.3.0","@openapitools/openapi-generator-cli":"^2.25.2","@searchspring/browserslist-config-snap":"^1.0.7"},"_npmOperationalInternal":{"tmp":"tmp/beacon_1.0.0_1770309467434_0.8304902397813825","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@athoscommerce/beacon","version":"1.0.1","author":{"name":"athoscommerce"},"license":"MIT","_id":"@athoscommerce/beacon@1.0.1","maintainers":[{"name":"athos-nebo","email":"machine@athoscommerce.com"},{"name":"kevindevin","email":"kevin@searchspring.com"}],"homepage":"https://github.com/AthosCommerce/beacon.js#readme","bugs":{"url":"https://github.com/AthosCommerce/beacon.js/issues"},"dist":{"shasum":"aa406f308aa9f9ce09484008f2cd1fb6fb95297b","tarball":"https://registry.npmjs.org/@athoscommerce/beacon/-/beacon-1.0.1.tgz","fileCount":590,"integrity":"sha512-tj4qQhF+JZx+XxyIFb+AZvwuB59Z3BmLtFAOy9eQ5Koqe7egNn8Ad//h/mxkeaCliGQWFiHu4J7udtAWEpOEKQ==","signatures":[{"sig":"MEUCIQC0m1ZwYOxHFPV8w6ZiW7lzlWTc8EXMLgkW73iZ/vtGBAIgWzkHbp+FVaBmAXn1B6OfaXtw+qs/AmvHU2+02Lu5LBE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@athoscommerce%2fbeacon@1.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1696003},"main":"dist/cjs/src/index.js","types":"./dist/cjs/src/index.d.ts","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"module":"dist/esm/src/index.js","gitHead":"ac818483bf0fb3aa83836a02228345a4bc86b3eb","scripts":{"dev":"tsc --watch","lint":"eslint 'src/**/*.{js,jsx,ts,tsx}'","test":"jest","build":"rm -rf ./dist && npm run generate && tsc && tsc -p tsconfig.cjs.json && npm run build:cdn","commit":"cz","format":"prettier --write 'src/**/*.{js,jsx,ts,tsx}' '!src/client/**'","analyze":"webpack --config webpack.prod.js --analyze","prepare":"husky","version":"standard-version -a","generate":"rm -fr ./src/client && openapi-generator-cli generate -i ./beacon.v2.snap.types.oas.yaml -g typescript-fetch -o ./src/client","build:cdn":"webpack --config webpack.prod.js","dev:server":"http-server ./public","test:watch":"jest --watch","postpublish":"git push && git push --tags"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f42ee5af-8251-4882-b8b8-b86321957cf1"}},"prettier":"@searchspring/prettier","repository":{"url":"git+https://github.com/AthosCommerce/beacon.js.git","type":"git"},"_npmVersion":"11.6.2","description":"Javascript library for utilizing Athos Commerce beacon tracking.","directories":{},"lint-staged":{"*.{js,ts,tsx}":["prettier --write","eslint"]},"_nodeVersion":"24.13.0","browserslist":{"universal":"extends @searchspring/browserslist-config-snap/universal"},"dependencies":{"uuid":"9.0.1","@searchspring/snap-toolbox":"0.73.7"},"_hasShrinkwrap":false,"devDependencies":{"jest":"29.7.0","husky":"9.1.7","jsdom":"26.0.0","eslint":"9.23.0","ts-jest":"^29.3.0","typedoc":"0.28.1","webpack":"^5.77.0","prettier":"3.5.3","ts-loader":"9.4.2","typescript":"5.8.2","@babel/core":"^7.21.4","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","http-server":"^14.1.1","lint-staged":"15.5.0","webpack-cli":"^5.0.1","babel-loader":"^9.1.2","whatwg-fetch":"^3.6.20","@babel/runtime":"^7.21.0","standard-version":"9.5.0","@babel/preset-env":"^7.21.4","@searchspring/prettier":"1.0.2","eslint-config-prettier":"10.1.1","jest-environment-jsdom":"^29.7.0","webpack-bundle-analyzer":"^4.8.0","cz-conventional-changelog":"3.3.0","@openapitools/openapi-generator-cli":"^2.25.2","@searchspring/browserslist-config-snap":"^1.0.7"},"_npmOperationalInternal":{"tmp":"tmp/beacon_1.0.1_1770752902161_0.8557043312808996","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@athoscommerce/beacon","version":"1.0.2","author":{"name":"athoscommerce"},"license":"MIT","_id":"@athoscommerce/beacon@1.0.2","maintainers":[{"name":"athos-nebo","email":"machine@athoscommerce.com"},{"name":"kevindevin","email":"kevin@searchspring.com"}],"homepage":"https://github.com/AthosCommerce/beacon.js#readme","bugs":{"url":"https://github.com/AthosCommerce/beacon.js/issues"},"dist":{"shasum":"908266b08e1c26811dbfa5068e14bdb2a3e3c358","tarball":"https://registry.npmjs.org/@athoscommerce/beacon/-/beacon-1.0.2.tgz","fileCount":593,"integrity":"sha512-xECleQ3ezuEp1mX+cip9IRyujc7I/9dlTSj4pkPlu2BUrt86g9/xC394/znSmvk974dygA6jI+r/lVmyyuVA7A==","signatures":[{"sig":"MEYCIQCUuUPIVVX/Pj8fOhNoEqGMflTfDWbYJO00dzJ/8uz69AIhAKTBUtMlune6BMgQ0iAOxoScrMdsY3ZXlHVQUIls3Qd9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@athoscommerce%2fbeacon@1.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1697184},"main":"dist/cjs/src/index.js","types":"./dist/cjs/src/index.d.ts","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"module":"dist/esm/src/index.js","gitHead":"c0867aca3faef37db3ce47190112cb9c656f01b0","scripts":{"dev":"tsc --watch & webpack serve --config webpack.dev.js","lint":"eslint src --ext .ts,.tsx","test":"jest","build":"rm -rf ./dist && npm run generate && tsc && tsc -p tsconfig.cjs.json && npm run build:cdn","commit":"cz","format":"prettier --write 'src/**/*.{js,jsx,ts,tsx}' '!src/client/**'","prepare":"husky","version":"standard-version -a","generate":"rm -fr ./src/client && openapi-generator-cli generate -i ./beacon.v2.snap.types.oas.yaml -g typescript-fetch -o ./src/client","build:cdn":"webpack --config webpack.prod.js","test:watch":"jest --watch","postpublish":"git push && git push --tags"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f42ee5af-8251-4882-b8b8-b86321957cf1"}},"prettier":"@searchspring/prettier","repository":{"url":"git+https://github.com/AthosCommerce/beacon.js.git","type":"git"},"_npmVersion":"11.6.2","description":"Javascript library for utilizing Athos Commerce beacon tracking.","directories":{},"lint-staged":{"*.{js,ts,tsx}":["prettier --write","eslint"]},"_nodeVersion":"24.13.0","browserslist":{"universal":"extends @searchspring/browserslist-config-snap/universal"},"dependencies":{"uuid":"9.0.1","@searchspring/snap-toolbox":"0.73.7"},"_hasShrinkwrap":false,"devDependencies":{"jest":"29.7.0","husky":"9.1.7","jsdom":"26.0.0","eslint":"9.23.0","ts-jest":"^29.3.0","typedoc":"0.28.1","webpack":"^5.77.0","prettier":"3.5.3","ts-loader":"9.4.2","typescript":"5.8.2","@babel/core":"^7.21.4","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","lint-staged":"15.5.0","webpack-cli":"^5.0.1","babel-loader":"^9.1.2","whatwg-fetch":"^3.6.20","webpack-merge":"^5.8.0","@babel/runtime":"^7.21.0","standard-version":"9.5.0","@babel/preset-env":"^7.21.4","typescript-eslint":"^8.55.0","webpack-dev-server":"^4.13.2","@searchspring/prettier":"1.0.2","eslint-config-prettier":"10.1.1","jest-environment-jsdom":"^29.7.0","cz-conventional-changelog":"3.3.0","@openapitools/openapi-generator-cli":"^2.25.2","@searchspring/browserslist-config-snap":"^1.0.7"},"_npmOperationalInternal":{"tmp":"tmp/beacon_1.0.2_1771010263713_0.1141414282544948","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@athoscommerce/beacon","version":"1.0.3","author":{"name":"athoscommerce"},"license":"MIT","_id":"@athoscommerce/beacon@1.0.3","maintainers":[{"name":"athos-nebo","email":"machine@athoscommerce.com"},{"name":"kevindevin","email":"kevin@searchspring.com"}],"homepage":"https://github.com/AthosCommerce/beacon.js#readme","bugs":{"url":"https://github.com/AthosCommerce/beacon.js/issues"},"dist":{"shasum":"eb44002012a1a6a14f9d4937dacf180a574b2b92","tarball":"https://registry.npmjs.org/@athoscommerce/beacon/-/beacon-1.0.3.tgz","fileCount":593,"integrity":"sha512-/J62nMZMftpbOxjM4/rpRlX82oorv4SmUIWJimjHVjkwpyqSHWZ97+OL3uuJaYUDZj/Z2QIIpHFbH7cRn+tvJA==","signatures":[{"sig":"MEUCIAY/kbCxsJQYxAodw6gC6XmyDIXeJPcQa2u9sYdXx8o+AiEAk2ESmIhMk4JkYoKXmO34hP5YHIOlgPZrQj/s/qvZK0Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@athoscommerce%2fbeacon@1.0.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1698213},"main":"dist/cjs/src/index.js","types":"./dist/cjs/src/index.d.ts","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"module":"dist/esm/src/index.js","gitHead":"8ad966c333dca19088b4eb9cd05a44a792424f85","scripts":{"dev":"tsc --watch & webpack serve --config webpack.dev.js","lint":"eslint src --ext .ts,.tsx","test":"jest","build":"rm -rf ./dist && npm run generate && tsc && tsc -p tsconfig.cjs.json && npm run build:cdn","commit":"cz","format":"prettier --write 'src/**/*.{js,jsx,ts,tsx}' '!src/client/**'","prepare":"husky","version":"standard-version -a","generate":"rm -fr ./src/client && openapi-generator-cli generate -i ./beacon.v2.snap.types.oas.yaml -g typescript-fetch -o ./src/client","build:cdn":"webpack --config webpack.prod.js","test:watch":"jest --watch","postpublish":"git push && git push --tags"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f42ee5af-8251-4882-b8b8-b86321957cf1"}},"prettier":"@searchspring/prettier","repository":{"url":"git+https://github.com/AthosCommerce/beacon.js.git","type":"git"},"_npmVersion":"11.6.2","description":"Javascript library for utilizing Athos Commerce beacon tracking.","directories":{},"lint-staged":{"*.{js,ts,tsx}":["prettier --write","eslint"]},"_nodeVersion":"24.13.0","browserslist":{"universal":"extends @searchspring/browserslist-config-snap/universal"},"dependencies":{"uuid":"9.0.1","@searchspring/snap-toolbox":"0.73.7"},"_hasShrinkwrap":false,"devDependencies":{"jest":"29.7.0","husky":"9.1.7","jsdom":"26.0.0","eslint":"9.23.0","ts-jest":"^29.3.0","typedoc":"0.28.1","webpack":"^5.77.0","prettier":"3.5.3","ts-loader":"9.4.2","typescript":"5.8.2","@babel/core":"^7.21.4","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","lint-staged":"15.5.0","webpack-cli":"^5.0.1","babel-loader":"^9.1.2","whatwg-fetch":"^3.6.20","webpack-merge":"^5.8.0","@babel/runtime":"^7.21.0","standard-version":"9.5.0","@babel/preset-env":"^7.21.4","typescript-eslint":"^8.55.0","webpack-dev-server":"^4.13.2","@searchspring/prettier":"1.0.2","eslint-config-prettier":"10.1.1","jest-environment-jsdom":"^29.7.0","cz-conventional-changelog":"3.3.0","@openapitools/openapi-generator-cli":"^2.25.2","@searchspring/browserslist-config-snap":"^1.0.7"},"_npmOperationalInternal":{"tmp":"tmp/beacon_1.0.3_1771010875878_0.31432381281120536","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@athoscommerce/beacon","version":"1.0.4","author":{"name":"athoscommerce"},"license":"MIT","_id":"@athoscommerce/beacon@1.0.4","maintainers":[{"name":"athos-nebo","email":"machine@athoscommerce.com"},{"name":"kevindevin","email":"kevin@searchspring.com"}],"homepage":"https://github.com/AthosCommerce/beacon.js#readme","bugs":{"url":"https://github.com/AthosCommerce/beacon.js/issues"},"dist":{"shasum":"33f66bf86196d99a87166559d983f60a9c12c855","tarball":"https://registry.npmjs.org/@athoscommerce/beacon/-/beacon-1.0.4.tgz","fileCount":601,"integrity":"sha512-sfP3HZcyT8e5QsfZQ807Hgn0mtvLymIuNQJiMDWOwvWLWHKIDEyZVV+y9WZKOI8qG5Biw8TFwoC4pPYd6MF8uw==","signatures":[{"sig":"MEQCIAgUY358bQ7jNNRhjPCltvTD+hyzqNm8VRa08JV5ZJ7jAiBwGAWl5Bzst4VZdyfwaI/2oZH4iBHAQEp4DQOl6CvTXQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@athoscommerce%2fbeacon@1.0.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1728005},"main":"dist/cjs/src/index.js","types":"./dist/cjs/src/index.d.ts","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"module":"dist/esm/src/index.js","gitHead":"3d60e1261a57337413c07cd3c9e0226c88070771","scripts":{"dev":"tsc --watch & webpack serve --config webpack.dev.js","lint":"eslint src --ext .ts,.tsx","test":"jest","build":"rm -rf ./dist && npm run generate && tsc && tsc -p tsconfig.cjs.json && npm run build:cdn","commit":"cz","format":"prettier --write 'src/**/*.{js,jsx,ts,tsx}' '!src/client/**'","prepare":"husky","version":"standard-version -a","generate":"rm -fr ./src/client && openapi-generator-cli generate -i ./beacon.v2.snap.types.oas.yaml -g typescript-fetch -o ./src/client","build:cdn":"webpack --config webpack.prod.js","test:watch":"jest --watch","postpublish":"git push && git push --tags"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f42ee5af-8251-4882-b8b8-b86321957cf1"}},"prettier":"@searchspring/prettier","repository":{"url":"git+https://github.com/AthosCommerce/beacon.js.git","type":"git"},"_npmVersion":"11.6.2","description":"Javascript library for utilizing Athos Commerce beacon tracking.","directories":{},"lint-staged":{"*.{js,ts,tsx}":["prettier --write","eslint"]},"_nodeVersion":"24.13.0","browserslist":{"universal":"extends @searchspring/browserslist-config-snap/universal"},"dependencies":{"uuid":"9.0.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"29.7.0","husky":"9.1.7","jsdom":"26.0.0","eslint":"9.23.0","ts-jest":"^29.3.0","typedoc":"0.28.1","webpack":"^5.77.0","prettier":"3.5.3","ts-loader":"9.4.2","typescript":"5.8.2","@babel/core":"^7.21.4","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","lint-staged":"15.5.0","webpack-cli":"^5.0.1","babel-loader":"^9.1.2","whatwg-fetch":"^3.6.20","webpack-merge":"^5.8.0","@babel/runtime":"^7.21.0","standard-version":"9.5.0","@babel/preset-env":"^7.21.4","typescript-eslint":"^8.55.0","webpack-dev-server":"^4.13.2","@searchspring/prettier":"1.0.2","eslint-config-prettier":"10.1.1","jest-environment-jsdom":"^29.7.0","cz-conventional-changelog":"3.3.0","@openapitools/openapi-generator-cli":"^2.25.2","@searchspring/browserslist-config-snap":"^1.0.7"},"_npmOperationalInternal":{"tmp":"tmp/beacon_1.0.4_1771977665979_0.9936042668538767","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@athoscommerce/beacon","version":"1.1.0","author":{"name":"athoscommerce"},"license":"MIT","_id":"@athoscommerce/beacon@1.1.0","maintainers":[{"name":"athos-nebo","email":"machine@athoscommerce.com"},{"name":"kevindevin","email":"kevin@searchspring.com"}],"homepage":"https://github.com/AthosCommerce/beacon.js#readme","bugs":{"url":"https://github.com/AthosCommerce/beacon.js/issues"},"dist":{"shasum":"bd5f66731ad124028371262b2c4fb4e1b7c33394","tarball":"https://registry.npmjs.org/@athoscommerce/beacon/-/beacon-1.1.0.tgz","fileCount":615,"integrity":"sha512-l5EH16i20qcFt3b8xQafpn5ODkj83m4BubYmZ5W5tzUxAyzwKOIj9zd4ADiIxJ0Yom6KfG1I+693Gt/yhwkb1A==","signatures":[{"sig":"MEUCIH5Sqcba7eHmTvmcbQRbCxM/G6dNUfnP3gD17mgY1BT0AiEA3Ui2RmSgiT3bjac/wLadMKZIrXjzcUsLee5RmuTAkDA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@athoscommerce%2fbeacon@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1722577},"main":"dist/cjs/src/index.js","types":"./dist/cjs/src/index.d.ts","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"module":"dist/esm/src/index.js","gitHead":"084f67788840ece54a2d17ba811f4660cdd46216","scripts":{"dev":"tsc --watch & webpack serve --config webpack.dev.js","lint":"eslint src --ext .ts,.tsx","test":"jest","build":"rm -rf ./dist && npm run generate && tsc && tsc -p tsconfig.cjs.json && npm run build:cdn","commit":"cz","format":"prettier --write 'src/**/*.{js,jsx,ts,tsx}'","prepare":"husky","version":"standard-version -a","generate":"rm -fr ./src/client && openapi-generator-cli generate -i ./beacon.v2.snap.types.oas.yaml -g typescript-fetch -o ./src/client && npm run format","build:cdn":"webpack --config webpack.prod.js","test:watch":"jest --watch","postpublish":"git push && git push --tags"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f42ee5af-8251-4882-b8b8-b86321957cf1"}},"prettier":"@searchspring/prettier","repository":{"url":"git+https://github.com/AthosCommerce/beacon.js.git","type":"git"},"_npmVersion":"11.8.0","description":"Javascript library for utilizing Athos Commerce beacon tracking.","directories":{},"lint-staged":{"*.{js,ts,tsx}":["prettier --write","eslint"]},"_nodeVersion":"24.13.1","browserslist":{"universal":"extends @searchspring/browserslist-config-snap/universal"},"dependencies":{"uuid":"9.0.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"29.7.0","husky":"9.1.7","jsdom":"26.0.0","eslint":"9.23.0","ts-jest":"^29.3.0","typedoc":"0.28.1","webpack":"^5.77.0","prettier":"3.5.3","ts-loader":"9.4.2","typescript":"5.8.2","@babel/core":"^7.21.4","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","lint-staged":"15.5.0","webpack-cli":"^5.0.1","babel-loader":"^9.1.2","whatwg-fetch":"^3.6.20","webpack-merge":"^5.8.0","@babel/runtime":"^7.21.0","standard-version":"9.5.0","@babel/preset-env":"^7.21.4","typescript-eslint":"^8.55.0","webpack-dev-server":"^4.13.2","@searchspring/prettier":"1.0.2","eslint-config-prettier":"10.1.1","jest-environment-jsdom":"^29.7.0","cz-conventional-changelog":"3.3.0","@openapitools/openapi-generator-cli":"^2.25.2","@searchspring/browserslist-config-snap":"^1.0.7"},"_npmOperationalInternal":{"tmp":"tmp/beacon_1.1.0_1772560534031_0.44308492601375926","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@athoscommerce/beacon","version":"1.1.1","author":{"name":"athoscommerce"},"license":"MIT","_id":"@athoscommerce/beacon@1.1.1","maintainers":[{"name":"athos-nebo","email":"machine@athoscommerce.com"},{"name":"kevindevin","email":"kevin@athoscommerce.com"}],"homepage":"https://github.com/AthosCommerce/beacon.js#readme","bugs":{"url":"https://github.com/AthosCommerce/beacon.js/issues"},"dist":{"shasum":"b81944e583d15d2c3181af70ba5d8d4fcc894615","tarball":"https://registry.npmjs.org/@athoscommerce/beacon/-/beacon-1.1.1.tgz","fileCount":615,"integrity":"sha512-SZJCeiaSm2ySYW8YAbd5Aif6VLYmCmEkekcVzsDaFYuTDnJJKFNZgYX5iScyq04zppxlwEknQKmpj2tOzCh3lw==","signatures":[{"sig":"MEUCIHPG+hQ/9GexIqT27Z1sTgvYDpGZB/ZRbiEyoGZfdNxvAiEAz3HYG37N6LiWP7qSGWjhR46621guf0DjK/jyIi/Dzgo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@athoscommerce%2fbeacon@1.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1723645},"main":"dist/cjs/src/index.js","types":"./dist/cjs/src/index.d.ts","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"module":"dist/esm/src/index.js","gitHead":"c79c6ddec254cdb896319e18bd20ec2165f61ce2","scripts":{"dev":"tsc --watch & webpack serve --config webpack.dev.js","lint":"eslint src --ext .ts,.tsx","test":"jest","build":"rm -rf ./dist && npm run generate && tsc && tsc -p tsconfig.cjs.json && npm run build:cdn","commit":"cz","format":"prettier --write 'src/**/*.{js,jsx,ts,tsx}'","prepare":"husky","version":"standard-version -a","generate":"rm -fr ./src/client && openapi-generator-cli generate -i ./beacon.v2.snap.types.oas.yaml -g typescript-fetch -o ./src/client && npm run format","build:cdn":"webpack --config webpack.prod.js","test:watch":"jest --watch","postpublish":"git push && git push --tags"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f42ee5af-8251-4882-b8b8-b86321957cf1"}},"prettier":"@searchspring/prettier","repository":{"url":"git+https://github.com/AthosCommerce/beacon.js.git","type":"git"},"_npmVersion":"11.12.1","description":"Javascript library for utilizing Athos Commerce beacon tracking.","directories":{},"lint-staged":{"*.{js,ts,tsx}":["prettier --write","eslint"]},"_nodeVersion":"24.15.0","browserslist":{"universal":"extends @searchspring/browserslist-config-snap/universal"},"dependencies":{"uuid":"9.0.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"29.7.0","husky":"9.1.7","jsdom":"26.0.0","eslint":"9.23.0","ts-jest":"^29.3.0","typedoc":"0.28.1","webpack":"^5.77.0","prettier":"3.5.3","ts-loader":"9.4.2","typescript":"5.8.2","@babel/core":"^7.21.4","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","lint-staged":"15.5.0","webpack-cli":"^5.0.1","babel-loader":"^9.1.2","whatwg-fetch":"^3.6.20","webpack-merge":"^5.8.0","@babel/runtime":"^7.21.0","standard-version":"9.5.0","@babel/preset-env":"^7.21.4","typescript-eslint":"^8.55.0","webpack-dev-server":"^4.13.2","@searchspring/prettier":"1.0.2","eslint-config-prettier":"10.1.1","jest-environment-jsdom":"^29.7.0","cz-conventional-changelog":"3.3.0","@openapitools/openapi-generator-cli":"^2.25.2","@searchspring/browserslist-config-snap":"^1.0.7"},"_npmOperationalInternal":{"tmp":"tmp/beacon_1.1.1_1776960088167_0.5618669642417509","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@athoscommerce/beacon","version":"1.2.0","author":{"name":"athoscommerce"},"license":"MIT","_id":"@athoscommerce/beacon@1.2.0","maintainers":[{"name":"athos-nebo","email":"machine@athoscommerce.com"},{"name":"kevindevin","email":"kevin@athoscommerce.com"}],"homepage":"https://github.com/AthosCommerce/beacon.js#readme","bugs":{"url":"https://github.com/AthosCommerce/beacon.js/issues"},"dist":{"shasum":"14aee36d1b89304bb1a9fb3e9a1480d1f36cbaa8","tarball":"https://registry.npmjs.org/@athoscommerce/beacon/-/beacon-1.2.0.tgz","fileCount":775,"integrity":"sha512-K1EeP+sZ7lrMJmScvKHj5n0DD8o90DaUUKGXcDxSyrdb/3ucDOz40kWhcu9Fk7H2i07Doo3zL3jpnBzDKZO3EA==","signatures":[{"sig":"MEYCIQDL7VsvwQFL7X9TeuQ/kg2Ppad7iTU/b1ZCDkuxSbcMAwIhANXRkL4ChmGjw4rhvlpyEYod7bGFPoDaf761nwIxe2n7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@athoscommerce%2fbeacon@1.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2148606},"main":"dist/cjs/src/index.js","types":"./dist/cjs/src/index.d.ts","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"module":"dist/esm/src/index.js","gitHead":"c4c4bd72cbe0e7409c84f022c45596eb3b6a4d07","scripts":{"dev":"tsc --watch & webpack serve --config webpack.dev.js","lint":"eslint src --ext .ts,.tsx","test":"jest","build":"rm -rf ./dist && npm run generate && tsc && tsc -p tsconfig.cjs.json && npm run build:cdn","commit":"cz","format":"prettier --write 'src/**/*.{js,jsx,ts,tsx}'","prepare":"husky","version":"standard-version -a","generate":"rm -fr ./src/client && openapi-generator-cli generate -i ./beacon.v2.snap.types.oas.yaml -g typescript-fetch -o ./src/client && npm run format","build:cdn":"webpack --config webpack.prod.js","test:watch":"jest --watch","postpublish":"git push && git push --tags"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f42ee5af-8251-4882-b8b8-b86321957cf1"}},"prettier":"@searchspring/prettier","repository":{"url":"git+https://github.com/AthosCommerce/beacon.js.git","type":"git"},"_npmVersion":"11.11.0","description":"Javascript library for utilizing Athos Commerce beacon tracking.","directories":{},"lint-staged":{"*.{js,ts,tsx}":["prettier --write","eslint"]},"_nodeVersion":"24.14.1","browserslist":{"universal":"extends @searchspring/browserslist-config-snap/universal"},"dependencies":{"uuid":"9.0.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"29.7.0","husky":"9.1.7","jsdom":"26.0.0","eslint":"9.23.0","ts-jest":"^29.3.0","typedoc":"0.28.1","webpack":"^5.77.0","prettier":"3.5.3","ts-loader":"9.4.2","typescript":"5.8.2","@babel/core":"^7.21.4","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","lint-staged":"15.5.0","webpack-cli":"^5.0.1","babel-loader":"^9.1.2","whatwg-fetch":"^3.6.20","webpack-merge":"^5.8.0","@babel/runtime":"^7.21.0","standard-version":"9.5.0","@babel/preset-env":"^7.21.4","typescript-eslint":"^8.55.0","webpack-dev-server":"^4.13.2","@searchspring/prettier":"1.0.2","eslint-config-prettier":"10.1.1","jest-environment-jsdom":"^29.7.0","cz-conventional-changelog":"3.3.0","@openapitools/openapi-generator-cli":"^2.25.2","@searchspring/browserslist-config-snap":"^1.0.7"},"_npmOperationalInternal":{"tmp":"tmp/beacon_1.2.0_1777664327977_0.22988858626478614","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@athoscommerce/beacon","version":"1.2.1","author":{"name":"athoscommerce"},"license":"MIT","_id":"@athoscommerce/beacon@1.2.1","maintainers":[{"name":"athos-nebo","email":"machine@athoscommerce.com"},{"name":"kevindevin","email":"kevin@athoscommerce.com"}],"homepage":"https://github.com/AthosCommerce/beacon.js#readme","bugs":{"url":"https://github.com/AthosCommerce/beacon.js/issues"},"dist":{"shasum":"133dc8ec95a14713b88ae54c23d6b5ddd65d099e","tarball":"https://registry.npmjs.org/@athoscommerce/beacon/-/beacon-1.2.1.tgz","fileCount":775,"integrity":"sha512-HZ8fvPlmkbXqHvO4PhhNhwSRORJmelqG/A7+n13SkMbqakW0vYMZpg3P2i1S4MV3Bh7roRNK0FLtoFwUapA2BA==","signatures":[{"sig":"MEYCIQCT5S4N4VpDIzZnYScHGzucX/pl2z8OtS5sz0AR4g3wtwIhAJFeLPlpku/yvPTQ+tEBn8pzYcu9nK4HAv4bCAiEUwaV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@athoscommerce%2fbeacon@1.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2148833},"main":"dist/cjs/src/index.js","types":"./dist/cjs/src/index.d.ts","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"module":"dist/esm/src/index.js","gitHead":"72dde7de6abe040d6b0831899e860b76d8765c84","scripts":{"dev":"tsc --watch & webpack serve --config webpack.dev.js","lint":"eslint src --ext .ts,.tsx","test":"jest","build":"rm -rf ./dist && npm run generate && tsc && tsc -p tsconfig.cjs.json && npm run build:cdn","commit":"cz","format":"prettier --write 'src/**/*.{js,jsx,ts,tsx}'","prepare":"husky","version":"standard-version -a","generate":"rm -fr ./src/client && openapi-generator-cli generate -i ./beacon.v2.snap.types.oas.yaml -g typescript-fetch -o ./src/client && npm run format","build:cdn":"webpack --config webpack.prod.js","test:watch":"jest --watch","postpublish":"git push && git push --tags"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f42ee5af-8251-4882-b8b8-b86321957cf1"}},"prettier":"@searchspring/prettier","repository":{"url":"git+https://github.com/AthosCommerce/beacon.js.git","type":"git"},"_npmVersion":"11.11.0","description":"Javascript library for utilizing Athos Commerce beacon tracking.","directories":{},"lint-staged":{"*.{js,ts,tsx}":["prettier --write","eslint"]},"_nodeVersion":"24.14.1","browserslist":{"universal":"extends @searchspring/browserslist-config-snap/universal"},"dependencies":{"uuid":"9.0.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"29.7.0","husky":"9.1.7","jsdom":"26.0.0","eslint":"9.23.0","ts-jest":"^29.3.0","typedoc":"0.28.1","webpack":"^5.77.0","prettier":"3.5.3","ts-loader":"9.4.2","typescript":"5.8.2","@babel/core":"^7.21.4","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","lint-staged":"15.5.0","webpack-cli":"^5.0.1","babel-loader":"^9.1.2","whatwg-fetch":"^3.6.20","webpack-merge":"^5.8.0","@babel/runtime":"^7.21.0","standard-version":"9.5.0","@babel/preset-env":"^7.21.4","typescript-eslint":"^8.55.0","webpack-dev-server":"^4.13.2","@searchspring/prettier":"1.0.2","eslint-config-prettier":"10.1.1","jest-environment-jsdom":"^29.7.0","cz-conventional-changelog":"3.3.0","@openapitools/openapi-generator-cli":"^2.25.2","@searchspring/browserslist-config-snap":"^1.0.7"},"_npmOperationalInternal":{"tmp":"tmp/beacon_1.2.1_1777664884178_0.3075308073946945","host":"s3://npm-registry-packages-npm-production"}},"1.2.2":{"name":"@athoscommerce/beacon","version":"1.2.2","author":{"name":"athoscommerce"},"license":"MIT","_id":"@athoscommerce/beacon@1.2.2","maintainers":[{"name":"athos-nebo","email":"machine@athoscommerce.com"},{"name":"kevindevin","email":"kevin@athoscommerce.com"}],"homepage":"https://github.com/AthosCommerce/beacon.js#readme","bugs":{"url":"https://github.com/AthosCommerce/beacon.js/issues"},"dist":{"shasum":"96bb463433266ae91679f15ec438d5eb0771a1e6","tarball":"https://registry.npmjs.org/@athoscommerce/beacon/-/beacon-1.2.2.tgz","fileCount":775,"integrity":"sha512-AnIvwzyjPeHdpApz2bMTv5woUmoBl5ihDmHch+buMJ7m2qK+p+S70nlY2XJGUJhtw0sWtHLpxyVL3fV3ukBzDA==","signatures":[{"sig":"MEUCIFtLOr8/W6D29Xjn6yqTlXaL89RVx8h/ZKFyrkVxXt25AiEA12Pf6BT2T47SPY/sTRGzlGmfPSLU3T1fvjkQOgOOQEU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@athoscommerce%2fbeacon@1.2.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2151205},"main":"dist/cjs/src/index.js","types":"./dist/cjs/src/index.d.ts","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"module":"dist/esm/src/index.js","gitHead":"223d08c3ada86df2193c2cb2a8e994f414fe1f49","scripts":{"dev":"tsc --watch & webpack serve --config webpack.dev.js","lint":"eslint src --ext .ts,.tsx","test":"jest","build":"rm -rf ./dist && npm run generate && tsc && tsc -p tsconfig.cjs.json && npm run build:cdn","commit":"cz","format":"prettier --write 'src/**/*.{js,jsx,ts,tsx}'","prepare":"husky","version":"standard-version -a","generate":"rm -fr ./src/client && openapi-generator-cli generate -i ./beacon.v2.snap.types.oas.yaml -g typescript-fetch -o ./src/client && npm run format","build:cdn":"webpack --config webpack.prod.js","test:watch":"jest --watch","postpublish":"git push && git push --tags"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f42ee5af-8251-4882-b8b8-b86321957cf1"}},"prettier":"@searchspring/prettier","repository":{"url":"git+https://github.com/AthosCommerce/beacon.js.git","type":"git"},"_npmVersion":"11.11.0","description":"Javascript library for utilizing Athos Commerce beacon tracking.","directories":{},"lint-staged":{"*.{js,ts,tsx}":["prettier --write","eslint"]},"_nodeVersion":"24.14.1","browserslist":{"universal":"extends @searchspring/browserslist-config-snap/universal"},"dependencies":{"uuid":"9.0.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"29.7.0","husky":"9.1.7","jsdom":"26.0.0","eslint":"9.23.0","ts-jest":"^29.3.0","typedoc":"0.28.1","webpack":"^5.77.0","prettier":"3.5.3","ts-loader":"9.4.2","typescript":"5.8.2","@babel/core":"^7.21.4","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","lint-staged":"15.5.0","webpack-cli":"^5.0.1","babel-loader":"^9.1.2","whatwg-fetch":"^3.6.20","webpack-merge":"^5.8.0","@babel/runtime":"^7.21.0","standard-version":"9.5.0","@babel/preset-env":"^7.21.4","typescript-eslint":"^8.55.0","webpack-dev-server":"^4.13.2","@searchspring/prettier":"1.0.2","eslint-config-prettier":"10.1.1","jest-environment-jsdom":"^29.7.0","cz-conventional-changelog":"3.3.0","@openapitools/openapi-generator-cli":"^2.25.2","@searchspring/browserslist-config-snap":"^1.0.7"},"_npmOperationalInternal":{"tmp":"tmp/beacon_1.2.2_1778678125625_0.63219986937878","host":"s3://npm-registry-packages-npm-production"}},"1.2.3":{"name":"@athoscommerce/beacon","version":"1.2.3","author":{"name":"athoscommerce"},"license":"MIT","_id":"@athoscommerce/beacon@1.2.3","maintainers":[{"name":"athos-nebo","email":"machine@athoscommerce.com"},{"name":"kevindevin","email":"kevin@athoscommerce.com"}],"homepage":"https://github.com/AthosCommerce/beacon.js#readme","bugs":{"url":"https://github.com/AthosCommerce/beacon.js/issues"},"dist":{"shasum":"99c2a4c56ca19ce17b431a098250a2f672fe0454","tarball":"https://registry.npmjs.org/@athoscommerce/beacon/-/beacon-1.2.3.tgz","fileCount":776,"integrity":"sha512-jnmgRM/llnpvOrv1HxDEJbuaqdq5QfirYlWSXOFCITSHMXIEc0fTAKopJWs8C8xOtjTESXvcKZ9ar0WgSblOpw==","signatures":[{"sig":"MEUCIQDs/i0nS+atLvxoRIjZymAuTBB9qlQaX0TFG9rjDUWnoQIgW+J9DOWuapfSc2jGfbFb5J5WjgQBYAryEYC3R8N4LtQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@athoscommerce%2fbeacon@1.2.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2157585},"main":"dist/cjs/src/index.js","types":"./dist/cjs/src/index.d.ts","config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"module":"dist/esm/src/index.js","gitHead":"b69fe0cf09e02cd57b7764d5909ce8a3168aa4e2","scripts":{"dev":"tsc --watch & webpack serve --config webpack.dev.js","lint":"eslint src --ext .ts,.tsx","test":"jest","build":"rm -rf ./dist && npm run generate && tsc && tsc -p tsconfig.cjs.json && npm run build:cdn","commit":"cz","format":"prettier --write 'src/**/*.{js,jsx,ts,tsx}'","prepare":"husky","version":"standard-version -a","generate":"rm -fr ./src/client && openapi-generator-cli generate -i ./beacon.v2.snap.types.oas.yaml -g typescript-fetch -o ./src/client && npm run format","build:cdn":"webpack --config webpack.prod.js","test:watch":"jest --watch","postpublish":"git push && git push --tags"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f42ee5af-8251-4882-b8b8-b86321957cf1"}},"prettier":"@searchspring/prettier","repository":{"url":"git+https://github.com/AthosCommerce/beacon.js.git","type":"git"},"_npmVersion":"11.13.0","description":"Javascript library for utilizing Athos Commerce beacon tracking.","directories":{},"lint-staged":{"*.{js,ts,tsx}":["prettier --write","eslint"]},"_nodeVersion":"24.16.0","browserslist":{"universal":"extends @searchspring/browserslist-config-snap/universal"},"dependencies":{"uuid":"9.0.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"29.7.0","husky":"9.1.7","jsdom":"26.0.0","eslint":"9.23.0","ts-jest":"^29.3.0","typedoc":"0.28.1","webpack":"^5.77.0","prettier":"3.5.3","ts-loader":"9.4.2","typescript":"5.8.2","@babel/core":"^7.21.4","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","lint-staged":"15.5.0","webpack-cli":"^5.0.1","babel-loader":"^9.1.2","whatwg-fetch":"^3.6.20","webpack-merge":"^5.8.0","@babel/runtime":"^7.21.0","standard-version":"9.5.0","@babel/preset-env":"^7.21.4","typescript-eslint":"^8.55.0","webpack-dev-server":"^4.13.2","@searchspring/prettier":"1.0.2","eslint-config-prettier":"10.1.1","jest-environment-jsdom":"^29.7.0","cz-conventional-changelog":"3.3.0","@openapitools/openapi-generator-cli":"^2.25.2","@searchspring/browserslist-config-snap":"^1.0.7"},"_npmOperationalInternal":{"tmp":"tmp/beacon_1.2.3_1781031055836_0.731779661932715","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@athoscommerce/beacon","version":"1.3.0","author":{"name":"athoscommerce"},"license":"MIT","description":"Javascript library for utilizing Athos Commerce beacon tracking.","main":"dist/cjs/src/index.js","module":"dist/esm/src/index.js","repository":{"type":"git","url":"git+https://github.com/AthosCommerce/beacon.js.git"},"prettier":"@searchspring/prettier","scripts":{"build":"rm -rf ./dist && npm run generate && tsc && tsc -p tsconfig.cjs.json && npm run build:cdn","build:cdn":"webpack --config webpack.prod.js","dev":"tsc --watch & webpack serve --config webpack.dev.js","commit":"cz","test":"jest","test:watch":"jest --watch","generate":"rm -fr ./src/client && openapi-generator-cli generate -i ./beacon.v2.snap.types.oas.yaml -g typescript-fetch -o ./src/client && npm run format","format":"prettier --write 'src/**/*.{js,jsx,ts,tsx}'","lint":"eslint src --ext .ts,.tsx","prepare":"husky","version":"standard-version -a","postpublish":"git push && git push --tags"},"dependencies":{"uuid":"9.0.1"},"devDependencies":{"@babel/core":"^7.21.4","@babel/preset-env":"^7.21.4","@babel/runtime":"^7.21.0","@openapitools/openapi-generator-cli":"^2.25.2","@searchspring/browserslist-config-snap":"^1.0.7","@searchspring/prettier":"1.0.2","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","babel-loader":"^9.1.2","cz-conventional-changelog":"3.3.0","eslint":"9.23.0","eslint-config-prettier":"10.1.1","husky":"9.1.7","jest":"29.7.0","jest-environment-jsdom":"^29.7.0","jsdom":"26.0.0","lint-staged":"15.5.0","prettier":"3.5.3","standard-version":"9.5.0","ts-jest":"^29.3.0","ts-loader":"9.4.2","typedoc":"0.28.1","typescript":"5.8.2","typescript-eslint":"^8.55.0","webpack":"^5.77.0","webpack-cli":"^5.0.1","webpack-dev-server":"^4.13.2","webpack-merge":"^5.8.0","whatwg-fetch":"^3.6.20"},"lint-staged":{"*.{js,ts,tsx}":["prettier --write","eslint"]},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"browserslist":{"universal":"extends @searchspring/browserslist-config-snap/universal"},"gitHead":"23c14541607da516abc017b75a98e28f40181a88","types":"./dist/cjs/src/index.d.ts","_id":"@athoscommerce/beacon@1.3.0","bugs":{"url":"https://github.com/AthosCommerce/beacon.js/issues"},"homepage":"https://github.com/AthosCommerce/beacon.js#readme","_nodeVersion":"24.18.0","_npmVersion":"11.16.0","dist":{"integrity":"sha512-EijCzd+cY27v53EsFi5xHGFDfuK96OOhBd/kXHkyu2vagxYahC+mXUDwR9cgsMAQX03Eov8fyhCzzSfYegIS+w==","shasum":"94d3132eb2fb86e12c655afe5855b5e4eb9af966","tarball":"https://registry.npmjs.org/@athoscommerce/beacon/-/beacon-1.3.0.tgz","fileCount":776,"unpackedSize":2166457,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@athoscommerce%2fbeacon@1.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIFL3jY52naX981J5zevxfWUYHq73mNhZjJCM0AdIiagTAiEAxn5Medu4wfv08jbyOWpTAf6rrJzvtzN61gf45oQQj9A="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f42ee5af-8251-4882-b8b8-b86321957cf1"}},"directories":{},"maintainers":[{"name":"athos-nebo","email":"machine@athoscommerce.com"},{"name":"kevindevin","email":"kevin@athoscommerce.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/beacon_1.3.0_1783697279156_0.909825125141627"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-05T16:37:47.329Z","modified":"2026-07-10T15:27:59.633Z","1.0.0":"2026-02-05T16:37:47.702Z","1.0.1":"2026-02-10T19:48:22.349Z","1.0.2":"2026-02-13T19:17:43.952Z","1.0.3":"2026-02-13T19:27:56.064Z","1.0.4":"2026-02-25T00:01:06.137Z","1.1.0":"2026-03-03T17:55:34.222Z","1.1.1":"2026-04-23T16:01:28.417Z","1.2.0":"2026-05-01T19:38:48.150Z","1.2.1":"2026-05-01T19:48:04.343Z","1.2.2":"2026-05-13T13:15:25.879Z","1.2.3":"2026-06-09T18:50:56.062Z","1.3.0":"2026-07-10T15:27:59.340Z"},"bugs":{"url":"https://github.com/AthosCommerce/beacon.js/issues"},"author":{"name":"athoscommerce"},"license":"MIT","homepage":"https://github.com/AthosCommerce/beacon.js#readme","repository":{"type":"git","url":"git+https://github.com/AthosCommerce/beacon.js.git"},"description":"Javascript library for utilizing Athos Commerce beacon tracking.","maintainers":[{"name":"athos-nebo","email":"machine@athoscommerce.com"},{"name":"kevindevin","email":"kevin@athoscommerce.com"}],"readme":"# beacon.js\n\n[![npm version](https://badge.fury.io/js/@athoscommerce%2Fbeacon.svg?icon=si%3Anpm&icon_color=%2300aeef)](https://badge.fury.io/js/@athoscommerce%2Fbeacon)\n\nA TypeScript library for tracking user interactions and analytics events to Athos Commerce's Beacon API. This library enables real-time tracking of user behavior across search, recommendations, autocomplete, and e-commerce interactions.\n\nThis package can be used by both Athos Commerce and Searchspring accounts.\n\n## Features\n\n- 🎯 **Multi-Channel Tracking**: Track events from search, autocomplete, recommendations, bundles, chat, category pages, and product pages\n- 📦 **Smart Batching**: Automatically batches requests for optimal performance\n- 💾 **Local Storage Management**: Manages user IDs, session IDs, cart state, and viewed products\n- 🔍 **Attribution Tracking**: Built-in support for tracking attribution and campaign sources\n- 🎨 **Flexible Configuration**: Support for custom headers, custom fetch implementations, and multiple environments\n- 🌍 **Multi-Currency**: Support for tracking transactions in different currencies\n- ⚡ **Production Ready**: Optimized for performance with features like keepalive requests and efficient batching\n\n## Usage Paths\n\nBeacon.js has two integration paths with the same tracking capabilities:\n\n- CDN path: include the CDN script and call methods on the auto-created global `window.athos.tracker`.\n- NPM path: instantiate `Beacon` in your own application/runtime and call methods on your instance.\n\n### Quick Start: CDN\n\n```html\n<script siteId=\"[REPLACE WITH ACCOUNT SITEID]\" src=\"https://cdn.athoscommerce.net/analytics/beacon.js\"></script>\n<script>\n  window.athos.tracker.setCurrency({ code: 'USD' });\n  window.athos.tracker.events.autocomplete.render({\n    data: {\n      responseId: '35e5ea31-a537-471b-ba2b-6eea9caebe62'\n    }\n  });\n</script>\n```\n\nReplace `siteId` with your Athos or Searchspring site ID before deploying.\n\n### Quick Start: NPM\n\n```typescript\nimport { Beacon } from '@athoscommerce/beacon';\n\n// Initialize Beacon with required siteId\nconst beacon = new Beacon({ siteId: '[REPLACE WITH ACCOUNT SITEID]' });\n\n// Optionally set currency for transaction tracking\nbeacon.setCurrency({ code: 'USD' });\n\n// Track an autocomplete render event\nbeacon.events.autocomplete.render({\n  data: {\n    // ... render data\n  }\n});\n\n// Track a product page view\nbeacon.events.product.pageView({\n  data: {\n    result: {\n      uid: 'variant-123',\n      sku: 'SKU-123',\n      parentId: 'product-123'\n    }\n  }\n});\n```\n\nReplace `siteId` with your Athos or Searchspring site ID before deploying.\n\nProduct events require `uid` and `parentId`; include `sku` when available from your API response. For parent/variant catalogs, use `parentId` as the parent product ID and `uid` as the variant ID. For simple products with no variants, set `uid` and `parentId` to the same value.\n\n## Installation\n\n### CDN\n\nTo use the beacon via our CDN build, place the following script before the page's closing `</head>` tag:\n\n```html\n<script siteId=\"[REPLACE WITH ATHOS OR SEARCHSPRING SITEID]\" src=\"https://cdn.athoscommerce.net/analytics/beacon.js\"></script>\n```\n\nAfter this script executes successfully, `window.athos.tracker` is available for events and method calls.\n\n```html\n<script>\n  window.athos.tracker.events.search.render({ data: { responseId: '35e5ea31-a537-471b-ba2b-6eea9caebe62' } });\n</script>\n```\n\nThe CDN install path is designed for platform template integrations (for example BigCommerce, Magento, or Shopify), where you add the script in storefront template/theme files.\n\n### NPM\n\nUse the NPM package when your integration runs in a JavaScript/TypeScript application and you want Beacon imported directly into your codebase. This path gives you typed imports, versioned dependency management, and build-time integration with your existing tooling.\n\n```bash\nnpm install --save @athoscommerce/beacon\n```\n\n## Initialization\n\n### CDN Initialization\n\nWhen using the CDN script (`https://cdn.athoscommerce.net/analytics/beacon.js`), Beacon initializes automatically and assigns `window.athos.tracker`.\n\nExpected behavior:\n\n- Missing or unreadable `siteId` prevents initialization and logs an error.\n- If Snap tracking is already on the page, the script logs a warning and skips initialization.\n- If Beacon is included multiple times, the second initialization is ignored with a warning.\n\nOnce initialized, use `window.athos.tracker` for all events and public methods.\n\n### NPM Initialization\n\nUse the `Beacon` constructor when integrating through the NPM package.\n\n#### Beacon Globals\n\nThe first parameter to the `Beacon` constructor contains required global configuration that applies to all tracking events.\n\n```typescript\nimport { Beacon } from '@athoscommerce/beacon';\n\nconst beacon = new Beacon({ siteId: 'abc123' });\n```\n\n| Option | Type | Description | Required |\n|--------|------|-------------|----------|\n| `siteId` | `string` | Your Athos site ID | ✔️ |\n\n#### Beacon Config\n\nThe second parameter to the `Beacon` constructor provides _optional_ configuration for API behavior and request handling.\n\n```typescript\nconst beacon = new Beacon(\n  { siteId: 'abc123' },\n  {\n    mode: 'development',\n    initiator: 'my-app/1.0.0',\n    requesters: {\n      beacon: {\n        origin: 'https://custom-beacon.example.com/beacon/v2',\n        headers: { 'Authorization': 'Bearer token' }\n      },\n      personalization: {\n        origin: 'https://custom-personalization.example.com',\n        headers: { 'X-Custom-Header': 'value' }\n      }\n    },\n    apis: {\n      fetch: customFetchImplementation\n    },\n    href: 'https://example.com/page',\n    userAgent: 'Custom User Agent'\n  }\n);\n```\n\n| Option | Type | Description | Default |\n|--------|------|-------------|---------|\n| `mode` | `'production' \\| 'development'` | Application mode. In development mode, errors are logged to console | `'production'` |\n| `initiator` | `string` | Identifier for the beacon instance | `{athos\\|searchspring}/beaconjs/{version}` |\n| `apis.fetch` | `FetchAPI` | Custom fetch implementation | Global `fetch` (if available) |\n| `requesters.beacon.origin` | `string` | Custom beacon API endpoint | Athos: `https://analytics.athoscommerce.net/beacon/v2`, Searchspring: `https://analytics.searchspring.net/beacon/v2` |\n| `requesters.beacon.headers` | `HTTPHeaders` | Custom headers for beacon API requests | `{ 'Content-Type': 'text/plain' }` |\n| `requesters.personalization.origin` | `string` | Custom personalization preflight origin (the SDK appends `/v1/preflight`) | `https://{siteId}.a.{athoscommerce.net\\|searchspring.io}` |\n| `requesters.personalization.headers` | `HTTPHeaders` | Custom headers for personalization requests | |\n| `href` | `string` | Override page URL for tracking | `window.location.href` |\n| `userAgent` | `string` | Override user agent string | `navigator.userAgent` |\n\n\n## Common properties\n\n### responseId\n\nThe Athos Search, Autocomplete, and Recommendations APIs will return a `responseId` property that is required on most beacon event's payload. It will only be returned if the `beacon=true` parameter is provided to each API. \n\n```typescript\n// Search API Example Response\nconst response = {\n  \"breadcrumbs\": [...],\n  \"merchandising\": {...},\n  \"pagination\": {...},\n  \"query\": {...},\n  \"responseId\": \"f70594d2-c360-4292-8711-b256567099d3\",\n  \"results\": [...],\n  \"sorting\": {...},\n}\n\nbeacon.events.search.render({ \n  data: {\n    responseId: response.responseId,\n  }\n});\n```\n\n### Merchandising Banner uid (Banner ID)\n\nWhen building the data payload for `banners`, the `uid` property is the banner identifier from merchandising content (not a product `uid`). Here is an example of how you may choose to extract it.\n\n```typescript\n// Search API Example Response\nconst response = {\n  \"merchandising\": {\n    \"content\": {\n      \"header\": [\n            \"<script data-banner-id=\\\"440998\\\" data-banner-type=\\\"html\\\" data-banner-html=\\\"<div style=&quot;width: 100%; background: #ADD8E6; text-align: center; padding: 20px;&quot;>On Sale</div>\\\" type=\\\"text/widget\\\"></script><div style=\\\"width: 100%; background: #ADD8E6; text-align: center; padding: 20px;\\\">On Sale</div>\"\n      ],\n      \"banner\": [],\n      \"footer\": [],\n      \"left\": [],\n      \"inline\": []\n    }\n  }\n}\nfunction getMerchandisingBannerUid(response, type) {\n  // Extract data-banner-id from the HTML string\n  const htmlString = response.merchandising?.content?.[type]?.[0] || '';\n  const match = typeof htmlString === 'string' && htmlString.match(/data-banner-id=\"(\\d+)\"/);\n  const uid = match ? match[1] : '';\n  return uid;\n}\nbeacon.events.search.impression({ \n  data: {\n    responseId: response.responseId,\n    results: [],\n    banners: [\n      { uid: getMerchandisingBannerUid(response, 'header') } // { uid: '440998' }\n    ]\n  }\n});\n```\n\n### quickView\n\nA quick view is a popup or modal that previews a product without navigating away to its full product page. Set the optional `quickView` flag to `true` on an event's `data` payload when the interaction happened inside a quick view popup, so reporting can attribute it separately from regular page interactions.\n\nThe flag is supported on the `impression`, `addToCart`, and `clickThrough` events of the `autocomplete`, `search`, `category`, `recommendations`, and `bundles` channels. It is optional — omit it (or set it to `false`) for interactions that occur on a regular page.\n\n```typescript\n// Example: a click on a product surfaced inside a search quick view popup\nbeacon.events.search.clickThrough({ \n  data: {\n    responseId: response.responseId,\n    quickView: true,\n    results: [\n      {\n        type: 'product',\n        uid: 'variant-1',\n        parentId: 'product-1',\n        sku: 'SKU-1'\n      }\n    ]\n  }\n});\n```\n\n## Tracking Events\n\nEach event method accepts a payload object. An optional `siteId` can be provided to override the global siteId for a specific event.\n\nFor product payloads, use `uid` as the variant/item identifier and `parentId` as the parent product identifier. For simple products with no variants, set `uid` and `parentId` to the same value. For banner payloads, `uid` refers to the banner identifier.\n\nCode samples below use a `beacon` variable — substitute the appropriate entrypoint:\n\n| Path | Entrypoint |\n|------|------------|\n| CDN | `const beacon = window.athos.tracker;` |\n| NPM | `const beacon = new Beacon({ siteId: 'abc123' });` |\n\n### Shopper Events\n\n#### Login\n\nTrack when a user logs into their shopper account.\n\n```typescript\nbeacon.events.shopper.login({ \n  data: { id: 'shopper-12345' }\n});\n```\n\n### Autocomplete Events\n\nAutocomplete events track user interactions within the autocomplete/search suggestions interface.\n\n#### Render\n\nTrack when autocomplete suggestions are rendered to the user.\n\n```typescript\nbeacon.events.autocomplete.render({ \n  data: {\n    responseId: response.responseId\n  }\n});\n```\n\n#### Impression\n\nTrack impressions (visibility) of autocomplete suggestions.\n\n```typescript\nbeacon.events.autocomplete.impression({ \n  data: {\n    responseId: response.responseId,\n    results: [\n      { type: 'product', uid: 'variant-1', parentId: 'product-1', sku: 'SKU-1' },\n      { type: 'banner', uid: 'banner-1' }\n    ],\n    banners: [\n      { uid: 'banner-1' }\n    ]\n  }\n});\n```\n\n#### Add to Cart\n\nTrack when a user adds a product to cart from autocomplete results.\n\n```typescript\nbeacon.events.autocomplete.addToCart({ \n  data: {\n    responseId: response.responseId,\n    results: [\n      { \n        uid: 'variant-1', \n        parentId: 'product-1',\n        sku: 'SKU-1', \n        qty: 1, \n        price: 29.99 \n      }\n    ]\n  }\n});\n```\n\nThis method automatically manages the stored cart state.\n\n#### Click Through\n\nTrack when a user clicks on an autocomplete suggestion.\n\n```typescript\nbeacon.events.autocomplete.clickThrough({ \n  data: {\n    responseId: response.responseId,\n    results: [\n      { \n        type: 'product', \n        uid: 'variant-1', \n        parentId: 'product-1',\n        sku: 'SKU-1'\n      }\n    ]\n  }\n});\n```\n\n#### Redirect\n\nTrack when an autocomplete suggestion causes a page redirect.\n\n```typescript\nconst redirectUrl = response.merchandising?.redirect; // 'https://example.com/sale-page'\nbeacon.events.autocomplete.redirect({ \n  data: {\n    redirect: redirectUrl,\n    responseId: response.responseId\n  }\n});\n```\n\n### Search Events\n\nSearch events track user interactions within search results pages.\n\n#### Render\n\n```typescript\nbeacon.events.search.render({ \n  data: {\n    responseId: response.responseId\n  }\n});\n```\n\n#### Impression\n\n```typescript\nbeacon.events.search.impression({ \n  data: {\n    responseId: response.responseId,\n    results: [\n      { type: 'product', uid: 'variant-1', parentId: 'product-1', sku: 'SKU-1' },\n      { type: 'product', uid: 'variant-2', parentId: 'product-2', sku: 'SKU-2' }\n    ],\n    banners: [{ uid: 'banner-1' }]\n  }\n});\n```\n\n#### Add to Cart\n\n```typescript\nbeacon.events.search.addToCart({ \n  data: {\n    responseId: response.responseId,\n    results: [\n      { \n        uid: 'variant-1', \n        parentId: 'product-1',\n        sku: 'SKU-1', \n        qty: 1, \n        price: 29.99 \n      }\n    ]\n  }\n});\n```\n\n#### Click Through\n\n```typescript\nbeacon.events.search.clickThrough({ \n  data: {\n    responseId: response.responseId,\n    results: [\n      {\n        type: 'product',\n        uid: 'variant-1',\n        parentId: 'product-1',\n        sku: 'SKU-1'\n      }\n    ]\n  }\n});\n```\n\n#### Redirect\n\n```typescript\nbeacon.events.search.redirect({ \n  data: {\n    redirect: 'https://example.com/promo',\n    responseId: response.responseId\n  }\n});\n```\n\n### Category Events\n\nCategory events track user interactions on category/listing pages.\n\n#### Render\n\n```typescript\nbeacon.events.category.render({ \n  data: {\n    responseId: response.responseId\n  }\n});\n```\n\n#### Impression\n\n```typescript\nbeacon.events.category.impression({ \n  data: {\n    responseId: response.responseId,\n    results: [\n      { type: 'product', uid: 'variant-1', parentId: 'product-1', sku: 'SKU-1' }\n    ],\n    banners: []\n  }\n});\n```\n\n#### Add to Cart\n\n```typescript\nbeacon.events.category.addToCart({ \n  data: {\n    responseId: response.responseId,\n    results: [\n      {\n        uid: 'variant-1',\n        parentId: 'product-1',\n        sku: 'SKU-1',\n        qty: 1,\n        price: 49.99\n      }\n    ]\n  }\n});\n```\n\n#### Click Through\n\n```typescript\nbeacon.events.category.clickThrough({ \n  data: {\n    responseId: response.responseId,\n    results: [\n      {\n        type: 'product',\n        uid: 'variant-1',\n        parentId: 'product-1',\n        sku: 'SKU-1'\n      }\n    ]\n  }\n});\n```\n\n### Recommendations Events\n\nRecommendations events track interactions with personalized product recommendations.\n\n#### Render\n\nTrack when a recommendation set is rendered to the user.\n\n```typescript\nbeacon.events.recommendations.render({ \n  data: {\n    tag: 'homepage-recommendations',\n    responseId: response.responseId\n  }\n});\n```\n\n#### Impression\n\nTrack impressions of recommended products.\n\n```typescript\nbeacon.events.recommendations.impression({ \n  data: {\n    tag: 'homepage-recommendations',\n    responseId: response.responseId,\n    results: [\n      { type: 'product', uid: 'variant-1', parentId: 'product-1', sku: 'SKU-1' },\n      { type: 'product', uid: 'variant-2', parentId: 'product-2', sku: 'SKU-2' }\n    ],\n    banners: []\n  }\n});\n```\n\n#### Add to Cart\n\nTrack when a user adds a recommended product to cart.\n\n```typescript\nbeacon.events.recommendations.addToCart({ \n  data: {\n    tag: 'homepage-recommendations',\n    responseId: response.responseId,\n    results: [\n      {\n        uid: 'variant-1',\n        parentId: 'product-1',\n        sku: 'SKU-1',\n        qty: 1,\n        price: 39.99\n      }\n    ]\n  }\n});\n```\n\n#### Click Through\n\nTrack clicks on recommended products.\n\n```typescript\nbeacon.events.recommendations.clickThrough({ \n  data: {\n    tag: 'homepage-recommendations',\n    responseId: response.responseId,\n    results: [\n      {\n        type: 'product',\n        uid: 'variant-1',\n        parentId: 'product-1',\n        sku: 'SKU-1'\n      }\n    ]\n  }\n});\n```\n\n### Bundles Events\n\nBundles events track interactions with personalized product bundles.\n\n#### Render\n\nTrack when a bundle set is rendered to the user.\n\n```typescript\nbeacon.events.bundles.render({ \n  data: {\n    tag: 'pdp-bundles',\n    responseId: response.responseId\n  }\n});\n```\n\n#### Impression\n\nTrack impressions of bundled products.\n\n```typescript\nbeacon.events.bundles.impression({ \n  data: {\n    tag: 'pdp-bundles',\n    responseId: response.responseId,\n    results: [\n      { type: 'product', uid: 'variant-1', parentId: 'product-1', sku: 'SKU-1' },\n      { type: 'product', uid: 'variant-2', parentId: 'product-2', sku: 'SKU-2' }\n    ],\n    banners: []\n  }\n});\n```\n\n#### Add to Cart\n\nTrack when a user adds a bundled product to cart.\n\n```typescript\nbeacon.events.bundles.addToCart({ \n  data: {\n    tag: 'pdp-bundles',\n    responseId: response.responseId,\n    results: [\n      {\n        uid: 'variant-1',\n        parentId: 'product-1',\n        sku: 'SKU-1',\n        qty: 1,\n        price: 39.99\n      }\n    ]\n  }\n});\n```\n\n#### Click Through\n\nTrack clicks on bundled products.\n\n```typescript\nbeacon.events.bundles.clickThrough({ \n  data: {\n    tag: 'pdp-bundles',\n    responseId: response.responseId,\n    results: [\n      {\n        type: 'product',\n        uid: 'variant-1',\n        parentId: 'product-1',\n        sku: 'SKU-1'\n      }\n    ]\n  }\n});\n```\n\n### Chat Events\n\nChat events track interactions with products surfaced in a chat session. Each chat event requires a `chatSessionId` to associate the event with a specific shopper conversation.\n\n#### Impression\n\nTrack impressions of products surfaced in chat results.\n\n```typescript\nbeacon.events.chat.impression({ \n  data: {\n    chatSessionId: 'chat-session-12345',\n    responseId: response.responseId,\n    results: [\n      { type: 'product', uid: 'variant-1', parentId: 'product-1', sku: 'SKU-1' },\n      { type: 'product', uid: 'variant-2', parentId: 'product-2', sku: 'SKU-2' }\n    ]\n  }\n});\n```\n\n#### Add to Cart\n\nTrack when a user adds a product to cart from chat results.\n\n```typescript\nbeacon.events.chat.addToCart({ \n  data: {\n    chatSessionId: 'chat-session-12345',\n    responseId: response.responseId,\n    results: [\n      {\n        uid: 'variant-1',\n        parentId: 'product-1',\n        sku: 'SKU-1',\n        qty: 1,\n        price: 29.99\n      }\n    ]\n  }\n});\n```\n\n#### Click Through\n\nTrack clicks on products surfaced in chat results.\n\n```typescript\nbeacon.events.chat.clickThrough({ \n  data: {\n    chatSessionId: 'chat-session-12345',\n    responseId: response.responseId,\n    results: [\n      {\n        type: 'product',\n        uid: 'variant-1',\n        parentId: 'product-1',\n        sku: 'SKU-1'\n      }\n    ]\n  }\n});\n```\n\n#### Feedback\n\nTrack 'positive' or 'negative' shopper feedback on a chat session. \n\n```typescript\nbeacon.events.chat.feedback({ \n  data: {\n    chatSessionId: 'chat-session-12345',\n    feedback: 'positive' // or ChatFeedbackSchemaDataFeedbackEnum.Positive for TypeScript\n  }\n});\n```\n\n### Product Events\n\n#### Page View\n\nTrack product page views. This automatically updates the viewed products history.\n\n```typescript\nbeacon.events.product.pageView({ \n  data: {\n    result: {\n      uid: 'variant-123',\n      parentId: 'product-123',\n      sku: 'SKU-123'\n    }\n  }\n});\n```\n\n### Cart Events\n\n#### Add\n\nTrack when products are added to the cart.\n\n```typescript\nbeacon.events.cart.add({ \n  data: {\n    results: [\n      { \n        uid: 'variant-1', \n        parentId: 'product-1',\n        sku: 'SKU-1', \n        qty: 1, \n        price: 29.99 \n      }\n    ],\n    cart: [\n      { \n        uid: 'variant-1', \n        parentId: 'product-1',\n        sku: 'SKU-1', \n        qty: 1, \n        price: 29.99 \n      },\n      { \n        uid: 'variant-2', \n        parentId: 'product-2',\n        sku: 'SKU-2', \n        qty: 2, \n        price: 19.99 \n      }\n    ]\n  }\n});\n```\n\nThe cart state is automatically managed and synchronized with storage.\n\n#### Remove\n\nTrack when products are removed from the cart.\n\n```typescript\nbeacon.events.cart.remove({ \n  data: {\n    results: [\n      { uid: 'variant-1', parentId: 'product-1', sku: 'SKU-1', qty: 1, price: 29.99 }\n    ],\n    cart: [\n      { \n        uid: 'variant-2', \n        parentId: 'product-2',\n        sku: 'SKU-2', \n        qty: 2, \n        price: 19.99 \n      }\n    ]\n  }\n});\n```\n\n### Order Events\n\n#### Transaction\n\nTrack completed transactions/orders.\n\n```typescript\nbeacon.events.order.transaction({ \n  data: {\n    orderId: 'order-12345',\n    transactionTotal: 119.97,\n    total: 129.97,\n    vat: 0.20,\n    city: 'New York',\n    state: 'NY',\n    country: 'US',\n    results: [\n      { \n        uid: 'variant-1', \n        parentId: 'product-1',\n        sku: 'SKU-1', \n        qty: 2, \n        price: 29.99 \n      },\n      { \n        uid: 'variant-2', \n        parentId: 'product-2',\n        sku: 'SKU-2', \n        qty: 1, \n        price: 60.00 \n      }\n    ]\n  }\n});\n```\n\nThis method automatically clears the stored cart after tracking the transaction.\n\n### Error Tracking Events\n\n#### Shopify Pixel Errors\n\nTrack errors from Shopify pixel implementations.\n\n```typescript\nbeacon.events.error.shopifypixel({ \n  data: {\n    message: 'Product not found',\n    stack: 'Error: Product not found\\n  at fetchProduct (app.js:45)',\n    details: { \n      productId: 'abc-123',\n      endpoint: '/api/products/abc-123'\n    }\n  }\n});\n```\n\n#### SNAP Errors\n\nTrack errors from SNAP implementations.\n\n```typescript\nbeacon.events.error.snap({ \n  data: {\n    message: 'Failed to load recommendations',\n    stack: 'Error: Network timeout\\n  at loadRecs (snap.js:120)',\n    details: { \n      tag: 'homepage-recs',\n      timeout: 5000\n    }\n  }\n});\n```\n\n\n## Storage Management\n\nBeacon automatically manages local storage and cookies to maintain user state across sessions. The storage API is the same for both integration paths — `beacon` from your NPM instance or `window.athos.tracker` from CDN.\n\n- **User IDs**: Persisted for 18 months\n- **Session IDs**: Persisted for 30 minutes\n- **Cart**: Current items in the user's cart\n- **Viewed Products**: Recently viewed products (up to 20 items)\n- **Attribution**: Campaign/attribution source tracking\n\n### Cart Storage API\n\nAccess and manipulate the stored cart through the `storage.cart` API:\n\n```typescript\n// Get current cart\nconst cartItems = beacon.storage.cart.get();\n\n// Set cart to specific items\nbeacon.storage.cart.set([\n  { uid: 'variant-1-blue-m', parentId: 'product-1', sku: 'SKU-1', qty: 2, price: 29.99 }\n]);\n\n// Add items to cart\nbeacon.storage.cart.add([\n  { uid: 'variant-2-red-l', parentId: 'product-2', sku: 'SKU-2', qty: 1, price: 19.99 }\n]);\n\n// Remove items from cart\nbeacon.storage.cart.remove([\n  { uid: 'variant-1-blue-m', parentId: 'product-1', sku: 'SKU-1', qty: 1, price: 29.99 }\n]);\n\n// Clear cart\nbeacon.storage.cart.clear();\n```\n\n### Viewed Products Storage API\n\nAccess and manipulate the viewed products history:\n\n```typescript\n// Get viewed products\nconst viewedItems = beacon.storage.viewed.get();\n\n// Set viewed products\nbeacon.storage.viewed.set([\n  { uid: 'variant-1-blue-m', parentId: 'product-1', sku: 'SKU-1' }\n]);\n\n// Add to viewed products\nbeacon.storage.viewed.add([\n  { uid: 'variant-2-red-l', parentId: 'product-2', sku: 'SKU-2' }\n]);\n```\n\n## Public API Methods\n\nThe methods below are available on both integration paths. In these examples, `beacon` can be either your NPM instance or `window.athos.tracker` when using CDN.\n\n### `setCurrency(currency: Currency)`\n\nSet or change the currency for tracking transactions.\n\n```typescript\nbeacon.setCurrency({ code: 'EUR' });\n```\n\n| Parameter | Type | Description |\n|-----------|------|-------------|\n| `currency.code` | `string` | ISO 4217 currency code |\n\n### `getContext(): Context`\n\nGet the current tracking context including user, session, and page information.\n\n```typescript\nconst context = beacon.getContext();\n// Returns: {\n//   userId: 'uuid-...',\n//   sessionId: 'uuid-...',\n//   pageLoadId: 'uuid-...',\n//   pageUrl: 'https://...',\n//   userAgent: '...',\n//   timestamp: '2024-01-01T...',\n//   ...\n// }\n```\n\n### `updateContext(key: keyof Context, value: any)`\n\nUpdate specific context properties.\n\n```typescript\nbeacon.updateContext('userId', 'custom-user-id');\nbeacon.updateContext('dev', 'development');\nbeacon.updateContext('pageUrl', 'https://example.com/new-page');\n```\n\n### User ID Management\n\n#### `getUserId(): string`\n\nGet or generate the current user ID.\n\n```typescript\nconst userId = beacon.getUserId();\n```\n\n#### `getSessionId(): string`\n\nGet or generate the current session ID (expires after 30 minutes of inactivity).\n\n```typescript\nconst sessionId = beacon.getSessionId();\n```\n\n#### `getShopperId(): string`\n\nGet the current shopper ID if set.\n\n```typescript\nconst shopperId = beacon.getShopperId();\n```\n\n#### `setShopperId(shopperId: string): string | void`\n\nSets the shopper ID, triggers a login event to the beacon, and sends a preflight request for personalization.\n\n```typescript\nconst result = beacon.setShopperId('shopper-12345');\n```\n\n### `getPageLoadId(): string`\n\nGet the current page load ID. Generate a new one with `pageLoad()`.\n\n```typescript\nconst pageLoadId = beacon.getPageLoadId();\n```\n\n### `pageLoad(): string`\n\nGenerate a new page load ID. Call this method when tracking page transitions or navigation within a single-page application.\n\n```typescript\nconst newPageLoadId = beacon.pageLoad();\n```\n\n### `getTimestamp(): string`\n\nGet the current timestamp in ISO 8601 format.\n\n```typescript\nconst timestamp = beacon.getTimestamp();\n```\n\n### `sendPreflight(overrides?: PreflightRequestModel): void`\n\nSend preflight data to the personalization API. This is automatically called when cart or shopper state changes, but can be manually triggered if needed.\n\n```typescript\nbeacon.sendPreflight();\n\n// With overrides\nbeacon.sendPreflight({\n  userId: 'custom-user-id',\n  siteId: 'custom-site-id',\n  shopper: 'shopper-123',\n  cart: [/* products */],\n  lastViewed: [/* products */]\n});\n```\n\n### `generateId(): string`\n\nGenerates and returns a new UUID.\n\n```typescript\nconst id = beacon.generateId();\n```\n\n## Advanced Usage\n\n### Custom API Endpoints\n\nOverride default API endpoints for internal proxying or custom infrastructure:\n\n```typescript\nconst beacon = new Beacon(\n  { siteId: 'abc123' },\n  {\n    requesters: {\n      beacon: {\n        origin: 'https://internal-api.example.com/beacon/v2',\n        headers: { 'X-Internal-Key': 'secret' }\n      },\n      personalization: {\n        origin: 'https://internal-api.example.com/personalization',\n        headers: { 'X-Internal-Key': 'secret' }\n      }\n    }\n  }\n);\n```\n\n### Single Page Application (SPA) Support\n\nFor single-page applications, generate a new page load ID when the page/view changes:\n\n```typescript\n// On navigation\nbeacon.pageLoad();\n\n// Track that we're now viewing a new product\nbeacon.events.product.pageView({ \n  data: { \n    result: { uid: 'variant-123', sku: 'SKU-123', parentId: 'product-123' }\n  }\n});\n```\n\n### Context Updates\n\nUpdate tracking context dynamically as user behavior or application state changes:\n\n```typescript\n// Update page URL for client-side routing\nbeacon.updateContext('pageUrl', window.location.href);\n```\n\n### Attribution Tracking\n\nAttribution data is automatically captured from the `athos_attribution` URL parameter and included in every tracking event's context. No manual configuration is required.\n\n```\nhttps://example.com/products?athos_attribution=email:campaign-123\n```\n\nThe value format is `channel:campaign-id`. Use `beacon.getContext()` to inspect the current attribution state.\n\n## Development Mode\n\nEnabling development mode prevents beacon events from appearing in reports in the Athos console.\n\n```typescript\nconst beacon = new Beacon(\n  { siteId: 'abc123' },\n  { mode: 'development' }\n);\n```\n\n## License\n\nMIT - See LICENSE file for details\n\n\n","readmeFilename":"README.md"}