create-react-forge 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. package/README.md +109 -0
  2. package/dist/assembler/index.d.ts +100 -0
  3. package/dist/assembler/index.d.ts.map +1 -0
  4. package/dist/assembler/index.js +198 -0
  5. package/dist/assembler/index.js.map +1 -0
  6. package/dist/assembler/merger.d.ts +14 -0
  7. package/dist/assembler/merger.d.ts.map +1 -0
  8. package/dist/assembler/merger.js +58 -0
  9. package/dist/assembler/merger.js.map +1 -0
  10. package/dist/cli/index.d.ts +57 -0
  11. package/dist/cli/index.d.ts.map +1 -0
  12. package/dist/cli/index.js +110 -0
  13. package/dist/cli/index.js.map +1 -0
  14. package/dist/cli/parser.d.ts +3 -0
  15. package/dist/cli/parser.d.ts.map +1 -0
  16. package/dist/cli/parser.js +50 -0
  17. package/dist/cli/parser.js.map +1 -0
  18. package/dist/cli/prompts.d.ts +24 -0
  19. package/dist/cli/prompts.d.ts.map +1 -0
  20. package/dist/cli/prompts.js +126 -0
  21. package/dist/cli/prompts.js.map +1 -0
  22. package/dist/config/builder.d.ts +42 -0
  23. package/dist/config/builder.d.ts.map +1 -0
  24. package/dist/config/builder.js +113 -0
  25. package/dist/config/builder.js.map +1 -0
  26. package/dist/config/defaults.d.ts +51 -0
  27. package/dist/config/defaults.d.ts.map +1 -0
  28. package/dist/config/defaults.js +41 -0
  29. package/dist/config/defaults.js.map +1 -0
  30. package/dist/config/schema.d.ts +318 -0
  31. package/dist/config/schema.d.ts.map +1 -0
  32. package/dist/config/schema.js +100 -0
  33. package/dist/config/schema.js.map +1 -0
  34. package/dist/dependencies/resolver.d.ts +43 -0
  35. package/dist/dependencies/resolver.d.ts.map +1 -0
  36. package/dist/dependencies/resolver.js +117 -0
  37. package/dist/dependencies/resolver.js.map +1 -0
  38. package/dist/docs/architecture-generator.d.ts +3 -0
  39. package/dist/docs/architecture-generator.d.ts.map +1 -0
  40. package/dist/docs/architecture-generator.js +73 -0
  41. package/dist/docs/architecture-generator.js.map +1 -0
  42. package/dist/docs/index.d.ts +2 -0
  43. package/dist/docs/index.d.ts.map +1 -0
  44. package/dist/docs/index.js +2 -0
  45. package/dist/docs/index.js.map +1 -0
  46. package/dist/generator/index.d.ts +41 -0
  47. package/dist/generator/index.d.ts.map +1 -0
  48. package/dist/generator/index.js +201 -0
  49. package/dist/generator/index.js.map +1 -0
  50. package/dist/index.d.ts +3 -0
  51. package/dist/index.d.ts.map +1 -0
  52. package/dist/index.js +7 -0
  53. package/dist/index.js.map +1 -0
  54. package/dist/lifecycle/index.d.ts +2 -0
  55. package/dist/lifecycle/index.d.ts.map +1 -0
  56. package/dist/lifecycle/index.js +2 -0
  57. package/dist/lifecycle/index.js.map +1 -0
  58. package/dist/lifecycle/installer.d.ts +2 -0
  59. package/dist/lifecycle/installer.d.ts.map +1 -0
  60. package/dist/lifecycle/installer.js +14 -0
  61. package/dist/lifecycle/installer.js.map +1 -0
  62. package/dist/plugins/index.d.ts +4 -0
  63. package/dist/plugins/index.d.ts.map +1 -0
  64. package/dist/plugins/index.js +4 -0
  65. package/dist/plugins/index.js.map +1 -0
  66. package/dist/plugins/loader.d.ts +5 -0
  67. package/dist/plugins/loader.d.ts.map +1 -0
  68. package/dist/plugins/loader.js +16 -0
  69. package/dist/plugins/loader.js.map +1 -0
  70. package/dist/plugins/manager.d.ts +9 -0
  71. package/dist/plugins/manager.d.ts.map +1 -0
  72. package/dist/plugins/manager.js +41 -0
  73. package/dist/plugins/manager.js.map +1 -0
  74. package/dist/plugins/types.d.ts +17 -0
  75. package/dist/plugins/types.d.ts.map +1 -0
  76. package/dist/plugins/types.js +2 -0
  77. package/dist/plugins/types.js.map +1 -0
  78. package/dist/templates/registry.d.ts +108 -0
  79. package/dist/templates/registry.d.ts.map +1 -0
  80. package/dist/templates/registry.js +238 -0
  81. package/dist/templates/registry.js.map +1 -0
  82. package/dist/templates/utils.d.ts +49 -0
  83. package/dist/templates/utils.d.ts.map +1 -0
  84. package/dist/templates/utils.js +103 -0
  85. package/dist/templates/utils.js.map +1 -0
  86. package/dist/testing/configurer.d.ts +29 -0
  87. package/dist/testing/configurer.d.ts.map +1 -0
  88. package/dist/testing/configurer.js +163 -0
  89. package/dist/testing/configurer.js.map +1 -0
  90. package/package.json +84 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAEvD;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAAsB;IAC1D,MAAM,OAAO,GAAG,IAAI,aAAa,EAAE,CAAC;IAEpC,wCAAwC;IACxC,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAEhE,OAAO;SACJ,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC;SAC5B,OAAO,CAAC,WAAW,CAAC;SACpB,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC;SAC3B,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC;SAC7B,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC;SAC3B,kBAAkB,CAAC,OAAO,CAAC,eAAe,CAAC;SAC3C,iBAAiB,CAAC,OAAO,CAAC,cAAc,CAAC;SACzC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC;SACvB,sBAAsB,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAEhD,IAAI,OAAO,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;QAC/B,OAAO;aACJ,iBAAiB,CAAC,IAAI,CAAC;aACvB,iBAAiB,CAAC,OAAO,CAAC,UAAU,CAAC;aACrC,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;QACjB,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAED,OAAO,OAAO,CAAC,KAAK,EAAE,CAAC;AACzB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC9C,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,0BAA0B,EAAE,CAAC;IAC7D,CAAC;IACD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,0DAA0D,EAAE,CAAC;IAC7F,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AACzB,CAAC;AAED;;GAEG;AACH,SAAS,qBAAqB,CAAC,MAAgD;IAC7E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC,CAAC;IACzD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC9E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IACtF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,IAAI,MAAM,CAAC,CAAC,CAAC;IAC/F,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IACtH,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;IACrI,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC;QAC1D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1F,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC;IACpF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7F,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,IAAI;IACxB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC;IACtD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC,CAAC;IAE1F,IAAI,CAAC;QACH,iBAAiB;QACjB,MAAM,OAAO,GAAG,MAAM,uBAAuB,EAAE,CAAC;QAEhD,oBAAoB;QACpB,MAAM,MAAM,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;QAE9C,WAAW;QACX,MAAM,UAAU,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;QACxD,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YACxB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC,CAAC;YACjE,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;YAChF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,kBAAkB;QAClB,qBAAqB,CAAC,MAAM,CAAC,CAAC;QAE9B,mBAAmB;QACnB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,CAAC;QAE7C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC,CAAC;YAC3D,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;YAC3E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC;YAC7C,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;QACpF,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,KAAK,8BAA8B,EAAE,CAAC;YAC/E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC,CAAC;YACnD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function createCommand(): Command;
3
+ //# sourceMappingURL=parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/cli/parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AAmB5C,wBAAgB,aAAa,IAAI,OAAO,CAkDvC"}
@@ -0,0 +1,50 @@
1
+ import { Command, Option } from 'commander';
2
+ import { readFileSync } from 'fs';
3
+ import { dirname, join } from 'path';
4
+ import { fileURLToPath } from 'url';
5
+ const __filename = fileURLToPath(import.meta.url);
6
+ const __dirname = dirname(__filename);
7
+ // Get version from package.json
8
+ function getVersion() {
9
+ try {
10
+ const packageJsonPath = join(__dirname, '../../package.json');
11
+ const packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf-8'));
12
+ return packageJson.version;
13
+ }
14
+ catch {
15
+ return '1.0.0';
16
+ }
17
+ }
18
+ export function createCommand() {
19
+ const program = new Command();
20
+ program
21
+ .name('react-setup')
22
+ .description('Production-ready React CLI scaffolder with first-class testing support')
23
+ .version(getVersion());
24
+ program
25
+ .command('create [projectName]', { isDefault: true })
26
+ .description('Create a new React project')
27
+ .addOption(new Option('--runtime <runtime>', 'Project runtime').choices(['vite', 'nextjs']))
28
+ .addOption(new Option('--language <language>', 'Programming language').choices(['javascript', 'typescript']))
29
+ .addOption(new Option('--styling <styling>', 'Styling solution').choices([
30
+ 'css',
31
+ 'tailwind',
32
+ 'styled-components',
33
+ 'css-modules',
34
+ ]))
35
+ .addOption(new Option('--state <state>', 'State management').choices(['none', 'redux', 'zustand']))
36
+ .addOption(new Option('--testing <testing>', 'Testing setup').choices(['full', 'unit-component', 'custom', 'none']))
37
+ .addOption(new Option('--unit-runner <runner>', 'Unit test runner').choices(['vitest', 'jest']))
38
+ .addOption(new Option('--e2e-runner <runner>', 'E2E test runner').choices(['playwright', 'cypress', 'none']))
39
+ .addOption(new Option('--pm <packageManager>', 'Package manager').choices(['npm', 'yarn', 'pnpm']))
40
+ .option('--no-git', 'Skip git initialization')
41
+ .option('--query', 'Include TanStack Query')
42
+ .option('--no-query', 'Skip TanStack Query')
43
+ .option('--typescript', 'Use TypeScript (default)')
44
+ .option('--javascript', 'Use JavaScript')
45
+ .action(async () => {
46
+ // Action handled in main CLI entry point
47
+ });
48
+ return program;
49
+ }
50
+ //# sourceMappingURL=parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/cli/parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ export interface PromptAnswers {
2
+ projectName: string;
3
+ projectPath: string;
4
+ runtime: 'vite' | 'nextjs';
5
+ language: 'javascript' | 'typescript';
6
+ styling: string;
7
+ stateManagement: string;
8
+ testing: 'full' | 'unit-component' | 'none';
9
+ unitRunner: 'vitest' | 'jest';
10
+ e2eRunner: 'playwright' | 'cypress' | 'none';
11
+ dataFetching: boolean;
12
+ packageManager: 'npm' | 'yarn' | 'pnpm';
13
+ git: boolean;
14
+ prettier: boolean;
15
+ }
16
+ /**
17
+ * Interactive prompts for user input
18
+ */
19
+ export declare function promptForProjectDetails(suggestedName?: string): Promise<PromptAnswers>;
20
+ /**
21
+ * Helper to prompt for confirmation before proceeding
22
+ */
23
+ export declare function confirmProceed(message?: string): Promise<boolean>;
24
+ //# sourceMappingURL=prompts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/cli/prompts.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC3B,QAAQ,EAAE,YAAY,GAAG,YAAY,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,GAAG,gBAAgB,GAAG,MAAM,CAAC;IAC5C,UAAU,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC9B,SAAS,EAAE,YAAY,GAAG,SAAS,GAAG,MAAM,CAAC;IAC7C,YAAY,EAAE,OAAO,CAAC;IACtB,cAAc,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;IACxC,GAAG,EAAE,OAAO,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAC3C,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,aAAa,CAAC,CA2HxB;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,OAAO,GAAE,MAAmB,GAAG,OAAO,CAAC,OAAO,CAAC,CAKnF"}
@@ -0,0 +1,126 @@
1
+ import { confirm, input, select } from '@inquirer/prompts';
2
+ import { E2E_RUNNER_DESCRIPTIONS, RUNTIME_DESCRIPTIONS, STATE_DESCRIPTIONS, STYLING_DESCRIPTIONS, TEST_RUNNER_DESCRIPTIONS } from '../config/defaults.js';
3
+ /**
4
+ * Interactive prompts for user input
5
+ */
6
+ export async function promptForProjectDetails(suggestedName) {
7
+ const projectName = await input({
8
+ message: 'Project name:',
9
+ default: suggestedName || 'my-app',
10
+ validate: (value) => {
11
+ if (!value)
12
+ return 'Project name is required';
13
+ if (!/^[a-z0-9-]+$/.test(value))
14
+ return 'Project name must be lowercase alphanumeric with hyphens';
15
+ return true;
16
+ },
17
+ });
18
+ const projectPath = await input({
19
+ message: 'Project directory:',
20
+ default: `./${projectName}`,
21
+ });
22
+ const runtime = (await select({
23
+ message: 'Choose runtime:',
24
+ choices: [
25
+ { name: RUNTIME_DESCRIPTIONS.vite, value: 'vite' },
26
+ { name: RUNTIME_DESCRIPTIONS.nextjs, value: 'nextjs' },
27
+ ],
28
+ }));
29
+ const language = (await select({
30
+ message: 'Language:',
31
+ choices: [
32
+ { name: 'TypeScript (recommended)', value: 'typescript' },
33
+ { name: 'JavaScript', value: 'javascript' },
34
+ ],
35
+ }));
36
+ const styling = (await select({
37
+ message: 'Styling solution:',
38
+ choices: [
39
+ { name: STYLING_DESCRIPTIONS.tailwind, value: 'tailwind' },
40
+ { name: STYLING_DESCRIPTIONS.css, value: 'css' },
41
+ { name: STYLING_DESCRIPTIONS['styled-components'], value: 'styled-components' },
42
+ { name: STYLING_DESCRIPTIONS['css-modules'], value: 'css-modules' },
43
+ ],
44
+ }));
45
+ const stateManagement = (await select({
46
+ message: 'State management:',
47
+ choices: [
48
+ { name: STATE_DESCRIPTIONS.none, value: 'none' },
49
+ { name: STATE_DESCRIPTIONS.zustand, value: 'zustand' },
50
+ { name: STATE_DESCRIPTIONS.redux, value: 'redux' },
51
+ ],
52
+ }));
53
+ const testing = (await select({
54
+ message: 'Testing setup:',
55
+ choices: [
56
+ { name: 'Unit + Component + E2E (recommended)', value: 'full' },
57
+ { name: 'Unit + Component only', value: 'unit-component' },
58
+ { name: 'Skip testing', value: 'none' },
59
+ ],
60
+ }));
61
+ let unitRunner = 'vitest';
62
+ let e2eRunner = 'playwright';
63
+ if (testing !== 'none') {
64
+ unitRunner = (await select({
65
+ message: 'Unit test runner:',
66
+ choices: [
67
+ { name: TEST_RUNNER_DESCRIPTIONS.vitest, value: 'vitest' },
68
+ { name: TEST_RUNNER_DESCRIPTIONS.jest, value: 'jest' },
69
+ ],
70
+ }));
71
+ }
72
+ if (testing === 'full') {
73
+ e2eRunner = (await select({
74
+ message: 'E2E testing framework:',
75
+ choices: [
76
+ { name: E2E_RUNNER_DESCRIPTIONS.playwright, value: 'playwright' },
77
+ { name: E2E_RUNNER_DESCRIPTIONS.cypress, value: 'cypress' },
78
+ ],
79
+ }));
80
+ }
81
+ const dataFetching = await confirm({
82
+ message: 'Include TanStack Query?',
83
+ default: true,
84
+ });
85
+ const packageManager = (await select({
86
+ message: 'Package manager:',
87
+ choices: [
88
+ { name: 'npm', value: 'npm' },
89
+ { name: 'yarn', value: 'yarn' },
90
+ { name: 'pnpm', value: 'pnpm' },
91
+ ],
92
+ }));
93
+ const git = await confirm({
94
+ message: 'Initialize git repository?',
95
+ default: true,
96
+ });
97
+ const prettier = await confirm({
98
+ message: 'Add Prettier?',
99
+ default: true,
100
+ });
101
+ return {
102
+ projectName,
103
+ projectPath,
104
+ runtime,
105
+ language,
106
+ styling,
107
+ stateManagement,
108
+ testing,
109
+ unitRunner,
110
+ e2eRunner,
111
+ dataFetching,
112
+ packageManager,
113
+ git,
114
+ prettier,
115
+ };
116
+ }
117
+ /**
118
+ * Helper to prompt for confirmation before proceeding
119
+ */
120
+ export async function confirmProceed(message = 'Proceed?') {
121
+ return await confirm({
122
+ message,
123
+ default: true,
124
+ });
125
+ }
126
+ //# sourceMappingURL=prompts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/cli/prompts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ import { type ProjectConfig } from './schema.js';
2
+ /**
3
+ * Configuration builder - validates and normalizes user input
4
+ */
5
+ export declare class ConfigBuilder {
6
+ private config;
7
+ constructor(initialConfig?: Partial<ProjectConfig>);
8
+ setName(name: string): this;
9
+ setPath(path: string): this;
10
+ setRuntime(runtime: 'vite' | 'nextjs'): this;
11
+ setLanguage(language: 'javascript' | 'typescript'): this;
12
+ setStyling(solution: string): this;
13
+ setStateManagement(manager: string): this;
14
+ setTestingEnabled(enabled: boolean): this;
15
+ setUnitTestRunner(runner: 'vitest' | 'jest'): this;
16
+ setE2ETestRunner(runner: 'playwright' | 'cypress' | 'none'): this;
17
+ setDataFetchingEnabled(enabled: boolean): this;
18
+ setPackageManager(manager: 'npm' | 'yarn' | 'pnpm'): this;
19
+ setGitInit(init: boolean): this;
20
+ /**
21
+ * Validate and build final configuration
22
+ * Throws if validation fails
23
+ */
24
+ build(): ProjectConfig;
25
+ /**
26
+ * Safely validate configuration, returning validation result
27
+ */
28
+ validate(): {
29
+ success: boolean;
30
+ data?: ProjectConfig;
31
+ errors?: string[];
32
+ };
33
+ /**
34
+ * Get current partial config (for inspection)
35
+ */
36
+ getConfig(): Partial<ProjectConfig>;
37
+ }
38
+ /**
39
+ * Helper to merge multiple configs with validation
40
+ */
41
+ export declare function mergeConfigs(...configs: Partial<ProjectConfig>[]): ProjectConfig;
42
+ //# sourceMappingURL=builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../src/config/builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuC,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAEtF;;GAEG;AAEH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAA8B;gBAEhC,aAAa,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC;IAIlD,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAK3B,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAK3B,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI;IAK5C,WAAW,CAAC,QAAQ,EAAE,YAAY,GAAG,YAAY,GAAG,IAAI;IAKxD,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAKlC,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAKzC,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAQzC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,GAAG,MAAM,GAAG,IAAI;IAQlD,gBAAgB,CAAC,MAAM,EAAE,YAAY,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI;IAQjE,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAQ9C,iBAAiB,CAAC,OAAO,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI;IAKzD,UAAU,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;IAQ/B;;;OAGG;IACH,KAAK,IAAI,aAAa;IAQtB;;OAEG;IACH,QAAQ,IAAI;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,aAAa,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE;IAUzE;;OAEG;IACH,SAAS,IAAI,OAAO,CAAC,aAAa,CAAC;CAGpC;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,EAAE,GAAG,aAAa,CAKhF"}
@@ -0,0 +1,113 @@
1
+ import { DEFAULT_CONFIG, ProjectConfigSchema } from './schema.js';
2
+ /**
3
+ * Configuration builder - validates and normalizes user input
4
+ */
5
+ export class ConfigBuilder {
6
+ constructor(initialConfig) {
7
+ this.config = {};
8
+ this.config = initialConfig ? { ...initialConfig } : {};
9
+ }
10
+ setName(name) {
11
+ this.config.name = name;
12
+ return this;
13
+ }
14
+ setPath(path) {
15
+ this.config.path = path;
16
+ return this;
17
+ }
18
+ setRuntime(runtime) {
19
+ this.config.runtime = runtime;
20
+ return this;
21
+ }
22
+ setLanguage(language) {
23
+ this.config.language = language;
24
+ return this;
25
+ }
26
+ setStyling(solution) {
27
+ this.config.styling = { solution: solution };
28
+ return this;
29
+ }
30
+ setStateManagement(manager) {
31
+ this.config.stateManagement = manager;
32
+ return this;
33
+ }
34
+ setTestingEnabled(enabled) {
35
+ if (!this.config.testing) {
36
+ this.config.testing = DEFAULT_CONFIG.testing;
37
+ }
38
+ this.config.testing.enabled = enabled;
39
+ return this;
40
+ }
41
+ setUnitTestRunner(runner) {
42
+ if (!this.config.testing) {
43
+ this.config.testing = DEFAULT_CONFIG.testing;
44
+ }
45
+ this.config.testing.unit.runner = runner;
46
+ return this;
47
+ }
48
+ setE2ETestRunner(runner) {
49
+ if (!this.config.testing) {
50
+ this.config.testing = DEFAULT_CONFIG.testing;
51
+ }
52
+ this.config.testing.e2e.runner = runner;
53
+ return this;
54
+ }
55
+ setDataFetchingEnabled(enabled) {
56
+ if (!this.config.dataFetching) {
57
+ this.config.dataFetching = DEFAULT_CONFIG.dataFetching;
58
+ }
59
+ this.config.dataFetching.enabled = enabled;
60
+ return this;
61
+ }
62
+ setPackageManager(manager) {
63
+ this.config.packageManager = manager;
64
+ return this;
65
+ }
66
+ setGitInit(init) {
67
+ if (!this.config.git) {
68
+ this.config.git = DEFAULT_CONFIG.git;
69
+ }
70
+ this.config.git.init = init;
71
+ return this;
72
+ }
73
+ /**
74
+ * Validate and build final configuration
75
+ * Throws if validation fails
76
+ */
77
+ build() {
78
+ const result = ProjectConfigSchema.parse({
79
+ ...DEFAULT_CONFIG,
80
+ ...this.config,
81
+ });
82
+ return result;
83
+ }
84
+ /**
85
+ * Safely validate configuration, returning validation result
86
+ */
87
+ validate() {
88
+ try {
89
+ const data = this.build();
90
+ return { success: true, data };
91
+ }
92
+ catch (error) {
93
+ const errors = error instanceof Error ? [error.message] : ['Unknown validation error'];
94
+ return { success: false, errors };
95
+ }
96
+ }
97
+ /**
98
+ * Get current partial config (for inspection)
99
+ */
100
+ getConfig() {
101
+ return { ...this.config };
102
+ }
103
+ }
104
+ /**
105
+ * Helper to merge multiple configs with validation
106
+ */
107
+ export function mergeConfigs(...configs) {
108
+ const merged = configs.reduce((acc, config) => ({ ...acc, ...config }), {
109
+ ...DEFAULT_CONFIG,
110
+ });
111
+ return ProjectConfigSchema.parse(merged);
112
+ }
113
+ //# sourceMappingURL=builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builder.js","sourceRoot":"","sources":["../../src/config/builder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ export declare const DEFAULTS: {
2
+ path: string;
3
+ name: string;
4
+ runtime: "vite" | "nextjs";
5
+ language: "javascript" | "typescript";
6
+ styling: {
7
+ solution: "css" | "tailwind" | "styled-components" | "css-modules";
8
+ };
9
+ stateManagement: "none" | "redux" | "zustand";
10
+ dataFetching: {
11
+ enabled: boolean;
12
+ library: "tanstack-query";
13
+ };
14
+ testing: {
15
+ enabled: boolean;
16
+ unit: {
17
+ enabled: boolean;
18
+ runner: "vitest" | "jest";
19
+ };
20
+ component: {
21
+ enabled: boolean;
22
+ library: "testing-library";
23
+ };
24
+ e2e: {
25
+ enabled: boolean;
26
+ runner: "none" | "playwright" | "cypress";
27
+ };
28
+ };
29
+ linting: {
30
+ prettier: boolean;
31
+ };
32
+ packageManager: "npm" | "yarn" | "pnpm";
33
+ git: {
34
+ init: boolean;
35
+ initialCommit: boolean;
36
+ };
37
+ plugins: {
38
+ name: string;
39
+ config?: unknown;
40
+ }[];
41
+ };
42
+ export declare const RUNTIME_DESCRIPTIONS: Record<string, string>;
43
+ export declare const STYLING_DESCRIPTIONS: Record<string, string>;
44
+ export declare const STATE_DESCRIPTIONS: Record<string, string>;
45
+ export declare const TEST_RUNNER_DESCRIPTIONS: Record<string, string>;
46
+ export declare const E2E_RUNNER_DESCRIPTIONS: Record<string, string>;
47
+ export declare const PACKAGE_MANAGER_COMMANDS: Record<string, {
48
+ install: string;
49
+ exec: string;
50
+ }>;
51
+ //# sourceMappingURL=defaults.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAiB,CAAC;AAEvC,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAGvD,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAKvD,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAIrD,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAG3D,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAI1D,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAatF,CAAC"}
@@ -0,0 +1,41 @@
1
+ import { DEFAULT_CONFIG } from './schema.js';
2
+ export const DEFAULTS = DEFAULT_CONFIG;
3
+ export const RUNTIME_DESCRIPTIONS = {
4
+ vite: 'Vite - Fast SPA with excellent dev experience',
5
+ nextjs: 'Next.js - Full-stack with SSR and API routes',
6
+ };
7
+ export const STYLING_DESCRIPTIONS = {
8
+ css: 'Plain CSS with CSS modules',
9
+ tailwind: 'Tailwind CSS - Utility-first framework',
10
+ 'styled-components': 'Styled Components - CSS-in-JS',
11
+ 'css-modules': 'CSS Modules - Scoped styling',
12
+ };
13
+ export const STATE_DESCRIPTIONS = {
14
+ none: 'No state management',
15
+ redux: 'Redux Toolkit - Predictable state container',
16
+ zustand: 'Zustand - Lightweight state management',
17
+ };
18
+ export const TEST_RUNNER_DESCRIPTIONS = {
19
+ vitest: 'Vitest - Lightning-fast unit tests',
20
+ jest: 'Jest - Battle-tested test runner',
21
+ };
22
+ export const E2E_RUNNER_DESCRIPTIONS = {
23
+ playwright: 'Playwright - Cross-browser E2E testing',
24
+ cypress: 'Cypress - Developer-friendly E2E testing',
25
+ none: 'Skip E2E testing setup',
26
+ };
27
+ export const PACKAGE_MANAGER_COMMANDS = {
28
+ npm: {
29
+ install: 'npm install',
30
+ exec: 'npm exec',
31
+ },
32
+ yarn: {
33
+ install: 'yarn install',
34
+ exec: 'yarn exec',
35
+ },
36
+ pnpm: {
37
+ install: 'pnpm install',
38
+ exec: 'pnpm exec',
39
+ },
40
+ };
41
+ //# sourceMappingURL=defaults.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,CAAC,MAAM,QAAQ,GAAG,cAAc,CAAC;AAEvC,MAAM,CAAC,MAAM,oBAAoB,GAA2B;IAC1D,IAAI,EAAE,+CAA+C;IACrD,MAAM,EAAE,8CAA8C;CACvD,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAA2B;IAC1D,GAAG,EAAE,4BAA4B;IACjC,QAAQ,EAAE,wCAAwC;IAClD,mBAAmB,EAAE,+BAA+B;IACpD,aAAa,EAAE,8BAA8B;CAC9C,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAA2B;IACxD,IAAI,EAAE,qBAAqB;IAC3B,KAAK,EAAE,6CAA6C;IACpD,OAAO,EAAE,wCAAwC;CAClD,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAA2B;IAC9D,MAAM,EAAE,oCAAoC;IAC5C,IAAI,EAAE,kCAAkC;CACzC,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAA2B;IAC7D,UAAU,EAAE,wCAAwC;IACpD,OAAO,EAAE,0CAA0C;IACnD,IAAI,EAAE,wBAAwB;CAC/B,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAsD;IACzF,GAAG,EAAE;QACH,OAAO,EAAE,aAAa;QACtB,IAAI,EAAE,UAAU;KACjB;IACD,IAAI,EAAE;QACJ,OAAO,EAAE,cAAc;QACvB,IAAI,EAAE,WAAW;KAClB;IACD,IAAI,EAAE;QACJ,OAAO,EAAE,cAAc;QACvB,IAAI,EAAE,WAAW;KAClB;CACF,CAAC"}