@sigyl-dev/cli
Version:
Official Sigyl CLI for installing and managing MCP packages. Zero-config installation for public packages, secure API-based authentication.
79 lines • 2.61 kB
JavaScript
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.ensureConfigDir = ensureConfigDir;
exports.saveConfig = saveConfig;
exports.loadConfig = loadConfig;
exports.getRegistryConfig = getRegistryConfig;
exports.hasValidConfig = hasValidConfig;
exports.requiresApiKey = requiresApiKey;
const fs_1 = __importDefault(require("fs"));
const path_1 = __importDefault(require("path"));
const os_1 = __importDefault(require("os"));
const chalk_1 = __importDefault(require("chalk"));
const CONFIG_DIR = path_1.default.join(os_1.default.homedir(), '.sigyl');
const CONFIG_FILE = path_1.default.join(CONFIG_DIR, 'config.json');
// Default production registry URL
const DEFAULT_REGISTRY_URL = 'https://api.sigyl.dev';
function ensureConfigDir() {
if (!fs_1.default.existsSync(CONFIG_DIR)) {
fs_1.default.mkdirSync(CONFIG_DIR, { recursive: true });
}
}
function saveConfig(config) {
ensureConfigDir();
fs_1.default.writeFileSync(CONFIG_FILE, JSON.stringify(config, null, 2));
console.log(chalk_1.default.green('✅ Configuration saved to'), chalk_1.default.blue(CONFIG_FILE));
}
function loadConfig() {
if (!fs_1.default.existsSync(CONFIG_FILE)) {
return null;
}
try {
const configData = fs_1.default.readFileSync(CONFIG_FILE, 'utf8');
return JSON.parse(configData);
}
catch (error) {
console.error(chalk_1.default.red('❌ Error reading configuration:'), error);
return null;
}
}
function getRegistryConfig() {
// Try environment variables first (for development)
const envUrl = process.env.SIGYL_REGISTRY_URL;
const envKey = process.env.SIGYL_API_KEY;
if (envUrl || envKey) {
return {
registryUrl: envUrl || DEFAULT_REGISTRY_URL,
apiKey: envKey
};
}
// Try config file
const config = loadConfig();
if (config) {
return {
registryUrl: config.registryUrl || DEFAULT_REGISTRY_URL,
apiKey: config.apiKey
};
}
// Use default production values (no API key required for public packages)
return {
registryUrl: DEFAULT_REGISTRY_URL
};
}
function hasValidConfig() {
try {
const config = getRegistryConfig();
return !!(config.registryUrl);
}
catch {
return false;
}
}
function requiresApiKey() {
const config = getRegistryConfig();
return !config.apiKey;
}
//# sourceMappingURL=config.js.map
;