create-react-starter-kit 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 (182) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +119 -0
  3. package/bin/create-react-starter-kit.js +7 -0
  4. package/dist/cli-args.d.ts +15 -0
  5. package/dist/cli-args.d.ts.map +1 -0
  6. package/dist/cli-args.js +78 -0
  7. package/dist/cli-args.js.map +1 -0
  8. package/dist/generator/dependencies.d.ts +8 -0
  9. package/dist/generator/dependencies.d.ts.map +1 -0
  10. package/dist/generator/dependencies.js +356 -0
  11. package/dist/generator/dependencies.js.map +1 -0
  12. package/dist/generator/index.d.ts +5 -0
  13. package/dist/generator/index.d.ts.map +1 -0
  14. package/dist/generator/index.js +358 -0
  15. package/dist/generator/index.js.map +1 -0
  16. package/dist/index.d.ts +3 -0
  17. package/dist/index.d.ts.map +1 -0
  18. package/dist/index.js +38 -0
  19. package/dist/index.js.map +1 -0
  20. package/dist/prompts/index.d.ts +3 -0
  21. package/dist/prompts/index.d.ts.map +1 -0
  22. package/dist/prompts/index.js +267 -0
  23. package/dist/prompts/index.js.map +1 -0
  24. package/dist/templates/.env.example.ejs +21 -0
  25. package/dist/templates/.husky/commit-msg +2 -0
  26. package/dist/templates/.husky/pre-commit +2 -0
  27. package/dist/templates/README.md.ejs +169 -0
  28. package/dist/templates/__js__/jsconfig.json +9 -0
  29. package/dist/templates/__ts__/src/vite-env.d.ts +16 -0
  30. package/dist/templates/__ts__/tsconfig.json +24 -0
  31. package/dist/templates/__when_buildTool_esbuild__/scripts/esbuild.build.mjs.ejs +23 -0
  32. package/dist/templates/__when_buildTool_esbuild__/scripts/esbuild.dev.mjs.ejs +48 -0
  33. package/dist/templates/__when_buildTool_parcel__/.parcelrc +9 -0
  34. package/dist/templates/__when_buildTool_rollup__/rollup.config.js.ejs +33 -0
  35. package/dist/templates/__when_buildTool_rspack__/rspack.config.js.ejs +36 -0
  36. package/dist/templates/__when_buildTool_vite__/vite.config.ts.ejs +37 -0
  37. package/dist/templates/__when_buildTool_webpack__/webpack.config.js.ejs +68 -0
  38. package/dist/templates/__when_e2eTesting_cypress__/cypress/e2e/home.cy.ts.ejs +6 -0
  39. package/dist/templates/__when_e2eTesting_cypress__/cypress.config.ts.ejs +8 -0
  40. package/dist/templates/__when_e2eTesting_playwright__/playwright.config.ts.ejs +16 -0
  41. package/dist/templates/__when_e2eTesting_playwright__/tests/e2e/home.spec.ts.ejs +6 -0
  42. package/dist/templates/__when_formatting_prettier__/.prettierrc +7 -0
  43. package/dist/templates/__when_formatting_stylelint__/.stylelintrc.json +3 -0
  44. package/dist/templates/__when_linting_biome__/biome.json +19 -0
  45. package/dist/templates/__when_linting_eslint__/eslint.config.js.ejs +42 -0
  46. package/dist/templates/__when_serverState_rtk-query__/src/store/postsApi.ts.ejs +19 -0
  47. package/dist/templates/__when_stateManagement_context__/src/store/context.tsx.ejs +57 -0
  48. package/dist/templates/__when_styling_tailwind__/postcss.config.js +6 -0
  49. package/dist/templates/__when_styling_tailwind__/tailwind.config.js.ejs +23 -0
  50. package/dist/templates/__when_unitTesting_jest__/jest.config.json.ejs +11 -0
  51. package/dist/templates/__when_unitTesting_jest__/tests/App.test.tsx.ejs +13 -0
  52. package/dist/templates/__when_unitTesting_jest__/tests/setup.ts.ejs +1 -0
  53. package/dist/templates/__when_unitTesting_jest__/tests/styleMock.ts.ejs +1 -0
  54. package/dist/templates/__when_unitTesting_rtl__/tests/App.test.tsx.ejs +13 -0
  55. package/dist/templates/__when_unitTesting_vitest__/tests/App.test.tsx.ejs +16 -0
  56. package/dist/templates/__when_unitTesting_vitest__/tests/setup.ts.ejs +1 -0
  57. package/dist/templates/__when_visualTesting_storybook__/.storybook/main.js.ejs +11 -0
  58. package/dist/templates/__when_visualTesting_storybook__/.storybook/preview.js +8 -0
  59. package/dist/templates/__when_visualTesting_storybook__/src/components/ui/UiButton.stories.tsx.ejs +15 -0
  60. package/dist/templates/commitlint.config.js +3 -0
  61. package/dist/templates/docs/architecture.md.ejs +74 -0
  62. package/dist/templates/docs/best-practices.md.ejs +56 -0
  63. package/dist/templates/docs/examples/README.md.ejs +14 -0
  64. package/dist/templates/docs/examples/api.md.ejs +17 -0
  65. package/dist/templates/docs/examples/data-fetching.md.ejs +18 -0
  66. package/dist/templates/docs/examples/forms.md.ejs +18 -0
  67. package/dist/templates/docs/examples/state.md.ejs +17 -0
  68. package/dist/templates/docs/examples/styling.md.ejs +23 -0
  69. package/dist/templates/docs/examples/testing.md.ejs +27 -0
  70. package/dist/templates/docs/getting-started.md.ejs +55 -0
  71. package/dist/templates/docs/selected-stack.md.ejs +55 -0
  72. package/dist/templates/index.html.ejs +19 -0
  73. package/dist/templates/public/vite.svg +4 -0
  74. package/dist/templates/src/app/App.tsx.ejs +71 -0
  75. package/dist/templates/src/app/providers.tsx.ejs +93 -0
  76. package/dist/templates/src/assets/.gitkeep +0 -0
  77. package/dist/templates/src/components/StackBadge.tsx.ejs +15 -0
  78. package/dist/templates/src/components/layout/AppLayout.tsx.ejs +64 -0
  79. package/dist/templates/src/components/ui/Toast.tsx.ejs +61 -0
  80. package/dist/templates/src/components/ui/UiButton.tsx.ejs +168 -0
  81. package/dist/templates/src/config/env.ts.ejs +18 -0
  82. package/dist/templates/src/features/counter/CounterPanel.tsx.ejs +66 -0
  83. package/dist/templates/src/features/feedback/FeedbackForm.tsx.ejs +373 -0
  84. package/dist/templates/src/features/posts/PostsPanel.tsx.ejs +91 -0
  85. package/dist/templates/src/hooks/useMounted.ts.ejs +15 -0
  86. package/dist/templates/src/lib/cn.ts.ejs +12 -0
  87. package/dist/templates/src/lib/monitoring.ts.ejs +66 -0
  88. package/dist/templates/src/lib/validation.ts.ejs +81 -0
  89. package/dist/templates/src/main.tsx.ejs +22 -0
  90. package/dist/templates/src/routes/AboutPage.tsx.ejs +30 -0
  91. package/dist/templates/src/routes/HomePage.tsx.ejs +47 -0
  92. package/dist/templates/src/services/api.ts.ejs +84 -0
  93. package/dist/templates/src/store/index.ts.ejs +80 -0
  94. package/dist/templates/src/styles/global.css.ejs +457 -0
  95. package/dist/templates/src/types/index.ts.ejs +7 -0
  96. package/dist/templates/src/utils/format.ts.ejs +3 -0
  97. package/dist/types.d.ts +46 -0
  98. package/dist/types.d.ts.map +1 -0
  99. package/dist/types.js +2 -0
  100. package/dist/types.js.map +1 -0
  101. package/dist/utils/logger.d.ts +12 -0
  102. package/dist/utils/logger.d.ts.map +1 -0
  103. package/dist/utils/logger.js +31 -0
  104. package/dist/utils/logger.js.map +1 -0
  105. package/dist/utils/validate.d.ts +3 -0
  106. package/dist/utils/validate.d.ts.map +1 -0
  107. package/dist/utils/validate.js +24 -0
  108. package/dist/utils/validate.js.map +1 -0
  109. package/package.json +62 -0
  110. package/templates/.env.example.ejs +21 -0
  111. package/templates/.husky/commit-msg +2 -0
  112. package/templates/.husky/pre-commit +2 -0
  113. package/templates/README.md.ejs +169 -0
  114. package/templates/__js__/jsconfig.json +9 -0
  115. package/templates/__ts__/src/vite-env.d.ts +16 -0
  116. package/templates/__ts__/tsconfig.json +24 -0
  117. package/templates/__when_buildTool_esbuild__/scripts/esbuild.build.mjs.ejs +23 -0
  118. package/templates/__when_buildTool_esbuild__/scripts/esbuild.dev.mjs.ejs +48 -0
  119. package/templates/__when_buildTool_parcel__/.parcelrc +9 -0
  120. package/templates/__when_buildTool_rollup__/rollup.config.js.ejs +33 -0
  121. package/templates/__when_buildTool_rspack__/rspack.config.js.ejs +36 -0
  122. package/templates/__when_buildTool_vite__/vite.config.ts.ejs +37 -0
  123. package/templates/__when_buildTool_webpack__/webpack.config.js.ejs +68 -0
  124. package/templates/__when_e2eTesting_cypress__/cypress/e2e/home.cy.ts.ejs +6 -0
  125. package/templates/__when_e2eTesting_cypress__/cypress.config.ts.ejs +8 -0
  126. package/templates/__when_e2eTesting_playwright__/playwright.config.ts.ejs +16 -0
  127. package/templates/__when_e2eTesting_playwright__/tests/e2e/home.spec.ts.ejs +6 -0
  128. package/templates/__when_formatting_prettier__/.prettierrc +7 -0
  129. package/templates/__when_formatting_stylelint__/.stylelintrc.json +3 -0
  130. package/templates/__when_linting_biome__/biome.json +19 -0
  131. package/templates/__when_linting_eslint__/eslint.config.js.ejs +42 -0
  132. package/templates/__when_serverState_rtk-query__/src/store/postsApi.ts.ejs +19 -0
  133. package/templates/__when_stateManagement_context__/src/store/context.tsx.ejs +57 -0
  134. package/templates/__when_styling_tailwind__/postcss.config.js +6 -0
  135. package/templates/__when_styling_tailwind__/tailwind.config.js.ejs +23 -0
  136. package/templates/__when_unitTesting_jest__/jest.config.json.ejs +11 -0
  137. package/templates/__when_unitTesting_jest__/tests/App.test.tsx.ejs +13 -0
  138. package/templates/__when_unitTesting_jest__/tests/setup.ts.ejs +1 -0
  139. package/templates/__when_unitTesting_jest__/tests/styleMock.ts.ejs +1 -0
  140. package/templates/__when_unitTesting_rtl__/tests/App.test.tsx.ejs +13 -0
  141. package/templates/__when_unitTesting_vitest__/tests/App.test.tsx.ejs +16 -0
  142. package/templates/__when_unitTesting_vitest__/tests/setup.ts.ejs +1 -0
  143. package/templates/__when_visualTesting_storybook__/.storybook/main.js.ejs +11 -0
  144. package/templates/__when_visualTesting_storybook__/.storybook/preview.js +8 -0
  145. package/templates/__when_visualTesting_storybook__/src/components/ui/UiButton.stories.tsx.ejs +15 -0
  146. package/templates/commitlint.config.js +3 -0
  147. package/templates/docs/architecture.md.ejs +74 -0
  148. package/templates/docs/best-practices.md.ejs +56 -0
  149. package/templates/docs/examples/README.md.ejs +14 -0
  150. package/templates/docs/examples/api.md.ejs +17 -0
  151. package/templates/docs/examples/data-fetching.md.ejs +18 -0
  152. package/templates/docs/examples/forms.md.ejs +18 -0
  153. package/templates/docs/examples/state.md.ejs +17 -0
  154. package/templates/docs/examples/styling.md.ejs +23 -0
  155. package/templates/docs/examples/testing.md.ejs +27 -0
  156. package/templates/docs/getting-started.md.ejs +55 -0
  157. package/templates/docs/selected-stack.md.ejs +55 -0
  158. package/templates/index.html.ejs +19 -0
  159. package/templates/public/vite.svg +4 -0
  160. package/templates/src/app/App.tsx.ejs +71 -0
  161. package/templates/src/app/providers.tsx.ejs +93 -0
  162. package/templates/src/assets/.gitkeep +0 -0
  163. package/templates/src/components/StackBadge.tsx.ejs +15 -0
  164. package/templates/src/components/layout/AppLayout.tsx.ejs +64 -0
  165. package/templates/src/components/ui/Toast.tsx.ejs +61 -0
  166. package/templates/src/components/ui/UiButton.tsx.ejs +168 -0
  167. package/templates/src/config/env.ts.ejs +18 -0
  168. package/templates/src/features/counter/CounterPanel.tsx.ejs +66 -0
  169. package/templates/src/features/feedback/FeedbackForm.tsx.ejs +373 -0
  170. package/templates/src/features/posts/PostsPanel.tsx.ejs +91 -0
  171. package/templates/src/hooks/useMounted.ts.ejs +15 -0
  172. package/templates/src/lib/cn.ts.ejs +12 -0
  173. package/templates/src/lib/monitoring.ts.ejs +66 -0
  174. package/templates/src/lib/validation.ts.ejs +81 -0
  175. package/templates/src/main.tsx.ejs +22 -0
  176. package/templates/src/routes/AboutPage.tsx.ejs +30 -0
  177. package/templates/src/routes/HomePage.tsx.ejs +47 -0
  178. package/templates/src/services/api.ts.ejs +84 -0
  179. package/templates/src/store/index.ts.ejs +80 -0
  180. package/templates/src/styles/global.css.ejs +457 -0
  181. package/templates/src/types/index.ts.ejs +7 -0
  182. package/templates/src/utils/format.ts.ejs +3 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 create-react-starter-kit contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,119 @@
1
+ # create-react-starter-kit
2
+
3
+ Interactive CLI that scaffolds a **production-ready React app** from terminal prompts. Each answer shapes dependencies, configs, a working demo page, and documentation.
4
+
5
+ ## Install
6
+
7
+ ```bash
8
+ # Global
9
+ npm install -g create-react-starter-kit
10
+ create-react-starter-kit
11
+
12
+ # Or one-shot
13
+ npx create-react-starter-kit
14
+ ```
15
+
16
+ ## Usage
17
+
18
+ ### Interactive (default)
19
+
20
+ ```bash
21
+ create-react-starter-kit
22
+ ```
23
+
24
+ Answer questions one by one (build tool, language, router, state, data fetching, forms, styling, testing, and more). Press **Enter** to accept each default. Every project includes **Husky + lint-staged + commitlint**, a **feature-based** folder layout, and **`@/` path aliases**.
25
+
26
+ ### Non-interactive defaults
27
+
28
+ ```bash
29
+ create-react-starter-kit --defaults --name my-app
30
+ create-react-starter-kit -y --name my-app --dir ./apps/my-app --skip-install
31
+ ```
32
+
33
+ | Flag | Description |
34
+ |------|-------------|
35
+ | `-y`, `--yes`, `--defaults` | Use recommended defaults |
36
+ | `-n`, `--name <name>` | Project name |
37
+ | `-d`, `--dir <path>` | Output directory |
38
+ | `--skip-install` | Skip dependency install |
39
+ | `-h`, `--help` | Show help |
40
+
41
+ ## What gets generated
42
+
43
+ - Complete React app with navigation, layout, and demo panels
44
+ - Real examples for selected state, data fetching, forms, validation, UI, and API layers
45
+ - `docs/` with architecture, getting started, best practices, and stack notes
46
+ - Tooling configs (Vite/Webpack/Rspack/Parcel/esbuild/Rollup, ESLint/Biome, Prettier, tests, etc.)
47
+ - Husky pre-commit (lint-staged) + commit-msg (commitlint / Conventional Commits)
48
+ - Feature-based `src/` layout + `@/` path aliases (tsconfig + bundler)
49
+ - `README.md` tailored to the selected stack
50
+
51
+ ## Develop this package
52
+
53
+ ```bash
54
+ git clone <repo>
55
+ cd create-react-starter-kit
56
+ npm install
57
+ npm run build
58
+ npm start
59
+ # or
60
+ node bin/create-react-starter-kit.js --defaults --name demo --dir ./tmp-generated/demo --skip-install
61
+ ```
62
+
63
+ ### Scripts
64
+
65
+ | Script | Purpose |
66
+ |--------|---------|
67
+ | `npm run build` | Compile TypeScript and copy templates |
68
+ | `npm start` | Run the CLI |
69
+ | `npm run validate` | Build + generate a sample project under `tmp-generated/` |
70
+ | `npm run typecheck` | Typecheck without emit |
71
+
72
+ ### Local validation before publish
73
+
74
+ ```bash
75
+ npm run validate
76
+ ```
77
+
78
+ This generates `tmp-generated/validation-app` with default stack options and asserts key files exist. Optionally install and run that app:
79
+
80
+ ```bash
81
+ cd tmp-generated/validation-app
82
+ pnpm install
83
+ pnpm dev
84
+ ```
85
+
86
+ ## Package layout
87
+
88
+ ```text
89
+ bin/ CLI entry
90
+ src/ TypeScript source (prompts, generator, utils)
91
+ templates/ EJS templates for generated apps
92
+ scripts/ copy-templates + validate-cli
93
+ dist/ Compiled output (published)
94
+ ```
95
+
96
+ Templates use `__when_<key>_<value>__/` folders and EJS conditionals so only matching configs and examples are emitted.
97
+
98
+ ## Publishing to npm
99
+
100
+ 1. Update `version` in `package.json` (semver).
101
+ 2. Run `npm run validate` and smoke-test a generated app.
102
+ 3. Ensure you are logged in: `npm login`
103
+ 4. Publish:
104
+
105
+ ```bash
106
+ npm publish --access public
107
+ ```
108
+
109
+ 5. Verify:
110
+
111
+ ```bash
112
+ npx create-react-starter-kit@latest --help
113
+ ```
114
+
115
+ See [docs/PUBLISHING.md](docs/PUBLISHING.md) for a fuller checklist.
116
+
117
+ ## License
118
+
119
+ MIT
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env node
2
+ import { run } from '../dist/index.js';
3
+
4
+ run().catch((error) => {
5
+ console.error(error instanceof Error ? error.message : error);
6
+ process.exit(1);
7
+ });
@@ -0,0 +1,15 @@
1
+ import type { ProjectAnswers } from './types.js';
2
+ export declare function parseArgs(argv: string[]): {
3
+ defaults: boolean;
4
+ name?: string;
5
+ dir?: string;
6
+ skipInstall: boolean;
7
+ help: boolean;
8
+ };
9
+ export declare function printHelp(): void;
10
+ export declare function buildDefaultAnswers(options: {
11
+ name?: string;
12
+ dir?: string;
13
+ skipInstall?: boolean;
14
+ }): ProjectAnswers;
15
+ //# sourceMappingURL=cli-args.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-args.d.ts","sourceRoot":"","sources":["../src/cli-args.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAGjD,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG;IACzC,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,OAAO,CAAC;IACrB,IAAI,EAAE,OAAO,CAAC;CACf,CA8BA;AAED,wBAAgB,SAAS,IAAI,IAAI,CAchC;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,GAAG,cAAc,CA8BjB"}
@@ -0,0 +1,78 @@
1
+ import path from 'node:path';
2
+ import { resolveTargetDirectory } from './utils/validate.js';
3
+ export function parseArgs(argv) {
4
+ const args = argv.slice(2);
5
+ const result = {
6
+ defaults: false,
7
+ skipInstall: false,
8
+ help: false,
9
+ name: undefined,
10
+ dir: undefined,
11
+ };
12
+ for (let i = 0; i < args.length; i += 1) {
13
+ const arg = args[i];
14
+ if (arg === '--defaults' || arg === '-y' || arg === '--yes') {
15
+ result.defaults = true;
16
+ }
17
+ else if (arg === '--skip-install') {
18
+ result.skipInstall = true;
19
+ }
20
+ else if (arg === '--help' || arg === '-h') {
21
+ result.help = true;
22
+ }
23
+ else if (arg === '--name' || arg === '-n') {
24
+ result.name = args[i + 1];
25
+ i += 1;
26
+ }
27
+ else if (arg === '--dir' || arg === '-d') {
28
+ result.dir = args[i + 1];
29
+ i += 1;
30
+ }
31
+ else if (!arg.startsWith('-') && !result.name) {
32
+ result.name = arg;
33
+ }
34
+ }
35
+ return result;
36
+ }
37
+ export function printHelp() {
38
+ console.log(`
39
+ create-react-starter-kit
40
+
41
+ Usage:
42
+ create-react-starter-kit [project-name] [options]
43
+
44
+ Options:
45
+ -y, --yes, --defaults Use recommended defaults (non-interactive)
46
+ -n, --name <name> Project name
47
+ -d, --dir <path> Target directory
48
+ --skip-install Do not install dependencies
49
+ -h, --help Show help
50
+ `);
51
+ }
52
+ export function buildDefaultAnswers(options) {
53
+ const projectName = options.name?.trim() || 'my-react-app';
54
+ const targetDir = resolveTargetDirectory(process.cwd(), projectName, options.dir ?? path.join('.', projectName));
55
+ return {
56
+ projectName,
57
+ targetDir,
58
+ buildTool: 'vite',
59
+ language: 'typescript',
60
+ router: 'react-router',
61
+ stateManagement: 'redux',
62
+ serverState: 'rtk-query',
63
+ forms: 'react-hook-form',
64
+ validation: 'zod',
65
+ styling: 'tailwind',
66
+ uiLibrary: 'shadcn',
67
+ unitTesting: 'vitest',
68
+ e2eTesting: 'playwright',
69
+ visualTesting: 'storybook',
70
+ linting: 'eslint',
71
+ formatting: 'prettier',
72
+ apiLayer: 'axios',
73
+ packageManager: 'pnpm',
74
+ errorTracking: 'sentry',
75
+ installDependencies: !options.skipInstall,
76
+ };
77
+ }
78
+ //# sourceMappingURL=cli-args.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-args.js","sourceRoot":"","sources":["../src/cli-args.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAE7D,MAAM,UAAU,SAAS,CAAC,IAAc;IAOtC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC3B,MAAM,MAAM,GAAG;QACb,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE,KAAK;QAClB,IAAI,EAAE,KAAK;QACX,IAAI,EAAE,SAA+B;QACrC,GAAG,EAAE,SAA+B;KACrC,CAAC;IAEF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,GAAG,KAAK,YAAY,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;YAC5D,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;QACzB,CAAC;aAAM,IAAI,GAAG,KAAK,gBAAgB,EAAE,CAAC;YACpC,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC;QAC5B,CAAC;aAAM,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YAC5C,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;QACrB,CAAC;aAAM,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YAC5C,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC1B,CAAC,IAAI,CAAC,CAAC;QACT,CAAC;aAAM,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YAC3C,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACzB,CAAC,IAAI,CAAC,CAAC;QACT,CAAC;aAAM,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YAChD,MAAM,CAAC,IAAI,GAAG,GAAG,CAAC;QACpB,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;CAYb,CAAC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,OAInC;IACC,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,cAAc,CAAC;IAC3D,MAAM,SAAS,GAAG,sBAAsB,CACtC,OAAO,CAAC,GAAG,EAAE,EACb,WAAW,EACX,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAC3C,CAAC;IAEF,OAAO;QACL,WAAW;QACX,SAAS;QACT,SAAS,EAAE,MAAM;QACjB,QAAQ,EAAE,YAAY;QACtB,MAAM,EAAE,cAAc;QACtB,eAAe,EAAE,OAAO;QACxB,WAAW,EAAE,WAAW;QACxB,KAAK,EAAE,iBAAiB;QACxB,UAAU,EAAE,KAAK;QACjB,OAAO,EAAE,UAAU;QACnB,SAAS,EAAE,QAAQ;QACnB,WAAW,EAAE,QAAQ;QACrB,UAAU,EAAE,YAAY;QACxB,aAAa,EAAE,WAAW;QAC1B,OAAO,EAAE,QAAQ;QACjB,UAAU,EAAE,UAAU;QACtB,QAAQ,EAAE,OAAO;QACjB,cAAc,EAAE,MAAM;QACtB,aAAa,EAAE,QAAQ;QACvB,mBAAmB,EAAE,CAAC,OAAO,CAAC,WAAW;KAC1C,CAAC;AACJ,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { ProjectAnswers } from '../types.js';
2
+ export interface DependencySets {
3
+ dependencies: Record<string, string>;
4
+ devDependencies: Record<string, string>;
5
+ }
6
+ export declare function resolveDependencies(answers: ProjectAnswers): DependencySets;
7
+ export declare function buildScripts(answers: ProjectAnswers): Record<string, string>;
8
+ //# sourceMappingURL=dependencies.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dependencies.d.ts","sourceRoot":"","sources":["../../src/generator/dependencies.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACzC;AAOD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,cAAc,GAAG,cAAc,CA+R3E;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAkF5E"}
@@ -0,0 +1,356 @@
1
+ const REACT = {
2
+ react: '^19.0.0',
3
+ 'react-dom': '^19.0.0',
4
+ };
5
+ export function resolveDependencies(answers) {
6
+ const dependencies = { ...REACT };
7
+ const devDependencies = {};
8
+ const isTs = answers.language === 'typescript';
9
+ // Build tools
10
+ switch (answers.buildTool) {
11
+ case 'vite':
12
+ dependencies['@vitejs/plugin-react'] = '^4.3.4';
13
+ // plugin is typically a dep for simplicity in scaffolds; keep as dep so vite works
14
+ delete dependencies['@vitejs/plugin-react'];
15
+ devDependencies['vite'] = '^6.2.2';
16
+ devDependencies['@vitejs/plugin-react'] = '^4.3.4';
17
+ break;
18
+ case 'webpack':
19
+ devDependencies['webpack'] = '^5.98.0';
20
+ devDependencies['webpack-cli'] = '^6.0.1';
21
+ devDependencies['webpack-dev-server'] = '^5.2.0';
22
+ devDependencies['html-webpack-plugin'] = '^5.6.3';
23
+ devDependencies['css-loader'] = '^7.1.2';
24
+ devDependencies['style-loader'] = '^4.0.0';
25
+ devDependencies['babel-loader'] = '^9.2.1';
26
+ devDependencies['@babel/core'] = '^7.26.10';
27
+ devDependencies['@babel/preset-env'] = '^7.26.9';
28
+ devDependencies['@babel/preset-react'] = '^7.26.3';
29
+ if (isTs) {
30
+ devDependencies['@babel/preset-typescript'] = '^7.26.0';
31
+ devDependencies['ts-loader'] = '^9.5.2';
32
+ }
33
+ break;
34
+ case 'rspack':
35
+ devDependencies['@rspack/core'] = '^1.2.8';
36
+ devDependencies['@rspack/cli'] = '^1.2.8';
37
+ devDependencies['@rspack/plugin-react-refresh'] = '^1.0.1';
38
+ devDependencies['html-rspack-plugin'] = '^6.0.2';
39
+ break;
40
+ case 'parcel':
41
+ devDependencies['parcel'] = '^2.14.1';
42
+ break;
43
+ case 'esbuild':
44
+ devDependencies['esbuild'] = '^0.25.1';
45
+ break;
46
+ case 'rollup':
47
+ devDependencies['rollup'] = '^4.35.0';
48
+ devDependencies['@rollup/plugin-node-resolve'] = '^16.0.1';
49
+ devDependencies['@rollup/plugin-commonjs'] = '^28.0.3';
50
+ devDependencies['@rollup/plugin-replace'] = '^6.0.2';
51
+ devDependencies['@rollup/plugin-alias'] = '^5.1.1';
52
+ if (isTs) {
53
+ devDependencies['@rollup/plugin-typescript'] = '^12.1.2';
54
+ }
55
+ devDependencies['rollup-plugin-postcss'] = '^4.0.2';
56
+ break;
57
+ }
58
+ if (isTs) {
59
+ devDependencies['typescript'] = '^5.8.2';
60
+ devDependencies['@types/react'] = '^19.0.10';
61
+ devDependencies['@types/react-dom'] = '^19.0.4';
62
+ }
63
+ // Router
64
+ if (answers.router === 'react-router') {
65
+ dependencies['react-router-dom'] = '^7.3.0';
66
+ }
67
+ else {
68
+ dependencies['@tanstack/react-router'] = '^1.114.25';
69
+ }
70
+ // State
71
+ switch (answers.stateManagement) {
72
+ case 'redux':
73
+ dependencies['@reduxjs/toolkit'] = '^2.6.1';
74
+ dependencies['react-redux'] = '^9.2.0';
75
+ break;
76
+ case 'zustand':
77
+ dependencies['zustand'] = '^5.0.3';
78
+ break;
79
+ case 'jotai':
80
+ dependencies['jotai'] = '^2.12.2';
81
+ break;
82
+ }
83
+ // Server state
84
+ switch (answers.serverState) {
85
+ case 'tanstack-query':
86
+ dependencies['@tanstack/react-query'] = '^5.68.0';
87
+ break;
88
+ case 'swr':
89
+ dependencies['swr'] = '^2.3.3';
90
+ break;
91
+ case 'rtk-query':
92
+ // RTK Query is only offered when Redux Toolkit is selected.
93
+ break;
94
+ }
95
+ // Forms
96
+ switch (answers.forms) {
97
+ case 'react-hook-form':
98
+ dependencies['react-hook-form'] = '^7.54.2';
99
+ if (answers.validation === 'zod') {
100
+ dependencies['@hookform/resolvers'] = '^4.1.3';
101
+ }
102
+ break;
103
+ case 'formik':
104
+ dependencies['formik'] = '^2.4.6';
105
+ break;
106
+ case 'tanstack-form':
107
+ dependencies['@tanstack/react-form'] = '^1.1.0';
108
+ break;
109
+ }
110
+ // Validation
111
+ switch (answers.validation) {
112
+ case 'zod':
113
+ dependencies['zod'] = '^3.24.2';
114
+ break;
115
+ case 'yup':
116
+ dependencies['yup'] = '^1.6.1';
117
+ break;
118
+ case 'valibot':
119
+ dependencies['valibot'] = '^1.0.0';
120
+ break;
121
+ case 'joi':
122
+ dependencies['joi'] = '^17.13.3';
123
+ break;
124
+ }
125
+ // Styling
126
+ switch (answers.styling) {
127
+ case 'tailwind':
128
+ devDependencies['tailwindcss'] = '^3.4.17';
129
+ devDependencies['postcss'] = '^8.5.3';
130
+ devDependencies['autoprefixer'] = '^10.4.21';
131
+ break;
132
+ case 'styled-components':
133
+ dependencies['styled-components'] = '^6.1.15';
134
+ if (isTs) {
135
+ devDependencies['@types/styled-components'] = '^5.1.34';
136
+ }
137
+ break;
138
+ case 'sass':
139
+ devDependencies['sass'] = '^1.85.1';
140
+ break;
141
+ }
142
+ // UI libraries
143
+ switch (answers.uiLibrary) {
144
+ case 'mui':
145
+ dependencies['@mui/material'] = '^6.4.7';
146
+ dependencies['@emotion/react'] = '^11.14.0';
147
+ dependencies['@emotion/styled'] = '^11.14.0';
148
+ dependencies['@mui/icons-material'] = '^6.4.7';
149
+ break;
150
+ case 'antd':
151
+ dependencies['antd'] = '^5.24.3';
152
+ break;
153
+ case 'chakra':
154
+ dependencies['@chakra-ui/react'] = '^3.13.0';
155
+ dependencies['@emotion/react'] = '^11.14.0';
156
+ dependencies['@emotion/styled'] = '^11.14.0';
157
+ dependencies['framer-motion'] = '^12.5.0';
158
+ break;
159
+ case 'shadcn':
160
+ dependencies['class-variance-authority'] = '^0.7.1';
161
+ dependencies['clsx'] = '^2.1.1';
162
+ dependencies['tailwind-merge'] = '^3.0.2';
163
+ dependencies['lucide-react'] = '^0.482.0';
164
+ if (answers.styling !== 'tailwind') {
165
+ devDependencies['tailwindcss'] = '^3.4.17';
166
+ devDependencies['postcss'] = '^8.5.3';
167
+ devDependencies['autoprefixer'] = '^10.4.21';
168
+ }
169
+ break;
170
+ case 'headless-ui':
171
+ dependencies['@headlessui/react'] = '^2.2.0';
172
+ dependencies['@heroicons/react'] = '^2.2.0';
173
+ break;
174
+ }
175
+ // Unit testing
176
+ switch (answers.unitTesting) {
177
+ case 'vitest':
178
+ devDependencies['vitest'] = '^3.0.8';
179
+ devDependencies['@testing-library/react'] = '^16.2.0';
180
+ devDependencies['@testing-library/jest-dom'] = '^6.6.3';
181
+ devDependencies['@testing-library/user-event'] = '^14.6.1';
182
+ devDependencies['jsdom'] = '^26.0.0';
183
+ break;
184
+ case 'jest':
185
+ devDependencies['jest'] = '^29.7.0';
186
+ devDependencies['jest-environment-jsdom'] = '^29.7.0';
187
+ devDependencies['@testing-library/react'] = '^16.2.0';
188
+ devDependencies['@testing-library/jest-dom'] = '^6.6.3';
189
+ devDependencies['@testing-library/user-event'] = '^14.6.1';
190
+ if (isTs) {
191
+ devDependencies['ts-jest'] = '^29.2.6';
192
+ devDependencies['@types/jest'] = '^29.5.14';
193
+ }
194
+ break;
195
+ case 'rtl':
196
+ devDependencies['@testing-library/react'] = '^16.2.0';
197
+ devDependencies['@testing-library/jest-dom'] = '^6.6.3';
198
+ devDependencies['@testing-library/user-event'] = '^14.6.1';
199
+ break;
200
+ }
201
+ // E2E
202
+ switch (answers.e2eTesting) {
203
+ case 'playwright':
204
+ devDependencies['@playwright/test'] = '^1.51.0';
205
+ break;
206
+ case 'cypress':
207
+ devDependencies['cypress'] = '^14.2.0';
208
+ break;
209
+ }
210
+ // Visual
211
+ switch (answers.visualTesting) {
212
+ case 'storybook':
213
+ devDependencies['storybook'] = '^8.6.4';
214
+ devDependencies['@storybook/react'] = '^8.6.4';
215
+ if (answers.buildTool === 'vite' || answers.buildTool === 'esbuild') {
216
+ devDependencies['@storybook/react-vite'] = '^8.6.4';
217
+ }
218
+ else {
219
+ devDependencies['@storybook/react-webpack5'] = '^8.6.4';
220
+ }
221
+ break;
222
+ case 'chromatic':
223
+ devDependencies['chromatic'] = '^11.27.0';
224
+ break;
225
+ }
226
+ // Linting
227
+ if (answers.linting === 'eslint') {
228
+ devDependencies['eslint'] = '^9.22.0';
229
+ devDependencies['@eslint/js'] = '^9.22.0';
230
+ devDependencies['globals'] = '^16.0.0';
231
+ devDependencies['eslint-plugin-react'] = '^7.37.4';
232
+ devDependencies['eslint-plugin-react-hooks'] = '^5.2.0';
233
+ if (isTs) {
234
+ devDependencies['typescript-eslint'] = '^8.26.1';
235
+ }
236
+ if (answers.formatting === 'prettier') {
237
+ devDependencies['eslint-config-prettier'] = '^10.1.1';
238
+ }
239
+ }
240
+ else {
241
+ devDependencies['@biomejs/biome'] = '^1.9.4';
242
+ }
243
+ // Formatting
244
+ if (answers.formatting === 'prettier') {
245
+ devDependencies['prettier'] = '^3.5.3';
246
+ }
247
+ else {
248
+ devDependencies['stylelint'] = '^16.16.0';
249
+ devDependencies['stylelint-config-standard'] = '^37.0.0';
250
+ }
251
+ // API
252
+ if (answers.apiLayer === 'axios') {
253
+ dependencies['axios'] = '^1.8.3';
254
+ }
255
+ // Error tracking
256
+ switch (answers.errorTracking) {
257
+ case 'sentry':
258
+ dependencies['@sentry/react'] = '^9.5.0';
259
+ break;
260
+ case 'bugsnag':
261
+ dependencies['@bugsnag/js'] = '^8.2.0';
262
+ dependencies['@bugsnag/plugin-react'] = '^8.2.0';
263
+ break;
264
+ case 'logrocket':
265
+ dependencies['logrocket'] = '^9.0.2';
266
+ break;
267
+ case 'datadog':
268
+ dependencies['@datadog/browser-rum'] = '^6.4.0';
269
+ break;
270
+ }
271
+ // Git hooks — always included (Husky + lint-staged + commitlint)
272
+ devDependencies['husky'] = '^9.1.7';
273
+ devDependencies['lint-staged'] = '^15.5.0';
274
+ devDependencies['@commitlint/cli'] = '^19.8.0';
275
+ devDependencies['@commitlint/config-conventional'] = '^19.8.0';
276
+ return { dependencies, devDependencies };
277
+ }
278
+ export function buildScripts(answers) {
279
+ const scripts = {};
280
+ const isTs = answers.language === 'typescript';
281
+ const entry = isTs ? 'src/main.tsx' : 'src/main.jsx';
282
+ switch (answers.buildTool) {
283
+ case 'vite':
284
+ scripts.dev = 'vite';
285
+ scripts.build = 'vite build';
286
+ scripts.preview = 'vite preview';
287
+ break;
288
+ case 'webpack':
289
+ scripts.dev = 'webpack serve --mode development';
290
+ scripts.build = 'webpack --mode production';
291
+ break;
292
+ case 'rspack':
293
+ scripts.dev = 'rspack serve';
294
+ scripts.build = 'rspack build';
295
+ break;
296
+ case 'parcel':
297
+ scripts.dev = 'parcel index.html';
298
+ scripts.build = 'parcel build index.html';
299
+ break;
300
+ case 'esbuild':
301
+ scripts.dev = `node scripts/esbuild.dev.mjs`;
302
+ scripts.build = `node scripts/esbuild.build.mjs`;
303
+ break;
304
+ case 'rollup':
305
+ scripts.dev = 'rollup -c -w';
306
+ scripts.build = 'rollup -c';
307
+ break;
308
+ }
309
+ if (answers.linting === 'eslint') {
310
+ scripts.lint = isTs
311
+ ? 'eslint src --ext .ts,.tsx'
312
+ : 'eslint src --ext .js,.jsx';
313
+ }
314
+ else {
315
+ scripts.lint = 'biome check .';
316
+ scripts['lint:fix'] = 'biome check --write .';
317
+ }
318
+ if (answers.formatting === 'prettier') {
319
+ scripts.format = 'prettier --write .';
320
+ }
321
+ else {
322
+ scripts.format = 'stylelint "**/*.{css,scss}" --fix';
323
+ }
324
+ switch (answers.unitTesting) {
325
+ case 'vitest':
326
+ scripts.test = 'vitest run';
327
+ scripts['test:watch'] = 'vitest';
328
+ break;
329
+ case 'jest':
330
+ scripts.test = 'jest';
331
+ scripts['test:watch'] = 'jest --watch';
332
+ break;
333
+ case 'rtl':
334
+ scripts.test = 'echo "Configure your test runner for RTL"';
335
+ break;
336
+ }
337
+ if (answers.e2eTesting === 'playwright') {
338
+ scripts['test:e2e'] = 'playwright test';
339
+ }
340
+ else if (answers.e2eTesting === 'cypress') {
341
+ scripts['test:e2e'] = 'cypress run';
342
+ scripts['cypress:open'] = 'cypress open';
343
+ }
344
+ if (answers.visualTesting === 'storybook') {
345
+ scripts.storybook = 'storybook dev -p 6006';
346
+ scripts['build-storybook'] = 'storybook build';
347
+ }
348
+ else if (answers.visualTesting === 'chromatic') {
349
+ scripts.chromatic = 'chromatic --exit-zero-on-changes';
350
+ }
351
+ scripts.prepare = 'husky';
352
+ // silence unused
353
+ void entry;
354
+ return scripts;
355
+ }
356
+ //# sourceMappingURL=dependencies.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dependencies.js","sourceRoot":"","sources":["../../src/generator/dependencies.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { ProjectAnswers } from '../types.js';
2
+ export declare function getStackLabels(answers: ProjectAnswers): Record<string, string>;
3
+ export declare function generateProject(answers: ProjectAnswers): Promise<void>;
4
+ export declare function printSuccess(answers: ProjectAnswers): void;
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/generator/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAmB,MAAM,aAAa,CAAC;AAoInE,wBAAgB,cAAc,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAuB9E;AAwGD,wBAAsB,eAAe,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAwI5E;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CAoB1D"}