pastoria 1.0.8 → 1.0.10

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.
package/dist/generate.js CHANGED
@@ -20,21 +20,16 @@
20
20
  * - Add @resource <resource-name> to exports for lazy loading
21
21
  * - Add @appRoot to a component to designate it as the application root wrapper
22
22
  * - Add @gqlContext to a class extending PastoriaRootContext to provide a custom GraphQL context
23
+ * - Add @serverRoute to functions to add an express handler
23
24
  *
24
25
  * The generator automatically creates Zod schemas for route parameters based on
25
26
  * TypeScript types, enabling runtime validation and type safety.
26
27
  */
27
28
  import { readFile } from 'node:fs/promises';
28
29
  import * as path from 'node:path';
29
- import { default as pc } from 'picocolors';
30
- import { Project, SyntaxKind, ts, TypeFlags } from 'ts-morph';
31
- const JS_RESOURCE_FILENAME = '__generated__/router/js_resource.ts';
32
- const JS_RESOURCE_TEMPLATE = path.join(import.meta.dirname, '../templates/js_resource.ts');
33
- const ROUTER_FILENAME = '__generated__/router/router.tsx';
34
- const ROUTER_TEMPLATE = path.join(import.meta.dirname, '../templates/router.tsx');
35
- const APP_ROOT_FILENAME = '__generated__/router/app_root.ts';
36
- const CONTEXT_FILENAME = '__generated__/router/context.ts';
37
- async function loadRouterFiles(project) {
30
+ import pc from 'picocolors';
31
+ import { IndentationText, Project, SyntaxKind, ts, TypeFlags, } from 'ts-morph';
32
+ async function loadRouterTemplates(project, filename) {
38
33
  async function loadSourceFile(fileName, templateFileName) {
39
34
  const template = await readFile(templateFileName, 'utf-8');
40
35
  const warningComment = `/*
@@ -47,17 +42,16 @@ async function loadRouterFiles(project) {
47
42
  overwrite: true,
48
43
  });
49
44
  }
50
- const [jsResource, router] = await Promise.all([
51
- loadSourceFile(JS_RESOURCE_FILENAME, JS_RESOURCE_TEMPLATE),
52
- loadSourceFile(ROUTER_FILENAME, ROUTER_TEMPLATE),
53
- ]);
54
- return { jsResource, router };
45
+ const template = path.join(import.meta.dirname, '../templates', filename);
46
+ const output = path.join('__generated__/router', filename);
47
+ return loadSourceFile(output, template);
55
48
  }
56
49
  // Regex to quickly check if a file contains any Pastoria JSDoc tags
57
- const PASTORIA_TAG_REGEX = /@(route|resource|appRoot|param|gqlContext)\b/;
58
- function collectRouterNodes(project) {
59
- const resources = [];
60
- const routes = [];
50
+ const PASTORIA_TAG_REGEX = /@(route|resource|appRoot|param|gqlContext|serverRoute)\b/;
51
+ function collectPastoriaMetadata(project) {
52
+ const resources = new Map();
53
+ const routes = new Map();
54
+ const serverHandlers = new Map();
61
55
  let appRoot = null;
62
56
  let gqlContext = null;
63
57
  function visitRouterNodes(sourceFile) {
@@ -89,26 +83,50 @@ function collectRouterNodes(project) {
89
83
  else if (typeof tag.comment === 'string') {
90
84
  switch (tag.tagName.getText()) {
91
85
  case 'route': {
92
- routerRoute = {
93
- routeName: tag.comment,
94
- sourceFile,
95
- symbol,
96
- params: routeParams,
97
- };
86
+ routerRoute = [
87
+ tag.comment,
88
+ { sourceFile, symbol, params: routeParams },
89
+ ];
98
90
  break;
99
91
  }
100
92
  case 'resource': {
101
- routerResource = {
102
- resourceName: tag.comment,
103
- sourceFile,
104
- symbol,
105
- };
93
+ routerResource = [
94
+ tag.comment,
95
+ {
96
+ sourceFile,
97
+ symbol,
98
+ queries: new Map(),
99
+ entryPoints: new Map(),
100
+ },
101
+ ];
106
102
  break;
107
103
  }
104
+ case 'serverRoute': {
105
+ serverHandlers.set(tag.comment, { sourceFile, symbol });
106
+ break;
107
+ }
108
+ // case 'query': {
109
+ // const match = tag.comment.match(
110
+ // /^\s*\{\s*(?<query>\w+)\s*\}\s+(?<name>\w+)\s*$/,
111
+ // )?.groups;
112
+ // if (match && match.query && match.name) {
113
+ // resourceQueries.set(match.name, match.query);
114
+ // }
115
+ // break;
116
+ // }
117
+ // case 'entrypoint': {
118
+ // const match = tag.comment.match(
119
+ // /^\s*\{\s*(?<resource>[\w#]+)\s*\}\s+(?<name>\w+)\s*$/,
120
+ // )?.groups;
121
+ // if (match && match.resource && match.name) {
122
+ // resourceEntryPoints.set(match.name, match.resource);
123
+ // }
124
+ // break;
125
+ // }
108
126
  }
109
127
  }
110
128
  else {
111
- // Handle tags without comments (like @appRoot, @gqlContext)
129
+ // Handle tags without comments (like @ExportedSymbol, @gqlContext)
112
130
  switch (tag.tagName.getText()) {
113
131
  case 'appRoot': {
114
132
  if (appRoot != null) {
@@ -161,14 +179,75 @@ function collectRouterNodes(project) {
161
179
  .getDeclarations()
162
180
  .flatMap((decl) => ts.getJSDocCommentsAndTags(decl.compilerNode))
163
181
  .forEach(visitJSDocTags);
164
- if (routerRoute != null)
165
- routes.push(routerRoute);
166
- if (routerResource != null)
167
- resources.push(routerResource);
182
+ if (routerRoute != null) {
183
+ const [routeName, routeSymbol] = routerRoute;
184
+ routes.set(routeName, routeSymbol);
185
+ const { entryPoints, queries } = getResourceQueriesAndEntryPoints(routeSymbol.symbol);
186
+ if (routerResource == null && (entryPoints.size || queries.size)) {
187
+ resources.set(`route(${routeName})`, {
188
+ ...routeSymbol,
189
+ entryPoints,
190
+ queries,
191
+ });
192
+ }
193
+ }
194
+ if (routerResource != null) {
195
+ const [resourceName, resourceSymbol] = routerResource;
196
+ const { entryPoints, queries } = getResourceQueriesAndEntryPoints(resourceSymbol.symbol);
197
+ resourceSymbol.queries = queries;
198
+ resourceSymbol.entryPoints = entryPoints;
199
+ resources.set(resourceName, resourceSymbol);
200
+ }
168
201
  });
169
202
  }
170
203
  project.getSourceFiles().forEach(visitRouterNodes);
171
- return { resources, routes, appRoot, gqlContext };
204
+ return { resources, routes, appRoot, gqlContext, serverHandlers };
205
+ }
206
+ function getResourceQueriesAndEntryPoints(symbol) {
207
+ const resource = {
208
+ queries: new Map(),
209
+ entryPoints: new Map(),
210
+ };
211
+ const decl = symbol.getValueDeclaration();
212
+ if (!decl)
213
+ return resource;
214
+ const t = decl.getType();
215
+ const aliasSymbol = t.getAliasSymbol();
216
+ if (aliasSymbol?.getName() === 'EntryPointComponent') {
217
+ const [queries, entryPoints] = t.getAliasTypeArguments();
218
+ queries?.getProperties().forEach((prop) => {
219
+ const queryRef = prop.getName();
220
+ const queryName = prop
221
+ .getValueDeclaration()
222
+ ?.getType()
223
+ .getAliasSymbol()
224
+ ?.getName();
225
+ if (queryName) {
226
+ resource.queries.set(queryRef, queryName);
227
+ }
228
+ });
229
+ entryPoints?.getProperties().forEach((prop) => {
230
+ const epRef = prop.getName();
231
+ const resourceName = prop
232
+ .getValueDeclaration()
233
+ ?.asKind(SyntaxKind.PropertySignature)
234
+ ?.getTypeNode()
235
+ ?.asKind(SyntaxKind.TypeReference)
236
+ ?.getTypeArguments()
237
+ .at(0)
238
+ ?.asKind(SyntaxKind.TypeReference)
239
+ ?.getTypeArguments()
240
+ .at(0)
241
+ ?.asKind(SyntaxKind.LiteralType)
242
+ ?.getLiteral()
243
+ .asKind(SyntaxKind.StringLiteral)
244
+ ?.getLiteralText();
245
+ if (resourceName) {
246
+ resource.entryPoints.set(epRef, resourceName);
247
+ }
248
+ });
249
+ }
250
+ return resource;
172
251
  }
173
252
  function zodSchemaOfType(tc, t) {
174
253
  if (t.getFlags() & TypeFlags.String) {
@@ -201,39 +280,181 @@ function zodSchemaOfType(tc, t) {
201
280
  return `z.any()`;
202
281
  }
203
282
  }
204
- export async function generatePastoriaArtifacts() {
205
- const targetDir = process.cwd();
206
- const project = new Project({
207
- tsConfigFilePath: path.join(targetDir, 'tsconfig.json'),
283
+ function writeEntryPoint(writer, metadata, consumedQueries, resourceName, resource, parseVars = true) {
284
+ writer.writeLine(`root: JSResource.fromModuleId('${resourceName}'),`);
285
+ writer
286
+ .write(`getPreloadProps(${parseVars ? '{params, schema}' : ''})`)
287
+ .block(() => {
288
+ if (parseVars) {
289
+ writer.writeLine('const variables = schema.parse(params);');
290
+ }
291
+ writer.write('return').block(() => {
292
+ writer
293
+ .write('queries:')
294
+ .block(() => {
295
+ for (const [queryRef, query] of resource.queries.entries()) {
296
+ consumedQueries.add(query);
297
+ writer
298
+ .write(`${queryRef}:`)
299
+ .block(() => {
300
+ writer.writeLine(`parameters: ${query}Parameters,`);
301
+ writer.writeLine(`variables`);
302
+ })
303
+ .write(',');
304
+ }
305
+ })
306
+ .writeLine(',');
307
+ writer.write('entryPoints:').block(() => {
308
+ for (const [epRef, subresourceName,] of resource.entryPoints.entries()) {
309
+ const subresource = metadata.resources.get(subresourceName);
310
+ if (subresource) {
311
+ writer.write(`${epRef}:`).block(() => {
312
+ writer.writeLine(`entryPointParams: {},`);
313
+ writer.write('entryPoint:').block(() => {
314
+ writeEntryPoint(writer, metadata, consumedQueries, subresourceName, subresource, false);
315
+ });
316
+ });
317
+ }
318
+ }
319
+ });
320
+ });
208
321
  });
322
+ }
323
+ async function generateRouter(project, metadata) {
324
+ const routerTemplate = await loadRouterTemplates(project, 'router.tsx');
209
325
  const tc = project.getTypeChecker().compilerObject;
210
- const routerFiles = await loadRouterFiles(project);
211
- const routerNodes = collectRouterNodes(project);
212
- // Generate app_root.ts if @appRoot tag is found
213
- const appRoot = routerNodes.appRoot;
214
- if (appRoot != null) {
215
- const appRootSourceFile = appRoot.sourceFile;
216
- const appRootSymbol = appRoot.symbol;
217
- const filePath = path.relative(targetDir, appRootSourceFile.getFilePath());
218
- const appRootFile = project.createSourceFile(APP_ROOT_FILENAME, '', {
219
- overwrite: true,
326
+ let didAddJsResourceImport = false;
327
+ const routerConf = routerTemplate
328
+ .getVariableDeclarationOrThrow('ROUTER_CONF')
329
+ .getInitializerIfKindOrThrow(SyntaxKind.AsExpression)
330
+ .getExpressionIfKindOrThrow(SyntaxKind.ObjectLiteralExpression);
331
+ routerConf.getPropertyOrThrow('noop').remove();
332
+ let entryPointImportIndex = 0;
333
+ for (const [routeName, { sourceFile, symbol, params },] of metadata.routes.entries()) {
334
+ const filePath = path.relative(process.cwd(), sourceFile.getFilePath());
335
+ let entryPointExpression;
336
+ // Resource-routes are combined declarations of a resource and a route
337
+ // where we should generate the entrypoint for the route.
338
+ const isResourceRoute = Array.from(metadata.resources.entries()).find(([, { symbol: resourceSymbol }]) => symbol === resourceSymbol);
339
+ if (isResourceRoute) {
340
+ const [resourceName, resource] = isResourceRoute;
341
+ const entryPointFunctionName = `entrypoint_${resourceName.replace(/\W/g, '')}`;
342
+ if (!didAddJsResourceImport) {
343
+ didAddJsResourceImport = true;
344
+ routerTemplate.addImportDeclaration({
345
+ moduleSpecifier: './js_resource',
346
+ namedImports: ['JSResource', 'ModuleType'],
347
+ });
348
+ }
349
+ const consumedQueries = new Set();
350
+ routerTemplate.addFunction({
351
+ name: entryPointFunctionName,
352
+ returnType: `EntryPoint<ModuleType<'${resourceName}'>, EntryPointParams<'${routeName}'>>`,
353
+ statements: (writer) => {
354
+ writer.write('return ').block(() => {
355
+ writeEntryPoint(writer, metadata, consumedQueries, resourceName, resource);
356
+ });
357
+ },
358
+ });
359
+ for (const query of consumedQueries) {
360
+ routerTemplate.addImportDeclaration({
361
+ moduleSpecifier: `#genfiles/queries/${query}$parameters`,
362
+ defaultImport: `${query}Parameters`,
363
+ });
364
+ }
365
+ entryPointExpression = entryPointFunctionName + '()';
366
+ }
367
+ else {
368
+ const importAlias = `e${entryPointImportIndex++}`;
369
+ const moduleSpecifier = routerTemplate.getRelativePathAsModuleSpecifierTo(sourceFile.getFilePath());
370
+ routerTemplate.addImportDeclaration({
371
+ moduleSpecifier,
372
+ namedImports: [
373
+ {
374
+ name: symbol.getName(),
375
+ alias: importAlias,
376
+ },
377
+ ],
378
+ });
379
+ entryPointExpression = importAlias;
380
+ }
381
+ routerConf.addPropertyAssignment({
382
+ name: `"${routeName}"`,
383
+ initializer: (writer) => {
384
+ writer
385
+ .write('{')
386
+ .indent(() => {
387
+ writer.writeLine(`entrypoint: ${entryPointExpression},`);
388
+ if (params.size === 0) {
389
+ writer.writeLine(`schema: z.object({})`);
390
+ }
391
+ else {
392
+ writer.writeLine(`schema: z.object({`);
393
+ for (const [paramName, paramType] of Array.from(params)) {
394
+ writer.writeLine(` ${paramName}: ${zodSchemaOfType(tc, paramType)},`);
395
+ }
396
+ writer.writeLine('})');
397
+ }
398
+ })
399
+ .write('} as const');
400
+ },
401
+ });
402
+ console.log('Created route', pc.cyan(routeName), 'for', pc.green(symbol.getName()), 'exported from', pc.yellow(filePath));
403
+ }
404
+ await routerTemplate.save();
405
+ }
406
+ async function generateJsResource(project, metadata) {
407
+ const jsResourceTemplate = await loadRouterTemplates(project, 'js_resource.ts');
408
+ const resourceConf = jsResourceTemplate
409
+ .getVariableDeclarationOrThrow('RESOURCE_CONF')
410
+ .getInitializerIfKindOrThrow(SyntaxKind.AsExpression)
411
+ .getExpressionIfKindOrThrow(SyntaxKind.ObjectLiteralExpression);
412
+ resourceConf.getPropertyOrThrow('noop').remove();
413
+ for (const [resourceName, { sourceFile, symbol },] of metadata.resources.entries()) {
414
+ const filePath = path.relative(process.cwd(), sourceFile.getFilePath());
415
+ const moduleSpecifier = jsResourceTemplate.getRelativePathAsModuleSpecifierTo(sourceFile.getFilePath());
416
+ resourceConf.addPropertyAssignment({
417
+ name: `"${resourceName}"`,
418
+ initializer: (writer) => {
419
+ writer.block(() => {
420
+ writer
421
+ .writeLine(`src: "${filePath}",`)
422
+ .writeLine(`loader: () => import("${moduleSpecifier}").then(m => m.${symbol.getName()})`);
423
+ });
424
+ },
220
425
  });
221
- const moduleSpecifier = appRootFile.getRelativePathAsModuleSpecifierTo(appRootSourceFile.getFilePath());
222
- appRootFile.addStatements(`/*
426
+ console.log('Created resource', pc.cyan(resourceName), 'for', pc.green(symbol.getName()), 'exported from', pc.yellow(filePath));
427
+ }
428
+ await jsResourceTemplate.save();
429
+ }
430
+ async function generateAppRoot(project, metadata) {
431
+ const targetDir = process.cwd();
432
+ const appRoot = metadata.appRoot;
433
+ if (appRoot == null) {
434
+ await project
435
+ .getSourceFile('__generated__/router/app_root.ts')
436
+ ?.deleteImmediately();
437
+ return;
438
+ }
439
+ const appRootSourceFile = appRoot.sourceFile;
440
+ const appRootSymbol = appRoot.symbol;
441
+ const filePath = path.relative(targetDir, appRootSourceFile.getFilePath());
442
+ const appRootFile = project.createSourceFile('__generated__/router/app_root.ts', '', { overwrite: true });
443
+ const moduleSpecifier = appRootFile.getRelativePathAsModuleSpecifierTo(appRootSourceFile.getFilePath());
444
+ appRootFile.addStatements(`/*
223
445
  * This file was generated by \`pastoria\`.
224
446
  * Do not modify this file directly.
225
447
  */
226
448
 
227
449
  export {${appRootSymbol.getName()} as App} from '${moduleSpecifier}';
228
450
  `);
229
- await appRootFile.save();
230
- console.log('Created app root for', pc.green(appRootSymbol.getName()), 'exported from', pc.yellow(filePath));
231
- }
232
- // Generate context.ts
233
- const gqlContext = routerNodes.gqlContext;
234
- const contextFile = project.createSourceFile(CONTEXT_FILENAME, '', {
235
- overwrite: true,
236
- });
451
+ await appRootFile.save();
452
+ console.log('Created app root for', pc.green(appRootSymbol.getName()), 'exported from', pc.yellow(filePath));
453
+ }
454
+ async function generateGraphqlContext(project, metadata) {
455
+ const targetDir = process.cwd();
456
+ const gqlContext = metadata.gqlContext;
457
+ const contextFile = project.createSourceFile('__generated__/router/context.ts', '', { overwrite: true });
237
458
  if (gqlContext != null) {
238
459
  const contextSourceFile = gqlContext.sourceFile;
239
460
  const contextSymbol = gqlContext.symbol;
@@ -264,68 +485,45 @@ export class Context extends PastoriaRootContext {}
264
485
  console.log('No @gqlContext found, generating default', pc.green('Context'));
265
486
  }
266
487
  await contextFile.save();
267
- const resourceConf = routerFiles.jsResource
268
- .getVariableDeclarationOrThrow('RESOURCE_CONF')
269
- .getInitializerIfKindOrThrow(SyntaxKind.AsExpression)
270
- .getExpressionIfKindOrThrow(SyntaxKind.ObjectLiteralExpression);
271
- resourceConf.getPropertyOrThrow('noop').remove();
272
- for (const { resourceName, sourceFile, symbol } of routerNodes.resources) {
273
- const filePath = path.relative(process.cwd(), sourceFile.getFilePath());
274
- const moduleSpecifier = routerFiles.jsResource.getRelativePathAsModuleSpecifierTo(sourceFile.getFilePath());
275
- resourceConf.addPropertyAssignment({
276
- name: `"${resourceName}"`,
277
- initializer: (writer) => {
278
- writer.block(() => {
279
- writer
280
- .writeLine(`src: "${filePath}",`)
281
- .writeLine(`loader: () => import("${moduleSpecifier}").then(m => m.${symbol.getName()})`);
282
- });
283
- },
284
- });
285
- console.log('Created resource', pc.cyan(resourceName), 'for', pc.green(symbol.getName()), 'exported from', pc.yellow(filePath));
488
+ }
489
+ async function generateServerHandler(project, metadata) {
490
+ if (metadata.serverHandlers.size === 0) {
491
+ await project
492
+ .getSourceFile('__generated__/router/server_handler.ts')
493
+ ?.deleteImmediately();
494
+ return;
286
495
  }
287
- const routerConf = routerFiles.router
288
- .getVariableDeclarationOrThrow('ROUTER_CONF')
289
- .getInitializerIfKindOrThrow(SyntaxKind.AsExpression)
290
- .getExpressionIfKindOrThrow(SyntaxKind.ObjectLiteralExpression);
291
- routerConf.getPropertyOrThrow('noop').remove();
292
- let entryPointImportIndex = 0;
293
- for (const { routeName, sourceFile, symbol, params } of routerNodes.routes) {
294
- const importAlias = `e${entryPointImportIndex++}`;
496
+ const sourceText = `import express from 'express';
497
+ export const router = express.Router();
498
+ `;
499
+ const serverHandlerTemplate = project.createSourceFile('__generated__/router/server_handler.ts', sourceText, { overwrite: true });
500
+ let serverHandlerImportIndex = 0;
501
+ for (const [routeName, { symbol, sourceFile },] of metadata.serverHandlers.entries()) {
502
+ const importAlias = `e${serverHandlerImportIndex++}`;
295
503
  const filePath = path.relative(process.cwd(), sourceFile.getFilePath());
296
- const moduleSpecifier = routerFiles.router.getRelativePathAsModuleSpecifierTo(sourceFile.getFilePath());
297
- routerFiles.router.addImportDeclaration({
504
+ const moduleSpecifier = serverHandlerTemplate.getRelativePathAsModuleSpecifierTo(sourceFile.getFilePath());
505
+ serverHandlerTemplate.addImportDeclaration({
298
506
  moduleSpecifier,
299
- namedImports: [
300
- {
301
- name: symbol.getName(),
302
- alias: importAlias,
303
- },
304
- ],
305
- });
306
- routerConf.addPropertyAssignment({
307
- name: `"${routeName}"`,
308
- initializer: (writer) => {
309
- writer
310
- .write('{')
311
- .indent(() => {
312
- writer.writeLine(`entrypoint: ${importAlias},`);
313
- if (params.size === 0) {
314
- writer.writeLine(`schema: z.object({})`);
315
- }
316
- else {
317
- writer.writeLine(`schema: z.object({`);
318
- for (const [paramName, paramType] of Array.from(params)) {
319
- writer.writeLine(` ${paramName}: ${zodSchemaOfType(tc, paramType)},`);
320
- }
321
- writer.writeLine('})');
322
- }
323
- })
324
- .write('} as const');
325
- },
507
+ namedImports: [{ name: symbol.getName(), alias: importAlias }],
326
508
  });
327
- console.log('Created route', pc.cyan(routeName), 'for', pc.green(symbol.getName()), 'exported from', pc.yellow(filePath));
509
+ serverHandlerTemplate.addStatements(`router.use('${routeName}', ${importAlias})`);
510
+ console.log('Created server handler', pc.cyan(routeName), 'for', pc.green(symbol.getName()), 'exported from', pc.yellow(filePath));
328
511
  }
329
- await Promise.all([routerFiles.jsResource.save(), routerFiles.router.save()]);
512
+ await serverHandlerTemplate.save();
513
+ }
514
+ export async function generatePastoriaArtifacts() {
515
+ const targetDir = process.cwd();
516
+ const project = new Project({
517
+ tsConfigFilePath: path.join(targetDir, 'tsconfig.json'),
518
+ manipulationSettings: {
519
+ indentationText: IndentationText.TwoSpaces,
520
+ },
521
+ });
522
+ const metadata = collectPastoriaMetadata(project);
523
+ await generateAppRoot(project, metadata);
524
+ await generateGraphqlContext(project, metadata);
525
+ await generateRouter(project, metadata);
526
+ await generateJsResource(project, metadata);
527
+ await generateServerHandler(project, metadata);
330
528
  }
331
529
  //# sourceMappingURL=generate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generate.js","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pastoria",
3
- "version": "1.0.8",
3
+ "version": "1.0.10",
4
4
  "description": "Pastoria Development CLI",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -17,7 +17,6 @@
17
17
  "commander": "^14.0.1",
18
18
  "cookie-parser": "^1.4.7",
19
19
  "dotenv": "^16.6.1",
20
- "express": "^5.1.0",
21
20
  "picocolors": "^1.1.1",
22
21
  "tailwindcss": "^4.1.14",
23
22
  "ts-morph": "^26.0.0",
@@ -35,9 +34,10 @@
35
34
  "typescript": "^5.9.2",
36
35
  "zod": "^3.25.76",
37
36
  "pastoria-config": "1.0.0",
38
- "pastoria-runtime": "1.0.7"
37
+ "pastoria-runtime": "1.0.11"
39
38
  },
40
39
  "peerDependencies": {
40
+ "express": "^5.1.0",
41
41
  "tailwindcss": "^4.1.14",
42
42
  "pastoria-config": "1.0.0"
43
43
  },