embedoc 0.12.0 → 0.12.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cli.js CHANGED
@@ -2,23 +2,21 @@
2
2
  /**
3
3
  * embedoc CLI
4
4
  */
5
- import { Command } from 'commander';
6
5
  import { readFile, writeFile, access, mkdir } from 'node:fs/promises';
7
6
  import { resolve, relative } from 'node:path';
8
7
  import { pathToFileURL } from 'node:url';
8
+ import { createRequire } from 'node:module';
9
9
  import yaml from 'js-yaml';
10
10
  import pc from 'picocolors';
11
11
  import chokidar from 'chokidar';
12
12
  import { tsImport } from 'tsx/esm/api';
13
+ import { createProgram } from './generated/program.js';
13
14
  import { initializeDatasources, closeDatasources } from './datasources/index.js';
14
15
  import { build } from './core/processor.js';
15
16
  import { generateAll } from './core/generator.js';
16
17
  import { DependencyGraph } from './core/dependency.js';
17
- const program = new Command();
18
- program
19
- .name('embedoc')
20
- .description('In-Place Document Generator')
21
- .version('0.11.1');
18
+ const require = createRequire(import.meta.url);
19
+ const pkg = require('../package.json');
22
20
  /**
23
21
  * Load configuration file
24
22
  */
@@ -109,31 +107,25 @@ async function loadCustomDatasources(datasourcesDir) {
109
107
  return empty;
110
108
  }
111
109
  }
112
- /**
113
- * init command
114
- */
115
- program
116
- .command('init')
117
- .description('Initialize embedoc in the current project')
118
- .option('-f, --force', 'Overwrite existing files')
119
- .action(async (options) => {
120
- try {
121
- console.log(pc.cyan('📁 Initializing embedoc...\n'));
122
- const created = [];
123
- const skipped = [];
124
- const writeIfNotExists = async (filePath, content) => {
125
- const absPath = resolve(filePath);
126
- if (!options.force && await fileExists(absPath)) {
127
- skipped.push(filePath);
128
- return;
129
- }
130
- const dir = absPath.substring(0, absPath.lastIndexOf('/'));
131
- await mkdir(dir, { recursive: true });
132
- await writeFile(absPath, content, { encoding: 'utf-8' });
133
- created.push(filePath);
134
- };
135
- // embedoc.config.yaml
136
- const configContent = `version: "1.0"
110
+ const handlers = {
111
+ init: async (options) => {
112
+ try {
113
+ console.log(pc.cyan('📁 Initializing embedoc...\n'));
114
+ const created = [];
115
+ const skipped = [];
116
+ const writeIfNotExists = async (filePath, content) => {
117
+ const absPath = resolve(filePath);
118
+ if (!options.force && await fileExists(absPath)) {
119
+ skipped.push(filePath);
120
+ return;
121
+ }
122
+ const dir = absPath.substring(0, absPath.lastIndexOf('/'));
123
+ await mkdir(dir, { recursive: true });
124
+ await writeFile(absPath, content, { encoding: 'utf-8' });
125
+ created.push(filePath);
126
+ };
127
+ // embedoc.config.yaml
128
+ const configContent = `version: "1.0"
137
129
 
138
130
  targets:
139
131
  - pattern: "./docs/**/*.md"
@@ -150,9 +142,9 @@ datasources: {}
150
142
  # type: csv
151
143
  # path: "./data/example.csv"
152
144
  `;
153
- await writeIfNotExists('embedoc.config.yaml', configContent);
154
- // .embedoc/renderers/index.ts
155
- const renderersIndexContent = `/**
145
+ await writeIfNotExists('embedoc.config.yaml', configContent);
146
+ // .embedoc/renderers/index.ts
147
+ const renderersIndexContent = `/**
156
148
  * embedoc renderers
157
149
  *
158
150
  * Export your custom renderers here.
@@ -165,9 +157,9 @@ export const embeds = {
165
157
  // my_renderer: myRenderer,
166
158
  };
167
159
  `;
168
- await writeIfNotExists('.embedoc/renderers/index.ts', renderersIndexContent);
169
- // .embedoc/datasources/index.ts
170
- const datasourcesIndexContent = `/**
160
+ await writeIfNotExists('.embedoc/renderers/index.ts', renderersIndexContent);
161
+ // .embedoc/datasources/index.ts
162
+ const datasourcesIndexContent = `/**
171
163
  * embedoc custom datasources and inline format parsers
172
164
  *
173
165
  * datasourceTypes: register custom datasource types usable in embedoc.config.yaml
@@ -185,334 +177,305 @@ export const inlineFormats = {
185
177
  // toml: (content: string) => parseToml(content),
186
178
  };
187
179
  `;
188
- await writeIfNotExists('.embedoc/datasources/index.ts', datasourcesIndexContent);
189
- // .embedoc/templates/ (create directory only via a .gitkeep)
190
- await writeIfNotExists('.embedoc/templates/.gitkeep', '');
191
- // Update package.json if it exists
192
- const pkgPath = resolve('package.json');
193
- if (await fileExists(pkgPath)) {
194
- const pkgRaw = await readFile(pkgPath, { encoding: 'utf-8' });
195
- const pkg = JSON.parse(pkgRaw);
196
- const scripts = (pkg['scripts'] ?? {});
197
- let scriptsUpdated = false;
198
- const scriptEntries = [
199
- ['embedoc:build', 'embedoc build'],
200
- ['embedoc:watch', 'embedoc watch'],
201
- ['embedoc:generate', 'embedoc generate --all'],
202
- ];
203
- for (const [key, value] of scriptEntries) {
204
- if (!(key in scripts)) {
205
- scripts[key] = value;
206
- scriptsUpdated = true;
207
- }
208
- }
209
- if (scriptsUpdated) {
210
- pkg['scripts'] = scripts;
211
- await writeFile(pkgPath, JSON.stringify(pkg, null, 2) + '\n', { encoding: 'utf-8' });
212
- console.log(pc.green(' Updated package.json scripts:'));
180
+ await writeIfNotExists('.embedoc/datasources/index.ts', datasourcesIndexContent);
181
+ // .embedoc/templates/ (create directory only via a .gitkeep)
182
+ await writeIfNotExists('.embedoc/templates/.gitkeep', '');
183
+ // Update package.json if it exists
184
+ const pkgPath = resolve('package.json');
185
+ if (await fileExists(pkgPath)) {
186
+ const pkgRaw = await readFile(pkgPath, { encoding: 'utf-8' });
187
+ const pkg = JSON.parse(pkgRaw);
188
+ const scripts = (pkg['scripts'] ?? {});
189
+ let scriptsUpdated = false;
190
+ const scriptEntries = [
191
+ ['embedoc:build', 'embedoc build'],
192
+ ['embedoc:watch', 'embedoc watch'],
193
+ ['embedoc:generate', 'embedoc generate --all'],
194
+ ];
213
195
  for (const [key, value] of scriptEntries) {
214
- if (!((pkgRaw.includes(`"${key}"`)))) {
215
- console.log(pc.gray(` "${key}": "${value}"`));
196
+ if (!(key in scripts)) {
197
+ scripts[key] = value;
198
+ scriptsUpdated = true;
199
+ }
200
+ }
201
+ if (scriptsUpdated) {
202
+ pkg['scripts'] = scripts;
203
+ await writeFile(pkgPath, JSON.stringify(pkg, null, 2) + '\n', { encoding: 'utf-8' });
204
+ console.log(pc.green(' Updated package.json scripts:'));
205
+ for (const [key, value] of scriptEntries) {
206
+ if (!((pkgRaw.includes(`"${key}"`)))) {
207
+ console.log(pc.gray(` "${key}": "${value}"`));
208
+ }
216
209
  }
210
+ console.log('');
217
211
  }
218
- console.log('');
219
212
  }
220
- }
221
- // Summary
222
- if (created.length > 0) {
223
- console.log(pc.green(' Created:'));
224
- for (const f of created) {
225
- console.log(pc.gray(` ${f}`));
213
+ // Summary
214
+ if (created.length > 0) {
215
+ console.log(pc.green(' Created:'));
216
+ for (const f of created) {
217
+ console.log(pc.gray(` ${f}`));
218
+ }
226
219
  }
227
- }
228
- if (skipped.length > 0) {
229
- console.log(pc.yellow(' Skipped (already exists):'));
230
- for (const f of skipped) {
231
- console.log(pc.gray(` ${f}`));
220
+ if (skipped.length > 0) {
221
+ console.log(pc.yellow(' Skipped (already exists):'));
222
+ for (const f of skipped) {
223
+ console.log(pc.gray(` ${f}`));
224
+ }
232
225
  }
226
+ console.log('');
227
+ console.log(pc.green('✅ embedoc initialized!'));
228
+ console.log('');
229
+ console.log(' Next steps:');
230
+ console.log(pc.cyan(' 1. Edit embedoc.config.yaml to configure targets and datasources'));
231
+ console.log(pc.cyan(' 2. Add renderers in .embedoc/renderers/'));
232
+ console.log(pc.cyan(' 3. Run: npx embedoc build'));
233
233
  }
234
- console.log('');
235
- console.log(pc.green(' embedoc initialized!'));
236
- console.log('');
237
- console.log(' Next steps:');
238
- console.log(pc.cyan(' 1. Edit embedoc.config.yaml to configure targets and datasources'));
239
- console.log(pc.cyan(' 2. Add renderers in .embedoc/renderers/'));
240
- console.log(pc.cyan(' 3. Run: npx embedoc build'));
241
- }
242
- catch (error) {
243
- console.error(pc.red('❌ Init failed:'));
244
- console.error(error instanceof Error ? error.message : String(error));
245
- process.exit(1);
246
- }
247
- });
248
- /**
249
- * build command
250
- */
251
- program
252
- .command('build [files...]')
253
- .description('Build documents by replacing markers with embed results')
254
- .option('-c, --config <path>', 'Path to config file', 'embedoc.config.yaml')
255
- .option('-d, --dry-run', 'Dry run without writing files')
256
- .option('-v, --verbose', 'Verbose output')
257
- .action(async (files, options) => {
258
- const startTime = Date.now();
259
- try {
260
- console.log(pc.cyan('🔧 Loading configuration...'));
261
- const config = await loadConfig(options.config);
262
- const datasourcesDir = config.datasources_dir ?? '.embedoc/datasources';
263
- const customModules = await loadCustomDatasources(datasourcesDir);
264
- console.log(pc.cyan('📦 Initializing datasources...'));
265
- const datasources = await initializeDatasources(config, customModules.datasourceTypes);
266
- console.log(pc.cyan('📝 Loading renderers...'));
267
- const renderersDir = resolveRenderersDir(config);
268
- const embeds = await loadRenderers(renderersDir);
269
- console.log(pc.cyan('🔄 Processing files...'));
270
- const result = await build(config, embeds, datasources, {
271
- dryRun: options.dryRun,
272
- verbose: options.verbose,
273
- specificFiles: files.length > 0 ? files : undefined,
274
- customInlineFormats: customModules.inlineFormats,
275
- });
276
- // Cleanup
277
- await closeDatasources(datasources);
278
- // Show results
279
- const duration = Date.now() - startTime;
280
- console.log('');
281
- console.log(pc.green('✅ Build completed!'));
282
- console.log(` Files processed: ${result.totalFiles}`);
283
- console.log(` Markers updated: ${result.totalMarkersUpdated}`);
284
- console.log(` Success: ${result.successFiles}`);
285
- if (result.failedFiles > 0) {
286
- console.log(pc.red(` Failed: ${result.failedFiles}`));
287
- }
288
- console.log(` Duration: ${duration}ms`);
289
- if (options.dryRun) {
290
- console.log(pc.yellow('\n (Dry run - no files were modified)'));
234
+ catch (error) {
235
+ console.error(pc.red(' Init failed:'));
236
+ console.error(error instanceof Error ? error.message : String(error));
237
+ process.exit(1);
291
238
  }
292
- // Show error details for failures
293
- for (const r of result.results) {
294
- if (!r.success && r.error) {
295
- console.error(pc.red(`\n Error in ${r.filePath}:`));
296
- console.error(` ${r.error.message}`);
239
+ },
240
+ build: async (files, options) => {
241
+ const startTime = Date.now();
242
+ try {
243
+ console.log(pc.cyan('🔧 Loading configuration...'));
244
+ const config = await loadConfig(options.config ?? 'embedoc.config.yaml');
245
+ const datasourcesDir = config.datasources_dir ?? '.embedoc/datasources';
246
+ const customModules = await loadCustomDatasources(datasourcesDir);
247
+ console.log(pc.cyan('📦 Initializing datasources...'));
248
+ const datasources = await initializeDatasources(config, customModules.datasourceTypes);
249
+ console.log(pc.cyan('📝 Loading renderers...'));
250
+ const renderersDir = resolveRenderersDir(config);
251
+ const embeds = await loadRenderers(renderersDir);
252
+ console.log(pc.cyan('🔄 Processing files...'));
253
+ const result = await build(config, embeds, datasources, {
254
+ dryRun: options.dryRun,
255
+ verbose: options.verbose,
256
+ specificFiles: files.length > 0 ? files : undefined,
257
+ customInlineFormats: customModules.inlineFormats,
258
+ });
259
+ // Cleanup
260
+ await closeDatasources(datasources);
261
+ // Show results
262
+ const duration = Date.now() - startTime;
263
+ console.log('');
264
+ console.log(pc.green('✅ Build completed!'));
265
+ console.log(` Files processed: ${result.totalFiles}`);
266
+ console.log(` Markers updated: ${result.totalMarkersUpdated}`);
267
+ console.log(` Success: ${result.successFiles}`);
268
+ if (result.failedFiles > 0) {
269
+ console.log(pc.red(` Failed: ${result.failedFiles}`));
270
+ }
271
+ console.log(` Duration: ${duration}ms`);
272
+ if (options.dryRun) {
273
+ console.log(pc.yellow('\n (Dry run - no files were modified)'));
274
+ }
275
+ // Show error details for failures
276
+ for (const r of result.results) {
277
+ if (!r.success && r.error) {
278
+ console.error(pc.red(`\n Error in ${r.filePath}:`));
279
+ console.error(` ${r.error.message}`);
280
+ }
297
281
  }
282
+ process.exit(result.failedFiles > 0 ? 1 : 0);
298
283
  }
299
- process.exit(result.failedFiles > 0 ? 1 : 0);
300
- }
301
- catch (error) {
302
- console.error(pc.red('❌ Build failed:'));
303
- console.error(error instanceof Error ? error.message : String(error));
304
- process.exit(1);
305
- }
306
- });
307
- /**
308
- * generate command
309
- */
310
- program
311
- .command('generate')
312
- .description('Generate new files from datasource records')
313
- .option('-c, --config <path>', 'Path to config file', 'embedoc.config.yaml')
314
- .option('-s, --datasource <name>', 'Specific datasource to process')
315
- .option('-g, --generator <name>', 'Specific generator template to use')
316
- .option('-a, --all', 'Process all datasources')
317
- .option('-d, --dry-run', 'Dry run without writing files')
318
- .option('-v, --verbose', 'Verbose output')
319
- .action(async (options) => {
320
- const startTime = Date.now();
321
- try {
322
- if (!options.datasource && !options.all) {
323
- console.error(pc.red('Error: Either --datasource or --all must be specified'));
284
+ catch (error) {
285
+ console.error(pc.red('❌ Build failed:'));
286
+ console.error(error instanceof Error ? error.message : String(error));
324
287
  process.exit(1);
325
288
  }
326
- console.log(pc.cyan('🔧 Loading configuration...'));
327
- const config = await loadConfig(options.config);
328
- const datasourcesDir = config.datasources_dir ?? '.embedoc/datasources';
329
- const customModules = await loadCustomDatasources(datasourcesDir);
330
- console.log(pc.cyan('📦 Initializing datasources...'));
331
- const datasources = await initializeDatasources(config, customModules.datasourceTypes);
332
- console.log(pc.cyan('📄 Generating files...'));
333
- const results = await generateAll(config, datasources, {
334
- dryRun: options.dryRun,
335
- verbose: options.verbose,
336
- datasourceName: options.datasource,
337
- generatorName: options.generator,
338
- });
339
- // Cleanup
340
- await closeDatasources(datasources);
341
- // Show results
342
- const duration = Date.now() - startTime;
343
- const generated = results.filter((r) => r.success && !r.skipped).length;
344
- const skipped = results.filter((r) => r.skipped).length;
345
- const failed = results.filter((r) => !r.success).length;
346
- console.log('');
347
- console.log(pc.green('✅ Generation completed!'));
348
- console.log(` Generated: ${generated}`);
349
- console.log(` Skipped (existing): ${skipped}`);
350
- if (failed > 0) {
351
- console.log(pc.red(` Failed: ${failed}`));
352
- }
353
- console.log(` Duration: ${duration}ms`);
354
- if (options.dryRun) {
355
- console.log(pc.yellow('\n (Dry run - no files were created)'));
356
- }
357
- // Show failure details
358
- for (const r of results) {
359
- if (!r.success && r.error) {
360
- console.error(pc.red(`\n Error for ${r.filePath}:`));
361
- console.error(` ${r.error.message}`);
289
+ },
290
+ generate: async (options) => {
291
+ const startTime = Date.now();
292
+ try {
293
+ if (!options.datasource && !options.all) {
294
+ console.error(pc.red('Error: Either --datasource or --all must be specified'));
295
+ process.exit(1);
362
296
  }
297
+ console.log(pc.cyan('🔧 Loading configuration...'));
298
+ const config = await loadConfig(options.config ?? 'embedoc.config.yaml');
299
+ const datasourcesDir = config.datasources_dir ?? '.embedoc/datasources';
300
+ const customModules = await loadCustomDatasources(datasourcesDir);
301
+ console.log(pc.cyan('📦 Initializing datasources...'));
302
+ const datasources = await initializeDatasources(config, customModules.datasourceTypes);
303
+ console.log(pc.cyan('📄 Generating files...'));
304
+ const results = await generateAll(config, datasources, {
305
+ dryRun: options.dryRun,
306
+ verbose: options.verbose,
307
+ datasourceName: options.datasource,
308
+ generatorName: options.generator,
309
+ });
310
+ // Cleanup
311
+ await closeDatasources(datasources);
312
+ // Show results
313
+ const duration = Date.now() - startTime;
314
+ const generated = results.filter((r) => r.success && !r.skipped).length;
315
+ const skipped = results.filter((r) => r.skipped).length;
316
+ const failed = results.filter((r) => !r.success).length;
317
+ console.log('');
318
+ console.log(pc.green('✅ Generation completed!'));
319
+ console.log(` Generated: ${generated}`);
320
+ console.log(` Skipped (existing): ${skipped}`);
321
+ if (failed > 0) {
322
+ console.log(pc.red(` Failed: ${failed}`));
323
+ }
324
+ console.log(` Duration: ${duration}ms`);
325
+ if (options.dryRun) {
326
+ console.log(pc.yellow('\n (Dry run - no files were created)'));
327
+ }
328
+ // Show failure details
329
+ for (const r of results) {
330
+ if (!r.success && r.error) {
331
+ console.error(pc.red(`\n Error for ${r.filePath}:`));
332
+ console.error(` ${r.error.message}`);
333
+ }
334
+ }
335
+ process.exit(failed > 0 ? 1 : 0);
363
336
  }
364
- process.exit(failed > 0 ? 1 : 0);
365
- }
366
- catch (error) {
367
- console.error(pc.red('❌ Generation failed:'));
368
- console.error(error instanceof Error ? error.message : String(error));
369
- process.exit(1);
370
- }
371
- });
372
- /**
373
- * watch command
374
- */
375
- program
376
- .command('watch')
377
- .description('Watch files and rebuild on changes')
378
- .option('-c, --config <path>', 'Path to config file', 'embedoc.config.yaml')
379
- .option('-v, --verbose', 'Verbose output')
380
- .option('--debug-deps', 'Show dependency graph for debugging')
381
- .action(async (options) => {
382
- try {
383
- console.log(pc.cyan('🔧 Loading configuration...'));
384
- const config = await loadConfig(options.config);
385
- const datasourcesDir = config.datasources_dir ?? '.embedoc/datasources';
386
- const customModules = await loadCustomDatasources(datasourcesDir);
387
- console.log(pc.cyan('📦 Initializing datasources...'));
388
- let datasources = await initializeDatasources(config, customModules.datasourceTypes);
389
- console.log(pc.cyan('📝 Loading renderers...'));
390
- const renderersDir = resolve(resolveRenderersDir(config));
391
- let embeds = await loadRenderers(renderersDir);
392
- // Build dependency graph
393
- console.log(pc.cyan('🔗 Building dependency graph...'));
394
- let depGraph = new DependencyGraph(config, embeds);
395
- await depGraph.build();
396
- if (options.debugDeps) {
397
- depGraph.dump();
398
- }
399
- // Collect watch targets
400
- const patterns = config.targets.map((t) => t.pattern);
401
- const additionalWatchPaths = depGraph.getWatchPaths();
402
- console.log(pc.cyan('👀 Watching for changes...'));
403
- console.log(` Document patterns: ${patterns.join(', ')}`);
404
- if (additionalWatchPaths.length > 0) {
405
- console.log(` Additional paths: ${additionalWatchPaths.map(p => relative(process.cwd(), p)).join(', ')}`);
337
+ catch (error) {
338
+ console.error(pc.red('❌ Generation failed:'));
339
+ console.error(error instanceof Error ? error.message : String(error));
340
+ process.exit(1);
406
341
  }
407
- const watcher = chokidar.watch([...patterns, ...additionalWatchPaths], {
408
- ignored: ['**/node_modules/**', '**/.git/**'],
409
- persistent: true,
410
- ignoreInitial: true,
411
- });
412
- // Debounce timer
413
- let debounceTimer = null;
414
- const pendingChanges = new Map();
415
- const processChanges = async () => {
416
- const changes = new Map(pendingChanges);
417
- pendingChanges.clear();
418
- let renderersReloaded = false;
419
- for (const [filePath] of changes) {
420
- if (filePath.startsWith(renderersDir) && filePath.endsWith('.ts')) {
421
- console.log(pc.yellow(`\n🔄 Renderer changed: ${relative(process.cwd(), filePath)}`));
422
- console.log(pc.cyan(' Reloading renderers...'));
423
- try {
424
- embeds = await loadRenderers(renderersDir);
425
- renderersReloaded = true;
426
- }
427
- catch (error) {
428
- console.error(pc.red(' Failed to reload renderers:'), error);
429
- return;
430
- }
431
- }
342
+ },
343
+ watch: async (options) => {
344
+ try {
345
+ console.log(pc.cyan('🔧 Loading configuration...'));
346
+ const config = await loadConfig(options.config ?? 'embedoc.config.yaml');
347
+ const datasourcesDir = config.datasources_dir ?? '.embedoc/datasources';
348
+ const customModules = await loadCustomDatasources(datasourcesDir);
349
+ console.log(pc.cyan('📦 Initializing datasources...'));
350
+ let datasources = await initializeDatasources(config, customModules.datasourceTypes);
351
+ console.log(pc.cyan('📝 Loading renderers...'));
352
+ const renderersDir = resolve(resolveRenderersDir(config));
353
+ let embeds = await loadRenderers(renderersDir);
354
+ // Build dependency graph
355
+ console.log(pc.cyan('🔗 Building dependency graph...'));
356
+ let depGraph = new DependencyGraph(config, embeds);
357
+ await depGraph.build();
358
+ if (options.debugDeps) {
359
+ depGraph.dump();
432
360
  }
433
- // Rebuild dependency graph if embeds were reloaded
434
- if (renderersReloaded) {
435
- console.log(pc.cyan(' Rebuilding dependency graph...'));
436
- depGraph = new DependencyGraph(config, embeds);
437
- await depGraph.build();
361
+ // Collect watch targets
362
+ const patterns = config.targets.map((t) => t.pattern);
363
+ const additionalWatchPaths = depGraph.getWatchPaths();
364
+ console.log(pc.cyan('👀 Watching for changes...'));
365
+ console.log(` Document patterns: ${patterns.join(', ')}`);
366
+ if (additionalWatchPaths.length > 0) {
367
+ console.log(` Additional paths: ${additionalWatchPaths.map(p => relative(process.cwd(), p)).join(', ')}`);
438
368
  }
439
- // Identify affected documents
440
- const affectedDocs = new Set();
441
- for (const [filePath] of changes) {
442
- const affected = depGraph.getAffectedDocuments(filePath);
443
- for (const doc of affected) {
444
- affectedDocs.add(doc);
369
+ const watcher = chokidar.watch([...patterns, ...additionalWatchPaths], {
370
+ ignored: ['**/node_modules/**', '**/.git/**'],
371
+ persistent: true,
372
+ ignoreInitial: true,
373
+ });
374
+ // Debounce timer
375
+ let debounceTimer = null;
376
+ const pendingChanges = new Map();
377
+ const processChanges = async () => {
378
+ const changes = new Map(pendingChanges);
379
+ pendingChanges.clear();
380
+ let renderersReloaded = false;
381
+ for (const [filePath] of changes) {
382
+ if (filePath.startsWith(renderersDir) && filePath.endsWith('.ts')) {
383
+ console.log(pc.yellow(`\n🔄 Renderer changed: ${relative(process.cwd(), filePath)}`));
384
+ console.log(pc.cyan(' Reloading renderers...'));
385
+ try {
386
+ embeds = await loadRenderers(renderersDir);
387
+ renderersReloaded = true;
388
+ }
389
+ catch (error) {
390
+ console.error(pc.red(' Failed to reload renderers:'), error);
391
+ return;
392
+ }
393
+ }
445
394
  }
446
- }
447
- if (affectedDocs.size === 0) {
448
- // Changed file might be a document itself
395
+ // Rebuild dependency graph if embeds were reloaded
396
+ if (renderersReloaded) {
397
+ console.log(pc.cyan(' Rebuilding dependency graph...'));
398
+ depGraph = new DependencyGraph(config, embeds);
399
+ await depGraph.build();
400
+ }
401
+ // Identify affected documents
402
+ const affectedDocs = new Set();
449
403
  for (const [filePath] of changes) {
450
- const absolutePath = resolve(filePath);
451
- // Check if matches target patterns
452
- for (const target of config.targets) {
453
- const { glob } = await import('glob');
454
- const matches = await glob(target.pattern, { absolute: true });
455
- if (matches.includes(absolutePath)) {
456
- affectedDocs.add(absolutePath);
457
- break;
404
+ const affected = depGraph.getAffectedDocuments(filePath);
405
+ for (const doc of affected) {
406
+ affectedDocs.add(doc);
407
+ }
408
+ }
409
+ if (affectedDocs.size === 0) {
410
+ // Changed file might be a document itself
411
+ for (const [filePath] of changes) {
412
+ const absolutePath = resolve(filePath);
413
+ // Check if matches target patterns
414
+ for (const target of config.targets) {
415
+ const { glob } = await import('glob');
416
+ const matches = await glob(target.pattern, { absolute: true });
417
+ if (matches.includes(absolutePath)) {
418
+ affectedDocs.add(absolutePath);
419
+ break;
420
+ }
458
421
  }
459
422
  }
460
423
  }
461
- }
462
- if (affectedDocs.size === 0) {
463
- console.log(pc.gray('\n No affected documents found'));
464
- return;
465
- }
466
- console.log(pc.yellow(`\n📝 Rebuilding ${affectedDocs.size} document(s)...`));
467
- for (const docPath of affectedDocs) {
468
- console.log(pc.gray(` - ${relative(process.cwd(), docPath)}`));
469
- }
470
- try {
471
- // Re-initialize datasources (especially for SQLite)
472
- await closeDatasources(datasources);
473
- datasources = await initializeDatasources(config, customModules.datasourceTypes);
474
- const result = await build(config, embeds, datasources, {
475
- verbose: options.verbose,
476
- specificFiles: Array.from(affectedDocs),
477
- customInlineFormats: customModules.inlineFormats,
478
- });
479
- if (result.totalMarkersUpdated > 0) {
480
- console.log(pc.green(` ✅ Updated ${result.totalMarkersUpdated} marker(s)`));
424
+ if (affectedDocs.size === 0) {
425
+ console.log(pc.gray('\n No affected documents found'));
426
+ return;
481
427
  }
482
- else {
483
- console.log(pc.gray(' No markers updated'));
428
+ console.log(pc.yellow(`\n📝 Rebuilding ${affectedDocs.size} document(s)...`));
429
+ for (const docPath of affectedDocs) {
430
+ console.log(pc.gray(` - ${relative(process.cwd(), docPath)}`));
484
431
  }
485
- // Update dependency graph
486
- depGraph = new DependencyGraph(config, embeds);
487
- await depGraph.build();
488
- }
489
- catch (error) {
490
- console.error(pc.red(' ❌ Error:'), error);
491
- }
492
- };
493
- // Handle file changes with debounce
494
- const handleChange = (type) => (filePath) => {
495
- pendingChanges.set(resolve(filePath), type);
496
- if (debounceTimer) {
497
- clearTimeout(debounceTimer);
498
- }
499
- debounceTimer = setTimeout(processChanges, 200);
500
- };
501
- watcher.on('change', handleChange('change'));
502
- watcher.on('add', handleChange('add'));
503
- // Exit on Ctrl+C
504
- process.on('SIGINT', async () => {
505
- console.log(pc.cyan('\n\n👋 Stopping watch...'));
506
- await watcher.close();
507
- await closeDatasources(datasources);
508
- process.exit(0);
509
- });
510
- }
511
- catch (error) {
512
- console.error(pc.red('❌ Watch failed:'));
513
- console.error(error instanceof Error ? error.message : String(error));
514
- process.exit(1);
515
- }
516
- });
517
- program.parse();
432
+ try {
433
+ // Re-initialize datasources (especially for SQLite)
434
+ await closeDatasources(datasources);
435
+ datasources = await initializeDatasources(config, customModules.datasourceTypes);
436
+ const result = await build(config, embeds, datasources, {
437
+ verbose: options.verbose,
438
+ specificFiles: Array.from(affectedDocs),
439
+ customInlineFormats: customModules.inlineFormats,
440
+ });
441
+ if (result.totalMarkersUpdated > 0) {
442
+ console.log(pc.green(` ✅ Updated ${result.totalMarkersUpdated} marker(s)`));
443
+ }
444
+ else {
445
+ console.log(pc.gray(' No markers updated'));
446
+ }
447
+ // Update dependency graph
448
+ depGraph = new DependencyGraph(config, embeds);
449
+ await depGraph.build();
450
+ }
451
+ catch (error) {
452
+ console.error(pc.red(' Error:'), error);
453
+ }
454
+ };
455
+ // Handle file changes with debounce
456
+ const handleChange = (type) => (filePath) => {
457
+ pendingChanges.set(resolve(filePath), type);
458
+ if (debounceTimer) {
459
+ clearTimeout(debounceTimer);
460
+ }
461
+ debounceTimer = setTimeout(processChanges, 200);
462
+ };
463
+ watcher.on('change', handleChange('change'));
464
+ watcher.on('add', handleChange('add'));
465
+ // Exit on Ctrl+C
466
+ process.on('SIGINT', async () => {
467
+ console.log(pc.cyan('\n\n👋 Stopping watch...'));
468
+ await watcher.close();
469
+ await closeDatasources(datasources);
470
+ process.exit(0);
471
+ });
472
+ }
473
+ catch (error) {
474
+ console.error(pc.red('❌ Watch failed:'));
475
+ console.error(error instanceof Error ? error.message : String(error));
476
+ process.exit(1);
477
+ }
478
+ },
479
+ };
480
+ createProgram(handlers, pkg.version).parse();
518
481
  //# sourceMappingURL=cli.js.map
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AACjF,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,SAAS,CAAC;KACf,WAAW,CAAC,6BAA6B,CAAC;KAC1C,OAAO,CAAC,QAAQ,CAAC,CAAC;AAErB;;GAEG;AACH,KAAK,UAAU,UAAU,CAAC,UAAkB;IAC1C,MAAM,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,YAAY,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;IAEpE,IAAI,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAkB,CAAC;IAC9C,CAAC;IAED,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAkB,CAAC;AAC7C,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,UAAU,CAAC,QAAgB;IACxC,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAAC,MAAqB;IAChD,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;QACzB,OAAO,MAAM,CAAC,aAAa,CAAC;IAC9B,CAAC;IACD,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACtB,OAAO,CAAC,IAAI,CACV,EAAE,CAAC,MAAM,CAAC,mEAAmE,CAAC,CAC/E,CAAC;QACF,OAAO,MAAM,CAAC,UAAU,CAAC;IAC3B,CAAC;IACD,OAAO,oBAAoB,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,aAAa,CAC1B,YAAoB;IAEpB,MAAM,WAAW,GAAG,OAAO,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;IACtD,MAAM,WAAW,GAAG,OAAO,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;IAEtD,IAAI,CAAC;QACH,IAAI,MAAM,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAClC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAGzD,CAAC;YACF,OAAO,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,MAAM,IAAI,EAAE,CAAC;QACvD,CAAC;QAED,IAAI,MAAM,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAClC,MAAM,SAAS,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC;YAClD,MAAM,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,SAAS,CAAC,CAAiD,CAAC;YACzF,OAAO,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC;QAC7B,CAAC;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,OAAO,CAAC,IAAI,CACV,EAAE,CAAC,MAAM,CAAC,0CAA0C,YAAY,KAAK,OAAO,EAAE,CAAC,CAChF,CAAC;QACF,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAUD;;GAEG;AACH,KAAK,UAAU,qBAAqB,CAClC,cAAsB;IAEtB,MAAM,WAAW,GAAG,OAAO,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;IACxD,MAAM,WAAW,GAAG,OAAO,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;IAExD,MAAM,KAAK,GAA4B,EAAE,eAAe,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC;IAElF,IAAI,CAAC;QACH,IAAI,MAOS,CAAC;QAEd,IAAI,MAAM,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAClC,MAAM,GAAG,MAAM,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAkB,CAAC;QACzE,CAAC;aAAM,IAAI,MAAM,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YACzC,MAAM,SAAS,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC;YAClD,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,SAAS,CAAC,CAAkB,CAAC;QACtD,CAAC;QAED,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO;YACL,eAAe,EAAE,MAAM,CAAC,eAAe,IAAI,MAAM,CAAC,OAAO,EAAE,eAAe,IAAI,EAAE;YAChF,aAAa,EAAE,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,OAAO,EAAE,aAAa,IAAI,EAAE;SAC3E,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,OAAO,CAAC,IAAI,CACV,EAAE,CAAC,MAAM,CAAC,mDAAmD,cAAc,KAAK,OAAO,EAAE,CAAC,CAC3F,CAAC;QACF,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;GAEG;AACH,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,2CAA2C,CAAC;KACxD,MAAM,CAAC,aAAa,EAAE,0BAA0B,CAAC;KACjD,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,IAAI,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC,CAAC;QAErD,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAa,EAAE,CAAC;QAE7B,MAAM,gBAAgB,GAAG,KAAK,EAAE,QAAgB,EAAE,OAAe,EAAE,EAAE;YACnE,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;YAClC,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,MAAM,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBAChD,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACvB,OAAO;YACT,CAAC;YACD,MAAM,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3D,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACtC,MAAM,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;YACzD,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzB,CAAC,CAAC;QAEF,sBAAsB;QACtB,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;CAgB3B,CAAC;QAEI,MAAM,gBAAgB,CAAC,qBAAqB,EAAE,aAAa,CAAC,CAAC;QAE7D,8BAA8B;QAC9B,MAAM,qBAAqB,GAAG;;;;;;;;;;;;CAYnC,CAAC;QAEI,MAAM,gBAAgB,CAAC,6BAA6B,EAAE,qBAAqB,CAAC,CAAC;QAE7E,gCAAgC;QAChC,MAAM,uBAAuB,GAAG;;;;;;;;;;;;;;;;;CAiBrC,CAAC;QAEI,MAAM,gBAAgB,CAAC,+BAA+B,EAAE,uBAAuB,CAAC,CAAC;QAEjF,6DAA6D;QAC7D,MAAM,gBAAgB,CAAC,6BAA6B,EAAE,EAAE,CAAC,CAAC;QAE1D,mCAAmC;QACnC,MAAM,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;QACxC,IAAI,MAAM,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;YAC9D,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAA4B,CAAC;YAC1D,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAA2B,CAAC;YACjE,IAAI,cAAc,GAAG,KAAK,CAAC;YAE3B,MAAM,aAAa,GAAuB;gBACxC,CAAC,eAAe,EAAE,eAAe,CAAC;gBAClC,CAAC,eAAe,EAAE,eAAe,CAAC;gBAClC,CAAC,kBAAkB,EAAE,wBAAwB,CAAC;aAC/C,CAAC;YAEF,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,aAAa,EAAE,CAAC;gBACzC,IAAI,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC,EAAE,CAAC;oBACtB,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;oBACrB,cAAc,GAAG,IAAI,CAAC;gBACxB,CAAC;YACH,CAAC;YAED,IAAI,cAAc,EAAE,CAAC;gBACnB,GAAG,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC;gBACzB,MAAM,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;gBACrF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC,CAAC;gBAC1D,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,aAAa,EAAE,CAAC;oBACzC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;wBACrC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,GAAG,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC;oBACpD,CAAC;gBACH,CAAC;gBACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;QAED,UAAU;QACV,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;YACrC,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;gBACxB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;YACpC,CAAC;QACH,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,8BAA8B,CAAC,CAAC,CAAC;YACvD,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;gBACxB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;YACpC,CAAC;QACH,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,qEAAqE,CAAC,CAAC,CAAC;QAC5F,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC,CAAC;QACnE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC,CAAC;IACvD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC;QACxC,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL;;GAEG;AACH,OAAO;KACJ,OAAO,CAAC,kBAAkB,CAAC;KAC3B,WAAW,CAAC,yDAAyD,CAAC;KACtE,MAAM,CAAC,qBAAqB,EAAE,qBAAqB,EAAE,qBAAqB,CAAC;KAC3E,MAAM,CAAC,eAAe,EAAE,+BAA+B,CAAC;KACxD,MAAM,CAAC,eAAe,EAAE,gBAAgB,CAAC;KACzC,MAAM,CAAC,KAAK,EAAE,KAAe,EAAE,OAAO,EAAE,EAAE;IACzC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE7B,IAAI,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAEhD,MAAM,cAAc,GAAG,MAAM,CAAC,eAAe,IAAI,sBAAsB,CAAC;QACxE,MAAM,aAAa,GAAG,MAAM,qBAAqB,CAAC,cAAc,CAAC,CAAC;QAElE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC,CAAC;QACvD,MAAM,WAAW,GAAG,MAAM,qBAAqB,CAAC,MAAM,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;QAEvF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAC;QAChD,MAAM,YAAY,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,YAAY,CAAC,CAAC;QAEjD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE;YACtD,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,aAAa,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;YACnD,mBAAmB,EAAE,aAAa,CAAC,aAAa;SACjD,CAAC,CAAC;QAEH,UAAU;QACV,MAAM,gBAAgB,CAAC,WAAW,CAAC,CAAC;QAEpC,eAAe;QACf,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,uBAAuB,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,uBAAuB,MAAM,CAAC,mBAAmB,EAAE,CAAC,CAAC;QACjE,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;QAElD,IAAI,MAAM,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAC1D,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,gBAAgB,QAAQ,IAAI,CAAC,CAAC;QAE1C,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,yCAAyC,CAAC,CAAC,CAAC;QACpE,CAAC;QAED,kCAAkC;QAClC,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YAC/B,IAAI,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;gBAC1B,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;gBACtD,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACzC,CAAC;QACH,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACzC,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL;;GAEG;AACH,OAAO;KACJ,OAAO,CAAC,UAAU,CAAC;KACnB,WAAW,CAAC,4CAA4C,CAAC;KACzD,MAAM,CAAC,qBAAqB,EAAE,qBAAqB,EAAE,qBAAqB,CAAC;KAC3E,MAAM,CAAC,yBAAyB,EAAE,gCAAgC,CAAC;KACnE,MAAM,CAAC,wBAAwB,EAAE,oCAAoC,CAAC;KACtE,MAAM,CAAC,WAAW,EAAE,yBAAyB,CAAC;KAC9C,MAAM,CAAC,eAAe,EAAE,+BAA+B,CAAC;KACxD,MAAM,CAAC,eAAe,EAAE,gBAAgB,CAAC;KACzC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE7B,IAAI,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;YACxC,OAAO,CAAC,KAAK,CACX,EAAE,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAChE,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAEhD,MAAM,cAAc,GAAG,MAAM,CAAC,eAAe,IAAI,sBAAsB,CAAC;QACxE,MAAM,aAAa,GAAG,MAAM,qBAAqB,CAAC,cAAc,CAAC,CAAC;QAElE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC,CAAC;QACvD,MAAM,WAAW,GAAG,MAAM,qBAAqB,CAAC,MAAM,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;QAEvF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC;QAC/C,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,WAAW,EAAE;YACrD,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,cAAc,EAAE,OAAO,CAAC,UAAU;YAClC,aAAa,EAAE,OAAO,CAAC,SAAS;SACjC,CAAC,CAAC;QAEH,UAAU;QACV,MAAM,gBAAgB,CAAC,WAAW,CAAC,CAAC;QAEpC,eAAe;QACf,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QACxC,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;QACxE,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;QACxD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;QAExD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC;QACjD,OAAO,CAAC,GAAG,CAAC,iBAAiB,SAAS,EAAE,CAAC,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,0BAA0B,OAAO,EAAE,CAAC,CAAC;QAEjD,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,cAAc,MAAM,EAAE,CAAC,CAAC,CAAC;QAC9C,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,gBAAgB,QAAQ,IAAI,CAAC,CAAC;QAE1C,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,wCAAwC,CAAC,CAAC,CAAC;QACnE,CAAC;QAED,uBAAuB;QACvB,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,IAAI,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;gBAC1B,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;gBACvD,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACzC,CAAC;QACH,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,CAAC;QAC9C,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL;;GAEG;AACH,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,oCAAoC,CAAC;KACjD,MAAM,CAAC,qBAAqB,EAAE,qBAAqB,EAAE,qBAAqB,CAAC;KAC3E,MAAM,CAAC,eAAe,EAAE,gBAAgB,CAAC;KACzC,MAAM,CAAC,cAAc,EAAE,qCAAqC,CAAC;KAC7D,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,IAAI,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAEhD,MAAM,cAAc,GAAG,MAAM,CAAC,eAAe,IAAI,sBAAsB,CAAC;QACxE,MAAM,aAAa,GAAG,MAAM,qBAAqB,CAAC,cAAc,CAAC,CAAC;QAElE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC,CAAC;QACvD,IAAI,WAAW,GAAG,MAAM,qBAAqB,CAAC,MAAM,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;QAErF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAC;QAChD,MAAM,YAAY,GAAG,OAAO,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC;QAC1D,IAAI,MAAM,GAAG,MAAM,aAAa,CAAC,YAAY,CAAC,CAAC;QAE/C,yBAAyB;QACzB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC,CAAC;QACxD,IAAI,QAAQ,GAAG,IAAI,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACnD,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC;QAEvB,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACtB,QAAQ,CAAC,IAAI,EAAE,CAAC;QAClB,CAAC;QAED,wBAAwB;QACxB,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACtD,MAAM,oBAAoB,GAAG,QAAQ,CAAC,aAAa,EAAE,CAAC;QAEtD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,yBAAyB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC5D,IAAI,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,wBAAwB,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC9G,CAAC;QAED,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,QAAQ,EAAE,GAAG,oBAAoB,CAAC,EAAE;YACrE,OAAO,EAAE,CAAC,oBAAoB,EAAE,YAAY,CAAC;YAC7C,UAAU,EAAE,IAAI;YAChB,aAAa,EAAE,IAAI;SACpB,CAAC,CAAC;QAEH,iBAAiB;QACjB,IAAI,aAAa,GAAyC,IAAI,CAAC;QAC/D,MAAM,cAAc,GAAG,IAAI,GAAG,EAA4B,CAAC;QAE3D,MAAM,cAAc,GAAG,KAAK,IAAI,EAAE;YAChC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,CAAC;YACxC,cAAc,CAAC,KAAK,EAAE,CAAC;YAEvB,IAAI,iBAAiB,GAAG,KAAK,CAAC;YAC9B,KAAK,MAAM,CAAC,QAAQ,CAAC,IAAI,OAAO,EAAE,CAAC;gBACjC,IAAI,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;oBAClE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,0BAA0B,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;oBACtF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,CAAC;oBAClD,IAAI,CAAC;wBACH,MAAM,GAAG,MAAM,aAAa,CAAC,YAAY,CAAC,CAAC;wBAC3C,iBAAiB,GAAG,IAAI,CAAC;oBAC3B,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,gCAAgC,CAAC,EAAE,KAAK,CAAC,CAAC;wBAC/D,OAAO;oBACT,CAAC;gBACH,CAAC;YACH,CAAC;YAED,mDAAmD;YACnD,IAAI,iBAAiB,EAAE,CAAC;gBACtB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC,CAAC;gBAC1D,QAAQ,GAAG,IAAI,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBAC/C,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC;YACzB,CAAC;YAED,8BAA8B;YAC9B,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;YAEvC,KAAK,MAAM,CAAC,QAAQ,CAAC,IAAI,OAAO,EAAE,CAAC;gBACjC,MAAM,QAAQ,GAAG,QAAQ,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;gBACzD,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;oBAC3B,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACxB,CAAC;YACH,CAAC;YAED,IAAI,YAAY,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBAC5B,0CAA0C;gBAC1C,KAAK,MAAM,CAAC,QAAQ,CAAC,IAAI,OAAO,EAAE,CAAC;oBACjC,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;oBACvC,mCAAmC;oBACnC,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;wBACpC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;wBACtC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;wBAC/D,IAAI,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;4BACnC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;4BAC/B,MAAM;wBACR,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAED,IAAI,YAAY,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBAC5B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC,CAAC;gBACzD,OAAO;YACT,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,mBAAmB,YAAY,CAAC,IAAI,iBAAiB,CAAC,CAAC,CAAC;YAE9E,KAAK,MAAM,OAAO,IAAI,YAAY,EAAE,CAAC;gBACnC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;YACnE,CAAC;YAED,IAAI,CAAC;gBACH,oDAAoD;gBACpD,MAAM,gBAAgB,CAAC,WAAW,CAAC,CAAC;gBACpC,WAAW,GAAG,MAAM,qBAAqB,CAAC,MAAM,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;gBAEjF,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE;oBACtD,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,aAAa,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC;oBACvC,mBAAmB,EAAE,aAAa,CAAC,aAAa;iBACjD,CAAC,CAAC;gBAEH,IAAI,MAAM,CAAC,mBAAmB,GAAG,CAAC,EAAE,CAAC;oBACnC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,MAAM,CAAC,mBAAmB,YAAY,CAAC,CAAC,CAAC;gBAChF,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC;gBAChD,CAAC;gBAED,0BAA0B;gBAC1B,QAAQ,GAAG,IAAI,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBAC/C,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC;YACzB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC,CAAC;QAEF,oCAAoC;QACpC,MAAM,YAAY,GAAG,CAAC,IAAsB,EAAE,EAAE,CAAC,CAAC,QAAgB,EAAE,EAAE;YACpE,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC;YAE5C,IAAI,aAAa,EAAE,CAAC;gBAClB,YAAY,CAAC,aAAa,CAAC,CAAC;YAC9B,CAAC;YAED,aAAa,GAAG,UAAU,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;QAClD,CAAC,CAAC;QAEF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC7C,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;QAEvC,iBAAiB;QACjB,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;YAC9B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC;YACjD,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;YACtB,MAAM,gBAAgB,CAAC,WAAW,CAAC,CAAC;YACpC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACzC,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=commands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/generated/commands.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/generated/commands.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ export * from "./types.js";
2
+ export * from "./commands.js";
3
+ export * from "./schemas.js";
4
+ export { createProgram } from "./program.js";
5
+ export type { CommandHandlers } from "./program.js";
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/generated/index.ts"],"names":[],"mappings":"AACA,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,6 @@
1
+ // Auto-generated by cli-contracts. Do not edit.
2
+ export * from "./types.js";
3
+ export * from "./commands.js";
4
+ export * from "./schemas.js";
5
+ export { createProgram } from "./program.js";
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generated/index.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,26 @@
1
+ import { Command } from "commander";
2
+ export interface CommandHandlers {
3
+ init: (options: {
4
+ force?: boolean;
5
+ }, parentOpts: Record<string, unknown>) => Promise<void>;
6
+ build: (files: string[], options: {
7
+ config?: string;
8
+ dryRun?: boolean;
9
+ verbose?: boolean;
10
+ }, parentOpts: Record<string, unknown>) => Promise<void>;
11
+ generate: (options: {
12
+ config?: string;
13
+ datasource?: string;
14
+ generator?: string;
15
+ all?: boolean;
16
+ dryRun?: boolean;
17
+ verbose?: boolean;
18
+ }, parentOpts: Record<string, unknown>) => Promise<void>;
19
+ watch: (options: {
20
+ config?: string;
21
+ verbose?: boolean;
22
+ debugDeps?: boolean;
23
+ }, parentOpts: Record<string, unknown>) => Promise<void>;
24
+ }
25
+ export declare function createProgram(handlers: CommandHandlers, version: string): Command;
26
+ //# sourceMappingURL=program.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"program.d.ts","sourceRoot":"","sources":["../../src/generated/program.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,CAAC,OAAO,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3F,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAClJ,QAAQ,EAAE,CAAC,OAAO,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5L,KAAK,EAAE,CAAC,OAAO,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACrI;AAED,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,MAAM,GACd,OAAO,CAmDT"}
@@ -0,0 +1,49 @@
1
+ // Auto-generated by cli-contracts. Do not edit.
2
+ import { Command } from "commander";
3
+ export function createProgram(handlers, version) {
4
+ const program = new Command();
5
+ program
6
+ .name("embedoc")
7
+ .version(version, "-V, --version")
8
+ .description("In-place document generator with marker-based embedding.");
9
+ program
10
+ .command("init")
11
+ .description("Initialize embedoc in the current project.")
12
+ .option("-f, --force", "Overwrite existing files.", false)
13
+ .action(async (opts, cmd) => {
14
+ await handlers.init(opts, cmd.optsWithGlobals());
15
+ });
16
+ program
17
+ .command("build")
18
+ .description("Build documents by replacing markers with rendered content.")
19
+ .argument("[files...]", "Specific file paths to process. If omitted, processes all targets from config.")
20
+ .option("-c, --config <path>", "Path to config file (YAML or JSON).", "embedoc.config.yaml")
21
+ .option("-d, --dry-run", "Preview changes without writing files.", false)
22
+ .option("-v, --verbose", "Enable verbose output.", false)
23
+ .action(async (files, opts, cmd) => {
24
+ await handlers.build(files, opts, cmd.optsWithGlobals());
25
+ });
26
+ program
27
+ .command("generate")
28
+ .description("Generate new files from datasource records using Handlebars templates.")
29
+ .option("-c, --config <path>", "Path to config file (YAML or JSON).", "embedoc.config.yaml")
30
+ .option("-s, --datasource <name>", "Specific datasource to process.")
31
+ .option("-g, --generator <name>", "Specific generator template to use.")
32
+ .option("-a, --all", "Process all datasources that have generators configured.", false)
33
+ .option("-d, --dry-run", "Preview generation without writing files.", false)
34
+ .option("-v, --verbose", "Enable verbose output.", false)
35
+ .action(async (opts, cmd) => {
36
+ await handlers.generate(opts, cmd.optsWithGlobals());
37
+ });
38
+ program
39
+ .command("watch")
40
+ .description("Watch files and rebuild on changes with dependency tracking.")
41
+ .option("-c, --config <path>", "Path to config file (YAML or JSON).", "embedoc.config.yaml")
42
+ .option("-v, --verbose", "Enable verbose rebuild output.", false)
43
+ .option("--debug-deps", "Print dependency graph at startup for debugging.", false)
44
+ .action(async (opts, cmd) => {
45
+ await handlers.watch(opts, cmd.optsWithGlobals());
46
+ });
47
+ return program;
48
+ }
49
+ //# sourceMappingURL=program.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"program.js","sourceRoot":"","sources":["../../src/generated/program.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASpC,MAAM,UAAU,aAAa,CAC3B,QAAyB,EACzB,OAAe;IAEf,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAC9B,OAAO;SACJ,IAAI,CAAC,SAAS,CAAC;SACf,OAAO,CAAC,OAAO,EAAE,eAAe,CAAC;SACjC,WAAW,CAAC,0DAA0D,CAAC,CAAC;IAG3E,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,4CAA4C,CAAC;SACzD,MAAM,CAAC,aAAa,EAAE,2BAA2B,EAAE,KAAK,CAAC;SACzD,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;QAC1B,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,eAAe,EAAE,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,6DAA6D,CAAC;SAC1E,QAAQ,CAAC,YAAY,EAAE,gFAAgF,CAAC;SACxG,MAAM,CAAC,qBAAqB,EAAE,qCAAqC,EAAE,qBAAqB,CAAC;SAC3F,MAAM,CAAC,eAAe,EAAE,wCAAwC,EAAE,KAAK,CAAC;SACxE,MAAM,CAAC,eAAe,EAAE,wBAAwB,EAAE,KAAK,CAAC;SACxD,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;QACjC,MAAM,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,eAAe,EAAE,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,wEAAwE,CAAC;SACrF,MAAM,CAAC,qBAAqB,EAAE,qCAAqC,EAAE,qBAAqB,CAAC;SAC3F,MAAM,CAAC,yBAAyB,EAAE,iCAAiC,CAAC;SACpE,MAAM,CAAC,wBAAwB,EAAE,qCAAqC,CAAC;SACvE,MAAM,CAAC,WAAW,EAAE,0DAA0D,EAAE,KAAK,CAAC;SACtF,MAAM,CAAC,eAAe,EAAE,2CAA2C,EAAE,KAAK,CAAC;SAC3E,MAAM,CAAC,eAAe,EAAE,wBAAwB,EAAE,KAAK,CAAC;SACxD,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;QAC1B,MAAM,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,eAAe,EAAE,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,8DAA8D,CAAC;SAC3E,MAAM,CAAC,qBAAqB,EAAE,qCAAqC,EAAE,qBAAqB,CAAC;SAC3F,MAAM,CAAC,eAAe,EAAE,gCAAgC,EAAE,KAAK,CAAC;SAChE,MAAM,CAAC,cAAc,EAAE,kDAAkD,EAAE,KAAK,CAAC;SACjF,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;QAC1B,MAAM,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,eAAe,EAAE,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEL,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=schemas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/generated/schemas.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC"}
@@ -0,0 +1,3 @@
1
+ // Auto-generated by cli-contracts. Do not edit.
2
+ export {};
3
+ //# sourceMappingURL=schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/generated/schemas.ts"],"names":[],"mappings":"AAAA,gDAAgD"}
@@ -0,0 +1,57 @@
1
+ export interface InitOptions {
2
+ force?: boolean;
3
+ }
4
+ export type InitExitCode = 0 | 1;
5
+ export type InitExitResult = {
6
+ exitCode: 0;
7
+ stdout: unknown;
8
+ } | {
9
+ exitCode: 1;
10
+ stderr: unknown;
11
+ };
12
+ export interface BuildArgs {
13
+ files?: string[];
14
+ }
15
+ export interface BuildOptions {
16
+ config?: string;
17
+ dryRun?: boolean;
18
+ verbose?: boolean;
19
+ }
20
+ export type BuildExitCode = 0 | 1;
21
+ export type BuildExitResult = {
22
+ exitCode: 0;
23
+ stdout: unknown;
24
+ } | {
25
+ exitCode: 1;
26
+ stderr: unknown;
27
+ };
28
+ export interface GenerateOptions {
29
+ config?: string;
30
+ datasource?: string;
31
+ generator?: string;
32
+ all?: boolean;
33
+ dryRun?: boolean;
34
+ verbose?: boolean;
35
+ }
36
+ export type GenerateExitCode = 0 | 1;
37
+ export type GenerateExitResult = {
38
+ exitCode: 0;
39
+ stdout: unknown;
40
+ } | {
41
+ exitCode: 1;
42
+ stderr: unknown;
43
+ };
44
+ export interface WatchOptions {
45
+ config?: string;
46
+ verbose?: boolean;
47
+ debugDeps?: boolean;
48
+ }
49
+ export type WatchExitCode = 0 | 1;
50
+ export type WatchExitResult = {
51
+ exitCode: 0;
52
+ stdout: unknown;
53
+ } | {
54
+ exitCode: 1;
55
+ stderr: unknown;
56
+ };
57
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/generated/types.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,MAAM,YAAY,GAAG,CAAC,GAAG,CAAC,CAAC;AAEjC,MAAM,MAAM,cAAc,GACxB;IAAE,QAAQ,EAAE,CAAC,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GAC9B;IAAE,QAAQ,EAAE,CAAC,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAAC;AAErC,MAAM,WAAW,SAAS;IACxB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,MAAM,aAAa,GAAG,CAAC,GAAG,CAAC,CAAC;AAElC,MAAM,MAAM,eAAe,GACzB;IAAE,QAAQ,EAAE,CAAC,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GAC9B;IAAE,QAAQ,EAAE,CAAC,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAAC;AAErC,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,MAAM,gBAAgB,GAAG,CAAC,GAAG,CAAC,CAAC;AAErC,MAAM,MAAM,kBAAkB,GAC5B;IAAE,QAAQ,EAAE,CAAC,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GAC9B;IAAE,QAAQ,EAAE,CAAC,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAAC;AAErC,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,MAAM,aAAa,GAAG,CAAC,GAAG,CAAC,CAAC;AAElC,MAAM,MAAM,eAAe,GACzB;IAAE,QAAQ,EAAE,CAAC,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GAC9B;IAAE,QAAQ,EAAE,CAAC,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAAC"}
@@ -0,0 +1,3 @@
1
+ // Auto-generated by cli-contracts. Do not edit.
2
+ export {};
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/generated/types.ts"],"names":[],"mappings":"AAAA,gDAAgD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "embedoc",
3
- "version": "0.12.0",
3
+ "version": "0.12.1",
4
4
  "description": "In-place document generator that auto-updates marker blocks while preserving manual edits. Supports multiple datasources (SQLite, CSV, JSON, YAML, glob), programmable TypeScript embeds, and incremental builds with dependency tracking.",
5
5
  "type": "module",
6
6
  "workspaces": [