Files
id/apps/web/package.json
zooqueenandHanzo Dev 09f54bd496 Ask before measuring on every identity host, and load each brand's own tags
index.html drops its hard-coded GA4, Meta Pixel, Umami and Insights tags. The
shared @hanzo/ui banner asks and @hanzo/event keeps the choice: until it allows
Analytics no event client exists, and until it allows Analytics or Marketing
the tag manager is not started, so nothing is fetched, sent or stored. Global
Privacy Control and Do Not Track refuse without being asked.

The tag manager asks cloud for the tag set of the brand's runtime key, the same
key its event stream files under, so each brand loads only its own GA4 and
pixels and a host with no key starts none. A host whose brand publishes no
privacy policy is not asked, so nothing optional runs there. Routes whose
address carries an authorization code or device code start no tags either.

@hanzo/event 0.3.58 and @hanzo/ui 8.27.90 are pinned, with one @hanzo/event in
the graph. The banner renders on @hanzo/gui through react-native-web and loads
on its own chunk. The dist key check reads its allowance from the runtime
keyring and from @hanzo/event's host-keyed table.

Co-authored-by: Hanzo Dev <[email protected]>
2026-10-16 02:41:50 -07:00

52 lines
1.6 KiB
JSON

{
"name": "@hanzo/id-web",
"private": true,
"version": "0.1.46",
"description": "Hanzo ID \u2014 white-label login / signup / IDV portal. Vite + React 19, styled from @hanzo/design tokens. Same image serves hanzo.id / lux.id / zoo.id / pars.id.",
"type": "module",
"scripts": {
"dev": "vite",
"build": "vite build",
"preview": "vite preview --port 5174",
"tc": "tsc --noEmit",
"e2e": "playwright test"
},
"dependencies": {
"@crossmarkio/sdk": "catalog:",
"@hanzo/appearance": "catalog:",
"@hanzo/brand": "catalog:",
"@hanzo/design": "catalog:",
"@hanzo/event": "catalog:",
"@hanzo/gui": "catalog:",
"@hanzo/iam": "catalog:",
"@hanzo/id-auth": "workspace:*",
"@hanzo/id-connect": "workspace:*",
"@hanzo/id-idv": "workspace:*",
"@hanzo/id-onboarding": "workspace:*",
"@hanzo/id-shared": "workspace:*",
"@hanzo/ui": "catalog:",
"@hanzogui/shell": "catalog:",
"@luxfi/brand": "catalog:",
"@parsdao/brand": "catalog:",
"@tanstack/react-router": "catalog:",
"@tonconnect/sdk": "catalog:",
"@zooai/brand": "catalog:",
"react": "catalog:",
"react-dom": "catalog:",
"react-native-web": "catalog:",
"@noble/curves": "catalog:",
"@noble/hashes": "catalog:",
"bs58": "catalog:",
"sats-connect": "catalog:",
"viem": "catalog:"
},
"devDependencies": {
"@playwright/test": "catalog:",
"@types/react": "catalog:",
"@types/react-dom": "catalog:",
"@vitejs/plugin-react": "catalog:",
"typescript": "catalog:",
"vite": "catalog:"
}
}