Add self-hosted Umami analytics to replace the third-party cloud.umami.is tracker. Creates @harb/analytics package with typed event helpers and instruments the conversion funnel: CTA clicks (landing), wallet connect, swap initiated, and stake created (web-app). - Add Umami Docker service sharing existing postgres (separate DB) - Add Caddy /analytics route to proxy Umami dashboard - Configure via VITE_UMAMI_URL and VITE_UMAMI_WEBSITE_ID env vars - Document setup and funnel events in docs/ENVIRONMENT.md Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
64 lines
1.9 KiB
JSON
64 lines
1.9 KiB
JSON
{
|
|
"name": "harb-staking",
|
|
"version": "0.0.0",
|
|
"private": true,
|
|
"type": "module",
|
|
"scripts": {
|
|
"dev": "vite",
|
|
"build": "run-p type-check \"build-only {@}\" --",
|
|
"preview": "vite preview",
|
|
"build-only": "vite build",
|
|
"type-check": "vue-tsc --build",
|
|
"subtree": "git subtree push --prefix dist origin gh-pages",
|
|
"test": "vitest",
|
|
"lint": "eslint . --ext .vue,.ts,.tsx",
|
|
"lint:fix": "eslint . --ext .vue,.ts,.tsx --fix",
|
|
"format": "prettier --write \"src/**/*.{vue,ts,tsx,scss}\"",
|
|
"format:check": "prettier --check \"src/**/*.{vue,ts,tsx,scss}\"",
|
|
"prepare": "husky install"
|
|
},
|
|
"dependencies": {
|
|
"@tanstack/vue-query": "^5.64.2",
|
|
"@vue/test-utils": "^2.4.6",
|
|
"@wagmi/vue": "^0.2.8",
|
|
"axios": "^1.7.9",
|
|
"chart.js": "^4.4.7",
|
|
"chartjs-plugin-zoom": "^2.2.0",
|
|
"element-plus": "^2.9.3",
|
|
"kraiken-lib": "file:../kraiken-lib",
|
|
"sass": "^1.83.4",
|
|
"viem": "^2.22.13",
|
|
"vitest": "^3.0.4",
|
|
"vue": "^3.5.13",
|
|
"vue-router": "^4.2.5",
|
|
"vue-tippy": "^6.6.0",
|
|
"vue-toastification": "^2.0.0-rc.5",
|
|
"@harb/analytics": "*",
|
|
"@harb/web3": "*",
|
|
"@harb/utils": "*"
|
|
},
|
|
"devDependencies": {
|
|
"@iconify/vue": "^4.3.0",
|
|
"@stylistic/eslint-plugin": "^2.8.0",
|
|
"@tsconfig/node22": "^22.0.0",
|
|
"@types/node": "^22.10.7",
|
|
"@typescript-eslint/eslint-plugin": "^8.45.0",
|
|
"@typescript-eslint/parser": "^8.45.0",
|
|
"@vitejs/plugin-vue": "^5.2.1",
|
|
"@vue/eslint-config-typescript": "^14.6.0",
|
|
"@vue/tsconfig": "^0.7.0",
|
|
"eslint": "^9.36.0",
|
|
"eslint-config-prettier": "^10.1.8",
|
|
"eslint-plugin-vue": "^10.5.0",
|
|
"gh-pages": "^6.1.1",
|
|
"husky": "^9.1.7",
|
|
"jsdom": "^27.0.0",
|
|
"lint-staged": "^16.2.3",
|
|
"npm-run-all2": "^7.0.2",
|
|
"prettier": "^3.6.2",
|
|
"typescript": "~5.7.3",
|
|
"vite": "^6.0.11",
|
|
"vite-plugin-vue-devtools": "^7.7.0",
|
|
"vue-tsc": "^2.2.0"
|
|
}
|
|
}
|