@veloxts/cli 0.4.12 → 0.4.13

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 (54) hide show
  1. package/dist/cli.js +2 -2
  2. package/dist/cli.js.map +1 -1
  3. package/dist/commands/dev.d.ts +4 -1
  4. package/dist/commands/dev.d.ts.map +1 -1
  5. package/dist/commands/dev.js +29 -15
  6. package/dist/commands/dev.js.map +1 -1
  7. package/dist/commands/make.d.ts +17 -0
  8. package/dist/commands/make.d.ts.map +1 -0
  9. package/dist/commands/make.js +219 -0
  10. package/dist/commands/make.js.map +1 -0
  11. package/dist/dev/error-parser.d.ts +67 -0
  12. package/dist/dev/error-parser.d.ts.map +1 -0
  13. package/dist/dev/error-parser.js +384 -0
  14. package/dist/dev/error-parser.js.map +1 -0
  15. package/dist/dev/hmr-runner.d.ts +67 -9
  16. package/dist/dev/hmr-runner.d.ts.map +1 -1
  17. package/dist/dev/hmr-runner.js +305 -57
  18. package/dist/dev/hmr-runner.js.map +1 -1
  19. package/dist/dev/index.d.ts +6 -0
  20. package/dist/dev/index.d.ts.map +1 -1
  21. package/dist/dev/index.js +8 -0
  22. package/dist/dev/index.js.map +1 -1
  23. package/dist/dev/reload-reporter.d.ts +197 -0
  24. package/dist/dev/reload-reporter.d.ts.map +1 -0
  25. package/dist/dev/reload-reporter.js +370 -0
  26. package/dist/dev/reload-reporter.js.map +1 -0
  27. package/dist/dev/timing-tracker.d.ts +130 -0
  28. package/dist/dev/timing-tracker.d.ts.map +1 -0
  29. package/dist/dev/timing-tracker.js +175 -0
  30. package/dist/dev/timing-tracker.js.map +1 -0
  31. package/dist/generators/generators/factory.d.ts +5 -5
  32. package/dist/generators/generators/factory.js +8 -8
  33. package/dist/generators/generators/migration.d.ts +7 -7
  34. package/dist/generators/generators/migration.js +12 -12
  35. package/dist/generators/generators/model.d.ts +7 -7
  36. package/dist/generators/generators/model.js +12 -12
  37. package/dist/generators/generators/procedure.d.ts +6 -6
  38. package/dist/generators/generators/procedure.js +12 -12
  39. package/dist/generators/generators/seeder.d.ts +5 -5
  40. package/dist/generators/generators/seeder.js +9 -9
  41. package/dist/generators/generators/seeder.js.map +1 -1
  42. package/dist/generators/types.d.ts +1 -1
  43. package/dist/generators/types.d.ts.map +1 -1
  44. package/dist/migrations/commands/run.js +1 -1
  45. package/dist/migrations/commands/run.js.map +1 -1
  46. package/dist/migrations/commands/status.js +1 -1
  47. package/dist/migrations/commands/status.js.map +1 -1
  48. package/dist/migrations/errors.js +1 -1
  49. package/dist/migrations/errors.js.map +1 -1
  50. package/dist/seeding/commands/seed.js +2 -2
  51. package/dist/seeding/commands/seed.js.map +1 -1
  52. package/dist/seeding/errors.js +1 -1
  53. package/dist/seeding/errors.js.map +1 -1
  54. package/package.json +6 -6
@@ -1,41 +1,121 @@
1
1
  /**
2
- * HMR Runner - Experimental Hot Module Replacement
2
+ * HMR Runner - Hot Module Replacement for Development
3
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.
4
+ * Manages a Node.js process with hot-hook enabled for fast module replacement.
5
+ * Provides rich feedback with timing information and helpful error messages.
6
6
  *
7
7
  * @see https://github.com/Julien-R44/hot-hook
8
8
  */
9
9
  import { spawn } from 'node:child_process';
10
10
  import pc from 'picocolors';
11
- import { error, info, warning } from '../utils/output.js';
11
+ import { error } from '../utils/output.js';
12
+ import { parseDevError } from './error-parser.js';
13
+ import { createReloadReporter } from './reload-reporter.js';
14
+ import { createTimingTracker } from './timing-tracker.js';
15
+ // ============================================================================
16
+ // Constants
17
+ // ============================================================================
18
+ /**
19
+ * Delay before assuming server is ready (ms).
20
+ * Used as fallback when no explicit ready signal is received.
21
+ */
22
+ const STARTUP_DETECTION_DELAY_MS = 100;
23
+ /**
24
+ * Timeout for graceful shutdown before force kill (ms).
25
+ */
26
+ const GRACEFUL_SHUTDOWN_TIMEOUT_MS = 5000;
27
+ /**
28
+ * Timeout for process to exit during restart (ms).
29
+ */
30
+ const RESTART_EXIT_TIMEOUT_MS = 2000;
31
+ /**
32
+ * Placeholder duration for hot updates (ms).
33
+ *
34
+ * Note: hot-hook doesn't currently provide timing information in IPC messages.
35
+ * This is a reasonable estimate since hot updates typically complete in <10ms.
36
+ * TODO: Request timing data from hot-hook or measure via timestamps.
37
+ */
38
+ const HOT_UPDATE_ESTIMATED_DURATION_MS = 5;
39
+ // ============================================================================
40
+ // Type Guards
41
+ // ============================================================================
42
+ /**
43
+ * Validate that an unknown value is a valid HotHookMessage.
44
+ *
45
+ * Performs runtime type checking to ensure IPC messages from hot-hook
46
+ * conform to the expected shape before processing.
47
+ *
48
+ * @param value - Unknown value to validate
49
+ * @returns Type predicate indicating if value is HotHookMessage
50
+ */
51
+ function isHotHookMessage(value) {
52
+ if (typeof value !== 'object' || value === null) {
53
+ return false;
54
+ }
55
+ const obj = value;
56
+ // Validate each optional property has the correct type if present
57
+ if (obj.type !== undefined && typeof obj.type !== 'string') {
58
+ return false;
59
+ }
60
+ if (obj.file !== undefined && typeof obj.file !== 'string') {
61
+ return false;
62
+ }
63
+ if (obj.error !== undefined && typeof obj.error !== 'string') {
64
+ return false;
65
+ }
66
+ if (obj.boundary !== undefined && typeof obj.boundary !== 'string') {
67
+ return false;
68
+ }
69
+ return true;
70
+ }
71
+ // ============================================================================
72
+ // HMRRunner Class
73
+ // ============================================================================
12
74
  /**
13
75
  * HMR Runner manages a Node.js process with hot-hook enabled
14
- * for experimental hot module replacement.
76
+ * for fast hot module replacement during development.
15
77
  */
16
78
  export class HMRRunner {
17
79
  options;
18
80
  child = null;
19
81
  isShuttingDown = false;
20
- restartCount = 0;
82
+ isStartingUp = false;
83
+ startupTimer = null;
84
+ // Integrated modules
85
+ timing;
86
+ reporter;
21
87
  constructor(options) {
22
88
  this.options = options;
89
+ this.timing = createTimingTracker();
90
+ this.reporter = createReloadReporter({
91
+ verbose: options.verbose ?? false,
92
+ clearOnRestart: options.clearOnRestart ?? true,
93
+ });
23
94
  }
95
+ // --------------------------------------------------------------------------
96
+ // Public API
97
+ // --------------------------------------------------------------------------
24
98
  /**
25
99
  * Start the HMR-enabled development server
26
100
  */
27
101
  async start() {
28
- this.printHMRBanner();
102
+ this.reporter.printHMRStatus();
103
+ if (this.options.debug) {
104
+ this.reporter.printDebugStatus();
105
+ }
106
+ this.timing.start('startup');
107
+ this.isStartingUp = true;
29
108
  await this.spawnProcess();
30
109
  this.setupSignalHandlers();
31
110
  }
32
111
  /**
33
- * Stop the HMR runner
112
+ * Stop the HMR runner gracefully
34
113
  */
35
114
  async stop() {
36
115
  if (this.isShuttingDown)
37
116
  return;
38
117
  this.isShuttingDown = true;
118
+ this.timing.start('shutdown');
39
119
  if (this.child) {
40
120
  this.child.kill('SIGTERM');
41
121
  // Wait for graceful shutdown with timeout
@@ -45,40 +125,47 @@ export class HMRRunner {
45
125
  this.child.kill('SIGKILL');
46
126
  }
47
127
  resolve();
48
- }, 5000);
128
+ }, GRACEFUL_SHUTDOWN_TIMEOUT_MS);
49
129
  this.child?.on('exit', () => {
50
130
  clearTimeout(timeout);
51
131
  resolve();
52
132
  });
53
133
  });
54
134
  }
135
+ const duration = this.timing.end('shutdown');
136
+ if (this.options.verbose) {
137
+ console.log(pc.dim(` Shutdown completed in ${duration}ms`));
138
+ }
139
+ // Print final statistics in verbose mode
140
+ this.reporter.printStatistics();
55
141
  }
142
+ // --------------------------------------------------------------------------
143
+ // Private: Process Management
144
+ // --------------------------------------------------------------------------
56
145
  /**
57
- * Restart the process (used when HMR fails)
146
+ * Restart the process (called when HMR fails or non-boundary file changes)
58
147
  */
59
- async restart() {
60
- this.restartCount++;
61
- info(`Full restart triggered (restart #${this.restartCount})`);
148
+ async restart(reason, filePath) {
149
+ this.reporter.reportFullRestart(reason, filePath);
150
+ this.timing.start('restart');
62
151
  if (this.child) {
63
152
  this.child.kill('SIGTERM');
64
153
  await new Promise((resolve) => {
65
- this.child?.on('exit', () => resolve());
66
- setTimeout(resolve, 2000);
154
+ const exitHandler = () => resolve();
155
+ this.child?.once('exit', exitHandler);
156
+ // Timeout in case process doesn't exit gracefully
157
+ setTimeout(() => {
158
+ this.child?.removeListener('exit', exitHandler);
159
+ resolve();
160
+ }, RESTART_EXIT_TIMEOUT_MS);
67
161
  });
68
162
  }
163
+ this.isStartingUp = true;
69
164
  await this.spawnProcess();
70
165
  }
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
- }
166
+ /**
167
+ * Spawn the Node.js process with hot-hook enabled
168
+ */
82
169
  async spawnProcess() {
83
170
  const env = {
84
171
  ...process.env,
@@ -89,60 +176,221 @@ export class HMRRunner {
89
176
  HOT_HOOK_ENABLED: 'true',
90
177
  };
91
178
  // Spawn with hot-hook register via Node.js loader
92
- // Note: tsx provides TypeScript support, hot-hook provides HMR
179
+ // tsx provides TypeScript support, hot-hook provides HMR
93
180
  this.child = spawn('node', ['--import=tsx', '--import=hot-hook/register', this.options.entry], {
94
181
  stdio: ['inherit', 'inherit', 'inherit', 'ipc'],
95
182
  env,
96
183
  cwd: process.cwd(),
97
184
  });
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
- }
185
+ // Set up IPC message handler
186
+ this.child.on('message', (message) => this.handleIPCMessage(message));
187
+ // Set up process event handlers
188
+ this.child.on('error', (err) => this.handleProcessError(err));
189
+ this.child.on('exit', (code, signal) => this.handleProcessExit(code, signal));
190
+ // Detect startup completion
191
+ // The server will send a message or we detect via stdout
192
+ this.setupStartupDetection();
193
+ }
194
+ /**
195
+ * Setup detection for when the server is ready
196
+ */
197
+ setupStartupDetection() {
198
+ // Give the server time to start, then report ready
199
+ // Ideally we'd listen for a specific ready message from the server
200
+ this.startupTimer = setTimeout(() => {
201
+ if (this.isStartingUp) {
202
+ this.reportStartupComplete();
203
+ }
204
+ }, STARTUP_DETECTION_DELAY_MS);
205
+ // Also listen for early exit (startup failure)
206
+ this.child?.once('exit', () => {
207
+ if (this.startupTimer) {
208
+ clearTimeout(this.startupTimer);
209
+ this.startupTimer = null;
118
210
  }
119
211
  });
120
- this.child.on('error', (err) => {
121
- error(`Process error: ${err.message}`);
212
+ }
213
+ /**
214
+ * Report that startup is complete
215
+ */
216
+ reportStartupComplete() {
217
+ if (!this.isStartingUp)
218
+ return;
219
+ this.isStartingUp = false;
220
+ const label = this.timing.isInProgress('restart') ? 'restart' : 'startup';
221
+ const duration = this.timing.end(label);
222
+ const url = `http://${this.options.host}:${this.options.port}`;
223
+ this.reporter.reportStartupComplete(url, duration);
224
+ }
225
+ // --------------------------------------------------------------------------
226
+ // Private: IPC Message Handling
227
+ // --------------------------------------------------------------------------
228
+ /**
229
+ * Handle IPC messages from hot-hook
230
+ */
231
+ handleIPCMessage(message) {
232
+ // Validate message shape before processing
233
+ if (!isHotHookMessage(message)) {
234
+ return;
235
+ }
236
+ switch (message.type) {
237
+ case 'hot-hook:update':
238
+ this.handleHotUpdate(message);
239
+ break;
240
+ case 'hot-hook:full-reload':
241
+ this.handleFullReloadRequest(message);
242
+ break;
243
+ case 'hot-hook:error':
244
+ this.handleHMRError(message);
245
+ break;
246
+ case 'velox:ready':
247
+ // Custom message from VeloxTS server indicating ready
248
+ this.reportStartupComplete();
249
+ break;
250
+ default:
251
+ // Ignore unknown messages
252
+ break;
253
+ }
254
+ }
255
+ /**
256
+ * Handle successful hot module update
257
+ */
258
+ handleHotUpdate(msg) {
259
+ // Report startup complete if this is the first update after restart
260
+ if (this.isStartingUp) {
261
+ this.reportStartupComplete();
262
+ }
263
+ const file = msg.file ?? 'unknown';
264
+ // Use estimated duration since hot-hook doesn't provide timing data
265
+ // See HOT_UPDATE_ESTIMATED_DURATION_MS constant for details
266
+ this.reporter.reportHotUpdate(file, HOT_UPDATE_ESTIMATED_DURATION_MS);
267
+ }
268
+ /**
269
+ * Handle request for full process reload
270
+ */
271
+ handleFullReloadRequest(msg) {
272
+ const reason = msg.file
273
+ ? `${this.getBasename(msg.file)} changed (outside HMR boundaries)`
274
+ : 'File changed outside HMR boundaries';
275
+ this.restart(reason, msg.file).catch((err) => {
276
+ this.handleRestartError(err);
277
+ });
278
+ }
279
+ /**
280
+ * Handle HMR-specific error
281
+ */
282
+ handleHMRError(msg) {
283
+ const errorMsg = msg.error ?? 'Unknown HMR error';
284
+ this.reporter.reportHMRFallback(errorMsg);
285
+ const reason = 'HMR update failed';
286
+ this.restart(reason, msg.file).catch((err) => {
287
+ this.handleRestartError(err);
288
+ });
289
+ }
290
+ // --------------------------------------------------------------------------
291
+ // Private: Error Handling
292
+ // --------------------------------------------------------------------------
293
+ /**
294
+ * Handle process spawn/runtime errors
295
+ */
296
+ handleProcessError(err) {
297
+ const parsed = parseDevError(err);
298
+ if (parsed.type === 'port-in-use') {
299
+ // Port in use is a fatal error
300
+ this.reporter.reportCompilationError(err, undefined, parsed.suggestion);
301
+ error(`Port ${this.options.port} is already in use.`);
302
+ console.log(` ${pc.dim(`Try: velox dev --port ${Number(this.options.port) + 1}`)}`);
303
+ process.exit(1);
304
+ }
305
+ // For recoverable errors, report and attempt restart
306
+ if (parsed.isRecoverable) {
307
+ this.reporter.reportRuntimeError(err);
122
308
  if (!this.isShuttingDown) {
123
- this.restart().catch(() => {
309
+ this.restart('Runtime error', parsed.filePath).catch(() => {
124
310
  process.exit(1);
125
311
  });
126
312
  }
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
313
+ }
314
+ else {
315
+ this.reportFatalError(parsed);
316
+ process.exit(1);
317
+ }
318
+ }
319
+ /**
320
+ * Handle process exit
321
+ */
322
+ handleProcessExit(code, signal) {
323
+ if (this.startupTimer) {
324
+ clearTimeout(this.startupTimer);
325
+ this.startupTimer = null;
326
+ }
327
+ if (this.isShuttingDown)
328
+ return;
329
+ if (code !== 0 && code !== null) {
330
+ // Process crashed - check if it was during startup
331
+ if (this.isStartingUp) {
332
+ error('Server failed to start. Check for syntax or configuration errors.');
333
+ console.log(` ${pc.dim('Watching for changes...')}`);
334
+ this.isStartingUp = false;
335
+ // Don't exit - wait for file changes to fix the error
132
336
  }
133
- });
337
+ else {
338
+ // Runtime crash
339
+ this.reporter.reportRuntimeError();
340
+ console.log(` ${pc.dim(`Process exited with code ${code}`)}`);
341
+ console.log(` ${pc.dim('Watching for changes...')}`);
342
+ }
343
+ }
344
+ else if (signal) {
345
+ // Process was killed by signal
346
+ if (this.options.verbose) {
347
+ console.log(pc.dim(` Process killed by signal: ${signal}`));
348
+ }
349
+ }
350
+ }
351
+ /**
352
+ * Handle restart failure
353
+ */
354
+ handleRestartError(err) {
355
+ const message = err instanceof Error ? err.message : String(err);
356
+ error(`Failed to restart: ${message}`);
357
+ }
358
+ /**
359
+ * Report a fatal error that cannot be recovered
360
+ */
361
+ reportFatalError(parsed) {
362
+ this.reporter.reportCompilationError(parsed.originalError, parsed.filePath, parsed.suggestion);
134
363
  }
364
+ // --------------------------------------------------------------------------
365
+ // Private: Signal Handling
366
+ // --------------------------------------------------------------------------
367
+ /**
368
+ * Setup process signal handlers for graceful shutdown
369
+ */
135
370
  setupSignalHandlers() {
136
371
  const shutdown = async (signal) => {
137
372
  console.log(`\n${pc.yellow('⚠')} Received ${signal}, shutting down...`);
138
373
  await this.stop();
139
- console.log(pc.dim('HMR server stopped.'));
374
+ console.log(pc.dim('Development server stopped.'));
140
375
  process.exit(0);
141
376
  };
142
377
  process.on('SIGINT', () => shutdown('SIGINT'));
143
378
  process.on('SIGTERM', () => shutdown('SIGTERM'));
144
379
  }
380
+ // --------------------------------------------------------------------------
381
+ // Private: Utilities
382
+ // --------------------------------------------------------------------------
383
+ /**
384
+ * Get basename from file path
385
+ */
386
+ getBasename(filePath) {
387
+ const parts = filePath.split('/');
388
+ return parts[parts.length - 1] || filePath;
389
+ }
145
390
  }
391
+ // ============================================================================
392
+ // Factory Function
393
+ // ============================================================================
146
394
  /**
147
395
  * Run the development server with HMR enabled
148
396
  */
@@ -1 +1 @@
1
- {"version":3,"file":"hmr-runner.js","sourceRoot":"","sources":["../../src/dev/hmr-runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hmr-runner.js","sourceRoot":"","sources":["../../src/dev/hmr-runner.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAqB,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE9D,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAuB,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAuB,MAAM,sBAAsB,CAAC;AACjF,OAAO,EAAE,mBAAmB,EAAsB,MAAM,qBAAqB,CAAC;AAE9E,+EAA+E;AAC/E,YAAY;AACZ,+EAA+E;AAE/E;;;GAGG;AACH,MAAM,0BAA0B,GAAG,GAAG,CAAC;AAEvC;;GAEG;AACH,MAAM,4BAA4B,GAAG,IAAI,CAAC;AAE1C;;GAEG;AACH,MAAM,uBAAuB,GAAG,IAAI,CAAC;AAErC;;;;;;GAMG;AACH,MAAM,gCAAgC,GAAG,CAAC,CAAC;AAqC3C,+EAA+E;AAC/E,cAAc;AACd,+EAA+E;AAE/E;;;;;;;;GAQG;AACH,SAAS,gBAAgB,CAAC,KAAc;IACtC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,GAAG,GAAG,KAAgC,CAAC;IAE7C,kEAAkE;IAClE,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC3D,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC3D,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC7D,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,GAAG,CAAC,QAAQ,KAAK,SAAS,IAAI,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACnE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,+EAA+E;AAC/E,kBAAkB;AAClB,+EAA+E;AAE/E;;;GAGG;AACH,MAAM,OAAO,SAAS;IAUS;IATrB,KAAK,GAAwB,IAAI,CAAC;IAClC,cAAc,GAAG,KAAK,CAAC;IACvB,YAAY,GAAG,KAAK,CAAC;IACrB,YAAY,GAAyC,IAAI,CAAC;IAElE,qBAAqB;IACJ,MAAM,CAAgB;IACtB,QAAQ,CAAiB;IAE1C,YAA6B,OAAyB;QAAzB,YAAO,GAAP,OAAO,CAAkB;QACpD,IAAI,CAAC,MAAM,GAAG,mBAAmB,EAAE,CAAC;QACpC,IAAI,CAAC,QAAQ,GAAG,oBAAoB,CAAC;YACnC,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,KAAK;YACjC,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,IAAI;SAC/C,CAAC,CAAC;IACL,CAAC;IAED,6EAA6E;IAC7E,aAAa;IACb,6EAA6E;IAE7E;;OAEG;IACH,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC;QAC/B,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACvB,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CAAC;QACnC,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC7B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAEzB,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC1B,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI;QACR,IAAI,IAAI,CAAC,cAAc;YAAE,OAAO;QAChC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAE3B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAE9B,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAE3B,0CAA0C;YAC1C,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;gBAClC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;oBAC9B,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;wBACf,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBAC7B,CAAC;oBACD,OAAO,EAAE,CAAC;gBACZ,CAAC,EAAE,4BAA4B,CAAC,CAAC;gBAEjC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;oBAC1B,YAAY,CAAC,OAAO,CAAC,CAAC;oBACtB,OAAO,EAAE,CAAC;gBACZ,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC7C,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,2BAA2B,QAAQ,IAAI,CAAC,CAAC,CAAC;QAC/D,CAAC;QAED,yCAAyC;QACzC,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC;IAClC,CAAC;IAED,6EAA6E;IAC7E,8BAA8B;IAC9B,6EAA6E;IAE7E;;OAEG;IACK,KAAK,CAAC,OAAO,CAAC,MAAc,EAAE,QAAiB;QACrD,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAClD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAE7B,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC3B,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;gBAClC,MAAM,WAAW,GAAG,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;gBACpC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;gBACtC,kDAAkD;gBAClD,UAAU,CAAC,GAAG,EAAE;oBACd,IAAI,CAAC,KAAK,EAAE,cAAc,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;oBAChD,OAAO,EAAE,CAAC;gBACZ,CAAC,EAAE,uBAAuB,CAAC,CAAC;YAC9B,CAAC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;IAC5B,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,YAAY;QACxB,MAAM,GAAG,GAAG;YACV,GAAG,OAAO,CAAC,GAAG;YACd,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG;YACnB,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;YACvB,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;YACvB,QAAQ,EAAE,aAAa;YACvB,gBAAgB,EAAE,MAAM;SACzB,CAAC;QAEF,kDAAkD;QAClD,yDAAyD;QACzD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,cAAc,EAAE,4BAA4B,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAC7F,KAAK,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC;YAC/C,GAAG;YACH,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;SACnB,CAAC,CAAC;QAEH,6BAA6B;QAC7B,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;QAEtE,gCAAgC;QAChC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9D,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;QAE9E,4BAA4B;QAC5B,yDAAyD;QACzD,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC/B,CAAC;IAED;;OAEG;IACK,qBAAqB;QAC3B,mDAAmD;QACnD,mEAAmE;QACnE,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,GAAG,EAAE;YAClC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBACtB,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC/B,CAAC;QACH,CAAC,EAAE,0BAA0B,CAAC,CAAC;QAE/B,+CAA+C;QAC/C,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE;YAC5B,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBACtB,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBAChC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YAC3B,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACK,qBAAqB;QAC3B,IAAI,CAAC,IAAI,CAAC,YAAY;YAAE,OAAO;QAC/B,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAE1B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1E,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAExC,MAAM,GAAG,GAAG,UAAU,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAC/D,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACrD,CAAC;IAED,6EAA6E;IAC7E,gCAAgC;IAChC,6EAA6E;IAE7E;;OAEG;IACK,gBAAgB,CAAC,OAAgB;QACvC,2CAA2C;QAC3C,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;YAC/B,OAAO;QACT,CAAC;QAED,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;YACrB,KAAK,iBAAiB;gBACpB,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;gBAC9B,MAAM;YAER,KAAK,sBAAsB;gBACzB,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;gBACtC,MAAM;YAER,KAAK,gBAAgB;gBACnB,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;gBAC7B,MAAM;YAER,KAAK,aAAa;gBAChB,sDAAsD;gBACtD,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBAC7B,MAAM;YAER;gBACE,0BAA0B;gBAC1B,MAAM;QACV,CAAC;IACH,CAAC;IAED;;OAEG;IACK,eAAe,CAAC,GAAmB;QACzC,oEAAoE;QACpE,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC/B,CAAC;QAED,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,SAAS,CAAC;QAEnC,oEAAoE;QACpE,4DAA4D;QAC5D,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,EAAE,gCAAgC,CAAC,CAAC;IACxE,CAAC;IAED;;OAEG;IACK,uBAAuB,CAAC,GAAmB;QACjD,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI;YACrB,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,mCAAmC;YAClE,CAAC,CAAC,qCAAqC,CAAC;QAE1C,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YAC3C,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACK,cAAc,CAAC,GAAmB;QACxC,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,IAAI,mBAAmB,CAAC;QAClD,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAE1C,MAAM,MAAM,GAAG,mBAAmB,CAAC;QACnC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YAC3C,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,6EAA6E;IAC7E,0BAA0B;IAC1B,6EAA6E;IAE7E;;OAEG;IACK,kBAAkB,CAAC,GAAU;QACnC,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;QAElC,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YAClC,+BAA+B;YAC/B,IAAI,CAAC,QAAQ,CAAC,sBAAsB,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;YACxE,KAAK,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,qBAAqB,CAAC,CAAC;YACtD,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,yBAAyB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACrF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,qDAAqD;QACrD,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;YACzB,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;YACtC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;gBACzB,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;oBACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;YAC9B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED;;OAEG;IACK,iBAAiB,CAAC,IAAmB,EAAE,MAAqB;QAClE,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAChC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAC3B,CAAC;QAED,IAAI,IAAI,CAAC,cAAc;YAAE,OAAO;QAEhC,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAChC,mDAAmD;YACnD,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBACtB,KAAK,CAAC,mEAAmE,CAAC,CAAC;gBAC3E,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,yBAAyB,CAAC,EAAE,CAAC,CAAC;gBACtD,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;gBAC1B,sDAAsD;YACxD,CAAC;iBAAM,CAAC;gBACN,gBAAgB;gBAChB,IAAI,CAAC,QAAQ,CAAC,kBAAkB,EAAE,CAAC;gBACnC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,4BAA4B,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC/D,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,yBAAyB,CAAC,EAAE,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;aAAM,IAAI,MAAM,EAAE,CAAC;YAClB,+BAA+B;YAC/B,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;gBACzB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,+BAA+B,MAAM,EAAE,CAAC,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACK,kBAAkB,CAAC,GAAY;QACrC,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,KAAK,CAAC,sBAAsB,OAAO,EAAE,CAAC,CAAC;IACzC,CAAC;IAED;;OAEG;IACK,gBAAgB,CAAC,MAAsB;QAC7C,IAAI,CAAC,QAAQ,CAAC,sBAAsB,CAClC,MAAM,CAAC,aAAa,EACpB,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,UAAU,CAClB,CAAC;IACJ,CAAC;IAED,6EAA6E;IAC7E,2BAA2B;IAC3B,6EAA6E;IAE7E;;OAEG;IACK,mBAAmB;QACzB,MAAM,QAAQ,GAAG,KAAK,EAAE,MAAc,EAAE,EAAE;YACxC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,MAAM,oBAAoB,CAAC,CAAC;YACxE,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC,CAAC;YACnD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC;QAEF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC/C,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;IACnD,CAAC;IAED,6EAA6E;IAC7E,qBAAqB;IACrB,6EAA6E;IAE7E;;OAEG;IACK,WAAW,CAAC,QAAgB;QAClC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAClC,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,QAAQ,CAAC;IAC7C,CAAC;CACF;AAED,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,OAAyB;IAC1D,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC;IACtC,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;AACvB,CAAC"}
@@ -1,6 +1,12 @@
1
1
  /**
2
2
  * Development Server Utilities
3
+ *
4
+ * Provides hot module replacement, file watching, timing measurement,
5
+ * reload feedback, and error parsing for the development server.
3
6
  */
4
7
  export * from './hmr-runner.js';
5
8
  export * from './watch-config.js';
9
+ export * from './timing-tracker.js';
10
+ export * from './reload-reporter.js';
11
+ export * from './error-parser.js';
6
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dev/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAGlC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC"}
package/dist/dev/index.js CHANGED
@@ -1,6 +1,14 @@
1
1
  /**
2
2
  * Development Server Utilities
3
+ *
4
+ * Provides hot module replacement, file watching, timing measurement,
5
+ * reload feedback, and error parsing for the development server.
3
6
  */
7
+ // Core HMR functionality
4
8
  export * from './hmr-runner.js';
5
9
  export * from './watch-config.js';
10
+ // Phase 1: Foundation modules for improved HMR feedback
11
+ export * from './timing-tracker.js';
12
+ export * from './reload-reporter.js';
13
+ export * from './error-parser.js';
6
14
  //# sourceMappingURL=index.js.map
@@ -1 +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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dev/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,yBAAyB;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAElC,wDAAwD;AACxD,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC"}