@iann29/rastro 0.1.0-alpha.0 → 0.1.0-alpha.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (164) hide show
  1. package/README.md +579 -57
  2. package/agent/integration.md +661 -0
  3. package/agent/manifest.json +187 -0
  4. package/agent/manifest.schema.json +411 -0
  5. package/dist/client/federation.d.ts +236 -0
  6. package/dist/client/federation.d.ts.map +1 -0
  7. package/dist/client/federation.js +196 -0
  8. package/dist/client/federation.js.map +1 -0
  9. package/dist/client/index.d.ts +2467 -18
  10. package/dist/client/index.d.ts.map +1 -1
  11. package/dist/client/index.js +461 -32
  12. package/dist/client/index.js.map +1 -1
  13. package/dist/component/_generated/api.d.ts +18 -0
  14. package/dist/component/_generated/api.d.ts.map +1 -1
  15. package/dist/component/_generated/api.js.map +1 -1
  16. package/dist/component/_generated/component.d.ts +302 -4
  17. package/dist/component/_generated/component.d.ts.map +1 -1
  18. package/dist/component/_generated/server.d.ts +4 -0
  19. package/dist/component/_generated/server.d.ts.map +1 -1
  20. package/dist/component/_generated/server.js.map +1 -1
  21. package/dist/component/affiliates.d.ts.map +1 -1
  22. package/dist/component/affiliates.js +6 -2
  23. package/dist/component/affiliates.js.map +1 -1
  24. package/dist/component/cardinality.d.ts +12 -0
  25. package/dist/component/cardinality.d.ts.map +1 -0
  26. package/dist/component/cardinality.js +94 -0
  27. package/dist/component/cardinality.js.map +1 -0
  28. package/dist/component/constants.d.ts +34 -7
  29. package/dist/component/constants.d.ts.map +1 -1
  30. package/dist/component/constants.js +47 -7
  31. package/dist/component/constants.js.map +1 -1
  32. package/dist/component/convex.config.d.ts +6 -1
  33. package/dist/component/convex.config.js +9 -1
  34. package/dist/component/convex.config.js.map +1 -1
  35. package/dist/component/coverage.d.ts +19 -0
  36. package/dist/component/coverage.d.ts.map +1 -0
  37. package/dist/component/coverage.js +30 -0
  38. package/dist/component/coverage.js.map +1 -0
  39. package/dist/component/diagnostics.d.ts +9 -0
  40. package/dist/component/diagnostics.d.ts.map +1 -0
  41. package/dist/component/diagnostics.js +47 -0
  42. package/dist/component/diagnostics.js.map +1 -0
  43. package/dist/component/errors.d.ts +1 -1
  44. package/dist/component/errors.d.ts.map +1 -1
  45. package/dist/component/errors.js.map +1 -1
  46. package/dist/component/eventStore.d.ts +106 -0
  47. package/dist/component/eventStore.d.ts.map +1 -0
  48. package/dist/component/eventStore.js +294 -0
  49. package/dist/component/eventStore.js.map +1 -0
  50. package/dist/component/funnels.d.ts.map +1 -1
  51. package/dist/component/funnels.js +5 -3
  52. package/dist/component/funnels.js.map +1 -1
  53. package/dist/component/geo.d.ts +71 -0
  54. package/dist/component/geo.d.ts.map +1 -0
  55. package/dist/component/geo.js +611 -0
  56. package/dist/component/geo.js.map +1 -0
  57. package/dist/component/goals.d.ts.map +1 -1
  58. package/dist/component/goals.js +25 -9
  59. package/dist/component/goals.js.map +1 -1
  60. package/dist/component/guards.d.ts.map +1 -1
  61. package/dist/component/guards.js.map +1 -1
  62. package/dist/component/http.d.ts.map +1 -1
  63. package/dist/component/http.js +284 -53
  64. package/dist/component/http.js.map +1 -1
  65. package/dist/component/identity.d.ts +13 -0
  66. package/dist/component/identity.d.ts.map +1 -0
  67. package/dist/component/identity.js +58 -0
  68. package/dist/component/identity.js.map +1 -0
  69. package/dist/component/ingest.d.ts +3 -1
  70. package/dist/component/ingest.d.ts.map +1 -1
  71. package/dist/component/ingest.js +1105 -243
  72. package/dist/component/ingest.js.map +1 -1
  73. package/dist/component/live.d.ts +8 -0
  74. package/dist/component/live.d.ts.map +1 -1
  75. package/dist/component/live.js +74 -9
  76. package/dist/component/live.js.map +1 -1
  77. package/dist/component/reports.d.ts +273 -24
  78. package/dist/component/reports.d.ts.map +1 -1
  79. package/dist/component/reports.js +1320 -150
  80. package/dist/component/reports.js.map +1 -1
  81. package/dist/component/retention.d.ts +75 -1
  82. package/dist/component/retention.d.ts.map +1 -1
  83. package/dist/component/retention.js +541 -31
  84. package/dist/component/retention.js.map +1 -1
  85. package/dist/component/sanitize.d.ts +24 -1
  86. package/dist/component/sanitize.d.ts.map +1 -1
  87. package/dist/component/sanitize.js +107 -19
  88. package/dist/component/sanitize.js.map +1 -1
  89. package/dist/component/schema.d.ts +462 -55
  90. package/dist/component/schema.js +195 -15
  91. package/dist/component/schema.js.map +1 -1
  92. package/dist/component/sites.d.ts.map +1 -1
  93. package/dist/component/sites.js +38 -25
  94. package/dist/component/sites.js.map +1 -1
  95. package/dist/component/useragent.d.ts +9 -0
  96. package/dist/component/useragent.d.ts.map +1 -0
  97. package/dist/component/useragent.js +152 -0
  98. package/dist/component/useragent.js.map +1 -0
  99. package/dist/component/validators.d.ts +101 -16
  100. package/dist/component/validators.d.ts.map +1 -1
  101. package/dist/component/validators.js +19 -2
  102. package/dist/component/validators.js.map +1 -1
  103. package/dist/component/visitors.d.ts +19 -0
  104. package/dist/component/visitors.d.ts.map +1 -0
  105. package/dist/component/visitors.js +86 -0
  106. package/dist/component/visitors.js.map +1 -0
  107. package/dist/component/vitals.d.ts +41 -0
  108. package/dist/component/vitals.d.ts.map +1 -0
  109. package/dist/component/vitals.js +115 -0
  110. package/dist/component/vitals.js.map +1 -0
  111. package/dist/react/index.d.ts.map +1 -1
  112. package/dist/react/index.js.map +1 -1
  113. package/dist/tracker/generated.d.ts +8 -4
  114. package/dist/tracker/generated.d.ts.map +1 -1
  115. package/dist/tracker/generated.js +8 -4
  116. package/dist/tracker/generated.js.map +1 -1
  117. package/dist/tracker/tracker.d.ts +1 -1
  118. package/dist/tracker/tracker.d.ts.map +1 -1
  119. package/dist/tracker/tracker.js +81 -33
  120. package/dist/tracker/tracker.js.map +1 -1
  121. package/dist/tracker/vitals.d.ts +10 -0
  122. package/dist/tracker/vitals.d.ts.map +1 -0
  123. package/dist/tracker/vitals.js +140 -0
  124. package/dist/tracker/vitals.js.map +1 -0
  125. package/dist/tracker.min.js +1 -1
  126. package/dist/vitals.min.js +1 -0
  127. package/docs/benchmarks/2026-08-20-realistic.md +171 -0
  128. package/docs/benchmarks/2026-08-21-formal-certification.md +353 -0
  129. package/docs/benchmarks/2026-08-30-alpha6-recertification.md +206 -0
  130. package/docs/federation-setup.md +397 -0
  131. package/docs/federation.md +262 -0
  132. package/docs/upgrading.md +259 -0
  133. package/llms.txt +71 -0
  134. package/package.json +61 -11
  135. package/scripts/benchmark-ingest.mjs +601 -0
  136. package/scripts/generate-federation-keys.mjs +20 -0
  137. package/src/component/_generated/api.ts +18 -0
  138. package/src/component/_generated/component.ts +366 -4
  139. package/src/component/_generated/server.ts +4 -0
  140. package/src/component/affiliates.ts +20 -5
  141. package/src/component/cardinality.ts +117 -0
  142. package/src/component/constants.ts +47 -7
  143. package/src/component/convex.config.ts +11 -1
  144. package/src/component/coverage.ts +36 -0
  145. package/src/component/diagnostics.ts +65 -0
  146. package/src/component/errors.ts +2 -1
  147. package/src/component/eventStore.ts +489 -0
  148. package/src/component/funnels.ts +19 -16
  149. package/src/component/geo.ts +781 -0
  150. package/src/component/goals.ts +45 -16
  151. package/src/component/guards.ts +3 -1
  152. package/src/component/http.ts +403 -60
  153. package/src/component/identity.ts +74 -0
  154. package/src/component/ingest.ts +1652 -291
  155. package/src/component/live.ts +90 -9
  156. package/src/component/reports.ts +1929 -199
  157. package/src/component/retention.ts +774 -97
  158. package/src/component/sanitize.ts +154 -32
  159. package/src/component/schema.ts +219 -15
  160. package/src/component/sites.ts +56 -28
  161. package/src/component/useragent.ts +171 -0
  162. package/src/component/validators.ts +29 -1
  163. package/src/component/visitors.ts +116 -0
  164. package/src/component/vitals.ts +146 -0
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@iann29/rastro",
3
- "description": "Privacy-first, real-time web analytics for Convex: live visitor atlas, journeys, revenue, goals, funnels, affiliates, and a sub-1KB tracker.",
3
+ "description": "Privacy-first, real-time web analytics for Convex: live visitor atlas, journeys, revenue, goals, funnels, affiliates, and a 1.1 KB tracker.",
4
4
  "repository": "github:amageweb/amage-rastro",
5
5
  "homepage": "https://github.com/amageweb/amage-rastro#readme",
6
6
  "bugs": {
7
7
  "url": "https://github.com/amageweb/amage-rastro/issues"
8
8
  },
9
- "version": "0.1.0-alpha.0",
9
+ "version": "0.1.0-alpha.10",
10
10
  "license": "Apache-2.0",
11
11
  "publishConfig": {
12
12
  "access": "public"
@@ -27,30 +27,47 @@
27
27
  "jsdelivr": "./dist/tracker.min.js",
28
28
  "scripts": {
29
29
  "dev": "synapse dev --start 'npm run dev:build'",
30
- "dev:frontend": "cd example && vite",
30
+ "dev:frontend": "cd control-plane && vite",
31
31
  "dev:build": "chokidar 'tsconfig*.json' 'src/**/*.{ts,js}' 'scripts/build-tracker.mjs' -i '**/*.test.ts' -c 'npm run build:codegen' --initial",
32
+ "deploy:dashboard": "static-hosting upload --build --dist control-plane/dist --build-command \"npm exec vite -- build control-plane\"",
32
33
  "predev": "npm run build:codegen",
34
+ "prebuild": "rm -rf dist *.tsbuildinfo",
33
35
  "build": "npm run build:tracker && tsc --project ./tsconfig.build.json",
34
36
  "build:tracker": "node ./scripts/build-tracker.mjs",
35
- "build:codegen": "synapse convex codegen --component-dir ./src/component && npm run build",
36
- "build:clean": "rm -rf dist *.tsbuildinfo && npm run build:codegen",
37
- "typecheck": "tsc --noEmit && tsc -p example && tsc -p example/convex",
37
+ "federation:keys": "node ./scripts/generate-federation-keys.mjs",
38
+ "benchmark:ingest": "node ./scripts/benchmark-ingest.mjs",
39
+ "benchmark:local": "vitest run src/component/benchmark.test.ts",
40
+ "format:check": "prettier --check .",
41
+ "verify:agent-docs": "node ./scripts/verify-agent-docs.mjs",
42
+ "verify:skill-paths": "node ./scripts/verify-skill-paths.mjs",
43
+ "build:codegen": "npm run build && synapse convex codegen --component-dir ./src/component && npm run build && npm run codegen:example && synapse dev --once",
44
+ "codegen:example": "npm run --workspace example codegen",
45
+ "build:clean": "npm run build:codegen",
46
+ "typecheck": "tsc --noEmit && tsc -p control-plane && tsc -p control-plane/convex && tsc -p example/convex",
38
47
  "lint": "eslint .",
39
48
  "test": "vitest run --typecheck",
40
49
  "test:watch": "vitest --typecheck --clearScreen false",
41
50
  "test:debug": "vitest --inspect-brk --no-file-parallelism",
42
51
  "test:coverage": "vitest run --coverage --coverage.reporter=text",
52
+ "e2e": "playwright test -c control-plane/playwright.config.ts",
43
53
  "prepare": "npm run build",
44
- "preversion": "npm ci && npm run build:clean && npm run test && npm run lint && npm run typecheck",
45
- "alpha": "npm version prerelease --preid alpha && npm publish --tag alpha && git push --follow-tags",
46
- "release": "npm version patch && npm publish && git push --follow-tags",
47
- "version": "(npm whoami || npm login) && vim -c 'normal o' -c 'normal o## '$npm_package_version CHANGELOG.md && prettier -w CHANGELOG.md && git add CHANGELOG.md"
54
+ "preversion": "npm run build && VITE_CONVEX_URL=https://preflight.example.convex.cloud VITE_CONVEX_SITE_URL=https://preflight.example.convex.site npm exec vite -- build control-plane && npm run test && npm run format:check && npm run lint && npm run typecheck && npm run benchmark:local && npm run verify:agent-docs && npm run verify:skill-paths"
48
55
  },
49
56
  "files": [
50
57
  "dist",
51
58
  "src/test.ts",
52
59
  "src/component/**/*.ts",
53
60
  "!src/component/**/*.test.ts",
61
+ "scripts/benchmark-ingest.mjs",
62
+ "scripts/generate-federation-keys.mjs",
63
+ "agent/manifest.json",
64
+ "agent/manifest.schema.json",
65
+ "agent/integration.md",
66
+ "llms.txt",
67
+ "docs/federation.md",
68
+ "docs/federation-setup.md",
69
+ "docs/upgrading.md",
70
+ "docs/benchmarks/*.md",
54
71
  "assets/rastro-live-atlas.png"
55
72
  ],
56
73
  "exports": {
@@ -64,6 +81,7 @@
64
81
  "default": "./dist/react/index.js"
65
82
  },
66
83
  "./tracker.js": "./dist/tracker.min.js",
84
+ "./vitals.js": "./dist/vitals.min.js",
67
85
  "./test": "./src/test.ts",
68
86
  "./_generated/component.js": {
69
87
  "types": "./dist/component/_generated/component.d.ts"
@@ -84,19 +102,37 @@
84
102
  "convex": "^1.43.0",
85
103
  "react": "^18.3.1 || ^19.0.0"
86
104
  },
105
+ "peerDependenciesMeta": {
106
+ "react": {
107
+ "optional": true
108
+ }
109
+ },
87
110
  "devDependencies": {
88
111
  "@convex-dev/eslint-plugin": "^4.0.0",
112
+ "@convex-dev/static-hosting": "^0.2.1",
113
+ "@dicebear/core": "^9.4.3",
114
+ "@dicebear/lorelei": "^9.4.2",
89
115
  "@edge-runtime/vm": "^5.0.0",
90
116
  "@eslint/eslintrc": "^3.3.6",
91
117
  "@eslint/js": "9.39.5",
92
118
  "@fontsource-variable/instrument-sans": "^5.3.0",
93
119
  "@fontsource/ibm-plex-mono": "^5.3.0",
120
+ "@playwright/test": "^1.62.1",
121
+ "@tailwindcss/vite": "^4.3.3",
122
+ "@testing-library/dom": "^10.4.1",
123
+ "@testing-library/jest-dom": "^7.0.1",
124
+ "@testing-library/react": "^16.3.3",
125
+ "@testing-library/user-event": "^14.6.6",
94
126
  "@types/node": "^24.13.3",
95
127
  "@types/react": "^19.2.18",
96
128
  "@types/react-dom": "^19.2.4",
97
129
  "@typescript/native": "npm:typescript@^7.0.2",
98
130
  "@vitejs/plugin-react": "^6.0.5",
131
+ "ajv": "^8.20.0",
132
+ "ajv-formats": "^3.0.1",
99
133
  "chokidar-cli": "3.0.0",
134
+ "class-variance-authority": "^0.7.1",
135
+ "clsx": "^2.1.1",
100
136
  "convex": "^1.44.0",
101
137
  "convex-test": "0.0.55",
102
138
  "eslint": "9.39.5",
@@ -104,12 +140,16 @@
104
140
  "eslint-plugin-react-hooks": "^7.1.1",
105
141
  "eslint-plugin-react-refresh": "^0.5.3",
106
142
  "globals": "^17.9.0",
143
+ "jsdom": "^30.0.1",
107
144
  "lucide-react": "^1.32.0",
108
145
  "maplibre-gl": "^6.4.1",
109
146
  "pkg-pr-new": "^0.0.86",
110
147
  "prettier": "3.9.6",
148
+ "radix-ui": "^1.6.7",
111
149
  "react": "^19.2.8",
112
150
  "react-dom": "^19.2.8",
151
+ "tailwind-merge": "^3.6.0",
152
+ "tailwindcss": "^4.3.3",
113
153
  "terser": "^5.50.0",
114
154
  "typescript": "npm:@typescript/typescript6@^6.0.2",
115
155
  "typescript-eslint": "8.66.0",
@@ -117,5 +157,15 @@
117
157
  "vitest": "4.1.10"
118
158
  },
119
159
  "types": "./dist/client/index.d.ts",
120
- "module": "./dist/client/index.js"
160
+ "module": "./dist/client/index.js",
161
+ "dependencies": {
162
+ "@convex-dev/better-auth": "^0.12.5",
163
+ "better-auth": "~1.6.15",
164
+ "country-flag-icons": "^1.6.20",
165
+ "jose": "^6.2.10",
166
+ "simple-icons": "^16.29.0"
167
+ },
168
+ "workspaces": [
169
+ "example"
170
+ ]
121
171
  }