@fnd-platform/cli 1.0.0-alpha.23 → 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
@@ -1,16 +1,8 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.destroyCommand = exports.deployCommand = exports.addCommand = exports.buildCommand = exports.synthCommand = exports.newCommand = void 0;
4
- var new_js_1 = require("./new.js");
5
- Object.defineProperty(exports, "newCommand", { enumerable: true, get: function () { return new_js_1.newCommand; } });
6
- var synth_js_1 = require("./synth.js");
7
- Object.defineProperty(exports, "synthCommand", { enumerable: true, get: function () { return synth_js_1.synthCommand; } });
8
- var build_js_1 = require("./build.js");
9
- Object.defineProperty(exports, "buildCommand", { enumerable: true, get: function () { return build_js_1.buildCommand; } });
10
- var add_js_1 = require("./add.js");
11
- Object.defineProperty(exports, "addCommand", { enumerable: true, get: function () { return add_js_1.addCommand; } });
12
- var deploy_js_1 = require("./deploy.js");
13
- Object.defineProperty(exports, "deployCommand", { enumerable: true, get: function () { return deploy_js_1.deployCommand; } });
14
- var destroy_js_1 = require("./destroy.js");
15
- Object.defineProperty(exports, "destroyCommand", { enumerable: true, get: function () { return destroy_js_1.destroyCommand; } });
1
+ export { newCommand } from './new.js';
2
+ export { synthCommand } from './synth.js';
3
+ export { buildCommand } from './build.js';
4
+ export { testCommand } from './test.js';
5
+ export { addCommand } from './add.js';
6
+ export { deployCommand } from './deploy.js';
7
+ export { destroyCommand } from './destroy.js';
16
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":";;;AAAA,mCAAsC;AAA7B,oGAAA,UAAU,OAAA;AACnB,uCAA0C;AAAjC,wGAAA,YAAY,OAAA;AACrB,uCAA0C;AAAjC,wGAAA,YAAY,OAAA;AACrB,mCAAsC;AAA7B,oGAAA,UAAU,OAAA;AACnB,yCAA4C;AAAnC,0GAAA,aAAa,OAAA;AACtB,2CAA8C;AAArC,4GAAA,cAAc,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC"}
@@ -1,21 +1,15 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PROJECT_NAME_PATTERN = void 0;
4
- exports.newCommand = newCommand;
5
- exports.createProject = createProject;
6
- const commander_1 = require("commander");
7
- const child_process_1 = require("child_process");
8
- const fs_1 = require("fs");
9
- const path_1 = require("path");
10
- const logger_js_1 = require("../lib/logger.js");
11
- const templates_js_1 = require("../lib/templates.js");
12
- const timer_js_1 = require("../lib/timer.js");
1
+ import { Command } from 'commander';
2
+ import { execSync } from 'child_process';
3
+ import { existsSync, mkdirSync, rmSync, writeFileSync } from 'fs';
4
+ import { join, resolve } from 'path';
5
+ import { logger } from '../lib/logger.js';
6
+ import { getProjenrcTemplate, getInitialPackageJson } from '../lib/templates.js';
7
+ import { PerformanceTimer } from '../lib/timer.js';
13
8
  /**
14
9
  * Valid project name pattern: lowercase alphanumeric with hyphens.
15
10
  * Must start with a letter.
16
11
  */
17
12
  const PROJECT_NAME_PATTERN = /^[a-z][a-z0-9-]*$/;
18
- exports.PROJECT_NAME_PATTERN = PROJECT_NAME_PATTERN;
19
13
  /**
20
14
  * Creates the `fnd new` command.
21
15
  *
@@ -30,8 +24,8 @@ exports.PROJECT_NAME_PATTERN = PROJECT_NAME_PATTERN;
30
24
  * program.parse(['node', 'fnd', 'new', 'my-app']);
31
25
  * ```
32
26
  */
33
- function newCommand() {
34
- return new commander_1.Command('new')
27
+ export function newCommand() {
28
+ return new Command('new')
35
29
  .description('Create a new fnd-platform monorepo project')
36
30
  .argument('<name>', 'Project name (lowercase alphanumeric with hyphens)')
37
31
  .option('--package-manager <pm>', 'Package manager to use (pnpm or yarn)', 'pnpm')
@@ -56,84 +50,84 @@ function newCommand() {
56
50
  * });
57
51
  * ```
58
52
  */
59
- async function createProject(name, options) {
53
+ export async function createProject(name, options) {
60
54
  // Initialize profiling if enabled
61
- const timer = timer_js_1.PerformanceTimer.isEnabled() ? new timer_js_1.PerformanceTimer('fnd new') : null;
55
+ const timer = PerformanceTimer.isEnabled() ? new PerformanceTimer('fnd new') : null;
62
56
  // Validate project name
63
57
  if (!PROJECT_NAME_PATTERN.test(name)) {
64
- logger_js_1.logger.error(`Invalid project name: '${name}'. ` +
58
+ logger.error(`Invalid project name: '${name}'. ` +
65
59
  'Project name must start with a letter and contain only lowercase letters, numbers, and hyphens.');
66
60
  process.exit(1);
67
61
  }
68
- const projectDir = (0, path_1.resolve)(process.cwd(), name);
62
+ const projectDir = resolve(process.cwd(), name);
69
63
  // Check if directory already exists
70
- if ((0, fs_1.existsSync)(projectDir)) {
71
- logger_js_1.logger.error(`Directory '${name}' already exists. ` +
64
+ if (existsSync(projectDir)) {
65
+ logger.error(`Directory '${name}' already exists. ` +
72
66
  'Please choose a different name or remove the existing directory.');
73
67
  process.exit(1);
74
68
  }
75
- logger_js_1.logger.info(`Creating new fnd-platform project: ${name}`);
69
+ logger.info(`Creating new fnd-platform project: ${name}`);
76
70
  try {
77
71
  // Step 1: Create project directory and write files
78
72
  timer?.start('file-generation');
79
- logger_js_1.logger.debug(`Creating directory: ${projectDir}`);
80
- (0, fs_1.mkdirSync)(projectDir, { recursive: true });
73
+ logger.debug(`Creating directory: ${projectDir}`);
74
+ mkdirSync(projectDir, { recursive: true });
81
75
  // Step 2: Write .projenrc.ts
82
- logger_js_1.logger.debug('Writing .projenrc.ts');
83
- (0, fs_1.writeFileSync)((0, path_1.join)(projectDir, '.projenrc.ts'), (0, templates_js_1.getProjenrcTemplate)(name));
76
+ logger.debug('Writing .projenrc.ts');
77
+ writeFileSync(join(projectDir, '.projenrc.ts'), getProjenrcTemplate(name));
84
78
  // Step 3: Write initial package.json
85
- logger_js_1.logger.debug('Writing initial package.json');
86
- (0, fs_1.writeFileSync)((0, path_1.join)(projectDir, 'package.json'), JSON.stringify((0, templates_js_1.getInitialPackageJson)(name, options.packageManager), null, 2));
79
+ logger.debug('Writing initial package.json');
80
+ writeFileSync(join(projectDir, 'package.json'), JSON.stringify(getInitialPackageJson(name, options.packageManager), null, 2));
87
81
  const fileGenResult = timer?.end('file-generation');
88
82
  if (fileGenResult) {
89
- logger_js_1.logger.timing('file-generation', fileGenResult.durationMs);
83
+ logger.timing('file-generation', fileGenResult.durationMs);
90
84
  }
91
85
  // Step 4: Initialize git repository (unless --no-git)
92
86
  if (options.git) {
93
87
  timer?.start('git-init');
94
- logger_js_1.logger.debug('Initializing git repository');
88
+ logger.debug('Initializing git repository');
95
89
  initializeGit(projectDir);
96
90
  const gitResult = timer?.end('git-init');
97
91
  if (gitResult) {
98
- logger_js_1.logger.timing('git-init', gitResult.durationMs);
92
+ logger.timing('git-init', gitResult.durationMs);
99
93
  }
100
94
  }
101
95
  // Step 5: Install dependencies and run Projen (unless --no-install)
102
96
  if (options.install) {
103
97
  timer?.start('install-dependencies');
104
- logger_js_1.logger.info('Installing dependencies...');
98
+ logger.info('Installing dependencies...');
105
99
  installDependencies(projectDir, options.packageManager);
106
100
  const installResult = timer?.end('install-dependencies');
107
101
  if (installResult) {
108
- logger_js_1.logger.timing('install-dependencies', installResult.durationMs);
102
+ logger.timing('install-dependencies', installResult.durationMs);
109
103
  }
110
104
  timer?.start('projen-synth');
111
- logger_js_1.logger.info('Running Projen synthesis...');
105
+ logger.info('Running Projen synthesis...');
112
106
  runProjen(projectDir);
113
107
  const synthResult = timer?.end('projen-synth');
114
108
  if (synthResult) {
115
- logger_js_1.logger.timing('projen-synth', synthResult.durationMs);
109
+ logger.timing('projen-synth', synthResult.durationMs);
116
110
  }
117
111
  }
118
- logger_js_1.logger.success(`Project '${name}' created successfully!`);
112
+ logger.success(`Project '${name}' created successfully!`);
119
113
  printNextSteps(name, options);
120
114
  // Output profile report if enabled
121
115
  if (timer) {
122
116
  const report = timer.getReport(true);
123
- logger_js_1.logger.report(report);
117
+ logger.report(report);
124
118
  }
125
119
  }
126
120
  catch (error) {
127
121
  // Output profile report even on failure
128
122
  if (timer) {
129
123
  const report = timer.getReport(false);
130
- logger_js_1.logger.report(report);
124
+ logger.report(report);
131
125
  }
132
- logger_js_1.logger.error(`Failed to create project: ${error.message}`);
126
+ logger.error(`Failed to create project: ${error.message}`);
133
127
  // Clean up partial project on failure
134
- if ((0, fs_1.existsSync)(projectDir)) {
135
- logger_js_1.logger.debug('Cleaning up partial project directory');
136
- (0, fs_1.rmSync)(projectDir, { recursive: true, force: true });
128
+ if (existsSync(projectDir)) {
129
+ logger.debug('Cleaning up partial project directory');
130
+ rmSync(projectDir, { recursive: true, force: true });
137
131
  }
138
132
  process.exit(1);
139
133
  }
@@ -143,22 +137,22 @@ async function createProject(name, options) {
143
137
  */
144
138
  function initializeGit(projectDir) {
145
139
  try {
146
- (0, child_process_1.execSync)('git init', {
140
+ execSync('git init', {
147
141
  cwd: projectDir,
148
142
  stdio: 'pipe',
149
143
  });
150
- (0, child_process_1.execSync)('git add -A', {
144
+ execSync('git add -A', {
151
145
  cwd: projectDir,
152
146
  stdio: 'pipe',
153
147
  });
154
- (0, child_process_1.execSync)('git commit -m "Initial commit from fnd-platform"', {
148
+ execSync('git commit -m "Initial commit from fnd-platform"', {
155
149
  cwd: projectDir,
156
150
  stdio: 'pipe',
157
151
  });
158
152
  }
159
153
  catch (error) {
160
- logger_js_1.logger.warn('Git initialization failed (git may not be configured)');
161
- logger_js_1.logger.debug(`Git error: ${error.message}`);
154
+ logger.warn('Git initialization failed (git may not be configured)');
155
+ logger.debug(`Git error: ${error.message}`);
162
156
  }
163
157
  }
164
158
  /**
@@ -166,7 +160,7 @@ function initializeGit(projectDir) {
166
160
  */
167
161
  function installDependencies(projectDir, packageManager) {
168
162
  const installCmd = packageManager === 'pnpm' ? 'pnpm install' : 'yarn install';
169
- (0, child_process_1.execSync)(installCmd, {
163
+ execSync(installCmd, {
170
164
  cwd: projectDir,
171
165
  stdio: 'inherit',
172
166
  });
@@ -175,7 +169,7 @@ function installDependencies(projectDir, packageManager) {
175
169
  * Run Projen synthesis.
176
170
  */
177
171
  function runProjen(projectDir) {
178
- (0, child_process_1.execSync)('npx tsx .projenrc.ts', {
172
+ execSync('npx tsx .projenrc.ts', {
179
173
  cwd: projectDir,
180
174
  stdio: 'inherit',
181
175
  });
@@ -185,7 +179,7 @@ function runProjen(projectDir) {
185
179
  */
186
180
  function printNextSteps(name, options) {
187
181
  console.log('');
188
- logger_js_1.logger.info('Next steps:');
182
+ logger.info('Next steps:');
189
183
  console.log(` cd ${name}`);
190
184
  if (!options.install) {
191
185
  const pm = options.packageManager;
@@ -196,4 +190,6 @@ function printNextSteps(name, options) {
196
190
  console.log(' fnd add frontend --name=frontend --api=api');
197
191
  console.log('');
198
192
  }
193
+ // Export for testing
194
+ export { PROJECT_NAME_PATTERN };
199
195
  //# sourceMappingURL=new.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"new.js","sourceRoot":"","sources":["../../src/commands/new.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"new.js","sourceRoot":"","sources":["../../src/commands/new.ts"],"names":[],"mappings":"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"}
@@ -30,10 +30,17 @@ export declare function synthCommand(): Command;
30
30
  * // Run synthesis with default options
31
31
  * await runSynth({});
32
32
  *
33
- * // Run synthesis with watch mode (when implemented)
33
+ * // Run synthesis with watch mode
34
34
  * await runSynth({ watch: true });
35
35
  * ```
36
36
  */
37
37
  export declare function runSynth(options: SynthCommandOptions): Promise<void>;
38
+ /**
39
+ * Runs the Projen synthesis command.
40
+ *
41
+ * @param projectRoot - Root directory of the project
42
+ * @returns true if successful, false otherwise
43
+ */
44
+ export declare function runProjenSynth(projectRoot: string): boolean;
38
45
  export {};
39
46
  //# sourceMappingURL=synth.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"synth.d.ts","sourceRoot":"","sources":["../../src/commands/synth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC;;GAEG;AACH,UAAU,mBAAmB;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,YAAY,IAAI,OAAO,CAOtC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,QAAQ,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4B1E"}
1
+ {"version":3,"file":"synth.d.ts","sourceRoot":"","sources":["../../src/commands/synth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC;;GAEG;AACH,UAAU,mBAAmB;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,YAAY,IAAI,OAAO,CAOtC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,QAAQ,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAsB1E;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAa3D"}
@@ -1,11 +1,9 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.synthCommand = synthCommand;
4
- exports.runSynth = runSynth;
5
- const commander_1 = require("commander");
6
- const child_process_1 = require("child_process");
7
- const project_js_1 = require("../lib/project.js");
8
- const logger_js_1 = require("../lib/logger.js");
1
+ import { Command } from 'commander';
2
+ import { execSync } from 'child_process';
3
+ import { watch, existsSync } from 'fs';
4
+ import { join } from 'path';
5
+ import { requireProjectRoot } from '../lib/project.js';
6
+ import { logger } from '../lib/logger.js';
9
7
  /**
10
8
  * Creates the `fnd synth` command.
11
9
  *
@@ -20,10 +18,10 @@ const logger_js_1 = require("../lib/logger.js");
20
18
  * program.parse(['node', 'fnd', 'synth']);
21
19
  * ```
22
20
  */
23
- function synthCommand() {
24
- return new commander_1.Command('synth')
21
+ export function synthCommand() {
22
+ return new Command('synth')
25
23
  .description('Synthesize project configuration using Projen')
26
- .option('--watch', 'Watch for changes and re-synthesize (not yet implemented)')
24
+ .option('--watch', 'Watch for changes and re-synthesize')
27
25
  .action(async (options) => {
28
26
  await runSynth(options);
29
27
  });
@@ -38,35 +36,97 @@ function synthCommand() {
38
36
  * // Run synthesis with default options
39
37
  * await runSynth({});
40
38
  *
41
- * // Run synthesis with watch mode (when implemented)
39
+ * // Run synthesis with watch mode
42
40
  * await runSynth({ watch: true });
43
41
  * ```
44
42
  */
45
- async function runSynth(options) {
43
+ export async function runSynth(options) {
46
44
  let projectRoot;
47
45
  try {
48
- projectRoot = (0, project_js_1.requireProjectRoot)();
46
+ projectRoot = requireProjectRoot();
49
47
  }
50
48
  catch (error) {
51
- logger_js_1.logger.error(error.message);
49
+ logger.error(error.message);
52
50
  process.exit(1);
53
51
  }
54
- logger_js_1.logger.info('Synthesizing project configuration...');
55
- logger_js_1.logger.debug(`Project root: ${projectRoot}`);
52
+ logger.info('Synthesizing project configuration...');
53
+ logger.debug(`Project root: ${projectRoot}`);
54
+ // Run initial synthesis
55
+ if (!runProjenSynth(projectRoot)) {
56
+ process.exit(1);
57
+ }
58
+ // If watch mode, set up file watcher
56
59
  if (options.watch) {
57
- logger_js_1.logger.warn('Watch mode is not yet implemented');
60
+ await watchForChanges(projectRoot);
58
61
  }
62
+ }
63
+ /**
64
+ * Runs the Projen synthesis command.
65
+ *
66
+ * @param projectRoot - Root directory of the project
67
+ * @returns true if successful, false otherwise
68
+ */
69
+ export function runProjenSynth(projectRoot) {
59
70
  try {
60
- (0, child_process_1.execSync)('npx projen', {
71
+ execSync('npx projen', {
61
72
  cwd: projectRoot,
62
73
  stdio: 'inherit',
63
74
  });
64
- logger_js_1.logger.success('Synthesis complete');
75
+ logger.success('Synthesis complete');
76
+ return true;
65
77
  }
66
78
  catch (error) {
67
- logger_js_1.logger.error('Synthesis failed');
68
- logger_js_1.logger.debug(`Error: ${error.message}`);
79
+ logger.error('Synthesis failed');
80
+ logger.debug(`Error: ${error.message}`);
81
+ return false;
82
+ }
83
+ }
84
+ /**
85
+ * Watches for changes to .projenrc.ts and re-runs synthesis.
86
+ *
87
+ * @param projectRoot - Root directory of the project
88
+ */
89
+ async function watchForChanges(projectRoot) {
90
+ const projenrcPath = join(projectRoot, '.projenrc.ts');
91
+ if (!existsSync(projenrcPath)) {
92
+ logger.error('.projenrc.ts not found');
69
93
  process.exit(1);
70
94
  }
95
+ logger.info('Watching for changes to .projenrc.ts... (Ctrl+C to stop)');
96
+ // Debounce timer to avoid rapid re-runs
97
+ let debounceTimer = null;
98
+ const debounceMs = 500;
99
+ const watcher = watch(projenrcPath, (eventType) => {
100
+ if (eventType === 'change') {
101
+ // Clear existing timer if present
102
+ if (debounceTimer) {
103
+ clearTimeout(debounceTimer);
104
+ }
105
+ // Set new debounce timer
106
+ debounceTimer = setTimeout(() => {
107
+ logger.info('');
108
+ logger.info('Detected change in .projenrc.ts, re-synthesizing...');
109
+ runProjenSynth(projectRoot);
110
+ logger.info('Watching for changes... (Ctrl+C to stop)');
111
+ }, debounceMs);
112
+ }
113
+ });
114
+ // Handle graceful shutdown
115
+ const cleanup = () => {
116
+ if (debounceTimer) {
117
+ clearTimeout(debounceTimer);
118
+ }
119
+ watcher.close();
120
+ logger.info('');
121
+ logger.info('Watch mode stopped');
122
+ process.exit(0);
123
+ };
124
+ process.on('SIGINT', cleanup);
125
+ process.on('SIGTERM', cleanup);
126
+ // Keep the process running
127
+ await new Promise(() => {
128
+ // This promise never resolves, keeping the process alive
129
+ // The process will exit via SIGINT/SIGTERM handlers
130
+ });
71
131
  }
72
132
  //# sourceMappingURL=synth.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"synth.js","sourceRoot":"","sources":["../../src/commands/synth.ts"],"names":[],"mappings":";;AA0BA,oCAOC;AAgBD,4BA4BC;AA7ED,yCAAoC;AACpC,iDAAyC;AACzC,kDAAuD;AACvD,gDAA0C;AAS1C;;;;;;;;;;;;;GAaG;AACH,SAAgB,YAAY;IAC1B,OAAO,IAAI,mBAAO,CAAC,OAAO,CAAC;SACxB,WAAW,CAAC,+CAA+C,CAAC;SAC5D,MAAM,CAAC,SAAS,EAAE,2DAA2D,CAAC;SAC9E,MAAM,CAAC,KAAK,EAAE,OAA4B,EAAE,EAAE;QAC7C,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;;;;;;;;;;;;GAaG;AACI,KAAK,UAAU,QAAQ,CAAC,OAA4B;IACzD,IAAI,WAAmB,CAAC;IAExB,IAAI,CAAC;QACH,WAAW,GAAG,IAAA,+BAAkB,GAAE,CAAC;IACrC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,kBAAM,CAAC,KAAK,CAAE,KAAe,CAAC,OAAO,CAAC,CAAC;QACvC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,kBAAM,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;IACrD,kBAAM,CAAC,KAAK,CAAC,iBAAiB,WAAW,EAAE,CAAC,CAAC;IAE7C,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,kBAAM,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;IACnD,CAAC;IAED,IAAI,CAAC;QACH,IAAA,wBAAQ,EAAC,YAAY,EAAE;YACrB,GAAG,EAAE,WAAW;YAChB,KAAK,EAAE,SAAS;SACjB,CAAC,CAAC;QACH,kBAAM,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACvC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,kBAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACjC,kBAAM,CAAC,KAAK,CAAC,UAAW,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QACnD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"synth.js","sourceRoot":"","sources":["../../src/commands/synth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAS1C;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,YAAY;IAC1B,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;SACxB,WAAW,CAAC,+CAA+C,CAAC;SAC5D,MAAM,CAAC,SAAS,EAAE,qCAAqC,CAAC;SACxD,MAAM,CAAC,KAAK,EAAE,OAA4B,EAAE,EAAE;QAC7C,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,OAA4B;IACzD,IAAI,WAAmB,CAAC;IAExB,IAAI,CAAC;QACH,WAAW,GAAG,kBAAkB,EAAE,CAAC;IACrC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAE,KAAe,CAAC,OAAO,CAAC,CAAC;QACvC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;IACrD,MAAM,CAAC,KAAK,CAAC,iBAAiB,WAAW,EAAE,CAAC,CAAC;IAE7C,wBAAwB;IACxB,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,CAAC;QACjC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,qCAAqC;IACrC,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,MAAM,eAAe,CAAC,WAAW,CAAC,CAAC;IACrC,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,WAAmB;IAChD,IAAI,CAAC;QACH,QAAQ,CAAC,YAAY,EAAE;YACrB,GAAG,EAAE,WAAW;YAChB,KAAK,EAAE,SAAS;SACjB,CAAC,CAAC;QACH,MAAM,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACjC,MAAM,CAAC,KAAK,CAAC,UAAW,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QACnD,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,eAAe,CAAC,WAAmB;IAChD,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;IAEvD,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC9B,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;QACvC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC;IAExE,wCAAwC;IACxC,IAAI,aAAa,GAAyC,IAAI,CAAC;IAC/D,MAAM,UAAU,GAAG,GAAG,CAAC;IAEvB,MAAM,OAAO,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC,SAAS,EAAE,EAAE;QAChD,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;YAC3B,kCAAkC;YAClC,IAAI,aAAa,EAAE,CAAC;gBAClB,YAAY,CAAC,aAAa,CAAC,CAAC;YAC9B,CAAC;YAED,yBAAyB;YACzB,aAAa,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC9B,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAChB,MAAM,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;gBACnE,cAAc,CAAC,WAAW,CAAC,CAAC;gBAC5B,MAAM,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;YAC1D,CAAC,EAAE,UAAU,CAAC,CAAC;QACjB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,2BAA2B;IAC3B,MAAM,OAAO,GAAG,GAAG,EAAE;QACnB,IAAI,aAAa,EAAE,CAAC;YAClB,YAAY,CAAC,aAAa,CAAC,CAAC;QAC9B,CAAC;QACD,OAAO,CAAC,KAAK,EAAE,CAAC;QAChB,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChB,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAClC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC;IAEF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC9B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAE/B,2BAA2B;IAC3B,MAAM,IAAI,OAAO,CAAC,GAAG,EAAE;QACrB,yDAAyD;QACzD,oDAAoD;IACtD,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,73 @@
1
+ import { Command } from 'commander';
2
+ /**
3
+ * Options for the test command.
4
+ */
5
+ interface TestCommandOptions {
6
+ package?: string;
7
+ coverage?: boolean;
8
+ watch?: boolean;
9
+ update?: boolean;
10
+ ci?: boolean;
11
+ skipCache?: boolean;
12
+ parallel?: string;
13
+ }
14
+ /**
15
+ * Creates the `fnd test` command.
16
+ *
17
+ * @returns Commander command instance
18
+ *
19
+ * @example
20
+ * ```typescript
21
+ * import { testCommand } from '@fnd-platform/cli';
22
+ *
23
+ * const program = new Command();
24
+ * program.addCommand(testCommand());
25
+ * program.parse(['node', 'fnd', 'test']);
26
+ * ```
27
+ */
28
+ export declare function testCommand(): Command;
29
+ /**
30
+ * Runs the NX test.
31
+ *
32
+ * @param options - Command options
33
+ *
34
+ * @example
35
+ * ```typescript
36
+ * // Run all tests
37
+ * await runTest({});
38
+ *
39
+ * // Test a specific package with coverage
40
+ * await runTest({ package: 'api', coverage: true });
41
+ *
42
+ * // Run tests in watch mode
43
+ * await runTest({ watch: true });
44
+ *
45
+ * // Run tests in CI mode
46
+ * await runTest({ ci: true });
47
+ * ```
48
+ */
49
+ export declare function runTest(options: TestCommandOptions): Promise<void>;
50
+ /**
51
+ * Builds the NX command arguments based on options.
52
+ *
53
+ * @param options - Command options
54
+ * @returns Array of command arguments
55
+ *
56
+ * @example
57
+ * ```typescript
58
+ * // Run all tests
59
+ * buildNxTestArgs({});
60
+ * // Returns: ['npx', 'nx', 'run-many', '--target=test', '--all']
61
+ *
62
+ * // Test specific package with coverage
63
+ * buildNxTestArgs({ package: 'api', coverage: true });
64
+ * // Returns: ['npx', 'nx', 'run', 'api:test', '--', '--coverage']
65
+ *
66
+ * // Run all tests in CI mode
67
+ * buildNxTestArgs({ ci: true });
68
+ * // Returns: ['npx', 'nx', 'run-many', '--target=test', '--all', '--', '--ci']
69
+ * ```
70
+ */
71
+ export declare function buildNxTestArgs(options: TestCommandOptions): string[];
72
+ export {};
73
+ //# sourceMappingURL=test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../../src/commands/test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC;;GAEG;AACH,UAAU,kBAAkB;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,WAAW,IAAI,OAAO,CAarC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,OAAO,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAwExE;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,kBAAkB,GAAG,MAAM,EAAE,CAiCrE"}