@idealyst/cli 1.0.89 → 1.0.91

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 (210) hide show
  1. package/dist/generators/index.js +3 -40
  2. package/dist/generators/index.js.map +1 -1
  3. package/dist/generators/init.js +273 -0
  4. package/dist/generators/init.js.map +1 -0
  5. package/dist/generators/utils.js +5 -0
  6. package/dist/generators/utils.js.map +1 -1
  7. package/dist/index.js +20 -202
  8. package/dist/index.js.map +1 -1
  9. package/dist/scripts/configure-react-native-monorepo.js +144 -0
  10. package/dist/scripts/configure-react-native-monorepo.js.map +1 -0
  11. package/dist/{templates/workspace → template}/README.md +66 -12
  12. package/dist/template/package.json +45 -0
  13. package/{templates → dist/template/packages}/api/package.json +3 -1
  14. package/{templates → dist/template/packages}/database/package.json +1 -1
  15. package/dist/{templates/native → template/packages/mobile}/babel.config.js +1 -0
  16. package/{templates/native → dist/template/packages/mobile}/metro.config.js +4 -4
  17. package/{templates/native → dist/template/packages/mobile}/package.json +5 -2
  18. package/{templates → dist/template/packages}/shared/package.json +2 -2
  19. package/{templates → dist/template/packages}/web/package.json +4 -1
  20. package/dist/types/generators/index.d.ts +1 -7
  21. package/dist/types/generators/init.d.ts +5 -0
  22. package/dist/types/scripts/configure-react-native-monorepo.d.ts +23 -0
  23. package/dist/types/types.d.ts +0 -4
  24. package/package.json +2 -2
  25. package/{templates/workspace → template}/README.md +66 -12
  26. package/template/package.json +45 -0
  27. package/{dist/templates → template/packages}/api/package.json +3 -1
  28. package/{dist/templates → template/packages}/database/package.json +1 -1
  29. package/{templates/native → template/packages/mobile}/babel.config.js +1 -0
  30. package/{dist/templates/native → template/packages/mobile}/metro.config.js +4 -4
  31. package/{dist/templates/native → template/packages/mobile}/package.json +5 -2
  32. package/{templates/native/src/App.tsx → template/packages/mobile/src/App-with-trpc-and-shared.tsx} +1 -1
  33. package/{dist/templates/native → template/packages/mobile}/src/App.tsx +1 -1
  34. package/{dist/templates → template/packages}/shared/package.json +2 -2
  35. package/{dist/templates → template/packages}/shared/src/components/App.tsx +8 -9
  36. package/{dist/templates → template/packages}/shared/src/components/HelloWorld.tsx +17 -20
  37. package/template/packages/shared/src/navigation/AppRouter.tsx +565 -0
  38. package/{dist/templates → template/packages}/web/package.json +4 -1
  39. package/{dist/templates/web/src/App.tsx → template/packages/web/src/App-with-trpc-and-shared.tsx} +1 -1
  40. package/{templates → template/packages}/web/src/App.tsx +1 -1
  41. package/dist/generators/api.js +0 -31
  42. package/dist/generators/api.js.map +0 -1
  43. package/dist/generators/database.js +0 -31
  44. package/dist/generators/database.js.map +0 -1
  45. package/dist/generators/fullstack.js +0 -418
  46. package/dist/generators/fullstack.js.map +0 -1
  47. package/dist/generators/native.js +0 -112
  48. package/dist/generators/native.js.map +0 -1
  49. package/dist/generators/shared.js +0 -29
  50. package/dist/generators/shared.js.map +0 -1
  51. package/dist/generators/web.js +0 -45
  52. package/dist/generators/web.js.map +0 -1
  53. package/dist/generators/workspace.js +0 -83
  54. package/dist/generators/workspace.js.map +0 -1
  55. package/dist/templates/shared/src/navigation/AppRouter.tsx +0 -98
  56. package/dist/templates/workspace/package.json +0 -35
  57. package/dist/types/generators/api.d.ts +0 -2
  58. package/dist/types/generators/database.d.ts +0 -2
  59. package/dist/types/generators/fullstack.d.ts +0 -2
  60. package/dist/types/generators/native.d.ts +0 -2
  61. package/dist/types/generators/shared.d.ts +0 -2
  62. package/dist/types/generators/web.d.ts +0 -2
  63. package/dist/types/generators/workspace.d.ts +0 -2
  64. package/templates/workspace/package.json +0 -38
  65. /package/dist/{templates/workspace → template}/.devcontainer/Dockerfile +0 -0
  66. /package/dist/{templates/workspace → template}/.devcontainer/devcontainer.json +0 -0
  67. /package/dist/{templates/workspace → template}/.devcontainer/docker-compose.yml +0 -0
  68. /package/dist/{templates/workspace → template}/.devcontainer/figma-mcp.sh +0 -0
  69. /package/dist/{templates/workspace → template}/.devcontainer/setup.sh +0 -0
  70. /package/dist/{templates/workspace → template}/.dockerignore +0 -0
  71. /package/dist/{templates/workspace → template}/.env.example +0 -0
  72. /package/dist/{templates/workspace → template}/DOCKER.md +0 -0
  73. /package/dist/{templates/workspace → template}/Dockerfile +0 -0
  74. /package/dist/{templates/workspace → template}/docker/nginx/prod.conf +0 -0
  75. /package/dist/{templates/workspace → template}/docker/nginx.conf +0 -0
  76. /package/dist/{templates/workspace → template}/docker/postgres/init.sql +0 -0
  77. /package/dist/{templates/workspace → template}/docker/prometheus/prometheus.yml +0 -0
  78. /package/dist/{templates/workspace → template}/docker-compose.prod.yml +0 -0
  79. /package/dist/{templates/workspace → template}/docker-compose.yml +0 -0
  80. /package/dist/{templates/workspace → template}/jest.config.js +0 -0
  81. /package/dist/{templates → template/packages}/api/.env.example +0 -0
  82. /package/dist/{templates → template/packages}/api/README.md +0 -0
  83. /package/dist/{templates → template/packages}/api/__tests__/api.test.ts +0 -0
  84. /package/dist/{templates → template/packages}/api/jest.config.js +0 -0
  85. /package/dist/{templates → template/packages}/api/jest.setup.js +0 -0
  86. /package/dist/{templates → template/packages}/api/src/context.ts +0 -0
  87. /package/dist/{templates → template/packages}/api/src/controllers/TestController.ts +0 -0
  88. /package/dist/{templates → template/packages}/api/src/index.ts +0 -0
  89. /package/dist/{templates → template/packages}/api/src/lib/crud.ts +0 -0
  90. /package/dist/{templates → template/packages}/api/src/lib/database.ts +0 -0
  91. /package/dist/{templates → template/packages}/api/src/router/index.ts +0 -0
  92. /package/dist/{templates → template/packages}/api/src/routers/test.ts +0 -0
  93. /package/dist/{templates → template/packages}/api/src/routers/user.example.ts +0 -0
  94. /package/dist/{templates → template/packages}/api/src/server.ts +0 -0
  95. /package/dist/{templates → template/packages}/api/src/trpc.ts +0 -0
  96. /package/dist/{templates → template/packages}/api/tsconfig.json +0 -0
  97. /package/dist/{templates → template/packages}/database/README.md +0 -0
  98. /package/dist/{templates → template/packages}/database/prisma/seed.ts +0 -0
  99. /package/dist/{templates → template/packages}/database/schema.prisma +0 -0
  100. /package/dist/{templates → template/packages}/database/src/index.ts +0 -0
  101. /package/dist/{templates → template/packages}/database/src/validators.ts +0 -0
  102. /package/dist/{templates → template/packages}/database/tsconfig.json +0 -0
  103. /package/dist/{templates/native → template/packages/mobile}/README.md +0 -0
  104. /package/dist/{templates/native → template/packages/mobile}/__tests__/App.test.tsx +0 -0
  105. /package/dist/{templates/native → template/packages/mobile}/__tests__/components.test.tsx +0 -0
  106. /package/dist/{templates/native → template/packages/mobile}/app.json +0 -0
  107. /package/dist/{templates/native → template/packages/mobile}/index.js +0 -0
  108. /package/dist/{templates/native → template/packages/mobile}/jest.config.js +0 -0
  109. /package/dist/{templates/native → template/packages/mobile}/jest.setup.js +0 -0
  110. /package/dist/{templates/native → template/packages/mobile}/src/App-with-trpc-and-shared.tsx +0 -0
  111. /package/dist/{templates/native → template/packages/mobile}/src/App-with-trpc.tsx +0 -0
  112. /package/{templates/native/src/App-with-trpc-and-shared.tsx → dist/template/packages/mobile/src/App.tsx} +0 -0
  113. /package/dist/{templates/native → template/packages/mobile}/src/utils/trpc.ts +0 -0
  114. /package/dist/{templates/native → template/packages/mobile}/tsconfig.json +0 -0
  115. /package/dist/{templates → template/packages}/shared/README.md +0 -0
  116. /package/dist/{templates → template/packages}/shared/__tests__/shared.test.ts +0 -0
  117. /package/dist/{templates → template/packages}/shared/jest.config.js +0 -0
  118. /package/{templates → dist/template/packages}/shared/src/components/App.tsx +0 -0
  119. /package/{templates → dist/template/packages}/shared/src/components/HelloWorld.tsx +0 -0
  120. /package/dist/{templates → template/packages}/shared/src/components/index.ts +0 -0
  121. /package/dist/{templates → template/packages}/shared/src/index.ts +0 -0
  122. /package/{templates → dist/template/packages}/shared/src/navigation/AppRouter.tsx +0 -0
  123. /package/dist/{templates → template/packages}/shared/src/trpc/client.ts +0 -0
  124. /package/dist/{templates → template/packages}/shared/tsconfig.json +0 -0
  125. /package/dist/{templates → template/packages}/web/README.md +0 -0
  126. /package/dist/{templates → template/packages}/web/__tests__/App.test.tsx +0 -0
  127. /package/dist/{templates → template/packages}/web/__tests__/components.test.tsx +0 -0
  128. /package/dist/{templates → template/packages}/web/index.html +0 -0
  129. /package/dist/{templates → template/packages}/web/jest.config.js +0 -0
  130. /package/dist/{templates → template/packages}/web/jest.setup.js +0 -0
  131. /package/dist/{templates → template/packages}/web/src/App-with-trpc-and-shared.tsx +0 -0
  132. /package/dist/{templates → template/packages}/web/src/App-with-trpc.tsx +0 -0
  133. /package/{templates/web/src/App-with-trpc-and-shared.tsx → dist/template/packages/web/src/App.tsx} +0 -0
  134. /package/dist/{templates → template/packages}/web/src/components/TestDemo.tsx +0 -0
  135. /package/dist/{templates → template/packages}/web/src/main.tsx +0 -0
  136. /package/dist/{templates → template/packages}/web/src/utils/trpc.ts +0 -0
  137. /package/dist/{templates → template/packages}/web/tsconfig.json +0 -0
  138. /package/dist/{templates → template/packages}/web/vite.config.ts +0 -0
  139. /package/dist/{templates/workspace → template}/setup.sh +0 -0
  140. /package/dist/{templates/workspace → template}/tsconfig.json +0 -0
  141. /package/{templates/workspace → template}/.devcontainer/Dockerfile +0 -0
  142. /package/{templates/workspace → template}/.devcontainer/devcontainer.json +0 -0
  143. /package/{templates/workspace → template}/.devcontainer/docker-compose.yml +0 -0
  144. /package/{templates/workspace → template}/.devcontainer/figma-mcp.sh +0 -0
  145. /package/{templates/workspace → template}/.devcontainer/setup.sh +0 -0
  146. /package/{templates/workspace → template}/.dockerignore +0 -0
  147. /package/{templates/workspace → template}/.env.example +0 -0
  148. /package/{templates/workspace → template}/.env.production +0 -0
  149. /package/{templates/workspace → template}/DOCKER.md +0 -0
  150. /package/{templates/workspace → template}/Dockerfile +0 -0
  151. /package/{templates/workspace → template}/docker/nginx/prod.conf +0 -0
  152. /package/{templates/workspace → template}/docker/nginx.conf +0 -0
  153. /package/{templates/workspace → template}/docker/postgres/init.sql +0 -0
  154. /package/{templates/workspace → template}/docker/prometheus/prometheus.yml +0 -0
  155. /package/{templates/workspace → template}/docker-compose.prod.yml +0 -0
  156. /package/{templates/workspace → template}/docker-compose.yml +0 -0
  157. /package/{templates/workspace → template}/jest.config.js +0 -0
  158. /package/{templates → template/packages}/api/.env.example +0 -0
  159. /package/{templates → template/packages}/api/README.md +0 -0
  160. /package/{templates → template/packages}/api/__tests__/api.test.ts +0 -0
  161. /package/{templates → template/packages}/api/jest.config.js +0 -0
  162. /package/{templates → template/packages}/api/jest.setup.js +0 -0
  163. /package/{templates → template/packages}/api/src/context.ts +0 -0
  164. /package/{templates → template/packages}/api/src/controllers/TestController.ts +0 -0
  165. /package/{templates → template/packages}/api/src/index.ts +0 -0
  166. /package/{templates → template/packages}/api/src/lib/crud.ts +0 -0
  167. /package/{templates → template/packages}/api/src/lib/database.ts +0 -0
  168. /package/{templates → template/packages}/api/src/router/index.ts +0 -0
  169. /package/{templates → template/packages}/api/src/routers/test.ts +0 -0
  170. /package/{templates → template/packages}/api/src/routers/user.example.ts +0 -0
  171. /package/{templates → template/packages}/api/src/server.ts +0 -0
  172. /package/{templates → template/packages}/api/src/trpc.ts +0 -0
  173. /package/{templates → template/packages}/api/tsconfig.json +0 -0
  174. /package/{templates → template/packages}/database/README.md +0 -0
  175. /package/{templates → template/packages}/database/prisma/seed.ts +0 -0
  176. /package/{templates → template/packages}/database/schema.prisma +0 -0
  177. /package/{templates → template/packages}/database/src/index.ts +0 -0
  178. /package/{templates → template/packages}/database/src/validators.ts +0 -0
  179. /package/{templates → template/packages}/database/tsconfig.json +0 -0
  180. /package/{templates/native → template/packages/mobile}/README.md +0 -0
  181. /package/{templates/native → template/packages/mobile}/__tests__/App.test.tsx +0 -0
  182. /package/{templates/native → template/packages/mobile}/__tests__/components.test.tsx +0 -0
  183. /package/{templates/native → template/packages/mobile}/app.json +0 -0
  184. /package/{templates/native → template/packages/mobile}/index.js +0 -0
  185. /package/{templates/native → template/packages/mobile}/jest.config.js +0 -0
  186. /package/{templates/native → template/packages/mobile}/jest.setup.js +0 -0
  187. /package/{templates/native → template/packages/mobile}/src/App-with-trpc.tsx +0 -0
  188. /package/{templates/native → template/packages/mobile}/src/utils/trpc.ts +0 -0
  189. /package/{templates/native → template/packages/mobile}/tsconfig.json +0 -0
  190. /package/{templates → template/packages}/shared/README.md +0 -0
  191. /package/{templates → template/packages}/shared/__tests__/shared.test.ts +0 -0
  192. /package/{templates → template/packages}/shared/jest.config.js +0 -0
  193. /package/{templates → template/packages}/shared/src/components/index.ts +0 -0
  194. /package/{templates → template/packages}/shared/src/index.ts +0 -0
  195. /package/{templates → template/packages}/shared/src/trpc/client.ts +0 -0
  196. /package/{templates → template/packages}/shared/tsconfig.json +0 -0
  197. /package/{templates → template/packages}/web/README.md +0 -0
  198. /package/{templates → template/packages}/web/__tests__/App.test.tsx +0 -0
  199. /package/{templates → template/packages}/web/__tests__/components.test.tsx +0 -0
  200. /package/{templates → template/packages}/web/index.html +0 -0
  201. /package/{templates → template/packages}/web/jest.config.js +0 -0
  202. /package/{templates → template/packages}/web/jest.setup.js +0 -0
  203. /package/{templates → template/packages}/web/src/App-with-trpc.tsx +0 -0
  204. /package/{templates → template/packages}/web/src/components/TestDemo.tsx +0 -0
  205. /package/{templates → template/packages}/web/src/main.tsx +0 -0
  206. /package/{templates → template/packages}/web/src/utils/trpc.ts +0 -0
  207. /package/{templates → template/packages}/web/tsconfig.json +0 -0
  208. /package/{templates → template/packages}/web/vite.config.ts +0 -0
  209. /package/{templates/workspace → template}/setup.sh +0 -0
  210. /package/{templates/workspace → template}/tsconfig.json +0 -0
@@ -1,418 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.generateFullStackWorkspace = generateFullStackWorkspace;
7
- const path_1 = __importDefault(require("path"));
8
- const fs_extra_1 = __importDefault(require("fs-extra"));
9
- const chalk_1 = __importDefault(require("chalk"));
10
- const child_process_1 = require("child_process");
11
- const util_1 = require("util");
12
- const utils_1 = require("./utils");
13
- const database_1 = require("./database");
14
- const api_1 = require("./api");
15
- const web_1 = require("./web");
16
- const native_1 = require("./native");
17
- const shared_1 = require("./shared");
18
- async function generateFullStackWorkspace(options) {
19
- const { name, directory, skipInstall, figmaToken } = options;
20
- if (!(0, utils_1.validateProjectName)(name)) {
21
- throw new Error(`Invalid project name: ${name}`);
22
- }
23
- console.log(chalk_1.default.blue(`🚀 Creating Full-Stack Idealyst workspace: ${name}`));
24
- console.log(chalk_1.default.gray(' This will generate a comhttps://open.spotify.com/track/0jVTol3hCYkU8NVVtMQjUS?si=f76828854a174463plete workspace with all packages integrated'));
25
- const projectPath = path_1.default.join(directory, name);
26
- const templatePath = (0, utils_1.getTemplatePath)('workspace');
27
- const templateData = (0, utils_1.getTemplateData)(name, `Full-stack Idealyst Framework workspace`, undefined, name);
28
- // Step 1: Create base workspace
29
- console.log(chalk_1.default.blue('📦 Setting up workspace structure...'));
30
- await (0, utils_1.copyTemplate)(templatePath, projectPath, templateData);
31
- // Handle devcontainer setup
32
- const devcontainerDir = path_1.default.join(projectPath, '.devcontainer');
33
- const envPath = path_1.default.join(devcontainerDir, '.env');
34
- const envContent = figmaToken
35
- ? `# Figma Integration\nFIGMA_ACCESS_TOKEN=${figmaToken.trim()}\n`
36
- : `# Figma Integration\nFIGMA_ACCESS_TOKEN=\n`;
37
- await require('fs-extra').writeFile(envPath, envContent);
38
- // Step 2: Generate all packages with integration
39
- console.log(chalk_1.default.blue('🗄️ Creating database package...'));
40
- await (0, database_1.generateDatabaseProject)({
41
- name: 'database',
42
- type: 'database',
43
- directory: projectPath,
44
- skipInstall: true
45
- });
46
- console.log(chalk_1.default.blue('🚀 Creating API server...'));
47
- await (0, api_1.generateApiProject)({
48
- name: 'api',
49
- type: 'api',
50
- directory: projectPath,
51
- skipInstall: true,
52
- withTrpc: true
53
- });
54
- console.log(chalk_1.default.blue('📦 Creating shared components...'));
55
- await (0, shared_1.generateSharedLibrary)({
56
- name: 'shared',
57
- type: 'shared',
58
- directory: projectPath,
59
- skipInstall: true
60
- });
61
- console.log(chalk_1.default.blue('🌐 Creating web application...'));
62
- await (0, web_1.generateWebProject)({
63
- name: 'web',
64
- type: 'web',
65
- directory: projectPath,
66
- skipInstall: true,
67
- withTrpc: true
68
- });
69
- console.log(chalk_1.default.blue('📱 Creating mobile application...'));
70
- await (0, native_1.generateNativeProject)({
71
- name: 'mobile',
72
- type: 'native',
73
- directory: projectPath,
74
- skipInstall: true,
75
- appName: templateData.appName || name,
76
- withTrpc: true
77
- });
78
- // Step 3: Create integration files and update app files
79
- console.log(chalk_1.default.blue('🔗 Setting up package integration...'));
80
- await setupPackageIntegration(projectPath, templateData);
81
- await updateAppFilesWithSharedComponents(projectPath, templateData);
82
- // Step 4: Install dependencies
83
- await (0, utils_1.installDependencies)(projectPath, skipInstall);
84
- // Step 5: Generate database client
85
- if (!skipInstall) {
86
- console.log(chalk_1.default.blue('🗄️ Generating database client...'));
87
- await generateDatabaseClient(projectPath, templateData);
88
- }
89
- console.log(chalk_1.default.green('✅ Full-stack workspace created successfully!'));
90
- console.log(chalk_1.default.blue('📋 Your workspace includes:'));
91
- console.log(chalk_1.default.white(' • 🗄️ Database package with Prisma'));
92
- console.log(chalk_1.default.white(' • 🚀 API server with tRPC'));
93
- console.log(chalk_1.default.white(' • 🌐 React web app'));
94
- console.log(chalk_1.default.white(' • 📱 React Native mobile app'));
95
- console.log(chalk_1.default.white(' • 📦 Shared component library'));
96
- console.log(chalk_1.default.white(' • 🔗 All packages pre-integrated'));
97
- console.log(chalk_1.default.white(' • 📊 Sample data and demo features'));
98
- console.log('');
99
- console.log(chalk_1.default.green('🚀 Quick start:'));
100
- console.log(chalk_1.default.white(` cd ${name}`));
101
- console.log(chalk_1.default.white(' yarn dev # Start all development servers'));
102
- console.log(chalk_1.default.white(' yarn web # Start web app only'));
103
- console.log(chalk_1.default.white(' yarn mobile # Start mobile app'));
104
- console.log(chalk_1.default.white(' yarn api # Start API server only'));
105
- console.log('');
106
- console.log(chalk_1.default.gray('💡 Check README.md for detailed setup instructions'));
107
- if (figmaToken) {
108
- console.log(chalk_1.default.blue('🎨 Figma integration configured in .devcontainer/.env'));
109
- }
110
- else {
111
- console.log(chalk_1.default.gray('💡 Tip: Add Figma integration later by editing .devcontainer/.env'));
112
- }
113
- }
114
- /**
115
- * Generates the database client using Prisma
116
- */
117
- async function generateDatabaseClient(projectPath, templateData) {
118
- const execAsync = (0, util_1.promisify)(child_process_1.exec);
119
- try {
120
- console.log(chalk_1.default.gray(' Running db:generate to create Prisma client...'));
121
- // Run the db:generate command in the project directory
122
- const { stdout, stderr } = await execAsync('yarn db:generate', {
123
- cwd: projectPath,
124
- env: { ...process.env }
125
- });
126
- if (stderr && !stderr.includes('warning')) {
127
- console.log(chalk_1.default.yellow(' Database generation warnings:'));
128
- console.log(chalk_1.default.gray(` ${stderr.trim()}`));
129
- }
130
- console.log(chalk_1.default.green(' ✅ Database client generated successfully!'));
131
- }
132
- catch (error) {
133
- console.log(chalk_1.default.yellow(' ⚠️ Database client generation failed (this is normal on first setup)'));
134
- console.log(chalk_1.default.gray(' You can run "yarn db:generate" manually after setting up your database'));
135
- if (error.stdout) {
136
- console.log(chalk_1.default.gray(` ${error.stdout.trim()}`));
137
- }
138
- if (error.stderr) {
139
- console.log(chalk_1.default.gray(` ${error.stderr.trim()}`));
140
- }
141
- }
142
- }
143
- /**
144
- * Updates App files to use enhanced versions with shared components
145
- */
146
- async function updateAppFilesWithSharedComponents(projectPath, templateData) {
147
- const templateDir = (0, utils_1.getTemplatePath)('web');
148
- // Update web App.tsx with enhanced version
149
- const webAppSourcePath = path_1.default.join(templateDir, '..', 'web', 'src', 'App-with-trpc-and-shared.tsx');
150
- const webAppTargetPath = path_1.default.join(projectPath, 'packages', 'web', 'src', 'App.tsx');
151
- if (await fs_extra_1.default.pathExists(webAppSourcePath)) {
152
- let webAppContent = await fs_extra_1.default.readFile(webAppSourcePath, 'utf8');
153
- // Simple template variable replacement
154
- webAppContent = webAppContent.replace(/\{\{workspaceScope\}\}/g, templateData.workspaceScope || templateData.projectName);
155
- webAppContent = webAppContent.replace(/\{\{projectName\}\}/g, templateData.projectName);
156
- webAppContent = webAppContent.replace(/\{\{appName\}\}/g, templateData.appName || templateData.projectName);
157
- await fs_extra_1.default.writeFile(webAppTargetPath, webAppContent);
158
- }
159
- // Update API database.ts with workspace scope for client import
160
- const databaseTsPath = path_1.default.join(projectPath, 'packages', 'api', 'src', 'lib', 'database.ts');
161
- if (await fs_extra_1.default.pathExists(databaseTsPath)) {
162
- let databaseContent = await fs_extra_1.default.readFile(databaseTsPath, 'utf8');
163
- databaseContent = databaseContent.replace(/\{\{workspaceScope\}\}/g, templateData.workspaceScope || templateData.projectName);
164
- await fs_extra_1.default.writeFile(databaseTsPath, databaseContent);
165
- }
166
- // Update web tRPC utils with workspace scope for API types
167
- const webTrpcUtilsPath = path_1.default.join(projectPath, 'packages', 'web', 'src', 'utils', 'trpc.ts');
168
- if (await fs_extra_1.default.pathExists(webTrpcUtilsPath)) {
169
- let trpcContent = await fs_extra_1.default.readFile(webTrpcUtilsPath, 'utf8');
170
- trpcContent = trpcContent.replace(/\{\{workspaceScope\}\}/g, templateData.workspaceScope || templateData.projectName);
171
- await fs_extra_1.default.writeFile(webTrpcUtilsPath, trpcContent);
172
- }
173
- // Update mobile tRPC utils with workspace scope for API types
174
- const mobileTrpcUtilsPath = path_1.default.join(projectPath, 'packages', 'mobile', 'src', 'utils', 'trpc.ts');
175
- if (await fs_extra_1.default.pathExists(mobileTrpcUtilsPath)) {
176
- let trpcContent = await fs_extra_1.default.readFile(mobileTrpcUtilsPath, 'utf8');
177
- trpcContent = trpcContent.replace(/\{\{workspaceScope\}\}/g, templateData.workspaceScope || templateData.projectName);
178
- await fs_extra_1.default.writeFile(mobileTrpcUtilsPath, trpcContent);
179
- }
180
- // Update package.json files to include shared dependencies
181
- await updatePackageJsonWithSharedDeps(projectPath, templateData.workspaceScope || templateData.projectName);
182
- }
183
- /**
184
- * Updates package.json files to include shared and database dependencies
185
- */
186
- async function updatePackageJsonWithSharedDeps(projectPath, workspaceScope) {
187
- // Update web package.json
188
- const webPackageJsonPath = path_1.default.join(projectPath, 'packages', 'web', 'package.json');
189
- if (await fs_extra_1.default.pathExists(webPackageJsonPath)) {
190
- const webPackageJson = await fs_extra_1.default.readJSON(webPackageJsonPath);
191
- webPackageJson.dependencies = {
192
- ...webPackageJson.dependencies,
193
- [`@${workspaceScope}/shared`]: 'workspace:*',
194
- [`@${workspaceScope}/database`]: 'workspace:*',
195
- [`@${workspaceScope}/api`]: 'workspace:*'
196
- };
197
- await fs_extra_1.default.writeJSON(webPackageJsonPath, webPackageJson, { spaces: 2 });
198
- }
199
- // Update native package.json
200
- const nativePackageJsonPath = path_1.default.join(projectPath, 'packages', 'mobile', 'package.json');
201
- if (await fs_extra_1.default.pathExists(nativePackageJsonPath)) {
202
- const nativePackageJson = await fs_extra_1.default.readJSON(nativePackageJsonPath);
203
- nativePackageJson.dependencies = {
204
- ...nativePackageJson.dependencies,
205
- [`@${workspaceScope}/shared`]: 'workspace:*',
206
- [`@${workspaceScope}/database`]: 'workspace:*'
207
- };
208
- await fs_extra_1.default.writeJSON(nativePackageJsonPath, nativePackageJson, { spaces: 2 });
209
- }
210
- // Update API package.json
211
- const apiPackageJsonPath = path_1.default.join(projectPath, 'packages', 'api', 'package.json');
212
- if (await fs_extra_1.default.pathExists(apiPackageJsonPath)) {
213
- const apiPackageJson = await fs_extra_1.default.readJSON(apiPackageJsonPath);
214
- apiPackageJson.dependencies = {
215
- ...apiPackageJson.dependencies,
216
- [`@${workspaceScope}/database`]: 'workspace:*',
217
- [`@${workspaceScope}/shared`]: 'workspace:*'
218
- };
219
- await fs_extra_1.default.writeJSON(apiPackageJsonPath, apiPackageJson, { spaces: 2 });
220
- }
221
- }
222
- async function setupPackageIntegration(workspacePath, templateData) {
223
- const fs = require('fs-extra');
224
- // Update workspace package.json with integrated scripts
225
- const workspacePackageJsonPath = path_1.default.join(workspacePath, 'package.json');
226
- const workspacePackageJson = await fs.readJSON(workspacePackageJsonPath);
227
- workspacePackageJson.scripts = {
228
- ...workspacePackageJson.scripts,
229
- "dev": "concurrently \"yarn api:dev\" \"yarn web:dev\" \"yarn mobile:start\"",
230
- "build": "yarn build:packages && yarn api:build && yarn web:build",
231
- "build:packages": `yarn workspace @${templateData.workspaceScope}/database build && yarn workspace @${templateData.workspaceScope}/shared build`,
232
- "api:dev": `yarn workspace @${templateData.workspaceScope}/api dev`,
233
- "api:build": `yarn workspace @${templateData.workspaceScope}/api build`,
234
- "web:dev": `yarn workspace @${templateData.workspaceScope}/web dev`,
235
- "web:build": `yarn workspace @${templateData.workspaceScope}/web build`,
236
- "mobile:start": `yarn workspace @${templateData.workspaceScope}/mobile start`,
237
- "mobile:android": `yarn workspace @${templateData.workspaceScope}/mobile android`,
238
- "mobile:ios": `yarn workspace @${templateData.workspaceScope}/mobile ios`,
239
- "db:generate": `yarn workspace @${templateData.workspaceScope}/database db:generate`,
240
- "db:push": `yarn workspace @${templateData.workspaceScope}/database db:push`,
241
- "db:migrate": `yarn workspace @${templateData.workspaceScope}/database db:migrate`,
242
- "db:studio": `yarn workspace @${templateData.workspaceScope}/database db:studio`,
243
- "test": "yarn workspaces run test",
244
- "type-check": "yarn workspaces run type-check"
245
- };
246
- // Add development dependencies for the workspace
247
- workspacePackageJson.devDependencies = {
248
- ...workspacePackageJson.devDependencies,
249
- "concurrently": "^8.2.2"
250
- };
251
- await fs.writeJSON(workspacePackageJsonPath, workspacePackageJson, { spaces: 2 });
252
- // Create integrated README with quick start guide
253
- await createIntegratedReadme(workspacePath, templateData);
254
- }
255
- async function createIntegratedReadme(workspacePath, templateData) {
256
- const fs = require('fs-extra');
257
- const readmePath = path_1.default.join(workspacePath, 'README.md');
258
- const readmeContent = `# ${templateData.projectName}
259
-
260
- A full-stack application built with the Idealyst Framework.
261
-
262
- ## 🏗️ Architecture
263
-
264
- This workspace contains a complete full-stack application with:
265
-
266
- - **📱 Mobile App** (\`packages/mobile\`) - React Native app with Idealyst components
267
- - **🌐 Web App** (\`packages/web\`) - React web app with Idealyst components
268
- - **🚀 API Server** (\`packages/api\`) - tRPC API server with Express
269
- - **🗄️ Database** (\`packages/database\`) - Prisma database layer with PostgreSQL
270
- - **📦 Shared** (\`packages/shared\`) - Cross-platform shared components and utilities
271
-
272
- All packages are pre-integrated and work together seamlessly.
273
-
274
- ## 🚀 Quick Start
275
-
276
- ### Prerequisites
277
- - Node.js 18+
278
- - Yarn 3+
279
- - PostgreSQL (or use Docker)
280
-
281
- ### Setup
282
- \`\`\`bash
283
- # Install dependencies
284
- yarn install
285
-
286
- # Set up environment variables
287
- cp packages/api/.env.example packages/api/.env
288
- cp packages/database/.env.example packages/database/.env
289
- # Edit .env files with your database URL
290
-
291
- # Generate database client
292
- yarn db:generate
293
-
294
- # Push database schema
295
- yarn db:push
296
-
297
- # Start all development servers
298
- yarn dev
299
- \`\`\`
300
-
301
- This will start:
302
- - 🌐 Web app at http://localhost:5173
303
- - 🚀 API server at http://localhost:3000
304
- - 📱 Mobile app (Metro bundler)
305
-
306
- ### Individual Commands
307
-
308
- \`\`\`bash
309
- # Web development
310
- yarn web:dev # Start web app
311
- yarn web:build # Build web app
312
-
313
- # Mobile development
314
- yarn mobile:start # Start Metro bundler
315
- yarn mobile:android # Run on Android
316
- yarn mobile:ios # Run on iOS
317
-
318
- # API development
319
- yarn api:dev # Start API server
320
- yarn api:build # Build API server
321
-
322
- # Database management
323
- yarn db:generate # Generate Prisma client
324
- yarn db:push # Push schema to database
325
- yarn db:migrate # Create migrations
326
- yarn db:studio # Open Prisma Studio
327
-
328
- # Build all packages
329
- yarn build # Build everything
330
- yarn build:packages # Build shared packages only
331
-
332
- # Testing
333
- yarn test # Run all tests
334
- yarn type-check # Type check all packages
335
- \`\`\`
336
-
337
- ## 📱 Demo Features
338
-
339
- The generated application includes working demo features:
340
-
341
- ### User Management
342
- - User registration and authentication
343
- - User profiles with avatars
344
- - User listings and search
345
-
346
- ### Real-time Features
347
- - Live chat/messaging
348
- - Real-time notifications
349
- - Live user presence
350
-
351
- ### Data Flow
352
- - **Mobile/Web** → **API** → **Database**
353
- - Shared types and validation across all layers
354
- - Real-time updates via tRPC subscriptions
355
-
356
- ## 🔧 Development
357
-
358
- ### Adding New Features
359
-
360
- 1. **Database Changes**: Update \`packages/database/prisma/schema.prisma\`
361
- 2. **API Endpoints**: Add routes in \`packages/api/src/routers/\`
362
- 3. **Shared Types**: Add to \`packages/shared/src/\`
363
- 4. **UI Components**: Update \`packages/web/src/\` and \`packages/mobile/src/\`
364
-
365
- ### Package Structure
366
-
367
- \`\`\`
368
- ${templateData.projectName}/
369
- ├── packages/
370
- │ ├── api/ # tRPC API server
371
- │ ├── database/ # Prisma database layer
372
- │ ├── mobile/ # React Native app
373
- │ ├── shared/ # Shared components/utils
374
- │ └── web/ # React web app
375
- ├── package.json # Workspace configuration
376
- ├── docker-compose.yml # Database services
377
- └── README.md # This file
378
- \`\`\`
379
-
380
- ## 🔗 Package Integration
381
-
382
- All packages are properly integrated:
383
-
384
- - **Database**: Exports typed Prisma client and schemas
385
- - **API**: Imports database client, exports tRPC router
386
- - **Shared**: Cross-platform components used by web/mobile
387
- - **Web/Mobile**: Import shared components and API client
388
-
389
- ### Type Safety
390
-
391
- Full end-to-end type safety:
392
- - Database schema → Generated Prisma types
393
- - API routes → Generated tRPC types
394
- - Frontend → Typed API client calls
395
- - Shared components → Typed props
396
-
397
- ## 📚 Documentation
398
-
399
- - [Idealyst Framework](https://github.com/IdealystIO/idealyst-framework)
400
- - [Prisma Docs](https://www.prisma.io/docs)
401
- - [tRPC Docs](https://trpc.io)
402
- - [React Native Docs](https://reactnative.dev)
403
-
404
- ## 🤝 Contributing
405
-
406
- 1. Fork the repository
407
- 2. Create a feature branch
408
- 3. Make your changes
409
- 4. Add tests
410
- 5. Submit a pull request
411
-
412
- ## 📄 License
413
-
414
- MIT License - see LICENSE file for details.
415
- `;
416
- await fs.writeFile(readmePath, readmeContent);
417
- }
418
- //# sourceMappingURL=fullstack.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fullstack.js","sourceRoot":"","sources":["../../src/generators/fullstack.ts"],"names":[],"mappings":"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"}
@@ -1,112 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.generateNativeProject = generateNativeProject;
7
- const path_1 = __importDefault(require("path"));
8
- const fs_extra_1 = __importDefault(require("fs-extra"));
9
- const chalk_1 = __importDefault(require("chalk"));
10
- const utils_1 = require("./utils");
11
- async function generateNativeProject(options) {
12
- const { name, directory, skipInstall, appName, withTrpc } = options;
13
- if (!(0, utils_1.validateProjectName)(name)) {
14
- throw new Error(`Invalid project name: ${name}`);
15
- }
16
- const displayName = appName || name.split('-').map(word => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase()).join(' ');
17
- console.log(chalk_1.default.blue(`📱 Creating React Native project: ${name}`));
18
- console.log(chalk_1.default.gray(` App display name: ${displayName}`));
19
- const { projectPath, workspacePath, workspaceScope } = await (0, utils_1.resolveProjectPath)(name, directory);
20
- const templatePath = (0, utils_1.getTemplatePath)('native');
21
- const templateData = (0, utils_1.getTemplateData)(name, `React Native app built with Idealyst Framework`, displayName, workspaceScope || undefined);
22
- try {
23
- // Step 1: Update workspace configuration FIRST
24
- await (0, utils_1.updateWorkspacePackageJson)(workspacePath, directory);
25
- // Step 2: Try React Native CLI initialization, with fallback to template-only
26
- const useRnCli = process.env.IDEALYST_USE_RN_CLI !== 'false';
27
- if (useRnCli) {
28
- try {
29
- console.log(chalk_1.default.blue('🚀 Attempting React Native CLI initialization...'));
30
- console.log(chalk_1.default.gray(' (This creates proper Android/iOS native directories)'));
31
- // Initialize React Native project using CLI with --skip-install
32
- const projectDir = path_1.default.dirname(projectPath);
33
- const projectName = path_1.default.basename(projectPath);
34
- await (0, utils_1.initializeReactNativeProject)(projectName, projectDir, displayName, true);
35
- // Step 3: Overlay Idealyst-specific files
36
- await (0, utils_1.overlayIdealystFiles)(templatePath, projectPath, templateData);
37
- console.log(chalk_1.default.green('✅ React Native project created with native platform support'));
38
- }
39
- catch (rnError) {
40
- console.log(chalk_1.default.yellow('✖ Failed to initialize React Native project'));
41
- console.log('');
42
- console.log(chalk_1.default.yellow('💡 Alternative approaches:'));
43
- console.log(chalk_1.default.white('1. Try manually creating the project:'));
44
- console.log(chalk_1.default.white(` npx @react-native-community/cli@latest init ${path_1.default.basename(projectPath)} --pm yarn --skip-git-init`));
45
- console.log('');
46
- console.log(chalk_1.default.white('2. Use Expo (faster alternative):'));
47
- console.log(chalk_1.default.white(` npx create-expo-app@latest ${path_1.default.basename(projectPath)} --template blank-typescript`));
48
- console.log('');
49
- console.log(chalk_1.default.white('3. Ensure prerequisites:'));
50
- console.log(chalk_1.default.white(' npm install -g @react-native-community/cli'));
51
- console.log('');
52
- console.log(chalk_1.default.yellow('⚠️ React Native CLI failed, falling back to template-only approach...'));
53
- await createNativeProjectFromTemplate(templatePath, projectPath, templateData);
54
- console.log(chalk_1.default.yellow('📝 Template-only project created. You may need to run "npx react-native init" later for native platforms.'));
55
- }
56
- }
57
- else {
58
- console.log(chalk_1.default.blue('��️ Creating project from template only (IDEALYST_USE_RN_CLI=false)'));
59
- await createNativeProjectFromTemplate(templatePath, projectPath, templateData);
60
- }
61
- // Step 4: Handle tRPC setup
62
- if (withTrpc) {
63
- await (0, utils_1.copyTrpcFiles)(templatePath, projectPath, templateData);
64
- await (0, utils_1.copyTrpcAppComponent)(templatePath, projectPath, templateData);
65
- await (0, utils_1.addTrpcDependencies)(projectPath);
66
- }
67
- // Step 5: Configure Android vector icons (only if we have Android directory)
68
- const hasAndroid = await fs_extra_1.default.pathExists(path_1.default.join(projectPath, 'android'));
69
- if (hasAndroid) {
70
- await (0, utils_1.configureAndroidVectorIcons)(projectPath);
71
- }
72
- // Step 6: Remove tRPC dependencies if not requested
73
- if (!withTrpc) {
74
- await (0, utils_1.removeTrpcDependencies)(projectPath);
75
- }
76
- // Step 7: Install dependencies
77
- await (0, utils_1.installDependencies)(projectPath, skipInstall);
78
- console.log(chalk_1.default.green('✅ React Native project created successfully!'));
79
- console.log(chalk_1.default.blue('📋 Project includes:'));
80
- console.log(chalk_1.default.white(' • React Native with TypeScript'));
81
- console.log(chalk_1.default.white(' • Idealyst Components & Navigation'));
82
- console.log(chalk_1.default.white(' • Idealyst Theme & Styling'));
83
- console.log(chalk_1.default.white(' • Jest testing configuration'));
84
- console.log(chalk_1.default.white(' • Metro & Babel configuration'));
85
- if (hasAndroid) {
86
- console.log(chalk_1.default.white(' • Android native platform setup'));
87
- console.log(chalk_1.default.white(' • React Native Vector Icons (configured)'));
88
- }
89
- const hasIos = await fs_extra_1.default.pathExists(path_1.default.join(projectPath, 'ios'));
90
- if (hasIos) {
91
- console.log(chalk_1.default.white(' • iOS native platform setup'));
92
- }
93
- if (!hasAndroid && !hasIos) {
94
- console.log(chalk_1.default.yellow(' ⚠️ No native platforms detected'));
95
- console.log(chalk_1.default.yellow(' Run "npx react-native init" in project directory for native support'));
96
- }
97
- if (withTrpc) {
98
- console.log(chalk_1.default.white(' • tRPC client setup and utilities'));
99
- console.log(chalk_1.default.white(' • React Query integration'));
100
- }
101
- }
102
- catch (error) {
103
- console.error(chalk_1.default.red('❌ Error creating React Native project:'));
104
- console.error(error);
105
- throw error;
106
- }
107
- }
108
- // Helper function to create project from template only (fallback when RN CLI fails)
109
- async function createNativeProjectFromTemplate(templatePath, projectPath, templateData) {
110
- await (0, utils_1.copyTemplate)(templatePath, projectPath, templateData);
111
- }
112
- //# sourceMappingURL=native.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"native.js","sourceRoot":"","sources":["../../src/generators/native.ts"],"names":[],"mappings":";;;;;AAMA,sDAoHC;AA1HD,gDAAwB;AACxB,wDAA0B;AAC1B,kDAA0B;AAE1B,mCAAsU;AAE/T,KAAK,UAAU,qBAAqB,CAAC,OAA+B;IACzE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAEpE,IAAI,CAAC,IAAA,2BAAmB,EAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,WAAW,GAAG,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CACxD,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAC3D,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEZ,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,qCAAqC,IAAI,EAAE,CAAC,CAAC,CAAC;IACrE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,wBAAwB,WAAW,EAAE,CAAC,CAAC,CAAC;IAE/D,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,EAAE,GAAG,MAAM,IAAA,0BAAkB,EAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACjG,MAAM,YAAY,GAAG,IAAA,uBAAe,EAAC,QAAQ,CAAC,CAAC;IAE/C,MAAM,YAAY,GAAG,IAAA,uBAAe,EAAC,IAAI,EAAE,gDAAgD,EAAE,WAAW,EAAE,cAAc,IAAI,SAAS,CAAC,CAAC;IAEvI,IAAI,CAAC;QACH,+CAA+C;QAC/C,MAAM,IAAA,kCAA0B,EAAC,aAAa,EAAE,SAAS,CAAC,CAAC;QAE3D,8EAA8E;QAC9E,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,KAAK,OAAO,CAAC;QAE7D,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC;gBACH,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC,CAAC;gBAC5E,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC,CAAC;gBAEnF,gEAAgE;gBAChE,MAAM,UAAU,GAAG,cAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;gBAC7C,MAAM,WAAW,GAAG,cAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;gBAC/C,MAAM,IAAA,oCAA4B,EAAC,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;gBAE/E,0CAA0C;gBAC1C,MAAM,IAAA,4BAAoB,EAAC,YAAY,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;gBAEpE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,6DAA6D,CAAC,CAAC,CAAC;YAC1F,CAAC;YAAC,OAAO,OAAO,EAAE,CAAC;gBACjB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,6CAA6C,CAAC,CAAC,CAAC;gBACzE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAChB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,4BAA4B,CAAC,CAAC,CAAC;gBACxD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC,CAAC;gBAClE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,kDAAkD,cAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,4BAA4B,CAAC,CAAC,CAAC;gBACnI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAChB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC,CAAC;gBAC9D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,iCAAiC,cAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,8BAA8B,CAAC,CAAC,CAAC;gBACpH,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAChB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC,CAAC;gBACrD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC,CAAC;gBAC1E,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAChB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,wEAAwE,CAAC,CAAC,CAAC;gBACpG,MAAM,+BAA+B,CAAC,YAAY,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;gBAC/E,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,2GAA2G,CAAC,CAAC,CAAC;YACzI,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,sEAAsE,CAAC,CAAC,CAAC;YAChG,MAAM,+BAA+B,CAAC,YAAY,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;QACjF,CAAC;QAED,4BAA4B;QAC5B,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,IAAA,qBAAa,EAAC,YAAY,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;YAC7D,MAAM,IAAA,4BAAoB,EAAC,YAAY,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;YACpE,MAAM,IAAA,2BAAmB,EAAC,WAAW,CAAC,CAAC;QACzC,CAAC;QAED,6EAA6E;QAC7E,MAAM,UAAU,GAAG,MAAM,kBAAE,CAAC,UAAU,CAAC,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC;QAC1E,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,IAAA,mCAA2B,EAAC,WAAW,CAAC,CAAC;QACjD,CAAC;QAED,oDAAoD;QACpD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAA,8BAAsB,EAAC,WAAW,CAAC,CAAC;QAC5C,CAAC;QAED,+BAA+B;QAC/B,MAAM,IAAA,2BAAmB,EAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QAEpD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC,CAAC;QACzE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC,CAAC;QAC7D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC,CAAC;QACjE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC,CAAC;QAC3D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC,CAAC;QAE5D,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC,CAAC;YAC9D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC,CAAC;QACzE,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,kBAAE,CAAC,UAAU,CAAC,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;QAClE,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC,CAAC;QAC5D,CAAC;QAED,IAAI,CAAC,UAAU,IAAI,CAAC,MAAM,EAAE,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,oCAAoC,CAAC,CAAC,CAAC;YAChE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,0EAA0E,CAAC,CAAC,CAAC;QACxG,CAAC;QAED,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC,CAAC;YAChE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAC;QAC1D,CAAC;IAEH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC,CAAC;QACnE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrB,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,oFAAoF;AACpF,KAAK,UAAU,+BAA+B,CAAC,YAAoB,EAAE,WAAmB,EAAE,YAAiB;IACzG,MAAM,IAAA,oBAAY,EAAC,YAAY,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;AAC9D,CAAC"}
@@ -1,29 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.generateSharedLibrary = generateSharedLibrary;
7
- const chalk_1 = __importDefault(require("chalk"));
8
- const utils_1 = require("./utils");
9
- async function generateSharedLibrary(options) {
10
- const { name, directory, skipInstall } = options;
11
- if (!(0, utils_1.validateProjectName)(name)) {
12
- throw new Error(`Invalid project name: ${name}`);
13
- }
14
- console.log(chalk_1.default.blue(`📦 Creating shared library: ${name}`));
15
- const { projectPath, workspacePath, workspaceScope } = await (0, utils_1.resolveProjectPath)(name, directory);
16
- const templatePath = (0, utils_1.getTemplatePath)('shared');
17
- const templateData = (0, utils_1.getTemplateData)(name, `Shared library built with Idealyst Framework`, undefined, workspaceScope || undefined);
18
- await (0, utils_1.copyTemplate)(templatePath, projectPath, templateData);
19
- await (0, utils_1.installDependencies)(projectPath, skipInstall);
20
- await (0, utils_1.updateWorkspacePackageJson)(workspacePath, directory);
21
- console.log(chalk_1.default.green('✅ Shared library created successfully!'));
22
- console.log(chalk_1.default.blue('📋 Project includes:'));
23
- console.log(chalk_1.default.white(' • Cross-platform components'));
24
- console.log(chalk_1.default.white(' • Idealyst Theme integration'));
25
- console.log(chalk_1.default.white(' • TypeScript configuration'));
26
- console.log(chalk_1.default.white(' • Rollup build system'));
27
- console.log(chalk_1.default.white(' • React & React Native support'));
28
- }
29
- //# sourceMappingURL=shared.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/generators/shared.ts"],"names":[],"mappings":";;;;;AAKA,sDAyBC;AA7BD,kDAA0B;AAE1B,mCAAmK;AAE5J,KAAK,UAAU,qBAAqB,CAAC,OAA+B;IACzE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;IAEjD,IAAI,CAAC,IAAA,2BAAmB,EAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,+BAA+B,IAAI,EAAE,CAAC,CAAC,CAAC;IAE/D,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,EAAE,GAAG,MAAM,IAAA,0BAAkB,EAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACjG,MAAM,YAAY,GAAG,IAAA,uBAAe,EAAC,QAAQ,CAAC,CAAC;IAE/C,MAAM,YAAY,GAAG,IAAA,uBAAe,EAAC,IAAI,EAAE,8CAA8C,EAAE,SAAS,EAAE,cAAc,IAAI,SAAS,CAAC,CAAC;IAEnI,MAAM,IAAA,oBAAY,EAAC,YAAY,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;IAC5D,MAAM,IAAA,2BAAmB,EAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IACpD,MAAM,IAAA,kCAA0B,EAAC,aAAa,EAAE,SAAS,CAAC,CAAC;IAE3D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC,CAAC;IACnE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;IAChD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC,CAAC;IAC1D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC,CAAC;IAC3D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC,CAAC;IACzD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC,CAAC;AAC/D,CAAC"}
@@ -1,45 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.generateWebProject = generateWebProject;
7
- const chalk_1 = __importDefault(require("chalk"));
8
- const utils_1 = require("./utils");
9
- async function generateWebProject(options) {
10
- const { name, directory, skipInstall, withTrpc } = options;
11
- if (!(0, utils_1.validateProjectName)(name)) {
12
- throw new Error(`Invalid project name: ${name}`);
13
- }
14
- console.log(chalk_1.default.blue(`🌐 Creating React Web project: ${name}`));
15
- const { projectPath, workspacePath, workspaceScope } = await (0, utils_1.resolveProjectPath)(name, directory);
16
- const templatePath = (0, utils_1.getTemplatePath)('web');
17
- const templateData = (0, utils_1.getTemplateData)(name, `React web app built with Idealyst Framework`, undefined, workspaceScope || undefined);
18
- await (0, utils_1.copyTemplate)(templatePath, projectPath, templateData);
19
- // Handle tRPC setup
20
- if (withTrpc) {
21
- await (0, utils_1.copyTrpcFiles)(templatePath, projectPath, templateData);
22
- await (0, utils_1.copyTrpcAppComponent)(templatePath, projectPath, templateData);
23
- }
24
- else {
25
- // Remove tRPC dependencies if not requested
26
- await (0, utils_1.removeTrpcDependencies)(projectPath);
27
- }
28
- await (0, utils_1.installDependencies)(projectPath, skipInstall);
29
- await (0, utils_1.updateWorkspacePackageJson)(workspacePath, directory);
30
- console.log(chalk_1.default.green('✅ React Web project created successfully!'));
31
- console.log(chalk_1.default.blue('📋 Project includes:'));
32
- console.log(chalk_1.default.white(' • React 19.1'));
33
- console.log(chalk_1.default.white(' • Vite build system'));
34
- console.log(chalk_1.default.white(' • Idealyst Components'));
35
- console.log(chalk_1.default.white(' • Idealyst Navigation'));
36
- console.log(chalk_1.default.white(' • Idealyst Theme'));
37
- console.log(chalk_1.default.white(' • TypeScript configuration'));
38
- console.log(chalk_1.default.white(' • React Router'));
39
- if (withTrpc) {
40
- console.log(chalk_1.default.white(' • tRPC client setup and utilities'));
41
- console.log(chalk_1.default.white(' • React Query integration'));
42
- console.log(chalk_1.default.white(' • Pre-configured tRPC provider'));
43
- }
44
- }
45
- //# sourceMappingURL=web.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"web.js","sourceRoot":"","sources":["../../src/generators/web.ts"],"names":[],"mappings":";;;;;AAKA,gDA0CC;AA9CD,kDAA0B;AAE1B,mCAAgO;AAEzN,KAAK,UAAU,kBAAkB,CAAC,OAA+B;IACtE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAE3D,IAAI,CAAC,IAAA,2BAAmB,EAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,kCAAkC,IAAI,EAAE,CAAC,CAAC,CAAC;IAElE,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,EAAE,GAAG,MAAM,IAAA,0BAAkB,EAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACjG,MAAM,YAAY,GAAG,IAAA,uBAAe,EAAC,KAAK,CAAC,CAAC;IAE5C,MAAM,YAAY,GAAG,IAAA,uBAAe,EAAC,IAAI,EAAE,6CAA6C,EAAE,SAAS,EAAE,cAAc,IAAI,SAAS,CAAC,CAAC;IAElI,MAAM,IAAA,oBAAY,EAAC,YAAY,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;IAE5D,oBAAoB;IACpB,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,IAAA,qBAAa,EAAC,YAAY,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;QAC7D,MAAM,IAAA,4BAAoB,EAAC,YAAY,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;IACtE,CAAC;SAAM,CAAC;QACN,4CAA4C;QAC5C,MAAM,IAAA,8BAAsB,EAAC,WAAW,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,IAAA,2BAAmB,EAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IACpD,MAAM,IAAA,kCAA0B,EAAC,aAAa,EAAE,SAAS,CAAC,CAAC;IAE3D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC,CAAC;IACtE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;IAChD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC3C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC,CAAC;IAClD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAC/C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC,CAAC;IACzD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAC7C,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC,CAAC;QAChE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC"}