@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.
- package/lib/bin/fnd.js +101 -4
- package/lib/bin/fnd.js.map +1 -1
- package/lib/commands/add.js +72 -75
- package/lib/commands/add.js.map +1 -1
- package/lib/commands/build.js +29 -34
- package/lib/commands/build.js.map +1 -1
- package/lib/commands/deploy.d.ts +13 -5
- package/lib/commands/deploy.d.ts.map +1 -1
- package/lib/commands/deploy.js +94 -75
- package/lib/commands/deploy.js.map +1 -1
- package/lib/commands/destroy.js +33 -38
- package/lib/commands/destroy.js.map +1 -1
- package/lib/commands/index.d.ts +1 -0
- package/lib/commands/index.d.ts.map +1 -1
- package/lib/commands/index.js +7 -15
- package/lib/commands/index.js.map +1 -1
- package/lib/commands/new.js +46 -50
- package/lib/commands/new.js.map +1 -1
- package/lib/commands/synth.d.ts +8 -1
- package/lib/commands/synth.d.ts.map +1 -1
- package/lib/commands/synth.js +82 -22
- package/lib/commands/synth.js.map +1 -1
- package/lib/commands/test.d.ts +73 -0
- package/lib/commands/test.d.ts.map +1 -0
- package/lib/commands/test.js +193 -0
- package/lib/commands/test.js.map +1 -0
- package/lib/index.d.ts +11 -2
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +29 -18
- package/lib/index.js.map +1 -1
- package/lib/lib/deploy-utils.d.ts.map +1 -1
- package/lib/lib/deploy-utils.js +73 -72
- package/lib/lib/deploy-utils.js.map +1 -1
- package/lib/lib/infra-generator.js +55 -63
- package/lib/lib/infra-generator.js.map +1 -1
- package/lib/lib/logger.js +23 -29
- package/lib/lib/logger.js.map +1 -1
- package/lib/lib/nx-stats.js +12 -18
- package/lib/lib/nx-stats.js.map +1 -1
- package/lib/lib/project.js +7 -11
- package/lib/lib/project.js.map +1 -1
- package/lib/lib/templates.js +2 -6
- package/lib/lib/templates.js.map +1 -1
- package/lib/lib/timer.js +2 -7
- package/lib/lib/timer.js.map +1 -1
- package/lib/lib/validation.d.ts +135 -0
- package/lib/lib/validation.d.ts.map +1 -0
- package/lib/lib/validation.js +233 -0
- package/lib/lib/validation.js.map +1 -0
- package/lib/tui/App.d.ts +11 -0
- package/lib/tui/App.d.ts.map +1 -0
- package/lib/tui/App.js +98 -0
- package/lib/tui/App.js.map +1 -0
- package/lib/tui/components/branding/AsciiBanner.d.ts +21 -0
- package/lib/tui/components/branding/AsciiBanner.d.ts.map +1 -0
- package/lib/tui/components/branding/AsciiBanner.js +15 -0
- package/lib/tui/components/branding/AsciiBanner.js.map +1 -0
- package/lib/tui/components/branding/index.d.ts +5 -0
- package/lib/tui/components/branding/index.d.ts.map +1 -0
- package/lib/tui/components/branding/index.js +5 -0
- package/lib/tui/components/branding/index.js.map +1 -0
- package/lib/tui/components/feedback/Notification.d.ts +51 -0
- package/lib/tui/components/feedback/Notification.d.ts.map +1 -0
- package/lib/tui/components/feedback/Notification.js +89 -0
- package/lib/tui/components/feedback/Notification.js.map +1 -0
- package/lib/tui/components/feedback/ProgressBar.d.ts +46 -0
- package/lib/tui/components/feedback/ProgressBar.d.ts.map +1 -0
- package/lib/tui/components/feedback/ProgressBar.js +30 -0
- package/lib/tui/components/feedback/ProgressBar.js.map +1 -0
- package/lib/tui/components/feedback/ProgressSteps.d.ts +35 -0
- package/lib/tui/components/feedback/ProgressSteps.d.ts.map +1 -0
- package/lib/tui/components/feedback/ProgressSteps.js +37 -0
- package/lib/tui/components/feedback/ProgressSteps.js.map +1 -0
- package/lib/tui/components/feedback/Spinner.d.ts +18 -0
- package/lib/tui/components/feedback/Spinner.d.ts.map +1 -0
- package/lib/tui/components/feedback/Spinner.js +28 -0
- package/lib/tui/components/feedback/Spinner.js.map +1 -0
- package/lib/tui/components/feedback/index.d.ts +8 -0
- package/lib/tui/components/feedback/index.d.ts.map +1 -0
- package/lib/tui/components/feedback/index.js +8 -0
- package/lib/tui/components/feedback/index.js.map +1 -0
- package/lib/tui/components/index.d.ts +8 -0
- package/lib/tui/components/index.d.ts.map +1 -0
- package/lib/tui/components/index.js +8 -0
- package/lib/tui/components/index.js.map +1 -0
- package/lib/tui/components/input/Checkbox.d.ts +26 -0
- package/lib/tui/components/input/Checkbox.d.ts.map +1 -0
- package/lib/tui/components/input/Checkbox.js +20 -0
- package/lib/tui/components/input/Checkbox.js.map +1 -0
- package/lib/tui/components/input/SelectInput.d.ts +41 -0
- package/lib/tui/components/input/SelectInput.d.ts.map +1 -0
- package/lib/tui/components/input/SelectInput.js +53 -0
- package/lib/tui/components/input/SelectInput.js.map +1 -0
- package/lib/tui/components/input/TextInput.d.ts +30 -0
- package/lib/tui/components/input/TextInput.d.ts.map +1 -0
- package/lib/tui/components/input/TextInput.js +48 -0
- package/lib/tui/components/input/TextInput.js.map +1 -0
- package/lib/tui/components/input/index.d.ts +7 -0
- package/lib/tui/components/input/index.d.ts.map +1 -0
- package/lib/tui/components/input/index.js +7 -0
- package/lib/tui/components/input/index.js.map +1 -0
- package/lib/tui/components/layout/Breadcrumbs.d.ts +11 -0
- package/lib/tui/components/layout/Breadcrumbs.d.ts.map +1 -0
- package/lib/tui/components/layout/Breadcrumbs.js +34 -0
- package/lib/tui/components/layout/Breadcrumbs.js.map +1 -0
- package/lib/tui/components/layout/Footer.d.ts +11 -0
- package/lib/tui/components/layout/Footer.d.ts.map +1 -0
- package/lib/tui/components/layout/Footer.js +20 -0
- package/lib/tui/components/layout/Footer.js.map +1 -0
- package/lib/tui/components/layout/Header.d.ts +21 -0
- package/lib/tui/components/layout/Header.d.ts.map +1 -0
- package/lib/tui/components/layout/Header.js +21 -0
- package/lib/tui/components/layout/Header.js.map +1 -0
- package/lib/tui/components/layout/Screen.d.ts +27 -0
- package/lib/tui/components/layout/Screen.d.ts.map +1 -0
- package/lib/tui/components/layout/Screen.js +11 -0
- package/lib/tui/components/layout/Screen.js.map +1 -0
- package/lib/tui/components/layout/index.d.ts +8 -0
- package/lib/tui/components/layout/index.d.ts.map +1 -0
- package/lib/tui/components/layout/index.js +8 -0
- package/lib/tui/components/layout/index.js.map +1 -0
- package/lib/tui/hooks/index.d.ts +20 -0
- package/lib/tui/hooks/index.d.ts.map +1 -0
- package/lib/tui/hooks/index.js +18 -0
- package/lib/tui/hooks/index.js.map +1 -0
- package/lib/tui/hooks/useAddPackage.d.ts +120 -0
- package/lib/tui/hooks/useAddPackage.d.ts.map +1 -0
- package/lib/tui/hooks/useAddPackage.js +347 -0
- package/lib/tui/hooks/useAddPackage.js.map +1 -0
- package/lib/tui/hooks/useCreateProject.d.ts +66 -0
- package/lib/tui/hooks/useCreateProject.d.ts.map +1 -0
- package/lib/tui/hooks/useCreateProject.js +156 -0
- package/lib/tui/hooks/useCreateProject.js.map +1 -0
- package/lib/tui/hooks/useDeploy.d.ts +93 -0
- package/lib/tui/hooks/useDeploy.d.ts.map +1 -0
- package/lib/tui/hooks/useDeploy.js +252 -0
- package/lib/tui/hooks/useDeploy.js.map +1 -0
- package/lib/tui/hooks/useKeyboard.d.ts +66 -0
- package/lib/tui/hooks/useKeyboard.d.ts.map +1 -0
- package/lib/tui/hooks/useKeyboard.js +101 -0
- package/lib/tui/hooks/useKeyboard.js.map +1 -0
- package/lib/tui/hooks/useNavigation.d.ts +33 -0
- package/lib/tui/hooks/useNavigation.d.ts.map +1 -0
- package/lib/tui/hooks/useNavigation.js +27 -0
- package/lib/tui/hooks/useNavigation.js.map +1 -0
- package/lib/tui/hooks/useProject.d.ts +36 -0
- package/lib/tui/hooks/useProject.d.ts.map +1 -0
- package/lib/tui/hooks/useProject.js +47 -0
- package/lib/tui/hooks/useProject.js.map +1 -0
- package/lib/tui/index.d.ts +15 -0
- package/lib/tui/index.d.ts.map +1 -0
- package/lib/tui/index.js +16 -0
- package/lib/tui/index.js.map +1 -0
- package/lib/tui/lib/add-package-tui.d.ts +127 -0
- package/lib/tui/lib/add-package-tui.d.ts.map +1 -0
- package/lib/tui/lib/add-package-tui.js +467 -0
- package/lib/tui/lib/add-package-tui.js.map +1 -0
- package/lib/tui/lib/create-project-tui.d.ts +84 -0
- package/lib/tui/lib/create-project-tui.d.ts.map +1 -0
- package/lib/tui/lib/create-project-tui.js +141 -0
- package/lib/tui/lib/create-project-tui.js.map +1 -0
- package/lib/tui/lib/deploy-tui.d.ts +131 -0
- package/lib/tui/lib/deploy-tui.d.ts.map +1 -0
- package/lib/tui/lib/deploy-tui.js +347 -0
- package/lib/tui/lib/deploy-tui.js.map +1 -0
- package/lib/tui/screens/AddPackageScreen.d.ts +12 -0
- package/lib/tui/screens/AddPackageScreen.d.ts.map +1 -0
- package/lib/tui/screens/AddPackageScreen.js +436 -0
- package/lib/tui/screens/AddPackageScreen.js.map +1 -0
- package/lib/tui/screens/CreateProjectScreen.d.ts +12 -0
- package/lib/tui/screens/CreateProjectScreen.d.ts.map +1 -0
- package/lib/tui/screens/CreateProjectScreen.js +252 -0
- package/lib/tui/screens/CreateProjectScreen.js.map +1 -0
- package/lib/tui/screens/DeployScreen.d.ts +11 -0
- package/lib/tui/screens/DeployScreen.d.ts.map +1 -0
- package/lib/tui/screens/DeployScreen.js +224 -0
- package/lib/tui/screens/DeployScreen.js.map +1 -0
- package/lib/tui/screens/ProjectDashboard.d.ts +11 -0
- package/lib/tui/screens/ProjectDashboard.d.ts.map +1 -0
- package/lib/tui/screens/ProjectDashboard.js +42 -0
- package/lib/tui/screens/ProjectDashboard.js.map +1 -0
- package/lib/tui/screens/WelcomeScreen.d.ts +11 -0
- package/lib/tui/screens/WelcomeScreen.d.ts.map +1 -0
- package/lib/tui/screens/WelcomeScreen.js +26 -0
- package/lib/tui/screens/WelcomeScreen.js.map +1 -0
- package/lib/tui/screens/index.d.ts +9 -0
- package/lib/tui/screens/index.d.ts.map +1 -0
- package/lib/tui/screens/index.js +9 -0
- package/lib/tui/screens/index.js.map +1 -0
- package/lib/tui/services/ConfigService.d.ts +133 -0
- package/lib/tui/services/ConfigService.d.ts.map +1 -0
- package/lib/tui/services/ConfigService.js +221 -0
- package/lib/tui/services/ConfigService.js.map +1 -0
- package/lib/tui/services/ProjectService.d.ts +55 -0
- package/lib/tui/services/ProjectService.d.ts.map +1 -0
- package/lib/tui/services/ProjectService.js +179 -0
- package/lib/tui/services/ProjectService.js.map +1 -0
- package/lib/tui/services/index.d.ts +6 -0
- package/lib/tui/services/index.d.ts.map +1 -0
- package/lib/tui/services/index.js +6 -0
- package/lib/tui/services/index.js.map +1 -0
- package/lib/tui/state/AppContext.d.ts +58 -0
- package/lib/tui/state/AppContext.d.ts.map +1 -0
- package/lib/tui/state/AppContext.js +75 -0
- package/lib/tui/state/AppContext.js.map +1 -0
- package/lib/tui/state/index.d.ts +7 -0
- package/lib/tui/state/index.d.ts.map +1 -0
- package/lib/tui/state/index.js +7 -0
- package/lib/tui/state/index.js.map +1 -0
- package/lib/tui/state/reducer.d.ts +13 -0
- package/lib/tui/state/reducer.d.ts.map +1 -0
- package/lib/tui/state/reducer.js +136 -0
- package/lib/tui/state/reducer.js.map +1 -0
- package/lib/tui/state/types.d.ts +132 -0
- package/lib/tui/state/types.d.ts.map +1 -0
- package/lib/tui/state/types.js +38 -0
- package/lib/tui/state/types.js.map +1 -0
- package/lib/tui/utils/ascii.d.ts +42 -0
- package/lib/tui/utils/ascii.d.ts.map +1 -0
- package/lib/tui/utils/ascii.js +63 -0
- package/lib/tui/utils/ascii.js.map +1 -0
- package/lib/tui/utils/colors.d.ts +65 -0
- package/lib/tui/utils/colors.d.ts.map +1 -0
- package/lib/tui/utils/colors.js +65 -0
- package/lib/tui/utils/colors.js.map +1 -0
- package/lib/tui/utils/index.d.ts +6 -0
- package/lib/tui/utils/index.d.ts.map +1 -0
- package/lib/tui/utils/index.js +6 -0
- package/lib/tui/utils/index.js.map +1 -0
- package/package.json +12 -3
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Project state hook for the FND TUI.
|
|
3
|
+
*
|
|
4
|
+
* Provides access to project information and actions.
|
|
5
|
+
*/
|
|
6
|
+
import { useEffect, useCallback } from 'react';
|
|
7
|
+
import { useAppState } from '../state/AppContext.js';
|
|
8
|
+
import { ProjectService } from '../services/ProjectService.js';
|
|
9
|
+
/**
|
|
10
|
+
* Hook for accessing project state.
|
|
11
|
+
*
|
|
12
|
+
* @param autoDetect - Whether to auto-detect project on mount
|
|
13
|
+
* @returns Project state and methods
|
|
14
|
+
*/
|
|
15
|
+
export function useProject(autoDetect = true) {
|
|
16
|
+
const { state, dispatch } = useAppState();
|
|
17
|
+
const { project } = state;
|
|
18
|
+
// Detect project on mount
|
|
19
|
+
useEffect(() => {
|
|
20
|
+
if (autoDetect && project.isLoading) {
|
|
21
|
+
const detected = ProjectService.detectProject();
|
|
22
|
+
dispatch({ type: 'SET_PROJECT', payload: { ...detected, isLoading: false } });
|
|
23
|
+
}
|
|
24
|
+
}, [autoDetect, project.isLoading, dispatch]);
|
|
25
|
+
const refresh = useCallback(() => {
|
|
26
|
+
dispatch({ type: 'SET_PROJECT_LOADING', loading: true });
|
|
27
|
+
const detected = ProjectService.detectProject();
|
|
28
|
+
dispatch({ type: 'SET_PROJECT', payload: { ...detected, isLoading: false } });
|
|
29
|
+
}, [dispatch]);
|
|
30
|
+
const getPackagesByType = useCallback((type) => {
|
|
31
|
+
return project.packages.filter((pkg) => pkg.type === type);
|
|
32
|
+
}, [project.packages]);
|
|
33
|
+
const hasPackage = useCallback((name) => {
|
|
34
|
+
return project.packages.some((pkg) => pkg.name === name);
|
|
35
|
+
}, [project.packages]);
|
|
36
|
+
return {
|
|
37
|
+
project,
|
|
38
|
+
isLoading: project.isLoading,
|
|
39
|
+
isInProject: project.context === 'existing' || project.context === 'legacy',
|
|
40
|
+
isNewProject: project.context === 'new',
|
|
41
|
+
isLegacyProject: project.context === 'legacy',
|
|
42
|
+
refresh,
|
|
43
|
+
getPackagesByType,
|
|
44
|
+
hasPackage,
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=useProject.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useProject.js","sourceRoot":"","sources":["../../../src/tui/hooks/useProject.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAyB/D;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,aAAsB,IAAI;IACnD,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,WAAW,EAAE,CAAC;IAC1C,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAE1B,0BAA0B;IAC1B,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,UAAU,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACpC,MAAM,QAAQ,GAAG,cAAc,CAAC,aAAa,EAAE,CAAC;YAChD,QAAQ,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,EAAE,GAAG,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QAChF,CAAC;IACH,CAAC,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;IAE9C,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE;QAC/B,QAAQ,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACzD,MAAM,QAAQ,GAAG,cAAc,CAAC,aAAa,EAAE,CAAC;QAChD,QAAQ,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,EAAE,GAAG,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;IAChF,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,MAAM,iBAAiB,GAAG,WAAW,CACnC,CAAC,IAAyB,EAAE,EAAE;QAC5B,OAAO,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IAC7D,CAAC,EACD,CAAC,OAAO,CAAC,QAAQ,CAAC,CACnB,CAAC;IAEF,MAAM,UAAU,GAAG,WAAW,CAC5B,CAAC,IAAY,EAAE,EAAE;QACf,OAAO,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IAC3D,CAAC,EACD,CAAC,OAAO,CAAC,QAAQ,CAAC,CACnB,CAAC;IAEF,OAAO;QACL,OAAO;QACP,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,WAAW,EAAE,OAAO,CAAC,OAAO,KAAK,UAAU,IAAI,OAAO,CAAC,OAAO,KAAK,QAAQ;QAC3E,YAAY,EAAE,OAAO,CAAC,OAAO,KAAK,KAAK;QACvC,eAAe,EAAE,OAAO,CAAC,OAAO,KAAK,QAAQ;QAC7C,OAAO;QACP,iBAAiB;QACjB,UAAU;KACX,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TUI entry point for the FND CLI.
|
|
3
|
+
*
|
|
4
|
+
* Renders the Ink-based terminal user interface.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Runs the interactive TUI.
|
|
8
|
+
*
|
|
9
|
+
* @returns Promise that resolves when the TUI exits
|
|
10
|
+
*/
|
|
11
|
+
export declare function runTui(): Promise<void>;
|
|
12
|
+
export { App } from './App.js';
|
|
13
|
+
export { AppProvider, useAppState } from './state/AppContext.js';
|
|
14
|
+
export type { AppState, AppAction, Screen } from './state/types.js';
|
|
15
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tui/index.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH;;;;GAIG;AACH,wBAAsB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAG5C;AAGD,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACjE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC"}
|
package/lib/tui/index.js
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { render } from 'ink';
|
|
3
|
+
import { App } from './App.js';
|
|
4
|
+
/**
|
|
5
|
+
* Runs the interactive TUI.
|
|
6
|
+
*
|
|
7
|
+
* @returns Promise that resolves when the TUI exits
|
|
8
|
+
*/
|
|
9
|
+
export async function runTui() {
|
|
10
|
+
const { waitUntilExit } = render(_jsx(App, {}));
|
|
11
|
+
await waitUntilExit();
|
|
12
|
+
}
|
|
13
|
+
// Re-export types and components for testing
|
|
14
|
+
export { App } from './App.js';
|
|
15
|
+
export { AppProvider, useAppState } from './state/AppContext.js';
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tui/index.tsx"],"names":[],"mappings":";AAOA,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAE/B;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM;IAC1B,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,CAAC,KAAC,GAAG,KAAG,CAAC,CAAC;IAC1C,MAAM,aAAa,EAAE,CAAC;AACxB,CAAC;AAED,6CAA6C;AAC7C,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TUI-compatible package addition module.
|
|
3
|
+
*
|
|
4
|
+
* Adapted from the CLI add command to work with the TUI:
|
|
5
|
+
* - Does NOT call process.exit()
|
|
6
|
+
* - Reports progress via callback
|
|
7
|
+
* - Returns result object for handling by the UI
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Valid package name pattern: lowercase alphanumeric with hyphens.
|
|
11
|
+
* Must start with a letter.
|
|
12
|
+
*/
|
|
13
|
+
export declare const PACKAGE_NAME_PATTERN: RegExp;
|
|
14
|
+
/**
|
|
15
|
+
* Package type identifiers.
|
|
16
|
+
*/
|
|
17
|
+
export type PackageType = 'api' | 'frontend' | 'cms' | 'component-library';
|
|
18
|
+
/**
|
|
19
|
+
* Options for adding a package.
|
|
20
|
+
*/
|
|
21
|
+
export interface AddPackageOptions {
|
|
22
|
+
/** Package type */
|
|
23
|
+
type: PackageType;
|
|
24
|
+
/** Package name */
|
|
25
|
+
name: string;
|
|
26
|
+
/** Output directory (optional) */
|
|
27
|
+
outdir?: string;
|
|
28
|
+
/** API package name to link (for frontend/cms) */
|
|
29
|
+
api?: string;
|
|
30
|
+
/** Enable DynamoDB integration (for api) */
|
|
31
|
+
dynamodb?: boolean;
|
|
32
|
+
/** Enable Cognito authentication (for api) */
|
|
33
|
+
cognito?: boolean;
|
|
34
|
+
/** Enable authentication (for frontend) */
|
|
35
|
+
auth?: boolean;
|
|
36
|
+
/** Development server port */
|
|
37
|
+
port?: number;
|
|
38
|
+
/** shadcn/ui theme */
|
|
39
|
+
theme?: string;
|
|
40
|
+
/** Enable media uploads (for cms) */
|
|
41
|
+
mediaUpload?: boolean;
|
|
42
|
+
/** Rich text editor type (for cms) */
|
|
43
|
+
richTextEditor?: 'tiptap' | 'lexical';
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Result of package addition.
|
|
47
|
+
*/
|
|
48
|
+
export interface AddPackageResult {
|
|
49
|
+
/** Whether addition succeeded */
|
|
50
|
+
success: boolean;
|
|
51
|
+
/** Package name (if successful) */
|
|
52
|
+
packageName?: string;
|
|
53
|
+
/** Error message (if failed) */
|
|
54
|
+
error?: string;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Addition step identifiers.
|
|
58
|
+
*/
|
|
59
|
+
export type AddPackageStep = 'idle' | 'validating' | 'modifying-projenrc' | 'installing-deps' | 'generating-infra' | 'running-synth' | 'complete' | 'error';
|
|
60
|
+
/**
|
|
61
|
+
* Progress update during addition.
|
|
62
|
+
*/
|
|
63
|
+
export interface AddPackageProgress {
|
|
64
|
+
/** Current step */
|
|
65
|
+
step: AddPackageStep;
|
|
66
|
+
/** Human-readable message */
|
|
67
|
+
message: string;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Validates a package name.
|
|
71
|
+
*
|
|
72
|
+
* @param name - The package name to validate
|
|
73
|
+
* @returns Validation result with error message if invalid
|
|
74
|
+
*/
|
|
75
|
+
export declare function validatePackageName(name: string): {
|
|
76
|
+
valid: boolean;
|
|
77
|
+
error?: string;
|
|
78
|
+
};
|
|
79
|
+
/**
|
|
80
|
+
* Checks if a package already exists in the project.
|
|
81
|
+
*
|
|
82
|
+
* @param projectRoot - Project root directory
|
|
83
|
+
* @param packageName - Package name to check
|
|
84
|
+
* @returns True if package exists
|
|
85
|
+
*/
|
|
86
|
+
export declare function checkPackageExists(projectRoot: string, packageName: string): boolean;
|
|
87
|
+
/**
|
|
88
|
+
* Gets available API packages in the project.
|
|
89
|
+
*
|
|
90
|
+
* @param projectRoot - Project root directory
|
|
91
|
+
* @returns Array of API package names
|
|
92
|
+
*/
|
|
93
|
+
export declare function getAvailableApiPackages(projectRoot: string): string[];
|
|
94
|
+
/**
|
|
95
|
+
* Checks if an API package exists in .projenrc.ts.
|
|
96
|
+
*
|
|
97
|
+
* @param projenrcContent - Content of .projenrc.ts
|
|
98
|
+
* @param apiName - API package name to check
|
|
99
|
+
* @returns True if API package exists
|
|
100
|
+
*/
|
|
101
|
+
export declare function checkApiInProjenrc(projenrcContent: string, apiName: string): boolean;
|
|
102
|
+
/**
|
|
103
|
+
* Adds a package in TUI mode.
|
|
104
|
+
*
|
|
105
|
+
* Unlike the CLI version, this function:
|
|
106
|
+
* - Does NOT call process.exit()
|
|
107
|
+
* - Reports progress via callback
|
|
108
|
+
* - Returns result object
|
|
109
|
+
*
|
|
110
|
+
* @param options - Package addition options
|
|
111
|
+
* @param onProgress - Progress callback
|
|
112
|
+
* @returns Result indicating success or failure
|
|
113
|
+
*/
|
|
114
|
+
export declare function addPackageForTUI(options: AddPackageOptions, onProgress: (progress: AddPackageProgress) => void): Promise<AddPackageResult>;
|
|
115
|
+
/**
|
|
116
|
+
* Gets the display label for a package type.
|
|
117
|
+
*/
|
|
118
|
+
export declare function getPackageTypeLabel(type: PackageType): string;
|
|
119
|
+
/**
|
|
120
|
+
* Gets the description for a package type.
|
|
121
|
+
*/
|
|
122
|
+
export declare function getPackageTypeDescription(type: PackageType): string;
|
|
123
|
+
/**
|
|
124
|
+
* Gets the default port for a package type.
|
|
125
|
+
*/
|
|
126
|
+
export declare function getDefaultPort(type: PackageType): number;
|
|
127
|
+
//# sourceMappingURL=add-package-tui.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"add-package-tui.d.ts","sourceRoot":"","sources":["../../../src/tui/lib/add-package-tui.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAkBH;;;GAGG;AACH,eAAO,MAAM,oBAAoB,QAAsB,CAAC;AAExD;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,UAAU,GAAG,KAAK,GAAG,mBAAmB,CAAC;AAE3E;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,mBAAmB;IACnB,IAAI,EAAE,WAAW,CAAC;IAClB,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,kCAAkC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kDAAkD;IAClD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,8CAA8C;IAC9C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,2CAA2C;IAC3C,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,8BAA8B;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,sBAAsB;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qCAAqC;IACrC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,sCAAsC;IACtC,cAAc,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,iCAAiC;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,mCAAmC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gCAAgC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GACtB,MAAM,GACN,YAAY,GACZ,oBAAoB,GACpB,iBAAiB,GACjB,kBAAkB,GAClB,eAAe,GACf,UAAU,GACV,OAAO,CAAC;AAEZ;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,mBAAmB;IACnB,IAAI,EAAE,cAAc,CAAC;IACrB,6BAA6B;IAC7B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CA2BpF;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAGpF;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CAGrE;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,eAAe,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAGpF;AAkOD;;;;;;;;;;;GAWG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,iBAAiB,EAC1B,UAAU,EAAE,CAAC,QAAQ,EAAE,kBAAkB,KAAK,IAAI,GACjD,OAAO,CAAC,gBAAgB,CAAC,CAwH3B;AAkCD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CAW7D;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CAWnE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CAWxD"}
|