diff --git a/.vscode/settings.json b/.vscode/settings.json index 211b3ee6c..e9a8bf2b5 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -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" } } diff --git a/apps/backend/package.json b/apps/backend/package.json index a8cf2e922..be40c3696 100644 --- a/apps/backend/package.json +++ b/apps/backend/package.json @@ -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", @@ -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:" } } diff --git a/apps/frontend/next.config.ts b/apps/frontend/next.config.ts index bcc7eff1e..76f566e18 100644 --- a/apps/frontend/next.config.ts +++ b/apps/frontend/next.config.ts @@ -8,6 +8,7 @@ const config = (async () => { if (env === "development") { await setupDevPlatform() } + const remotePatterns: RemotePattern[] = [ // TODO: remove once actual images implemented { @@ -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 diff --git a/apps/frontend/package.json b/apps/frontend/package.json index 39f056d30..486a9e4ee 100644 --- a/apps/frontend/package.json +++ b/apps/frontend/package.json @@ -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", @@ -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:" } } diff --git a/apps/frontend/src/components/ErrorBoundary.tsx b/apps/frontend/src/components/ErrorBoundary.tsx index 2b8e54898..30693d0b3 100644 --- a/apps/frontend/src/components/ErrorBoundary.tsx +++ b/apps/frontend/src/components/ErrorBoundary.tsx @@ -33,7 +33,7 @@ export class ErrorBoundary extends React.Component { status: "success", }) open() + return { success: true } } + return { error: "Failed to send verification code" } } catch (error) { return { error: error instanceof Error ? error.message : "Login failed", diff --git a/cspell.json b/cspell.json index 164341662..89b777973 100644 --- a/cspell.json +++ b/cspell.json @@ -60,6 +60,7 @@ "guldo", "Hiragino", "Hiwa", + "hookform", "horizontalrule", "HTMLUI", "Hydrateable", @@ -81,6 +82,7 @@ "linktr", "linktree", "Linktree", + "lucide", "maximus", "Meiryo", "Menlo", @@ -120,6 +122,7 @@ "superfly", "suscipit", "svgs", + "tanstack", "taroj", "tempor", "tincidunt", diff --git a/package.json b/package.json index a547b409e..8033a8796 100644 --- a/package.json +++ b/package.json @@ -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" @@ -81,7 +81,25 @@ "patchedDependencies": { "storybook-dark-mode": "patches/storybook-dark-mode.patch", "@storybook/addon-queryparams@7.0.1": "patches/@storybook__addon-queryparams@7.0.1.patch" - } + }, + "packageManager": "pnpm@10.15.1", + "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" diff --git a/packages/shared/package.json b/packages/shared/package.json index bdf259a35..ccb5d739b 100644 --- a/packages/shared/package.json +++ b/packages/shared/package.json @@ -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:" } } diff --git a/packages/theme/package.json b/packages/theme/package.json index db0b7c496..8035880b3 100644 --- a/packages/theme/package.json +++ b/packages/theme/package.json @@ -19,6 +19,6 @@ }, "devDependencies": { "@repo/typescript-config": "workspace:*", - "typescript": "5.9.2" + "typescript": "catalog:" } } diff --git a/packages/typescript-config/base.json b/packages/typescript-config/base.json index 20e6d7e3e..a904591dd 100644 --- a/packages/typescript-config/base.json +++ b/packages/typescript-config/base.json @@ -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" + ] } diff --git a/packages/ui/package.json b/packages/ui/package.json index cc3c3b954..48e7d20c8 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -24,25 +24,25 @@ "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:*", "@storybook/nextjs-vite": "9.1.3", - "@tanstack/react-query": "5.81.5", - "@tanstack/react-query-devtools": "5.81.5", - "@yamada-ui/calendar": "1.8.18", - "@yamada-ui/carousel": "2.1.13", - "@yamada-ui/lucide": "1.10.5", - "@yamada-ui/react": "1.7.8", - "@yamada-ui/table": "1.3.15", - "dayjs": "1.11.18", - "next": "15.3.5", - "nuqs": "2.4.3", - "react": "19.1.1", - "react-dom": "19.1.1", - "react-hook-form": "7.60.0", + "@tanstack/react-query": "catalog:", + "@tanstack/react-query-devtools": "catalog:", + "@yamada-ui/calendar": "catalog:", + "@yamada-ui/carousel": "catalog:", + "@yamada-ui/lucide": "catalog:", + "@yamada-ui/react": "catalog:", + "@yamada-ui/table": "catalog:", + "dayjs": "catalog:", + "next": "catalog:", + "nuqs": "catalog:", + "react": "catalog:", + "react-dom": "catalog:", + "react-hook-form": "catalog:", "storybook": "9.1.3", - "zod": "3.25.76" + "zod": "catalog:" }, "devDependencies": { "@mdx-js/react": "3.1.0", @@ -53,10 +53,10 @@ "@storybook/addon-queryparams": "7.0.1", "@storybook/react": "9.1.3", "@turbo/gen": "2.5.3", - "@types/node": "22.15.21", - "@types/react": "19.1.5", - "@types/react-dom": "19.1.5", + "@types/node": "catalog:", + "@types/react": "catalog:", + "@types/react-dom": "catalog:", "storybook-dark-mode": "4.0.2", - "typescript": "5.9.2" + "typescript": "catalog:" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6157b89f9..9d32f0c4e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,6 +4,69 @@ settings: autoInstallPeers: true excludeLinksFromLockfile: false +catalogs: + default: + '@hookform/resolvers': + specifier: 5.1.1 + version: 5.1.1 + '@tanstack/react-query': + specifier: 5.81.5 + version: 5.81.5 + '@tanstack/react-query-devtools': + specifier: 5.81.5 + version: 5.81.5 + '@types/react': + specifier: 19.1.5 + version: 19.1.5 + '@types/react-dom': + specifier: 19.1.5 + version: 19.1.5 + '@yamada-ui/calendar': + specifier: 1.8.18 + version: 1.8.18 + '@yamada-ui/carousel': + specifier: 2.1.13 + version: 2.1.13 + '@yamada-ui/lucide': + specifier: 1.10.5 + version: 1.10.5 + '@yamada-ui/react': + specifier: 1.7.8 + version: 1.7.8 + '@yamada-ui/table': + specifier: 1.3.15 + version: 1.3.15 + dayjs: + specifier: 1.11.18 + version: 1.11.18 + http-status-codes: + specifier: 2.3.0 + version: 2.3.0 + next: + specifier: 15.3.5 + version: 15.3.5 + nuqs: + specifier: 2.4.3 + version: 2.4.3 + react: + specifier: 19.1.1 + version: 19.1.1 + react-dom: + specifier: 19.1.1 + version: 19.1.1 + react-hook-form: + specifier: 7.60.0 + version: 7.60.0 + typescript: + specifier: 5.9.2 + version: 5.9.2 + zod: + specifier: 3.25.76 + version: 3.25.76 + +overrides: + '@types/node': 22.15.21 + patchedDependencies: '@storybook/addon-queryparams@7.0.1': hash: 15f9265e38fb54c560e44fefe4babead295e523eda364d5a93faf8f55b5dd35c @@ -123,13 +186,13 @@ importers: specifier: 150.0.1 version: 150.0.1 http-status-codes: - specifier: 2.3.0 + specifier: 'catalog:' version: 2.3.0 jsonwebtoken: specifier: 9.0.2 version: 9.0.2 next: - specifier: 15.3.5 + specifier: 'catalog:' version: 15.3.5(@babel/core@7.28.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(sass@1.77.4) nodemailer: specifier: 7.0.5 @@ -138,16 +201,16 @@ importers: specifier: 3.45.0 version: 3.45.0(graphql@16.11.0)(typescript@5.9.2) react: - specifier: 19.1.1 + specifier: 'catalog:' version: 19.1.1 react-dom: - specifier: 19.1.1 + specifier: 'catalog:' version: 19.1.1(react@19.1.1) sharp: specifier: 0.34.3 version: 0.34.3 zod: - specifier: 3.25.76 + specifier: 'catalog:' version: 3.25.76 devDependencies: '@repo/shared': @@ -166,19 +229,19 @@ importers: specifier: 22.15.21 version: 22.15.21 '@types/react': - specifier: 19.1.5 + specifier: 'catalog:' version: 19.1.5 '@types/react-dom': - specifier: 19.1.5 + specifier: 'catalog:' version: 19.1.5(@types/react@19.1.5) typescript: - specifier: 5.9.2 + specifier: 'catalog:' version: 5.9.2 apps/frontend: dependencies: '@hookform/resolvers': - specifier: 5.1.1 + specifier: 'catalog:' version: 5.1.1(react-hook-form@7.60.0(react@19.1.1)) '@repo/shared': specifier: workspace:* @@ -190,37 +253,37 @@ importers: specifier: workspace:* version: link:../../packages/ui '@tanstack/react-query': - specifier: 5.81.5 + specifier: 'catalog:' version: 5.81.5(react@19.1.1) '@yamada-ui/lucide': - specifier: 1.10.5 + specifier: 'catalog:' version: 1.10.5(@types/react@19.1.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@yamada-ui/react': - specifier: 1.7.8 + specifier: 'catalog:' version: 1.7.8(@emotion/is-prop-valid@1.3.1)(@emotion/react@11.14.0(@types/react@19.1.5)(react@19.1.1))(@emotion/styled@11.11.0(@emotion/react@11.14.0(@types/react@19.1.5)(react@19.1.1))(@types/react@19.1.5)(react@19.1.1))(@types/react@19.1.5)(motion@12.5.0(@emotion/is-prop-valid@1.3.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react@19.1.1) dayjs: - specifier: 1.11.18 + specifier: 'catalog:' version: 1.11.18 http-status-codes: - specifier: 2.3.0 + specifier: 'catalog:' version: 2.3.0 next: - specifier: 15.3.5 + specifier: 'catalog:' version: 15.3.5(@babel/core@7.28.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(sass@1.77.4) nuqs: - specifier: 2.4.3 + specifier: 'catalog:' version: 2.4.3(next@15.3.5(@babel/core@7.28.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(sass@1.77.4))(react@19.1.1) react: - specifier: 19.1.1 + specifier: 'catalog:' version: 19.1.1 react-dom: - specifier: 19.1.1 + specifier: 'catalog:' version: 19.1.1(react@19.1.1) react-hook-form: - specifier: 7.60.0 + specifier: 'catalog:' version: 7.60.0(react@19.1.1) zod: - specifier: 3.25.76 + specifier: 'catalog:' version: 3.25.76 devDependencies: '@cloudflare/next-on-pages': @@ -236,35 +299,35 @@ importers: specifier: 22.15.21 version: 22.15.21 '@types/react': - specifier: 19.1.5 + specifier: 'catalog:' version: 19.1.5 '@types/react-dom': - specifier: 19.1.5 + specifier: 'catalog:' version: 19.1.5(@types/react@19.1.5) typescript: - specifier: 5.9.2 + specifier: 'catalog:' version: 5.9.2 packages/shared: dependencies: '@tanstack/react-query': - specifier: 5.81.5 + specifier: 'catalog:' version: 5.81.5(react@19.1.1) date-fns: specifier: 4.1.0 version: 4.1.0 dayjs: - specifier: 1.11.18 + specifier: 'catalog:' version: 1.11.18 next: - specifier: 15.3.5 + specifier: 'catalog:' version: 15.3.5(@babel/core@7.28.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(sass@1.77.4) devDependencies: '@repo/typescript-config': specifier: workspace:* version: link:../typescript-config zod: - specifier: 3.25.76 + specifier: 'catalog:' version: 3.25.76 packages/test-config: @@ -301,7 +364,7 @@ importers: specifier: workspace:* version: link:../typescript-config typescript: - specifier: 5.9.2 + specifier: 'catalog:' version: 5.9.2 packages/typescript-config: {} @@ -309,7 +372,7 @@ importers: packages/ui: dependencies: '@hookform/resolvers': - specifier: 5.1.1 + specifier: 'catalog:' version: 5.1.1(react-hook-form@7.60.0(react@19.1.1)) '@repo/shared': specifier: workspace:* @@ -321,49 +384,49 @@ importers: specifier: 9.1.3 version: 9.1.3(@babel/core@7.28.0)(next@15.3.5(@babel/core@7.28.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(sass@1.77.4))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(rollup@4.45.1)(storybook@9.1.3(@testing-library/dom@10.4.0)(prettier@3.6.2)(vite@6.3.5(@types/node@22.15.21)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.77.4)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)))(typescript@5.9.2)(vite@6.3.5(@types/node@22.15.21)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.77.4)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) '@tanstack/react-query': - specifier: 5.81.5 + specifier: 'catalog:' version: 5.81.5(react@19.1.1) '@tanstack/react-query-devtools': - specifier: 5.81.5 + specifier: 'catalog:' version: 5.81.5(@tanstack/react-query@5.81.5(react@19.1.1))(react@19.1.1) '@yamada-ui/calendar': - specifier: 1.8.18 + specifier: 'catalog:' version: 1.8.18(@emotion/is-prop-valid@1.3.1)(@types/react@19.1.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@yamada-ui/carousel': - specifier: 2.1.13 + specifier: 'catalog:' version: 2.1.13(@emotion/is-prop-valid@1.3.1)(@types/react@19.1.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@yamada-ui/lucide': - specifier: 1.10.5 + specifier: 'catalog:' version: 1.10.5(@types/react@19.1.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@yamada-ui/react': - specifier: 1.7.8 + specifier: 'catalog:' version: 1.7.8(@emotion/is-prop-valid@1.3.1)(@emotion/react@11.14.0(@types/react@19.1.5)(react@19.1.1))(@emotion/styled@11.11.0(@emotion/react@11.14.0(@types/react@19.1.5)(react@19.1.1))(@types/react@19.1.5)(react@19.1.1))(@types/react@19.1.5)(motion@12.5.0(@emotion/is-prop-valid@1.3.1)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@yamada-ui/table': - specifier: 1.3.15 + specifier: 'catalog:' version: 1.3.15(@emotion/is-prop-valid@1.3.1)(@types/react@19.1.5)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) dayjs: - specifier: 1.11.18 + specifier: 'catalog:' version: 1.11.18 next: - specifier: 15.3.5 + specifier: 'catalog:' version: 15.3.5(@babel/core@7.28.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(sass@1.77.4) nuqs: - specifier: 2.4.3 + specifier: 'catalog:' version: 2.4.3(next@15.3.5(@babel/core@7.28.0)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(sass@1.77.4))(react@19.1.1) react: - specifier: 19.1.1 + specifier: 'catalog:' version: 19.1.1 react-dom: - specifier: 19.1.1 + specifier: 'catalog:' version: 19.1.1(react@19.1.1) react-hook-form: - specifier: 7.60.0 + specifier: 'catalog:' version: 7.60.0(react@19.1.1) storybook: specifier: 9.1.3 version: 9.1.3(@testing-library/dom@10.4.0)(prettier@3.6.2)(vite@6.3.5(@types/node@22.15.21)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.77.4)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)) zod: - specifier: 3.25.76 + specifier: 'catalog:' version: 3.25.76 devDependencies: '@mdx-js/react': @@ -394,16 +457,16 @@ importers: specifier: 22.15.21 version: 22.15.21 '@types/react': - specifier: 19.1.5 + specifier: 'catalog:' version: 19.1.5 '@types/react-dom': - specifier: 19.1.5 + specifier: 'catalog:' version: 19.1.5(@types/react@19.1.5) storybook-dark-mode: specifier: 4.0.2 version: 4.0.2(patch_hash=0a175f4da810931f09a7da7d918d748d60813f3619c783a299f9cf0256df0145)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(storybook@9.1.3(@testing-library/dom@10.4.0)(prettier@3.6.2)(vite@6.3.5(@types/node@22.15.21)(jiti@2.4.2)(lightningcss@1.30.1)(sass@1.77.4)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))) typescript: - specifier: 5.9.2 + specifier: 'catalog:' version: 5.9.2 packages: @@ -2877,12 +2940,6 @@ packages: '@types/node-fetch@2.6.12': resolution: {integrity: sha512-8nneRWKCg3rMtF69nLQJnOYUcbafYeFSjqkw3jCRLsqkWFlHaoQrr5mXmofFGOx3DKn7UfmBMyov8ySvLRVldA==} - '@types/node@16.18.11': - resolution: {integrity: sha512-3oJbGBUWuS6ahSnEq1eN2XrCyf4YsWI8OyCvo7c64zQJNplk3mO84t53o8lfTk+2ji59g5ycfc6qQ3fdHliHuA==} - - '@types/node@18.19.119': - resolution: {integrity: sha512-d0F6m9itIPaKnrvEMlzE48UjwZaAnFW7Jwibacw9MNdqadjKNpUm9tfJYDwmShJmgqcoqYUX3EMKO1+RWiuuNg==} - '@types/node@22.15.21': resolution: {integrity: sha512-EV/37Td6c+MgKAbkcLG6vqZ2zEYHD7bvSrzqqs2RIhbA6w3x+Dqz8MZM3sP6kGTeLrdoOgKZe+Xja7tUB2DNkQ==} @@ -4355,7 +4412,7 @@ packages: resolution: {integrity: sha512-tJ1w35ZRUiM5FeTzT7DtYWAFFv37ZLqSRkGi2oeCK1gPhvaWjkAtfXvLmvE1pRfxxp9aQo6ba/Pvg1dKj05D4g==} engines: {node: '>=v18'} peerDependencies: - '@types/node': '*' + '@types/node': 22.15.21 cosmiconfig: '>=9' typescript: '>=5' @@ -7622,7 +7679,7 @@ packages: peerDependencies: '@swc/core': '>=1.2.50' '@swc/wasm': '>=1.2.50' - '@types/node': '*' + '@types/node': 22.15.21 typescript: '>=2.7' peerDependenciesMeta: '@swc/core': @@ -7636,7 +7693,7 @@ packages: peerDependencies: '@swc/core': '>=1.2.50' '@swc/wasm': '>=1.2.50' - '@types/node': '*' + '@types/node': 22.15.21 typescript: '>=2.7' peerDependenciesMeta: '@swc/core': @@ -7750,9 +7807,6 @@ packages: resolution: {integrity: sha512-ZPtzy0hu4cZjv3z5NW9gfKnNLjoz4y6uv4HlelAjDK7sY/xOkKZv9xK/WQpcsBB3jEybChz9DPC2U/+cusjJVQ==} engines: {node: '>=18'} - undici-types@5.26.5: - resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - undici-types@6.21.0: resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} @@ -7937,7 +7991,7 @@ packages: engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true peerDependencies: - '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 + '@types/node': 22.15.21 jiti: '>=1.21.0' less: '*' lightningcss: ^1.21.0 @@ -7979,7 +8033,7 @@ packages: peerDependencies: '@edge-runtime/vm': '*' '@types/debug': ^4.1.12 - '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 + '@types/node': 22.15.21 '@vitest/browser': 3.2.4 '@vitest/ui': 3.2.4 happy-dom: '*' @@ -11022,12 +11076,6 @@ snapshots: '@types/node': 22.15.21 form-data: 4.0.3 - '@types/node@16.18.11': {} - - '@types/node@18.19.119': - dependencies: - undici-types: 5.26.5 - '@types/node@22.15.21': dependencies: undici-types: 6.21.0 @@ -11170,7 +11218,7 @@ snapshots: '@edge-runtime/node-utils': 2.3.0 '@edge-runtime/primitives': 4.1.0 '@edge-runtime/vm': 3.2.0 - '@types/node': 16.18.11 + '@types/node': 22.15.21 '@vercel/build-utils': 10.6.6 '@vercel/error-utils': 2.0.3 '@vercel/nft': 0.29.2(rollup@4.45.1) @@ -11185,7 +11233,7 @@ snapshots: path-to-regexp: 6.1.0 path-to-regexp-updated: path-to-regexp@6.3.0 ts-morph: 12.0.0 - ts-node: 10.9.1(@swc/core@1.12.14)(@types/node@16.18.11)(typescript@4.9.5) + ts-node: 10.9.1(@swc/core@1.12.14)(@types/node@22.15.21)(typescript@4.9.5) typescript: 4.9.5 undici: 5.28.4 transitivePeerDependencies: @@ -16224,7 +16272,7 @@ snapshots: openai@4.104.0(ws@8.18.3)(zod@3.25.76): dependencies: - '@types/node': 18.19.119 + '@types/node': 22.15.21 '@types/node-fetch': 2.6.12 abort-controller: 3.0.0 agentkeepalive: 4.6.0 @@ -17396,14 +17444,14 @@ snapshots: '@ts-morph/common': 0.11.1 code-block-writer: 10.1.1 - ts-node@10.9.1(@swc/core@1.12.14)(@types/node@16.18.11)(typescript@4.9.5): + ts-node@10.9.1(@swc/core@1.12.14)(@types/node@22.15.21)(typescript@4.9.5): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 16.18.11 + '@types/node': 22.15.21 acorn: 8.15.0 acorn-walk: 8.3.4 arg: 4.1.3 @@ -17517,8 +17565,6 @@ snapshots: uint8array-extras@1.4.0: {} - undici-types@5.26.5: {} - undici-types@6.21.0: {} undici@5.28.4: diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 3e712d3ca..e191dcf6d 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,3 +1,39 @@ packages: - "apps/*" - - "packages/*" \ No newline at end of file + - "packages/*" + +catalogs: + react: + react: 19.1.1 + react-dom: 19.1.1 + next: 15.3.5 + + typescript: + typescript: 5.9.2 + "@types/node": 22.15.21 + "@types/react": 19.1.5 + "@types/react-dom": 19.1.5 + + forms: + "@hookform/resolvers": 5.1.1 + react-hook-form: 7.60.0 + zod: 3.25.76 + + data: + "@tanstack/react-query": 5.81.5 + "@tanstack/react-query-devtools": 5.81.5 + + ui: + "@yamada-ui/react": 1.7.8 + "@yamada-ui/lucide": 1.10.5 + "@yamada-ui/calendar": 1.8.18 + "@yamada-ui/carousel": 2.1.13 + "@yamada-ui/table": 1.3.15 + + utils: + dayjs: 1.11.18 + http-status-codes: 2.3.0 + nuqs: 2.4.3 + + dev: + cross-env: 7.0.3 \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json index da074ca99..6e3b50fba 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -9,6 +9,16 @@ "@repo/ui/*": ["packages/ui/*"], "@repo/theme/*": ["packages/theme/*"], "@repo/shared/*": ["packages/shared/*"] - } - } + }, + "types": ["vitest/globals"] + }, + "references": [ + { "path": "./packages/shared" }, + { "path": "./packages/ui" }, + { "path": "./packages/theme" }, + { "path": "./packages/typescript-config" }, + { "path": "./packages/test-config" }, + { "path": "./apps/frontend" }, + { "path": "./apps/backend" } + ] } diff --git a/turbo.json b/turbo.json index 3278157b5..95446c9b3 100644 --- a/turbo.json +++ b/turbo.json @@ -5,6 +5,7 @@ "remoteCache": { "enabled": true }, + "globalPassThroughEnv": ["NODE_OPTIONS", "NODE_ENV"], "tasks": { "build": { "cache": true,