@idealyst/cli 1.1.9 → 1.2.1

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 (324) hide show
  1. package/dist/commands/add.js +233 -0
  2. package/dist/commands/add.js.map +1 -0
  3. package/dist/commands/index.js +13 -0
  4. package/dist/commands/index.js.map +1 -0
  5. package/dist/commands/info.js +193 -0
  6. package/dist/commands/info.js.map +1 -0
  7. package/dist/commands/init.js +155 -0
  8. package/dist/commands/init.js.map +1 -0
  9. package/dist/constants.js +119 -0
  10. package/dist/constants.js.map +1 -0
  11. package/dist/generators/core/index.js +23 -0
  12. package/dist/generators/core/index.js.map +1 -0
  13. package/dist/generators/core/mobile.js +286 -0
  14. package/dist/generators/core/mobile.js.map +1 -0
  15. package/dist/generators/core/shared.js +207 -0
  16. package/dist/generators/core/shared.js.map +1 -0
  17. package/dist/generators/core/web.js +377 -0
  18. package/dist/generators/core/web.js.map +1 -0
  19. package/dist/generators/extensions/api.js +223 -0
  20. package/dist/generators/extensions/api.js.map +1 -0
  21. package/dist/generators/extensions/devcontainer.js +510 -0
  22. package/dist/generators/extensions/devcontainer.js.map +1 -0
  23. package/dist/generators/extensions/graphql.js +202 -0
  24. package/dist/generators/extensions/graphql.js.map +1 -0
  25. package/dist/generators/extensions/index.js +17 -0
  26. package/dist/generators/extensions/index.js.map +1 -0
  27. package/dist/generators/extensions/prisma.js +249 -0
  28. package/dist/generators/extensions/prisma.js.map +1 -0
  29. package/dist/generators/extensions/trpc.js +258 -0
  30. package/dist/generators/extensions/trpc.js.map +1 -0
  31. package/dist/generators/index.js +106 -4
  32. package/dist/generators/index.js.map +1 -1
  33. package/dist/generators/reactNative.js +177 -0
  34. package/dist/generators/reactNative.js.map +1 -0
  35. package/dist/generators/workspace.js +272 -0
  36. package/dist/generators/workspace.js.map +1 -0
  37. package/dist/identifiers/android.js +75 -0
  38. package/dist/identifiers/android.js.map +1 -0
  39. package/dist/identifiers/index.js +35 -0
  40. package/dist/identifiers/index.js.map +1 -0
  41. package/dist/identifiers/ios.js +65 -0
  42. package/dist/identifiers/ios.js.map +1 -0
  43. package/dist/index.js +41 -319
  44. package/dist/index.js.map +1 -1
  45. package/dist/templates/copier.js +135 -0
  46. package/dist/templates/copier.js.map +1 -0
  47. package/dist/templates/index.js +23 -0
  48. package/dist/templates/index.js.map +1 -0
  49. package/dist/templates/merger.js +113 -0
  50. package/dist/templates/merger.js.map +1 -0
  51. package/dist/templates/processor.js +142 -0
  52. package/dist/templates/processor.js.map +1 -0
  53. package/dist/types/commands/add.d.ts +14 -0
  54. package/dist/types/commands/index.d.ts +6 -0
  55. package/dist/types/commands/info.d.ts +10 -0
  56. package/dist/types/commands/init.d.ts +19 -0
  57. package/dist/types/constants.d.ts +76 -0
  58. package/dist/types/generators/core/index.d.ts +6 -0
  59. package/dist/types/generators/core/mobile.d.ts +13 -0
  60. package/dist/types/generators/core/shared.d.ts +8 -0
  61. package/dist/types/generators/core/web.d.ts +8 -0
  62. package/dist/types/generators/extensions/api.d.ts +8 -0
  63. package/dist/types/generators/extensions/devcontainer.d.ts +15 -0
  64. package/dist/types/generators/extensions/graphql.d.ts +8 -0
  65. package/dist/types/generators/extensions/index.d.ts +8 -0
  66. package/dist/types/generators/extensions/prisma.d.ts +8 -0
  67. package/dist/types/generators/extensions/trpc.d.ts +9 -0
  68. package/dist/types/generators/index.d.ts +11 -3
  69. package/dist/types/generators/reactNative.d.ts +19 -0
  70. package/dist/types/generators/workspace.d.ts +8 -0
  71. package/dist/types/identifiers/android.d.ts +26 -0
  72. package/dist/types/identifiers/index.d.ts +26 -0
  73. package/dist/types/identifiers/ios.d.ts +21 -0
  74. package/dist/types/index.d.ts +3 -0
  75. package/dist/types/templates/copier.d.ts +24 -0
  76. package/dist/types/templates/index.d.ts +6 -0
  77. package/dist/types/templates/merger.d.ts +43 -0
  78. package/dist/types/templates/processor.d.ts +39 -0
  79. package/dist/types/types.d.ts +153 -5
  80. package/dist/types/utils/filesystem.d.ts +56 -0
  81. package/dist/types/utils/index.d.ts +7 -0
  82. package/dist/types/utils/logger.d.ts +58 -0
  83. package/dist/types/utils/shell.d.ts +35 -0
  84. package/dist/types/utils/validation.d.ts +32 -0
  85. package/dist/types/wizard/index.d.ts +20 -0
  86. package/dist/types/wizard/steps/apiExtension.d.ts +5 -0
  87. package/dist/types/wizard/steps/appDisplayName.d.ts +5 -0
  88. package/dist/types/wizard/steps/devcontainerExtension.d.ts +5 -0
  89. package/dist/types/wizard/steps/graphqlExtension.d.ts +5 -0
  90. package/dist/types/wizard/steps/index.d.ts +12 -0
  91. package/dist/types/wizard/steps/orgDomain.d.ts +5 -0
  92. package/dist/types/wizard/steps/prismaExtension.d.ts +5 -0
  93. package/dist/types/wizard/steps/projectName.d.ts +5 -0
  94. package/dist/types/wizard/steps/summary.d.ts +5 -0
  95. package/dist/types/wizard/steps/trpcExtension.d.ts +5 -0
  96. package/dist/types/wizard/validators.d.ts +17 -0
  97. package/dist/types.js +41 -0
  98. package/dist/types.js.map +1 -1
  99. package/dist/utils/filesystem.js +173 -0
  100. package/dist/utils/filesystem.js.map +1 -0
  101. package/dist/utils/index.js +24 -0
  102. package/dist/utils/index.js.map +1 -0
  103. package/dist/utils/logger.js +95 -0
  104. package/dist/utils/logger.js.map +1 -0
  105. package/dist/utils/shell.js +113 -0
  106. package/dist/utils/shell.js.map +1 -0
  107. package/dist/utils/validation.js +196 -0
  108. package/dist/utils/validation.js.map +1 -0
  109. package/dist/wizard/index.js +177 -0
  110. package/dist/wizard/index.js.map +1 -0
  111. package/dist/wizard/steps/apiExtension.js +33 -0
  112. package/dist/wizard/steps/apiExtension.js.map +1 -0
  113. package/dist/wizard/steps/appDisplayName.js +53 -0
  114. package/dist/wizard/steps/appDisplayName.js.map +1 -0
  115. package/dist/wizard/steps/devcontainerExtension.js +78 -0
  116. package/dist/wizard/steps/devcontainerExtension.js.map +1 -0
  117. package/dist/wizard/steps/graphqlExtension.js +37 -0
  118. package/dist/wizard/steps/graphqlExtension.js.map +1 -0
  119. package/dist/wizard/steps/index.js +25 -0
  120. package/dist/wizard/steps/index.js.map +1 -0
  121. package/dist/wizard/steps/orgDomain.js +40 -0
  122. package/dist/wizard/steps/orgDomain.js.map +1 -0
  123. package/dist/wizard/steps/prismaExtension.js +33 -0
  124. package/dist/wizard/steps/prismaExtension.js.map +1 -0
  125. package/dist/wizard/steps/projectName.js +40 -0
  126. package/dist/wizard/steps/projectName.js.map +1 -0
  127. package/dist/wizard/steps/summary.js +107 -0
  128. package/dist/wizard/steps/summary.js.map +1 -0
  129. package/dist/wizard/steps/trpcExtension.js +37 -0
  130. package/dist/wizard/steps/trpcExtension.js.map +1 -0
  131. package/dist/wizard/validators.js +35 -0
  132. package/dist/wizard/validators.js.map +1 -0
  133. package/package.json +6 -19
  134. package/README.md +0 -110
  135. package/dist/generators/init.js +0 -268
  136. package/dist/generators/init.js.map +0 -1
  137. package/dist/generators/utils.js +0 -682
  138. package/dist/generators/utils.js.map +0 -1
  139. package/dist/scripts/configure-react-native-monorepo.js +0 -144
  140. package/dist/scripts/configure-react-native-monorepo.js.map +0 -1
  141. package/dist/template/.devcontainer/Dockerfile +0 -26
  142. package/dist/template/.devcontainer/devcontainer.json +0 -113
  143. package/dist/template/.devcontainer/docker-compose.yml +0 -59
  144. package/dist/template/.devcontainer/figma-mcp.sh +0 -32
  145. package/dist/template/.devcontainer/gitignore.template +0 -2
  146. package/dist/template/.devcontainer/setup.sh +0 -45
  147. package/dist/template/DOCKER.md +0 -0
  148. package/dist/template/Dockerfile +0 -111
  149. package/dist/template/README.md +0 -233
  150. package/dist/template/docker/nginx/prod.conf +0 -238
  151. package/dist/template/docker/nginx.conf +0 -131
  152. package/dist/template/docker/postgres/init.sql +0 -41
  153. package/dist/template/docker/prometheus/prometheus.yml +0 -52
  154. package/dist/template/docker-compose.prod.yml +0 -146
  155. package/dist/template/docker-compose.yml +0 -143
  156. package/dist/template/dockerignore.template +0 -151
  157. package/dist/template/env.example.template +0 -36
  158. package/dist/template/gitignore.template +0 -56
  159. package/dist/template/jest.config.js +0 -20
  160. package/dist/template/mcp.json.template +0 -8
  161. package/dist/template/package.json +0 -45
  162. package/dist/template/packages/api/README.md +0 -510
  163. package/dist/template/packages/api/__tests__/api.test.ts +0 -26
  164. package/dist/template/packages/api/env.example.template +0 -6
  165. package/dist/template/packages/api/gitignore.template +0 -35
  166. package/dist/template/packages/api/jest.config.js +0 -23
  167. package/dist/template/packages/api/jest.setup.js +0 -9
  168. package/dist/template/packages/api/package.json +0 -66
  169. package/dist/template/packages/api/src/context.ts +0 -52
  170. package/dist/template/packages/api/src/controllers/TestController.ts +0 -0
  171. package/dist/template/packages/api/src/graphql/builder.ts +0 -75
  172. package/dist/template/packages/api/src/graphql/generated.ts +0 -64
  173. package/dist/template/packages/api/src/graphql/index.ts +0 -75
  174. package/dist/template/packages/api/src/graphql/types/index.ts +0 -44
  175. package/dist/template/packages/api/src/graphql/types/test.ts +0 -245
  176. package/dist/template/packages/api/src/index.ts +0 -26
  177. package/dist/template/packages/api/src/lib/database.ts +0 -23
  178. package/dist/template/packages/api/src/router/index.ts +0 -163
  179. package/dist/template/packages/api/src/routers/test.ts +0 -161
  180. package/dist/template/packages/api/src/server.ts +0 -68
  181. package/dist/template/packages/api/src/trpc.ts +0 -28
  182. package/dist/template/packages/api/tsconfig.json +0 -44
  183. package/dist/template/packages/database/README.md +0 -162
  184. package/dist/template/packages/database/gitignore.template +0 -41
  185. package/dist/template/packages/database/package.json +0 -49
  186. package/dist/template/packages/database/prisma/seed.ts +0 -64
  187. package/dist/template/packages/database/schema.prisma +0 -107
  188. package/dist/template/packages/database/src/index.ts +0 -15
  189. package/dist/template/packages/database/src/validators.ts +0 -10
  190. package/dist/template/packages/database/tsconfig.json +0 -18
  191. package/dist/template/packages/mobile/README.md +0 -86
  192. package/dist/template/packages/mobile/__tests__/App.test.tsx +0 -156
  193. package/dist/template/packages/mobile/__tests__/components.test.tsx +0 -300
  194. package/dist/template/packages/mobile/app.json +0 -5
  195. package/dist/template/packages/mobile/babel.config.js +0 -10
  196. package/dist/template/packages/mobile/gitignore.template +0 -73
  197. package/dist/template/packages/mobile/index.js +0 -6
  198. package/dist/template/packages/mobile/jest.config.js +0 -21
  199. package/dist/template/packages/mobile/jest.setup.js +0 -12
  200. package/dist/template/packages/mobile/metro.config.js +0 -36
  201. package/dist/template/packages/mobile/package.json +0 -60
  202. package/dist/template/packages/mobile/src/App.tsx +0 -8
  203. package/dist/template/packages/mobile/src/utils/trpc.ts +0 -7
  204. package/dist/template/packages/mobile/tsconfig.json +0 -28
  205. package/dist/template/packages/shared/README.md +0 -135
  206. package/dist/template/packages/shared/__tests__/shared.test.ts +0 -51
  207. package/dist/template/packages/shared/gitignore.template +0 -35
  208. package/dist/template/packages/shared/jest.config.js +0 -22
  209. package/dist/template/packages/shared/package.json +0 -68
  210. package/dist/template/packages/shared/src/components/App.tsx +0 -57
  211. package/dist/template/packages/shared/src/components/HelloWorld.tsx +0 -531
  212. package/dist/template/packages/shared/src/components/index.ts +0 -1
  213. package/dist/template/packages/shared/src/graphql/client.ts +0 -34
  214. package/dist/template/packages/shared/src/index.ts +0 -22
  215. package/dist/template/packages/shared/src/navigation/AppRouter.tsx +0 -565
  216. package/dist/template/packages/shared/src/trpc/client.ts +0 -44
  217. package/dist/template/packages/shared/tsconfig.json +0 -22
  218. package/dist/template/packages/web/README.md +0 -131
  219. package/dist/template/packages/web/__tests__/App.test.tsx +0 -342
  220. package/dist/template/packages/web/__tests__/components.test.tsx +0 -564
  221. package/dist/template/packages/web/gitignore.template +0 -35
  222. package/dist/template/packages/web/index.html +0 -13
  223. package/dist/template/packages/web/jest.config.js +0 -27
  224. package/dist/template/packages/web/jest.setup.js +0 -24
  225. package/dist/template/packages/web/package.json +0 -69
  226. package/dist/template/packages/web/src/App.tsx +0 -14
  227. package/dist/template/packages/web/src/components/TestDemo.tsx +0 -164
  228. package/dist/template/packages/web/src/main.tsx +0 -25
  229. package/dist/template/packages/web/src/utils/trpc.ts +0 -7
  230. package/dist/template/packages/web/tsconfig.json +0 -26
  231. package/dist/template/packages/web/vite.config.ts +0 -98
  232. package/dist/template/setup.sh +0 -30
  233. package/dist/template/tsconfig.json +0 -22
  234. package/dist/template/yarnrc.yml.template +0 -4
  235. package/dist/types/generators/init.d.ts +0 -5
  236. package/dist/types/generators/utils.d.ts +0 -45
  237. package/dist/types/scripts/configure-react-native-monorepo.d.ts +0 -23
  238. package/template/.devcontainer/Dockerfile +0 -26
  239. package/template/.devcontainer/devcontainer.json +0 -113
  240. package/template/.devcontainer/docker-compose.yml +0 -59
  241. package/template/.devcontainer/figma-mcp.sh +0 -32
  242. package/template/.devcontainer/setup.sh +0 -45
  243. package/template/.dockerignore +0 -151
  244. package/template/.env.example +0 -36
  245. package/template/.env.production +0 -56
  246. package/template/DOCKER.md +0 -0
  247. package/template/Dockerfile +0 -111
  248. package/template/README.md +0 -233
  249. package/template/docker/nginx/prod.conf +0 -238
  250. package/template/docker/nginx.conf +0 -131
  251. package/template/docker/postgres/init.sql +0 -41
  252. package/template/docker/prometheus/prometheus.yml +0 -52
  253. package/template/docker-compose.prod.yml +0 -146
  254. package/template/docker-compose.yml +0 -143
  255. package/template/jest.config.js +0 -20
  256. package/template/package.json +0 -45
  257. package/template/packages/api/.env.example +0 -6
  258. package/template/packages/api/README.md +0 -510
  259. package/template/packages/api/__tests__/api.test.ts +0 -26
  260. package/template/packages/api/jest.config.js +0 -23
  261. package/template/packages/api/jest.setup.js +0 -9
  262. package/template/packages/api/package.json +0 -66
  263. package/template/packages/api/src/context.ts +0 -52
  264. package/template/packages/api/src/controllers/TestController.ts +0 -0
  265. package/template/packages/api/src/graphql/builder.ts +0 -75
  266. package/template/packages/api/src/graphql/generated.ts +0 -64
  267. package/template/packages/api/src/graphql/index.ts +0 -75
  268. package/template/packages/api/src/graphql/types/index.ts +0 -44
  269. package/template/packages/api/src/graphql/types/test.ts +0 -245
  270. package/template/packages/api/src/index.ts +0 -26
  271. package/template/packages/api/src/lib/database.ts +0 -23
  272. package/template/packages/api/src/router/index.ts +0 -163
  273. package/template/packages/api/src/routers/test.ts +0 -161
  274. package/template/packages/api/src/server.ts +0 -68
  275. package/template/packages/api/src/trpc.ts +0 -28
  276. package/template/packages/api/tsconfig.json +0 -44
  277. package/template/packages/database/README.md +0 -162
  278. package/template/packages/database/package.json +0 -49
  279. package/template/packages/database/prisma/seed.ts +0 -64
  280. package/template/packages/database/schema.prisma +0 -107
  281. package/template/packages/database/src/index.ts +0 -15
  282. package/template/packages/database/src/validators.ts +0 -10
  283. package/template/packages/database/tsconfig.json +0 -18
  284. package/template/packages/mobile/README.md +0 -86
  285. package/template/packages/mobile/__tests__/App.test.tsx +0 -156
  286. package/template/packages/mobile/__tests__/components.test.tsx +0 -300
  287. package/template/packages/mobile/app.json +0 -5
  288. package/template/packages/mobile/babel.config.js +0 -26
  289. package/template/packages/mobile/index.js +0 -8
  290. package/template/packages/mobile/jest.config.js +0 -21
  291. package/template/packages/mobile/jest.setup.js +0 -12
  292. package/template/packages/mobile/metro.config.js +0 -36
  293. package/template/packages/mobile/package.json +0 -60
  294. package/template/packages/mobile/src/App.tsx +0 -8
  295. package/template/packages/mobile/src/utils/trpc.ts +0 -7
  296. package/template/packages/mobile/tsconfig.json +0 -28
  297. package/template/packages/shared/README.md +0 -135
  298. package/template/packages/shared/__tests__/shared.test.ts +0 -51
  299. package/template/packages/shared/jest.config.js +0 -22
  300. package/template/packages/shared/package.json +0 -68
  301. package/template/packages/shared/src/components/App.tsx +0 -57
  302. package/template/packages/shared/src/components/HelloWorld.tsx +0 -531
  303. package/template/packages/shared/src/components/index.ts +0 -1
  304. package/template/packages/shared/src/graphql/client.ts +0 -34
  305. package/template/packages/shared/src/index.ts +0 -25
  306. package/template/packages/shared/src/navigation/AppRouter.tsx +0 -565
  307. package/template/packages/shared/src/trpc/client.ts +0 -44
  308. package/template/packages/shared/src/unistyles.ts +0 -50
  309. package/template/packages/shared/tsconfig.json +0 -22
  310. package/template/packages/web/README.md +0 -131
  311. package/template/packages/web/__tests__/App.test.tsx +0 -342
  312. package/template/packages/web/__tests__/components.test.tsx +0 -564
  313. package/template/packages/web/index.html +0 -13
  314. package/template/packages/web/jest.config.js +0 -27
  315. package/template/packages/web/jest.setup.js +0 -24
  316. package/template/packages/web/package.json +0 -69
  317. package/template/packages/web/src/App.tsx +0 -14
  318. package/template/packages/web/src/components/TestDemo.tsx +0 -164
  319. package/template/packages/web/src/main.tsx +0 -27
  320. package/template/packages/web/src/utils/trpc.ts +0 -7
  321. package/template/packages/web/tsconfig.json +0 -26
  322. package/template/packages/web/vite.config.ts +0 -114
  323. package/template/setup.sh +0 -30
  324. package/template/tsconfig.json +0 -22
@@ -0,0 +1,119 @@
1
+ "use strict";
2
+ /**
3
+ * Constants and default values for the CLI
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.DEPENDENCIES = exports.IGNORE_PATTERNS = exports.TEMPLATE_EXTENSIONS = exports.JAVA_RESERVED_KEYWORDS = exports.PATTERNS = exports.RN_TIMEOUT = exports.DEFAULT_TIMEOUT = exports.REACT_VERSION = exports.REACT_NATIVE_VERSION = exports.IDEALYST_VERSION = exports.VERSION = void 0;
7
+ // Package version - updated during build
8
+ exports.VERSION = '0.1.0';
9
+ // Current Idealyst framework version to use in templates
10
+ exports.IDEALYST_VERSION = '1.1.8';
11
+ // React Native version
12
+ exports.REACT_NATIVE_VERSION = '0.83.0';
13
+ // React version
14
+ exports.REACT_VERSION = '19.1.0';
15
+ // Default timeout for shell commands (5 minutes)
16
+ exports.DEFAULT_TIMEOUT = 300000;
17
+ // Extended timeout for React Native CLI (10 minutes)
18
+ exports.RN_TIMEOUT = 600000;
19
+ // Validation patterns
20
+ exports.PATTERNS = {
21
+ // Project name: lowercase, alphanumeric, hyphens allowed, must start with letter
22
+ PROJECT_NAME: /^[a-z][a-z0-9-]*$/,
23
+ // Organization domain: dot-separated segments, each starting with letter
24
+ ORG_DOMAIN: /^[a-z][a-z0-9]*(\.[a-z][a-z0-9]*)+$/,
25
+ // iOS bundle ID: allows hyphens
26
+ IOS_BUNDLE_ID: /^[a-zA-Z][a-zA-Z0-9.-]*$/,
27
+ // Android package name: no hyphens, lowercase only
28
+ ANDROID_PACKAGE: /^[a-z][a-z0-9]*(\.[a-z][a-z0-9]*)+$/,
29
+ };
30
+ // Java reserved keywords (cannot be used in Android package name segments)
31
+ exports.JAVA_RESERVED_KEYWORDS = [
32
+ 'abstract', 'assert', 'boolean', 'break', 'byte', 'case', 'catch',
33
+ 'char', 'class', 'const', 'continue', 'default', 'do', 'double',
34
+ 'else', 'enum', 'extends', 'final', 'finally', 'float', 'for',
35
+ 'goto', 'if', 'implements', 'import', 'instanceof', 'int', 'interface',
36
+ 'long', 'native', 'new', 'package', 'private', 'protected', 'public',
37
+ 'return', 'short', 'static', 'strictfp', 'super', 'switch',
38
+ 'synchronized', 'this', 'throw', 'throws', 'transient', 'try',
39
+ 'void', 'volatile', 'while',
40
+ ];
41
+ // File extensions that should have template variables processed
42
+ exports.TEMPLATE_EXTENSIONS = [
43
+ '.ts', '.tsx', '.js', '.jsx', '.json', '.md', '.txt',
44
+ '.yml', '.yaml', '.env', '.sh', '.conf', '.sql',
45
+ ];
46
+ // Files/directories to always ignore when copying templates
47
+ exports.IGNORE_PATTERNS = [
48
+ 'node_modules',
49
+ '.git',
50
+ 'dist',
51
+ 'build',
52
+ '.cache',
53
+ '.DS_Store',
54
+ 'Thumbs.db',
55
+ '*.log',
56
+ '*.tmp',
57
+ '*.bak',
58
+ '~*',
59
+ ];
60
+ // Default dependencies for different package types
61
+ exports.DEPENDENCIES = {
62
+ core: {
63
+ '@idealyst/components': `^${exports.IDEALYST_VERSION}`,
64
+ '@idealyst/theme': `^${exports.IDEALYST_VERSION}`,
65
+ '@idealyst/navigation': `^${exports.IDEALYST_VERSION}`,
66
+ },
67
+ web: {
68
+ '@mdi/js': '^7.4.47',
69
+ '@mdi/react': '^1.6.1',
70
+ 'react': `^${exports.REACT_VERSION}`,
71
+ 'react-dom': `^${exports.REACT_VERSION}`,
72
+ 'react-native': `^${exports.REACT_NATIVE_VERSION}`,
73
+ 'react-native-unistyles': '^3.0.0',
74
+ 'react-native-web': '^0.19.12',
75
+ 'react-router': '^7.6.0',
76
+ 'react-router-dom': '^7.6.0',
77
+ },
78
+ mobile: {
79
+ 'react': `^${exports.REACT_VERSION}`,
80
+ 'react-native': `^${exports.REACT_NATIVE_VERSION}`,
81
+ 'react-native-unistyles': '^3.0.15',
82
+ '@react-navigation/native': '^7.0.0',
83
+ '@react-navigation/native-stack': '^7.0.0',
84
+ 'react-native-safe-area-context': '^4.10.0',
85
+ 'react-native-screens': '^4.4.0',
86
+ 'react-native-gesture-handler': '^2.20.0',
87
+ 'react-native-reanimated': '^3.16.0',
88
+ 'react-native-vector-icons': '^10.2.0',
89
+ },
90
+ trpc: {
91
+ '@trpc/client': '^11.5.0',
92
+ '@trpc/react-query': '^11.5.0',
93
+ '@tanstack/react-query': '^5.83.0',
94
+ },
95
+ trpcServer: {
96
+ '@trpc/server': '^11.5.0',
97
+ },
98
+ graphql: {
99
+ '@apollo/client': '^3.11.0',
100
+ 'graphql': '^16.9.0',
101
+ },
102
+ graphqlServer: {
103
+ '@pothos/core': '^4.3.0',
104
+ 'graphql-yoga': '^5.10.0',
105
+ },
106
+ prisma: {
107
+ '@prisma/client': '^5.19.0',
108
+ },
109
+ prismaDev: {
110
+ 'prisma': '^5.19.0',
111
+ },
112
+ api: {
113
+ 'express': '^4.21.0',
114
+ 'cors': '^2.8.5',
115
+ 'dotenv': '^16.4.0',
116
+ 'zod': '^3.22.0',
117
+ },
118
+ };
119
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ /**
3
+ * Core generators exports
4
+ */
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
17
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
18
+ };
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ __exportStar(require("./shared"), exports);
21
+ __exportStar(require("./web"), exports);
22
+ __exportStar(require("./mobile"), exports);
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/generators/core/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;AAEH,2CAAyB;AACzB,wCAAsB;AACtB,2CAAyB"}
@@ -0,0 +1,286 @@
1
+ "use strict";
2
+ /**
3
+ * Mobile package generator
4
+ */
5
+ var __importDefault = (this && this.__importDefault) || function (mod) {
6
+ return (mod && mod.__esModule) ? mod : { "default": mod };
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.generateMobilePackage = generateMobilePackage;
10
+ const fs_extra_1 = __importDefault(require("fs-extra"));
11
+ const path_1 = __importDefault(require("path"));
12
+ const copier_1 = require("../../templates/copier");
13
+ const reactNative_1 = require("../reactNative");
14
+ const constants_1 = require("../../constants");
15
+ const logger_1 = require("../../utils/logger");
16
+ /**
17
+ * Generate the mobile package
18
+ */
19
+ async function generateMobilePackage(projectPath, options) {
20
+ const mobileDir = path_1.default.join(projectPath, 'packages', 'mobile');
21
+ logger_1.logger.info('Creating mobile package...');
22
+ // First, try to initialize React Native with proper identifiers
23
+ const rnResult = await (0, reactNative_1.initializeReactNative)({
24
+ projectName: 'mobile',
25
+ displayName: options.appDisplayName,
26
+ bundleId: options.bundleId,
27
+ packageName: options.packageName,
28
+ directory: path_1.default.join(projectPath, 'packages'),
29
+ skipInstall: options.skipInstall ?? true,
30
+ });
31
+ // Now overlay Idealyst-specific files or generate programmatically
32
+ const templatePath = (0, copier_1.getTemplatePath)('core', 'mobile');
33
+ if (await (0, copier_1.templateHasContent)(templatePath)) {
34
+ if (rnResult.success) {
35
+ // Overlay on top of RN-generated project
36
+ await (0, reactNative_1.overlayIdealystFiles)(mobileDir, templatePath, options);
37
+ }
38
+ else {
39
+ // No RN init, copy full template
40
+ await (0, copier_1.copyTemplateDirectory)(templatePath, mobileDir, options);
41
+ }
42
+ }
43
+ else {
44
+ // Generate programmatically
45
+ await generateMobileFiles(mobileDir, options, rnResult.success);
46
+ }
47
+ return {
48
+ success: true,
49
+ warning: rnResult.warning,
50
+ };
51
+ }
52
+ /**
53
+ * Generate mobile package files programmatically
54
+ */
55
+ async function generateMobileFiles(mobileDir, data, hasNative) {
56
+ // Create directory structure
57
+ await fs_extra_1.default.ensureDir(path_1.default.join(mobileDir, 'src', 'screens'));
58
+ // Create package.json
59
+ await fs_extra_1.default.writeJson(path_1.default.join(mobileDir, 'package.json'), createMobilePackageJson(data), { spaces: 2 });
60
+ // Create app.json
61
+ await fs_extra_1.default.writeJson(path_1.default.join(mobileDir, 'app.json'), createAppJson(data), { spaces: 2 });
62
+ // Create metro.config.js
63
+ await fs_extra_1.default.writeFile(path_1.default.join(mobileDir, 'metro.config.js'), createMetroConfig());
64
+ // Create babel.config.js
65
+ await fs_extra_1.default.writeFile(path_1.default.join(mobileDir, 'babel.config.js'), createBabelConfig(data));
66
+ // Create tsconfig.json
67
+ await fs_extra_1.default.writeJson(path_1.default.join(mobileDir, 'tsconfig.json'), createMobileTsConfig(), { spaces: 2 });
68
+ // Create index.js (entry point)
69
+ await fs_extra_1.default.writeFile(path_1.default.join(mobileDir, 'index.js'), createIndexJs(data));
70
+ // Create src/App.tsx
71
+ await fs_extra_1.default.writeFile(path_1.default.join(mobileDir, 'src', 'App.tsx'), createAppTsx(data));
72
+ // Create src/screens/Home.tsx
73
+ await fs_extra_1.default.writeFile(path_1.default.join(mobileDir, 'src', 'screens', 'Home.tsx'), createHomeScreen(data));
74
+ if (!hasNative) {
75
+ logger_1.logger.warn('Native folders (android/ios) were not created.');
76
+ logger_1.logger.dim('Run "npx react-native init" in the mobile directory to create them.');
77
+ }
78
+ }
79
+ /**
80
+ * Create mobile package.json
81
+ */
82
+ function createMobilePackageJson(data) {
83
+ const dependencies = {
84
+ ...constants_1.DEPENDENCIES.core,
85
+ ...constants_1.DEPENDENCIES.mobile,
86
+ [`@${data.workspaceScope}/shared`]: 'workspace:*',
87
+ };
88
+ // Add tRPC dependencies if enabled
89
+ if (data.hasTrpc) {
90
+ Object.assign(dependencies, constants_1.DEPENDENCIES.trpc);
91
+ }
92
+ // Add GraphQL dependencies if enabled
93
+ if (data.hasGraphql) {
94
+ Object.assign(dependencies, constants_1.DEPENDENCIES.graphql);
95
+ }
96
+ return {
97
+ name: `@${data.workspaceScope}/mobile`,
98
+ version: data.version,
99
+ scripts: {
100
+ 'start': 'react-native start',
101
+ 'android': 'react-native run-android',
102
+ 'ios': 'react-native run-ios',
103
+ 'test': 'jest',
104
+ },
105
+ dependencies,
106
+ devDependencies: {
107
+ '@babel/core': '^7.24.0',
108
+ '@babel/preset-env': '^7.24.0',
109
+ '@babel/runtime': '^7.24.0',
110
+ '@react-native/babel-preset': '^0.83.0',
111
+ '@react-native/eslint-config': '^0.83.0',
112
+ '@react-native/metro-config': '^0.83.0',
113
+ '@react-native/typescript-config': '^0.83.0',
114
+ '@types/react': '^18.2.0',
115
+ 'jest': '^29.7.0',
116
+ 'typescript': '^5.0.0',
117
+ },
118
+ };
119
+ }
120
+ /**
121
+ * Create app.json
122
+ */
123
+ function createAppJson(data) {
124
+ return {
125
+ name: data.appDisplayName.replace(/\s+/g, ''),
126
+ displayName: data.appDisplayName,
127
+ };
128
+ }
129
+ /**
130
+ * Create metro.config.js
131
+ */
132
+ function createMetroConfig() {
133
+ return `const { getDefaultConfig, mergeConfig } = require('@react-native/metro-config');
134
+ const path = require('path');
135
+
136
+ const projectRoot = __dirname;
137
+ const monorepoRoot = path.resolve(projectRoot, '../..');
138
+
139
+ const config = {
140
+ watchFolders: [monorepoRoot],
141
+ resolver: {
142
+ nodeModulesPaths: [
143
+ path.resolve(projectRoot, 'node_modules'),
144
+ path.resolve(monorepoRoot, 'node_modules'),
145
+ ],
146
+ sourceExts: ['native.tsx', 'native.ts', 'tsx', 'ts', 'native.jsx', 'native.js', 'jsx', 'js', 'json', 'cjs'],
147
+ },
148
+ };
149
+
150
+ module.exports = mergeConfig(getDefaultConfig(__dirname), config);
151
+ `;
152
+ }
153
+ /**
154
+ * Create babel.config.js
155
+ */
156
+ function createBabelConfig(data) {
157
+ return `module.exports = {
158
+ presets: ['module:@react-native/babel-preset'],
159
+ plugins: [
160
+ ['@idealyst/theme/plugin', {
161
+ themePath: '../shared/src/theme.ts',
162
+ autoProcessPaths: [
163
+ '@idealyst/components',
164
+ '@${data.workspaceScope}/shared',
165
+ ],
166
+ }],
167
+ ['react-native-unistyles/plugin', {
168
+ autoProcessPaths: [
169
+ '@idealyst/components',
170
+ '@${data.workspaceScope}/shared',
171
+ ],
172
+ }],
173
+ 'react-native-worklets/plugin',
174
+ ],
175
+ };
176
+ `;
177
+ }
178
+ /**
179
+ * Create mobile tsconfig.json
180
+ */
181
+ function createMobileTsConfig() {
182
+ return {
183
+ extends: '@react-native/typescript-config/tsconfig.json',
184
+ compilerOptions: {
185
+ paths: {
186
+ '@/*': ['./src/*'],
187
+ },
188
+ },
189
+ include: ['src/**/*', 'index.js'],
190
+ exclude: ['node_modules', 'android', 'ios'],
191
+ };
192
+ }
193
+ /**
194
+ * Create index.js (entry point)
195
+ */
196
+ function createIndexJs(data) {
197
+ return `// Import shared theme configuration FIRST (initializes unistyles before any StyleSheet.create)
198
+ import '@${data.workspaceScope}/shared/theme';
199
+
200
+ import { AppRegistry } from 'react-native';
201
+ import App from './src/App';
202
+ import { name as appName } from './app.json';
203
+
204
+ AppRegistry.registerComponent(appName, () => App);
205
+ `;
206
+ }
207
+ /**
208
+ * Create App.tsx
209
+ */
210
+ function createAppTsx(data) {
211
+ const imports = [
212
+ `import React from 'react';`,
213
+ `import { NavigationContainer } from '@react-navigation/native';`,
214
+ `import { createNativeStackNavigator } from '@react-navigation/native-stack';`,
215
+ `import { ThemeProvider } from '@idealyst/theme';`,
216
+ `import Home from './screens/Home';`,
217
+ ];
218
+ if (data.hasTrpc) {
219
+ imports.push(`import { QueryClient, QueryClientProvider } from '@tanstack/react-query';`);
220
+ imports.push(`import { trpc, trpcClient } from './utils/trpc';`);
221
+ }
222
+ let appContent = `
223
+ const Stack = createNativeStackNavigator();
224
+
225
+ export default function App() {
226
+ return (
227
+ <ThemeProvider>
228
+ <NavigationContainer>
229
+ <Stack.Navigator>
230
+ <Stack.Screen
231
+ name="Home"
232
+ component={Home}
233
+ options={{ title: '${data.appDisplayName}' }}
234
+ />
235
+ </Stack.Navigator>
236
+ </NavigationContainer>
237
+ </ThemeProvider>
238
+ );
239
+ }
240
+ `;
241
+ if (data.hasTrpc) {
242
+ appContent = `
243
+ const Stack = createNativeStackNavigator();
244
+ const queryClient = new QueryClient();
245
+
246
+ export default function App() {
247
+ return (
248
+ <trpc.Provider client={trpcClient} queryClient={queryClient}>
249
+ <QueryClientProvider client={queryClient}>
250
+ <ThemeProvider>
251
+ <NavigationContainer>
252
+ <Stack.Navigator>
253
+ <Stack.Screen
254
+ name="Home"
255
+ component={Home}
256
+ options={{ title: '${data.appDisplayName}' }}
257
+ />
258
+ </Stack.Navigator>
259
+ </NavigationContainer>
260
+ </ThemeProvider>
261
+ </QueryClientProvider>
262
+ </trpc.Provider>
263
+ );
264
+ }
265
+ `;
266
+ }
267
+ return imports.join('\n') + '\n' + appContent;
268
+ }
269
+ /**
270
+ * Create Home screen
271
+ */
272
+ function createHomeScreen(data) {
273
+ return `import React from 'react';
274
+ import { HelloWorld } from '@${data.workspaceScope}/shared';
275
+
276
+ export default function Home() {
277
+ return (
278
+ <HelloWorld
279
+ name="${data.appDisplayName}"
280
+ onPress={() => console.log('Get Started pressed!')}
281
+ />
282
+ );
283
+ }
284
+ `;
285
+ }
286
+ //# sourceMappingURL=mobile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mobile.js","sourceRoot":"","sources":["../../../src/generators/core/mobile.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,207 @@
1
+ "use strict";
2
+ /**
3
+ * Shared package generator
4
+ */
5
+ var __importDefault = (this && this.__importDefault) || function (mod) {
6
+ return (mod && mod.__esModule) ? mod : { "default": mod };
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.generateSharedPackage = generateSharedPackage;
10
+ const fs_extra_1 = __importDefault(require("fs-extra"));
11
+ const path_1 = __importDefault(require("path"));
12
+ const copier_1 = require("../../templates/copier");
13
+ const constants_1 = require("../../constants");
14
+ const logger_1 = require("../../utils/logger");
15
+ /**
16
+ * Generate the shared package
17
+ */
18
+ async function generateSharedPackage(projectPath, data) {
19
+ const sharedDir = path_1.default.join(projectPath, 'packages', 'shared');
20
+ logger_1.logger.info('Creating shared package...');
21
+ await fs_extra_1.default.ensureDir(sharedDir);
22
+ // Try to use template first, or generate programmatically
23
+ const templatePath = (0, copier_1.getTemplatePath)('core', 'shared');
24
+ if (await (0, copier_1.templateHasContent)(templatePath)) {
25
+ await (0, copier_1.copyTemplateDirectory)(templatePath, sharedDir, data);
26
+ }
27
+ else {
28
+ // Generate programmatically
29
+ await generateSharedFiles(sharedDir, data);
30
+ }
31
+ return { success: true };
32
+ }
33
+ /**
34
+ * Generate shared package files programmatically
35
+ */
36
+ async function generateSharedFiles(sharedDir, data) {
37
+ // Create directory structure
38
+ await fs_extra_1.default.ensureDir(path_1.default.join(sharedDir, 'src', 'components'));
39
+ await fs_extra_1.default.ensureDir(path_1.default.join(sharedDir, 'src', 'utils'));
40
+ // Create package.json
41
+ await fs_extra_1.default.writeJson(path_1.default.join(sharedDir, 'package.json'), createSharedPackageJson(data), { spaces: 2 });
42
+ // Create tsconfig.json
43
+ await fs_extra_1.default.writeJson(path_1.default.join(sharedDir, 'tsconfig.json'), createSharedTsConfig(), { spaces: 2 });
44
+ // Create src/index.ts
45
+ await fs_extra_1.default.writeFile(path_1.default.join(sharedDir, 'src', 'index.ts'), createSharedIndex());
46
+ // Create src/theme.ts
47
+ await fs_extra_1.default.writeFile(path_1.default.join(sharedDir, 'src', 'theme.ts'), createThemeConfig());
48
+ // Create src/components/HelloWorld.tsx
49
+ await fs_extra_1.default.writeFile(path_1.default.join(sharedDir, 'src', 'components', 'HelloWorld.tsx'), createHelloWorldComponent());
50
+ // Create src/components/index.ts
51
+ await fs_extra_1.default.writeFile(path_1.default.join(sharedDir, 'src', 'components', 'index.ts'), `export * from './HelloWorld';\n`);
52
+ }
53
+ /**
54
+ * Create shared package.json
55
+ */
56
+ function createSharedPackageJson(data) {
57
+ const dependencies = {};
58
+ const peerDependencies = {
59
+ ...constants_1.DEPENDENCIES.core,
60
+ 'react': `^${constants_1.DEPENDENCIES.web.react}`,
61
+ 'react-native': `^${constants_1.DEPENDENCIES.mobile['react-native']}`,
62
+ };
63
+ // Add tRPC dependencies if enabled
64
+ if (data.hasTrpc) {
65
+ Object.assign(dependencies, constants_1.DEPENDENCIES.trpc);
66
+ }
67
+ // Add GraphQL dependencies if enabled
68
+ if (data.hasGraphql) {
69
+ Object.assign(dependencies, constants_1.DEPENDENCIES.graphql);
70
+ }
71
+ return {
72
+ name: `@${data.workspaceScope}/shared`,
73
+ version: data.version,
74
+ main: 'src/index.ts',
75
+ types: 'src/index.ts',
76
+ exports: {
77
+ '.': './src/index.ts',
78
+ './theme': './src/theme.ts',
79
+ },
80
+ scripts: {
81
+ 'build': 'tsc',
82
+ 'test': 'jest',
83
+ },
84
+ dependencies,
85
+ peerDependencies,
86
+ devDependencies: {
87
+ 'typescript': '^5.0.0',
88
+ '@types/react': '^18.2.0',
89
+ },
90
+ };
91
+ }
92
+ /**
93
+ * Create shared tsconfig.json
94
+ */
95
+ function createSharedTsConfig() {
96
+ return {
97
+ extends: '../../tsconfig.json',
98
+ compilerOptions: {
99
+ outDir: './dist',
100
+ rootDir: './src',
101
+ jsx: 'react-jsx',
102
+ },
103
+ include: ['src/**/*'],
104
+ exclude: ['node_modules', 'dist'],
105
+ };
106
+ }
107
+ /**
108
+ * Create shared index.ts
109
+ */
110
+ function createSharedIndex() {
111
+ return `/**
112
+ * Shared package exports
113
+ */
114
+
115
+ export * from './components';
116
+
117
+ // Re-export Idealyst components for convenience
118
+ export * from '@idealyst/components';
119
+ export * from '@idealyst/theme';
120
+ `;
121
+ }
122
+ /**
123
+ * Create theme configuration
124
+ */
125
+ function createThemeConfig() {
126
+ return `/**
127
+ * Theme configuration for the application
128
+ */
129
+
130
+ import { StyleSheet } from 'react-native-unistyles';
131
+ import { fromTheme, lightTheme, darkTheme } from '@idealyst/theme';
132
+
133
+ // Configure unistyles with the Idealyst themes
134
+ // fromTheme().build() is required for babel transpilation
135
+ StyleSheet.configure({
136
+ themes: {
137
+ light: fromTheme(lightTheme).build(),
138
+ dark: fromTheme(darkTheme).build(),
139
+ },
140
+ settings: {
141
+ initialTheme: 'light',
142
+ },
143
+ });
144
+
145
+ export { StyleSheet };
146
+ `;
147
+ }
148
+ /**
149
+ * Create HelloWorld component
150
+ */
151
+ function createHelloWorldComponent() {
152
+ return `/**
153
+ * Hello World component - demonstrates cross-platform usage
154
+ */
155
+
156
+ import React from 'react';
157
+ import { View, Text, Button } from '@idealyst/components';
158
+ import { useUnistyles } from 'react-native-unistyles';
159
+
160
+ export interface HelloWorldProps {
161
+ name?: string;
162
+ onPress?: () => void;
163
+ }
164
+
165
+ export function HelloWorld({ name = 'World', onPress }: HelloWorldProps) {
166
+ const { theme } = useUnistyles();
167
+
168
+ return (
169
+ <View
170
+ style={{
171
+ flex: 1,
172
+ justifyContent: 'center',
173
+ alignItems: 'center',
174
+ padding: 24,
175
+ backgroundColor: theme.colors.surface.primary,
176
+ }}
177
+ >
178
+ <Text
179
+ style={{
180
+ fontSize: 24,
181
+ fontWeight: 'bold',
182
+ color: theme.colors.text.primary,
183
+ marginBottom: 8,
184
+ }}
185
+ >
186
+ Hello, {name}!
187
+ </Text>
188
+ <Text
189
+ style={{
190
+ fontSize: 16,
191
+ color: theme.colors.text.secondary,
192
+ marginBottom: 24,
193
+ }}
194
+ >
195
+ Built with Idealyst Framework
196
+ </Text>
197
+ {onPress && (
198
+ <Button onPress={onPress} intent="primary">
199
+ Get Started
200
+ </Button>
201
+ )}
202
+ </View>
203
+ );
204
+ }
205
+ `;
206
+ }
207
+ //# sourceMappingURL=shared.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../src/generators/core/shared.ts"],"names":[],"mappings":"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"}