package-installer-cli 1.3.3 → 1.4.1
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.
- checksums.yaml +4 -4
- data/dist/commands/email.js +1150 -0
- data/dist/email-templates/bugReport.js +108 -0
- data/dist/email-templates/collectors/bugReport.js +41 -0
- data/dist/email-templates/collectors/common.js +56 -0
- data/dist/email-templates/collectors/customMessage.js +48 -0
- data/dist/email-templates/collectors/docs.js +41 -0
- data/dist/email-templates/collectors/featureRequest.js +47 -0
- data/dist/email-templates/collectors/improvement.js +52 -0
- data/dist/email-templates/collectors/index.js +9 -0
- data/dist/email-templates/collectors/question.js +31 -0
- data/dist/email-templates/collectors/templateRequest.js +53 -0
- data/dist/email-templates/customMessage.js +135 -0
- data/dist/email-templates/docs.js +111 -0
- data/dist/email-templates/featureRequest.js +111 -0
- data/dist/email-templates/generator.js +67 -0
- data/dist/email-templates/improvement.js +121 -0
- data/dist/email-templates/index.js +15 -0
- data/dist/email-templates/question.js +101 -0
- data/dist/email-templates/styles.js +168 -0
- data/dist/email-templates/templateRequest.js +120 -0
- data/dist/email-templates/testEmail.js +56 -0
- data/dist/email-templates/types.js +1 -0
- data/dist/index.js +29 -1
- data/dist/utils/featureInstaller.js +4 -11
- data/features/ai/ai.json +547 -0
- data/features/analytics/analytics.json +4 -0
- data/features/auth/auth.json +473 -0
- data/features/auth/auth0/django/backend/apiexample/urls.py +10 -0
- data/features/auth/auth0/django/backend/apiexample/validator.py +21 -0
- data/features/auth/auth0/django/backend/apiexample/views.py +30 -0
- data/features/auth/auth0/django/backend/requirements.txt +4 -0
- data/features/auth/auth0/django/web-app/requirements.txt +4 -0
- data/features/auth/auth0/django/web-app/webappexample/settings.py +28 -0
- data/features/auth/auth0/django/web-app/webappexample/templates/index.html +16 -0
- data/features/auth/auth0/django/web-app/webappexample/urls.py +10 -0
- data/features/auth/auth0/django/web-app/webappexample/views.py +52 -0
- data/features/auth/auth0/go/backend/go.mod +8 -0
- data/features/auth/auth0/go/backend/main.go +60 -0
- data/features/auth/auth0/go/backend/middleware/jwt.go +81 -0
- data/features/auth/auth0/go/web-app/auth.go +56 -0
- data/features/auth/auth0/go/web-app/callback.go +52 -0
- data/features/auth/auth0/go/web-app/go.mod +11 -0
- data/features/auth/auth0/go/web-app/isAuthenticated.go +20 -0
- data/features/auth/auth0/go/web-app/login.go +47 -0
- data/features/auth/auth0/go/web-app/logout.go +38 -0
- data/features/auth/auth0/go/web-app/main.go +31 -0
- data/features/auth/auth0/go/web-app/router.go +44 -0
- data/features/auth/auth0/go/web-app/user.go +18 -0
- data/features/auth/auth0/ruby-on-rails/backend/Gemfile +1 -0
- data/features/auth/auth0/ruby-on-rails/backend/app/controllers/application_controller.rb +5 -0
- data/features/auth/auth0/ruby-on-rails/backend/app/controllers/concern/secured.rb +60 -0
- data/features/auth/auth0/ruby-on-rails/backend/app/controllers/private_controller.rb +6 -0
- data/features/auth/auth0/ruby-on-rails/backend/app/controllers/public-controller.rb +6 -0
- data/features/auth/auth0/ruby-on-rails/backend/app/lib/auth0_client.rb +59 -0
- data/features/auth/auth0/ruby-on-rails/web-app/Gemfile +2 -0
- data/features/auth/auth0/ruby-on-rails/web-app/auth0_controller.rb +41 -0
- data/features/auth/auth0/ruby-on-rails/web-app/config/auth0.yml +4 -0
- data/features/auth/auth0/ruby-on-rails/web-app/config/initializers/auth0.rb +14 -0
- data/features/auth/auth0/ruby-on-rails/web-app/config/routes.rb +6 -0
- data/features/auth/auth0/ruby-on-rails/web-app/config/secured.rb +11 -0
- data/features/auth/clerk/go/clerk_client.go +28 -0
- data/features/auth/clerk/go/go.mod +5 -0
- data/features/auth/clerk/go/main.go +82 -0
- data/features/auth/clerk/nextjs/typescript/app/layout.tsx +2 -2
- data/features/auth/clerk/ruby-on-rails/Gemfile +1 -0
- data/features/auth/clerk/ruby-on-rails/app.rb +50 -0
- data/features/auth/clerk/ruby-on-rails/config/initializers/clerk.rb +4 -0
- data/features/aws/aws.json +5207 -0
- data/features/database/database.json +246 -0
- data/features/docker/docker.json +108 -0
- data/features/features.json +44 -7321
- data/features/gitignore/gitignore.json +61 -0
- data/features/monitoring/monitoring.json +5 -0
- data/features/payment/payment.json +347 -0
- data/features/storage/storage.json +371 -0
- data/features/testing/jest/angularjs/typescript/tests/angularjs.test.ts +12 -0
- data/features/testing/jest/expressjs/javascript/tests/expressjs.test.js +10 -0
- data/features/testing/jest/expressjs/typescript/tests/expressjs.test.ts +10 -0
- data/features/testing/jest/nestjs/typescript/tests/nestjs.test.ts +10 -0
- data/features/testing/jest/nextjs/javascript/tests/nextjs.test.js +10 -0
- data/features/testing/jest/nextjs/typescript/tests/nextjs.test.ts +10 -0
- data/features/testing/jest/nuxtjs/typescript/tests/nuxtjs.test.ts +9 -0
- data/features/testing/jest/reactjs/javascript/tests/reactjs.test.js +10 -0
- data/features/testing/jest/reactjs/typescript/tests/reactjs.test.ts +10 -0
- data/features/testing/jest/reactjs-expressjs-shadcn/javascript/tests/reactjs.expressjs.shadcn.test.js +16 -0
- data/features/testing/jest/reactjs-expressjs-shadcn/typescript/tests/reactjs.expressjs.shadcn.test.ts +16 -0
- data/features/testing/jest/reactjs-nestjs-shadcn/typescript/tests/reactjs.nestjs.shadcn.test.ts +14 -0
- data/features/testing/jest/remixjs/typescript/tests/remixjs.test.ts +9 -0
- data/features/testing/jest/vuejs/javascript/tests/vuejs.test.ts +9 -0
- data/features/testing/jest/vuejs/typescript/tests/vuejs.test.ts +9 -0
- data/features/testing/testing.json +102 -0
- data/features/ui/ui.json +91 -0
- metadata +90 -8
- data/features/testing/jest/angularjs/tests/angularjs.test.js +0 -12
- data/features/testing/jest/expressjs/tests/javascript/expressjs.test.js +0 -12
- data/features/testing/jest/expressjs/tests/typescript/expressjs.test.ts +0 -12
- data/features/testing/jest/go/tests/go.test.js +0 -12
- data/features/testing/jest/nextjs/tests/javascript/nextjs.test.js +0 -12
- data/features/testing/jest/nextjs/tests/typescript/nextjs.test.ts +0 -12
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { EMAIL_CSS } from './styles.js';
|
|
2
|
+
export function generateTemplateRequestTemplate(data, systemInfo) {
|
|
3
|
+
return {
|
|
4
|
+
subject: `[Package Installer CLI] 📝 Template Request: ${data.title}`,
|
|
5
|
+
htmlBody: `
|
|
6
|
+
${EMAIL_CSS}
|
|
7
|
+
<body>
|
|
8
|
+
<div class="email-container">
|
|
9
|
+
<div class="header template">
|
|
10
|
+
<span class="emoji">📝</span>
|
|
11
|
+
<h1>Template Request</h1>
|
|
12
|
+
<p style="margin: 5px 0 0 0; opacity: 0.9;">Package Installer CLI</p>
|
|
13
|
+
</div>
|
|
14
|
+
|
|
15
|
+
<div class="content">
|
|
16
|
+
<div class="section">
|
|
17
|
+
<h3>Template Title</h3>
|
|
18
|
+
<p><strong>${data.title}</strong></p>
|
|
19
|
+
</div>
|
|
20
|
+
|
|
21
|
+
<div class="section">
|
|
22
|
+
<h3>Description</h3>
|
|
23
|
+
<p>${data.description}</p>
|
|
24
|
+
</div>
|
|
25
|
+
|
|
26
|
+
${data.framework ? `
|
|
27
|
+
<div class="section">
|
|
28
|
+
<h3>Framework/Technology</h3>
|
|
29
|
+
<p>${data.framework}</p>
|
|
30
|
+
</div>
|
|
31
|
+
` : ''}
|
|
32
|
+
|
|
33
|
+
${data.features ? `
|
|
34
|
+
<div class="section">
|
|
35
|
+
<h3>Desired Features</h3>
|
|
36
|
+
<p>${data.features}</p>
|
|
37
|
+
</div>
|
|
38
|
+
` : ''}
|
|
39
|
+
|
|
40
|
+
${data.useCase ? `
|
|
41
|
+
<div class="section">
|
|
42
|
+
<h3>Use Case</h3>
|
|
43
|
+
<p>${data.useCase}</p>
|
|
44
|
+
</div>
|
|
45
|
+
` : ''}
|
|
46
|
+
|
|
47
|
+
${data.priority ? `
|
|
48
|
+
<div class="priority-badge ${data.priority}">
|
|
49
|
+
Priority: ${data.priority.charAt(0).toUpperCase() + data.priority.slice(1)}
|
|
50
|
+
</div>
|
|
51
|
+
` : ''}
|
|
52
|
+
|
|
53
|
+
${data.additional ? `
|
|
54
|
+
<div class="section">
|
|
55
|
+
<h3>Additional Information</h3>
|
|
56
|
+
<p>${data.additional}</p>
|
|
57
|
+
</div>
|
|
58
|
+
` : ''}
|
|
59
|
+
|
|
60
|
+
<div class="system-info">
|
|
61
|
+
<strong>System Information:</strong><br>
|
|
62
|
+
- OS: ${systemInfo.platform} (${systemInfo.arch})<br>
|
|
63
|
+
- Node.js: ${systemInfo.nodeVersion}<br>
|
|
64
|
+
- CLI Version: ${systemInfo.cliVersion}<br>
|
|
65
|
+
- Working Directory: ${systemInfo.workingDirectory}
|
|
66
|
+
</div>
|
|
67
|
+
|
|
68
|
+
${data.name || data.email ? `
|
|
69
|
+
<div class="contact-info">
|
|
70
|
+
<strong>Contact Information:</strong><br>
|
|
71
|
+
${data.name ? `Name: ${data.name}<br>` : ''}
|
|
72
|
+
${data.email ? `Email: ${data.email}` : ''}
|
|
73
|
+
</div>
|
|
74
|
+
` : ''}
|
|
75
|
+
</div>
|
|
76
|
+
|
|
77
|
+
<div class="footer">
|
|
78
|
+
<div class="timestamp">Submitted at: ${systemInfo.timestamp}</div>
|
|
79
|
+
<p style="margin: 10px 0 0 0;">Thank you for helping expand Package Installer CLI templates! 📦</p>
|
|
80
|
+
</div>
|
|
81
|
+
</div>
|
|
82
|
+
</body>
|
|
83
|
+
`,
|
|
84
|
+
plainBody: `Hi Shariq,
|
|
85
|
+
|
|
86
|
+
I have a template request for Package Installer CLI.
|
|
87
|
+
|
|
88
|
+
Template Title: ${data.title}
|
|
89
|
+
|
|
90
|
+
Description:
|
|
91
|
+
${data.description}
|
|
92
|
+
|
|
93
|
+
Framework/Technology:
|
|
94
|
+
${data.framework || 'Not specified'}
|
|
95
|
+
|
|
96
|
+
Desired Features:
|
|
97
|
+
${data.features || 'Not specified'}
|
|
98
|
+
|
|
99
|
+
Use Case:
|
|
100
|
+
${data.useCase || 'Not provided'}
|
|
101
|
+
|
|
102
|
+
Priority:
|
|
103
|
+
${data.priority || 'Not specified'}
|
|
104
|
+
|
|
105
|
+
Additional Information:
|
|
106
|
+
${data.additional || 'None'}
|
|
107
|
+
|
|
108
|
+
System Information:
|
|
109
|
+
- OS: ${systemInfo.platform} (${systemInfo.arch})
|
|
110
|
+
- Node.js: ${systemInfo.nodeVersion}
|
|
111
|
+
- CLI Version: ${systemInfo.cliVersion}
|
|
112
|
+
- Working Directory: ${systemInfo.workingDirectory}
|
|
113
|
+
|
|
114
|
+
Submitted at: ${systemInfo.timestamp}
|
|
115
|
+
|
|
116
|
+
Best regards,
|
|
117
|
+
${data.name || 'Anonymous User'}
|
|
118
|
+
${data.email ? `Contact: ${data.email}` : ''}`
|
|
119
|
+
};
|
|
120
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { EMAIL_CSS } from './styles.js';
|
|
2
|
+
export function generateTestEmailTemplate(systemInfo) {
|
|
3
|
+
return {
|
|
4
|
+
subject: `[Package Installer CLI] 🧪 Test Email - ${systemInfo.timestamp}`,
|
|
5
|
+
htmlBody: `
|
|
6
|
+
${EMAIL_CSS}
|
|
7
|
+
<body>
|
|
8
|
+
<div class="email-container">
|
|
9
|
+
<div class="header test">
|
|
10
|
+
<span class="emoji">🧪</span>
|
|
11
|
+
<h1>Email Test</h1>
|
|
12
|
+
<p style="margin: 5px 0 0 0; opacity: 0.9;">Package Installer CLI</p>
|
|
13
|
+
</div>
|
|
14
|
+
|
|
15
|
+
<div class="content">
|
|
16
|
+
<div class="test-success">
|
|
17
|
+
✅ Email functionality is working correctly!
|
|
18
|
+
</div>
|
|
19
|
+
|
|
20
|
+
<p>This is a test email from Package Installer CLI to verify that the email system is properly configured and working.</p>
|
|
21
|
+
|
|
22
|
+
<div class="system-info">
|
|
23
|
+
<strong>System Information:</strong><br>
|
|
24
|
+
- OS: ${systemInfo.platform} (${systemInfo.arch})<br>
|
|
25
|
+
- Node.js: ${systemInfo.nodeVersion}<br>
|
|
26
|
+
- CLI Version: ${systemInfo.cliVersion}<br>
|
|
27
|
+
- Working Directory: ${systemInfo.workingDirectory}
|
|
28
|
+
</div>
|
|
29
|
+
|
|
30
|
+
<p>If you receive this email with proper formatting, both HTML and plain text email delivery are functioning correctly.</p>
|
|
31
|
+
</div>
|
|
32
|
+
|
|
33
|
+
<div class="footer">
|
|
34
|
+
<div class="timestamp">Test completed at: ${systemInfo.timestamp}</div>
|
|
35
|
+
<p style="margin: 10px 0 0 0;">Package Installer CLI Email System 📧</p>
|
|
36
|
+
</div>
|
|
37
|
+
</div>
|
|
38
|
+
</body>
|
|
39
|
+
`,
|
|
40
|
+
plainBody: `This is a test email from Package Installer CLI.
|
|
41
|
+
|
|
42
|
+
✅ EMAIL TEST SUCCESSFUL ✅
|
|
43
|
+
|
|
44
|
+
If you receive this email, the email functionality is working correctly!
|
|
45
|
+
|
|
46
|
+
System Information:
|
|
47
|
+
- OS: ${systemInfo.platform} (${systemInfo.arch})
|
|
48
|
+
- Node.js: ${systemInfo.nodeVersion}
|
|
49
|
+
- CLI Version: ${systemInfo.cliVersion}
|
|
50
|
+
- Working Directory: ${systemInfo.workingDirectory}
|
|
51
|
+
|
|
52
|
+
Test completed at: ${systemInfo.timestamp}
|
|
53
|
+
|
|
54
|
+
Package Installer CLI Email System`
|
|
55
|
+
};
|
|
56
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
data/dist/index.js
CHANGED
|
@@ -19,6 +19,7 @@ import { cleanCommand, showCleanHelp } from './commands/clean.js';
|
|
|
19
19
|
import { cacheCommand, showCacheHelp } from './commands/cache.js';
|
|
20
20
|
import { environmentCommand, showEnvironmentHelp } from './commands/env.js';
|
|
21
21
|
import { doctorCommand, showDoctorHelp } from './commands/doctor.js';
|
|
22
|
+
import { emailCommand, showEmailHelp } from './commands/email.js';
|
|
22
23
|
// Import utilities
|
|
23
24
|
import { initializeCache } from './utils/cacheManager.js';
|
|
24
25
|
import { displayBanner, displayCommandBanner } from './utils/banner.js';
|
|
@@ -324,6 +325,31 @@ program
|
|
|
324
325
|
handleCommandError('cache', error);
|
|
325
326
|
}
|
|
326
327
|
});
|
|
328
|
+
// EMAIL COMMAND - Contact developer with feedback
|
|
329
|
+
program
|
|
330
|
+
.command('email')
|
|
331
|
+
.description(chalk.hex('#00d2d3')('📧 ') + chalk.hex('#4facfe')('Contact developer with feedback, bug reports, and feature requests'))
|
|
332
|
+
.argument('[category]', chalk.hex('#95afc0')('Feedback category (bug, feature, template, question, improvement, docs)'))
|
|
333
|
+
.option('-h, --help', chalk.hex('#95afc0')('Display help for this command'))
|
|
334
|
+
.option('-l, --list', chalk.hex('#95afc0')('List all available email categories'))
|
|
335
|
+
.option('--install', chalk.hex('#95afc0')('Show Email MCP Server installation instructions'))
|
|
336
|
+
.option('--setup', chalk.hex('#95afc0')('Show email configuration setup guide'))
|
|
337
|
+
.option('--status', chalk.hex('#95afc0')('Check email system status and availability'))
|
|
338
|
+
.option('--test', chalk.hex('#95afc0')('Send a test email to verify functionality'))
|
|
339
|
+
.option('--commands', chalk.hex('#95afc0')('Show all available Email MCP Server commands'))
|
|
340
|
+
.option('--dev', chalk.hex('#95afc0')('Show development setup information and troubleshooting'))
|
|
341
|
+
.option('--quick', chalk.hex('#95afc0')('Quick feedback mode with minimal prompts'))
|
|
342
|
+
.on('--help', () => {
|
|
343
|
+
showEmailHelp();
|
|
344
|
+
})
|
|
345
|
+
.action(async (category, options) => {
|
|
346
|
+
try {
|
|
347
|
+
await emailCommand(category, options);
|
|
348
|
+
}
|
|
349
|
+
catch (error) {
|
|
350
|
+
handleCommandError('email', error);
|
|
351
|
+
}
|
|
352
|
+
});
|
|
327
353
|
// DEPLOY COMMAND - Future deployment features
|
|
328
354
|
program
|
|
329
355
|
.command('deploy')
|
|
@@ -360,6 +386,7 @@ program.on('--help', () => {
|
|
|
360
386
|
chalk.hex('#95afc0')(' ') + piGradient('pi') + ' ' + addGradient('add') + chalk.hex('#95afc0')(' docker # Add Docker configuration') + '\n' +
|
|
361
387
|
chalk.hex('#95afc0')(' ') + piGradient('pi') + ' ' + commandGradient('check') + chalk.hex('#95afc0')(' # Check package versions') + '\n' +
|
|
362
388
|
chalk.hex('#95afc0')(' ') + piGradient('pi') + ' ' + commandGradient('check') + chalk.hex('#95afc0')(' react # Check specific package') + '\n' +
|
|
389
|
+
chalk.hex('#95afc0')(' ') + piGradient('pi') + ' ' + commandGradient('email') + chalk.hex('#95afc0')(' # Contact developer with feedback') + '\n' +
|
|
363
390
|
chalk.hex('#ff6b6b')('🌍 REPOSITORY & DEPLOYMENT') + '\n' +
|
|
364
391
|
chalk.hex('#95afc0')(' ') + piGradient('pi') + ' ' + commandGradient('clone') + chalk.hex('#95afc0')(' # Clone repositories interactively') + '\n' +
|
|
365
392
|
chalk.hex('#95afc0')(' ') + piGradient('pi') + ' ' + commandGradient('clone') + chalk.hex('#95afc0')(' facebook/react # Clone popular repositories') + '\n' +
|
|
@@ -395,7 +422,8 @@ if (process.argv.length === 2) {
|
|
|
395
422
|
chalk.hex('#10ac84')(' ') + piGradient('pi') + ' ' + gradient(['#10ac84', '#00d2d3'])('create') + chalk.hex('#95afc0')(' # Create new project (React, Next.js, Vue, etc.)') + '\n' +
|
|
396
423
|
chalk.hex('#9c88ff')(' ') + piGradient('pi') + ' ' + gradient(['#9c88ff', '#667eea'])('analyze') + chalk.hex('#95afc0')(' # Show project analytics dashboard') + '\n' +
|
|
397
424
|
chalk.hex('#ff6b6b')(' ') + piGradient('pi') + ' ' + gradient(['#ff6b6b', '#ff9a9e'])('update') + chalk.hex('#95afc0')(' # Update packages to latest versions') + '\n' +
|
|
398
|
-
chalk.hex('#00d2d3')(' ') + piGradient('pi') + ' ' + gradient(['#00d2d3', '#0084ff'])('clone') + chalk.hex('#95afc0')(' user/repo # Clone and setup GitHub repositories') + '\n
|
|
425
|
+
chalk.hex('#00d2d3')(' ') + piGradient('pi') + ' ' + gradient(['#00d2d3', '#0084ff'])('clone') + chalk.hex('#95afc0')(' user/repo # Clone and setup GitHub repositories') + '\n' +
|
|
426
|
+
chalk.hex('#00d2d3')(' ') + piGradient('pi') + ' ' + gradient(['#00d2d3', '#4facfe'])('email') + chalk.hex('#95afc0')(' # Contact developer with feedback') + '\n\n' +
|
|
399
427
|
chalk.hex('#ffa502')('Need help? Try these:') + '\n\n' +
|
|
400
428
|
chalk.hex('#ff6b6b')(' ') + piGradient('pi') + ' ' + chalk.hex('#ff6b6b')('--help') + chalk.hex('#95afc0')(' # See all available commands') + '\n' +
|
|
401
429
|
chalk.hex('#95afc0')(' ') + piGradient('pi') + ' ' + chalk.hex('#95afc0')('command --help') + chalk.hex('#95afc0')(' # Get detailed help for any command') + '\n\n' +
|
|
@@ -155,7 +155,8 @@ function adjustNextjsSrcFilePath(filePath, hasSrcFolder, projectPath) {
|
|
|
155
155
|
'.env', '.env.local', '.env.example', '.env.development', '.env.production',
|
|
156
156
|
'package.json', 'next.config.js', 'next.config.mjs', 'next.config.ts',
|
|
157
157
|
'tailwind.config.js', 'tailwind.config.ts', 'postcss.config.js', 'postcss.config.ts',
|
|
158
|
-
'
|
|
158
|
+
'tsconfig.json', 'jsconfig.json', 'README.md', '.gitignore',
|
|
159
|
+
'docker-compose.yml', 'Dockerfile', 'yarn.lock', 'pnpm-lock.yaml', 'package-lock.json'
|
|
159
160
|
];
|
|
160
161
|
const fileName = path.basename(filePath);
|
|
161
162
|
// Always put public/ files in root public/
|
|
@@ -170,16 +171,8 @@ function adjustNextjsSrcFilePath(filePath, hasSrcFolder, projectPath) {
|
|
|
170
171
|
if (filePath.startsWith('src/')) {
|
|
171
172
|
return path.join(projectPath, filePath);
|
|
172
173
|
}
|
|
173
|
-
//
|
|
174
|
-
|
|
175
|
-
if (srcDirs.some(dir => filePath.startsWith(dir + '/'))) {
|
|
176
|
-
return path.join(projectPath, 'src', filePath);
|
|
177
|
-
}
|
|
178
|
-
// For .ts/.tsx/.js/.jsx files not in config, put in src/
|
|
179
|
-
if (fileName.match(/\.(ts|tsx|js|jsx)$/) && !fileName.includes('config')) {
|
|
180
|
-
return path.join(projectPath, 'src', filePath);
|
|
181
|
-
}
|
|
182
|
-
// Default: put in src/
|
|
174
|
+
// Everything else goes in src/ folder for Next.js projects with src structure
|
|
175
|
+
// This includes: app/, pages/, components/, lib/, utils/, styles/, hooks/, types/, middleware.ts, etc.
|
|
183
176
|
return path.join(projectPath, 'src', filePath);
|
|
184
177
|
}
|
|
185
178
|
/**
|