@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,202 @@
1
+ "use strict";
2
+ /**
3
+ * GraphQL extension 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.applyGraphqlExtension = applyGraphqlExtension;
10
+ const fs_extra_1 = __importDefault(require("fs-extra"));
11
+ const path_1 = __importDefault(require("path"));
12
+ const merger_1 = require("../../templates/merger");
13
+ const constants_1 = require("../../constants");
14
+ const logger_1 = require("../../utils/logger");
15
+ /**
16
+ * Apply GraphQL extension to a workspace
17
+ */
18
+ async function applyGraphqlExtension(projectPath, data) {
19
+ logger_1.logger.info('Configuring GraphQL...');
20
+ // Add GraphQL to API package
21
+ await addGraphqlToApi(projectPath, data);
22
+ // Add GraphQL client to web package
23
+ await addGraphqlToWeb(projectPath, data);
24
+ // Add GraphQL client to mobile package
25
+ await addGraphqlToMobile(projectPath, data);
26
+ return { success: true };
27
+ }
28
+ /**
29
+ * Add GraphQL server setup to API package
30
+ */
31
+ async function addGraphqlToApi(projectPath, data) {
32
+ const apiDir = path_1.default.join(projectPath, 'packages', 'api');
33
+ const graphqlDir = path_1.default.join(apiDir, 'src', 'graphql');
34
+ await fs_extra_1.default.ensureDir(graphqlDir);
35
+ await fs_extra_1.default.ensureDir(path_1.default.join(graphqlDir, 'resolvers'));
36
+ // Create schema.ts
37
+ await fs_extra_1.default.writeFile(path_1.default.join(graphqlDir, 'schema.ts'), createGraphqlSchema(data));
38
+ // Create builder.ts (Pothos schema builder)
39
+ await fs_extra_1.default.writeFile(path_1.default.join(graphqlDir, 'builder.ts'), createPothosBuilder(data));
40
+ // Create resolvers/index.ts
41
+ await fs_extra_1.default.writeFile(path_1.default.join(graphqlDir, 'resolvers', 'index.ts'), createExampleResolvers(data));
42
+ // Add dependencies
43
+ await (0, merger_1.addDependencies)(path_1.default.join(apiDir, 'package.json'), constants_1.DEPENDENCIES.graphqlServer);
44
+ }
45
+ /**
46
+ * Add GraphQL client to web package
47
+ */
48
+ async function addGraphqlToWeb(projectPath, data) {
49
+ const webDir = path_1.default.join(projectPath, 'packages', 'web');
50
+ const graphqlDir = path_1.default.join(webDir, 'src', 'graphql');
51
+ await fs_extra_1.default.ensureDir(graphqlDir);
52
+ // Create client.ts
53
+ await fs_extra_1.default.writeFile(path_1.default.join(graphqlDir, 'client.ts'), createGraphqlClient('web'));
54
+ // Add dependencies
55
+ await (0, merger_1.addDependencies)(path_1.default.join(webDir, 'package.json'), constants_1.DEPENDENCIES.graphql);
56
+ }
57
+ /**
58
+ * Add GraphQL client to mobile package
59
+ */
60
+ async function addGraphqlToMobile(projectPath, data) {
61
+ const mobileDir = path_1.default.join(projectPath, 'packages', 'mobile');
62
+ const graphqlDir = path_1.default.join(mobileDir, 'src', 'graphql');
63
+ await fs_extra_1.default.ensureDir(graphqlDir);
64
+ // Create client.ts
65
+ await fs_extra_1.default.writeFile(path_1.default.join(graphqlDir, 'client.ts'), createGraphqlClient('mobile'));
66
+ // Add dependencies
67
+ await (0, merger_1.addDependencies)(path_1.default.join(mobileDir, 'package.json'), constants_1.DEPENDENCIES.graphql);
68
+ }
69
+ /**
70
+ * Create GraphQL schema with Pothos
71
+ */
72
+ function createGraphqlSchema(data) {
73
+ return `/**
74
+ * GraphQL schema
75
+ */
76
+
77
+ import { builder } from './builder';
78
+ import './resolvers';
79
+
80
+ export const schema = builder.toSchema();
81
+ `;
82
+ }
83
+ /**
84
+ * Create Pothos schema builder
85
+ */
86
+ function createPothosBuilder(data) {
87
+ let imports = `import SchemaBuilder from '@pothos/core';`;
88
+ let builderConfig = '';
89
+ if (data.hasPrisma) {
90
+ imports += `
91
+ import PrismaPlugin from '@pothos/plugin-prisma';
92
+ import type PrismaTypes from '@pothos/plugin-prisma/generated';
93
+ import { prisma } from '@${data.workspaceScope}/database';`;
94
+ builderConfig = `
95
+ plugins: [PrismaPlugin],
96
+ prisma: {
97
+ client: prisma,
98
+ },`;
99
+ }
100
+ return `/**
101
+ * Pothos schema builder
102
+ */
103
+
104
+ ${imports}
105
+
106
+ export const builder = new SchemaBuilder<{
107
+ Context: {
108
+ ${data.hasPrisma ? ' prisma: typeof prisma;' : ''}
109
+ };${data.hasPrisma ? `
110
+ PrismaTypes: PrismaTypes;` : ''}
111
+ }>({${builderConfig}
112
+ });
113
+
114
+ // Initialize Query and Mutation types
115
+ builder.queryType({});
116
+ builder.mutationType({});
117
+ `;
118
+ }
119
+ /**
120
+ * Create example resolvers
121
+ */
122
+ function createExampleResolvers(data) {
123
+ return `/**
124
+ * Example GraphQL resolvers
125
+ */
126
+
127
+ import { builder } from '../builder';
128
+
129
+ // Health check query
130
+ builder.queryField('health', (t) =>
131
+ t.field({
132
+ type: 'String',
133
+ resolve: () => 'GraphQL API is healthy!',
134
+ })
135
+ );
136
+
137
+ // Hello query with argument
138
+ builder.queryField('hello', (t) =>
139
+ t.field({
140
+ type: 'String',
141
+ args: {
142
+ name: t.arg.string(),
143
+ },
144
+ resolve: (_, { name }) => \`Hello, \${name || 'World'}!\`,
145
+ })
146
+ );
147
+
148
+ // Example mutation
149
+ builder.mutationField('echo', (t) =>
150
+ t.field({
151
+ type: 'String',
152
+ args: {
153
+ message: t.arg.string({ required: true }),
154
+ },
155
+ resolve: (_, { message }) => message,
156
+ })
157
+ );
158
+ ${data.hasPrisma ? `
159
+ // Example User type (uncomment to use with Prisma)
160
+ // builder.prismaObject('User', {
161
+ // fields: (t) => ({
162
+ // id: t.exposeID('id'),
163
+ // email: t.exposeString('email'),
164
+ // name: t.exposeString('name', { nullable: true }),
165
+ // posts: t.relation('posts'),
166
+ // }),
167
+ // });
168
+ ` : ''}
169
+ `;
170
+ }
171
+ /**
172
+ * Create GraphQL client
173
+ */
174
+ function createGraphqlClient(platform) {
175
+ const apiUrl = platform === 'mobile'
176
+ ? 'http://10.0.2.2:3000/graphql'
177
+ : 'http://localhost:3000/graphql';
178
+ return `/**
179
+ * Apollo GraphQL client for ${platform}
180
+ */
181
+
182
+ import { ApolloClient, InMemoryCache, HttpLink } from '@apollo/client';
183
+
184
+ const httpLink = new HttpLink({
185
+ uri: process.env.${platform === 'web' ? 'VITE_' : ''}GRAPHQL_URL || '${apiUrl}',
186
+ });
187
+
188
+ export const apolloClient = new ApolloClient({
189
+ link: httpLink,
190
+ cache: new InMemoryCache(),
191
+ defaultOptions: {
192
+ watchQuery: {
193
+ fetchPolicy: 'cache-and-network',
194
+ },
195
+ },
196
+ });
197
+
198
+ // Re-export common hooks
199
+ export { gql, useQuery, useMutation, useLazyQuery } from '@apollo/client';
200
+ `;
201
+ }
202
+ //# sourceMappingURL=graphql.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphql.js","sourceRoot":"","sources":["../../../src/generators/extensions/graphql.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ /**
3
+ * Extension generators exports
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.applyDevcontainerExtension = exports.applyGraphqlExtension = exports.applyTrpcExtension = exports.applyPrismaExtension = exports.applyApiExtension = void 0;
7
+ var api_1 = require("./api");
8
+ Object.defineProperty(exports, "applyApiExtension", { enumerable: true, get: function () { return api_1.applyApiExtension; } });
9
+ var prisma_1 = require("./prisma");
10
+ Object.defineProperty(exports, "applyPrismaExtension", { enumerable: true, get: function () { return prisma_1.applyPrismaExtension; } });
11
+ var trpc_1 = require("./trpc");
12
+ Object.defineProperty(exports, "applyTrpcExtension", { enumerable: true, get: function () { return trpc_1.applyTrpcExtension; } });
13
+ var graphql_1 = require("./graphql");
14
+ Object.defineProperty(exports, "applyGraphqlExtension", { enumerable: true, get: function () { return graphql_1.applyGraphqlExtension; } });
15
+ var devcontainer_1 = require("./devcontainer");
16
+ Object.defineProperty(exports, "applyDevcontainerExtension", { enumerable: true, get: function () { return devcontainer_1.applyDevcontainerExtension; } });
17
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/generators/extensions/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,6BAA0C;AAAjC,wGAAA,iBAAiB,OAAA;AAC1B,mCAAgD;AAAvC,8GAAA,oBAAoB,OAAA;AAC7B,+BAA4C;AAAnC,0GAAA,kBAAkB,OAAA;AAC3B,qCAAkD;AAAzC,gHAAA,qBAAqB,OAAA;AAC9B,+CAA4D;AAAnD,0HAAA,0BAA0B,OAAA"}
@@ -0,0 +1,249 @@
1
+ "use strict";
2
+ /**
3
+ * Prisma extension 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.applyPrismaExtension = applyPrismaExtension;
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 merger_1 = require("../../templates/merger");
14
+ const constants_1 = require("../../constants");
15
+ const logger_1 = require("../../utils/logger");
16
+ /**
17
+ * Apply Prisma extension to a workspace
18
+ */
19
+ async function applyPrismaExtension(projectPath, data) {
20
+ const dbDir = path_1.default.join(projectPath, 'packages', 'database');
21
+ logger_1.logger.info('Creating database package...');
22
+ await fs_extra_1.default.ensureDir(dbDir);
23
+ // Try to use template first, or generate programmatically
24
+ const templatePath = (0, copier_1.getTemplatePath)('extensions', 'prisma');
25
+ if (await (0, copier_1.templateHasContent)(templatePath)) {
26
+ await (0, copier_1.copyTemplateDirectory)(templatePath, dbDir, data);
27
+ }
28
+ else {
29
+ // Generate programmatically
30
+ await generatePrismaFiles(dbDir, data);
31
+ }
32
+ // Add database scripts to root package.json
33
+ await (0, merger_1.addScripts)(path_1.default.join(projectPath, 'package.json'), {
34
+ 'db:generate': `yarn workspace @${data.workspaceScope}/database db:generate`,
35
+ 'db:push': `yarn workspace @${data.workspaceScope}/database db:push`,
36
+ 'db:migrate': `yarn workspace @${data.workspaceScope}/database db:migrate`,
37
+ 'db:studio': `yarn workspace @${data.workspaceScope}/database db:studio`,
38
+ 'db:seed': `yarn workspace @${data.workspaceScope}/database db:seed`,
39
+ });
40
+ return { success: true };
41
+ }
42
+ /**
43
+ * Generate Prisma package files programmatically
44
+ */
45
+ async function generatePrismaFiles(dbDir, data) {
46
+ // Create directory structure
47
+ await fs_extra_1.default.ensureDir(path_1.default.join(dbDir, 'prisma'));
48
+ await fs_extra_1.default.ensureDir(path_1.default.join(dbDir, 'src'));
49
+ // Create package.json
50
+ await fs_extra_1.default.writeJson(path_1.default.join(dbDir, 'package.json'), createPrismaPackageJson(data), { spaces: 2 });
51
+ // Create tsconfig.json
52
+ await fs_extra_1.default.writeJson(path_1.default.join(dbDir, 'tsconfig.json'), createPrismaTsConfig(), { spaces: 2 });
53
+ // Create prisma/schema.prisma
54
+ await fs_extra_1.default.writeFile(path_1.default.join(dbDir, 'prisma', 'schema.prisma'), createPrismaSchema());
55
+ // Create src/index.ts
56
+ await fs_extra_1.default.writeFile(path_1.default.join(dbDir, 'src', 'index.ts'), createPrismaIndex());
57
+ // Create src/schemas.ts
58
+ await fs_extra_1.default.writeFile(path_1.default.join(dbDir, 'src', 'schemas.ts'), createZodSchemas());
59
+ // Create .env.example
60
+ await fs_extra_1.default.writeFile(path_1.default.join(dbDir, '.env.example'), 'DATABASE_URL="postgresql://user:password@localhost:5432/mydb"\n');
61
+ }
62
+ /**
63
+ * Create Prisma package.json
64
+ */
65
+ function createPrismaPackageJson(data) {
66
+ return {
67
+ name: `@${data.workspaceScope}/database`,
68
+ version: data.version,
69
+ main: 'src/index.ts',
70
+ types: 'src/index.ts',
71
+ exports: {
72
+ '.': './src/index.ts',
73
+ './client': './src/index.ts',
74
+ './schemas': './src/schemas.ts',
75
+ },
76
+ scripts: {
77
+ 'build': 'tsc',
78
+ 'db:generate': 'prisma generate',
79
+ 'db:push': 'prisma db push',
80
+ 'db:migrate': 'prisma migrate dev',
81
+ 'db:studio': 'prisma studio',
82
+ 'db:seed': 'tsx prisma/seed.ts',
83
+ },
84
+ dependencies: {
85
+ ...constants_1.DEPENDENCIES.prisma,
86
+ 'zod': '^3.22.0',
87
+ },
88
+ devDependencies: {
89
+ ...constants_1.DEPENDENCIES.prismaDev,
90
+ 'tsx': '^4.7.0',
91
+ 'typescript': '^5.0.0',
92
+ },
93
+ };
94
+ }
95
+ /**
96
+ * Create Prisma tsconfig.json
97
+ */
98
+ function createPrismaTsConfig() {
99
+ return {
100
+ compilerOptions: {
101
+ target: 'ES2020',
102
+ module: 'commonjs',
103
+ moduleResolution: 'node',
104
+ esModuleInterop: true,
105
+ strict: true,
106
+ skipLibCheck: true,
107
+ outDir: './dist',
108
+ rootDir: './src',
109
+ declaration: true,
110
+ },
111
+ include: ['src/**/*'],
112
+ exclude: ['node_modules', 'dist'],
113
+ };
114
+ }
115
+ /**
116
+ * Create Prisma schema
117
+ */
118
+ function createPrismaSchema() {
119
+ return `// This is your Prisma schema file
120
+ // Learn more: https://pris.ly/d/prisma-schema
121
+
122
+ generator client {
123
+ provider = "prisma-client-js"
124
+ }
125
+
126
+ datasource db {
127
+ provider = "postgresql"
128
+ url = env("DATABASE_URL")
129
+ }
130
+
131
+ // Example models - customize for your app
132
+
133
+ model User {
134
+ id String @id @default(cuid())
135
+ email String @unique
136
+ name String?
137
+ avatar String?
138
+ bio String?
139
+ posts Post[]
140
+ settings UserSettings?
141
+ createdAt DateTime @default(now())
142
+ updatedAt DateTime @updatedAt
143
+ }
144
+
145
+ model Post {
146
+ id String @id @default(cuid())
147
+ title String
148
+ content String?
149
+ published Boolean @default(false)
150
+ author User @relation(fields: [authorId], references: [id])
151
+ authorId String
152
+ comments Comment[]
153
+ createdAt DateTime @default(now())
154
+ updatedAt DateTime @updatedAt
155
+ }
156
+
157
+ model Comment {
158
+ id String @id @default(cuid())
159
+ content String
160
+ post Post @relation(fields: [postId], references: [id])
161
+ postId String
162
+ createdAt DateTime @default(now())
163
+ }
164
+
165
+ model UserSettings {
166
+ id String @id @default(cuid())
167
+ user User @relation(fields: [userId], references: [id])
168
+ userId String @unique
169
+ theme String @default("light")
170
+ notifications Boolean @default(true)
171
+ }
172
+ `;
173
+ }
174
+ /**
175
+ * Create Prisma index.ts
176
+ */
177
+ function createPrismaIndex() {
178
+ return `/**
179
+ * Database package exports
180
+ */
181
+
182
+ import { PrismaClient } from '@prisma/client';
183
+
184
+ // Prevent multiple instances of Prisma Client in development
185
+ declare global {
186
+ var __prisma: PrismaClient | undefined;
187
+ }
188
+
189
+ export const prisma = globalThis.__prisma || new PrismaClient();
190
+
191
+ if (process.env.NODE_ENV !== 'production') {
192
+ globalThis.__prisma = prisma;
193
+ }
194
+
195
+ export { PrismaClient };
196
+ export * from '@prisma/client';
197
+ `;
198
+ }
199
+ /**
200
+ * Create Zod schemas
201
+ */
202
+ function createZodSchemas() {
203
+ return `/**
204
+ * Zod validation schemas for database models
205
+ */
206
+
207
+ import { z } from 'zod';
208
+
209
+ // User schemas
210
+ export const createUserSchema = z.object({
211
+ email: z.string().email(),
212
+ name: z.string().min(1).optional(),
213
+ avatar: z.string().url().optional(),
214
+ bio: z.string().max(500).optional(),
215
+ });
216
+
217
+ export const updateUserSchema = createUserSchema.partial();
218
+
219
+ // Post schemas
220
+ export const createPostSchema = z.object({
221
+ title: z.string().min(1).max(200),
222
+ content: z.string().optional(),
223
+ published: z.boolean().default(false),
224
+ });
225
+
226
+ export const updatePostSchema = createPostSchema.partial();
227
+
228
+ // Comment schemas
229
+ export const createCommentSchema = z.object({
230
+ content: z.string().min(1).max(1000),
231
+ postId: z.string(),
232
+ });
233
+
234
+ // UserSettings schemas
235
+ export const updateUserSettingsSchema = z.object({
236
+ theme: z.enum(['light', 'dark']).optional(),
237
+ notifications: z.boolean().optional(),
238
+ });
239
+
240
+ // Export types
241
+ export type CreateUser = z.infer<typeof createUserSchema>;
242
+ export type UpdateUser = z.infer<typeof updateUserSchema>;
243
+ export type CreatePost = z.infer<typeof createPostSchema>;
244
+ export type UpdatePost = z.infer<typeof updatePostSchema>;
245
+ export type CreateComment = z.infer<typeof createCommentSchema>;
246
+ export type UpdateUserSettings = z.infer<typeof updateUserSettingsSchema>;
247
+ `;
248
+ }
249
+ //# sourceMappingURL=prisma.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prisma.js","sourceRoot":"","sources":["../../../src/generators/extensions/prisma.ts"],"names":[],"mappings":"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"}