create-top-secret-starter 0.11.0 → 0.12.0
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/backend-overlay/web-router/src/routes/sign-in.tsx +2 -2
- package/backend-overlay/web-router/src/routes/sign-up.tsx +2 -2
- package/backend-overlay/web-start/src/routes/sign-in.tsx +2 -2
- package/backend-overlay/web-start/src/routes/sign-up.tsx +2 -2
- package/github-config.js +0 -6
- package/package.json +1 -1
- package/templates/template-router/.claude/skills/project-conventions/SKILL.md +1 -1
- package/templates/template-router/.oxlintrc.json +1 -1
- package/templates/template-router/CLAUDE.md +0 -2
- package/templates/template-router/package.json +2 -4
- package/templates/template-router/src/routes/_authenticated/notes/index.tsx +2 -2
- package/templates/template-router/src/routes/sign-in.tsx +2 -2
- package/templates/template-start/.claude/skills/project-conventions/SKILL.md +1 -1
- package/templates/template-start/.oxlintrc.json +1 -1
- package/templates/template-start/CLAUDE.md +0 -2
- package/templates/template-start/package.json +2 -4
- package/templates/template-start/src/routes/_authenticated/notes/index.tsx +2 -2
- package/templates/template-start/src/routes/sign-in.tsx +2 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { zodResolver } from '@hookform/resolvers/zod'
|
|
2
2
|
import { Link, createFileRoute, useRouter } from '@tanstack/react-router'
|
|
3
3
|
import { useForm } from 'react-hook-form'
|
|
4
4
|
import * as z from 'zod/mini'
|
|
@@ -37,7 +37,7 @@ function SignInPage() {
|
|
|
37
37
|
const signIn = useSignIn()
|
|
38
38
|
|
|
39
39
|
const { register, handleSubmit, formState } = useForm({
|
|
40
|
-
resolver:
|
|
40
|
+
resolver: zodResolver(SignInFormSchema),
|
|
41
41
|
defaultValues: { email: '', password: '' }
|
|
42
42
|
})
|
|
43
43
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { zodResolver } from '@hookform/resolvers/zod'
|
|
2
2
|
import { Link, createFileRoute, useRouter } from '@tanstack/react-router'
|
|
3
3
|
import { useForm } from 'react-hook-form'
|
|
4
4
|
import * as z from 'zod/mini'
|
|
@@ -40,7 +40,7 @@ function SignUpPage() {
|
|
|
40
40
|
const signUp = useSignUp()
|
|
41
41
|
|
|
42
42
|
const { register, handleSubmit, formState } = useForm({
|
|
43
|
-
resolver:
|
|
43
|
+
resolver: zodResolver(SignUpFormSchema),
|
|
44
44
|
defaultValues: { name: '', email: '', password: '' }
|
|
45
45
|
})
|
|
46
46
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { zodResolver } from '@hookform/resolvers/zod'
|
|
2
2
|
import { Link, createFileRoute, useRouter } from '@tanstack/react-router'
|
|
3
3
|
import { useForm } from 'react-hook-form'
|
|
4
4
|
import * as z from 'zod/mini'
|
|
@@ -41,7 +41,7 @@ function SignInPage() {
|
|
|
41
41
|
const hydrated = useHydrated()
|
|
42
42
|
|
|
43
43
|
const { register, handleSubmit, formState } = useForm({
|
|
44
|
-
resolver:
|
|
44
|
+
resolver: zodResolver(SignInFormSchema),
|
|
45
45
|
defaultValues: { email: '', password: '' }
|
|
46
46
|
})
|
|
47
47
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { zodResolver } from '@hookform/resolvers/zod'
|
|
2
2
|
import { Link, createFileRoute, useRouter } from '@tanstack/react-router'
|
|
3
3
|
import { useForm } from 'react-hook-form'
|
|
4
4
|
import * as z from 'zod/mini'
|
|
@@ -44,7 +44,7 @@ function SignUpPage() {
|
|
|
44
44
|
const hydrated = useHydrated()
|
|
45
45
|
|
|
46
46
|
const { register, handleSubmit, formState } = useForm({
|
|
47
|
-
resolver:
|
|
47
|
+
resolver: zodResolver(SignUpFormSchema),
|
|
48
48
|
defaultValues: { name: '', email: '', password: '' }
|
|
49
49
|
})
|
|
50
50
|
|
package/github-config.js
CHANGED
|
@@ -103,12 +103,6 @@ updates:
|
|
|
103
103
|
groups:
|
|
104
104
|
minor-and-patch:
|
|
105
105
|
update-types: [minor, patch]
|
|
106
|
-
# vite is pinned: 8.2+ collapses router code splitting and grows the entry chunk
|
|
107
|
-
ignore:
|
|
108
|
-
- dependency-name: vite
|
|
109
|
-
update-types:
|
|
110
|
-
- version-update:semver-major
|
|
111
|
-
- version-update:semver-minor
|
|
112
106
|
- package-ecosystem: github-actions
|
|
113
107
|
directory: /
|
|
114
108
|
schedule:
|
package/package.json
CHANGED
|
@@ -64,7 +64,7 @@ on mount and therefore also listens for `storage`.
|
|
|
64
64
|
|
|
65
65
|
## Forms
|
|
66
66
|
|
|
67
|
-
react-hook-form + `
|
|
67
|
+
react-hook-form + `zodResolver` (zod/mini schemas), with shadcn `Field*`
|
|
68
68
|
primitives. `routes/sign-in.tsx` is the reference implementation;
|
|
69
69
|
`routes/_authenticated/notes/index.tsx` shows a form that feeds a mutation and resets.
|
|
70
70
|
|
|
@@ -73,7 +73,7 @@
|
|
|
73
73
|
"paths": [
|
|
74
74
|
{
|
|
75
75
|
"name": "zod",
|
|
76
|
-
"message": "Import from 'zod/mini'. Mixing the two ships both builds (+15.8 kB gzip). For forms use
|
|
76
|
+
"message": "Import from 'zod/mini'. Mixing the two ships both builds (+15.8 kB gzip). For forms use zodResolver (typed against zod/v4/core, works with mini)."
|
|
77
77
|
},
|
|
78
78
|
{
|
|
79
79
|
"name": "react",
|
|
@@ -56,6 +56,4 @@ Dev-only code must put `import.meta.env.DEV` **first** in the condition so Vite
|
|
|
56
56
|
|
|
57
57
|
`dependencies` holds only what's imported as JS from `src/` (runtime); CSS-only imports and other build inputs stay dev deps. CLIs and build plugins are dev deps so `bun audit --prod` stays readable. `trustedDependencies: []` — don't add entries without checking what the script does.
|
|
58
58
|
|
|
59
|
-
`vite` is **pinned to 8.1.x** (8.1.5). Every 8.2.x and 8.3.0-beta.0 collapse router `autoCodeSplitting` from 13 chunks to 10 and grow the entry from 81 to 115 kB gzip (measured on 8.2.2). Re-test before unpinning.
|
|
60
|
-
|
|
61
59
|
</important>
|
|
@@ -9,10 +9,9 @@
|
|
|
9
9
|
"lint": "oxlint --type-aware",
|
|
10
10
|
"lint:fix": "oxlint --fix --disable-nested-config",
|
|
11
11
|
"typecheck": "tsc -b",
|
|
12
|
-
"doctor": "react-doctor . --no-score --no-supply-chain
|
|
12
|
+
"doctor": "react-doctor . --no-score --no-supply-chain",
|
|
13
13
|
"test": "vitest run",
|
|
14
14
|
"test:e2e": "playwright test",
|
|
15
|
-
"test:e2e:ui": "playwright test --ui",
|
|
16
15
|
"format": "oxfmt",
|
|
17
16
|
"format:check": "oxfmt --check",
|
|
18
17
|
"preview": "vite preview",
|
|
@@ -39,7 +38,6 @@
|
|
|
39
38
|
"@fontsource-variable/inter": "^5.3.0",
|
|
40
39
|
"@playwright/test": "^1.63.0",
|
|
41
40
|
"@rolldown/plugin-babel": "^0.2.3",
|
|
42
|
-
"@standard-schema/spec": "^1.1.0",
|
|
43
41
|
"@tailwindcss/vite": "^4.3.3",
|
|
44
42
|
"@tanstack/router-plugin": "^1.168.35",
|
|
45
43
|
"@testing-library/jest-dom": "^7.0.1",
|
|
@@ -58,7 +56,7 @@
|
|
|
58
56
|
"tailwindcss": "^4.3.3",
|
|
59
57
|
"tw-animate-css": "^1.4.0",
|
|
60
58
|
"typescript": "^7.0.2",
|
|
61
|
-
"vite": "8.
|
|
59
|
+
"vite": "^8.3.0",
|
|
62
60
|
"vitest": "^5.0.0"
|
|
63
61
|
},
|
|
64
62
|
"engines": {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { zodResolver } from '@hookform/resolvers/zod'
|
|
2
2
|
import { Link, createFileRoute } from '@tanstack/react-router'
|
|
3
3
|
import { Trash2 } from 'lucide-react'
|
|
4
4
|
import { useForm } from 'react-hook-form'
|
|
@@ -28,7 +28,7 @@ function NotesPage() {
|
|
|
28
28
|
reset,
|
|
29
29
|
formState: { errors }
|
|
30
30
|
} = useForm({
|
|
31
|
-
resolver:
|
|
31
|
+
resolver: zodResolver(CreateNoteSchema),
|
|
32
32
|
defaultValues: { title: '', body: '' }
|
|
33
33
|
})
|
|
34
34
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { zodResolver } from '@hookform/resolvers/zod'
|
|
2
2
|
import { createFileRoute } from '@tanstack/react-router'
|
|
3
3
|
import { useForm } from 'react-hook-form'
|
|
4
4
|
import * as z from 'zod/mini'
|
|
@@ -36,7 +36,7 @@ function SignInPage() {
|
|
|
36
36
|
handleSubmit,
|
|
37
37
|
formState: { errors }
|
|
38
38
|
} = useForm({
|
|
39
|
-
resolver:
|
|
39
|
+
resolver: zodResolver(SignInFormSchema),
|
|
40
40
|
defaultValues: demoCredentials
|
|
41
41
|
})
|
|
42
42
|
|
|
@@ -64,7 +64,7 @@ on mount and therefore also listens for `storage`.
|
|
|
64
64
|
|
|
65
65
|
## Forms
|
|
66
66
|
|
|
67
|
-
react-hook-form + `
|
|
67
|
+
react-hook-form + `zodResolver` (zod/mini schemas), with shadcn `Field*`
|
|
68
68
|
primitives. `routes/sign-in.tsx` is the reference implementation;
|
|
69
69
|
`routes/_authenticated/notes/index.tsx` shows a form that feeds a mutation and resets.
|
|
70
70
|
|
|
@@ -73,7 +73,7 @@
|
|
|
73
73
|
"paths": [
|
|
74
74
|
{
|
|
75
75
|
"name": "zod",
|
|
76
|
-
"message": "Import from 'zod/mini'. Mixing the two ships both builds (+15.8 kB gzip). For forms use
|
|
76
|
+
"message": "Import from 'zod/mini'. Mixing the two ships both builds (+15.8 kB gzip). For forms use zodResolver (typed against zod/v4/core, works with mini)."
|
|
77
77
|
},
|
|
78
78
|
{
|
|
79
79
|
"name": "react",
|
|
@@ -56,6 +56,4 @@ Dev-only code must put `import.meta.env.DEV` **first** in the condition so Vite
|
|
|
56
56
|
|
|
57
57
|
`dependencies` holds only what's imported as JS from `src/` (runtime); CSS-only imports and other build inputs stay dev deps. CLIs and build plugins are dev deps so `bun audit --prod` stays readable. `trustedDependencies: []` — don't add entries without checking what the script does.
|
|
58
58
|
|
|
59
|
-
`vite` is **pinned to 8.1.x** (8.1.5). Every 8.2.x and 8.3.0-beta.0 collapse router `autoCodeSplitting` from 13 chunks to 10 and grow the entry from 81 to 115 kB gzip (measured on 8.2.2). Re-test before unpinning.
|
|
60
|
-
|
|
61
59
|
</important>
|
|
@@ -9,10 +9,9 @@
|
|
|
9
9
|
"lint": "oxlint --type-aware",
|
|
10
10
|
"lint:fix": "oxlint --fix --disable-nested-config",
|
|
11
11
|
"typecheck": "tsc -b",
|
|
12
|
-
"doctor": "react-doctor . --no-score --no-supply-chain
|
|
12
|
+
"doctor": "react-doctor . --no-score --no-supply-chain",
|
|
13
13
|
"test": "vitest run",
|
|
14
14
|
"test:e2e": "playwright test",
|
|
15
|
-
"test:e2e:ui": "playwright test --ui",
|
|
16
15
|
"format": "oxfmt",
|
|
17
16
|
"format:check": "oxfmt --check",
|
|
18
17
|
"preview": "vite preview",
|
|
@@ -41,7 +40,6 @@
|
|
|
41
40
|
"@fontsource-variable/inter": "^5.3.0",
|
|
42
41
|
"@playwright/test": "^1.63.0",
|
|
43
42
|
"@rolldown/plugin-babel": "^0.2.3",
|
|
44
|
-
"@standard-schema/spec": "^1.1.0",
|
|
45
43
|
"@tailwindcss/vite": "^4.3.3",
|
|
46
44
|
"@testing-library/jest-dom": "^7.0.1",
|
|
47
45
|
"@testing-library/react": "^16.3.3",
|
|
@@ -59,7 +57,7 @@
|
|
|
59
57
|
"tailwindcss": "^4.3.3",
|
|
60
58
|
"tw-animate-css": "^1.4.0",
|
|
61
59
|
"typescript": "^7.0.2",
|
|
62
|
-
"vite": "8.
|
|
60
|
+
"vite": "^8.3.0",
|
|
63
61
|
"vitest": "^5.0.0"
|
|
64
62
|
},
|
|
65
63
|
"engines": {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { zodResolver } from '@hookform/resolvers/zod'
|
|
2
2
|
import { Link, createFileRoute } from '@tanstack/react-router'
|
|
3
3
|
import { Trash2 } from 'lucide-react'
|
|
4
4
|
import { useForm } from 'react-hook-form'
|
|
@@ -28,7 +28,7 @@ function NotesPage() {
|
|
|
28
28
|
reset,
|
|
29
29
|
formState: { errors }
|
|
30
30
|
} = useForm({
|
|
31
|
-
resolver:
|
|
31
|
+
resolver: zodResolver(CreateNoteSchema),
|
|
32
32
|
defaultValues: { title: '', body: '' }
|
|
33
33
|
})
|
|
34
34
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { zodResolver } from '@hookform/resolvers/zod'
|
|
2
2
|
import { createFileRoute } from '@tanstack/react-router'
|
|
3
3
|
import { useForm } from 'react-hook-form'
|
|
4
4
|
import * as z from 'zod/mini'
|
|
@@ -41,7 +41,7 @@ function SignInPage() {
|
|
|
41
41
|
handleSubmit,
|
|
42
42
|
formState: { errors, isSubmitting }
|
|
43
43
|
} = useForm({
|
|
44
|
-
resolver:
|
|
44
|
+
resolver: zodResolver(SignInFormSchema),
|
|
45
45
|
defaultValues: demoCredentials
|
|
46
46
|
})
|
|
47
47
|
|