@wenathlan/vault 2.0.133 → 2.0.135

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wenathlan/vault",
3
- "version": "2.0.133",
3
+ "version": "2.0.135",
4
4
  "description": "vault is the supabase clone of the wenathlan family: it owns the self-hosted database, auth and storage surface, and ships the documentation set and the tests directory as one package",
5
5
  "type": "module",
6
6
  "repository": {
@@ -50,93 +50,93 @@
50
50
  "restore:entry": "node -e \"const{readFileSync}=require('node:fs');const{execSync}=require('node:child_process');const script=/script[^>]*App\\.tsx/;const triad=/family=Inter[\\s\\S]*Geist\\+Mono/;const face=(h)=>script.test(h)&&triad.test(h);if(face(readFileSync('index.html','utf8'))){console.log('index.html already rides the source face');process.exit(0)}if(!face(execSync('git show HEAD:./index.html',{encoding:'utf8'}))){console.error('refusing: HEAD index.html is not the canonical source face yet (script App.tsx + the font triad) - land the source-face fix first; nothing was touched');process.exit(1)}execSync('git checkout -- index.html',{stdio:'inherit'});console.log('index.html restored from HEAD (the source face)')\""
51
51
  },
52
52
  "dependencies": {
53
- "@hono/node-server": "^2.1.3",
54
- "@prisma/adapter-libsql": "^7.10.0",
55
- "hono": "^4.13.12",
53
+ "@hono/node-server": "^2.1.5",
54
+ "@prisma/adapter-libsql": "^7.10.1",
55
+ "hono": "^4.13.13",
56
56
  "ink": "^7.1.1",
57
57
  "react-devtools-core": "^8.0.0",
58
58
  "z-ai-web-dev-sdk": "^0.0.18"
59
59
  },
60
60
  "devDependencies": {
61
- "@biomejs/biome": "^2.5.15",
62
- "@capacitor/android": "^8.5.2",
63
- "@capacitor/cli": "^8.5.2",
64
- "@capacitor/core": "^8.5.2",
65
- "@capacitor/ios": "^8.5.2",
61
+ "@biomejs/biome": "^2.6.2",
62
+ "@capacitor/android": "^8.5.3",
63
+ "@capacitor/cli": "^8.5.3",
64
+ "@capacitor/core": "^8.5.3",
65
+ "@capacitor/ios": "^8.5.3",
66
66
  "@fluentui/react-icons": "^2.0.344",
67
- "@hookform/resolvers": "^5.9.1",
67
+ "@hookform/resolvers": "^5.9.2",
68
68
  "@libsql/client": "^0.18.0",
69
- "@opencode-ai/sdk": "^1.18.34",
70
- "@prisma/client": "^7.10.0",
71
- "@radix-ui/react-accordion": "^1.2.20",
72
- "@radix-ui/react-alert-dialog": "^1.1.23",
73
- "@radix-ui/react-aspect-ratio": "^1.1.15",
74
- "@radix-ui/react-avatar": "^1.2.6",
75
- "@radix-ui/react-checkbox": "^1.3.11",
76
- "@radix-ui/react-collapsible": "^1.1.20",
77
- "@radix-ui/react-context-menu": "^2.3.7",
78
- "@radix-ui/react-dialog": "^1.1.23",
79
- "@radix-ui/react-dropdown-menu": "^2.1.24",
80
- "@radix-ui/react-hover-card": "^1.1.23",
81
- "@radix-ui/react-label": "^2.1.15",
82
- "@radix-ui/react-menubar": "^1.1.24",
83
- "@radix-ui/react-navigation-menu": "^1.2.22",
84
- "@radix-ui/react-popover": "^1.1.23",
85
- "@radix-ui/react-progress": "^1.1.16",
86
- "@radix-ui/react-radio-group": "^1.4.7",
87
- "@radix-ui/react-scroll-area": "^1.2.18",
88
- "@radix-ui/react-select": "^2.3.7",
89
- "@radix-ui/react-separator": "^1.1.15",
90
- "@radix-ui/react-slider": "^1.4.7",
91
- "@radix-ui/react-slot": "^1.3.3",
92
- "@radix-ui/react-switch": "^1.3.7",
93
- "@radix-ui/react-tabs": "^1.1.21",
94
- "@radix-ui/react-toggle": "^1.1.18",
95
- "@radix-ui/react-toggle-group": "^1.1.19",
96
- "@radix-ui/react-tooltip": "^1.2.16",
69
+ "@opencode-ai/sdk": "^1.19.4",
70
+ "@prisma/client": "^7.10.1",
71
+ "@radix-ui/react-accordion": "^1.3.1",
72
+ "@radix-ui/react-alert-dialog": "^1.2.1",
73
+ "@radix-ui/react-aspect-ratio": "^1.2.0",
74
+ "@radix-ui/react-avatar": "^1.3.1",
75
+ "@radix-ui/react-checkbox": "^1.4.1",
76
+ "@radix-ui/react-collapsible": "^1.2.1",
77
+ "@radix-ui/react-context-menu": "^2.4.1",
78
+ "@radix-ui/react-dialog": "^1.3.1",
79
+ "@radix-ui/react-dropdown-menu": "^2.2.1",
80
+ "@radix-ui/react-hover-card": "^1.2.1",
81
+ "@radix-ui/react-label": "^2.1.17",
82
+ "@radix-ui/react-menubar": "^1.2.1",
83
+ "@radix-ui/react-navigation-menu": "^1.4.1",
84
+ "@radix-ui/react-popover": "^1.3.1",
85
+ "@radix-ui/react-progress": "^1.2.1",
86
+ "@radix-ui/react-radio-group": "^1.5.1",
87
+ "@radix-ui/react-scroll-area": "^1.4.0",
88
+ "@radix-ui/react-select": "^2.4.1",
89
+ "@radix-ui/react-separator": "^1.2.0",
90
+ "@radix-ui/react-slider": "^1.6.1",
91
+ "@radix-ui/react-slot": "^1.5.0",
92
+ "@radix-ui/react-switch": "^1.4.1",
93
+ "@radix-ui/react-tabs": "^1.2.1",
94
+ "@radix-ui/react-toggle": "^1.2.1",
95
+ "@radix-ui/react-toggle-group": "^1.2.1",
96
+ "@radix-ui/react-tooltip": "^1.4.1",
97
97
  "@tailwindcss/postcss": "^4.3.3",
98
98
  "@tailwindcss/typography": "^0.5.20",
99
99
  "@tailwindcss/vite": "^4.3.3",
100
100
  "@tsconfig/node26": "^26.0.1",
101
101
  "@types/better-sqlite3": "^9.6.0",
102
- "@types/chrome": "^0.3.4",
102
+ "@types/chrome": "^0.3.6",
103
103
  "@types/express": "^5.0.6",
104
- "@types/node": "^26.6.3",
104
+ "@types/node": "^26.6.5",
105
105
  "@types/react": "^19.3.0",
106
106
  "@types/react-dom": "^19.3.0",
107
- "@vitejs/plugin-react": "^6.1.1",
107
+ "@vitejs/plugin-react": "^6.1.2",
108
108
  "add": "^2.0.9",
109
109
  "autoprefixer": "^10.6.1",
110
110
  "axios": "^1.20.0",
111
111
  "better-sqlite3": "^13.0.3",
112
- "bun-types": "^1.4.2",
112
+ "bun-types": "^1.4.4",
113
113
  "class-variance-authority": "^0.7.1",
114
114
  "clsx": "^2.1.1",
115
115
  "cmdk": "^1.1.1",
116
116
  "drizzle-kit": "^0.31.11",
117
- "drizzle-orm": "^0.45.3",
117
+ "drizzle-orm": "^0.45.4",
118
118
  "embla-carousel-react": "^8.6.0",
119
119
  "esbuild": "^0.28.2",
120
- "express": "^5.2.1",
120
+ "express": "^5.3.0",
121
121
  "fast-check": "^4.10.2",
122
- "framer-motion": "^13.5.0",
122
+ "framer-motion": "^13.5.1",
123
123
  "input-otp": "^1.5.0",
124
- "lucide-react": "^1.49.0",
125
- "mysql2": "^3.23.1",
126
- "nanoid": "^6.0.1",
124
+ "lucide-react": "^1.61.0",
125
+ "mysql2": "^3.24.6",
126
+ "nanoid": "^6.0.2",
127
127
  "next-themes": "^0.4.6",
128
- "pnpm": "^12.8.1",
129
- "postcss": "^8.5.28",
130
- "prettier": "^3.9.9",
131
- "prisma": "^7.10.0",
132
- "react": "^19.3.0",
128
+ "pnpm": "^12.15.0",
129
+ "postcss": "^8.5.31",
130
+ "prettier": "^3.9.10",
131
+ "prisma": "^7.10.1",
132
+ "react": "^19.3.1",
133
133
  "react-day-picker": "^10.0.2",
134
- "react-dom": "^19.3.0",
135
- "react-hook-form": "^7.89.0",
136
- "react-resizable-panels": "^4.14.1",
134
+ "react-dom": "^19.3.1",
135
+ "react-hook-form": "^7.91.0",
136
+ "react-resizable-panels": "^4.14.8",
137
137
  "recharts": "^3.10.1",
138
138
  "sonner": "^2.0.8",
139
- "streamdown": "^2.7.0",
139
+ "streamdown": "^2.7.1",
140
140
  "tailwind-merge": "^3.7.0",
141
141
  "tailwindcss": "^4.3.3",
142
142
  "tailwindcss-animate": "^1.0.7",
@@ -145,11 +145,21 @@
145
145
  "tw-animate-css": "^1.4.0",
146
146
  "typescript": "^7.0.2",
147
147
  "vaul": "^1.1.2",
148
- "vite": "^8.3.2",
149
- "vitest": "^5.0.3",
148
+ "vite": "^8.3.5",
149
+ "vitest": "^5.0.5",
150
150
  "wouter": "^3.13.0",
151
151
  "yaml": "^2.9.1",
152
- "zod": "^4.6.5"
152
+ "zod": "^4.6.7"
153
153
  },
154
- "packageManager": "pnpm@12.3.4"
154
+ "packageManager": "pnpm@12.3.4",
155
+ "overrides": {
156
+ "body-parser": "^2.4.0",
157
+ "fast-uri": "^3.1.9",
158
+ "follow-redirects": "^1.16.1",
159
+ "zod": "^4.6.7",
160
+ "esbuild": "^0.28.2",
161
+ "undici": "^7.30.1",
162
+ "uuid": "^11.1.1",
163
+ "postcss-selector-parser": "^7.1.6"
164
+ }
155
165
  }
@@ -16,7 +16,7 @@ function read(path: string): string {
16
16
 
17
17
  const CSS = read("../Sol/sol.css");
18
18
  const ENTRY = read("../index.html");
19
- const MARK = read("../Sol/shell/BrandMark.tsx");
19
+ const MARK = read("../Sol/widgets/shell.brandmark.tsx");
20
20
  const SHELL = read("../Sol/shell/Shell.tsx");
21
21
  const TOML = read("../devthink.toml");
22
22
  const SOL = read("../Sol/Sol.tsx");
@@ -24,9 +24,10 @@ const SOL = read("../Sol/Sol.tsx");
24
24
  const BANNED = [/3b82f6/i, /2563eb/i, /f97316/i];
25
25
 
26
26
  /** strips the windows pin keyframe — the one sanctioned scale(0) entrance —
27
- * so the floor law can be asserted on everything else. */
27
+ * so the floor law can be asserted on everything else (the block spans
28
+ * lines, so the strip rides a line-aware lazy match). */
28
29
  function cssWithoutPinIntro(source: string): string {
29
- return source.replace(/@keyframes dtPopIntro \{.*\} \}/, "");
30
+ return source.replace(/@keyframes dtPopIntro \{[\s\S]*?\n\}/g, "");
30
31
  }
31
32
 
32
33
  describe("design contract", () => {
@@ -39,9 +40,13 @@ describe("design contract", () => {
39
40
  });
40
41
 
41
42
  it("keeps the gelo identity and the windows accent in their lanes", () => {
42
- assert.match(CSS, /--sol-primary: #a3d7e6/, "the gelo identity token stands");
43
- assert.match(CSS, /--win-accent: #4cc2ff/, "the windows accent governs focus and the bar cta");
44
- assert.match(CSS, /--win-accent: #0067c0/, "the light theme follows the windows light law");
43
+ // the foundation rebuild carries the identity on the @theme signal and
44
+ // maps the gelo names onto it — the token, the alias and both stay pinned
45
+ assert.match(CSS, /--color-signal: #a3d7e6/, "the gelo identity token stands");
46
+ assert.match(CSS, /--sol-primary: var\(--color-signal\)/, "the primary rides the signal slot");
47
+ assert.match(CSS, /--win-accent: var\(--color-win\)/, "the windows accent rides its own slot");
48
+ assert.match(CSS, /--color-win: #4cc2ff/, "the windows accent governs focus and the bar cta");
49
+ assert.match(CSS, /--color-win: #0067c0/, "the light theme follows the windows light law");
45
50
  assert.match(MARK, /#a3d7e6/, "the mark rides the gelo");
46
51
  });
47
52
 
@@ -113,7 +118,7 @@ describe("design contract", () => {
113
118
  });
114
119
 
115
120
  it("mounts the flow law (the entry gate on /, intro and onboarding in the chain)", () => {
116
- const GATE = read("../Sol/home/entrygate.tsx");
121
+ const GATE = read("../Sol/widgets/home.entrygate.tsx");
117
122
  const HOME = read("../Sol/home/home.tsx");
118
123
  const INTRO = read("../Sol/intro/intro.tsx");
119
124
  const ONBOARDING = read("../Sol/onboarding/onboarding.tsx");
@@ -156,7 +161,7 @@ describe("design contract", () => {
156
161
  });
157
162
 
158
163
  it("links the family row from the one table (zero drift between chrome and landing)", () => {
159
- assert.match(SHELL, /from "\.\.\/\.\.\/family"/, "the shell reads family.ts");
164
+ assert.match(SHELL, /from "\.\.\/\.\.\/family\.ts"/, "the shell reads family.ts");
160
165
  const HOME = read("../Sol/home/home.tsx");
161
166
  assert.match(HOME, /familyrow/, "the landing footer reads the same table");
162
167
  });
package/docs/.gitkeep DELETED
@@ -1 +0,0 @@
1
-