-
Notifications
You must be signed in to change notification settings - Fork 13
Expand file tree
/
Copy pathpackage.json
More file actions
180 lines (180 loc) · 8.1 KB
/
Copy pathpackage.json
File metadata and controls
180 lines (180 loc) · 8.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
{
"name": "insightflare",
"version": "0.7.1",
"private": true,
"type": "module",
"packageManager": "npm@11.15.0",
"overrides": {
"browserslist": "^4.28.9",
"fast-uri": "^3.1.7",
"qs": "^6.16.0"
},
"scripts": {
"dev": "tsx scripts/dev.ts",
"dev:ui": "vite dev --mode demo",
"dev:worker": "vite dev --mode development",
"generate:openapi": "tsx scripts/generate-openapi.ts",
"generate:release-index": "tsx scripts/generate-release-index.ts",
"generate:skills": "tsx scripts/generate-skills.ts",
"verify:skills": "tsx scripts/check-skills.ts",
"generate:schema": "tsx scripts/generate-schema.ts",
"build": "tsx scripts/build.ts --target cf",
"build:cf": "tsx scripts/build.ts --target cf",
"build:local": "tsx scripts/build.ts --target local",
"build:demo": "tsx scripts/build.ts --target demo",
"build:tracker-sdk": "tsx scripts/build-tracker-sdk.ts",
"build:start": "vite build",
"build:pre": "tsx scripts/prebuild.ts --target cf",
"build:pre:cf": "tsx scripts/prebuild.ts --target cf",
"build:pre:local": "tsx scripts/prebuild.ts --target local",
"build:pre:demo": "tsx scripts/prebuild.ts --target demo",
"lint": "eslint --cache --cache-location .cache/eslint --max-warnings 0 .",
"lint:fix": "eslint --cache --cache-location .cache/eslint --max-warnings 0 . --fix",
"format": "prettier --cache --cache-location .cache/prettier --write \"**/*.{ts,tsx,js,jsx,css}\" --log-level warn",
"format:check": "prettier --cache --cache-location .cache/prettier --check \"**/*.{ts,tsx,js,jsx,css}\" --log-level warn",
"check:openapi": "npm run generate:openapi && npm run generate:skills && npm run verify:skills && tsx scripts/check-openapi-contract.ts && git diff --exit-code docs/openapi.json docs/openapi.yaml docs/skills.json",
"check:openapi:fix": "npm run generate:openapi && npm run generate:skills && npm run verify:skills && tsx scripts/check-openapi-contract.ts",
"check:skills": "npm run verify:skills && tsx scripts/check-openapi-contract.ts",
"check:schema": "npm run generate:schema && git diff --exit-code docs/schema.sql",
"check:schema:fix": "npm run generate:schema",
"check": "tsx scripts/check.ts",
"check:layer": "tsx scripts/check-layer-contract.ts",
"check:verify": "tsx scripts/check.ts --verify",
"check:e2e": "npm run check && npm run test:e2e",
"check:verbose": "tsx scripts/check.ts --verbose",
"preview:local": "tsx scripts/preview.ts --target local",
"prepare": "tsx scripts/build-tracker-sdk.ts && husky",
"deploy": "tsx scripts/deploy.ts --target cf",
"deploy:cf": "tsx scripts/deploy.ts --target cf",
"deploy:demo": "tsx scripts/deploy.ts --target demo",
"publish": "tsx scripts/publish.ts --target cf",
"publish:cf": "tsx scripts/publish.ts --target cf",
"publish:cf:dry-run": "tsx scripts/publish.ts --target cf --dry-run",
"publish:demo": "tsx scripts/publish.ts --target demo",
"publish:demo:dry-run": "tsx scripts/publish.ts --target demo --dry-run",
"maintainer:build": "tsx scripts/build.ts --target cf --env ravelloh --database DB",
"maintainer:deploy": "tsx scripts/deploy.ts --target cf --env ravelloh",
"ops:d1:create": "tsx scripts/ops.ts --target cf --action d1:create",
"ops:secret:main": "tsx scripts/ops.ts --target cf --action secret --name MAIN_SECRET",
"ops:secret:daily-salt": "tsx scripts/ops.ts --target cf --action secret --name DAILY_SALT_SECRET",
"ops:secret:bootstrap-admin-password": "tsx scripts/ops.ts --target cf --action secret --name BOOTSTRAP_ADMIN_PASSWORD",
"ops:tail": "tsx scripts/ops.ts --target cf --action tail",
"typecheck": "tsc --noEmit -p tsconfig.json",
"check:i18n": "tsx scripts/check-i18n.ts",
"watch:i18n": "tsx scripts/watch-i18n.ts",
"test": "vitest run",
"test:watch": "vitest",
"test:coverage": "vitest run --coverage --coverage.reporter=text --coverage.reporter=html --coverage.reportsDirectory=coverage/core",
"test:coverage:tracker": "vitest run --config vitest.tracker.config.ts --coverage --coverage.reporter=text --coverage.reporter=html --coverage.reportsDirectory=coverage/tracker",
"test:coverage:check": "npm run test:coverage -- --maxWorkers 16",
"test:e2e": "tsx scripts/e2e.ts",
"e2e:serve": "tsx scripts/e2e.ts --serve",
"test:e2e:show": "tsx scripts/e2e.ts --headed --workers=1",
"test:e2e:ui": "tsx scripts/e2e.ts --ui",
"test:e2e:debug": "tsx scripts/e2e.ts --debug",
"db:migrate:local": "tsx scripts/db.ts --target local --action migrate",
"db:migrate:cf": "tsx scripts/db.ts --target cf --action migrate",
"db:migration:create": "tsx scripts/db.ts --target local --action migration:create"
},
"dependencies": {
"@deck.gl/core": "^9.3.10",
"@deck.gl/layers": "^9.3.10",
"@deck.gl/mapbox": "^9.3.10",
"@fontsource-variable/jetbrains-mono": "^5.3.0",
"@iconify-json/flagpack": "^1.2.7",
"@iconify/react": "^6.0.2",
"@noble/hashes": "^2.4.0",
"@number-flow/react": "^0.6.2",
"@remixicon/react": "^4.9.0",
"@tanstack/react-query": "5.102.8",
"@tanstack/react-router": "1.170.32",
"@tanstack/react-start": "1.168.49",
"asn-blocklist": "^1.20260823.0",
"boring-avatars": "^2.0.4",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
"hono": "^4.13.5",
"i18n-iso-countries": "^7.14.0",
"isbot": "^5.2.2",
"maplibre-gl": "^5.24.0",
"motion": "^12.43.0",
"overlayscrollbars": "^2.16.0",
"radix-ui": "^1.6.7",
"react": "^19.2.8",
"react-day-picker": "^9.14.0",
"react-dom": "^19.2.8",
"react-map-gl": "^8.1.2",
"recharts": "^2.15.4",
"shadcn": "^3.8.5",
"sonner": "^2.0.8",
"tailwind-merge": "^3.6.0",
"tw-animate-css": "^1.4.0",
"ua-parser-js": "^2.0.10",
"vaul": "^1.1.2",
"zod": "^4.4.3"
},
"devDependencies": {
"@cloudflare/vite-plugin": "1.55.0",
"@cloudflare/workers-types": "5.20260917.1",
"@eslint/js": "~9.39.5",
"@playwright/test": "1.63.0",
"@tailwindcss/postcss": "^4.3.0",
"@tailwindcss/vite": "4.3.3",
"@types/node": "^25.9.7",
"@types/react": "^19.2.18",
"@types/react-dom": "^19.2.5",
"@vitejs/plugin-react": "6.1.1",
"@vitest/coverage-v8": "^4.1.11",
"eslint": "~9.39.4",
"eslint-config-prettier": "^10.1.8",
"eslint-plugin-no-relative-import-paths": "^1.7.3",
"eslint-plugin-react": "^7.37.5",
"eslint-plugin-react-hooks": "^5.2.0",
"eslint-plugin-simple-import-sort": "^12.1.1",
"globals": "^16.5.0",
"happy-dom": "^20.14.5",
"husky": "^9.1.7",
"lint-staged": "^16.4.0",
"postcss": "^8.5.28",
"prettier": "^3.9.8",
"rlog-js": "^3.0.0",
"tailwindcss": "^4.3.0",
"terser": "^5.51.2",
"tsx": "^4.23.13",
"typescript": "^5.9.3",
"typescript-eslint": "^8.70.0",
"vite": "8.3.0",
"vitest": "^4.1.11",
"wrangler": "4.134.0",
"yaml": "^2.9.1"
},
"cloudflare": {
"bindings": {
"MAIN_SECRET": {
"description": "Enter a random string longer than 16 characters. InsightFlare derives visitor privacy salts, dashboard session signing keys, and API key hashing keys from this root secret. Generate one by visiting [https://random.ravelloh.com/str/32](https://random.ravelloh.com/str/32) and copy-pasting the result here."
},
"BOOTSTRAP_ADMIN_PASSWORD": {
"description": "Password for the default admin account. The default username is `admin`."
},
"DB": {
"description": "D1 database used for analytics data, account data, and migrations."
},
"SITE_SETTINGS_KV": {
"description": "KV namespace used for site tracking configuration read by `/script.js`."
},
"INGEST_DO": {
"description": "Durable Object namespace used for ingest buffering, realtime state, and batched D1 writes."
},
"ARCHIVE_BUCKET": {
"description": "Optional R2 bucket for cold archive storage. Leave it unbound unless you want to enable archive-to-R2."
}
}
},
"lint-staged": {
"*.{js,jsx,ts,tsx}": [
"eslint --fix --max-warnings 0 --no-warn-ignored",
"prettier --write"
],
"*.css": "prettier --write"
}
}