@thanhvn14/csvibe 0.1.1 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.csvibe/state/approaches.json +1 -0
- package/README.md +142 -3
- package/dist/commands/brainstorm.d.ts +16 -0
- package/dist/commands/brainstorm.d.ts.map +1 -0
- package/dist/commands/brainstorm.js +186 -0
- package/dist/commands/brainstorm.js.map +1 -0
- package/dist/commands/doctor.d.ts +9 -0
- package/dist/commands/doctor.d.ts.map +1 -0
- package/dist/commands/doctor.js +72 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/help.d.ts.map +1 -1
- package/dist/commands/help.js +13 -7
- package/dist/commands/help.js.map +1 -1
- package/dist/commands/index.d.ts +3 -0
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +7 -1
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/init/index.d.ts +7 -0
- package/dist/commands/init/index.d.ts.map +1 -0
- package/dist/commands/init/index.js +10 -0
- package/dist/commands/init/index.js.map +1 -0
- package/dist/commands/init/init-command.d.ts +10 -0
- package/dist/commands/init/init-command.d.ts.map +1 -0
- package/dist/commands/init/init-command.js +75 -0
- package/dist/commands/init/init-command.js.map +1 -0
- package/dist/commands/init/phases/config-handler.d.ts +10 -0
- package/dist/commands/init/phases/config-handler.d.ts.map +1 -0
- package/dist/commands/init/phases/config-handler.js +21 -0
- package/dist/commands/init/phases/config-handler.js.map +1 -0
- package/dist/commands/init/phases/detection-handler.d.ts +10 -0
- package/dist/commands/init/phases/detection-handler.d.ts.map +1 -0
- package/dist/commands/init/phases/detection-handler.js +80 -0
- package/dist/commands/init/phases/detection-handler.js.map +1 -0
- package/dist/commands/init/phases/download-handler.d.ts +9 -0
- package/dist/commands/init/phases/download-handler.d.ts.map +1 -0
- package/dist/commands/init/phases/download-handler.js +16 -0
- package/dist/commands/init/phases/download-handler.js.map +1 -0
- package/dist/commands/init/phases/prompt-handler.d.ts +10 -0
- package/dist/commands/init/phases/prompt-handler.d.ts.map +1 -0
- package/dist/commands/init/phases/prompt-handler.js +24 -0
- package/dist/commands/init/phases/prompt-handler.js.map +1 -0
- package/dist/commands/init/phases/scaffold-handler.d.ts +9 -0
- package/dist/commands/init/phases/scaffold-handler.d.ts.map +1 -0
- package/dist/commands/init/phases/scaffold-handler.js +18 -0
- package/dist/commands/init/phases/scaffold-handler.js.map +1 -0
- package/dist/commands/init/phases/validation-handler.d.ts +14 -0
- package/dist/commands/init/phases/validation-handler.d.ts.map +1 -0
- package/dist/commands/init/phases/validation-handler.js +50 -0
- package/dist/commands/init/phases/validation-handler.js.map +1 -0
- package/dist/commands/init/phases/vscode-handler.d.ts +9 -0
- package/dist/commands/init/phases/vscode-handler.d.ts.map +1 -0
- package/dist/commands/init/phases/vscode-handler.js +16 -0
- package/dist/commands/init/phases/vscode-handler.js.map +1 -0
- package/dist/commands/init/types.d.ts +28 -0
- package/dist/commands/init/types.d.ts.map +1 -0
- package/dist/commands/init/types.js +6 -0
- package/dist/commands/init/types.js.map +1 -0
- package/dist/commands/scout.d.ts +30 -0
- package/dist/commands/scout.d.ts.map +1 -0
- package/dist/commands/scout.js +116 -0
- package/dist/commands/scout.js.map +1 -0
- package/dist/domains/config/generator.d.ts +17 -0
- package/dist/domains/config/generator.d.ts.map +1 -0
- package/dist/domains/config/generator.js +67 -0
- package/dist/domains/config/generator.js.map +1 -0
- package/dist/domains/config/index.d.ts +8 -0
- package/dist/domains/config/index.d.ts.map +1 -0
- package/dist/domains/config/index.js +15 -0
- package/dist/domains/config/index.js.map +1 -0
- package/dist/domains/config/types.d.ts +39 -0
- package/dist/domains/config/types.d.ts.map +1 -0
- package/dist/domains/config/types.js +6 -0
- package/dist/domains/config/types.js.map +1 -0
- package/dist/domains/config/validator.d.ts +17 -0
- package/dist/domains/config/validator.d.ts.map +1 -0
- package/dist/domains/config/validator.js +54 -0
- package/dist/domains/config/validator.js.map +1 -0
- package/dist/domains/github/auth-api.d.ts +19 -0
- package/dist/domains/github/auth-api.d.ts.map +1 -0
- package/dist/domains/github/auth-api.js +196 -0
- package/dist/domains/github/auth-api.js.map +1 -0
- package/dist/domains/github/github-client.d.ts +323 -0
- package/dist/domains/github/github-client.d.ts.map +1 -0
- package/dist/domains/github/github-client.js +192 -0
- package/dist/domains/github/github-client.js.map +1 -0
- package/dist/domains/github/index.d.ts +9 -0
- package/dist/domains/github/index.d.ts.map +1 -0
- package/dist/domains/github/index.js +23 -0
- package/dist/domains/github/index.js.map +1 -0
- package/dist/domains/github/keychain.d.ts +19 -0
- package/dist/domains/github/keychain.d.ts.map +1 -0
- package/dist/domains/github/keychain.js +132 -0
- package/dist/domains/github/keychain.js.map +1 -0
- package/dist/domains/github/types.d.ts +40 -0
- package/dist/domains/github/types.d.ts.map +1 -0
- package/dist/domains/github/types.js +6 -0
- package/dist/domains/github/types.js.map +1 -0
- package/dist/domains/health-checks/auto-healer.d.ts +14 -0
- package/dist/domains/health-checks/auto-healer.d.ts.map +1 -0
- package/dist/domains/health-checks/auto-healer.js +160 -0
- package/dist/domains/health-checks/auto-healer.js.map +1 -0
- package/dist/domains/health-checks/check-runner.d.ts +10 -0
- package/dist/domains/health-checks/check-runner.d.ts.map +1 -0
- package/dist/domains/health-checks/check-runner.js +31 -0
- package/dist/domains/health-checks/check-runner.js.map +1 -0
- package/dist/domains/health-checks/checkers/auth-checker.d.ts +10 -0
- package/dist/domains/health-checks/checkers/auth-checker.d.ts.map +1 -0
- package/dist/domains/health-checks/checkers/auth-checker.js +90 -0
- package/dist/domains/health-checks/checkers/auth-checker.js.map +1 -0
- package/dist/domains/health-checks/checkers/deps-checker.d.ts +10 -0
- package/dist/domains/health-checks/checkers/deps-checker.d.ts.map +1 -0
- package/dist/domains/health-checks/checkers/deps-checker.js +150 -0
- package/dist/domains/health-checks/checkers/deps-checker.js.map +1 -0
- package/dist/domains/health-checks/checkers/project-checker.d.ts +10 -0
- package/dist/domains/health-checks/checkers/project-checker.d.ts.map +1 -0
- package/dist/domains/health-checks/checkers/project-checker.js +124 -0
- package/dist/domains/health-checks/checkers/project-checker.js.map +1 -0
- package/dist/domains/health-checks/checkers/system-checker.d.ts +10 -0
- package/dist/domains/health-checks/checkers/system-checker.d.ts.map +1 -0
- package/dist/domains/health-checks/checkers/system-checker.js +135 -0
- package/dist/domains/health-checks/checkers/system-checker.js.map +1 -0
- package/dist/domains/health-checks/index.d.ts +9 -0
- package/dist/domains/health-checks/index.d.ts.map +1 -0
- package/dist/domains/health-checks/index.js +21 -0
- package/dist/domains/health-checks/index.js.map +1 -0
- package/dist/domains/health-checks/report-generator.d.ts +18 -0
- package/dist/domains/health-checks/report-generator.d.ts.map +1 -0
- package/dist/domains/health-checks/report-generator.js +117 -0
- package/dist/domains/health-checks/report-generator.js.map +1 -0
- package/dist/domains/health-checks/types.d.ts +35 -0
- package/dist/domains/health-checks/types.d.ts.map +1 -0
- package/dist/domains/health-checks/types.js +6 -0
- package/dist/domains/health-checks/types.js.map +1 -0
- package/dist/index.js +33 -0
- package/dist/index.js.map +1 -1
- package/dist/utils/approaches-validator.d.ts +40 -0
- package/dist/utils/approaches-validator.d.ts.map +1 -0
- package/dist/utils/approaches-validator.js +101 -0
- package/dist/utils/approaches-validator.js.map +1 -0
- package/dist/utils/dependency-analyzer.d.ts +31 -0
- package/dist/utils/dependency-analyzer.d.ts.map +1 -0
- package/dist/utils/dependency-analyzer.js +294 -0
- package/dist/utils/dependency-analyzer.js.map +1 -0
- package/dist/utils/directory-analyzer.d.ts +23 -0
- package/dist/utils/directory-analyzer.d.ts.map +1 -0
- package/dist/utils/directory-analyzer.js +81 -0
- package/dist/utils/directory-analyzer.js.map +1 -0
- package/dist/utils/downloader.d.ts +3 -3
- package/dist/utils/downloader.d.ts.map +1 -1
- package/dist/utils/downloader.js +35 -65
- package/dist/utils/downloader.js.map +1 -1
- package/dist/utils/errors.d.ts +64 -10
- package/dist/utils/errors.d.ts.map +1 -1
- package/dist/utils/errors.js +136 -22
- package/dist/utils/errors.js.map +1 -1
- package/dist/utils/gh-cli.d.ts +4 -2
- package/dist/utils/gh-cli.d.ts.map +1 -1
- package/dist/utils/gh-cli.js +33 -38
- package/dist/utils/gh-cli.js.map +1 -1
- package/dist/utils/progress.d.ts +37 -0
- package/dist/utils/progress.d.ts.map +1 -0
- package/dist/utils/progress.js +121 -0
- package/dist/utils/progress.js.map +1 -0
- package/dist/utils/prompts.d.ts +5 -1
- package/dist/utils/prompts.d.ts.map +1 -1
- package/dist/utils/prompts.js +124 -64
- package/dist/utils/prompts.js.map +1 -1
- package/package.json +7 -3
- package/test-jira-prompt.js +32 -0
- package/dist/commands/init.d.ts +0 -6
- package/dist/commands/init.d.ts.map +0 -1
- package/dist/commands/init.js +0 -147
- package/dist/commands/init.js.map +0 -1
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* OS keychain integration for secure token storage
|
|
4
|
+
* Supports macOS Keychain, Windows Credential Manager, Linux Secret Service
|
|
5
|
+
*/
|
|
6
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
+
if (k2 === undefined) k2 = k;
|
|
8
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
+
}
|
|
12
|
+
Object.defineProperty(o, k2, desc);
|
|
13
|
+
}) : (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
o[k2] = m[k];
|
|
16
|
+
}));
|
|
17
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
18
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
19
|
+
}) : function(o, v) {
|
|
20
|
+
o["default"] = v;
|
|
21
|
+
});
|
|
22
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
23
|
+
var ownKeys = function(o) {
|
|
24
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
25
|
+
var ar = [];
|
|
26
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
27
|
+
return ar;
|
|
28
|
+
};
|
|
29
|
+
return ownKeys(o);
|
|
30
|
+
};
|
|
31
|
+
return function (mod) {
|
|
32
|
+
if (mod && mod.__esModule) return mod;
|
|
33
|
+
var result = {};
|
|
34
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
35
|
+
__setModuleDefault(result, mod);
|
|
36
|
+
return result;
|
|
37
|
+
};
|
|
38
|
+
})();
|
|
39
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
40
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
41
|
+
};
|
|
42
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
43
|
+
exports.saveTokenToKeychain = saveTokenToKeychain;
|
|
44
|
+
exports.readTokenFromKeychain = readTokenFromKeychain;
|
|
45
|
+
exports.deleteTokenFromKeychain = deleteTokenFromKeychain;
|
|
46
|
+
const keytar = __importStar(require("keytar"));
|
|
47
|
+
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
48
|
+
const path_1 = __importDefault(require("path"));
|
|
49
|
+
const os_1 = __importDefault(require("os"));
|
|
50
|
+
const SERVICE_NAME = 'csvibe-cli';
|
|
51
|
+
const ACCOUNT_NAME = 'github-token';
|
|
52
|
+
const CONFIG_DIR = path_1.default.join(os_1.default.homedir(), '.csvibe');
|
|
53
|
+
const TOKEN_FILE = path_1.default.join(CONFIG_DIR, '.github-token');
|
|
54
|
+
/**
|
|
55
|
+
* Save token to OS keychain
|
|
56
|
+
* Falls back to encrypted file if keychain unavailable
|
|
57
|
+
*/
|
|
58
|
+
async function saveTokenToKeychain(token) {
|
|
59
|
+
try {
|
|
60
|
+
// Try OS keychain first
|
|
61
|
+
await keytar.setPassword(SERVICE_NAME, ACCOUNT_NAME, token);
|
|
62
|
+
}
|
|
63
|
+
catch (error) {
|
|
64
|
+
// Fallback: Save to config file with basic obfuscation
|
|
65
|
+
// Note: This is not secure, just better than plain text
|
|
66
|
+
await saveTokenToFile(token);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Read token from OS keychain
|
|
71
|
+
* Falls back to file if keychain unavailable
|
|
72
|
+
*/
|
|
73
|
+
async function readTokenFromKeychain() {
|
|
74
|
+
try {
|
|
75
|
+
// Try OS keychain first
|
|
76
|
+
const token = await keytar.getPassword(SERVICE_NAME, ACCOUNT_NAME);
|
|
77
|
+
if (token)
|
|
78
|
+
return token;
|
|
79
|
+
}
|
|
80
|
+
catch (error) {
|
|
81
|
+
// Keychain not available, try file
|
|
82
|
+
}
|
|
83
|
+
// Fallback: Read from config file
|
|
84
|
+
return await readTokenFromFile();
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Delete token from keychain
|
|
88
|
+
*/
|
|
89
|
+
async function deleteTokenFromKeychain() {
|
|
90
|
+
try {
|
|
91
|
+
// Delete from OS keychain
|
|
92
|
+
await keytar.deletePassword(SERVICE_NAME, ACCOUNT_NAME);
|
|
93
|
+
}
|
|
94
|
+
catch (error) {
|
|
95
|
+
// Ignore keychain errors
|
|
96
|
+
}
|
|
97
|
+
// Also delete file if exists
|
|
98
|
+
try {
|
|
99
|
+
await fs_extra_1.default.remove(TOKEN_FILE);
|
|
100
|
+
}
|
|
101
|
+
catch (error) {
|
|
102
|
+
// Ignore file errors
|
|
103
|
+
}
|
|
104
|
+
return true;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Save token to file with basic obfuscation
|
|
108
|
+
* WARNING: This is not secure, just better than plain text
|
|
109
|
+
*/
|
|
110
|
+
async function saveTokenToFile(token) {
|
|
111
|
+
await fs_extra_1.default.ensureDir(CONFIG_DIR);
|
|
112
|
+
// Simple base64 encoding (NOT encryption, just obfuscation)
|
|
113
|
+
const encoded = Buffer.from(token).toString('base64');
|
|
114
|
+
await fs_extra_1.default.writeFile(TOKEN_FILE, encoded, { mode: 0o600 });
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Read token from file
|
|
118
|
+
*/
|
|
119
|
+
async function readTokenFromFile() {
|
|
120
|
+
try {
|
|
121
|
+
if (!(await fs_extra_1.default.pathExists(TOKEN_FILE))) {
|
|
122
|
+
return null;
|
|
123
|
+
}
|
|
124
|
+
const encoded = await fs_extra_1.default.readFile(TOKEN_FILE, 'utf-8');
|
|
125
|
+
const token = Buffer.from(encoded.trim(), 'base64').toString('utf-8');
|
|
126
|
+
return token || null;
|
|
127
|
+
}
|
|
128
|
+
catch (error) {
|
|
129
|
+
return null;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
//# sourceMappingURL=keychain.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keychain.js","sourceRoot":"","sources":["../../../src/domains/github/keychain.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBH,kDASC;AAMD,sDAWC;AAKD,0DAgBC;AA7DD,+CAAiC;AACjC,wDAA0B;AAC1B,gDAAwB;AACxB,4CAAoB;AAEpB,MAAM,YAAY,GAAG,YAAY,CAAC;AAClC,MAAM,YAAY,GAAG,cAAc,CAAC;AACpC,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,YAAE,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;AACtD,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;AAE1D;;;GAGG;AACI,KAAK,UAAU,mBAAmB,CAAC,KAAa;IACrD,IAAI,CAAC;QACH,wBAAwB;QACxB,MAAM,MAAM,CAAC,WAAW,CAAC,YAAY,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;IAC9D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,uDAAuD;QACvD,wDAAwD;QACxD,MAAM,eAAe,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;AACH,CAAC;AAED;;;GAGG;AACI,KAAK,UAAU,qBAAqB;IACzC,IAAI,CAAC;QACH,wBAAwB;QACxB,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;QACnE,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC;IAC1B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,mCAAmC;IACrC,CAAC;IAED,kCAAkC;IAClC,OAAO,MAAM,iBAAiB,EAAE,CAAC;AACnC,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,uBAAuB;IAC3C,IAAI,CAAC;QACH,0BAA0B;QAC1B,MAAM,MAAM,CAAC,cAAc,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;IAC1D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,yBAAyB;IAC3B,CAAC;IAED,6BAA6B;IAC7B,IAAI,CAAC;QACH,MAAM,kBAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAC9B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,qBAAqB;IACvB,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,eAAe,CAAC,KAAa;IAC1C,MAAM,kBAAE,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAE/B,4DAA4D;IAC5D,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACtD,MAAM,kBAAE,CAAC,SAAS,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AAC3D,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,iBAAiB;IAC9B,IAAI,CAAC;QACH,IAAI,CAAC,CAAC,MAAM,kBAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;YACvC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACvD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAEtE,OAAO,KAAK,IAAI,IAAI,CAAC;IACvB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GitHub domain types and interfaces
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Authentication method used to obtain token
|
|
6
|
+
*/
|
|
7
|
+
export type AuthMethod = 'gh-cli' | 'env-var' | 'config' | 'keychain' | 'prompt';
|
|
8
|
+
/**
|
|
9
|
+
* GitHub token with metadata
|
|
10
|
+
*/
|
|
11
|
+
export interface GitHubTokenInfo {
|
|
12
|
+
token: string;
|
|
13
|
+
method: AuthMethod;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* GitHub API rate limit information
|
|
17
|
+
*/
|
|
18
|
+
export interface RateLimitInfo {
|
|
19
|
+
limit: number;
|
|
20
|
+
remaining: number;
|
|
21
|
+
reset: Date;
|
|
22
|
+
used: number;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Download progress callback
|
|
26
|
+
*/
|
|
27
|
+
export interface DownloadProgress {
|
|
28
|
+
downloaded: number;
|
|
29
|
+
total: number;
|
|
30
|
+
percentage: number;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Download options
|
|
34
|
+
*/
|
|
35
|
+
export interface DownloadOptions {
|
|
36
|
+
onProgress?: (progress: DownloadProgress) => void;
|
|
37
|
+
timeout?: number;
|
|
38
|
+
retries?: number;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/domains/github/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAC;AAEjF;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,UAAU,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,IAAI,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAClD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/domains/github/types.ts"],"names":[],"mappings":";AAAA;;GAEG"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Auto-fix logic for common issues
|
|
3
|
+
* Attempts to automatically repair fixable health check failures
|
|
4
|
+
*/
|
|
5
|
+
import type { Check, FixResult } from './types';
|
|
6
|
+
/**
|
|
7
|
+
* Attempt to auto-fix a check
|
|
8
|
+
*/
|
|
9
|
+
export declare function autoFix(check: Check): Promise<FixResult>;
|
|
10
|
+
/**
|
|
11
|
+
* Auto-fix multiple issues
|
|
12
|
+
*/
|
|
13
|
+
export declare function autoFixIssues(checks: Check[]): Promise<FixResult[]>;
|
|
14
|
+
//# sourceMappingURL=auto-healer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto-healer.d.ts","sourceRoot":"","sources":["../../../src/domains/health-checks/auto-healer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEhD;;GAEG;AACH,wBAAsB,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,CAiC9D;AAuHD;;GAEG;AACH,wBAAsB,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAWzE"}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Auto-fix logic for common issues
|
|
4
|
+
* Attempts to automatically repair fixable health check failures
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.autoFix = autoFix;
|
|
8
|
+
exports.autoFixIssues = autoFixIssues;
|
|
9
|
+
const child_process_1 = require("child_process");
|
|
10
|
+
/**
|
|
11
|
+
* Attempt to auto-fix a check
|
|
12
|
+
*/
|
|
13
|
+
async function autoFix(check) {
|
|
14
|
+
if (!check.fixable) {
|
|
15
|
+
return {
|
|
16
|
+
success: false,
|
|
17
|
+
message: 'No auto-fix available for this check',
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
switch (check.name) {
|
|
21
|
+
case 'GitHub CLI Authentication':
|
|
22
|
+
return await fixGitHubAuth();
|
|
23
|
+
case 'node_modules':
|
|
24
|
+
return await fixNodeModules();
|
|
25
|
+
case 'CSVibe Initialization':
|
|
26
|
+
return await fixCSVibeInit();
|
|
27
|
+
case 'Config File':
|
|
28
|
+
return await fixConfigFile();
|
|
29
|
+
case 'Workspace Structure':
|
|
30
|
+
return await fixWorkspaceStructure();
|
|
31
|
+
case 'Lockfile':
|
|
32
|
+
return await fixLockfile();
|
|
33
|
+
default:
|
|
34
|
+
return {
|
|
35
|
+
success: false,
|
|
36
|
+
message: `No auto-fix handler for: ${check.name}`,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Fix GitHub authentication
|
|
42
|
+
*/
|
|
43
|
+
async function fixGitHubAuth() {
|
|
44
|
+
try {
|
|
45
|
+
console.log('\n🔧 Attempting to fix GitHub authentication...');
|
|
46
|
+
(0, child_process_1.execSync)('gh auth login', { stdio: 'inherit' });
|
|
47
|
+
return {
|
|
48
|
+
success: true,
|
|
49
|
+
message: 'GitHub authentication fixed',
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
catch (error) {
|
|
53
|
+
return {
|
|
54
|
+
success: false,
|
|
55
|
+
message: 'Failed to authenticate with GitHub',
|
|
56
|
+
error: error instanceof Error ? error.message : String(error),
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Fix missing node_modules
|
|
62
|
+
*/
|
|
63
|
+
async function fixNodeModules() {
|
|
64
|
+
try {
|
|
65
|
+
console.log('\n🔧 Installing dependencies...');
|
|
66
|
+
// Detect package manager
|
|
67
|
+
const fs = require('fs-extra');
|
|
68
|
+
const path = require('path');
|
|
69
|
+
let packageManager = 'npm';
|
|
70
|
+
if (await fs.pathExists(path.join(process.cwd(), 'yarn.lock'))) {
|
|
71
|
+
packageManager = 'yarn';
|
|
72
|
+
}
|
|
73
|
+
else if (await fs.pathExists(path.join(process.cwd(), 'pnpm-lock.yaml'))) {
|
|
74
|
+
packageManager = 'pnpm';
|
|
75
|
+
}
|
|
76
|
+
(0, child_process_1.execSync)(`${packageManager} install`, { stdio: 'inherit' });
|
|
77
|
+
return {
|
|
78
|
+
success: true,
|
|
79
|
+
message: `Dependencies installed using ${packageManager}`,
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
catch (error) {
|
|
83
|
+
return {
|
|
84
|
+
success: false,
|
|
85
|
+
message: 'Failed to install dependencies',
|
|
86
|
+
error: error instanceof Error ? error.message : String(error),
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Fix CSVibe initialization
|
|
92
|
+
*/
|
|
93
|
+
async function fixCSVibeInit() {
|
|
94
|
+
return {
|
|
95
|
+
success: false,
|
|
96
|
+
message: 'Please run "csvibe init" manually to initialize project',
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Fix config file
|
|
101
|
+
*/
|
|
102
|
+
async function fixConfigFile() {
|
|
103
|
+
return {
|
|
104
|
+
success: false,
|
|
105
|
+
message: 'Please run "csvibe init" manually to regenerate config',
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Fix workspace structure
|
|
110
|
+
*/
|
|
111
|
+
async function fixWorkspaceStructure() {
|
|
112
|
+
return {
|
|
113
|
+
success: false,
|
|
114
|
+
message: 'Please run "csvibe init" manually to setup workspace',
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Fix lockfile
|
|
119
|
+
*/
|
|
120
|
+
async function fixLockfile() {
|
|
121
|
+
try {
|
|
122
|
+
console.log('\n🔧 Syncing lockfile...');
|
|
123
|
+
const fs = require('fs-extra');
|
|
124
|
+
const path = require('path');
|
|
125
|
+
// Detect package manager
|
|
126
|
+
let packageManager = 'npm';
|
|
127
|
+
if (await fs.pathExists(path.join(process.cwd(), 'yarn.lock'))) {
|
|
128
|
+
packageManager = 'yarn';
|
|
129
|
+
}
|
|
130
|
+
else if (await fs.pathExists(path.join(process.cwd(), 'pnpm-lock.yaml'))) {
|
|
131
|
+
packageManager = 'pnpm';
|
|
132
|
+
}
|
|
133
|
+
(0, child_process_1.execSync)(`${packageManager} install`, { stdio: 'inherit' });
|
|
134
|
+
return {
|
|
135
|
+
success: true,
|
|
136
|
+
message: `Lockfile synced using ${packageManager}`,
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
catch (error) {
|
|
140
|
+
return {
|
|
141
|
+
success: false,
|
|
142
|
+
message: 'Failed to sync lockfile',
|
|
143
|
+
error: error instanceof Error ? error.message : String(error),
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Auto-fix multiple issues
|
|
149
|
+
*/
|
|
150
|
+
async function autoFixIssues(checks) {
|
|
151
|
+
const results = [];
|
|
152
|
+
for (const check of checks) {
|
|
153
|
+
if (check.fixable && check.status !== 'pass') {
|
|
154
|
+
const result = await autoFix(check);
|
|
155
|
+
results.push(result);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
return results;
|
|
159
|
+
}
|
|
160
|
+
//# sourceMappingURL=auto-healer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto-healer.js","sourceRoot":"","sources":["../../../src/domains/health-checks/auto-healer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Health check orchestrator
|
|
3
|
+
* Runs all health checks and aggregates results
|
|
4
|
+
*/
|
|
5
|
+
import type { HealthCheckReport } from './types';
|
|
6
|
+
/**
|
|
7
|
+
* Run all health checks
|
|
8
|
+
*/
|
|
9
|
+
export declare function runHealthChecks(): Promise<HealthCheckReport>;
|
|
10
|
+
//# sourceMappingURL=check-runner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-runner.d.ts","sourceRoot":"","sources":["../../../src/domains/health-checks/check-runner.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAEjD;;GAEG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAkBlE"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Health check orchestrator
|
|
4
|
+
* Runs all health checks and aggregates results
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.runHealthChecks = runHealthChecks;
|
|
8
|
+
const system_checker_1 = require("./checkers/system-checker");
|
|
9
|
+
const auth_checker_1 = require("./checkers/auth-checker");
|
|
10
|
+
const project_checker_1 = require("./checkers/project-checker");
|
|
11
|
+
const deps_checker_1 = require("./checkers/deps-checker");
|
|
12
|
+
/**
|
|
13
|
+
* Run all health checks
|
|
14
|
+
*/
|
|
15
|
+
async function runHealthChecks() {
|
|
16
|
+
const results = [];
|
|
17
|
+
// Run checks sequentially to avoid resource conflicts
|
|
18
|
+
results.push(await (0, system_checker_1.checkSystem)());
|
|
19
|
+
results.push(await (0, auth_checker_1.checkAuth)());
|
|
20
|
+
results.push(await (0, project_checker_1.checkProject)());
|
|
21
|
+
results.push(await (0, deps_checker_1.checkDependencies)());
|
|
22
|
+
const passed = results.every((r) => r.passed);
|
|
23
|
+
const fixableChecks = results.flatMap((r) => r.checks.filter((c) => c.fixable));
|
|
24
|
+
return {
|
|
25
|
+
results,
|
|
26
|
+
passed,
|
|
27
|
+
fixable: fixableChecks.length,
|
|
28
|
+
timestamp: new Date().toISOString(),
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=check-runner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-runner.js","sourceRoot":"","sources":["../../../src/domains/health-checks/check-runner.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAWH,0CAkBC;AA3BD,8DAAwD;AACxD,0DAAoD;AACpD,gEAA0D;AAC1D,0DAA4D;AAG5D;;GAEG;AACI,KAAK,UAAU,eAAe;IACnC,MAAM,OAAO,GAAG,EAAE,CAAC;IAEnB,sDAAsD;IACtD,OAAO,CAAC,IAAI,CAAC,MAAM,IAAA,4BAAW,GAAE,CAAC,CAAC;IAClC,OAAO,CAAC,IAAI,CAAC,MAAM,IAAA,wBAAS,GAAE,CAAC,CAAC;IAChC,OAAO,CAAC,IAAI,CAAC,MAAM,IAAA,8BAAY,GAAE,CAAC,CAAC;IACnC,OAAO,CAAC,IAAI,CAAC,MAAM,IAAA,gCAAiB,GAAE,CAAC,CAAC;IAExC,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAC9C,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAEhF,OAAO;QACL,OAAO;QACP,MAAM;QACN,OAAO,EAAE,aAAa,CAAC,MAAM;QAC7B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACpC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Authentication health checks
|
|
3
|
+
* Checks: GitHub authentication, token validity, repo access
|
|
4
|
+
*/
|
|
5
|
+
import type { CheckResult } from '../types';
|
|
6
|
+
/**
|
|
7
|
+
* Run all authentication checks
|
|
8
|
+
*/
|
|
9
|
+
export declare function checkAuth(): Promise<CheckResult>;
|
|
10
|
+
//# sourceMappingURL=auth-checker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-checker.d.ts","sourceRoot":"","sources":["../../../../src/domains/health-checks/checkers/auth-checker.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAS,WAAW,EAAE,MAAM,UAAU,CAAC;AAEnD;;GAEG;AACH,wBAAsB,SAAS,IAAI,OAAO,CAAC,WAAW,CAAC,CAWtD"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Authentication health checks
|
|
4
|
+
* Checks: GitHub authentication, token validity, repo access
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.checkAuth = checkAuth;
|
|
8
|
+
const github_1 = require("../../github");
|
|
9
|
+
const constants_1 = require("../../../config/constants");
|
|
10
|
+
/**
|
|
11
|
+
* Run all authentication checks
|
|
12
|
+
*/
|
|
13
|
+
async function checkAuth() {
|
|
14
|
+
const checks = [];
|
|
15
|
+
checks.push(await checkGitHubAuth());
|
|
16
|
+
checks.push(await checkRepoAccess());
|
|
17
|
+
return {
|
|
18
|
+
category: 'Authentication',
|
|
19
|
+
checks,
|
|
20
|
+
passed: checks.every((c) => c.status === 'pass'),
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Check GitHub authentication
|
|
25
|
+
*/
|
|
26
|
+
async function checkGitHubAuth() {
|
|
27
|
+
try {
|
|
28
|
+
const { token, method } = await (0, github_1.getGitHubToken)();
|
|
29
|
+
if (!token || token.length === 0) {
|
|
30
|
+
return {
|
|
31
|
+
name: 'GitHub Authentication',
|
|
32
|
+
status: 'fail',
|
|
33
|
+
message: 'No GitHub token found',
|
|
34
|
+
fixable: true,
|
|
35
|
+
fix: 'Run "gh auth login" or set GITHUB_TOKEN environment variable',
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
return {
|
|
39
|
+
name: 'GitHub Authentication',
|
|
40
|
+
status: 'pass',
|
|
41
|
+
message: `Authenticated via ${method}`,
|
|
42
|
+
fixable: false,
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
catch (error) {
|
|
46
|
+
return {
|
|
47
|
+
name: 'GitHub Authentication',
|
|
48
|
+
status: 'fail',
|
|
49
|
+
message: 'GitHub authentication failed',
|
|
50
|
+
fixable: true,
|
|
51
|
+
fix: 'Run "gh auth login" or set GITHUB_TOKEN environment variable',
|
|
52
|
+
error: error instanceof Error ? error.message : String(error),
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Check repository access
|
|
58
|
+
*/
|
|
59
|
+
async function checkRepoAccess() {
|
|
60
|
+
try {
|
|
61
|
+
const client = await github_1.GitHubClient.create();
|
|
62
|
+
const [owner, repo] = constants_1.CONSTANTS.REPO_FULL.split('/');
|
|
63
|
+
const hasAccess = await client.hasRepoAccess(owner, repo);
|
|
64
|
+
if (!hasAccess) {
|
|
65
|
+
return {
|
|
66
|
+
name: 'Repository Access',
|
|
67
|
+
status: 'fail',
|
|
68
|
+
message: `Cannot access ${constants_1.CONSTANTS.REPO_FULL}`,
|
|
69
|
+
fixable: false,
|
|
70
|
+
fix: 'Contact repository administrator for access',
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
return {
|
|
74
|
+
name: 'Repository Access',
|
|
75
|
+
status: 'pass',
|
|
76
|
+
message: `Access to ${constants_1.CONSTANTS.REPO_FULL} verified`,
|
|
77
|
+
fixable: false,
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
catch (error) {
|
|
81
|
+
return {
|
|
82
|
+
name: 'Repository Access',
|
|
83
|
+
status: 'fail',
|
|
84
|
+
message: 'Failed to check repository access',
|
|
85
|
+
fixable: false,
|
|
86
|
+
error: error instanceof Error ? error.message : String(error),
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=auth-checker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-checker.js","sourceRoot":"","sources":["../../../../src/domains/health-checks/checkers/auth-checker.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AASH,8BAWC;AAlBD,yCAA4D;AAC5D,yDAAsD;AAGtD;;GAEG;AACI,KAAK,UAAU,SAAS;IAC7B,MAAM,MAAM,GAAY,EAAE,CAAC;IAE3B,MAAM,CAAC,IAAI,CAAC,MAAM,eAAe,EAAE,CAAC,CAAC;IACrC,MAAM,CAAC,IAAI,CAAC,MAAM,eAAe,EAAE,CAAC,CAAC;IAErC,OAAO;QACL,QAAQ,EAAE,gBAAgB;QAC1B,MAAM;QACN,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC;KACjD,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,eAAe;IAC5B,IAAI,CAAC;QACH,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,IAAA,uBAAc,GAAE,CAAC;QAEjD,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjC,OAAO;gBACL,IAAI,EAAE,uBAAuB;gBAC7B,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,uBAAuB;gBAChC,OAAO,EAAE,IAAI;gBACb,GAAG,EAAE,8DAA8D;aACpE,CAAC;QACJ,CAAC;QAED,OAAO;YACL,IAAI,EAAE,uBAAuB;YAC7B,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,qBAAqB,MAAM,EAAE;YACtC,OAAO,EAAE,KAAK;SACf,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,IAAI,EAAE,uBAAuB;YAC7B,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,8BAA8B;YACvC,OAAO,EAAE,IAAI;YACb,GAAG,EAAE,8DAA8D;YACnE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;SAC9D,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,eAAe;IAC5B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,qBAAY,CAAC,MAAM,EAAE,CAAC;QAC3C,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,qBAAS,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAErD,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAE1D,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO;gBACL,IAAI,EAAE,mBAAmB;gBACzB,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,iBAAiB,qBAAS,CAAC,SAAS,EAAE;gBAC/C,OAAO,EAAE,KAAK;gBACd,GAAG,EAAE,6CAA6C;aACnD,CAAC;QACJ,CAAC;QAED,OAAO;YACL,IAAI,EAAE,mBAAmB;YACzB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,aAAa,qBAAS,CAAC,SAAS,WAAW;YACpD,OAAO,EAAE,KAAK;SACf,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,IAAI,EAAE,mBAAmB;YACzB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,mCAAmC;YAC5C,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;SAC9D,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dependencies health checks
|
|
3
|
+
* Checks: node_modules, package.json, lockfile consistency
|
|
4
|
+
*/
|
|
5
|
+
import type { CheckResult } from '../types';
|
|
6
|
+
/**
|
|
7
|
+
* Run all dependency checks
|
|
8
|
+
*/
|
|
9
|
+
export declare function checkDependencies(): Promise<CheckResult>;
|
|
10
|
+
//# sourceMappingURL=deps-checker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deps-checker.d.ts","sourceRoot":"","sources":["../../../../src/domains/health-checks/checkers/deps-checker.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAS,WAAW,EAAE,MAAM,UAAU,CAAC;AAEnD;;GAEG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,WAAW,CAAC,CAY9D"}
|