workgraph 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { BuildResult, ExecutorOptions, Project } from './types';
2
+ export declare function defaultBuildCommand(project: Project): string;
3
+ export declare function executePlan(waves: string[][], projects: Map<string, Project>, root: string, options?: ExecutorOptions): Promise<BuildResult>;
@@ -0,0 +1,156 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.defaultBuildCommand = defaultBuildCommand;
37
+ exports.executePlan = executePlan;
38
+ const child_process_1 = require("child_process");
39
+ const os = __importStar(require("os"));
40
+ const DEFAULT_CONCURRENCY = Math.max(1, os.cpus().length - 1);
41
+ function defaultBuildCommand(project) {
42
+ const scripts = project.packageJson.scripts || {};
43
+ if (scripts.build) {
44
+ return `npm run build -w ${project.name}`;
45
+ }
46
+ return `echo "No build script for ${project.name}"`;
47
+ }
48
+ async function runCommand(command, cwd) {
49
+ return new Promise((resolve) => {
50
+ const [cmd, ...args] = command.split(' ');
51
+ const proc = (0, child_process_1.spawn)(cmd, args, {
52
+ cwd,
53
+ shell: true,
54
+ stdio: 'pipe',
55
+ });
56
+ let stdout = '';
57
+ let stderr = '';
58
+ proc.stdout?.on('data', (data) => {
59
+ stdout += data.toString();
60
+ });
61
+ proc.stderr?.on('data', (data) => {
62
+ stderr += data.toString();
63
+ });
64
+ proc.on('close', (code) => {
65
+ resolve({
66
+ success: code === 0,
67
+ output: stdout,
68
+ error: stderr || undefined,
69
+ });
70
+ });
71
+ proc.on('error', (err) => {
72
+ resolve({
73
+ success: false,
74
+ output: stdout,
75
+ error: err.message,
76
+ });
77
+ });
78
+ });
79
+ }
80
+ async function runWithConcurrency(items, concurrency, fn) {
81
+ const results = [];
82
+ const executing = [];
83
+ for (const item of items) {
84
+ const p = fn(item).then((result) => {
85
+ results.push(result);
86
+ });
87
+ executing.push(p);
88
+ if (executing.length >= concurrency) {
89
+ await Promise.race(executing);
90
+ const completed = executing.filter((p) => p.settled);
91
+ for (const c of completed) {
92
+ const idx = executing.indexOf(c);
93
+ if (idx > -1)
94
+ executing.splice(idx, 1);
95
+ }
96
+ }
97
+ }
98
+ await Promise.all(executing);
99
+ return results;
100
+ }
101
+ async function executePlan(waves, projects, root, options = {}) {
102
+ const { concurrency = DEFAULT_CONCURRENCY, buildCommand = defaultBuildCommand, dryRun = false, onStart, onComplete, } = options;
103
+ const startTime = Date.now();
104
+ const results = [];
105
+ let overallSuccess = true;
106
+ for (let waveIndex = 0; waveIndex < waves.length; waveIndex++) {
107
+ const wave = waves[waveIndex];
108
+ const waveResults = await runWithConcurrency(wave, concurrency, async (projectName) => {
109
+ const project = projects.get(projectName);
110
+ if (!project) {
111
+ return {
112
+ project: projectName,
113
+ success: false,
114
+ duration: 0,
115
+ error: 'Project not found',
116
+ };
117
+ }
118
+ onStart?.(projectName);
119
+ const projectStart = Date.now();
120
+ if (dryRun) {
121
+ const cmd = buildCommand(project);
122
+ return {
123
+ project: projectName,
124
+ success: true,
125
+ duration: 0,
126
+ output: `[dry-run] Would run: ${cmd}`,
127
+ };
128
+ }
129
+ const cmd = buildCommand(project);
130
+ const result = await runCommand(cmd, root);
131
+ const duration = Date.now() - projectStart;
132
+ const buildResult = {
133
+ project: projectName,
134
+ success: result.success,
135
+ duration,
136
+ output: result.output,
137
+ error: result.error,
138
+ };
139
+ onComplete?.(buildResult);
140
+ if (!result.success) {
141
+ overallSuccess = false;
142
+ }
143
+ return buildResult;
144
+ });
145
+ results.push(...waveResults);
146
+ if (!overallSuccess) {
147
+ break;
148
+ }
149
+ }
150
+ return {
151
+ success: overallSuccess,
152
+ results,
153
+ duration: Date.now() - startTime,
154
+ };
155
+ }
156
+ //# sourceMappingURL=executor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executor.js","sourceRoot":"","sources":["../src/executor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { DependencyGraph, Project } from './types';
2
+ export declare function buildGraph(projects: Map<string, Project>): DependencyGraph;
3
+ export declare function detectCycles(graph: DependencyGraph): string[][] | null;
4
+ export declare function getTopologicalOrder(graph: DependencyGraph): string[];
5
+ export declare function formatGraph(graph: DependencyGraph): string;
package/dist/graph.js ADDED
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildGraph = buildGraph;
4
+ exports.detectCycles = detectCycles;
5
+ exports.getTopologicalOrder = getTopologicalOrder;
6
+ exports.formatGraph = formatGraph;
7
+ function buildGraph(projects) {
8
+ const deps = new Map();
9
+ const rdeps = new Map();
10
+ for (const name of projects.keys()) {
11
+ deps.set(name, new Set());
12
+ rdeps.set(name, new Set());
13
+ }
14
+ for (const [name, project] of projects) {
15
+ const allDeps = {
16
+ ...project.packageJson.dependencies,
17
+ ...project.packageJson.devDependencies,
18
+ ...project.packageJson.peerDependencies,
19
+ ...project.packageJson.optionalDependencies,
20
+ };
21
+ for (const depName of Object.keys(allDeps)) {
22
+ if (projects.has(depName)) {
23
+ deps.get(name).add(depName);
24
+ rdeps.get(depName).add(name);
25
+ }
26
+ }
27
+ }
28
+ return { projects, deps, rdeps };
29
+ }
30
+ function detectCycles(graph) {
31
+ const WHITE = 0;
32
+ const GRAY = 1;
33
+ const BLACK = 2;
34
+ const color = new Map();
35
+ const cycles = [];
36
+ for (const name of graph.projects.keys()) {
37
+ color.set(name, WHITE);
38
+ }
39
+ function dfs(node, path) {
40
+ color.set(node, GRAY);
41
+ path.push(node);
42
+ const nodeDeps = graph.deps.get(node) || new Set();
43
+ for (const dep of nodeDeps) {
44
+ const depColor = color.get(dep);
45
+ if (depColor === GRAY) {
46
+ const cycleStart = path.indexOf(dep);
47
+ cycles.push([...path.slice(cycleStart), dep]);
48
+ }
49
+ else if (depColor === WHITE) {
50
+ dfs(dep, path);
51
+ }
52
+ }
53
+ path.pop();
54
+ color.set(node, BLACK);
55
+ }
56
+ for (const name of graph.projects.keys()) {
57
+ if (color.get(name) === WHITE) {
58
+ dfs(name, []);
59
+ }
60
+ }
61
+ return cycles.length > 0 ? cycles : null;
62
+ }
63
+ function getTopologicalOrder(graph) {
64
+ const visited = new Set();
65
+ const result = [];
66
+ function visit(node) {
67
+ if (visited.has(node))
68
+ return;
69
+ visited.add(node);
70
+ const nodeDeps = graph.deps.get(node) || new Set();
71
+ for (const dep of nodeDeps) {
72
+ visit(dep);
73
+ }
74
+ result.push(node);
75
+ }
76
+ for (const name of graph.projects.keys()) {
77
+ visit(name);
78
+ }
79
+ return result;
80
+ }
81
+ function formatGraph(graph) {
82
+ const lines = [];
83
+ const sortedProjects = [...graph.projects.entries()].sort((a, b) => a[0].localeCompare(b[0]));
84
+ for (const [name, project] of sortedProjects) {
85
+ lines.push(` ${name} (${project.path})`);
86
+ const projectDeps = graph.deps.get(name) || new Set();
87
+ if (projectDeps.size === 0) {
88
+ lines.push(' (no dependencies)');
89
+ }
90
+ else {
91
+ for (const dep of [...projectDeps].sort()) {
92
+ lines.push(` -> ${dep}`);
93
+ }
94
+ }
95
+ }
96
+ return lines.join('\n');
97
+ }
98
+ //# sourceMappingURL=graph.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph.js","sourceRoot":"","sources":["../src/graph.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export * from './types';
2
+ export * from './workspace';
3
+ export * from './graph';
4
+ export * from './affected';
5
+ export * from './planner';
6
+ export * from './watcher';
7
+ export * from './executor';
package/dist/index.js ADDED
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./types"), exports);
18
+ __exportStar(require("./workspace"), exports);
19
+ __exportStar(require("./graph"), exports);
20
+ __exportStar(require("./affected"), exports);
21
+ __exportStar(require("./planner"), exports);
22
+ __exportStar(require("./watcher"), exports);
23
+ __exportStar(require("./executor"), exports);
24
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,8CAA4B;AAC5B,0CAAwB;AACxB,6CAA2B;AAC3B,4CAA0B;AAC1B,4CAA0B;AAC1B,6CAA2B"}
@@ -0,0 +1,4 @@
1
+ import { BuildPlan } from './types';
2
+ export declare function planWaves(affected: Set<string>, deps: Map<string, Set<string>>): string[][];
3
+ export declare function createBuildPlan(affected: Set<string>, deps: Map<string, Set<string>>): BuildPlan;
4
+ export declare function formatBuildPlan(plan: BuildPlan): string;
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.planWaves = planWaves;
4
+ exports.createBuildPlan = createBuildPlan;
5
+ exports.formatBuildPlan = formatBuildPlan;
6
+ function planWaves(affected, deps) {
7
+ if (affected.size === 0) {
8
+ return [];
9
+ }
10
+ const inDegree = new Map();
11
+ for (const node of affected) {
12
+ const nodeDeps = deps.get(node) || new Set();
13
+ const count = [...nodeDeps].filter(d => affected.has(d)).length;
14
+ inDegree.set(node, count);
15
+ }
16
+ const waves = [];
17
+ const remaining = new Set(affected);
18
+ while (remaining.size > 0) {
19
+ const wave = [...remaining].filter(n => inDegree.get(n) === 0);
20
+ if (wave.length === 0) {
21
+ throw new Error('Cycle detected in affected subgraph. Cannot plan build order.');
22
+ }
23
+ wave.sort();
24
+ waves.push(wave);
25
+ for (const node of wave) {
26
+ remaining.delete(node);
27
+ for (const other of remaining) {
28
+ const otherDeps = deps.get(other) || new Set();
29
+ if (otherDeps.has(node)) {
30
+ inDegree.set(other, inDegree.get(other) - 1);
31
+ }
32
+ }
33
+ }
34
+ }
35
+ return waves;
36
+ }
37
+ function createBuildPlan(affected, deps) {
38
+ const waves = planWaves(affected, deps);
39
+ return {
40
+ affected,
41
+ waves,
42
+ };
43
+ }
44
+ function formatBuildPlan(plan) {
45
+ const lines = [];
46
+ lines.push(`Affected: ${[...plan.affected].sort().join(', ')}`);
47
+ lines.push('');
48
+ lines.push('Build Plan:');
49
+ for (let i = 0; i < plan.waves.length; i++) {
50
+ const wave = plan.waves[i];
51
+ const parallelNote = wave.length > 1 ? ' (parallel)' : '';
52
+ lines.push(` Wave ${i + 1}${parallelNote}: ${wave.join(', ')}`);
53
+ }
54
+ lines.push('');
55
+ lines.push(`Total: ${plan.affected.size} projects in ${plan.waves.length} waves`);
56
+ return lines.join('\n');
57
+ }
58
+ //# sourceMappingURL=planner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"planner.js","sourceRoot":"","sources":["../src/planner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,69 @@
1
+ export interface PackageJson {
2
+ name?: string;
3
+ version?: string;
4
+ workspaces?: string[];
5
+ dependencies?: Record<string, string>;
6
+ devDependencies?: Record<string, string>;
7
+ peerDependencies?: Record<string, string>;
8
+ optionalDependencies?: Record<string, string>;
9
+ scripts?: Record<string, string>;
10
+ }
11
+ export interface Project {
12
+ name: string;
13
+ path: string;
14
+ absolutePath: string;
15
+ packageJson: PackageJson;
16
+ }
17
+ export interface DependencyGraph {
18
+ projects: Map<string, Project>;
19
+ deps: Map<string, Set<string>>;
20
+ rdeps: Map<string, Set<string>>;
21
+ }
22
+ export interface BuildPlan {
23
+ affected: Set<string>;
24
+ waves: string[][];
25
+ }
26
+ export interface BuildResult {
27
+ success: boolean;
28
+ results: ProjectBuildResult[];
29
+ duration: number;
30
+ }
31
+ export interface ProjectBuildResult {
32
+ project: string;
33
+ success: boolean;
34
+ duration: number;
35
+ output?: string;
36
+ error?: string;
37
+ }
38
+ export interface WatcherOptions {
39
+ root: string;
40
+ ignorePatterns?: string[];
41
+ debounceMs?: number;
42
+ onChange: (changedProjects: Set<string>) => void;
43
+ }
44
+ export interface ExecutorOptions {
45
+ concurrency?: number;
46
+ buildCommand?: (project: Project) => string;
47
+ dryRun?: boolean;
48
+ onStart?: (project: string) => void;
49
+ onComplete?: (result: ProjectBuildResult) => void;
50
+ }
51
+ export interface AnalyzeOptions {
52
+ root: string;
53
+ }
54
+ export interface PlanOptions {
55
+ root: string;
56
+ changed: string[];
57
+ }
58
+ export interface BuildOptions {
59
+ root: string;
60
+ changed?: string[];
61
+ concurrency?: number;
62
+ dryRun?: boolean;
63
+ }
64
+ export interface WatchOptions {
65
+ root: string;
66
+ concurrency?: number;
67
+ debounceMs?: number;
68
+ dryRun?: boolean;
69
+ }
package/dist/types.js ADDED
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import * as chokidar from 'chokidar';
2
+ import { WatcherOptions, Project } from './types';
3
+ export declare function createWatcher(options: WatcherOptions, projects: Map<string, Project>): chokidar.FSWatcher;
4
+ export declare function formatTimestamp(): string;
@@ -0,0 +1,109 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.createWatcher = createWatcher;
37
+ exports.formatTimestamp = formatTimestamp;
38
+ const chokidar = __importStar(require("chokidar"));
39
+ const workspace_1 = require("./workspace");
40
+ const DEFAULT_IGNORE_PATTERNS = [
41
+ '**/node_modules/**',
42
+ '**/dist/**',
43
+ '**/.angular/**',
44
+ '**/.nx/**',
45
+ '**/coverage/**',
46
+ '**/*.log',
47
+ '**/.git/**',
48
+ '**/tmp/**',
49
+ '**/.cache/**',
50
+ ];
51
+ const DEFAULT_DEBOUNCE_MS = 200;
52
+ function createWatcher(options, projects) {
53
+ const { root, ignorePatterns = DEFAULT_IGNORE_PATTERNS, debounceMs = DEFAULT_DEBOUNCE_MS, onChange, } = options;
54
+ let changedFiles = [];
55
+ let debounceTimer = null;
56
+ const processChanges = () => {
57
+ if (changedFiles.length === 0)
58
+ return;
59
+ const filesToProcess = [...changedFiles];
60
+ changedFiles = [];
61
+ const changedProjects = new Set();
62
+ let isGlobalChange = false;
63
+ for (const file of filesToProcess) {
64
+ if ((0, workspace_1.isRootConfig)(file, root)) {
65
+ isGlobalChange = true;
66
+ break;
67
+ }
68
+ const project = (0, workspace_1.getProjectFromPath)(file, projects, root);
69
+ if (project) {
70
+ changedProjects.add(project);
71
+ }
72
+ }
73
+ if (isGlobalChange) {
74
+ onChange(new Set(projects.keys()));
75
+ }
76
+ else if (changedProjects.size > 0) {
77
+ onChange(changedProjects);
78
+ }
79
+ };
80
+ const scheduleProcess = () => {
81
+ if (debounceTimer) {
82
+ clearTimeout(debounceTimer);
83
+ }
84
+ debounceTimer = setTimeout(processChanges, debounceMs);
85
+ };
86
+ const watcher = chokidar.watch(root, {
87
+ ignored: ignorePatterns,
88
+ persistent: true,
89
+ ignoreInitial: true,
90
+ awaitWriteFinish: {
91
+ stabilityThreshold: 100,
92
+ pollInterval: 50,
93
+ },
94
+ });
95
+ const handleChange = (filePath) => {
96
+ changedFiles.push(filePath);
97
+ scheduleProcess();
98
+ };
99
+ watcher
100
+ .on('add', handleChange)
101
+ .on('change', handleChange)
102
+ .on('unlink', handleChange);
103
+ return watcher;
104
+ }
105
+ function formatTimestamp() {
106
+ const now = new Date();
107
+ return now.toLocaleTimeString('en-US', { hour12: false });
108
+ }
109
+ //# sourceMappingURL=watcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"watcher.js","sourceRoot":"","sources":["../src/watcher.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkBA,sCAuEC;AAED,0CAGC;AA9FD,mDAAqC;AAErC,2CAA+D;AAE/D,MAAM,uBAAuB,GAAG;IAC9B,oBAAoB;IACpB,YAAY;IACZ,gBAAgB;IAChB,WAAW;IACX,gBAAgB;IAChB,UAAU;IACV,YAAY;IACZ,WAAW;IACX,cAAc;CACf,CAAC;AAEF,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAEhC,SAAgB,aAAa,CAC3B,OAAuB,EACvB,QAA8B;IAE9B,MAAM,EACJ,IAAI,EACJ,cAAc,GAAG,uBAAuB,EACxC,UAAU,GAAG,mBAAmB,EAChC,QAAQ,GACT,GAAG,OAAO,CAAC;IAEZ,IAAI,YAAY,GAAa,EAAE,CAAC;IAChC,IAAI,aAAa,GAA0B,IAAI,CAAC;IAEhD,MAAM,cAAc,GAAG,GAAG,EAAE;QAC1B,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAEtC,MAAM,cAAc,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC;QACzC,YAAY,GAAG,EAAE,CAAC;QAElB,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;QAC1C,IAAI,cAAc,GAAG,KAAK,CAAC;QAE3B,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;YAClC,IAAI,IAAA,wBAAY,EAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;gBAC7B,cAAc,GAAG,IAAI,CAAC;gBACtB,MAAM;YACR,CAAC;YAED,MAAM,OAAO,GAAG,IAAA,8BAAkB,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;YACzD,IAAI,OAAO,EAAE,CAAC;gBACZ,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;QAED,IAAI,cAAc,EAAE,CAAC;YAEnB,QAAQ,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACrC,CAAC;aAAM,IAAI,eAAe,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YACpC,QAAQ,CAAC,eAAe,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,GAAG,EAAE;QAC3B,IAAI,aAAa,EAAE,CAAC;YAClB,YAAY,CAAC,aAAa,CAAC,CAAC;QAC9B,CAAC;QACD,aAAa,GAAG,UAAU,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;IACzD,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE;QACnC,OAAO,EAAE,cAAc;QACvB,UAAU,EAAE,IAAI;QAChB,aAAa,EAAE,IAAI;QACnB,gBAAgB,EAAE;YAChB,kBAAkB,EAAE,GAAG;YACvB,YAAY,EAAE,EAAE;SACjB;KACF,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,CAAC,QAAgB,EAAE,EAAE;QACxC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC5B,eAAe,EAAE,CAAC;IACpB,CAAC,CAAC;IAEF,OAAO;SACJ,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC;SACvB,EAAE,CAAC,QAAQ,EAAE,YAAY,CAAC;SAC1B,EAAE,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IAE9B,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAgB,eAAe;IAC7B,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,OAAO,GAAG,CAAC,kBAAkB,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;AAC5D,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { Project } from './types';
2
+ export declare function loadWorkspaceProjects(root: string): Promise<Map<string, Project>>;
3
+ export declare function getProjectFromPath(filePath: string, projects: Map<string, Project>, root: string): string | null;
4
+ export declare function isRootConfig(filePath: string, root: string): boolean;