@fnd-platform/cli 1.0.0-alpha.24 → 1.0.0-alpha.25

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 (230) hide show
  1. package/lib/bin/fnd.js +101 -4
  2. package/lib/bin/fnd.js.map +1 -1
  3. package/lib/commands/add.js +72 -75
  4. package/lib/commands/add.js.map +1 -1
  5. package/lib/commands/build.js +29 -34
  6. package/lib/commands/build.js.map +1 -1
  7. package/lib/commands/deploy.d.ts +13 -5
  8. package/lib/commands/deploy.d.ts.map +1 -1
  9. package/lib/commands/deploy.js +94 -75
  10. package/lib/commands/deploy.js.map +1 -1
  11. package/lib/commands/destroy.js +33 -38
  12. package/lib/commands/destroy.js.map +1 -1
  13. package/lib/commands/index.d.ts +1 -0
  14. package/lib/commands/index.d.ts.map +1 -1
  15. package/lib/commands/index.js +7 -15
  16. package/lib/commands/index.js.map +1 -1
  17. package/lib/commands/new.js +46 -50
  18. package/lib/commands/new.js.map +1 -1
  19. package/lib/commands/synth.d.ts +8 -1
  20. package/lib/commands/synth.d.ts.map +1 -1
  21. package/lib/commands/synth.js +82 -22
  22. package/lib/commands/synth.js.map +1 -1
  23. package/lib/commands/test.d.ts +73 -0
  24. package/lib/commands/test.d.ts.map +1 -0
  25. package/lib/commands/test.js +193 -0
  26. package/lib/commands/test.js.map +1 -0
  27. package/lib/index.d.ts +11 -2
  28. package/lib/index.d.ts.map +1 -1
  29. package/lib/index.js +29 -18
  30. package/lib/index.js.map +1 -1
  31. package/lib/lib/deploy-utils.d.ts.map +1 -1
  32. package/lib/lib/deploy-utils.js +73 -72
  33. package/lib/lib/deploy-utils.js.map +1 -1
  34. package/lib/lib/infra-generator.js +55 -63
  35. package/lib/lib/infra-generator.js.map +1 -1
  36. package/lib/lib/logger.js +23 -29
  37. package/lib/lib/logger.js.map +1 -1
  38. package/lib/lib/nx-stats.js +12 -18
  39. package/lib/lib/nx-stats.js.map +1 -1
  40. package/lib/lib/project.js +7 -11
  41. package/lib/lib/project.js.map +1 -1
  42. package/lib/lib/templates.js +2 -6
  43. package/lib/lib/templates.js.map +1 -1
  44. package/lib/lib/timer.js +2 -7
  45. package/lib/lib/timer.js.map +1 -1
  46. package/lib/lib/validation.d.ts +135 -0
  47. package/lib/lib/validation.d.ts.map +1 -0
  48. package/lib/lib/validation.js +233 -0
  49. package/lib/lib/validation.js.map +1 -0
  50. package/lib/tui/App.d.ts +11 -0
  51. package/lib/tui/App.d.ts.map +1 -0
  52. package/lib/tui/App.js +98 -0
  53. package/lib/tui/App.js.map +1 -0
  54. package/lib/tui/components/branding/AsciiBanner.d.ts +21 -0
  55. package/lib/tui/components/branding/AsciiBanner.d.ts.map +1 -0
  56. package/lib/tui/components/branding/AsciiBanner.js +15 -0
  57. package/lib/tui/components/branding/AsciiBanner.js.map +1 -0
  58. package/lib/tui/components/branding/index.d.ts +5 -0
  59. package/lib/tui/components/branding/index.d.ts.map +1 -0
  60. package/lib/tui/components/branding/index.js +5 -0
  61. package/lib/tui/components/branding/index.js.map +1 -0
  62. package/lib/tui/components/feedback/Notification.d.ts +51 -0
  63. package/lib/tui/components/feedback/Notification.d.ts.map +1 -0
  64. package/lib/tui/components/feedback/Notification.js +89 -0
  65. package/lib/tui/components/feedback/Notification.js.map +1 -0
  66. package/lib/tui/components/feedback/ProgressBar.d.ts +46 -0
  67. package/lib/tui/components/feedback/ProgressBar.d.ts.map +1 -0
  68. package/lib/tui/components/feedback/ProgressBar.js +30 -0
  69. package/lib/tui/components/feedback/ProgressBar.js.map +1 -0
  70. package/lib/tui/components/feedback/ProgressSteps.d.ts +35 -0
  71. package/lib/tui/components/feedback/ProgressSteps.d.ts.map +1 -0
  72. package/lib/tui/components/feedback/ProgressSteps.js +37 -0
  73. package/lib/tui/components/feedback/ProgressSteps.js.map +1 -0
  74. package/lib/tui/components/feedback/Spinner.d.ts +18 -0
  75. package/lib/tui/components/feedback/Spinner.d.ts.map +1 -0
  76. package/lib/tui/components/feedback/Spinner.js +28 -0
  77. package/lib/tui/components/feedback/Spinner.js.map +1 -0
  78. package/lib/tui/components/feedback/index.d.ts +8 -0
  79. package/lib/tui/components/feedback/index.d.ts.map +1 -0
  80. package/lib/tui/components/feedback/index.js +8 -0
  81. package/lib/tui/components/feedback/index.js.map +1 -0
  82. package/lib/tui/components/index.d.ts +8 -0
  83. package/lib/tui/components/index.d.ts.map +1 -0
  84. package/lib/tui/components/index.js +8 -0
  85. package/lib/tui/components/index.js.map +1 -0
  86. package/lib/tui/components/input/Checkbox.d.ts +26 -0
  87. package/lib/tui/components/input/Checkbox.d.ts.map +1 -0
  88. package/lib/tui/components/input/Checkbox.js +20 -0
  89. package/lib/tui/components/input/Checkbox.js.map +1 -0
  90. package/lib/tui/components/input/SelectInput.d.ts +41 -0
  91. package/lib/tui/components/input/SelectInput.d.ts.map +1 -0
  92. package/lib/tui/components/input/SelectInput.js +53 -0
  93. package/lib/tui/components/input/SelectInput.js.map +1 -0
  94. package/lib/tui/components/input/TextInput.d.ts +30 -0
  95. package/lib/tui/components/input/TextInput.d.ts.map +1 -0
  96. package/lib/tui/components/input/TextInput.js +48 -0
  97. package/lib/tui/components/input/TextInput.js.map +1 -0
  98. package/lib/tui/components/input/index.d.ts +7 -0
  99. package/lib/tui/components/input/index.d.ts.map +1 -0
  100. package/lib/tui/components/input/index.js +7 -0
  101. package/lib/tui/components/input/index.js.map +1 -0
  102. package/lib/tui/components/layout/Breadcrumbs.d.ts +11 -0
  103. package/lib/tui/components/layout/Breadcrumbs.d.ts.map +1 -0
  104. package/lib/tui/components/layout/Breadcrumbs.js +34 -0
  105. package/lib/tui/components/layout/Breadcrumbs.js.map +1 -0
  106. package/lib/tui/components/layout/Footer.d.ts +11 -0
  107. package/lib/tui/components/layout/Footer.d.ts.map +1 -0
  108. package/lib/tui/components/layout/Footer.js +20 -0
  109. package/lib/tui/components/layout/Footer.js.map +1 -0
  110. package/lib/tui/components/layout/Header.d.ts +21 -0
  111. package/lib/tui/components/layout/Header.d.ts.map +1 -0
  112. package/lib/tui/components/layout/Header.js +21 -0
  113. package/lib/tui/components/layout/Header.js.map +1 -0
  114. package/lib/tui/components/layout/Screen.d.ts +27 -0
  115. package/lib/tui/components/layout/Screen.d.ts.map +1 -0
  116. package/lib/tui/components/layout/Screen.js +11 -0
  117. package/lib/tui/components/layout/Screen.js.map +1 -0
  118. package/lib/tui/components/layout/index.d.ts +8 -0
  119. package/lib/tui/components/layout/index.d.ts.map +1 -0
  120. package/lib/tui/components/layout/index.js +8 -0
  121. package/lib/tui/components/layout/index.js.map +1 -0
  122. package/lib/tui/hooks/index.d.ts +20 -0
  123. package/lib/tui/hooks/index.d.ts.map +1 -0
  124. package/lib/tui/hooks/index.js +18 -0
  125. package/lib/tui/hooks/index.js.map +1 -0
  126. package/lib/tui/hooks/useAddPackage.d.ts +120 -0
  127. package/lib/tui/hooks/useAddPackage.d.ts.map +1 -0
  128. package/lib/tui/hooks/useAddPackage.js +347 -0
  129. package/lib/tui/hooks/useAddPackage.js.map +1 -0
  130. package/lib/tui/hooks/useCreateProject.d.ts +66 -0
  131. package/lib/tui/hooks/useCreateProject.d.ts.map +1 -0
  132. package/lib/tui/hooks/useCreateProject.js +156 -0
  133. package/lib/tui/hooks/useCreateProject.js.map +1 -0
  134. package/lib/tui/hooks/useDeploy.d.ts +93 -0
  135. package/lib/tui/hooks/useDeploy.d.ts.map +1 -0
  136. package/lib/tui/hooks/useDeploy.js +252 -0
  137. package/lib/tui/hooks/useDeploy.js.map +1 -0
  138. package/lib/tui/hooks/useKeyboard.d.ts +66 -0
  139. package/lib/tui/hooks/useKeyboard.d.ts.map +1 -0
  140. package/lib/tui/hooks/useKeyboard.js +101 -0
  141. package/lib/tui/hooks/useKeyboard.js.map +1 -0
  142. package/lib/tui/hooks/useNavigation.d.ts +33 -0
  143. package/lib/tui/hooks/useNavigation.d.ts.map +1 -0
  144. package/lib/tui/hooks/useNavigation.js +27 -0
  145. package/lib/tui/hooks/useNavigation.js.map +1 -0
  146. package/lib/tui/hooks/useProject.d.ts +36 -0
  147. package/lib/tui/hooks/useProject.d.ts.map +1 -0
  148. package/lib/tui/hooks/useProject.js +47 -0
  149. package/lib/tui/hooks/useProject.js.map +1 -0
  150. package/lib/tui/index.d.ts +15 -0
  151. package/lib/tui/index.d.ts.map +1 -0
  152. package/lib/tui/index.js +16 -0
  153. package/lib/tui/index.js.map +1 -0
  154. package/lib/tui/lib/add-package-tui.d.ts +127 -0
  155. package/lib/tui/lib/add-package-tui.d.ts.map +1 -0
  156. package/lib/tui/lib/add-package-tui.js +467 -0
  157. package/lib/tui/lib/add-package-tui.js.map +1 -0
  158. package/lib/tui/lib/create-project-tui.d.ts +84 -0
  159. package/lib/tui/lib/create-project-tui.d.ts.map +1 -0
  160. package/lib/tui/lib/create-project-tui.js +141 -0
  161. package/lib/tui/lib/create-project-tui.js.map +1 -0
  162. package/lib/tui/lib/deploy-tui.d.ts +131 -0
  163. package/lib/tui/lib/deploy-tui.d.ts.map +1 -0
  164. package/lib/tui/lib/deploy-tui.js +347 -0
  165. package/lib/tui/lib/deploy-tui.js.map +1 -0
  166. package/lib/tui/screens/AddPackageScreen.d.ts +12 -0
  167. package/lib/tui/screens/AddPackageScreen.d.ts.map +1 -0
  168. package/lib/tui/screens/AddPackageScreen.js +436 -0
  169. package/lib/tui/screens/AddPackageScreen.js.map +1 -0
  170. package/lib/tui/screens/CreateProjectScreen.d.ts +12 -0
  171. package/lib/tui/screens/CreateProjectScreen.d.ts.map +1 -0
  172. package/lib/tui/screens/CreateProjectScreen.js +252 -0
  173. package/lib/tui/screens/CreateProjectScreen.js.map +1 -0
  174. package/lib/tui/screens/DeployScreen.d.ts +11 -0
  175. package/lib/tui/screens/DeployScreen.d.ts.map +1 -0
  176. package/lib/tui/screens/DeployScreen.js +224 -0
  177. package/lib/tui/screens/DeployScreen.js.map +1 -0
  178. package/lib/tui/screens/ProjectDashboard.d.ts +11 -0
  179. package/lib/tui/screens/ProjectDashboard.d.ts.map +1 -0
  180. package/lib/tui/screens/ProjectDashboard.js +42 -0
  181. package/lib/tui/screens/ProjectDashboard.js.map +1 -0
  182. package/lib/tui/screens/WelcomeScreen.d.ts +11 -0
  183. package/lib/tui/screens/WelcomeScreen.d.ts.map +1 -0
  184. package/lib/tui/screens/WelcomeScreen.js +26 -0
  185. package/lib/tui/screens/WelcomeScreen.js.map +1 -0
  186. package/lib/tui/screens/index.d.ts +9 -0
  187. package/lib/tui/screens/index.d.ts.map +1 -0
  188. package/lib/tui/screens/index.js +9 -0
  189. package/lib/tui/screens/index.js.map +1 -0
  190. package/lib/tui/services/ConfigService.d.ts +133 -0
  191. package/lib/tui/services/ConfigService.d.ts.map +1 -0
  192. package/lib/tui/services/ConfigService.js +221 -0
  193. package/lib/tui/services/ConfigService.js.map +1 -0
  194. package/lib/tui/services/ProjectService.d.ts +55 -0
  195. package/lib/tui/services/ProjectService.d.ts.map +1 -0
  196. package/lib/tui/services/ProjectService.js +179 -0
  197. package/lib/tui/services/ProjectService.js.map +1 -0
  198. package/lib/tui/services/index.d.ts +6 -0
  199. package/lib/tui/services/index.d.ts.map +1 -0
  200. package/lib/tui/services/index.js +6 -0
  201. package/lib/tui/services/index.js.map +1 -0
  202. package/lib/tui/state/AppContext.d.ts +58 -0
  203. package/lib/tui/state/AppContext.d.ts.map +1 -0
  204. package/lib/tui/state/AppContext.js +75 -0
  205. package/lib/tui/state/AppContext.js.map +1 -0
  206. package/lib/tui/state/index.d.ts +7 -0
  207. package/lib/tui/state/index.d.ts.map +1 -0
  208. package/lib/tui/state/index.js +7 -0
  209. package/lib/tui/state/index.js.map +1 -0
  210. package/lib/tui/state/reducer.d.ts +13 -0
  211. package/lib/tui/state/reducer.d.ts.map +1 -0
  212. package/lib/tui/state/reducer.js +136 -0
  213. package/lib/tui/state/reducer.js.map +1 -0
  214. package/lib/tui/state/types.d.ts +132 -0
  215. package/lib/tui/state/types.d.ts.map +1 -0
  216. package/lib/tui/state/types.js +38 -0
  217. package/lib/tui/state/types.js.map +1 -0
  218. package/lib/tui/utils/ascii.d.ts +42 -0
  219. package/lib/tui/utils/ascii.d.ts.map +1 -0
  220. package/lib/tui/utils/ascii.js +63 -0
  221. package/lib/tui/utils/ascii.js.map +1 -0
  222. package/lib/tui/utils/colors.d.ts +65 -0
  223. package/lib/tui/utils/colors.d.ts.map +1 -0
  224. package/lib/tui/utils/colors.js +65 -0
  225. package/lib/tui/utils/colors.js.map +1 -0
  226. package/lib/tui/utils/index.d.ts +6 -0
  227. package/lib/tui/utils/index.d.ts.map +1 -0
  228. package/lib/tui/utils/index.js +6 -0
  229. package/lib/tui/utils/index.js.map +1 -0
  230. package/package.json +12 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/tui/state/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * State types for the FND TUI.
3
+ */
4
+ /**
5
+ * Initial application state.
6
+ */
7
+ export const initialState = {
8
+ navigation: {
9
+ currentScreen: 'welcome',
10
+ history: [],
11
+ params: undefined,
12
+ },
13
+ project: {
14
+ context: 'unknown',
15
+ rootPath: null,
16
+ name: null,
17
+ packages: [],
18
+ currentStage: null,
19
+ isLoading: true,
20
+ error: null,
21
+ },
22
+ ui: {
23
+ showHelp: false,
24
+ showSettings: false,
25
+ notification: null,
26
+ notificationType: null,
27
+ dimensions: {
28
+ width: process.stdout.columns || 80,
29
+ height: process.stdout.rows || 24,
30
+ },
31
+ },
32
+ preferences: {
33
+ defaultStage: 'dev',
34
+ showBanner: true,
35
+ theme: 'auto',
36
+ },
37
+ };
38
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/tui/state/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AA4GH;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAa;IACpC,UAAU,EAAE;QACV,aAAa,EAAE,SAAS;QACxB,OAAO,EAAE,EAAE;QACX,MAAM,EAAE,SAAS;KAClB;IACD,OAAO,EAAE;QACP,OAAO,EAAE,SAAS;QAClB,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,IAAI;QACV,QAAQ,EAAE,EAAE;QACZ,YAAY,EAAE,IAAI;QAClB,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,IAAI;KACZ;IACD,EAAE,EAAE;QACF,QAAQ,EAAE,KAAK;QACf,YAAY,EAAE,KAAK;QACnB,YAAY,EAAE,IAAI;QAClB,gBAAgB,EAAE,IAAI;QACtB,UAAU,EAAE;YACV,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE;YACnC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE;SAClC;KACF;IACD,WAAW,EAAE;QACX,YAAY,EAAE,KAAK;QACnB,UAAU,EAAE,IAAI;QAChB,KAAK,EAAE,MAAM;KACd;CACF,CAAC"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * ASCII art utilities for the FND TUI.
3
+ *
4
+ * Uses figlet for generating ASCII banners.
5
+ */
6
+ /**
7
+ * Default ASCII banner for FND.
8
+ * Pre-rendered to avoid async issues during render.
9
+ */
10
+ export declare const FND_BANNER: string;
11
+ /**
12
+ * Compact ASCII banner for smaller displays.
13
+ */
14
+ export declare const FND_BANNER_SMALL: string;
15
+ /**
16
+ * Available figlet fonts.
17
+ */
18
+ export type FigletFont = 'Standard' | 'Big' | 'Small' | 'Banner' | 'Slant';
19
+ /**
20
+ * Generates an ASCII banner using figlet.
21
+ *
22
+ * @param text - Text to render
23
+ * @param font - Figlet font to use
24
+ * @returns ASCII art string
25
+ */
26
+ export declare function generateBanner(text: string, font?: FigletFont): string;
27
+ /**
28
+ * Gets the appropriate banner based on terminal width.
29
+ *
30
+ * @param width - Terminal width
31
+ * @returns ASCII banner string
32
+ */
33
+ export declare function getBannerForWidth(width: number): string;
34
+ /**
35
+ * Tagline shown below the banner.
36
+ */
37
+ export declare const TAGLINE = "AWS-Native TypeScript Monorepo Toolkit";
38
+ /**
39
+ * Short description for the TUI.
40
+ */
41
+ export declare const DESCRIPTION = "Build production-ready full-stack applications in minutes";
42
+ //# sourceMappingURL=ascii.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ascii.d.ts","sourceRoot":"","sources":["../../../src/tui/utils/ascii.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;;GAGG;AACH,eAAO,MAAM,UAAU,QAOf,CAAC;AAET;;GAEG;AACH,eAAO,MAAM,gBAAgB,QAIrB,CAAC;AAET;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE3E;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,UAAuB,GAAG,MAAM,CAOlF;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKvD;AAED;;GAEG;AACH,eAAO,MAAM,OAAO,2CAA2C,CAAC;AAEhE;;GAEG;AACH,eAAO,MAAM,WAAW,8DAA8D,CAAC"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * ASCII art utilities for the FND TUI.
3
+ *
4
+ * Uses figlet for generating ASCII banners.
5
+ */
6
+ import figlet from 'figlet';
7
+ /**
8
+ * Default ASCII banner for FND.
9
+ * Pre-rendered to avoid async issues during render.
10
+ */
11
+ export const FND_BANNER = `
12
+ ███████╗███╗ ██╗██████╗
13
+ ██╔════╝████╗ ██║██╔══██╗
14
+ █████╗ ██╔██╗ ██║██║ ██║
15
+ ██╔══╝ ██║╚██╗██║██║ ██║
16
+ ██║ ██║ ╚████║██████╔╝
17
+ ╚═╝ ╚═╝ ╚═══╝╚═════╝
18
+ `.trim();
19
+ /**
20
+ * Compact ASCII banner for smaller displays.
21
+ */
22
+ export const FND_BANNER_SMALL = `
23
+ ╔═╗╔╗╔╔╦╗
24
+ ╠╣ ║║║ ║║
25
+ ╚ ╝╚╝═╩╝
26
+ `.trim();
27
+ /**
28
+ * Generates an ASCII banner using figlet.
29
+ *
30
+ * @param text - Text to render
31
+ * @param font - Figlet font to use
32
+ * @returns ASCII art string
33
+ */
34
+ export function generateBanner(text, font = 'Standard') {
35
+ try {
36
+ return figlet.textSync(text, { font });
37
+ }
38
+ catch {
39
+ // Fallback to simple text if font not available
40
+ return text;
41
+ }
42
+ }
43
+ /**
44
+ * Gets the appropriate banner based on terminal width.
45
+ *
46
+ * @param width - Terminal width
47
+ * @returns ASCII banner string
48
+ */
49
+ export function getBannerForWidth(width) {
50
+ if (width < 40) {
51
+ return FND_BANNER_SMALL;
52
+ }
53
+ return FND_BANNER;
54
+ }
55
+ /**
56
+ * Tagline shown below the banner.
57
+ */
58
+ export const TAGLINE = 'AWS-Native TypeScript Monorepo Toolkit';
59
+ /**
60
+ * Short description for the TUI.
61
+ */
62
+ export const DESCRIPTION = 'Build production-ready full-stack applications in minutes';
63
+ //# sourceMappingURL=ascii.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ascii.js","sourceRoot":"","sources":["../../../src/tui/utils/ascii.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B;;;GAGG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;;;;;;;CAOzB,CAAC,IAAI,EAAE,CAAC;AAET;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;;;;CAI/B,CAAC,IAAI,EAAE,CAAC;AAOT;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,OAAmB,UAAU;IACxE,IAAI,CAAC;QACH,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IACzC,CAAC;IAAC,MAAM,CAAC;QACP,gDAAgD;QAChD,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC7C,IAAI,KAAK,GAAG,EAAE,EAAE,CAAC;QACf,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,wCAAwC,CAAC;AAEhE;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,2DAA2D,CAAC"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * Color palette for the FND TUI.
3
+ *
4
+ * Based on a modern, accessible color scheme that works well
5
+ * in both light and dark terminal themes.
6
+ */
7
+ /**
8
+ * Primary brand colors.
9
+ */
10
+ export declare const colors: {
11
+ /** Primary brand color - electric blue */
12
+ readonly primary: "#00A3FF";
13
+ /** Secondary brand color - purple */
14
+ readonly secondary: "#A855F7";
15
+ /** Success/positive color - green */
16
+ readonly success: "#22C55E";
17
+ /** Warning color - amber */
18
+ readonly warning: "#F59E0B";
19
+ /** Error/danger color - red */
20
+ readonly error: "#EF4444";
21
+ /** Muted text color - gray */
22
+ readonly muted: "#6B7280";
23
+ /** Accent color - cyan */
24
+ readonly accent: "#06B6D4";
25
+ };
26
+ /**
27
+ * Semantic text colors.
28
+ */
29
+ export declare const textColors: {
30
+ /** Primary text */
31
+ readonly primary: "#FFFFFF";
32
+ /** Secondary/muted text */
33
+ readonly secondary: "#9CA3AF";
34
+ /** Dimmed/subtle text */
35
+ readonly dimmed: "#6B7280";
36
+ /** Inverse text (on light backgrounds) */
37
+ readonly inverse: "#111827";
38
+ };
39
+ /**
40
+ * Status indicator colors.
41
+ */
42
+ export declare const statusColors: {
43
+ /** Active/running status */
44
+ readonly active: "#22C55E";
45
+ /** Pending/waiting status */
46
+ readonly pending: "#F59E0B";
47
+ /** Error/failed status */
48
+ readonly failed: "#EF4444";
49
+ /** Idle/inactive status */
50
+ readonly idle: "#6B7280";
51
+ };
52
+ /**
53
+ * Navigation and UI element colors.
54
+ */
55
+ export declare const uiColors: {
56
+ /** Selected/highlighted item */
57
+ readonly selected: "#00A3FF";
58
+ /** Hover state */
59
+ readonly hover: "#A855F7";
60
+ /** Border color */
61
+ readonly border: "#374151";
62
+ /** Background highlight */
63
+ readonly highlight: "#1F2937";
64
+ };
65
+ //# sourceMappingURL=colors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"colors.d.ts","sourceRoot":"","sources":["../../../src/tui/utils/colors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,eAAO,MAAM,MAAM;IACjB,0CAA0C;;IAE1C,qCAAqC;;IAErC,qCAAqC;;IAErC,4BAA4B;;IAE5B,+BAA+B;;IAE/B,8BAA8B;;IAE9B,0BAA0B;;CAElB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,UAAU;IACrB,mBAAmB;;IAEnB,2BAA2B;;IAE3B,yBAAyB;;IAEzB,0CAA0C;;CAElC,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,YAAY;IACvB,4BAA4B;;IAE5B,6BAA6B;;IAE7B,0BAA0B;;IAE1B,2BAA2B;;CAEnB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,QAAQ;IACnB,gCAAgC;;IAEhC,kBAAkB;;IAElB,mBAAmB;;IAEnB,2BAA2B;;CAEnB,CAAC"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * Color palette for the FND TUI.
3
+ *
4
+ * Based on a modern, accessible color scheme that works well
5
+ * in both light and dark terminal themes.
6
+ */
7
+ /**
8
+ * Primary brand colors.
9
+ */
10
+ export const colors = {
11
+ /** Primary brand color - electric blue */
12
+ primary: '#00A3FF',
13
+ /** Secondary brand color - purple */
14
+ secondary: '#A855F7',
15
+ /** Success/positive color - green */
16
+ success: '#22C55E',
17
+ /** Warning color - amber */
18
+ warning: '#F59E0B',
19
+ /** Error/danger color - red */
20
+ error: '#EF4444',
21
+ /** Muted text color - gray */
22
+ muted: '#6B7280',
23
+ /** Accent color - cyan */
24
+ accent: '#06B6D4',
25
+ };
26
+ /**
27
+ * Semantic text colors.
28
+ */
29
+ export const textColors = {
30
+ /** Primary text */
31
+ primary: '#FFFFFF',
32
+ /** Secondary/muted text */
33
+ secondary: '#9CA3AF',
34
+ /** Dimmed/subtle text */
35
+ dimmed: '#6B7280',
36
+ /** Inverse text (on light backgrounds) */
37
+ inverse: '#111827',
38
+ };
39
+ /**
40
+ * Status indicator colors.
41
+ */
42
+ export const statusColors = {
43
+ /** Active/running status */
44
+ active: colors.success,
45
+ /** Pending/waiting status */
46
+ pending: colors.warning,
47
+ /** Error/failed status */
48
+ failed: colors.error,
49
+ /** Idle/inactive status */
50
+ idle: colors.muted,
51
+ };
52
+ /**
53
+ * Navigation and UI element colors.
54
+ */
55
+ export const uiColors = {
56
+ /** Selected/highlighted item */
57
+ selected: colors.primary,
58
+ /** Hover state */
59
+ hover: colors.secondary,
60
+ /** Border color */
61
+ border: '#374151',
62
+ /** Background highlight */
63
+ highlight: '#1F2937',
64
+ };
65
+ //# sourceMappingURL=colors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"colors.js","sourceRoot":"","sources":["../../../src/tui/utils/colors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,0CAA0C;IAC1C,OAAO,EAAE,SAAS;IAClB,qCAAqC;IACrC,SAAS,EAAE,SAAS;IACpB,qCAAqC;IACrC,OAAO,EAAE,SAAS;IAClB,4BAA4B;IAC5B,OAAO,EAAE,SAAS;IAClB,+BAA+B;IAC/B,KAAK,EAAE,SAAS;IAChB,8BAA8B;IAC9B,KAAK,EAAE,SAAS;IAChB,0BAA0B;IAC1B,MAAM,EAAE,SAAS;CACT,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,mBAAmB;IACnB,OAAO,EAAE,SAAS;IAClB,2BAA2B;IAC3B,SAAS,EAAE,SAAS;IACpB,yBAAyB;IACzB,MAAM,EAAE,SAAS;IACjB,0CAA0C;IAC1C,OAAO,EAAE,SAAS;CACV,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,4BAA4B;IAC5B,MAAM,EAAE,MAAM,CAAC,OAAO;IACtB,6BAA6B;IAC7B,OAAO,EAAE,MAAM,CAAC,OAAO;IACvB,0BAA0B;IAC1B,MAAM,EAAE,MAAM,CAAC,KAAK;IACpB,2BAA2B;IAC3B,IAAI,EAAE,MAAM,CAAC,KAAK;CACV,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,gCAAgC;IAChC,QAAQ,EAAE,MAAM,CAAC,OAAO;IACxB,kBAAkB;IAClB,KAAK,EAAE,MAAM,CAAC,SAAS;IACvB,mBAAmB;IACnB,MAAM,EAAE,SAAS;IACjB,2BAA2B;IAC3B,SAAS,EAAE,SAAS;CACZ,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * TUI utility exports.
3
+ */
4
+ export * from './ascii.js';
5
+ export * from './colors.js';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tui/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * TUI utility exports.
3
+ */
4
+ export * from './ascii.js';
5
+ export * from './colors.js';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tui/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "@fnd-platform/cli",
3
- "version": "1.0.0-alpha.24",
3
+ "version": "1.0.0-alpha.25",
4
+ "type": "module",
4
5
  "description": "CLI tool for fnd-platform monorepo scaffolding",
5
6
  "main": "lib/index.js",
6
7
  "types": "lib/index.d.ts",
@@ -13,14 +14,20 @@
13
14
  "dependencies": {
14
15
  "chalk": "^5.3.0",
15
16
  "commander": "^12.0.0",
16
- "@fnd-platform/core": "^1.0.0-alpha.6"
17
+ "figlet": "^1.7.0",
18
+ "ink": "^5.0.1",
19
+ "react": "^18.2.0",
20
+ "@fnd-platform/core": "^1.0.0-alpha.7"
17
21
  },
18
22
  "devDependencies": {
23
+ "@types/figlet": "^1.5.8",
19
24
  "@types/node": "^20.0.0",
25
+ "@types/react": "^18.2.0",
20
26
  "@typescript-eslint/eslint-plugin": "^7.18.0",
21
27
  "@typescript-eslint/parser": "^7.18.0",
22
28
  "@vitest/coverage-v8": "^1.6.0",
23
29
  "eslint": "^8.57.0",
30
+ "ink-testing-library": "^4.0.0",
24
31
  "typescript": "^5.6.3",
25
32
  "vitest": "^1.6.0"
26
33
  },
@@ -49,6 +56,8 @@
49
56
  "test:coverage": "vitest run --coverage",
50
57
  "e2e": "vitest run --config vitest.config.e2e.ts",
51
58
  "e2e:watch": "vitest --config vitest.config.e2e.ts",
52
- "lint": "eslint src/ test/"
59
+ "lint": "eslint src/ test/",
60
+ "dev": "node lib/bin/fnd.js",
61
+ "dev:tui": "node lib/bin/fnd.js --interactive"
53
62
  }
54
63
  }