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.
- package/README.md +123 -237
- package/dist/chunk-2KAQYLVN.js +1 -0
- package/dist/chunk-2KAQYLVN.js.map +1 -0
- package/dist/chunk-3OM7CHCA.js +65 -0
- package/dist/chunk-3OM7CHCA.js.map +1 -0
- package/dist/chunk-667BQCEM.js +375 -0
- package/dist/chunk-667BQCEM.js.map +1 -0
- package/dist/chunk-FCEZDH42.mjs +20 -0
- package/dist/chunk-FCEZDH42.mjs.map +1 -0
- package/dist/chunk-KXYLEUSW.mjs +242 -0
- package/dist/chunk-KXYLEUSW.mjs.map +1 -0
- package/dist/chunk-O42L6HOX.js +242 -0
- package/dist/chunk-O42L6HOX.js.map +1 -0
- package/dist/chunk-ONXNE2A6.mjs +375 -0
- package/dist/chunk-ONXNE2A6.mjs.map +1 -0
- package/dist/chunk-STTOPUZ2.mjs +88 -0
- package/dist/chunk-STTOPUZ2.mjs.map +1 -0
- package/dist/chunk-VMT3LALB.mjs +51 -0
- package/dist/chunk-VMT3LALB.mjs.map +1 -0
- package/dist/chunk-VNNVLQLJ.mjs +65 -0
- package/dist/chunk-VNNVLQLJ.mjs.map +1 -0
- package/dist/chunk-WF65EDRZ.js +88 -0
- package/dist/chunk-WF65EDRZ.js.map +1 -0
- package/dist/chunk-XE4OXN2W.js +12 -0
- package/dist/chunk-XE4OXN2W.js.map +1 -0
- package/dist/chunk-XVKTIYHY.js +51 -0
- package/dist/chunk-XVKTIYHY.js.map +1 -0
- package/dist/chunk-YSLEF5C5.mjs +1 -0
- package/dist/chunk-YSLEF5C5.mjs.map +1 -0
- package/dist/cli/index.js +148 -85
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/index.mjs +108 -46
- package/dist/cli/index.mjs.map +1 -1
- package/dist/client/index.js +3 -3
- package/dist/client/index.mjs +2 -2
- package/dist/codegen/index.js +4 -4
- package/dist/codegen/index.mjs +3 -3
- package/dist/dev-server/index.js +4 -4
- package/dist/dev-server/index.mjs +3 -3
- package/dist/index.js +93 -51
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +75 -33
- package/dist/index.mjs.map +1 -1
- package/dist/nest/index.js +3 -3
- package/dist/nest/index.mjs +2 -2
- package/dist/next/index.js +22 -9
- package/dist/next/index.js.map +1 -1
- package/dist/next/index.mjs +23 -9
- package/dist/next/index.mjs.map +1 -1
- package/dist/types/index.js +1 -1
- package/dist/types/index.mjs +2 -2
- package/package.json +114 -113
- package/templates/nestjs-api/.env +4 -0
- package/templates/nestjs-api/.env.example +3 -0
- package/templates/nestjs-api/prisma/dev.db +0 -0
- package/templates/nextjs-web/next-env.d.ts +1 -1
package/dist/cli/index.mjs
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
logger
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-VNNVLQLJ.mjs";
|
|
5
5
|
import {
|
|
6
|
-
__dirname
|
|
7
|
-
|
|
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
|
-
{
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
{
|
|
39
|
-
|
|
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
|
-
{
|
|
61
|
-
|
|
62
|
-
|
|
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: [
|
|
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, {
|
|
179
|
-
|
|
180
|
-
|
|
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, {
|
|
184
|
-
|
|
185
|
-
|
|
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, {
|
|
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, {
|
|
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
|
|
209
|
-
"dev": "turbo
|
|
210
|
-
"lint": "turbo
|
|
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": "
|
|
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": [
|
|
234
|
-
|
|
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
|
-
|
|
245
|
-
|
|
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", {
|
|
305
|
+
execSync("pnpm --version", {
|
|
306
|
+
stdio: "ignore"
|
|
307
|
+
});
|
|
252
308
|
} catch {
|
|
253
309
|
logger.info("Installing pnpm...");
|
|
254
|
-
execSync("npm install -g pnpm", {
|
|
310
|
+
execSync("npm install -g pnpm", {
|
|
311
|
+
stdio: "ignore"
|
|
312
|
+
});
|
|
255
313
|
}
|
|
256
|
-
execSync("pnpm install", {
|
|
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
|
package/dist/cli/index.mjs.map
CHANGED
|
@@ -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"]}
|
package/dist/client/index.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
2
|
|
|
3
3
|
|
|
4
|
-
var
|
|
5
|
-
require('../chunk-
|
|
4
|
+
var _chunkXVKTIYHYjs = require('../chunk-XVKTIYHY.js');
|
|
5
|
+
require('../chunk-XE4OXN2W.js');
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
exports.FusionFetcher =
|
|
9
|
+
exports.FusionFetcher = _chunkXVKTIYHYjs.FusionFetcher; exports.apiFetcher = _chunkXVKTIYHYjs.apiFetcher;
|
|
10
10
|
//# sourceMappingURL=index.js.map
|
package/dist/client/index.mjs
CHANGED
package/dist/codegen/index.js
CHANGED
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
|
|
5
|
-
var
|
|
6
|
-
require('../chunk-
|
|
7
|
-
require('../chunk-
|
|
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 =
|
|
12
|
+
exports.ClientGenerator = _chunk667BQCEMjs.ClientGenerator; exports.CodegenWatcher = _chunk667BQCEMjs.CodegenWatcher; exports.NestJSParser = _chunk667BQCEMjs.NestJSParser;
|
|
13
13
|
//# sourceMappingURL=index.js.map
|
package/dist/codegen/index.mjs
CHANGED
|
@@ -2,9 +2,9 @@ import {
|
|
|
2
2
|
ClientGenerator,
|
|
3
3
|
CodegenWatcher,
|
|
4
4
|
NestJSParser
|
|
5
|
-
} from "../chunk-
|
|
6
|
-
import "../chunk-
|
|
7
|
-
import "../chunk-
|
|
5
|
+
} from "../chunk-ONXNE2A6.mjs";
|
|
6
|
+
import "../chunk-VNNVLQLJ.mjs";
|
|
7
|
+
import "../chunk-FCEZDH42.mjs";
|
|
8
8
|
export {
|
|
9
9
|
ClientGenerator,
|
|
10
10
|
CodegenWatcher,
|
package/dist/dev-server/index.js
CHANGED
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
|
|
5
|
-
var
|
|
6
|
-
require('../chunk-
|
|
7
|
-
require('../chunk-
|
|
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 =
|
|
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-
|
|
6
|
-
import "../chunk-
|
|
7
|
-
import "../chunk-
|
|
5
|
+
} from "../chunk-KXYLEUSW.mjs";
|
|
6
|
+
import "../chunk-VNNVLQLJ.mjs";
|
|
7
|
+
import "../chunk-FCEZDH42.mjs";
|
|
8
8
|
export {
|
|
9
9
|
FusionDevServer,
|
|
10
10
|
ProcessRunner,
|