@idealyst/cli 1.2.31 → 1.2.33

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 (38) hide show
  1. package/dist/constants.js +5 -1
  2. package/dist/constants.js.map +1 -1
  3. package/dist/generators/core/shared.js +382 -4
  4. package/dist/generators/core/shared.js.map +1 -1
  5. package/dist/generators/extensions/graphql.js +112 -26
  6. package/dist/generators/extensions/graphql.js.map +1 -1
  7. package/dist/generators/extensions/prisma.js +105 -16
  8. package/dist/generators/extensions/prisma.js.map +1 -1
  9. package/dist/generators/extensions/trpc.js +137 -41
  10. package/dist/generators/extensions/trpc.js.map +1 -1
  11. package/dist/templates/core/api/src-graphql/builder.ts +25 -0
  12. package/dist/templates/core/api/src-graphql/schema.ts +217 -0
  13. package/dist/templates/core/api/src-trpc/context.ts +15 -0
  14. package/dist/templates/core/api/src-trpc/index.ts +6 -0
  15. package/dist/templates/core/api/src-trpc/lib/database.ts +4 -0
  16. package/dist/templates/core/api/src-trpc/router/index.ts +187 -0
  17. package/dist/templates/core/api/src-trpc/server.ts +63 -0
  18. package/dist/templates/core/api/src-trpc/trpc.ts +20 -0
  19. package/dist/templates/core/database/schema.prisma +22 -0
  20. package/dist/templates/core/shared/src/index.ts +1 -1
  21. package/dist/templates/core/shared/src-components/App.tsx +51 -0
  22. package/dist/templates/core/shared/src-graphql/client.ts +70 -0
  23. package/dist/templates/core/shared/{src/navigation → src-navigation}/AppRouter.tsx +34 -0
  24. package/dist/templates/core/shared/src-screens-graphql/GraphQLDemoScreen.tsx +354 -0
  25. package/dist/templates/core/shared/src-screens-trpc/TRPCDemoScreen.tsx +432 -0
  26. package/dist/templates/core/shared/src-trpc/client.ts +44 -0
  27. package/dist/types/constants.d.ts +9 -5
  28. package/package.json +1 -1
  29. package/dist/templates/core/shared/src/components/App.tsx +0 -13
  30. package/dist/templates/core/shared/src/screens/index.ts +0 -4
  31. /package/dist/templates/core/shared/src/{styles.ts → theme.ts} +0 -0
  32. /package/dist/templates/core/shared/{src/components → src-components}/index.ts +0 -0
  33. /package/dist/templates/core/shared/{src/layouts → src-layouts}/AppLayout.tsx +0 -0
  34. /package/dist/templates/core/shared/{src/navigation → src-navigation}/index.ts +0 -0
  35. /package/dist/templates/core/shared/{src/screens → src-screens}/ExploreScreen.tsx +0 -0
  36. /package/dist/templates/core/shared/{src/screens → src-screens}/HomeScreen.tsx +0 -0
  37. /package/dist/templates/core/shared/{src/screens → src-screens}/ProfileScreen.tsx +0 -0
  38. /package/dist/templates/core/shared/{src/screens → src-screens}/SettingsScreen.tsx +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"graphql.js","sourceRoot":"","sources":["../../../src/generators/extensions/graphql.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"graphql.js","sourceRoot":"","sources":["../../../src/generators/extensions/graphql.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,39 @@
2
2
  /**
3
3
  * Prisma extension generator
4
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
18
+ }) : function(o, v) {
19
+ o["default"] = v;
20
+ });
21
+ var __importStar = (this && this.__importStar) || (function () {
22
+ var ownKeys = function(o) {
23
+ ownKeys = Object.getOwnPropertyNames || function (o) {
24
+ var ar = [];
25
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
26
+ return ar;
27
+ };
28
+ return ownKeys(o);
29
+ };
30
+ return function (mod) {
31
+ if (mod && mod.__esModule) return mod;
32
+ var result = {};
33
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
34
+ __setModuleDefault(result, mod);
35
+ return result;
36
+ };
37
+ })();
5
38
  var __importDefault = (this && this.__importDefault) || function (mod) {
6
39
  return (mod && mod.__esModule) ? mod : { "default": mod };
7
40
  };
@@ -46,32 +79,85 @@ async function generatePrismaFiles(dbDir, data) {
46
79
  // Create directory structure
47
80
  await fs_extra_1.default.ensureDir(path_1.default.join(dbDir, 'prisma'));
48
81
  await fs_extra_1.default.ensureDir(path_1.default.join(dbDir, 'src'));
82
+ // Determine database provider based on devcontainer setting
83
+ const usePostgres = data.hasDevcontainer;
84
+ const dbProvider = usePostgres ? 'postgresql' : 'sqlite';
49
85
  // Create package.json
50
86
  await fs_extra_1.default.writeJson(path_1.default.join(dbDir, 'package.json'), createPrismaPackageJson(data), { spaces: 2 });
51
87
  // Create tsconfig.json
52
88
  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());
89
+ // Try to use template schema.prisma, or generate programmatically
90
+ const templateSchemaPath = (0, copier_1.getTemplatePath)('core', 'database', 'schema.prisma');
91
+ if (await fs_extra_1.default.pathExists(templateSchemaPath)) {
92
+ // Read template schema and adjust provider
93
+ let schemaContent = await fs_extra_1.default.readFile(templateSchemaPath, 'utf8');
94
+ // Replace provider based on devcontainer setting
95
+ if (usePostgres) {
96
+ schemaContent = schemaContent.replace(/provider\s*=\s*"sqlite"/g, 'provider = "postgresql"');
97
+ }
98
+ // Add pothos generator if GraphQL is enabled
99
+ if (data.hasGraphql) {
100
+ // Insert pothos generator after the client generator
101
+ const pothosGenerator = `
102
+ generator pothos {
103
+ provider = "prisma-pothos-types"
104
+ output = "./generated/pothos.ts"
105
+ clientOutput = "./client"
106
+ }
107
+ `;
108
+ schemaContent = schemaContent.replace(/(generator client \{[^}]+\})/, `$1\n${pothosGenerator}`);
109
+ }
110
+ // Process template variables
111
+ const { processTemplateContent } = await Promise.resolve().then(() => __importStar(require('../../templates/processor')));
112
+ schemaContent = processTemplateContent(schemaContent, data);
113
+ await fs_extra_1.default.writeFile(path_1.default.join(dbDir, 'schema.prisma'), schemaContent);
114
+ logger_1.logger.dim(`Using showcase schema with ${dbProvider} provider`);
115
+ }
116
+ else {
117
+ // Generate schema programmatically
118
+ await fs_extra_1.default.writeFile(path_1.default.join(dbDir, 'schema.prisma'), createPrismaSchema(dbProvider, data.hasGraphql));
119
+ }
55
120
  // Create src/index.ts
56
121
  await fs_extra_1.default.writeFile(path_1.default.join(dbDir, 'src', 'index.ts'), createPrismaIndex());
57
122
  // Create src/schemas.ts
58
123
  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');
124
+ // Create .env.example with appropriate DATABASE_URL
125
+ const envExample = usePostgres
126
+ ? 'DATABASE_URL="postgresql://postgres:postgres@localhost:5432/app"\n'
127
+ : 'DATABASE_URL="file:./dev.db"\n';
128
+ await fs_extra_1.default.writeFile(path_1.default.join(dbDir, '.env.example'), envExample);
129
+ // Create .env with default value for local development
130
+ const envContent = usePostgres
131
+ ? 'DATABASE_URL="postgresql://postgres:postgres@db:5432/app"\n'
132
+ : 'DATABASE_URL="file:./dev.db"\n';
133
+ await fs_extra_1.default.writeFile(path_1.default.join(dbDir, '.env'), envContent);
61
134
  }
62
135
  /**
63
136
  * Create Prisma package.json
64
137
  */
65
138
  function createPrismaPackageJson(data) {
139
+ const devDeps = {
140
+ ...constants_1.DEPENDENCIES.prismaDev,
141
+ 'tsx': '^4.7.0',
142
+ 'typescript': '^5.0.0',
143
+ };
144
+ // Add @pothos/plugin-prisma for the prisma-pothos-types generator
145
+ // This is needed so `prisma generate` can find the generator
146
+ if (data.hasGraphql) {
147
+ devDeps['@pothos/plugin-prisma'] = constants_1.DEPENDENCIES.graphqlServerPrisma['@pothos/plugin-prisma'];
148
+ }
66
149
  return {
67
150
  name: `@${data.workspaceScope}/database`,
68
151
  version: data.version,
152
+ type: 'module',
69
153
  main: 'src/index.ts',
70
154
  types: 'src/index.ts',
71
155
  exports: {
72
156
  '.': './src/index.ts',
73
157
  './client': './src/index.ts',
74
158
  './schemas': './src/schemas.ts',
159
+ // Export pothos types when GraphQL is enabled
160
+ ...(data.hasGraphql ? { './pothos': './generated/pothos.ts' } : {}),
75
161
  },
76
162
  scripts: {
77
163
  'build': 'tsc',
@@ -85,11 +171,7 @@ function createPrismaPackageJson(data) {
85
171
  ...constants_1.DEPENDENCIES.prisma,
86
172
  'zod': '^3.22.0',
87
173
  },
88
- devDependencies: {
89
- ...constants_1.DEPENDENCIES.prismaDev,
90
- 'tsx': '^4.7.0',
91
- 'typescript': '^5.0.0',
92
- },
174
+ devDependencies: devDeps,
93
175
  };
94
176
  }
95
177
  /**
@@ -105,26 +187,33 @@ function createPrismaTsConfig() {
105
187
  strict: true,
106
188
  skipLibCheck: true,
107
189
  outDir: './dist',
108
- rootDir: './src',
109
190
  declaration: true,
110
191
  },
111
- include: ['src/**/*'],
192
+ include: ['src/**/*', 'generated/**/*'],
112
193
  exclude: ['node_modules', 'dist'],
113
194
  };
114
195
  }
115
196
  /**
116
197
  * Create Prisma schema
117
198
  */
118
- function createPrismaSchema() {
199
+ function createPrismaSchema(provider = 'sqlite', hasGraphql = false) {
200
+ const pothosGenerator = hasGraphql ? `
201
+ generator pothos {
202
+ provider = "prisma-pothos-types"
203
+ output = "./generated/pothos.ts"
204
+ clientOutput = "./client"
205
+ }
206
+ ` : '';
119
207
  return `// This is your Prisma schema file
120
208
  // Learn more: https://pris.ly/d/prisma-schema
121
209
 
122
210
  generator client {
123
211
  provider = "prisma-client-js"
212
+ output = "./generated/client"
124
213
  }
125
-
214
+ ${pothosGenerator}
126
215
  datasource db {
127
- provider = "postgresql"
216
+ provider = "${provider}"
128
217
  url = env("DATABASE_URL")
129
218
  }
130
219
 
@@ -179,7 +268,7 @@ function createPrismaIndex() {
179
268
  * Database package exports
180
269
  */
181
270
 
182
- import { PrismaClient } from '@prisma/client';
271
+ import { PrismaClient } from '../generated/client/index.js';
183
272
 
184
273
  // Prevent multiple instances of Prisma Client in development
185
274
  declare global {
@@ -193,7 +282,7 @@ if (process.env.NODE_ENV !== 'production') {
193
282
  }
194
283
 
195
284
  export { PrismaClient };
196
- export * from '@prisma/client';
285
+ export * from '../generated/client/index.js';
197
286
  `;
198
287
  }
199
288
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"prisma.js","sourceRoot":"","sources":["../../../src/generators/extensions/prisma.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prisma.js","sourceRoot":"","sources":["../../../src/generators/extensions/prisma.ts"],"names":[],"mappings":"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"}
@@ -76,10 +76,16 @@ async function addTrpcToShared(projectPath, data) {
76
76
  const sharedDir = path_1.default.join(projectPath, 'packages', 'shared');
77
77
  const trpcDir = path_1.default.join(sharedDir, 'src', 'trpc');
78
78
  await fs_extra_1.default.ensureDir(trpcDir);
79
- // Create shared tRPC client factory
80
- await fs_extra_1.default.writeFile(path_1.default.join(trpcDir, 'client.ts'), createSharedTrpcClient(data));
81
- // Create index.ts
82
- await fs_extra_1.default.writeFile(path_1.default.join(trpcDir, 'index.ts'), `export * from './client';\n`);
79
+ // Only create client.ts if it doesn't exist (templates may have a better version)
80
+ const clientPath = path_1.default.join(trpcDir, 'client.ts');
81
+ if (!await fs_extra_1.default.pathExists(clientPath)) {
82
+ await fs_extra_1.default.writeFile(clientPath, createSharedTrpcClient(data));
83
+ }
84
+ // Only create index.ts if it doesn't exist
85
+ const indexPath = path_1.default.join(trpcDir, 'index.ts');
86
+ if (!await fs_extra_1.default.pathExists(indexPath)) {
87
+ await fs_extra_1.default.writeFile(indexPath, `export * from './client';\n`);
88
+ }
83
89
  // Add dependencies
84
90
  await (0, merger_1.addDependencies)(path_1.default.join(sharedDir, 'package.json'), constants_1.DEPENDENCIES.trpc);
85
91
  }
@@ -87,6 +93,36 @@ async function addTrpcToShared(projectPath, data) {
87
93
  * Create tRPC initialization (server-side)
88
94
  */
89
95
  function createTrpcInit(data) {
96
+ // When Prisma is enabled, we need to define Context type explicitly to avoid
97
+ // TypeScript inference issues with Prisma's runtime types
98
+ const prismaImports = data.hasPrisma
99
+ ? `import { prisma, PrismaClient } from '@${data.workspaceScope}/database';`
100
+ : '';
101
+ const contextType = data.hasPrisma
102
+ ? `
103
+ /**
104
+ * Context type - explicitly defined to avoid Prisma runtime type inference issues
105
+ */
106
+ export interface Context {
107
+ req: CreateExpressContextOptions['req'];
108
+ res: CreateExpressContextOptions['res'];
109
+ prisma: PrismaClient;
110
+ }`
111
+ : `
112
+ export type Context = {
113
+ req: CreateExpressContextOptions['req'];
114
+ res: CreateExpressContextOptions['res'];
115
+ };`;
116
+ const contextReturn = data.hasPrisma
117
+ ? ` return {
118
+ req,
119
+ res,
120
+ prisma,
121
+ };`
122
+ : ` return {
123
+ req,
124
+ res,
125
+ };`;
90
126
  return `/**
91
127
  * tRPC initialization
92
128
  */
@@ -94,20 +130,15 @@ function createTrpcInit(data) {
94
130
  import { initTRPC } from '@trpc/server';
95
131
  import { ZodError } from 'zod';
96
132
  import type { CreateExpressContextOptions } from '@trpc/server/adapters/express';
97
- ${data.hasPrisma ? `import { prisma } from '@${data.workspaceScope}/database';` : ''}
133
+ ${prismaImports}
134
+ ${contextType}
98
135
 
99
136
  /**
100
137
  * Create context for each request
101
138
  */
102
- export const createContext = ({ req, res }: CreateExpressContextOptions) => {
103
- return {
104
- req,
105
- res,
106
- ${data.hasPrisma ? ' prisma,' : ''}
107
- };
108
- };
109
-
110
- export type Context = Awaited<ReturnType<typeof createContext>>;
139
+ export function createContext({ req, res }: CreateExpressContextOptions): Context {
140
+ ${contextReturn}
141
+ }
111
142
 
112
143
  /**
113
144
  * Initialize tRPC
@@ -143,51 +174,116 @@ export const middleware = t.middleware;
143
174
  */
144
175
  function createTrpcRouter(data) {
145
176
  return `/**
146
- * tRPC router
177
+ * tRPC router - re-exports from routers/index.ts
147
178
  */
148
179
 
149
- import { router, publicProcedure, createContext } from './trpc';
150
- import { exampleRouter } from './routers';
151
-
152
- export const appRouter = router({
153
- // Health check
154
- health: publicProcedure.query(() => ({
155
- status: 'ok',
156
- timestamp: new Date().toISOString(),
157
- })),
158
-
159
- // Example router
160
- example: exampleRouter,
161
-
162
- // Add more routers here
163
- });
180
+ import { appRouter, createContext } from './routers';
164
181
 
182
+ export { appRouter, createContext };
165
183
  export type AppRouter = typeof appRouter;
166
- export { createContext };
167
184
  `;
168
185
  }
169
186
  /**
170
- * Create example router
187
+ * Create example router with base routes (and database routes if Prisma enabled)
171
188
  */
172
189
  function createExampleRouter(data) {
173
- return `/**
174
- * Example router
175
- */
176
-
177
- import { z } from 'zod';
178
- import { router, publicProcedure } from '../trpc';
179
-
180
- export const exampleRouter = router({
190
+ const baseRoutes = ` // Hello endpoint
181
191
  hello: publicProcedure
182
192
  .input(z.object({ name: z.string().optional() }))
183
193
  .query(({ input }) => {
184
194
  return {
185
195
  greeting: \`Hello, \${input.name || 'World'}!\`,
196
+ timestamp: new Date().toISOString(),
186
197
  };
187
198
  }),
188
199
 
189
- // Add more procedures here
200
+ // Echo endpoint
201
+ echo: publicProcedure
202
+ .input(z.object({ message: z.string() }))
203
+ .query(({ input }) => {
204
+ return {
205
+ original: input.message,
206
+ reversed: input.message.split('').reverse().join(''),
207
+ length: input.message.length,
208
+ timestamp: new Date().toISOString(),
209
+ };
210
+ }),
211
+
212
+ // In-memory counter
213
+ counter: router({
214
+ get: publicProcedure.query(() => ({ value: counterState.value })),
215
+ increment: publicProcedure.mutation(() => {
216
+ counterState.value += 1;
217
+ return { value: counterState.value };
218
+ }),
219
+ decrement: publicProcedure.mutation(() => {
220
+ counterState.value -= 1;
221
+ return { value: counterState.value };
222
+ }),
223
+ reset: publicProcedure.mutation(() => {
224
+ counterState.value = 0;
225
+ return { value: counterState.value };
226
+ }),
227
+ }),`;
228
+ const databaseRoutes = data.hasPrisma ? `
229
+
230
+ // Items CRUD (requires database)
231
+ items: router({
232
+ list: publicProcedure.query(async ({ ctx }) => {
233
+ return await ctx.prisma.item.findMany({ orderBy: { createdAt: 'desc' } });
234
+ }),
235
+ create: publicProcedure
236
+ .input(z.object({ title: z.string(), description: z.string().optional() }))
237
+ .mutation(async ({ ctx, input }) => {
238
+ return await ctx.prisma.item.create({ data: input });
239
+ }),
240
+ toggle: publicProcedure
241
+ .input(z.object({ id: z.string() }))
242
+ .mutation(async ({ ctx, input }) => {
243
+ const item = await ctx.prisma.item.findUnique({ where: { id: input.id } });
244
+ if (!item) throw new Error('Item not found');
245
+ return await ctx.prisma.item.update({
246
+ where: { id: input.id },
247
+ data: { completed: !item.completed },
248
+ });
249
+ }),
250
+ delete: publicProcedure
251
+ .input(z.object({ id: z.string() }))
252
+ .mutation(async ({ ctx, input }) => {
253
+ return await ctx.prisma.item.delete({ where: { id: input.id } });
254
+ }),
255
+ stats: publicProcedure.query(async ({ ctx }) => {
256
+ const items = await ctx.prisma.item.findMany();
257
+ return {
258
+ total: items.length,
259
+ completed: items.filter((i: { completed: boolean }) => i.completed).length,
260
+ pending: items.filter((i: { completed: boolean }) => !i.completed).length,
261
+ };
262
+ }),
263
+ }),` : '';
264
+ return `/**
265
+ * Main app router
266
+ */
267
+
268
+ import { z } from 'zod';
269
+ import { router, publicProcedure, createContext } from '../trpc';
270
+
271
+ // In-memory state for counter demo
272
+ const counterState = { value: 0 };
273
+
274
+ export const appRouter = router({
275
+ // Health check
276
+ health: publicProcedure.query(() => ({
277
+ status: 'OK',
278
+ timestamp: new Date().toISOString(),
279
+ version: '1.0.0',
280
+ })),
281
+
282
+ ${baseRoutes}${databaseRoutes}
190
283
  });
284
+
285
+ export { createContext };
286
+ export type AppRouter = typeof appRouter;
191
287
  `;
192
288
  }
193
289
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"trpc.js","sourceRoot":"","sources":["../../../src/generators/extensions/trpc.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"trpc.js","sourceRoot":"","sources":["../../../src/generators/extensions/trpc.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Pothos GraphQL Schema Builder
3
+ */
4
+
5
+ import SchemaBuilder from '@pothos/core';
6
+
7
+ // Create the schema builder
8
+ export const builder = new SchemaBuilder<{
9
+ Scalars: {
10
+ DateTime: {
11
+ Input: Date;
12
+ Output: Date;
13
+ };
14
+ };
15
+ }>({});
16
+
17
+ // Add DateTime scalar for handling timestamps
18
+ builder.scalarType('DateTime', {
19
+ serialize: (value) => value.toISOString(),
20
+ parseValue: (value) => new Date(value as string),
21
+ });
22
+
23
+ // Initialize Query and Mutation types
24
+ builder.queryType({});
25
+ builder.mutationType({});