@veloxts/cli 0.4.2 → 0.4.4

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 (87) hide show
  1. package/dist/cli.js +4 -0
  2. package/dist/cli.js.map +1 -1
  3. package/dist/commands/db.d.ts +12 -0
  4. package/dist/commands/db.d.ts.map +1 -0
  5. package/dist/commands/db.js +18 -0
  6. package/dist/commands/db.js.map +1 -0
  7. package/dist/commands/dev.d.ts.map +1 -1
  8. package/dist/commands/dev.js +29 -3
  9. package/dist/commands/dev.js.map +1 -1
  10. package/dist/commands/procedures.d.ts +12 -0
  11. package/dist/commands/procedures.d.ts.map +1 -0
  12. package/dist/commands/procedures.js +153 -0
  13. package/dist/commands/procedures.js.map +1 -0
  14. package/dist/dev/hmr-runner.d.ts +52 -0
  15. package/dist/dev/hmr-runner.d.ts.map +1 -0
  16. package/dist/dev/hmr-runner.js +153 -0
  17. package/dist/dev/hmr-runner.js.map +1 -0
  18. package/dist/dev/index.d.ts +6 -0
  19. package/dist/dev/index.d.ts.map +1 -0
  20. package/dist/dev/index.js +6 -0
  21. package/dist/dev/index.js.map +1 -0
  22. package/dist/dev/watch-config.d.ts +32 -0
  23. package/dist/dev/watch-config.d.ts.map +1 -0
  24. package/dist/dev/watch-config.js +74 -0
  25. package/dist/dev/watch-config.js.map +1 -0
  26. package/dist/generators/generators/factory.d.ts +36 -0
  27. package/dist/generators/generators/factory.d.ts.map +1 -0
  28. package/dist/generators/generators/factory.js +85 -0
  29. package/dist/generators/generators/factory.js.map +1 -0
  30. package/dist/generators/generators/index.d.ts +2 -0
  31. package/dist/generators/generators/index.d.ts.map +1 -1
  32. package/dist/generators/generators/index.js +8 -0
  33. package/dist/generators/generators/index.js.map +1 -1
  34. package/dist/generators/generators/seeder.d.ts +36 -0
  35. package/dist/generators/generators/seeder.d.ts.map +1 -0
  36. package/dist/generators/generators/seeder.js +99 -0
  37. package/dist/generators/generators/seeder.js.map +1 -0
  38. package/dist/generators/templates/factory.d.ts +26 -0
  39. package/dist/generators/templates/factory.d.ts.map +1 -0
  40. package/dist/generators/templates/factory.js +125 -0
  41. package/dist/generators/templates/factory.js.map +1 -0
  42. package/dist/generators/templates/seeder.d.ts +34 -0
  43. package/dist/generators/templates/seeder.d.ts.map +1 -0
  44. package/dist/generators/templates/seeder.js +129 -0
  45. package/dist/generators/templates/seeder.js.map +1 -0
  46. package/dist/index.d.ts +5 -0
  47. package/dist/index.d.ts.map +1 -1
  48. package/dist/index.js +5 -0
  49. package/dist/index.js.map +1 -1
  50. package/dist/seeding/commands/seed.d.ts +11 -0
  51. package/dist/seeding/commands/seed.d.ts.map +1 -0
  52. package/dist/seeding/commands/seed.js +268 -0
  53. package/dist/seeding/commands/seed.js.map +1 -0
  54. package/dist/seeding/errors.d.ts +119 -0
  55. package/dist/seeding/errors.d.ts.map +1 -0
  56. package/dist/seeding/errors.js +191 -0
  57. package/dist/seeding/errors.js.map +1 -0
  58. package/dist/seeding/factory.d.ts +162 -0
  59. package/dist/seeding/factory.d.ts.map +1 -0
  60. package/dist/seeding/factory.js +250 -0
  61. package/dist/seeding/factory.js.map +1 -0
  62. package/dist/seeding/index.d.ts +31 -0
  63. package/dist/seeding/index.d.ts.map +1 -0
  64. package/dist/seeding/index.js +41 -0
  65. package/dist/seeding/index.js.map +1 -0
  66. package/dist/seeding/loader.d.ts +41 -0
  67. package/dist/seeding/loader.d.ts.map +1 -0
  68. package/dist/seeding/loader.js +210 -0
  69. package/dist/seeding/loader.js.map +1 -0
  70. package/dist/seeding/registry.d.ts +116 -0
  71. package/dist/seeding/registry.d.ts.map +1 -0
  72. package/dist/seeding/registry.js +298 -0
  73. package/dist/seeding/registry.js.map +1 -0
  74. package/dist/seeding/runner.d.ts +88 -0
  75. package/dist/seeding/runner.d.ts.map +1 -0
  76. package/dist/seeding/runner.js +254 -0
  77. package/dist/seeding/runner.js.map +1 -0
  78. package/dist/seeding/types.d.ts +247 -0
  79. package/dist/seeding/types.d.ts.map +1 -0
  80. package/dist/seeding/types.js +7 -0
  81. package/dist/seeding/types.js.map +1 -0
  82. package/dist/utils/output.d.ts +12 -0
  83. package/dist/utils/output.d.ts.map +1 -1
  84. package/dist/utils/output.js +21 -0
  85. package/dist/utils/output.js.map +1 -1
  86. package/package.json +18 -17
  87. package/LICENSE +0 -21
package/dist/cli.js CHANGED
@@ -5,9 +5,11 @@
5
5
  * A beautiful, Laravel-inspired command-line interface for the VeloxTS Framework
6
6
  */
7
7
  import { Command } from 'commander';
8
+ import { createDbCommand } from './commands/db.js';
8
9
  import { createDevCommand } from './commands/dev.js';
9
10
  import { createGenerateCommand } from './commands/generate.js';
10
11
  import { createMigrateCommand } from './commands/migrate.js';
12
+ import { createProceduresCommand } from './commands/procedures.js';
11
13
  import { CLI_VERSION } from './index.js';
12
14
  /**
13
15
  * Create the main CLI program
@@ -20,9 +22,11 @@ function createCLI() {
20
22
  .version(CLI_VERSION, '-v, --version', 'Output the current version')
21
23
  .helpOption('-h, --help', 'Display help for command');
22
24
  // Register commands
25
+ program.addCommand(createDbCommand());
23
26
  program.addCommand(createDevCommand(CLI_VERSION));
24
27
  program.addCommand(createGenerateCommand());
25
28
  program.addCommand(createMigrateCommand());
29
+ program.addCommand(createProceduresCommand());
26
30
  return program;
27
31
  }
28
32
  /**
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC;;GAEG;AACH,SAAS,SAAS;IAChB,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAE9B,OAAO;SACJ,IAAI,CAAC,OAAO,CAAC;SACb,WAAW,CAAC,sEAAsE,CAAC;SACnF,OAAO,CAAC,WAAW,EAAE,eAAe,EAAE,4BAA4B,CAAC;SACnE,UAAU,CAAC,YAAY,EAAE,0BAA0B,CAAC,CAAC;IAExD,oBAAoB;IACpB,OAAO,CAAC,UAAU,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC;IAClD,OAAO,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC,CAAC;IAC5C,OAAO,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,CAAC;IAE3C,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,IAAI;IACjB,MAAM,OAAO,GAAG,SAAS,EAAE,CAAC;IAE5B,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,OAAO,CAAC,KAAK,CAAC,UAAU,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3C,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC7C,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,cAAc;AACd,IAAI,EAAE,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC;;GAEG;AACH,SAAS,SAAS;IAChB,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAE9B,OAAO;SACJ,IAAI,CAAC,OAAO,CAAC;SACb,WAAW,CAAC,sEAAsE,CAAC;SACnF,OAAO,CAAC,WAAW,EAAE,eAAe,EAAE,4BAA4B,CAAC;SACnE,UAAU,CAAC,YAAY,EAAE,0BAA0B,CAAC,CAAC;IAExD,oBAAoB;IACpB,OAAO,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC,CAAC;IACtC,OAAO,CAAC,UAAU,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC;IAClD,OAAO,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC,CAAC;IAC5C,OAAO,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,CAAC;IAC3C,OAAO,CAAC,UAAU,CAAC,uBAAuB,EAAE,CAAC,CAAC;IAE9C,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,IAAI;IACjB,MAAM,OAAO,GAAG,SAAS,EAAE,CAAC;IAE5B,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,OAAO,CAAC,KAAK,CAAC,UAAU,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3C,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC7C,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,cAAc;AACd,IAAI,EAAE,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * DB command - Database seeding commands
3
+ *
4
+ * Provides subcommands for managing database seeding:
5
+ * - db:seed - Run database seeders
6
+ */
7
+ import { Command } from 'commander';
8
+ /**
9
+ * Create the db command with subcommands
10
+ */
11
+ export declare function createDbCommand(): Command;
12
+ //# sourceMappingURL=db.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../src/commands/db.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC;;GAEG;AACH,wBAAgB,eAAe,IAAI,OAAO,CAMzC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * DB command - Database seeding commands
3
+ *
4
+ * Provides subcommands for managing database seeding:
5
+ * - db:seed - Run database seeders
6
+ */
7
+ import { Command } from 'commander';
8
+ import { createSeedCommand } from '../seeding/commands/seed.js';
9
+ /**
10
+ * Create the db command with subcommands
11
+ */
12
+ export function createDbCommand() {
13
+ const db = new Command('db')
14
+ .description('Database seeding commands')
15
+ .addCommand(createSeedCommand());
16
+ return db;
17
+ }
18
+ //# sourceMappingURL=db.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"db.js","sourceRoot":"","sources":["../../src/commands/db.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAEhE;;GAEG;AACH,MAAM,UAAU,eAAe;IAC7B,MAAM,EAAE,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;SACzB,WAAW,CAAC,2BAA2B,CAAC;SACxC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAEnC,OAAO,EAAE,CAAC;AACZ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmBpC;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CASzD"}
1
+ {"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuBpC;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAYzD"}
@@ -7,7 +7,8 @@ import { spawn } from 'node:child_process';
7
7
  import * as p from '@clack/prompts';
8
8
  import { Command } from 'commander';
9
9
  import pc from 'picocolors';
10
- import { error, formatCommand, formatPath, info, instruction, printBanner, } from '../utils/output.js';
10
+ import { buildWatchArgs, runHMRServer } from '../dev/index.js';
11
+ import { error, formatCommand, formatPath, info, instruction, printBanner, warning, } from '../utils/output.js';
11
12
  import { findEntryPoint, isVeloxProject, validateEntryPath } from '../utils/paths.js';
12
13
  /**
13
14
  * Create the dev command
@@ -18,6 +19,9 @@ export function createDevCommand(version) {
18
19
  .option('-p, --port <port>', 'Port to listen on', '3210')
19
20
  .option('-H, --host <host>', 'Host to bind to', 'localhost')
20
21
  .option('-e, --entry <file>', 'Entry point file (auto-detected if not specified)')
22
+ .option('--clear', 'Clear console on restart (default: true)', true)
23
+ .option('--no-clear', 'Disable console clearing on restart')
24
+ .option('--hmr', 'Enable experimental hot module replacement', false)
21
25
  .action(async (options) => {
22
26
  await runDevServer(options, version);
23
27
  });
@@ -84,6 +88,11 @@ async function runDevServer(options, version) {
84
88
  }
85
89
  // Print startup banner
86
90
  printBanner(version);
91
+ // Show HMR warning if enabled
92
+ if (options.hmr) {
93
+ warning('HMR mode is experimental. Some changes may require a full restart.');
94
+ console.log('');
95
+ }
87
96
  info('Starting development server...');
88
97
  console.log('');
89
98
  // Set environment variables for the app
@@ -93,8 +102,25 @@ async function runDevServer(options, version) {
93
102
  HOST: host,
94
103
  NODE_ENV: 'development',
95
104
  };
96
- // Spawn tsx in watch mode
97
- const devProcess = spawn('npx', ['tsx', 'watch', entryPoint], {
105
+ // Check if HMR mode is requested
106
+ if (options.hmr) {
107
+ // Run with experimental HMR
108
+ await runHMRServer({
109
+ entry: entryPoint,
110
+ port,
111
+ host,
112
+ env,
113
+ });
114
+ return; // HMR runner handles its own lifecycle
115
+ }
116
+ // Build watch arguments with smart ignore patterns
117
+ const clearScreen = options.clear !== false;
118
+ const watchArgs = buildWatchArgs({
119
+ entry: entryPoint,
120
+ clearScreen,
121
+ });
122
+ // Spawn tsx in watch mode with optimized file watching
123
+ const devProcess = spawn('npx', watchArgs, {
98
124
  stdio: 'inherit',
99
125
  env,
100
126
  shell: true,
@@ -1 +1 @@
1
- {"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Procedures command - Discover and list procedures
3
+ *
4
+ * Provides subcommands for managing procedures:
5
+ * - procedures:list - List all discovered procedures
6
+ */
7
+ import { Command } from 'commander';
8
+ /**
9
+ * Create the procedures command with subcommands
10
+ */
11
+ export declare function createProceduresCommand(): Command;
12
+ //# sourceMappingURL=procedures.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"procedures.d.ts","sourceRoot":"","sources":["../../src/commands/procedures.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA0LpC;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,OAAO,CAMjD"}
@@ -0,0 +1,153 @@
1
+ /**
2
+ * Procedures command - Discover and list procedures
3
+ *
4
+ * Provides subcommands for managing procedures:
5
+ * - procedures:list - List all discovered procedures
6
+ */
7
+ import { discoverProceduresVerbose, isDiscoveryError, } from '@veloxts/router';
8
+ import { Command } from 'commander';
9
+ import pc from 'picocolors';
10
+ // ============================================================================
11
+ // Helper Functions
12
+ // ============================================================================
13
+ /**
14
+ * Extract procedure info from a collection
15
+ */
16
+ function extractProcedureInfo(collection) {
17
+ const procedures = [];
18
+ for (const [name, proc] of Object.entries(collection.procedures)) {
19
+ const procedure = proc;
20
+ procedures.push({
21
+ name,
22
+ type: procedure.type,
23
+ hasInput: procedure.inputSchema !== undefined,
24
+ hasOutput: procedure.outputSchema !== undefined,
25
+ });
26
+ }
27
+ // Sort by name for consistent output
28
+ procedures.sort((a, b) => a.name.localeCompare(b.name));
29
+ return {
30
+ namespace: collection.namespace,
31
+ procedures,
32
+ };
33
+ }
34
+ /**
35
+ * Format HTTP method label based on procedure type and name
36
+ */
37
+ function formatMethodLabel(name, type) {
38
+ // Infer HTTP method from procedure name
39
+ if (name.startsWith('get') || name.startsWith('find'))
40
+ return pc.green('GET ');
41
+ if (name.startsWith('list'))
42
+ return pc.green('GET ');
43
+ if (name.startsWith('create') || name.startsWith('add'))
44
+ return pc.yellow('POST ');
45
+ if (name.startsWith('update') || name.startsWith('edit'))
46
+ return pc.blue('PUT ');
47
+ if (name.startsWith('patch'))
48
+ return pc.cyan('PATCH ');
49
+ if (name.startsWith('delete') || name.startsWith('remove'))
50
+ return pc.red('DELETE ');
51
+ // Fallback to procedure type
52
+ return type === 'query' ? pc.green('GET ') : pc.yellow('POST ');
53
+ }
54
+ /**
55
+ * Print human-readable output
56
+ */
57
+ function printPrettyOutput(result) {
58
+ const totalProcedures = result.collections.reduce((sum, c) => sum + c.procedures.length, 0);
59
+ console.log();
60
+ console.log(pc.bold('Discovered Procedures'));
61
+ console.log(pc.dim(`─`.repeat(50)));
62
+ console.log();
63
+ for (const collection of result.collections) {
64
+ console.log(pc.bold(pc.cyan(`/${collection.namespace}`)));
65
+ for (const proc of collection.procedures) {
66
+ const method = formatMethodLabel(proc.name, proc.type);
67
+ const schemas = [];
68
+ if (proc.hasInput)
69
+ schemas.push('input');
70
+ if (proc.hasOutput)
71
+ schemas.push('output');
72
+ const schemaInfo = schemas.length > 0 ? pc.dim(` (${schemas.join(', ')})`) : '';
73
+ console.log(` ${method} ${proc.name}${schemaInfo}`);
74
+ }
75
+ console.log();
76
+ }
77
+ // Summary
78
+ console.log(pc.dim(`─`.repeat(50)));
79
+ console.log(`${pc.bold(totalProcedures.toString())} procedures in ${pc.bold(result.collections.length.toString())} collections`);
80
+ console.log(pc.dim(`Scanned ${result.scannedFiles} files, loaded ${result.loadedFiles} files`));
81
+ // Warnings
82
+ if (result.warnings.length > 0) {
83
+ console.log();
84
+ console.log(pc.yellow(`${result.warnings.length} warning(s):`));
85
+ for (const warning of result.warnings) {
86
+ console.log(pc.yellow(` • ${warning}`));
87
+ }
88
+ }
89
+ console.log();
90
+ }
91
+ /**
92
+ * Print JSON output
93
+ */
94
+ function printJsonOutput(result) {
95
+ console.log(JSON.stringify(result, null, 2));
96
+ }
97
+ // ============================================================================
98
+ // Command Implementation
99
+ // ============================================================================
100
+ /**
101
+ * Create the procedures:list command
102
+ */
103
+ function createListCommand() {
104
+ return new Command('list')
105
+ .description('List all discovered procedures')
106
+ .option('-p, --path <path>', 'Path to procedures directory', './src/procedures')
107
+ .option('-r, --recursive', 'Scan subdirectories', false)
108
+ .option('--json', 'Output as JSON', false)
109
+ .action(async (options) => {
110
+ const proceduresPath = options.path ?? './src/procedures';
111
+ const discoveryOptions = {
112
+ recursive: options.recursive ?? false,
113
+ onInvalidExport: 'warn',
114
+ };
115
+ try {
116
+ const discovery = await discoverProceduresVerbose(proceduresPath, discoveryOptions);
117
+ const result = {
118
+ collections: discovery.collections.map(extractProcedureInfo),
119
+ scannedFiles: discovery.scannedFiles.length,
120
+ loadedFiles: discovery.loadedFiles.length,
121
+ warnings: discovery.warnings.map((w) => `${w.filePath}: ${w.message}`),
122
+ };
123
+ if (options.json) {
124
+ printJsonOutput(result);
125
+ }
126
+ else {
127
+ printPrettyOutput(result);
128
+ }
129
+ }
130
+ catch (error) {
131
+ if (isDiscoveryError(error)) {
132
+ if (options.json) {
133
+ console.log(JSON.stringify({ error: error.toJSON() }, null, 2));
134
+ }
135
+ else {
136
+ console.error(pc.red(error.format()));
137
+ }
138
+ process.exit(1);
139
+ }
140
+ throw error;
141
+ }
142
+ });
143
+ }
144
+ /**
145
+ * Create the procedures command with subcommands
146
+ */
147
+ export function createProceduresCommand() {
148
+ const procedures = new Command('procedures')
149
+ .description('Procedure discovery and management commands')
150
+ .addCommand(createListCommand());
151
+ return procedures;
152
+ }
153
+ //# sourceMappingURL=procedures.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"procedures.js","sourceRoot":"","sources":["../../src/commands/procedures.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * HMR Runner - Experimental Hot Module Replacement
3
+ *
4
+ * Uses hot-hook library to enable module replacement without full process restart.
5
+ * This is marked as experimental and may not work for all use cases.
6
+ *
7
+ * @see https://github.com/Julien-R44/hot-hook
8
+ */
9
+ /**
10
+ * Options for the HMR runner
11
+ */
12
+ export interface HMRRunnerOptions {
13
+ /** Entry point file */
14
+ readonly entry: string;
15
+ /** Port for the application */
16
+ readonly port: string;
17
+ /** Host for the application */
18
+ readonly host: string;
19
+ /** Environment variables to pass */
20
+ readonly env?: Record<string, string>;
21
+ }
22
+ /**
23
+ * HMR Runner manages a Node.js process with hot-hook enabled
24
+ * for experimental hot module replacement.
25
+ */
26
+ export declare class HMRRunner {
27
+ private readonly options;
28
+ private child;
29
+ private isShuttingDown;
30
+ private restartCount;
31
+ constructor(options: HMRRunnerOptions);
32
+ /**
33
+ * Start the HMR-enabled development server
34
+ */
35
+ start(): Promise<void>;
36
+ /**
37
+ * Stop the HMR runner
38
+ */
39
+ stop(): Promise<void>;
40
+ /**
41
+ * Restart the process (used when HMR fails)
42
+ */
43
+ restart(): Promise<void>;
44
+ private printHMRBanner;
45
+ private spawnProcess;
46
+ private setupSignalHandlers;
47
+ }
48
+ /**
49
+ * Run the development server with HMR enabled
50
+ */
51
+ export declare function runHMRServer(options: HMRRunnerOptions): Promise<void>;
52
+ //# sourceMappingURL=hmr-runner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hmr-runner.d.ts","sourceRoot":"","sources":["../../src/dev/hmr-runner.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAQH;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,uBAAuB;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,+BAA+B;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,+BAA+B;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,oCAAoC;IACpC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACvC;AAED;;;GAGG;AACH,qBAAa,SAAS;IAKR,OAAO,CAAC,QAAQ,CAAC,OAAO;IAJpC,OAAO,CAAC,KAAK,CAA6B;IAC1C,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,YAAY,CAAK;gBAEI,OAAO,EAAE,gBAAgB;IAEtD;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAM5B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAwB3B;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAe9B,OAAO,CAAC,cAAc;YAYR,YAAY;IAyD1B,OAAO,CAAC,mBAAmB;CAW5B;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAG3E"}
@@ -0,0 +1,153 @@
1
+ /**
2
+ * HMR Runner - Experimental Hot Module Replacement
3
+ *
4
+ * Uses hot-hook library to enable module replacement without full process restart.
5
+ * This is marked as experimental and may not work for all use cases.
6
+ *
7
+ * @see https://github.com/Julien-R44/hot-hook
8
+ */
9
+ import { spawn } from 'node:child_process';
10
+ import pc from 'picocolors';
11
+ import { error, info, warning } from '../utils/output.js';
12
+ /**
13
+ * HMR Runner manages a Node.js process with hot-hook enabled
14
+ * for experimental hot module replacement.
15
+ */
16
+ export class HMRRunner {
17
+ options;
18
+ child = null;
19
+ isShuttingDown = false;
20
+ restartCount = 0;
21
+ constructor(options) {
22
+ this.options = options;
23
+ }
24
+ /**
25
+ * Start the HMR-enabled development server
26
+ */
27
+ async start() {
28
+ this.printHMRBanner();
29
+ await this.spawnProcess();
30
+ this.setupSignalHandlers();
31
+ }
32
+ /**
33
+ * Stop the HMR runner
34
+ */
35
+ async stop() {
36
+ if (this.isShuttingDown)
37
+ return;
38
+ this.isShuttingDown = true;
39
+ if (this.child) {
40
+ this.child.kill('SIGTERM');
41
+ // Wait for graceful shutdown with timeout
42
+ await new Promise((resolve) => {
43
+ const timeout = setTimeout(() => {
44
+ if (this.child) {
45
+ this.child.kill('SIGKILL');
46
+ }
47
+ resolve();
48
+ }, 5000);
49
+ this.child?.on('exit', () => {
50
+ clearTimeout(timeout);
51
+ resolve();
52
+ });
53
+ });
54
+ }
55
+ }
56
+ /**
57
+ * Restart the process (used when HMR fails)
58
+ */
59
+ async restart() {
60
+ this.restartCount++;
61
+ info(`Full restart triggered (restart #${this.restartCount})`);
62
+ if (this.child) {
63
+ this.child.kill('SIGTERM');
64
+ await new Promise((resolve) => {
65
+ this.child?.on('exit', () => resolve());
66
+ setTimeout(resolve, 2000);
67
+ });
68
+ }
69
+ await this.spawnProcess();
70
+ }
71
+ printHMRBanner() {
72
+ console.log('');
73
+ console.log(pc.yellow(' ⚡ HMR Mode (Experimental)'));
74
+ console.log(pc.dim(' Hot module replacement enabled for:'));
75
+ console.log(pc.dim(' • src/procedures/**/*.ts'));
76
+ console.log(pc.dim(' • src/schemas/**/*.ts'));
77
+ console.log(pc.dim(' • src/handlers/**/*.ts'));
78
+ console.log('');
79
+ console.log(pc.dim(' Config/database changes require full restart.'));
80
+ console.log('');
81
+ }
82
+ async spawnProcess() {
83
+ const env = {
84
+ ...process.env,
85
+ ...this.options.env,
86
+ PORT: this.options.port,
87
+ HOST: this.options.host,
88
+ NODE_ENV: 'development',
89
+ HOT_HOOK_ENABLED: 'true',
90
+ };
91
+ // Spawn with hot-hook register via Node.js loader
92
+ // Note: tsx provides TypeScript support, hot-hook provides HMR
93
+ this.child = spawn('node', ['--import=tsx', '--import=hot-hook/register', this.options.entry], {
94
+ stdio: ['inherit', 'inherit', 'inherit', 'ipc'],
95
+ env,
96
+ cwd: process.cwd(),
97
+ });
98
+ // Handle IPC messages from hot-hook
99
+ this.child.on('message', (message) => {
100
+ if (typeof message === 'object' && message !== null) {
101
+ const msg = message;
102
+ if (msg.type === 'hot-hook:full-reload') {
103
+ // Full reload requested by hot-hook (e.g., non-boundary file changed)
104
+ this.restart().catch((err) => {
105
+ error(`Failed to restart: ${err instanceof Error ? err.message : String(err)}`);
106
+ });
107
+ }
108
+ else if (msg.type === 'hot-hook:error') {
109
+ warning(`HMR error: ${msg.error ?? 'Unknown error'}`);
110
+ warning('Falling back to full restart...');
111
+ this.restart().catch((err) => {
112
+ error(`Failed to restart: ${err instanceof Error ? err.message : String(err)}`);
113
+ });
114
+ }
115
+ else if (msg.type === 'hot-hook:update') {
116
+ console.log(pc.green(' ⚡ Hot updated:'), pc.dim(msg.file ?? 'unknown'));
117
+ }
118
+ }
119
+ });
120
+ this.child.on('error', (err) => {
121
+ error(`Process error: ${err.message}`);
122
+ if (!this.isShuttingDown) {
123
+ this.restart().catch(() => {
124
+ process.exit(1);
125
+ });
126
+ }
127
+ });
128
+ this.child.on('exit', (code) => {
129
+ if (!this.isShuttingDown && code !== 0) {
130
+ error(`Process exited with code ${code}`);
131
+ // Don't auto-restart on crash - let developer fix the issue
132
+ }
133
+ });
134
+ }
135
+ setupSignalHandlers() {
136
+ const shutdown = async (signal) => {
137
+ console.log(`\n${pc.yellow('⚠')} Received ${signal}, shutting down...`);
138
+ await this.stop();
139
+ console.log(pc.dim('HMR server stopped.'));
140
+ process.exit(0);
141
+ };
142
+ process.on('SIGINT', () => shutdown('SIGINT'));
143
+ process.on('SIGTERM', () => shutdown('SIGTERM'));
144
+ }
145
+ }
146
+ /**
147
+ * Run the development server with HMR enabled
148
+ */
149
+ export async function runHMRServer(options) {
150
+ const runner = new HMRRunner(options);
151
+ await runner.start();
152
+ }
153
+ //# sourceMappingURL=hmr-runner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hmr-runner.js","sourceRoot":"","sources":["../../src/dev/hmr-runner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Development Server Utilities
3
+ */
4
+ export * from './hmr-runner.js';
5
+ export * from './watch-config.js';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dev/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Development Server Utilities
3
+ */
4
+ export * from './hmr-runner.js';
5
+ export * from './watch-config.js';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dev/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Watch Configuration for Development Server
3
+ *
4
+ * Defines file patterns to ignore during development to prevent
5
+ * unnecessary restarts and improve developer experience.
6
+ */
7
+ /**
8
+ * Default patterns to ignore when watching for file changes.
9
+ * These patterns match files that should not trigger a restart.
10
+ */
11
+ export declare const DEFAULT_WATCH_IGNORE: readonly string[];
12
+ /**
13
+ * Options for building watch arguments
14
+ */
15
+ export interface WatchOptions {
16
+ /** Entry point file */
17
+ readonly entry: string;
18
+ /** Whether to clear screen on restart */
19
+ readonly clearScreen: boolean;
20
+ /** Patterns to ignore (defaults to DEFAULT_WATCH_IGNORE) */
21
+ readonly ignore?: readonly string[];
22
+ }
23
+ /**
24
+ * Build command line arguments for tsx watch
25
+ */
26
+ export declare function buildWatchArgs(options: WatchOptions): string[];
27
+ /**
28
+ * Get the essential ignore patterns (minimal set for fastest filtering)
29
+ * Used when full ignore list causes performance issues
30
+ */
31
+ export declare function getEssentialIgnorePatterns(): readonly string[];
32
+ //# sourceMappingURL=watch-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"watch-config.d.ts","sourceRoot":"","sources":["../../src/dev/watch-config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,SAAS,MAAM,EAsCjD,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,uBAAuB;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,yCAAyC;IACzC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,4DAA4D;IAC5D,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,EAAE,CAkB9D;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,IAAI,SAAS,MAAM,EAAE,CAS9D"}