@opensaas/stack-cli 0.39.1 → 0.40.0

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 (118) hide show
  1. package/dist/commands/dev.d.ts.map +1 -1
  2. package/dist/commands/dev.js +0 -5
  3. package/dist/commands/dev.js.map +1 -1
  4. package/dist/commands/generate.d.ts +0 -6
  5. package/dist/commands/generate.d.ts.map +1 -1
  6. package/dist/commands/generate.js +12 -30
  7. package/dist/commands/generate.js.map +1 -1
  8. package/dist/commands/init.d.ts +1 -6
  9. package/dist/commands/init.d.ts.map +1 -1
  10. package/dist/commands/init.js +1 -7
  11. package/dist/commands/init.js.map +1 -1
  12. package/dist/commands/mcp.d.ts.map +1 -1
  13. package/dist/commands/mcp.js +0 -2
  14. package/dist/commands/mcp.js.map +1 -1
  15. package/dist/commands/migrate.d.ts +2 -17
  16. package/dist/commands/migrate.d.ts.map +1 -1
  17. package/dist/commands/migrate.js +3 -59
  18. package/dist/commands/migrate.js.map +1 -1
  19. package/dist/generator/context.d.ts +0 -12
  20. package/dist/generator/context.d.ts.map +1 -1
  21. package/dist/generator/context.js +9 -44
  22. package/dist/generator/context.js.map +1 -1
  23. package/dist/generator/extension.d.ts +0 -9
  24. package/dist/generator/extension.d.ts.map +1 -1
  25. package/dist/generator/extension.js +5 -37
  26. package/dist/generator/extension.js.map +1 -1
  27. package/dist/generator/index.d.ts +0 -1
  28. package/dist/generator/index.d.ts.map +1 -1
  29. package/dist/generator/index.js +0 -1
  30. package/dist/generator/index.js.map +1 -1
  31. package/dist/generator/lists.d.ts +2 -5
  32. package/dist/generator/lists.d.ts.map +1 -1
  33. package/dist/generator/lists.js +2 -12
  34. package/dist/generator/lists.js.map +1 -1
  35. package/dist/generator/node-build.d.ts.map +1 -1
  36. package/dist/generator/node-build.js +6 -12
  37. package/dist/generator/node-build.js.map +1 -1
  38. package/dist/generator/output-paths.d.ts +4 -18
  39. package/dist/generator/output-paths.d.ts.map +1 -1
  40. package/dist/generator/output-paths.js +3 -15
  41. package/dist/generator/output-paths.js.map +1 -1
  42. package/dist/generator/plugin-types.d.ts +0 -6
  43. package/dist/generator/plugin-types.d.ts.map +1 -1
  44. package/dist/generator/plugin-types.js +3 -28
  45. package/dist/generator/plugin-types.js.map +1 -1
  46. package/dist/generator/prisma-config.d.ts +6 -25
  47. package/dist/generator/prisma-config.d.ts.map +1 -1
  48. package/dist/generator/prisma-config.js +6 -27
  49. package/dist/generator/prisma-config.js.map +1 -1
  50. package/dist/generator/prisma.d.ts +0 -8
  51. package/dist/generator/prisma.d.ts.map +1 -1
  52. package/dist/generator/prisma.js +24 -63
  53. package/dist/generator/prisma.js.map +1 -1
  54. package/dist/generator/types.d.ts +0 -6
  55. package/dist/generator/types.d.ts.map +1 -1
  56. package/dist/generator/types.js +25 -149
  57. package/dist/generator/types.js.map +1 -1
  58. package/dist/mcp/lib/documentation-provider.d.ts +0 -36
  59. package/dist/mcp/lib/documentation-provider.d.ts.map +1 -1
  60. package/dist/mcp/lib/documentation-provider.js +1 -49
  61. package/dist/mcp/lib/documentation-provider.js.map +1 -1
  62. package/dist/mcp/lib/features/catalog.d.ts +0 -15
  63. package/dist/mcp/lib/features/catalog.d.ts.map +1 -1
  64. package/dist/mcp/lib/features/catalog.js +0 -15
  65. package/dist/mcp/lib/features/catalog.js.map +1 -1
  66. package/dist/mcp/lib/generators/feature-generator.d.ts +3 -24
  67. package/dist/mcp/lib/generators/feature-generator.d.ts.map +1 -1
  68. package/dist/mcp/lib/generators/feature-generator.js +4 -38
  69. package/dist/mcp/lib/generators/feature-generator.js.map +1 -1
  70. package/dist/mcp/lib/types.d.ts +0 -3
  71. package/dist/mcp/lib/types.d.ts.map +1 -1
  72. package/dist/mcp/lib/types.js +0 -3
  73. package/dist/mcp/lib/types.js.map +1 -1
  74. package/dist/mcp/lib/wizards/migration-wizard.d.ts +0 -70
  75. package/dist/mcp/lib/wizards/migration-wizard.d.ts.map +1 -1
  76. package/dist/mcp/lib/wizards/migration-wizard.js +1 -87
  77. package/dist/mcp/lib/wizards/migration-wizard.js.map +1 -1
  78. package/dist/mcp/lib/wizards/wizard-engine.d.ts +0 -39
  79. package/dist/mcp/lib/wizards/wizard-engine.d.ts.map +1 -1
  80. package/dist/mcp/lib/wizards/wizard-engine.js +0 -49
  81. package/dist/mcp/lib/wizards/wizard-engine.js.map +1 -1
  82. package/dist/mcp/server/index.d.ts +0 -3
  83. package/dist/mcp/server/index.d.ts.map +1 -1
  84. package/dist/mcp/server/index.js +1 -9
  85. package/dist/mcp/server/index.js.map +1 -1
  86. package/dist/mcp/server/stack-mcp-server.d.ts +0 -42
  87. package/dist/mcp/server/stack-mcp-server.d.ts.map +1 -1
  88. package/dist/mcp/server/stack-mcp-server.js +1 -47
  89. package/dist/mcp/server/stack-mcp-server.js.map +1 -1
  90. package/dist/migration/generators/migration-generator.d.ts +0 -55
  91. package/dist/migration/generators/migration-generator.d.ts.map +1 -1
  92. package/dist/migration/generators/migration-generator.js +3 -97
  93. package/dist/migration/generators/migration-generator.js.map +1 -1
  94. package/dist/migration/introspectors/index.d.ts +0 -6
  95. package/dist/migration/introspectors/index.d.ts.map +1 -1
  96. package/dist/migration/introspectors/index.js +0 -6
  97. package/dist/migration/introspectors/index.js.map +1 -1
  98. package/dist/migration/introspectors/keystone-introspector.d.ts +0 -27
  99. package/dist/migration/introspectors/keystone-introspector.d.ts.map +1 -1
  100. package/dist/migration/introspectors/keystone-introspector.js +0 -40
  101. package/dist/migration/introspectors/keystone-introspector.js.map +1 -1
  102. package/dist/migration/introspectors/nextjs-introspector.d.ts +0 -36
  103. package/dist/migration/introspectors/nextjs-introspector.d.ts.map +1 -1
  104. package/dist/migration/introspectors/nextjs-introspector.js +0 -39
  105. package/dist/migration/introspectors/nextjs-introspector.js.map +1 -1
  106. package/dist/migration/introspectors/prisma-introspector.d.ts +0 -30
  107. package/dist/migration/introspectors/prisma-introspector.d.ts.map +1 -1
  108. package/dist/migration/introspectors/prisma-introspector.js +1 -42
  109. package/dist/migration/introspectors/prisma-introspector.js.map +1 -1
  110. package/dist/migration/types.d.ts +1 -5
  111. package/dist/migration/types.d.ts.map +1 -1
  112. package/dist/migration/types.js +0 -3
  113. package/dist/migration/types.js.map +1 -1
  114. package/package.json +2 -2
  115. package/dist/generator/prisma-extensions.d.ts +0 -14
  116. package/dist/generator/prisma-extensions.d.ts.map +0 -1
  117. package/dist/generator/prisma-extensions.js +0 -172
  118. package/dist/generator/prisma-extensions.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"AAMA,wBAAsB,UAAU,kBAyC/B"}
1
+ {"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"AAMA,wBAAsB,UAAU,kBAoC/B"}
@@ -6,7 +6,6 @@ import { generateCommand } from './generate.js';
6
6
  export async function devCommand() {
7
7
  const cwd = process.cwd();
8
8
  const configPath = path.join(cwd, 'opensaas.config.ts');
9
- // Check if config exists
10
9
  if (!fs.existsSync(configPath)) {
11
10
  console.error(chalk.red('Error: opensaas.config.ts not found in current directory'));
12
11
  console.error(chalk.gray(' Please run this command from your project root'));
@@ -14,9 +13,7 @@ export async function devCommand() {
14
13
  }
15
14
  console.log(chalk.bold.cyan('\nOpenSaas Dev Mode\n'));
16
15
  console.log(chalk.gray('Watching for changes to opensaas.config.ts...\n'));
17
- // Run initial generation
18
16
  await generateCommand();
19
- // Watch for changes
20
17
  const watcher = chokidar.watch(configPath, {
21
18
  persistent: true,
22
19
  ignoreInitial: true,
@@ -28,9 +25,7 @@ export async function devCommand() {
28
25
  watcher.on('error', (error) => {
29
26
  console.error(chalk.red('\nWatcher error:'), error);
30
27
  });
31
- // Keep the process running
32
28
  console.log(chalk.gray('Press Ctrl+C to stop watching\n'));
33
- // Handle graceful shutdown
34
29
  process.on('SIGINT', () => {
35
30
  console.log(chalk.yellow('\n\nStopping dev mode...'));
36
31
  watcher.close();
@@ -1 +1 @@
1
- {"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAC5B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAA;AACxB,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,QAAQ,MAAM,UAAU,CAAA;AAC/B,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAE/C,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;IACzB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,oBAAoB,CAAC,CAAA;IAEvD,yBAAyB;IACzB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC,CAAA;QACpF,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC,CAAA;QAC9E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAA;IACrD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC,CAAA;IAE1E,yBAAyB;IACzB,MAAM,eAAe,EAAE,CAAA;IAEvB,oBAAoB;IACpB,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,UAAU,EAAE;QACzC,UAAU,EAAE,IAAI;QAChB,aAAa,EAAE,IAAI;KACpB,CAAC,CAAA;IAEF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;QAC9B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,qCAAqC,CAAC,CAAC,CAAA;QAChE,MAAM,eAAe,EAAE,CAAA;IACzB,CAAC,CAAC,CAAA;IAEF,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;QAC5B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE,KAAK,CAAC,CAAA;IACrD,CAAC,CAAC,CAAA;IAEF,2BAA2B;IAC3B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC,CAAA;IAE1D,2BAA2B;IAC3B,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;QACxB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAC,CAAA;QACrD,OAAO,CAAC,KAAK,EAAE,CAAA;QACf,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAC5B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAA;AACxB,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,QAAQ,MAAM,UAAU,CAAA;AAC/B,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAE/C,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;IACzB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,oBAAoB,CAAC,CAAA;IAEvD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC,CAAA;QACpF,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC,CAAA;QAC9E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAA;IACrD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC,CAAA;IAE1E,MAAM,eAAe,EAAE,CAAA;IAEvB,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,UAAU,EAAE;QACzC,UAAU,EAAE,IAAI;QAChB,aAAa,EAAE,IAAI;KACpB,CAAC,CAAA;IAEF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;QAC9B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,qCAAqC,CAAC,CAAC,CAAA;QAChE,MAAM,eAAe,EAAE,CAAA;IACzB,CAAC,CAAC,CAAA;IAEF,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;QAC5B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE,KAAK,CAAC,CAAA;IACrD,CAAC,CAAC,CAAA;IAEF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC,CAAA;IAE1D,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;QACxB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAC,CAAA;QACrD,OAAO,CAAC,KAAK,EAAE,CAAA;QACf,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC,CAAC,CAAA;AACJ,CAAC"}
@@ -1,10 +1,4 @@
1
1
  import type { FieldConfigValidationError, NeedsClosureError } from '@opensaas/stack-core';
2
- /**
3
- * Format field self-containment errors into a friendly, multi-line message.
4
- * Each violation names the list, field, and the contract method it omits, so
5
- * a misimplemented (often third-party) field is actionable at a glance rather
6
- * than surfacing as a deep generator stack trace.
7
- */
8
2
  export declare function formatFieldValidationErrors(errors: FieldConfigValidationError[]): string;
9
3
  /**
10
4
  * Format `needs` declaration errors (ADR-0025) into a friendly, multi-line
@@ -1 +1 @@
1
- {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,0BAA0B,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAEzF;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,0BAA0B,EAAE,GAAG,MAAM,CAcxF;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,CAI5E;AAED,wBAAsB,eAAe,kBAqQpC"}
1
+ {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,0BAA0B,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAEzF,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,0BAA0B,EAAE,GAAG,MAAM,CAcxF;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,CAI5E;AAED,wBAAsB,eAAe,kBAyPpC"}
@@ -4,14 +4,8 @@ import { execSync } from 'child_process';
4
4
  import chalk from 'chalk';
5
5
  import ora from 'ora';
6
6
  import { createJiti } from 'jiti';
7
- import { writePrismaSchema, writePrismaConfig, writeTypes, writeLists, writeContext, writePluginTypes, writePrismaExtensions, resolveOutputPaths, buildNodeBundle, formatNodeBuildDiagnostics, resolveTsconfigAlias, } from '../generator/index.js';
7
+ import { writePrismaSchema, writePrismaConfig, writeTypes, writeLists, writeContext, writePluginTypes, resolveOutputPaths, buildNodeBundle, formatNodeBuildDiagnostics, resolveTsconfigAlias, } from '../generator/index.js';
8
8
  import { validateConfigFields, validateNeedsDeclarations, validateNeedsClosureDepth, } from '@opensaas/stack-core';
9
- /**
10
- * Format field self-containment errors into a friendly, multi-line message.
11
- * Each violation names the list, field, and the contract method it omits, so
12
- * a misimplemented (often third-party) field is actionable at a glance rather
13
- * than surfacing as a deep generator stack trace.
14
- */
15
9
  export function formatFieldValidationErrors(errors) {
16
10
  const lines = errors.map((error) => {
17
11
  const location = error.listKey ? `${error.listKey}.${error.fieldKey}` : error.fieldKey;
@@ -39,7 +33,6 @@ export async function generateCommand() {
39
33
  console.log(chalk.bold('\nšŸš€ OpenSaas Generator\n'));
40
34
  const cwd = process.cwd();
41
35
  const configPath = path.join(cwd, 'opensaas.config.ts');
42
- // Check if config exists
43
36
  if (!fs.existsSync(configPath)) {
44
37
  console.error(chalk.red('āŒ Error: opensaas.config.ts not found in current directory'));
45
38
  console.error(chalk.gray(' Please run this command from your project root'));
@@ -53,19 +46,16 @@ export async function generateCommand() {
53
46
  // A project with no tsconfig.json, or no `paths`, resolves to
54
47
  // `alias: undefined`, which is identical to omitting the option.
55
48
  const { alias, warnings: aliasWarnings } = resolveTsconfigAlias(cwd);
56
- // Load config using jiti (supports TypeScript)
57
49
  const jiti = createJiti(cwd, {
58
50
  interopDefault: true,
59
51
  alias,
60
52
  });
61
- // Config may be async (if plugins are present)
62
- // jiti.import() returns a module object with 'default' export
63
- // We need to manually extract the default export since interopDefault doesn't work with async exports
53
+ // jiti's `interopDefault` doesn't unwrap an async `default` export, so it
54
+ // must be extracted manually here (config may be a Promise when plugins
55
+ // are present).
64
56
  const module = (await jiti.import(configPath));
65
57
  const configOrPromise = module.default;
66
- // Resolve the config if it's a Promise (from plugin execution)
67
58
  let config = await Promise.resolve(configOrPromise);
68
- // Log plugin count if plugins are present
69
59
  if (config.plugins && config.plugins.length > 0) {
70
60
  spinner.text = `Loading configuration with ${config.plugins.length} plugin(s)...`;
71
61
  }
@@ -73,11 +63,10 @@ export async function generateCommand() {
73
63
  for (const warning of aliasWarnings) {
74
64
  console.log(chalk.yellow(`āš ļø ${warning}`));
75
65
  }
76
- // Execute beforeGenerate hooks if plugins are present
77
66
  if (config.plugins && config.plugins.length > 0) {
78
67
  const pluginSpinner = ora('Running plugin beforeGenerate hooks...').start();
79
68
  try {
80
- // Import plugin engine (avoid circular dependency)
69
+ // Dynamic import avoids a circular dependency with the plugin engine.
81
70
  const { executeBeforeGenerateHooks } = await import('@opensaas/stack-core/config/plugin-engine');
82
71
  config = await executeBeforeGenerateHooks(config);
83
72
  pluginSpinner.succeed(chalk.green('Plugin beforeGenerate hooks complete'));
@@ -87,9 +76,6 @@ export async function generateCommand() {
87
76
  throw err;
88
77
  }
89
78
  }
90
- // Validate field self-containment up front, before any generation runs.
91
- // A misimplemented field surfaces a clear, per-field message here rather
92
- // than throwing deep inside schema/type generation.
93
79
  const validationSpinner = ora('Validating field configuration...').start();
94
80
  const fieldErrors = validateConfigFields(config);
95
81
  if (fieldErrors.length > 0) {
@@ -110,7 +96,6 @@ export async function generateCommand() {
110
96
  process.exit(1);
111
97
  }
112
98
  needsSpinner.succeed(chalk.green('Declared dependencies valid'));
113
- // Generate Prisma schema, types, and context
114
99
  // Captured here so the (optional) Node build step, which runs after
115
100
  // `prisma generate` outside this try block, knows where the bundle lives.
116
101
  let opensaasDir = '';
@@ -131,14 +116,19 @@ export async function generateCommand() {
131
116
  const listsPath = paths.lists;
132
117
  const contextPath = paths.context;
133
118
  const pluginTypesPath = paths.pluginTypes;
134
- const prismaExtensionsPath = paths.prismaExtensions;
135
119
  writePrismaSchema(config, prismaSchemaPath, crossReferences.prismaClientOutput);
136
120
  writePrismaConfig(config, prismaConfigPath, crossReferences.prismaConfigSchema);
137
121
  writeTypes(config, typesPath);
138
122
  writeLists(config, listsPath);
139
123
  writeContext(config, contextPath, crossReferences.configImport);
140
124
  writePluginTypes(config, pluginTypesPath);
141
- writePrismaExtensions(config, prismaExtensionsPath, crossReferences.configImport);
125
+ // A project generated before #958 removed the (dead) result-extension
126
+ // module may still have it on disk — clean it up so it doesn't linger
127
+ // as an orphaned, unimported file.
128
+ const stalePrismaExtensionsPath = path.join(paths.opensaasDir, 'prisma-extensions.ts');
129
+ if (fs.existsSync(stalePrismaExtensionsPath)) {
130
+ fs.rmSync(stalePrismaExtensionsPath);
131
+ }
142
132
  generatorSpinner.succeed(chalk.green('Schema generation complete'));
143
133
  console.log(chalk.green('āœ… Prisma schema generated'));
144
134
  console.log(chalk.green('āœ… Prisma config generated'));
@@ -146,21 +136,16 @@ export async function generateCommand() {
146
136
  console.log(chalk.green('āœ… Lists namespace generated'));
147
137
  console.log(chalk.green('āœ… Context factory generated'));
148
138
  console.log(chalk.green('āœ… Plugin types generated'));
149
- console.log(chalk.green('āœ… Prisma extensions generated'));
150
- // Execute afterGenerate hooks if plugins are present
151
139
  if (config.plugins && config.plugins.length > 0) {
152
140
  const afterGenSpinner = ora('Running plugin afterGenerate hooks...').start();
153
141
  try {
154
- // Read generated files
155
142
  const generatedFiles = {
156
143
  prismaSchema: fs.readFileSync(prismaSchemaPath, 'utf-8'),
157
144
  types: fs.readFileSync(typesPath, 'utf-8'),
158
145
  context: fs.readFileSync(contextPath, 'utf-8'),
159
146
  };
160
- // Execute afterGenerate hooks
161
147
  const { executeAfterGenerateHooks } = await import('@opensaas/stack-core/config/plugin-engine');
162
148
  const modifiedFiles = await executeAfterGenerateHooks(config, generatedFiles);
163
- // Write back modified files
164
149
  if (modifiedFiles.prismaSchema !== generatedFiles.prismaSchema) {
165
150
  fs.writeFileSync(prismaSchemaPath, modifiedFiles.prismaSchema);
166
151
  }
@@ -170,7 +155,6 @@ export async function generateCommand() {
170
155
  if (modifiedFiles.context !== generatedFiles.context) {
171
156
  fs.writeFileSync(contextPath, modifiedFiles.context);
172
157
  }
173
- // Write any additional files plugins generated
174
158
  for (const [filename, content] of Object.entries(modifiedFiles)) {
175
159
  if (!['prismaSchema', 'types', 'context'].includes(filename)) {
176
160
  const filePath = path.join(paths.opensaasDir, filename);
@@ -185,7 +169,6 @@ export async function generateCommand() {
185
169
  throw err;
186
170
  }
187
171
  }
188
- // Format Prisma schema
189
172
  const formatSpinner = ora('Formatting Prisma schema...').start();
190
173
  try {
191
174
  execSync('npx prisma format', {
@@ -212,7 +195,6 @@ export async function generateCommand() {
212
195
  }
213
196
  process.exit(1);
214
197
  }
215
- // Run Prisma generate to create the Prisma client
216
198
  const prismaSpinner = ora('Generating Prisma client...').start();
217
199
  try {
218
200
  execSync('npx prisma generate', {
@@ -1 +1 @@
1
- {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAC5B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAA;AACxB,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,GAAG,MAAM,KAAK,CAAA;AACrB,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAA;AACjC,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,UAAU,EACV,UAAU,EACV,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,0BAA0B,EAC1B,oBAAoB,GACrB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAEL,oBAAoB,EACpB,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,sBAAsB,CAAA;AAG7B,MAAM,UAAU,2BAA2B,CAAC,MAAoC;IAC9E,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACjC,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAA;QACtF,OAAO,OAAO,QAAQ,WAAW,KAAK,CAAC,SAAS,iBAAiB,KAAK,CAAC,aAAa,IAAI,CAAA;IAC1F,CAAC,CAAC,CAAA;IAEF,OAAO;QACL,GAAG,MAAM,CAAC,MAAM,yDAAyD;QACzE,GAAG,KAAK;QACR,EAAE;QACF,yEAAyE;QACzE,4EAA4E;QAC5E,8DAA8D;KAC/D,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CAAC,MAA2B;IAClE,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;IAE3D,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,+CAA+C,EAAE,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAC/F,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,CAAA;IAEpD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;IACzB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,oBAAoB,CAAC,CAAA;IAEvD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,4DAA4D,CAAC,CAAC,CAAA;QACtF,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC,CAAA;QAC9E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,CAAC,0BAA0B,CAAC,CAAC,KAAK,EAAE,CAAA;IAEvD,IAAI,CAAC;QACH,oEAAoE;QACpE,kEAAkE;QAClE,uEAAuE;QACvE,8DAA8D;QAC9D,iEAAiE;QACjE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAA;QAEpE,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,EAAE;YAC3B,cAAc,EAAE,IAAI;YACpB,KAAK;SACN,CAAC,CAAA;QAEF,0EAA0E;QAC1E,wEAAwE;QACxE,gBAAgB;QAChB,MAAM,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAyC,CAAA;QACtF,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,CAAA;QACtC,IAAI,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,CAAA;QAEnD,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChD,OAAO,CAAC,IAAI,GAAG,8BAA8B,MAAM,CAAC,OAAO,CAAC,MAAM,eAAe,CAAA;QACnF,CAAC;QAED,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAA;QACpD,KAAK,MAAM,OAAO,IAAI,aAAa,EAAE,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,OAAO,EAAE,CAAC,CAAC,CAAA;QAC7C,CAAC;QAED,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChD,MAAM,aAAa,GAAG,GAAG,CAAC,wCAAwC,CAAC,CAAC,KAAK,EAAE,CAAA;YAE3E,IAAI,CAAC;gBACH,sEAAsE;gBACtE,MAAM,EAAE,0BAA0B,EAAE,GAClC,MAAM,MAAM,CAAC,2CAA2C,CAAC,CAAA;gBAC3D,MAAM,GAAG,MAAM,0BAA0B,CAAC,MAAM,CAAC,CAAA;gBACjD,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC,CAAA;YAC5E,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC,CAAA;gBACnE,MAAM,GAAG,CAAA;YACX,CAAC;QACH,CAAC;QAED,MAAM,iBAAiB,GAAG,GAAG,CAAC,mCAAmC,CAAC,CAAC,KAAK,EAAE,CAAA;QAC1E,MAAM,WAAW,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAA;QAChD,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC,CAAA;YAChE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,2BAA2B,CAAC,WAAW,CAAC,CAAC,CAAA;YAChF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QACD,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC,CAAA;QAEnE,oEAAoE;QACpE,sEAAsE;QACtE,sEAAsE;QACtE,iEAAiE;QACjE,MAAM,YAAY,GAAG,GAAG,CAAC,qCAAqC,CAAC,CAAC,KAAK,EAAE,CAAA;QACvE,MAAM,WAAW,GAAG,CAAC,GAAG,yBAAyB,CAAC,MAAM,CAAC,EAAE,GAAG,yBAAyB,CAAC,MAAM,CAAC,CAAC,CAAA;QAChG,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC,CAAA;YAC7D,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,wBAAwB,CAAC,WAAW,CAAC,CAAC,CAAA;YAC7E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QACD,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAA;QAEhE,oEAAoE;QACpE,0EAA0E;QAC1E,IAAI,WAAW,GAAG,EAAE,CAAA;QACpB,MAAM,gBAAgB,GAAG,GAAG,CAAC,gCAAgC,CAAC,CAAC,KAAK,EAAE,CAAA;QACtE,IAAI,CAAC;YACH,0EAA0E;YAC1E,oEAAoE;YACpE,uEAAuE;YACvE,yEAAyE;YACzE,kEAAkE;YAClE,iEAAiE;YACjE,wDAAwD;YACxD,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,YAAY,CAAC,CAAA;YAC9F,WAAW,GAAG,KAAK,CAAC,WAAW,CAAA;YAE/B,MAAM,gBAAgB,GAAG,KAAK,CAAC,YAAY,CAAA;YAC3C,MAAM,gBAAgB,GAAG,KAAK,CAAC,YAAY,CAAA;YAC3C,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAA;YAC7B,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAA;YAC7B,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAA;YACjC,MAAM,eAAe,GAAG,KAAK,CAAC,WAAW,CAAA;YAEzC,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,EAAE,eAAe,CAAC,kBAAkB,CAAC,CAAA;YAC/E,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,EAAE,eAAe,CAAC,kBAAkB,CAAC,CAAA;YAC/E,UAAU,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;YAC7B,UAAU,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;YAC7B,YAAY,CAAC,MAAM,EAAE,WAAW,EAAE,eAAe,CAAC,YAAY,CAAC,CAAA;YAC/D,gBAAgB,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;YAEzC,sEAAsE;YACtE,sEAAsE;YACtE,mCAAmC;YACnC,MAAM,yBAAyB,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,sBAAsB,CAAC,CAAA;YACtF,IAAI,EAAE,CAAC,UAAU,CAAC,yBAAyB,CAAC,EAAE,CAAC;gBAC7C,EAAE,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAA;YACtC,CAAC;YAED,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC,CAAA;YACnE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC,CAAA;YACrD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC,CAAA;YACrD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC,CAAA;YACxD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAA;YACvD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAA;YACvD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC,CAAA;YAEpD,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChD,MAAM,eAAe,GAAG,GAAG,CAAC,uCAAuC,CAAC,CAAC,KAAK,EAAE,CAAA;gBAE5E,IAAI,CAAC;oBACH,MAAM,cAAc,GAAG;wBACrB,YAAY,EAAE,EAAE,CAAC,YAAY,CAAC,gBAAgB,EAAE,OAAO,CAAC;wBACxD,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC;wBAC1C,OAAO,EAAE,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC;qBAC/C,CAAA;oBAED,MAAM,EAAE,yBAAyB,EAAE,GACjC,MAAM,MAAM,CAAC,2CAA2C,CAAC,CAAA;oBAC3D,MAAM,aAAa,GAAG,MAAM,yBAAyB,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;oBAE7E,IAAI,aAAa,CAAC,YAAY,KAAK,cAAc,CAAC,YAAY,EAAE,CAAC;wBAC/D,EAAE,CAAC,aAAa,CAAC,gBAAgB,EAAE,aAAa,CAAC,YAAY,CAAC,CAAA;oBAChE,CAAC;oBACD,IAAI,aAAa,CAAC,KAAK,KAAK,cAAc,CAAC,KAAK,EAAE,CAAC;wBACjD,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,aAAa,CAAC,KAAK,CAAC,CAAA;oBAClD,CAAC;oBACD,IAAI,aAAa,CAAC,OAAO,KAAK,cAAc,CAAC,OAAO,EAAE,CAAC;wBACrD,EAAE,CAAC,aAAa,CAAC,WAAW,EAAE,aAAa,CAAC,OAAO,CAAC,CAAA;oBACtD,CAAC;oBAED,KAAK,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;wBAChE,IAAI,CAAC,CAAC,cAAc,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;4BAC7D,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA;4BACvD,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;4BACnC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,uBAAuB,QAAQ,EAAE,CAAC,CAAC,CAAA;wBAC7D,CAAC;oBACH,CAAC;oBAED,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC,CAAA;gBAC7E,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC,CAAA;oBACpE,MAAM,GAAG,CAAA;gBACX,CAAC;YACH,CAAC;YAED,MAAM,aAAa,GAAG,GAAG,CAAC,6BAA6B,CAAC,CAAC,KAAK,EAAE,CAAA;YAChE,IAAI,CAAC;gBACH,QAAQ,CAAC,mBAAmB,EAAE;oBAC5B,GAAG;oBACH,QAAQ,EAAE,OAAO;oBACjB,KAAK,EAAE,MAAM;iBACd,CAAC,CAAA;gBACF,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAA;gBAC7D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC,CAAA;gBACrD,6DAA6D;YAC/D,CAAC;YAAC,OAAO,IAAI,EAAE,CAAC;gBACd,oEAAoE;gBACpE,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,kCAAkC,CAAC,CAAC,CAAA;gBACpE,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CAAC,wEAAwE,CAAC,CACvF,CAAA;YACH,CAAC;YACD,8DAA8D;QAChE,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAA;YACtD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;YACnD,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;gBACd,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;YAC7C,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QAED,MAAM,aAAa,GAAG,GAAG,CAAC,6BAA6B,CAAC,CAAC,KAAK,EAAE,CAAA;QAChE,IAAI,CAAC;YACH,QAAQ,CAAC,qBAAqB,EAAE;gBAC9B,GAAG;gBACH,QAAQ,EAAE,OAAO;gBACjB,KAAK,EAAE,MAAM;aACd,CAAC,CAAA;YACF,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAA;YAC7D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC,CAAA;QACvD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC,CAAA;YACjE,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YAChE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC,CAAA;YAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QAED,wEAAwE;QACxE,0EAA0E;QAC1E,4EAA4E;QAC5E,2EAA2E;QAC3E,wEAAwE;QACxE,mDAAmD;QACnD,IAAI,MAAM,CAAC,MAAM,EAAE,WAAW,KAAK,MAAM,EAAE,CAAC;YAC1C,MAAM,gBAAgB,GAAG,GAAG,CAAC,kCAAkC,CAAC,CAAC,KAAK,EAAE,CAAA;YACxE,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,eAAe,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,CAAA;gBAC3D,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC,CAAA;gBACnE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,2BAA2B,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAA;gBAEzF,wEAAwE;gBACxE,sEAAsE;gBACtE,+DAA+D;gBAC/D,MAAM,eAAe,GAAG,0BAA0B,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;gBACtE,IAAI,eAAe,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACtC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,+DAA+D,CAAC,CAAC,CAAA;oBAC1F,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAA;gBAC1C,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC,CAAA;gBACxE,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;gBAChE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC,CAAA;gBAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACjB,CAAC;QACH,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,CAAA;QACrD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAA;QACtC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC,CAAA;QACvD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC,CAAA;QACnE,8DAA8D;IAChE,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAA;QAC5C,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;QACrD,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAA;QAC/C,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;AACH,CAAC"}
@@ -1,10 +1,5 @@
1
1
  /**
2
- * Initialize a new OpenSaas Stack project.
3
- *
4
- * This command delegates to create-opensaas-app for the actual scaffolding.
5
- * It's kept here for backwards compatibility with `opensaas init`.
6
- *
7
- * @param args - Command line arguments (project name and flags)
2
+ * Delegates to create-opensaas-app; kept for backwards compatibility with `opensaas init`.
8
3
  */
9
4
  export declare function initCommand(args: string[]): Promise<void>;
10
5
  //# sourceMappingURL=init.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,iBAsB/C"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,iBAqB/C"}
@@ -1,16 +1,10 @@
1
1
  import { spawn } from 'child_process';
2
2
  import chalk from 'chalk';
3
3
  /**
4
- * Initialize a new OpenSaas Stack project.
5
- *
6
- * This command delegates to create-opensaas-app for the actual scaffolding.
7
- * It's kept here for backwards compatibility with `opensaas init`.
8
- *
9
- * @param args - Command line arguments (project name and flags)
4
+ * Delegates to create-opensaas-app; kept for backwards compatibility with `opensaas init`.
10
5
  */
11
6
  export async function initCommand(args) {
12
7
  console.log(chalk.dim('Delegating to create-opensaas-app...\n'));
13
- // Forward all arguments to create-opensaas-app
14
8
  const child = spawn('npx', ['create-opensaas-app@latest', ...args], {
15
9
  stdio: 'inherit',
16
10
  shell: true,
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AACrC,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAc;IAC9C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC,CAAA;IAEhE,+CAA+C;IAC/C,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,4BAA4B,EAAE,GAAG,IAAI,CAAC,EAAE;QAClE,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,IAAI;KACZ,CAAC,CAAA;IAEF,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC3C,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACzB,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBACf,MAAM,CAAC,IAAI,KAAK,CAAC,wCAAwC,IAAI,EAAE,CAAC,CAAC,CAAA;YACnE,CAAC;iBAAM,CAAC;gBACN,OAAO,EAAE,CAAA;YACX,CAAC;QACH,CAAC,CAAC,CAAA;QAEF,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YACxB,MAAM,CAAC,GAAG,CAAC,CAAA;QACb,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AACrC,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAc;IAC9C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC,CAAA;IAEhE,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,4BAA4B,EAAE,GAAG,IAAI,CAAC,EAAE;QAClE,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,IAAI;KACZ,CAAC,CAAA;IAEF,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC3C,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACzB,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBACf,MAAM,CAAC,IAAI,KAAK,CAAC,wCAAwC,IAAI,EAAE,CAAC,CAAC,CAAA;YACnE,CAAC;iBAAM,CAAC;gBACN,OAAO,EAAE,CAAA;YACX,CAAC;QACH,CAAC,CAAC,CAAA;QAEF,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YACxB,MAAM,CAAC,GAAG,CAAC,CAAA;QACb,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/commands/mcp.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAqGnC,wBAAgB,gBAAgB,IAAI,OAAO,CAoC1C"}
1
+ {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/commands/mcp.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAmGnC,wBAAgB,gBAAgB,IAAI,OAAO,CAoC1C"}
@@ -8,8 +8,6 @@ import { dirname, join } from 'path';
8
8
  const __filename = fileURLToPath(import.meta.url);
9
9
  const __dirname = dirname(__filename);
10
10
  function getServerPath() {
11
- // In development: cli/dist/mcp/server/index.js
12
- // In production: same structure
13
11
  return join(__dirname, '..', 'mcp', 'server', 'index.js');
14
12
  }
15
13
  function installMCPServer() {
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/commands/mcp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/commands/mcp.ts"],"names":[],"mappings":"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"}
@@ -3,32 +3,17 @@
3
3
  */
4
4
  import { Command } from 'commander';
5
5
  /**
6
- * Canonical published Keystone → OpenSaaS Stack migration guide URL.
7
- *
8
6
  * The CLI points migrators at this page rather than embedding the guide text,
9
7
  * so the binary stays small and the docs stay the single source of truth.
10
8
  */
11
9
  export declare const MIGRATION_GUIDE_URL = "https://stack.opensaas.au/docs/how-to/migrate-from-keystone";
12
- /**
13
- * Claude Code marketplace + plugin identifiers used to install the
14
- * `opensaas-migration` plugin (its skills, commands, and agent).
15
- */
16
10
  export declare const MIGRATION_PLUGIN_ID = "opensaas-migration@opensaas-stack-marketplace";
17
11
  export declare const MIGRATION_MARKETPLACE = "OpenSaasAU/stack";
18
12
  /**
19
- * Manual install steps for the `opensaas-migration` Claude Code plugin.
20
- * These are slash commands run inside Claude Code; `opensaas migrate --with-ai`
21
- * wires them up automatically instead.
13
+ * Manual install steps for the `opensaas-migration` Claude Code plugin;
14
+ * `opensaas migrate --with-ai` wires them up automatically instead.
22
15
  */
23
16
  export declare const MIGRATION_PLUGIN_INSTALL_STEPS: readonly string[];
24
- /**
25
- * Print the published migration guide URL and how to install the
26
- * `opensaas-migration` plugin. Kept lightweight on purpose — it points at the
27
- * canonical guide instead of duplicating its contents.
28
- */
29
17
  export declare function printMigrationResources(): void;
30
- /**
31
- * Create the migrate command for Commander
32
- */
33
18
  export declare function createMigrateCommand(): Command;
34
19
  //# sourceMappingURL=migrate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../../src/commands/migrate.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAYnC;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,gEAAgE,CAAA;AAEhG;;;GAGG;AACH,eAAO,MAAM,mBAAmB,kDAAkD,CAAA;AAClF,eAAO,MAAM,qBAAqB,qBAAqB,CAAA;AAEvD;;;;GAIG;AACH,eAAO,MAAM,8BAA8B,EAAE,SAAS,MAAM,EAG3D,CAAA;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,IAAI,IAAI,CAW9C;AA4UD;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,OAAO,CAkC9C"}
1
+ {"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../../src/commands/migrate.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAYnC;;;GAGG;AACH,eAAO,MAAM,mBAAmB,gEAAgE,CAAA;AAEhG,eAAO,MAAM,mBAAmB,kDAAkD,CAAA;AAClF,eAAO,MAAM,qBAAqB,qBAAqB,CAAA;AAEvD;;;GAGG;AACH,eAAO,MAAM,8BAA8B,EAAE,SAAS,MAAM,EAG3D,CAAA;AAED,wBAAgB,uBAAuB,IAAI,IAAI,CAW9C;AAkSD,wBAAgB,oBAAoB,IAAI,OAAO,CAkC9C"}
@@ -7,32 +7,20 @@ import * as path from 'path';
7
7
  import chalk from 'chalk';
8
8
  import ora from 'ora';
9
9
  /**
10
- * Canonical published Keystone → OpenSaaS Stack migration guide URL.
11
- *
12
10
  * The CLI points migrators at this page rather than embedding the guide text,
13
11
  * so the binary stays small and the docs stay the single source of truth.
14
12
  */
15
13
  export const MIGRATION_GUIDE_URL = 'https://stack.opensaas.au/docs/how-to/migrate-from-keystone';
16
- /**
17
- * Claude Code marketplace + plugin identifiers used to install the
18
- * `opensaas-migration` plugin (its skills, commands, and agent).
19
- */
20
14
  export const MIGRATION_PLUGIN_ID = 'opensaas-migration@opensaas-stack-marketplace';
21
15
  export const MIGRATION_MARKETPLACE = 'OpenSaasAU/stack';
22
16
  /**
23
- * Manual install steps for the `opensaas-migration` Claude Code plugin.
24
- * These are slash commands run inside Claude Code; `opensaas migrate --with-ai`
25
- * wires them up automatically instead.
17
+ * Manual install steps for the `opensaas-migration` Claude Code plugin;
18
+ * `opensaas migrate --with-ai` wires them up automatically instead.
26
19
  */
27
20
  export const MIGRATION_PLUGIN_INSTALL_STEPS = [
28
21
  `/plugin marketplace add ${MIGRATION_MARKETPLACE}`,
29
22
  `/plugin install ${MIGRATION_PLUGIN_ID}`,
30
23
  ];
31
- /**
32
- * Print the published migration guide URL and how to install the
33
- * `opensaas-migration` plugin. Kept lightweight on purpose — it points at the
34
- * canonical guide instead of duplicating its contents.
35
- */
36
24
  export function printMigrationResources() {
37
25
  console.log(chalk.bold('\nšŸ“š Migration guide:\n'));
38
26
  console.log(chalk.cyan(` ${MIGRATION_GUIDE_URL}`));
@@ -44,23 +32,17 @@ export function printMigrationResources() {
44
32
  console.log(chalk.cyan(` ${step}`));
45
33
  }
46
34
  }
47
- /**
48
- * Detect what type of project this is
49
- */
50
35
  async function detectProjectType(cwd) {
51
36
  const types = [];
52
- // Check for Prisma
53
37
  const prismaSchemaPath = path.join(cwd, 'prisma', 'schema.prisma');
54
38
  if (fs.existsSync(prismaSchemaPath)) {
55
39
  types.push('prisma');
56
40
  }
57
- // Check for KeystoneJS
58
41
  const keystoneConfigPath = path.join(cwd, 'keystone.config.ts');
59
42
  const keystoneAltPath = path.join(cwd, 'keystone.ts');
60
43
  if (fs.existsSync(keystoneConfigPath) || fs.existsSync(keystoneAltPath)) {
61
44
  types.push('keystone');
62
45
  }
63
- // Check for Next.js
64
46
  const packageJsonPath = path.join(cwd, 'package.json');
65
47
  if (fs.existsSync(packageJsonPath)) {
66
48
  const pkg = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'));
@@ -70,13 +52,9 @@ async function detectProjectType(cwd) {
70
52
  }
71
53
  return types;
72
54
  }
73
- /**
74
- * Analyze a Prisma schema
75
- */
76
55
  async function analyzePrismaSchema(cwd) {
77
56
  const schemaPath = path.join(cwd, 'prisma', 'schema.prisma');
78
57
  const schema = fs.readFileSync(schemaPath, 'utf-8');
79
- // Extract models
80
58
  const modelRegex = /model\s+(\w+)\s*\{([^}]+)\}/g;
81
59
  const models = [];
82
60
  let match;
@@ -88,42 +66,28 @@ async function analyzePrismaSchema(cwd) {
88
66
  .filter((line) => line.trim() && !line.trim().startsWith('@@') && !line.trim().startsWith('//')).length;
89
67
  models.push({ name, fieldCount });
90
68
  }
91
- // Extract provider
92
69
  const providerMatch = schema.match(/provider\s*=\s*"(\w+)"/);
93
70
  const provider = providerMatch ? providerMatch[1] : 'unknown';
94
71
  return { models, provider };
95
72
  }
96
- /**
97
- * Ensure directory exists
98
- */
99
73
  function ensureDir(dirPath) {
100
74
  if (!fs.existsSync(dirPath)) {
101
75
  fs.mkdirSync(dirPath, { recursive: true });
102
76
  }
103
77
  }
104
- /**
105
- * Get marketplace source for OpenSaaS Stack plugins
106
- */
107
78
  function getMarketplaceSource() {
108
- // Try to detect if we're in development (local monorepo)
79
+ // Detect a local monorepo checkout (development) vs. an installed package (production).
109
80
  const cliPackageDir = path.dirname(path.dirname(new URL(import.meta.url).pathname));
110
81
  const potentialMonorepoRoot = path.join(cliPackageDir, '..', '..');
111
82
  const marketplacePath = path.join(potentialMonorepoRoot, 'claude-plugins', 'marketplace.json');
112
83
  if (fs.existsSync(marketplacePath)) {
113
- // Development mode - use local marketplace
114
84
  return { source: 'local', path: path.join(potentialMonorepoRoot, 'claude-plugins') };
115
85
  }
116
- // Production mode - use GitHub marketplace
117
86
  return { source: 'github', repo: 'OpenSaasAU/stack' };
118
87
  }
119
- /**
120
- * Setup Claude Code integration with plugin
121
- */
122
88
  async function setupClaudeCode(cwd, analysis) {
123
89
  const claudeDir = path.join(cwd, '.claude');
124
- // Create .claude directory
125
90
  ensureDir(claudeDir);
126
- // Write project metadata file for the plugin to read
127
91
  const projectMetadata = {
128
92
  projectTypes: analysis.projectTypes,
129
93
  provider: analysis.provider || 'sqlite',
@@ -132,38 +96,29 @@ async function setupClaudeCode(cwd, analysis) {
132
96
  cwd: analysis.cwd,
133
97
  };
134
98
  fs.writeFileSync(path.join(claudeDir, 'opensaas-project.json'), JSON.stringify(projectMetadata, null, 2));
135
- // Configure Claude Code marketplace and plugins in settings.json
136
99
  const settingsPath = path.join(claudeDir, 'settings.json');
137
100
  let settings = {};
138
- // Read existing settings if they exist
139
101
  if (fs.existsSync(settingsPath)) {
140
102
  try {
141
103
  settings = JSON.parse(fs.readFileSync(settingsPath, 'utf-8'));
142
104
  }
143
105
  catch {
144
- // If settings file is invalid, start fresh
145
106
  settings = {};
146
107
  }
147
108
  }
148
- // Get the marketplace source
149
109
  const marketplaceSource = getMarketplaceSource();
150
- // Add marketplace configuration
151
110
  if (!settings.extraKnownMarketplaces) {
152
111
  settings.extraKnownMarketplaces = {};
153
112
  }
154
113
  settings.extraKnownMarketplaces['opensaas-stack-marketplace'] = {
155
114
  source: marketplaceSource,
156
115
  };
157
- // Add enabled plugins
158
116
  if (!settings.enabledPlugins) {
159
117
  settings.enabledPlugins = {};
160
118
  }
161
- // Add migration plugin if not already enabled
162
119
  const migrationPluginId = 'opensaas-migration@opensaas-stack-marketplace';
163
120
  settings.enabledPlugins[migrationPluginId] = true;
164
- // Write settings back
165
121
  fs.writeFileSync(settingsPath, JSON.stringify(settings, null, 2));
166
- // Create a simple README explaining the setup
167
122
  const readmeContent = `# OpenSaaS Stack Migration
168
123
 
169
124
  This project is set up for AI-assisted migration to OpenSaaS Stack.
@@ -225,13 +180,9 @@ When you open this project in Claude Code, the MCP server will be automatically
225
180
  `;
226
181
  fs.writeFileSync(path.join(claudeDir, 'README.md'), readmeContent);
227
182
  }
228
- /**
229
- * Main migrate command
230
- */
231
183
  async function migrateCommand(options) {
232
184
  const cwd = process.cwd();
233
185
  console.log(chalk.bold.cyan('\nšŸš€ OpenSaaS Stack Migration\n'));
234
- // Step 1: Detect project type
235
186
  const spinner = ora('Detecting project type...').start();
236
187
  let projectTypes;
237
188
  if (options.type) {
@@ -250,7 +201,6 @@ async function migrateCommand(options) {
250
201
  process.exit(1);
251
202
  }
252
203
  spinner.succeed(chalk.green(`Detected: ${projectTypes.join(', ')}`));
253
- // Step 2: Analyze schema
254
204
  const analysisSpinner = ora('Analyzing schema...').start();
255
205
  const analysis = {
256
206
  projectTypes,
@@ -268,7 +218,6 @@ async function migrateCommand(options) {
268
218
  }
269
219
  if (analysis.models && analysis.models.length > 0) {
270
220
  analysisSpinner.succeed(chalk.green(`Found ${analysis.models.length} models`));
271
- // Display model tree
272
221
  const lastIndex = analysis.models.length - 1;
273
222
  analysis.models.forEach((model, index) => {
274
223
  const prefix = index === lastIndex ? '└─' : 'ā”œā”€';
@@ -278,7 +227,6 @@ async function migrateCommand(options) {
278
227
  else {
279
228
  analysisSpinner.succeed(chalk.yellow('No models found (will create from scratch)'));
280
229
  }
281
- // Step 3: Setup Claude Code (if --with-ai)
282
230
  if (options.withAi) {
283
231
  const claudeSpinner = ora('Setting up Claude Code...').start();
284
232
  try {
@@ -295,7 +243,6 @@ async function migrateCommand(options) {
295
243
  console.error(error);
296
244
  }
297
245
  }
298
- // Step 4: Display next steps
299
246
  console.log(chalk.green('\nāœ… Analysis complete!\n'));
300
247
  if (options.withAi) {
301
248
  console.log(chalk.bold('šŸ¤– Next Steps:\n'));
@@ -312,9 +259,6 @@ async function migrateCommand(options) {
312
259
  printMigrationResources();
313
260
  console.log();
314
261
  }
315
- /**
316
- * Create the migrate command for Commander
317
- */
318
262
  export function createMigrateCommand() {
319
263
  const migrate = new Command('migrate');
320
264
  migrate.description('Migrate an existing project to OpenSaaS Stack');