@digilogiclabs/create-saas-app 2.12.0 → 2.13.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 (159) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/index.js +1870 -0
  4. package/dist/index.js.map +1 -0
  5. package/dist/templates/mobile/base/template/App.tsx +7 -4
  6. package/dist/templates/mobile/base/template/app/checkout.tsx +5 -2
  7. package/dist/templates/mobile/base/template/package.json +2 -2
  8. package/dist/templates/mobile/ui-auth-payments/template/app/(tabs)/_layout.tsx +6 -2
  9. package/dist/templates/mobile/ui-auth-payments/template/app/(tabs)/billing.tsx +7 -3
  10. package/dist/templates/mobile/ui-auth-payments/template/app/(tabs)/index.tsx +5 -2
  11. package/dist/templates/mobile/ui-auth-payments/template/app/(tabs)/profile.tsx +7 -2
  12. package/dist/templates/mobile/ui-auth-payments/template/app/_layout.tsx +2 -4
  13. package/dist/templates/mobile/ui-auth-payments/template/app/auth/login.tsx +6 -3
  14. package/dist/templates/mobile/ui-auth-payments/template/app/auth/signup.tsx +6 -3
  15. package/dist/templates/mobile/ui-auth-payments/template/package.json +2 -2
  16. package/dist/templates/mobile/ui-auth-payments-ai/template/app/(tabs)/_layout.tsx +6 -2
  17. package/dist/templates/mobile/ui-auth-payments-ai/template/app/(tabs)/billing.tsx +7 -3
  18. package/dist/templates/mobile/ui-auth-payments-ai/template/app/(tabs)/index.tsx +5 -2
  19. package/dist/templates/mobile/ui-auth-payments-ai/template/app/(tabs)/profile.tsx +7 -2
  20. package/dist/templates/mobile/ui-auth-payments-ai/template/app/_layout.tsx +2 -4
  21. package/dist/templates/mobile/ui-auth-payments-ai/template/app/auth/login.tsx +6 -3
  22. package/dist/templates/mobile/ui-auth-payments-ai/template/app/auth/signup.tsx +6 -3
  23. package/dist/templates/mobile/ui-auth-payments-ai/template/package.json +2 -2
  24. package/dist/templates/shared/config/web/next.config.mjs +0 -1
  25. package/dist/templates/web/ai-platform/template/package.json +3 -4
  26. package/dist/templates/web/ai-platform/template/src/app/chat/page.tsx +5 -2
  27. package/dist/templates/web/ai-platform/template/src/app/playground/page.tsx +5 -2
  28. package/dist/templates/web/ai-platform/template/src/components/providers/app-providers.tsx +2 -5
  29. package/dist/templates/web/base/template/package.json +3 -3
  30. package/dist/templates/web/iot-dashboard/template/package.json +3 -4
  31. package/dist/templates/web/iot-dashboard/template/src/components/providers/app-providers.tsx +2 -5
  32. package/dist/templates/web/marketplace/template/package.json +3 -4
  33. package/dist/templates/web/marketplace/template/src/components/providers/app-providers.tsx +2 -5
  34. package/dist/templates/web/micro-saas/template/package.json +3 -4
  35. package/dist/templates/web/micro-saas/template/src/components/providers/app-providers.tsx +2 -5
  36. package/dist/templates/web/ui-auth/template/package.json +3 -3
  37. package/dist/templates/web/ui-auth-ai/template/package.json +3 -3
  38. package/dist/templates/web/ui-auth-payments/template/package.json +3 -3
  39. package/dist/templates/web/ui-auth-payments-ai/template/package.json +3 -3
  40. package/dist/templates/web/ui-auth-payments-audio/template/package.json +3 -3
  41. package/dist/templates/web/ui-auth-payments-video/template/package.json +3 -3
  42. package/dist/templates/web/ui-only/template/package.json +2 -2
  43. package/dist/templates/web/ui-package-test/template/package.json +3 -3
  44. package/package.json +1 -1
  45. package/src/templates/mobile/base/template/App.tsx +7 -4
  46. package/src/templates/mobile/base/template/app/checkout.tsx +5 -2
  47. package/src/templates/mobile/base/template/package.json +2 -2
  48. package/src/templates/mobile/ui-auth-payments/template/app/(tabs)/_layout.tsx +6 -2
  49. package/src/templates/mobile/ui-auth-payments/template/app/(tabs)/billing.tsx +7 -3
  50. package/src/templates/mobile/ui-auth-payments/template/app/(tabs)/index.tsx +5 -2
  51. package/src/templates/mobile/ui-auth-payments/template/app/(tabs)/profile.tsx +7 -2
  52. package/src/templates/mobile/ui-auth-payments/template/app/_layout.tsx +2 -4
  53. package/src/templates/mobile/ui-auth-payments/template/app/auth/login.tsx +6 -3
  54. package/src/templates/mobile/ui-auth-payments/template/app/auth/signup.tsx +6 -3
  55. package/src/templates/mobile/ui-auth-payments/template/package.json +2 -2
  56. package/src/templates/mobile/ui-auth-payments-ai/template/app/(tabs)/_layout.tsx +6 -2
  57. package/src/templates/mobile/ui-auth-payments-ai/template/app/(tabs)/billing.tsx +7 -3
  58. package/src/templates/mobile/ui-auth-payments-ai/template/app/(tabs)/index.tsx +5 -2
  59. package/src/templates/mobile/ui-auth-payments-ai/template/app/(tabs)/profile.tsx +7 -2
  60. package/src/templates/mobile/ui-auth-payments-ai/template/app/_layout.tsx +2 -4
  61. package/src/templates/mobile/ui-auth-payments-ai/template/app/auth/login.tsx +6 -3
  62. package/src/templates/mobile/ui-auth-payments-ai/template/app/auth/signup.tsx +6 -3
  63. package/src/templates/mobile/ui-auth-payments-ai/template/package.json +2 -2
  64. package/src/templates/shared/config/web/next.config.mjs +0 -1
  65. package/src/templates/web/ai-platform/template/package.json +3 -4
  66. package/src/templates/web/ai-platform/template/src/app/chat/page.tsx +5 -2
  67. package/src/templates/web/ai-platform/template/src/app/playground/page.tsx +5 -2
  68. package/src/templates/web/ai-platform/template/src/components/providers/app-providers.tsx +2 -5
  69. package/src/templates/web/base/template/package.json +3 -3
  70. package/src/templates/web/iot-dashboard/template/package.json +3 -4
  71. package/src/templates/web/iot-dashboard/template/src/components/providers/app-providers.tsx +2 -5
  72. package/src/templates/web/marketplace/template/package.json +3 -4
  73. package/src/templates/web/marketplace/template/src/components/providers/app-providers.tsx +2 -5
  74. package/src/templates/web/micro-saas/template/package.json +3 -4
  75. package/src/templates/web/micro-saas/template/src/components/providers/app-providers.tsx +2 -5
  76. package/src/templates/web/ui-auth/template/package.json +3 -3
  77. package/src/templates/web/ui-auth-ai/template/package.json +3 -3
  78. package/src/templates/web/ui-auth-payments/template/package.json +3 -3
  79. package/src/templates/web/ui-auth-payments-ai/template/package.json +3 -3
  80. package/src/templates/web/ui-auth-payments-audio/template/package.json +3 -3
  81. package/src/templates/web/ui-auth-payments-video/template/package.json +3 -3
  82. package/src/templates/web/ui-only/template/package.json +2 -2
  83. package/src/templates/web/ui-package-test/template/package.json +3 -3
  84. package/dist/cli/commands/add.d.ts +0 -6
  85. package/dist/cli/commands/add.d.ts.map +0 -1
  86. package/dist/cli/commands/add.js +0 -39
  87. package/dist/cli/commands/add.js.map +0 -1
  88. package/dist/cli/commands/create.d.ts +0 -49
  89. package/dist/cli/commands/create.d.ts.map +0 -1
  90. package/dist/cli/commands/create.js +0 -173
  91. package/dist/cli/commands/create.js.map +0 -1
  92. package/dist/cli/commands/index.d.ts +0 -4
  93. package/dist/cli/commands/index.d.ts.map +0 -1
  94. package/dist/cli/commands/index.js +0 -20
  95. package/dist/cli/commands/index.js.map +0 -1
  96. package/dist/cli/commands/update.d.ts +0 -6
  97. package/dist/cli/commands/update.d.ts.map +0 -1
  98. package/dist/cli/commands/update.js +0 -68
  99. package/dist/cli/commands/update.js.map +0 -1
  100. package/dist/cli/index.d.ts +0 -4
  101. package/dist/cli/index.d.ts.map +0 -1
  102. package/dist/cli/index.js +0 -63
  103. package/dist/cli/index.js.map +0 -1
  104. package/dist/cli/prompts/index.d.ts +0 -2
  105. package/dist/cli/prompts/index.d.ts.map +0 -1
  106. package/dist/cli/prompts/index.js +0 -18
  107. package/dist/cli/prompts/index.js.map +0 -1
  108. package/dist/cli/prompts/project-setup.d.ts +0 -5
  109. package/dist/cli/prompts/project-setup.d.ts.map +0 -1
  110. package/dist/cli/prompts/project-setup.js +0 -359
  111. package/dist/cli/prompts/project-setup.js.map +0 -1
  112. package/dist/cli/utils/git.d.ts +0 -9
  113. package/dist/cli/utils/git.d.ts.map +0 -1
  114. package/dist/cli/utils/git.js +0 -77
  115. package/dist/cli/utils/git.js.map +0 -1
  116. package/dist/cli/utils/index.d.ts +0 -5
  117. package/dist/cli/utils/index.d.ts.map +0 -1
  118. package/dist/cli/utils/index.js +0 -21
  119. package/dist/cli/utils/index.js.map +0 -1
  120. package/dist/cli/utils/logger.d.ts +0 -16
  121. package/dist/cli/utils/logger.d.ts.map +0 -1
  122. package/dist/cli/utils/logger.js +0 -55
  123. package/dist/cli/utils/logger.js.map +0 -1
  124. package/dist/cli/utils/package-manager.d.ts +0 -8
  125. package/dist/cli/utils/package-manager.d.ts.map +0 -1
  126. package/dist/cli/utils/package-manager.js +0 -92
  127. package/dist/cli/utils/package-manager.js.map +0 -1
  128. package/dist/cli/utils/spinner.d.ts +0 -7
  129. package/dist/cli/utils/spinner.d.ts.map +0 -1
  130. package/dist/cli/utils/spinner.js +0 -48
  131. package/dist/cli/utils/spinner.js.map +0 -1
  132. package/dist/cli/validators/dependencies.d.ts +0 -15
  133. package/dist/cli/validators/dependencies.d.ts.map +0 -1
  134. package/dist/cli/validators/dependencies.js +0 -108
  135. package/dist/cli/validators/dependencies.js.map +0 -1
  136. package/dist/cli/validators/index.d.ts +0 -3
  137. package/dist/cli/validators/index.d.ts.map +0 -1
  138. package/dist/cli/validators/index.js +0 -19
  139. package/dist/cli/validators/index.js.map +0 -1
  140. package/dist/cli/validators/project-name.d.ts +0 -5
  141. package/dist/cli/validators/project-name.d.ts.map +0 -1
  142. package/dist/cli/validators/project-name.js +0 -151
  143. package/dist/cli/validators/project-name.js.map +0 -1
  144. package/dist/generators/file-processor.d.ts +0 -28
  145. package/dist/generators/file-processor.d.ts.map +0 -1
  146. package/dist/generators/file-processor.js +0 -224
  147. package/dist/generators/file-processor.js.map +0 -1
  148. package/dist/generators/index.d.ts +0 -4
  149. package/dist/generators/index.d.ts.map +0 -1
  150. package/dist/generators/index.js +0 -20
  151. package/dist/generators/index.js.map +0 -1
  152. package/dist/generators/package-installer.d.ts +0 -29
  153. package/dist/generators/package-installer.d.ts.map +0 -1
  154. package/dist/generators/package-installer.js +0 -177
  155. package/dist/generators/package-installer.js.map +0 -1
  156. package/dist/generators/template-generator.d.ts +0 -86
  157. package/dist/generators/template-generator.d.ts.map +0 -1
  158. package/dist/generators/template-generator.js +0 -943
  159. package/dist/generators/template-generator.js.map +0 -1
@@ -1,18 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./project-setup"), exports);
18
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/prompts/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAgC"}
@@ -1,5 +0,0 @@
1
- import { ProjectConfig } from '../commands/create';
2
- export declare function getProjectPrompts(initialConfig: ProjectConfig): Promise<ProjectConfig>;
3
- export declare function getAuthSetupPrompts(authProvider: string): Promise<any>;
4
- export declare function getThemeCustomizationPrompts(theme: string): Promise<any>;
5
- //# sourceMappingURL=project-setup.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"project-setup.d.ts","sourceRoot":"","sources":["../../../src/cli/prompts/project-setup.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAe,MAAM,oBAAoB,CAAC;AA0BhE,wBAAsB,iBAAiB,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CA2P5F;AAED,wBAAsB,mBAAmB,CAAC,YAAY,EAAE,MAAM,gBAkD7D;AAED,wBAAsB,4BAA4B,CAAC,KAAK,EAAE,MAAM,gBA+B/D"}
@@ -1,359 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.getProjectPrompts = getProjectPrompts;
7
- exports.getAuthSetupPrompts = getAuthSetupPrompts;
8
- exports.getThemeCustomizationPrompts = getThemeCustomizationPrompts;
9
- const inquirer_1 = __importDefault(require("inquirer"));
10
- const project_name_1 = require("../validators/project-name");
11
- const logger_1 = require("../utils/logger");
12
- /**
13
- * Tier descriptions for the CLI selection
14
- */
15
- const TIER_CHOICES = [
16
- {
17
- name: '🚀 Micro - Single feature MVP (auth only, minimal deps)',
18
- value: 'micro',
19
- },
20
- {
21
- name: '💼 Starter - Basic SaaS (auth + payments) [Recommended]',
22
- value: 'starter',
23
- },
24
- {
25
- name: '⚡ Pro - Full SaaS (auth + payments + AI)',
26
- value: 'pro',
27
- },
28
- {
29
- name: '🏢 Enterprise - Full platform (all features + observability)',
30
- value: 'enterprise',
31
- },
32
- ];
33
- async function getProjectPrompts(initialConfig) {
34
- logger_1.logger.title('🛠️ Project Configuration');
35
- const questions = [
36
- {
37
- type: 'input',
38
- name: 'name',
39
- message: 'Project name:',
40
- default: initialConfig.name,
41
- validate: (input) => {
42
- if (!(0, project_name_1.validateProjectName)(input)) {
43
- const suggestion = (0, project_name_1.suggestProjectName)(input);
44
- return `Invalid project name. Try: ${suggestion}`;
45
- }
46
- return true;
47
- },
48
- filter: (input) => input.trim(),
49
- },
50
- {
51
- type: 'list',
52
- name: 'platform',
53
- message: 'Select platform:',
54
- choices: [
55
- { name: '🌐 Web (Next.js)', value: 'web' },
56
- { name: '📱 Mobile (Expo)', value: 'mobile' },
57
- { name: '🚀 Both (Full-stack)', value: 'both' },
58
- ],
59
- default: initialConfig.platform,
60
- },
61
- {
62
- type: 'list',
63
- name: 'tier',
64
- message: 'Select project tier:',
65
- choices: TIER_CHOICES,
66
- default: initialConfig.tier || 'starter',
67
- },
68
- {
69
- type: 'list',
70
- name: 'template',
71
- message: 'Select template:',
72
- choices: (answers) => {
73
- if (answers.platform === 'web') {
74
- return [
75
- // ═══════════════════════════════════════════════════════════════
76
- // STARTER TEMPLATES (Recommended for new projects)
77
- // ═══════════════════════════════════════════════════════════════
78
- new inquirer_1.default.Separator('─── Starter Templates ───'),
79
- {
80
- name: '💼 Micro-SaaS - Single feature MVP (subscriptions, analytics)',
81
- value: 'micro-saas',
82
- },
83
- {
84
- name: '💳 UI + Auth + Payments - Complete SaaS foundation [Recommended]',
85
- value: 'ui-auth-payments',
86
- },
87
- // ═══════════════════════════════════════════════════════════════
88
- // VERTICAL TEMPLATES (Industry-specific)
89
- // ═══════════════════════════════════════════════════════════════
90
- new inquirer_1.default.Separator('─── Vertical Templates ───'),
91
- {
92
- name: '🛒 Marketplace - Multi-vendor platform (products, orders, vendors)',
93
- value: 'marketplace',
94
- },
95
- {
96
- name: '🤖 AI Platform - LLM-powered SaaS (chat, model selection)',
97
- value: 'ai-platform',
98
- },
99
- {
100
- name: '📡 IoT Dashboard - Device monitoring & telemetry',
101
- value: 'iot-dashboard',
102
- },
103
- // ═══════════════════════════════════════════════════════════════
104
- // CORE TEMPLATES (Building blocks)
105
- // ═══════════════════════════════════════════════════════════════
106
- new inquirer_1.default.Separator('─── Core Templates ───'),
107
- {
108
- name: '📄 Base - Clean Next.js 15 starter',
109
- value: 'base',
110
- },
111
- {
112
- name: '🎨 UI Only - Components library showcase (no auth)',
113
- value: 'ui-only',
114
- },
115
- {
116
- name: '🔐 UI + Auth - Modern authentication flow',
117
- value: 'ui-auth',
118
- },
119
- // ═══════════════════════════════════════════════════════════════
120
- // AI-POWERED TEMPLATES
121
- // ═══════════════════════════════════════════════════════════════
122
- new inquirer_1.default.Separator('─── AI-Powered Templates ───'),
123
- {
124
- name: '🤖 AI + Auth - Text & chat AI integration',
125
- value: 'ui-auth-ai',
126
- },
127
- {
128
- name: '🤖 AI + Auth + Payments - Full AI SaaS platform',
129
- value: 'ui-auth-payments-ai',
130
- },
131
- // ═══════════════════════════════════════════════════════════════
132
- // MEDIA TEMPLATES
133
- // ═══════════════════════════════════════════════════════════════
134
- new inquirer_1.default.Separator('─── Media Templates ───'),
135
- {
136
- name: '🎵 Audio SaaS - Music streaming & audio processing',
137
- value: 'ui-auth-payments-audio',
138
- },
139
- {
140
- name: '🎬 Video SaaS - Video streaming & media platform',
141
- value: 'ui-auth-payments-video',
142
- },
143
- // ═══════════════════════════════════════════════════════════════
144
- // DEVELOPMENT TEMPLATES
145
- // ═══════════════════════════════════════════════════════════════
146
- new inquirer_1.default.Separator('─── Development Templates ───'),
147
- {
148
- name: '🧪 UI Package Test - Component testing environment',
149
- value: 'ui-package-test',
150
- },
151
- ];
152
- }
153
- else if (answers.platform === 'mobile') {
154
- return [
155
- {
156
- name: '📱 Base - React Native + Expo starter',
157
- value: 'base',
158
- },
159
- {
160
- name: '💳 UI + Auth + Payments - Full mobile SaaS (v0.22.0)',
161
- value: 'ui-auth-payments',
162
- },
163
- {
164
- name: '🤖 AI + Auth + Payments - Mobile AI SaaS with generation tools',
165
- value: 'ui-auth-payments-ai',
166
- },
167
- ];
168
- }
169
- else {
170
- // Both platform - show available cross-platform options
171
- return [
172
- {
173
- name: '🚀 Full Stack - Web + Mobile SaaS platform',
174
- value: 'ui-auth-payments',
175
- },
176
- {
177
- name: '🤖 AI Full Stack - Web + Mobile AI platform',
178
- value: 'ui-auth-payments-ai',
179
- },
180
- ];
181
- }
182
- },
183
- default: initialConfig.template,
184
- },
185
- {
186
- type: 'list',
187
- name: 'auth',
188
- message: 'Select authentication provider:',
189
- choices: [
190
- { name: '🔑 Keycloak - Self-hosted OIDC (recommended)', value: 'keycloak' },
191
- { name: '⚡ Supabase - Open source alternative', value: 'supabase' },
192
- { name: "🔥 Firebase - Google's platform", value: 'firebase' },
193
- ],
194
- default: initialConfig.auth,
195
- },
196
- {
197
- type: 'list',
198
- name: 'database',
199
- message: 'Select database provider:',
200
- choices: (answers) => {
201
- const choices = [
202
- {
203
- name: '🐘 PostgreSQL + Drizzle - Self-hosted, full control (recommended)',
204
- value: 'postgresql',
205
- },
206
- { name: '⚡ Supabase - PostgreSQL with real-time & dashboard', value: 'supabase' },
207
- { name: '🔥 Firebase - NoSQL with real-time', value: 'firebase' },
208
- ];
209
- // For Firebase auth, suggest Firebase DB first
210
- if (answers.auth === 'firebase') {
211
- return choices.reverse();
212
- }
213
- return choices;
214
- },
215
- default: (answers) => {
216
- // Keycloak pairs best with self-hosted PostgreSQL
217
- if (answers.auth === 'keycloak')
218
- return 'postgresql';
219
- if (answers.auth === 'firebase')
220
- return 'firebase';
221
- return 'supabase';
222
- },
223
- },
224
- {
225
- type: 'list',
226
- name: 'theme',
227
- message: 'Select theme:',
228
- choices: [
229
- { name: '🎨 Default - Clean and modern', value: 'default' },
230
- { name: '🏢 Corporate - Professional business theme', value: 'corporate' },
231
- { name: '🚀 Startup - Bold and innovative', value: 'startup' },
232
- ],
233
- default: initialConfig.theme,
234
- },
235
- {
236
- type: 'list',
237
- name: 'themeColor',
238
- message: 'Select theme color:',
239
- choices: [
240
- { name: '🔵 Blue - Classic and trustworthy', value: 'blue' },
241
- { name: '🟢 Green - Fresh and natural', value: 'green' },
242
- { name: '🟣 Purple - Creative and modern', value: 'purple' },
243
- { name: '🟠 Orange - Energetic and friendly', value: 'orange' },
244
- { name: '🔴 Red - Bold and attention-grabbing', value: 'red' },
245
- { name: '⚫ Slate - Professional and minimal', value: 'slate' },
246
- ],
247
- default: initialConfig.themeColor,
248
- },
249
- {
250
- type: 'list',
251
- name: 'defaultTheme',
252
- message: 'Select default theme mode:',
253
- choices: [
254
- { name: '🌙 System - Follow system preference', value: 'system' },
255
- { name: '☀️ Light - Always light mode', value: 'light' },
256
- { name: '🌙 Dark - Always dark mode', value: 'dark' },
257
- ],
258
- default: initialConfig.defaultTheme,
259
- },
260
- {
261
- type: 'confirm',
262
- name: 'install',
263
- message: 'Install dependencies?',
264
- default: initialConfig.install,
265
- },
266
- {
267
- type: 'confirm',
268
- name: 'git',
269
- message: 'Initialize git repository?',
270
- default: initialConfig.git,
271
- },
272
- ];
273
- const answers = await inquirer_1.default.prompt(questions);
274
- return {
275
- ...initialConfig,
276
- ...answers,
277
- };
278
- }
279
- async function getAuthSetupPrompts(authProvider) {
280
- logger_1.logger.title(`🔐 ${authProvider} Configuration`);
281
- if (authProvider === 'firebase') {
282
- const questions = [
283
- {
284
- type: 'input',
285
- name: 'projectId',
286
- message: 'Firebase Project ID:',
287
- validate: (input) => input.length > 0 || 'Project ID is required',
288
- },
289
- {
290
- type: 'input',
291
- name: 'apiKey',
292
- message: 'Firebase API Key:',
293
- validate: (input) => input.length > 0 || 'API Key is required',
294
- },
295
- {
296
- type: 'input',
297
- name: 'authDomain',
298
- message: 'Firebase Auth Domain:',
299
- validate: (input) => input.length > 0 || 'Auth Domain is required',
300
- },
301
- ];
302
- return await inquirer_1.default.prompt(questions);
303
- }
304
- else if (authProvider === 'supabase') {
305
- const questions = [
306
- {
307
- type: 'input',
308
- name: 'url',
309
- message: 'Supabase URL:',
310
- validate: (input) => {
311
- if (!input.length)
312
- return 'URL is required';
313
- if (!input.startsWith('https://'))
314
- return 'URL must start with https://';
315
- return true;
316
- },
317
- },
318
- {
319
- type: 'input',
320
- name: 'anonKey',
321
- message: 'Supabase Anon Key:',
322
- validate: (input) => input.length > 0 || 'Anon Key is required',
323
- },
324
- ];
325
- return await inquirer_1.default.prompt(questions);
326
- }
327
- return {};
328
- }
329
- async function getThemeCustomizationPrompts(theme) {
330
- logger_1.logger.title(`🎨 ${theme} Theme Customization`);
331
- const questions = [
332
- {
333
- type: 'input',
334
- name: 'primaryColor',
335
- message: 'Primary color (hex):',
336
- default: theme === 'corporate' ? '#1e40af' : theme === 'startup' ? '#7c3aed' : '#3b82f6',
337
- validate: (input) => {
338
- if (!/^#[0-9A-F]{6}$/i.test(input)) {
339
- return 'Please enter a valid hex color (e.g., #3b82f6)';
340
- }
341
- return true;
342
- },
343
- },
344
- {
345
- type: 'input',
346
- name: 'fontFamily',
347
- message: 'Font family:',
348
- default: theme === 'corporate' ? 'Inter' : theme === 'startup' ? 'Poppins' : 'System UI',
349
- },
350
- {
351
- type: 'confirm',
352
- name: 'darkMode',
353
- message: 'Enable dark mode support?',
354
- default: true,
355
- },
356
- ];
357
- return await inquirer_1.default.prompt(questions);
358
- }
359
- //# sourceMappingURL=project-setup.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"project-setup.js","sourceRoot":"","sources":["../../../src/cli/prompts/project-setup.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- export declare function initializeGit(projectPath: string): Promise<void>;
2
- export declare function isGitRepository(projectPath: string): Promise<boolean>;
3
- export declare function getGitUserInfo(): Promise<{
4
- name?: string;
5
- email?: string;
6
- }>;
7
- export declare function hasGitChanges(projectPath: string): Promise<boolean>;
8
- export declare function commitChanges(projectPath: string, message: string): Promise<void>;
9
- //# sourceMappingURL=git.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/git.ts"],"names":[],"mappings":"AAKA,wBAAsB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAqBtE;AAED,wBAAsB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAO3E;AAED,wBAAsB,cAAc,IAAI,OAAO,CAAC;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAcjF;AAED,wBAAsB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOzE;AAED,wBAAsB,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAQvF"}
@@ -1,77 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.initializeGit = initializeGit;
7
- exports.isGitRepository = isGitRepository;
8
- exports.getGitUserInfo = getGitUserInfo;
9
- exports.hasGitChanges = hasGitChanges;
10
- exports.commitChanges = commitChanges;
11
- const execa_1 = __importDefault(require("execa"));
12
- const path_1 = __importDefault(require("path"));
13
- const fs_extra_1 = __importDefault(require("fs-extra"));
14
- const logger_1 = require("./logger");
15
- async function initializeGit(projectPath) {
16
- try {
17
- // Check if git is available
18
- await (0, execa_1.default)('git', ['--version']);
19
- // Initialize git repository
20
- await (0, execa_1.default)('git', ['init'], { cwd: projectPath });
21
- // Add all files
22
- await (0, execa_1.default)('git', ['add', '.'], { cwd: projectPath });
23
- // Create initial commit
24
- await (0, execa_1.default)('git', ['commit', '-m', 'Initial commit from @digilogiclabs/create-saas-app'], {
25
- cwd: projectPath,
26
- });
27
- logger_1.logger.debug('Git repository initialized successfully');
28
- }
29
- catch (error) {
30
- logger_1.logger.warn('Git initialization failed. You can initialize it manually later.');
31
- logger_1.logger.debug('Git error:', error);
32
- }
33
- }
34
- async function isGitRepository(projectPath) {
35
- try {
36
- const gitDir = path_1.default.join(projectPath, '.git');
37
- return await fs_extra_1.default.pathExists(gitDir);
38
- }
39
- catch {
40
- return false;
41
- }
42
- }
43
- async function getGitUserInfo() {
44
- try {
45
- const [nameResult, emailResult] = await Promise.allSettled([
46
- (0, execa_1.default)('git', ['config', '--global', 'user.name']),
47
- (0, execa_1.default)('git', ['config', '--global', 'user.email']),
48
- ]);
49
- return {
50
- name: nameResult.status === 'fulfilled' ? nameResult.value.stdout : undefined,
51
- email: emailResult.status === 'fulfilled' ? emailResult.value.stdout : undefined,
52
- };
53
- }
54
- catch {
55
- return {};
56
- }
57
- }
58
- async function hasGitChanges(projectPath) {
59
- try {
60
- const result = await (0, execa_1.default)('git', ['status', '--porcelain'], { cwd: projectPath });
61
- return result.stdout.trim().length > 0;
62
- }
63
- catch {
64
- return false;
65
- }
66
- }
67
- async function commitChanges(projectPath, message) {
68
- try {
69
- await (0, execa_1.default)('git', ['add', '.'], { cwd: projectPath });
70
- await (0, execa_1.default)('git', ['commit', '-m', message], { cwd: projectPath });
71
- }
72
- catch (error) {
73
- logger_1.logger.warn('Failed to commit changes');
74
- logger_1.logger.debug('Git commit error:', error);
75
- }
76
- }
77
- //# sourceMappingURL=git.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"git.js","sourceRoot":"","sources":["../../../src/cli/utils/git.ts"],"names":[],"mappings":";;;;;AAKA,sCAqBC;AAED,0CAOC;AAED,wCAcC;AAED,sCAOC;AAED,sCAQC;AAtED,kDAA0B;AAC1B,gDAAwB;AACxB,wDAA0B;AAC1B,qCAAkC;AAE3B,KAAK,UAAU,aAAa,CAAC,WAAmB;IACrD,IAAI,CAAC;QACH,4BAA4B;QAC5B,MAAM,IAAA,eAAK,EAAC,KAAK,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;QAElC,4BAA4B;QAC5B,MAAM,IAAA,eAAK,EAAC,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;QAEnD,gBAAgB;QAChB,MAAM,IAAA,eAAK,EAAC,KAAK,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;QAEvD,wBAAwB;QACxB,MAAM,IAAA,eAAK,EAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,oDAAoD,CAAC,EAAE;YACzF,GAAG,EAAE,WAAW;SACjB,CAAC,CAAC;QAEH,eAAM,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC1D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,eAAM,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC;QAChF,eAAM,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;IACpC,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,eAAe,CAAC,WAAmB;IACvD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAC9C,OAAO,MAAM,kBAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,cAAc;IAClC,IAAI,CAAC;QACH,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC;YACzD,IAAA,eAAK,EAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;YACjD,IAAA,eAAK,EAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;SACnD,CAAC,CAAC;QAEH,OAAO;YACL,IAAI,EAAE,UAAU,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;YAC7E,KAAK,EAAE,WAAW,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;SACjF,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,aAAa,CAAC,WAAmB;IACrD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,IAAA,eAAK,EAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;QACnF,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;IACzC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,aAAa,CAAC,WAAmB,EAAE,OAAe;IACtE,IAAI,CAAC;QACH,MAAM,IAAA,eAAK,EAAC,KAAK,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;QACvD,MAAM,IAAA,eAAK,EAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;IACtE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,eAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QACxC,eAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;IAC3C,CAAC;AACH,CAAC"}
@@ -1,5 +0,0 @@
1
- export * from './logger';
2
- export * from './spinner';
3
- export * from './git';
4
- export * from './package-manager';
5
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,OAAO,CAAC;AACtB,cAAc,mBAAmB,CAAC"}
@@ -1,21 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./logger"), exports);
18
- __exportStar(require("./spinner"), exports);
19
- __exportStar(require("./git"), exports);
20
- __exportStar(require("./package-manager"), exports);
21
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,4CAA0B;AAC1B,wCAAsB;AACtB,oDAAkC"}
@@ -1,16 +0,0 @@
1
- export declare const logger: {
2
- info: (message: string, ...args: unknown[]) => void;
3
- success: (message: string, ...args: unknown[]) => void;
4
- warn: (message: string, ...args: unknown[]) => void;
5
- error: (message: string, ...args: unknown[]) => void;
6
- debug: (message: string, ...args: unknown[]) => void;
7
- log: (message: string, ...args: unknown[]) => void;
8
- newLine: () => void;
9
- divider: () => void;
10
- title: (message: string) => void;
11
- step: (step: number, total: number, message: string) => void;
12
- highlight: (message: string) => void;
13
- code: (code: string) => void;
14
- list: (items: string[]) => void;
15
- };
16
- //# sourceMappingURL=logger.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/logger.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM;oBACD,MAAM,WAAW,OAAO,EAAE;uBAIvB,MAAM,WAAW,OAAO,EAAE;oBAI7B,MAAM,WAAW,OAAO,EAAE;qBAIzB,MAAM,WAAW,OAAO,EAAE;qBAI1B,MAAM,WAAW,OAAO,EAAE;mBAM5B,MAAM,WAAW,OAAO,EAAE;;;qBAYxB,MAAM;iBAMV,MAAM,SAAS,MAAM,WAAW,MAAM;yBAI9B,MAAM;iBAId,MAAM;kBAIL,MAAM,EAAE;CAKvB,CAAC"}
@@ -1,55 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.logger = void 0;
7
- const chalk_1 = __importDefault(require("chalk"));
8
- exports.logger = {
9
- info: (message, ...args) => {
10
- console.log(chalk_1.default.blue('ℹ'), message, ...args);
11
- },
12
- success: (message, ...args) => {
13
- console.log(chalk_1.default.green('✓'), message, ...args);
14
- },
15
- warn: (message, ...args) => {
16
- console.log(chalk_1.default.yellow('⚠'), message, ...args);
17
- },
18
- error: (message, ...args) => {
19
- console.log(chalk_1.default.red('✗'), message, ...args);
20
- },
21
- debug: (message, ...args) => {
22
- if (process.env.DEBUG) {
23
- console.log(chalk_1.default.gray('🐛'), message, ...args);
24
- }
25
- },
26
- log: (message, ...args) => {
27
- console.log(message, ...args);
28
- },
29
- newLine: () => {
30
- console.log();
31
- },
32
- divider: () => {
33
- console.log(chalk_1.default.gray('─'.repeat(50)));
34
- },
35
- title: (message) => {
36
- console.log();
37
- console.log(chalk_1.default.bold.cyan(message));
38
- console.log(chalk_1.default.gray('─'.repeat(message.length)));
39
- },
40
- step: (step, total, message) => {
41
- console.log(chalk_1.default.cyan(`[${step}/${total}]`), message);
42
- },
43
- highlight: (message) => {
44
- console.log(chalk_1.default.bold.magenta(message));
45
- },
46
- code: (code) => {
47
- console.log(chalk_1.default.gray(' ' + code));
48
- },
49
- list: (items) => {
50
- items.forEach((item) => {
51
- console.log(chalk_1.default.gray(' •'), item);
52
- });
53
- },
54
- };
55
- //# sourceMappingURL=logger.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/cli/utils/logger.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- export type PackageManager = 'npm' | 'yarn' | 'pnpm';
2
- export declare function detectPackageManager(projectPath?: string): Promise<PackageManager>;
3
- export declare function getInstallCommand(packageManager: PackageManager): Promise<string[]>;
4
- export declare function getAddCommand(packageManager: PackageManager, packages: string[], dev?: boolean): Promise<string[]>;
5
- export declare function getRunCommand(packageManager: PackageManager, script: string): Promise<string[]>;
6
- export declare function isPackageManagerAvailable(packageManager: PackageManager): Promise<boolean>;
7
- export declare function getPackageManagerDisplayName(packageManager: PackageManager): string;
8
- //# sourceMappingURL=package-manager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"package-manager.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/package-manager.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;AAErD,wBAAsB,oBAAoB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CA8BxF;AAED,wBAAsB,iBAAiB,CAAC,cAAc,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CASzF;AAED,wBAAsB,aAAa,CACjC,cAAc,EAAE,cAAc,EAC9B,QAAQ,EAAE,MAAM,EAAE,EAClB,GAAG,UAAQ,GACV,OAAO,CAAC,MAAM,EAAE,CAAC,CAWnB;AAED,wBAAsB,aAAa,CACjC,cAAc,EAAE,cAAc,EAC9B,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,EAAE,CAAC,CASnB;AAED,wBAAsB,yBAAyB,CAAC,cAAc,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAOhG;AAED,wBAAgB,4BAA4B,CAAC,cAAc,EAAE,cAAc,GAAG,MAAM,CASnF"}