@clusterenvision/ui-framework 1.0.0 → 1.0.2

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 (43) hide show
  1. package/dist/browser.cjs +10 -10
  2. package/dist/browser.js +4 -4
  3. package/dist/{chunk-T6T7QE4J.js → chunk-AA4GATSB.js} +3 -3
  4. package/dist/{chunk-T6T7QE4J.js.map → chunk-AA4GATSB.js.map} +1 -1
  5. package/dist/{chunk-V6JCOBGY.js → chunk-BXQFX2PS.js} +3 -3
  6. package/dist/{chunk-V6JCOBGY.js.map → chunk-BXQFX2PS.js.map} +1 -1
  7. package/dist/{chunk-CXTAUXLG.cjs → chunk-FLUSP6VF.cjs} +4 -4
  8. package/dist/{chunk-CXTAUXLG.cjs.map → chunk-FLUSP6VF.cjs.map} +1 -1
  9. package/dist/{chunk-Q3KH6HMU.js → chunk-LSWEXTKL.js} +9 -5
  10. package/dist/chunk-LSWEXTKL.js.map +1 -0
  11. package/dist/{chunk-PVZVFICK.cjs → chunk-NCXUQXAN.cjs} +9 -5
  12. package/dist/chunk-NCXUQXAN.cjs.map +1 -0
  13. package/dist/{chunk-6BYWFGQY.cjs → chunk-SZL56BNL.cjs} +4 -4
  14. package/dist/{chunk-6BYWFGQY.cjs.map → chunk-SZL56BNL.cjs.map} +1 -1
  15. package/dist/{chunk-CHLDE4JQ.js → chunk-VQDM5HCG.js} +3 -3
  16. package/dist/{chunk-CHLDE4JQ.js.map → chunk-VQDM5HCG.js.map} +1 -1
  17. package/dist/{chunk-W3LNNY3U.cjs → chunk-W5M7JGC4.cjs} +4 -4
  18. package/dist/{chunk-W3LNNY3U.cjs.map → chunk-W5M7JGC4.cjs.map} +1 -1
  19. package/dist/cli/index.cjs +1 -1
  20. package/dist/cli/index.cjs.map +1 -1
  21. package/dist/cli/index.js +1 -1
  22. package/dist/cli/index.js.map +1 -1
  23. package/dist/index.cjs +21 -21
  24. package/dist/index.js +5 -5
  25. package/dist/lib/index.cjs +15 -15
  26. package/dist/lib/index.cjs.map +1 -1
  27. package/dist/lib/index.d.cts +4 -4
  28. package/dist/lib/index.d.ts +4 -4
  29. package/dist/lib/index.js +3 -3
  30. package/dist/lib/index.js.map +1 -1
  31. package/dist/lib/theme.cjs +13 -13
  32. package/dist/lib/theme.js +1 -1
  33. package/dist/runtime/adapters/react.cjs.map +1 -1
  34. package/dist/runtime/adapters/react.js.map +1 -1
  35. package/dist/runtime/components/ai-assistant.cjs +4 -4
  36. package/dist/runtime/components/ai-assistant.js +3 -3
  37. package/dist/runtime/components/ai-summary-card.cjs +4 -4
  38. package/dist/runtime/components/ai-summary-card.js +3 -3
  39. package/dist/runtime/router.cjs.map +1 -1
  40. package/dist/runtime/router.js.map +1 -1
  41. package/package.json +2 -7
  42. package/dist/chunk-PVZVFICK.cjs.map +0 -1
  43. package/dist/chunk-Q3KH6HMU.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/cli/compile.ts","../../src/cli/runtime-timeline.js","../../src/cli/workflow-timeline.js","../../src/cli/config.ts","../../src/cli/scaffold.ts","../../src/cli/test.ts","../../src/cli/index.ts"],"names":["pc","fg","chokidar","relative","resolve","readFile","createStyleScopeId","compileTemplate","scopeStyles","mkdir","dirname","writeFile","rm","join","GenMapping","basename","setSourceContent","addMapping","toEncodedMap","fs","buildRuntimeChromeTraceDocument","VALID_FORMATS","readTraceEvents","buildChromeTracePayload","buildEventsPayload","buildChromeTraceDocument","stat","readdir","spawn","Command"],"mappings":"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","file":"index.cjs","sourcesContent":["import { readFile, writeFile, mkdir, rm } from 'node:fs/promises';\nimport { dirname, join, relative, resolve, basename } from 'node:path';\nimport chokidar from 'chokidar';\nimport fg from 'fast-glob';\nimport pc from 'picocolors';\nimport { GenMapping, addMapping, setSourceContent, toEncodedMap } from '@jridgewell/gen-mapping';\nimport { compileTemplate } from '../compiler/compileTemplate.js';\nimport type { CompiledTemplate, TemplateCompileOptions } from '../compiler/types.js';\nimport { createStyleScopeId, scopeStyles } from '../shared/styleScope.js';\n\nexport interface CompileCommandOptions extends TemplateCompileOptions {\n outDir?: string;\n watch?: boolean;\n sourceMap?: boolean;\n}\n\nexport async function runCompile(pattern: string | string[], options: CompileCommandOptions = {}) {\n const compiler = new ComponentFileCompiler(options);\n const files = await compiler.compileInitial(pattern);\n if (!files.length && !options.watch) {\n console.warn(pc.yellow('No .cex files found.'));\n return;\n }\n if (options.watch) {\n await compiler.watch(pattern);\n }\n}\n\nclass ComponentFileCompiler {\n constructor(private readonly options: CompileCommandOptions) {}\n\n async compileInitial(pattern: string | string[]) {\n const entries = Array.isArray(pattern) ? pattern : [pattern];\n const files = await fg(entries, { absolute: true });\n await Promise.all(files.map(file => this.compileFile(file)));\n return files;\n }\n\n async watch(pattern: string | string[]) {\n const entries = Array.isArray(pattern) ? pattern : [pattern];\n const watcher = chokidar.watch(entries, { ignoreInitial: true });\n console.log(pc.cyan('Watching .cex files for changes...'));\n\n const recompile = async (file: string) => {\n await this.compileFile(file);\n };\n\n watcher.on('add', file => {\n void recompile(file);\n });\n watcher.on('change', file => {\n void recompile(file);\n });\n watcher.on('unlink', file => {\n void this.removeOutput(file);\n console.log(pc.dim(`removed ${relative(process.cwd(), file)}`));\n });\n\n await new Promise<void>((resolve, reject) => {\n watcher.on('error', error => {\n const normalized = error instanceof Error ? error : new Error(String(error));\n console.error(pc.red(`Watcher error: ${normalized.message}`));\n reject(normalized);\n });\n const close = () => {\n watcher\n .close()\n .then(resolve)\n .catch((err: unknown) => {\n const normalized = err instanceof Error ? err : new Error(String(err));\n reject(normalized);\n });\n };\n process.once('SIGINT', close);\n process.once('SIGTERM', close);\n });\n }\n\n private async compileFile(file: string) {\n try {\n const source = await readFile(file, 'utf8');\n const { template, styles } = parseComponentFile(source);\n const scopeId = styles.length ? createStyleScopeId(`${file}:${styles.join('|')}`) : undefined;\n const compiled = compileTemplate(template, {\n ...this.options,\n name: this.options.name ?? deriveName(file),\n scopeId,\n });\n if (scopeId) {\n compiled.scopeId = scopeId;\n }\n if (styles.length) {\n compiled.styles = scopeId ? scopeStyles(styles, scopeId) : styles;\n }\n await this.writeOutput(file, compiled, source);\n this.logSuccess(file);\n } catch (error) {\n this.logError(file, error);\n }\n }\n\n private async writeOutput(file: string, compiled: CompiledTemplate, source: string) {\n const outFile = this.resolveOutFile(file);\n await mkdir(dirname(outFile), { recursive: true });\n const emission = emitModule(compiled, {\n outFile,\n source,\n sourcePath: file,\n withSourceMap: Boolean(this.options.sourceMap),\n });\n await writeFile(outFile, emission.code, 'utf8');\n if (emission.map) {\n await writeFile(`${outFile}.map`, JSON.stringify(emission.map, null, 2), 'utf8');\n }\n }\n\n private async removeOutput(file: string) {\n const outFile = this.resolveOutFile(file);\n await rm(outFile, { force: true });\n if (this.options.sourceMap) {\n await rm(`${outFile}.map`, { force: true });\n }\n }\n\n private resolveOutFile(file: string) {\n const outDir = this.options.outDir ? resolve(this.options.outDir) : dirname(file);\n return join(outDir, `${deriveName(file)}.cex.ts`);\n }\n\n private logSuccess(file: string) {\n const outFile = this.resolveOutFile(file);\n console.log(pc.green(`compiled ${relative(process.cwd(), file)} -> ${relative(process.cwd(), outFile)}`));\n }\n\n private logError(file: string, error: unknown) {\n const message = error instanceof Error ? error.message : String(error);\n console.error(pc.red(`failed to compile ${relative(process.cwd(), file)}: ${message}`));\n }\n}\n\nfunction parseComponentFile(source: string) {\n const templatePattern = /<template>([\\s\\S]*?)<\\/template>/i;\n const templateMatch = templatePattern.exec(source);\n if (!templateMatch) {\n throw new Error('Missing <template> block.');\n }\n const styleMatches = Array.from(source.matchAll(/<style[^>]*>([\\s\\S]*?)<\\/style>/gi));\n const styles = styleMatches.map(match => match[1].trim()).filter(Boolean);\n return { template: templateMatch[1], styles };\n}\n\ninterface EmitOptions {\n outFile: string;\n source: string;\n sourcePath: string;\n withSourceMap: boolean;\n}\n\nfunction emitModule(compiled: CompiledTemplate, options: EmitOptions) {\n const payload = JSON.stringify(compiled, null, 2);\n let code = `import type { CompiledTemplate } from '@clusterenvision/ui-framework/compiler';\nexport const template = ${payload} satisfies CompiledTemplate;\nexport default template;\n`;\n let map: object | undefined;\n if (options.withSourceMap) {\n const relSource = relative(dirname(options.outFile), options.sourcePath).replace(/\\\\/g, '/');\n const mapping = new GenMapping({ file: basename(options.outFile) });\n setSourceContent(mapping, relSource, options.source);\n addMapping(mapping, {\n source: relSource,\n original: { line: 1, column: 0 },\n generated: { line: 1, column: 0 },\n });\n map = toEncodedMap(mapping);\n code += `//# sourceMappingURL=${basename(options.outFile)}.map\\n`;\n }\n return { code, map };\n}\n\nfunction deriveName(file: string) {\n const base = file.split('/').pop() ?? 'component';\n return base.replace(/\\.[^.]+$/, '');\n}\n","import { promises as fs } from 'node:fs';\n\nimport { buildRuntimeChromeTraceDocument } from '../runtime/timeline.js';\n\nconst VALID_FORMATS = new Set(['chrome', 'events']);\n\nexport async function runRuntimeTimeline(options) {\n const format = options.format ?? 'chrome';\n if (!VALID_FORMATS.has(format)) {\n throw new Error(`Unsupported format '${format}'. Expected one of: ${[...VALID_FORMATS].join(', ')}`);\n }\n const events = await readTraceEvents(options.input);\n const payload = format === 'chrome' ? buildChromeTracePayload(events) : buildEventsPayload(events);\n if (options.output) {\n await fs.writeFile(options.output, payload, 'utf8');\n return;\n }\n process.stdout.write(`${payload}\\n`);\n}\n\nasync function readTraceEvents(filePath) {\n const contents = await fs.readFile(filePath, 'utf8');\n const trimmed = contents.trim();\n if (!trimmed) {\n return [];\n }\n const serialized = trimmed.startsWith('[')\n ? JSON.parse(trimmed)\n : trimmed\n .split('\\n')\n .map(line => line.trim())\n .filter(Boolean)\n .map(line => JSON.parse(line));\n return serialized.map(event => ({\n ...event,\n timestamp: new Date(event.timestamp),\n }));\n}\n\nfunction buildChromeTracePayload(events) {\n const document = buildRuntimeChromeTraceDocument(events);\n return JSON.stringify(document, null, 2);\n}\n\nfunction buildEventsPayload(events) {\n const serialized = events.map(event => ({\n ...event,\n timestamp: event.timestamp.toISOString(),\n }));\n return JSON.stringify(serialized, null, 2);\n}\n","import { promises as fs } from 'node:fs';\n\nimport { buildChromeTraceDocument } from '../runtime/workflow/timeline.js';\n\nconst VALID_FORMATS = new Set(['chrome', 'events']);\n\nexport async function runWorkflowTimeline(options) {\n const format = options.format ?? 'chrome';\n if (!VALID_FORMATS.has(format)) {\n throw new Error(`Unsupported format '${format}'. Expected one of: ${[...VALID_FORMATS].join(', ')}`);\n }\n const events = await readTraceEvents(options.input);\n const payload = format === 'chrome' ? buildChromeTracePayload(events) : buildEventsPayload(events);\n if (options.output) {\n await fs.writeFile(options.output, payload, 'utf8');\n return;\n }\n process.stdout.write(`${payload}\\n`);\n}\n\nasync function readTraceEvents(filePath) {\n const contents = await fs.readFile(filePath, 'utf8');\n const trimmed = contents.trim();\n if (!trimmed) {\n return [];\n }\n const serialized = trimmed.startsWith('[')\n ? JSON.parse(trimmed)\n : trimmed\n .split('\\n')\n .map(line => line.trim())\n .filter(Boolean)\n .map(line => JSON.parse(line));\n return serialized.map(event => ({\n ...event,\n timestamp: new Date(event.timestamp),\n }));\n}\n\nfunction buildChromeTracePayload(events) {\n const document = buildChromeTraceDocument(events);\n return JSON.stringify(document, null, 2);\n}\n\nfunction buildEventsPayload(events) {\n const serialized = events.map(event => ({\n ...event,\n timestamp: event.timestamp.toISOString(),\n }));\n return JSON.stringify(serialized, null, 2);\n}\n","import { readFile } from 'node:fs/promises';\nimport { resolve } from 'node:path';\n\nexport interface CeuiCompileConfig {\n patterns: string[];\n outDir?: string;\n sourceMap?: boolean;\n}\n\nexport interface CeuiConfig {\n compile: CeuiCompileConfig;\n}\n\nexport interface LoadedConfig {\n path: string;\n config: CeuiConfig;\n}\n\nexport async function loadConfig(configPath?: string): Promise<LoadedConfig> {\n const resolved = resolve(configPath ?? 'ceui.config.json');\n const raw = await readFile(resolved, 'utf8');\n const parsed = JSON.parse(raw) as unknown;\n const config = validateConfig(parsed);\n return { path: resolved, config };\n}\n\nexport function validateConfig(input: unknown): CeuiConfig {\n if (!input || typeof input !== 'object') {\n throw new Error('Config must be a JSON object.');\n }\n const obj = input as Record<string, unknown>;\n const compile = obj.compile;\n if (!compile || typeof compile !== 'object') {\n throw new Error('Config must include a \"compile\" object.');\n }\n const compileObj = compile as Record<string, unknown>;\n const patterns = compileObj.patterns;\n if (!Array.isArray(patterns) || patterns.length === 0 || !patterns.every(item => typeof item === 'string')) {\n throw new Error('\"compile.patterns\" must be a non-empty array of strings.');\n }\n const outDir = compileObj.outDir;\n if (outDir !== undefined && typeof outDir !== 'string') {\n throw new Error('\"compile.outDir\" must be a string when provided.');\n }\n const sourceMap = compileObj.sourceMap;\n if (sourceMap !== undefined && typeof sourceMap !== 'boolean') {\n throw new Error('\"compile.sourceMap\" must be a boolean when provided.');\n }\n return {\n compile: {\n patterns,\n outDir,\n sourceMap,\n },\n } satisfies CeuiConfig;\n}\n","import { mkdir, readdir, writeFile, stat } from 'node:fs/promises';\nimport { resolve, join } from 'node:path';\nimport pc from 'picocolors';\n\ninterface ScaffoldOptions {\n force?: boolean;\n}\n\ninterface ComponentScaffoldOptions extends ScaffoldOptions {\n dir?: string;\n}\n\nexport async function scaffoldApp(name: string, options: ScaffoldOptions = {}): Promise<void> {\n const root = resolve(process.cwd(), name);\n await ensureEmptyDir(root, options.force);\n await mkdir(join(root, 'src'), { recursive: true });\n\n await writeFileSafe(\n join(root, 'package.json'),\n JSON.stringify(\n {\n name,\n version: '0.1.0',\n private: true,\n type: 'module',\n scripts: {\n build: 'ceui build',\n watch: 'ceui watch',\n test: 'ceui test',\n typecheck: 'tsc --noEmit',\n },\n dependencies: {\n '@clusterenvision/ui-framework': '^1.0.0',\n '@clusterenvision/ui-webcomponents': '^1.1.0',\n '@clusterenvision/ce-ui-scss': '^1.94.2',\n },\n devDependencies: {\n '@types/node': '^22.7.4',\n typescript: '^5.9.3',\n },\n },\n null,\n 2,\n ),\n options.force,\n );\n\n await writeFileSafe(\n join(root, 'ceui.config.json'),\n JSON.stringify(\n {\n compile: {\n patterns: ['src/**/*.cex'],\n outDir: 'src/generated',\n sourceMap: true,\n },\n },\n null,\n 2,\n ),\n options.force,\n );\n\n await writeFileSafe(\n join(root, 'src', 'app.cex'),\n `<template>\n <main class=\"app\">\n <h1>CE UI App</h1>\n <p>Welcome to your new workspace.</p>\n </main>\n</template>\n\n<style>\n .app {\n font-family: \"Space Grotesk\", sans-serif;\n padding: 48px;\n }\n</style>\n`,\n options.force,\n );\n\n await writeFileSafe(\n join(root, 'src', 'main.ts'),\n `import { defineComponent, renderComponent } from '@clusterenvision/ui-framework';\nimport template from './generated/app.cex.js';\n\nconst App = defineComponent({\n name: 'App',\n template,\n});\n\nconst target = document.getElementById('app');\nif (target) {\n renderComponent(App, { target });\n}\n`,\n options.force,\n );\n\n await writeFileSafe(\n join(root, 'index.html'),\n `<!doctype html>\n<html lang=\"en\">\n <head>\n <meta charset=\"utf-8\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" />\n <title>${name}</title>\n </head>\n <body>\n <div id=\"app\"></div>\n <script type=\"module\" src=\"/src/main.ts\"></script>\n </body>\n</html>\n`,\n options.force,\n );\n\n await writeFileSafe(\n join(root, 'tsconfig.json'),\n JSON.stringify(\n {\n compilerOptions: {\n target: 'ES2022',\n module: 'ESNext',\n moduleResolution: 'Bundler',\n strict: true,\n lib: ['ES2022', 'DOM'],\n },\n include: ['src'],\n },\n null,\n 2,\n ),\n options.force,\n );\n\n console.log(pc.green(`Scaffolded CE UI app at ${root}`));\n}\n\nexport async function scaffoldComponent(name: string, options: ComponentScaffoldOptions = {}): Promise<void> {\n const dir = resolve(process.cwd(), options.dir ?? 'src/components');\n await mkdir(dir, { recursive: true });\n const fileBase = name.replace(/\\s+/g, '');\n const cexPath = join(dir, `${fileBase}.cex`);\n const tsPath = join(dir, `${fileBase}.ts`);\n\n await writeFileSafe(\n cexPath,\n `<template>\n <section class=\"${fileBase}\">\n <h2>${fileBase}</h2>\n <slot></slot>\n </section>\n</template>\n\n<style>\n .${fileBase} {\n padding: 16px;\n }\n</style>\n`,\n options.force,\n );\n\n await writeFileSafe(\n tsPath,\n `import { defineComponent } from '@clusterenvision/ui-framework';\nimport template from './${fileBase}.cex.js';\n\nexport const ${fileBase} = defineComponent({\n name: '${fileBase}',\n template,\n});\n`,\n options.force,\n );\n\n console.log(pc.green(`Scaffolded component ${fileBase} in ${dir}`));\n}\n\nasync function ensureEmptyDir(target: string, force?: boolean): Promise<void> {\n try {\n const stats = await stat(target);\n if (!stats.isDirectory()) {\n throw new Error(`${target} exists and is not a directory.`);\n }\n const entries = await readdir(target);\n if (entries.length > 0 && !force) {\n throw new Error(`${target} is not empty. Use --force to overwrite.`);\n }\n } catch (error) {\n const code = (error as { code?: string }).code;\n if (code === 'ENOENT') {\n await mkdir(target, { recursive: true });\n return;\n }\n if (force) {\n await mkdir(target, { recursive: true });\n return;\n }\n throw error;\n }\n}\n\nasync function writeFileSafe(path: string, contents: string, force?: boolean): Promise<void> {\n if (!force) {\n try {\n await stat(path);\n throw new Error(`${path} already exists. Use --force to overwrite.`);\n } catch (error) {\n const code = (error as { code?: string }).code;\n if (code !== 'ENOENT') {\n throw error;\n }\n }\n }\n await writeFile(path, contents, 'utf8');\n}\n","import { spawn } from 'node:child_process';\nimport fg from 'fast-glob';\nimport pc from 'picocolors';\n\nexport interface TestCommandOptions {\n patterns?: string[];\n}\n\nconst DEFAULT_PATTERNS = ['tests/**/*.spec.{js,ts}', 'tests/**/*.test.{js,ts}'];\n\nexport async function runTests(options: TestCommandOptions = {}): Promise<void> {\n const patterns = options.patterns?.length ? options.patterns : DEFAULT_PATTERNS;\n const files = await fg(patterns, { absolute: true });\n if (!files.length) {\n console.log(pc.yellow('No test files found.'));\n return;\n }\n await runNodeTest(files);\n}\n\nfunction runNodeTest(files: string[]): Promise<void> {\n return new Promise((resolve, reject) => {\n const child = spawn(process.execPath, ['--test', ...files], { stdio: 'inherit' });\n child.on('exit', code => {\n if (code === 0) {\n resolve();\n return;\n }\n reject(new Error(`Test run failed with code ${String(code ?? 'unknown')}.`));\n });\n child.on('error', error => {\n reject(error);\n });\n });\n}\n","#!/usr/bin/env node\nimport { Command } from 'commander';\nimport { runCompile } from './compile.js';\nimport { runRuntimeTimeline } from './runtime-timeline.js';\nimport { runWorkflowTimeline } from './workflow-timeline.js';\nimport { loadConfig } from './config.js';\nimport { scaffoldApp, scaffoldComponent } from './scaffold.js';\nimport { runTests } from './test.js';\n\nconst program = new Command();\n\nprogram\n .name('ceui')\n .description('CE UI framework tooling')\n .version('0.1.0');\n\nprogram\n .command('compile')\n .argument('<patterns...>', 'Glob patterns for .cex files')\n .option('-o, --out-dir <dir>', 'Output directory')\n .option('-w, --watch', 'Recompile when inputs change', false)\n .option('--source-map', 'Emit source maps for generated modules', false)\n .option('-c, --config <file>', 'Use config file for defaults')\n .action(async (patterns: string[], options: { outDir?: string; watch?: boolean; sourceMap?: boolean; config?: string }) => {\n if (options.config) {\n const loaded = await loadConfig(options.config);\n const { compile } = loaded.config;\n options.outDir ??= compile.outDir;\n options.sourceMap ??= compile.sourceMap;\n }\n await runCompile(patterns, {\n outDir: options.outDir,\n watch: options.watch,\n sourceMap: options.sourceMap,\n });\n });\n\nprogram\n .command('build')\n .description('Compile .cex files using ceui.config.json')\n .option('-c, --config <file>', 'Config file path')\n .action(async (options: { config?: string }) => {\n const loaded = await loadConfig(options.config);\n const { compile } = loaded.config;\n await runCompile(compile.patterns, {\n outDir: compile.outDir,\n sourceMap: compile.sourceMap,\n });\n });\n\nprogram\n .command('watch')\n .description('Watch and recompile .cex files using ceui.config.json')\n .option('-c, --config <file>', 'Config file path')\n .action(async (options: { config?: string }) => {\n const loaded = await loadConfig(options.config);\n const { compile } = loaded.config;\n await runCompile(compile.patterns, {\n outDir: compile.outDir,\n sourceMap: compile.sourceMap,\n watch: true,\n });\n });\n\nconst create = program.command('create').description('Scaffold CE UI apps or components');\n\ncreate\n .command('app')\n .argument('<name>', 'App folder name')\n .option('--force', 'Overwrite existing files', false)\n .action(async (name: string, options: { force?: boolean }) => {\n await scaffoldApp(name, { force: Boolean(options.force) });\n });\n\ncreate\n .command('component')\n .argument('<name>', 'Component name (PascalCase)')\n .option('-d, --dir <dir>', 'Output directory', 'src/components')\n .option('--force', 'Overwrite existing files', false)\n .action(async (name: string, options: { dir?: string; force?: boolean }) => {\n await scaffoldComponent(name, {\n dir: options.dir,\n force: Boolean(options.force),\n });\n });\n\nprogram\n .command('workflow:timeline')\n .description('Convert workflow trace JSON/JSONL into Chrome trace format or raw events')\n .requiredOption('-i, --input <file>', 'Path to workflow trace file (JSONL or JSON array)')\n .option('-o, --output <file>', 'Output file (writes to stdout when omitted)')\n .option('-f, --format <format>', 'Output format: chrome | events', 'chrome')\n .action(async (options: { input: string; output?: string; format?: 'chrome' | 'events' }) => {\n await runWorkflowTimeline({\n input: options.input,\n output: options.output,\n format: options.format,\n });\n });\n\nprogram\n .command('runtime:timeline')\n .description('Convert renderer/runtime trace JSON/JSONL into Chrome trace format or raw events')\n .requiredOption('-i, --input <file>', 'Path to runtime trace file (JSONL or JSON array)')\n .option('-o, --output <file>', 'Output file (writes to stdout when omitted)')\n .option('-f, --format <format>', 'Output format: chrome | events', 'chrome')\n .action(async (options: { input: string; output?: string; format?: 'chrome' | 'events' }) => {\n await runRuntimeTimeline({\n input: options.input,\n output: options.output,\n format: options.format,\n });\n });\n\nprogram\n .command('test')\n .description('Run Node.js test runner with default patterns')\n .option('-p, --pattern <patterns...>', 'Test file patterns')\n .action(async (options: { pattern?: string[] }) => {\n await runTests({ patterns: options.pattern });\n });\n\nvoid program.parseAsync(process.argv);\n"]}
1
+ {"version":3,"sources":["../../src/cli/compile.ts","../../src/cli/runtime-timeline.js","../../src/cli/workflow-timeline.js","../../src/cli/config.ts","../../src/cli/scaffold.ts","../../src/cli/test.ts","../../src/cli/index.ts"],"names":["pc","fg","chokidar","relative","resolve","readFile","createStyleScopeId","compileTemplate","scopeStyles","mkdir","dirname","writeFile","rm","join","GenMapping","basename","setSourceContent","addMapping","toEncodedMap","fs","buildRuntimeChromeTraceDocument","VALID_FORMATS","readTraceEvents","buildChromeTracePayload","buildEventsPayload","buildChromeTraceDocument","stat","readdir","spawn","Command"],"mappings":"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","file":"index.cjs","sourcesContent":["import { readFile, writeFile, mkdir, rm } from 'node:fs/promises';\nimport { dirname, join, relative, resolve, basename } from 'node:path';\nimport chokidar from 'chokidar';\nimport fg from 'fast-glob';\nimport pc from 'picocolors';\nimport { GenMapping, addMapping, setSourceContent, toEncodedMap } from '@jridgewell/gen-mapping';\nimport { compileTemplate } from '../compiler/compileTemplate.js';\nimport type { CompiledTemplate, TemplateCompileOptions } from '../compiler/types.js';\nimport { createStyleScopeId, scopeStyles } from '../shared/styleScope.js';\n\nexport interface CompileCommandOptions extends TemplateCompileOptions {\n outDir?: string;\n watch?: boolean;\n sourceMap?: boolean;\n}\n\nexport async function runCompile(pattern: string | string[], options: CompileCommandOptions = {}) {\n const compiler = new ComponentFileCompiler(options);\n const files = await compiler.compileInitial(pattern);\n if (!files.length && !options.watch) {\n console.warn(pc.yellow('No .cex files found.'));\n return;\n }\n if (options.watch) {\n await compiler.watch(pattern);\n }\n}\n\nclass ComponentFileCompiler {\n constructor(private readonly options: CompileCommandOptions) {}\n\n async compileInitial(pattern: string | string[]) {\n const entries = Array.isArray(pattern) ? pattern : [pattern];\n const files = await fg(entries, { absolute: true });\n await Promise.all(files.map(file => this.compileFile(file)));\n return files;\n }\n\n async watch(pattern: string | string[]) {\n const entries = Array.isArray(pattern) ? pattern : [pattern];\n const watcher = chokidar.watch(entries, { ignoreInitial: true });\n console.log(pc.cyan('Watching .cex files for changes...'));\n\n const recompile = async (file: string) => {\n await this.compileFile(file);\n };\n\n watcher.on('add', file => {\n void recompile(file);\n });\n watcher.on('change', file => {\n void recompile(file);\n });\n watcher.on('unlink', file => {\n void this.removeOutput(file);\n console.log(pc.dim(`removed ${relative(process.cwd(), file)}`));\n });\n\n await new Promise<void>((resolve, reject) => {\n watcher.on('error', error => {\n const normalized = error instanceof Error ? error : new Error(String(error));\n console.error(pc.red(`Watcher error: ${normalized.message}`));\n reject(normalized);\n });\n const close = () => {\n watcher\n .close()\n .then(resolve)\n .catch((err: unknown) => {\n const normalized = err instanceof Error ? err : new Error(String(err));\n reject(normalized);\n });\n };\n process.once('SIGINT', close);\n process.once('SIGTERM', close);\n });\n }\n\n private async compileFile(file: string) {\n try {\n const source = await readFile(file, 'utf8');\n const { template, styles } = parseComponentFile(source);\n const scopeId = styles.length ? createStyleScopeId(`${file}:${styles.join('|')}`) : undefined;\n const compiled = compileTemplate(template, {\n ...this.options,\n name: this.options.name ?? deriveName(file),\n scopeId,\n });\n if (scopeId) {\n compiled.scopeId = scopeId;\n }\n if (styles.length) {\n compiled.styles = scopeId ? scopeStyles(styles, scopeId) : styles;\n }\n await this.writeOutput(file, compiled, source);\n this.logSuccess(file);\n } catch (error) {\n this.logError(file, error);\n }\n }\n\n private async writeOutput(file: string, compiled: CompiledTemplate, source: string) {\n const outFile = this.resolveOutFile(file);\n await mkdir(dirname(outFile), { recursive: true });\n const emission = emitModule(compiled, {\n outFile,\n source,\n sourcePath: file,\n withSourceMap: Boolean(this.options.sourceMap),\n });\n await writeFile(outFile, emission.code, 'utf8');\n if (emission.map) {\n await writeFile(`${outFile}.map`, JSON.stringify(emission.map, null, 2), 'utf8');\n }\n }\n\n private async removeOutput(file: string) {\n const outFile = this.resolveOutFile(file);\n await rm(outFile, { force: true });\n if (this.options.sourceMap) {\n await rm(`${outFile}.map`, { force: true });\n }\n }\n\n private resolveOutFile(file: string) {\n const outDir = this.options.outDir ? resolve(this.options.outDir) : dirname(file);\n return join(outDir, `${deriveName(file)}.cex.ts`);\n }\n\n private logSuccess(file: string) {\n const outFile = this.resolveOutFile(file);\n console.log(pc.green(`compiled ${relative(process.cwd(), file)} -> ${relative(process.cwd(), outFile)}`));\n }\n\n private logError(file: string, error: unknown) {\n const message = error instanceof Error ? error.message : String(error);\n console.error(pc.red(`failed to compile ${relative(process.cwd(), file)}: ${message}`));\n }\n}\n\nfunction parseComponentFile(source: string) {\n const templatePattern = /<template>([\\s\\S]*?)<\\/template>/i;\n const templateMatch = templatePattern.exec(source);\n if (!templateMatch) {\n throw new Error('Missing <template> block.');\n }\n const styleMatches = Array.from(source.matchAll(/<style[^>]*>([\\s\\S]*?)<\\/style>/gi));\n const styles = styleMatches.map(match => match[1].trim()).filter(Boolean);\n return { template: templateMatch[1], styles };\n}\n\ninterface EmitOptions {\n outFile: string;\n source: string;\n sourcePath: string;\n withSourceMap: boolean;\n}\n\nfunction emitModule(compiled: CompiledTemplate, options: EmitOptions) {\n const payload = JSON.stringify(compiled, null, 2);\n let code = `import type { CompiledTemplate } from '@clusterenvision/ui-framework/compiler';\nexport const template = ${payload} satisfies CompiledTemplate;\nexport default template;\n`;\n let map: object | undefined;\n if (options.withSourceMap) {\n const relSource = relative(dirname(options.outFile), options.sourcePath).replace(/\\\\/g, '/');\n const mapping = new GenMapping({ file: basename(options.outFile) });\n setSourceContent(mapping, relSource, options.source);\n addMapping(mapping, {\n source: relSource,\n original: { line: 1, column: 0 },\n generated: { line: 1, column: 0 },\n });\n map = toEncodedMap(mapping);\n code += `//# sourceMappingURL=${basename(options.outFile)}.map\\n`;\n }\n return { code, map };\n}\n\nfunction deriveName(file: string) {\n const base = file.split('/').pop() ?? 'component';\n return base.replace(/\\.[^.]+$/, '');\n}\n","import { promises as fs } from 'node:fs';\n\nimport { buildRuntimeChromeTraceDocument } from '../runtime/timeline.js';\n\nconst VALID_FORMATS = new Set(['chrome', 'events']);\n\nexport async function runRuntimeTimeline(options) {\n const format = options.format ?? 'chrome';\n if (!VALID_FORMATS.has(format)) {\n throw new Error(`Unsupported format '${format}'. Expected one of: ${[...VALID_FORMATS].join(', ')}`);\n }\n const events = await readTraceEvents(options.input);\n const payload = format === 'chrome' ? buildChromeTracePayload(events) : buildEventsPayload(events);\n if (options.output) {\n await fs.writeFile(options.output, payload, 'utf8');\n return;\n }\n process.stdout.write(`${payload}\\n`);\n}\n\nasync function readTraceEvents(filePath) {\n const contents = await fs.readFile(filePath, 'utf8');\n const trimmed = contents.trim();\n if (!trimmed) {\n return [];\n }\n const serialized = trimmed.startsWith('[')\n ? JSON.parse(trimmed)\n : trimmed\n .split('\\n')\n .map(line => line.trim())\n .filter(Boolean)\n .map(line => JSON.parse(line));\n return serialized.map(event => ({\n ...event,\n timestamp: new Date(event.timestamp),\n }));\n}\n\nfunction buildChromeTracePayload(events) {\n const document = buildRuntimeChromeTraceDocument(events);\n return JSON.stringify(document, null, 2);\n}\n\nfunction buildEventsPayload(events) {\n const serialized = events.map(event => ({\n ...event,\n timestamp: event.timestamp.toISOString(),\n }));\n return JSON.stringify(serialized, null, 2);\n}\n","import { promises as fs } from 'node:fs';\n\nimport { buildChromeTraceDocument } from '../runtime/workflow/timeline.js';\n\nconst VALID_FORMATS = new Set(['chrome', 'events']);\n\nexport async function runWorkflowTimeline(options) {\n const format = options.format ?? 'chrome';\n if (!VALID_FORMATS.has(format)) {\n throw new Error(`Unsupported format '${format}'. Expected one of: ${[...VALID_FORMATS].join(', ')}`);\n }\n const events = await readTraceEvents(options.input);\n const payload = format === 'chrome' ? buildChromeTracePayload(events) : buildEventsPayload(events);\n if (options.output) {\n await fs.writeFile(options.output, payload, 'utf8');\n return;\n }\n process.stdout.write(`${payload}\\n`);\n}\n\nasync function readTraceEvents(filePath) {\n const contents = await fs.readFile(filePath, 'utf8');\n const trimmed = contents.trim();\n if (!trimmed) {\n return [];\n }\n const serialized = trimmed.startsWith('[')\n ? JSON.parse(trimmed)\n : trimmed\n .split('\\n')\n .map(line => line.trim())\n .filter(Boolean)\n .map(line => JSON.parse(line));\n return serialized.map(event => ({\n ...event,\n timestamp: new Date(event.timestamp),\n }));\n}\n\nfunction buildChromeTracePayload(events) {\n const document = buildChromeTraceDocument(events);\n return JSON.stringify(document, null, 2);\n}\n\nfunction buildEventsPayload(events) {\n const serialized = events.map(event => ({\n ...event,\n timestamp: event.timestamp.toISOString(),\n }));\n return JSON.stringify(serialized, null, 2);\n}\n","import { readFile } from 'node:fs/promises';\nimport { resolve } from 'node:path';\n\nexport interface CeuiCompileConfig {\n patterns: string[];\n outDir?: string;\n sourceMap?: boolean;\n}\n\nexport interface CeuiConfig {\n compile: CeuiCompileConfig;\n}\n\nexport interface LoadedConfig {\n path: string;\n config: CeuiConfig;\n}\n\nexport async function loadConfig(configPath?: string): Promise<LoadedConfig> {\n const resolved = resolve(configPath ?? 'ceui.config.json');\n const raw = await readFile(resolved, 'utf8');\n const parsed = JSON.parse(raw) as unknown;\n const config = validateConfig(parsed);\n return { path: resolved, config };\n}\n\nexport function validateConfig(input: unknown): CeuiConfig {\n if (!input || typeof input !== 'object') {\n throw new Error('Config must be a JSON object.');\n }\n const obj = input as Record<string, unknown>;\n const compile = obj.compile;\n if (!compile || typeof compile !== 'object') {\n throw new Error('Config must include a \"compile\" object.');\n }\n const compileObj = compile as Record<string, unknown>;\n const patterns = compileObj.patterns;\n if (!Array.isArray(patterns) || patterns.length === 0 || !patterns.every(item => typeof item === 'string')) {\n throw new Error('\"compile.patterns\" must be a non-empty array of strings.');\n }\n const outDir = compileObj.outDir;\n if (outDir !== undefined && typeof outDir !== 'string') {\n throw new Error('\"compile.outDir\" must be a string when provided.');\n }\n const sourceMap = compileObj.sourceMap;\n if (sourceMap !== undefined && typeof sourceMap !== 'boolean') {\n throw new Error('\"compile.sourceMap\" must be a boolean when provided.');\n }\n return {\n compile: {\n patterns,\n outDir,\n sourceMap,\n },\n } satisfies CeuiConfig;\n}\n","import { mkdir, readdir, writeFile, stat } from 'node:fs/promises';\nimport { resolve, join } from 'node:path';\nimport pc from 'picocolors';\n\ninterface ScaffoldOptions {\n force?: boolean;\n}\n\ninterface ComponentScaffoldOptions extends ScaffoldOptions {\n dir?: string;\n}\n\nexport async function scaffoldApp(name: string, options: ScaffoldOptions = {}): Promise<void> {\n const root = resolve(process.cwd(), name);\n await ensureEmptyDir(root, options.force);\n await mkdir(join(root, 'src'), { recursive: true });\n\n await writeFileSafe(\n join(root, 'package.json'),\n JSON.stringify(\n {\n name,\n version: '0.1.0',\n private: true,\n type: 'module',\n scripts: {\n build: 'ceui build',\n watch: 'ceui watch',\n test: 'ceui test',\n typecheck: 'tsc --noEmit',\n },\n dependencies: {\n '@clusterenvision/ui-framework': '^1.0.0',\n '@clusterenvision/ui-webcomponents': '^1.2.1',\n '@clusterenvision/ce-ui-scss': '^1.94.2',\n },\n devDependencies: {\n '@types/node': '^22.7.4',\n typescript: '^5.9.3',\n },\n },\n null,\n 2,\n ),\n options.force,\n );\n\n await writeFileSafe(\n join(root, 'ceui.config.json'),\n JSON.stringify(\n {\n compile: {\n patterns: ['src/**/*.cex'],\n outDir: 'src/generated',\n sourceMap: true,\n },\n },\n null,\n 2,\n ),\n options.force,\n );\n\n await writeFileSafe(\n join(root, 'src', 'app.cex'),\n `<template>\n <main class=\"app\">\n <h1>CE UI App</h1>\n <p>Welcome to your new workspace.</p>\n </main>\n</template>\n\n<style>\n .app {\n font-family: \"Space Grotesk\", sans-serif;\n padding: 48px;\n }\n</style>\n`,\n options.force,\n );\n\n await writeFileSafe(\n join(root, 'src', 'main.ts'),\n `import { defineComponent, renderComponent } from '@clusterenvision/ui-framework';\nimport template from './generated/app.cex.js';\n\nconst App = defineComponent({\n name: 'App',\n template,\n});\n\nconst target = document.getElementById('app');\nif (target) {\n renderComponent(App, { target });\n}\n`,\n options.force,\n );\n\n await writeFileSafe(\n join(root, 'index.html'),\n `<!doctype html>\n<html lang=\"en\">\n <head>\n <meta charset=\"utf-8\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" />\n <title>${name}</title>\n </head>\n <body>\n <div id=\"app\"></div>\n <script type=\"module\" src=\"/src/main.ts\"></script>\n </body>\n</html>\n`,\n options.force,\n );\n\n await writeFileSafe(\n join(root, 'tsconfig.json'),\n JSON.stringify(\n {\n compilerOptions: {\n target: 'ES2022',\n module: 'ESNext',\n moduleResolution: 'Bundler',\n strict: true,\n lib: ['ES2022', 'DOM'],\n },\n include: ['src'],\n },\n null,\n 2,\n ),\n options.force,\n );\n\n console.log(pc.green(`Scaffolded CE UI app at ${root}`));\n}\n\nexport async function scaffoldComponent(name: string, options: ComponentScaffoldOptions = {}): Promise<void> {\n const dir = resolve(process.cwd(), options.dir ?? 'src/components');\n await mkdir(dir, { recursive: true });\n const fileBase = name.replace(/\\s+/g, '');\n const cexPath = join(dir, `${fileBase}.cex`);\n const tsPath = join(dir, `${fileBase}.ts`);\n\n await writeFileSafe(\n cexPath,\n `<template>\n <section class=\"${fileBase}\">\n <h2>${fileBase}</h2>\n <slot></slot>\n </section>\n</template>\n\n<style>\n .${fileBase} {\n padding: 16px;\n }\n</style>\n`,\n options.force,\n );\n\n await writeFileSafe(\n tsPath,\n `import { defineComponent } from '@clusterenvision/ui-framework';\nimport template from './${fileBase}.cex.js';\n\nexport const ${fileBase} = defineComponent({\n name: '${fileBase}',\n template,\n});\n`,\n options.force,\n );\n\n console.log(pc.green(`Scaffolded component ${fileBase} in ${dir}`));\n}\n\nasync function ensureEmptyDir(target: string, force?: boolean): Promise<void> {\n try {\n const stats = await stat(target);\n if (!stats.isDirectory()) {\n throw new Error(`${target} exists and is not a directory.`);\n }\n const entries = await readdir(target);\n if (entries.length > 0 && !force) {\n throw new Error(`${target} is not empty. Use --force to overwrite.`);\n }\n } catch (error) {\n const code = (error as { code?: string }).code;\n if (code === 'ENOENT') {\n await mkdir(target, { recursive: true });\n return;\n }\n if (force) {\n await mkdir(target, { recursive: true });\n return;\n }\n throw error;\n }\n}\n\nasync function writeFileSafe(path: string, contents: string, force?: boolean): Promise<void> {\n if (!force) {\n try {\n await stat(path);\n throw new Error(`${path} already exists. Use --force to overwrite.`);\n } catch (error) {\n const code = (error as { code?: string }).code;\n if (code !== 'ENOENT') {\n throw error;\n }\n }\n }\n await writeFile(path, contents, 'utf8');\n}\n","import { spawn } from 'node:child_process';\nimport fg from 'fast-glob';\nimport pc from 'picocolors';\n\nexport interface TestCommandOptions {\n patterns?: string[];\n}\n\nconst DEFAULT_PATTERNS = ['tests/**/*.spec.{js,ts}', 'tests/**/*.test.{js,ts}'];\n\nexport async function runTests(options: TestCommandOptions = {}): Promise<void> {\n const patterns = options.patterns?.length ? options.patterns : DEFAULT_PATTERNS;\n const files = await fg(patterns, { absolute: true });\n if (!files.length) {\n console.log(pc.yellow('No test files found.'));\n return;\n }\n await runNodeTest(files);\n}\n\nfunction runNodeTest(files: string[]): Promise<void> {\n return new Promise((resolve, reject) => {\n const child = spawn(process.execPath, ['--test', ...files], { stdio: 'inherit' });\n child.on('exit', code => {\n if (code === 0) {\n resolve();\n return;\n }\n reject(new Error(`Test run failed with code ${String(code ?? 'unknown')}.`));\n });\n child.on('error', error => {\n reject(error);\n });\n });\n}\n","#!/usr/bin/env node\nimport { Command } from 'commander';\nimport { runCompile } from './compile.js';\nimport { runRuntimeTimeline } from './runtime-timeline.js';\nimport { runWorkflowTimeline } from './workflow-timeline.js';\nimport { loadConfig } from './config.js';\nimport { scaffoldApp, scaffoldComponent } from './scaffold.js';\nimport { runTests } from './test.js';\n\nconst program = new Command();\n\nprogram\n .name('ceui')\n .description('CE UI framework tooling')\n .version('0.1.0');\n\nprogram\n .command('compile')\n .argument('<patterns...>', 'Glob patterns for .cex files')\n .option('-o, --out-dir <dir>', 'Output directory')\n .option('-w, --watch', 'Recompile when inputs change', false)\n .option('--source-map', 'Emit source maps for generated modules', false)\n .option('-c, --config <file>', 'Use config file for defaults')\n .action(async (patterns: string[], options: { outDir?: string; watch?: boolean; sourceMap?: boolean; config?: string }) => {\n if (options.config) {\n const loaded = await loadConfig(options.config);\n const { compile } = loaded.config;\n options.outDir ??= compile.outDir;\n options.sourceMap ??= compile.sourceMap;\n }\n await runCompile(patterns, {\n outDir: options.outDir,\n watch: options.watch,\n sourceMap: options.sourceMap,\n });\n });\n\nprogram\n .command('build')\n .description('Compile .cex files using ceui.config.json')\n .option('-c, --config <file>', 'Config file path')\n .action(async (options: { config?: string }) => {\n const loaded = await loadConfig(options.config);\n const { compile } = loaded.config;\n await runCompile(compile.patterns, {\n outDir: compile.outDir,\n sourceMap: compile.sourceMap,\n });\n });\n\nprogram\n .command('watch')\n .description('Watch and recompile .cex files using ceui.config.json')\n .option('-c, --config <file>', 'Config file path')\n .action(async (options: { config?: string }) => {\n const loaded = await loadConfig(options.config);\n const { compile } = loaded.config;\n await runCompile(compile.patterns, {\n outDir: compile.outDir,\n sourceMap: compile.sourceMap,\n watch: true,\n });\n });\n\nconst create = program.command('create').description('Scaffold CE UI apps or components');\n\ncreate\n .command('app')\n .argument('<name>', 'App folder name')\n .option('--force', 'Overwrite existing files', false)\n .action(async (name: string, options: { force?: boolean }) => {\n await scaffoldApp(name, { force: Boolean(options.force) });\n });\n\ncreate\n .command('component')\n .argument('<name>', 'Component name (PascalCase)')\n .option('-d, --dir <dir>', 'Output directory', 'src/components')\n .option('--force', 'Overwrite existing files', false)\n .action(async (name: string, options: { dir?: string; force?: boolean }) => {\n await scaffoldComponent(name, {\n dir: options.dir,\n force: Boolean(options.force),\n });\n });\n\nprogram\n .command('workflow:timeline')\n .description('Convert workflow trace JSON/JSONL into Chrome trace format or raw events')\n .requiredOption('-i, --input <file>', 'Path to workflow trace file (JSONL or JSON array)')\n .option('-o, --output <file>', 'Output file (writes to stdout when omitted)')\n .option('-f, --format <format>', 'Output format: chrome | events', 'chrome')\n .action(async (options: { input: string; output?: string; format?: 'chrome' | 'events' }) => {\n await runWorkflowTimeline({\n input: options.input,\n output: options.output,\n format: options.format,\n });\n });\n\nprogram\n .command('runtime:timeline')\n .description('Convert renderer/runtime trace JSON/JSONL into Chrome trace format or raw events')\n .requiredOption('-i, --input <file>', 'Path to runtime trace file (JSONL or JSON array)')\n .option('-o, --output <file>', 'Output file (writes to stdout when omitted)')\n .option('-f, --format <format>', 'Output format: chrome | events', 'chrome')\n .action(async (options: { input: string; output?: string; format?: 'chrome' | 'events' }) => {\n await runRuntimeTimeline({\n input: options.input,\n output: options.output,\n format: options.format,\n });\n });\n\nprogram\n .command('test')\n .description('Run Node.js test runner with default patterns')\n .option('-p, --pattern <patterns...>', 'Test file patterns')\n .action(async (options: { pattern?: string[] }) => {\n await runTests({ patterns: options.pattern });\n });\n\nvoid program.parseAsync(process.argv);\n"]}
package/dist/cli/index.js CHANGED
@@ -293,7 +293,7 @@ async function scaffoldApp(name, options = {}) {
293
293
  },
294
294
  dependencies: {
295
295
  "@clusterenvision/ui-framework": "^1.0.0",
296
- "@clusterenvision/ui-webcomponents": "^1.1.0",
296
+ "@clusterenvision/ui-webcomponents": "^1.2.1",
297
297
  "@clusterenvision/ce-ui-scss": "^1.94.2"
298
298
  },
299
299
  devDependencies: {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/cli/compile.ts","../../src/cli/runtime-timeline.js","../../src/cli/workflow-timeline.js","../../src/cli/config.ts","../../src/cli/scaffold.ts","../../src/cli/test.ts","../../src/cli/index.ts"],"names":["resolve","fs","VALID_FORMATS","readTraceEvents","buildChromeTracePayload","buildEventsPayload","readFile","mkdir","join","pc","writeFile","fg"],"mappings":"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","file":"index.js","sourcesContent":["import { readFile, writeFile, mkdir, rm } from 'node:fs/promises';\nimport { dirname, join, relative, resolve, basename } from 'node:path';\nimport chokidar from 'chokidar';\nimport fg from 'fast-glob';\nimport pc from 'picocolors';\nimport { GenMapping, addMapping, setSourceContent, toEncodedMap } from '@jridgewell/gen-mapping';\nimport { compileTemplate } from '../compiler/compileTemplate.js';\nimport type { CompiledTemplate, TemplateCompileOptions } from '../compiler/types.js';\nimport { createStyleScopeId, scopeStyles } from '../shared/styleScope.js';\n\nexport interface CompileCommandOptions extends TemplateCompileOptions {\n outDir?: string;\n watch?: boolean;\n sourceMap?: boolean;\n}\n\nexport async function runCompile(pattern: string | string[], options: CompileCommandOptions = {}) {\n const compiler = new ComponentFileCompiler(options);\n const files = await compiler.compileInitial(pattern);\n if (!files.length && !options.watch) {\n console.warn(pc.yellow('No .cex files found.'));\n return;\n }\n if (options.watch) {\n await compiler.watch(pattern);\n }\n}\n\nclass ComponentFileCompiler {\n constructor(private readonly options: CompileCommandOptions) {}\n\n async compileInitial(pattern: string | string[]) {\n const entries = Array.isArray(pattern) ? pattern : [pattern];\n const files = await fg(entries, { absolute: true });\n await Promise.all(files.map(file => this.compileFile(file)));\n return files;\n }\n\n async watch(pattern: string | string[]) {\n const entries = Array.isArray(pattern) ? pattern : [pattern];\n const watcher = chokidar.watch(entries, { ignoreInitial: true });\n console.log(pc.cyan('Watching .cex files for changes...'));\n\n const recompile = async (file: string) => {\n await this.compileFile(file);\n };\n\n watcher.on('add', file => {\n void recompile(file);\n });\n watcher.on('change', file => {\n void recompile(file);\n });\n watcher.on('unlink', file => {\n void this.removeOutput(file);\n console.log(pc.dim(`removed ${relative(process.cwd(), file)}`));\n });\n\n await new Promise<void>((resolve, reject) => {\n watcher.on('error', error => {\n const normalized = error instanceof Error ? error : new Error(String(error));\n console.error(pc.red(`Watcher error: ${normalized.message}`));\n reject(normalized);\n });\n const close = () => {\n watcher\n .close()\n .then(resolve)\n .catch((err: unknown) => {\n const normalized = err instanceof Error ? err : new Error(String(err));\n reject(normalized);\n });\n };\n process.once('SIGINT', close);\n process.once('SIGTERM', close);\n });\n }\n\n private async compileFile(file: string) {\n try {\n const source = await readFile(file, 'utf8');\n const { template, styles } = parseComponentFile(source);\n const scopeId = styles.length ? createStyleScopeId(`${file}:${styles.join('|')}`) : undefined;\n const compiled = compileTemplate(template, {\n ...this.options,\n name: this.options.name ?? deriveName(file),\n scopeId,\n });\n if (scopeId) {\n compiled.scopeId = scopeId;\n }\n if (styles.length) {\n compiled.styles = scopeId ? scopeStyles(styles, scopeId) : styles;\n }\n await this.writeOutput(file, compiled, source);\n this.logSuccess(file);\n } catch (error) {\n this.logError(file, error);\n }\n }\n\n private async writeOutput(file: string, compiled: CompiledTemplate, source: string) {\n const outFile = this.resolveOutFile(file);\n await mkdir(dirname(outFile), { recursive: true });\n const emission = emitModule(compiled, {\n outFile,\n source,\n sourcePath: file,\n withSourceMap: Boolean(this.options.sourceMap),\n });\n await writeFile(outFile, emission.code, 'utf8');\n if (emission.map) {\n await writeFile(`${outFile}.map`, JSON.stringify(emission.map, null, 2), 'utf8');\n }\n }\n\n private async removeOutput(file: string) {\n const outFile = this.resolveOutFile(file);\n await rm(outFile, { force: true });\n if (this.options.sourceMap) {\n await rm(`${outFile}.map`, { force: true });\n }\n }\n\n private resolveOutFile(file: string) {\n const outDir = this.options.outDir ? resolve(this.options.outDir) : dirname(file);\n return join(outDir, `${deriveName(file)}.cex.ts`);\n }\n\n private logSuccess(file: string) {\n const outFile = this.resolveOutFile(file);\n console.log(pc.green(`compiled ${relative(process.cwd(), file)} -> ${relative(process.cwd(), outFile)}`));\n }\n\n private logError(file: string, error: unknown) {\n const message = error instanceof Error ? error.message : String(error);\n console.error(pc.red(`failed to compile ${relative(process.cwd(), file)}: ${message}`));\n }\n}\n\nfunction parseComponentFile(source: string) {\n const templatePattern = /<template>([\\s\\S]*?)<\\/template>/i;\n const templateMatch = templatePattern.exec(source);\n if (!templateMatch) {\n throw new Error('Missing <template> block.');\n }\n const styleMatches = Array.from(source.matchAll(/<style[^>]*>([\\s\\S]*?)<\\/style>/gi));\n const styles = styleMatches.map(match => match[1].trim()).filter(Boolean);\n return { template: templateMatch[1], styles };\n}\n\ninterface EmitOptions {\n outFile: string;\n source: string;\n sourcePath: string;\n withSourceMap: boolean;\n}\n\nfunction emitModule(compiled: CompiledTemplate, options: EmitOptions) {\n const payload = JSON.stringify(compiled, null, 2);\n let code = `import type { CompiledTemplate } from '@clusterenvision/ui-framework/compiler';\nexport const template = ${payload} satisfies CompiledTemplate;\nexport default template;\n`;\n let map: object | undefined;\n if (options.withSourceMap) {\n const relSource = relative(dirname(options.outFile), options.sourcePath).replace(/\\\\/g, '/');\n const mapping = new GenMapping({ file: basename(options.outFile) });\n setSourceContent(mapping, relSource, options.source);\n addMapping(mapping, {\n source: relSource,\n original: { line: 1, column: 0 },\n generated: { line: 1, column: 0 },\n });\n map = toEncodedMap(mapping);\n code += `//# sourceMappingURL=${basename(options.outFile)}.map\\n`;\n }\n return { code, map };\n}\n\nfunction deriveName(file: string) {\n const base = file.split('/').pop() ?? 'component';\n return base.replace(/\\.[^.]+$/, '');\n}\n","import { promises as fs } from 'node:fs';\n\nimport { buildRuntimeChromeTraceDocument } from '../runtime/timeline.js';\n\nconst VALID_FORMATS = new Set(['chrome', 'events']);\n\nexport async function runRuntimeTimeline(options) {\n const format = options.format ?? 'chrome';\n if (!VALID_FORMATS.has(format)) {\n throw new Error(`Unsupported format '${format}'. Expected one of: ${[...VALID_FORMATS].join(', ')}`);\n }\n const events = await readTraceEvents(options.input);\n const payload = format === 'chrome' ? buildChromeTracePayload(events) : buildEventsPayload(events);\n if (options.output) {\n await fs.writeFile(options.output, payload, 'utf8');\n return;\n }\n process.stdout.write(`${payload}\\n`);\n}\n\nasync function readTraceEvents(filePath) {\n const contents = await fs.readFile(filePath, 'utf8');\n const trimmed = contents.trim();\n if (!trimmed) {\n return [];\n }\n const serialized = trimmed.startsWith('[')\n ? JSON.parse(trimmed)\n : trimmed\n .split('\\n')\n .map(line => line.trim())\n .filter(Boolean)\n .map(line => JSON.parse(line));\n return serialized.map(event => ({\n ...event,\n timestamp: new Date(event.timestamp),\n }));\n}\n\nfunction buildChromeTracePayload(events) {\n const document = buildRuntimeChromeTraceDocument(events);\n return JSON.stringify(document, null, 2);\n}\n\nfunction buildEventsPayload(events) {\n const serialized = events.map(event => ({\n ...event,\n timestamp: event.timestamp.toISOString(),\n }));\n return JSON.stringify(serialized, null, 2);\n}\n","import { promises as fs } from 'node:fs';\n\nimport { buildChromeTraceDocument } from '../runtime/workflow/timeline.js';\n\nconst VALID_FORMATS = new Set(['chrome', 'events']);\n\nexport async function runWorkflowTimeline(options) {\n const format = options.format ?? 'chrome';\n if (!VALID_FORMATS.has(format)) {\n throw new Error(`Unsupported format '${format}'. Expected one of: ${[...VALID_FORMATS].join(', ')}`);\n }\n const events = await readTraceEvents(options.input);\n const payload = format === 'chrome' ? buildChromeTracePayload(events) : buildEventsPayload(events);\n if (options.output) {\n await fs.writeFile(options.output, payload, 'utf8');\n return;\n }\n process.stdout.write(`${payload}\\n`);\n}\n\nasync function readTraceEvents(filePath) {\n const contents = await fs.readFile(filePath, 'utf8');\n const trimmed = contents.trim();\n if (!trimmed) {\n return [];\n }\n const serialized = trimmed.startsWith('[')\n ? JSON.parse(trimmed)\n : trimmed\n .split('\\n')\n .map(line => line.trim())\n .filter(Boolean)\n .map(line => JSON.parse(line));\n return serialized.map(event => ({\n ...event,\n timestamp: new Date(event.timestamp),\n }));\n}\n\nfunction buildChromeTracePayload(events) {\n const document = buildChromeTraceDocument(events);\n return JSON.stringify(document, null, 2);\n}\n\nfunction buildEventsPayload(events) {\n const serialized = events.map(event => ({\n ...event,\n timestamp: event.timestamp.toISOString(),\n }));\n return JSON.stringify(serialized, null, 2);\n}\n","import { readFile } from 'node:fs/promises';\nimport { resolve } from 'node:path';\n\nexport interface CeuiCompileConfig {\n patterns: string[];\n outDir?: string;\n sourceMap?: boolean;\n}\n\nexport interface CeuiConfig {\n compile: CeuiCompileConfig;\n}\n\nexport interface LoadedConfig {\n path: string;\n config: CeuiConfig;\n}\n\nexport async function loadConfig(configPath?: string): Promise<LoadedConfig> {\n const resolved = resolve(configPath ?? 'ceui.config.json');\n const raw = await readFile(resolved, 'utf8');\n const parsed = JSON.parse(raw) as unknown;\n const config = validateConfig(parsed);\n return { path: resolved, config };\n}\n\nexport function validateConfig(input: unknown): CeuiConfig {\n if (!input || typeof input !== 'object') {\n throw new Error('Config must be a JSON object.');\n }\n const obj = input as Record<string, unknown>;\n const compile = obj.compile;\n if (!compile || typeof compile !== 'object') {\n throw new Error('Config must include a \"compile\" object.');\n }\n const compileObj = compile as Record<string, unknown>;\n const patterns = compileObj.patterns;\n if (!Array.isArray(patterns) || patterns.length === 0 || !patterns.every(item => typeof item === 'string')) {\n throw new Error('\"compile.patterns\" must be a non-empty array of strings.');\n }\n const outDir = compileObj.outDir;\n if (outDir !== undefined && typeof outDir !== 'string') {\n throw new Error('\"compile.outDir\" must be a string when provided.');\n }\n const sourceMap = compileObj.sourceMap;\n if (sourceMap !== undefined && typeof sourceMap !== 'boolean') {\n throw new Error('\"compile.sourceMap\" must be a boolean when provided.');\n }\n return {\n compile: {\n patterns,\n outDir,\n sourceMap,\n },\n } satisfies CeuiConfig;\n}\n","import { mkdir, readdir, writeFile, stat } from 'node:fs/promises';\nimport { resolve, join } from 'node:path';\nimport pc from 'picocolors';\n\ninterface ScaffoldOptions {\n force?: boolean;\n}\n\ninterface ComponentScaffoldOptions extends ScaffoldOptions {\n dir?: string;\n}\n\nexport async function scaffoldApp(name: string, options: ScaffoldOptions = {}): Promise<void> {\n const root = resolve(process.cwd(), name);\n await ensureEmptyDir(root, options.force);\n await mkdir(join(root, 'src'), { recursive: true });\n\n await writeFileSafe(\n join(root, 'package.json'),\n JSON.stringify(\n {\n name,\n version: '0.1.0',\n private: true,\n type: 'module',\n scripts: {\n build: 'ceui build',\n watch: 'ceui watch',\n test: 'ceui test',\n typecheck: 'tsc --noEmit',\n },\n dependencies: {\n '@clusterenvision/ui-framework': '^1.0.0',\n '@clusterenvision/ui-webcomponents': '^1.1.0',\n '@clusterenvision/ce-ui-scss': '^1.94.2',\n },\n devDependencies: {\n '@types/node': '^22.7.4',\n typescript: '^5.9.3',\n },\n },\n null,\n 2,\n ),\n options.force,\n );\n\n await writeFileSafe(\n join(root, 'ceui.config.json'),\n JSON.stringify(\n {\n compile: {\n patterns: ['src/**/*.cex'],\n outDir: 'src/generated',\n sourceMap: true,\n },\n },\n null,\n 2,\n ),\n options.force,\n );\n\n await writeFileSafe(\n join(root, 'src', 'app.cex'),\n `<template>\n <main class=\"app\">\n <h1>CE UI App</h1>\n <p>Welcome to your new workspace.</p>\n </main>\n</template>\n\n<style>\n .app {\n font-family: \"Space Grotesk\", sans-serif;\n padding: 48px;\n }\n</style>\n`,\n options.force,\n );\n\n await writeFileSafe(\n join(root, 'src', 'main.ts'),\n `import { defineComponent, renderComponent } from '@clusterenvision/ui-framework';\nimport template from './generated/app.cex.js';\n\nconst App = defineComponent({\n name: 'App',\n template,\n});\n\nconst target = document.getElementById('app');\nif (target) {\n renderComponent(App, { target });\n}\n`,\n options.force,\n );\n\n await writeFileSafe(\n join(root, 'index.html'),\n `<!doctype html>\n<html lang=\"en\">\n <head>\n <meta charset=\"utf-8\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" />\n <title>${name}</title>\n </head>\n <body>\n <div id=\"app\"></div>\n <script type=\"module\" src=\"/src/main.ts\"></script>\n </body>\n</html>\n`,\n options.force,\n );\n\n await writeFileSafe(\n join(root, 'tsconfig.json'),\n JSON.stringify(\n {\n compilerOptions: {\n target: 'ES2022',\n module: 'ESNext',\n moduleResolution: 'Bundler',\n strict: true,\n lib: ['ES2022', 'DOM'],\n },\n include: ['src'],\n },\n null,\n 2,\n ),\n options.force,\n );\n\n console.log(pc.green(`Scaffolded CE UI app at ${root}`));\n}\n\nexport async function scaffoldComponent(name: string, options: ComponentScaffoldOptions = {}): Promise<void> {\n const dir = resolve(process.cwd(), options.dir ?? 'src/components');\n await mkdir(dir, { recursive: true });\n const fileBase = name.replace(/\\s+/g, '');\n const cexPath = join(dir, `${fileBase}.cex`);\n const tsPath = join(dir, `${fileBase}.ts`);\n\n await writeFileSafe(\n cexPath,\n `<template>\n <section class=\"${fileBase}\">\n <h2>${fileBase}</h2>\n <slot></slot>\n </section>\n</template>\n\n<style>\n .${fileBase} {\n padding: 16px;\n }\n</style>\n`,\n options.force,\n );\n\n await writeFileSafe(\n tsPath,\n `import { defineComponent } from '@clusterenvision/ui-framework';\nimport template from './${fileBase}.cex.js';\n\nexport const ${fileBase} = defineComponent({\n name: '${fileBase}',\n template,\n});\n`,\n options.force,\n );\n\n console.log(pc.green(`Scaffolded component ${fileBase} in ${dir}`));\n}\n\nasync function ensureEmptyDir(target: string, force?: boolean): Promise<void> {\n try {\n const stats = await stat(target);\n if (!stats.isDirectory()) {\n throw new Error(`${target} exists and is not a directory.`);\n }\n const entries = await readdir(target);\n if (entries.length > 0 && !force) {\n throw new Error(`${target} is not empty. Use --force to overwrite.`);\n }\n } catch (error) {\n const code = (error as { code?: string }).code;\n if (code === 'ENOENT') {\n await mkdir(target, { recursive: true });\n return;\n }\n if (force) {\n await mkdir(target, { recursive: true });\n return;\n }\n throw error;\n }\n}\n\nasync function writeFileSafe(path: string, contents: string, force?: boolean): Promise<void> {\n if (!force) {\n try {\n await stat(path);\n throw new Error(`${path} already exists. Use --force to overwrite.`);\n } catch (error) {\n const code = (error as { code?: string }).code;\n if (code !== 'ENOENT') {\n throw error;\n }\n }\n }\n await writeFile(path, contents, 'utf8');\n}\n","import { spawn } from 'node:child_process';\nimport fg from 'fast-glob';\nimport pc from 'picocolors';\n\nexport interface TestCommandOptions {\n patterns?: string[];\n}\n\nconst DEFAULT_PATTERNS = ['tests/**/*.spec.{js,ts}', 'tests/**/*.test.{js,ts}'];\n\nexport async function runTests(options: TestCommandOptions = {}): Promise<void> {\n const patterns = options.patterns?.length ? options.patterns : DEFAULT_PATTERNS;\n const files = await fg(patterns, { absolute: true });\n if (!files.length) {\n console.log(pc.yellow('No test files found.'));\n return;\n }\n await runNodeTest(files);\n}\n\nfunction runNodeTest(files: string[]): Promise<void> {\n return new Promise((resolve, reject) => {\n const child = spawn(process.execPath, ['--test', ...files], { stdio: 'inherit' });\n child.on('exit', code => {\n if (code === 0) {\n resolve();\n return;\n }\n reject(new Error(`Test run failed with code ${String(code ?? 'unknown')}.`));\n });\n child.on('error', error => {\n reject(error);\n });\n });\n}\n","#!/usr/bin/env node\nimport { Command } from 'commander';\nimport { runCompile } from './compile.js';\nimport { runRuntimeTimeline } from './runtime-timeline.js';\nimport { runWorkflowTimeline } from './workflow-timeline.js';\nimport { loadConfig } from './config.js';\nimport { scaffoldApp, scaffoldComponent } from './scaffold.js';\nimport { runTests } from './test.js';\n\nconst program = new Command();\n\nprogram\n .name('ceui')\n .description('CE UI framework tooling')\n .version('0.1.0');\n\nprogram\n .command('compile')\n .argument('<patterns...>', 'Glob patterns for .cex files')\n .option('-o, --out-dir <dir>', 'Output directory')\n .option('-w, --watch', 'Recompile when inputs change', false)\n .option('--source-map', 'Emit source maps for generated modules', false)\n .option('-c, --config <file>', 'Use config file for defaults')\n .action(async (patterns: string[], options: { outDir?: string; watch?: boolean; sourceMap?: boolean; config?: string }) => {\n if (options.config) {\n const loaded = await loadConfig(options.config);\n const { compile } = loaded.config;\n options.outDir ??= compile.outDir;\n options.sourceMap ??= compile.sourceMap;\n }\n await runCompile(patterns, {\n outDir: options.outDir,\n watch: options.watch,\n sourceMap: options.sourceMap,\n });\n });\n\nprogram\n .command('build')\n .description('Compile .cex files using ceui.config.json')\n .option('-c, --config <file>', 'Config file path')\n .action(async (options: { config?: string }) => {\n const loaded = await loadConfig(options.config);\n const { compile } = loaded.config;\n await runCompile(compile.patterns, {\n outDir: compile.outDir,\n sourceMap: compile.sourceMap,\n });\n });\n\nprogram\n .command('watch')\n .description('Watch and recompile .cex files using ceui.config.json')\n .option('-c, --config <file>', 'Config file path')\n .action(async (options: { config?: string }) => {\n const loaded = await loadConfig(options.config);\n const { compile } = loaded.config;\n await runCompile(compile.patterns, {\n outDir: compile.outDir,\n sourceMap: compile.sourceMap,\n watch: true,\n });\n });\n\nconst create = program.command('create').description('Scaffold CE UI apps or components');\n\ncreate\n .command('app')\n .argument('<name>', 'App folder name')\n .option('--force', 'Overwrite existing files', false)\n .action(async (name: string, options: { force?: boolean }) => {\n await scaffoldApp(name, { force: Boolean(options.force) });\n });\n\ncreate\n .command('component')\n .argument('<name>', 'Component name (PascalCase)')\n .option('-d, --dir <dir>', 'Output directory', 'src/components')\n .option('--force', 'Overwrite existing files', false)\n .action(async (name: string, options: { dir?: string; force?: boolean }) => {\n await scaffoldComponent(name, {\n dir: options.dir,\n force: Boolean(options.force),\n });\n });\n\nprogram\n .command('workflow:timeline')\n .description('Convert workflow trace JSON/JSONL into Chrome trace format or raw events')\n .requiredOption('-i, --input <file>', 'Path to workflow trace file (JSONL or JSON array)')\n .option('-o, --output <file>', 'Output file (writes to stdout when omitted)')\n .option('-f, --format <format>', 'Output format: chrome | events', 'chrome')\n .action(async (options: { input: string; output?: string; format?: 'chrome' | 'events' }) => {\n await runWorkflowTimeline({\n input: options.input,\n output: options.output,\n format: options.format,\n });\n });\n\nprogram\n .command('runtime:timeline')\n .description('Convert renderer/runtime trace JSON/JSONL into Chrome trace format or raw events')\n .requiredOption('-i, --input <file>', 'Path to runtime trace file (JSONL or JSON array)')\n .option('-o, --output <file>', 'Output file (writes to stdout when omitted)')\n .option('-f, --format <format>', 'Output format: chrome | events', 'chrome')\n .action(async (options: { input: string; output?: string; format?: 'chrome' | 'events' }) => {\n await runRuntimeTimeline({\n input: options.input,\n output: options.output,\n format: options.format,\n });\n });\n\nprogram\n .command('test')\n .description('Run Node.js test runner with default patterns')\n .option('-p, --pattern <patterns...>', 'Test file patterns')\n .action(async (options: { pattern?: string[] }) => {\n await runTests({ patterns: options.pattern });\n });\n\nvoid program.parseAsync(process.argv);\n"]}
1
+ {"version":3,"sources":["../../src/cli/compile.ts","../../src/cli/runtime-timeline.js","../../src/cli/workflow-timeline.js","../../src/cli/config.ts","../../src/cli/scaffold.ts","../../src/cli/test.ts","../../src/cli/index.ts"],"names":["resolve","fs","VALID_FORMATS","readTraceEvents","buildChromeTracePayload","buildEventsPayload","readFile","mkdir","join","pc","writeFile","fg"],"mappings":";;;;;;;;;;;;;;;AAgBA,eAAsB,UAAA,CAAW,OAAA,EAA4B,OAAA,GAAiC,EAAC,EAAG;AAChG,EAAA,MAAM,QAAA,GAAW,IAAI,qBAAA,CAAsB,OAAO,CAAA;AAClD,EAAA,MAAM,KAAA,GAAQ,MAAM,QAAA,CAAS,cAAA,CAAe,OAAO,CAAA;AACnD,EAAA,IAAI,CAAC,KAAA,CAAM,MAAA,IAAU,CAAC,QAAQ,KAAA,EAAO;AACnC,IAAA,OAAA,CAAQ,IAAA,CAAK,EAAA,CAAG,MAAA,CAAO,sBAAsB,CAAC,CAAA;AAC9C,IAAA;AAAA,EACF;AACA,EAAA,IAAI,QAAQ,KAAA,EAAO;AACjB,IAAA,MAAM,QAAA,CAAS,MAAM,OAAO,CAAA;AAAA,EAC9B;AACF;AAEA,IAAM,wBAAN,MAA4B;AAAA,EAC1B,YAA6B,OAAA,EAAgC;AAAhC,IAAA,IAAA,CAAA,OAAA,GAAA,OAAA;AAAA,EAAiC;AAAA,EAAjC,OAAA;AAAA,EAE7B,MAAM,eAAe,OAAA,EAA4B;AAC/C,IAAA,MAAM,UAAU,KAAA,CAAM,OAAA,CAAQ,OAAO,CAAA,GAAI,OAAA,GAAU,CAAC,OAAO,CAAA;AAC3D,IAAA,MAAM,QAAQ,MAAM,EAAA,CAAG,SAAS,EAAE,QAAA,EAAU,MAAM,CAAA;AAClD,IAAA,MAAM,OAAA,CAAQ,IAAI,KAAA,CAAM,GAAA,CAAI,UAAQ,IAAA,CAAK,WAAA,CAAY,IAAI,CAAC,CAAC,CAAA;AAC3D,IAAA,OAAO,KAAA;AAAA,EACT;AAAA,EAEA,MAAM,MAAM,OAAA,EAA4B;AACtC,IAAA,MAAM,UAAU,KAAA,CAAM,OAAA,CAAQ,OAAO,CAAA,GAAI,OAAA,GAAU,CAAC,OAAO,CAAA;AAC3D,IAAA,MAAM,UAAU,QAAA,CAAS,KAAA,CAAM,SAAS,EAAE,aAAA,EAAe,MAAM,CAAA;AAC/D,IAAA,OAAA,CAAQ,GAAA,CAAI,EAAA,CAAG,IAAA,CAAK,oCAAoC,CAAC,CAAA;AAEzD,IAAA,MAAM,SAAA,GAAY,OAAO,IAAA,KAAiB;AACxC,MAAA,MAAM,IAAA,CAAK,YAAY,IAAI,CAAA;AAAA,IAC7B,CAAA;AAEA,IAAA,OAAA,CAAQ,EAAA,CAAG,OAAO,CAAA,IAAA,KAAQ;AACxB,MAAA,KAAK,UAAU,IAAI,CAAA;AAAA,IACrB,CAAC,CAAA;AACD,IAAA,OAAA,CAAQ,EAAA,CAAG,UAAU,CAAA,IAAA,KAAQ;AAC3B,MAAA,KAAK,UAAU,IAAI,CAAA;AAAA,IACrB,CAAC,CAAA;AACD,IAAA,OAAA,CAAQ,EAAA,CAAG,UAAU,CAAA,IAAA,KAAQ;AAC3B,MAAA,KAAK,IAAA,CAAK,aAAa,IAAI,CAAA;AAC3B,MAAA,OAAA,CAAQ,GAAA,CAAI,EAAA,CAAG,GAAA,CAAI,CAAA,QAAA,EAAW,QAAA,CAAS,OAAA,CAAQ,GAAA,EAAI,EAAG,IAAI,CAAC,CAAA,CAAE,CAAC,CAAA;AAAA,IAChE,CAAC,CAAA;AAED,IAAA,MAAM,IAAI,OAAA,CAAc,CAACA,QAAAA,EAAS,MAAA,KAAW;AAC3C,MAAA,OAAA,CAAQ,EAAA,CAAG,SAAS,CAAA,KAAA,KAAS;AAC3B,QAAA,MAAM,UAAA,GAAa,iBAAiB,KAAA,GAAQ,KAAA,GAAQ,IAAI,KAAA,CAAM,MAAA,CAAO,KAAK,CAAC,CAAA;AAC3E,QAAA,OAAA,CAAQ,MAAM,EAAA,CAAG,GAAA,CAAI,kBAAkB,UAAA,CAAW,OAAO,EAAE,CAAC,CAAA;AAC5D,QAAA,MAAA,CAAO,UAAU,CAAA;AAAA,MACnB,CAAC,CAAA;AACD,MAAA,MAAM,QAAQ,MAAM;AAClB,QAAA,OAAA,CACG,OAAM,CACN,IAAA,CAAKA,QAAO,CAAA,CACZ,KAAA,CAAM,CAAC,GAAA,KAAiB;AACvB,UAAA,MAAM,UAAA,GAAa,eAAe,KAAA,GAAQ,GAAA,GAAM,IAAI,KAAA,CAAM,MAAA,CAAO,GAAG,CAAC,CAAA;AACrE,UAAA,MAAA,CAAO,UAAU,CAAA;AAAA,QACnB,CAAC,CAAA;AAAA,MACL,CAAA;AACA,MAAA,OAAA,CAAQ,IAAA,CAAK,UAAU,KAAK,CAAA;AAC5B,MAAA,OAAA,CAAQ,IAAA,CAAK,WAAW,KAAK,CAAA;AAAA,IAC/B,CAAC,CAAA;AAAA,EACH;AAAA,EAEA,MAAc,YAAY,IAAA,EAAc;AACtC,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,MAAM,QAAA,CAAS,IAAA,EAAM,MAAM,CAAA;AAC1C,MAAA,MAAM,EAAE,QAAA,EAAU,MAAA,EAAO,GAAI,mBAAmB,MAAM,CAAA;AACtD,MAAA,MAAM,OAAA,GAAU,MAAA,CAAO,MAAA,GAAS,kBAAA,CAAmB,CAAA,EAAG,IAAI,CAAA,CAAA,EAAI,MAAA,CAAO,IAAA,CAAK,GAAG,CAAC,CAAA,CAAE,CAAA,GAAI,KAAA,CAAA;AACpF,MAAA,MAAM,QAAA,GAAW,gBAAgB,QAAA,EAAU;AAAA,QACzC,GAAG,IAAA,CAAK,OAAA;AAAA,QACR,IAAA,EAAM,IAAA,CAAK,OAAA,CAAQ,IAAA,IAAQ,WAAW,IAAI,CAAA;AAAA,QAC1C;AAAA,OACD,CAAA;AACD,MAAA,IAAI,OAAA,EAAS;AACX,QAAA,QAAA,CAAS,OAAA,GAAU,OAAA;AAAA,MACrB;AACA,MAAA,IAAI,OAAO,MAAA,EAAQ;AACjB,QAAA,QAAA,CAAS,MAAA,GAAS,OAAA,GAAU,WAAA,CAAY,MAAA,EAAQ,OAAO,CAAA,GAAI,MAAA;AAAA,MAC7D;AACA,MAAA,MAAM,IAAA,CAAK,WAAA,CAAY,IAAA,EAAM,QAAA,EAAU,MAAM,CAAA;AAC7C,MAAA,IAAA,CAAK,WAAW,IAAI,CAAA;AAAA,IACtB,SAAS,KAAA,EAAO;AACd,MAAA,IAAA,CAAK,QAAA,CAAS,MAAM,KAAK,CAAA;AAAA,IAC3B;AAAA,EACF;AAAA,EAEA,MAAc,WAAA,CAAY,IAAA,EAAc,QAAA,EAA4B,MAAA,EAAgB;AAClF,IAAA,MAAM,OAAA,GAAU,IAAA,CAAK,cAAA,CAAe,IAAI,CAAA;AACxC,IAAA,MAAM,MAAM,OAAA,CAAQ,OAAO,GAAG,EAAE,SAAA,EAAW,MAAM,CAAA;AACjD,IAAA,MAAM,QAAA,GAAW,WAAW,QAAA,EAAU;AAAA,MACpC,OAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA,EAAY,IAAA;AAAA,MACZ,aAAA,EAAe,OAAA,CAAQ,IAAA,CAAK,OAAA,CAAQ,SAAS;AAAA,KAC9C,CAAA;AACD,IAAA,MAAM,SAAA,CAAU,OAAA,EAAS,QAAA,CAAS,IAAA,EAAM,MAAM,CAAA;AAC9C,IAAA,IAAI,SAAS,GAAA,EAAK;AAChB,MAAA,MAAM,SAAA,CAAU,CAAA,EAAG,OAAO,CAAA,IAAA,CAAA,EAAQ,IAAA,CAAK,SAAA,CAAU,QAAA,CAAS,GAAA,EAAK,IAAA,EAAM,CAAC,CAAA,EAAG,MAAM,CAAA;AAAA,IACjF;AAAA,EACF;AAAA,EAEA,MAAc,aAAa,IAAA,EAAc;AACvC,IAAA,MAAM,OAAA,GAAU,IAAA,CAAK,cAAA,CAAe,IAAI,CAAA;AACxC,IAAA,MAAM,EAAA,CAAG,OAAA,EAAS,EAAE,KAAA,EAAO,MAAM,CAAA;AACjC,IAAA,IAAI,IAAA,CAAK,QAAQ,SAAA,EAAW;AAC1B,MAAA,MAAM,GAAG,CAAA,EAAG,OAAO,QAAQ,EAAE,KAAA,EAAO,MAAM,CAAA;AAAA,IAC5C;AAAA,EACF;AAAA,EAEQ,eAAe,IAAA,EAAc;AACnC,IAAA,MAAM,MAAA,GAAS,IAAA,CAAK,OAAA,CAAQ,MAAA,GAAS,OAAA,CAAQ,KAAK,OAAA,CAAQ,MAAM,CAAA,GAAI,OAAA,CAAQ,IAAI,CAAA;AAChF,IAAA,OAAO,KAAK,MAAA,EAAQ,CAAA,EAAG,UAAA,CAAW,IAAI,CAAC,CAAA,OAAA,CAAS,CAAA;AAAA,EAClD;AAAA,EAEQ,WAAW,IAAA,EAAc;AAC/B,IAAA,MAAM,OAAA,GAAU,IAAA,CAAK,cAAA,CAAe,IAAI,CAAA;AACxC,IAAA,OAAA,CAAQ,IAAI,EAAA,CAAG,KAAA,CAAM,YAAY,QAAA,CAAS,OAAA,CAAQ,KAAI,EAAG,IAAI,CAAC,CAAA,IAAA,EAAO,SAAS,OAAA,CAAQ,GAAA,IAAO,OAAO,CAAC,EAAE,CAAC,CAAA;AAAA,EAC1G;AAAA,EAEQ,QAAA,CAAS,MAAc,KAAA,EAAgB;AAC7C,IAAA,MAAM,UAAU,KAAA,YAAiB,KAAA,GAAQ,KAAA,CAAM,OAAA,GAAU,OAAO,KAAK,CAAA;AACrE,IAAA,OAAA,CAAQ,KAAA,CAAM,EAAA,CAAG,GAAA,CAAI,CAAA,kBAAA,EAAqB,QAAA,CAAS,OAAA,CAAQ,GAAA,EAAI,EAAG,IAAI,CAAC,CAAA,EAAA,EAAK,OAAO,EAAE,CAAC,CAAA;AAAA,EACxF;AACF,CAAA;AAEA,SAAS,mBAAmB,MAAA,EAAgB;AAC1C,EAAA,MAAM,eAAA,GAAkB,mCAAA;AACxB,EAAA,MAAM,aAAA,GAAgB,eAAA,CAAgB,IAAA,CAAK,MAAM,CAAA;AACjD,EAAA,IAAI,CAAC,aAAA,EAAe;AAClB,IAAA,MAAM,IAAI,MAAM,2BAA2B,CAAA;AAAA,EAC7C;AACA,EAAA,MAAM,eAAe,KAAA,CAAM,IAAA,CAAK,MAAA,CAAO,QAAA,CAAS,mCAAmC,CAAC,CAAA;AACpF,EAAA,MAAM,MAAA,GAAS,YAAA,CAAa,GAAA,CAAI,CAAA,KAAA,KAAS,KAAA,CAAM,CAAC,CAAA,CAAE,IAAA,EAAM,CAAA,CAAE,MAAA,CAAO,OAAO,CAAA;AACxE,EAAA,OAAO,EAAE,QAAA,EAAU,aAAA,CAAc,CAAC,GAAG,MAAA,EAAO;AAC9C;AASA,SAAS,UAAA,CAAW,UAA4B,OAAA,EAAsB;AACpE,EAAA,MAAM,OAAA,GAAU,IAAA,CAAK,SAAA,CAAU,QAAA,EAAU,MAAM,CAAC,CAAA;AAChD,EAAA,IAAI,IAAA,GAAO,CAAA;AAAA,wBAAA,EACa,OAAO,CAAA;AAAA;AAAA,CAAA;AAG/B,EAAA,IAAI,GAAA;AACJ,EAAA,IAAI,QAAQ,aAAA,EAAe;AACzB,IAAA,MAAM,SAAA,GAAY,QAAA,CAAS,OAAA,CAAQ,OAAA,CAAQ,OAAO,CAAA,EAAG,OAAA,CAAQ,UAAU,CAAA,CAAE,OAAA,CAAQ,KAAA,EAAO,GAAG,CAAA;AAC3F,IAAA,MAAM,OAAA,GAAU,IAAI,UAAA,CAAW,EAAE,MAAM,QAAA,CAAS,OAAA,CAAQ,OAAO,CAAA,EAAG,CAAA;AAClE,IAAA,gBAAA,CAAiB,OAAA,EAAS,SAAA,EAAW,OAAA,CAAQ,MAAM,CAAA;AACnD,IAAA,UAAA,CAAW,OAAA,EAAS;AAAA,MAClB,MAAA,EAAQ,SAAA;AAAA,MACR,QAAA,EAAU,EAAE,IAAA,EAAM,CAAA,EAAG,QAAQ,CAAA,EAAE;AAAA,MAC/B,SAAA,EAAW,EAAE,IAAA,EAAM,CAAA,EAAG,QAAQ,CAAA;AAAE,KACjC,CAAA;AACD,IAAA,GAAA,GAAM,aAAa,OAAO,CAAA;AAC1B,IAAA,IAAA,IAAQ,CAAA,qBAAA,EAAwB,QAAA,CAAS,OAAA,CAAQ,OAAO,CAAC,CAAA;AAAA,CAAA;AAAA,EAC3D;AACA,EAAA,OAAO,EAAE,MAAM,GAAA,EAAI;AACrB;AAEA,SAAS,WAAW,IAAA,EAAc;AAChC,EAAA,MAAM,OAAO,IAAA,CAAK,KAAA,CAAM,GAAG,CAAA,CAAE,KAAI,IAAK,WAAA;AACtC,EAAA,OAAO,IAAA,CAAK,OAAA,CAAQ,UAAA,EAAY,EAAE,CAAA;AACpC;ACnLA,IAAM,gCAAgB,IAAI,GAAA,CAAI,CAAC,QAAA,EAAU,QAAQ,CAAC,CAAA;AAElD,eAAsB,mBAAmB,OAAA,EAAS;AAC9C,EAAA,MAAM,MAAA,GAAS,QAAQ,MAAA,IAAU,QAAA;AACjC,EAAA,IAAI,CAAC,aAAA,CAAc,GAAA,CAAI,MAAM,CAAA,EAAG;AAC5B,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,oBAAA,EAAuB,MAAM,CAAA,oBAAA,EAAuB,CAAC,GAAG,aAAa,CAAA,CAAE,IAAA,CAAK,IAAI,CAAC,CAAA,CAAE,CAAA;AAAA,EACvG;AACA,EAAA,MAAM,MAAA,GAAS,MAAM,eAAA,CAAgB,OAAA,CAAQ,KAAK,CAAA;AAClD,EAAA,MAAM,UAAU,MAAA,KAAW,QAAA,GAAW,wBAAwB,MAAM,CAAA,GAAI,mBAAmB,MAAM,CAAA;AACjG,EAAA,IAAI,QAAQ,MAAA,EAAQ;AAChB,IAAA,MAAMC,QAAA,CAAG,SAAA,CAAU,OAAA,CAAQ,MAAA,EAAQ,SAAS,MAAM,CAAA;AAClD,IAAA;AAAA,EACJ;AACA,EAAA,OAAA,CAAQ,MAAA,CAAO,KAAA,CAAM,CAAA,EAAG,OAAO;AAAA,CAAI,CAAA;AACvC;AAEA,eAAe,gBAAgB,QAAA,EAAU;AACrC,EAAA,MAAM,QAAA,GAAW,MAAMA,QAAA,CAAG,QAAA,CAAS,UAAU,MAAM,CAAA;AACnD,EAAA,MAAM,OAAA,GAAU,SAAS,IAAA,EAAK;AAC9B,EAAA,IAAI,CAAC,OAAA,EAAS;AACV,IAAA,OAAO,EAAC;AAAA,EACZ;AACA,EAAA,MAAM,UAAA,GAAa,OAAA,CAAQ,UAAA,CAAW,GAAG,CAAA,GACnC,IAAA,CAAK,KAAA,CAAM,OAAO,CAAA,GAClB,OAAA,CACK,KAAA,CAAM,IAAI,CAAA,CACV,GAAA,CAAI,CAAA,IAAA,KAAQ,IAAA,CAAK,IAAA,EAAM,CAAA,CACvB,MAAA,CAAO,OAAO,CAAA,CACd,GAAA,CAAI,CAAA,IAAA,KAAQ,IAAA,CAAK,KAAA,CAAM,IAAI,CAAC,CAAA;AACvC,EAAA,OAAO,UAAA,CAAW,IAAI,CAAA,KAAA,MAAU;AAAA,IAC5B,GAAG,KAAA;AAAA,IACH,SAAA,EAAW,IAAI,IAAA,CAAK,KAAA,CAAM,SAAS;AAAA,GACvC,CAAE,CAAA;AACN;AAEA,SAAS,wBAAwB,MAAA,EAAQ;AACrC,EAAA,MAAM,QAAA,GAAW,gCAAgC,MAAM,CAAA;AACvD,EAAA,OAAO,IAAA,CAAK,SAAA,CAAU,QAAA,EAAU,IAAA,EAAM,CAAC,CAAA;AAC3C;AAEA,SAAS,mBAAmB,MAAA,EAAQ;AAChC,EAAA,MAAM,UAAA,GAAa,MAAA,CAAO,GAAA,CAAI,CAAA,KAAA,MAAU;AAAA,IACpC,GAAG,KAAA;AAAA,IACH,SAAA,EAAW,KAAA,CAAM,SAAA,CAAU,WAAA;AAAY,GAC3C,CAAE,CAAA;AACF,EAAA,OAAO,IAAA,CAAK,SAAA,CAAU,UAAA,EAAY,IAAA,EAAM,CAAC,CAAA;AAC7C;AC9CA,IAAMC,iCAAgB,IAAI,GAAA,CAAI,CAAC,QAAA,EAAU,QAAQ,CAAC,CAAA;AAElD,eAAsB,oBAAoB,OAAA,EAAS;AAC/C,EAAA,MAAM,MAAA,GAAS,QAAQ,MAAA,IAAU,QAAA;AACjC,EAAA,IAAI,CAACA,cAAAA,CAAc,GAAA,CAAI,MAAM,CAAA,EAAG;AAC5B,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,oBAAA,EAAuB,MAAM,CAAA,oBAAA,EAAuB,CAAC,GAAGA,cAAa,CAAA,CAAE,IAAA,CAAK,IAAI,CAAC,CAAA,CAAE,CAAA;AAAA,EACvG;AACA,EAAA,MAAM,MAAA,GAAS,MAAMC,gBAAAA,CAAgB,OAAA,CAAQ,KAAK,CAAA;AAClD,EAAA,MAAM,UAAU,MAAA,KAAW,QAAA,GAAWC,yBAAwB,MAAM,CAAA,GAAIC,oBAAmB,MAAM,CAAA;AACjG,EAAA,IAAI,QAAQ,MAAA,EAAQ;AAChB,IAAA,MAAMJ,QAAAA,CAAG,SAAA,CAAU,OAAA,CAAQ,MAAA,EAAQ,SAAS,MAAM,CAAA;AAClD,IAAA;AAAA,EACJ;AACA,EAAA,OAAA,CAAQ,MAAA,CAAO,KAAA,CAAM,CAAA,EAAG,OAAO;AAAA,CAAI,CAAA;AACvC;AAEA,eAAeE,iBAAgB,QAAA,EAAU;AACrC,EAAA,MAAM,QAAA,GAAW,MAAMF,QAAAA,CAAG,QAAA,CAAS,UAAU,MAAM,CAAA;AACnD,EAAA,MAAM,OAAA,GAAU,SAAS,IAAA,EAAK;AAC9B,EAAA,IAAI,CAAC,OAAA,EAAS;AACV,IAAA,OAAO,EAAC;AAAA,EACZ;AACA,EAAA,MAAM,UAAA,GAAa,OAAA,CAAQ,UAAA,CAAW,GAAG,CAAA,GACnC,IAAA,CAAK,KAAA,CAAM,OAAO,CAAA,GAClB,OAAA,CACG,KAAA,CAAM,IAAI,CAAA,CACV,GAAA,CAAI,CAAA,IAAA,KAAQ,IAAA,CAAK,IAAA,EAAM,CAAA,CACvB,MAAA,CAAO,OAAO,CAAA,CACd,GAAA,CAAI,CAAA,IAAA,KAAQ,IAAA,CAAK,KAAA,CAAM,IAAI,CAAC,CAAA;AACrC,EAAA,OAAO,UAAA,CAAW,IAAI,CAAA,KAAA,MAAU;AAAA,IAC5B,GAAG,KAAA;AAAA,IACH,SAAA,EAAW,IAAI,IAAA,CAAK,KAAA,CAAM,SAAS;AAAA,GACvC,CAAE,CAAA;AACN;AAEA,SAASG,yBAAwB,MAAA,EAAQ;AACrC,EAAA,MAAM,QAAA,GAAW,yBAAyB,MAAM,CAAA;AAChD,EAAA,OAAO,IAAA,CAAK,SAAA,CAAU,QAAA,EAAU,IAAA,EAAM,CAAC,CAAA;AAC3C;AAEA,SAASC,oBAAmB,MAAA,EAAQ;AAChC,EAAA,MAAM,UAAA,GAAa,MAAA,CAAO,GAAA,CAAI,CAAA,KAAA,MAAU;AAAA,IACpC,GAAG,KAAA;AAAA,IACH,SAAA,EAAW,KAAA,CAAM,SAAA,CAAU,WAAA;AAAY,GAC3C,CAAE,CAAA;AACF,EAAA,OAAO,IAAA,CAAK,SAAA,CAAU,UAAA,EAAY,IAAA,EAAM,CAAC,CAAA;AAC7C;AChCA,eAAsB,WAAW,UAAA,EAA4C;AAC3E,EAAA,MAAM,QAAA,GAAWL,OAAAA,CAAQ,UAAA,IAAc,kBAAkB,CAAA;AACzD,EAAA,MAAM,GAAA,GAAM,MAAMM,QAAAA,CAAS,QAAA,EAAU,MAAM,CAAA;AAC3C,EAAA,MAAM,MAAA,GAAS,IAAA,CAAK,KAAA,CAAM,GAAG,CAAA;AAC7B,EAAA,MAAM,MAAA,GAAS,eAAe,MAAM,CAAA;AACpC,EAAA,OAAO,EAAE,IAAA,EAAM,QAAA,EAAU,MAAA,EAAO;AAClC;AAEO,SAAS,eAAe,KAAA,EAA4B;AACzD,EAAA,IAAI,CAAC,KAAA,IAAS,OAAO,KAAA,KAAU,QAAA,EAAU;AACvC,IAAA,MAAM,IAAI,MAAM,+BAA+B,CAAA;AAAA,EACjD;AACA,EAAA,MAAM,GAAA,GAAM,KAAA;AACZ,EAAA,MAAM,UAAU,GAAA,CAAI,OAAA;AACpB,EAAA,IAAI,CAAC,OAAA,IAAW,OAAO,OAAA,KAAY,QAAA,EAAU;AAC3C,IAAA,MAAM,IAAI,MAAM,yCAAyC,CAAA;AAAA,EAC3D;AACA,EAAA,MAAM,UAAA,GAAa,OAAA;AACnB,EAAA,MAAM,WAAW,UAAA,CAAW,QAAA;AAC5B,EAAA,IAAI,CAAC,KAAA,CAAM,OAAA,CAAQ,QAAQ,KAAK,QAAA,CAAS,MAAA,KAAW,CAAA,IAAK,CAAC,SAAS,KAAA,CAAM,CAAA,IAAA,KAAQ,OAAO,IAAA,KAAS,QAAQ,CAAA,EAAG;AAC1G,IAAA,MAAM,IAAI,MAAM,0DAA0D,CAAA;AAAA,EAC5E;AACA,EAAA,MAAM,SAAS,UAAA,CAAW,MAAA;AAC1B,EAAA,IAAI,MAAA,KAAW,MAAA,IAAa,OAAO,MAAA,KAAW,QAAA,EAAU;AACtD,IAAA,MAAM,IAAI,MAAM,kDAAkD,CAAA;AAAA,EACpE;AACA,EAAA,MAAM,YAAY,UAAA,CAAW,SAAA;AAC7B,EAAA,IAAI,SAAA,KAAc,MAAA,IAAa,OAAO,SAAA,KAAc,SAAA,EAAW;AAC7D,IAAA,MAAM,IAAI,MAAM,sDAAsD,CAAA;AAAA,EACxE;AACA,EAAA,OAAO;AAAA,IACL,OAAA,EAAS;AAAA,MACP,QAAA;AAAA,MACA,MAAA;AAAA,MACA;AAAA;AACF,GACF;AACF;AC3CA,eAAsB,WAAA,CAAY,IAAA,EAAc,OAAA,GAA2B,EAAC,EAAkB;AAC5F,EAAA,MAAM,IAAA,GAAON,OAAAA,CAAQ,OAAA,CAAQ,GAAA,IAAO,IAAI,CAAA;AACxC,EAAA,MAAM,cAAA,CAAe,IAAA,EAAM,OAAA,CAAQ,KAAK,CAAA;AACxC,EAAA,MAAMO,KAAAA,CAAMC,KAAK,IAAA,EAAM,KAAK,GAAG,EAAE,SAAA,EAAW,MAAM,CAAA;AAElD,EAAA,MAAM,aAAA;AAAA,IACJA,IAAAA,CAAK,MAAM,cAAc,CAAA;AAAA,IACzB,IAAA,CAAK,SAAA;AAAA,MACH;AAAA,QACE,IAAA;AAAA,QACA,OAAA,EAAS,OAAA;AAAA,QACT,OAAA,EAAS,IAAA;AAAA,QACT,IAAA,EAAM,QAAA;AAAA,QACN,OAAA,EAAS;AAAA,UACP,KAAA,EAAO,YAAA;AAAA,UACP,KAAA,EAAO,YAAA;AAAA,UACP,IAAA,EAAM,WAAA;AAAA,UACN,SAAA,EAAW;AAAA,SACb;AAAA,QACA,YAAA,EAAc;AAAA,UACZ,+BAAA,EAAiC,QAAA;AAAA,UACjC,mCAAA,EAAqC,QAAA;AAAA,UACrC,6BAAA,EAA+B;AAAA,SACjC;AAAA,QACA,eAAA,EAAiB;AAAA,UACf,aAAA,EAAe,SAAA;AAAA,UACf,UAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA;AAAA,MACA;AAAA,KACF;AAAA,IACA,OAAA,CAAQ;AAAA,GACV;AAEA,EAAA,MAAM,aAAA;AAAA,IACJA,IAAAA,CAAK,MAAM,kBAAkB,CAAA;AAAA,IAC7B,IAAA,CAAK,SAAA;AAAA,MACH;AAAA,QACE,OAAA,EAAS;AAAA,UACP,QAAA,EAAU,CAAC,cAAc,CAAA;AAAA,UACzB,MAAA,EAAQ,eAAA;AAAA,UACR,SAAA,EAAW;AAAA;AACb,OACF;AAAA,MACA,IAAA;AAAA,MACA;AAAA,KACF;AAAA,IACA,OAAA,CAAQ;AAAA,GACV;AAEA,EAAA,MAAM,aAAA;AAAA,IACJA,IAAAA,CAAK,IAAA,EAAM,KAAA,EAAO,SAAS,CAAA;AAAA,IAC3B,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAAA;AAAA,IAcA,OAAA,CAAQ;AAAA,GACV;AAEA,EAAA,MAAM,aAAA;AAAA,IACJA,IAAAA,CAAK,IAAA,EAAM,KAAA,EAAO,SAAS,CAAA;AAAA,IAC3B,CAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA,CAAA;AAAA,IAaA,OAAA,CAAQ;AAAA,GACV;AAEA,EAAA,MAAM,aAAA;AAAA,IACJA,IAAAA,CAAK,MAAM,YAAY,CAAA;AAAA,IACvB,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA,WAAA,EAKS,IAAI,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAAA;AAAA,IAQb,OAAA,CAAQ;AAAA,GACV;AAEA,EAAA,MAAM,aAAA;AAAA,IACJA,IAAAA,CAAK,MAAM,eAAe,CAAA;AAAA,IAC1B,IAAA,CAAK,SAAA;AAAA,MACH;AAAA,QACE,eAAA,EAAiB;AAAA,UACf,MAAA,EAAQ,QAAA;AAAA,UACR,MAAA,EAAQ,QAAA;AAAA,UACR,gBAAA,EAAkB,SAAA;AAAA,UAClB,MAAA,EAAQ,IAAA;AAAA,UACR,GAAA,EAAK,CAAC,QAAA,EAAU,KAAK;AAAA,SACvB;AAAA,QACA,OAAA,EAAS,CAAC,KAAK;AAAA,OACjB;AAAA,MACA,IAAA;AAAA,MACA;AAAA,KACF;AAAA,IACA,OAAA,CAAQ;AAAA,GACV;AAEA,EAAA,OAAA,CAAQ,IAAIC,EAAAA,CAAG,KAAA,CAAM,CAAA,wBAAA,EAA2B,IAAI,EAAE,CAAC,CAAA;AACzD;AAEA,eAAsB,iBAAA,CAAkB,IAAA,EAAc,OAAA,GAAoC,EAAC,EAAkB;AAC3G,EAAA,MAAM,MAAMT,OAAAA,CAAQ,OAAA,CAAQ,KAAI,EAAG,OAAA,CAAQ,OAAO,gBAAgB,CAAA;AAClE,EAAA,MAAMO,KAAAA,CAAM,GAAA,EAAK,EAAE,SAAA,EAAW,MAAM,CAAA;AACpC,EAAA,MAAM,QAAA,GAAW,IAAA,CAAK,OAAA,CAAQ,MAAA,EAAQ,EAAE,CAAA;AACxC,EAAA,MAAM,OAAA,GAAUC,IAAAA,CAAK,GAAA,EAAK,CAAA,EAAG,QAAQ,CAAA,IAAA,CAAM,CAAA;AAC3C,EAAA,MAAM,MAAA,GAASA,IAAAA,CAAK,GAAA,EAAK,CAAA,EAAG,QAAQ,CAAA,GAAA,CAAK,CAAA;AAEzC,EAAA,MAAM,aAAA;AAAA,IACJ,OAAA;AAAA,IACA,CAAA;AAAA,kBAAA,EACgB,QAAQ,CAAA;AAAA,QAAA,EAClB,QAAQ,CAAA;AAAA;AAAA;AAAA;;AAAA;AAAA,GAAA,EAMb,QAAQ,CAAA;AAAA;AAAA;AAAA;AAAA,CAAA;AAAA,IAKT,OAAA,CAAQ;AAAA,GACV;AAEA,EAAA,MAAM,aAAA;AAAA,IACJ,MAAA;AAAA,IACA,CAAA;AAAA,wBAAA,EACsB,QAAQ,CAAA;;AAAA,aAAA,EAEnB,QAAQ,CAAA;AAAA,SAAA,EACZ,QAAQ,CAAA;AAAA;AAAA;AAAA,CAAA;AAAA,IAIf,OAAA,CAAQ;AAAA,GACV;AAEA,EAAA,OAAA,CAAQ,GAAA,CAAIC,GAAG,KAAA,CAAM,CAAA,qBAAA,EAAwB,QAAQ,CAAA,IAAA,EAAO,GAAG,EAAE,CAAC,CAAA;AACpE;AAEA,eAAe,cAAA,CAAe,QAAgB,KAAA,EAAgC;AAC5E,EAAA,IAAI;AACF,IAAA,MAAM,KAAA,GAAQ,MAAM,IAAA,CAAK,MAAM,CAAA;AAC/B,IAAA,IAAI,CAAC,KAAA,CAAM,WAAA,EAAY,EAAG;AACxB,MAAA,MAAM,IAAI,KAAA,CAAM,CAAA,EAAG,MAAM,CAAA,+BAAA,CAAiC,CAAA;AAAA,IAC5D;AACA,IAAA,MAAM,OAAA,GAAU,MAAM,OAAA,CAAQ,MAAM,CAAA;AACpC,IAAA,IAAI,OAAA,CAAQ,MAAA,GAAS,CAAA,IAAK,CAAC,KAAA,EAAO;AAChC,MAAA,MAAM,IAAI,KAAA,CAAM,CAAA,EAAG,MAAM,CAAA,wCAAA,CAA0C,CAAA;AAAA,IACrE;AAAA,EACF,SAAS,KAAA,EAAO;AACd,IAAA,MAAM,OAAQ,KAAA,CAA4B,IAAA;AAC1C,IAAA,IAAI,SAAS,QAAA,EAAU;AACrB,MAAA,MAAMF,KAAAA,CAAM,MAAA,EAAQ,EAAE,SAAA,EAAW,MAAM,CAAA;AACvC,MAAA;AAAA,IACF;AACA,IAAA,IAAI,KAAA,EAAO;AACT,MAAA,MAAMA,KAAAA,CAAM,MAAA,EAAQ,EAAE,SAAA,EAAW,MAAM,CAAA;AACvC,MAAA;AAAA,IACF;AACA,IAAA,MAAM,KAAA;AAAA,EACR;AACF;AAEA,eAAe,aAAA,CAAc,IAAA,EAAc,QAAA,EAAkB,KAAA,EAAgC;AAC3F,EAAA,IAAI,CAAC,KAAA,EAAO;AACV,IAAA,IAAI;AACF,MAAA,MAAM,KAAK,IAAI,CAAA;AACf,MAAA,MAAM,IAAI,KAAA,CAAM,CAAA,EAAG,IAAI,CAAA,0CAAA,CAA4C,CAAA;AAAA,IACrE,SAAS,KAAA,EAAO;AACd,MAAA,MAAM,OAAQ,KAAA,CAA4B,IAAA;AAC1C,MAAA,IAAI,SAAS,QAAA,EAAU;AACrB,QAAA,MAAM,KAAA;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACA,EAAA,MAAMG,SAAAA,CAAU,IAAA,EAAM,QAAA,EAAU,MAAM,CAAA;AACxC;AClNA,IAAM,gBAAA,GAAmB,CAAC,yBAAA,EAA2B,yBAAyB,CAAA;AAE9E,eAAsB,QAAA,CAAS,OAAA,GAA8B,EAAC,EAAkB;AAC9E,EAAA,MAAM,QAAA,GAAW,OAAA,CAAQ,QAAA,EAAU,MAAA,GAAS,QAAQ,QAAA,GAAW,gBAAA;AAC/D,EAAA,MAAM,QAAQ,MAAMC,EAAAA,CAAG,UAAU,EAAE,QAAA,EAAU,MAAM,CAAA;AACnD,EAAA,IAAI,CAAC,MAAM,MAAA,EAAQ;AACjB,IAAA,OAAA,CAAQ,GAAA,CAAIF,EAAAA,CAAG,MAAA,CAAO,sBAAsB,CAAC,CAAA;AAC7C,IAAA;AAAA,EACF;AACA,EAAA,MAAM,YAAY,KAAK,CAAA;AACzB;AAEA,SAAS,YAAY,KAAA,EAAgC;AACnD,EAAA,OAAO,IAAI,OAAA,CAAQ,CAACT,QAAAA,EAAS,MAAA,KAAW;AACtC,IAAA,MAAM,KAAA,GAAQ,KAAA,CAAM,OAAA,CAAQ,QAAA,EAAU,CAAC,QAAA,EAAU,GAAG,KAAK,CAAA,EAAG,EAAE,KAAA,EAAO,SAAA,EAAW,CAAA;AAChF,IAAA,KAAA,CAAM,EAAA,CAAG,QAAQ,CAAA,IAAA,KAAQ;AACvB,MAAA,IAAI,SAAS,CAAA,EAAG;AACd,QAAAA,QAAAA,EAAQ;AACR,QAAA;AAAA,MACF;AACA,MAAA,MAAA,CAAO,IAAI,MAAM,CAAA,0BAAA,EAA6B,MAAA,CAAO,QAAQ,SAAS,CAAC,GAAG,CAAC,CAAA;AAAA,IAC7E,CAAC,CAAA;AACD,IAAA,KAAA,CAAM,EAAA,CAAG,SAAS,CAAA,KAAA,KAAS;AACzB,MAAA,MAAA,CAAO,KAAK,CAAA;AAAA,IACd,CAAC,CAAA;AAAA,EACH,CAAC,CAAA;AACH;;;ACzBA,IAAM,OAAA,GAAU,IAAI,OAAA,EAAQ;AAE5B,OAAA,CACG,KAAK,MAAM,CAAA,CACX,YAAY,yBAAyB,CAAA,CACrC,QAAQ,OAAO,CAAA;AAElB,OAAA,CACG,OAAA,CAAQ,SAAS,CAAA,CACjB,QAAA,CAAS,eAAA,EAAiB,8BAA8B,CAAA,CACxD,MAAA,CAAO,qBAAA,EAAuB,kBAAkB,CAAA,CAChD,MAAA,CAAO,aAAA,EAAe,8BAAA,EAAgC,KAAK,CAAA,CAC3D,MAAA,CAAO,cAAA,EAAgB,wCAAA,EAA0C,KAAK,CAAA,CACtE,MAAA,CAAO,qBAAA,EAAuB,8BAA8B,CAAA,CAC5D,MAAA,CAAO,OAAO,QAAA,EAAoB,OAAA,KAAwF;AACzH,EAAA,IAAI,QAAQ,MAAA,EAAQ;AAClB,IAAA,MAAM,MAAA,GAAS,MAAM,UAAA,CAAW,OAAA,CAAQ,MAAM,CAAA;AAC9C,IAAA,MAAM,EAAE,OAAA,EAAQ,GAAI,MAAA,CAAO,MAAA;AAC3B,IAAA,OAAA,CAAQ,WAAW,OAAA,CAAQ,MAAA;AAC3B,IAAA,OAAA,CAAQ,cAAc,OAAA,CAAQ,SAAA;AAAA,EAChC;AACA,EAAA,MAAM,WAAW,QAAA,EAAU;AAAA,IACzB,QAAQ,OAAA,CAAQ,MAAA;AAAA,IAChB,OAAO,OAAA,CAAQ,KAAA;AAAA,IACf,WAAW,OAAA,CAAQ;AAAA,GACpB,CAAA;AACH,CAAC,CAAA;AAEH,OAAA,CACG,OAAA,CAAQ,OAAO,CAAA,CACf,WAAA,CAAY,2CAA2C,CAAA,CACvD,MAAA,CAAO,qBAAA,EAAuB,kBAAkB,CAAA,CAChD,MAAA,CAAO,OAAO,OAAA,KAAiC;AAC9C,EAAA,MAAM,MAAA,GAAS,MAAM,UAAA,CAAW,OAAA,CAAQ,MAAM,CAAA;AAC9C,EAAA,MAAM,EAAE,OAAA,EAAQ,GAAI,MAAA,CAAO,MAAA;AAC3B,EAAA,MAAM,UAAA,CAAW,QAAQ,QAAA,EAAU;AAAA,IACjC,QAAQ,OAAA,CAAQ,MAAA;AAAA,IAChB,WAAW,OAAA,CAAQ;AAAA,GACpB,CAAA;AACH,CAAC,CAAA;AAEH,OAAA,CACG,OAAA,CAAQ,OAAO,CAAA,CACf,WAAA,CAAY,uDAAuD,CAAA,CACnE,MAAA,CAAO,qBAAA,EAAuB,kBAAkB,CAAA,CAChD,MAAA,CAAO,OAAO,OAAA,KAAiC;AAC9C,EAAA,MAAM,MAAA,GAAS,MAAM,UAAA,CAAW,OAAA,CAAQ,MAAM,CAAA;AAC9C,EAAA,MAAM,EAAE,OAAA,EAAQ,GAAI,MAAA,CAAO,MAAA;AAC3B,EAAA,MAAM,UAAA,CAAW,QAAQ,QAAA,EAAU;AAAA,IACjC,QAAQ,OAAA,CAAQ,MAAA;AAAA,IAChB,WAAW,OAAA,CAAQ,SAAA;AAAA,IACnB,KAAA,EAAO;AAAA,GACR,CAAA;AACH,CAAC,CAAA;AAEH,IAAM,SAAS,OAAA,CAAQ,OAAA,CAAQ,QAAQ,CAAA,CAAE,YAAY,mCAAmC,CAAA;AAExF,MAAA,CACG,OAAA,CAAQ,KAAK,CAAA,CACb,QAAA,CAAS,UAAU,iBAAiB,CAAA,CACpC,MAAA,CAAO,SAAA,EAAW,4BAA4B,KAAK,CAAA,CACnD,MAAA,CAAO,OAAO,MAAc,OAAA,KAAiC;AAC5D,EAAA,MAAM,WAAA,CAAY,MAAM,EAAE,KAAA,EAAO,QAAQ,OAAA,CAAQ,KAAK,GAAG,CAAA;AAC3D,CAAC,CAAA;AAEH,MAAA,CACG,OAAA,CAAQ,WAAW,CAAA,CACnB,QAAA,CAAS,UAAU,6BAA6B,CAAA,CAChD,OAAO,iBAAA,EAAmB,kBAAA,EAAoB,gBAAgB,CAAA,CAC9D,MAAA,CAAO,WAAW,0BAAA,EAA4B,KAAK,EACnD,MAAA,CAAO,OAAO,MAAc,OAAA,KAA+C;AAC1E,EAAA,MAAM,kBAAkB,IAAA,EAAM;AAAA,IAC5B,KAAK,OAAA,CAAQ,GAAA;AAAA,IACb,KAAA,EAAO,OAAA,CAAQ,OAAA,CAAQ,KAAK;AAAA,GAC7B,CAAA;AACH,CAAC,CAAA;AAEH,OAAA,CACG,OAAA,CAAQ,mBAAmB,CAAA,CAC3B,WAAA,CAAY,0EAA0E,CAAA,CACtF,cAAA,CAAe,sBAAsB,mDAAmD,CAAA,CACxF,OAAO,qBAAA,EAAuB,6CAA6C,EAC3E,MAAA,CAAO,uBAAA,EAAyB,kCAAkC,QAAQ,CAAA,CAC1E,MAAA,CAAO,OAAO,OAAA,KAA8E;AAC3F,EAAA,MAAM,mBAAA,CAAoB;AAAA,IACxB,OAAO,OAAA,CAAQ,KAAA;AAAA,IACf,QAAQ,OAAA,CAAQ,MAAA;AAAA,IAChB,QAAQ,OAAA,CAAQ;AAAA,GACjB,CAAA;AACH,CAAC,CAAA;AAEH,OAAA,CACG,OAAA,CAAQ,kBAAkB,CAAA,CAC1B,WAAA,CAAY,kFAAkF,CAAA,CAC9F,cAAA,CAAe,sBAAsB,kDAAkD,CAAA,CACvF,OAAO,qBAAA,EAAuB,6CAA6C,EAC3E,MAAA,CAAO,uBAAA,EAAyB,kCAAkC,QAAQ,CAAA,CAC1E,MAAA,CAAO,OAAO,OAAA,KAA8E;AAC3F,EAAA,MAAM,kBAAA,CAAmB;AAAA,IACvB,OAAO,OAAA,CAAQ,KAAA;AAAA,IACf,QAAQ,OAAA,CAAQ,MAAA;AAAA,IAChB,QAAQ,OAAA,CAAQ;AAAA,GACjB,CAAA;AACH,CAAC,CAAA;AAEH,OAAA,CACG,OAAA,CAAQ,MAAM,CAAA,CACd,WAAA,CAAY,+CAA+C,CAAA,CAC3D,MAAA,CAAO,6BAAA,EAA+B,oBAAoB,CAAA,CAC1D,MAAA,CAAO,OAAO,OAAA,KAAoC;AACjD,EAAA,MAAM,QAAA,CAAS,EAAE,QAAA,EAAU,OAAA,CAAQ,SAAS,CAAA;AAC9C,CAAC,CAAA;AAEH,KAAK,OAAA,CAAQ,UAAA,CAAW,OAAA,CAAQ,IAAI,CAAA","file":"index.js","sourcesContent":["import { readFile, writeFile, mkdir, rm } from 'node:fs/promises';\nimport { dirname, join, relative, resolve, basename } from 'node:path';\nimport chokidar from 'chokidar';\nimport fg from 'fast-glob';\nimport pc from 'picocolors';\nimport { GenMapping, addMapping, setSourceContent, toEncodedMap } from '@jridgewell/gen-mapping';\nimport { compileTemplate } from '../compiler/compileTemplate.js';\nimport type { CompiledTemplate, TemplateCompileOptions } from '../compiler/types.js';\nimport { createStyleScopeId, scopeStyles } from '../shared/styleScope.js';\n\nexport interface CompileCommandOptions extends TemplateCompileOptions {\n outDir?: string;\n watch?: boolean;\n sourceMap?: boolean;\n}\n\nexport async function runCompile(pattern: string | string[], options: CompileCommandOptions = {}) {\n const compiler = new ComponentFileCompiler(options);\n const files = await compiler.compileInitial(pattern);\n if (!files.length && !options.watch) {\n console.warn(pc.yellow('No .cex files found.'));\n return;\n }\n if (options.watch) {\n await compiler.watch(pattern);\n }\n}\n\nclass ComponentFileCompiler {\n constructor(private readonly options: CompileCommandOptions) {}\n\n async compileInitial(pattern: string | string[]) {\n const entries = Array.isArray(pattern) ? pattern : [pattern];\n const files = await fg(entries, { absolute: true });\n await Promise.all(files.map(file => this.compileFile(file)));\n return files;\n }\n\n async watch(pattern: string | string[]) {\n const entries = Array.isArray(pattern) ? pattern : [pattern];\n const watcher = chokidar.watch(entries, { ignoreInitial: true });\n console.log(pc.cyan('Watching .cex files for changes...'));\n\n const recompile = async (file: string) => {\n await this.compileFile(file);\n };\n\n watcher.on('add', file => {\n void recompile(file);\n });\n watcher.on('change', file => {\n void recompile(file);\n });\n watcher.on('unlink', file => {\n void this.removeOutput(file);\n console.log(pc.dim(`removed ${relative(process.cwd(), file)}`));\n });\n\n await new Promise<void>((resolve, reject) => {\n watcher.on('error', error => {\n const normalized = error instanceof Error ? error : new Error(String(error));\n console.error(pc.red(`Watcher error: ${normalized.message}`));\n reject(normalized);\n });\n const close = () => {\n watcher\n .close()\n .then(resolve)\n .catch((err: unknown) => {\n const normalized = err instanceof Error ? err : new Error(String(err));\n reject(normalized);\n });\n };\n process.once('SIGINT', close);\n process.once('SIGTERM', close);\n });\n }\n\n private async compileFile(file: string) {\n try {\n const source = await readFile(file, 'utf8');\n const { template, styles } = parseComponentFile(source);\n const scopeId = styles.length ? createStyleScopeId(`${file}:${styles.join('|')}`) : undefined;\n const compiled = compileTemplate(template, {\n ...this.options,\n name: this.options.name ?? deriveName(file),\n scopeId,\n });\n if (scopeId) {\n compiled.scopeId = scopeId;\n }\n if (styles.length) {\n compiled.styles = scopeId ? scopeStyles(styles, scopeId) : styles;\n }\n await this.writeOutput(file, compiled, source);\n this.logSuccess(file);\n } catch (error) {\n this.logError(file, error);\n }\n }\n\n private async writeOutput(file: string, compiled: CompiledTemplate, source: string) {\n const outFile = this.resolveOutFile(file);\n await mkdir(dirname(outFile), { recursive: true });\n const emission = emitModule(compiled, {\n outFile,\n source,\n sourcePath: file,\n withSourceMap: Boolean(this.options.sourceMap),\n });\n await writeFile(outFile, emission.code, 'utf8');\n if (emission.map) {\n await writeFile(`${outFile}.map`, JSON.stringify(emission.map, null, 2), 'utf8');\n }\n }\n\n private async removeOutput(file: string) {\n const outFile = this.resolveOutFile(file);\n await rm(outFile, { force: true });\n if (this.options.sourceMap) {\n await rm(`${outFile}.map`, { force: true });\n }\n }\n\n private resolveOutFile(file: string) {\n const outDir = this.options.outDir ? resolve(this.options.outDir) : dirname(file);\n return join(outDir, `${deriveName(file)}.cex.ts`);\n }\n\n private logSuccess(file: string) {\n const outFile = this.resolveOutFile(file);\n console.log(pc.green(`compiled ${relative(process.cwd(), file)} -> ${relative(process.cwd(), outFile)}`));\n }\n\n private logError(file: string, error: unknown) {\n const message = error instanceof Error ? error.message : String(error);\n console.error(pc.red(`failed to compile ${relative(process.cwd(), file)}: ${message}`));\n }\n}\n\nfunction parseComponentFile(source: string) {\n const templatePattern = /<template>([\\s\\S]*?)<\\/template>/i;\n const templateMatch = templatePattern.exec(source);\n if (!templateMatch) {\n throw new Error('Missing <template> block.');\n }\n const styleMatches = Array.from(source.matchAll(/<style[^>]*>([\\s\\S]*?)<\\/style>/gi));\n const styles = styleMatches.map(match => match[1].trim()).filter(Boolean);\n return { template: templateMatch[1], styles };\n}\n\ninterface EmitOptions {\n outFile: string;\n source: string;\n sourcePath: string;\n withSourceMap: boolean;\n}\n\nfunction emitModule(compiled: CompiledTemplate, options: EmitOptions) {\n const payload = JSON.stringify(compiled, null, 2);\n let code = `import type { CompiledTemplate } from '@clusterenvision/ui-framework/compiler';\nexport const template = ${payload} satisfies CompiledTemplate;\nexport default template;\n`;\n let map: object | undefined;\n if (options.withSourceMap) {\n const relSource = relative(dirname(options.outFile), options.sourcePath).replace(/\\\\/g, '/');\n const mapping = new GenMapping({ file: basename(options.outFile) });\n setSourceContent(mapping, relSource, options.source);\n addMapping(mapping, {\n source: relSource,\n original: { line: 1, column: 0 },\n generated: { line: 1, column: 0 },\n });\n map = toEncodedMap(mapping);\n code += `//# sourceMappingURL=${basename(options.outFile)}.map\\n`;\n }\n return { code, map };\n}\n\nfunction deriveName(file: string) {\n const base = file.split('/').pop() ?? 'component';\n return base.replace(/\\.[^.]+$/, '');\n}\n","import { promises as fs } from 'node:fs';\n\nimport { buildRuntimeChromeTraceDocument } from '../runtime/timeline.js';\n\nconst VALID_FORMATS = new Set(['chrome', 'events']);\n\nexport async function runRuntimeTimeline(options) {\n const format = options.format ?? 'chrome';\n if (!VALID_FORMATS.has(format)) {\n throw new Error(`Unsupported format '${format}'. Expected one of: ${[...VALID_FORMATS].join(', ')}`);\n }\n const events = await readTraceEvents(options.input);\n const payload = format === 'chrome' ? buildChromeTracePayload(events) : buildEventsPayload(events);\n if (options.output) {\n await fs.writeFile(options.output, payload, 'utf8');\n return;\n }\n process.stdout.write(`${payload}\\n`);\n}\n\nasync function readTraceEvents(filePath) {\n const contents = await fs.readFile(filePath, 'utf8');\n const trimmed = contents.trim();\n if (!trimmed) {\n return [];\n }\n const serialized = trimmed.startsWith('[')\n ? JSON.parse(trimmed)\n : trimmed\n .split('\\n')\n .map(line => line.trim())\n .filter(Boolean)\n .map(line => JSON.parse(line));\n return serialized.map(event => ({\n ...event,\n timestamp: new Date(event.timestamp),\n }));\n}\n\nfunction buildChromeTracePayload(events) {\n const document = buildRuntimeChromeTraceDocument(events);\n return JSON.stringify(document, null, 2);\n}\n\nfunction buildEventsPayload(events) {\n const serialized = events.map(event => ({\n ...event,\n timestamp: event.timestamp.toISOString(),\n }));\n return JSON.stringify(serialized, null, 2);\n}\n","import { promises as fs } from 'node:fs';\n\nimport { buildChromeTraceDocument } from '../runtime/workflow/timeline.js';\n\nconst VALID_FORMATS = new Set(['chrome', 'events']);\n\nexport async function runWorkflowTimeline(options) {\n const format = options.format ?? 'chrome';\n if (!VALID_FORMATS.has(format)) {\n throw new Error(`Unsupported format '${format}'. Expected one of: ${[...VALID_FORMATS].join(', ')}`);\n }\n const events = await readTraceEvents(options.input);\n const payload = format === 'chrome' ? buildChromeTracePayload(events) : buildEventsPayload(events);\n if (options.output) {\n await fs.writeFile(options.output, payload, 'utf8');\n return;\n }\n process.stdout.write(`${payload}\\n`);\n}\n\nasync function readTraceEvents(filePath) {\n const contents = await fs.readFile(filePath, 'utf8');\n const trimmed = contents.trim();\n if (!trimmed) {\n return [];\n }\n const serialized = trimmed.startsWith('[')\n ? JSON.parse(trimmed)\n : trimmed\n .split('\\n')\n .map(line => line.trim())\n .filter(Boolean)\n .map(line => JSON.parse(line));\n return serialized.map(event => ({\n ...event,\n timestamp: new Date(event.timestamp),\n }));\n}\n\nfunction buildChromeTracePayload(events) {\n const document = buildChromeTraceDocument(events);\n return JSON.stringify(document, null, 2);\n}\n\nfunction buildEventsPayload(events) {\n const serialized = events.map(event => ({\n ...event,\n timestamp: event.timestamp.toISOString(),\n }));\n return JSON.stringify(serialized, null, 2);\n}\n","import { readFile } from 'node:fs/promises';\nimport { resolve } from 'node:path';\n\nexport interface CeuiCompileConfig {\n patterns: string[];\n outDir?: string;\n sourceMap?: boolean;\n}\n\nexport interface CeuiConfig {\n compile: CeuiCompileConfig;\n}\n\nexport interface LoadedConfig {\n path: string;\n config: CeuiConfig;\n}\n\nexport async function loadConfig(configPath?: string): Promise<LoadedConfig> {\n const resolved = resolve(configPath ?? 'ceui.config.json');\n const raw = await readFile(resolved, 'utf8');\n const parsed = JSON.parse(raw) as unknown;\n const config = validateConfig(parsed);\n return { path: resolved, config };\n}\n\nexport function validateConfig(input: unknown): CeuiConfig {\n if (!input || typeof input !== 'object') {\n throw new Error('Config must be a JSON object.');\n }\n const obj = input as Record<string, unknown>;\n const compile = obj.compile;\n if (!compile || typeof compile !== 'object') {\n throw new Error('Config must include a \"compile\" object.');\n }\n const compileObj = compile as Record<string, unknown>;\n const patterns = compileObj.patterns;\n if (!Array.isArray(patterns) || patterns.length === 0 || !patterns.every(item => typeof item === 'string')) {\n throw new Error('\"compile.patterns\" must be a non-empty array of strings.');\n }\n const outDir = compileObj.outDir;\n if (outDir !== undefined && typeof outDir !== 'string') {\n throw new Error('\"compile.outDir\" must be a string when provided.');\n }\n const sourceMap = compileObj.sourceMap;\n if (sourceMap !== undefined && typeof sourceMap !== 'boolean') {\n throw new Error('\"compile.sourceMap\" must be a boolean when provided.');\n }\n return {\n compile: {\n patterns,\n outDir,\n sourceMap,\n },\n } satisfies CeuiConfig;\n}\n","import { mkdir, readdir, writeFile, stat } from 'node:fs/promises';\nimport { resolve, join } from 'node:path';\nimport pc from 'picocolors';\n\ninterface ScaffoldOptions {\n force?: boolean;\n}\n\ninterface ComponentScaffoldOptions extends ScaffoldOptions {\n dir?: string;\n}\n\nexport async function scaffoldApp(name: string, options: ScaffoldOptions = {}): Promise<void> {\n const root = resolve(process.cwd(), name);\n await ensureEmptyDir(root, options.force);\n await mkdir(join(root, 'src'), { recursive: true });\n\n await writeFileSafe(\n join(root, 'package.json'),\n JSON.stringify(\n {\n name,\n version: '0.1.0',\n private: true,\n type: 'module',\n scripts: {\n build: 'ceui build',\n watch: 'ceui watch',\n test: 'ceui test',\n typecheck: 'tsc --noEmit',\n },\n dependencies: {\n '@clusterenvision/ui-framework': '^1.0.0',\n '@clusterenvision/ui-webcomponents': '^1.2.1',\n '@clusterenvision/ce-ui-scss': '^1.94.2',\n },\n devDependencies: {\n '@types/node': '^22.7.4',\n typescript: '^5.9.3',\n },\n },\n null,\n 2,\n ),\n options.force,\n );\n\n await writeFileSafe(\n join(root, 'ceui.config.json'),\n JSON.stringify(\n {\n compile: {\n patterns: ['src/**/*.cex'],\n outDir: 'src/generated',\n sourceMap: true,\n },\n },\n null,\n 2,\n ),\n options.force,\n );\n\n await writeFileSafe(\n join(root, 'src', 'app.cex'),\n `<template>\n <main class=\"app\">\n <h1>CE UI App</h1>\n <p>Welcome to your new workspace.</p>\n </main>\n</template>\n\n<style>\n .app {\n font-family: \"Space Grotesk\", sans-serif;\n padding: 48px;\n }\n</style>\n`,\n options.force,\n );\n\n await writeFileSafe(\n join(root, 'src', 'main.ts'),\n `import { defineComponent, renderComponent } from '@clusterenvision/ui-framework';\nimport template from './generated/app.cex.js';\n\nconst App = defineComponent({\n name: 'App',\n template,\n});\n\nconst target = document.getElementById('app');\nif (target) {\n renderComponent(App, { target });\n}\n`,\n options.force,\n );\n\n await writeFileSafe(\n join(root, 'index.html'),\n `<!doctype html>\n<html lang=\"en\">\n <head>\n <meta charset=\"utf-8\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" />\n <title>${name}</title>\n </head>\n <body>\n <div id=\"app\"></div>\n <script type=\"module\" src=\"/src/main.ts\"></script>\n </body>\n</html>\n`,\n options.force,\n );\n\n await writeFileSafe(\n join(root, 'tsconfig.json'),\n JSON.stringify(\n {\n compilerOptions: {\n target: 'ES2022',\n module: 'ESNext',\n moduleResolution: 'Bundler',\n strict: true,\n lib: ['ES2022', 'DOM'],\n },\n include: ['src'],\n },\n null,\n 2,\n ),\n options.force,\n );\n\n console.log(pc.green(`Scaffolded CE UI app at ${root}`));\n}\n\nexport async function scaffoldComponent(name: string, options: ComponentScaffoldOptions = {}): Promise<void> {\n const dir = resolve(process.cwd(), options.dir ?? 'src/components');\n await mkdir(dir, { recursive: true });\n const fileBase = name.replace(/\\s+/g, '');\n const cexPath = join(dir, `${fileBase}.cex`);\n const tsPath = join(dir, `${fileBase}.ts`);\n\n await writeFileSafe(\n cexPath,\n `<template>\n <section class=\"${fileBase}\">\n <h2>${fileBase}</h2>\n <slot></slot>\n </section>\n</template>\n\n<style>\n .${fileBase} {\n padding: 16px;\n }\n</style>\n`,\n options.force,\n );\n\n await writeFileSafe(\n tsPath,\n `import { defineComponent } from '@clusterenvision/ui-framework';\nimport template from './${fileBase}.cex.js';\n\nexport const ${fileBase} = defineComponent({\n name: '${fileBase}',\n template,\n});\n`,\n options.force,\n );\n\n console.log(pc.green(`Scaffolded component ${fileBase} in ${dir}`));\n}\n\nasync function ensureEmptyDir(target: string, force?: boolean): Promise<void> {\n try {\n const stats = await stat(target);\n if (!stats.isDirectory()) {\n throw new Error(`${target} exists and is not a directory.`);\n }\n const entries = await readdir(target);\n if (entries.length > 0 && !force) {\n throw new Error(`${target} is not empty. Use --force to overwrite.`);\n }\n } catch (error) {\n const code = (error as { code?: string }).code;\n if (code === 'ENOENT') {\n await mkdir(target, { recursive: true });\n return;\n }\n if (force) {\n await mkdir(target, { recursive: true });\n return;\n }\n throw error;\n }\n}\n\nasync function writeFileSafe(path: string, contents: string, force?: boolean): Promise<void> {\n if (!force) {\n try {\n await stat(path);\n throw new Error(`${path} already exists. Use --force to overwrite.`);\n } catch (error) {\n const code = (error as { code?: string }).code;\n if (code !== 'ENOENT') {\n throw error;\n }\n }\n }\n await writeFile(path, contents, 'utf8');\n}\n","import { spawn } from 'node:child_process';\nimport fg from 'fast-glob';\nimport pc from 'picocolors';\n\nexport interface TestCommandOptions {\n patterns?: string[];\n}\n\nconst DEFAULT_PATTERNS = ['tests/**/*.spec.{js,ts}', 'tests/**/*.test.{js,ts}'];\n\nexport async function runTests(options: TestCommandOptions = {}): Promise<void> {\n const patterns = options.patterns?.length ? options.patterns : DEFAULT_PATTERNS;\n const files = await fg(patterns, { absolute: true });\n if (!files.length) {\n console.log(pc.yellow('No test files found.'));\n return;\n }\n await runNodeTest(files);\n}\n\nfunction runNodeTest(files: string[]): Promise<void> {\n return new Promise((resolve, reject) => {\n const child = spawn(process.execPath, ['--test', ...files], { stdio: 'inherit' });\n child.on('exit', code => {\n if (code === 0) {\n resolve();\n return;\n }\n reject(new Error(`Test run failed with code ${String(code ?? 'unknown')}.`));\n });\n child.on('error', error => {\n reject(error);\n });\n });\n}\n","#!/usr/bin/env node\nimport { Command } from 'commander';\nimport { runCompile } from './compile.js';\nimport { runRuntimeTimeline } from './runtime-timeline.js';\nimport { runWorkflowTimeline } from './workflow-timeline.js';\nimport { loadConfig } from './config.js';\nimport { scaffoldApp, scaffoldComponent } from './scaffold.js';\nimport { runTests } from './test.js';\n\nconst program = new Command();\n\nprogram\n .name('ceui')\n .description('CE UI framework tooling')\n .version('0.1.0');\n\nprogram\n .command('compile')\n .argument('<patterns...>', 'Glob patterns for .cex files')\n .option('-o, --out-dir <dir>', 'Output directory')\n .option('-w, --watch', 'Recompile when inputs change', false)\n .option('--source-map', 'Emit source maps for generated modules', false)\n .option('-c, --config <file>', 'Use config file for defaults')\n .action(async (patterns: string[], options: { outDir?: string; watch?: boolean; sourceMap?: boolean; config?: string }) => {\n if (options.config) {\n const loaded = await loadConfig(options.config);\n const { compile } = loaded.config;\n options.outDir ??= compile.outDir;\n options.sourceMap ??= compile.sourceMap;\n }\n await runCompile(patterns, {\n outDir: options.outDir,\n watch: options.watch,\n sourceMap: options.sourceMap,\n });\n });\n\nprogram\n .command('build')\n .description('Compile .cex files using ceui.config.json')\n .option('-c, --config <file>', 'Config file path')\n .action(async (options: { config?: string }) => {\n const loaded = await loadConfig(options.config);\n const { compile } = loaded.config;\n await runCompile(compile.patterns, {\n outDir: compile.outDir,\n sourceMap: compile.sourceMap,\n });\n });\n\nprogram\n .command('watch')\n .description('Watch and recompile .cex files using ceui.config.json')\n .option('-c, --config <file>', 'Config file path')\n .action(async (options: { config?: string }) => {\n const loaded = await loadConfig(options.config);\n const { compile } = loaded.config;\n await runCompile(compile.patterns, {\n outDir: compile.outDir,\n sourceMap: compile.sourceMap,\n watch: true,\n });\n });\n\nconst create = program.command('create').description('Scaffold CE UI apps or components');\n\ncreate\n .command('app')\n .argument('<name>', 'App folder name')\n .option('--force', 'Overwrite existing files', false)\n .action(async (name: string, options: { force?: boolean }) => {\n await scaffoldApp(name, { force: Boolean(options.force) });\n });\n\ncreate\n .command('component')\n .argument('<name>', 'Component name (PascalCase)')\n .option('-d, --dir <dir>', 'Output directory', 'src/components')\n .option('--force', 'Overwrite existing files', false)\n .action(async (name: string, options: { dir?: string; force?: boolean }) => {\n await scaffoldComponent(name, {\n dir: options.dir,\n force: Boolean(options.force),\n });\n });\n\nprogram\n .command('workflow:timeline')\n .description('Convert workflow trace JSON/JSONL into Chrome trace format or raw events')\n .requiredOption('-i, --input <file>', 'Path to workflow trace file (JSONL or JSON array)')\n .option('-o, --output <file>', 'Output file (writes to stdout when omitted)')\n .option('-f, --format <format>', 'Output format: chrome | events', 'chrome')\n .action(async (options: { input: string; output?: string; format?: 'chrome' | 'events' }) => {\n await runWorkflowTimeline({\n input: options.input,\n output: options.output,\n format: options.format,\n });\n });\n\nprogram\n .command('runtime:timeline')\n .description('Convert renderer/runtime trace JSON/JSONL into Chrome trace format or raw events')\n .requiredOption('-i, --input <file>', 'Path to runtime trace file (JSONL or JSON array)')\n .option('-o, --output <file>', 'Output file (writes to stdout when omitted)')\n .option('-f, --format <format>', 'Output format: chrome | events', 'chrome')\n .action(async (options: { input: string; output?: string; format?: 'chrome' | 'events' }) => {\n await runRuntimeTimeline({\n input: options.input,\n output: options.output,\n format: options.format,\n });\n });\n\nprogram\n .command('test')\n .description('Run Node.js test runner with default patterns')\n .option('-p, --pattern <patterns...>', 'Test file patterns')\n .action(async (options: { pattern?: string[] }) => {\n await runTests({ patterns: options.pattern });\n });\n\nvoid program.parseAsync(process.argv);\n"]}
package/dist/index.cjs CHANGED
@@ -2,10 +2,10 @@
2
2
 
3
3
  var chunkFNXIYAET_cjs = require('./chunk-FNXIYAET.cjs');
4
4
  var chunkQPAAV32J_cjs = require('./chunk-QPAAV32J.cjs');
5
- var chunk6BYWFGQY_cjs = require('./chunk-6BYWFGQY.cjs');
6
- var chunkCXTAUXLG_cjs = require('./chunk-CXTAUXLG.cjs');
7
- var chunkW3LNNY3U_cjs = require('./chunk-W3LNNY3U.cjs');
8
- require('./chunk-PVZVFICK.cjs');
5
+ var chunkSZL56BNL_cjs = require('./chunk-SZL56BNL.cjs');
6
+ var chunkFLUSP6VF_cjs = require('./chunk-FLUSP6VF.cjs');
7
+ var chunkW5M7JGC4_cjs = require('./chunk-W5M7JGC4.cjs');
8
+ require('./chunk-NCXUQXAN.cjs');
9
9
  var chunkI6GNUM3P_cjs = require('./chunk-I6GNUM3P.cjs');
10
10
  require('./chunk-IRBUKIRF.cjs');
11
11
  require('./chunk-FFCZSYC7.cjs');
@@ -427,7 +427,7 @@ function updateRouteDataCache(match, result) {
427
427
 
428
428
  // src/runtime/router-provider.js
429
429
  function renderRouterApp(component, options) {
430
- return chunkW3LNNY3U_cjs.renderComponent(component, options);
430
+ return chunkW5M7JGC4_cjs.renderComponent(component, options);
431
431
  }
432
432
  function createHttpApp() {
433
433
  const middlewares = [];
@@ -628,7 +628,7 @@ function useErrorBoundary(handler) {
628
628
  }
629
629
 
630
630
  // src/runtime/error-boundary.ts
631
- var ErrorBoundary = chunkW3LNNY3U_cjs.defineComponent({
631
+ var ErrorBoundary = chunkW5M7JGC4_cjs.defineComponent({
632
632
  name: "ErrorBoundary",
633
633
  template: `
634
634
  <div ce:if="!hasError()" class="ce-error-boundary__content">
@@ -1163,63 +1163,63 @@ Object.defineProperty(exports, "normalizeResourceKey", {
1163
1163
  });
1164
1164
  Object.defineProperty(exports, "AiAssistantPanel", {
1165
1165
  enumerable: true,
1166
- get: function () { return chunk6BYWFGQY_cjs.AiAssistantPanel; }
1166
+ get: function () { return chunkSZL56BNL_cjs.AiAssistantPanel; }
1167
1167
  });
1168
1168
  Object.defineProperty(exports, "AiSummaryCard", {
1169
1169
  enumerable: true,
1170
- get: function () { return chunkCXTAUXLG_cjs.AiSummaryCard; }
1170
+ get: function () { return chunkFLUSP6VF_cjs.AiSummaryCard; }
1171
1171
  });
1172
1172
  Object.defineProperty(exports, "Injector", {
1173
1173
  enumerable: true,
1174
- get: function () { return chunkW3LNNY3U_cjs.Injector; }
1174
+ get: function () { return chunkW5M7JGC4_cjs.Injector; }
1175
1175
  });
1176
1176
  Object.defineProperty(exports, "createInjector", {
1177
1177
  enumerable: true,
1178
- get: function () { return chunkW3LNNY3U_cjs.createInjector; }
1178
+ get: function () { return chunkW5M7JGC4_cjs.createInjector; }
1179
1179
  });
1180
1180
  Object.defineProperty(exports, "defineComponent", {
1181
1181
  enumerable: true,
1182
- get: function () { return chunkW3LNNY3U_cjs.defineComponent; }
1182
+ get: function () { return chunkW5M7JGC4_cjs.defineComponent; }
1183
1183
  });
1184
1184
  Object.defineProperty(exports, "renderComponent", {
1185
1185
  enumerable: true,
1186
- get: function () { return chunkW3LNNY3U_cjs.renderComponent; }
1186
+ get: function () { return chunkW5M7JGC4_cjs.renderComponent; }
1187
1187
  });
1188
1188
  Object.defineProperty(exports, "renderTemplateToStream", {
1189
1189
  enumerable: true,
1190
- get: function () { return chunkW3LNNY3U_cjs.renderTemplateToStream; }
1190
+ get: function () { return chunkW5M7JGC4_cjs.renderTemplateToStream; }
1191
1191
  });
1192
1192
  Object.defineProperty(exports, "renderTemplateToString", {
1193
1193
  enumerable: true,
1194
- get: function () { return chunkW3LNNY3U_cjs.renderTemplateToString; }
1194
+ get: function () { return chunkW5M7JGC4_cjs.renderTemplateToString; }
1195
1195
  });
1196
1196
  Object.defineProperty(exports, "useLocation", {
1197
1197
  enumerable: true,
1198
- get: function () { return chunkW3LNNY3U_cjs.useLocation; }
1198
+ get: function () { return chunkW5M7JGC4_cjs.useLocation; }
1199
1199
  });
1200
1200
  Object.defineProperty(exports, "useNavigate", {
1201
1201
  enumerable: true,
1202
- get: function () { return chunkW3LNNY3U_cjs.useNavigate; }
1202
+ get: function () { return chunkW5M7JGC4_cjs.useNavigate; }
1203
1203
  });
1204
1204
  Object.defineProperty(exports, "useRouteData", {
1205
1205
  enumerable: true,
1206
- get: function () { return chunkW3LNNY3U_cjs.useRouteData; }
1206
+ get: function () { return chunkW5M7JGC4_cjs.useRouteData; }
1207
1207
  });
1208
1208
  Object.defineProperty(exports, "useRouteMatch", {
1209
1209
  enumerable: true,
1210
- get: function () { return chunkW3LNNY3U_cjs.useRouteMatch; }
1210
+ get: function () { return chunkW5M7JGC4_cjs.useRouteMatch; }
1211
1211
  });
1212
1212
  Object.defineProperty(exports, "useRouteParams", {
1213
1213
  enumerable: true,
1214
- get: function () { return chunkW3LNNY3U_cjs.useRouteParams; }
1214
+ get: function () { return chunkW5M7JGC4_cjs.useRouteParams; }
1215
1215
  });
1216
1216
  Object.defineProperty(exports, "useRouter", {
1217
1217
  enumerable: true,
1218
- get: function () { return chunkW3LNNY3U_cjs.useRouter; }
1218
+ get: function () { return chunkW5M7JGC4_cjs.useRouter; }
1219
1219
  });
1220
1220
  Object.defineProperty(exports, "withRouterContext", {
1221
1221
  enumerable: true,
1222
- get: function () { return chunkW3LNNY3U_cjs.withRouterContext; }
1222
+ get: function () { return chunkW5M7JGC4_cjs.withRouterContext; }
1223
1223
  });
1224
1224
  Object.defineProperty(exports, "buildRuntimeChromeTraceDocument", {
1225
1225
  enumerable: true,
package/dist/index.js CHANGED
@@ -1,10 +1,10 @@
1
1
  export { ConsoleLogger, ConsoleWorkflowLogger, ConsoleWorkflowTraceSink, DATABASE_TASK, DELAY_TASK, DatabaseWorkflowStore, DefaultApprovalResolver, DefaultBackgroundRunner, FileWorkflowTraceSink, FunctionalDatabaseProvider, HTTP_TASK, InMemoryDatabaseRegistry, InMemorySchedulerService, InMemoryWorkflowStore, ManualOverrideApprovalResolver, MetricsConsoleEmitter, MongoWorkflowStore, NoopWorkflowTraceSink, PolicyApprovalResolver, QueueBackgroundRunner, RecordingWorkflowTraceSink, RuleBasedPolicyEngine, SCHEDULE_TASK, SystemTimeService, WorkflowBuilder, WorkflowRuntime, WorkflowStepBuilder, WorkflowTraceExporterSink, actorFromAuth0Claims, actorFromAzureAdClaims, actorFromCognitoClaims, actorFromOidcClaims, buildPolicyRequest, createAzureQueueDriver, createBullMqDriver, createDatabaseTaskHandler, createDefaultTaskMap, createDelayTaskHandler, createDrizzleProvider, createFetchHttpExecutor, createHttpTaskHandler, createMongoProvider, createMySqlProvider, createPostgresProvider, createPrismaProvider, createRestDatabaseProvider, createScheduleTaskHandler, createSqlDatabaseProvider, createSqliteProvider, createSqsDriver, createStartWorkflowMiddleware, createStepMiddleware, createSupabaseProvider, createWorkflow, databaseTask, delayTask, httpTask, multiStepApprovalResolver, registerDefaultDatabaseProviders, requireActorRoles, requireActorScopes, runAuthMiddleware, scheduleTask, task, visualSchemaToWorkflow, workflowFromJson, workflowToVisualSchema } from './chunk-3ZBRNFEE.js';
2
2
  export { buildHydrationDomDiff, buildHydrationSummary, buildRouteTree, buildSignalsGraph, calculateRetryDelay, classifyError, createAiSession, createAngularAdapter, createDevtoolsDashboard, createFormController, createFormWizard, createHttpAiProvider, createHydrationReplayPanel, createHydrationReplaySession, createMockAiProvider, createReactAdapter, createResource, createResourceCache, createRouterInspector, createRouterInspectorPanel, createRuntimeDiagnosticsStore, createSignalsInspector, createSignalsInspectorPanel, createVueAdapter, getHydrationDomPayload, getHydrationReports, getResourceCache, invalidateResource, isResourceExpired, isResourceStale, normalizeResourceKey } from './chunk-4HRORR2Q.js';
3
- export { AiAssistantPanel } from './chunk-T6T7QE4J.js';
4
- export { AiSummaryCard } from './chunk-V6JCOBGY.js';
5
- import { defineComponent, renderComponent } from './chunk-CHLDE4JQ.js';
6
- export { Injector, createInjector, defineComponent, renderComponent, renderTemplateToStream, renderTemplateToString, useLocation, useNavigate, useRouteData, useRouteMatch, useRouteParams, useRouter, withRouterContext } from './chunk-CHLDE4JQ.js';
7
- import './chunk-Q3KH6HMU.js';
3
+ export { AiAssistantPanel } from './chunk-AA4GATSB.js';
4
+ export { AiSummaryCard } from './chunk-BXQFX2PS.js';
5
+ import { defineComponent, renderComponent } from './chunk-VQDM5HCG.js';
6
+ export { Injector, createInjector, defineComponent, renderComponent, renderTemplateToStream, renderTemplateToString, useLocation, useNavigate, useRouteData, useRouteMatch, useRouteParams, useRouter, withRouterContext } from './chunk-VQDM5HCG.js';
7
+ import './chunk-LSWEXTKL.js';
8
8
  export { buildRuntimeChromeTraceDocument } from './chunk-ZUWSU4OA.js';
9
9
  import './chunk-IHAMVLRY.js';
10
10
  import './chunk-BBAUALNU.js';