UNPKG

sigstore-npm-signer

Version:
52 lines 1.65 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.defaultConfig = exports.ConfigSchema = void 0; exports.loadConfig = loadConfig; const cosmiconfig_1 = require("cosmiconfig"); const zod_1 = require("zod"); /** * Configuration module for sigstore-npm-signer * * Handles loading and parsing of configuration from .signerrc files * using cosmiconfig. */ /** * Configuration schema for sigstore-npm-signer */ exports.ConfigSchema = zod_1.z.object({ // List of allowed package publishers (GitHub usernames or email addresses) allowedPublishers: zod_1.z.array(zod_1.z.string()).default([]), // Whether to enforce signature verification on install enforceVerification: zod_1.z.boolean().default(true), // Custom Fulcio URL (optional) fulcioUrl: zod_1.z.string().optional(), // Custom Rekor URL (optional) rekorUrl: zod_1.z.string().optional(), }); /** * Default configuration values */ exports.defaultConfig = { allowedPublishers: [], enforceVerification: true, }; /** * Loads configuration from .signerrc file using cosmiconfig */ async function loadConfig() { const explorer = (0, cosmiconfig_1.cosmiconfig)('signer'); const result = await explorer.search(); if (!result || result.isEmpty) { return exports.defaultConfig; } try { return exports.ConfigSchema.parse(result.config); } catch (error) { if (error instanceof zod_1.z.ZodError) { throw new Error(`Invalid configuration: ${error.errors.map(e => e.message).join(', ')}`); } throw error; } } //# sourceMappingURL=config.js.map