create-nexo 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (239) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +185 -0
  3. package/dist/api/index.d.ts +196 -0
  4. package/dist/api/index.d.ts.map +1 -0
  5. package/dist/api/index.js +390 -0
  6. package/dist/api/index.js.map +1 -0
  7. package/dist/bin/nexo.d.ts +3 -0
  8. package/dist/bin/nexo.d.ts.map +1 -0
  9. package/dist/bin/nexo.js +427 -0
  10. package/dist/bin/nexo.js.map +1 -0
  11. package/dist/configurators/core/framework.d.ts +3 -0
  12. package/dist/configurators/core/framework.d.ts.map +1 -0
  13. package/dist/configurators/core/framework.js +56 -0
  14. package/dist/configurators/core/framework.js.map +1 -0
  15. package/dist/configurators/core/index.d.ts +4 -0
  16. package/dist/configurators/core/index.d.ts.map +1 -0
  17. package/dist/configurators/core/index.js +4 -0
  18. package/dist/configurators/core/index.js.map +1 -0
  19. package/dist/configurators/core/language.d.ts +3 -0
  20. package/dist/configurators/core/language.d.ts.map +1 -0
  21. package/dist/configurators/core/language.js +59 -0
  22. package/dist/configurators/core/language.js.map +1 -0
  23. package/dist/configurators/core/variant.d.ts +3 -0
  24. package/dist/configurators/core/variant.d.ts.map +1 -0
  25. package/dist/configurators/core/variant.js +22 -0
  26. package/dist/configurators/core/variant.js.map +1 -0
  27. package/dist/configurators/index.d.ts +5 -0
  28. package/dist/configurators/index.d.ts.map +1 -0
  29. package/dist/configurators/index.js +6 -0
  30. package/dist/configurators/index.js.map +1 -0
  31. package/dist/configurators/project/auth.d.ts +3 -0
  32. package/dist/configurators/project/auth.d.ts.map +1 -0
  33. package/dist/configurators/project/auth.js +82 -0
  34. package/dist/configurators/project/auth.js.map +1 -0
  35. package/dist/configurators/project/cicd.d.ts +30 -0
  36. package/dist/configurators/project/cicd.d.ts.map +1 -0
  37. package/dist/configurators/project/cicd.js +289 -0
  38. package/dist/configurators/project/cicd.js.map +1 -0
  39. package/dist/configurators/project/i18n.d.ts +3 -0
  40. package/dist/configurators/project/i18n.d.ts.map +1 -0
  41. package/dist/configurators/project/i18n.js +67 -0
  42. package/dist/configurators/project/i18n.js.map +1 -0
  43. package/dist/configurators/project/index.d.ts +6 -0
  44. package/dist/configurators/project/index.d.ts.map +1 -0
  45. package/dist/configurators/project/index.js +6 -0
  46. package/dist/configurators/project/index.js.map +1 -0
  47. package/dist/configurators/project/mandatory.d.ts +3 -0
  48. package/dist/configurators/project/mandatory.d.ts.map +1 -0
  49. package/dist/configurators/project/mandatory.js +167 -0
  50. package/dist/configurators/project/mandatory.js.map +1 -0
  51. package/dist/configurators/project/structure.d.ts +3 -0
  52. package/dist/configurators/project/structure.d.ts.map +1 -0
  53. package/dist/configurators/project/structure.js +34 -0
  54. package/dist/configurators/project/structure.js.map +1 -0
  55. package/dist/configurators/state/dataFetching.d.ts +3 -0
  56. package/dist/configurators/state/dataFetching.d.ts.map +1 -0
  57. package/dist/configurators/state/dataFetching.js +23 -0
  58. package/dist/configurators/state/dataFetching.js.map +1 -0
  59. package/dist/configurators/state/forms.d.ts +3 -0
  60. package/dist/configurators/state/forms.d.ts.map +1 -0
  61. package/dist/configurators/state/forms.js +35 -0
  62. package/dist/configurators/state/forms.js.map +1 -0
  63. package/dist/configurators/state/index.d.ts +5 -0
  64. package/dist/configurators/state/index.d.ts.map +1 -0
  65. package/dist/configurators/state/index.js +5 -0
  66. package/dist/configurators/state/index.js.map +1 -0
  67. package/dist/configurators/state/routing.d.ts +3 -0
  68. package/dist/configurators/state/routing.d.ts.map +1 -0
  69. package/dist/configurators/state/routing.js +23 -0
  70. package/dist/configurators/state/routing.js.map +1 -0
  71. package/dist/configurators/state/state.d.ts +3 -0
  72. package/dist/configurators/state/state.d.ts.map +1 -0
  73. package/dist/configurators/state/state.js +91 -0
  74. package/dist/configurators/state/state.js.map +1 -0
  75. package/dist/configurators/styling/icons.d.ts +3 -0
  76. package/dist/configurators/styling/icons.d.ts.map +1 -0
  77. package/dist/configurators/styling/icons.js +27 -0
  78. package/dist/configurators/styling/icons.js.map +1 -0
  79. package/dist/configurators/styling/index.d.ts +4 -0
  80. package/dist/configurators/styling/index.d.ts.map +1 -0
  81. package/dist/configurators/styling/index.js +4 -0
  82. package/dist/configurators/styling/index.js.map +1 -0
  83. package/dist/configurators/styling/styling.d.ts +3 -0
  84. package/dist/configurators/styling/styling.d.ts.map +1 -0
  85. package/dist/configurators/styling/styling.js +62 -0
  86. package/dist/configurators/styling/styling.js.map +1 -0
  87. package/dist/configurators/styling/ui.d.ts +3 -0
  88. package/dist/configurators/styling/ui.d.ts.map +1 -0
  89. package/dist/configurators/styling/ui.js +188 -0
  90. package/dist/configurators/styling/ui.js.map +1 -0
  91. package/dist/core/index.d.ts +7 -0
  92. package/dist/core/index.d.ts.map +1 -0
  93. package/dist/core/index.js +7 -0
  94. package/dist/core/index.js.map +1 -0
  95. package/dist/core/lazy-loader.d.ts +57 -0
  96. package/dist/core/lazy-loader.d.ts.map +1 -0
  97. package/dist/core/lazy-loader.js +231 -0
  98. package/dist/core/lazy-loader.js.map +1 -0
  99. package/dist/core/parallel.d.ts +29 -0
  100. package/dist/core/parallel.d.ts.map +1 -0
  101. package/dist/core/parallel.js +127 -0
  102. package/dist/core/parallel.js.map +1 -0
  103. package/dist/core/presets.d.ts +10 -0
  104. package/dist/core/presets.d.ts.map +1 -0
  105. package/dist/core/presets.js +73 -0
  106. package/dist/core/presets.js.map +1 -0
  107. package/dist/core/prompts/core.d.ts +18 -0
  108. package/dist/core/prompts/core.d.ts.map +1 -0
  109. package/dist/core/prompts/core.js +420 -0
  110. package/dist/core/prompts/core.js.map +1 -0
  111. package/dist/core/prompts/filter.d.ts +34 -0
  112. package/dist/core/prompts/filter.d.ts.map +1 -0
  113. package/dist/core/prompts/filter.js +48 -0
  114. package/dist/core/prompts/filter.js.map +1 -0
  115. package/dist/core/prompts/index.d.ts +10 -0
  116. package/dist/core/prompts/index.d.ts.map +1 -0
  117. package/dist/core/prompts/index.js +16 -0
  118. package/dist/core/prompts/index.js.map +1 -0
  119. package/dist/core/prompts/optional.d.ts +15 -0
  120. package/dist/core/prompts/optional.d.ts.map +1 -0
  121. package/dist/core/prompts/optional.js +228 -0
  122. package/dist/core/prompts/optional.js.map +1 -0
  123. package/dist/core/prompts/utils.d.ts +37 -0
  124. package/dist/core/prompts/utils.d.ts.map +1 -0
  125. package/dist/core/prompts/utils.js +72 -0
  126. package/dist/core/prompts/utils.js.map +1 -0
  127. package/dist/core/prompts.d.ts +6 -0
  128. package/dist/core/prompts.d.ts.map +1 -0
  129. package/dist/core/prompts.js +6 -0
  130. package/dist/core/prompts.js.map +1 -0
  131. package/dist/core/setup.d.ts +28 -0
  132. package/dist/core/setup.d.ts.map +1 -0
  133. package/dist/core/setup.js +96 -0
  134. package/dist/core/setup.js.map +1 -0
  135. package/dist/core/wizard.d.ts +39 -0
  136. package/dist/core/wizard.d.ts.map +1 -0
  137. package/dist/core/wizard.js +259 -0
  138. package/dist/core/wizard.js.map +1 -0
  139. package/dist/errors/index.d.ts +67 -0
  140. package/dist/errors/index.d.ts.map +1 -0
  141. package/dist/errors/index.js +253 -0
  142. package/dist/errors/index.js.map +1 -0
  143. package/dist/errors/messages.d.ts +56 -0
  144. package/dist/errors/messages.d.ts.map +1 -0
  145. package/dist/errors/messages.js +234 -0
  146. package/dist/errors/messages.js.map +1 -0
  147. package/dist/generators/index.d.ts +86 -0
  148. package/dist/generators/index.d.ts.map +1 -0
  149. package/dist/generators/index.js +441 -0
  150. package/dist/generators/index.js.map +1 -0
  151. package/dist/index.d.ts +16 -0
  152. package/dist/index.d.ts.map +1 -0
  153. package/dist/index.js +17 -0
  154. package/dist/index.js.map +1 -0
  155. package/dist/plugins/index.d.ts +48 -0
  156. package/dist/plugins/index.d.ts.map +1 -0
  157. package/dist/plugins/index.js +49 -0
  158. package/dist/plugins/index.js.map +1 -0
  159. package/dist/plugins/loader.d.ts +38 -0
  160. package/dist/plugins/loader.d.ts.map +1 -0
  161. package/dist/plugins/loader.js +229 -0
  162. package/dist/plugins/loader.js.map +1 -0
  163. package/dist/plugins/manager.d.ts +32 -0
  164. package/dist/plugins/manager.d.ts.map +1 -0
  165. package/dist/plugins/manager.js +220 -0
  166. package/dist/plugins/manager.js.map +1 -0
  167. package/dist/plugins/types.d.ts +186 -0
  168. package/dist/plugins/types.d.ts.map +1 -0
  169. package/dist/plugins/types.js +5 -0
  170. package/dist/plugins/types.js.map +1 -0
  171. package/dist/security/index.d.ts +59 -0
  172. package/dist/security/index.d.ts.map +1 -0
  173. package/dist/security/index.js +230 -0
  174. package/dist/security/index.js.map +1 -0
  175. package/dist/templates/entry.d.ts +9 -0
  176. package/dist/templates/entry.d.ts.map +1 -0
  177. package/dist/templates/entry.js +24 -0
  178. package/dist/templates/entry.js.map +1 -0
  179. package/dist/templates/index.d.ts +7 -0
  180. package/dist/templates/index.d.ts.map +1 -0
  181. package/dist/templates/index.js +10 -0
  182. package/dist/templates/index.js.map +1 -0
  183. package/dist/templates/main.d.ts +6 -0
  184. package/dist/templates/main.d.ts.map +1 -0
  185. package/dist/templates/main.js +72 -0
  186. package/dist/templates/main.js.map +1 -0
  187. package/dist/templates/readme.d.ts +3 -0
  188. package/dist/templates/readme.d.ts.map +1 -0
  189. package/dist/templates/readme.js +127 -0
  190. package/dist/templates/readme.js.map +1 -0
  191. package/dist/templates/styles.d.ts +6 -0
  192. package/dist/templates/styles.d.ts.map +1 -0
  193. package/dist/templates/styles.js +212 -0
  194. package/dist/templates/styles.js.map +1 -0
  195. package/dist/templates/welcome.d.ts +10 -0
  196. package/dist/templates/welcome.d.ts.map +1 -0
  197. package/dist/templates/welcome.js +322 -0
  198. package/dist/templates/welcome.js.map +1 -0
  199. package/dist/types/index.d.ts +46 -0
  200. package/dist/types/index.d.ts.map +1 -0
  201. package/dist/types/index.js +2 -0
  202. package/dist/types/index.js.map +1 -0
  203. package/dist/utils/batch-writer.d.ts +101 -0
  204. package/dist/utils/batch-writer.d.ts.map +1 -0
  205. package/dist/utils/batch-writer.js +232 -0
  206. package/dist/utils/batch-writer.js.map +1 -0
  207. package/dist/utils/cache.d.ts +60 -0
  208. package/dist/utils/cache.d.ts.map +1 -0
  209. package/dist/utils/cache.js +119 -0
  210. package/dist/utils/cache.js.map +1 -0
  211. package/dist/utils/fileTree.d.ts +3 -0
  212. package/dist/utils/fileTree.d.ts.map +1 -0
  213. package/dist/utils/fileTree.js +71 -0
  214. package/dist/utils/fileTree.js.map +1 -0
  215. package/dist/utils/fs.d.ts +22 -0
  216. package/dist/utils/fs.d.ts.map +1 -0
  217. package/dist/utils/fs.js +75 -0
  218. package/dist/utils/fs.js.map +1 -0
  219. package/dist/utils/helpers.d.ts +91 -0
  220. package/dist/utils/helpers.d.ts.map +1 -0
  221. package/dist/utils/helpers.js +192 -0
  222. package/dist/utils/helpers.js.map +1 -0
  223. package/dist/utils/index.d.ts +8 -0
  224. package/dist/utils/index.d.ts.map +1 -0
  225. package/dist/utils/index.js +8 -0
  226. package/dist/utils/index.js.map +1 -0
  227. package/dist/utils/progress.d.ts +85 -0
  228. package/dist/utils/progress.d.ts.map +1 -0
  229. package/dist/utils/progress.js +142 -0
  230. package/dist/utils/progress.js.map +1 -0
  231. package/dist/utils/spinner.d.ts +9 -0
  232. package/dist/utils/spinner.d.ts.map +1 -0
  233. package/dist/utils/spinner.js +56 -0
  234. package/dist/utils/spinner.js.map +1 -0
  235. package/dist/validation/index.d.ts +63 -0
  236. package/dist/validation/index.d.ts.map +1 -0
  237. package/dist/validation/index.js +262 -0
  238. package/dist/validation/index.js.map +1 -0
  239. package/package.json +71 -0
@@ -0,0 +1,390 @@
1
+ /**
2
+ * NEXO CLI - Programmatic API
3
+ *
4
+ * Allows programmatic usage of NEXO for tooling integration,
5
+ * scripts, and automated project creation.
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * import { nexo } from 'nexo-cli';
10
+ *
11
+ * const result = await nexo.create({
12
+ * projectName: 'my-app',
13
+ * targetDir: './projects',
14
+ * selections: {
15
+ * variant: 'ts',
16
+ * styling: 'tailwind',
17
+ * ui: 'shadcn'
18
+ * }
19
+ * });
20
+ * ```
21
+ */
22
+ import fs from 'node:fs/promises';
23
+ import path from 'node:path';
24
+ import { setup } from '../core/setup.js';
25
+ import { generateFileTree } from '../utils/fileTree.js';
26
+ import { pathExists } from '../utils/fs.js';
27
+ import { getCompatibilityWarnings, validateProjectName, validateSelections, } from '../validation/index.js';
28
+ // ============================================
29
+ // Default Selections
30
+ // ============================================
31
+ const DEFAULT_SELECTIONS = {
32
+ projectName: 'my-app',
33
+ framework: 'react',
34
+ variant: 'ts',
35
+ language: 'typescript',
36
+ styling: 'tailwind',
37
+ ui: 'none',
38
+ forms: 'none',
39
+ state: 'none',
40
+ routing: 'none',
41
+ dataFetching: 'none',
42
+ icons: 'none',
43
+ structure: 'simple',
44
+ i18n: 'none',
45
+ auth: 'none',
46
+ };
47
+ // ============================================
48
+ // Helper Functions
49
+ // ============================================
50
+ /**
51
+ * Merge partial selections with defaults
52
+ */
53
+ const mergeSelections = (partial, projectName) => {
54
+ const merged = {
55
+ ...DEFAULT_SELECTIONS,
56
+ ...partial,
57
+ projectName,
58
+ };
59
+ // Derive language from variant
60
+ merged.language = merged.variant.startsWith('ts') ? 'typescript' : 'javascript';
61
+ // Set variant flags
62
+ merged.hasCompiler = merged.variant.includes('compiler');
63
+ merged.hasSWC = merged.variant.includes('swc');
64
+ return merged;
65
+ };
66
+ /**
67
+ * Get dependencies for selections
68
+ */
69
+ const getDependencies = (selections) => {
70
+ const deps = [];
71
+ // Framework
72
+ deps.push({ name: 'react', version: '^19.0.0', isDev: false, reason: 'Framework' });
73
+ deps.push({ name: 'react-dom', version: '^19.0.0', isDev: false, reason: 'Framework' });
74
+ // Styling
75
+ if (selections.styling === 'tailwind') {
76
+ deps.push({ name: 'tailwindcss', version: '^4.0.0', isDev: true, reason: 'Styling' });
77
+ deps.push({ name: '@tailwindcss/vite', version: '^4.0.0', isDev: true, reason: 'Styling' });
78
+ }
79
+ else if (selections.styling === 'sass') {
80
+ deps.push({ name: 'sass', version: '^1.83.0', isDev: true, reason: 'Styling' });
81
+ }
82
+ // UI Library
83
+ if (selections.ui === 'shadcn') {
84
+ deps.push({ name: 'class-variance-authority', version: '^0.7.1', isDev: false, reason: 'UI Library' });
85
+ deps.push({ name: 'clsx', version: '^2.1.1', isDev: false, reason: 'UI Library' });
86
+ deps.push({ name: 'tailwind-merge', version: '^2.6.0', isDev: false, reason: 'UI Library' });
87
+ }
88
+ else if (selections.ui === 'mantine') {
89
+ deps.push({ name: '@mantine/core', version: '^7.15.0', isDev: false, reason: 'UI Library' });
90
+ deps.push({ name: '@mantine/hooks', version: '^7.15.0', isDev: false, reason: 'UI Library' });
91
+ }
92
+ // State Management
93
+ if (selections.state === 'zustand') {
94
+ deps.push({ name: 'zustand', version: '^5.0.0', isDev: false, reason: 'State Management' });
95
+ }
96
+ else if (selections.state === 'redux') {
97
+ deps.push({ name: '@reduxjs/toolkit', version: '^2.5.0', isDev: false, reason: 'State Management' });
98
+ deps.push({ name: 'react-redux', version: '^9.2.0', isDev: false, reason: 'State Management' });
99
+ }
100
+ else if (selections.state === 'jotai') {
101
+ deps.push({ name: 'jotai', version: '^2.10.0', isDev: false, reason: 'State Management' });
102
+ }
103
+ // Forms
104
+ if (selections.forms?.includes('rhf')) {
105
+ deps.push({ name: 'react-hook-form', version: '^7.54.0', isDev: false, reason: 'Forms' });
106
+ if (selections.forms.includes('zod')) {
107
+ deps.push({ name: 'zod', version: '^3.24.0', isDev: false, reason: 'Forms Validation' });
108
+ deps.push({ name: '@hookform/resolvers', version: '^3.9.0', isDev: false, reason: 'Forms Validation' });
109
+ }
110
+ }
111
+ // Routing
112
+ if (selections.routing === 'react-router') {
113
+ deps.push({ name: 'react-router-dom', version: '^7.1.0', isDev: false, reason: 'Routing' });
114
+ }
115
+ else if (selections.routing === 'tanstack-router') {
116
+ deps.push({ name: '@tanstack/react-router', version: '^1.93.0', isDev: false, reason: 'Routing' });
117
+ }
118
+ // Data Fetching
119
+ if (selections.dataFetching === 'tanstack-query') {
120
+ deps.push({ name: '@tanstack/react-query', version: '^5.62.0', isDev: false, reason: 'Data Fetching' });
121
+ }
122
+ else if (selections.dataFetching === 'axios') {
123
+ deps.push({ name: 'axios', version: '^1.7.0', isDev: false, reason: 'Data Fetching' });
124
+ }
125
+ // Icons
126
+ if (selections.icons === 'lucide') {
127
+ deps.push({ name: 'lucide-react', version: '^0.468.0', isDev: false, reason: 'Icons' });
128
+ }
129
+ // i18n
130
+ if (selections.i18n === 'i18next') {
131
+ deps.push({ name: 'i18next', version: '^24.0.0', isDev: false, reason: 'Internationalization' });
132
+ deps.push({ name: 'react-i18next', version: '^15.1.0', isDev: false, reason: 'Internationalization' });
133
+ }
134
+ return deps;
135
+ };
136
+ /**
137
+ * Collect files recursively from a directory
138
+ */
139
+ const collectFiles = async (dir, base = '') => {
140
+ const files = [];
141
+ try {
142
+ const entries = await fs.readdir(dir, { withFileTypes: true });
143
+ for (const entry of entries) {
144
+ const relativePath = base ? `${base}/${entry.name}` : entry.name;
145
+ if (entry.isDirectory()) {
146
+ // Skip node_modules
147
+ if (entry.name === 'node_modules')
148
+ continue;
149
+ files.push(...await collectFiles(path.join(dir, entry.name), relativePath));
150
+ }
151
+ else {
152
+ files.push(relativePath);
153
+ }
154
+ }
155
+ }
156
+ catch {
157
+ // Directory doesn't exist or can't be read
158
+ }
159
+ return files;
160
+ };
161
+ // ============================================
162
+ // Main API Functions
163
+ // ============================================
164
+ /**
165
+ * Create a new NEXO project
166
+ *
167
+ * @param options - Configuration options for the project
168
+ * @returns Promise<CreateResult> - Result of the creation operation
169
+ *
170
+ * @example
171
+ * ```typescript
172
+ * const result = await create({
173
+ * projectName: 'my-app',
174
+ * targetDir: './projects',
175
+ * selections: {
176
+ * variant: 'ts',
177
+ * styling: 'tailwind',
178
+ * ui: 'shadcn'
179
+ * }
180
+ * });
181
+ *
182
+ * if (result.success) {
183
+ * console.log(`Created at: ${result.projectPath}`);
184
+ * }
185
+ * ```
186
+ */
187
+ export const create = async (options) => {
188
+ const startTime = Date.now();
189
+ const errors = [];
190
+ const warnings = [];
191
+ // Merge selections with defaults
192
+ const selections = mergeSelections(options.selections, options.projectName);
193
+ const projectPath = path.resolve(options.targetDir, options.projectName);
194
+ // Validate selections
195
+ const validation = validateSelections(selections);
196
+ if (!validation.valid) {
197
+ return {
198
+ success: false,
199
+ projectPath,
200
+ duration: Date.now() - startTime,
201
+ files: [],
202
+ errors: validation.errors,
203
+ warnings: validation.warnings,
204
+ dryRun: options.dryRun ?? false,
205
+ };
206
+ }
207
+ // Add warnings
208
+ warnings.push(...validation.warnings);
209
+ warnings.push(...getCompatibilityWarnings(selections));
210
+ // Check if directory exists
211
+ if (!options.force && await pathExists(projectPath)) {
212
+ return {
213
+ success: false,
214
+ projectPath,
215
+ duration: Date.now() - startTime,
216
+ files: [],
217
+ errors: [`Directory "${projectPath}" already exists. Use force: true to overwrite.`],
218
+ warnings,
219
+ dryRun: options.dryRun ?? false,
220
+ };
221
+ }
222
+ // Dry run - just return what would be created
223
+ if (options.dryRun) {
224
+ const previewResult = await preview({ selections, projectName: options.projectName });
225
+ return {
226
+ success: true,
227
+ projectPath,
228
+ duration: Date.now() - startTime,
229
+ files: [], // Would need to parse fileTree for actual files
230
+ errors: [],
231
+ warnings,
232
+ dryRun: true,
233
+ };
234
+ }
235
+ // Suppress console output if silent
236
+ const originalConsole = {
237
+ log: console.log,
238
+ error: console.error,
239
+ warn: console.warn,
240
+ };
241
+ if (options.silent) {
242
+ console.log = () => { };
243
+ console.error = () => { };
244
+ console.warn = () => { };
245
+ }
246
+ try {
247
+ // Run setup
248
+ await setup({
249
+ selections,
250
+ targetDir: options.targetDir,
251
+ parallel: options.parallel ?? false,
252
+ });
253
+ // Collect created files
254
+ const files = await collectFiles(projectPath);
255
+ return {
256
+ success: true,
257
+ projectPath,
258
+ duration: Date.now() - startTime,
259
+ files,
260
+ errors: [],
261
+ warnings,
262
+ dryRun: false,
263
+ };
264
+ }
265
+ catch (error) {
266
+ const errorMessage = error instanceof Error ? error.message : String(error);
267
+ errors.push(errorMessage);
268
+ return {
269
+ success: false,
270
+ projectPath,
271
+ duration: Date.now() - startTime,
272
+ files: [],
273
+ errors,
274
+ warnings,
275
+ dryRun: false,
276
+ };
277
+ }
278
+ finally {
279
+ // Restore console
280
+ if (options.silent) {
281
+ console.log = originalConsole.log;
282
+ console.error = originalConsole.error;
283
+ console.warn = originalConsole.warn;
284
+ }
285
+ }
286
+ };
287
+ /**
288
+ * Validate project selections before creation
289
+ *
290
+ * @param selections - User selections to validate
291
+ * @returns ValidationResult - Validation result with errors and warnings
292
+ *
293
+ * @example
294
+ * ```typescript
295
+ * const result = validate({
296
+ * ui: 'shadcn',
297
+ * styling: 'plain-css' // Error: shadcn requires tailwind
298
+ * });
299
+ *
300
+ * if (!result.valid) {
301
+ * console.error(result.errors);
302
+ * }
303
+ * ```
304
+ */
305
+ export const validate = (selections) => {
306
+ const merged = mergeSelections(selections, selections.projectName || 'temp-project');
307
+ return validateSelections(merged);
308
+ };
309
+ /**
310
+ * Preview what would be created without actually creating files
311
+ *
312
+ * @param options - Preview options
313
+ * @returns PreviewResult - Preview information including file tree and dependencies
314
+ *
315
+ * @example
316
+ * ```typescript
317
+ * const preview = await nexo.preview({
318
+ * selections: {
319
+ * variant: 'ts',
320
+ * styling: 'tailwind',
321
+ * ui: 'shadcn'
322
+ * }
323
+ * });
324
+ *
325
+ * console.log(preview.fileTree);
326
+ * console.log(`Dependencies: ${preview.dependencies.length}`);
327
+ * ```
328
+ */
329
+ export const preview = async (options) => {
330
+ const projectName = options.projectName || 'preview-project';
331
+ const selections = mergeSelections(options.selections, projectName);
332
+ // Validate
333
+ const validation = validateSelections(selections);
334
+ // Generate file tree
335
+ const fileTree = generateFileTree(selections);
336
+ // Get dependencies
337
+ const dependencies = getDependencies(selections);
338
+ // Estimate file count from tree
339
+ const estimatedFileCount = (fileTree.match(/[^/]\n/g) || []).length;
340
+ return {
341
+ fileTree,
342
+ dependencies,
343
+ validation,
344
+ estimatedFileCount,
345
+ };
346
+ };
347
+ /**
348
+ * Validate a project name
349
+ *
350
+ * @param name - Project name to validate
351
+ * @returns ValidationResult - Validation result
352
+ *
353
+ * @example
354
+ * ```typescript
355
+ * const result = nexo.validateProjectName('my-app');
356
+ * if (result.valid) {
357
+ * console.log('Valid project name!');
358
+ * }
359
+ * ```
360
+ */
361
+ export { validateProjectName };
362
+ // ============================================
363
+ // Namespace Export
364
+ // ============================================
365
+ /**
366
+ * NEXO CLI API namespace
367
+ *
368
+ * @example
369
+ * ```typescript
370
+ * import { nexo } from 'nexo-cli';
371
+ *
372
+ * // Create a project
373
+ * const result = await nexo.create({ ... });
374
+ *
375
+ * // Validate selections
376
+ * const validation = nexo.validate({ ... });
377
+ *
378
+ * // Preview what would be created
379
+ * const preview = await nexo.preview({ ... });
380
+ * ```
381
+ */
382
+ export const nexo = {
383
+ create,
384
+ validate,
385
+ preview,
386
+ validateProjectName,
387
+ };
388
+ // Default export
389
+ export default nexo;
390
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=nexo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nexo.d.ts","sourceRoot":"","sources":["../../src/bin/nexo.ts"],"names":[],"mappings":""}