Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 32 additions & 3 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,23 +7,52 @@
"source.fixAll.biome": "explicit"
},
"typescript.tsdk": "node_modules/typescript/lib",
"typescript.preferences.includePackageJsonAutoImports": "off",
"typescript.suggest.autoImports": true,
"typescript.suggest.enabled": true,
"typescript.validate.enable": true,
"typescript.preferences.importModuleSpecifier": "relative",
"typescript.inlayHints.parameterNames.enabled": "all",
"typescript.inlayHints.variableTypes.enabled": true,
"typescript.inlayHints.functionLikeReturnTypes.enabled": true,
"search.exclude": {
"**/node_modules": true,
"**/bower_components": true,
"**/*.code-search": true,
"**/dist": true,
"**/.next": true,
"**/.turbo": true,
"**/coverage": true,
"**/storybook-static": true,
"**/portal": true
},
"[typescript]": {
"editor.defaultFormatter": "biomejs.biome"
"files.exclude": {
"**/.turbo": true,
"**/.next": true,
"**/coverage": true,
"**/storybook-static": true
},
"files.watcherExclude": {
"**/node_modules/**": true,
"**/.turbo/**": true,
"**/.next/**": true,
"**/dist/**": true,
"**/coverage/**": true,
"**/storybook-static/**": true
},
"[typescriptreact]": {
"editor.defaultFormatter": "biomejs.biome"
},
"[jsonc]": {
"[typescript]": {
"editor.defaultFormatter": "biomejs.biome"
},
"[javascript]": {
"editor.defaultFormatter": "biomejs.biome"
},
"[json]": {
"editor.defaultFormatter": "biomejs.biome"
},
"[jsonc]": {
"editor.defaultFormatter": "biomejs.biome"
}
}
30 changes: 15 additions & 15 deletions apps/backend/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@
"private": true,
"type": "module",
"scripts": {
"build": "cross-env NODE_OPTIONS=--no-deprecation next build",
"check-types": "tsc --noEmit",
"dev": "cross-env NODE_OPTIONS=--no-deprecation next dev --port 3000",
"build": "next build",
"check-types": "tsc --noEmit --incremental",
"dev": "next dev --port 3000",
"start": "next start --port 3000",
"generate:importmap": "cross-env NODE_OPTIONS=--no-deprecation payload generate:importmap",
"generate:types": "cross-env NODE_OPTIONS=--no-deprecation payload generate:types",
"payload": "cross-env NODE_OPTIONS=--no-deprecation payload",
"generate:importmap": "payload generate:importmap",
"generate:types": "payload generate:types",
"payload": "payload",
"test": "cross-env NODE_ENV=test vitest run",
"test:watch": "cross-env NODE_ENV=test vitest",
"test:coverage": "cross-env NODE_ENV=test vitest run --coverage",
Expand All @@ -26,24 +26,24 @@
"@types/nodemailer": "6.4.19",
"bcryptjs": "3.0.2",
"googleapis": "150.0.1",
"http-status-codes": "2.3.0",
"http-status-codes": "catalog:",
"jsonwebtoken": "9.0.2",
"next": "15.3.5",
"next": "catalog:",
"nodemailer": "7.0.5",
"payload": "3.45.0",
"react": "19.1.1",
"react-dom": "19.1.1",
"react": "catalog:",
"react-dom": "catalog:",
"sharp": "0.34.3",
"zod": "3.25.76"
"zod": "catalog:"
},
"devDependencies": {
"@repo/shared": "workspace:*",
"@repo/test-config": "workspace:*",
"@repo/typescript-config": "workspace:*",
"@types/jsonwebtoken": "9.0.9",
"@types/node": "22.15.21",
"@types/react": "19.1.5",
"@types/react-dom": "19.1.5",
"typescript": "5.9.2"
"@types/node": "catalog:",
"@types/react": "catalog:",
"@types/react-dom": "catalog:",
"typescript": "catalog:"
}
}
20 changes: 19 additions & 1 deletion apps/frontend/next.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ const config = (async () => {
if (env === "development") {
await setupDevPlatform()
}

const remotePatterns: RemotePattern[] = [
// TODO: remove once actual images implemented
{
Expand All @@ -31,8 +32,25 @@ const config = (async () => {
images: {
remotePatterns,
},
// Need this to allow static site generation to work with SSG hosting
trailingSlash: true,
experimental: {
// Better tree shaking
optimizePackageImports: ["@yamada-ui/react", "@yamada-ui/lucide", "@tanstack/react-query"],
// Reduce memory usage during build
webpackBuildWorker: true,
},
turbopack: {
rules: {
"*.svg": {
loaders: ["@svgr/webpack"],
as: "*.js",
},
},
},
// Compiler optimizations
compiler: {
removeConsole: process.env.NODE_ENV === "production",
},
}

return nextConfig
Expand Down
38 changes: 19 additions & 19 deletions apps/frontend/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
"version": "0.1.0",
"private": true,
"scripts": {
"check-types": "tsc --noEmit",
"dev": "cross-env NODE_OPTIONS=--no-deprecation next dev --turbopack --port=3001",
"build": "cross-env NODE_ENV=production NODE_OPTIONS=--no-deprecation next build",
"check-types": "tsc --noEmit --incremental",
"dev": "next dev --turbopack --port=3001",
"build": "cross-env NODE_ENV=production next build",
"start": "next start --port=3001",
"pages:build": "pnpx @cloudflare/next-on-pages",
"preview": "pnpm run pages:build && wrangler pages dev",
Expand All @@ -18,29 +18,29 @@
"test:ui": "cross-env NODE_ENV=test vitest --ui --coverage"
},
"dependencies": {
"@hookform/resolvers": "5.1.1",
"@hookform/resolvers": "catalog:",
"@repo/shared": "workspace:*",
"@repo/theme": "workspace:*",
"@repo/ui": "workspace:*",
"@tanstack/react-query": "5.81.5",
"@yamada-ui/lucide": "1.10.5",
"@yamada-ui/react": "1.7.8",
"dayjs": "1.11.18",
"http-status-codes": "2.3.0",
"next": "15.3.5",
"nuqs": "2.4.3",
"react": "19.1.1",
"react-dom": "19.1.1",
"react-hook-form": "7.60.0",
"zod": "3.25.76"
"@tanstack/react-query": "catalog:",
"@yamada-ui/lucide": "catalog:",
"@yamada-ui/react": "catalog:",
"dayjs": "catalog:",
"http-status-codes": "catalog:",
"next": "catalog:",
"nuqs": "catalog:",
"react": "catalog:",
"react-dom": "catalog:",
"react-hook-form": "catalog:",
"zod": "catalog:"
},
"devDependencies": {
"@cloudflare/next-on-pages": "1.13.12",
"@repo/test-config": "workspace:*",
"@repo/typescript-config": "workspace:*",
"@types/node": "22.15.21",
"@types/react": "19.1.5",
"@types/react-dom": "19.1.5",
"typescript": "5.9.2"
"@types/node": "catalog:",
"@types/react": "catalog:",
"@types/react-dom": "catalog:",
"typescript": "catalog:"
}
}
2 changes: 1 addition & 1 deletion apps/frontend/src/components/ErrorBoundary.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ export class ErrorBoundary extends React.Component<ErrorBoundaryProps, ErrorBoun
return { hasError: true }
}

render() {
override render() {
if (this.state.hasError) {
// You can render any custom fallback UI
return this.props.fallback
Expand Down
2 changes: 2 additions & 0 deletions apps/frontend/src/components/client/auth/RegisterSection.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,9 @@ export const RegisterSection = () => {
status: "success",
})
open()
return { success: true }
}
return { error: "Failed to send verification code" }
} catch (error) {
return {
error: error instanceof Error ? error.message : "Login failed",
Expand Down
3 changes: 3 additions & 0 deletions cspell.json
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@
"guldo",
"Hiragino",
"Hiwa",
"hookform",
"horizontalrule",
"HTMLUI",
"Hydrateable",
Expand All @@ -81,6 +82,7 @@
"linktr",
"linktree",
"Linktree",
"lucide",
"maximus",
"Meiryo",
"Menlo",
Expand Down Expand Up @@ -120,6 +122,7 @@
"superfly",
"suscipit",
"svgs",
"tanstack",
"taroj",
"tempor",
"tincidunt",
Expand Down
56 changes: 37 additions & 19 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,32 +9,32 @@
"pnpm": "^10.0.0"
},
"scripts": {
"build": "turbo run build",
"check-types": "turbo run check-types",
"dev": "turbo run dev",
"build": "cross-env NODE_OPTIONS=--max-old-space-size=8192 turbo run build",
"check-types": "cross-env NODE_OPTIONS=--max-old-space-size=4096 turbo run check-types",
"dev": "cross-env NODE_OPTIONS='--max-old-space-size=4096 --no-deprecation' turbo run dev",
"clean": "pnpm -r --parallel exec rimraf dist .turbo *.log coverage node_modules .next storybook-static .wrangler",
"clean:all": "pnpm clean && pnpm rimraf .turbo .next .vercel .wrangler dist storybook-static *.log coverage trace node_modules",
"generate:importmap": "turbo run generate:importmap",
"generate:types": "turbo run generate:types",
"payload": "turbo run payload",
"generate:importmap": "cross-env NODE_OPTIONS=--max-old-space-size=4096 turbo run generate:importmap",
"generate:types": "cross-env NODE_OPTIONS=--max-old-space-size=4096 turbo run generate:types",
"payload": "cross-env NODE_OPTIONS='--max-old-space-size=4096 --no-deprecation' turbo run payload",
"lint": "biome check .",
"prepare": "lefthook install",
"spell": "cspell \"**/*.{js,jsx,mjs,cjs,d.cts,d.mts,ts,tsx,md,mdx,json,yml,yaml}\" --cache --cache-strategy=content --cache-location=.cspellcache",
"start": "turbo run start",
"storybook": "pnpm --prefix=packages/ui storybook",
"storybook:build": "turbo run storybook:build",
"test": "turbo run test",
"test:watch": "turbo run test:watch",
"test:coverage": "turbo run test:coverage",
"test:coverage:watch": "turbo run test:coverage:watch",
"test:ui": "turbo run test:ui",
"merge": "turbo run merge",
"start": "cross-env NODE_OPTIONS=--max-old-space-size=4096 turbo run start",
"storybook": "cross-env NODE_OPTIONS=--max-old-space-size=4096 pnpm --prefix=packages/ui storybook",
"storybook:build": "cross-env NODE_OPTIONS=--max-old-space-size=8192 turbo run storybook:build",
"test": "cross-env NODE_OPTIONS=--max-old-space-size=4096 turbo run test",
"test:watch": "cross-env NODE_OPTIONS=--max-old-space-size=4096 turbo run test:watch",
"test:coverage": "cross-env NODE_OPTIONS=--max-old-space-size=4096 turbo run test:coverage",
"test:coverage:watch": "cross-env NODE_OPTIONS=--max-old-space-size=4096 turbo run test:coverage:watch",
"test:ui": "cross-env NODE_OPTIONS=--max-old-space-size=4096 turbo run test:ui",
"merge": "cross-env NODE_OPTIONS=--max-old-space-size=4096 turbo run merge",
"theme": "yamada-cli tokens ./packages/theme/src",
"postinstall": "pnpm theme",
"commitlint": "commitlint --edit",
"frontend": "turbo run -F frontend --ui=stream",
"backend": "turbo run -F backend --ui=stream",
"ui": "turbo run -F ui --ui=stream"
"frontend": "cross-env NODE_OPTIONS=--max-old-space-size=4096 turbo run -F frontend --ui=stream",
"backend": "cross-env NODE_OPTIONS=--max-old-space-size=4096 turbo run -F backend --ui=stream",
"ui": "cross-env NODE_OPTIONS=--max-old-space-size=4096 turbo run -F ui --ui=stream"
},
"dependencies": {
"cross-env": "7.0.3"
Expand Down Expand Up @@ -81,7 +81,25 @@
"patchedDependencies": {
"storybook-dark-mode": "patches/storybook-dark-mode.patch",
"@storybook/[email protected]": "patches/@[email protected]"
}
},
"packageManager": "[email protected]",
"overrides": {
"@types/node": "22.15.21"
},
"peerDependencyRules": {
"allowedVersions": {
"react": "19",
"react-dom": "19"
},
"ignoreMissing": [
"@types/react",
"@types/react-dom"
]
},
"nodeLinker": "isolated",
"enableModulesDir": true,
"dedupe-peer-dependents": true,
"strict-peer-dependencies": false
},
"volta": {
"node": "22.19.0"
Expand Down
8 changes: 4 additions & 4 deletions packages/shared/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,12 @@
},
"devDependencies": {
"@repo/typescript-config": "workspace:*",
"zod": "3.25.76"
"zod": "catalog:"
},
"dependencies": {
"@tanstack/react-query": "5.81.5",
"@tanstack/react-query": "catalog:",
"date-fns": "4.1.0",
"dayjs": "1.11.18",
"next": "15.3.5"
"dayjs": "catalog:",
"next": "catalog:"
}
}
2 changes: 1 addition & 1 deletion packages/theme/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,6 @@
},
"devDependencies": {
"@repo/typescript-config": "workspace:*",
"typescript": "5.9.2"
"typescript": "catalog:"
}
}
22 changes: 20 additions & 2 deletions packages/typescript-config/base.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,25 @@
"resolveJsonModule": true,
"skipLibCheck": true,
"strict": true,
"target": "ES2022"
"target": "ES2022",
"tsBuildInfoFile": ".tsbuildinfo",
"assumeChangesOnlyAffectDirectDependencies": true,
"forceConsistentCasingInFileNames": true,
"verbatimModuleSyntax": false,
"exactOptionalPropertyTypes": false,
"noImplicitReturns": true,
"noFallthroughCasesInSwitch": true,
"noUncheckedIndexedAccess": false,
"noImplicitOverride": true
},
"exclude": ["node_modules"]
"exclude": [
"node_modules",
"**/node_modules",
"**/.next",
"**/dist",
"**/build",
"**/coverage",
"**/.turbo",
"**/storybook-static"
]
}
Loading