wexts 4.1.5 → 4.1.6

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.
Files changed (185) hide show
  1. package/README.md +49 -49
  2. package/bin/wexts.cjs +2 -2
  3. package/dist/chunk-27NEYQD2.mjs +222 -0
  4. package/dist/chunk-27NEYQD2.mjs.map +1 -0
  5. package/dist/chunk-2LJVUMXW.js +228 -0
  6. package/dist/chunk-2LJVUMXW.js.map +1 -0
  7. package/dist/chunk-5DBFN65W.mjs +183 -0
  8. package/dist/chunk-5DBFN65W.mjs.map +1 -0
  9. package/dist/chunk-75HBI2XG.js +504 -0
  10. package/dist/chunk-75HBI2XG.js.map +1 -0
  11. package/dist/chunk-AVMQJWYD.js +95 -0
  12. package/dist/chunk-AVMQJWYD.js.map +1 -0
  13. package/dist/chunk-C2AG7Q3C.mjs +65 -0
  14. package/dist/chunk-C2AG7Q3C.mjs.map +1 -0
  15. package/dist/chunk-DS5KVVWJ.mjs +95 -0
  16. package/dist/chunk-DS5KVVWJ.mjs.map +1 -0
  17. package/dist/chunk-FUPLZMSR.mjs +228 -0
  18. package/dist/chunk-FUPLZMSR.mjs.map +1 -0
  19. package/dist/chunk-HLT3IHJY.js +183 -0
  20. package/dist/chunk-HLT3IHJY.js.map +1 -0
  21. package/dist/chunk-L77ANWWT.mjs +22 -0
  22. package/dist/chunk-L77ANWWT.mjs.map +1 -0
  23. package/dist/chunk-P3Q4I5FD.js +222 -0
  24. package/dist/chunk-P3Q4I5FD.js.map +1 -0
  25. package/dist/chunk-VBIQGUDI.mjs +504 -0
  26. package/dist/chunk-VBIQGUDI.mjs.map +1 -0
  27. package/dist/chunk-WCKSKU3C.js +65 -0
  28. package/dist/chunk-WCKSKU3C.js.map +1 -0
  29. package/dist/chunk-XE4OXN2W.js +12 -0
  30. package/dist/chunk-XE4OXN2W.js.map +1 -0
  31. package/dist/cli/index.d.mts +23 -0
  32. package/dist/cli/index.d.ts +23 -0
  33. package/dist/cli/index.js +745 -0
  34. package/dist/cli/index.js.map +1 -0
  35. package/dist/cli/index.mjs +747 -0
  36. package/dist/cli/index.mjs.map +1 -0
  37. package/dist/client/index.d.mts +43 -0
  38. package/dist/client/index.d.ts +43 -0
  39. package/dist/client/index.js +187 -0
  40. package/dist/client/index.js.map +1 -0
  41. package/dist/client/index.mjs +166 -0
  42. package/dist/client/index.mjs.map +1 -0
  43. package/dist/codegen/index.d.mts +2 -0
  44. package/dist/codegen/index.d.ts +2 -0
  45. package/dist/codegen/index.js +16 -0
  46. package/dist/codegen/index.js.map +1 -0
  47. package/dist/codegen/index.mjs +16 -0
  48. package/dist/codegen/index.mjs.map +1 -0
  49. package/dist/decorators-BiQtOHuF.d.ts +60 -0
  50. package/dist/decorators-vBopODtr.d.mts +60 -0
  51. package/dist/dev-server/index.d.mts +1 -0
  52. package/dist/dev-server/index.d.ts +1 -0
  53. package/dist/dev-server/index.js +13 -0
  54. package/dist/dev-server/index.js.map +1 -0
  55. package/dist/dev-server/index.mjs +13 -0
  56. package/dist/dev-server/index.mjs.map +1 -0
  57. package/dist/errors-D545UvXf.d.mts +37 -0
  58. package/dist/errors-D545UvXf.d.ts +37 -0
  59. package/dist/index-7RvU-jGE.d.mts +66 -0
  60. package/dist/index-7RvU-jGE.d.ts +66 -0
  61. package/dist/index-CJKs4wtN.d.ts +92 -0
  62. package/dist/index-CUR6CnLk.d.ts +27 -0
  63. package/dist/index-h66Vq9dK.d.mts +92 -0
  64. package/dist/index-tqmYsTUn.d.mts +27 -0
  65. package/dist/index.d.mts +289 -0
  66. package/dist/index.d.ts +289 -0
  67. package/dist/index.js +544 -0
  68. package/dist/index.js.map +1 -0
  69. package/dist/index.mjs +544 -0
  70. package/dist/index.mjs.map +1 -0
  71. package/dist/nest/index.d.mts +2 -0
  72. package/dist/nest/index.d.ts +2 -0
  73. package/dist/nest/index.js +36 -0
  74. package/dist/nest/index.js.map +1 -0
  75. package/dist/nest/index.mjs +36 -0
  76. package/dist/nest/index.mjs.map +1 -0
  77. package/dist/next/index.d.mts +66 -0
  78. package/dist/next/index.d.ts +66 -0
  79. package/dist/next/index.js +282 -0
  80. package/dist/next/index.js.map +1 -0
  81. package/dist/next/index.mjs +251 -0
  82. package/dist/next/index.mjs.map +1 -0
  83. package/dist/rpc/index.d.mts +32 -0
  84. package/dist/rpc/index.d.ts +32 -0
  85. package/dist/rpc/index.js +19 -0
  86. package/dist/rpc/index.js.map +1 -0
  87. package/dist/rpc/index.mjs +1 -0
  88. package/dist/rpc/index.mjs.map +1 -0
  89. package/dist/runtime/index.d.mts +55 -0
  90. package/dist/runtime/index.d.ts +55 -0
  91. package/dist/runtime/index.js +15 -0
  92. package/dist/runtime/index.js.map +1 -0
  93. package/dist/runtime/index.mjs +15 -0
  94. package/dist/runtime/index.mjs.map +1 -0
  95. package/dist/server/index.d.mts +7 -0
  96. package/dist/server/index.d.ts +7 -0
  97. package/dist/server/index.js +58 -0
  98. package/dist/server/index.js.map +1 -0
  99. package/dist/server/index.mjs +58 -0
  100. package/dist/server/index.mjs.map +1 -0
  101. package/dist/types/index.d.mts +12 -0
  102. package/dist/types/index.d.ts +12 -0
  103. package/dist/types/index.js +19 -0
  104. package/dist/types/index.js.map +1 -0
  105. package/dist/types/index.mjs +1 -0
  106. package/dist/types/index.mjs.map +1 -0
  107. package/dist/types-CQ_aexOX.d.mts +32 -0
  108. package/dist/types-CQ_aexOX.d.ts +32 -0
  109. package/dist/vercel-builder/index.d.mts +58 -0
  110. package/dist/vercel-builder/index.d.ts +58 -0
  111. package/dist/vercel-builder/index.js +330 -0
  112. package/dist/vercel-builder/index.js.map +1 -0
  113. package/dist/vercel-builder/index.mjs +330 -0
  114. package/dist/vercel-builder/index.mjs.map +1 -0
  115. package/package.json +153 -153
  116. package/templates/.dockerignore +43 -43
  117. package/templates/.env.example +17 -17
  118. package/templates/Dockerfile +60 -60
  119. package/templates/Procfile +1 -1
  120. package/templates/README.md +67 -67
  121. package/templates/api-sdk.ts +115 -115
  122. package/templates/docker-compose.yml +34 -34
  123. package/templates/nestjs-api/.env.example +3 -3
  124. package/templates/nestjs-api/README.md +87 -87
  125. package/templates/nestjs-api/nest-cli.json +6 -6
  126. package/templates/nestjs-api/package.json +40 -40
  127. package/templates/nestjs-api/prisma/migrations/20251123205437_init/migration.sql +24 -24
  128. package/templates/nestjs-api/prisma/migrations/migration_lock.toml +3 -3
  129. package/templates/nestjs-api/prisma/schema.prisma +29 -29
  130. package/templates/nestjs-api/src/app.module.ts +17 -17
  131. package/templates/nestjs-api/src/auth/auth.controller.ts +27 -27
  132. package/templates/nestjs-api/src/auth/auth.module.ts +37 -37
  133. package/templates/nestjs-api/src/auth/auth.service.ts +86 -86
  134. package/templates/nestjs-api/src/auth/dto/auth.dto.ts +22 -22
  135. package/templates/nestjs-api/src/auth/guards/jwt-auth.guard.ts +5 -5
  136. package/templates/nestjs-api/src/auth/strategies/jwt.strategy.ts +27 -27
  137. package/templates/nestjs-api/src/main.ts +32 -32
  138. package/templates/nestjs-api/src/prisma/prisma.module.ts +9 -9
  139. package/templates/nestjs-api/src/prisma/prisma.service.ts +14 -14
  140. package/templates/nestjs-api/src/todos/dto/todo.dto.ts +24 -24
  141. package/templates/nestjs-api/src/todos/todos.controller.ts +39 -39
  142. package/templates/nestjs-api/src/todos/todos.module.ts +11 -11
  143. package/templates/nestjs-api/src/todos/todos.service.ts +53 -53
  144. package/templates/nestjs-api/src/users/users.controller.ts +14 -14
  145. package/templates/nestjs-api/src/users/users.module.ts +12 -12
  146. package/templates/nestjs-api/src/users/users.service.ts +19 -19
  147. package/templates/nestjs-api/tsconfig.json +39 -39
  148. package/templates/nextjs-web/README.md +76 -76
  149. package/templates/nextjs-web/app/actions/auth.ts +108 -108
  150. package/templates/nextjs-web/app/dashboard/error.tsx +39 -39
  151. package/templates/nextjs-web/app/dashboard/loading.tsx +14 -14
  152. package/templates/nextjs-web/app/dashboard/page.tsx +5 -5
  153. package/templates/nextjs-web/app/globals.css +93 -93
  154. package/templates/nextjs-web/app/layout.tsx +29 -29
  155. package/templates/nextjs-web/app/login/page.tsx +5 -5
  156. package/templates/nextjs-web/app/page.tsx +28 -28
  157. package/templates/nextjs-web/app/register/page.tsx +5 -5
  158. package/templates/nextjs-web/components/ui/button.tsx +56 -56
  159. package/templates/nextjs-web/components/ui/card.tsx +79 -79
  160. package/templates/nextjs-web/components/ui/input.tsx +25 -25
  161. package/templates/nextjs-web/components/ui/label.tsx +24 -24
  162. package/templates/nextjs-web/features/auth/LoginForm.tsx +140 -140
  163. package/templates/nextjs-web/features/auth/RegisterForm.tsx +159 -159
  164. package/templates/nextjs-web/features/auth/api.ts +35 -35
  165. package/templates/nextjs-web/features/auth/index.ts +3 -3
  166. package/templates/nextjs-web/features/dashboard/DashboardView.tsx +204 -204
  167. package/templates/nextjs-web/features/dashboard/api.ts +9 -9
  168. package/templates/nextjs-web/features/dashboard/components.tsx +74 -74
  169. package/templates/nextjs-web/features/dashboard/index.ts +3 -3
  170. package/templates/nextjs-web/hooks/index.ts +4 -4
  171. package/templates/nextjs-web/lib/api-client.ts +89 -89
  172. package/templates/nextjs-web/lib/api.ts +115 -115
  173. package/templates/nextjs-web/lib/axios-global-config.ts +17 -17
  174. package/templates/nextjs-web/lib/utils.ts +6 -6
  175. package/templates/nextjs-web/lib/wexts-client.ts +4 -4
  176. package/templates/nextjs-web/next-env.d.ts +6 -6
  177. package/templates/nextjs-web/next.config.ts +20 -20
  178. package/templates/nextjs-web/package.json +37 -37
  179. package/templates/nextjs-web/postcss.config.js +6 -6
  180. package/templates/nextjs-web/tailwind.config.ts +69 -69
  181. package/templates/nextjs-web/tsconfig.json +41 -41
  182. package/templates/nixpacks.toml +11 -11
  183. package/templates/root-package.json +31 -31
  184. package/templates/server.ts +66 -66
  185. package/templates/tsconfig.json +30 -30
package/package.json CHANGED
@@ -1,153 +1,153 @@
1
- {
2
- "name": "wexts",
3
- "version": "4.1.5",
4
- "description": "Production-focused single-runtime Next.js + NestJS toolkit with typed RPC.",
5
- "main": "./dist/index.js",
6
- "module": "./dist/index.mjs",
7
- "types": "./dist/index.d.ts",
8
- "bin": {
9
- "wexts": "bin/wexts.cjs"
10
- },
11
- "files": [
12
- "dist",
13
- "templates",
14
- "bin",
15
- "README.md",
16
- "LICENSE"
17
- ],
18
- "exports": {
19
- ".": {
20
- "types": "./dist/index.d.ts",
21
- "import": "./dist/index.mjs",
22
- "require": "./dist/index.js"
23
- },
24
- "./client": {
25
- "types": "./dist/client/index.d.ts",
26
- "import": "./dist/client/index.mjs",
27
- "require": "./dist/client/index.js"
28
- },
29
- "./types": {
30
- "types": "./dist/types/index.d.ts",
31
- "import": "./dist/types/index.mjs",
32
- "require": "./dist/types/index.js"
33
- },
34
- "./nest": {
35
- "types": "./dist/nest/index.d.ts",
36
- "import": "./dist/nest/index.mjs",
37
- "require": "./dist/nest/index.js"
38
- },
39
- "./next": {
40
- "types": "./dist/next/index.d.ts",
41
- "import": "./dist/next/index.mjs",
42
- "require": "./dist/next/index.js"
43
- },
44
- "./rpc": {
45
- "types": "./dist/rpc/index.d.ts",
46
- "import": "./dist/rpc/index.mjs",
47
- "require": "./dist/rpc/index.js"
48
- },
49
- "./runtime": {
50
- "types": "./dist/runtime/index.d.ts",
51
- "import": "./dist/runtime/index.mjs",
52
- "require": "./dist/runtime/index.js"
53
- },
54
- "./server": {
55
- "types": "./dist/server/index.d.ts",
56
- "import": "./dist/server/index.mjs",
57
- "require": "./dist/server/index.js"
58
- }
59
- },
60
- "scripts": {
61
- "build": "tsup",
62
- "dev": "tsup --watch",
63
- "test": "vitest run",
64
- "test:watch": "vitest",
65
- "lint": "tsc --noEmit",
66
- "typecheck": "tsc --noEmit",
67
- "release": "npm run build && npm publish --access public"
68
- },
69
- "keywords": [
70
- "wexts",
71
- "framework",
72
- "fullstack",
73
- "nestjs",
74
- "nextjs",
75
- "monorepo",
76
- "typescript",
77
- "react",
78
- "unified-runtime",
79
- "generated-rpc",
80
- "type-safe",
81
- "prisma",
82
- "jwt-auth",
83
- "docker",
84
- "next.js",
85
- "nest.js"
86
- ],
87
- "author": "WEXTS Team",
88
- "license": "MIT",
89
- "repository": {
90
- "type": "git",
91
- "url": "git+https://github.com/ziadmustafa1/wexts.git"
92
- },
93
- "homepage": "https://github.com/ziadmustafa1/wexts#readme",
94
- "bugs": {
95
- "url": "https://github.com/ziadmustafa1/wexts/issues"
96
- },
97
- "engines": {
98
- "node": ">=20.9.0",
99
- "pnpm": ">=10.0.0"
100
- },
101
- "devDependencies": {
102
- "@swc/core": "^1.15.32",
103
- "@types/http-proxy": "^1.17.15",
104
- "@types/node": "^22.19.1",
105
- "@types/react": "^19.2.14",
106
- "eslint": "^9.17.0",
107
- "tsup": "^8.5.1",
108
- "vite": "^6.4.2",
109
- "vitest": "^4.1.5"
110
- },
111
- "dependencies": {
112
- "@wexts/security": "^0.1.0",
113
- "chokidar": "^4.0.3",
114
- "commander": "^14.0.3",
115
- "consola": "^3.2.3",
116
- "fastify": "^5.8.5",
117
- "http-proxy": "^1.18.1",
118
- "picocolors": "^1.1.1",
119
- "reflect-metadata": "^0.2.2",
120
- "typescript": "^5.9.3"
121
- },
122
- "peerDependencies": {
123
- "@nestjs/common": "^11.0.0",
124
- "@nestjs/core": "^11.0.0",
125
- "@nestjs/platform-fastify": "^11.0.0",
126
- "next": "^16.2.4",
127
- "react": "^19.2.5",
128
- "react-dom": "^19.2.5"
129
- },
130
- "peerDependenciesMeta": {
131
- "@nestjs/common": {
132
- "optional": true
133
- },
134
- "@nestjs/core": {
135
- "optional": true
136
- },
137
- "@nestjs/platform-fastify": {
138
- "optional": true
139
- },
140
- "react": {
141
- "optional": true
142
- },
143
- "react-dom": {
144
- "optional": true
145
- },
146
- "next": {
147
- "optional": true
148
- }
149
- },
150
- "publishConfig": {
151
- "access": "public"
152
- }
153
- }
1
+ {
2
+ "name": "wexts",
3
+ "version": "4.1.6",
4
+ "description": "Production-focused single-runtime Next.js + NestJS toolkit with typed RPC.",
5
+ "main": "./dist/index.js",
6
+ "module": "./dist/index.mjs",
7
+ "types": "./dist/index.d.ts",
8
+ "bin": {
9
+ "wexts": "bin/wexts.cjs"
10
+ },
11
+ "files": [
12
+ "dist",
13
+ "templates",
14
+ "bin",
15
+ "README.md",
16
+ "LICENSE"
17
+ ],
18
+ "exports": {
19
+ ".": {
20
+ "types": "./dist/index.d.ts",
21
+ "import": "./dist/index.mjs",
22
+ "require": "./dist/index.js"
23
+ },
24
+ "./client": {
25
+ "types": "./dist/client/index.d.ts",
26
+ "import": "./dist/client/index.mjs",
27
+ "require": "./dist/client/index.js"
28
+ },
29
+ "./types": {
30
+ "types": "./dist/types/index.d.ts",
31
+ "import": "./dist/types/index.mjs",
32
+ "require": "./dist/types/index.js"
33
+ },
34
+ "./nest": {
35
+ "types": "./dist/nest/index.d.ts",
36
+ "import": "./dist/nest/index.mjs",
37
+ "require": "./dist/nest/index.js"
38
+ },
39
+ "./next": {
40
+ "types": "./dist/next/index.d.ts",
41
+ "import": "./dist/next/index.mjs",
42
+ "require": "./dist/next/index.js"
43
+ },
44
+ "./rpc": {
45
+ "types": "./dist/rpc/index.d.ts",
46
+ "import": "./dist/rpc/index.mjs",
47
+ "require": "./dist/rpc/index.js"
48
+ },
49
+ "./runtime": {
50
+ "types": "./dist/runtime/index.d.ts",
51
+ "import": "./dist/runtime/index.mjs",
52
+ "require": "./dist/runtime/index.js"
53
+ },
54
+ "./server": {
55
+ "types": "./dist/server/index.d.ts",
56
+ "import": "./dist/server/index.mjs",
57
+ "require": "./dist/server/index.js"
58
+ }
59
+ },
60
+ "scripts": {
61
+ "build": "tsup",
62
+ "dev": "tsup --watch",
63
+ "test": "vitest run",
64
+ "test:watch": "vitest",
65
+ "lint": "tsc --noEmit",
66
+ "typecheck": "tsc --noEmit",
67
+ "release": "npm run build && npm publish --access public"
68
+ },
69
+ "keywords": [
70
+ "wexts",
71
+ "framework",
72
+ "fullstack",
73
+ "nestjs",
74
+ "nextjs",
75
+ "monorepo",
76
+ "typescript",
77
+ "react",
78
+ "unified-runtime",
79
+ "generated-rpc",
80
+ "type-safe",
81
+ "prisma",
82
+ "jwt-auth",
83
+ "docker",
84
+ "next.js",
85
+ "nest.js"
86
+ ],
87
+ "author": "WEXTS Team",
88
+ "license": "MIT",
89
+ "repository": {
90
+ "type": "git",
91
+ "url": "git+https://github.com/ziadmustafa1/wexts.git"
92
+ },
93
+ "homepage": "https://github.com/ziadmustafa1/wexts#readme",
94
+ "bugs": {
95
+ "url": "https://github.com/ziadmustafa1/wexts/issues"
96
+ },
97
+ "engines": {
98
+ "node": ">=20.9.0",
99
+ "pnpm": ">=10.0.0"
100
+ },
101
+ "devDependencies": {
102
+ "@swc/core": "^1.15.32",
103
+ "@types/http-proxy": "^1.17.15",
104
+ "@types/node": "^22.19.1",
105
+ "@types/react": "^19.2.14",
106
+ "eslint": "^9.17.0",
107
+ "tsup": "^8.5.1",
108
+ "vite": "^6.4.2",
109
+ "vitest": "^4.1.5"
110
+ },
111
+ "dependencies": {
112
+ "@wexts/security": "^0.1.0",
113
+ "chokidar": "^4.0.3",
114
+ "commander": "^14.0.3",
115
+ "consola": "^3.2.3",
116
+ "fastify": "^5.8.5",
117
+ "http-proxy": "^1.18.1",
118
+ "picocolors": "^1.1.1",
119
+ "reflect-metadata": "^0.2.2",
120
+ "typescript": "^5.9.3"
121
+ },
122
+ "peerDependencies": {
123
+ "@nestjs/common": "^11.0.0",
124
+ "@nestjs/core": "^11.0.0",
125
+ "@nestjs/platform-fastify": "^11.0.0",
126
+ "next": "^16.2.4",
127
+ "react": "^19.2.5",
128
+ "react-dom": "^19.2.5"
129
+ },
130
+ "peerDependenciesMeta": {
131
+ "@nestjs/common": {
132
+ "optional": true
133
+ },
134
+ "@nestjs/core": {
135
+ "optional": true
136
+ },
137
+ "@nestjs/platform-fastify": {
138
+ "optional": true
139
+ },
140
+ "react": {
141
+ "optional": true
142
+ },
143
+ "react-dom": {
144
+ "optional": true
145
+ },
146
+ "next": {
147
+ "optional": true
148
+ }
149
+ },
150
+ "publishConfig": {
151
+ "access": "public"
152
+ }
153
+ }
@@ -1,43 +1,43 @@
1
- # Environment files
2
- .env
3
- .env.local
4
- .env.*.local
5
-
6
- # Node modules
7
- node_modules
8
- dist
9
- build
10
- .next
11
- .turbo
12
-
13
- # Database
14
- *.db
15
- *.db-journal
16
-
17
- # Logs
18
- *.log
19
- npm-debug.log*
20
-
21
- # OS
22
- .DS_Store
23
- Thumbs.db
24
-
25
- # IDE
26
- .vscode
27
- .idea
28
- *.swp
29
-
30
- # Git
31
- .git
32
- .gitignore
33
-
34
- # CI/CD
35
- .github
36
-
37
- # Documentation
38
- *.md
39
- !README.md
40
-
41
- # Config files
42
- .prettierrc
43
- .eslintrc*
1
+ # Environment files
2
+ .env
3
+ .env.local
4
+ .env.*.local
5
+
6
+ # Node modules
7
+ node_modules
8
+ dist
9
+ build
10
+ .next
11
+ .turbo
12
+
13
+ # Database
14
+ *.db
15
+ *.db-journal
16
+
17
+ # Logs
18
+ *.log
19
+ npm-debug.log*
20
+
21
+ # OS
22
+ .DS_Store
23
+ Thumbs.db
24
+
25
+ # IDE
26
+ .vscode
27
+ .idea
28
+ *.swp
29
+
30
+ # Git
31
+ .git
32
+ .gitignore
33
+
34
+ # CI/CD
35
+ .github
36
+
37
+ # Documentation
38
+ *.md
39
+ !README.md
40
+
41
+ # Config files
42
+ .prettierrc
43
+ .eslintrc*
@@ -1,17 +1,17 @@
1
- # WEXTS Environment Variables
2
- # Copy this file to .env and update values
3
-
4
- # JWT Authentication
5
- JWT_SECRET=your-super-secret-jwt-key-change-in-production
6
- JWT_EXPIRES_IN=7d
7
-
8
- # Database (Local Development - SQLite)
9
- DATABASE_URL="file:./apps/api/dev.db"
10
-
11
- # Database (Production - PostgreSQL)
12
- # DATABASE_URL="postgresql://user:password@host:5432/dbname"
13
- # DIRECT_URL="postgresql://user:password@host:5432/dbname"
14
-
15
- # Server
16
- PORT=3000
17
- NODE_ENV=development
1
+ # WEXTS Environment Variables
2
+ # Copy this file to .env and update values
3
+
4
+ # JWT Authentication
5
+ JWT_SECRET=your-super-secret-jwt-key-change-in-production
6
+ JWT_EXPIRES_IN=7d
7
+
8
+ # Database (Local Development - SQLite)
9
+ DATABASE_URL="file:./apps/api/dev.db"
10
+
11
+ # Database (Production - PostgreSQL)
12
+ # DATABASE_URL="postgresql://user:password@host:5432/dbname"
13
+ # DIRECT_URL="postgresql://user:password@host:5432/dbname"
14
+
15
+ # Server
16
+ PORT=3000
17
+ NODE_ENV=development
@@ -1,60 +1,60 @@
1
- # Stage 1: Build
2
- FROM node:20-alpine AS builder
3
-
4
- # Install pnpm
5
- RUN npm install -g pnpm
6
-
7
- # Set working directory
8
- WORKDIR /app
9
-
10
- # Copy package files
11
- COPY package.json pnpm-lock.yaml pnpm-workspace.yaml ./
12
- COPY apps/web/package.json ./apps/web/
13
- COPY apps/api/package.json ./apps/api/
14
-
15
- # Install dependencies
16
- RUN pnpm install --frozen-lockfile
17
-
18
- # Copy source code
19
- COPY . .
20
-
21
- # Generate Prisma Client
22
- RUN cd apps/api && npx prisma generate
23
-
24
- # Build all apps
25
- RUN pnpm run build
26
-
27
- # Stage 2: Production
28
- FROM node:20-alpine AS runner
29
-
30
- # Install pnpm
31
- RUN npm install -g pnpm
32
-
33
- WORKDIR /app
34
-
35
- # Copy package files
36
- COPY package.json pnpm-lock.yaml pnpm-workspace.yaml ./
37
- COPY apps/web/package.json ./apps/web/
38
- COPY apps/api/package.json ./apps/api/
39
-
40
- # Install production dependencies only
41
- RUN pnpm install --prod --frozen-lockfile
42
-
43
- # Copy built files from builder
44
- COPY --from=builder /app/dist ./dist
45
- COPY --from=builder /app/apps/web/.next ./apps/web/.next
46
- COPY --from=builder /app/apps/web/public ./apps/web/public
47
- COPY --from=builder /app/apps/api/dist ./apps/api/dist
48
- COPY --from=builder /app/apps/api/prisma ./apps/api/prisma
49
- COPY --from=builder /app/node_modules/.prisma ./node_modules/.prisma
50
- COPY --from=builder /app/server.ts ./server.ts
51
-
52
- # Expose port
53
- EXPOSE 3000
54
-
55
- # Set environment
56
- ENV NODE_ENV=production
57
- ENV PORT=3000
58
-
59
- # Start application
60
- CMD ["node", "dist/server.js"]
1
+ # Stage 1: Build
2
+ FROM node:20-alpine AS builder
3
+
4
+ # Install pnpm
5
+ RUN npm install -g pnpm
6
+
7
+ # Set working directory
8
+ WORKDIR /app
9
+
10
+ # Copy package files
11
+ COPY package.json pnpm-lock.yaml pnpm-workspace.yaml ./
12
+ COPY apps/web/package.json ./apps/web/
13
+ COPY apps/api/package.json ./apps/api/
14
+
15
+ # Install dependencies
16
+ RUN pnpm install --frozen-lockfile
17
+
18
+ # Copy source code
19
+ COPY . .
20
+
21
+ # Generate Prisma Client
22
+ RUN cd apps/api && npx prisma generate
23
+
24
+ # Build all apps
25
+ RUN pnpm run build
26
+
27
+ # Stage 2: Production
28
+ FROM node:20-alpine AS runner
29
+
30
+ # Install pnpm
31
+ RUN npm install -g pnpm
32
+
33
+ WORKDIR /app
34
+
35
+ # Copy package files
36
+ COPY package.json pnpm-lock.yaml pnpm-workspace.yaml ./
37
+ COPY apps/web/package.json ./apps/web/
38
+ COPY apps/api/package.json ./apps/api/
39
+
40
+ # Install production dependencies only
41
+ RUN pnpm install --prod --frozen-lockfile
42
+
43
+ # Copy built files from builder
44
+ COPY --from=builder /app/dist ./dist
45
+ COPY --from=builder /app/apps/web/.next ./apps/web/.next
46
+ COPY --from=builder /app/apps/web/public ./apps/web/public
47
+ COPY --from=builder /app/apps/api/dist ./apps/api/dist
48
+ COPY --from=builder /app/apps/api/prisma ./apps/api/prisma
49
+ COPY --from=builder /app/node_modules/.prisma ./node_modules/.prisma
50
+ COPY --from=builder /app/server.ts ./server.ts
51
+
52
+ # Expose port
53
+ EXPOSE 3000
54
+
55
+ # Set environment
56
+ ENV NODE_ENV=production
57
+ ENV PORT=3000
58
+
59
+ # Start application
60
+ CMD ["node", "dist/server.js"]
@@ -1 +1 @@
1
- web: pnpm start
1
+ web: pnpm start