aspectcode 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/aspectcode.js +4 -0
- package/dist/cli.d.ts +102 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +46 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/deps.d.ts +3 -0
- package/dist/commands/deps.d.ts.map +1 -0
- package/dist/commands/deps.js +39 -0
- package/dist/commands/deps.js.map +1 -0
- package/dist/commands/generate.d.ts +8 -0
- package/dist/commands/generate.d.ts.map +1 -0
- package/dist/commands/generate.js +176 -0
- package/dist/commands/generate.js.map +1 -0
- package/dist/commands/impact.d.ts +9 -0
- package/dist/commands/impact.d.ts.map +1 -0
- package/dist/commands/impact.js +162 -0
- package/dist/commands/impact.js.map +1 -0
- package/dist/commands/init.d.ts +11 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +204 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/settings.d.ts +13 -0
- package/dist/commands/settings.d.ts.map +1 -0
- package/dist/commands/settings.js +196 -0
- package/dist/commands/settings.js.map +1 -0
- package/dist/commands/watch.d.ts +6 -0
- package/dist/commands/watch.d.ts.map +1 -0
- package/dist/commands/watch.js +181 -0
- package/dist/commands/watch.js.map +1 -0
- package/dist/config.d.ts +38 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +119 -0
- package/dist/config.js.map +1 -0
- package/dist/connections.d.ts +24 -0
- package/dist/connections.d.ts.map +1 -0
- package/dist/connections.js +89 -0
- package/dist/connections.js.map +1 -0
- package/dist/logger.d.ts +45 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +116 -0
- package/dist/logger.js.map +1 -0
- package/dist/main.d.ts +12 -0
- package/dist/main.d.ts.map +1 -0
- package/dist/main.js +275 -0
- package/dist/main.js.map +1 -0
- package/dist/version.d.ts +8 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +55 -0
- package/dist/version.js.map +1 -0
- package/dist/workspace.d.ts +34 -0
- package/dist/workspace.d.ts.map +1 -0
- package/dist/workspace.js +94 -0
- package/dist/workspace.js.map +1 -0
- package/package.json +53 -0
package/dist/config.d.ts
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* aspectcode CLI — config file handling.
|
|
3
|
+
*
|
|
4
|
+
* The CLI looks for `aspectcode.json` in the workspace root.
|
|
5
|
+
* This replaces the extension's `.aspect/.settings.json`.
|
|
6
|
+
*/
|
|
7
|
+
export declare const CONFIG_FILE_NAME = "aspectcode.json";
|
|
8
|
+
/** Shape of `aspectcode.json`. */
|
|
9
|
+
export interface AspectCodeConfig {
|
|
10
|
+
/** Override output directory (relative to workspace root). */
|
|
11
|
+
outDir?: string;
|
|
12
|
+
/** Instructions mode (safe-only for now). */
|
|
13
|
+
instructionsMode?: 'safe';
|
|
14
|
+
/** Auto-update trigger mode. */
|
|
15
|
+
updateRate?: 'manual' | 'onChange' | 'idle';
|
|
16
|
+
/** Extra directories to exclude from analysis. */
|
|
17
|
+
exclude?: string[];
|
|
18
|
+
}
|
|
19
|
+
export type RawAspectCodeConfig = Record<string, unknown>;
|
|
20
|
+
/** Default config written by `aspectcode init`. */
|
|
21
|
+
export declare function defaultConfig(): AspectCodeConfig;
|
|
22
|
+
/**
|
|
23
|
+
* Load `aspectcode.json` from `root`. Returns `undefined` if not found.
|
|
24
|
+
* Throws on parse errors.
|
|
25
|
+
*/
|
|
26
|
+
export declare function loadConfig(root: string): AspectCodeConfig | undefined;
|
|
27
|
+
/**
|
|
28
|
+
* Load raw `aspectcode.json` object from `root`.
|
|
29
|
+
* Returns `undefined` if not found.
|
|
30
|
+
*/
|
|
31
|
+
export declare function loadRawConfig(root: string): RawAspectCodeConfig | undefined;
|
|
32
|
+
/**
|
|
33
|
+
* Save raw config object to `aspectcode.json`.
|
|
34
|
+
*/
|
|
35
|
+
export declare function saveRawConfig(root: string, config: RawAspectCodeConfig): void;
|
|
36
|
+
/** Resolve the config file path for a given root. */
|
|
37
|
+
export declare function configPath(root: string): string;
|
|
38
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,eAAO,MAAM,gBAAgB,oBAAoB,CAAC;AAElD,kCAAkC;AAClC,MAAM,WAAW,gBAAgB;IAC/B,8DAA8D;IAC9D,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,6CAA6C;IAC7C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,gCAAgC;IAChC,UAAU,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,MAAM,CAAC;IAE5C,kDAAkD;IAClD,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE1D,mDAAmD;AACnD,wBAAgB,aAAa,IAAI,gBAAgB,CAKhD;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CA4BrE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS,CAiB3E;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,GAAG,IAAI,CAI7E;AAED,qDAAqD;AACrD,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/C"}
|
package/dist/config.js
ADDED
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* aspectcode CLI — config file handling.
|
|
4
|
+
*
|
|
5
|
+
* The CLI looks for `aspectcode.json` in the workspace root.
|
|
6
|
+
* This replaces the extension's `.aspect/.settings.json`.
|
|
7
|
+
*/
|
|
8
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
9
|
+
if (k2 === undefined) k2 = k;
|
|
10
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
11
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
12
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
13
|
+
}
|
|
14
|
+
Object.defineProperty(o, k2, desc);
|
|
15
|
+
}) : (function(o, m, k, k2) {
|
|
16
|
+
if (k2 === undefined) k2 = k;
|
|
17
|
+
o[k2] = m[k];
|
|
18
|
+
}));
|
|
19
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
20
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
21
|
+
}) : function(o, v) {
|
|
22
|
+
o["default"] = v;
|
|
23
|
+
});
|
|
24
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
25
|
+
var ownKeys = function(o) {
|
|
26
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
27
|
+
var ar = [];
|
|
28
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
29
|
+
return ar;
|
|
30
|
+
};
|
|
31
|
+
return ownKeys(o);
|
|
32
|
+
};
|
|
33
|
+
return function (mod) {
|
|
34
|
+
if (mod && mod.__esModule) return mod;
|
|
35
|
+
var result = {};
|
|
36
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
37
|
+
__setModuleDefault(result, mod);
|
|
38
|
+
return result;
|
|
39
|
+
};
|
|
40
|
+
})();
|
|
41
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
+
exports.CONFIG_FILE_NAME = void 0;
|
|
43
|
+
exports.defaultConfig = defaultConfig;
|
|
44
|
+
exports.loadConfig = loadConfig;
|
|
45
|
+
exports.loadRawConfig = loadRawConfig;
|
|
46
|
+
exports.saveRawConfig = saveRawConfig;
|
|
47
|
+
exports.configPath = configPath;
|
|
48
|
+
const fs = __importStar(require("fs"));
|
|
49
|
+
const path = __importStar(require("path"));
|
|
50
|
+
exports.CONFIG_FILE_NAME = 'aspectcode.json';
|
|
51
|
+
/** Default config written by `aspectcode init`. */
|
|
52
|
+
function defaultConfig() {
|
|
53
|
+
return {
|
|
54
|
+
instructionsMode: 'safe',
|
|
55
|
+
updateRate: 'onChange',
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Load `aspectcode.json` from `root`. Returns `undefined` if not found.
|
|
60
|
+
* Throws on parse errors.
|
|
61
|
+
*/
|
|
62
|
+
function loadConfig(root) {
|
|
63
|
+
const configPath = path.join(root, exports.CONFIG_FILE_NAME);
|
|
64
|
+
if (!fs.existsSync(configPath))
|
|
65
|
+
return undefined;
|
|
66
|
+
const raw = fs.readFileSync(configPath, 'utf-8');
|
|
67
|
+
try {
|
|
68
|
+
const parsed = JSON.parse(raw);
|
|
69
|
+
// Backward compat: extension-style mode key.
|
|
70
|
+
if (!parsed.updateRate && parsed.autoRegenerateKb) {
|
|
71
|
+
parsed.updateRate =
|
|
72
|
+
parsed.autoRegenerateKb === 'off'
|
|
73
|
+
? 'manual'
|
|
74
|
+
: parsed.autoRegenerateKb === 'onSave'
|
|
75
|
+
? 'onChange'
|
|
76
|
+
: 'idle';
|
|
77
|
+
}
|
|
78
|
+
// Safe-only policy.
|
|
79
|
+
parsed.instructionsMode = 'safe';
|
|
80
|
+
return parsed;
|
|
81
|
+
}
|
|
82
|
+
catch {
|
|
83
|
+
throw new Error(`Failed to parse ${exports.CONFIG_FILE_NAME}: invalid JSON`);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Load raw `aspectcode.json` object from `root`.
|
|
88
|
+
* Returns `undefined` if not found.
|
|
89
|
+
*/
|
|
90
|
+
function loadRawConfig(root) {
|
|
91
|
+
const filePath = path.join(root, exports.CONFIG_FILE_NAME);
|
|
92
|
+
if (!fs.existsSync(filePath))
|
|
93
|
+
return undefined;
|
|
94
|
+
const raw = fs.readFileSync(filePath, 'utf-8');
|
|
95
|
+
let parsed;
|
|
96
|
+
try {
|
|
97
|
+
parsed = JSON.parse(raw);
|
|
98
|
+
}
|
|
99
|
+
catch {
|
|
100
|
+
throw new Error(`Failed to parse ${exports.CONFIG_FILE_NAME}: invalid JSON`);
|
|
101
|
+
}
|
|
102
|
+
if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed)) {
|
|
103
|
+
throw new Error(`Failed to parse ${exports.CONFIG_FILE_NAME}: expected JSON object`);
|
|
104
|
+
}
|
|
105
|
+
return parsed;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Save raw config object to `aspectcode.json`.
|
|
109
|
+
*/
|
|
110
|
+
function saveRawConfig(root, config) {
|
|
111
|
+
const filePath = configPath(root);
|
|
112
|
+
const content = JSON.stringify(config, null, 2) + '\n';
|
|
113
|
+
fs.writeFileSync(filePath, content, 'utf-8');
|
|
114
|
+
}
|
|
115
|
+
/** Resolve the config file path for a given root. */
|
|
116
|
+
function configPath(root) {
|
|
117
|
+
return path.join(root, exports.CONFIG_FILE_NAME);
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyBH,sCAKC;AAMD,gCA4BC;AAMD,sCAiBC;AAKD,sCAIC;AAGD,gCAEC;AAnGD,uCAAyB;AACzB,2CAA6B;AAEhB,QAAA,gBAAgB,GAAG,iBAAiB,CAAC;AAmBlD,mDAAmD;AACnD,SAAgB,aAAa;IAC3B,OAAO;QACL,gBAAgB,EAAE,MAAM;QACxB,UAAU,EAAE,UAAU;KACvB,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAgB,UAAU,CAAC,IAAY;IACrC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,wBAAgB,CAAC,CAAC;IACrD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,SAAS,CAAC;IAEjD,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACjD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAG5B,CAAC;QAEF,6CAA6C;QAC7C,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;YAClD,MAAM,CAAC,UAAU;gBACf,MAAM,CAAC,gBAAgB,KAAK,KAAK;oBAC/B,CAAC,CAAC,QAAQ;oBACV,CAAC,CAAC,MAAM,CAAC,gBAAgB,KAAK,QAAQ;wBACpC,CAAC,CAAC,UAAU;wBACZ,CAAC,CAAC,MAAM,CAAC;QACjB,CAAC;QAED,oBAAoB;QACpB,MAAM,CAAC,gBAAgB,GAAG,MAAM,CAAC;QAEjC,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,mBAAmB,wBAAgB,gBAAgB,CAAC,CAAC;IACvE,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAgB,aAAa,CAAC,IAAY;IACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,wBAAgB,CAAC,CAAC;IACnD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,SAAS,CAAC;IAE/C,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC/C,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,mBAAmB,wBAAgB,gBAAgB,CAAC,CAAC;IACvE,CAAC;IAED,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACnE,MAAM,IAAI,KAAK,CAAC,mBAAmB,wBAAgB,wBAAwB,CAAC,CAAC;IAC/E,CAAC;IAED,OAAO,MAA6B,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,SAAgB,aAAa,CAAC,IAAY,EAAE,MAA2B;IACrE,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;IACvD,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAC/C,CAAC;AAED,qDAAqD;AACrD,SAAgB,UAAU,CAAC,IAAY;IACrC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,wBAAgB,CAAC,CAAC;AAC3C,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared dependency-connection utilities for CLI commands.
|
|
3
|
+
*
|
|
4
|
+
* Extracted from deps.ts so that both `deps` and `generate` can use
|
|
5
|
+
* them without a command→command import dependency.
|
|
6
|
+
*/
|
|
7
|
+
import type { AspectCodeConfig } from './config';
|
|
8
|
+
import type { Logger } from './logger';
|
|
9
|
+
export interface DependencyConnection {
|
|
10
|
+
source: string;
|
|
11
|
+
target: string;
|
|
12
|
+
type: string;
|
|
13
|
+
symbols: string[];
|
|
14
|
+
lines: number[];
|
|
15
|
+
bidirectional: boolean;
|
|
16
|
+
}
|
|
17
|
+
export interface FilteredConnectionsResult {
|
|
18
|
+
connections: DependencyConnection[];
|
|
19
|
+
fileFilter?: string;
|
|
20
|
+
error?: string;
|
|
21
|
+
}
|
|
22
|
+
export declare function filterConnectionsByFile(connections: DependencyConnection[], root: string, file?: string): FilteredConnectionsResult;
|
|
23
|
+
export declare function collectConnections(root: string, config: AspectCodeConfig | undefined, log: Logger): Promise<DependencyConnection[]>;
|
|
24
|
+
//# sourceMappingURL=connections.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connections.d.ts","sourceRoot":"","sources":["../src/connections.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAIvC,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,yBAAyB;IACxC,WAAW,EAAE,oBAAoB,EAAE,CAAC;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAWD,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,oBAAoB,EAAE,EACnC,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,MAAM,GACZ,yBAAyB,CAmB3B;AAED,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,gBAAgB,GAAG,SAAS,EACpC,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAkBjC"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Shared dependency-connection utilities for CLI commands.
|
|
4
|
+
*
|
|
5
|
+
* Extracted from deps.ts so that both `deps` and `generate` can use
|
|
6
|
+
* them without a command→command import dependency.
|
|
7
|
+
*/
|
|
8
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
9
|
+
if (k2 === undefined) k2 = k;
|
|
10
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
11
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
12
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
13
|
+
}
|
|
14
|
+
Object.defineProperty(o, k2, desc);
|
|
15
|
+
}) : (function(o, m, k, k2) {
|
|
16
|
+
if (k2 === undefined) k2 = k;
|
|
17
|
+
o[k2] = m[k];
|
|
18
|
+
}));
|
|
19
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
20
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
21
|
+
}) : function(o, v) {
|
|
22
|
+
o["default"] = v;
|
|
23
|
+
});
|
|
24
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
25
|
+
var ownKeys = function(o) {
|
|
26
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
27
|
+
var ar = [];
|
|
28
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
29
|
+
return ar;
|
|
30
|
+
};
|
|
31
|
+
return ownKeys(o);
|
|
32
|
+
};
|
|
33
|
+
return function (mod) {
|
|
34
|
+
if (mod && mod.__esModule) return mod;
|
|
35
|
+
var result = {};
|
|
36
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
37
|
+
__setModuleDefault(result, mod);
|
|
38
|
+
return result;
|
|
39
|
+
};
|
|
40
|
+
})();
|
|
41
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
+
exports.filterConnectionsByFile = filterConnectionsByFile;
|
|
43
|
+
exports.collectConnections = collectConnections;
|
|
44
|
+
const path = __importStar(require("path"));
|
|
45
|
+
const core_1 = require("@aspectcode/core");
|
|
46
|
+
const logger_1 = require("./logger");
|
|
47
|
+
const workspace_1 = require("./workspace");
|
|
48
|
+
function normalizeWorkspacePath(candidate, root) {
|
|
49
|
+
const abs = path.resolve(root, candidate);
|
|
50
|
+
const rel = path.relative(root, abs);
|
|
51
|
+
if (rel.startsWith('..') || path.isAbsolute(rel)) {
|
|
52
|
+
return undefined;
|
|
53
|
+
}
|
|
54
|
+
return rel.replace(/\\/g, '/');
|
|
55
|
+
}
|
|
56
|
+
function filterConnectionsByFile(connections, root, file) {
|
|
57
|
+
if (!file) {
|
|
58
|
+
return { connections };
|
|
59
|
+
}
|
|
60
|
+
const fileRel = normalizeWorkspacePath(file, root);
|
|
61
|
+
if (!fileRel) {
|
|
62
|
+
return {
|
|
63
|
+
connections: [],
|
|
64
|
+
error: `--file must point to a file inside the workspace: ${logger_1.fmt.bold(file)}`,
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
return {
|
|
68
|
+
connections: connections.filter((row) => row.source === fileRel || row.target === fileRel),
|
|
69
|
+
fileFilter: fileRel,
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
async function collectConnections(root, config, log) {
|
|
73
|
+
const workspace = await (0, workspace_1.loadWorkspaceFiles)(root, config, log, { quiet: true });
|
|
74
|
+
if (workspace.discoveredPaths.length === 0) {
|
|
75
|
+
return [];
|
|
76
|
+
}
|
|
77
|
+
const analyzer = new core_1.DependencyAnalyzer();
|
|
78
|
+
analyzer.setFileContentsCache(workspace.absoluteFiles);
|
|
79
|
+
const edges = await analyzer.analyzeDependencies(workspace.discoveredPaths, workspace.host);
|
|
80
|
+
return edges.map((edge) => ({
|
|
81
|
+
source: path.relative(root, edge.source).replace(/\\/g, '/'),
|
|
82
|
+
target: path.relative(root, edge.target).replace(/\\/g, '/'),
|
|
83
|
+
type: edge.type,
|
|
84
|
+
symbols: edge.symbols,
|
|
85
|
+
lines: edge.lines,
|
|
86
|
+
bidirectional: edge.bidirectional,
|
|
87
|
+
}));
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=connections.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connections.js","sourceRoot":"","sources":["../src/connections.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCH,0DAuBC;AAED,gDAsBC;AAhFD,2CAA6B;AAC7B,2CAE0B;AAG1B,qCAA+B;AAC/B,2CAAiD;AAiBjD,SAAS,sBAAsB,CAAC,SAAiB,EAAE,IAAY;IAC7D,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACrC,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACjD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACjC,CAAC;AAED,SAAgB,uBAAuB,CACrC,WAAmC,EACnC,IAAY,EACZ,IAAa;IAEb,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,EAAE,WAAW,EAAE,CAAC;IACzB,CAAC;IAED,MAAM,OAAO,GAAG,sBAAsB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACnD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;YACL,WAAW,EAAE,EAAE;YACf,KAAK,EAAE,qDAAqD,YAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;SAC7E,CAAC;IACJ,CAAC;IAED,OAAO;QACL,WAAW,EAAE,WAAW,CAAC,MAAM,CAC7B,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,OAAO,IAAI,GAAG,CAAC,MAAM,KAAK,OAAO,CAC1D;QACD,UAAU,EAAE,OAAO;KACpB,CAAC;AACJ,CAAC;AAEM,KAAK,UAAU,kBAAkB,CACtC,IAAY,EACZ,MAAoC,EACpC,GAAW;IAEX,MAAM,SAAS,GAAG,MAAM,IAAA,8BAAkB,EAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/E,IAAI,SAAS,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3C,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,yBAAkB,EAAE,CAAC;IAC1C,QAAQ,CAAC,oBAAoB,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IACvD,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,mBAAmB,CAAC,SAAS,CAAC,eAAe,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;IAE5F,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC1B,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;QAC5D,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;QAC5D,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,aAAa,EAAE,IAAI,CAAC,aAAa;KAClC,CAAC,CAAC,CAAC;AACN,CAAC"}
|
package/dist/logger.d.ts
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* aspectcode CLI — zero-dependency logger with optional color.
|
|
3
|
+
*
|
|
4
|
+
* Respects NO_COLOR / FORCE_COLOR environment variables and --no-color flag.
|
|
5
|
+
*/
|
|
6
|
+
/** Call before creating a logger to force color off (e.g. --no-color flag). */
|
|
7
|
+
export declare function disableColor(): void;
|
|
8
|
+
export interface Logger {
|
|
9
|
+
info(msg: string): void;
|
|
10
|
+
success(msg: string): void;
|
|
11
|
+
warn(msg: string): void;
|
|
12
|
+
error(msg: string): void;
|
|
13
|
+
debug(msg: string): void;
|
|
14
|
+
blank(): void;
|
|
15
|
+
}
|
|
16
|
+
export declare function createLogger(opts?: {
|
|
17
|
+
verbose?: boolean;
|
|
18
|
+
quiet?: boolean;
|
|
19
|
+
}): Logger;
|
|
20
|
+
export interface Spinner {
|
|
21
|
+
/** Update the spinner text (same line). */
|
|
22
|
+
update(msg: string): void;
|
|
23
|
+
/** Stop the spinner with a success checkmark. */
|
|
24
|
+
stop(msg: string): void;
|
|
25
|
+
/** Stop the spinner with a failure mark. */
|
|
26
|
+
fail(msg: string): void;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Create a stderr-based spinner that doesn't pollute stdout.
|
|
30
|
+
* Falls back to static lines on non-TTY or when quiet.
|
|
31
|
+
*/
|
|
32
|
+
export declare function createSpinner(initialMsg: string, opts?: {
|
|
33
|
+
quiet?: boolean;
|
|
34
|
+
}): Spinner;
|
|
35
|
+
/** Formatting helpers (exported for use in commands). */
|
|
36
|
+
export declare const fmt: {
|
|
37
|
+
readonly bold: (t: string) => string;
|
|
38
|
+
readonly dim: (t: string) => string;
|
|
39
|
+
readonly green: (t: string) => string;
|
|
40
|
+
readonly yellow: (t: string) => string;
|
|
41
|
+
readonly red: (t: string) => string;
|
|
42
|
+
readonly cyan: (t: string) => string;
|
|
43
|
+
readonly blue: (t: string) => string;
|
|
44
|
+
};
|
|
45
|
+
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,+EAA+E;AAC/E,wBAAgB,YAAY,IAAI,IAAI,CAEnC;AAwBD,MAAM,WAAW,MAAM;IACrB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,IAAI,IAAI,CAAC;CACf;AAED,wBAAgB,YAAY,CAAC,IAAI,GAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,MAAM,CAwBtF;AAMD,MAAM,WAAW,OAAO;IACtB,2CAA2C;IAC3C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,iDAAiD;IACjD,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,4CAA4C;IAC5C,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAiDrF;AAED,yDAAyD;AACzD,eAAO,MAAM,GAAG;uBAhHC,MAAM;sBACP,MAAM;wBACJ,MAAM;yBACL,MAAM;sBACT,MAAM;uBACL,MAAM;uBACN,MAAM;CA0GkD,CAAC"}
|
package/dist/logger.js
ADDED
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* aspectcode CLI — zero-dependency logger with optional color.
|
|
4
|
+
*
|
|
5
|
+
* Respects NO_COLOR / FORCE_COLOR environment variables and --no-color flag.
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.fmt = void 0;
|
|
9
|
+
exports.disableColor = disableColor;
|
|
10
|
+
exports.createLogger = createLogger;
|
|
11
|
+
exports.createSpinner = createSpinner;
|
|
12
|
+
let _colorDisabled = false;
|
|
13
|
+
/** Call before creating a logger to force color off (e.g. --no-color flag). */
|
|
14
|
+
function disableColor() {
|
|
15
|
+
_colorDisabled = true;
|
|
16
|
+
}
|
|
17
|
+
function colorEnabled() {
|
|
18
|
+
if (_colorDisabled)
|
|
19
|
+
return false;
|
|
20
|
+
return (process.env['FORCE_COLOR'] === '1' ||
|
|
21
|
+
(!process.env['NO_COLOR'] &&
|
|
22
|
+
!process.env['CI'] &&
|
|
23
|
+
process.stdout.isTTY === true));
|
|
24
|
+
}
|
|
25
|
+
function wrap(code, reset, text) {
|
|
26
|
+
return colorEnabled() ? `\x1b[${code}m${text}\x1b[${reset}m` : text;
|
|
27
|
+
}
|
|
28
|
+
const bold = (t) => wrap('1', '22', t);
|
|
29
|
+
const dim = (t) => wrap('2', '22', t);
|
|
30
|
+
const green = (t) => wrap('32', '39', t);
|
|
31
|
+
const yellow = (t) => wrap('33', '39', t);
|
|
32
|
+
const red = (t) => wrap('31', '39', t);
|
|
33
|
+
const cyan = (t) => wrap('36', '39', t);
|
|
34
|
+
const blue = (t) => wrap('34', '39', t);
|
|
35
|
+
function createLogger(opts = {}) {
|
|
36
|
+
const isQuiet = opts.quiet ?? false;
|
|
37
|
+
const isVerbose = opts.verbose ?? false;
|
|
38
|
+
return {
|
|
39
|
+
info(msg) {
|
|
40
|
+
if (!isQuiet)
|
|
41
|
+
console.log(msg);
|
|
42
|
+
},
|
|
43
|
+
success(msg) {
|
|
44
|
+
if (!isQuiet)
|
|
45
|
+
console.log(green(bold('✔')) + ' ' + msg);
|
|
46
|
+
},
|
|
47
|
+
warn(msg) {
|
|
48
|
+
console.warn(yellow(bold('⚠')) + ' ' + msg);
|
|
49
|
+
},
|
|
50
|
+
error(msg) {
|
|
51
|
+
console.error(red(bold('✖')) + ' ' + msg);
|
|
52
|
+
},
|
|
53
|
+
debug(msg) {
|
|
54
|
+
if (isVerbose && !isQuiet)
|
|
55
|
+
console.log(dim(msg));
|
|
56
|
+
},
|
|
57
|
+
blank() {
|
|
58
|
+
if (!isQuiet)
|
|
59
|
+
console.log();
|
|
60
|
+
},
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
// ── Spinner ─────────────────────────────────────────────────
|
|
64
|
+
const SPINNER_FRAMES = ['⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏'];
|
|
65
|
+
/**
|
|
66
|
+
* Create a stderr-based spinner that doesn't pollute stdout.
|
|
67
|
+
* Falls back to static lines on non-TTY or when quiet.
|
|
68
|
+
*/
|
|
69
|
+
function createSpinner(initialMsg, opts) {
|
|
70
|
+
const isQuiet = opts?.quiet ?? false;
|
|
71
|
+
const isTTY = process.stderr.isTTY === true;
|
|
72
|
+
if (isQuiet) {
|
|
73
|
+
// Silent — no output at all.
|
|
74
|
+
return {
|
|
75
|
+
update() { },
|
|
76
|
+
stop() { },
|
|
77
|
+
fail(msg) { process.stderr.write(red(bold('✖')) + ' ' + msg + '\n'); },
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
if (!isTTY) {
|
|
81
|
+
// Non-TTY — static lines, no animation.
|
|
82
|
+
process.stderr.write(initialMsg + '\n');
|
|
83
|
+
return {
|
|
84
|
+
update(msg) { process.stderr.write(msg + '\n'); },
|
|
85
|
+
stop(msg) { process.stderr.write(green(bold('✔')) + ' ' + msg + '\n'); },
|
|
86
|
+
fail(msg) { process.stderr.write(red(bold('✖')) + ' ' + msg + '\n'); },
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
// TTY — animated spinner on stderr.
|
|
90
|
+
let frame = 0;
|
|
91
|
+
let currentMsg = initialMsg;
|
|
92
|
+
const interval = setInterval(() => {
|
|
93
|
+
const indicator = cyan(SPINNER_FRAMES[frame % SPINNER_FRAMES.length]);
|
|
94
|
+
process.stderr.write(`\r\x1b[K${indicator} ${currentMsg}`);
|
|
95
|
+
frame++;
|
|
96
|
+
}, 80);
|
|
97
|
+
// Show initial frame immediately.
|
|
98
|
+
const indicator = cyan(SPINNER_FRAMES[0]);
|
|
99
|
+
process.stderr.write(`${indicator} ${currentMsg}`);
|
|
100
|
+
return {
|
|
101
|
+
update(msg) {
|
|
102
|
+
currentMsg = msg;
|
|
103
|
+
},
|
|
104
|
+
stop(msg) {
|
|
105
|
+
clearInterval(interval);
|
|
106
|
+
process.stderr.write(`\r\x1b[K${green(bold('✔'))} ${msg}\n`);
|
|
107
|
+
},
|
|
108
|
+
fail(msg) {
|
|
109
|
+
clearInterval(interval);
|
|
110
|
+
process.stderr.write(`\r\x1b[K${red(bold('✖'))} ${msg}\n`);
|
|
111
|
+
},
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
/** Formatting helpers (exported for use in commands). */
|
|
115
|
+
exports.fmt = { bold, dim, green, yellow, red, cyan, blue };
|
|
116
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"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"}
|
package/dist/main.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* aspectcode CLI — main entry point.
|
|
3
|
+
*
|
|
4
|
+
* Hand-rolled argv parser (no external deps). Routes to command handlers.
|
|
5
|
+
* Flag definitions live in cli.ts (FLAG_DEFS) — parseArgs and printHelp
|
|
6
|
+
* derive from that single source of truth.
|
|
7
|
+
*/
|
|
8
|
+
import type { CliArgs } from './cli';
|
|
9
|
+
export declare function parseArgs(argv: string[]): CliArgs;
|
|
10
|
+
/** Entry point — called from bin/aspectcode.js. */
|
|
11
|
+
export declare function run(): void;
|
|
12
|
+
//# sourceMappingURL=main.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,OAAO,EAA2B,MAAM,OAAO,CAAC;AA+B9D,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAoEjD;AAwKD,mDAAmD;AACnD,wBAAgB,GAAG,IAAI,IAAI,CAK1B"}
|