@wenathlan/vault 2.0.134 → 2.0.136
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 +71 -61
- package/tests/design.test.ts +13 -8
- package/docs/.gitkeep +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wenathlan/vault",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.136",
|
|
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.
|
|
54
|
-
"@prisma/adapter-libsql": "^7.10.
|
|
55
|
-
"hono": "^4.13.
|
|
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.
|
|
62
|
-
"@capacitor/android": "^8.5.
|
|
63
|
-
"@capacitor/cli": "^8.5.
|
|
64
|
-
"@capacitor/core": "^8.5.
|
|
65
|
-
"@capacitor/ios": "^8.5.
|
|
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.
|
|
67
|
+
"@hookform/resolvers": "^5.9.2",
|
|
68
68
|
"@libsql/client": "^0.18.0",
|
|
69
|
-
"@opencode-ai/sdk": "^1.
|
|
70
|
-
"@prisma/client": "^7.10.
|
|
71
|
-
"@radix-ui/react-accordion": "^1.
|
|
72
|
-
"@radix-ui/react-alert-dialog": "^1.1
|
|
73
|
-
"@radix-ui/react-aspect-ratio": "^1.
|
|
74
|
-
"@radix-ui/react-avatar": "^1.
|
|
75
|
-
"@radix-ui/react-checkbox": "^1.
|
|
76
|
-
"@radix-ui/react-collapsible": "^1.1
|
|
77
|
-
"@radix-ui/react-context-menu": "^2.
|
|
78
|
-
"@radix-ui/react-dialog": "^1.1
|
|
79
|
-
"@radix-ui/react-dropdown-menu": "^2.1
|
|
80
|
-
"@radix-ui/react-hover-card": "^1.1
|
|
81
|
-
"@radix-ui/react-label": "^2.1.
|
|
82
|
-
"@radix-ui/react-menubar": "^1.1
|
|
83
|
-
"@radix-ui/react-navigation-menu": "^1.
|
|
84
|
-
"@radix-ui/react-popover": "^1.1
|
|
85
|
-
"@radix-ui/react-progress": "^1.1
|
|
86
|
-
"@radix-ui/react-radio-group": "^1.
|
|
87
|
-
"@radix-ui/react-scroll-area": "^1.
|
|
88
|
-
"@radix-ui/react-select": "^2.
|
|
89
|
-
"@radix-ui/react-separator": "^1.
|
|
90
|
-
"@radix-ui/react-slider": "^1.
|
|
91
|
-
"@radix-ui/react-slot": "^1.
|
|
92
|
-
"@radix-ui/react-switch": "^1.
|
|
93
|
-
"@radix-ui/react-tabs": "^1.1
|
|
94
|
-
"@radix-ui/react-toggle": "^1.1
|
|
95
|
-
"@radix-ui/react-toggle-group": "^1.1
|
|
96
|
-
"@radix-ui/react-tooltip": "^1.
|
|
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.
|
|
102
|
+
"@types/chrome": "^0.3.6",
|
|
103
103
|
"@types/express": "^5.0.6",
|
|
104
|
-
"@types/node": "^26.6.
|
|
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.
|
|
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.
|
|
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.
|
|
117
|
+
"drizzle-orm": "^0.45.4",
|
|
118
118
|
"embla-carousel-react": "^8.6.0",
|
|
119
119
|
"esbuild": "^0.28.2",
|
|
120
|
-
"express": "^5.
|
|
120
|
+
"express": "^5.3.0",
|
|
121
121
|
"fast-check": "^4.10.2",
|
|
122
|
-
"framer-motion": "^13.5.
|
|
122
|
+
"framer-motion": "^13.5.1",
|
|
123
123
|
"input-otp": "^1.5.0",
|
|
124
|
-
"lucide-react": "^1.
|
|
125
|
-
"mysql2": "^3.
|
|
126
|
-
"nanoid": "^6.0.
|
|
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.
|
|
129
|
-
"postcss": "^8.5.
|
|
130
|
-
"prettier": "^3.9.
|
|
131
|
-
"prisma": "^7.10.
|
|
132
|
-
"react": "^19.3.
|
|
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.
|
|
135
|
-
"react-hook-form": "^7.
|
|
136
|
-
"react-resizable-panels": "^4.14.
|
|
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.
|
|
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.
|
|
149
|
-
"vitest": "^5.0.
|
|
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.
|
|
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
|
}
|
package/tests/design.test.ts
CHANGED
|
@@ -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
|
|
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
|
-
|
|
43
|
-
|
|
44
|
-
assert.match(CSS, /--
|
|
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
|
|
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
|
-
|