wexts 2.0.8 → 3.0.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.
Files changed (56) hide show
  1. package/README.md +123 -237
  2. package/dist/chunk-2KAQYLVN.js +1 -0
  3. package/dist/chunk-2KAQYLVN.js.map +1 -0
  4. package/dist/chunk-3OM7CHCA.js +65 -0
  5. package/dist/chunk-3OM7CHCA.js.map +1 -0
  6. package/dist/chunk-667BQCEM.js +375 -0
  7. package/dist/chunk-667BQCEM.js.map +1 -0
  8. package/dist/chunk-FCEZDH42.mjs +20 -0
  9. package/dist/chunk-FCEZDH42.mjs.map +1 -0
  10. package/dist/chunk-KXYLEUSW.mjs +242 -0
  11. package/dist/chunk-KXYLEUSW.mjs.map +1 -0
  12. package/dist/chunk-O42L6HOX.js +242 -0
  13. package/dist/chunk-O42L6HOX.js.map +1 -0
  14. package/dist/chunk-ONXNE2A6.mjs +375 -0
  15. package/dist/chunk-ONXNE2A6.mjs.map +1 -0
  16. package/dist/chunk-STTOPUZ2.mjs +88 -0
  17. package/dist/chunk-STTOPUZ2.mjs.map +1 -0
  18. package/dist/chunk-VMT3LALB.mjs +51 -0
  19. package/dist/chunk-VMT3LALB.mjs.map +1 -0
  20. package/dist/chunk-VNNVLQLJ.mjs +65 -0
  21. package/dist/chunk-VNNVLQLJ.mjs.map +1 -0
  22. package/dist/chunk-WF65EDRZ.js +88 -0
  23. package/dist/chunk-WF65EDRZ.js.map +1 -0
  24. package/dist/chunk-XE4OXN2W.js +12 -0
  25. package/dist/chunk-XE4OXN2W.js.map +1 -0
  26. package/dist/chunk-XVKTIYHY.js +51 -0
  27. package/dist/chunk-XVKTIYHY.js.map +1 -0
  28. package/dist/chunk-YSLEF5C5.mjs +1 -0
  29. package/dist/chunk-YSLEF5C5.mjs.map +1 -0
  30. package/dist/cli/index.js +148 -85
  31. package/dist/cli/index.js.map +1 -1
  32. package/dist/cli/index.mjs +108 -46
  33. package/dist/cli/index.mjs.map +1 -1
  34. package/dist/client/index.js +3 -3
  35. package/dist/client/index.mjs +2 -2
  36. package/dist/codegen/index.js +4 -4
  37. package/dist/codegen/index.mjs +3 -3
  38. package/dist/dev-server/index.js +4 -4
  39. package/dist/dev-server/index.mjs +3 -3
  40. package/dist/index.js +93 -51
  41. package/dist/index.js.map +1 -1
  42. package/dist/index.mjs +75 -33
  43. package/dist/index.mjs.map +1 -1
  44. package/dist/nest/index.js +3 -3
  45. package/dist/nest/index.mjs +2 -2
  46. package/dist/next/index.js +22 -9
  47. package/dist/next/index.js.map +1 -1
  48. package/dist/next/index.mjs +23 -9
  49. package/dist/next/index.mjs.map +1 -1
  50. package/dist/types/index.js +1 -1
  51. package/dist/types/index.mjs +2 -2
  52. package/package.json +114 -113
  53. package/templates/nestjs-api/.env +4 -0
  54. package/templates/nestjs-api/.env.example +3 -0
  55. package/templates/nestjs-api/prisma/dev.db +0 -0
  56. package/templates/nextjs-web/next-env.d.ts +1 -1
@@ -1,10 +1,11 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  logger
4
- } from "../chunk-HSFLZUJN.mjs";
4
+ } from "../chunk-VNNVLQLJ.mjs";
5
5
  import {
6
- __dirname
7
- } from "../chunk-CKZ4VSCB.mjs";
6
+ __dirname,
7
+ __name
8
+ } from "../chunk-FCEZDH42.mjs";
8
9
 
9
10
  // src/cli/index.ts
10
11
  import { Command } from "commander";
@@ -31,12 +32,30 @@ program.action(async () => {
31
32
  name: "action",
32
33
  message: "What would you like to do?",
33
34
  choices: [
34
- { name: "\u{1F4E6} Create a new project", value: "create" },
35
- { name: "\u{1F680} Start development server", value: "dev" },
36
- { name: "\u{1F528} Build for production", value: "build" },
37
- { name: "\u26A1 Generate code", value: "generate" },
38
- { name: "\u{1F916} Generate API client", value: "codegen" },
39
- { name: "\u274C Exit", value: "exit" }
35
+ {
36
+ name: "\u{1F4E6} Create a new project",
37
+ value: "create"
38
+ },
39
+ {
40
+ name: "\u{1F680} Start development server",
41
+ value: "dev"
42
+ },
43
+ {
44
+ name: "\u{1F528} Build for production",
45
+ value: "build"
46
+ },
47
+ {
48
+ name: "\u26A1 Generate code",
49
+ value: "generate"
50
+ },
51
+ {
52
+ name: "\u{1F916} Generate API client",
53
+ value: "codegen"
54
+ },
55
+ {
56
+ name: "\u274C Exit",
57
+ value: "exit"
58
+ }
40
59
  ]
41
60
  }
42
61
  ]);
@@ -57,9 +76,18 @@ program.action(async () => {
57
76
  name: "template",
58
77
  message: "Select template:",
59
78
  choices: [
60
- { name: "\u{1F4E6} Monorepo (Next.js + NestJS)", value: "monorepo" },
61
- { name: "\u{1F3AF} API only (NestJS)", value: "api" },
62
- { name: "\u{1F310} Web only (Next.js)", value: "web" }
79
+ {
80
+ name: "\u{1F4E6} Monorepo (Next.js + NestJS)",
81
+ value: "monorepo"
82
+ },
83
+ {
84
+ name: "\u{1F3AF} API only (NestJS)",
85
+ value: "api"
86
+ },
87
+ {
88
+ name: "\u{1F310} Web only (Next.js)",
89
+ value: "web"
90
+ }
63
91
  ]
64
92
  }
65
93
  ]);
@@ -76,7 +104,12 @@ program.action(async () => {
76
104
  type: "list",
77
105
  name: "type",
78
106
  message: "What to generate?",
79
- choices: ["controller", "module", "service", "page"]
107
+ choices: [
108
+ "controller",
109
+ "module",
110
+ "service",
111
+ "page"
112
+ ]
80
113
  },
81
114
  {
82
115
  type: "input",
@@ -152,11 +185,8 @@ async function createProject(projectName, template) {
152
185
  function getTemplatePath() {
153
186
  const possiblePaths = [
154
187
  path.join(__dirname, "../../templates"),
155
- // When running from dist/cli/index.js
156
188
  path.join(__dirname, "../templates"),
157
- // Alternative structure
158
189
  path.join(process.cwd(), "templates"),
159
- // Local dev
160
190
  path.resolve(__dirname, "..", "..", "templates")
161
191
  // Absolute resolve
162
192
  ];
@@ -167,6 +197,7 @@ async function createProject(projectName, template) {
167
197
  }
168
198
  return "";
169
199
  }
200
+ __name(getTemplatePath, "getTemplatePath");
170
201
  const templatePath = getTemplatePath();
171
202
  if (!templatePath) {
172
203
  logger.error(`\u274C Template directory not found!`);
@@ -175,26 +206,48 @@ async function createProject(projectName, template) {
175
206
  logger.info(` - ${path.join(__dirname, "../templates")}`);
176
207
  logger.info(` - ${path.join(process.cwd(), "templates")}`);
177
208
  logger.warn("\u26A0\uFE0F Using fallback scaffolding (empty structure)");
178
- fs.mkdirSync(projectPath, { recursive: true });
179
- fs.mkdirSync(path.join(projectPath, "apps"), { recursive: true });
180
- fs.mkdirSync(path.join(projectPath, "packages"), { recursive: true });
209
+ fs.mkdirSync(projectPath, {
210
+ recursive: true
211
+ });
212
+ fs.mkdirSync(path.join(projectPath, "apps"), {
213
+ recursive: true
214
+ });
215
+ fs.mkdirSync(path.join(projectPath, "packages"), {
216
+ recursive: true
217
+ });
181
218
  } else {
182
219
  logger.info(`\u{1F4E6} Copying templates from: ${templatePath}`);
183
- fs.mkdirSync(projectPath, { recursive: true });
184
- fs.mkdirSync(path.join(projectPath, "apps"), { recursive: true });
185
- fs.mkdirSync(path.join(projectPath, "packages"), { recursive: true });
220
+ fs.mkdirSync(projectPath, {
221
+ recursive: true
222
+ });
223
+ fs.mkdirSync(path.join(projectPath, "apps"), {
224
+ recursive: true
225
+ });
226
+ fs.mkdirSync(path.join(projectPath, "packages"), {
227
+ recursive: true
228
+ });
186
229
  const apiTemplatePath = path.join(templatePath, "nestjs-api");
187
230
  const apiDestPath = path.join(projectPath, "apps/api");
188
231
  if (fs.existsSync(apiTemplatePath)) {
189
- fs.cpSync(apiTemplatePath, apiDestPath, { recursive: true });
232
+ fs.cpSync(apiTemplatePath, apiDestPath, {
233
+ recursive: true
234
+ });
190
235
  logger.success(" - Copied API template");
236
+ const envExamplePath = path.join(apiDestPath, ".env.example");
237
+ const envPath = path.join(apiDestPath, ".env");
238
+ if (fs.existsSync(envExamplePath) && !fs.existsSync(envPath)) {
239
+ fs.copyFileSync(envExamplePath, envPath);
240
+ logger.success(" - Created .env from .env.example");
241
+ }
191
242
  } else {
192
243
  logger.warn(` \u26A0\uFE0F API template not found at ${apiTemplatePath}`);
193
244
  }
194
245
  const webTemplatePath = path.join(templatePath, "nextjs-web");
195
246
  const webDestPath = path.join(projectPath, "apps/web");
196
247
  if (fs.existsSync(webTemplatePath)) {
197
- fs.cpSync(webTemplatePath, webDestPath, { recursive: true });
248
+ fs.cpSync(webTemplatePath, webDestPath, {
249
+ recursive: true
250
+ });
198
251
  logger.success(" - Copied Web template");
199
252
  } else {
200
253
  logger.warn(` \u26A0\uFE0F Web template not found at ${webTemplatePath}`);
@@ -205,33 +258,32 @@ async function createProject(projectName, template) {
205
258
  version: "0.0.0",
206
259
  private: true,
207
260
  scripts: {
208
- "build": "turbo run build",
209
- "dev": "turbo run dev",
210
- "lint": "turbo run lint",
261
+ "build": "pnpm exec turbo build",
262
+ "dev": "pnpm exec turbo dev",
263
+ "lint": "pnpm exec turbo lint",
211
264
  "format": 'prettier --write "**/*.{ts,tsx,md}"'
212
265
  },
213
266
  devDependencies: {
214
- "turbo": "latest",
267
+ "turbo": "^2.6.1",
215
268
  "prettier": "latest",
216
269
  "typescript": "^5.9.3",
217
270
  "wexts": "latest"
218
271
  },
219
- packageManager: "pnpm@10.0.0",
220
- workspaces: [
221
- "apps/*",
222
- "packages/*"
223
- ]
272
+ packageManager: "pnpm@10.0.0"
224
273
  };
225
- fs.writeFileSync(
226
- path.join(projectPath, "package.json"),
227
- JSON.stringify(packageJson, null, 2)
228
- );
274
+ fs.writeFileSync(path.join(projectPath, "package.json"), JSON.stringify(packageJson, null, 2));
229
275
  const turboJson = {
230
276
  "$schema": "https://turbo.build/schema.json",
231
277
  "tasks": {
232
278
  "build": {
233
- "dependsOn": ["^build"],
234
- "outputs": [".next/**", "!.next/cache/**", "dist/**"]
279
+ "dependsOn": [
280
+ "^build"
281
+ ],
282
+ "outputs": [
283
+ ".next/**",
284
+ "!.next/cache/**",
285
+ "dist/**"
286
+ ]
235
287
  },
236
288
  "lint": {},
237
289
  "dev": {
@@ -240,20 +292,29 @@ async function createProject(projectName, template) {
240
292
  }
241
293
  }
242
294
  };
243
- fs.writeFileSync(
244
- path.join(projectPath, "turbo.json"),
245
- JSON.stringify(turboJson, null, 2)
246
- );
295
+ fs.writeFileSync(path.join(projectPath, "turbo.json"), JSON.stringify(turboJson, null, 2));
296
+ const pnpmWorkspace = `packages:
297
+ - 'apps/*'
298
+ - 'packages/*'
299
+ `;
300
+ fs.writeFileSync(path.join(projectPath, "pnpm-workspace.yaml"), pnpmWorkspace);
247
301
  logger.success("\u2705 Project structure created");
248
302
  logger.info("\u{1F4E6} Installing dependencies...");
249
303
  try {
250
304
  try {
251
- execSync("pnpm --version", { stdio: "ignore" });
305
+ execSync("pnpm --version", {
306
+ stdio: "ignore"
307
+ });
252
308
  } catch {
253
309
  logger.info("Installing pnpm...");
254
- execSync("npm install -g pnpm", { stdio: "ignore" });
310
+ execSync("npm install -g pnpm", {
311
+ stdio: "ignore"
312
+ });
255
313
  }
256
- execSync("pnpm install", { cwd: projectPath, stdio: "inherit" });
314
+ execSync("pnpm install", {
315
+ cwd: projectPath,
316
+ stdio: "inherit"
317
+ });
257
318
  logger.success("\u2705 Dependencies installed");
258
319
  logger.info(pc.green(`
259
320
  \u{1F389} Project ${projectName} created successfully!`));
@@ -267,5 +328,6 @@ To get started:
267
328
  logger.error("Failed to install dependencies");
268
329
  }
269
330
  }
331
+ __name(createProject, "createProject");
270
332
  program.parse();
271
333
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/cli/index.ts"],"sourcesContent":["#!/usr/bin/env node\r\n\r\nimport { Command } from 'commander';\r\nimport { logger } from '../core/logger';\r\nimport * as pc from 'picocolors';\r\nimport inquirer from 'inquirer';\r\nimport * as fs from 'fs';\r\nimport * as path from 'path';\r\nimport { execSync } from 'child_process';\r\n\r\nconst program = new Command();\r\n\r\nprogram\r\n .name('wexts')\r\n .description('Wexts Framework - Next.js 16 + NestJS 11')\r\n .version('2.0.0');\r\n\r\n// Interactive Mode (when no command is provided)\r\nprogram\r\n .action(async () => {\r\n console.log(pc.cyan(`\r\n╔══════════════════════════════════════════╗\r\nā•‘ ā•‘\r\nā•‘ ${pc.bold('šŸš€ Wexts Framework v2.0')} ā•‘\r\nā•‘ ā•‘\r\nā•‘ Next.js 16 + NestJS 11 Full-Stack ā•‘\r\nā•‘ ā•‘\r\nā•šā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•\r\n `));\r\n\r\n const { action } = await inquirer.prompt([\r\n {\r\n type: 'list',\r\n name: 'action',\r\n message: 'What would you like to do?',\r\n choices: [\r\n { name: 'šŸ“¦ Create a new project', value: 'create' },\r\n { name: 'šŸš€ Start development server', value: 'dev' },\r\n { name: 'šŸ”Ø Build for production', value: 'build' },\r\n { name: '⚔ Generate code', value: 'generate' },\r\n { name: 'šŸ¤– Generate API client', value: 'codegen' },\r\n { name: 'āŒ Exit', value: 'exit' },\r\n ],\r\n },\r\n ]);\r\n\r\n if (action === 'exit') {\r\n logger.info('Goodbye! šŸ‘‹');\r\n process.exit(0);\r\n }\r\n\r\n // Route to appropriate command\r\n if (action === 'create') {\r\n const { projectName, template } = await inquirer.prompt([\r\n {\r\n type: 'input',\r\n name: 'projectName',\r\n message: 'Project name:',\r\n default: 'my-wexts-app',\r\n },\r\n {\r\n type: 'list',\r\n name: 'template',\r\n message: 'Select template:',\r\n choices: [\r\n { name: 'šŸ“¦ Monorepo (Next.js + NestJS)', value: 'monorepo' },\r\n { name: 'šŸŽÆ API only (NestJS)', value: 'api' },\r\n { name: '🌐 Web only (Next.js)', value: 'web' },\r\n ],\r\n },\r\n ]);\r\n\r\n await createProject(projectName, template);\r\n } else if (action === 'dev') {\r\n logger.info(pc.green('šŸš€ Starting development servers...\\n'));\r\n logger.warn('Dev server not yet implemented');\r\n } else if (action === 'build') {\r\n logger.info(pc.blue('šŸ”Ø Building project...\\n'));\r\n logger.warn('Build not yet implemented');\r\n } else if (action === 'generate') {\r\n const { type, name } = await inquirer.prompt([\r\n {\r\n type: 'list',\r\n name: 'type',\r\n message: 'What to generate?',\r\n choices: ['controller', 'module', 'service', 'page'],\r\n },\r\n {\r\n type: 'input',\r\n name: 'name',\r\n message: 'Name:',\r\n },\r\n ]);\r\n logger.info(pc.magenta(`\\n⚔ Generating ${type}: ${name}\\n`));\r\n logger.warn('Code generation not yet implemented');\r\n } else if (action === 'codegen') {\r\n logger.info(pc.cyan('\\nšŸ¤– Generating API client...\\n'));\r\n logger.warn('Codegen not yet implemented');\r\n }\r\n });\r\n\r\n// Create Command\r\nprogram\r\n .command('create <project-name>')\r\n .description('Create a new wexts project')\r\n .option('-t, --template <template>', 'Template to use (monorepo|api|web)', 'monorepo')\r\n .action(async (projectName: string, options: any) => {\r\n await createProject(projectName, options.template);\r\n });\r\n\r\n// Dev Command\r\nprogram\r\n .command('dev')\r\n .description('Start development servers')\r\n .option('-a, --api <path>', 'Path to API project', './apps/api')\r\n .option('-w, --web <path>', 'Path to Web project', './apps/web')\r\n .option('-p, --port <port>', 'Port for web server', '3000')\r\n .option('--api-port <port>', 'Port for API server', '5050')\r\n .option('--no-proxy', 'Disable proxy server')\r\n .action(async (options: any) => {\r\n logger.info(pc.green('šŸš€ Starting Wexts development servers...\\n'));\r\n\r\n const { FusionDevServer } = await import('../dev-server/index.js');\r\n const server = new FusionDevServer();\r\n\r\n try {\r\n await server.start({\r\n apiPath: options.api,\r\n webPath: options.web,\r\n webPort: parseInt(options.port),\r\n apiPort: parseInt(options.apiPort),\r\n useProxy: options.proxy,\r\n });\r\n } catch (error: any) {\r\n logger.error('Failed to start dev server:', error.message);\r\n process.exit(1);\r\n }\r\n });\r\n\r\n// Build Command\r\nprogram\r\n .command('build')\r\n .description('Build for production')\r\n .action(async () => {\r\n logger.info(pc.blue('Building Wexts project...'));\r\n\r\n // TODO: Build logic\r\n logger.warn('Build not yet implemented');\r\n });\r\n\r\n// Generate Command\r\nprogram\r\n .command('generate <type> <name>')\r\n .alias('g')\r\n .description('Generate code (controller|module|page)')\r\n .action(async (type: string, name: string) => {\r\n logger.info(pc.magenta(`Generating ${type}: ${name}`));\r\n\r\n // TODO: Code generation\r\n logger.warn('Code generation not yet implemented');\r\n });\r\n\r\n// Codegen Command\r\nprogram\r\n .command('codegen')\r\n .description('Generate API client from NestJS controllers')\r\n .option('-w, --watch', 'Watch mode - regenerate on changes')\r\n .option('-p, --project <path>', 'Path to NestJS project', './apps/api')\r\n .option('-o, --output <path>', 'Output path for generated client', './packages/api-client/src')\r\n .action(async (options: any) => {\r\n const { NestJSParser, ClientGenerator, CodegenWatcher } = await import('../codegen/index.js');\r\n\r\n if (options.watch) {\r\n logger.info(pc.cyan('Starting codegen in watch mode...'));\r\n const watcher = new CodegenWatcher();\r\n await watcher.watch({\r\n projectPath: options.project,\r\n outputPath: options.output,\r\n });\r\n } else {\r\n logger.info(pc.cyan('Generating API client...'));\r\n const parser = new NestJSParser(options.project);\r\n const controllers = parser.findFusionControllers();\r\n\r\n const generator = new ClientGenerator();\r\n await generator.generate({\r\n controllers,\r\n outputPath: options.output,\r\n });\r\n }\r\n });\r\n\r\n// Helper function for creating project\r\nasync function createProject(projectName: string, template: string) {\r\n logger.info(pc.cyan(`Creating wexts project: ${pc.bold(projectName)}`));\r\n logger.info(`Template: ${template}`);\r\n\r\n const projectPath = path.join(process.cwd(), projectName);\r\n\r\n if (fs.existsSync(projectPath)) {\r\n logger.error(`Directory ${projectName} already exists!`);\r\n process.exit(1);\r\n }\r\n\r\n // Helper to resolve template path\r\n function getTemplatePath(): string {\r\n // Try multiple locations\r\n const possiblePaths = [\r\n path.join(__dirname, '../../templates'), // When running from dist/cli/index.js\r\n path.join(__dirname, '../templates'), // Alternative structure\r\n path.join(process.cwd(), 'templates'), // Local dev\r\n path.resolve(__dirname, '..', '..', 'templates') // Absolute resolve\r\n ];\r\n\r\n for (const p of possiblePaths) {\r\n if (fs.existsSync(p)) {\r\n return p;\r\n }\r\n }\r\n return '';\r\n }\r\n\r\n const templatePath = getTemplatePath();\r\n\r\n if (!templatePath) {\r\n logger.error(`āŒ Template directory not found!`);\r\n logger.info(`Searched in:`);\r\n logger.info(` - ${path.join(__dirname, '../../templates')}`);\r\n logger.info(` - ${path.join(__dirname, '../templates')}`);\r\n logger.info(` - ${path.join(process.cwd(), 'templates')}`);\r\n\r\n // Fallback to basic structure if templates are missing (for dev/test)\r\n logger.warn('āš ļø Using fallback scaffolding (empty structure)');\r\n fs.mkdirSync(projectPath, { recursive: true });\r\n fs.mkdirSync(path.join(projectPath, 'apps'), { recursive: true });\r\n fs.mkdirSync(path.join(projectPath, 'packages'), { recursive: true });\r\n } else {\r\n logger.info(`šŸ“¦ Copying templates from: ${templatePath}`);\r\n\r\n fs.mkdirSync(projectPath, { recursive: true });\r\n fs.mkdirSync(path.join(projectPath, 'apps'), { recursive: true });\r\n fs.mkdirSync(path.join(projectPath, 'packages'), { recursive: true });\r\n\r\n // Copy NestJS API Template\r\n const apiTemplatePath = path.join(templatePath, 'nestjs-api');\r\n const apiDestPath = path.join(projectPath, 'apps/api');\r\n if (fs.existsSync(apiTemplatePath)) {\r\n fs.cpSync(apiTemplatePath, apiDestPath, { recursive: true });\r\n logger.success(' - Copied API template');\r\n } else {\r\n logger.warn(` āš ļø API template not found at ${apiTemplatePath}`);\r\n }\r\n\r\n // Copy Next.js Web Template\r\n const webTemplatePath = path.join(templatePath, 'nextjs-web');\r\n const webDestPath = path.join(projectPath, 'apps/web');\r\n if (fs.existsSync(webTemplatePath)) {\r\n fs.cpSync(webTemplatePath, webDestPath, { recursive: true });\r\n logger.success(' - Copied Web template');\r\n } else {\r\n logger.warn(` āš ļø Web template not found at ${webTemplatePath}`);\r\n }\r\n }\r\n\r\n // Create package.json\r\n const packageJson = {\r\n name: projectName,\r\n version: \"0.0.0\",\r\n private: true,\r\n scripts: {\r\n \"build\": \"turbo run build\",\r\n \"dev\": \"turbo run dev\",\r\n \"lint\": \"turbo run lint\",\r\n \"format\": \"prettier --write \\\"**/*.{ts,tsx,md}\\\"\"\r\n },\r\n devDependencies: {\r\n \"turbo\": \"latest\",\r\n \"prettier\": \"latest\",\r\n \"typescript\": \"^5.9.3\",\r\n \"wexts\": \"latest\"\r\n },\r\n packageManager: \"pnpm@10.0.0\",\r\n workspaces: [\r\n \"apps/*\",\r\n \"packages/*\"\r\n ]\r\n };\r\n\r\n fs.writeFileSync(\r\n path.join(projectPath, 'package.json'),\r\n JSON.stringify(packageJson, null, 2)\r\n );\r\n\r\n // Create turbo.json\r\n const turboJson = {\r\n \"$schema\": \"https://turbo.build/schema.json\",\r\n \"tasks\": {\r\n \"build\": {\r\n \"dependsOn\": [\"^build\"],\r\n \"outputs\": [\".next/**\", \"!.next/cache/**\", \"dist/**\"]\r\n },\r\n \"lint\": {},\r\n \"dev\": {\r\n \"cache\": false,\r\n \"persistent\": true\r\n }\r\n }\r\n };\r\n\r\n fs.writeFileSync(\r\n path.join(projectPath, 'turbo.json'),\r\n JSON.stringify(turboJson, null, 2)\r\n );\r\n\r\n logger.success('āœ… Project structure created');\r\n logger.info('šŸ“¦ Installing dependencies...');\r\n\r\n try {\r\n // Check if pnpm is installed\r\n try {\r\n execSync('pnpm --version', { stdio: 'ignore' });\r\n } catch {\r\n logger.info('Installing pnpm...');\r\n execSync('npm install -g pnpm', { stdio: 'ignore' });\r\n }\r\n\r\n execSync('pnpm install', { cwd: projectPath, stdio: 'inherit' });\r\n logger.success('āœ… Dependencies installed');\r\n\r\n logger.info(pc.green(`\\nšŸŽ‰ Project ${projectName} created successfully!`));\r\n logger.info(`\\nTo get started:\\n`);\r\n logger.info(pc.cyan(` cd ${projectName}`));\r\n logger.info(pc.cyan(` pnpm dev\\n`));\r\n } catch (error) {\r\n logger.error('Failed to install dependencies');\r\n }\r\n}\r\n\r\nprogram.parse();\r\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/cli/index.ts"],"sourcesContent":["#!/usr/bin/env node\r\n\r\nimport { Command } from 'commander';\r\nimport { logger } from '../core/logger';\r\nimport * as pc from 'picocolors';\r\nimport inquirer from 'inquirer';\r\nimport * as fs from 'fs';\r\nimport * as path from 'path';\r\nimport { execSync } from 'child_process';\r\n\r\nconst program = new Command();\r\n\r\nprogram\r\n .name('wexts')\r\n .description('Wexts Framework - Next.js 16 + NestJS 11')\r\n .version('2.0.0');\r\n\r\n// Interactive Mode (when no command is provided)\r\nprogram\r\n .action(async () => {\r\n console.log(pc.cyan(`\r\n╔══════════════════════════════════════════╗\r\nā•‘ ā•‘\r\nā•‘ ${pc.bold('šŸš€ Wexts Framework v2.0')} ā•‘\r\nā•‘ ā•‘\r\nā•‘ Next.js 16 + NestJS 11 Full-Stack ā•‘\r\nā•‘ ā•‘\r\nā•šā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•\r\n `));\r\n\r\n const { action } = await inquirer.prompt([\r\n {\r\n type: 'list',\r\n name: 'action',\r\n message: 'What would you like to do?',\r\n choices: [\r\n { name: 'šŸ“¦ Create a new project', value: 'create' },\r\n { name: 'šŸš€ Start development server', value: 'dev' },\r\n { name: 'šŸ”Ø Build for production', value: 'build' },\r\n { name: '⚔ Generate code', value: 'generate' },\r\n { name: 'šŸ¤– Generate API client', value: 'codegen' },\r\n { name: 'āŒ Exit', value: 'exit' },\r\n ],\r\n },\r\n ]);\r\n\r\n if (action === 'exit') {\r\n logger.info('Goodbye! šŸ‘‹');\r\n process.exit(0);\r\n }\r\n\r\n // Route to appropriate command\r\n if (action === 'create') {\r\n const { projectName, template } = await inquirer.prompt([\r\n {\r\n type: 'input',\r\n name: 'projectName',\r\n message: 'Project name:',\r\n default: 'my-wexts-app',\r\n },\r\n {\r\n type: 'list',\r\n name: 'template',\r\n message: 'Select template:',\r\n choices: [\r\n { name: 'šŸ“¦ Monorepo (Next.js + NestJS)', value: 'monorepo' },\r\n { name: 'šŸŽÆ API only (NestJS)', value: 'api' },\r\n { name: '🌐 Web only (Next.js)', value: 'web' },\r\n ],\r\n },\r\n ]);\r\n\r\n await createProject(projectName, template);\r\n } else if (action === 'dev') {\r\n logger.info(pc.green('šŸš€ Starting development servers...\\n'));\r\n logger.warn('Dev server not yet implemented');\r\n } else if (action === 'build') {\r\n logger.info(pc.blue('šŸ”Ø Building project...\\n'));\r\n logger.warn('Build not yet implemented');\r\n } else if (action === 'generate') {\r\n const { type, name } = await inquirer.prompt([\r\n {\r\n type: 'list',\r\n name: 'type',\r\n message: 'What to generate?',\r\n choices: ['controller', 'module', 'service', 'page'],\r\n },\r\n {\r\n type: 'input',\r\n name: 'name',\r\n message: 'Name:',\r\n },\r\n ]);\r\n logger.info(pc.magenta(`\\n⚔ Generating ${type}: ${name}\\n`));\r\n logger.warn('Code generation not yet implemented');\r\n } else if (action === 'codegen') {\r\n logger.info(pc.cyan('\\nšŸ¤– Generating API client...\\n'));\r\n logger.warn('Codegen not yet implemented');\r\n }\r\n });\r\n\r\n// Create Command\r\nprogram\r\n .command('create <project-name>')\r\n .description('Create a new wexts project')\r\n .option('-t, --template <template>', 'Template to use (monorepo|api|web)', 'monorepo')\r\n .action(async (projectName: string, options: any) => {\r\n await createProject(projectName, options.template);\r\n });\r\n\r\n// Dev Command\r\nprogram\r\n .command('dev')\r\n .description('Start development servers')\r\n .option('-a, --api <path>', 'Path to API project', './apps/api')\r\n .option('-w, --web <path>', 'Path to Web project', './apps/web')\r\n .option('-p, --port <port>', 'Port for web server', '3000')\r\n .option('--api-port <port>', 'Port for API server', '5050')\r\n .option('--no-proxy', 'Disable proxy server')\r\n .action(async (options: any) => {\r\n logger.info(pc.green('šŸš€ Starting Wexts development servers...\\n'));\r\n\r\n const { FusionDevServer } = await import('../dev-server/index.js');\r\n const server = new FusionDevServer();\r\n\r\n try {\r\n await server.start({\r\n apiPath: options.api,\r\n webPath: options.web,\r\n webPort: parseInt(options.port),\r\n apiPort: parseInt(options.apiPort),\r\n useProxy: options.proxy,\r\n });\r\n } catch (error: any) {\r\n logger.error('Failed to start dev server:', error.message);\r\n process.exit(1);\r\n }\r\n });\r\n\r\n// Build Command\r\nprogram\r\n .command('build')\r\n .description('Build for production')\r\n .action(async () => {\r\n logger.info(pc.blue('Building Wexts project...'));\r\n\r\n // TODO: Build logic\r\n logger.warn('Build not yet implemented');\r\n });\r\n\r\n// Generate Command\r\nprogram\r\n .command('generate <type> <name>')\r\n .alias('g')\r\n .description('Generate code (controller|module|page)')\r\n .action(async (type: string, name: string) => {\r\n logger.info(pc.magenta(`Generating ${type}: ${name}`));\r\n\r\n // TODO: Code generation\r\n logger.warn('Code generation not yet implemented');\r\n });\r\n\r\n// Codegen Command\r\nprogram\r\n .command('codegen')\r\n .description('Generate API client from NestJS controllers')\r\n .option('-w, --watch', 'Watch mode - regenerate on changes')\r\n .option('-p, --project <path>', 'Path to NestJS project', './apps/api')\r\n .option('-o, --output <path>', 'Output path for generated client', './packages/api-client/src')\r\n .action(async (options: any) => {\r\n const { NestJSParser, ClientGenerator, CodegenWatcher } = await import('../codegen/index.js');\r\n\r\n if (options.watch) {\r\n logger.info(pc.cyan('Starting codegen in watch mode...'));\r\n const watcher = new CodegenWatcher();\r\n await watcher.watch({\r\n projectPath: options.project,\r\n outputPath: options.output,\r\n });\r\n } else {\r\n logger.info(pc.cyan('Generating API client...'));\r\n const parser = new NestJSParser(options.project);\r\n const controllers = parser.findFusionControllers();\r\n\r\n const generator = new ClientGenerator();\r\n await generator.generate({\r\n controllers,\r\n outputPath: options.output,\r\n });\r\n }\r\n });\r\n\r\n// Helper function for creating project\r\nasync function createProject(projectName: string, template: string) {\r\n logger.info(pc.cyan(`Creating wexts project: ${pc.bold(projectName)}`));\r\n logger.info(`Template: ${template}`);\r\n\r\n const projectPath = path.join(process.cwd(), projectName);\r\n\r\n if (fs.existsSync(projectPath)) {\r\n logger.error(`Directory ${projectName} already exists!`);\r\n process.exit(1);\r\n }\r\n\r\n // Helper to resolve template path\r\n function getTemplatePath(): string {\r\n // Try multiple locations\r\n const possiblePaths = [\r\n path.join(__dirname, '../../templates'), // When running from dist/cli/index.js\r\n path.join(__dirname, '../templates'), // Alternative structure\r\n path.join(process.cwd(), 'templates'), // Local dev\r\n path.resolve(__dirname, '..', '..', 'templates') // Absolute resolve\r\n ];\r\n\r\n for (const p of possiblePaths) {\r\n if (fs.existsSync(p)) {\r\n return p;\r\n }\r\n }\r\n return '';\r\n }\r\n\r\n const templatePath = getTemplatePath();\r\n\r\n if (!templatePath) {\r\n logger.error(`āŒ Template directory not found!`);\r\n logger.info(`Searched in:`);\r\n logger.info(` - ${path.join(__dirname, '../../templates')}`);\r\n logger.info(` - ${path.join(__dirname, '../templates')}`);\r\n logger.info(` - ${path.join(process.cwd(), 'templates')}`);\r\n\r\n // Fallback to basic structure if templates are missing (for dev/test)\r\n logger.warn('āš ļø Using fallback scaffolding (empty structure)');\r\n fs.mkdirSync(projectPath, { recursive: true });\r\n fs.mkdirSync(path.join(projectPath, 'apps'), { recursive: true });\r\n fs.mkdirSync(path.join(projectPath, 'packages'), { recursive: true });\r\n } else {\r\n logger.info(`šŸ“¦ Copying templates from: ${templatePath}`);\r\n\r\n fs.mkdirSync(projectPath, { recursive: true });\r\n fs.mkdirSync(path.join(projectPath, 'apps'), { recursive: true });\r\n fs.mkdirSync(path.join(projectPath, 'packages'), { recursive: true });\r\n\r\n // Copy NestJS API Template\r\n const apiTemplatePath = path.join(templatePath, 'nestjs-api');\r\n const apiDestPath = path.join(projectPath, 'apps/api');\r\n if (fs.existsSync(apiTemplatePath)) {\r\n fs.cpSync(apiTemplatePath, apiDestPath, { recursive: true });\r\n logger.success(' - Copied API template');\r\n\r\n // Copy .env.example to .env\r\n const envExamplePath = path.join(apiDestPath, '.env.example');\r\n const envPath = path.join(apiDestPath, '.env');\r\n if (fs.existsSync(envExamplePath) && !fs.existsSync(envPath)) {\r\n fs.copyFileSync(envExamplePath, envPath);\r\n logger.success(' - Created .env from .env.example');\r\n }\r\n } else {\r\n logger.warn(` āš ļø API template not found at ${apiTemplatePath}`);\r\n }\r\n\r\n // Copy Next.js Web Template\r\n const webTemplatePath = path.join(templatePath, 'nextjs-web');\r\n const webDestPath = path.join(projectPath, 'apps/web');\r\n if (fs.existsSync(webTemplatePath)) {\r\n fs.cpSync(webTemplatePath, webDestPath, { recursive: true });\r\n logger.success(' - Copied Web template');\r\n } else {\r\n logger.warn(` āš ļø Web template not found at ${webTemplatePath}`);\r\n }\r\n }\r\n\r\n // Create package.json\r\n const packageJson = {\r\n name: projectName,\r\n version: \"0.0.0\",\r\n private: true,\r\n scripts: {\r\n \"build\": \"pnpm exec turbo build\",\r\n \"dev\": \"pnpm exec turbo dev\",\r\n \"lint\": \"pnpm exec turbo lint\",\r\n \"format\": \"prettier --write \\\"**/*.{ts,tsx,md}\\\"\"\r\n },\r\n devDependencies: {\r\n \"turbo\": \"^2.6.1\",\r\n \"prettier\": \"latest\",\r\n \"typescript\": \"^5.9.3\",\r\n \"wexts\": \"latest\"\r\n },\r\n packageManager: \"pnpm@10.0.0\"\r\n };\r\n\r\n fs.writeFileSync(\r\n path.join(projectPath, 'package.json'),\r\n JSON.stringify(packageJson, null, 2)\r\n );\r\n\r\n // Create turbo.json\r\n const turboJson = {\r\n \"$schema\": \"https://turbo.build/schema.json\",\r\n \"tasks\": {\r\n \"build\": {\r\n \"dependsOn\": [\"^build\"],\r\n \"outputs\": [\".next/**\", \"!.next/cache/**\", \"dist/**\"]\r\n },\r\n \"lint\": {},\r\n \"dev\": {\r\n \"cache\": false,\r\n \"persistent\": true\r\n }\r\n }\r\n };\r\n\r\n fs.writeFileSync(\r\n path.join(projectPath, 'turbo.json'),\r\n JSON.stringify(turboJson, null, 2)\r\n );\r\n\r\n // Create pnpm-workspace.yaml\r\n const pnpmWorkspace = `packages:\r\n - 'apps/*'\r\n - 'packages/*'\r\n`;\r\n fs.writeFileSync(\r\n path.join(projectPath, 'pnpm-workspace.yaml'),\r\n pnpmWorkspace\r\n );\r\n\r\n logger.success('āœ… Project structure created');\r\n logger.info('šŸ“¦ Installing dependencies...');\r\n\r\n try {\r\n // Check if pnpm is installed\r\n try {\r\n execSync('pnpm --version', { stdio: 'ignore' });\r\n } catch {\r\n logger.info('Installing pnpm...');\r\n execSync('npm install -g pnpm', { stdio: 'ignore' });\r\n }\r\n\r\n execSync('pnpm install', { cwd: projectPath, stdio: 'inherit' });\r\n logger.success('āœ… Dependencies installed');\r\n\r\n logger.info(pc.green(`\\nšŸŽ‰ Project ${projectName} created successfully!`));\r\n logger.info(`\\nTo get started:\\n`);\r\n logger.info(pc.cyan(` cd ${projectName}`));\r\n logger.info(pc.cyan(` pnpm dev\\n`));\r\n } catch (error) {\r\n logger.error('Failed to install dependencies');\r\n }\r\n}\r\n\r\nprogram.parse();\r\n"],"mappings":"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","names":["Command","pc","inquirer","fs","path","execSync","program","Command","name","description","version","action","console","log","cyan","bold","inquirer","prompt","type","message","choices","value","logger","info","process","exit","projectName","template","default","createProject","green","warn","blue","magenta","command","option","options","FusionDevServer","server","start","apiPath","api","webPath","web","webPort","parseInt","port","apiPort","useProxy","proxy","error","alias","NestJSParser","ClientGenerator","CodegenWatcher","watch","watcher","projectPath","project","outputPath","output","parser","controllers","findFusionControllers","generator","generate","join","cwd","existsSync","getTemplatePath","possiblePaths","__dirname","resolve","p","templatePath","fs","mkdirSync","recursive","apiTemplatePath","apiDestPath","cpSync","success","envExamplePath","envPath","copyFileSync","webTemplatePath","webDestPath","packageJson","private","scripts","devDependencies","packageManager","writeFileSync","JSON","stringify","turboJson","pnpmWorkspace","execSync","stdio","parse"]}
@@ -1,10 +1,10 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
3
 
4
- var _chunkASDXAK6Gjs = require('../chunk-ASDXAK6G.js');
5
- require('../chunk-PZ5AY32C.js');
4
+ var _chunkXVKTIYHYjs = require('../chunk-XVKTIYHY.js');
5
+ require('../chunk-XE4OXN2W.js');
6
6
 
7
7
 
8
8
 
9
- exports.FusionFetcher = _chunkASDXAK6Gjs.FusionFetcher; exports.apiFetcher = _chunkASDXAK6Gjs.apiFetcher;
9
+ exports.FusionFetcher = _chunkXVKTIYHYjs.FusionFetcher; exports.apiFetcher = _chunkXVKTIYHYjs.apiFetcher;
10
10
  //# sourceMappingURL=index.js.map
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  FusionFetcher,
3
3
  apiFetcher
4
- } from "../chunk-67IJ6H4J.mjs";
5
- import "../chunk-CKZ4VSCB.mjs";
4
+ } from "../chunk-VMT3LALB.mjs";
5
+ import "../chunk-FCEZDH42.mjs";
6
6
  export {
7
7
  FusionFetcher,
8
8
  apiFetcher
@@ -2,12 +2,12 @@
2
2
 
3
3
 
4
4
 
5
- var _chunkHU63F22Vjs = require('../chunk-HU63F22V.js');
6
- require('../chunk-DW6GOKMF.js');
7
- require('../chunk-PZ5AY32C.js');
5
+ var _chunk667BQCEMjs = require('../chunk-667BQCEM.js');
6
+ require('../chunk-3OM7CHCA.js');
7
+ require('../chunk-XE4OXN2W.js');
8
8
 
9
9
 
10
10
 
11
11
 
12
- exports.ClientGenerator = _chunkHU63F22Vjs.ClientGenerator; exports.CodegenWatcher = _chunkHU63F22Vjs.CodegenWatcher; exports.NestJSParser = _chunkHU63F22Vjs.NestJSParser;
12
+ exports.ClientGenerator = _chunk667BQCEMjs.ClientGenerator; exports.CodegenWatcher = _chunk667BQCEMjs.CodegenWatcher; exports.NestJSParser = _chunk667BQCEMjs.NestJSParser;
13
13
  //# sourceMappingURL=index.js.map
@@ -2,9 +2,9 @@ import {
2
2
  ClientGenerator,
3
3
  CodegenWatcher,
4
4
  NestJSParser
5
- } from "../chunk-63MTCWU2.mjs";
6
- import "../chunk-HSFLZUJN.mjs";
7
- import "../chunk-CKZ4VSCB.mjs";
5
+ } from "../chunk-ONXNE2A6.mjs";
6
+ import "../chunk-VNNVLQLJ.mjs";
7
+ import "../chunk-FCEZDH42.mjs";
8
8
  export {
9
9
  ClientGenerator,
10
10
  CodegenWatcher,
@@ -2,12 +2,12 @@
2
2
 
3
3
 
4
4
 
5
- var _chunkJMBD6DOPjs = require('../chunk-JMBD6DOP.js');
6
- require('../chunk-DW6GOKMF.js');
7
- require('../chunk-PZ5AY32C.js');
5
+ var _chunkO42L6HOXjs = require('../chunk-O42L6HOX.js');
6
+ require('../chunk-3OM7CHCA.js');
7
+ require('../chunk-XE4OXN2W.js');
8
8
 
9
9
 
10
10
 
11
11
 
12
- exports.FusionDevServer = _chunkJMBD6DOPjs.FusionDevServer; exports.ProcessRunner = _chunkJMBD6DOPjs.ProcessRunner; exports.ProxyServer = _chunkJMBD6DOPjs.ProxyServer;
12
+ exports.FusionDevServer = _chunkO42L6HOXjs.FusionDevServer; exports.ProcessRunner = _chunkO42L6HOXjs.ProcessRunner; exports.ProxyServer = _chunkO42L6HOXjs.ProxyServer;
13
13
  //# sourceMappingURL=index.js.map
@@ -2,9 +2,9 @@ import {
2
2
  FusionDevServer,
3
3
  ProcessRunner,
4
4
  ProxyServer
5
- } from "../chunk-OTBYRUBE.mjs";
6
- import "../chunk-HSFLZUJN.mjs";
7
- import "../chunk-CKZ4VSCB.mjs";
5
+ } from "../chunk-KXYLEUSW.mjs";
6
+ import "../chunk-VNNVLQLJ.mjs";
7
+ import "../chunk-FCEZDH42.mjs";
8
8
  export {
9
9
  FusionDevServer,
10
10
  ProcessRunner,