@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 +1 @@
1
- {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"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"}
@@ -65,20 +65,28 @@ export declare function deployCommand(): Command;
65
65
  */
66
66
  export declare function runDeploy(options: DeployCommandOptions): Promise<void>;
67
67
  /**
68
- * Builds the CDK synth command.
68
+ * Builds the CDK synth command arguments array.
69
69
  *
70
70
  * @param stage - Deployment stage
71
71
  * @param stack - Optional specific stack to synth
72
- * @returns Command string
72
+ * @returns Arguments array for execFileSync
73
73
  */
74
- export declare function buildCdkSynthCommand(stage: string, stack?: string): string;
74
+ export declare function buildCdkSynthArgs(stage: string, stack?: string): string[];
75
75
  /**
76
- * Builds the CDK deploy command.
76
+ * Builds the CDK deploy command arguments array.
77
77
  *
78
78
  * @param stage - Deployment stage
79
79
  * @param requireApproval - Approval mode
80
80
  * @param stack - Optional specific stack to deploy
81
- * @returns Command string
81
+ * @returns Arguments array for execFileSync
82
+ */
83
+ export declare function buildCdkDeployArgs(stage: string, requireApproval?: 'never' | 'any-change' | 'broadening', stack?: string): string[];
84
+ /**
85
+ * @deprecated Use buildCdkSynthArgs instead
86
+ */
87
+ export declare function buildCdkSynthCommand(stage: string, stack?: string): string;
88
+ /**
89
+ * @deprecated Use buildCdkDeployArgs instead
82
90
  */
83
91
  export declare function buildCdkDeployCommand(stage: string, requireApproval?: 'never' | 'any-change' | 'broadening', stack?: string): string;
84
92
  //# sourceMappingURL=deploy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkBpC;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,eAAe,CAAC,EAAE,OAAO,GAAG,YAAY,GAAG,YAAY,CAAC;IACxD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,aAAa,IAAI,OAAO,CAiBvC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAsB,SAAS,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAiD5E;AAyOD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAY1E;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,MAAM,EACb,eAAe,CAAC,EAAE,OAAO,GAAG,YAAY,GAAG,YAAY,EACvD,KAAK,CAAC,EAAE,MAAM,GACb,MAAM,CAgBR"}
1
+ {"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmBpC;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,eAAe,CAAC,EAAE,OAAO,GAAG,YAAY,GAAG,YAAY,CAAC;IACxD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,aAAa,IAAI,OAAO,CAiBvC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAsB,SAAS,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAiD5E;AAyOD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAkBzE;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,MAAM,EACb,eAAe,CAAC,EAAE,OAAO,GAAG,YAAY,GAAG,YAAY,EACvD,KAAK,CAAC,EAAE,MAAM,GACb,MAAM,EAAE,CAsBV;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAG1E;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,MAAM,EACb,eAAe,CAAC,EAAE,OAAO,GAAG,YAAY,GAAG,YAAY,EACvD,KAAK,CAAC,EAAE,MAAM,GACb,MAAM,CAGR"}
@@ -1,16 +1,11 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.deployCommand = deployCommand;
4
- exports.runDeploy = runDeploy;
5
- exports.buildCdkSynthCommand = buildCdkSynthCommand;
6
- exports.buildCdkDeployCommand = buildCdkDeployCommand;
7
- const commander_1 = require("commander");
8
- const child_process_1 = require("child_process");
9
- const fs_1 = require("fs");
10
- const path_1 = require("path");
11
- const project_js_1 = require("../lib/project.js");
12
- const logger_js_1 = require("../lib/logger.js");
13
- const deploy_utils_js_1 = require("../lib/deploy-utils.js");
1
+ import { Command } from 'commander';
2
+ import { execFileSync } from 'child_process';
3
+ import { existsSync } from 'fs';
4
+ import { join } from 'path';
5
+ import { requireProjectRoot } from '../lib/project.js';
6
+ import { logger } from '../lib/logger.js';
7
+ import { validateAwsCli, getProjectName, getStackOutputs, hasPackage, findBuildDirectory, buildPackage, syncToS3, invalidateCloudFront, } from '../lib/deploy-utils.js';
8
+ import { validateStageName, validateStackName } from '../lib/validation.js';
14
9
  /**
15
10
  * Creates the `fnd deploy` command.
16
11
  *
@@ -36,8 +31,8 @@ const deploy_utils_js_1 = require("../lib/deploy-utils.js");
36
31
  * program.parse(['node', 'fnd', 'deploy', '--stage=dev', '--skip-assets']);
37
32
  * ```
38
33
  */
39
- function deployCommand() {
40
- return new commander_1.Command('deploy')
34
+ export function deployCommand() {
35
+ return new Command('deploy')
41
36
  .description('Deploy infrastructure and assets to AWS')
42
37
  .requiredOption('--stage <stage>', 'Deployment stage (e.g., dev, staging, prod)')
43
38
  .option('--dry-run', 'Run CDK synth only without deploying')
@@ -76,40 +71,40 @@ function deployCommand() {
76
71
  * await runDeploy({ stage: 'dev', skipAssets: true });
77
72
  * ```
78
73
  */
79
- async function runDeploy(options) {
74
+ export async function runDeploy(options) {
80
75
  let projectRoot;
81
76
  try {
82
- projectRoot = (0, project_js_1.requireProjectRoot)();
77
+ projectRoot = requireProjectRoot();
83
78
  }
84
79
  catch (error) {
85
- logger_js_1.logger.error(error.message);
80
+ logger.error(error.message);
86
81
  process.exit(1);
87
82
  }
88
83
  // Validate infra package exists
89
- const infraDir = (0, path_1.join)(projectRoot, 'packages', 'infra');
90
- if (!(0, fs_1.existsSync)(infraDir)) {
91
- logger_js_1.logger.error('Infrastructure package not found at packages/infra. ' +
84
+ const infraDir = join(projectRoot, 'packages', 'infra');
85
+ if (!existsSync(infraDir)) {
86
+ logger.error('Infrastructure package not found at packages/infra. ' +
92
87
  'Make sure you have added an API package with `fnd add api`, ' +
93
88
  'which generates the infrastructure package.');
94
89
  process.exit(1);
95
90
  }
96
91
  // Validate AWS CLI
97
92
  try {
98
- (0, deploy_utils_js_1.validateAwsCli)();
93
+ validateAwsCli();
99
94
  }
100
95
  catch (error) {
101
- logger_js_1.logger.error(error.message);
96
+ logger.error(error.message);
102
97
  process.exit(1);
103
98
  }
104
99
  const stage = options.stage;
105
100
  const verbose = options.verbose ?? false;
106
101
  if (options.dryRun) {
107
- logger_js_1.logger.info(`Synthesizing CloudFormation templates for stage: ${stage}`);
102
+ logger.info(`Synthesizing CloudFormation templates for stage: ${stage}`);
108
103
  await runCdkSynth(infraDir, stage, options.stack);
109
104
  return;
110
105
  }
111
106
  // Deploy CDK stacks
112
- logger_js_1.logger.info(`Deploying to stage: ${stage}`);
107
+ logger.info(`Deploying to stage: ${stage}`);
113
108
  await runCdkDeploy(infraDir, stage, options.requireApproval, options.stack);
114
109
  // Deploy assets (unless skipped or specific non-frontend/CMS stack requested)
115
110
  if (!options.skipAssets && shouldDeployAssets(options.stack)) {
@@ -132,15 +127,15 @@ function shouldDeployAssets(stack) {
132
127
  * Deploys frontend and CMS assets to S3.
133
128
  */
134
129
  async function deployAssets(projectRoot, stage, skipBuild, verbose) {
135
- logger_js_1.logger.info('Deploying static assets...');
130
+ logger.info('Deploying static assets...');
136
131
  // Get stack outputs
137
- const outputs = (0, deploy_utils_js_1.getStackOutputs)(projectRoot, stage);
132
+ const outputs = getStackOutputs(projectRoot, stage);
138
133
  // Deploy frontend if exists
139
- if ((0, deploy_utils_js_1.hasPackage)(projectRoot, 'frontend')) {
134
+ if (hasPackage(projectRoot, 'frontend')) {
140
135
  await deployFrontendAssets(projectRoot, stage, outputs, skipBuild, verbose);
141
136
  }
142
137
  // Deploy CMS if exists
143
- if ((0, deploy_utils_js_1.hasPackage)(projectRoot, 'cms')) {
138
+ if (hasPackage(projectRoot, 'cms')) {
144
139
  await deployCmsAssets(projectRoot, stage, outputs, skipBuild, verbose);
145
140
  }
146
141
  }
@@ -150,31 +145,31 @@ async function deployAssets(projectRoot, stage, skipBuild, verbose) {
150
145
  * so there's no separate S3 bucket to deploy to. This function only runs for SPA deployments.
151
146
  */
152
147
  async function deployFrontendAssets(projectRoot, stage, outputs, skipBuild, verbose) {
153
- const frontendPath = (0, path_1.join)(projectRoot, 'packages', 'frontend');
148
+ const frontendPath = join(projectRoot, 'packages', 'frontend');
154
149
  if (!outputs.frontendBucket) {
155
150
  // SSR deployments don't have a separate bucket - assets are served via Lambda
156
151
  // Only log in verbose mode since this is expected for SSR
157
- logger_js_1.logger.debug('Frontend uses SSR - no separate S3 bucket for assets.');
152
+ logger.debug('Frontend uses SSR - no separate S3 bucket for assets.');
158
153
  return;
159
154
  }
160
155
  if (!outputs.apiUrl) {
161
- logger_js_1.logger.warn('API URL not found. Frontend will be built without API URL.');
156
+ logger.warn('API URL not found. Frontend will be built without API URL.');
162
157
  }
163
158
  // Build frontend
164
159
  if (!skipBuild) {
165
- (0, deploy_utils_js_1.buildPackage)(frontendPath, outputs.apiUrl ?? '', verbose);
160
+ buildPackage(frontendPath, outputs.apiUrl ?? '', verbose);
166
161
  }
167
162
  // Find build directory
168
- const buildDir = (0, deploy_utils_js_1.findBuildDirectory)(frontendPath);
163
+ const buildDir = findBuildDirectory(frontendPath);
169
164
  if (!buildDir) {
170
- logger_js_1.logger.error('Frontend build directory not found. Make sure the frontend is built (build/, build/client/, or dist/).');
165
+ logger.error('Frontend build directory not found. Make sure the frontend is built (build/, build/client/, or dist/).');
171
166
  return;
172
167
  }
173
168
  // Sync to S3
174
- (0, deploy_utils_js_1.syncToS3)(buildDir, outputs.frontendBucket, verbose);
169
+ syncToS3(buildDir, outputs.frontendBucket, verbose);
175
170
  // Invalidate CloudFront
176
171
  if (outputs.frontendDistributionId) {
177
- (0, deploy_utils_js_1.invalidateCloudFront)(outputs.frontendDistributionId, verbose);
172
+ invalidateCloudFront(outputs.frontendDistributionId, verbose);
178
173
  }
179
174
  }
180
175
  /**
@@ -183,39 +178,39 @@ async function deployFrontendAssets(projectRoot, stage, outputs, skipBuild, verb
183
178
  * so there's no separate S3 bucket to deploy to. This function only runs for SPA deployments.
184
179
  */
185
180
  async function deployCmsAssets(projectRoot, stage, outputs, skipBuild, verbose) {
186
- const cmsPath = (0, path_1.join)(projectRoot, 'packages', 'cms');
181
+ const cmsPath = join(projectRoot, 'packages', 'cms');
187
182
  if (!outputs.cmsBucket) {
188
183
  // SSR deployments don't have a separate bucket - assets are served via Lambda
189
184
  // Only log in verbose mode since this is expected for SSR
190
- logger_js_1.logger.debug('CMS uses SSR - no separate S3 bucket for assets.');
185
+ logger.debug('CMS uses SSR - no separate S3 bucket for assets.');
191
186
  return;
192
187
  }
193
188
  if (!outputs.apiUrl) {
194
- logger_js_1.logger.warn('API URL not found. CMS will be built without API URL.');
189
+ logger.warn('API URL not found. CMS will be built without API URL.');
195
190
  }
196
191
  // Build CMS
197
192
  if (!skipBuild) {
198
- (0, deploy_utils_js_1.buildPackage)(cmsPath, outputs.apiUrl ?? '', verbose);
193
+ buildPackage(cmsPath, outputs.apiUrl ?? '', verbose);
199
194
  }
200
195
  // Find build directory
201
- const buildDir = (0, deploy_utils_js_1.findBuildDirectory)(cmsPath);
196
+ const buildDir = findBuildDirectory(cmsPath);
202
197
  if (!buildDir) {
203
- logger_js_1.logger.error('CMS build directory not found. Make sure the CMS is built (build/, build/client/, or dist/).');
198
+ logger.error('CMS build directory not found. Make sure the CMS is built (build/, build/client/, or dist/).');
204
199
  return;
205
200
  }
206
201
  // Sync to S3
207
- (0, deploy_utils_js_1.syncToS3)(buildDir, outputs.cmsBucket, verbose);
202
+ syncToS3(buildDir, outputs.cmsBucket, verbose);
208
203
  // Invalidate CloudFront
209
204
  if (outputs.cmsDistributionId) {
210
- (0, deploy_utils_js_1.invalidateCloudFront)(outputs.cmsDistributionId, verbose);
205
+ invalidateCloudFront(outputs.cmsDistributionId, verbose);
211
206
  }
212
207
  }
213
208
  /**
214
209
  * Prints a deployment summary with all URLs and important values.
215
210
  */
216
211
  function printDeploymentSummary(projectRoot, stage) {
217
- const outputs = (0, deploy_utils_js_1.getStackOutputs)(projectRoot, stage);
218
- const projectName = (0, deploy_utils_js_1.getProjectName)(projectRoot);
212
+ const outputs = getStackOutputs(projectRoot, stage);
213
+ const projectName = getProjectName(projectRoot);
219
214
  console.log('\n' + '═'.repeat(60));
220
215
  console.log(` Deployment Summary: ${projectName} (${stage})`);
221
216
  console.log('═'.repeat(60));
@@ -241,7 +236,7 @@ function printDeploymentSummary(projectRoot, stage) {
241
236
  }
242
237
  }
243
238
  console.log('═'.repeat(60) + '\n');
244
- logger_js_1.logger.success(`Deployment to ${stage} complete`);
239
+ logger.success(`Deployment to ${stage} complete`);
245
240
  }
246
241
  /**
247
242
  * Runs CDK synth (dry-run mode).
@@ -251,20 +246,20 @@ function printDeploymentSummary(projectRoot, stage) {
251
246
  * @param stack - Optional specific stack to synth
252
247
  */
253
248
  async function runCdkSynth(infraDir, stage, stack) {
254
- logger_js_1.logger.debug(`Running CDK synth in: ${infraDir}`);
255
- const command = buildCdkSynthCommand(stage, stack);
256
- logger_js_1.logger.debug(`Command: ${command}`);
249
+ logger.debug(`Running CDK synth in: ${infraDir}`);
250
+ const args = buildCdkSynthArgs(stage, stack);
251
+ logger.debug(`Command: pnpm ${args.join(' ')}`);
257
252
  try {
258
- (0, child_process_1.execSync)(command, {
253
+ execFileSync('pnpm', args, {
259
254
  cwd: infraDir,
260
255
  stdio: 'inherit',
261
256
  });
262
- logger_js_1.logger.success('CDK synthesis complete');
263
- logger_js_1.logger.info(`CloudFormation templates generated in ${(0, path_1.join)(infraDir, 'cdk.out')}`);
257
+ logger.success('CDK synthesis complete');
258
+ logger.info(`CloudFormation templates generated in ${join(infraDir, 'cdk.out')}`);
264
259
  }
265
260
  catch (error) {
266
- logger_js_1.logger.error('CDK synthesis failed');
267
- logger_js_1.logger.debug(`Error: ${error.message}`);
261
+ logger.error('CDK synthesis failed');
262
+ logger.debug(`Error: ${error.message}`);
268
263
  process.exit(1);
269
264
  }
270
265
  }
@@ -277,59 +272,83 @@ async function runCdkSynth(infraDir, stage, stack) {
277
272
  * @param stack - Optional specific stack to deploy
278
273
  */
279
274
  async function runCdkDeploy(infraDir, stage, requireApproval, stack) {
280
- logger_js_1.logger.debug(`Running CDK deploy in: ${infraDir}`);
281
- const command = buildCdkDeployCommand(stage, requireApproval, stack);
282
- logger_js_1.logger.debug(`Command: ${command}`);
275
+ logger.debug(`Running CDK deploy in: ${infraDir}`);
276
+ const args = buildCdkDeployArgs(stage, requireApproval, stack);
277
+ logger.debug(`Command: pnpm ${args.join(' ')}`);
283
278
  try {
284
- (0, child_process_1.execSync)(command, {
279
+ execFileSync('pnpm', args, {
285
280
  cwd: infraDir,
286
281
  stdio: 'inherit',
287
282
  });
288
283
  }
289
284
  catch (error) {
290
- logger_js_1.logger.error('CDK deployment failed');
291
- logger_js_1.logger.debug(`Error: ${error.message}`);
285
+ logger.error('CDK deployment failed');
286
+ logger.debug(`Error: ${error.message}`);
292
287
  process.exit(1);
293
288
  }
294
289
  }
295
290
  /**
296
- * Builds the CDK synth command.
291
+ * Builds the CDK synth command arguments array.
297
292
  *
298
293
  * @param stage - Deployment stage
299
294
  * @param stack - Optional specific stack to synth
300
- * @returns Command string
295
+ * @returns Arguments array for execFileSync
301
296
  */
302
- function buildCdkSynthCommand(stage, stack) {
303
- const args = ['pnpm', 'exec', 'cdk', 'synth'];
297
+ export function buildCdkSynthArgs(stage, stack) {
298
+ // Validate inputs to prevent command injection
299
+ validateStageName(stage);
304
300
  if (stack) {
305
- args.push(`"*${stack}*"`);
301
+ validateStackName(stack);
302
+ }
303
+ const args = ['exec', 'cdk', 'synth'];
304
+ if (stack) {
305
+ args.push(`*${stack}*`);
306
306
  }
307
307
  else {
308
308
  args.push('--all');
309
309
  }
310
- args.push(`-c stage=${stage}`);
311
- return args.join(' ');
310
+ args.push('-c', `stage=${stage}`);
311
+ return args;
312
312
  }
313
313
  /**
314
- * Builds the CDK deploy command.
314
+ * Builds the CDK deploy command arguments array.
315
315
  *
316
316
  * @param stage - Deployment stage
317
317
  * @param requireApproval - Approval mode
318
318
  * @param stack - Optional specific stack to deploy
319
- * @returns Command string
319
+ * @returns Arguments array for execFileSync
320
320
  */
321
- function buildCdkDeployCommand(stage, requireApproval, stack) {
322
- const args = ['pnpm', 'exec', 'cdk', 'deploy'];
321
+ export function buildCdkDeployArgs(stage, requireApproval, stack) {
322
+ // Validate inputs to prevent command injection
323
+ validateStageName(stage);
323
324
  if (stack) {
324
- args.push(`"*${stack}*"`);
325
+ validateStackName(stack);
326
+ }
327
+ const args = ['exec', 'cdk', 'deploy'];
328
+ if (stack) {
329
+ args.push(`*${stack}*`);
325
330
  }
326
331
  else {
327
332
  args.push('--all');
328
333
  }
329
- args.push(`-c stage=${stage}`);
334
+ args.push('-c', `stage=${stage}`);
330
335
  if (requireApproval) {
331
336
  args.push(`--require-approval=${requireApproval}`);
332
337
  }
338
+ return args;
339
+ }
340
+ /**
341
+ * @deprecated Use buildCdkSynthArgs instead
342
+ */
343
+ export function buildCdkSynthCommand(stage, stack) {
344
+ const args = ['pnpm', ...buildCdkSynthArgs(stage, stack)];
345
+ return args.join(' ');
346
+ }
347
+ /**
348
+ * @deprecated Use buildCdkDeployArgs instead
349
+ */
350
+ export function buildCdkDeployCommand(stage, requireApproval, stack) {
351
+ const args = ['pnpm', ...buildCdkDeployArgs(stage, requireApproval, stack)];
333
352
  return args.join(' ');
334
353
  }
335
354
  //# sourceMappingURL=deploy.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,10 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.destroyCommand = destroyCommand;
4
- exports.runDestroy = runDestroy;
5
- exports.buildCdkDestroyCommand = buildCdkDestroyCommand;
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 project_js_1 = require("../lib/project.js");
11
- const logger_js_1 = require("../lib/logger.js");
12
- const deploy_utils_js_1 = require("../lib/deploy-utils.js");
1
+ import { Command } from 'commander';
2
+ import { execSync } from 'child_process';
3
+ import { existsSync } from 'fs';
4
+ import { join } from 'path';
5
+ import { requireProjectRoot } from '../lib/project.js';
6
+ import { logger } from '../lib/logger.js';
7
+ import { validateAwsCli, getProjectName, promptConfirmation, listProjectStacks, } from '../lib/deploy-utils.js';
13
8
  /**
14
9
  * Creates the `fnd destroy` command.
15
10
  *
@@ -32,8 +27,8 @@ const deploy_utils_js_1 = require("../lib/deploy-utils.js");
32
27
  * program.parse(['node', 'fnd', 'destroy', '--stage=dev', '--stack=Frontend']);
33
28
  * ```
34
29
  */
35
- function destroyCommand() {
36
- return new commander_1.Command('destroy')
30
+ export function destroyCommand() {
31
+ return new Command('destroy')
37
32
  .description('Destroy AWS resources created by fnd-platform')
38
33
  .requiredOption('--stage <stage>', 'Deployment stage to destroy (e.g., dev, staging, prod)')
39
34
  .option('--stack <stack>', 'Destroy specific stack only (e.g., Api, Frontend, Cms)')
@@ -60,33 +55,33 @@ function destroyCommand() {
60
55
  * await runDestroy({ stage: 'dev', stack: 'Frontend' });
61
56
  * ```
62
57
  */
63
- async function runDestroy(options) {
58
+ export async function runDestroy(options) {
64
59
  let projectRoot;
65
60
  try {
66
- projectRoot = (0, project_js_1.requireProjectRoot)();
61
+ projectRoot = requireProjectRoot();
67
62
  }
68
63
  catch (error) {
69
- logger_js_1.logger.error(error.message);
64
+ logger.error(error.message);
70
65
  process.exit(1);
71
66
  }
72
67
  // Validate infra package exists
73
- const infraDir = (0, path_1.join)(projectRoot, 'packages', 'infra');
74
- if (!(0, fs_1.existsSync)(infraDir)) {
75
- logger_js_1.logger.error('Infrastructure package not found at packages/infra. ' +
68
+ const infraDir = join(projectRoot, 'packages', 'infra');
69
+ if (!existsSync(infraDir)) {
70
+ logger.error('Infrastructure package not found at packages/infra. ' +
76
71
  'Make sure you have added an API package with `fnd add api`, ' +
77
72
  'which generates the infrastructure package.');
78
73
  process.exit(1);
79
74
  }
80
75
  // Validate AWS CLI
81
76
  try {
82
- (0, deploy_utils_js_1.validateAwsCli)();
77
+ validateAwsCli();
83
78
  }
84
79
  catch (error) {
85
- logger_js_1.logger.error(error.message);
80
+ logger.error(error.message);
86
81
  process.exit(1);
87
82
  }
88
83
  const { stage, stack, force } = options;
89
- const projectName = (0, deploy_utils_js_1.getProjectName)(projectRoot);
84
+ const projectName = getProjectName(projectRoot);
90
85
  // Build confirmation message
91
86
  let confirmMessage;
92
87
  if (stack) {
@@ -97,28 +92,28 @@ async function runDestroy(options) {
97
92
  }
98
93
  // Prompt for confirmation unless --force is used
99
94
  if (!force) {
100
- logger_js_1.logger.warn('This action is destructive and cannot be undone!');
101
- logger_js_1.logger.warn('Data in DynamoDB and S3 will be deleted unless retention policies are configured.');
102
- const confirmed = await (0, deploy_utils_js_1.promptConfirmation)(confirmMessage);
95
+ logger.warn('This action is destructive and cannot be undone!');
96
+ logger.warn('Data in DynamoDB and S3 will be deleted unless retention policies are configured.');
97
+ const confirmed = await promptConfirmation(confirmMessage);
103
98
  if (!confirmed) {
104
- logger_js_1.logger.info('Destroy operation cancelled.');
99
+ logger.info('Destroy operation cancelled.');
105
100
  process.exit(0);
106
101
  }
107
102
  }
108
103
  // List stacks that will be destroyed
109
104
  if (!stack) {
110
- const stacks = (0, deploy_utils_js_1.listProjectStacks)(projectRoot, stage);
105
+ const stacks = listProjectStacks(projectRoot, stage);
111
106
  if (stacks.length > 0) {
112
- logger_js_1.logger.info('Stacks to be destroyed:');
107
+ logger.info('Stacks to be destroyed:');
113
108
  for (const stackName of stacks) {
114
- logger_js_1.logger.info(` - ${stackName}`);
109
+ logger.info(` - ${stackName}`);
115
110
  }
116
111
  }
117
112
  }
118
113
  // Run CDK destroy
119
- logger_js_1.logger.info(`Destroying ${stack ? `${stack} stack` : 'all stacks'} in stage: ${stage}`);
114
+ logger.info(`Destroying ${stack ? `${stack} stack` : 'all stacks'} in stage: ${stage}`);
120
115
  await runCdkDestroy(infraDir, stage, stack, options.verbose);
121
- logger_js_1.logger.success(`Destroy operation for ${stage} complete`);
116
+ logger.success(`Destroy operation for ${stage} complete`);
122
117
  }
123
118
  /**
124
119
  * Runs CDK destroy.
@@ -129,18 +124,18 @@ async function runDestroy(options) {
129
124
  * @param verbose - Show verbose output
130
125
  */
131
126
  async function runCdkDestroy(infraDir, stage, stack, verbose) {
132
- logger_js_1.logger.debug(`Running CDK destroy in: ${infraDir}`);
127
+ logger.debug(`Running CDK destroy in: ${infraDir}`);
133
128
  const command = buildCdkDestroyCommand(stage, stack);
134
- logger_js_1.logger.debug(`Command: ${command}`);
129
+ logger.debug(`Command: ${command}`);
135
130
  try {
136
- (0, child_process_1.execSync)(command, {
131
+ execSync(command, {
137
132
  cwd: infraDir,
138
133
  stdio: 'inherit',
139
134
  });
140
135
  }
141
136
  catch (error) {
142
- logger_js_1.logger.error('CDK destroy failed');
143
- logger_js_1.logger.debug(`Error: ${error.message}`);
137
+ logger.error('CDK destroy failed');
138
+ logger.debug(`Error: ${error.message}`);
144
139
  process.exit(1);
145
140
  }
146
141
  }
@@ -160,7 +155,7 @@ async function runCdkDestroy(infraDir, stage, stack, verbose) {
160
155
  * // Returns: 'pnpm exec cdk destroy "*Frontend*" -c stage=dev --force'
161
156
  * ```
162
157
  */
163
- function buildCdkDestroyCommand(stage, stack) {
158
+ export function buildCdkDestroyCommand(stage, stack) {
164
159
  const args = ['pnpm', 'exec', 'cdk', 'destroy'];
165
160
  if (stack) {
166
161
  args.push(`"*${stack}*"`);
@@ -1 +1 @@
1
- {"version":3,"file":"destroy.js","sourceRoot":"","sources":["../../src/commands/destroy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"destroy.js","sourceRoot":"","sources":["../../src/commands/destroy.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  export { newCommand } from './new.js';
2
2
  export { synthCommand } from './synth.js';
3
3
  export { buildCommand } from './build.js';
4
+ export { testCommand } from './test.js';
4
5
  export { addCommand } from './add.js';
5
6
  export { deployCommand } from './deploy.js';
6
7
  export { destroyCommand } from './destroy.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","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,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","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"}