- no-direct-socket-io: extend allowlist to cover apps/*/src/**/*.test.ts so the realtime-ping e2e integration test can import socket.io/socket.io-client directly; add two valid test cases to keep the rule's own test suite green - tsconfig.json (root): add root-level tsconfig with experimentalDecorators + emitDecoratorMetadata and no "include" so tsx 4.21.0's createFilesMatcher resolves decorator config for all workspace packages, not just web-next's own source tree - web-next dev script: pass TSX_TSCONFIG_PATH=../../tsconfig.json so the custom Node server uses the root tsconfig for all modules it loads - next.config.mjs: add @repo/core-events and @repo/core-realtime to transpilePackages so Next.js webpack can resolve their workspace source files - server.ts: replace static authContainer import with a dynamic import inside IRealtimeAuthenticator.authenticate so Inversify decorators are applied only after bindAll() has already populated the container All CI gates pass: lint (0 errors), typecheck, 20 tests (incl. realtime-ping e2e), boundaries (0 issues). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
58 lines
1.8 KiB
JSON
58 lines
1.8 KiB
JSON
{
|
|
"name": "@repo/web-next",
|
|
"private": true,
|
|
"version": "0.0.0",
|
|
"type": "module",
|
|
"scripts": {
|
|
"build": "echo 'Next.js build requires full environment — use pnpm dev or docker'",
|
|
"dev": "TSX_TSCONFIG_PATH=../../tsconfig.json tsx server.ts",
|
|
"start": "node --import tsx server.ts",
|
|
"lint": "eslint .",
|
|
"test": "vitest run --passWithNoTests",
|
|
"test:e2e": "playwright test",
|
|
"test:e2e:install": "playwright install --with-deps chromium",
|
|
"typecheck": "tsc --noEmit"
|
|
},
|
|
"dependencies": {
|
|
"@repo/auth": "workspace:*",
|
|
"@repo/blog": "workspace:*",
|
|
"@repo/core-api": "workspace:*",
|
|
"@repo/core-cms": "workspace:*",
|
|
"@repo/core-events": "workspace:*",
|
|
"@repo/core-realtime": "workspace:*",
|
|
"@repo/core-shared": "workspace:*",
|
|
"@repo/core-trpc": "workspace:*",
|
|
"@repo/core-ui": "workspace:*",
|
|
"@repo/marketing-pages": "workspace:*",
|
|
"@repo/media": "workspace:*",
|
|
"@repo/navigation": "workspace:*",
|
|
"@sentry/nextjs": "^10.51.0",
|
|
"@tanstack/react-query": "^5.66.0",
|
|
"@trpc/server": "^11.0.0",
|
|
"inversify": "^6.2.0",
|
|
"next": "^15.3.0",
|
|
"payload": "^3.14.0",
|
|
"react": "^19.0.0",
|
|
"react-dom": "^19.0.0",
|
|
"reflect-metadata": "^0.2.2",
|
|
"socket.io": "^4.7.0",
|
|
"superjson": "^2.2.1"
|
|
},
|
|
"devDependencies": {
|
|
"@playwright/test": "^1.50.0",
|
|
"socket.io-client": "^4.7.0",
|
|
"@repo/core-eslint": "workspace:*",
|
|
"@repo/core-testing": "workspace:*",
|
|
"@repo/core-typescript": "workspace:*",
|
|
"@testing-library/jest-dom": "^6.5.0",
|
|
"@testing-library/react": "^16.0.0",
|
|
"@testing-library/user-event": "^14.5.0",
|
|
"@types/node": "^22.0.0",
|
|
"@types/react": "^19.0.0",
|
|
"@types/react-dom": "^19.0.0",
|
|
"jsdom": "^25.0.0",
|
|
"tsx": "^4.0.0",
|
|
"vitest": "^3.0.0"
|
|
}
|
|
}
|