@mvp-kit/create 0.0.10 โ†’ 0.0.12

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/dist/test.js DELETED
@@ -1,359 +0,0 @@
1
- #!/usr/bin/env node
2
- import fs from 'fs-extra';
3
- import path from 'path';
4
- import { execSync } from 'child_process';
5
- import chalk from 'chalk';
6
- import ora from 'ora';
7
- import { createProject } from './create.js';
8
- class AppValidator {
9
- testDir;
10
- appName;
11
- appPath;
12
- constructor(testDir = 'test-validation') {
13
- this.testDir = testDir;
14
- this.appName = `test-app-${Date.now()}`;
15
- this.appPath = path.join(testDir, this.appName);
16
- }
17
- async runFullValidation() {
18
- const results = [];
19
- const originalCwd = process.cwd();
20
- console.log(chalk.blue.bold('๐Ÿงช MVPKit CLI - Full App Validation\n'));
21
- try {
22
- // Clean up any existing test directory
23
- const fullTestDir = path.resolve(originalCwd, this.testDir);
24
- if (fs.existsSync(fullTestDir)) {
25
- await fs.remove(fullTestDir);
26
- }
27
- await fs.ensureDir(fullTestDir);
28
- // Test 1: App Creation
29
- results.push(await this.testAppCreation(originalCwd));
30
- // Test 2: Package.json Validation
31
- results.push(await this.testPackageJsonTransformation());
32
- // Test 3: Dependency Installation
33
- results.push(await this.testDependencyInstallation());
34
- // Test 4: Build Process (must come before TypeScript check)
35
- results.push(await this.testBuildProcess());
36
- // Test 5: TypeScript Compilation
37
- results.push(await this.testTypeScriptCompilation());
38
- // Test 6: Linting
39
- results.push(await this.testLinting());
40
- // Test 7: Project Structure
41
- results.push(await this.testProjectStructure());
42
- // Test 8: Environment Files
43
- results.push(await this.testEnvironmentFiles());
44
- }
45
- catch (error) {
46
- results.push({
47
- name: 'Test Suite Setup',
48
- success: false,
49
- error: error instanceof Error ? error.message : String(error)
50
- });
51
- }
52
- this.printResults(results);
53
- return results;
54
- }
55
- async testAppCreation(originalCwd) {
56
- const spinner = ora('Creating test app...').start();
57
- const startTime = Date.now();
58
- try {
59
- // Create app in the test directory
60
- const fullTestDir = path.resolve(originalCwd, this.testDir);
61
- process.chdir(fullTestDir);
62
- await createProject(this.appName, {
63
- description: 'Test MVPKit application for validation',
64
- install: false,
65
- git: false
66
- });
67
- // Update app path to be absolute
68
- this.appPath = path.join(fullTestDir, this.appName);
69
- if (!fs.existsSync(this.appPath)) {
70
- throw new Error('App directory was not created');
71
- }
72
- // Return to original directory
73
- process.chdir(originalCwd);
74
- spinner.succeed('App creation successful');
75
- return {
76
- name: 'App Creation',
77
- success: true,
78
- duration: Date.now() - startTime
79
- };
80
- }
81
- catch (error) {
82
- process.chdir(originalCwd); // Ensure we return to original directory
83
- spinner.fail('App creation failed');
84
- return {
85
- name: 'App Creation',
86
- success: false,
87
- error: error instanceof Error ? error.message : String(error),
88
- duration: Date.now() - startTime
89
- };
90
- }
91
- }
92
- async testPackageJsonTransformation() {
93
- const startTime = Date.now();
94
- try {
95
- const rootPkg = await fs.readJson(path.join(this.appPath, 'package.json'));
96
- const frontendPkg = await fs.readJson(path.join(this.appPath, 'apps/frontend/package.json'));
97
- const backendPkg = await fs.readJson(path.join(this.appPath, 'apps/backend/package.json'));
98
- const apiPkg = await fs.readJson(path.join(this.appPath, 'packages/api/package.json'));
99
- // Validate transformations
100
- const errors = [];
101
- if (rootPkg.name !== this.appName) {
102
- errors.push(`Root name not transformed: expected "${this.appName}", got "${rootPkg.name}"`);
103
- }
104
- if (frontendPkg.name !== `@${this.appName}/frontend`) {
105
- errors.push(`Frontend name not transformed: expected "@${this.appName}/frontend", got "${frontendPkg.name}"`);
106
- }
107
- if (backendPkg.name !== `@${this.appName}/backend`) {
108
- errors.push(`Backend name not transformed: expected "@${this.appName}/backend", got "${backendPkg.name}"`);
109
- }
110
- if (apiPkg.name !== `@${this.appName}/api`) {
111
- errors.push(`API name not transformed: expected "@${this.appName}/api", got "${apiPkg.name}"`);
112
- }
113
- // Check if old @mvpkit/core references remain
114
- const allPkgs = [frontendPkg, backendPkg, apiPkg];
115
- for (const pkg of allPkgs) {
116
- const deps = { ...pkg.dependencies, ...pkg.devDependencies };
117
- for (const dep of Object.keys(deps)) {
118
- if (dep.startsWith('@mvpkit/core-')) {
119
- errors.push(`Old dependency reference found: ${dep} in ${pkg.name}`);
120
- }
121
- }
122
- }
123
- if (errors.length > 0) {
124
- throw new Error(errors.join('; '));
125
- }
126
- return {
127
- name: 'Package.json Transformation',
128
- success: true,
129
- duration: Date.now() - startTime
130
- };
131
- }
132
- catch (error) {
133
- return {
134
- name: 'Package.json Transformation',
135
- success: false,
136
- error: error instanceof Error ? error.message : String(error),
137
- duration: Date.now() - startTime
138
- };
139
- }
140
- }
141
- async testDependencyInstallation() {
142
- const spinner = ora('Installing dependencies...').start();
143
- const startTime = Date.now();
144
- try {
145
- process.chdir(this.appPath);
146
- execSync('pnpm install', { stdio: 'ignore' });
147
- // Verify node_modules exist
148
- if (!fs.existsSync('node_modules')) {
149
- throw new Error('node_modules directory not created');
150
- }
151
- spinner.succeed('Dependencies installed');
152
- return {
153
- name: 'Dependency Installation',
154
- success: true,
155
- duration: Date.now() - startTime
156
- };
157
- }
158
- catch (error) {
159
- spinner.fail('Dependency installation failed');
160
- return {
161
- name: 'Dependency Installation',
162
- success: false,
163
- error: error instanceof Error ? error.message : String(error),
164
- duration: Date.now() - startTime
165
- };
166
- }
167
- }
168
- async testTypeScriptCompilation() {
169
- const spinner = ora('Running TypeScript checks...').start();
170
- const startTime = Date.now();
171
- try {
172
- execSync('pnpm typecheck', { stdio: 'ignore' });
173
- spinner.succeed('TypeScript compilation successful');
174
- return {
175
- name: 'TypeScript Compilation',
176
- success: true,
177
- duration: Date.now() - startTime
178
- };
179
- }
180
- catch (error) {
181
- spinner.fail('TypeScript compilation failed');
182
- return {
183
- name: 'TypeScript Compilation',
184
- success: false,
185
- error: 'TypeScript compilation errors detected',
186
- duration: Date.now() - startTime
187
- };
188
- }
189
- }
190
- async testLinting() {
191
- const spinner = ora('Running linting...').start();
192
- const startTime = Date.now();
193
- try {
194
- execSync('pnpm lint', { stdio: 'ignore' });
195
- spinner.succeed('Linting passed');
196
- return {
197
- name: 'Linting',
198
- success: true,
199
- duration: Date.now() - startTime
200
- };
201
- }
202
- catch (error) {
203
- spinner.fail('Linting failed');
204
- return {
205
- name: 'Linting',
206
- success: false,
207
- error: 'Linting errors detected',
208
- duration: Date.now() - startTime
209
- };
210
- }
211
- }
212
- async testBuildProcess() {
213
- const spinner = ora('Running build process...').start();
214
- const startTime = Date.now();
215
- try {
216
- execSync('pnpm build', { stdio: 'ignore' });
217
- // Verify build outputs exist
218
- const expectedOutputs = [
219
- 'packages/api/dist',
220
- 'packages/config/dist',
221
- 'apps/frontend/dist'
222
- ];
223
- for (const output of expectedOutputs) {
224
- if (!fs.existsSync(output)) {
225
- throw new Error(`Build output missing: ${output}`);
226
- }
227
- }
228
- spinner.succeed('Build process successful');
229
- return {
230
- name: 'Build Process',
231
- success: true,
232
- duration: Date.now() - startTime
233
- };
234
- }
235
- catch (error) {
236
- spinner.fail('Build process failed');
237
- return {
238
- name: 'Build Process',
239
- success: false,
240
- error: error instanceof Error ? error.message : String(error),
241
- duration: Date.now() - startTime
242
- };
243
- }
244
- }
245
- async testProjectStructure() {
246
- const startTime = Date.now();
247
- try {
248
- const expectedStructure = [
249
- 'package.json',
250
- 'turbo.json',
251
- 'biome.json',
252
- 'README.md',
253
- 'apps/frontend',
254
- 'apps/backend',
255
- 'packages/api',
256
- 'packages/config',
257
- 'apps/frontend/package.json',
258
- 'apps/backend/package.json',
259
- 'packages/api/package.json',
260
- 'packages/config/package.json',
261
- 'apps/frontend/.env.example',
262
- 'apps/backend/.dev.vars.example'
263
- ];
264
- const missingFiles = [];
265
- for (const file of expectedStructure) {
266
- if (!fs.existsSync(path.join(this.appPath, file))) {
267
- missingFiles.push(file);
268
- }
269
- }
270
- if (missingFiles.length > 0) {
271
- throw new Error(`Missing files: ${missingFiles.join(', ')}`);
272
- }
273
- return {
274
- name: 'Project Structure',
275
- success: true,
276
- duration: Date.now() - startTime
277
- };
278
- }
279
- catch (error) {
280
- return {
281
- name: 'Project Structure',
282
- success: false,
283
- error: error instanceof Error ? error.message : String(error),
284
- duration: Date.now() - startTime
285
- };
286
- }
287
- }
288
- async testEnvironmentFiles() {
289
- const startTime = Date.now();
290
- try {
291
- const frontendEnv = await fs.readFile(path.join(this.appPath, 'apps/frontend/.env.example'), 'utf8');
292
- const backendEnv = await fs.readFile(path.join(this.appPath, 'apps/backend/.dev.vars.example'), 'utf8');
293
- // Verify environment files contain expected content
294
- if (!frontendEnv.includes('VITE_APP_NAME')) {
295
- throw new Error('Frontend .env.example missing VITE_APP_NAME');
296
- }
297
- if (!backendEnv.includes('DATABASE_URL')) {
298
- throw new Error('Backend .dev.vars.example missing DATABASE_URL');
299
- }
300
- return {
301
- name: 'Environment Files',
302
- success: true,
303
- duration: Date.now() - startTime
304
- };
305
- }
306
- catch (error) {
307
- return {
308
- name: 'Environment Files',
309
- success: false,
310
- error: error instanceof Error ? error.message : String(error),
311
- duration: Date.now() - startTime
312
- };
313
- }
314
- }
315
- printResults(results) {
316
- console.log(chalk.blue.bold('\n๐Ÿ“Š Test Results:\n'));
317
- let passed = 0;
318
- let failed = 0;
319
- for (const result of results) {
320
- const icon = result.success ? 'โœ…' : 'โŒ';
321
- const duration = result.duration ? ` (${result.duration}ms)` : '';
322
- console.log(`${icon} ${result.name}${duration}`);
323
- if (!result.success && result.error) {
324
- console.log(chalk.red(` Error: ${result.error}`));
325
- }
326
- result.success ? passed++ : failed++;
327
- }
328
- console.log(chalk.blue.bold(`\n๐Ÿ“ˆ Summary: ${passed} passed, ${failed} failed\n`));
329
- if (failed === 0) {
330
- console.log(chalk.green.bold('๐ŸŽ‰ All tests passed! The CLI generates working applications.'));
331
- }
332
- else {
333
- console.log(chalk.red.bold('โš ๏ธ Some tests failed. The CLI needs fixes.'));
334
- process.exit(1);
335
- }
336
- }
337
- async cleanup() {
338
- if (fs.existsSync(this.testDir)) {
339
- await fs.remove(this.testDir);
340
- }
341
- }
342
- }
343
- // CLI interface for running tests
344
- if (import.meta.url === `file://${process.argv[1]}`) {
345
- const validator = new AppValidator();
346
- try {
347
- await validator.runFullValidation();
348
- }
349
- catch (error) {
350
- console.error(chalk.red('Test suite failed:'), error);
351
- process.exit(1);
352
- }
353
- finally {
354
- // Clean up test directory
355
- await validator.cleanup();
356
- }
357
- }
358
- export { AppValidator };
359
- //# sourceMappingURL=test.js.map
package/dist/test.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"test.js","sourceRoot":"","sources":["../src/test.ts"],"names":[],"mappings":"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"}