@kernlang/review 3.2.3 → 3.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/dist/cache.js +140 -3
  2. package/dist/cache.js.map +1 -1
  3. package/dist/call-graph.d.ts +4 -1
  4. package/dist/call-graph.js +290 -25
  5. package/dist/call-graph.js.map +1 -1
  6. package/dist/external-tools.d.ts +23 -4
  7. package/dist/external-tools.js +68 -12
  8. package/dist/external-tools.js.map +1 -1
  9. package/dist/graph.js +149 -39
  10. package/dist/graph.js.map +1 -1
  11. package/dist/index.d.ts +27 -3
  12. package/dist/index.js +254 -41
  13. package/dist/index.js.map +1 -1
  14. package/dist/inferrer.d.ts +5 -0
  15. package/dist/inferrer.js +1 -1
  16. package/dist/inferrer.js.map +1 -1
  17. package/dist/mappers/ts-concepts.js +31 -6
  18. package/dist/mappers/ts-concepts.js.map +1 -1
  19. package/dist/public-api.d.ts +73 -0
  20. package/dist/public-api.js +351 -0
  21. package/dist/public-api.js.map +1 -0
  22. package/dist/reporter.d.ts +5 -0
  23. package/dist/reporter.js +119 -84
  24. package/dist/reporter.js.map +1 -1
  25. package/dist/review-health.d.ts +38 -0
  26. package/dist/review-health.js +60 -0
  27. package/dist/review-health.js.map +1 -0
  28. package/dist/rules/async.js +4 -16
  29. package/dist/rules/async.js.map +1 -1
  30. package/dist/rules/base.js +112 -87
  31. package/dist/rules/base.js.map +1 -1
  32. package/dist/rules/confidence.d.ts +2 -2
  33. package/dist/rules/confidence.js +32 -15
  34. package/dist/rules/confidence.js.map +1 -1
  35. package/dist/rules/dead-code.d.ts +2 -1
  36. package/dist/rules/dead-code.js +49 -3
  37. package/dist/rules/dead-code.js.map +1 -1
  38. package/dist/rules/index.js +131 -0
  39. package/dist/rules/index.js.map +1 -1
  40. package/dist/rules/kern-source-cross-file.d.ts +2 -0
  41. package/dist/rules/kern-source-cross-file.js +102 -0
  42. package/dist/rules/kern-source-cross-file.js.map +1 -0
  43. package/dist/rules/kern-source.js +51 -4
  44. package/dist/rules/kern-source.js.map +1 -1
  45. package/dist/rules/nextjs-app-router.js +936 -31
  46. package/dist/rules/nextjs-app-router.js.map +1 -1
  47. package/dist/rules/nextjs.js +193 -10
  48. package/dist/rules/nextjs.js.map +1 -1
  49. package/dist/rules/react-composition.js +442 -61
  50. package/dist/rules/react-composition.js.map +1 -1
  51. package/dist/rules/react-hooks.js +51 -2
  52. package/dist/rules/react-hooks.js.map +1 -1
  53. package/dist/rules/react.js +265 -49
  54. package/dist/rules/react.js.map +1 -1
  55. package/dist/rules/utils.d.ts +37 -2
  56. package/dist/rules/utils.js +113 -0
  57. package/dist/rules/utils.js.map +1 -1
  58. package/dist/semantic-diff.js +1 -1
  59. package/dist/semantic-diff.js.map +1 -1
  60. package/dist/taint-ast.js +228 -4
  61. package/dist/taint-ast.js.map +1 -1
  62. package/dist/taint-crossfile.d.ts +30 -2
  63. package/dist/taint-crossfile.js +280 -59
  64. package/dist/taint-crossfile.js.map +1 -1
  65. package/dist/taint-types.d.ts +2 -1
  66. package/dist/taint-types.js +32 -2
  67. package/dist/taint-types.js.map +1 -1
  68. package/dist/taint.d.ts +1 -1
  69. package/dist/taint.js +1 -1
  70. package/dist/taint.js.map +1 -1
  71. package/dist/types.d.ts +78 -0
  72. package/dist/types.js.map +1 -1
  73. package/package.json +3 -3
package/dist/index.js CHANGED
@@ -10,7 +10,8 @@
10
10
  */
11
11
  import { countTokens, parseWithDiagnostics, serializeIR } from '@kernlang/core';
12
12
  import { existsSync, readdirSync, readFileSync, statSync } from 'fs';
13
- import { join, relative } from 'path';
13
+ import { dirname, join, relative } from 'path';
14
+ import { Project } from 'ts-morph';
14
15
  import { buildCallGraph } from './call-graph.js';
15
16
  import { runConceptRules } from './concept-rules/index.js';
16
17
  import { structuralDiff } from './differ.js';
@@ -18,19 +19,22 @@ import { runTSCDiagnostics } from './external-tools.js';
18
19
  import { buildFileContextMap } from './file-context.js';
19
20
  import { classifyFileRole } from './file-role.js';
20
21
  import { resolveImportGraph } from './graph.js';
21
- import { createInMemoryProject, inferFromSourceFile } from './inferrer.js';
22
+ import { createInMemoryProject, findTsConfig, inferFromSourceFile } from './inferrer.js';
22
23
  import { flattenIR, lintKernIR } from './kern-lint.js';
23
24
  import { extractTsConcepts } from './mappers/ts-concepts.js';
24
25
  import { mineNorms } from './norm-miner.js';
25
26
  import { synthesizeObligations } from './obligations.js';
27
+ import { buildPublicApiMap, expandPublicApiThroughReExports } from './public-api.js';
26
28
  import { runQualityRules } from './quality-rules.js';
27
29
  import { assignDefaultConfidence, calculateStats, sortAndDedup, sortFindings } from './reporter.js';
30
+ import { debugDetail, ReviewHealthBuilder } from './review-health.js';
28
31
  import { loadBuiltinNativeRules, loadNativeRules } from './rule-loader.js';
29
- import { lintConfidenceGraph } from './rules/confidence.js';
32
+ import { lintConfidenceGraph, lintMultiFileConfidenceGraph } from './rules/confidence.js';
30
33
  import { crossFileAsyncRule, deadExportRule } from './rules/dead-code.js';
31
34
  import { runFastapiConceptRules } from './rules/fastapi.js';
32
35
  import { GROUND_LAYER_RULES } from './rules/ground-layer.js';
33
36
  import { KERN_SOURCE_RULES, lintKernSourceIR } from './rules/kern-source.js';
37
+ import { lintKernSourceCrossFile } from './rules/kern-source-cross-file.js';
34
38
  import { detectTemplates } from './template-detector.js';
35
39
  // Load native .kern rules once at module init
36
40
  // Guard: import.meta.url is undefined when bundled as CJS (e.g. esbuild for VS Code worker)
@@ -54,7 +58,7 @@ export { linkToNodes, runESLint, runTSCDiagnostics, runTSCDiagnosticsFromPaths }
54
58
  export { buildFileContextMap, clearFileContextCache } from './file-context.js';
55
59
  export { classifyFileRole } from './file-role.js';
56
60
  export { resolveImportGraph } from './graph.js';
57
- export { inferFromFile, inferFromSource } from './inferrer.js';
61
+ export { findTsConfig, inferFromFile, inferFromSource } from './inferrer.js';
58
62
  // KERN-IR lint pipeline (ground layer)
59
63
  export { flattenIR, lintKernIR } from './kern-lint.js';
60
64
  // LLM bridge (Phase 3)
@@ -64,8 +68,10 @@ export { extractTsConcepts } from './mappers/ts-concepts.js';
64
68
  // Norm mining + obligations
65
69
  export { mineNorms } from './norm-miner.js';
66
70
  export { obligationsFromNorms, obligationsFromStructure, synthesizeObligations } from './obligations.js';
71
+ export { buildPublicApiMap, EMPTY_PUBLIC_API, expandPublicApiThroughReExports, isPublicApi, resolvePackageEntryFiles, resolveSpecifierToSrc, } from './public-api.js';
67
72
  export { runQualityRules } from './quality-rules.js';
68
- export { assignDefaultConfidence, calculateStats, checkEnforcement, dedup, formatEnforcement, formatReport, formatReportJSON, formatSARIF, formatSARIFWithSuppressions, formatSummary, sortAndDedup, sortFindings, } from './reporter.js';
73
+ export { assignDefaultConfidence, calculateStats, checkEnforcement, dedup, formatEnforcement, formatReport, formatReportJSON, formatSARIF, formatSARIFWithMetadata, formatSARIFWithSuppressions, formatSummary, sortAndDedup, sortFindings, } from './reporter.js';
74
+ export { debugDetail, ReviewHealthBuilder } from './review-health.js';
69
75
  export { CONFIDENCE_RULES, lintConfidenceGraph, lintMultiFileConfidenceGraph } from './rules/confidence.js';
70
76
  export { actionMissingIdempotent, assumeLowTrust, branchNonExhaustive, collectUnbounded, expectRangeInverted, GROUND_LAYER_RULES, guardWithoutElse, reasonWithoutBasis, } from './rules/ground-layer.js';
71
77
  export { getRuleRegistry } from './rules/index.js';
@@ -87,27 +93,117 @@ export { checkSpec, checkSpecFiles, extractImplRoutes, extractSpecContracts, mat
87
93
  export { clearReviewCache };
88
94
  /** Shared filesystem-backed Project for type-aware analysis (reused across reviewFile calls) */
89
95
  let _fsProject;
90
- function getOrCreateFsProject() {
96
+ let _fsProjectTsConfig;
97
+ let _fsProjectTsConfigMtimeMs;
98
+ function getOrCreateFsProject(tsConfigFilePath) {
99
+ // Rebuild when either the tsconfig path OR its contents change. Watch-mode users who edit
100
+ // compilerOptions in place would otherwise keep running with the stale Project's resolver even
101
+ // though the cache key (which hashes tsconfig content) correctly invalidates — the two must stay
102
+ // consistent or findings lag a process restart behind.
103
+ let currentMtime;
104
+ if (tsConfigFilePath) {
105
+ try {
106
+ currentMtime = statSync(tsConfigFilePath).mtimeMs;
107
+ }
108
+ catch {
109
+ // Unreadable tsconfig — fall through; we'll still attempt construction and let ts-morph surface the error.
110
+ }
111
+ }
112
+ if (_fsProject && (_fsProjectTsConfig !== tsConfigFilePath || _fsProjectTsConfigMtimeMs !== currentMtime)) {
113
+ _fsProject = undefined;
114
+ }
91
115
  if (!_fsProject) {
92
- const { Project } = require('ts-morph');
93
116
  _fsProject = new Project({
94
- compilerOptions: {
95
- strict: true,
96
- target: 99 /* Latest */,
97
- module: 99 /* ESNext */,
98
- moduleResolution: 100 /* Bundler */,
99
- skipLibCheck: true,
100
- noEmit: true,
101
- },
102
- useInMemoryFileSystem: false,
117
+ tsConfigFilePath,
103
118
  skipAddingFilesFromTsConfig: true,
119
+ useInMemoryFileSystem: false,
120
+ // When a tsconfig is loaded, let it own compilerOptions (jsx/paths/lib/allowJs come from there).
121
+ // When no tsconfig, ship permissive defaults so .tsx files don't emit phantom ts17004 errors.
122
+ compilerOptions: tsConfigFilePath
123
+ ? undefined
124
+ : {
125
+ strict: true,
126
+ target: 99 /* Latest */,
127
+ module: 99 /* ESNext */,
128
+ moduleResolution: 100 /* Bundler */,
129
+ jsx: 4 /* Preserve */,
130
+ allowJs: true,
131
+ esModuleInterop: true,
132
+ allowSyntheticDefaultImports: true,
133
+ skipLibCheck: true,
134
+ noEmit: true,
135
+ },
104
136
  });
137
+ _fsProjectTsConfig = tsConfigFilePath;
138
+ _fsProjectTsConfigMtimeMs = currentMtime;
105
139
  }
106
140
  return _fsProject;
107
141
  }
108
142
  /** Reset the shared project (for tests / watch mode) */
109
143
  export function resetFsProject() {
110
144
  _fsProject = undefined;
145
+ _fsProjectTsConfig = undefined;
146
+ _fsProjectTsConfigMtimeMs = undefined;
147
+ _fsProjectSourceMtimes.clear();
148
+ }
149
+ /**
150
+ * Refresh stale source files in the shared fs Project from disk.
151
+ *
152
+ * The singleton caches every source file it has ever loaded — including transitive imports
153
+ * followed by cross-file taint and call-graph analysis. In a long-running process (watch mode,
154
+ * IDE extension, repeated CLI invocations) those cached ASTs go stale whenever the underlying
155
+ * file changes on disk outside our own `replaceWithText` path. Cross-file findings would then
156
+ * reflect the OLD imported source, not the current one.
157
+ *
158
+ * This helper is the lightweight counterpart to resetFsProject(): instead of throwing the
159
+ * whole Project away, it stat-checks each loaded source file and calls ts-morph's
160
+ * refreshFromFileSystemSync only on the ones whose mtime moved. Use it between reviews in
161
+ * watch-mode callers. One-shot CLI runs don't need it — the process exits before stale
162
+ * reads matter.
163
+ *
164
+ * Returns the number of source files actually refreshed, so callers can log "reloaded N
165
+ * files" or decide not to re-review when the count is zero.
166
+ */
167
+ export function refreshFsProjectFromDisk() {
168
+ if (!_fsProject)
169
+ return 0;
170
+ let refreshed = 0;
171
+ for (const sf of _fsProject.getSourceFiles()) {
172
+ const path = sf.getFilePath();
173
+ let diskMtime;
174
+ try {
175
+ diskMtime = statSync(path).mtimeMs;
176
+ }
177
+ catch {
178
+ // File deleted on disk since it was loaded — skip. ts-morph will raise on next access.
179
+ continue;
180
+ }
181
+ const lastKnown = _fsProjectSourceMtimes.get(path);
182
+ if (lastKnown === diskMtime)
183
+ continue;
184
+ try {
185
+ sf.refreshFromFileSystemSync();
186
+ _fsProjectSourceMtimes.set(path, diskMtime);
187
+ refreshed++;
188
+ }
189
+ catch {
190
+ // Refresh can fail for unreadable/unparseable files — leave the stale copy rather than
191
+ // hard-crashing the review. The next resetFsProject() call will clear it either way.
192
+ }
193
+ }
194
+ return refreshed;
195
+ }
196
+ /** Per-file mtimes tracked for the shared fs Project — see refreshFsProjectFromDisk. */
197
+ const _fsProjectSourceMtimes = new Map();
198
+ /** True when the file is codegen output — detected via common path patterns or a @generated header. */
199
+ export function isGeneratedFile(filePath, source) {
200
+ // Path heuristic — covers /generated/, /__generated__/, /.generated/ anywhere in the path.
201
+ if (/[/\\](?:generated|__generated__|\.generated)[/\\]/i.test(filePath))
202
+ return true;
203
+ // Leading `// @generated` or `/* @generated */` header — the standard convention enforced by many codegens.
204
+ if (source && /^\s*(?:\/\/|\/\*)\s*@generated\b/m.test(source.slice(0, 500)))
205
+ return true;
206
+ return false;
111
207
  }
112
208
  /**
113
209
  * Review a single file. Auto-detects language from extension.
@@ -116,23 +212,32 @@ export function resetFsProject() {
116
212
  */
117
213
  export function reviewFile(filePath, config) {
118
214
  const source = readFileSync(filePath, 'utf-8');
215
+ // Resolve the effective tsconfig up-front so both the cache key and the ts-morph Project see the
216
+ // same path. If we only discovered it later inside reviewSourceWithProject, adding or changing the
217
+ // nearest tsconfig without editing the source would serve stale cached findings.
218
+ const effectiveConfig = config?.tsConfigFilePath || filePath.endsWith('.kern') || filePath.endsWith('.py')
219
+ ? config
220
+ : { ...(config ?? {}), tsConfigFilePath: findTsConfig(dirname(filePath)) };
119
221
  let key;
120
- if (config?.noCache !== true) {
121
- key = computeCacheKey(source, config || {}, filePath);
222
+ if (effectiveConfig?.noCache !== true) {
223
+ key = computeCacheKey(source, effectiveConfig || {}, filePath);
122
224
  const cached = reviewCache.get(key);
123
225
  if (cached)
124
226
  return cached;
125
227
  }
126
228
  let report;
127
229
  if (filePath.endsWith('.kern')) {
128
- report = reviewKernSource(source, filePath, config);
230
+ report = reviewKernSource(source, filePath, effectiveConfig);
129
231
  }
130
232
  else if (filePath.endsWith('.py')) {
131
- report = reviewPythonSource(source, filePath, config);
233
+ report = reviewPythonSource(source, filePath, effectiveConfig);
132
234
  }
133
235
  else {
134
236
  // Use filesystem-backed project for real files (enables TypeChecker)
135
- report = reviewSourceWithProject(source, filePath, config);
237
+ report = reviewSourceWithProject(source, filePath, effectiveConfig);
238
+ }
239
+ if (isGeneratedFile(filePath, source)) {
240
+ report.generated = true;
136
241
  }
137
242
  if (key) {
138
243
  reviewCache.set(key, report);
@@ -145,7 +250,11 @@ export function reviewFile(filePath, config) {
145
250
  */
146
251
  function reviewSourceWithProject(source, filePath, config) {
147
252
  try {
148
- const fsProject = getOrCreateFsProject();
253
+ // Prefer explicit override from caller; otherwise discover the nearest tsconfig from this file's directory.
254
+ // Discovering per-file (not cwd) lets monorepo reviews pick up the per-package tsconfig with real paths/jsx,
255
+ // instead of the root solution-style tsconfig that only lists `references`.
256
+ const tsConfigFilePath = config?.tsConfigFilePath ?? findTsConfig(dirname(filePath));
257
+ const fsProject = getOrCreateFsProject(tsConfigFilePath);
149
258
  // Add or update the file in the project
150
259
  let sf = fsProject.getSourceFile(filePath);
151
260
  if (sf) {
@@ -154,11 +263,29 @@ function reviewSourceWithProject(source, filePath, config) {
154
263
  else {
155
264
  sf = fsProject.addSourceFileAtPath(filePath);
156
265
  }
266
+ // Track the disk mtime we just synced with — refreshFsProjectFromDisk uses this to decide
267
+ // whether the cached AST has drifted from disk on later calls. Best-effort: if stat fails
268
+ // we simply don't record a mtime (refresh will unconditionally refresh such files later).
269
+ try {
270
+ _fsProjectSourceMtimes.set(filePath, statSync(filePath).mtimeMs);
271
+ }
272
+ catch {
273
+ // File may have been deleted between read and stat; leave mtime unrecorded.
274
+ }
157
275
  return reviewSourceInternal(source, filePath, config, fsProject, sf);
158
276
  }
159
- catch {
160
- // Fallback to in-memory project if fs project fails
161
- return reviewSource(source, filePath, config);
277
+ catch (err) {
278
+ // Fs project failed — fall back to in-memory project, but record the degradation on the
279
+ // report so callers can tell this file was reviewed without full type resolution.
280
+ const report = reviewSource(source, filePath, config);
281
+ const health = new ReviewHealthBuilder();
282
+ for (const e of report.health?.entries ?? [])
283
+ health.note(e);
284
+ health.noteKind('fs-project', 'fallback', 'Fell back to in-memory ts-morph project — cross-module type resolution is limited for this file', debugDetail(err));
285
+ if (process.env.KERN_DEBUG)
286
+ console.error('fs-project failure, using in-memory fallback:', err.message);
287
+ report.health = health.build();
288
+ return report;
162
289
  }
163
290
  }
164
291
  /**
@@ -241,8 +368,15 @@ function reviewSourceInternal(source, filePath, config, project, sourceFile) {
241
368
  }
242
369
  allFindings.push(...nativeFindings);
243
370
  }
244
- // Phase 8: TSC diagnostics — native TypeScript compiler errors
245
- allFindings.push(...safePhase('tsc', () => runTSCDiagnostics(project), []));
371
+ // Phase 8: TSC diagnostics — native TypeScript compiler errors.
372
+ // runTSCDiagnostics returns findings for every file in the shared Project, so filter down to
373
+ // just the file we're reviewing — otherwise findings-for-project-file leaks into unrelated reports.
374
+ // ts-morph normalizes filePaths (absolute, posix separators) while callers may pass relative paths,
375
+ // so compare against the sourceFile's own normalized path rather than the raw argument.
376
+ // downgradeProjectLoadingErrors: we injected this file ad-hoc into a Project that carries the
377
+ // host tsconfig, so TS6059/TS6307 are our noise, not the user's bug.
378
+ const normalizedCurrentPath = sourceFile.getFilePath();
379
+ allFindings.push(...safePhase('tsc', () => runTSCDiagnostics(project, { downgradeProjectLoadingErrors: true }), []).filter((f) => f.primarySpan.file === normalizedCurrentPath || f.primarySpan.file === filePath));
246
380
  // Build confidence graph if any nodes have confidence props
247
381
  let confidenceGraph;
248
382
  let confidenceSummary;
@@ -266,6 +400,7 @@ function reviewSourceInternal(source, filePath, config, project, sourceFile) {
266
400
  inferred,
267
401
  templateMatches,
268
402
  findings,
403
+ ...(suppression.suppressed.length > 0 ? { suppressedFindings: sortAndDedup(suppression.suppressed) } : {}),
269
404
  stats,
270
405
  ...(confidenceGraph ? { confidenceGraph } : {}),
271
406
  ...(confidenceSummary ? { confidenceSummary } : {}),
@@ -399,6 +534,7 @@ export function reviewKernSource(source, filePath = 'input.kern', _config) {
399
534
  inferred,
400
535
  templateMatches: [],
401
536
  findings,
537
+ ...(suppression.suppressed.length > 0 ? { suppressedFindings: sortAndDedup(suppression.suppressed) } : {}),
402
538
  stats: {
403
539
  totalLines,
404
540
  coveredLines: totalLines,
@@ -462,6 +598,7 @@ export function reviewPythonSource(source, filePath = 'input.py', config) {
462
598
  inferred: [],
463
599
  templateMatches: [],
464
600
  findings,
601
+ ...(suppression.suppressed.length > 0 ? { suppressedFindings: sortAndDedup(suppression.suppressed) } : {}),
465
602
  stats: {
466
603
  totalLines,
467
604
  coveredLines: 0,
@@ -497,9 +634,13 @@ export function reviewGraph(entryFiles, config, graphOptions) {
497
634
  const graph = resolveImportGraph(entryFiles, graphOptions);
498
635
  const entrySet = new Set(graph.entryFiles);
499
636
  const reports = [];
637
+ // Graph-wide subsystem status — one entry per (subsystem, kind) across the whole run.
638
+ // Attached to every report on return so any single ReviewReport is self-describing.
639
+ const graphHealth = new ReviewHealthBuilder();
500
640
  // Build file context map — every file gets import chain awareness
501
641
  const fileContextMap = buildFileContextMap(graph);
502
- const graphConfig = { ...config, fileContextMap };
642
+ const graphFileMap = new Map(graph.files.map((gf) => [gf.path, gf]));
643
+ const graphConfig = { ...config, fileContextMap, graphFileMap };
503
644
  for (const gf of graph.files) {
504
645
  if (!existsSync(gf.path))
505
646
  continue;
@@ -518,8 +659,14 @@ export function reviewGraph(entryFiles, config, graphOptions) {
518
659
  }
519
660
  }
520
661
  }
662
+ for (const f of report.suppressedFindings ?? []) {
663
+ f.origin = isEntry ? 'changed' : 'upstream';
664
+ f.distance = gf.distance;
665
+ }
521
666
  // Re-sort after severity mutations
522
667
  sortFindings(report.findings);
668
+ if (report.suppressedFindings)
669
+ sortFindings(report.suppressedFindings);
523
670
  reports.push(report);
524
671
  }
525
672
  catch (err) {
@@ -535,7 +682,7 @@ export function reviewGraph(entryFiles, config, graphOptions) {
535
682
  for (const gf of graph.files) {
536
683
  graphImports.set(gf.path, gf.imports);
537
684
  }
538
- const crossFileResults = analyzeTaintCrossFile(inferredPerFile, graphImports);
685
+ const crossFileResults = analyzeTaintCrossFile(inferredPerFile, graphImports, graph);
539
686
  if (crossFileResults.length > 0) {
540
687
  const crossFileFindings = crossFileTaintToFindings(crossFileResults);
541
688
  // Add cross-file findings to the caller's report, then re-run suppression
@@ -555,6 +702,32 @@ export function reviewGraph(entryFiles, config, graphOptions) {
555
702
  }
556
703
  }
557
704
  }
705
+ // Cross-file confidence analysis for KERN IR nodes across the reviewed graph.
706
+ const confidenceFileMap = new Map();
707
+ for (const report of reports) {
708
+ if (!report.filePath.endsWith('.kern'))
709
+ continue;
710
+ const nodes = report.inferred.map((r) => r.node);
711
+ if (nodes.length > 0) {
712
+ confidenceFileMap.set(report.filePath, nodes);
713
+ }
714
+ }
715
+ if (confidenceFileMap.size > 1) {
716
+ const crossFileConfidenceFindings = lintMultiFileConfidenceGraph(confidenceFileMap);
717
+ for (const finding of crossFileConfidenceFindings) {
718
+ const targetReport = reports.find((r) => r.filePath === finding.primarySpan.file);
719
+ if (targetReport) {
720
+ targetReport.findings.push(finding);
721
+ }
722
+ }
723
+ }
724
+ const crossFileKernFindings = lintKernSourceCrossFile(reports);
725
+ for (const finding of crossFileKernFindings) {
726
+ const targetReport = reports.find((r) => r.filePath === finding.primarySpan.file);
727
+ if (targetReport) {
728
+ targetReport.findings.push(finding);
729
+ }
730
+ }
558
731
  // Cross-file concept analysis — re-run concept rules with full graph context
559
732
  // This fixes false positives where guards are in middleware files and effects in handlers
560
733
  const allConcepts = new Map();
@@ -568,8 +741,11 @@ export function reviewGraph(entryFiles, config, graphOptions) {
568
741
  allConcepts.set(filePath, extractTsConcepts(sf, filePath));
569
742
  }
570
743
  }
571
- catch {
572
- // Skip files that fail concept extraction
744
+ catch (err) {
745
+ // Per-file failure record once at graph level (builder dedupes), then move on.
746
+ graphHealth.noteKind('concept-extraction', 'fallback', 'One or more files failed concept extraction — boundary/effect rules may be incomplete', debugDetail(err));
747
+ if (process.env.KERN_DEBUG)
748
+ console.error(`concept extraction failed for ${filePath}:`, err.message);
573
749
  }
574
750
  }
575
751
  if (allConcepts.size > 0) {
@@ -602,11 +778,25 @@ export function reviewGraph(entryFiles, config, graphOptions) {
602
778
  // Use provided project, or build one with all graph files loaded
603
779
  let cgProject = graphOptions?.project;
604
780
  if (!cgProject) {
605
- const { Project } = require('ts-morph');
781
+ // Fall back to discovering from the first graph file when the caller didn't supply a tsconfig.
782
+ const cgTsConfig = graphOptions?.tsConfigFilePath ?? (graph.files[0] ? findTsConfig(dirname(graph.files[0].path)) : undefined);
606
783
  cgProject = new Project({
607
- compilerOptions: { strict: true, target: 99, module: 99, moduleResolution: 100, skipLibCheck: true },
608
- useInMemoryFileSystem: false,
784
+ tsConfigFilePath: cgTsConfig,
609
785
  skipAddingFilesFromTsConfig: true,
786
+ useInMemoryFileSystem: false,
787
+ compilerOptions: cgTsConfig
788
+ ? undefined
789
+ : {
790
+ strict: true,
791
+ target: 99,
792
+ module: 99,
793
+ moduleResolution: 100,
794
+ jsx: 4 /* Preserve */,
795
+ allowJs: true,
796
+ esModuleInterop: true,
797
+ allowSyntheticDefaultImports: true,
798
+ skipLibCheck: true,
799
+ },
610
800
  });
611
801
  for (const gf of graph.files) {
612
802
  try {
@@ -618,27 +808,49 @@ export function reviewGraph(entryFiles, config, graphOptions) {
618
808
  }
619
809
  }
620
810
  const callGraph = buildCallGraph(graph, cgProject);
811
+ // Build the public-API map once per run — package.json walk is the heavy bit.
812
+ // Then propagate through re-export chains so curated barrels (Agon-style:
813
+ // `export { foo } from './worker.js'`) carry public-API status upstream.
814
+ const basePublicApi = buildPublicApiMap(graph.files.map((gf) => gf.path), config?.publicApi);
815
+ const publicApi = expandPublicApiThroughReExports(basePublicApi, (path) => cgProject?.getSourceFile(path));
621
816
  for (const report of reports) {
622
- const deadExportFindings = deadExportRule(callGraph, report.filePath);
817
+ const deadExportFindings = deadExportRule(callGraph, report.filePath, publicApi);
623
818
  report.findings.push(...deadExportFindings);
624
819
  const asyncFindings = crossFileAsyncRule(callGraph, report.filePath);
625
820
  report.findings.push(...asyncFindings);
626
821
  }
627
822
  }
628
- catch {
629
- // Call graph build failure should not crash the review pipeline
823
+ catch (err) {
824
+ // Call graph build failure must not crash the review pipeline — surface the failure on
825
+ // health so dead-export / cross-file-async rules aren't silently missing from the report.
826
+ graphHealth.noteKind('call-graph', 'error', 'Call graph build failed — dead exports and cross-file async checks are unavailable', debugDetail(err));
827
+ if (process.env.KERN_DEBUG)
828
+ console.error('call graph build error:', err.message);
630
829
  }
631
830
  // Re-run suppression + dedup on all reports (cross-file findings were injected after initial suppression)
632
831
  for (const report of reports) {
633
832
  try {
634
833
  const source = readFileSync(report.filePath, 'utf-8');
635
- const suppression = applySuppression(report.findings, source, report.filePath, config, config?.strict ?? false);
834
+ const unsuppressedCandidates = [...report.findings, ...(report.suppressedFindings ?? [])];
835
+ const suppression = applySuppression(sortAndDedup(unsuppressedCandidates), source, report.filePath, config, config?.strict ?? false);
636
836
  report.findings = sortAndDedup(suppression.findings);
837
+ report.suppressedFindings = suppression.suppressed.length > 0 ? sortAndDedup(suppression.suppressed) : undefined;
637
838
  }
638
839
  catch {
639
840
  report.findings = sortAndDedup(report.findings);
640
841
  }
641
842
  }
843
+ // Merge graph-level health into every report. Each report may already carry per-file health
844
+ // (e.g. fs-project fallback); fold those entries into the graph builder so every report sees
845
+ // the complete, deduped picture before we emit.
846
+ for (const report of reports) {
847
+ const merged = new ReviewHealthBuilder();
848
+ for (const e of report.health?.entries ?? [])
849
+ merged.note(e);
850
+ for (const e of graphHealth.build()?.entries ?? [])
851
+ merged.note(e);
852
+ report.health = merged.build();
853
+ }
642
854
  return reports;
643
855
  }
644
856
  function collectReviewableFiles(dirPath, recursive) {
@@ -656,16 +868,17 @@ function collectReviewableFiles(dirPath, recursive) {
656
868
  entry !== 'venv') {
657
869
  files.push(...collectReviewableFiles(full, true));
658
870
  }
659
- else if ((entry.endsWith('.ts') || entry.endsWith('.tsx')) &&
871
+ else if (stat.isFile() &&
872
+ (entry.endsWith('.ts') || entry.endsWith('.tsx')) &&
660
873
  !entry.endsWith('.d.ts') &&
661
874
  !entry.endsWith('.test.ts') &&
662
875
  !entry.endsWith('.test.tsx')) {
663
876
  files.push(full);
664
877
  }
665
- else if (entry.endsWith('.py') && !entry.startsWith('test_') && !entry.endsWith('_test.py')) {
878
+ else if (stat.isFile() && entry.endsWith('.py') && !entry.startsWith('test_') && !entry.endsWith('_test.py')) {
666
879
  files.push(full);
667
880
  }
668
- else if (entry.endsWith('.kern')) {
881
+ else if (stat.isFile() && entry.endsWith('.kern')) {
669
882
  files.push(full);
670
883
  }
671
884
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAChF,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AACrE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACzF,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,+BAA+B,EAAE,MAAM,iBAAiB,CAAC;AACrF,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,uBAAuB,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACpG,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,4BAA4B,EAAE,MAAM,uBAAuB,CAAC;AAC1F,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC1E,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC7E,OAAO,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAGzD,8CAA8C;AAC9C,4FAA4F;AAC5F,IAAI,YAAY,GAA4C,EAAE,CAAC;AAC/D,IAAI,CAAC;IACH,YAAY,GAAG,sBAAsB,EAAE,CAAC;AAC1C,CAAC;AAAC,MAAM,CAAC;IACP,wEAAwE;AAC1E,CAAC;AAED,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjG,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE5G,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAG/C,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAW3D,mBAAmB;AACnB,OAAO,EACL,oBAAoB,EACpB,6BAA6B,EAC7B,wBAAwB,EACxB,eAAe,EACf,mBAAmB,EACnB,qBAAqB,EACrB,cAAc,GACf,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,iBAAiB,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AAC5G,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAE7E,uCAAuC;AACvC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEvD,uBAAuB;AACvB,OAAO,EAAE,uBAAuB,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAExF,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,4BAA4B;AAC5B,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAEzG,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,+BAA+B,EAC/B,WAAW,EACX,wBAAwB,EACxB,qBAAqB,GACtB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EACL,uBAAuB,EACvB,cAAc,EACd,gBAAgB,EAChB,KAAK,EACL,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,uBAAuB,EACvB,2BAA2B,EAC3B,aAAa,EACb,YAAY,EACZ,YAAY,GACb,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,4BAA4B,EAAE,MAAM,uBAAuB,CAAC;AAC5G,OAAO,EACL,uBAAuB,EACvB,cAAc,EACd,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,WAAW,GACZ,MAAM,wBAAwB,CAAC;AAChC,+CAA+C;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,gBAAgB;AAChB,OAAO,EACL,mBAAmB,EACnB,6BAA6B,EAC7B,kBAAkB,EAClB,iBAAiB,EACjB,yBAAyB,GAC1B,MAAM,oBAAoB,CAAC;AAE5B,cAAc;AACd,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAS5G,wCAAwC;AACxC,OAAO,EACL,YAAY,EACZ,qBAAqB,EACrB,cAAc,EACd,cAAc,EACd,wBAAwB,EACxB,qBAAqB,EACrB,eAAe,GAChB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AA2BzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE/C,kBAAkB;AAClB,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAI5E,sDAAsD;AACtD,OAAO,EACL,SAAS,EACT,cAAc,EACd,iBAAiB,EACjB,oBAAoB,EACpB,WAAW,EACX,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAE5B,gGAAgG;AAChG,IAAI,UAAkD,CAAC;AACvD,IAAI,kBAAsC,CAAC;AAC3C,IAAI,yBAA6C,CAAC;AAClD,SAAS,oBAAoB,CAAC,gBAAyB;IACrD,0FAA0F;IAC1F,+FAA+F;IAC/F,iGAAiG;IACjG,uDAAuD;IACvD,IAAI,YAAgC,CAAC;IACrC,IAAI,gBAAgB,EAAE,CAAC;QACrB,IAAI,CAAC;YACH,YAAY,GAAG,QAAQ,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC;QACpD,CAAC;QAAC,MAAM,CAAC;YACP,2GAA2G;QAC7G,CAAC;IACH,CAAC;IACD,IAAI,UAAU,IAAI,CAAC,kBAAkB,KAAK,gBAAgB,IAAI,yBAAyB,KAAK,YAAY,CAAC,EAAE,CAAC;QAC1G,UAAU,GAAG,SAAS,CAAC;IACzB,CAAC;IACD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,UAAU,GAAG,IAAI,OAAO,CAAC;YACvB,gBAAgB;YAChB,2BAA2B,EAAE,IAAI;YACjC,qBAAqB,EAAE,KAAK;YAC5B,iGAAiG;YACjG,8FAA8F;YAC9F,eAAe,EAAE,gBAAgB;gBAC/B,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC;oBACE,MAAM,EAAE,IAAI;oBACZ,MAAM,EAAE,EAAE,CAAC,YAAY;oBACvB,MAAM,EAAE,EAAE,CAAC,YAAY;oBACvB,gBAAgB,EAAE,GAAG,CAAC,aAAa;oBACnC,GAAG,EAAE,CAAC,CAAC,cAAc;oBACrB,OAAO,EAAE,IAAI;oBACb,eAAe,EAAE,IAAI;oBACrB,4BAA4B,EAAE,IAAI;oBAClC,YAAY,EAAE,IAAI;oBAClB,MAAM,EAAE,IAAI;iBACb;SACN,CAAC,CAAC;QACH,kBAAkB,GAAG,gBAAgB,CAAC;QACtC,yBAAyB,GAAG,YAAY,CAAC;IAC3C,CAAC;IACD,OAAO,UAAW,CAAC;AACrB,CAAC;AAED,wDAAwD;AACxD,MAAM,UAAU,cAAc;IAC5B,UAAU,GAAG,SAAS,CAAC;IACvB,kBAAkB,GAAG,SAAS,CAAC;IAC/B,yBAAyB,GAAG,SAAS,CAAC;IACtC,sBAAsB,CAAC,KAAK,EAAE,CAAC;AACjC,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,wBAAwB;IACtC,IAAI,CAAC,UAAU;QAAE,OAAO,CAAC,CAAC;IAC1B,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,KAAK,MAAM,EAAE,IAAI,UAAU,CAAC,cAAc,EAAE,EAAE,CAAC;QAC7C,MAAM,IAAI,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC;QAC9B,IAAI,SAAiB,CAAC;QACtB,IAAI,CAAC;YACH,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;QACrC,CAAC;QAAC,MAAM,CAAC;YACP,uFAAuF;YACvF,SAAS;QACX,CAAC;QACD,MAAM,SAAS,GAAG,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,SAAS,KAAK,SAAS;YAAE,SAAS;QACtC,IAAI,CAAC;YACH,EAAE,CAAC,yBAAyB,EAAE,CAAC;YAC/B,sBAAsB,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YAC5C,SAAS,EAAE,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,uFAAuF;YACvF,qFAAqF;QACvF,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,wFAAwF;AACxF,MAAM,sBAAsB,GAAG,IAAI,GAAG,EAAkB,CAAC;AAEzD,uGAAuG;AACvG,MAAM,UAAU,eAAe,CAAC,QAAgB,EAAE,MAAe;IAC/D,2FAA2F;IAC3F,IAAI,oDAAoD,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IACrF,4GAA4G;IAC5G,IAAI,MAAM,IAAI,mCAAmC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1F,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,QAAgB,EAAE,MAAqB;IAChE,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAE/C,iGAAiG;IACjG,mGAAmG;IACnG,iFAAiF;IACjF,MAAM,eAAe,GACnB,MAAM,EAAE,gBAAgB,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC;QAChF,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,gBAAgB,EAAE,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;IAE/E,IAAI,GAAuB,CAAC;IAC5B,IAAI,eAAe,EAAE,OAAO,KAAK,IAAI,EAAE,CAAC;QACtC,GAAG,GAAG,eAAe,CAAC,MAAM,EAAE,eAAe,IAAI,EAAE,EAAE,QAAQ,CAAC,CAAC;QAC/D,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;IAC5B,CAAC;IAED,IAAI,MAAoB,CAAC;IACzB,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/B,MAAM,GAAG,gBAAgB,CAAC,MAAM,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;IAC/D,CAAC;SAAM,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACpC,MAAM,GAAG,kBAAkB,CAAC,MAAM,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;IACjE,CAAC;SAAM,CAAC;QACN,qEAAqE;QACrE,MAAM,GAAG,uBAAuB,CAAC,MAAM,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;IACtE,CAAC;IAED,IAAI,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;QACtC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED,IAAI,GAAG,EAAE,CAAC;QACR,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAC/B,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,SAAS,uBAAuB,CAAC,MAAc,EAAE,QAAgB,EAAE,MAAqB;IACtF,IAAI,CAAC;QACH,4GAA4G;QAC5G,6GAA6G;QAC7G,4EAA4E;QAC5E,MAAM,gBAAgB,GAAG,MAAM,EAAE,gBAAgB,IAAI,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;QACrF,MAAM,SAAS,GAAG,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;QACzD,wCAAwC;QACxC,IAAI,EAAE,GAAG,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC3C,IAAI,EAAE,EAAE,CAAC;YACP,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAC7B,CAAC;aAAM,CAAC;YACN,EAAE,GAAG,SAAS,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAC/C,CAAC;QACD,0FAA0F;QAC1F,0FAA0F;QAC1F,0FAA0F;QAC1F,IAAI,CAAC;YACH,sBAAsB,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC;QACnE,CAAC;QAAC,MAAM,CAAC;YACP,4EAA4E;QAC9E,CAAC;QACD,OAAO,oBAAoB,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;IACvE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,wFAAwF;QACxF,kFAAkF;QAClF,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QACtD,MAAM,MAAM,GAAG,IAAI,mBAAmB,EAAE,CAAC;QACzC,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,IAAI,EAAE;YAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7D,MAAM,CAAC,QAAQ,CACb,YAAY,EACZ,UAAU,EACV,iGAAiG,EACjG,WAAW,CAAC,GAAG,CAAC,CACjB,CAAC;QACF,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU;YAAE,OAAO,CAAC,KAAK,CAAC,+CAA+C,EAAG,GAAa,CAAC,OAAO,CAAC,CAAC;QACnH,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;QAC/B,OAAO,MAAM,CAAC;IAChB,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,MAAc,EAAE,QAAQ,GAAG,UAAU,EAAE,MAAqB;IACvF,MAAM,OAAO,GAAG,qBAAqB,EAAE,CAAC;IACxC,MAAM,UAAU,GAAG,OAAO,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC9D,OAAO,oBAAoB,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;AAC7E,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB,CAC3B,MAAc,EACd,QAAgB,EAChB,MAAgC,EAChC,OAAmC,EACnC,UAAyC;IAEzC,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;IAC7C,MAAM,QAAQ,GAAG,gBAAgB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAExD,sEAAsE;IACtE,MAAM,WAAW,GAAoB,EAAE,CAAC;IACxC,SAAS,SAAS,CAAI,IAAY,EAAE,EAAW,EAAE,QAAW;QAC1D,IAAI,CAAC;YACH,OAAO,EAAE,EAAE,CAAC;QACd,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,WAAW,CAAC,IAAI,CAAC;gBACf,MAAM,EAAE,MAAM;gBACd,MAAM,EAAE,gBAAgB;gBACxB,QAAQ,EAAE,MAAM;gBAChB,QAAQ,EAAE,WAAW;gBACrB,OAAO,EAAE,iBAAiB,IAAI,aAAc,GAAa,CAAC,OAAO,EAAE;gBACnE,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;gBACjF,WAAW,EAAE,iBAAiB,CAAC,gBAAgB,EAAE,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;aACxE,CAAC,CAAC;YACH,OAAO,QAAQ,CAAC;QAClB,CAAC;IACH,CAAC;IAED,6DAA6D;IAC7D,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,mBAAmB,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC;IAE/E,mEAAmE;IACnE,WAAW,CAAC,IAAI,CACd,GAAG,SAAS,CAAC,OAAO,EAAE,GAAG,EAAE;QACzB,MAAM,YAAY,GAAG,YAAY,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;QAClE,OAAO,eAAe,CAAC,YAAY,CAAC,CAAC;IACvC,CAAC,EAAE,EAAE,CAAC,CACP,CAAC;IAEF,6CAA6C;IAC7C,MAAM,eAAe,GAAG,SAAS,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;IAE9F,8CAA8C;IAC9C,WAAW,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAE7F,gEAAgE;IAChE,WAAW,CAAC,IAAI,CACd,GAAG,SAAS,CACV,SAAS,EACT,GAAG,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,EACvF,EAAE,CACH,CACF,CAAC;IAEF,0EAA0E;IAC1E,MAAM,aAAa,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,gBAAgB,EAAE,GAAG,EAAE,CAAC;IACxG,MAAM,QAAQ,GAAG,SAAS,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,aAAa,CAAC,CAAC;IACrG,WAAW,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,eAAe,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAE/F,4EAA4E;IAC5E,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC5C,MAAM,cAAc,GAAG,SAAS,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,kBAAkB,CAAC,EAAE,EAAE,CAAC,CAAC;IACnG,KAAK,MAAM,CAAC,IAAI,cAAc,EAAE,CAAC;QAC/B,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI;YAAE,CAAC,CAAC,WAAW,CAAC,IAAI,GAAG,QAAQ,CAAC;IACzD,CAAC;IACD,WAAW,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,CAAC;IACpC,MAAM,YAAY,GAAG,SAAS,CAAC,iBAAiB,EAAE,GAAG,EAAE,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;IAC1F,KAAK,MAAM,CAAC,IAAI,YAAY,EAAE,CAAC;QAC7B,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI;YAAE,CAAC,CAAC,WAAW,CAAC,IAAI,GAAG,QAAQ,CAAC;IACzD,CAAC;IACD,WAAW,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC;IAElC,mDAAmD;IACnD,MAAM,UAAU,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC;IACrC,IAAI,MAAM,EAAE,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrD,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAa,CAAC,CAAC;QAC1F,MAAM,WAAW,GAAG,eAAe,CAAC,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QAClE,UAAU,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;IAClC,CAAC;IACD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,cAAc,GAAG,SAAS,CAAC,cAAc,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;QACtG,KAAK,MAAM,CAAC,IAAI,cAAc,EAAE,CAAC;YAC/B,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI;gBAAE,CAAC,CAAC,WAAW,CAAC,IAAI,GAAG,QAAQ,CAAC;QACzD,CAAC;QACD,WAAW,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,CAAC;IACtC,CAAC;IAED,gEAAgE;IAChE,6FAA6F;IAC7F,oGAAoG;IACpG,oGAAoG;IACpG,wFAAwF;IACxF,8FAA8F;IAC9F,qEAAqE;IACrE,MAAM,qBAAqB,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;IACvD,WAAW,CAAC,IAAI,CACd,GAAG,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,OAAO,EAAE,EAAE,6BAA6B,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CACvG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,KAAK,qBAAqB,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,KAAK,QAAQ,CACvF,CACF,CAAC;IAEF,4DAA4D;IAC5D,IAAI,eAAgD,CAAC;IACrD,IAAI,iBAAoD,CAAC;IACzD,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,UAAU,KAAK,SAAS,CAAC,CAAC;IAC7E,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,KAAK,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAC5C,eAAe,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;QACxC,iBAAiB,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAC;IACtD,CAAC;IAED,6CAA6C;IAC7C,MAAM,eAAe,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;IAElD,sDAAsD;IACtD,uBAAuB,CAAC,eAAe,CAAC,CAAC;IAEzC,6DAA6D;IAC7D,MAAM,WAAW,GAAG,gBAAgB,CAAC,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,KAAK,CAAC,CAAC;IACzG,MAAM,QAAQ,GAAG,YAAY,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAEpD,kBAAkB;IAClB,MAAM,KAAK,GAAG,cAAc,CAAC,QAAQ,EAAE,eAAe,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;IAE9E,OAAO;QACL,QAAQ;QACR,QAAQ;QACR,eAAe;QACf,QAAQ;QACR,GAAG,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,YAAY,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1G,KAAK;QACL,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACpD,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAc,EAAE,QAAQ,GAAG,YAAY,EAAE,OAAsB;IAC9F,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;IAC7C,MAAM,WAAW,GAAoB,EAAE,CAAC;IAExC,SAAS,SAAS,CAAI,IAAY,EAAE,EAAW,EAAE,QAAW;QAC1D,IAAI,CAAC;YACH,OAAO,EAAE,EAAE,CAAC;QACd,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,WAAW,CAAC,IAAI,CAAC;gBACf,MAAM,EAAE,MAAM;gBACd,MAAM,EAAE,gBAAgB;gBACxB,QAAQ,EAAE,MAAM;gBAChB,QAAQ,EAAE,WAAW;gBACrB,OAAO,EAAE,iBAAiB,IAAI,aAAc,GAAa,CAAC,OAAO,EAAE;gBACnE,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;gBACjF,WAAW,EAAE,iBAAiB,CAAC,gBAAgB,EAAE,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;aACxE,CAAC,CAAC;YACH,OAAO,QAAQ,CAAC;QAClB,CAAC;IACH,CAAC;IAED,iDAAiD;IACjD,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,SAAS,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,oBAAoB,CAAC,MAAM,CAAC,EAAE;QAC/F,IAAI,EAAE,EAAE,IAAI,EAAE,UAAU,EAAY;QACpC,WAAW,EAAE,EAAuB;KACrC,CAAC,CAAC;IAEH,yGAAyG;IACzG,MAAM,cAAc,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC;IACtE,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,WAAW,CAAC,IAAI,CAAC;YACf,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,SAAS,CAAC,CAAC,IAAI,EAAE;YACzB,QAAQ,EAAE,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ;YAC5F,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;YACtG,UAAU,EAAE,CAAC,CAAC,UAAU;YACxB,WAAW,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC;SACjE,CAAC,CAAC;IACL,CAAC;IAED,uCAAuC;IACvC,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;IAEvE,6FAA6F;IAC7F,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,iCAAiC;QACjC,MAAM,cAAc,GAAG,SAAS,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,SAAS,EAAE,kBAAkB,CAAC,EAAE,EAAE,CAAC,CAAC;QACrG,KAAK,MAAM,CAAC,IAAI,cAAc,EAAE,CAAC;YAC/B,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI;gBAAE,CAAC,CAAC,WAAW,CAAC,IAAI,GAAG,QAAQ,CAAC;QACzD,CAAC;QACD,WAAW,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,CAAC;QAEpC,+BAA+B;QAC/B,MAAM,YAAY,GAAG,SAAS,CAAC,iBAAiB,EAAE,GAAG,EAAE,CAAC,mBAAmB,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5F,KAAK,MAAM,CAAC,IAAI,YAAY,EAAE,CAAC;YAC7B,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI;gBAAE,CAAC,CAAC,WAAW,CAAC,IAAI,GAAG,QAAQ,CAAC;QACzD,CAAC;QACD,WAAW,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC;QAElC,sDAAsD;QACtD,MAAM,kBAAkB,GAAG,SAAS,CAClC,kBAAkB,EAClB,GAAG,EAAE,CAAC,gBAAgB,CAAC,SAAS,EAAE,QAAQ,EAAE,iBAAiB,CAAC,EAC9D,EAAE,CACH,CAAC;QACF,WAAW,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,CAAC;QAExC,yCAAyC;QACzC,MAAM,cAAc,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC;QACzC,IAAI,OAAO,EAAE,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvD,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAa,CAAC,CAAC;YAC1F,MAAM,WAAW,GAAG,eAAe,CAAC,OAAO,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;YACnE,cAAc,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;QACtC,CAAC;QACD,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,cAAc,GAAG,SAAS,CAAC,cAAc,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,SAAS,EAAE,cAAc,CAAC,EAAE,EAAE,CAAC,CAAC;YAClG,KAAK,MAAM,CAAC,IAAI,cAAc,EAAE,CAAC;gBAC/B,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI;oBAAE,CAAC,CAAC,WAAW,CAAC,IAAI,GAAG,QAAQ,CAAC;YACzD,CAAC;YACD,WAAW,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAED,mBAAmB;IACnB,IAAI,eAAgD,CAAC;IACrD,IAAI,iBAAoD,CAAC;IACzD,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,UAAU,KAAK,SAAS,CAAC,EAAE,CAAC;QAC7D,MAAM,KAAK,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC;QAC9C,eAAe,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;QACxC,iBAAiB,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAC;IACtD,CAAC;IAED,yEAAyE;IACzE,MAAM,QAAQ,GAAkB,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;QACxD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,CAAC;QACjC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,OAAO,IAAI,IAAI,CAAC;QAC1C,MAAM,IAAI,GAAI,IAAI,CAAC,KAAK,EAAE,IAAe,IAAI,IAAI,CAAC,IAAI,CAAC;QACvD,MAAM,WAAW,GAAW,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;QAC7D,MAAM,QAAQ,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;QAC1C,OAAO;YACL,IAAI;YACJ,MAAM,EAAE,GAAG,QAAQ,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,IAAI,EAAE;YACnD,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE;YACxB,SAAS,EAAE,IAAI;YACf,OAAO;YACP,WAAW,EAAE;gBACX;oBACE,IAAI,EAAE,QAAQ;oBACd,SAAS,EAAE,IAAI;oBACf,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;oBAC5B,OAAO;oBACP,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,MAAM,IAAI,CAAC;iBAC9B;aACF;YACD,OAAO,EAAE,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;YAC9D,UAAU,EAAE,MAAe;YAC3B,aAAa,EAAE,GAAG;YAClB,UAAU,EAAE,WAAW,CAAC,QAAQ,CAAC;YACjC,QAAQ,EAAE,WAAW,CAAC,QAAQ,CAAC;SAChC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,eAAe,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;IAClD,uBAAuB,CAAC,eAAe,CAAC,CAAC;IACzC,MAAM,WAAW,GAAG,gBAAgB,CAAC,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,KAAK,CAAC,CAAC;IAC3G,MAAM,QAAQ,GAAG,YAAY,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IACpD,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IAEvC,OAAO;QACL,QAAQ;QACR,QAAQ;QACR,eAAe,EAAE,EAAE;QACnB,QAAQ;QACR,GAAG,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,YAAY,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1G,KAAK,EAAE;YACL,UAAU;YACV,YAAY,EAAE,UAAU;YACxB,WAAW,EAAE,GAAG;YAChB,aAAa,EAAE,UAAU;YACzB,eAAe,EAAE,UAAU;YAC3B,YAAY,EAAE,CAAC;YACf,cAAc,EAAE,SAAS,CAAC,MAAM;SACjC;QACD,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACpD,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAc,EAAE,QAAQ,GAAG,UAAU,EAAE,MAAqB;IAC7F,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;IAE7C,kDAAkD;IAClD,IAAI,eAAe,GAAoB,EAAE,CAAC;IAC1C,IAAI,CAAC;QACH,uDAAuD;QACvD,MAAM,EAAE,qBAAqB,EAAE,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC;QACrE,MAAM,QAAQ,GAAG,qBAAqB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACzD,eAAe,GAAG,eAAe,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACtD,IAAI,MAAM,EAAE,MAAM,KAAK,SAAS,EAAE,CAAC;YACjC,eAAe,CAAC,IAAI,CAAC,GAAG,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;QAC9E,CAAC;QACD,+DAA+D;QAC/D,MAAM,YAAY,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC;QACvC,IAAI,MAAM,EAAE,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrD,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAa,CAAC,CAAC;YAC1F,MAAM,WAAW,GAAG,eAAe,CAAC,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;YAClE,YAAY,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;QACpC,CAAC;QACD,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,eAAe,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IAAC,OAAO,IAAI,EAAE,CAAC;QACd,kEAAkE;QAClE,eAAe,GAAG;YAChB;gBACE,MAAM,EAAE,MAAM;gBACd,MAAM,EAAE,wBAAwB;gBAChC,QAAQ,EAAE,MAAM;gBAChB,QAAQ,EAAE,WAAoB;gBAC9B,OAAO,EAAE,6DAA6D;gBACtE,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;gBACjF,WAAW,EAAE,kBAAkB;aAChC;SACF,CAAC;IACJ,CAAC;IAED,MAAM,eAAe,GAAG,YAAY,CAAC,eAAe,CAAC,CAAC;IACtD,uBAAuB,CAAC,eAAe,CAAC,CAAC;IACzC,MAAM,WAAW,GAAG,gBAAgB,CAAC,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,KAAK,CAAC,CAAC;IACzG,MAAM,QAAQ,GAAG,YAAY,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAEpD,OAAO;QACL,QAAQ;QACR,QAAQ,EAAE,EAAE;QACZ,eAAe,EAAE,EAAE;QACnB,QAAQ;QACR,GAAG,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,YAAY,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1G,KAAK,EAAE;YACL,UAAU;YACV,YAAY,EAAE,CAAC;YACf,WAAW,EAAE,CAAC;YACd,aAAa,EAAE,CAAC;YAChB,eAAe,EAAE,CAAC;YAClB,YAAY,EAAE,CAAC;YACf,cAAc,EAAE,CAAC;SAClB;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,OAAe,EAAE,SAAS,GAAG,KAAK,EAAE,MAAqB;IACvF,MAAM,OAAO,GAAmB,EAAE,CAAC;IACnC,MAAM,KAAK,GAAG,sBAAsB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAEzD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;QACzC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,cAAc,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,KAAM,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QAC1F,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,UAAoB,EAAE,MAAqB,EAAE,YAA2B;IAClG,MAAM,KAAK,GAAG,kBAAkB,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IAC3D,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAmB,EAAE,CAAC;IACnC,sFAAsF;IACtF,oFAAoF;IACpF,MAAM,WAAW,GAAG,IAAI,mBAAmB,EAAE,CAAC;IAE9C,kEAAkE;IAClE,MAAM,cAAc,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAU,CAAC,CAAC,CAAC;IAC9E,MAAM,WAAW,GAAiB,EAAE,GAAG,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC;IAE9E,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAC7B,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC;YAAE,SAAS;QACnC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;YAChD,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;YAEtC,oCAAoC;YACpC,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBAChC,CAAC,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;gBAC5C,CAAC,CAAC,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC;gBAEzB,6EAA6E;gBAC7E,gEAAgE;gBAChE,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;oBACtC,IAAI,EAAE,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;wBAC/C,CAAC,CAAC,QAAQ,GAAG,MAAM,CAAC;oBACtB,CAAC;gBACH,CAAC;YACH,CAAC;YAED,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,kBAAkB,IAAI,EAAE,EAAE,CAAC;gBAChD,CAAC,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;gBAC5C,CAAC,CAAC,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC;YAC3B,CAAC;YAED,mCAAmC;YACnC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC9B,IAAI,MAAM,CAAC,kBAAkB;gBAAE,YAAY,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;YAEvE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,cAAc,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,KAAM,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7F,CAAC;IACH,CAAC;IAED,0EAA0E;IAC1E,MAAM,eAAe,GAAG,IAAI,GAAG,EAAyB,CAAC;IACzD,MAAM,YAAY,GAAG,IAAI,GAAG,EAAoB,CAAC;IACjD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IACxD,CAAC;IACD,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAC7B,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC;IAED,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,eAAe,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;IACrF,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,MAAM,iBAAiB,GAAG,wBAAwB,CAAC,gBAAgB,CAAC,CAAC;QACrE,0EAA0E;QAC1E,KAAK,MAAM,CAAC,IAAI,iBAAiB,EAAE,CAAC;YAClC,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAC5E,IAAI,YAAY,EAAE,CAAC;gBACjB,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;QACD,4DAA4D;QAC5D,KAAK,MAAM,MAAM,IAAI,gBAAgB,EAAE,CAAC;YACtC,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,UAAU,CAAC,CAAC;YAC3E,IAAI,YAAY,EAAE,CAAC;gBACjB,IAAI,CAAC,YAAY,CAAC,cAAc;oBAAE,YAAY,CAAC,cAAc,GAAG,EAAE,CAAC;gBACnE,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;IACH,CAAC;IAED,8EAA8E;IAC9E,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAoB,CAAC;IACtD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,SAAS;QACjD,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IACD,IAAI,iBAAiB,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QAC/B,MAAM,2BAA2B,GAAG,4BAA4B,CAAC,iBAAiB,CAAC,CAAC;QACpF,KAAK,MAAM,OAAO,IAAI,2BAA2B,EAAE,CAAC;YAClD,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAClF,IAAI,YAAY,EAAE,CAAC;gBACjB,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,qBAAqB,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;IAC/D,KAAK,MAAM,OAAO,IAAI,qBAAqB,EAAE,CAAC;QAC5C,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAClF,IAAI,YAAY,EAAE,CAAC;YACjB,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAED,6EAA6E;IAC7E,0FAA0F;IAC1F,MAAM,WAAW,GAAG,IAAI,GAAG,EAA+C,CAAC;IAC3E,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAC/C,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1D,MAAM,OAAO,GAAG,qBAAqB,EAAE,CAAC;gBACxC,MAAM,EAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBACtD,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,iBAAiB,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,iFAAiF;YACjF,WAAW,CAAC,QAAQ,CAClB,oBAAoB,EACpB,UAAU,EACV,uFAAuF,EACvF,WAAW,CAAC,GAAG,CAAC,CACjB,CAAC;YACF,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU;gBAAE,OAAO,CAAC,KAAK,CAAC,iCAAiC,QAAQ,GAAG,EAAG,GAAa,CAAC,OAAO,CAAC,CAAC;QAClH,CAAC;IACH,CAAC;IAED,IAAI,WAAW,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QACzB,8EAA8E;QAC9E,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,mBAAmB,EAAE,eAAe,EAAE,kBAAkB,EAAE,oBAAoB,CAAC,CAAC,CAAC;QAEnH,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAClD,IAAI,CAAC,QAAQ;gBAAE,SAAS;YAExB,8EAA8E;YAC9E,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YAEjF,+CAA+C;YAC/C,MAAM,wBAAwB,GAAG,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;YACvG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,wBAAwB,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAED,oFAAoF;IACpF,6EAA6E;IAE7E,wCAAwC;IACxC,IAAI,WAAW,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,cAAc,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;QAC9C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,WAAW,GAAG,qBAAqB,CAAC,WAAW,EAAE,cAAc,EAAE,MAAM,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;YACxG,8FAA8F;YAC7F,MAAc,CAAC,WAAW,GAAG,WAAW,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,6DAA6D;IAC7D,IAAI,CAAC;QACH,iEAAiE;QACjE,IAAI,SAAS,GAAG,YAAY,EAAE,OAAO,CAAC;QACtC,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,+FAA+F;YAC/F,MAAM,UAAU,GACd,YAAY,EAAE,gBAAgB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC9G,SAAS,GAAG,IAAI,OAAO,CAAC;gBACtB,gBAAgB,EAAE,UAAU;gBAC5B,2BAA2B,EAAE,IAAI;gBACjC,qBAAqB,EAAE,KAAK;gBAC5B,eAAe,EAAE,UAAU;oBACzB,CAAC,CAAC,SAAS;oBACX,CAAC,CAAC;wBACE,MAAM,EAAE,IAAI;wBACZ,MAAM,EAAE,EAAE;wBACV,MAAM,EAAE,EAAE;wBACV,gBAAgB,EAAE,GAAG;wBACrB,GAAG,EAAE,CAAC,CAAC,cAAc;wBACrB,OAAO,EAAE,IAAI;wBACb,eAAe,EAAE,IAAI;wBACrB,4BAA4B,EAAE,IAAI;wBAClC,YAAY,EAAE,IAAI;qBACnB;aACN,CAAC,CAAC;YACH,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;gBAC7B,IAAI,CAAC;oBACH,SAAS,CAAC,mBAAmB,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;gBACzC,CAAC;gBAAC,MAAM,CAAC;oBACP,uBAAuB;gBACzB,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,SAAS,GAAG,cAAc,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAEnD,8EAA8E;QAC9E,0EAA0E;QAC1E,yEAAyE;QACzE,MAAM,aAAa,GAAG,iBAAiB,CACrC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,EAChC,MAAM,EAAE,SAAS,CAClB,CAAC;QACF,MAAM,SAAS,GAAG,+BAA+B,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;QAE3G,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,kBAAkB,GAAG,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YACjF,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,CAAC;YAE5C,MAAM,aAAa,GAAG,kBAAkB,CAAC,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;YACrE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,uFAAuF;QACvF,0FAA0F;QAC1F,WAAW,CAAC,QAAQ,CAClB,YAAY,EACZ,OAAO,EACP,oFAAoF,EACpF,WAAW,CAAC,GAAG,CAAC,CACjB,CAAC;QACF,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU;YAAE,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAG,GAAa,CAAC,OAAO,CAAC,CAAC;IAC/F,CAAC;IAED,0GAA0G;IAC1G,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACtD,MAAM,sBAAsB,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC,CAAC;YAC1F,MAAM,WAAW,GAAG,gBAAgB,CAClC,YAAY,CAAC,sBAAsB,CAAC,EACpC,MAAM,EACN,MAAM,CAAC,QAAQ,EACf,MAAM,EACN,MAAM,EAAE,MAAM,IAAI,KAAK,CACxB,CAAC;YACF,MAAM,CAAC,QAAQ,GAAG,YAAY,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YACrD,MAAM,CAAC,kBAAkB,GAAG,WAAW,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACnH,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,CAAC,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAED,4FAA4F;IAC5F,6FAA6F;IAC7F,gDAAgD;IAChD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,IAAI,mBAAmB,EAAE,CAAC;QACzC,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,IAAI,EAAE;YAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7D,KAAK,MAAM,CAAC,IAAI,WAAW,CAAC,KAAK,EAAE,EAAE,OAAO,IAAI,EAAE;YAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACnE,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;IACjC,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,sBAAsB,CAAC,OAAe,EAAE,SAAkB;IACjE,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAClC,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC5B,IACE,IAAI,CAAC,WAAW,EAAE;YAClB,SAAS;YACT,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;YACtB,KAAK,KAAK,cAAc;YACxB,KAAK,KAAK,MAAM;YAChB,KAAK,KAAK,aAAa;YACvB,KAAK,KAAK,OAAO;YACjB,KAAK,KAAK,MAAM,EAChB,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,GAAG,sBAAsB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QACpD,CAAC;aAAM,IACL,IAAI,CAAC,MAAM,EAAE;YACb,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACjD,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;YACxB,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC;YAC3B,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,EAC5B,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;aAAM,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/G,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;aAAM,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YACpD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -8,6 +8,11 @@
8
8
  */
9
9
  import { Project, type SourceFile } from 'ts-morph';
10
10
  import type { InferResult } from './types.js';
11
+ /**
12
+ * Walk up from a directory to find the nearest tsconfig.json.
13
+ * Returns the path or undefined if not found.
14
+ */
15
+ export declare function findTsConfig(startDir: string): string | undefined;
11
16
  /**
12
17
  * Create a ts-morph Project for analysis.
13
18
  * If startPath is provided, finds the nearest tsconfig.json and uses it